harness-dispatch 0.7.8 → 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 (114) hide show
  1. package/CHANGELOG.md +706 -1
  2. package/README.md +35 -5
  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 +449 -21
  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/generic-cli.d.ts.map +1 -1
  31. package/dist/dispatchers/generic-cli.js +35 -0
  32. package/dist/dispatchers/generic-cli.js.map +1 -1
  33. package/dist/dispatchers/openai-compatible.d.ts +20 -4
  34. package/dist/dispatchers/openai-compatible.d.ts.map +1 -1
  35. package/dist/dispatchers/openai-compatible.js +145 -17
  36. package/dist/dispatchers/openai-compatible.js.map +1 -1
  37. package/dist/dispatchers/shared/rate-limit-headers.d.ts +4 -2
  38. package/dist/dispatchers/shared/rate-limit-headers.d.ts.map +1 -1
  39. package/dist/dispatchers/shared/rate-limit-headers.js +4 -2
  40. package/dist/dispatchers/shared/rate-limit-headers.js.map +1 -1
  41. package/dist/http/answer-stream.d.ts +52 -0
  42. package/dist/http/answer-stream.d.ts.map +1 -0
  43. package/dist/http/answer-stream.js +47 -0
  44. package/dist/http/answer-stream.js.map +1 -0
  45. package/dist/http/parse.d.ts.map +1 -1
  46. package/dist/http/parse.js +41 -0
  47. package/dist/http/parse.js.map +1 -1
  48. package/dist/http/server.d.ts.map +1 -1
  49. package/dist/http/server.js +102 -9
  50. package/dist/http/server.js.map +1 -1
  51. package/dist/jobs/store.d.ts.map +1 -1
  52. package/dist/jobs/store.js +45 -4
  53. package/dist/jobs/store.js.map +1 -1
  54. package/dist/jobs.d.ts +24 -0
  55. package/dist/jobs.d.ts.map +1 -1
  56. package/dist/jobs.js +101 -1
  57. package/dist/jobs.js.map +1 -1
  58. package/dist/mcp/config-hot-reload.d.ts.map +1 -1
  59. package/dist/mcp/config-hot-reload.js +10 -0
  60. package/dist/mcp/config-hot-reload.js.map +1 -1
  61. package/dist/mcp/near-miss-guard.d.ts +45 -0
  62. package/dist/mcp/near-miss-guard.d.ts.map +1 -0
  63. package/dist/mcp/near-miss-guard.js +98 -0
  64. package/dist/mcp/near-miss-guard.js.map +1 -0
  65. package/dist/mcp/server.d.ts.map +1 -1
  66. package/dist/mcp/server.js +36 -0
  67. package/dist/mcp/server.js.map +1 -1
  68. package/dist/mcp/tool-schemas.d.ts.map +1 -1
  69. package/dist/mcp/tool-schemas.js +21 -4
  70. package/dist/mcp/tool-schemas.js.map +1 -1
  71. package/dist/mcp/tools.d.ts +32 -0
  72. package/dist/mcp/tools.d.ts.map +1 -1
  73. package/dist/mcp/tools.js +41 -0
  74. package/dist/mcp/tools.js.map +1 -1
  75. package/dist/mcp-clients.d.ts +63 -0
  76. package/dist/mcp-clients.d.ts.map +1 -0
  77. package/dist/mcp-clients.js +117 -0
  78. package/dist/mcp-clients.js.map +1 -0
  79. package/dist/near-miss.d.ts +63 -0
  80. package/dist/near-miss.d.ts.map +1 -0
  81. package/dist/near-miss.js +132 -0
  82. package/dist/near-miss.js.map +1 -0
  83. package/dist/quota.d.ts +31 -1
  84. package/dist/quota.d.ts.map +1 -1
  85. package/dist/quota.js +68 -6
  86. package/dist/quota.js.map +1 -1
  87. package/dist/route-policy.d.ts +10 -0
  88. package/dist/route-policy.d.ts.map +1 -1
  89. package/dist/route-policy.js +20 -2
  90. package/dist/route-policy.js.map +1 -1
  91. package/dist/router.d.ts +61 -2
  92. package/dist/router.d.ts.map +1 -1
  93. package/dist/router.js +165 -29
  94. package/dist/router.js.map +1 -1
  95. package/dist/safety.d.ts.map +1 -1
  96. package/dist/safety.js +31 -1
  97. package/dist/safety.js.map +1 -1
  98. package/dist/status.d.ts +30 -21
  99. package/dist/status.d.ts.map +1 -1
  100. package/dist/status.js +152 -8
  101. package/dist/status.js.map +1 -1
  102. package/dist/types.d.ts +43 -1
  103. package/dist/types.d.ts.map +1 -1
  104. package/dist/working-dir.d.ts.map +1 -1
  105. package/dist/working-dir.js +16 -0
  106. package/dist/working-dir.js.map +1 -1
  107. package/dist/workspace-resolve.d.ts.map +1 -1
  108. package/dist/workspace-resolve.js +119 -15
  109. package/dist/workspace-resolve.js.map +1 -1
  110. package/dist/workspaces.d.ts +83 -0
  111. package/dist/workspaces.d.ts.map +1 -1
  112. package/dist/workspaces.js +288 -15
  113. package/dist/workspaces.js.map +1 -1
  114. package/package.json +4 -3
@@ -81,7 +81,9 @@ export const publicHintsSchema = z
81
81
  .optional()
82
82
  .describe("Kind of work: 'execute' (write/modify code, run commands), 'plan' " +
83
83
  "(architecture/design, no edits), 'review' (critique code, no edits), 'local' " +
84
- "(trivial/mechanical — prefers free local endpoints). ALWAYS set this: when " +
84
+ "(trivial/mechanical — picks a local endpoint wherever it sits, ahead of the " +
85
+ "usual tier order, and falls back to normal routing when you have none). " +
86
+ "ALWAYS set this: when " +
85
87
  "omitted, per-task capability weighting and model escalation are disabled and " +
86
88
  "routing quality degrades."),
87
89
  preferLargeContext: z
@@ -289,12 +291,23 @@ export const dispatchInputShape = {
289
291
  ...misplacedTopLevelKeys,
290
292
  models: z
291
293
  .array(z.string().refine(noNul, NO_NUL_MESSAGE))
294
+ // An EXPLICIT empty array is a caller mistake, and the most expensive one
295
+ // this field can carry: it fell through to the same branch as "omitted"
296
+ // and fanned out to every eligible route — measured at eight arms on one
297
+ // machine, one per configured route. A caller who wrote `models: []` built
298
+ // a list and it came out empty; they did not ask for everything. Omitting
299
+ // the field is how you ask for that, and it stays a deliberate keystroke
300
+ // rather than the result of a filter matching nothing.
301
+ .min(1, "models: [] selects no routes. Omit `models` entirely to fan out to every " +
302
+ "eligible route (expensive — one dispatch per route), or name at least one. " +
303
+ "An empty list is usually a filter that matched nothing.")
292
304
  .optional()
293
305
  .describe("Route ids or model names to fan out to (fanout mode only). This is the ONLY " +
294
306
  "field that narrows which routes fanout hits — `hints.model` is ignored " +
295
307
  "entirely in fanout mode (not used for selection, not forwarded to any " +
296
- "dispatch); it only does anything in single mode. Get valid ids from the " +
297
- "`usage` tool."),
308
+ "dispatch); it only does anything in single mode. An empty array is " +
309
+ "REFUSED rather than treated as 'all routes' — omit the field for that. " +
310
+ "Get valid ids from the `usage` tool."),
298
311
  service: z
299
312
  .string()
300
313
  .optional()
@@ -396,6 +409,10 @@ export const retryJobInputShape = {
396
409
  .optional()
397
410
  .describe("Route the retry somewhere else (e.g. the original hit its usage limit). " +
398
411
  "Omit to reuse the original route, or to let the router pick again if it " +
399
- "had none. Get valid ids from `usage`."),
412
+ "had none. Get valid ids from `usage`. Retargeting leaves behind the " +
413
+ "original's model when the new route does not declare it — a model name " +
414
+ "belongs to the route it was picked for — and reports it as " +
415
+ "`droppedModel`; pass a fresh `hints.model` on `dispatch` to choose one " +
416
+ "for this route."),
400
417
  };
401
418
  //# sourceMappingURL=tool-schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-schemas.js","sourceRoot":"","sources":["../../src/mcp/tool-schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-schemas.js","sourceRoot":"","sources":["../../src/mcp/tool-schemas.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,16 @@ export interface RouteResponse {
74
74
  * happened. It was not forwarded at all.
75
75
  */
76
76
  modelHintDropped?: boolean;
77
+ /**
78
+ * What the picked route beat, best first, winner included — present only
79
+ * when the router chose. `reason` counts the candidates ("tier 1 best (3
80
+ * available)"); this says which three and by how much, so an automatic
81
+ * choice can be argued with instead of taken on faith.
82
+ */
83
+ candidates?: Array<{
84
+ route: string;
85
+ score: number;
86
+ }>;
77
87
  };
78
88
  }
79
89
  export interface FanoutItem {
@@ -164,5 +174,27 @@ export type InvokeResult = {
164
174
  kind: "json";
165
175
  data: unknown;
166
176
  };
177
+ /**
178
+ * Near-miss top-level keys are caught by `mcp/near-miss-guard.ts`, not here.
179
+ *
180
+ * This is where the gap used to be documented. The MCP SDK validates against
181
+ * `z.object(dispatchInputShape)` before any code in this file runs, and zod
182
+ * STRIPS unknown keys — so by the time a handler sees the arguments, a
183
+ * misspelled key is already gone, and nothing in the registered-tool path can
184
+ * see what the caller actually sent. `hints` is `.strict()`, which is why the
185
+ * nested form was always rejected; the outer object cannot be, because MCP
186
+ * carries `_meta` there.
187
+ *
188
+ * An acceptance pass measured what that cost: `safteyProfile: "read_only"` was
189
+ * accepted in silence and the dispatch ran at the `workspace_edit` default,
190
+ * writing a file. Asking for read-only by way of a typo got you write access,
191
+ * while the HTTP surface refused the same input — one input, two opposite
192
+ * answers, which is the class the parity suite exists to end.
193
+ *
194
+ * The guard wraps the CallTool handler the SDK installs and inspects the raw
195
+ * arguments before delegating, so the SDK's routing, validation and `extra`
196
+ * plumbing are untouched. Both surfaces now run the same check from
197
+ * `near-miss.ts`, and `surface-parity.test.ts` asserts it on both.
198
+ */
167
199
  export declare function invokeTool(name: string, args: unknown, deps: ToolDeps): Promise<InvokeResult>;
168
200
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
package/dist/mcp/tools.js CHANGED
@@ -148,6 +148,9 @@ function routeResponse(result, decision, workingDirWarningMessage) {
148
148
  if (decision.modelHintDropped !== undefined) {
149
149
  response.routing.modelHintDropped = decision.modelHintDropped;
150
150
  }
151
+ if (decision.candidates !== undefined && decision.candidates.length > 0) {
152
+ response.routing.candidates = decision.candidates;
153
+ }
151
154
  if (decision.skippedRoutes !== undefined && decision.skippedRoutes.length > 0) {
152
155
  response.skippedRoutes = decision.skippedRoutes;
153
156
  }
@@ -339,6 +342,22 @@ async function startFanout(deps, input, extra) {
339
342
  continue;
340
343
  candidates.push(routeName);
341
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
+ }
342
361
  const prompt = input.prompt;
343
362
  const files = input.files ?? [];
344
363
  const live = { value: true };
@@ -615,6 +634,28 @@ export function registerTools(server, deps) {
615
634
  inputSchema: usageInputShape,
616
635
  }, async (args) => jsonText(await handleUsage(deps, args)));
617
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
+ */
618
659
  export async function invokeTool(name, args, deps) {
619
660
  if (name === "dispatch") {
620
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":"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"}
@@ -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"}