ai-evaluate 2.1.1 → 2.1.4
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/.turbo/turbo-build.log +4 -5
- package/.turbo/turbo-test.log +54 -0
- package/.turbo/turbo-typecheck.log +4 -0
- package/CHANGELOG.md +14 -0
- package/README.md +142 -206
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js +3 -1
- package/dist/evaluate.js.map +1 -1
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/worker-template.js.map +1 -1
- package/package.json +3 -3
- package/src/evaluate.ts +3 -1
- package/src/types.ts +8 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
|
|
2
|
+
> ai-evaluate@2.1.3 build /Users/nathanclevenger/projects/primitives.org.ai/packages/ai-evaluate
|
|
3
|
+
> tsc -p tsconfig.json
|
|
4
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
|
|
2
|
+
> ai-evaluate@2.1.3 test /Users/nathanclevenger/projects/primitives.org.ai/packages/ai-evaluate
|
|
3
|
+
> vitest
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
DEV v2.1.9 /Users/nathanclevenger/projects/primitives.org.ai/packages/ai-evaluate
|
|
7
|
+
|
|
8
|
+
✓ test/worker-template.test.ts (65 tests) 7ms
|
|
9
|
+
stdout | test/evaluate.test.ts > evaluate > script execution > captures console output
|
|
10
|
+
hello
|
|
11
|
+
|
|
12
|
+
stderr | test/evaluate.test.ts > evaluate > script execution > captures console output
|
|
13
|
+
warning
|
|
14
|
+
error
|
|
15
|
+
|
|
16
|
+
stdout | test/index.test.ts > types > LogEntry has correct shape
|
|
17
|
+
test
|
|
18
|
+
|
|
19
|
+
stderr | test/evaluate.test.ts > evaluate > script execution > handles script errors
|
|
20
|
+
Script error: test error
|
|
21
|
+
|
|
22
|
+
✓ test/index.test.ts (8 tests) 1959ms
|
|
23
|
+
✓ types > EvaluateOptions interface is usable 1765ms
|
|
24
|
+
stderr | test/evaluate-extended.test.ts > evaluate - extended tests > module errors > captures module runtime errors
|
|
25
|
+
Module error: module error
|
|
26
|
+
|
|
27
|
+
stdout | test/evaluate-extended.test.ts > evaluate - extended tests > console methods > captures console.info
|
|
28
|
+
info message
|
|
29
|
+
|
|
30
|
+
stdout | test/evaluate-extended.test.ts > evaluate - extended tests > console methods > captures console.debug
|
|
31
|
+
debug message
|
|
32
|
+
|
|
33
|
+
stdout | test/evaluate-extended.test.ts > evaluate - extended tests > console methods > stringifies objects in console output
|
|
34
|
+
{ a: 1 }
|
|
35
|
+
|
|
36
|
+
stdout | test/evaluate-extended.test.ts > evaluate - extended tests > console methods > joins multiple console arguments
|
|
37
|
+
a b c
|
|
38
|
+
|
|
39
|
+
stderr | test/evaluate-extended.test.ts > evaluate - extended tests > async scripts > handles Promise rejection in script
|
|
40
|
+
Script error: async error
|
|
41
|
+
|
|
42
|
+
✓ test/evaluate.test.ts (18 tests) 2319ms
|
|
43
|
+
✓ evaluate > script execution > executes simple expressions 1762ms
|
|
44
|
+
✓ test/evaluate-extended.test.ts (40 tests) 2896ms
|
|
45
|
+
✓ evaluate - extended tests > edge cases > handles empty options 1762ms
|
|
46
|
+
|
|
47
|
+
Test Files 4 passed (4)
|
|
48
|
+
Tests 131 passed (131)
|
|
49
|
+
Start at 16:04:47
|
|
50
|
+
Duration 3.30s (transform 119ms, setup 0ms, collect 216ms, tests 7.18s, environment 0ms, prepare 174ms)
|
|
51
|
+
|
|
52
|
+
PASS Waiting for file changes...
|
|
53
|
+
press h to show help, press q to quit
|
|
54
|
+
ELIFECYCLE Test failed. See above for more details.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# ai-evaluate
|
|
2
2
|
|
|
3
|
+
## 2.1.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Documentation and testing improvements
|
|
8
|
+
- Add deterministic AI testing suite with self-validating patterns
|
|
9
|
+
- Apply StoryBrand narrative to all package READMEs
|
|
10
|
+
- Update TESTING.md with four principles of deterministic AI testing
|
|
11
|
+
- Fix duplicate examples package name conflict
|
|
12
|
+
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
- ai-functions@2.1.3
|
|
15
|
+
- ai-tests@2.1.3
|
|
16
|
+
|
|
3
17
|
## 2.1.1
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,92 +1,100 @@
|
|
|
1
1
|
# ai-evaluate
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**You need to run user code. But untrusted code is terrifying.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
One malicious snippet could crash your server, access your file system, or make unauthorized network requests. You've seen the horror stories. You know the risks.
|
|
6
|
+
|
|
7
|
+
What if you could run any code with confidence?
|
|
8
|
+
|
|
9
|
+
## The Solution
|
|
10
|
+
|
|
11
|
+
`ai-evaluate` runs untrusted code in V8 isolates with zero access to your system. No file system. No network (by default). No risk.
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
// Before: Dangerous eval
|
|
15
|
+
const result = eval(userCode) // Could do ANYTHING
|
|
16
|
+
|
|
17
|
+
// After: Sandboxed execution
|
|
18
|
+
import { evaluate } from 'ai-evaluate'
|
|
19
|
+
|
|
20
|
+
const result = await evaluate({
|
|
21
|
+
script: userCode
|
|
22
|
+
})
|
|
23
|
+
// Runs in isolated V8 context - your system is protected
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Quick Start
|
|
27
|
+
|
|
28
|
+
**1. Install**
|
|
6
29
|
|
|
7
30
|
```bash
|
|
8
31
|
pnpm add ai-evaluate
|
|
9
32
|
```
|
|
10
33
|
|
|
11
|
-
|
|
34
|
+
**2. Evaluate code safely**
|
|
12
35
|
|
|
13
36
|
```typescript
|
|
14
37
|
import { evaluate } from 'ai-evaluate'
|
|
15
38
|
|
|
16
|
-
// Run a simple script
|
|
17
39
|
const result = await evaluate({
|
|
18
40
|
script: '1 + 1'
|
|
19
41
|
})
|
|
20
42
|
// { success: true, value: 2, logs: [], duration: 5 }
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**3. Run tests on user code**
|
|
21
46
|
|
|
22
|
-
|
|
47
|
+
```typescript
|
|
23
48
|
const result = await evaluate({
|
|
24
49
|
module: `
|
|
25
50
|
export const add = (a, b) => a + b
|
|
26
|
-
export const multiply = (a, b) => a * b
|
|
27
51
|
`,
|
|
28
52
|
tests: `
|
|
29
|
-
describe('
|
|
53
|
+
describe('add', () => {
|
|
30
54
|
it('adds numbers', () => {
|
|
31
|
-
expect(add(2, 3)).toBe(5)
|
|
32
|
-
})
|
|
33
|
-
it('multiplies numbers', () => {
|
|
34
|
-
expect(multiply(2, 3)).toBe(6);
|
|
55
|
+
expect(add(2, 3)).toBe(5)
|
|
35
56
|
})
|
|
36
57
|
})
|
|
37
|
-
|
|
38
|
-
script: 'add(10, 20)'
|
|
58
|
+
`
|
|
39
59
|
})
|
|
60
|
+
// result.testResults.passed === 1
|
|
40
61
|
```
|
|
41
62
|
|
|
42
|
-
##
|
|
63
|
+
## What You Get
|
|
43
64
|
|
|
44
|
-
- **
|
|
45
|
-
- **
|
|
46
|
-
- **Module
|
|
47
|
-
- **
|
|
48
|
-
- **
|
|
49
|
-
- **Network isolation** - External network access blocked by default
|
|
65
|
+
- **Complete isolation** - Code runs in sandboxed V8 isolates
|
|
66
|
+
- **Built-in testing** - Vitest-compatible `describe`, `it`, `expect`
|
|
67
|
+
- **Module support** - Define exports and use them in scripts/tests
|
|
68
|
+
- **Production-ready** - Cloudflare Workers in production, Miniflare locally
|
|
69
|
+
- **Network blocked** - External access disabled by default
|
|
50
70
|
|
|
51
|
-
## API
|
|
71
|
+
## API Reference
|
|
52
72
|
|
|
53
73
|
### evaluate(options)
|
|
54
74
|
|
|
55
|
-
Execute code in a sandboxed environment.
|
|
56
|
-
|
|
57
75
|
```typescript
|
|
58
76
|
interface EvaluateOptions {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
/** Timeout in milliseconds (default: 5000) */
|
|
66
|
-
timeout?: number
|
|
67
|
-
/** Environment variables */
|
|
68
|
-
env?: Record<string, string>
|
|
77
|
+
module?: string // Module code with exports
|
|
78
|
+
tests?: string // Vitest-style test code
|
|
79
|
+
script?: string // Script to execute
|
|
80
|
+
timeout?: number // Default: 5000ms
|
|
81
|
+
env?: Record<string, string> // Environment variables
|
|
82
|
+
sdk?: SDKConfig | boolean // Enable $, db, ai globals
|
|
69
83
|
}
|
|
70
84
|
|
|
71
85
|
interface EvaluateResult {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
/** Test results (if tests provided) */
|
|
79
|
-
testResults?: TestResults
|
|
80
|
-
/** Error message if failed */
|
|
81
|
-
error?: string
|
|
82
|
-
/** Execution time in ms */
|
|
83
|
-
duration: number
|
|
86
|
+
success: boolean // Execution succeeded
|
|
87
|
+
value?: unknown // Script return value
|
|
88
|
+
logs: LogEntry[] // Console output
|
|
89
|
+
testResults?: TestResults // Test results if tests provided
|
|
90
|
+
error?: string // Error message if failed
|
|
91
|
+
duration: number // Execution time in ms
|
|
84
92
|
}
|
|
85
93
|
```
|
|
86
94
|
|
|
87
95
|
### createEvaluator(env)
|
|
88
96
|
|
|
89
|
-
|
|
97
|
+
Bind to a Cloudflare Workers environment.
|
|
90
98
|
|
|
91
99
|
```typescript
|
|
92
100
|
import { createEvaluator } from 'ai-evaluate'
|
|
@@ -94,24 +102,22 @@ import { createEvaluator } from 'ai-evaluate'
|
|
|
94
102
|
export default {
|
|
95
103
|
async fetch(request, env) {
|
|
96
104
|
const sandbox = createEvaluator(env)
|
|
97
|
-
const result = await sandbox({
|
|
98
|
-
script: '1 + 1'
|
|
99
|
-
})
|
|
105
|
+
const result = await sandbox({ script: '1 + 1' })
|
|
100
106
|
return Response.json(result)
|
|
101
107
|
}
|
|
102
108
|
}
|
|
103
109
|
```
|
|
104
110
|
|
|
105
|
-
## Usage
|
|
111
|
+
## Usage Examples
|
|
106
112
|
|
|
107
|
-
### Simple Script
|
|
113
|
+
### Simple Script
|
|
108
114
|
|
|
109
115
|
```typescript
|
|
110
116
|
const result = await evaluate({
|
|
111
117
|
script: `
|
|
112
|
-
const x = 10
|
|
113
|
-
const y = 20
|
|
114
|
-
return x + y
|
|
118
|
+
const x = 10
|
|
119
|
+
const y = 20
|
|
120
|
+
return x + y
|
|
115
121
|
`
|
|
116
122
|
})
|
|
117
123
|
// result.value === 30
|
|
@@ -122,189 +128,137 @@ const result = await evaluate({
|
|
|
122
128
|
```typescript
|
|
123
129
|
const result = await evaluate({
|
|
124
130
|
module: `
|
|
125
|
-
exports.greet = (name) => \`Hello, \${name}
|
|
126
|
-
exports.sum = (...nums) => nums.reduce((a, b) => a + b, 0)
|
|
131
|
+
exports.greet = (name) => \`Hello, \${name}!\`
|
|
132
|
+
exports.sum = (...nums) => nums.reduce((a, b) => a + b, 0)
|
|
127
133
|
`,
|
|
128
134
|
script: `
|
|
129
|
-
console.log(greet('World'))
|
|
130
|
-
return sum(1, 2, 3, 4, 5)
|
|
135
|
+
console.log(greet('World'))
|
|
136
|
+
return sum(1, 2, 3, 4, 5)
|
|
131
137
|
`
|
|
132
138
|
})
|
|
133
139
|
// result.value === 15
|
|
134
140
|
// result.logs[0].message === 'Hello, World!'
|
|
135
141
|
```
|
|
136
142
|
|
|
137
|
-
###
|
|
143
|
+
### Testing User Code
|
|
138
144
|
|
|
139
145
|
```typescript
|
|
140
146
|
const result = await evaluate({
|
|
141
147
|
module: `
|
|
142
148
|
exports.isPrime = (n) => {
|
|
143
|
-
if (n < 2) return false
|
|
149
|
+
if (n < 2) return false
|
|
144
150
|
for (let i = 2; i <= Math.sqrt(n); i++) {
|
|
145
|
-
if (n % i === 0) return false
|
|
151
|
+
if (n % i === 0) return false
|
|
146
152
|
}
|
|
147
|
-
return true
|
|
148
|
-
}
|
|
153
|
+
return true
|
|
154
|
+
}
|
|
149
155
|
`,
|
|
150
156
|
tests: `
|
|
151
157
|
describe('isPrime', () => {
|
|
152
158
|
it('returns false for numbers less than 2', () => {
|
|
153
|
-
expect(isPrime(0)).toBe(false)
|
|
154
|
-
expect(isPrime(1)).toBe(false)
|
|
155
|
-
})
|
|
159
|
+
expect(isPrime(0)).toBe(false)
|
|
160
|
+
expect(isPrime(1)).toBe(false)
|
|
161
|
+
})
|
|
156
162
|
|
|
157
163
|
it('returns true for prime numbers', () => {
|
|
158
|
-
expect(isPrime(2)).toBe(true)
|
|
159
|
-
expect(isPrime(
|
|
160
|
-
|
|
161
|
-
});
|
|
164
|
+
expect(isPrime(2)).toBe(true)
|
|
165
|
+
expect(isPrime(17)).toBe(true)
|
|
166
|
+
})
|
|
162
167
|
|
|
163
168
|
it('returns false for composite numbers', () => {
|
|
164
|
-
expect(isPrime(4)).toBe(false)
|
|
165
|
-
expect(isPrime(
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
});
|
|
169
|
+
expect(isPrime(4)).toBe(false)
|
|
170
|
+
expect(isPrime(100)).toBe(false)
|
|
171
|
+
})
|
|
172
|
+
})
|
|
169
173
|
`
|
|
170
174
|
})
|
|
171
175
|
|
|
172
|
-
|
|
173
|
-
// {
|
|
174
|
-
// total: 3,
|
|
175
|
-
// passed: 3,
|
|
176
|
-
// failed: 0,
|
|
177
|
-
// skipped: 0,
|
|
178
|
-
// tests: [...]
|
|
179
|
-
// }
|
|
176
|
+
// result.testResults = { total: 3, passed: 3, failed: 0, ... }
|
|
180
177
|
```
|
|
181
178
|
|
|
182
179
|
## Test Framework
|
|
183
180
|
|
|
184
|
-
|
|
181
|
+
Full vitest-compatible API with async support.
|
|
185
182
|
|
|
186
|
-
###
|
|
183
|
+
### Test Structure
|
|
187
184
|
|
|
188
185
|
```typescript
|
|
189
|
-
describe('group
|
|
190
|
-
it('test name', () => {
|
|
191
|
-
|
|
192
|
-
})
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
// test code
|
|
196
|
-
});
|
|
197
|
-
|
|
198
|
-
it.skip('skipped test', () => {
|
|
199
|
-
// won't run
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
it.only('only this test', () => {
|
|
203
|
-
// when .only is used, only these tests run
|
|
204
|
-
});
|
|
205
|
-
});
|
|
186
|
+
describe('group', () => {
|
|
187
|
+
it('test name', () => { /* ... */ })
|
|
188
|
+
test('another test', () => { /* ... */ })
|
|
189
|
+
it.skip('skipped', () => { /* ... */ })
|
|
190
|
+
it.only('focused', () => { /* ... */ })
|
|
191
|
+
})
|
|
206
192
|
```
|
|
207
193
|
|
|
208
194
|
### Async Tests
|
|
209
195
|
|
|
210
196
|
```typescript
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
});
|
|
216
|
-
|
|
217
|
-
it('supports promises', () => {
|
|
218
|
-
return fetchData().then(data => {
|
|
219
|
-
expect(data).toBeDefined();
|
|
220
|
-
});
|
|
221
|
-
});
|
|
222
|
-
});
|
|
197
|
+
it('async/await', async () => {
|
|
198
|
+
const result = await someAsyncFunction()
|
|
199
|
+
expect(result).toBe('expected')
|
|
200
|
+
})
|
|
223
201
|
```
|
|
224
202
|
|
|
225
203
|
### Hooks
|
|
226
204
|
|
|
227
205
|
```typescript
|
|
228
206
|
describe('with setup', () => {
|
|
229
|
-
let data
|
|
230
|
-
|
|
231
|
-
beforeEach(() => {
|
|
232
|
-
data = { count: 0 };
|
|
233
|
-
});
|
|
207
|
+
let data
|
|
234
208
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
});
|
|
209
|
+
beforeEach(() => { data = { count: 0 } })
|
|
210
|
+
afterEach(() => { data = null })
|
|
238
211
|
|
|
239
|
-
it('uses setup
|
|
240
|
-
data.count
|
|
241
|
-
expect(data.count).toBe(1)
|
|
242
|
-
})
|
|
243
|
-
})
|
|
212
|
+
it('uses setup', () => {
|
|
213
|
+
data.count++
|
|
214
|
+
expect(data.count).toBe(1)
|
|
215
|
+
})
|
|
216
|
+
})
|
|
244
217
|
```
|
|
245
218
|
|
|
246
|
-
###
|
|
219
|
+
### Matchers
|
|
247
220
|
|
|
248
221
|
```typescript
|
|
249
222
|
// Equality
|
|
250
|
-
expect(value).toBe(expected)
|
|
251
|
-
expect(value).toEqual(expected)
|
|
252
|
-
expect(value).toStrictEqual(expected)
|
|
223
|
+
expect(value).toBe(expected)
|
|
224
|
+
expect(value).toEqual(expected)
|
|
225
|
+
expect(value).toStrictEqual(expected)
|
|
253
226
|
|
|
254
227
|
// Truthiness
|
|
255
|
-
expect(value).toBeTruthy()
|
|
256
|
-
expect(value).toBeFalsy()
|
|
257
|
-
expect(value).toBeNull()
|
|
258
|
-
expect(value).toBeUndefined()
|
|
259
|
-
expect(value).toBeDefined()
|
|
260
|
-
expect(value).toBeNaN() // NaN check
|
|
228
|
+
expect(value).toBeTruthy()
|
|
229
|
+
expect(value).toBeFalsy()
|
|
230
|
+
expect(value).toBeNull()
|
|
231
|
+
expect(value).toBeUndefined()
|
|
232
|
+
expect(value).toBeDefined()
|
|
261
233
|
|
|
262
234
|
// Numbers
|
|
263
|
-
expect(value).toBeGreaterThan(n)
|
|
264
|
-
expect(value).toBeLessThan(n)
|
|
265
|
-
expect(value).
|
|
266
|
-
expect(value).toBeLessThanOrEqual(n) // <= comparison
|
|
267
|
-
expect(value).toBeCloseTo(n, digits) // Floating point comparison
|
|
235
|
+
expect(value).toBeGreaterThan(n)
|
|
236
|
+
expect(value).toBeLessThan(n)
|
|
237
|
+
expect(value).toBeCloseTo(n, digits)
|
|
268
238
|
|
|
269
|
-
// Strings
|
|
270
|
-
expect(value).toMatch(/pattern/)
|
|
271
|
-
expect(value).
|
|
272
|
-
|
|
273
|
-
// Arrays & Strings
|
|
274
|
-
expect(value).toContain(item) // Array/string contains
|
|
275
|
-
expect(value).toContainEqual(item) // Array contains (deep equality)
|
|
276
|
-
expect(value).toHaveLength(n) // Length check
|
|
239
|
+
// Strings & Arrays
|
|
240
|
+
expect(value).toMatch(/pattern/)
|
|
241
|
+
expect(value).toContain(item)
|
|
242
|
+
expect(value).toHaveLength(n)
|
|
277
243
|
|
|
278
244
|
// Objects
|
|
279
|
-
expect(value).toHaveProperty('path')
|
|
280
|
-
expect(value).
|
|
281
|
-
expect(value).toMatchObject(partial) // Partial object match
|
|
282
|
-
|
|
283
|
-
// Types
|
|
284
|
-
expect(value).toBeInstanceOf(Class) // instanceof check
|
|
285
|
-
expect(value).toBeTypeOf('string') // typeof check
|
|
245
|
+
expect(value).toHaveProperty('path')
|
|
246
|
+
expect(value).toMatchObject(partial)
|
|
286
247
|
|
|
287
248
|
// Errors
|
|
288
|
-
expect(fn).toThrow()
|
|
289
|
-
expect(fn).toThrow('message')
|
|
290
|
-
expect(fn).toThrow(/pattern/) // Throws matching pattern
|
|
291
|
-
expect(fn).toThrow(ErrorClass) // Throws specific error type
|
|
249
|
+
expect(fn).toThrow()
|
|
250
|
+
expect(fn).toThrow('message')
|
|
292
251
|
|
|
293
|
-
//
|
|
252
|
+
// Negation
|
|
294
253
|
expect(value).not.toBe(expected)
|
|
295
|
-
expect(value).not.toEqual(expected)
|
|
296
|
-
expect(value).not.toContain(item)
|
|
297
|
-
expect(fn).not.toThrow()
|
|
298
254
|
|
|
299
|
-
//
|
|
255
|
+
// Promises
|
|
300
256
|
await expect(promise).resolves.toBe(value)
|
|
301
257
|
await expect(promise).rejects.toThrow('error')
|
|
302
258
|
```
|
|
303
259
|
|
|
304
260
|
## Cloudflare Workers Setup
|
|
305
261
|
|
|
306
|
-
To use in Cloudflare Workers with worker_loaders:
|
|
307
|
-
|
|
308
262
|
### wrangler.toml
|
|
309
263
|
|
|
310
264
|
```toml
|
|
@@ -315,7 +269,7 @@ main = "src/index.ts"
|
|
|
315
269
|
binding = "LOADER"
|
|
316
270
|
```
|
|
317
271
|
|
|
318
|
-
### Worker
|
|
272
|
+
### Worker
|
|
319
273
|
|
|
320
274
|
```typescript
|
|
321
275
|
import { createEvaluator } from 'ai-evaluate'
|
|
@@ -327,7 +281,6 @@ export interface Env {
|
|
|
327
281
|
export default {
|
|
328
282
|
async fetch(request: Request, env: Env): Promise<Response> {
|
|
329
283
|
const sandbox = createEvaluator(env)
|
|
330
|
-
|
|
331
284
|
const { code, tests } = await request.json()
|
|
332
285
|
|
|
333
286
|
const result = await sandbox({
|
|
@@ -340,58 +293,33 @@ export default {
|
|
|
340
293
|
}
|
|
341
294
|
```
|
|
342
295
|
|
|
343
|
-
##
|
|
296
|
+
## Local Development
|
|
344
297
|
|
|
345
|
-
In Node.js
|
|
298
|
+
In Node.js, Miniflare is used automatically:
|
|
346
299
|
|
|
347
300
|
```typescript
|
|
348
301
|
import { evaluate } from 'ai-evaluate'
|
|
349
302
|
|
|
350
|
-
// Miniflare is used automatically when LOADER binding is not present
|
|
351
303
|
const result = await evaluate({
|
|
352
304
|
script: 'return "Hello from Node!"'
|
|
353
305
|
})
|
|
354
306
|
```
|
|
355
307
|
|
|
356
|
-
|
|
308
|
+
Ensure Miniflare is installed:
|
|
357
309
|
|
|
358
310
|
```bash
|
|
359
311
|
pnpm add miniflare
|
|
360
312
|
```
|
|
361
313
|
|
|
362
|
-
## Security
|
|
363
|
-
|
|
364
|
-
The sandbox provides several security features:
|
|
365
|
-
|
|
366
|
-
1. **V8 Isolate** - Code runs in an isolated V8 context
|
|
367
|
-
2. **No Network** - External network access is blocked (`globalOutbound: null`)
|
|
368
|
-
3. **No File System** - No access to the file system
|
|
369
|
-
4. **Memory Limits** - Standard Worker memory limits apply
|
|
370
|
-
5. **CPU Limits** - Execution time is limited
|
|
314
|
+
## Security Model
|
|
371
315
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
app.post('/evaluate', async (c) => {
|
|
381
|
-
const { module, tests, script } = await c.req.json()
|
|
382
|
-
|
|
383
|
-
const result = await evaluate({
|
|
384
|
-
module,
|
|
385
|
-
tests,
|
|
386
|
-
script,
|
|
387
|
-
timeout: 5000
|
|
388
|
-
})
|
|
389
|
-
|
|
390
|
-
return c.json(result)
|
|
391
|
-
})
|
|
392
|
-
|
|
393
|
-
export default app
|
|
394
|
-
```
|
|
316
|
+
| Protection | Description |
|
|
317
|
+
|------------|-------------|
|
|
318
|
+
| V8 Isolate | Code runs in isolated V8 context |
|
|
319
|
+
| No Network | External access blocked by default |
|
|
320
|
+
| No File System | Zero filesystem access |
|
|
321
|
+
| Memory Limits | Standard Worker limits apply |
|
|
322
|
+
| CPU Limits | Execution time bounded |
|
|
395
323
|
|
|
396
324
|
## Types
|
|
397
325
|
|
|
@@ -418,3 +346,11 @@ interface TestResult {
|
|
|
418
346
|
duration: number
|
|
419
347
|
}
|
|
420
348
|
```
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
**Stop worrying about untrusted code. Start building.**
|
|
353
|
+
|
|
354
|
+
```bash
|
|
355
|
+
pnpm add ai-evaluate
|
|
356
|
+
```
|
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;
|
|
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;AAqFD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,IACrC,SAAS,eAAe,6BACjC"}
|
package/dist/evaluate.js
CHANGED
|
@@ -124,7 +124,9 @@ async function evaluateWithWorkerLoader(options, loader, testService, start) {
|
|
|
124
124
|
TEST: testService
|
|
125
125
|
}
|
|
126
126
|
}));
|
|
127
|
-
|
|
127
|
+
// Get the entrypoint and call fetch (required by Cloudflare worker_loaders API)
|
|
128
|
+
const entrypoint = worker.getEntrypoint();
|
|
129
|
+
const response = await entrypoint.fetch(new Request('http://sandbox/execute'));
|
|
128
130
|
const result = await response.json();
|
|
129
131
|
return {
|
|
130
132
|
...result,
|
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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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -123,11 +123,17 @@ export interface WorkerCode {
|
|
|
123
123
|
env?: Record<string, unknown>;
|
|
124
124
|
globalOutbound?: null | unknown;
|
|
125
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Worker entrypoint with fetch method
|
|
128
|
+
*/
|
|
129
|
+
export interface WorkerEntrypoint {
|
|
130
|
+
fetch(request: Request): Promise<Response>;
|
|
131
|
+
}
|
|
126
132
|
/**
|
|
127
133
|
* Worker stub returned by loader
|
|
128
134
|
*/
|
|
129
135
|
export interface WorkerStub {
|
|
130
|
-
|
|
136
|
+
getEntrypoint(): WorkerEntrypoint;
|
|
131
137
|
}
|
|
132
138
|
/**
|
|
133
139
|
* Test service core - returned by connect() (from ai-tests)
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.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,CAAC;QAChC,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;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.1.
|
|
3
|
+
"version": "2.1.4",
|
|
4
4
|
"description": "Secure code execution in sandboxed environments",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"clean": "rm -rf dist"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"ai-functions": "
|
|
24
|
-
"ai-tests": "
|
|
23
|
+
"ai-functions": "workspace:*",
|
|
24
|
+
"ai-tests": "workspace:*",
|
|
25
25
|
"capnweb": "^0.2.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
package/src/evaluate.ts
CHANGED
|
@@ -145,7 +145,9 @@ async function evaluateWithWorkerLoader(
|
|
|
145
145
|
}
|
|
146
146
|
}))
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
// Get the entrypoint and call fetch (required by Cloudflare worker_loaders API)
|
|
149
|
+
const entrypoint = worker.getEntrypoint()
|
|
150
|
+
const response = await entrypoint.fetch(new Request('http://sandbox/execute'))
|
|
149
151
|
const result = await response.json() as EvaluateResult
|
|
150
152
|
|
|
151
153
|
return {
|
package/src/types.ts
CHANGED
|
@@ -130,11 +130,18 @@ export interface WorkerCode {
|
|
|
130
130
|
globalOutbound?: null | unknown
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
+
/**
|
|
134
|
+
* Worker entrypoint with fetch method
|
|
135
|
+
*/
|
|
136
|
+
export interface WorkerEntrypoint {
|
|
137
|
+
fetch(request: Request): Promise<Response>
|
|
138
|
+
}
|
|
139
|
+
|
|
133
140
|
/**
|
|
134
141
|
* Worker stub returned by loader
|
|
135
142
|
*/
|
|
136
143
|
export interface WorkerStub {
|
|
137
|
-
|
|
144
|
+
getEntrypoint(): WorkerEntrypoint
|
|
138
145
|
}
|
|
139
146
|
|
|
140
147
|
/**
|