@descryy/mcp 0.6.0 → 0.7.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 (260) hide show
  1. package/dist/action-handshake.d.ts +8 -75
  2. package/dist/action-handshake.d.ts.map +1 -1
  3. package/dist/action-handshake.js +9 -79
  4. package/dist/action-handshake.js.map +1 -1
  5. package/dist/bin/descry-mcp.d.ts +4 -15
  6. package/dist/bin/descry-mcp.d.ts.map +1 -1
  7. package/dist/bin/descry-mcp.js +12 -42
  8. package/dist/bin/descry-mcp.js.map +1 -1
  9. package/dist/browser/driver.d.ts +59 -224
  10. package/dist/browser/driver.d.ts.map +1 -1
  11. package/dist/browser/driver.js +9 -55
  12. package/dist/browser/driver.js.map +1 -1
  13. package/dist/browser/evidence.d.ts +10 -43
  14. package/dist/browser/evidence.d.ts.map +1 -1
  15. package/dist/browser/evidence.js +20 -54
  16. package/dist/browser/evidence.js.map +1 -1
  17. package/dist/browser/fake-driver.d.ts +4 -16
  18. package/dist/browser/fake-driver.d.ts.map +1 -1
  19. package/dist/browser/fake-driver.js +6 -20
  20. package/dist/browser/fake-driver.js.map +1 -1
  21. package/dist/browser/graph-write.d.ts +4 -45
  22. package/dist/browser/graph-write.d.ts.map +1 -1
  23. package/dist/browser/graph-write.js +8 -53
  24. package/dist/browser/graph-write.js.map +1 -1
  25. package/dist/browser/playwright-driver.d.ts +7 -91
  26. package/dist/browser/playwright-driver.d.ts.map +1 -1
  27. package/dist/browser/playwright-driver.js +40 -194
  28. package/dist/browser/playwright-driver.js.map +1 -1
  29. package/dist/browser/provider.d.ts +5 -34
  30. package/dist/browser/provider.d.ts.map +1 -1
  31. package/dist/browser/provider.js +4 -24
  32. package/dist/browser/provider.js.map +1 -1
  33. package/dist/browser/registry.d.ts +26 -106
  34. package/dist/browser/registry.d.ts.map +1 -1
  35. package/dist/browser/registry.js +20 -77
  36. package/dist/browser/registry.js.map +1 -1
  37. package/dist/browser/scenario-resolve.d.ts +10 -44
  38. package/dist/browser/scenario-resolve.d.ts.map +1 -1
  39. package/dist/browser/scenario-resolve.js +10 -41
  40. package/dist/browser/scenario-resolve.js.map +1 -1
  41. package/dist/browser/scenario-runner.d.ts +12 -70
  42. package/dist/browser/scenario-runner.d.ts.map +1 -1
  43. package/dist/browser/scenario-runner.js +30 -90
  44. package/dist/browser/scenario-runner.js.map +1 -1
  45. package/dist/browser/stack-parser.d.ts +4 -28
  46. package/dist/browser/stack-parser.d.ts.map +1 -1
  47. package/dist/browser/stack-parser.js +12 -39
  48. package/dist/browser/stack-parser.js.map +1 -1
  49. package/dist/browser/tool-support.d.ts +20 -67
  50. package/dist/browser/tool-support.d.ts.map +1 -1
  51. package/dist/browser/tool-support.js +21 -65
  52. package/dist/browser/tool-support.js.map +1 -1
  53. package/dist/browser/url-scheme.d.ts +14 -0
  54. package/dist/browser/url-scheme.d.ts.map +1 -0
  55. package/dist/browser/url-scheme.js +38 -0
  56. package/dist/browser/url-scheme.js.map +1 -0
  57. package/dist/cancellation.d.ts +11 -46
  58. package/dist/cancellation.d.ts.map +1 -1
  59. package/dist/cancellation.js +11 -46
  60. package/dist/cancellation.js.map +1 -1
  61. package/dist/capped.d.ts +9 -33
  62. package/dist/capped.d.ts.map +1 -1
  63. package/dist/capped.js +7 -27
  64. package/dist/capped.js.map +1 -1
  65. package/dist/disclosure-ledger.d.ts +6 -30
  66. package/dist/disclosure-ledger.d.ts.map +1 -1
  67. package/dist/disclosure-ledger.js +4 -26
  68. package/dist/disclosure-ledger.js.map +1 -1
  69. package/dist/index.d.ts +10 -26
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +7 -17
  72. package/dist/index.js.map +1 -1
  73. package/dist/module-trust.d.ts +24 -0
  74. package/dist/module-trust.d.ts.map +1 -0
  75. package/dist/module-trust.js +60 -0
  76. package/dist/module-trust.js.map +1 -0
  77. package/dist/path-confinement.d.ts +31 -0
  78. package/dist/path-confinement.d.ts.map +1 -0
  79. package/dist/path-confinement.js +44 -0
  80. package/dist/path-confinement.js.map +1 -0
  81. package/dist/protocol.d.ts +10 -53
  82. package/dist/protocol.d.ts.map +1 -1
  83. package/dist/protocol.js +14 -60
  84. package/dist/protocol.js.map +1 -1
  85. package/dist/registry.d.ts +10 -58
  86. package/dist/registry.d.ts.map +1 -1
  87. package/dist/registry.js +38 -90
  88. package/dist/registry.js.map +1 -1
  89. package/dist/render.d.ts +42 -11
  90. package/dist/render.d.ts.map +1 -1
  91. package/dist/render.js +74 -10
  92. package/dist/render.js.map +1 -1
  93. package/dist/runtime-registry.d.ts +7 -66
  94. package/dist/runtime-registry.d.ts.map +1 -1
  95. package/dist/runtime-registry.js +39 -114
  96. package/dist/runtime-registry.js.map +1 -1
  97. package/dist/scenarios/index.d.ts +1 -1
  98. package/dist/scenarios/index.d.ts.map +1 -1
  99. package/dist/scenarios/index.js +1 -1
  100. package/dist/scenarios/index.js.map +1 -1
  101. package/dist/scenarios/parse.d.ts +4 -18
  102. package/dist/scenarios/parse.d.ts.map +1 -1
  103. package/dist/scenarios/parse.js +14 -34
  104. package/dist/scenarios/parse.js.map +1 -1
  105. package/dist/scenarios/scenario.d.ts +18 -74
  106. package/dist/scenarios/scenario.d.ts.map +1 -1
  107. package/dist/scenarios/scenario.js +7 -34
  108. package/dist/scenarios/scenario.js.map +1 -1
  109. package/dist/scenarios/storage.d.ts +11 -41
  110. package/dist/scenarios/storage.d.ts.map +1 -1
  111. package/dist/scenarios/storage.js +57 -47
  112. package/dist/scenarios/storage.js.map +1 -1
  113. package/dist/server.d.ts.map +1 -1
  114. package/dist/server.js +37 -17
  115. package/dist/server.js.map +1 -1
  116. package/dist/session.d.ts +67 -259
  117. package/dist/session.d.ts.map +1 -1
  118. package/dist/session.js +69 -250
  119. package/dist/session.js.map +1 -1
  120. package/dist/tools/analyze.d.ts +24 -118
  121. package/dist/tools/analyze.d.ts.map +1 -1
  122. package/dist/tools/analyze.js +44 -166
  123. package/dist/tools/analyze.js.map +1 -1
  124. package/dist/tools/browser-click.d.ts +3 -21
  125. package/dist/tools/browser-click.d.ts.map +1 -1
  126. package/dist/tools/browser-click.js +10 -31
  127. package/dist/tools/browser-click.js.map +1 -1
  128. package/dist/tools/browser-close-session.d.ts +4 -13
  129. package/dist/tools/browser-close-session.d.ts.map +1 -1
  130. package/dist/tools/browser-close-session.js +4 -13
  131. package/dist/tools/browser-close-session.js.map +1 -1
  132. package/dist/tools/browser-fill.d.ts +5 -36
  133. package/dist/tools/browser-fill.d.ts.map +1 -1
  134. package/dist/tools/browser-fill.js +9 -44
  135. package/dist/tools/browser-fill.js.map +1 -1
  136. package/dist/tools/browser-navigate.d.ts +6 -27
  137. package/dist/tools/browser-navigate.d.ts.map +1 -1
  138. package/dist/tools/browser-navigate.js +6 -23
  139. package/dist/tools/browser-navigate.js.map +1 -1
  140. package/dist/tools/browser-run-scenario.d.ts +5 -31
  141. package/dist/tools/browser-run-scenario.d.ts.map +1 -1
  142. package/dist/tools/browser-run-scenario.js +10 -46
  143. package/dist/tools/browser-run-scenario.js.map +1 -1
  144. package/dist/tools/browser-save-scenario.d.ts +3 -28
  145. package/dist/tools/browser-save-scenario.d.ts.map +1 -1
  146. package/dist/tools/browser-save-scenario.js +15 -74
  147. package/dist/tools/browser-save-scenario.js.map +1 -1
  148. package/dist/tools/browser-snapshot.d.ts +6 -39
  149. package/dist/tools/browser-snapshot.d.ts.map +1 -1
  150. package/dist/tools/browser-snapshot.js +4 -31
  151. package/dist/tools/browser-snapshot.js.map +1 -1
  152. package/dist/tools/browser-start-session.d.ts +4 -23
  153. package/dist/tools/browser-start-session.d.ts.map +1 -1
  154. package/dist/tools/browser-start-session.js +33 -55
  155. package/dist/tools/browser-start-session.js.map +1 -1
  156. package/dist/tools/browser-type.d.ts +5 -35
  157. package/dist/tools/browser-type.d.ts.map +1 -1
  158. package/dist/tools/browser-type.js +10 -45
  159. package/dist/tools/browser-type.js.map +1 -1
  160. package/dist/tools/contracts.d.ts +9 -86
  161. package/dist/tools/contracts.d.ts.map +1 -1
  162. package/dist/tools/contracts.js +24 -80
  163. package/dist/tools/contracts.js.map +1 -1
  164. package/dist/tools/cross-pr.d.ts +42 -30
  165. package/dist/tools/cross-pr.d.ts.map +1 -1
  166. package/dist/tools/cross-pr.js +81 -62
  167. package/dist/tools/cross-pr.js.map +1 -1
  168. package/dist/tools/git-diff.d.ts +18 -2
  169. package/dist/tools/git-diff.d.ts.map +1 -1
  170. package/dist/tools/git-diff.js +118 -26
  171. package/dist/tools/git-diff.js.map +1 -1
  172. package/dist/tools/git-history.d.ts +5 -16
  173. package/dist/tools/git-history.d.ts.map +1 -1
  174. package/dist/tools/git-history.js +3 -10
  175. package/dist/tools/git-history.js.map +1 -1
  176. package/dist/tools/history.d.ts +4 -33
  177. package/dist/tools/history.d.ts.map +1 -1
  178. package/dist/tools/history.js +6 -31
  179. package/dist/tools/history.js.map +1 -1
  180. package/dist/tools/impact.d.ts +7 -51
  181. package/dist/tools/impact.d.ts.map +1 -1
  182. package/dist/tools/impact.js +15 -67
  183. package/dist/tools/impact.js.map +1 -1
  184. package/dist/tools/index.d.ts +3 -8
  185. package/dist/tools/index.d.ts.map +1 -1
  186. package/dist/tools/index.js +3 -8
  187. package/dist/tools/index.js.map +1 -1
  188. package/dist/tools/kit.d.ts +66 -113
  189. package/dist/tools/kit.d.ts.map +1 -1
  190. package/dist/tools/kit.js +60 -28
  191. package/dist/tools/kit.js.map +1 -1
  192. package/dist/tools/link-workspace.d.ts +7 -45
  193. package/dist/tools/link-workspace.d.ts.map +1 -1
  194. package/dist/tools/link-workspace.js +10 -48
  195. package/dist/tools/link-workspace.js.map +1 -1
  196. package/dist/tools/lookup.d.ts +4 -14
  197. package/dist/tools/lookup.d.ts.map +1 -1
  198. package/dist/tools/lookup.js +4 -14
  199. package/dist/tools/lookup.js.map +1 -1
  200. package/dist/tools/mark-incident.d.ts +7 -54
  201. package/dist/tools/mark-incident.d.ts.map +1 -1
  202. package/dist/tools/mark-incident.js +15 -68
  203. package/dist/tools/mark-incident.js.map +1 -1
  204. package/dist/tools/observe-runtime.d.ts +27 -210
  205. package/dist/tools/observe-runtime.d.ts.map +1 -1
  206. package/dist/tools/observe-runtime.js +257 -435
  207. package/dist/tools/observe-runtime.js.map +1 -1
  208. package/dist/tools/observe-tests.d.ts +9 -100
  209. package/dist/tools/observe-tests.d.ts.map +1 -1
  210. package/dist/tools/observe-tests.js +24 -152
  211. package/dist/tools/observe-tests.js.map +1 -1
  212. package/dist/tools/pr-analysis.d.ts +18 -2
  213. package/dist/tools/pr-analysis.d.ts.map +1 -1
  214. package/dist/tools/pr-analysis.js +73 -23
  215. package/dist/tools/pr-analysis.js.map +1 -1
  216. package/dist/tools/pre-push.d.ts +68 -16
  217. package/dist/tools/pre-push.d.ts.map +1 -1
  218. package/dist/tools/pre-push.js +98 -35
  219. package/dist/tools/pre-push.js.map +1 -1
  220. package/dist/tools/propagation.d.ts +11 -53
  221. package/dist/tools/propagation.d.ts.map +1 -1
  222. package/dist/tools/propagation.js +14 -57
  223. package/dist/tools/propagation.js.map +1 -1
  224. package/dist/tools/questions.d.ts +13 -63
  225. package/dist/tools/questions.d.ts.map +1 -1
  226. package/dist/tools/questions.js +33 -105
  227. package/dist/tools/questions.js.map +1 -1
  228. package/dist/tools/refusal-fetch.d.ts +4 -40
  229. package/dist/tools/refusal-fetch.d.ts.map +1 -1
  230. package/dist/tools/refusal-fetch.js +4 -40
  231. package/dist/tools/refusal-fetch.js.map +1 -1
  232. package/dist/tools/runtime-incident.d.ts +4 -63
  233. package/dist/tools/runtime-incident.d.ts.map +1 -1
  234. package/dist/tools/runtime-incident.js +10 -87
  235. package/dist/tools/runtime-incident.js.map +1 -1
  236. package/dist/tools/scope.d.ts +7 -25
  237. package/dist/tools/scope.d.ts.map +1 -1
  238. package/dist/tools/scope.js +10 -29
  239. package/dist/tools/scope.js.map +1 -1
  240. package/dist/tools/similar-incidents.d.ts +11 -86
  241. package/dist/tools/similar-incidents.d.ts.map +1 -1
  242. package/dist/tools/similar-incidents.js +7 -71
  243. package/dist/tools/similar-incidents.js.map +1 -1
  244. package/dist/tools/validate.d.ts +14 -69
  245. package/dist/tools/validate.d.ts.map +1 -1
  246. package/dist/tools/validate.js +23 -74
  247. package/dist/tools/validate.js.map +1 -1
  248. package/dist/tools/verification-status.d.ts +9 -64
  249. package/dist/tools/verification-status.d.ts.map +1 -1
  250. package/dist/tools/verification-status.js +9 -62
  251. package/dist/tools/verification-status.js.map +1 -1
  252. package/dist/tools/verify-claim.d.ts +5 -52
  253. package/dist/tools/verify-claim.d.ts.map +1 -1
  254. package/dist/tools/verify-claim.js +6 -56
  255. package/dist/tools/verify-claim.js.map +1 -1
  256. package/dist/transport.d.ts +15 -52
  257. package/dist/transport.d.ts.map +1 -1
  258. package/dist/transport.js +16 -60
  259. package/dist/transport.js.map +1 -1
  260. package/package.json +30 -21
@@ -1,55 +1,8 @@
1
- /**
2
- * `verification_status` — §4 technique 6: *"Coverage is a separate axis and
3
- * a separate call. Appending it everywhere pays on every call; a tool pays
4
- * once, when the client is actually reporting."*
5
- *
6
- * Wraps `packages/core/src/query/verification-status.ts`'s
7
- * `computeVerificationStatus` — the module's own header calls itself "the
8
- * static half only" and says building the `ScopeItem[]` from a caller's refs
9
- * is "the caller's job, done above this boundary." This tool is that caller.
10
- *
11
- * ## Real capability lookup, without ever naming a language up here
12
- *
13
- * `computeVerificationStatus`'s `ScopeItem.capabilities`, when supplied,
14
- * lets a `notExercised` reason describe a real declared gap rather than a
15
- * generic absence. The first design attempted here guessed a language from
16
- * a ref's file extension and matched it against a `language` tag on a
17
- * configured source — and `npm run lint` caught it immediately:
18
- * `descry-boundary/no-language-vocabulary` and `no-language-branch` both
19
- * fired, because `packages/*\/src/**` (this file included, not just
20
- * `packages/core`) is bound by architecture principle 7 — nothing above the
21
- * Canonical IR may name or dispatch on a language, full stop. A hardcoded
22
- * extension table and a `.get(guessedLanguage)` lookup are exactly the
23
- * "lookup dispatch" shape that rule exists to catch, not a false positive.
24
- *
25
- * The fix moves the decision below the boundary, where it belongs:
26
- * `LanguageAdapter` (`@descryy/ir`) gained an optional
27
- * `ownsPath(path): boolean` — the adapter decides, using whatever
28
- * language-specific logic it wants, entirely inside `descry-adapters`,
29
- * which is not bound by this repo's lint. This tool never sees or compares
30
- * a language string; it just asks every loaded, configured adapter "do you
31
- * own this path," and attaches whichever one says yes. An unresolved ref's
32
- * `language` therefore stays `null` here always — this tool does not
33
- * determine one, and does not need to: `computeVerificationStatus`'s reason
34
- * text already reads correctly either way (see its own module header),
35
- * naming an adapter as registered without ever naming which language it is
36
- * for.
37
- *
38
- * A configured source that fails to import cannot be asked at all — this
39
- * tool's own `notes` disclose that plainly, the same register `analyze.ts`
40
- * already uses for a source that will not import.
41
- *
42
- * ## Resolving a ref: node id first, then file
43
- *
44
- * A ref that is a real node id resolves directly (`getNode`). Otherwise it
45
- * is tried as a file path (`findNodes({ file: ref })`, the same reader
46
- * `lookup.ts`'s `resolveOneNode` already uses for symbol/file matching): the
47
- * file's own `FILE`-typed node stands in when one exists, else the node
48
- * with the *weakest* resolution in that file — the same "report the
49
- * weakest link" convention `resolutionFloor` uses elsewhere in this
50
- * package, since a file is only as verified as its least-resolved member.
51
- * A ref that resolves neither way is `notExercised`.
52
- */
1
+ /** `verification_status`, §4 technique 6: coverage is a separate axis and call, paid once, only
2
+ * when asked. Wraps `computeVerificationStatus` (the static half). Never names a language (rule
3
+ * 1) — an earlier extension-guessing design tripped the boundary lint, so it now asks each
4
+ * loaded adapter's `ownsPath` instead. Resolves a ref by node id first, then file (the file's own
5
+ * `FILE` node, else its weakest-resolution member) — neither way found means `notExercised`. */
53
6
  import { getNode, findNodes, computeVerificationStatus, observedTestCoverage, resolutionOfExercised, } from "@descryy/core";
54
7
  import { answer, optionalStringArray, ToolInputError, } from "./kit.js";
55
8
  import { loadSources } from "../registry.js";
@@ -86,11 +39,8 @@ function resolveRef(driver, ref) {
86
39
  }
87
40
  return { ref, language: null, node: null };
88
41
  }
89
- /**
90
- * Real capabilities for whichever configured, loaded adapter owns each
91
- * unresolved ref — decided entirely by the adapter's own `ownsPath`, never
92
- * by a language name compared up here. See the module header.
93
- */
42
+ /** Real capabilities for whichever loaded adapter owns each unresolved ref, via `ownsPath` —
43
+ * never a language name compared here (see module header). */
94
44
  async function capabilitiesForUnresolvedRefs(sources, unresolvedRefs, repoPath) {
95
45
  const capabilitiesByRef = new Map();
96
46
  const failedNotes = [];
@@ -134,11 +84,8 @@ async function run(args, ctx) {
134
84
  }));
135
85
  const status = computeVerificationStatus(scope);
136
86
  const exercised = status.exercised.map((entry) => resolutionOfExercised(entry));
137
- // The runtime half, composed here rather than inside computeVerificationStatus.
138
- // That module builds the static half and says so in its own header; keeping it
139
- // that way and joining above it is the same posture observe_runtime takes —
140
- // the tool layer is where composition belongs. Only refs that resolved to a
141
- // real node can be looked up: an unresolved ref has no id to join on.
87
+ // The runtime half is composed here, not inside computeVerificationStatus (static-only by
88
+ // design) — same posture as observe_runtime. Only resolved refs can be looked up.
142
89
  const lookupIds = resolved.filter((r) => r.node !== null).map((r) => r.node.id);
143
90
  const coverage = observedTestCoverage(driver, lookupIds);
144
91
  const verifiedByTests = resolved.flatMap((r) => {
@@ -1 +1 @@
1
- {"version":3,"file":"verification-status.js","sourceRoot":"","sources":["../../src/tools/verification-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-status.js","sourceRoot":"","sources":["../../src/tools/verification-status.ts"],"names":[],"mappings":"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"}
@@ -1,55 +1,8 @@
1
- /**
2
- * `verify_claim` — MK-12, offering `ai-governance-spec.md`'s G1/G2 gates as a
3
- * voluntary tool, since the pipeline they belong to (P9's full governance
4
- * loop) does not run in this surface (MK-11: "grepped and confirmed —
5
- * `packages/mcp/src` contains zero references to `runFindingFunnel`,
6
- * `reportCategory`, `FINDING_CAPS` or the ratified G4 arithmetic").
7
- *
8
- * ## What this checks, and what it deliberately does not
9
- *
10
- * §2's G1 rejects a factual claim whose citation "does not resolve against
11
- * this run's own recorded tool calls." §3's G2 rejects a plan item naming "a
12
- * file, node or symbol that does not appear" in an already-produced
13
- * candidate set. Both gates are, at their core, a lookup against calls
14
- * already made — and that lookup is exactly what a stateless MCP call *can*
15
- * do without the stage machinery (candidate generation, plan slots) that
16
- * produced G1/G2's own inputs in the full pipeline. This tool is that
17
- * lookup, offered voluntarily: **it does not enforce anything** — a host
18
- * that never calls it, or calls it and ignores an ungrounded verdict, has
19
- * lost nothing it had before. What it converts is *"we cannot check"* into
20
- * *"we offered to check and it declined"* — testable and loggable, per this
21
- * item's own text.
22
- *
23
- * A claim is checked two ways, either or both:
24
- *
25
- * - **`path`** (G1-shaped): does the cited call exist in this session, and
26
- * does the given dot-path resolve to a real value inside its recorded
27
- * result? A path into a call from a different session, or a path the
28
- * result does not actually have, is ungrounded — the direct equivalent of
29
- * G1's own negative control, "a citation pointing at a tool call from a
30
- * different run."
31
- * - **`target`** (G2-shaped): does the given string appear anywhere in the
32
- * cited call's recorded result at all? This is deliberately a plain
33
- * substring search over the result's JSON text, not a structural walk —
34
- * disclosed in the tool description, not smoothed over as something
35
- * stronger. It answers "was this ever actually returned as a candidate,"
36
- * which is what G2 checks; it does not verify the string's *role* in that
37
- * result (a rejected candidate and an accepted one both pass this check
38
- * equally, since substring search cannot see which list held it).
39
- *
40
- * A claim with neither is a malformed citation, not a free pass: it is
41
- * reported ungrounded with a reason naming what is missing, not silently
42
- * treated as making no claim at all.
43
- *
44
- * ## What this can never return
45
- *
46
- * `confirmed` does not appear here, on any path — MK-11's ruling holds:
47
- * `confirmed` "stays reserved for results that passed the full governance
48
- * pipeline," which this tool is not and does not run. This tool answers
49
- * exactly one narrower question — *does this citation resolve* — in its own
50
- * plain words, the same register the three deterministic tools (`validate`,
51
- * `contracts`, `cross_pr`) already conclude in per MK-11.
52
- */
1
+ /** `verify_claim`, MK-12: offers G1/G2 (`ai-governance-spec.md` §2/§3) as a voluntary lookup — the
2
+ * full pipeline doesn't run here (MK-11). `path` checks a dot-path resolves in a recorded call's
3
+ * result (G1); `target` is a plain substring search (G2-shaped, disclosed as weaker — it can't
4
+ * see whether the string was accepted or rejected). Never returns `confirmed` (MK-11): it
5
+ * enforces nothing, just converts "we cannot check" into "we offered and it declined." */
53
6
  import { type ToolDefinition } from "./kit.ts";
54
7
  export interface VerifyClaimResult {
55
8
  readonly statement: string;
@@ -1 +1 @@
1
- {"version":3,"file":"verify-claim.d.ts","sourceRoot":"","sources":["../../src/tools/verify-claim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAyClB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD;AAwID,eAAO,MAAM,eAAe,EAAE,cAc7B,CAAC"}
1
+ {"version":3,"file":"verify-claim.d.ts","sourceRoot":"","sources":["../../src/tools/verify-claim.ts"],"names":[],"mappings":"AAAA;;;;2FAI2F;AAE3F,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAyClB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD;AAqID,eAAO,MAAM,eAAe,EAAE,cAc7B,CAAC"}
@@ -1,55 +1,8 @@
1
- /**
2
- * `verify_claim` — MK-12, offering `ai-governance-spec.md`'s G1/G2 gates as a
3
- * voluntary tool, since the pipeline they belong to (P9's full governance
4
- * loop) does not run in this surface (MK-11: "grepped and confirmed —
5
- * `packages/mcp/src` contains zero references to `runFindingFunnel`,
6
- * `reportCategory`, `FINDING_CAPS` or the ratified G4 arithmetic").
7
- *
8
- * ## What this checks, and what it deliberately does not
9
- *
10
- * §2's G1 rejects a factual claim whose citation "does not resolve against
11
- * this run's own recorded tool calls." §3's G2 rejects a plan item naming "a
12
- * file, node or symbol that does not appear" in an already-produced
13
- * candidate set. Both gates are, at their core, a lookup against calls
14
- * already made — and that lookup is exactly what a stateless MCP call *can*
15
- * do without the stage machinery (candidate generation, plan slots) that
16
- * produced G1/G2's own inputs in the full pipeline. This tool is that
17
- * lookup, offered voluntarily: **it does not enforce anything** — a host
18
- * that never calls it, or calls it and ignores an ungrounded verdict, has
19
- * lost nothing it had before. What it converts is *"we cannot check"* into
20
- * *"we offered to check and it declined"* — testable and loggable, per this
21
- * item's own text.
22
- *
23
- * A claim is checked two ways, either or both:
24
- *
25
- * - **`path`** (G1-shaped): does the cited call exist in this session, and
26
- * does the given dot-path resolve to a real value inside its recorded
27
- * result? A path into a call from a different session, or a path the
28
- * result does not actually have, is ungrounded — the direct equivalent of
29
- * G1's own negative control, "a citation pointing at a tool call from a
30
- * different run."
31
- * - **`target`** (G2-shaped): does the given string appear anywhere in the
32
- * cited call's recorded result at all? This is deliberately a plain
33
- * substring search over the result's JSON text, not a structural walk —
34
- * disclosed in the tool description, not smoothed over as something
35
- * stronger. It answers "was this ever actually returned as a candidate,"
36
- * which is what G2 checks; it does not verify the string's *role* in that
37
- * result (a rejected candidate and an accepted one both pass this check
38
- * equally, since substring search cannot see which list held it).
39
- *
40
- * A claim with neither is a malformed citation, not a free pass: it is
41
- * reported ungrounded with a reason naming what is missing, not silently
42
- * treated as making no claim at all.
43
- *
44
- * ## What this can never return
45
- *
46
- * `confirmed` does not appear here, on any path — MK-11's ruling holds:
47
- * `confirmed` "stays reserved for results that passed the full governance
48
- * pipeline," which this tool is not and does not run. This tool answers
49
- * exactly one narrower question — *does this citation resolve* — in its own
50
- * plain words, the same register the three deterministic tools (`validate`,
51
- * `contracts`, `cross_pr`) already conclude in per MK-11.
52
- */
1
+ /** `verify_claim`, MK-12: offers G1/G2 (`ai-governance-spec.md` §2/§3) as a voluntary lookup — the
2
+ * full pipeline doesn't run here (MK-11). `path` checks a dot-path resolves in a recorded call's
3
+ * result (G1); `target` is a plain substring search (G2-shaped, disclosed as weaker — it can't
4
+ * see whether the string was accepted or rejected). Never returns `confirmed` (MK-11): it
5
+ * enforces nothing, just converts "we cannot check" into "we offered and it declined." */
53
6
  import { answer, requiredString, ToolInputError, } from "./kit.js";
54
7
  const SCHEMA = {
55
8
  type: "object",
@@ -193,10 +146,7 @@ async function run(args, ctx) {
193
146
  commitSha: null,
194
147
  graphBuiltAt: null,
195
148
  irSchemaVersion: 0,
196
- // No graph was consulted, so it spans no commits. The stale-graph
197
- // disclosure this feeds only fires above 1, so 0 is the value that says
198
- // "this question was never about the graph" rather than one that hides a
199
- // spread the caller should have seen.
149
+ // No graph consulted, so no commit spread — 0 says "not a graph question," not a hidden spread.
200
150
  commitSpread: 0,
201
151
  nameLevel: true,
202
152
  notes: [
@@ -1 +1 @@
1
- {"version":3,"file":"verify-claim.js","sourceRoot":"","sources":["../../src/tools/verify-claim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify-claim.js","sourceRoot":"","sources":["../../src/tools/verify-claim.ts"],"names":[],"mappings":"AAAA;;;;2FAI2F;AAE3F,OAAO,EACL,MAAM,EACN,cAAc,EACd,cAAc,GAGf,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oGAAoG;qBAClH;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+FAA+F;qBAC7G;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,mIAAmI;qBACtI;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,mKAAmK;qBACtK;iBACF;gBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;gBACjC,oBAAoB,EAAE,KAAK;aAC5B;YACD,WAAW,EAAE,+GAA+G;SAC7H;KACF;IACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACpB,oBAAoB,EAAE,KAAK;CACnB,CAAC;AAsBX,SAAS,UAAU,CAAC,IAA6B;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,cAAc,CAAC,4EAA4E,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,cAAc,CAAC,UAAU,KAAK,qBAAqB,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,KAAK,GAAG,KAAgC,CAAC;QAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,cAAc,CAAC,UAAU,KAAK,yBAAyB,CAAC,CAAC;QACvH,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,MAAM,IAAI,cAAc,CAAC,UAAU,KAAK,2BAA2B,CAAC,CAAC;QAC7H,OAAO;YACL,SAAS;YACT,MAAM;YACN,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACvC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;SAC5C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,yHAAyH;AACzH,SAAS,WAAW,CAAC,IAAa,EAAE,IAAY;IAC9C,IAAI,OAAO,GAAY,IAAI,CAAC;IAC5B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACvE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC9F,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAkC,EAAE,OAAO,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACzF,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,cAAc,CAAC,MAA+B,EAAE,MAAc;IACrE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,IAA6B,EAAE,GAAgB;IAChE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,GAAG,CAAC,QAAQ,CAAC,YAAY,MAAM,CAAC,MAAM,sDAAsD,CAAC,CAAC;IAE9F,MAAM,OAAO,GAAwB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3D,OAAO;gBACL,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,uEAAuE;aAChF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO;gBACL,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,kCAAkC,KAAK,CAAC,MAAM,sHAAsH;aAC7K,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,yBAAyB,IAAI,CAAC,IAAI,oBAAoB,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7E,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,iCAAiC,IAAI,CAAC,IAAI,0DAA0D,CAAC,CAAC;QACtI,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC1B,CAAC,CAAC;gBACE,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,SAAS,IAAI,CAAC,IAAI,sCACxB,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;oBACpD,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC,MAAM,GAAG;oBACtD,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;wBACxB,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG;wBACvB,CAAC,CAAC,aAAa,KAAK,CAAC,MAAM,GACjC,EAAE;aACH;YACH,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAE1D,OAAO,MAAM,CAAC;QACZ,QAAQ,EACN,QAAQ,KAAK,OAAO,CAAC,MAAM;YACzB,CAAC,CAAC,OAAO,OAAO,CAAC,MAAM,mDAAmD;YAC1E,CAAC,CAAC,GAAG,QAAQ,OAAO,OAAO,CAAC,MAAM,2BAA2B,OAAO,CAAC,MAAM,GAAG,QAAQ,uDAAuD;QACjJ,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE;QACpD,wEAAwE;QACxE,oEAAoE;QACpE,sEAAsE;QACtE,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,CAAC;QAClB,gGAAgG;QAChG,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,IAAI;QACf,KAAK,EAAE;YACL,8FAA8F;gBAC5F,4FAA4F;gBAC5F,kFAAkF;SACrF;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,gEAAgE;IACvE,WAAW,EACT,kGAAkG;QAClG,mGAAmG;QACnG,iGAAiG;QACjG,iGAAiG;QACjG,6EAA6E;IAC/E,WAAW,EAAE,MAA4C;IACzD,GAAG;CACJ,CAAC"}
@@ -1,68 +1,31 @@
1
- /**
2
- * stdio transport: newline-delimited JSON over stdin/stdout.
3
- *
4
- * ## The one rule that breaks everything when broken
5
- *
6
- * **stdout is the protocol channel and nothing else may write to it.** A single
7
- * `console.log` anywhere in the process — in the engine, in a loaded adapter, in
8
- * a dependency — emits a line the client tries to parse as a frame, and the
9
- * session dies with an error that names the parser rather than the culprit.
10
- *
11
- * This is not a comment asking people to be careful. `guardStdout()` replaces
12
- * `console.log` and friends with writers onto **stderr**, which the MCP host
13
- * shows as server logs, so a stray print stays visible and stops being fatal.
14
- * The transport keeps the one real handle to stdout for itself.
15
- *
16
- * ## Framing
17
- *
18
- * MCP's stdio transport is one JSON object per line, UTF-8, with no embedded
19
- * newlines. `JSON.stringify` never emits a raw newline, so writing is a
20
- * stringify plus `"\n"`. Reading needs a buffer because a chunk boundary can
21
- * land anywhere, including mid-multibyte-character — hence `StringDecoder`
22
- * rather than `chunk.toString()`, which would corrupt any non-ASCII payload
23
- * split across two chunks.
24
- */
1
+ /** stdio transport: newline-delimited JSON over stdin/stdout. Stdout is the protocol
2
+ * channel and nothing else may write to it — a stray `console.log` anywhere (engine,
3
+ * adapter, dependency) corrupts a frame and kills the session with a misleading error;
4
+ * `guardStdout()` redirects console.* to stderr instead. Framing: one JSON object per
5
+ * line, UTF-8, no embedded newlines; reads use `StringDecoder` since a chunk boundary can split a multibyte character. */
25
6
  import type { Readable, Writable } from "node:stream";
26
7
  export interface Transport {
27
8
  /** Write one frame. Must never be called with anything but a JSON-RPC message. */
28
9
  send(frame: unknown): void;
29
10
  }
30
- /**
31
- * Redirect every console channel to stderr and return the real stdout writer.
32
- *
33
- * Called once, by the stdio runner, before any handler can run. The returned
34
- * function is the only sanctioned path to stdout in the process.
35
- */
11
+ /** Redirects every console channel to stderr and returns the real stdout writer. Called
12
+ * once, before any handler runs — the returned function is the only sanctioned path to stdout. */
36
13
  export declare function guardStdout(stdout: Writable, stderr: Writable): (line: string) => void;
37
- /**
38
- * Split a byte stream into lines, decoding correctly across chunk boundaries.
39
- *
40
- * Returned as a function rather than a class because the buffer is the entire
41
- * state and there is nothing else to hang on an object.
42
- */
14
+ /** Splits a byte stream into lines, decoding correctly across chunk boundaries. Returned as
15
+ * a function, not a class — the buffer is the entire state, nothing else to hang on an object. */
43
16
  export declare function createLineReader(onLine: (line: string) => void): (chunk: Buffer) => void;
44
17
  export interface StdioOptions {
45
18
  readonly stdin: Readable;
46
19
  readonly stdout: Writable;
47
20
  readonly stderr: Writable;
48
21
  }
49
- /**
50
- * Run a dispatcher over stdio until stdin closes.
51
- *
52
- * Resolves on end-of-input, which is how an MCP host asks a stdio server to shut
53
- * down — it closes the pipe. Anything the server holds open (a database handle,
54
- * a worker pool) is disposed by the caller after this resolves, not here: this
55
- * function knows about bytes and nothing else.
56
- */
22
+ /** Runs a dispatcher over stdio until stdin closes. Resolves on end-of-input — how an MCP
23
+ * host asks a stdio server to shut down. Anything the server holds open (DB handle, worker
24
+ * pool) is disposed by the caller after, not here — this function knows only about bytes. */
57
25
  export interface ServeOptions {
58
- /**
59
- * Frames that must not wait behind an in-flight call.
60
- *
61
- * Supplied by the caller rather than decided here: which methods mean what is
62
- * the server's knowledge, and this module otherwise knows only about bytes.
63
- * `server.ts` exports `isOutOfBand`, which answers true for
64
- * `notifications/cancelled` and nothing else.
65
- */
26
+ /** Frames that must not wait behind an in-flight call. Supplied by the caller — which
27
+ * methods mean what is the server's knowledge; `server.ts`'s `isOutOfBand` answers true
28
+ * only for `notifications/cancelled`. */
66
29
  readonly isOutOfBand?: (line: string) => boolean;
67
30
  }
68
31
  export declare function serveStdio(options: StdioOptions, dispatch: (line: string, transport: Transport) => Promise<void>, serveOptions?: ServeOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,SAAS;IACxB,kFAAkF;IAClF,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,QAAQ,GACf,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAiBxB;AAWD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAcxF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAClD;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/D,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAsDf"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;;2HAI2H;AAG3H,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,SAAS;IACxB,kFAAkF;IAClF,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B;AAED;mGACmG;AACnG,wBAAgB,WAAW,CACzB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,QAAQ,GACf,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAiBxB;AAWD;mGACmG;AACnG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAcxF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;CAC3B;AAED;;8FAE8F;AAC9F,MAAM,WAAW,YAAY;IAC3B;;8CAE0C;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAClD;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/D,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAqCf"}
package/dist/transport.js CHANGED
@@ -1,34 +1,11 @@
1
- /**
2
- * stdio transport: newline-delimited JSON over stdin/stdout.
3
- *
4
- * ## The one rule that breaks everything when broken
5
- *
6
- * **stdout is the protocol channel and nothing else may write to it.** A single
7
- * `console.log` anywhere in the process — in the engine, in a loaded adapter, in
8
- * a dependency — emits a line the client tries to parse as a frame, and the
9
- * session dies with an error that names the parser rather than the culprit.
10
- *
11
- * This is not a comment asking people to be careful. `guardStdout()` replaces
12
- * `console.log` and friends with writers onto **stderr**, which the MCP host
13
- * shows as server logs, so a stray print stays visible and stops being fatal.
14
- * The transport keeps the one real handle to stdout for itself.
15
- *
16
- * ## Framing
17
- *
18
- * MCP's stdio transport is one JSON object per line, UTF-8, with no embedded
19
- * newlines. `JSON.stringify` never emits a raw newline, so writing is a
20
- * stringify plus `"\n"`. Reading needs a buffer because a chunk boundary can
21
- * land anywhere, including mid-multibyte-character — hence `StringDecoder`
22
- * rather than `chunk.toString()`, which would corrupt any non-ASCII payload
23
- * split across two chunks.
24
- */
1
+ /** stdio transport: newline-delimited JSON over stdin/stdout. Stdout is the protocol
2
+ * channel and nothing else may write to it — a stray `console.log` anywhere (engine,
3
+ * adapter, dependency) corrupts a frame and kills the session with a misleading error;
4
+ * `guardStdout()` redirects console.* to stderr instead. Framing: one JSON object per
5
+ * line, UTF-8, no embedded newlines; reads use `StringDecoder` since a chunk boundary can split a multibyte character. */
25
6
  import { StringDecoder } from "node:string_decoder";
26
- /**
27
- * Redirect every console channel to stderr and return the real stdout writer.
28
- *
29
- * Called once, by the stdio runner, before any handler can run. The returned
30
- * function is the only sanctioned path to stdout in the process.
31
- */
7
+ /** Redirects every console channel to stderr and returns the real stdout writer. Called
8
+ * once, before any handler runs — the returned function is the only sanctioned path to stdout. */
32
9
  export function guardStdout(stdout, stderr) {
33
10
  const toStderr = (...args) => {
34
11
  stderr.write(`${args
@@ -54,12 +31,8 @@ function inspectish(value) {
54
31
  return String(value);
55
32
  }
56
33
  }
57
- /**
58
- * Split a byte stream into lines, decoding correctly across chunk boundaries.
59
- *
60
- * Returned as a function rather than a class because the buffer is the entire
61
- * state and there is nothing else to hang on an object.
62
- */
34
+ /** Splits a byte stream into lines, decoding correctly across chunk boundaries. Returned as
35
+ * a function, not a class — the buffer is the entire state, nothing else to hang on an object. */
63
36
  export function createLineReader(onLine) {
64
37
  const decoder = new StringDecoder("utf8");
65
38
  let buffer = "";
@@ -82,38 +55,21 @@ export function serveStdio(options, dispatch, serveOptions = {}) {
82
55
  write(`${JSON.stringify(frame)}\n`);
83
56
  },
84
57
  };
85
- // Frames are handled strictly in arrival order. Concurrency here would let a
86
- // fast `tools/list` overtake a slow `analyze`, and while JSON-RPC permits
87
- // out-of-order responses, an `analyze` that has not finished writing the graph
88
- // must not be overtaken by a `scope` that would then read a half-built one.
89
- //
90
- // **One frame is exempt, and the exemption is narrow on purpose.**
91
- // `notifications/cancelled` is the one message whose entire value is that it
92
- // arrives *during* the call it names. Queued behind that call it is not late,
93
- // it is useless: by the time it is read, the work it was sent to stop has
94
- // already finished. The invariant above is untouched by letting it through,
95
- // because it defends a read from overtaking a half-finished write and a
96
- // cancellation does no graph work at all — it aborts a signal and returns.
97
- //
98
- // The predicate is supplied and answers for cancellation alone rather than
99
- // for notifications in general, so that adding a notification later does not
100
- // silently inherit an unordered path nobody chose for it.
58
+ // Frames handled strictly in order — concurrency would let a fast `tools/list` overtake a
59
+ // slow `analyze` and read a half-built graph. Exempt: `notifications/cancelled` alone (useless
60
+ // if queued, does no graph work) — narrowly scoped so a future notification doesn't inherit this silently.
101
61
  const isOutOfBand = serveOptions.isOutOfBand ?? (() => false);
102
62
  let chain = Promise.resolve();
103
63
  return new Promise((resolve, reject) => {
104
64
  const onError = (error) => {
105
- // A dispatcher that throws is a bug in this package: `dispatch` is
106
- // supposed to turn every failure into an error frame. Report it on
107
- // stderr and keep the session alive rather than killing a developer's
108
- // editor integration over one bad request.
65
+ // A dispatcher that throws is a bug here — `dispatch` should turn every failure into
66
+ // an error frame. Report on stderr and keep the session alive rather than killing the editor integration.
109
67
  options.stderr.write(`descry-mcp: dispatch failed: ${inspectish(error)}\n`);
110
68
  };
111
69
  const feed = createLineReader((line) => {
112
70
  if (isOutOfBand(line)) {
113
- // Deliberately not joined to `chain`, and deliberately not awaited by
114
- // anything: an out-of-band frame must not be able to delay the ordered
115
- // work either. Its rejection is still handled, so it cannot surface as
116
- // an unhandled rejection and take the process down.
71
+ // Deliberately not joined to `chain` or awaited — an out-of-band frame must not
72
+ // delay ordered work; its rejection is still handled so it can't surface as unhandled and crash the process.
117
73
  void dispatch(line, transport).catch(onError);
118
74
  return;
119
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,18 @@
1
1
  {
2
2
  "name": "@descryy/mcp",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "description": "Descry's MCP server: the agent-facing front door over the query layer. The stdio transport is JSON-RPC 2.0 by hand rather than seventeen packages of HTTP and OAuth. Thirty tools; most read the graph and nothing else. The @descryy dependencies are here for the three that do more: observe_runtime boots or attaches to a real application, observe_tests runs the project's own test suite, and the browser tools drive a real browser \u2014 each writing what it witnessed into the graph as R4 facts. @descryy/runtime-browser is declared below like the others. It is still imported by specifier at call time rather than statically \u2014 not because it is unpublished (it is not) but because that indirection is an injection seam real tests use to drive the settle logic against a fake module with no real browser involved; see playwright-driver.ts. A missing package, a missing Chromium binary, or an import failure each still returns a named, remediable refusal rather than a crash or an empty result.",
6
6
  "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/descryhq-wq/descry-core.git",
10
+ "directory": "packages/mcp"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/descryhq-wq/descry-core/issues"
14
+ },
15
+ "homepage": "https://github.com/descryhq-wq/descry-core#readme",
7
16
  "engines": {
8
17
  "node": ">=22.5"
9
18
  },
@@ -27,28 +36,28 @@
27
36
  "build": "tsc -b"
28
37
  },
29
38
  "dependencies": {
30
- "@descryy/core": "0.4.0",
31
- "@descryy/ir": "0.4.0",
32
- "@descryy/runtime-backend-observation": "0.2.0",
33
- "@descryy/runtime-browser": "0.3.0",
34
- "@descryy/runtime-contracts": "0.2.0",
35
- "@descryy/runtime-controller": "0.2.1",
36
- "@descryy/runtime-environment-profile": "0.3.0",
37
- "@descryy/runtime-evidence-correlation": "0.3.0",
38
- "@descryy/runtime-evidence-store": "0.3.0",
39
- "@descryy/runtime-graph-correlator": "0.3.0",
40
- "@descryy/runtime-orchestrator": "0.3.0",
41
- "@descryy/runtime-test-runner": "0.3.0"
39
+ "@descryy/core": "0.5.0",
40
+ "@descryy/ir": "0.5.0",
41
+ "@descryy/runtime-backend-observation": "0.3.0",
42
+ "@descryy/runtime-browser": "0.4.0",
43
+ "@descryy/runtime-contracts": "0.3.0",
44
+ "@descryy/runtime-controller": "0.3.0",
45
+ "@descryy/runtime-environment-profile": "0.4.0",
46
+ "@descryy/runtime-evidence-correlation": "0.4.0",
47
+ "@descryy/runtime-evidence-store": "0.4.0",
48
+ "@descryy/runtime-graph-correlator": "0.4.0",
49
+ "@descryy/runtime-orchestrator": "0.4.0",
50
+ "@descryy/runtime-test-runner": "0.4.0"
42
51
  },
43
52
  "optionalDependencies": {
44
- "@descryy/runtime-adapter-typescript": "0.2.0",
45
- "@descryy/runtime-adapter-csharp": "0.0.0",
46
- "@descryy/runtime-adapter-go": "0.0.0",
47
- "@descryy/runtime-adapter-jvm": "0.0.0",
48
- "@descryy/runtime-adapter-php": "0.0.0",
49
- "@descryy/runtime-adapter-python": "0.3.0",
53
+ "@descryy/runtime-adapter-typescript": "0.3.0",
54
+ "@descryy/runtime-adapter-csharp": "0.1.0",
55
+ "@descryy/runtime-adapter-go": "0.1.0",
56
+ "@descryy/runtime-adapter-jvm": "0.1.0",
57
+ "@descryy/runtime-adapter-php": "0.1.0",
58
+ "@descryy/runtime-adapter-python": "0.4.0",
50
59
  "@descryy/runtime-adapter-ruby": "0.0.0",
51
- "@descryy/runtime-adapter-rust": "0.0.0",
52
- "@descryy/runtime-adapter-swift": "0.0.0"
60
+ "@descryy/runtime-adapter-rust": "0.1.0",
61
+ "@descryy/runtime-adapter-swift": "0.1.0"
53
62
  }
54
63
  }