callman-core 1.9.0 → 1.10.0

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 (60) hide show
  1. package/ai-packs/feature-policy.md +26 -0
  2. package/ai-packs/pm-api.md +213 -0
  3. package/ai-packs/sandbox-globals.md +20 -0
  4. package/ai-packs/templating.md +104 -0
  5. package/dist/index.d.ts +5 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +4 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/request/executeRequest.d.ts.map +1 -1
  10. package/dist/request/executeRequest.js +10 -2
  11. package/dist/request/executeRequest.js.map +1 -1
  12. package/dist/scenario-runner/adapters/helpers/request-helpers.d.ts.map +1 -1
  13. package/dist/scenario-runner/adapters/helpers/request-helpers.js +8 -2
  14. package/dist/scenario-runner/adapters/helpers/request-helpers.js.map +1 -1
  15. package/dist/scenario-runner/adapters/script-executor.js +3 -3
  16. package/dist/scenario-runner/adapters/script-executor.js.map +1 -1
  17. package/dist/script/features/log.d.ts.map +1 -1
  18. package/dist/script/features/log.js +23 -4
  19. package/dist/script/features/log.js.map +1 -1
  20. package/dist/script/isolated-runner.d.ts +11 -0
  21. package/dist/script/isolated-runner.d.ts.map +1 -0
  22. package/dist/script/isolated-runner.js +172 -0
  23. package/dist/script/isolated-runner.js.map +1 -0
  24. package/dist/script/pm-api-metadata.d.ts +19 -0
  25. package/dist/script/pm-api-metadata.d.ts.map +1 -0
  26. package/dist/script/pm-api-metadata.js +264 -0
  27. package/dist/script/pm-api-metadata.js.map +1 -0
  28. package/dist/script/scope.d.ts +2 -0
  29. package/dist/script/scope.d.ts.map +1 -1
  30. package/dist/script/scope.js +4 -0
  31. package/dist/script/scope.js.map +1 -1
  32. package/dist/script/worker-entry.d.ts +2 -0
  33. package/dist/script/worker-entry.d.ts.map +1 -0
  34. package/dist/script/worker-entry.js +79 -0
  35. package/dist/script/worker-entry.js.map +1 -0
  36. package/dist/utils/jsonc.d.ts +2 -0
  37. package/dist/utils/jsonc.d.ts.map +1 -0
  38. package/dist/utils/jsonc.js +101 -0
  39. package/dist/utils/jsonc.js.map +1 -0
  40. package/dist-cjs/index.js +11 -1
  41. package/dist-cjs/index.js.map +1 -1
  42. package/dist-cjs/request/executeRequest.js +10 -2
  43. package/dist-cjs/request/executeRequest.js.map +1 -1
  44. package/dist-cjs/scenario-runner/adapters/helpers/request-helpers.js +8 -2
  45. package/dist-cjs/scenario-runner/adapters/helpers/request-helpers.js.map +1 -1
  46. package/dist-cjs/scenario-runner/adapters/script-executor.js +3 -3
  47. package/dist-cjs/scenario-runner/adapters/script-executor.js.map +1 -1
  48. package/dist-cjs/script/features/log.js +23 -4
  49. package/dist-cjs/script/features/log.js.map +1 -1
  50. package/dist-cjs/script/isolated-runner.js +209 -0
  51. package/dist-cjs/script/isolated-runner.js.map +1 -0
  52. package/dist-cjs/script/pm-api-metadata.js +267 -0
  53. package/dist-cjs/script/pm-api-metadata.js.map +1 -0
  54. package/dist-cjs/script/scope.js +5 -1
  55. package/dist-cjs/script/scope.js.map +1 -1
  56. package/dist-cjs/script/worker-entry.js +81 -0
  57. package/dist-cjs/script/worker-entry.js.map +1 -0
  58. package/dist-cjs/utils/jsonc.js +105 -0
  59. package/dist-cjs/utils/jsonc.js.map +1 -0
  60. package/package.json +8 -3
@@ -22,13 +22,32 @@ const stringifyArgument = (value) => {
22
22
  return String(value);
23
23
  }
24
24
  };
25
+ // Hard caps so a runaway script (e.g. `while (true) { console.log("x") }`)
26
+ // cannot exhaust host memory or produce a multi-gigabyte result payload.
27
+ // Once the entry cap is hit, append becomes a cheap no-op — which also lets
28
+ // the vm-level `timeout` actually interrupt the now CPU-bound loop instead of
29
+ // the host drowning in allocations first.
30
+ const MAX_LOG_ENTRIES = 1000;
31
+ const MAX_MESSAGE_LENGTH = 8192;
25
32
  export const createLogCollector = () => {
26
33
  const logs = [];
34
+ let truncated = false;
27
35
  const append = (level, args) => {
28
- logs.push({
29
- level,
30
- message: args.map((entry) => stringifyArgument(entry)).join(" "),
31
- });
36
+ if (logs.length >= MAX_LOG_ENTRIES) {
37
+ if (!truncated) {
38
+ truncated = true;
39
+ logs.push({
40
+ level: "warn",
41
+ message: `… log output truncated (limit of ${MAX_LOG_ENTRIES} entries reached)`,
42
+ });
43
+ }
44
+ return;
45
+ }
46
+ let message = args.map((entry) => stringifyArgument(entry)).join(" ");
47
+ if (message.length > MAX_MESSAGE_LENGTH) {
48
+ message = `${message.slice(0, MAX_MESSAGE_LENGTH)}… (truncated)`;
49
+ }
50
+ logs.push({ level, message });
32
51
  };
33
52
  return {
34
53
  pmLog: (...args) => append("log", args),
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/script/features/log.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,0EAA0E;AAC1E,sEAAsE;AACtE,8BAA8B;AAI9B,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAU,EAAE;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9E,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AAcF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAiB,EAAE;IACnD,MAAM,IAAI,GAAqB,EAAE,CAAC;IAElC,MAAM,MAAM,GAAG,CAAC,KAA8B,EAAE,IAAe,EAAQ,EAAE;QACvE,IAAI,CAAC,IAAI,CAAC;YACR,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SACjE,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;QAClD,UAAU,EAAE;YACV,GAAG,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;YAChD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;YAClD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;YAClD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;YACpD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;SACrD;QACD,IAAI;KACL,CAAC;AACJ,CAAC,CAAC;AAEF,8EAA8E;AAC9E,yEAAyE;AACzE,uEAAuE;AACvE,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAiB,EAAE,CAAC,CAAC;IAC3D,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;IACtB,UAAU,EAAE;QACV,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS;QACpB,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;QACrB,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;QACrB,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;QACtB,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;KACvB;IACD,IAAI,EAAE,EAAE;CACT,CAAC,CAAC"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/script/features/log.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,0EAA0E;AAC1E,sEAAsE;AACtE,8BAA8B;AAI9B,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAU,EAAE;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9E,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AAcF,2EAA2E;AAC3E,yEAAyE;AACzE,4EAA4E;AAC5E,8EAA8E;AAC9E,0CAA0C;AAC1C,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAiB,EAAE;IACnD,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,MAAM,GAAG,CAAC,KAA8B,EAAE,IAAe,EAAQ,EAAE;QACvE,IAAI,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,oCAAoC,eAAe,mBAAmB;iBAChF,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACxC,OAAO,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;QAClD,UAAU,EAAE;YACV,GAAG,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;YAChD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;YAClD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;YAClD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;YACpD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;SACrD;QACD,IAAI;KACL,CAAC;AACJ,CAAC,CAAC;AAEF,8EAA8E;AAC9E,yEAAyE;AACzE,uEAAuE;AACvE,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAiB,EAAE,CAAC,CAAC;IAC3D,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;IACtB,UAAU,EAAE;QACV,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS;QACpB,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;QACrB,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;QACrB,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;QACtB,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;KACvB;IACD,IAAI,EAAE,EAAE;CACT,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { AbortLikeSignal } from "../scenario-runner/types.js";
2
+ import type { ExecuteScriptInput, ExecuteScriptResult, SendRequestExecutor } from "./types.js";
3
+ export interface RunScriptIsolatedOptions {
4
+ /** Host HTTP executor for pm.sendRequest. When provided, the worker routes
5
+ * pm.sendRequest(...) back to it over the MessagePort. */
6
+ onSendRequest?: SendRequestExecutor;
7
+ /** External cancellation (e.g. scenario run aborted / node timeout). */
8
+ signal?: AbortLikeSignal;
9
+ }
10
+ export declare const runScriptIsolated: (input: ExecuteScriptInput, options?: RunScriptIsolatedOptions) => Promise<ExecuteScriptResult>;
11
+ //# sourceMappingURL=isolated-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolated-runner.d.ts","sourceRoot":"","sources":["../../src/script/isolated-runner.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EAEnB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAQpB,MAAM,WAAW,wBAAwB;IACvC;+DAC2D;IAC3D,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,wEAAwE;IACxE,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAqCD,eAAO,MAAM,iBAAiB,GAC5B,OAAO,kBAAkB,EACzB,UAAS,wBAA6B,KACrC,OAAO,CAAC,mBAAmB,CA6H7B,CAAC"}
@@ -0,0 +1,172 @@
1
+ // Worker-isolated script runner.
2
+ //
3
+ // `executeScript` runs the user script in a vm with a `timeout`, but that
4
+ // timeout only bounds *synchronous* execution and a host running it inline is
5
+ // still blocked for up to `timeoutMs` (and a pathological loop that defeats the
6
+ // vm watchdog blocks it forever). Running the script in a worker_threads Worker
7
+ // keeps the HOST thread (Electron main / backend BullMQ worker) responsive: the
8
+ // host-side watchdog can always fire and hard-kill the worker via terminate().
9
+ //
10
+ // Scenario script-node capabilities are fully serializable EXCEPT the
11
+ // `pm.sendRequest` host executor, which is proxied back to the host over the
12
+ // MessagePort (the only RPC needed). db/kafka/redis host executors are not used
13
+ // by scenario scripts and are dropped before the worker runs.
14
+ //
15
+ // Node-only: imports `node:worker_threads`. The renderer never imports this
16
+ // module (it provides its own scenario adapters), so it never enters the
17
+ // browser bundle. Both Node consumers (electron main + backend) load the CJS
18
+ // build, where `__dirname` resolves the sibling worker entry.
19
+ // `node:worker_threads` / `node:path` are imported LAZILY inside the worker
20
+ // branch (not at module top level). The barrel re-exports runScriptIsolated, so
21
+ // this module is pulled into the renderer's bundle even though it never calls
22
+ // it; a top-level node-builtin import would be externalized by Vite and throw
23
+ // at module-eval time ("Module node:worker_threads has been externalized…").
24
+ // Type-only imports are erased, so they're safe.
25
+ import { executeScript } from "./executor.js";
26
+ import { toSerializableError } from "./errors.js";
27
+ const DEFAULT_TIMEOUT_MS = 15_000;
28
+ // Grace beyond the in-worker vm timeout before the host hard-kills the worker.
29
+ // The vm `timeout` should reject first on a normal CPU loop; this backstop
30
+ // guarantees termination even if the worker event loop is wedged.
31
+ const HARD_KILL_MARGIN_MS = 2_000;
32
+ // Strip non-serializable callbacks from capabilities before posting to the
33
+ // worker. sendRequest is re-attached inside the worker as an RPC proxy; db /
34
+ // kafka / redis host executors are dropped (unused by scenario scripts).
35
+ const toWorkerCapabilities = (capabilities) => {
36
+ const extensions = capabilities.extensions ?? {};
37
+ return {
38
+ ...capabilities,
39
+ extensions: {
40
+ log: extensions.log,
41
+ node: extensions.node,
42
+ cryptojs: extensions.cryptojs,
43
+ variables: extensions.variables,
44
+ counter: extensions.counter,
45
+ // `{ rng }` carries a function — fall back to the worker's default RNG.
46
+ random: typeof extensions.random === "object" ? true : extensions.random,
47
+ },
48
+ };
49
+ };
50
+ const buildTerminalResult = (input, message, error) => ({
51
+ success: false,
52
+ error: typeof error !== "undefined"
53
+ ? toSerializableError(input.stage ?? "script", error)
54
+ : { stage: input.stage ?? "script", message, lineNumber: null, column: null, stack: null },
55
+ testResults: [],
56
+ variableMutations: [],
57
+ logs: [],
58
+ hasReturnValue: false,
59
+ });
60
+ export const runScriptIsolated = async (input, options = {}) => {
61
+ const timeoutMs = input.timeoutMs ?? DEFAULT_TIMEOUT_MS;
62
+ // The worker entry sits next to this module; resolve it via __dirname, which
63
+ // only exists in the CommonJS build. Both Node hosts (Electron main, backend
64
+ // worker) load the CJS build → full worker isolation. In the ESM build
65
+ // __dirname is undefined (tests / non-Node consumers) → fall back to inline
66
+ // execution; the Phase-1 log caps + the vm-level timeout still bound the
67
+ // script. Direct eval keeps the bare `__dirname` out of the ESM compile
68
+ // (where the name is unresolved) while still seeing it in the CJS scope.
69
+ // eslint-disable-next-line no-eval
70
+ const moduleDir = eval("typeof __dirname !== 'undefined' ? __dirname : undefined");
71
+ if (!moduleDir) {
72
+ return executeScript(options.onSendRequest
73
+ ? {
74
+ ...input,
75
+ capabilities: {
76
+ ...input.capabilities,
77
+ extensions: {
78
+ ...(input.capabilities.extensions ?? {}),
79
+ sendRequest: { execute: options.onSendRequest },
80
+ },
81
+ },
82
+ }
83
+ : input);
84
+ }
85
+ // Lazy node-builtin imports — only reached in the CJS Node hosts, never in
86
+ // the renderer (which never calls this function).
87
+ const { Worker } = await import("node:worker_threads");
88
+ const { join } = await import("node:path");
89
+ const workerPath = join(moduleDir, "worker-entry.js");
90
+ const workerInput = {
91
+ ...input,
92
+ capabilities: toWorkerCapabilities(input.capabilities),
93
+ };
94
+ return await new Promise((resolve) => {
95
+ let settled = false;
96
+ let worker;
97
+ const finish = (result) => {
98
+ if (settled) {
99
+ return;
100
+ }
101
+ settled = true;
102
+ clearTimeout(killTimer);
103
+ options.signal?.removeEventListener?.("abort", onAbort);
104
+ void worker?.terminate();
105
+ resolve(result);
106
+ };
107
+ const killTimer = setTimeout(() => {
108
+ finish(buildTerminalResult(input, `Script timed out after ${timeoutMs}ms`));
109
+ }, timeoutMs + HARD_KILL_MARGIN_MS);
110
+ const onAbort = () => {
111
+ finish(buildTerminalResult(input, "Script execution aborted"));
112
+ };
113
+ if (options.signal?.aborted) {
114
+ clearTimeout(killTimer);
115
+ resolve(buildTerminalResult(input, "Script execution aborted"));
116
+ return;
117
+ }
118
+ options.signal?.addEventListener?.("abort", onAbort, { once: true });
119
+ try {
120
+ worker = new Worker(workerPath, {
121
+ workerData: {
122
+ input: workerInput,
123
+ enableSendRequest: Boolean(options.onSendRequest),
124
+ },
125
+ });
126
+ }
127
+ catch (error) {
128
+ finish(buildTerminalResult(input, "Failed to start script worker", error));
129
+ return;
130
+ }
131
+ worker.on("message", (message) => {
132
+ if (message.type === "done") {
133
+ finish(message.result);
134
+ return;
135
+ }
136
+ if (message.type === "sendRequest") {
137
+ const id = message.id;
138
+ const requestInput = message.input;
139
+ void (async () => {
140
+ try {
141
+ if (!options.onSendRequest) {
142
+ throw new Error("pm.sendRequest is not available in this context.");
143
+ }
144
+ const result = await options.onSendRequest(requestInput);
145
+ if (!settled) {
146
+ worker.postMessage({ type: "sendRequestResult", id, ok: true, result });
147
+ }
148
+ }
149
+ catch (error) {
150
+ if (!settled) {
151
+ worker.postMessage({
152
+ type: "sendRequestResult",
153
+ id,
154
+ ok: false,
155
+ error: error instanceof Error ? error.message : String(error),
156
+ });
157
+ }
158
+ }
159
+ })();
160
+ }
161
+ });
162
+ worker.on("error", (error) => {
163
+ finish(buildTerminalResult(input, "Script worker crashed", error));
164
+ });
165
+ worker.on("exit", (code) => {
166
+ if (!settled) {
167
+ finish(buildTerminalResult(input, `Script worker exited unexpectedly (code ${code})`));
168
+ }
169
+ });
170
+ });
171
+ };
172
+ //# sourceMappingURL=isolated-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolated-runner.js","sourceRoot":"","sources":["../../src/script/isolated-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export type PmApiStage = "pre-request" | "post-response" | "tests" | "scenario-script";
2
+ export interface PmApiMember {
3
+ /** Signature as the user types it, e.g. "pm.environment.set(key, value)". */
4
+ signature: string;
5
+ /** One-line behaviour summary. */
6
+ description: string;
7
+ /** Stages where the member is meaningful. Omitted = all stages. */
8
+ stages?: PmApiStage[];
9
+ /** Set when availability depends on a capability/feature policy. */
10
+ requires?: "database" | "kafka" | "redis";
11
+ }
12
+ export interface PmApiNamespace {
13
+ /** Accessor, e.g. "pm.environment". Top-level globals use their bare name. */
14
+ name: string;
15
+ description: string;
16
+ members: PmApiMember[];
17
+ }
18
+ export declare const PM_API_METADATA: PmApiNamespace[];
19
+ //# sourceMappingURL=pm-api-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pm-api-metadata.d.ts","sourceRoot":"","sources":["../../src/script/pm-api-metadata.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAEvF,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,cAAc,EAyQ3C,CAAC"}
@@ -0,0 +1,264 @@
1
+ // Canonical, machine-readable description of the `pm.*` scripting surface.
2
+ // Same philosophy as templating/generator-metadata.ts: ONE runtime data
3
+ // structure, colocated with the implementation, consumed by every surface
4
+ // that needs to know "what exists" — today the AI knowledge-pack generator
5
+ // (scripts/generate-ai-packs.mjs), tomorrow the desktop autocomplete.
6
+ //
7
+ // When a feature module gains/loses a method, update THIS file in the same
8
+ // commit. The CI drift check regenerates ai-packs/ and fails on a diff, so
9
+ // the metadata cannot silently fall behind the docs the AI sees.
10
+ export const PM_API_METADATA = [
11
+ {
12
+ name: "pm.test",
13
+ description: "Register a named test. The callback's assertion failures mark the test failed without aborting the script.",
14
+ members: [
15
+ {
16
+ signature: "pm.test(name, fn)",
17
+ description: "Runs fn (sync or async); pass/fail lands in the run's test results.",
18
+ },
19
+ ],
20
+ },
21
+ {
22
+ name: "pm.expect",
23
+ description: "Chai-style assertions plus Jest-style matchers.",
24
+ members: [
25
+ {
26
+ signature: "pm.expect(value)",
27
+ description: "Assertion chain. Equality: .to.equal(x) (identity), .to.eql(x) / .to.deep.equal(x) / .toEqual(x) (deep). Existence: .to.exist, .toBeDefined(), .toBeNull(). Strings/arrays: .to.include(x) / .toContain(x), .oneOf([..]). Numbers: .toBeGreaterThan / .toBeLessThan / .to.be.above(n) / .to.be.below(n). Types: .to.be.a('string'|'number'|...). Negation: .to.not.<...> / .not.<matcher>. Properties: .to.have.property('name', value?).",
28
+ },
29
+ { signature: "pm.expect.fail(message?)", description: "Fails the surrounding test immediately." },
30
+ ],
31
+ },
32
+ {
33
+ name: "pm.environment",
34
+ description: "Active environment variables (alias: pm.env). Writes are scoped to the run and surface as variable mutations.",
35
+ members: [
36
+ { signature: "pm.environment.get(key)", description: "Read a variable (string or undefined)." },
37
+ { signature: "pm.environment.set(key, value)", description: "Write a variable for subsequent steps." },
38
+ { signature: "pm.environment.unset(key)", description: "Remove a variable." },
39
+ { signature: "pm.environment.has(key)", description: "true when the key exists." },
40
+ { signature: "pm.environment.clear()", description: "Remove every variable in the scope." },
41
+ { signature: "pm.environment.toObject()", description: "Plain { key: value } snapshot." },
42
+ { signature: "pm.environment.replaceIn(template)", description: "Resolve {{tokens}} inside a string." },
43
+ { signature: "pm.environment.name", description: "Active environment's name." },
44
+ ],
45
+ },
46
+ {
47
+ name: "pm.globals",
48
+ description: "Workspace-level global variables. Same surface as pm.environment.",
49
+ members: [
50
+ { signature: "pm.globals.get(key)", description: "Read a global." },
51
+ { signature: "pm.globals.set(key, value)", description: "Write a global for the run." },
52
+ { signature: "pm.globals.unset(key)", description: "Remove a global." },
53
+ { signature: "pm.globals.has(key)", description: "true when the key exists." },
54
+ { signature: "pm.globals.clear()", description: "Remove every global in the scope." },
55
+ { signature: "pm.globals.toObject()", description: "Plain snapshot." },
56
+ { signature: "pm.globals.replaceIn(template)", description: "Resolve {{tokens}} inside a string." },
57
+ ],
58
+ },
59
+ {
60
+ name: "pm.collectionVariables",
61
+ description: "Collection-scoped variables that survive across requests within one collection run iteration.",
62
+ members: [
63
+ { signature: "pm.collectionVariables.get(key)", description: "Read a collection variable." },
64
+ { signature: "pm.collectionVariables.set(key, value)", description: "Write; persists across the iteration." },
65
+ { signature: "pm.collectionVariables.unset(key)", description: "Remove a collection variable." },
66
+ { signature: "pm.collectionVariables.has(key)", description: "true when the key exists." },
67
+ { signature: "pm.collectionVariables.clear()", description: "Remove all collection variables." },
68
+ { signature: "pm.collectionVariables.toObject()", description: "Plain snapshot." },
69
+ { signature: "pm.collectionVariables.replaceIn(template)", description: "Resolve {{tokens}}." },
70
+ ],
71
+ },
72
+ {
73
+ name: "pm.variables",
74
+ description: "Layered read across all scopes (per-iteration > environment > globals) plus template resolution.",
75
+ members: [
76
+ { signature: "pm.variables.get(key)", description: "Read through the precedence chain." },
77
+ { signature: "pm.variables.set(key, value)", description: "Write to the run-local layer." },
78
+ { signature: "pm.variables.unset(key)", description: "Remove from the run-local layer." },
79
+ { signature: "pm.variables.has(key)", description: "true when any layer has the key." },
80
+ { signature: "pm.variables.toObject()", description: "Merged snapshot." },
81
+ { signature: "pm.variables.replaceIn(template)", description: "Resolve {{tokens}} in a string." },
82
+ {
83
+ signature: "pm.variables.resolve(template)",
84
+ description: "Like replaceIn, but also resolves scenario node-output references.",
85
+ },
86
+ ],
87
+ },
88
+ {
89
+ name: "pm.request",
90
+ description: "The outgoing request. Mutations only have effect in pre-request scripts (the call has not fired yet).",
91
+ members: [
92
+ { signature: "pm.request.url", description: "Resolved URL string." },
93
+ { signature: "pm.request.method", description: "HTTP method." },
94
+ { signature: "pm.request.body", description: "Body snapshot (mode + content)." },
95
+ { signature: "pm.request.headers", description: "HeaderList: .all() .get(name) .has(name) .add({key,value}) .upsert({key,value}) .remove(name) .idx(i)." },
96
+ { signature: "pm.request.query", description: "Query params as a HeaderList." },
97
+ { signature: "pm.request.getHeader(name)", description: "Read one header value." },
98
+ { signature: "pm.request.setHeader(name, value)", description: "Set/replace a header.", stages: ["pre-request", "scenario-script"] },
99
+ { signature: "pm.request.unsetHeader(name)", description: "Remove a header.", stages: ["pre-request", "scenario-script"] },
100
+ { signature: "pm.request.getQueryParam(name)", description: "Read one query param." },
101
+ { signature: "pm.request.setQueryParam(name, value)", description: "Set/replace a query param.", stages: ["pre-request", "scenario-script"] },
102
+ { signature: "pm.request.unsetQueryParam(name)", description: "Remove a query param.", stages: ["pre-request", "scenario-script"] },
103
+ { signature: "pm.request.setUrl(url)", description: "Replace the URL.", stages: ["pre-request", "scenario-script"] },
104
+ { signature: "pm.request.setMethod(method)", description: "Replace the method.", stages: ["pre-request", "scenario-script"] },
105
+ { signature: "pm.request.setRawBody(value)", description: "Replace the raw body (string or object → JSON).", stages: ["pre-request", "scenario-script"] },
106
+ ],
107
+ },
108
+ {
109
+ name: "pm.response",
110
+ description: "The received response. Not available in pre-request scripts.",
111
+ members: [
112
+ { signature: "pm.response.code", description: "Status code (number).", stages: ["post-response", "tests", "scenario-script"] },
113
+ { signature: "pm.response.status", description: "Status code (number, alias).", stages: ["post-response", "tests", "scenario-script"] },
114
+ { signature: "pm.response.statusText", description: "Status text.", stages: ["post-response", "tests", "scenario-script"] },
115
+ { signature: "pm.response.json()", description: "Parsed JSON body — call once into a const (`const body = pm.response.json()`); throws on non-JSON, so guard with try/catch or pm.response.to.be.json when the content type is uncertain.", stages: ["post-response", "tests", "scenario-script"] },
116
+ { signature: "pm.response.text()", description: "Raw body as string.", stages: ["post-response", "tests", "scenario-script"] },
117
+ { signature: "pm.response.rawBody", description: "Raw body string.", stages: ["post-response", "tests", "scenario-script"] },
118
+ { signature: "pm.response.headers", description: "Response HeaderList.", stages: ["post-response", "tests", "scenario-script"] },
119
+ { signature: "pm.response.responseTime", description: "Duration in ms.", stages: ["post-response", "tests", "scenario-script"] },
120
+ { signature: "pm.response.responseSize", description: "Body size in bytes.", stages: ["post-response", "tests", "scenario-script"] },
121
+ {
122
+ signature: "pm.response.to.have.status(code)",
123
+ description: "Assertion shortcuts; also .to.have.header/.jsonBody/.body and .to.be.ok/.json/.success/.clientError/... plus .to.not.<predicate>.",
124
+ stages: ["post-response", "tests", "scenario-script"],
125
+ },
126
+ ],
127
+ },
128
+ {
129
+ name: "pm.sendRequest",
130
+ description: "Fire an ad-hoc HTTP request from inside a script.",
131
+ members: [
132
+ {
133
+ signature: "pm.sendRequest(urlOrOptions, callback?)",
134
+ description: "Options: { url, method, header: {name: value}, body }. Body accepts a plain object (auto-JSON) OR Postman style { mode: 'raw', raw: JSON.stringify({...}) } / { mode: 'urlencoded', urlencoded: [{key, value}] }. Prefer `const res = await pm.sendRequest({...})`; callback form gets (err, res). The response object is { code, status, statusText, headers, body, responseTime, json(), text() } — note it is NOT pm.response.",
135
+ },
136
+ ],
137
+ },
138
+ {
139
+ name: "pm.db",
140
+ description: "Database access (Oracle / MongoDB / PostgreSQL / MySQL). Disabled by feature policy in some contexts — tests then report SKIP.",
141
+ members: [
142
+ {
143
+ signature: "pm.db.query({ connectionId, query })",
144
+ description: "Run an ad-hoc query — ALWAYS await it. Resolves to { success, error, rowCount, rows, firstRow(), connectionId, connectionName, connectionType, durationMs, executedAt }. firstRow is a FUNCTION: res.firstRow()?.STATUS (Oracle columns are UPPERCASE).",
145
+ requires: "database",
146
+ },
147
+ {
148
+ signature: "pm.db.pre",
149
+ description: "Result object of the declared pre-request DB query: { success, error, rowCount, rows, firstRow() }. Not a promise — read directly.",
150
+ requires: "database",
151
+ },
152
+ {
153
+ signature: "pm.db.post",
154
+ description: "Result object of the declared post-response DB query (same shape as pm.db.pre).",
155
+ requires: "database",
156
+ stages: ["post-response", "tests"],
157
+ },
158
+ ],
159
+ },
160
+ {
161
+ name: "pm.kafka",
162
+ description: "Captured Kafka events from the request's Kafka tab listener.",
163
+ members: [
164
+ { signature: "pm.kafka.event()", description: "The matched event's parsed payload (or null).", requires: "kafka", stages: ["post-response", "tests"] },
165
+ { signature: "pm.kafka.messages()", description: "Every captured message in the listen window.", requires: "kafka", stages: ["post-response", "tests"] },
166
+ ],
167
+ },
168
+ {
169
+ name: "pm.redis",
170
+ description: "Results of the declared pre/post Redis commands.",
171
+ members: [
172
+ { signature: "pm.redis.get(key)", description: "Read a value already captured by a declared GET.", requires: "redis" },
173
+ { signature: "pm.redis.results.pre", description: "Array of pre-stage command results (by line index).", requires: "redis" },
174
+ { signature: "pm.redis.results.post", description: "Array of post-stage command results.", requires: "redis", stages: ["post-response", "tests"] },
175
+ ],
176
+ },
177
+ {
178
+ name: "pm.random",
179
+ description: "Deterministic-format random data generators.",
180
+ members: [
181
+ { signature: "pm.random.uuid()", description: "UUID v4." },
182
+ { signature: "pm.random.email()", description: "Random email address." },
183
+ { signature: "pm.random.string(length?)", description: "Alphanumeric string." },
184
+ { signature: "pm.random.int(min, max)", description: "Integer in range." },
185
+ { signature: "pm.random.bigdecimal(min, max, scale)", description: "Decimal with given scale." },
186
+ { signature: "pm.random.boolean()", description: "true/false." },
187
+ { signature: "pm.random.phone()", description: "Phone number string." },
188
+ { signature: "pm.random.name()", description: "Person name." },
189
+ { signature: "pm.random.date(format?)", description: "Date string." },
190
+ ],
191
+ },
192
+ {
193
+ name: "pm.counter",
194
+ description: "Monotonic counter scoped to the run.",
195
+ members: [
196
+ { signature: "pm.counter.next()", description: "Next value (starts at 1)." },
197
+ { signature: "pm.counter.start(startAt?)", description: "Counter starting at a custom value." },
198
+ ],
199
+ },
200
+ {
201
+ name: "pm.info",
202
+ description: "Execution metadata snapshot.",
203
+ members: [
204
+ { signature: "pm.info.eventName", description: "\"prerequest\" | \"test\"." },
205
+ { signature: "pm.info.iteration", description: "Zero-based data-driven iteration index." },
206
+ {
207
+ signature: "pm.info.iterationCount",
208
+ description: "Total iterations — only meaningful in collection/data-driven runs. Never use it to gate token/cache logic in single sends.",
209
+ },
210
+ { signature: "pm.info.requestName", description: "Current request's name." },
211
+ { signature: "pm.info.requestId", description: "Current request's id." },
212
+ ],
213
+ },
214
+ {
215
+ name: "pm.execution",
216
+ description: "Collection-run flow control.",
217
+ members: [
218
+ { signature: "pm.execution.setNextRequest(name)", description: "Jump to a named request next (collection runs)." },
219
+ { signature: "pm.execution.skipRequest()", description: "Skip the current request.", stages: ["pre-request"] },
220
+ { signature: "pm.execution.location", description: "Folder path of the current request." },
221
+ ],
222
+ },
223
+ {
224
+ name: "pm.node",
225
+ description: "Scenario workflow context (only meaningful inside scenario script nodes).",
226
+ members: [
227
+ { signature: "pm.node.nodeLabel", description: "Current node's label.", stages: ["scenario-script"] },
228
+ { signature: "pm.node.setNextRequest(name)", description: "Route the workflow to a named node.", stages: ["scenario-script"] },
229
+ ],
230
+ },
231
+ {
232
+ name: "pm.log",
233
+ description: "Structured logging into the run report.",
234
+ members: [{ signature: "pm.log(...args)", description: "Like console.log; entries land in the run's log panel." }],
235
+ },
236
+ {
237
+ name: "CryptoJS",
238
+ description: "crypto-js global (NOT under pm.*).",
239
+ members: [
240
+ { signature: "CryptoJS.SHA256(msg) / SHA1 / SHA512 / MD5", description: "Hashes; .toString() or .toString(CryptoJS.enc.Hex)." },
241
+ { signature: "CryptoJS.HmacSHA256(msg, key)", description: "HMAC family (SHA1/224/384/512, MD5 variants)." },
242
+ { signature: "CryptoJS.AES.encrypt(msg, key) / .decrypt(cipher, key)", description: "AES; decrypt result needs .toString(CryptoJS.enc.Utf8)." },
243
+ { signature: "CryptoJS.PBKDF2(password, salt, options)", description: "Key derivation." },
244
+ { signature: "CryptoJS.enc.Utf8 / Base64 / Hex / Latin1", description: "Encoders for .toString(...)." },
245
+ { signature: "CryptoJS.lib.WordArray.create / random(n)", description: "Raw word arrays (e.g. random IVs)." },
246
+ ],
247
+ },
248
+ {
249
+ name: "_",
250
+ description: "lodash global (NOT under pm.*).",
251
+ members: [
252
+ { signature: "_.get(obj, path, default?) / _.pick / _.groupBy / _.sortBy / _.uniq / ...", description: "Full lodash surface for data wrangling." },
253
+ ],
254
+ },
255
+ {
256
+ name: "timers",
257
+ description: "Safe per-execution timer wrappers (callbacks never outlive the run).",
258
+ members: [
259
+ { signature: "setTimeout(fn, ms) / clearTimeout(id)", description: "Use with await new Promise(r => setTimeout(r, ms)) for polling loops." },
260
+ { signature: "setInterval(fn, ms) / clearInterval(id)", description: "Interval variant." },
261
+ ],
262
+ },
263
+ ];
264
+ //# sourceMappingURL=pm-api-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pm-api-metadata.js","sourceRoot":"","sources":["../../src/script/pm-api-metadata.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ export declare const ALLOWED_GLOBAL_NAMES: readonly string[];
2
+ export declare const BLOCKED_GLOBAL_NAMES: readonly string[];
1
3
  export declare const RESERVED_LABEL_NAMES: Set<string>;
2
4
  export declare const VALID_LABEL_IDENTIFIER_PATTERN: RegExp;
3
5
  export interface ScopeBindings {
@@ -1 +1 @@
1
- {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/script/scope.ts"],"names":[],"mappings":"AAmHA,eAAO,MAAM,oBAAoB,aAgB/B,CAAC;AAEH,eAAO,MAAM,8BAA8B,QAAuB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAE5B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAM5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;IAIvD,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;+CAE2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IAKjB,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IAGF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,gBAAgB,GAAI,UAAU,aAAa,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAqEhF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAiBrF,CAAC"}
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/script/scope.ts"],"names":[],"mappings":"AAiHA,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAiC,CAAC;AACpF,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAyB,CAAC;AAM5E,eAAO,MAAM,oBAAoB,aAgB/B,CAAC;AAEH,eAAO,MAAM,8BAA8B,QAAuB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAE5B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAM5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;IAIvD,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;+CAE2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IAKjB,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IAGF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,gBAAgB,GAAI,UAAU,aAAa,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAqEhF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAiBrF,CAAC"}
@@ -105,6 +105,10 @@ const BLOCKED_GLOBALS = [
105
105
  "navigator",
106
106
  "importScripts",
107
107
  ];
108
+ // Exposed for the AI knowledge-pack generator (scripts/generate-ai-packs.mjs)
109
+ // so the sandbox surface documentation is derived from the live lists.
110
+ export const ALLOWED_GLOBAL_NAMES = Object.keys(ALLOWED_GLOBALS);
111
+ export const BLOCKED_GLOBAL_NAMES = [...BLOCKED_GLOBALS];
108
112
  // Names that the caller cannot use as a "label-as-global" workflow key.
109
113
  // Exposing a workflow node named `pm` or `eval` would shadow the built-in
110
114
  // API or reintroduce a blocked global, so we reject these reservations
@@ -1 +1 @@
1
- {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/script/scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/script/scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=worker-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-entry.d.ts","sourceRoot":"","sources":["../../src/script/worker-entry.ts"],"names":[],"mappings":""}