run402-mcp 4.99.0 → 4.101.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.
package/README.md CHANGED
@@ -622,7 +622,7 @@ A snippet is the body of an async function; the value of its last expression is
622
622
  { "code": "const { projects } = await r.projects.list();\nprojects.filter((p) => !p.site_url).map((p) => p.id)" }
623
623
  ```
624
624
 
625
- The result is `{ status, value, value_ref, shown, total, logs, logs_ref, calls, duration_ms, wallet, error? }`: a large value is stored whole and shown as a 200-line window (`expand_result` pages the rest), `calls[]` lists every SDK call with its outcome, and a timeout (60 s by default, 300 s at most) still lists the calls that completed. An SDK error passes through with its own `code` and `next_actions`.
625
+ The result is `{ status, value, value_ref, shown, total, logs, logs_ref, calls, duration_ms, wallet, error? }`: a large value is stored whole by item (an array's elements, a result's `rows`) and its leading whole items arrive in `value_window`, including in `structuredContent` (`expand_result` pages the rest by item), `calls[]` lists every SDK call with its outcome, and a timeout (60 s by default, 300 s at most) still lists the calls that completed. An SDK error passes through with its own `code` and `next_actions`.
626
626
 
627
627
  **Structured results.** Every tool also returns its result as `structuredContent` under a declared `outputSchema`, so a host reads fields instead of parsing text. The object has `status: "ok" | "error"`; the fixed tools put the SDK object under `result`, and every error carries `error.code`, `error.message`, and `error.next_actions`. The fenced JSON in the text is the same object.
628
628
 
package/dist/docs/run.md CHANGED
@@ -27,8 +27,8 @@ The sandbox is QuickJS compiled to WebAssembly. It has no filesystem, no `proces
27
27
  "status": "ok",
28
28
  "value": ["prj_a", "prj_b"],
29
29
  "value_ref": "res_…",
30
- "shown": 4,
31
- "total": 4,
30
+ "shown": 2,
31
+ "total": 2,
32
32
  "logs": [{ "level": "log", "line": "…" }],
33
33
  "logs_ref": "res_…",
34
34
  "calls": [{ "path": "projects.list", "duration_ms": 212, "ok": true }],
@@ -37,7 +37,7 @@ The sandbox is QuickJS compiled to WebAssembly. It has no filesystem, no `proces
37
37
  }
38
38
  ```
39
39
 
40
- - `value` is the result. It is stored whole, as pretty-printed JSON lines, under `value_ref`; `shown` and `total` count those lines. Up to 200 lines are inline. A longer value is shown as a window above the envelope, `value` is left out of the envelope, and `expand_result` with `value_ref` pages the rest without running the snippet again.
40
+ - `value` is the result, inline whole when its pretty-printed JSON fits in 200 lines. It is stored under `value_ref` by item, and `shown` and `total` count items: an array's elements, or for an object the rows of its largest top-level array (a SQL result's `rows`), or an object's entries as `{ key, value }`, or a string's lines. A larger value is left out as `value` and arrives as `value_window`: `{ path, items, rest? }`, the leading whole items that fit the same budget, where they live (`$`, `$.rows`, `$entries`, `$lines`), and for `$.rows` the object's other fields whole. `expand_result` with `value_ref` and `offset: shown` pages the rest by item, never by text line, without running the snippet again.
41
41
  - `undefined` is reported as `value: null` with `value_kind: "undefined"`, so silence never looks like null data.
42
42
  - `logs` are the captured `console.log|info|warn|error` lines, 50 inline and the rest under `logs_ref` (500 lines of 2 KB are kept).
43
43
  - `calls` lists every SDK chain the run replayed: its dotted path, `duration_ms`, and `ok` or the error `code`. It is the audit trail of what the snippet did.
@@ -55,6 +55,7 @@ On failure `status` is `"error"` and `error` is `{ code, message, next_actions }
55
55
  | `RUN_VALUE_NOT_SERIALIZABLE` | the result is not JSON (a handle, a function, a BigInt, a cycle) | `edit_request` |
56
56
  | `RUN_VALUE_TOO_LARGE` | the result is over 4 MB | `edit_request`: select less in the snippet |
57
57
  | `RUN_ARGUMENT_NOT_CLONEABLE` | an argument to `r` is not data | `edit_request` |
58
+ | `RUN_UNKNOWN_MEMBER` | the snippet reached an `r.` path the SDK does not have | `edit_request` with `path` and `did_you_mean`: the closest public members, or, when the parent has nothing close, where that member does live (`r.project(…).sql` suggests `r.project(…).projects.sql` and `r.projects.sql`) |
58
59
  | `RUN_EXCEPTION` | the snippet threw | `edit_request` |
59
60
  | `RUN_BUSY` | four runs are already in flight on this server | `retry` |
60
61
  | `SECRET_REQUIRES_CLI` | an SDK method refused because it returns or consumes a one-time secret | `run_cli_command` with the exact `command` |
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ import { docsSchema, handleDocs } from "./tools/docs.js";
24
24
  import { runSchema, handleRun } from "./tools/run.js";
25
25
  import { expandResultSchema, handleExpandResult } from "./tools/expand-result.js";
26
26
  import { OUTPUT_SCHEMAS } from "./structured.js";
27
+ import { guardToolArguments, strictInput } from "./input-guard.js";
27
28
  function currentPackageVersion() {
28
29
  const raw = readFileSync(new URL("../package.json", import.meta.url), "utf8");
29
30
  const parsed = JSON.parse(raw);
@@ -44,47 +45,62 @@ const server = new McpServer({
44
45
  name: "run402",
45
46
  version: currentPackageVersion(),
46
47
  });
48
+ /**
49
+ * Every tool's arguments are strict: an undeclared argument is refused with a
50
+ * structured UNKNOWN_ARGUMENT error (./input-guard.ts), never dropped.
51
+ */
52
+ const INPUT_SCHEMAS = {
53
+ up: strictInput(upSchema),
54
+ deploy: strictInput(deploySchema),
55
+ status: strictInput(statusSchema),
56
+ whoami: strictInput(whoamiSchema),
57
+ doctor: strictInput(doctorSchema),
58
+ docs: strictInput(docsSchema),
59
+ run: strictInput(runSchema),
60
+ expand_result: strictInput(expandResultSchema),
61
+ };
47
62
  const RUN_HINT = "Any other operation is a `run` snippet against `r`, the Node SDK client; `docs` is its reference.";
48
63
  server.registerTool("up", {
49
64
  description: "Plan or run the canonical app-aware `run402 up` workflow from a local path or repo URL: any missing setup (wallet, tier, project, workspace link), then the deploy. Delegates to the SDK and returns the shared up result envelope with graph steps, resources, diagnostics, and next_actions. `deploy` only deploys.",
50
- inputSchema: upSchema,
65
+ inputSchema: INPUT_SCHEMAS.up,
51
66
  outputSchema: OUTPUT_SCHEMAS.up,
52
67
  }, async (args) => handleUp(args));
53
68
  server.registerTool("deploy", {
54
69
  description: "Unified apply primitive. Accepts a structured ReleaseSpec — database (migrations + expose), value-free secrets.require/delete declarations, functions, site, site.public_paths, site.embedding (framing opt-in by catalog key, e.g. { frame_ancestors: ['localhost'] }; null = deny), subdomains, and routes.replace web routes — with explicit replace vs patch semantics per resource. Migration entries use id for immutable versioned SQL or name for generated/idempotent content-tracked SQL; name compiles client-side to <name>_<sha256(sql)[0:16]>. Use site.public_paths for clean static URLs such as /events backed by release asset events.html; explicit mode does not expose /events.html unless separately declared, while mode: 'implicit' restores filename-derived reachability and can widen access. Route entries map exact/final-wildcard browser paths like /admin and /admin/* to Node 22 Fetch Request -> Response functions, or exact GET/HEAD method-aware static aliases such as /events to { type: 'static', file: 'events.html' }; intentional read-only GET/HEAD wildcard function routes may set acknowledge_readonly: true. Direct /functions/v1/:name remains API-key protected. Secret values are set first with `r.secrets.set` (a `run` snippet) or `run402 secrets set`, never placed in deploy specs. All bytes ride through CAS (no inline-body cap). Returns release_id, URLs, warnings, and a structured progress-event log. Stops before upload/commit on confirmation-required warnings unless reviewed codes are passed with allow_warning_codes or allow_warnings is true.",
55
- inputSchema: deploySchema,
70
+ inputSchema: INPUT_SCHEMAS.deploy,
56
71
  outputSchema: OUTPUT_SCHEMAS.deploy,
57
72
  }, async (args) => handleDeploy(args));
58
73
  server.registerTool("status", {
59
74
  description: `The organization's state as this server's wallet sees it (r.status()): the wallet's local_label, server_label, and address, the tier and its lease, the allowance, the projects, and the active project. Never key material. ${RUN_HINT}`,
60
- inputSchema: statusSchema,
75
+ inputSchema: INPUT_SCHEMAS.status,
61
76
  outputSchema: OUTPUT_SCHEMAS.status,
62
77
  }, async () => handleStatus());
63
78
  server.registerTool("whoami", {
64
79
  description: `The remote identity (r.orgs.whoami()): the control-plane principal this server's wallet resolves to, its active authenticator and linked identities, its org memberships, and the sign-in session grade (none for a wallet). For the local wallet use status. ${RUN_HINT}`,
65
- inputSchema: whoamiSchema,
80
+ inputSchema: INPUT_SCHEMAS.whoami,
66
81
  outputSchema: OUTPUT_SCHEMAS.whoami,
67
82
  }, async () => handleWhoami());
68
83
  server.registerTool("doctor", {
69
84
  description: `Local health and configuration diagnostics (r.doctor()): { ok, blocking[], warnings[], checks[] }, the same report as \`run402 doctor\`. ok is false only on a blocking finding. ${RUN_HINT}`,
70
- inputSchema: doctorSchema,
85
+ inputSchema: INPUT_SCHEMAS.doctor,
71
86
  outputSchema: OUTPUT_SCHEMAS.doctor,
72
87
  }, async (args) => handleDoctor(args));
73
88
  server.registerTool("docs", {
74
89
  description: `The SDK reference for \`run\` snippets, from the copy shipped in this package, so it matches the SDK the snippet runs against. No arguments: the run primer, the r namespace table, and the topics. topic: one namespace or section (assets, project.apply, rooms, local-state) or sdk for all of it; search: sections containing every word. Long answers are a window plus a ref for expand_result. ${RUN_HINT}`,
75
- inputSchema: docsSchema,
90
+ inputSchema: INPUT_SCHEMAS.docs,
76
91
  outputSchema: OUTPUT_SCHEMAS.docs,
77
92
  }, async (args) => handleDocs(args));
78
93
  server.registerTool("run", {
79
94
  description: "Run a TypeScript snippet against the SDK in a sandbox. `r` is the Node SDK client (@run402/sdk/node); call `docs` for its reference. The code is the body of an async function: await r chains, and the value of the last expression (or a return) is the result, e.g. `(await r.projects.list()).projects.map((p) => p.id)`. No filesystem, process, fetch, timers, or imports; console is captured. Returns { status, value, value_ref, shown, total, logs, logs_ref, calls, duration_ms, wallet, error? }; a large value is stored whole and expand_result pages it. Operations that return or consume a one-time secret (grant keys, Handoff and Invite Keys, project credentials, wallet keys) refuse with SECRET_REQUIRES_CLI naming the exact CLI command to hand the person. Any other operation is a run snippet against r.",
80
- inputSchema: runSchema,
95
+ inputSchema: INPUT_SCHEMAS.run,
81
96
  outputSchema: OUTPUT_SCHEMAS.run,
82
97
  }, async (args) => handleRun(args));
83
98
  server.registerTool("expand_result", {
84
99
  description: "Fetch more of a result a previous tool showed you only a window of. Tools on this surface truncate the VIEW, never the DATA: when one prints a ref together with shown and total, the full result is held behind that ref and this is how you read the rest of it. Pass the ref plus offset and limit to page through it. Refs live in this server process only — they expire after 30 minutes and only the most recent handful are kept, so re-run the producing tool rather than storing a ref across sessions. A result that carried a secret is never retained and never has a ref, so nothing here can hand one back.",
85
- inputSchema: expandResultSchema,
100
+ inputSchema: INPUT_SCHEMAS.expand_result,
86
101
  outputSchema: OUTPUT_SCHEMAS.expand_result,
87
102
  }, async (args) => handleExpandResult(args));
88
103
  const transport = new StdioServerTransport();
89
104
  await server.connect(transport);
105
+ guardToolArguments(transport, INPUT_SCHEMAS);
90
106
  //# 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Tool arguments are strict: an argument a tool does not declare is refused,
3
+ * never silently dropped.
4
+ *
5
+ * Every tool is registered with its strict schema (`strictInput`), so the
6
+ * published JSON Schema says `additionalProperties: false` and the MCP SDK
7
+ * itself refuses an unknown key. The SDK reports its refusal as plain text,
8
+ * though, and every run402-mcp error carries `structuredContent`. So the
9
+ * guard below validates a `tools/call` against the same strict schema before
10
+ * the SDK sees it, and answers a failure itself with the structured error:
11
+ * `UNKNOWN_ARGUMENT` (with the closest declared names) or `INVALID_ARGUMENTS`.
12
+ * A valid call passes through untouched.
13
+ */
14
+ import { z } from "zod";
15
+ import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
16
+ import type { ToolError } from "./structured.js";
17
+ /** A tool's input shape as a strict object: unknown keys fail. */
18
+ export declare function strictInput<T extends z.ZodRawShape>(shape: T): z.ZodObject<T, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
19
+ type StrictSchema = z.ZodObject<z.ZodRawShape, "strict">;
20
+ /** The structured refusal for arguments that fail a tool's strict schema, or null when they pass. */
21
+ export declare function argumentError(tool: string, schema: StrictSchema, args: unknown): ToolError | null;
22
+ /**
23
+ * Refuse invalid tool arguments with a structured result before the server
24
+ * dispatches the call. Install after `server.connect(transport)`, which sets
25
+ * the transport's `onmessage`.
26
+ */
27
+ export declare function guardToolArguments(transport: Transport, schemas: Record<string, StrictSchema>): void;
28
+ export {};
29
+ //# sourceMappingURL=input-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-guard.d.ts","sourceRoot":"","sources":["../src/input-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAG/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,2PAE5D;AAED,KAAK,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAEzD,qGAAqG;AACrG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAoCjG;AAOD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,IAAI,CAsBpG"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Tool arguments are strict: an argument a tool does not declare is refused,
3
+ * never silently dropped.
4
+ *
5
+ * Every tool is registered with its strict schema (`strictInput`), so the
6
+ * published JSON Schema says `additionalProperties: false` and the MCP SDK
7
+ * itself refuses an unknown key. The SDK reports its refusal as plain text,
8
+ * though, and every run402-mcp error carries `structuredContent`. So the
9
+ * guard below validates a `tools/call` against the same strict schema before
10
+ * the SDK sees it, and answers a failure itself with the structured error:
11
+ * `UNKNOWN_ARGUMENT` (with the closest declared names) or `INVALID_ARGUMENTS`.
12
+ * A valid call passes through untouched.
13
+ */
14
+ import { z } from "zod";
15
+ import { closestMembers } from "./sandbox-proxy.js";
16
+ /** A tool's input shape as a strict object: unknown keys fail. */
17
+ export function strictInput(shape) {
18
+ return z.object(shape).strict();
19
+ }
20
+ /** The structured refusal for arguments that fail a tool's strict schema, or null when they pass. */
21
+ export function argumentError(tool, schema, args) {
22
+ const parsed = schema.safeParse(args ?? {});
23
+ if (parsed.success)
24
+ return null;
25
+ const declared = Object.keys(schema.shape);
26
+ const unknown = [];
27
+ const issues = [];
28
+ for (const issue of parsed.error.issues) {
29
+ if (issue.code === "unrecognized_keys")
30
+ unknown.push(...issue.keys);
31
+ else
32
+ issues.push({ path: issue.path.join(".") || "(arguments)", message: issue.message });
33
+ }
34
+ if (unknown.length > 0) {
35
+ const didYouMean = {};
36
+ for (const key of unknown)
37
+ didYouMean[key] = closestMembers(key, declared);
38
+ const hints = unknown
39
+ .map((key) => (didYouMean[key].length > 0 ? `${key} (did you mean ${didYouMean[key].join(" or ")}?)` : key))
40
+ .join(", ");
41
+ return {
42
+ code: "UNKNOWN_ARGUMENT",
43
+ message: `${tool} does not take ${unknown.length === 1 ? "the argument" : "the arguments"} ${hints}. It takes: ${declared.join(", ") || "no arguments"}.`,
44
+ next_actions: [{
45
+ type: "edit_request",
46
+ why: "Remove or rename the arguments the tool does not declare, then call it again.",
47
+ tool,
48
+ unknown,
49
+ did_you_mean: didYouMean,
50
+ accepted: declared,
51
+ }],
52
+ details: { unknown, ...(issues.length > 0 ? { issues } : {}) },
53
+ };
54
+ }
55
+ return {
56
+ code: "INVALID_ARGUMENTS",
57
+ message: `${tool}: ${issues.map((i) => `${i.path}: ${i.message}`).join("; ")}`,
58
+ next_actions: [{ type: "edit_request", why: "Fix the arguments named in details.issues, then call the tool again.", tool }],
59
+ details: { issues },
60
+ };
61
+ }
62
+ function isToolCall(message) {
63
+ const m = message;
64
+ return m.method === "tools/call" && (typeof m.id === "string" || typeof m.id === "number") && typeof m.params?.name === "string";
65
+ }
66
+ /**
67
+ * Refuse invalid tool arguments with a structured result before the server
68
+ * dispatches the call. Install after `server.connect(transport)`, which sets
69
+ * the transport's `onmessage`.
70
+ */
71
+ export function guardToolArguments(transport, schemas) {
72
+ const dispatch = transport.onmessage;
73
+ if (!dispatch)
74
+ throw new Error("guardToolArguments: install after server.connect(transport)");
75
+ transport.onmessage = (message, extra) => {
76
+ if (isToolCall(message)) {
77
+ const schema = schemas[message.params.name];
78
+ const error = schema ? argumentError(message.params.name, schema, message.params.arguments) : null;
79
+ if (error) {
80
+ void transport.send({
81
+ jsonrpc: "2.0",
82
+ id: message.id,
83
+ result: {
84
+ content: [{ type: "text", text: `Error: ${error.message}` }],
85
+ structuredContent: { status: "error", error },
86
+ isError: true,
87
+ },
88
+ });
89
+ return;
90
+ }
91
+ }
92
+ dispatch.call(transport, message, extra);
93
+ };
94
+ }
95
+ //# sourceMappingURL=input-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-guard.js","sourceRoot":"","sources":["../src/input-guard.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,24 @@ export interface ChainCall {
59
59
  * enforced at runtime, so the declaration is the only record of it).
60
60
  */
61
61
  export declare function sdkPrivateMembers(): Map<string, Set<string>>;
62
+ /**
63
+ * A member the SDK object does not have. Carries the closest public members,
64
+ * so the run's error can say "did you mean" instead of "is not a function".
65
+ */
66
+ export declare class UnknownMember extends TypeError {
67
+ readonly path: string;
68
+ readonly suggestions: string[];
69
+ readonly members: string[];
70
+ readonly code = "RUN_UNKNOWN_MEMBER";
71
+ /**
72
+ * @param path the missing member as a snippet writes it, e.g. `r.project(…).sql`
73
+ * @param suggestions full paths, as a snippet writes them, that do exist
74
+ * @param members the parent's public members
75
+ */
76
+ constructor(path: string, suggestions: string[], members: string[]);
77
+ }
78
+ /** The members closest to `key`: case-insensitive match first, then small edit distance, then containment. At most three. */
79
+ export declare function closestMembers(key: string, members: string[]): string[];
62
80
  /**
63
81
  * Replays recorded chains against `root` (the real SDK client) for one run.
64
82
  * Holds that run's handles, its `calls[]` trace, and the original errors, and
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-proxy.d.ts","sourceRoot":"","sources":["../src/sandbox-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,0CAA0C;AAC1C,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,QAAmB,CAAC;AAEzD,MAAM,WAAW,SAAS;IACxB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAwKD;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAkC5D;AA+ED;;;;GAIG;AACH,qBAAa,SAAS;;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,CAAM;IACjC,YAAY,SAAK;gBAQL,IAAI,EAAE,OAAO;IAIzB,0EAA0E;IAC1E,SAAS,IAAI,gBAAgB;IAI7B,+FAA+F;IAC/F,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAI1C,+CAA+C;IAC/C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,OAAO,IAAI,IAAI;IAKT,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAyI7C"}
1
+ {"version":3,"file":"sandbox-proxy.d.ts","sourceRoot":"","sources":["../src/sandbox-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,0CAA0C;AAC1C,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,QAAmB,CAAC;AAEzD,MAAM,WAAW,SAAS;IACxB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AA0KD;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAkC5D;AAUD;;;GAGG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAQxC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE;IAT5B,QAAQ,CAAC,IAAI,wBAAwB;IACrC;;;;OAIG;gBAEQ,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,MAAM,EAAE;CAS7B;AA+DD,6HAA6H;AAC7H,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAevE;AA+ED;;;;GAIG;AACH,qBAAa,SAAS;;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,CAAM;IACjC,YAAY,SAAK;gBAQL,IAAI,EAAE,OAAO;IAIzB,0EAA0E;IAC1E,SAAS,IAAI,gBAAgB;IAI7B,+FAA+F;IAC/F,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAI1C,+CAA+C;IAC/C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,OAAO,IAAI,IAAI;IAKT,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA6I7C"}
@@ -248,8 +248,117 @@ function isPlainData(value) {
248
248
  }
249
249
  class RefusedProperty extends TypeError {
250
250
  }
251
+ /**
252
+ * A member the SDK object does not have. Carries the closest public members,
253
+ * so the run's error can say "did you mean" instead of "is not a function".
254
+ */
255
+ export class UnknownMember extends TypeError {
256
+ path;
257
+ suggestions;
258
+ members;
259
+ code = "RUN_UNKNOWN_MEMBER";
260
+ /**
261
+ * @param path the missing member as a snippet writes it, e.g. `r.project(…).sql`
262
+ * @param suggestions full paths, as a snippet writes them, that do exist
263
+ * @param members the parent's public members
264
+ */
265
+ constructor(path, suggestions, members) {
266
+ super(suggestions.length > 0
267
+ ? `${path} is not part of the SDK. Did you mean ${suggestions.join(" or ")}?`
268
+ : `${path} is not part of the SDK. Its parent has: ${members.slice(0, 20).join(", ")}${members.length > 20 ? ", …" : ""}.`);
269
+ this.path = path;
270
+ this.suggestions = suggestions;
271
+ this.members = members;
272
+ this.name = "UnknownMember";
273
+ }
274
+ }
275
+ /** True for an SDK namespace object worth searching: an object, not plain data, not a function. */
276
+ function isNamespace(v) {
277
+ return typeof v === "object" && v !== null && !isPlainData(v);
278
+ }
279
+ function hasMember(holder, key) {
280
+ return publicMembers(holder).includes(key);
281
+ }
282
+ /**
283
+ * Where else `key` lives, for a member the parent lacks: the parent's own
284
+ * namespaces first (`r.project(…).projects.sql`), then the root and the root's
285
+ * namespaces (`r.projects.sql`). Reads only public members of SDK objects.
286
+ */
287
+ function findElsewhere(key, holder, parentDisplay, root) {
288
+ const found = [];
289
+ const add = (p) => { if (!found.includes(p))
290
+ found.push(p); };
291
+ for (const m of publicMembers(holder)) {
292
+ const child = holder[m];
293
+ if (isNamespace(child) && hasMember(child, key))
294
+ add(`${parentDisplay}.${m}.${key}`);
295
+ }
296
+ if (isNamespace(root) && root !== holder) {
297
+ if (hasMember(root, key))
298
+ add(`r.${key}`);
299
+ for (const m of publicMembers(root)) {
300
+ const child = root[m];
301
+ if (child !== holder && isNamespace(child) && hasMember(child, key))
302
+ add(`r.${m}.${key}`);
303
+ }
304
+ }
305
+ return found.slice(0, 3);
306
+ }
307
+ /** The public members an SDK object offers: own and inherited, minus private, internal, and intrinsic ones. */
308
+ function publicMembers(holder) {
309
+ const out = new Set();
310
+ const privates = sdkPrivateMembers();
311
+ for (let p = holder; p && !INTRINSIC_PROTOTYPES.has(p); p = Object.getPrototypeOf(p)) {
312
+ const className = typeof p === "function" ? null : p.constructor?.name;
313
+ const hidden = typeof className === "string" ? privates.get(className) : undefined;
314
+ for (const key of Object.getOwnPropertyNames(p)) {
315
+ if (ALWAYS_REFUSED.has(key) || key.startsWith("_") || key.startsWith("#") || hidden?.has(key))
316
+ continue;
317
+ if (typeof holder === "function" && (key === "length" || key === "name" || key === "arguments" || key === "caller"))
318
+ continue;
319
+ out.add(key);
320
+ }
321
+ }
322
+ return [...out].sort();
323
+ }
324
+ /** Edit distance with adjacent transpositions (optimal string alignment). */
325
+ function editDistance(a, b) {
326
+ const d = Array.from({ length: a.length + 1 }, (_, i) => [i, ...Array(b.length).fill(0)]);
327
+ for (let j = 1; j <= b.length; j++)
328
+ d[0][j] = j;
329
+ for (let i = 1; i <= a.length; i++) {
330
+ for (let j = 1; j <= b.length; j++) {
331
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
332
+ d[i][j] = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost);
333
+ if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1])
334
+ d[i][j] = Math.min(d[i][j], d[i - 2][j - 2] + 1);
335
+ }
336
+ }
337
+ return d[a.length][b.length];
338
+ }
339
+ /** The members closest to `key`: case-insensitive match first, then small edit distance, then containment. At most three. */
340
+ export function closestMembers(key, members) {
341
+ const lower = key.toLowerCase();
342
+ const scored = [];
343
+ for (const m of members) {
344
+ const ml = m.toLowerCase();
345
+ let score = null;
346
+ if (ml === lower)
347
+ score = 0;
348
+ else {
349
+ const dist = editDistance(lower, ml);
350
+ if (dist <= Math.max(2, Math.floor(key.length / 3)))
351
+ score = dist;
352
+ else if (lower.length >= 3 && (ml.includes(lower) || lower.includes(ml)))
353
+ score = 10;
354
+ }
355
+ if (score !== null)
356
+ scored.push({ m, score });
357
+ }
358
+ return scored.sort((x, y) => x.score - y.score || x.m.localeCompare(y.m)).slice(0, 3).map((s) => s.m);
359
+ }
251
360
  /** Read `key` from `holder` if the SDK's public surface allows it; throw otherwise. */
252
- function readAllowed(holder, key, path) {
361
+ function readAllowed(holder, key, path, where = { display: path ? `r.${path}` : "r", root: undefined }) {
253
362
  if (holder === null || holder === undefined) {
254
363
  throw new TypeError(`cannot read property '${key}' of ${String(holder)} (${path})`);
255
364
  }
@@ -268,8 +377,14 @@ function readAllowed(holder, key, path) {
268
377
  let owner = holder;
269
378
  while (owner && !Object.prototype.hasOwnProperty.call(owner, key))
270
379
  owner = Object.getPrototypeOf(owner);
271
- if (!owner)
272
- return undefined;
380
+ if (!owner) {
381
+ // An SDK object has no such member: name the closest ones rather than
382
+ // letting the next call fail as "is not a function".
383
+ const members = publicMembers(holder);
384
+ const near = closestMembers(key, members).map((m) => `${where.display}.${m}`);
385
+ const suggestions = near.length > 0 ? near : findElsewhere(key, holder, where.display, where.root);
386
+ throw new UnknownMember(`${where.display}.${key}`, suggestions, members);
387
+ }
273
388
  if (INTRINSIC_PROTOTYPES.has(owner)) {
274
389
  throw new RefusedProperty(`${path ? `${path}.` : ""}${key} is not part of the SDK surface`);
275
390
  }
@@ -316,6 +431,8 @@ function describeError(err) {
316
431
  ...(e.retryable !== undefined ? { retryable: e.retryable } : {}),
317
432
  };
318
433
  }
434
+ if (err instanceof UnknownMember)
435
+ return { name: err.name, message: err.message, code: err.code };
319
436
  if (err instanceof Error)
320
437
  return { name: err.name, message: err.message };
321
438
  return { name: "Error", message: String(err) };
@@ -384,19 +501,23 @@ export class ChainHost {
384
501
  if (s.op === "get")
385
502
  path = path ? `${path}.${s.key}` : s.key;
386
503
  const callPath = path || "r";
504
+ let display = "r";
387
505
  this.#inflight++;
388
506
  try {
389
507
  let walked = req.base === "root" ? "" : (this.#handles.get(req.base)?.path ?? "");
508
+ display = req.base === "root" ? "r" : (this.#handles.get(req.base)?.display ?? "r");
390
509
  for (const segment of req.segments) {
391
510
  if (segment.op === "get") {
392
511
  if (typeof segment.key !== "string")
393
512
  throw new RefusedProperty("only string property names cross into the host");
394
- const next = readAllowed(value, segment.key, walked);
513
+ const next = readAllowed(value, segment.key, walked, { display, root: this.#root });
395
514
  receiver = value;
396
515
  value = next;
397
516
  walked = walked ? `${walked}.${segment.key}` : segment.key;
517
+ display = `${display}.${segment.key}`;
398
518
  }
399
519
  else {
520
+ display = `${display}(…)`;
400
521
  if (typeof value !== "function")
401
522
  throw new TypeError(`${walked || "r"} is not a function`);
402
523
  const args = (segment.args ?? []).map((a) => this.#decodeArg(a));
@@ -425,9 +546,9 @@ export class ChainHost {
425
546
  this.#inflight--;
426
547
  }
427
548
  this.#record({ path: callPath, duration_ms: Date.now() - started, ok: true });
428
- return this.#encodeResult(value, receiver, callPath);
549
+ return this.#encodeResult(value, receiver, callPath, display);
429
550
  }
430
- #encodeResult(value, receiver, path) {
551
+ #encodeResult(value, receiver, path, display) {
431
552
  if (value instanceof Uint8Array || value instanceof ArrayBuffer) {
432
553
  const bytes = value instanceof ArrayBuffer ? new Uint8Array(value) : value;
433
554
  if (bytes.byteLength > CHAIN_MAX_TRANSFER_BYTES / 4)
@@ -441,7 +562,7 @@ export class ChainHost {
441
562
  return json === undefined ? JSON.stringify({ ok: true }) : `{"ok":true,"value":${json}}`;
442
563
  }
443
564
  const id = `h${this.#nextHandle++}`;
444
- this.#handles.set(id, { value, receiver, path });
565
+ this.#handles.set(id, { value, receiver, path, display });
445
566
  return JSON.stringify({ ok: true, value: { __r402: { t: "handle", v: id, path } } });
446
567
  }
447
568
  #tooLarge(path, bytes) {
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-proxy.js","sourceRoot":"","sources":["../src/sandbox-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox-proxy.js","sourceRoot":"","sources":["../src/sandbox-proxy.ts"],"names":[],"mappings":"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"}
package/dist/sandbox.js CHANGED
@@ -69,7 +69,7 @@ export function prepareSnippet(code) {
69
69
  const wrapped = `${WRAP_HEAD}${code}${WRAP_TAIL}`;
70
70
  let stripped;
71
71
  try {
72
- stripped = stripTypeScriptTypes(wrapped, { mode: "strip" });
72
+ stripped = stripTypesQuietly(wrapped);
73
73
  }
74
74
  catch (err) {
75
75
  return { ok: false, error: syntaxErrorFromStrip(err) };
@@ -643,4 +643,27 @@ function dumpError(ctx, handle) {
643
643
  function readString(ctx, h) {
644
644
  return ctx.typeof(h) === "undefined" ? undefined : ctx.getString(h);
645
645
  }
646
+ /**
647
+ * `stripTypeScriptTypes` announces itself with a one-time ExperimentalWarning
648
+ * on stderr, which an MCP host shows as noise on every server start. Drop
649
+ * exactly that warning, for the duration of this call only; every other
650
+ * warning still reaches the process.
651
+ */
652
+ function stripTypesQuietly(source) {
653
+ const emit = process.emitWarning;
654
+ process.emitWarning = function quietStripWarning(warning, ...rest) {
655
+ const type = typeof rest[0] === "string" ? rest[0] : rest[0]?.type;
656
+ const message = typeof warning === "string" ? warning : warning?.message ?? "";
657
+ const name = typeof warning === "string" ? undefined : warning?.name;
658
+ if ((type === "ExperimentalWarning" || name === "ExperimentalWarning") && /stripTypeScriptTypes|type strip/i.test(message))
659
+ return;
660
+ return emit.call(process, warning, ...rest);
661
+ };
662
+ try {
663
+ return stripTypeScriptTypes(source, { mode: "strip" });
664
+ }
665
+ finally {
666
+ process.emitWarning = emit;
667
+ }
668
+ }
646
669
  //# sourceMappingURL=sandbox.js.map