ai-evaluate 2.0.2 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js.map +1 -1
- package/dist/worker-template.js.map +1 -1
- package/package.json +4 -5
- package/src/evaluate.js +187 -0
- package/src/index.js +10 -0
- package/src/types.js +4 -0
- package/src/worker-template.js +3627 -0
- package/test/evaluate-extended.test.js +429 -0
- package/test/evaluate.test.js +235 -0
- package/test/index.test.js +77 -0
- package/test/worker-template.test.js +365 -0
- package/vitest.config.js +15 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# ai-evaluate
|
|
2
2
|
|
|
3
|
+
## 2.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [6beb531]
|
|
8
|
+
- ai-functions@2.1.1
|
|
9
|
+
- ai-tests@2.1.1
|
|
10
|
+
|
|
11
|
+
## 2.0.3
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies
|
|
16
|
+
- rpc.do@0.2.0
|
|
17
|
+
- ai-functions@2.0.3
|
|
18
|
+
- ai-tests@2.0.3
|
|
19
|
+
|
|
3
20
|
## 2.0.2
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
package/dist/evaluate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EAEd,UAAU,EACX,MAAM,YAAY,CAAA;AAqCnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,eAAe,EACxB,GAAG,CAAC,EAAE,UAAU,GACf,OAAO,CAAC,cAAc,CAAC,CA2BzB;AAmFD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EAEd,UAAU,EACX,MAAM,YAAY,CAAA;AAqCnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,eAAe,EACxB,GAAG,CAAC,EAAE,UAAU,GACf,OAAO,CAAC,cAAc,CAAC,CA2BzB;AAmFD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,aAC5B,eAAe,6BACjC"}
|
package/dist/evaluate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAEhF;;GAEG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACvB,wBAAwB;IACxB,MAAM,UAAU,GAAG,yDAAyD,CAAA;IAC5E,MAAM,gBAAgB,GAAG,oCAAoC,CAAA;IAC7D,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7D,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,IAAY;IACtC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAE5C,IAAI
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-template.js","sourceRoot":"","sources":["../src/worker-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,SAAoB,EAAE;IAC7C,oDAAoD;IACpD,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"worker-template.js","sourceRoot":"","sources":["../src/worker-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,SAAoB,EAAE;IAC7C,oDAAoD;IACpD,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAA;KACrC;IACD,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAA;AACrC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,oBAAoB,CAAC,SAAoB,EAAE;IAClD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,SAAS,CAAA;IACjC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAA;IAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,EAAE,CAAA;IAElD,OAAO;;;;;;SAMA,EAAE;mBACQ,YAAY;qBACV,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-evaluate",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "Secure code execution in sandboxed environments",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -20,10 +20,9 @@
|
|
|
20
20
|
"clean": "rm -rf dist"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"ai-functions": "2.
|
|
24
|
-
"ai-tests": "2.
|
|
25
|
-
"capnweb": "^0.2.0"
|
|
26
|
-
"rpc.do": "^0.1.0"
|
|
23
|
+
"ai-functions": "2.1.1",
|
|
24
|
+
"ai-tests": "2.1.1",
|
|
25
|
+
"capnweb": "^0.2.0"
|
|
27
26
|
},
|
|
28
27
|
"devDependencies": {
|
|
29
28
|
"@vitest/coverage-v8": "^2.1.0",
|
package/src/evaluate.js
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluate code in a sandboxed environment
|
|
3
|
+
*
|
|
4
|
+
* Uses Cloudflare worker_loaders in production,
|
|
5
|
+
* Miniflare in development/Node.
|
|
6
|
+
*
|
|
7
|
+
* Requires ai-tests service binding (TEST) for assertions and test running.
|
|
8
|
+
*/
|
|
9
|
+
import { generateWorkerCode, generateDevWorkerCode } from './worker-template.js';
|
|
10
|
+
/**
|
|
11
|
+
* Check if code contains JSX syntax that needs transformation
|
|
12
|
+
*/
|
|
13
|
+
function containsJSX(code) {
|
|
14
|
+
if (!code)
|
|
15
|
+
return false;
|
|
16
|
+
// Look for JSX patterns
|
|
17
|
+
const jsxPattern = /<[A-Z][a-zA-Z0-9]*[\s/>]|<[a-z][a-z0-9-]*[\s/>]|<>|<\/>/;
|
|
18
|
+
const jsxReturnPattern = /return\s*\(\s*<|return\s+<[A-Za-z]/;
|
|
19
|
+
return jsxPattern.test(code) || jsxReturnPattern.test(code);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Transform JSX in code using esbuild
|
|
23
|
+
*/
|
|
24
|
+
async function transformJSX(code) {
|
|
25
|
+
if (!code || !containsJSX(code))
|
|
26
|
+
return code;
|
|
27
|
+
try {
|
|
28
|
+
const { transform } = await import('esbuild');
|
|
29
|
+
const result = await transform(code, {
|
|
30
|
+
loader: 'tsx',
|
|
31
|
+
jsxFactory: 'h',
|
|
32
|
+
jsxFragment: 'Fragment',
|
|
33
|
+
target: 'esnext',
|
|
34
|
+
format: 'esm',
|
|
35
|
+
});
|
|
36
|
+
return result.code;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
// If transform fails, return original code and let sandbox handle the error
|
|
40
|
+
console.error('JSX transform failed:', error);
|
|
41
|
+
return code;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Evaluate code in a sandboxed worker
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* import { evaluate } from 'ai-sandbox'
|
|
50
|
+
*
|
|
51
|
+
* // Run a simple script
|
|
52
|
+
* const result = await evaluate({
|
|
53
|
+
* script: 'return 1 + 1'
|
|
54
|
+
* })
|
|
55
|
+
* // { success: true, value: 2, logs: [], duration: ... }
|
|
56
|
+
*
|
|
57
|
+
* // With a module and tests
|
|
58
|
+
* const result = await evaluate({
|
|
59
|
+
* module: `
|
|
60
|
+
* exports.add = (a, b) => a + b;
|
|
61
|
+
* exports.multiply = (a, b) => a * b;
|
|
62
|
+
* `,
|
|
63
|
+
* tests: `
|
|
64
|
+
* describe('math', () => {
|
|
65
|
+
* it('adds numbers', () => {
|
|
66
|
+
* expect(add(2, 3)).toBe(5);
|
|
67
|
+
* });
|
|
68
|
+
* it('multiplies numbers', () => {
|
|
69
|
+
* expect(multiply(2, 3)).toBe(6);
|
|
70
|
+
* });
|
|
71
|
+
* });
|
|
72
|
+
* `,
|
|
73
|
+
* script: 'return add(10, 20)'
|
|
74
|
+
* })
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export async function evaluate(options, env) {
|
|
78
|
+
const start = Date.now();
|
|
79
|
+
try {
|
|
80
|
+
// Transform JSX in module, tests, and script before evaluation
|
|
81
|
+
const transformedOptions = {
|
|
82
|
+
...options,
|
|
83
|
+
module: options.module ? await transformJSX(options.module) : options.module,
|
|
84
|
+
tests: options.tests ? await transformJSX(options.tests) : options.tests,
|
|
85
|
+
script: options.script ? await transformJSX(options.script) : options.script,
|
|
86
|
+
};
|
|
87
|
+
// Use worker_loaders if available (Cloudflare Workers)
|
|
88
|
+
if (env?.LOADER && env?.TEST) {
|
|
89
|
+
return await evaluateWithWorkerLoader(transformedOptions, env.LOADER, env.TEST, start);
|
|
90
|
+
}
|
|
91
|
+
// Fall back to Miniflare with local TestService (Node.js)
|
|
92
|
+
return await evaluateWithMiniflare(transformedOptions, start);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
return {
|
|
96
|
+
success: false,
|
|
97
|
+
logs: [],
|
|
98
|
+
error: error instanceof Error ? error.message : String(error),
|
|
99
|
+
duration: Date.now() - start
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Evaluate using Cloudflare worker_loaders binding
|
|
105
|
+
*/
|
|
106
|
+
async function evaluateWithWorkerLoader(options, loader, testService, start) {
|
|
107
|
+
const workerCode = generateWorkerCode({
|
|
108
|
+
module: options.module,
|
|
109
|
+
tests: options.tests,
|
|
110
|
+
script: options.script,
|
|
111
|
+
sdk: options.sdk,
|
|
112
|
+
imports: options.imports
|
|
113
|
+
});
|
|
114
|
+
const id = `sandbox-${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
115
|
+
const worker = loader.get(id, async () => ({
|
|
116
|
+
mainModule: 'worker.js',
|
|
117
|
+
modules: {
|
|
118
|
+
'worker.js': workerCode
|
|
119
|
+
},
|
|
120
|
+
compatibilityDate: '2024-01-01',
|
|
121
|
+
// Block network access only if fetch: null
|
|
122
|
+
globalOutbound: options.fetch === null ? null : undefined,
|
|
123
|
+
bindings: {
|
|
124
|
+
TEST: testService
|
|
125
|
+
}
|
|
126
|
+
}));
|
|
127
|
+
const response = await worker.fetch(new Request('http://sandbox/execute'));
|
|
128
|
+
const result = await response.json();
|
|
129
|
+
return {
|
|
130
|
+
...result,
|
|
131
|
+
duration: Date.now() - start
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Evaluate using Miniflare (for Node.js/development)
|
|
136
|
+
*
|
|
137
|
+
* For local dev, we use generateDevWorkerCode which bundles the test
|
|
138
|
+
* framework directly. In production, the sandbox worker uses RPC to
|
|
139
|
+
* a deployed ai-tests worker.
|
|
140
|
+
*/
|
|
141
|
+
async function evaluateWithMiniflare(options, start) {
|
|
142
|
+
// Dynamic import to avoid bundling in production
|
|
143
|
+
const { Miniflare } = await import('miniflare');
|
|
144
|
+
const workerCode = generateDevWorkerCode({
|
|
145
|
+
module: options.module,
|
|
146
|
+
tests: options.tests,
|
|
147
|
+
script: options.script,
|
|
148
|
+
sdk: options.sdk,
|
|
149
|
+
imports: options.imports
|
|
150
|
+
});
|
|
151
|
+
const mf = new Miniflare({
|
|
152
|
+
modules: true,
|
|
153
|
+
script: workerCode,
|
|
154
|
+
compatibilityDate: '2024-01-01'
|
|
155
|
+
});
|
|
156
|
+
try {
|
|
157
|
+
const response = await mf.dispatchFetch('http://sandbox/execute');
|
|
158
|
+
const result = await response.json();
|
|
159
|
+
return {
|
|
160
|
+
...result,
|
|
161
|
+
duration: Date.now() - start
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
finally {
|
|
165
|
+
await mf.dispose();
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Create an evaluate function bound to a specific environment
|
|
170
|
+
*
|
|
171
|
+
* Useful for Cloudflare Workers where env is passed to fetch handler.
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```ts
|
|
175
|
+
* // In a Cloudflare Worker
|
|
176
|
+
* export default {
|
|
177
|
+
* async fetch(request, env) {
|
|
178
|
+
* const sandbox = createEvaluator(env)
|
|
179
|
+
* const result = await sandbox({ script: '1 + 1' })
|
|
180
|
+
* return Response.json(result)
|
|
181
|
+
* }
|
|
182
|
+
* }
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
export function createEvaluator(env) {
|
|
186
|
+
return (options) => evaluate(options, env);
|
|
187
|
+
}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ai-sandbox - Secure code execution in sandboxed environments
|
|
3
|
+
*
|
|
4
|
+
* Provides evaluate() for running untrusted code safely using:
|
|
5
|
+
* - Cloudflare worker_loaders in production
|
|
6
|
+
* - Miniflare in development/Node.js
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
export { evaluate, createEvaluator } from './evaluate.js';
|
package/src/types.js
ADDED