harness-dispatch 0.7.9 → 0.8.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 (107) hide show
  1. package/CHANGELOG.md +657 -1
  2. package/README.md +25 -4
  3. package/config.default.yaml +30 -2
  4. package/dist/auth.d.ts +29 -0
  5. package/dist/auth.d.ts.map +1 -1
  6. package/dist/auth.js +58 -5
  7. package/dist/auth.js.map +1 -1
  8. package/dist/bin.d.ts.map +1 -1
  9. package/dist/bin.js +404 -20
  10. package/dist/bin.js.map +1 -1
  11. package/dist/breaker-store.d.ts +25 -1
  12. package/dist/breaker-store.d.ts.map +1 -1
  13. package/dist/breaker-store.js +193 -25
  14. package/dist/breaker-store.js.map +1 -1
  15. package/dist/client-register.d.ts +147 -0
  16. package/dist/client-register.d.ts.map +1 -0
  17. package/dist/client-register.js +380 -0
  18. package/dist/client-register.js.map +1 -0
  19. package/dist/config/validation.d.ts +29 -0
  20. package/dist/config/validation.d.ts.map +1 -1
  21. package/dist/config/validation.js +88 -0
  22. package/dist/config/validation.js.map +1 -1
  23. package/dist/config.d.ts.map +1 -1
  24. package/dist/config.js +55 -2
  25. package/dist/config.js.map +1 -1
  26. package/dist/dispatch-log.d.ts +14 -0
  27. package/dist/dispatch-log.d.ts.map +1 -1
  28. package/dist/dispatch-log.js +3 -0
  29. package/dist/dispatch-log.js.map +1 -1
  30. package/dist/dispatchers/openai-compatible.d.ts +20 -4
  31. package/dist/dispatchers/openai-compatible.d.ts.map +1 -1
  32. package/dist/dispatchers/openai-compatible.js +145 -17
  33. package/dist/dispatchers/openai-compatible.js.map +1 -1
  34. package/dist/http/answer-stream.d.ts +52 -0
  35. package/dist/http/answer-stream.d.ts.map +1 -0
  36. package/dist/http/answer-stream.js +47 -0
  37. package/dist/http/answer-stream.js.map +1 -0
  38. package/dist/http/parse.d.ts.map +1 -1
  39. package/dist/http/parse.js +41 -0
  40. package/dist/http/parse.js.map +1 -1
  41. package/dist/http/server.d.ts.map +1 -1
  42. package/dist/http/server.js +102 -9
  43. package/dist/http/server.js.map +1 -1
  44. package/dist/jobs/store.d.ts.map +1 -1
  45. package/dist/jobs/store.js +45 -4
  46. package/dist/jobs/store.js.map +1 -1
  47. package/dist/jobs.d.ts +24 -0
  48. package/dist/jobs.d.ts.map +1 -1
  49. package/dist/jobs.js +101 -1
  50. package/dist/jobs.js.map +1 -1
  51. package/dist/mcp/config-hot-reload.d.ts.map +1 -1
  52. package/dist/mcp/config-hot-reload.js +10 -0
  53. package/dist/mcp/config-hot-reload.js.map +1 -1
  54. package/dist/mcp/near-miss-guard.d.ts +45 -0
  55. package/dist/mcp/near-miss-guard.d.ts.map +1 -0
  56. package/dist/mcp/near-miss-guard.js +98 -0
  57. package/dist/mcp/near-miss-guard.js.map +1 -0
  58. package/dist/mcp/server.d.ts.map +1 -1
  59. package/dist/mcp/server.js +36 -0
  60. package/dist/mcp/server.js.map +1 -1
  61. package/dist/mcp/tool-schemas.d.ts.map +1 -1
  62. package/dist/mcp/tool-schemas.js +21 -4
  63. package/dist/mcp/tool-schemas.js.map +1 -1
  64. package/dist/mcp/tools.d.ts +22 -0
  65. package/dist/mcp/tools.d.ts.map +1 -1
  66. package/dist/mcp/tools.js +38 -0
  67. package/dist/mcp/tools.js.map +1 -1
  68. package/dist/mcp-clients.d.ts +63 -0
  69. package/dist/mcp-clients.d.ts.map +1 -0
  70. package/dist/mcp-clients.js +117 -0
  71. package/dist/mcp-clients.js.map +1 -0
  72. package/dist/near-miss.d.ts +63 -0
  73. package/dist/near-miss.d.ts.map +1 -0
  74. package/dist/near-miss.js +132 -0
  75. package/dist/near-miss.js.map +1 -0
  76. package/dist/quota.d.ts +31 -1
  77. package/dist/quota.d.ts.map +1 -1
  78. package/dist/quota.js +68 -6
  79. package/dist/quota.js.map +1 -1
  80. package/dist/route-policy.d.ts +10 -0
  81. package/dist/route-policy.d.ts.map +1 -1
  82. package/dist/route-policy.js +20 -2
  83. package/dist/route-policy.js.map +1 -1
  84. package/dist/router.d.ts +61 -2
  85. package/dist/router.d.ts.map +1 -1
  86. package/dist/router.js +156 -29
  87. package/dist/router.js.map +1 -1
  88. package/dist/safety.d.ts.map +1 -1
  89. package/dist/safety.js +31 -1
  90. package/dist/safety.js.map +1 -1
  91. package/dist/status.d.ts +30 -21
  92. package/dist/status.d.ts.map +1 -1
  93. package/dist/status.js +152 -8
  94. package/dist/status.js.map +1 -1
  95. package/dist/types.d.ts +25 -1
  96. package/dist/types.d.ts.map +1 -1
  97. package/dist/working-dir.d.ts.map +1 -1
  98. package/dist/working-dir.js +16 -0
  99. package/dist/working-dir.js.map +1 -1
  100. package/dist/workspace-resolve.d.ts.map +1 -1
  101. package/dist/workspace-resolve.js +119 -15
  102. package/dist/workspace-resolve.js.map +1 -1
  103. package/dist/workspaces.d.ts +83 -0
  104. package/dist/workspaces.d.ts.map +1 -1
  105. package/dist/workspaces.js +288 -15
  106. package/dist/workspaces.js.map +1 -1
  107. package/package.json +1 -1
package/dist/mcp/tools.js CHANGED
@@ -342,6 +342,22 @@ async function startFanout(deps, input, extra) {
342
342
  continue;
343
343
  candidates.push(routeName);
344
344
  }
345
+ // Nothing can run. Same rule as the two refusals above — a refusal must not
346
+ // be success-shaped — and this was the one case still taking the vacuous
347
+ // path: `completed` is `every()` over an empty array, so an all-blocked
348
+ // fanout answered `{ completed: true, results: [] }` with the reasons tucked
349
+ // into `skippedRoutes`, on the field the tool description tells agents to
350
+ // branch on.
351
+ //
352
+ // The unmatched-name guard above throws for a name matching NO route, so the
353
+ // same user mistake produced two opposite shapes depending on whether the
354
+ // route they named happens to exist and be disabled. Both are "you asked for
355
+ // routes and none of them can run".
356
+ if (candidates.length === 0) {
357
+ const why = skippedRoutes.map((s) => `${s.route}: ${s.message}`).join("; ");
358
+ throw new Error(`No fanout route can run this request${why ? ` — ${why}` : ""}. ` +
359
+ `Check \`usage\` for route readiness, or adjust models/safetyProfile/routePolicy.`);
360
+ }
345
361
  const prompt = input.prompt;
346
362
  const files = input.files ?? [];
347
363
  const live = { value: true };
@@ -618,6 +634,28 @@ export function registerTools(server, deps) {
618
634
  inputSchema: usageInputShape,
619
635
  }, async (args) => jsonText(await handleUsage(deps, args)));
620
636
  }
637
+ /**
638
+ * Near-miss top-level keys are caught by `mcp/near-miss-guard.ts`, not here.
639
+ *
640
+ * This is where the gap used to be documented. The MCP SDK validates against
641
+ * `z.object(dispatchInputShape)` before any code in this file runs, and zod
642
+ * STRIPS unknown keys — so by the time a handler sees the arguments, a
643
+ * misspelled key is already gone, and nothing in the registered-tool path can
644
+ * see what the caller actually sent. `hints` is `.strict()`, which is why the
645
+ * nested form was always rejected; the outer object cannot be, because MCP
646
+ * carries `_meta` there.
647
+ *
648
+ * An acceptance pass measured what that cost: `safteyProfile: "read_only"` was
649
+ * accepted in silence and the dispatch ran at the `workspace_edit` default,
650
+ * writing a file. Asking for read-only by way of a typo got you write access,
651
+ * while the HTTP surface refused the same input — one input, two opposite
652
+ * answers, which is the class the parity suite exists to end.
653
+ *
654
+ * The guard wraps the CallTool handler the SDK installs and inspects the raw
655
+ * arguments before delegating, so the SDK's routing, validation and `extra`
656
+ * plumbing are untouched. Both surfaces now run the same check from
657
+ * `near-miss.ts`, and `surface-parity.test.ts` asserts it on both.
658
+ */
621
659
  export async function invokeTool(name, args, deps) {
622
660
  if (name === "dispatch") {
623
661
  const parsed = z.object(dispatchInputShape).parse(args);
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Is the MCP client on this machine still pointing at something that exists?
3
+ *
4
+ * WHY THIS EXISTS. A client that cannot spawn its server does not report an
5
+ * error — it just has no tools, which looks exactly like not having installed
6
+ * anything. On the maintainer's machine that state lasted from a repo rename
7
+ * until someone happened to read the config: Claude Code was launching
8
+ * `harness-router/dist/bin.js`, a path deleted months earlier, and a
9
+ * SessionStart hook pointed at the same dead directory. Both failed silently
10
+ * every session. Nothing in this tool could have told them, because nothing
11
+ * looked.
12
+ *
13
+ * READ ONLY. This inspects other applications' config files and never writes
14
+ * to them. A previous version of this project DID write to a user's global
15
+ * config, was removed a version later, and left orphans behind that were still
16
+ * there seven minor versions on — which is the reason a reporting check comes
17
+ * first and a writing one may never come at all.
18
+ */
19
+ export interface ClientConfigLocation {
20
+ /** Stable id for flags and scripts: `--clients claude-code,cursor`. */
21
+ id: string;
22
+ /** Human name, for the doctor line. */
23
+ client: string;
24
+ file: string;
25
+ /**
26
+ * The object servers hang off in THIS client's file. Claude Code and Cursor
27
+ * both use `mcpServers`; VS Code uses `servers`. Carried per client rather
28
+ * than assumed, because assuming it is how a writer corrupts a format it
29
+ * has not seen.
30
+ */
31
+ serversKey: string;
32
+ }
33
+ export interface ClientEntryReport {
34
+ client: string;
35
+ file: string;
36
+ /** The server key as it appears in that client's config. */
37
+ entry: string;
38
+ /**
39
+ * Paths this entry names that do not exist. Empty means nothing to report:
40
+ * either every path resolves, or the entry names none to check.
41
+ */
42
+ missingPaths: string[];
43
+ }
44
+ /**
45
+ * Only shapes actually read on a real machine.
46
+ *
47
+ * Claude Desktop and VS Code are deliberately absent: their formats are known
48
+ * to me from documentation rather than from a file I have opened, and VS Code
49
+ * uses a different key (`servers`, not `mcpServers`) — guessing at a config
50
+ * format is how you misreport someone's healthy setup as broken.
51
+ */
52
+ export declare function clientConfigLocations(home?: string): ClientConfigLocation[];
53
+ /**
54
+ * Every harness-dispatch entry found across the clients on this machine, with
55
+ * any paths it names that are not there.
56
+ *
57
+ * A client with no config file, or no entry for this server, contributes
58
+ * nothing — not having installed it is not a fault. A config that will not
59
+ * parse is skipped rather than reported: it is that application's problem, and
60
+ * this tool has no business grading someone else's JSON.
61
+ */
62
+ export declare function inspectClientEntries(home?: string): ClientEntryReport[];
63
+ //# sourceMappingURL=mcp-clients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-clients.d.ts","sourceRoot":"","sources":["../src/mcp-clients.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,MAAkB,GAAG,oBAAoB,EAAE,CAetF;AAyCD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAkBvE"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Is the MCP client on this machine still pointing at something that exists?
3
+ *
4
+ * WHY THIS EXISTS. A client that cannot spawn its server does not report an
5
+ * error — it just has no tools, which looks exactly like not having installed
6
+ * anything. On the maintainer's machine that state lasted from a repo rename
7
+ * until someone happened to read the config: Claude Code was launching
8
+ * `harness-router/dist/bin.js`, a path deleted months earlier, and a
9
+ * SessionStart hook pointed at the same dead directory. Both failed silently
10
+ * every session. Nothing in this tool could have told them, because nothing
11
+ * looked.
12
+ *
13
+ * READ ONLY. This inspects other applications' config files and never writes
14
+ * to them. A previous version of this project DID write to a user's global
15
+ * config, was removed a version later, and left orphans behind that were still
16
+ * there seven minor versions on — which is the reason a reporting check comes
17
+ * first and a writing one may never come at all.
18
+ */
19
+ import { existsSync, readFileSync } from "node:fs";
20
+ import { homedir } from "node:os";
21
+ import path from "node:path";
22
+ /**
23
+ * Only shapes actually read on a real machine.
24
+ *
25
+ * Claude Desktop and VS Code are deliberately absent: their formats are known
26
+ * to me from documentation rather than from a file I have opened, and VS Code
27
+ * uses a different key (`servers`, not `mcpServers`) — guessing at a config
28
+ * format is how you misreport someone's healthy setup as broken.
29
+ */
30
+ export function clientConfigLocations(home = homedir()) {
31
+ return [
32
+ {
33
+ id: "claude-code",
34
+ client: "Claude Code",
35
+ file: path.join(home, ".claude.json"),
36
+ serversKey: "mcpServers",
37
+ },
38
+ {
39
+ id: "cursor",
40
+ client: "Cursor",
41
+ file: path.join(home, ".cursor", "mcp.json"),
42
+ serversKey: "mcpServers",
43
+ },
44
+ ];
45
+ }
46
+ /** An arg that looks like a filesystem path rather than a flag or a bare command. */
47
+ function looksLikePath(value) {
48
+ if (value.startsWith("-"))
49
+ return false;
50
+ return value.includes("/") || value.includes("\\");
51
+ }
52
+ /**
53
+ * A bare command — `npx`, `harness-dispatch`, `node` — is NOT checked.
54
+ *
55
+ * Resolving it means replicating PATH lookup and shims, and getting that wrong
56
+ * would report a working install as broken. The failure this check exists for
57
+ * is an absolute path to a directory that has been renamed or deleted, which
58
+ * needs none of that.
59
+ */
60
+ function missingPathsIn(entry) {
61
+ if (!entry || typeof entry !== "object")
62
+ return [];
63
+ const e = entry;
64
+ const candidates = [];
65
+ for (const v of [e.command, e.cwd]) {
66
+ if (typeof v === "string" && looksLikePath(v))
67
+ candidates.push(v);
68
+ }
69
+ if (Array.isArray(e.args)) {
70
+ for (const a of e.args) {
71
+ if (typeof a === "string" && looksLikePath(a))
72
+ candidates.push(a);
73
+ }
74
+ }
75
+ return candidates.filter((p) => !existsSync(p));
76
+ }
77
+ /** Does this entry appear to be OUR server, by key or by what it launches? */
78
+ function isHarnessDispatch(key, entry) {
79
+ if (/harness[-_]?(dispatch|router)/i.test(key))
80
+ return true;
81
+ const e = entry;
82
+ const args = Array.isArray(e?.args) ? e.args : [];
83
+ return [e?.command, ...args].some((v) => typeof v === "string" && /harness[-_]?(dispatch|router)/i.test(v));
84
+ }
85
+ /**
86
+ * Every harness-dispatch entry found across the clients on this machine, with
87
+ * any paths it names that are not there.
88
+ *
89
+ * A client with no config file, or no entry for this server, contributes
90
+ * nothing — not having installed it is not a fault. A config that will not
91
+ * parse is skipped rather than reported: it is that application's problem, and
92
+ * this tool has no business grading someone else's JSON.
93
+ */
94
+ export function inspectClientEntries(home) {
95
+ const out = [];
96
+ for (const { client, file, serversKey } of clientConfigLocations(home)) {
97
+ if (!existsSync(file))
98
+ continue;
99
+ let parsed;
100
+ try {
101
+ parsed = JSON.parse(readFileSync(file, "utf8"));
102
+ }
103
+ catch {
104
+ continue;
105
+ }
106
+ const servers = parsed?.[serversKey];
107
+ if (!servers || typeof servers !== "object")
108
+ continue;
109
+ for (const [key, entry] of Object.entries(servers)) {
110
+ if (!isHarnessDispatch(key, entry))
111
+ continue;
112
+ out.push({ client, file, entry: key, missingPaths: missingPathsIn(entry) });
113
+ }
114
+ }
115
+ return out;
116
+ }
117
+ //# sourceMappingURL=mcp-clients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-clients.js","sourceRoot":"","sources":["../src/mcp-clients.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AA6B7B;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe,OAAO,EAAE;IAC5D,OAAO;QACL;YACE,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;YACrC,UAAU,EAAE,YAAY;SACzB;QACD;YACE,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;YAC5C,UAAU,EAAE,YAAY;SACzB;KACF,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACnD,MAAM,CAAC,GAAG,KAA6D,CAAC;IACxE,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,8EAA8E;AAC9E,SAAS,iBAAiB,CAAC,GAAW,EAAE,KAAc;IACpD,IAAI,gCAAgC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,CAAC,GAAG,KAAqD,CAAC;IAChE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,gCAAgC,CAAC,IAAI,CAAC,CAAC,CAAC,CACzE,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAa;IAChD,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QAChC,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAI,MAAyC,EAAE,CAAC,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,SAAS;QACtD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAkC,CAAC,EAAE,CAAC;YAC9E,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC;gBAAE,SAAS;YAC7C,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * "Did you mean…" for a top-level key that is one typo from a hint name.
3
+ *
4
+ * WHY THIS EXISTS. Neither surface's outer object can be strict — MCP carries
5
+ * `_meta`, and the HTTP surface must tolerate OpenAI's own fields — so an
6
+ * unknown top-level key was accepted and dropped on both. The named traps in
7
+ * mcp/tool-schemas.ts and http/parse.ts catch the snake_case spellings, which
8
+ * are the predictable slip. A plain typo is not enumerable and had the same
9
+ * consequence: `safteyProfile` returned success and the dispatch ran at the
10
+ * default `workspace_edit` — more access than the caller asked for, with no
11
+ * signal — while the correct spelling produced `read_only`.
12
+ *
13
+ * ONE COPY ON PURPOSE. This file exists because the alternative is the same
14
+ * rule written twice, and tool-schemas.ts already records where that leads:
15
+ * "Three independent copies of one rule is how they diverged". The surfaces
16
+ * disagreeing about which keys are typos would be exactly the "same input, two
17
+ * answers" class the parity suite was built to end.
18
+ */
19
+ /** The hint names a caller can plausibly mistype at the top level. */
20
+ export declare const HINT_KEY_NAMES: readonly ["safetyProfile", "routePolicy", "taskType", "workspacePolicy", "preferLargeContext", "timeoutMs", "workingDir"];
21
+ /**
22
+ * The hint name this key is one typo away from, or undefined.
23
+ *
24
+ * Returns undefined for an exact match: that is a correct key, not a near miss.
25
+ */
26
+ export declare function nearMissHintKey(key: string): string | undefined;
27
+ /**
28
+ * One typo apart: an insertion, deletion, substitution, or a swap of two
29
+ * adjacent characters.
30
+ *
31
+ * The swap is not an extra. `safteyProfile` is the exact spelling an acceptance
32
+ * pass typed, and plain edit distance scores a transposition as TWO
33
+ * substitutions — so a rule without it misses the case it was written for.
34
+ *
35
+ * Deliberately tight in the other direction too: at a true distance of two,
36
+ * short field names from the OpenAI protocol start matching, and refusing a
37
+ * legitimate request would be its own defect.
38
+ */
39
+ export declare function withinOneTypo(a: string, b: string): boolean;
40
+ export type NearMissSurface = "mcp" | "http";
41
+ /**
42
+ * The message both surfaces give — same RULE, correct advice for each.
43
+ *
44
+ * The rule is shared on purpose (see this file's header). The advice cannot
45
+ * be: a single "did you mean X?" sent the caller somewhere the surface would
46
+ * refuse or ignore, which is the failure `tool-schemas.ts` already records
47
+ * from its own snake_case traps — "a refusal that confidently points at the
48
+ * wrong landing spot costs the round trip it exists to save". An acceptance
49
+ * pass measured the new message repeating it: correcting `safteyProfile` to
50
+ * `safetyProfile` on MCP `dispatch` produced a SECOND rejection, because the
51
+ * corrected spelling is a trap at that level.
52
+ *
53
+ * `toolName` is MCP-only and names the tool the call was for. On a tool that
54
+ * takes no hints at all — `job_status`, `usage`, `cancel_job`, `retry_job`,
55
+ * `workspace` — the corrected spelling is simply not a field, and the old
56
+ * message's "the dispatch runs with MORE access than you asked for" was false
57
+ * on every one of them: none of them dispatch anything.
58
+ */
59
+ export declare function nearMissMessage(key: string, meant: string, opts?: {
60
+ surface: NearMissSurface;
61
+ toolName?: string;
62
+ }): string;
63
+ //# sourceMappingURL=near-miss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"near-miss.d.ts","sourceRoot":"","sources":["../src/near-miss.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,sEAAsE;AACtE,eAAO,MAAM,cAAc,2HAQjB,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAmB3D;AAyBD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAwB,GAC1E,MAAM,CAiBR"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * "Did you mean…" for a top-level key that is one typo from a hint name.
3
+ *
4
+ * WHY THIS EXISTS. Neither surface's outer object can be strict — MCP carries
5
+ * `_meta`, and the HTTP surface must tolerate OpenAI's own fields — so an
6
+ * unknown top-level key was accepted and dropped on both. The named traps in
7
+ * mcp/tool-schemas.ts and http/parse.ts catch the snake_case spellings, which
8
+ * are the predictable slip. A plain typo is not enumerable and had the same
9
+ * consequence: `safteyProfile` returned success and the dispatch ran at the
10
+ * default `workspace_edit` — more access than the caller asked for, with no
11
+ * signal — while the correct spelling produced `read_only`.
12
+ *
13
+ * ONE COPY ON PURPOSE. This file exists because the alternative is the same
14
+ * rule written twice, and tool-schemas.ts already records where that leads:
15
+ * "Three independent copies of one rule is how they diverged". The surfaces
16
+ * disagreeing about which keys are typos would be exactly the "same input, two
17
+ * answers" class the parity suite was built to end.
18
+ */
19
+ /** The hint names a caller can plausibly mistype at the top level. */
20
+ export const HINT_KEY_NAMES = [
21
+ "safetyProfile",
22
+ "routePolicy",
23
+ "taskType",
24
+ "workspacePolicy",
25
+ "preferLargeContext",
26
+ "timeoutMs",
27
+ "workingDir",
28
+ ];
29
+ /**
30
+ * The hint name this key is one typo away from, or undefined.
31
+ *
32
+ * Returns undefined for an exact match: that is a correct key, not a near miss.
33
+ */
34
+ export function nearMissHintKey(key) {
35
+ if (HINT_KEY_NAMES.includes(key))
36
+ return undefined;
37
+ return HINT_KEY_NAMES.find((known) => withinOneTypo(key, known));
38
+ }
39
+ /**
40
+ * One typo apart: an insertion, deletion, substitution, or a swap of two
41
+ * adjacent characters.
42
+ *
43
+ * The swap is not an extra. `safteyProfile` is the exact spelling an acceptance
44
+ * pass typed, and plain edit distance scores a transposition as TWO
45
+ * substitutions — so a rule without it misses the case it was written for.
46
+ *
47
+ * Deliberately tight in the other direction too: at a true distance of two,
48
+ * short field names from the OpenAI protocol start matching, and refusing a
49
+ * legitimate request would be its own defect.
50
+ */
51
+ export function withinOneTypo(a, b) {
52
+ if (a === b)
53
+ return false;
54
+ if (isAdjacentSwap(a, b))
55
+ return true;
56
+ if (Math.abs(a.length - b.length) > 1)
57
+ return false;
58
+ const [short, long] = a.length <= b.length ? [a, b] : [b, a];
59
+ let i = 0;
60
+ let j = 0;
61
+ let edits = 0;
62
+ while (i < short.length && j < long.length) {
63
+ if (short[i] === long[j]) {
64
+ i += 1;
65
+ j += 1;
66
+ continue;
67
+ }
68
+ if (++edits > 1)
69
+ return false;
70
+ if (short.length === long.length)
71
+ i += 1;
72
+ j += 1;
73
+ }
74
+ return edits + (long.length - j) + (short.length - i) <= 1;
75
+ }
76
+ /** Two adjacent characters swapped, and otherwise identical. */
77
+ function isAdjacentSwap(a, b) {
78
+ if (a.length !== b.length)
79
+ return false;
80
+ const diff = [];
81
+ for (let i = 0; i < a.length; i += 1) {
82
+ if (a[i] !== b[i])
83
+ diff.push(i);
84
+ if (diff.length > 2)
85
+ return false;
86
+ }
87
+ if (diff.length !== 2)
88
+ return false;
89
+ const [x, y] = diff;
90
+ return y === x + 1 && a[x] === b[y] && a[y] === b[x];
91
+ }
92
+ /**
93
+ * Where each hint name legitimately goes on the MCP surface.
94
+ *
95
+ * Only these two are top-level `dispatch` parameters; the rest are `z.never()`
96
+ * traps there and belong inside `hints`. The HTTP surface reads ALL SEVEN from
97
+ * the top level of the request body (`http/parse.ts`), which is why the advice
98
+ * below has to know which surface is asking.
99
+ */
100
+ const MCP_TOP_LEVEL_NAMES = new Set(["workingDir", "workspacePolicy"]);
101
+ /**
102
+ * The message both surfaces give — same RULE, correct advice for each.
103
+ *
104
+ * The rule is shared on purpose (see this file's header). The advice cannot
105
+ * be: a single "did you mean X?" sent the caller somewhere the surface would
106
+ * refuse or ignore, which is the failure `tool-schemas.ts` already records
107
+ * from its own snake_case traps — "a refusal that confidently points at the
108
+ * wrong landing spot costs the round trip it exists to save". An acceptance
109
+ * pass measured the new message repeating it: correcting `safteyProfile` to
110
+ * `safetyProfile` on MCP `dispatch` produced a SECOND rejection, because the
111
+ * corrected spelling is a trap at that level.
112
+ *
113
+ * `toolName` is MCP-only and names the tool the call was for. On a tool that
114
+ * takes no hints at all — `job_status`, `usage`, `cancel_job`, `retry_job`,
115
+ * `workspace` — the corrected spelling is simply not a field, and the old
116
+ * message's "the dispatch runs with MORE access than you asked for" was false
117
+ * on every one of them: none of them dispatch anything.
118
+ */
119
+ export function nearMissMessage(key, meant, opts = { surface: "http" }) {
120
+ const head = `${key} is not a field — did you mean ${meant}?`;
121
+ const ignored = "As written it is accepted and silently ignored";
122
+ const safetyTail = ", which for a safety setting means the run gets MORE access than you asked for.";
123
+ if (opts.surface === "mcp" && opts.toolName !== undefined && opts.toolName !== "dispatch") {
124
+ return (`${head} Neither spelling is a field on \`${opts.toolName}\` — hints apply to ` +
125
+ `\`dispatch\`. ${ignored}.`);
126
+ }
127
+ const where = opts.surface === "mcp" && !MCP_TOP_LEVEL_NAMES.has(meant)
128
+ ? `On this surface it goes inside \`hints\` — hints: { ${meant}: ... }.`
129
+ : `It belongs at the top level of the request.`;
130
+ return `${head} ${where} ${ignored}${safetyTail}`;
131
+ }
132
+ //# sourceMappingURL=near-miss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"near-miss.js","sourceRoot":"","sources":["../src/near-miss.ts"],"names":[],"mappings":"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"}
package/dist/quota.d.ts CHANGED
@@ -117,6 +117,8 @@ export declare class QuotaCache {
117
117
  */
118
118
  private pendingDelta;
119
119
  private persistCounter;
120
+ /** Last failure to persist local counts; surfaced by status. */
121
+ private persistError;
120
122
  constructor(dispatchers: Record<string, Dispatcher>, opts?: QuotaCacheOptions);
121
123
  getQuotaScore(service: string): Promise<number>;
122
124
  private bumpDelta;
@@ -178,7 +180,35 @@ export declare class QuotaCache {
178
180
  * an absolute value simply take turns writing the same number.
179
181
  */
180
182
  saveLocalCountsSync(): void;
181
- /** Current on-disk state, or {} if unreadable. */
183
+ /**
184
+ * Why local counters are not reaching disk, or undefined if they are.
185
+ *
186
+ * Read by `buildStatus`. Deliberately not thrown: a dispatch that produced a
187
+ * real answer must not fail because a counter could not be written.
188
+ */
189
+ localCountsPersistError(): string | undefined;
190
+ /**
191
+ * Current on-disk state, or {} if unreadable.
192
+ *
193
+ * `{}` used to mean two different things — "no file yet" and "a file I could
194
+ * not read" — and the caller applies its delta to whatever this returns and
195
+ * writes the result back. So one unparseable read did not merely stop
196
+ * counting: it REPLACED every route's history with a single route at 1.
197
+ * Measured — two routes with 5 and 3 calls became one route with 1, and
198
+ * `usage` then reported that as fact, on the surface this project's own
199
+ * instructions tell an orchestrator to consult before delegating.
200
+ *
201
+ * The file is moved aside rather than overwritten. Counters are
202
+ * informational, so this does not try to recover them; it just declines to
203
+ * be the thing that destroys them, and leaves the evidence next to the file.
204
+ */
182
205
  private readStateFile;
206
+ /**
207
+ * Move an unreadable state file aside so the write that follows cannot
208
+ * destroy it. Best-effort in every direction: this runs on the counter path,
209
+ * which must never fail a dispatch, and a failed rename simply leaves the
210
+ * previous behaviour.
211
+ */
212
+ private quarantineUnreadableState;
183
213
  }
184
214
  //# sourceMappingURL=quota.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"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"}