File size: 1,191 Bytes
ef6e870
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { JsonSchemaType, ToolCallType } from '$lib/enums';
import type { OpenAIToolDefinition } from '$lib/types';

export const SANDBOX_TOOL_NAME = 'run_javascript';

export const SANDBOX_TIMEOUT_MS_DEFAULT = 10000;

export const SANDBOX_TIMEOUT_MS_MAX = 30000;

export const SANDBOX_OUTPUT_MAX_CHARS = 8192;

export const SANDBOX_EMPTY_OUTPUT = '(no output)';

export const SANDBOX_TRUNCATION_NOTICE = '[output truncated]';

export const SANDBOX_TOOL_DEFINITION: OpenAIToolDefinition = {
	type: ToolCallType.FUNCTION,
	function: {
		name: SANDBOX_TOOL_NAME,
		description:
			'Execute JavaScript in a sandboxed browser worker (no DOM, no page access). ' +
			'Top level await is supported. Use console.log to print intermediate values; ' +
			'a top level return statement is captured as the result.',
		parameters: {
			type: JsonSchemaType.OBJECT,
			properties: {
				code: {
					type: JsonSchemaType.STRING,
					description: 'JavaScript source to execute'
				},
				timeout_ms: {
					type: JsonSchemaType.NUMBER,
					description: `Execution timeout in milliseconds, default ${SANDBOX_TIMEOUT_MS_DEFAULT}, max ${SANDBOX_TIMEOUT_MS_MAX}`
				}
			},
			required: ['code']
		}
	}
};