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.
Files changed (100) hide show
  1. package/README.md +90 -3
  2. package/dist/capnweb-bundle.d.ts +10 -0
  3. package/dist/capnweb-bundle.d.ts.map +1 -0
  4. package/dist/capnweb-bundle.js +2596 -0
  5. package/dist/capnweb-bundle.js.map +1 -0
  6. package/dist/evaluate.d.ts +1 -1
  7. package/dist/evaluate.d.ts.map +1 -1
  8. package/dist/evaluate.js +186 -7
  9. package/dist/evaluate.js.map +1 -1
  10. package/dist/index.d.ts +2 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/miniflare-pool.d.ts +109 -0
  15. package/dist/miniflare-pool.d.ts.map +1 -0
  16. package/dist/miniflare-pool.js +308 -0
  17. package/dist/miniflare-pool.js.map +1 -0
  18. package/dist/node.d.ts.map +1 -1
  19. package/dist/node.js +42 -10
  20. package/dist/node.js.map +1 -1
  21. package/dist/shared.d.ts +66 -0
  22. package/dist/shared.d.ts.map +1 -0
  23. package/dist/shared.js +169 -0
  24. package/dist/shared.js.map +1 -0
  25. package/dist/type-guards.d.ts +21 -0
  26. package/dist/type-guards.d.ts.map +1 -0
  27. package/dist/type-guards.js +216 -0
  28. package/dist/type-guards.js.map +1 -0
  29. package/dist/types.d.ts +17 -2
  30. package/dist/types.d.ts.map +1 -1
  31. package/dist/validation.d.ts +26 -0
  32. package/dist/validation.d.ts.map +1 -0
  33. package/dist/validation.js +104 -0
  34. package/dist/validation.js.map +1 -0
  35. package/dist/worker-template/code-transforms.d.ts +9 -0
  36. package/dist/worker-template/code-transforms.d.ts.map +1 -0
  37. package/dist/worker-template/code-transforms.js +28 -0
  38. package/dist/worker-template/code-transforms.js.map +1 -0
  39. package/{src/worker-template.d.ts → dist/worker-template/core.d.ts} +7 -15
  40. package/dist/worker-template/core.d.ts.map +1 -0
  41. package/dist/worker-template/core.js +502 -0
  42. package/dist/worker-template/core.js.map +1 -0
  43. package/dist/worker-template/helpers.d.ts +14 -0
  44. package/dist/worker-template/helpers.d.ts.map +1 -0
  45. package/dist/worker-template/helpers.js +79 -0
  46. package/dist/worker-template/helpers.js.map +1 -0
  47. package/dist/worker-template/index.d.ts +14 -0
  48. package/dist/worker-template/index.d.ts.map +1 -0
  49. package/dist/worker-template/index.js +19 -0
  50. package/dist/worker-template/index.js.map +1 -0
  51. package/dist/worker-template/sdk-generator.d.ts +17 -0
  52. package/dist/worker-template/sdk-generator.d.ts.map +1 -0
  53. package/{src/worker-template.js → dist/worker-template/sdk-generator.js} +377 -1506
  54. package/dist/worker-template/sdk-generator.js.map +1 -0
  55. package/dist/worker-template/test-generator.d.ts +16 -0
  56. package/dist/worker-template/test-generator.d.ts.map +1 -0
  57. package/dist/worker-template/test-generator.js +357 -0
  58. package/dist/worker-template/test-generator.js.map +1 -0
  59. package/dist/worker-template.d.ts +2 -2
  60. package/dist/worker-template.d.ts.map +1 -1
  61. package/dist/worker-template.js +64 -31
  62. package/dist/worker-template.js.map +1 -1
  63. package/example/package.json +7 -3
  64. package/example/src/index.ts +194 -40
  65. package/example/wrangler.jsonc +18 -2
  66. package/package.json +1 -3
  67. package/src/capnweb-bundle.ts +2596 -0
  68. package/src/evaluate.ts +216 -7
  69. package/src/index.ts +3 -1
  70. package/src/miniflare-pool.ts +395 -0
  71. package/src/node.ts +56 -11
  72. package/src/shared.ts +186 -0
  73. package/src/type-guards.ts +323 -0
  74. package/src/types.ts +18 -2
  75. package/src/validation.ts +120 -0
  76. package/src/worker-template/code-transforms.ts +32 -0
  77. package/src/worker-template/core.ts +557 -0
  78. package/src/worker-template/helpers.ts +90 -0
  79. package/src/worker-template/index.ts +23 -0
  80. package/src/{worker-template.ts → worker-template/sdk-generator.ts} +322 -1566
  81. package/src/worker-template/test-generator.ts +358 -0
  82. package/test/miniflare-pool.test.ts +246 -0
  83. package/test/node.test.ts +467 -0
  84. package/test/security.test.ts +1009 -0
  85. package/test/shared.test.ts +105 -0
  86. package/test/type-guards.test.ts +303 -0
  87. package/test/validation.test.ts +240 -0
  88. package/test/worker-template.test.ts +21 -19
  89. package/src/evaluate.js +0 -187
  90. package/src/index.js +0 -10
  91. package/src/node.d.ts +0 -17
  92. package/src/node.d.ts.map +0 -1
  93. package/src/node.js +0 -168
  94. package/src/node.js.map +0 -1
  95. package/src/types.d.ts +0 -172
  96. package/src/types.d.ts.map +0 -1
  97. package/src/types.js +0 -4
  98. package/src/types.js.map +0 -1
  99. package/src/worker-template.d.ts.map +0 -1
  100. 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"}
@@ -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
  /**
@@ -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;AAG3F;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,eAAe,EACxB,GAAG,CAAC,EAAE,UAAU,GACf,OAAO,CAAC,cAAc,CAAC,CAyBzB;AA4CD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,IACrC,SAAS,eAAe,6BACjC"}
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.jsonc: "worker_loaders": [{ "binding": "loader" }]. For Node.js, use: import { evaluate } from "ai-evaluate/node"',
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
- * Evaluate using Cloudflare worker_loaders binding
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: '2026-01-01',
68
- // Block network access only if fetch: null
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
  },
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAwB,EACxB,GAAgB;IAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAExB,IAAI,CAAC;QACH,gFAAgF;QAChF,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,CAAA;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,EAAE;gBACR,KAAK,EACH,4KAA4K;gBAC9K,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC7B,CAAA;QACH,CAAC;QAED,OAAO,MAAM,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7D,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC7B,CAAA;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,wBAAwB,CACrC,OAAwB,EACxB,MAAoB,EACpB,WAAoB,EACpB,KAAa;IAEb,MAAM,UAAU,GAAG,kBAAkB,CAAC;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAA;IACF,MAAM,EAAE,GAAG,WAAW,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAEzE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACzC,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE;YACP,WAAW,EAAE,UAAU;SACxB;QACD,iBAAiB,EAAE,YAAY;QAC/B,2CAA2C;QAC3C,cAAc,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACzD,QAAQ,EAAE;YACR,IAAI,EAAE,WAAW;SAClB;KACF,CAAC,CAAC,CAAA;IAEH,gFAAgF;IAChF,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAA;IACzC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAC9E,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAA;IAExD,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;KAC7B,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe,CAAC,GAAe;IAC7C,OAAO,CAAC,OAAwB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AAC7D,CAAC"}
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 type { EvaluateOptions, EvaluateResult, LogEntry, TestResults, TestResult, SandboxEnv, SDKConfig } from './types.js';
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
@@ -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;AAEzD,YAAY,EACV,eAAe,EACf,cAAc,EACd,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,SAAS,EACV,MAAM,YAAY,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
@@ -8,4 +8,5 @@
8
8
  * @packageDocumentation
9
9
  */
10
10
  export { evaluate, createEvaluator } from './evaluate.js';
11
+ export { normalizeImport, normalizeImports } from './shared.js';
11
12
  //# sourceMappingURL=index.js.map
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"}