@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
package/dist/session.js CHANGED
@@ -1,27 +1,8 @@
1
1
  /**
2
- * One repository, one graph, one process.
3
- *
4
- * The session owns everything with a lifetime: the SQLite handle, the resolved
5
- * configuration, the loaded sources. Tools receive it and own nothing, which is
6
- * what lets the whole tool layer be tested against an in-memory graph.
7
- *
8
- * ## Configuration is read once and reported, not read repeatedly and assumed
9
- *
10
- * `.descry/config.json` is optional. Everything in it has a default that makes
11
- * local mode work unconfigured, per the architecture's local-first guarantee —
12
- * except the source list, which cannot have one: this repository must not name
13
- * an adapter (see `registry.ts`). So an unconfigured session can query a graph
14
- * and cannot build one, and `analyze` says exactly that rather than reporting a
15
- * successful run over zero sources.
16
- *
17
- * ## The graph is opened lazily
18
- *
19
- * A server that opened the database at startup would fail to start on a repo
20
- * that has never been analysed — the worst possible first experience for the
21
- * primary UX. Opening on first use means `tools/list` works everywhere, and a
22
- * query against a missing graph fails as a *tool* result the agent can read and
23
- * act on ("run analyze first"), not as a crash before the handshake.
24
- */
2
+ * One repo, one graph, one process — owns the SQLite handle, config, sources; tools
3
+ * own nothing. `.descry/config.json` is optional, defaults to local-first, except the
4
+ * source list (this repo names no adapter, `registry.ts`): unconfigured sessions can
5
+ * query, not build. Graph opens lazily so a missing one fails as a tool result, not a crash. */
25
6
  import { mkdir, readFile, writeFile } from "node:fs/promises";
26
7
  import { basename, isAbsolute, join, resolve } from "node:path";
27
8
  import { isConfirmedFactScope } from "@descryy/ir";
@@ -94,9 +75,8 @@ function parseConfirmedFacts(raw, configPath) {
94
75
  ...(e["environment"] === undefined ? {} : { environment: e["environment"] }),
95
76
  confirmedBy: e["confirmedBy"],
96
77
  confirmedAt: e["confirmedAt"],
97
- // Round-tripped rather than dropped. `confirmedAtCommit` was written by
98
- // `writeConfirmedFact` and silently discarded on the way back in, so the
99
- // staleness disclosure it exists for could never fire after a reload.
78
+ // Round-tripped rather than dropped — `confirmedAtCommit` was written by
79
+ // `writeConfirmedFact`; discarding it on reload would silence the staleness disclosure.
100
80
  ...(e["confirmedAtCommit"] === undefined ? {} : { confirmedAtCommit: e["confirmedAtCommit"] }),
101
81
  ...(e["scope"] === undefined ? {} : { scope: e["scope"] }),
102
82
  ...(e["workspace"] === undefined ? {} : { workspace: e["workspace"] }),
@@ -124,9 +104,8 @@ export async function loadConfig(repoPath) {
124
104
  catch (error) {
125
105
  const code = error.code;
126
106
  if (code !== "ENOENT") {
127
- // A config that exists and cannot be parsed is refused rather than
128
- // defaulted past. Silently falling back would run the whole session under
129
- // settings the user believes they overrode.
107
+ // A config that exists and can't be parsed is refused, not defaulted past —
108
+ // silently falling back would run the session under settings the user thinks they overrode.
130
109
  throw new ConfigError(`${configPath} exists but could not be read: ${error.message}`);
131
110
  }
132
111
  }
@@ -144,9 +123,8 @@ export async function loadConfig(repoPath) {
144
123
  const workspace = typeof raw.workspace === "string" && raw.workspace !== "" ? raw.workspace : undefined;
145
124
  const workspaceRepos = parseWorkspaceRepos(raw.workspaceRepos, configPath);
146
125
  return {
147
- // The directory name is a defensible default and a poor identity: it changes
148
- // when someone clones into a different folder, and every repo-scoped node id
149
- // changes with it. Stated in the analyze disclosures rather than left to be
126
+ // Directory name is a defensible default and poor identity — changes on clone,
127
+ // and every repo-scoped node id changes with it. Disclosed in `analyze`, not
150
128
  // discovered when two machines produce different graphs.
151
129
  repo: typeof raw.repo === "string" && raw.repo !== "" ? raw.repo : basename(resolve(repoPath)),
152
130
  workspace,
@@ -175,23 +153,9 @@ function parseWorkspaceRepos(raw, configPath) {
175
153
  return { path: e["path"], repo: e["repo"] };
176
154
  });
177
155
  }
178
- /**
179
- * Workspace-scoped facts recorded in the *other* repositories of this
180
- * workspace.
181
- *
182
- * One level only — a sibling's own `workspaceRepos` is not followed. The list
183
- * is a declaration of one workspace's membership, not a graph to walk, and
184
- * recursing would make session startup depend on how many times that
185
- * declaration happens to be repeated.
186
- *
187
- * Every failure is silent by design and it is the one place in this file where
188
- * that is right: a sibling that has moved, was never cloned on this machine, or
189
- * holds an unparseable config is a repository whose facts are simply not
190
- * available. Refusing to start a session over it would make one repository's
191
- * local state block work in another. The absence is visible where it matters —
192
- * `questions` reports what answered a row and what did not — rather than as a
193
- * startup failure here.
194
- */
156
+ /** Workspace-scoped facts from this workspace's *other* repos, one level only (no
157
+ * recursive follow of a sibling's own `workspaceRepos`). Every failure here is silent
158
+ * by design — a broken/uncloned sibling must not block this session; `questions` discloses it. */
195
159
  async function readLinkedFacts(repoPath, workspace, repos) {
196
160
  if (workspace === undefined || repos.length === 0)
197
161
  return [];
@@ -209,9 +173,8 @@ async function readLinkedFacts(repoPath, workspace, repos) {
209
173
  catch {
210
174
  continue;
211
175
  }
212
- // The declaration is checked on the fact itself, not inferred from the
213
- // fact having been found in a linked repository — a repo-scoped fact
214
- // sitting in a linked config still does not cross.
176
+ // Checked on the fact itself, not inferred from being found in a linked repo —
177
+ // a repo-scoped fact in a linked config still does not cross.
215
178
  for (const fact of facts) {
216
179
  if (fact.scope === "workspace" && fact.workspace === workspace)
217
180
  out.push(fact);
@@ -219,16 +182,9 @@ async function readLinkedFacts(repoPath, workspace, repos) {
219
182
  }
220
183
  return out;
221
184
  }
222
- /**
223
- * `.descry/config.json`'s writer, the counterpart to `loadConfig`.
224
- *
225
- * One writer for one file, used by both front doors that set the workspace
226
- * id — `descry init` (`@descryy/cli`) and the `link_workspace` MCP tool — so
227
- * the two can never drift into writing two different shapes of the same
228
- * file. Fields this function does not know about (`graph`, `sources`, or
229
- * anything a future version adds) survive a re-run untouched: this patches
230
- * `repo` and `workspace`, it does not own the whole file.
231
- */
185
+ /** `.descry/config.json`'s writer, paired with `loadConfig`. One writer used by both
186
+ * `descry init` and `link_workspace` so they can't drift into writing different
187
+ * shapes. Patches `repo`/`workspace` only — other fields survive untouched. */
232
188
  export async function writeConfig(repoPath, patch) {
233
189
  const path = join(repoPath, CONFIG_RELATIVE_PATH);
234
190
  let existing = {};
@@ -236,10 +192,9 @@ export async function writeConfig(repoPath, patch) {
236
192
  existing = JSON.parse(await readFile(path, "utf8"));
237
193
  }
238
194
  catch (error) {
239
- // A config that cannot be parsed is what a write here is entitled to fix
240
- // — proceed from an empty base rather than refusing, unlike `loadConfig`,
241
- // whose job is to run a session rather than repair one. Genuinely absent
242
- // (ENOENT) takes the same path; both mean "start from nothing".
195
+ // An unparseable config is fixed here (start from empty), unlike `loadConfig`
196
+ // which refuses — this writer's job is to repair, not run a session. ENOENT
197
+ // takes the same path.
243
198
  void error;
244
199
  existing = {};
245
200
  }
@@ -251,18 +206,9 @@ export async function writeConfig(repoPath, patch) {
251
206
  await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, "utf8");
252
207
  return { path, previousWorkspace };
253
208
  }
254
- /**
255
- * `workspaceRepos`' writer — the fourth narrow field-writer beside
256
- * `writeConfig` (`repo`/`workspace`), `writeConfirmedFact` (`confirmedFacts`)
257
- * and `writeSources` (`sources`), for the reason those three stayed separate:
258
- * a shared file gets one writer per field it owns, not one function that
259
- * grows a branch per field.
260
- *
261
- * Replaces the whole list rather than merging into it. A workspace's
262
- * membership is one declaration made at one moment — merging would mean a
263
- * repository silently retaining a sibling a later, corrected `link_workspace`
264
- * call deliberately left out.
265
- */
209
+ /** `workspaceRepos`' writer — one writer per field a shared file owns (see
210
+ * `writeConfig`, `writeConfirmedFact`, `writeSources`). Replaces the whole list
211
+ * rather than merging: membership is one declaration made at one moment. */
266
212
  export async function writeWorkspaceRepos(repoPath, repos) {
267
213
  const path = join(repoPath, CONFIG_RELATIVE_PATH);
268
214
  let existing = {};
@@ -281,29 +227,9 @@ export async function writeWorkspaceRepos(repoPath, repos) {
281
227
  await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, "utf8");
282
228
  return { path };
283
229
  }
284
- /**
285
- * `confirmedFacts`'s writer — separate from `writeConfig` on purpose.
286
- *
287
- * `writeConfig`'s own doc is explicit that it "patches `repo` and
288
- * `workspace`, it does not own the whole file" — a second, narrow writer for
289
- * a second, narrow field keeps that boundary rather than growing one
290
- * function into "the file's owner." Both read-modify-write the same JSON
291
- * file the same way, so a future field gets a third writer, not a branch in
292
- * this one.
293
- *
294
- * Keyed on exact `(repo, blockedBy, environment)` — DEC-223 §3 and
295
- * `ConfirmedFact`'s own doc; `environment` is `undefined` for an unscoped
296
- * answer, which is its own distinct key value, not a wildcard that a later
297
- * environment-scoped answer would collide with. A second call with the same
298
- * key **replaces** the first rather than appending a duplicate: a
299
- * re-confirmation (the value changed, or the same value is being
300
- * re-asserted after §7's staleness note) updates in place, and a caller can
301
- * always find out what was overwritten from the return value rather than
302
- * having to read the file first. A second call with a *different*
303
- * environment for the same `blockedBy` adds a second fact rather than
304
- * replacing the first — a repository can genuinely need one value per
305
- * environment.
306
- */
230
+ /** `confirmedFacts`' writer, separate from `writeConfig` (one writer per field). Keyed
231
+ * on exact `(repo, blockedBy, environment)` (DEC-223 §3) — undefined environment is its
232
+ * own key, not a wildcard. Same key replaces; a different environment adds a new fact. */
307
233
  export async function writeConfirmedFact(repoPath, fact) {
308
234
  const path = join(repoPath, CONFIG_RELATIVE_PATH);
309
235
  let existing = {};
@@ -323,19 +249,9 @@ export async function writeConfirmedFact(repoPath, fact) {
323
249
  await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, "utf8");
324
250
  return { path, replaced };
325
251
  }
326
- /**
327
- * `confirmedIncidents`' writer — the fifth narrow field-writer, for the same
328
- * reason the previous four stayed separate: a shared file gets one writer per
329
- * field it owns, not one function that grows a branch per field.
330
- *
331
- * **Appends, never replaces.** Unlike `writeConfirmedFact`, which keys on
332
- * `(repo, blockedBy, environment)` because re-confirming a value updates one
333
- * answer, two incidents are two incidents even when they name the same files
334
- * and read alike. Collapsing them would lose the fact that something broke
335
- * twice, which is precisely the signal an incident corpus exists to carry.
336
- * `confirmedAt` is the record's identity, so a second call at the same instant
337
- * with the same summary is the only case that de-duplicates.
338
- */
252
+ /** `confirmedIncidents`' writer — appends, never replaces (unlike `writeConfirmedFact`,
253
+ * which keys on one answer). Two incidents naming the same files are still two
254
+ * incidents; `confirmedAt`+`summary` is the only dedup key. */
339
255
  export async function writeConfirmedIncident(repoPath, incident) {
340
256
  const path = join(repoPath, CONFIG_RELATIVE_PATH);
341
257
  let existing = {};
@@ -354,18 +270,8 @@ export async function writeConfirmedIncident(repoPath, incident) {
354
270
  await writeFile(path, `${JSON.stringify({ ...existing, confirmedIncidents: next }, null, 2)}\n`, "utf8");
355
271
  return { path, total: next.length };
356
272
  }
357
- /**
358
- * `sources`' writer — MK-3, the third narrow field-writer beside `writeConfig`
359
- * (`repo`/`workspace`) and `writeConfirmedFact` (`confirmedFacts`), for the
360
- * same reason those two stayed separate: a shared file gets one writer per
361
- * field it owns, not one function that grows a branch per field.
362
- *
363
- * Unconditional: the caller (`descry init`) decides whether writing is
364
- * appropriate — reading `loadConfig(repoPath).sources` first and skipping
365
- * this call when it is already non-empty — because "should this overwrite
366
- * what's there" is a policy question `writeConfig`'s own precedent leaves to
367
- * the caller, not to the file-writing primitive.
368
- */
273
+ /** `sources`' writer, one writer per field like the others. Unconditional — the caller
274
+ * (`descry init`) decides whether overwriting is appropriate, not this primitive. */
369
275
  export async function writeSources(repoPath, sources) {
370
276
  const path = join(repoPath, CONFIG_RELATIVE_PATH);
371
277
  let existing = {};
@@ -412,24 +318,9 @@ export class Session {
412
318
  this.#store = this.#openGraph(this.graphPath);
413
319
  return this.#store;
414
320
  }
415
- /**
416
- * MK-4 — `analyze`'s own repair path, and the only caller entitled to one.
417
- *
418
- * Every other tool goes through `store()`/`provider()` and keeps refusing a
419
- * version mismatch per DEC-017 (`SchemaVersionError`'s own message names
420
- * this method's caller as the fix). `analyze` is different: it is about to
421
- * rebuild the graph from source regardless, so there is nothing lost by
422
- * repairing the derived tables first instead of stopping.
423
- *
424
- * Opens a short-lived `NodeSqliteDriver` directly rather than going through
425
- * `this.#openGraph` — the injected-store path a test fixture uses bypasses
426
- * a real file on disk entirely, and a `SchemaVersionError` from `migrate()`
427
- * only exists for a real one. A no-op here on that path (nothing found to
428
- * repair, `rebuilt: false`) is correct: an injected in-memory fixture store
429
- * is never stale by construction, and `store()` right after this still
430
- * goes through the real, checked path either way — this only ever removes
431
- * a refusal that check would otherwise have hit first.
432
- */
321
+ /** `analyze`'s own repair path — the only caller entitled to one (others refuse a
322
+ * version mismatch per DEC-017). Opens a short-lived driver directly, bypassing an
323
+ * injected test store; no-op there since an in-memory fixture is never stale. */
433
324
  repairStaleGraph() {
434
325
  if (this.#store !== null)
435
326
  return { rebuilt: false };
@@ -439,9 +330,8 @@ export class Session {
439
330
  return rebuildStaleGraph(driver);
440
331
  }
441
332
  catch {
442
- // Anything from opening — a missing directory, a genuinely corrupt file
443
- // — is not this method's job to diagnose. `store()` right after this
444
- // hits the same path through its own, already-disclosed error handling.
333
+ // Anything from opening (missing dir, corrupt file) is not this method's job —
334
+ // `store()` right after hits the same path via its own disclosed error handling.
445
335
  return { rebuilt: false };
446
336
  }
447
337
  finally {
@@ -453,13 +343,9 @@ export class Session {
453
343
  this.#provider = createStoreProvider(this.store().driver);
454
344
  return this.#provider;
455
345
  }
456
- /**
457
- * The repo root for an analysis run.
458
- *
459
- * The commit sha is read from git and **is not defaulted** when git is absent:
460
- * every node and edge is stamped with it, and a placeholder would make the
461
- * staleness stamp a lie that nothing downstream could detect.
462
- */
346
+ /** Repo root for an analysis run. Commit sha comes from git and is never defaulted
347
+ * when git is absent — every node/edge is stamped with it, and a placeholder would
348
+ * make the staleness stamp a lie nothing downstream could detect. */
463
349
  async root() {
464
350
  if (!(await isGitRepository(this.repoPath))) {
465
351
  throw new ConfigError(`${this.repoPath} is not a git repository. Every node is stamped with the commit it was ` +
@@ -472,135 +358,68 @@ export class Session {
472
358
  commitSha: await gitHead(this.repoPath),
473
359
  };
474
360
  }
475
- /**
476
- * Live browser sessions belonging to this connection — `mcp-browser-tools.md`
477
- * §4.
478
- *
479
- * Created lazily and only on the connection that asks for one, the same
480
- * reason the graph is opened lazily: a server that started a sweeper for
481
- * every session would pay for browser bookkeeping on the overwhelming
482
- * majority of connections that never call a browser tool.
483
- *
484
- * It hangs here rather than in a module-level map because "per connection,
485
- * never global" is the property that has to hold, and this object already
486
- * *is* the connection's lifetime. A global registry keyed by session would
487
- * be the same thing with one more way to get it wrong.
488
- */
361
+ /** Live browser sessions for this connection (`mcp-browser-tools.md` §4). Created
362
+ * lazily, same reason as the graph — most connections never touch a browser tool.
363
+ * Lives here, not a module-level map, so "per connection, never global" actually holds. */
489
364
  browserSessions() {
490
365
  if (this.#browserSessions === null)
491
366
  this.#browserSessions = createBrowserSessionRegistry();
492
367
  return this.#browserSessions;
493
368
  }
494
- /**
495
- * The browser this connection drives, or a named reason there is none.
496
- *
497
- * Unavailable by default, and that is the honest state of this build:
498
- * `@descryy/runtime-browser` is not in the installed closure yet, so there
499
- * is no page to drive. Reported as a refusal with a remedy rather than as a
500
- * tool that silently returns an empty page — an empty snapshot and "this
501
- * build cannot open a browser" are different claims, and only one of them
502
- * is true here (rule 7).
503
- */
369
+ /** The browser this connection drives, or a named reason there is none. Unavailable
370
+ * by default — `@descryy/runtime-browser` isn't installed yet — reported as a refusal
371
+ * with a remedy, never a silently-empty page (rule 7). */
504
372
  browserBackend() {
505
373
  if (this.#browserDriverFactory === null)
506
374
  return BROWSER_BACKEND_NOT_INSTALLED;
507
375
  return { available: true, createDriver: this.#browserDriverFactory };
508
376
  }
509
- /**
510
- * Install the driver this connection's browser tools use.
511
- *
512
- * The seam the final swap goes through, and the seam every browser test
513
- * goes through today. It is a method rather than a constructor argument
514
- * because the overwhelming majority of sessions never touch a browser and
515
- * should not have to name one to be constructed.
516
- */
377
+ /** Installs the driver this connection's browser tools use. A method, not a
378
+ * constructor arg — most sessions never touch a browser and shouldn't have to
379
+ * name one to be constructed. */
517
380
  useBrowserDriver(driver) {
518
- // The one-driver form, kept because every test that does not care about
519
- // stack parsing wants exactly this and should not have to write a factory
520
- // to get it.
381
+ // One-driver form — every test that doesn't care about stack parsing wants this
382
+ // and shouldn't have to write a factory.
521
383
  this.#browserDriverFactory = () => Promise.resolve(driver);
522
384
  }
523
- /**
524
- * Install a factory that builds a driver per session.
525
- *
526
- * A factory rather than a driver because the stack-trace parser is named
527
- * per call (`browser_start_session`'s `stackParser`), and a parser is
528
- * language-specific — one process can legitimately drive a browser against
529
- * two applications written in different languages.
530
- */
385
+ /** Installs a factory that builds a driver per session. A factory, not a driver,
386
+ * because the stack-trace parser (`browser_start_session`'s `stackParser`) is
387
+ * language-specific and named per call. */
531
388
  useBrowserDriverFactory(factory) {
532
389
  this.#browserDriverFactory = factory;
533
390
  }
534
- /**
535
- * Synchronous teardown of everything with no I/O to wait on.
536
- *
537
- * Deliberately left synchronous and left as the thing every existing caller
538
- * calls. A browser session cannot be closed synchronously, so the reap
539
- * lives in `dispose()` — and this method stays the one that a caller with
540
- * no browser sessions can keep using unchanged.
541
- */
391
+ /** Synchronous teardown, no I/O to wait on. A browser session can't close
392
+ * synchronously, so that reap lives in `dispose()` — this stays the method
393
+ * every existing no-browser caller keeps using unchanged. */
542
394
  close() {
543
395
  this.#browserSessions?.stop();
544
396
  this.#store?.close();
545
397
  this.#store = null;
546
398
  this.#provider = null;
547
399
  }
548
- /**
549
- * Full teardown, including any live browser.
550
- *
551
- * This is what a client disconnect must reach. §4 requires the transport
552
- * closing to reap every session that connection owns, and a browser is the
553
- * one thing this session holds that keeps running after the process stops
554
- * caring about it — a leaked SQLite handle costs a file descriptor, a
555
- * leaked Chromium costs the developer's machine.
556
- *
557
- * Awaits the reap before closing the rest, so the evidence flush has a
558
- * live registry to record itself against.
559
- */
400
+ /** Full teardown, including any live browser — what a client disconnect must
401
+ * reach (§4). A leaked Chromium costs the developer's machine, not just a file
402
+ * descriptor. Awaits the reap first so the evidence flush has a live registry. */
560
403
  async dispose() {
561
404
  if (this.#browserSessions !== null)
562
405
  await this.#browserSessions.reapAll("clientDisconnect");
563
406
  this.close();
564
407
  }
565
- /**
566
- * B10 — mint the next call id without recording anything yet.
567
- *
568
- * `server.ts` calls this before `renderAnswer` so the envelope can carry
569
- * the id as `callId` (`render.ts`'s own doc on that field), and records
570
- * under the same value afterwards with `recordCallWithId` — one id, used
571
- * for both, rather than one minted for the reply and a different one
572
- * minted later for the record. Exposed as its own method (rather than
573
- * folded into `recordCall`) because the id has to exist *before* the
574
- * result it will be recorded with does; there is no result yet at the
575
- * point this is called.
576
- */
408
+ /** Mints the next call id without recording anything yet. `server.ts` calls this
409
+ * before render so the reply can carry `callId`, then records under the same id
410
+ * with `recordCallWithId` — one id used for both. */
577
411
  allocateCallId() {
578
412
  return `call-${this.#nextCallId++}`;
579
413
  }
580
- /**
581
- * MK-12 — `verify_claim`'s fact boundary. Called once per completed tool
582
- * call from `server.ts`, right after rendering, with the exact
583
- * `structuredContent` the host received.
584
- *
585
- * IDs are sequential and scoped to this process's lifetime only —
586
- * `"one repository, one graph, one process"` above is what makes "this
587
- * session's recorded tool calls" a coherent, checkable population at all.
588
- * A citation naming an id from a *different* process's session cannot
589
- * resolve here, which is exactly `ai-governance-spec.md` §2's G1 negative
590
- * control ("a citation pointing at a tool call from a different run") —
591
- * not a defect to guard against, the mechanism doing its job.
592
- */
414
+ /** `verify_claim`'s fact boundary — called once per call with the exact
415
+ * `structuredContent` the host received. IDs are scoped to this process only, so a
416
+ * citation from a different run can't resolve (§2's G1 negative control). */
593
417
  recordCall(tool, args, result) {
594
418
  return this.recordCallWithId(this.allocateCallId(), tool, args, result);
595
419
  }
596
- /**
597
- * `recordCall`, under an id minted earlier by `allocateCallId` rather than
598
- * one minted here — B10's fix. The id a caller reads off a real reply's
599
- * `callId` is this exact value, so `recordedCall(id)` finds it: the
600
- * positive path that was previously unreachable because the id the
601
- * envelope would need did not exist until one step after the envelope was
602
- * already built.
603
- */
420
+ /** `recordCall` under an id minted earlier by `allocateCallId`, not one minted here
421
+ * — so `recordedCall(id)` can find the exact id a caller read off the reply's
422
+ * `callId`, which didn't exist until after the envelope was built. */
604
423
  recordCallWithId(id, tool, args, result) {
605
424
  const call = { id, tool, args, result, at: Date.now() };
606
425
  this.#calls.push(call);
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}