ai-evaluate 2.1.6 → 2.1.8
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/README.md +90 -3
- package/dist/capnweb-bundle.d.ts +10 -0
- package/dist/capnweb-bundle.d.ts.map +1 -0
- package/dist/capnweb-bundle.js +2596 -0
- package/dist/capnweb-bundle.js.map +1 -0
- package/dist/evaluate.d.ts +1 -1
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js +186 -7
- package/dist/evaluate.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/miniflare-pool.d.ts +109 -0
- package/dist/miniflare-pool.d.ts.map +1 -0
- package/dist/miniflare-pool.js +308 -0
- package/dist/miniflare-pool.js.map +1 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +42 -10
- package/dist/node.js.map +1 -1
- package/dist/shared.d.ts +66 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +169 -0
- package/dist/shared.js.map +1 -0
- package/dist/type-guards.d.ts +21 -0
- package/dist/type-guards.d.ts.map +1 -0
- package/dist/type-guards.js +216 -0
- package/dist/type-guards.js.map +1 -0
- package/dist/types.d.ts +17 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/validation.d.ts +26 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +104 -0
- package/dist/validation.js.map +1 -0
- package/dist/worker-template/code-transforms.d.ts +9 -0
- package/dist/worker-template/code-transforms.d.ts.map +1 -0
- package/dist/worker-template/code-transforms.js +28 -0
- package/dist/worker-template/code-transforms.js.map +1 -0
- package/{src/worker-template.d.ts → dist/worker-template/core.d.ts} +7 -15
- package/dist/worker-template/core.d.ts.map +1 -0
- package/dist/worker-template/core.js +502 -0
- package/dist/worker-template/core.js.map +1 -0
- package/dist/worker-template/helpers.d.ts +14 -0
- package/dist/worker-template/helpers.d.ts.map +1 -0
- package/dist/worker-template/helpers.js +79 -0
- package/dist/worker-template/helpers.js.map +1 -0
- package/dist/worker-template/index.d.ts +14 -0
- package/dist/worker-template/index.d.ts.map +1 -0
- package/dist/worker-template/index.js +19 -0
- package/dist/worker-template/index.js.map +1 -0
- package/dist/worker-template/sdk-generator.d.ts +17 -0
- package/dist/worker-template/sdk-generator.d.ts.map +1 -0
- package/{src/worker-template.js → dist/worker-template/sdk-generator.js} +377 -1506
- package/dist/worker-template/sdk-generator.js.map +1 -0
- package/dist/worker-template/test-generator.d.ts +16 -0
- package/dist/worker-template/test-generator.d.ts.map +1 -0
- package/dist/worker-template/test-generator.js +357 -0
- package/dist/worker-template/test-generator.js.map +1 -0
- package/dist/worker-template.d.ts +2 -2
- package/dist/worker-template.d.ts.map +1 -1
- package/dist/worker-template.js +64 -31
- package/dist/worker-template.js.map +1 -1
- package/example/package.json +7 -3
- package/example/src/index.ts +194 -40
- package/example/wrangler.jsonc +18 -2
- package/package.json +1 -3
- package/src/capnweb-bundle.ts +2596 -0
- package/src/evaluate.ts +216 -7
- package/src/index.ts +3 -1
- package/src/miniflare-pool.ts +395 -0
- package/src/node.ts +56 -11
- package/src/shared.ts +186 -0
- package/src/type-guards.ts +323 -0
- package/src/types.ts +18 -2
- package/src/validation.ts +120 -0
- package/src/worker-template/code-transforms.ts +32 -0
- package/src/worker-template/core.ts +557 -0
- package/src/worker-template/helpers.ts +90 -0
- package/src/worker-template/index.ts +23 -0
- package/src/{worker-template.ts → worker-template/sdk-generator.ts} +322 -1566
- package/src/worker-template/test-generator.ts +358 -0
- package/test/miniflare-pool.test.ts +246 -0
- package/test/node.test.ts +467 -0
- package/test/security.test.ts +1009 -0
- package/test/shared.test.ts +105 -0
- package/test/type-guards.test.ts +303 -0
- package/test/validation.test.ts +240 -0
- package/test/worker-template.test.ts +21 -19
- package/src/evaluate.js +0 -187
- package/src/index.js +0 -10
- package/src/node.d.ts +0 -17
- package/src/node.d.ts.map +0 -1
- package/src/node.js +0 -168
- package/src/node.js.map +0 -1
- package/src/types.d.ts +0 -172
- package/src/types.d.ts.map +0 -1
- package/src/types.js +0 -4
- package/src/types.js.map +0 -1
- package/src/worker-template.d.ts.map +0 -1
- package/src/worker-template.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capnweb-bundle.js","sourceRoot":"","sources":["../src/capnweb-bundle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0hF7B,CAAA"}
|
package/dist/evaluate.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Requires:
|
|
8
8
|
* - LOADER binding (worker_loaders)
|
|
9
|
-
* - TEST binding (ai-tests service)
|
|
9
|
+
* - TEST binding (ai-tests service) - optional, only needed for test assertions
|
|
10
10
|
*/
|
|
11
11
|
import type { EvaluateOptions, EvaluateResult, SandboxEnv } from './types.js';
|
|
12
12
|
/**
|
package/dist/evaluate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAgB,UAAU,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAgB,UAAU,EAAE,MAAM,YAAY,CAAA;AAyF3F;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,eAAe,EACxB,GAAG,CAAC,EAAE,UAAU,GACf,OAAO,CAAC,cAAc,CAAC,CAiCzB;AA6JD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,IACrC,SAAS,eAAe,6BACjC"}
|
package/dist/evaluate.js
CHANGED
|
@@ -6,9 +6,86 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Requires:
|
|
8
8
|
* - LOADER binding (worker_loaders)
|
|
9
|
-
* - TEST binding (ai-tests service)
|
|
9
|
+
* - TEST binding (ai-tests service) - optional, only needed for test assertions
|
|
10
10
|
*/
|
|
11
|
-
import { generateWorkerCode } from './worker-template.js';
|
|
11
|
+
import { generateWorkerCode } from './worker-template/index.js';
|
|
12
|
+
import { CAPNWEB_SOURCE } from './capnweb-bundle.js';
|
|
13
|
+
import { COMPATIBILITY_DATE, normalizeImport, extractPackageName } from './shared.js';
|
|
14
|
+
/**
|
|
15
|
+
* Generate a minimal worker for simple script execution
|
|
16
|
+
* This doesn't require capnweb or TEST binding
|
|
17
|
+
*/
|
|
18
|
+
function generateSimpleWorkerCode(options) {
|
|
19
|
+
const { module = '', script = '', imports = [] } = options;
|
|
20
|
+
// Build import statements for pre-fetched external modules
|
|
21
|
+
// Modules are fetched by the host worker and included in the worker definition
|
|
22
|
+
const importStatements = imports
|
|
23
|
+
.map((url, i) => `import * as __import${i}__ from './__external_${i}__.js';`)
|
|
24
|
+
.join('\n');
|
|
25
|
+
// Make imports available as globals
|
|
26
|
+
const importGlobals = imports
|
|
27
|
+
.map((specifier, i) => {
|
|
28
|
+
const pkgName = extractPackageName(specifier, i);
|
|
29
|
+
const varName = pkgName === 'lodash' ? '_' : pkgName;
|
|
30
|
+
return `globalThis.${varName} = __import${i}__.default || __import${i}__;
|
|
31
|
+
globalThis.pkg = __import${i}__.default || __import${i}__;`;
|
|
32
|
+
})
|
|
33
|
+
.join('\n');
|
|
34
|
+
// Wrap script to capture return value (code is embedded at build time, no eval)
|
|
35
|
+
const wrappedScript = script
|
|
36
|
+
? `const __executeScript__ = async () => { ${script} }; const __result__ = await __executeScript__();`
|
|
37
|
+
: 'const __result__ = undefined;';
|
|
38
|
+
return `
|
|
39
|
+
// Simple Sandbox Worker
|
|
40
|
+
${importStatements}
|
|
41
|
+
|
|
42
|
+
const logs = [];
|
|
43
|
+
|
|
44
|
+
// Capture console output
|
|
45
|
+
const originalConsole = { ...console };
|
|
46
|
+
const captureConsole = (level) => (...args) => {
|
|
47
|
+
logs.push({
|
|
48
|
+
level,
|
|
49
|
+
message: args.map(a => typeof a === 'object' ? JSON.stringify(a) : String(a)).join(' '),
|
|
50
|
+
timestamp: Date.now()
|
|
51
|
+
});
|
|
52
|
+
originalConsole[level](...args);
|
|
53
|
+
};
|
|
54
|
+
console.log = captureConsole('log');
|
|
55
|
+
console.warn = captureConsole('warn');
|
|
56
|
+
console.error = captureConsole('error');
|
|
57
|
+
console.info = captureConsole('info');
|
|
58
|
+
|
|
59
|
+
// Make imports available globally
|
|
60
|
+
${importGlobals}
|
|
61
|
+
|
|
62
|
+
// User module code (if any)
|
|
63
|
+
${module}
|
|
64
|
+
|
|
65
|
+
export default {
|
|
66
|
+
async fetch(request, env) {
|
|
67
|
+
try {
|
|
68
|
+
// Execute the script (embedded at generation time - no new Function())
|
|
69
|
+
${wrappedScript}
|
|
70
|
+
|
|
71
|
+
return Response.json({
|
|
72
|
+
success: true,
|
|
73
|
+
value: __result__,
|
|
74
|
+
logs,
|
|
75
|
+
duration: 0
|
|
76
|
+
});
|
|
77
|
+
} catch (error) {
|
|
78
|
+
return Response.json({
|
|
79
|
+
success: false,
|
|
80
|
+
error: error.message || String(error),
|
|
81
|
+
logs,
|
|
82
|
+
duration: 0
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
`;
|
|
88
|
+
}
|
|
12
89
|
/**
|
|
13
90
|
* Evaluate code in a sandboxed worker
|
|
14
91
|
*
|
|
@@ -32,10 +109,16 @@ export async function evaluate(options, env) {
|
|
|
32
109
|
return {
|
|
33
110
|
success: false,
|
|
34
111
|
logs: [],
|
|
35
|
-
error: 'Sandbox requires worker_loaders binding. Add to wrangler.
|
|
112
|
+
error: 'Sandbox requires worker_loaders binding. Add to wrangler.toml: [[worker_loaders]] binding = "LOADER". For Node.js, use: import { evaluate } from "ai-evaluate/node"',
|
|
36
113
|
duration: Date.now() - start,
|
|
37
114
|
};
|
|
38
115
|
}
|
|
116
|
+
// Use simple worker for basic script execution (no tests, no SDK)
|
|
117
|
+
const useSimpleWorker = !options.tests && !options.sdk;
|
|
118
|
+
if (useSimpleWorker) {
|
|
119
|
+
return await evaluateSimple(options, loader, start);
|
|
120
|
+
}
|
|
121
|
+
// Use full worker template for tests and SDK features
|
|
39
122
|
return await evaluateWithWorkerLoader(options, loader, env?.TEST, start);
|
|
40
123
|
}
|
|
41
124
|
catch (error) {
|
|
@@ -48,7 +131,100 @@ export async function evaluate(options, env) {
|
|
|
48
131
|
}
|
|
49
132
|
}
|
|
50
133
|
/**
|
|
51
|
-
*
|
|
134
|
+
* Pre-fetch external modules from URLs or package names
|
|
135
|
+
* Returns a map of module name to source code
|
|
136
|
+
*
|
|
137
|
+
* Supports:
|
|
138
|
+
* - Full URLs: https://esm.sh/lodash@4.17.21
|
|
139
|
+
* - Bare package names: lodash, lodash@4.17.21, @scope/pkg
|
|
140
|
+
*
|
|
141
|
+
* Handles esm.sh's redirect-style modules by following the internal import paths.
|
|
142
|
+
*/
|
|
143
|
+
async function prefetchModules(imports) {
|
|
144
|
+
const modules = {};
|
|
145
|
+
await Promise.all(imports.map(async (specifier, i) => {
|
|
146
|
+
try {
|
|
147
|
+
// Normalize bare package names to esm.sh URLs
|
|
148
|
+
const url = normalizeImport(specifier);
|
|
149
|
+
// For esm.sh URLs, try to get the bundled version directly
|
|
150
|
+
let fetchUrl = url;
|
|
151
|
+
if (url.includes('esm.sh/') && !url.includes('.mjs') && !url.includes('.js')) {
|
|
152
|
+
// Parse the esm.sh URL to construct the bundle path
|
|
153
|
+
// e.g., https://esm.sh/lodash@4.17.21 -> https://esm.sh/lodash@4.17.21/es2022/lodash.bundle.mjs
|
|
154
|
+
const urlObj = new URL(url);
|
|
155
|
+
const pathParts = urlObj.pathname.slice(1).split('/');
|
|
156
|
+
const pkgSpec = pathParts[0]; // e.g., "lodash@4.17.21"
|
|
157
|
+
const pkgName = pkgSpec.split('@')[0];
|
|
158
|
+
fetchUrl = `${urlObj.origin}/${pkgSpec}/es2022/${pkgName}.bundle.mjs`;
|
|
159
|
+
}
|
|
160
|
+
const response = await fetch(fetchUrl, { redirect: 'follow' });
|
|
161
|
+
if (!response.ok) {
|
|
162
|
+
// Fallback to original URL if bundle URL fails
|
|
163
|
+
const fallbackResponse = await fetch(url, { redirect: 'follow' });
|
|
164
|
+
if (!fallbackResponse.ok) {
|
|
165
|
+
throw new Error(`Failed to fetch ${url}: ${fallbackResponse.status}`);
|
|
166
|
+
}
|
|
167
|
+
const source = await fallbackResponse.text();
|
|
168
|
+
modules[`__external_${i}__.js`] = source;
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
const source = await response.text();
|
|
172
|
+
// Use a simple module name that can be imported
|
|
173
|
+
const moduleName = `__external_${i}__.js`;
|
|
174
|
+
modules[moduleName] = source;
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
throw new Error(`Failed to fetch import ${specifier}: ${error instanceof Error ? error.message : String(error)}`);
|
|
178
|
+
}
|
|
179
|
+
}));
|
|
180
|
+
return modules;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Simple evaluation without capnweb/TEST dependencies
|
|
184
|
+
*/
|
|
185
|
+
async function evaluateSimple(options, loader, start) {
|
|
186
|
+
// Pre-fetch any external modules
|
|
187
|
+
let externalModules = {};
|
|
188
|
+
if (options.imports && options.imports.length > 0) {
|
|
189
|
+
try {
|
|
190
|
+
externalModules = await prefetchModules(options.imports);
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
return {
|
|
194
|
+
success: false,
|
|
195
|
+
logs: [],
|
|
196
|
+
error: error instanceof Error ? error.message : String(error),
|
|
197
|
+
duration: Date.now() - start,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
const workerCode = generateSimpleWorkerCode({
|
|
202
|
+
module: options.module,
|
|
203
|
+
script: options.script,
|
|
204
|
+
imports: options.imports,
|
|
205
|
+
});
|
|
206
|
+
const id = `sandbox-${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
207
|
+
const worker = loader.get(id, async () => ({
|
|
208
|
+
mainModule: 'worker.js',
|
|
209
|
+
modules: {
|
|
210
|
+
'worker.js': workerCode,
|
|
211
|
+
...externalModules,
|
|
212
|
+
},
|
|
213
|
+
compatibilityDate: COMPATIBILITY_DATE,
|
|
214
|
+
// Block network if fetch is false or null
|
|
215
|
+
globalOutbound: options.fetch === false || options.fetch === null ? null : undefined,
|
|
216
|
+
}));
|
|
217
|
+
// Get the entrypoint and call fetch
|
|
218
|
+
const entrypoint = worker.getEntrypoint();
|
|
219
|
+
const response = await entrypoint.fetch(new Request('http://sandbox/execute'));
|
|
220
|
+
const result = (await response.json());
|
|
221
|
+
return {
|
|
222
|
+
...result,
|
|
223
|
+
duration: Date.now() - start,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Evaluate using full worker template with capnweb and TEST binding
|
|
52
228
|
*/
|
|
53
229
|
async function evaluateWithWorkerLoader(options, loader, testService, start) {
|
|
54
230
|
const workerCode = generateWorkerCode({
|
|
@@ -57,16 +233,19 @@ async function evaluateWithWorkerLoader(options, loader, testService, start) {
|
|
|
57
233
|
script: options.script,
|
|
58
234
|
sdk: options.sdk,
|
|
59
235
|
imports: options.imports,
|
|
236
|
+
fetch: options.fetch,
|
|
60
237
|
});
|
|
61
238
|
const id = `sandbox-${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
62
239
|
const worker = loader.get(id, async () => ({
|
|
63
240
|
mainModule: 'worker.js',
|
|
64
241
|
modules: {
|
|
65
242
|
'worker.js': workerCode,
|
|
243
|
+
// Include capnweb as a module so the worker can import it
|
|
244
|
+
'capnweb.js': CAPNWEB_SOURCE,
|
|
66
245
|
},
|
|
67
|
-
compatibilityDate:
|
|
68
|
-
// Block network
|
|
69
|
-
globalOutbound: options.fetch === null ? null : undefined,
|
|
246
|
+
compatibilityDate: COMPATIBILITY_DATE,
|
|
247
|
+
// Block network if fetch is false or null
|
|
248
|
+
globalOutbound: options.fetch === false || options.fetch === null ? null : undefined,
|
|
70
249
|
bindings: {
|
|
71
250
|
TEST: testService,
|
|
72
251
|
},
|
package/dist/evaluate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,5 +8,6 @@
|
|
|
8
8
|
* @packageDocumentation
|
|
9
9
|
*/
|
|
10
10
|
export { evaluate, createEvaluator } from './evaluate.js';
|
|
11
|
-
export
|
|
11
|
+
export { normalizeImport, normalizeImports } from './shared.js';
|
|
12
|
+
export type { EvaluateOptions, EvaluateResult, LogEntry, TestResults, TestResult, SandboxEnv, SDKConfig, FetchConfig } from './types.js';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE/D,YAAY,EACV,eAAe,EACf,cAAc,EACd,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACZ,MAAM,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Miniflare instance pool for improved performance
|
|
3
|
+
*
|
|
4
|
+
* Reuses Miniflare instances between evaluations instead of creating/disposing
|
|
5
|
+
* for each evaluation, providing 4-5x performance improvement.
|
|
6
|
+
*
|
|
7
|
+
* Uses Miniflare's setOptions() to update the worker script between uses,
|
|
8
|
+
* avoiding the expensive instance creation/teardown cycle.
|
|
9
|
+
*/
|
|
10
|
+
import type { Miniflare as MiniflareType } from 'miniflare';
|
|
11
|
+
/**
|
|
12
|
+
* Pool configuration options
|
|
13
|
+
*/
|
|
14
|
+
export interface PoolConfig {
|
|
15
|
+
/** Number of instances to maintain in the pool (default: 3) */
|
|
16
|
+
size?: number;
|
|
17
|
+
/** Milliseconds before disposing idle instance (default: 30000) */
|
|
18
|
+
maxIdleTime?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Outbound service handler type for network control
|
|
22
|
+
* - () => never: Block all network access (throw error)
|
|
23
|
+
* - (request: Request) => Response | Promise<Response>: Custom handler (allowlist, proxy, etc.)
|
|
24
|
+
*/
|
|
25
|
+
export type OutboundServiceHandler = (() => never) | ((request: Request) => Response | Promise<Response>);
|
|
26
|
+
/**
|
|
27
|
+
* Options for updating a pooled instance's worker
|
|
28
|
+
*/
|
|
29
|
+
export interface WorkerOptions {
|
|
30
|
+
script: string;
|
|
31
|
+
compatibilityDate?: string;
|
|
32
|
+
outboundService?: OutboundServiceHandler;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Configure the Miniflare pool
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* import { configurePool } from 'ai-evaluate/node'
|
|
40
|
+
*
|
|
41
|
+
* configurePool({
|
|
42
|
+
* size: 5, // Keep 5 warm instances
|
|
43
|
+
* maxIdleTime: 60000 // Dispose after 60s idle
|
|
44
|
+
* })
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function configurePool(config: PoolConfig): void;
|
|
48
|
+
/**
|
|
49
|
+
* Get the current pool configuration
|
|
50
|
+
*/
|
|
51
|
+
export declare function getPoolConfig(): Required<PoolConfig>;
|
|
52
|
+
/**
|
|
53
|
+
* Get pool statistics for monitoring
|
|
54
|
+
*/
|
|
55
|
+
export declare function getPoolStats(): {
|
|
56
|
+
size: number;
|
|
57
|
+
available: number;
|
|
58
|
+
inUse: number;
|
|
59
|
+
config: Required<PoolConfig>;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Acquire a Miniflare instance from the pool and configure it with a worker
|
|
63
|
+
*
|
|
64
|
+
* If a free instance is available, it will be reconfigured and returned.
|
|
65
|
+
* Otherwise, a new instance will be created (up to pool size limit).
|
|
66
|
+
* If pool is exhausted, creates a temporary instance.
|
|
67
|
+
*
|
|
68
|
+
* @param workerOptions - Configuration for the worker to run
|
|
69
|
+
* @returns Object with the configured instance and a release function
|
|
70
|
+
*/
|
|
71
|
+
export declare function acquireInstance(workerOptions: WorkerOptions): Promise<{
|
|
72
|
+
instance: MiniflareType;
|
|
73
|
+
release: () => Promise<void>;
|
|
74
|
+
isPooled: boolean;
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* Pre-warm the pool with instances
|
|
78
|
+
*
|
|
79
|
+
* Call this at application startup to avoid cold start latency.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```ts
|
|
83
|
+
* import { warmPool } from 'ai-evaluate/node'
|
|
84
|
+
*
|
|
85
|
+
* // Pre-warm 3 instances at startup
|
|
86
|
+
* await warmPool(3)
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export declare function warmPool(count?: number): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Dispose all instances and clean up the pool
|
|
92
|
+
*
|
|
93
|
+
* Call this before process exit to ensure clean shutdown.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```ts
|
|
97
|
+
* import { disposePool } from 'ai-evaluate/node'
|
|
98
|
+
*
|
|
99
|
+
* process.on('beforeExit', async () => {
|
|
100
|
+
* await disposePool()
|
|
101
|
+
* })
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
export declare function disposePool(): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Reset the pool (for testing purposes)
|
|
107
|
+
*/
|
|
108
|
+
export declare function resetPool(): Promise<void>;
|
|
109
|
+
//# sourceMappingURL=miniflare-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"miniflare-pool.d.ts","sourceRoot":"","sources":["../src/miniflare-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAA4C,MAAM,WAAW,CAAA;AAErG;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAC9B,CAAC,MAAM,KAAK,CAAC,GACb,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,sBAAsB,CAAA;CACzC;AAoCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAMtD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,QAAQ,CAAC,UAAU,CAAC,CAEpD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;CAC7B,CAQA;AAmED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC;IAC3E,QAAQ,EAAE,aAAa,CAAA;IACvB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAC,CAwED;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBjD;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAO/C"}
|