@descryy/mcp 0.11.7 → 0.12.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 (160) hide show
  1. package/dist/action-handshake.d.ts.map +1 -1
  2. package/dist/action-handshake.js +5 -1
  3. package/dist/action-handshake.js.map +1 -1
  4. package/dist/browser/driver.d.ts +74 -0
  5. package/dist/browser/driver.d.ts.map +1 -1
  6. package/dist/browser/driver.js +48 -0
  7. package/dist/browser/driver.js.map +1 -1
  8. package/dist/browser/fake-driver.d.ts +39 -0
  9. package/dist/browser/fake-driver.d.ts.map +1 -1
  10. package/dist/browser/fake-driver.js +123 -5
  11. package/dist/browser/fake-driver.js.map +1 -1
  12. package/dist/browser/fault-attribution.d.ts +75 -39
  13. package/dist/browser/fault-attribution.d.ts.map +1 -1
  14. package/dist/browser/fault-attribution.js +100 -89
  15. package/dist/browser/fault-attribution.js.map +1 -1
  16. package/dist/browser/graph-write.d.ts +22 -2
  17. package/dist/browser/graph-write.d.ts.map +1 -1
  18. package/dist/browser/graph-write.js +60 -2
  19. package/dist/browser/graph-write.js.map +1 -1
  20. package/dist/browser/identity-graph-write.d.ts +26 -2
  21. package/dist/browser/identity-graph-write.d.ts.map +1 -1
  22. package/dist/browser/identity-graph-write.js +44 -2
  23. package/dist/browser/identity-graph-write.js.map +1 -1
  24. package/dist/browser/playwright-driver.d.ts +1 -0
  25. package/dist/browser/playwright-driver.d.ts.map +1 -1
  26. package/dist/browser/playwright-driver.js +66 -8
  27. package/dist/browser/playwright-driver.js.map +1 -1
  28. package/dist/browser/provider.d.ts +5 -0
  29. package/dist/browser/provider.d.ts.map +1 -1
  30. package/dist/browser/provider.js.map +1 -1
  31. package/dist/browser/reach-recording-session.d.ts.map +1 -1
  32. package/dist/browser/reach-recording-session.js +10 -0
  33. package/dist/browser/reach-recording-session.js.map +1 -1
  34. package/dist/browser/scenario-runner.d.ts.map +1 -1
  35. package/dist/browser/scenario-runner.js +2 -0
  36. package/dist/browser/scenario-runner.js.map +1 -1
  37. package/dist/browser/tool-support.d.ts.map +1 -1
  38. package/dist/browser/tool-support.js +6 -1
  39. package/dist/browser/tool-support.js.map +1 -1
  40. package/dist/findings/index.d.ts +2 -0
  41. package/dist/findings/index.d.ts.map +1 -0
  42. package/dist/findings/index.js +2 -0
  43. package/dist/findings/index.js.map +1 -0
  44. package/dist/findings/store.d.ts +81 -0
  45. package/dist/findings/store.d.ts.map +1 -0
  46. package/dist/findings/store.js +148 -0
  47. package/dist/findings/store.js.map +1 -0
  48. package/dist/fs-gateway.d.ts +57 -0
  49. package/dist/fs-gateway.d.ts.map +1 -0
  50. package/dist/fs-gateway.js +86 -0
  51. package/dist/fs-gateway.js.map +1 -0
  52. package/dist/ready-checks.d.ts +1 -1
  53. package/dist/ready-checks.d.ts.map +1 -1
  54. package/dist/ready-checks.js +3 -3
  55. package/dist/ready-checks.js.map +1 -1
  56. package/dist/scenarios/storage.d.ts.map +1 -1
  57. package/dist/scenarios/storage.js +3 -3
  58. package/dist/scenarios/storage.js.map +1 -1
  59. package/dist/server.d.ts.map +1 -1
  60. package/dist/server.js +11 -3
  61. package/dist/server.js.map +1 -1
  62. package/dist/session.d.ts +6 -1
  63. package/dist/session.d.ts.map +1 -1
  64. package/dist/session.js +26 -16
  65. package/dist/session.js.map +1 -1
  66. package/dist/tools/aliases.d.ts.map +1 -1
  67. package/dist/tools/aliases.js +2 -0
  68. package/dist/tools/aliases.js.map +1 -1
  69. package/dist/tools/browser-read.d.ts +19 -12
  70. package/dist/tools/browser-read.d.ts.map +1 -1
  71. package/dist/tools/browser-read.js +34 -18
  72. package/dist/tools/browser-read.js.map +1 -1
  73. package/dist/tools/browser-record-start.d.ts +20 -0
  74. package/dist/tools/browser-record-start.d.ts.map +1 -0
  75. package/dist/tools/browser-record-start.js +97 -0
  76. package/dist/tools/browser-record-start.js.map +1 -0
  77. package/dist/tools/browser-record-stop.d.ts +25 -0
  78. package/dist/tools/browser-record-stop.d.ts.map +1 -0
  79. package/dist/tools/browser-record-stop.js +102 -0
  80. package/dist/tools/browser-record-stop.js.map +1 -0
  81. package/dist/tools/browser-start-session.d.ts.map +1 -1
  82. package/dist/tools/browser-start-session.js +12 -0
  83. package/dist/tools/browser-start-session.js.map +1 -1
  84. package/dist/tools/browser.d.ts.map +1 -1
  85. package/dist/tools/browser.js +6 -0
  86. package/dist/tools/browser.js.map +1 -1
  87. package/dist/tools/chain.d.ts +5 -0
  88. package/dist/tools/chain.d.ts.map +1 -1
  89. package/dist/tools/chain.js +5 -2
  90. package/dist/tools/chain.js.map +1 -1
  91. package/dist/tools/change-scope.d.ts +2 -1
  92. package/dist/tools/change-scope.d.ts.map +1 -1
  93. package/dist/tools/change-scope.js +19 -10
  94. package/dist/tools/change-scope.js.map +1 -1
  95. package/dist/tools/check.d.ts +7 -0
  96. package/dist/tools/check.d.ts.map +1 -0
  97. package/dist/tools/check.js +55 -0
  98. package/dist/tools/check.js.map +1 -0
  99. package/dist/tools/code-context.d.ts +3 -2
  100. package/dist/tools/code-context.d.ts.map +1 -1
  101. package/dist/tools/code-context.js +11 -5
  102. package/dist/tools/code-context.js.map +1 -1
  103. package/dist/tools/disclosure.d.ts +3 -2
  104. package/dist/tools/disclosure.d.ts.map +1 -1
  105. package/dist/tools/disclosure.js +15 -4
  106. package/dist/tools/disclosure.js.map +1 -1
  107. package/dist/tools/draw-conclusion.d.ts +18 -2
  108. package/dist/tools/draw-conclusion.d.ts.map +1 -1
  109. package/dist/tools/draw-conclusion.js +69 -11
  110. package/dist/tools/draw-conclusion.js.map +1 -1
  111. package/dist/tools/finding-lookup.d.ts +58 -0
  112. package/dist/tools/finding-lookup.d.ts.map +1 -0
  113. package/dist/tools/finding-lookup.js +261 -0
  114. package/dist/tools/finding-lookup.js.map +1 -0
  115. package/dist/tools/index.d.ts +2 -3
  116. package/dist/tools/index.d.ts.map +1 -1
  117. package/dist/tools/index.js +4 -28
  118. package/dist/tools/index.js.map +1 -1
  119. package/dist/tools/kit.d.ts +1 -1
  120. package/dist/tools/link-workspace.d.ts +7 -0
  121. package/dist/tools/link-workspace.d.ts.map +1 -1
  122. package/dist/tools/link-workspace.js +20 -0
  123. package/dist/tools/link-workspace.js.map +1 -1
  124. package/dist/tools/merged-context.d.ts.map +1 -1
  125. package/dist/tools/merged-context.js +2 -0
  126. package/dist/tools/merged-context.js.map +1 -1
  127. package/dist/tools/merged-review.d.ts +5 -0
  128. package/dist/tools/merged-review.d.ts.map +1 -0
  129. package/dist/tools/merged-review.js +12 -0
  130. package/dist/tools/merged-review.js.map +1 -0
  131. package/dist/tools/merged-workspace.d.ts.map +1 -1
  132. package/dist/tools/merged-workspace.js +1 -0
  133. package/dist/tools/merged-workspace.js.map +1 -1
  134. package/dist/tools/observe-runtime.d.ts +3 -1
  135. package/dist/tools/observe-runtime.d.ts.map +1 -1
  136. package/dist/tools/observe-runtime.js +46 -7
  137. package/dist/tools/observe-runtime.js.map +1 -1
  138. package/dist/tools/propagation.d.ts +14 -8
  139. package/dist/tools/propagation.d.ts.map +1 -1
  140. package/dist/tools/propagation.js +23 -15
  141. package/dist/tools/propagation.js.map +1 -1
  142. package/dist/tools/prove-reach.d.ts +8 -0
  143. package/dist/tools/prove-reach.d.ts.map +1 -1
  144. package/dist/tools/prove-reach.js +80 -2
  145. package/dist/tools/prove-reach.js.map +1 -1
  146. package/dist/tools/reach.d.ts +6 -0
  147. package/dist/tools/reach.d.ts.map +1 -0
  148. package/dist/tools/reach.js +50 -0
  149. package/dist/tools/reach.js.map +1 -0
  150. package/dist/tools/runtime-journey-drive.d.ts.map +1 -1
  151. package/dist/tools/runtime-journey-drive.js +12 -1
  152. package/dist/tools/runtime-journey-drive.js.map +1 -1
  153. package/dist/tools/verb.d.ts +3 -0
  154. package/dist/tools/verb.d.ts.map +1 -1
  155. package/dist/tools/verb.js +7 -0
  156. package/dist/tools/verb.js.map +1 -1
  157. package/dist/tools/workspace.d.ts.map +1 -1
  158. package/dist/tools/workspace.js +10 -2
  159. package/dist/tools/workspace.js.map +1 -1
  160. package/package.json +22 -22
package/dist/session.js CHANGED
@@ -4,12 +4,13 @@
4
4
  * source list (this repo names no adapter, `registry.ts`): unconfigured sessions can
5
5
  * query, not build. Graph opens lazily so a missing one fails as a tool result, not a crash. */
6
6
  import { existsSync } from "node:fs";
7
- import { mkdir, readFile, writeFile } from "node:fs/promises";
7
+ import { readFile } from "node:fs/promises";
8
8
  import { basename, isAbsolute, join, resolve } from "node:path";
9
9
  import { isConfirmedFactScope } from "@descryy/ir";
10
10
  import { computeGraphFreshness, createStoreProvider, distinctFilePaths, gitHead, isGitRepository, NodeSqliteDriver, openStore, rebuildStaleGraph, } from "@descryy/core";
11
11
  import { BROWSER_BACKEND_NOT_INSTALLED } from "./browser/provider.js";
12
12
  import { createBrowserSessionRegistry } from "./browser/registry.js";
13
+ import { gatewayWriteJson } from "./fs-gateway.js";
13
14
  import { normaliseSpec } from "./registry.js";
14
15
  export const CONFIG_RELATIVE_PATH = join(".descry", "config.json");
15
16
  export const DEFAULT_GRAPH_RELATIVE_PATH = join(".descry", "graph.db");
@@ -89,7 +90,19 @@ function parseSavedStart(raw, configPath) {
89
90
  readiness: parseSavedReadiness(v["readiness"], configPath, name),
90
91
  };
91
92
  }
92
- return { services, savedAt };
93
+ const database = parseSavedDatabase(e["database"], configPath);
94
+ return { services, savedAt, ...(database === undefined ? {} : { database }) };
95
+ }
96
+ function parseSavedDatabase(raw, configPath) {
97
+ if (raw === undefined)
98
+ return undefined;
99
+ const d = (typeof raw === "object" && raw !== null ? raw : {});
100
+ const host = d["host"];
101
+ const port = d["port"];
102
+ if (typeof host !== "string" || host === "" || typeof port !== "number" || !Number.isInteger(port) || port < 1 || port > 65535) {
103
+ throw new ConfigError(`${configPath}: "savedStart.database" must have a non-empty "host" and an integer "port" from 1 to 65535`);
104
+ }
105
+ return { host, port };
93
106
  }
94
107
  function parseConfirmedIncidents(raw, configPath) {
95
108
  if (raw === undefined)
@@ -403,8 +416,7 @@ export async function writeConfig(repoPath, patch) {
403
416
  const next = { ...existing, repo: patch.repo };
404
417
  if (patch.workspace !== undefined)
405
418
  next.workspace = patch.workspace;
406
- await mkdir(join(repoPath, ".descry"), { recursive: true });
407
- await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, "utf8");
419
+ await gatewayWriteJson(repoPath, CONFIG_RELATIVE_PATH, next);
408
420
  return { path, previousWorkspace };
409
421
  }
410
422
  /** `workspaceRepos`' writer — one writer per field a shared file owns (see
@@ -424,8 +436,7 @@ export async function writeWorkspaceRepos(repoPath, repos) {
424
436
  ...existing,
425
437
  workspaceRepos: repos.map((r) => ({ path: r.path, repo: r.repo })),
426
438
  };
427
- await mkdir(join(repoPath, ".descry"), { recursive: true });
428
- await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, "utf8");
439
+ await gatewayWriteJson(repoPath, CONFIG_RELATIVE_PATH, next);
429
440
  return { path };
430
441
  }
431
442
  /** `confirmedFacts`' writer, separate from `writeConfig` (one writer per field). Keyed
@@ -446,8 +457,7 @@ export async function writeConfirmedFact(repoPath, fact) {
446
457
  const replaced = prior.find((f) => sameFactKey(f, fact)) ?? null;
447
458
  const rest = prior.filter((f) => !sameFactKey(f, fact));
448
459
  const next = { ...existing, confirmedFacts: [...rest, fact] };
449
- await mkdir(join(repoPath, ".descry"), { recursive: true });
450
- await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, "utf8");
460
+ await gatewayWriteJson(repoPath, CONFIG_RELATIVE_PATH, next);
451
461
  return { path, replaced };
452
462
  }
453
463
  /** `confirmedIncidents`' writer — appends a genuinely new incident, but merges a
@@ -496,8 +506,7 @@ export async function writeConfirmedIncident(repoPath, incident) {
496
506
  next = [...prior.filter((i) => !same(i)), record];
497
507
  occurrences = record.occurrences.length;
498
508
  }
499
- await mkdir(join(repoPath, ".descry"), { recursive: true });
500
- await writeFile(path, `${JSON.stringify({ ...existing, confirmedIncidents: next }, null, 2)}\n`, "utf8");
509
+ await gatewayWriteJson(repoPath, CONFIG_RELATIVE_PATH, { ...existing, confirmedIncidents: next });
501
510
  return { path, total: next.length, merged: match !== null, occurrences, record, records: next };
502
511
  }
503
512
  /** `savedStart`'s writer, one writer per field like the others. Called only by
@@ -509,7 +518,7 @@ export async function writeConfirmedIncident(repoPath, incident) {
509
518
  * already exclude secret values by the time it reaches here — this writer trusts
510
519
  * its caller the same way `writeConfirmedIncident` does, rather than re-scanning
511
520
  * a shape it did not define. */
512
- export async function writeSavedStart(repoPath, services) {
521
+ export async function writeSavedStart(repoPath, services, database) {
513
522
  const path = join(repoPath, CONFIG_RELATIVE_PATH);
514
523
  let existing = {};
515
524
  try {
@@ -520,9 +529,11 @@ export async function writeSavedStart(repoPath, services) {
520
529
  existing = {};
521
530
  }
522
531
  const savedAt = new Date().toISOString();
523
- const next = { ...existing, savedStart: { services, savedAt } };
524
- await mkdir(join(repoPath, ".descry"), { recursive: true });
525
- await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, "utf8");
532
+ const next = {
533
+ ...existing,
534
+ savedStart: { services, savedAt, ...(database === undefined ? {} : { database }) },
535
+ };
536
+ await gatewayWriteJson(repoPath, CONFIG_RELATIVE_PATH, next);
526
537
  return { path, savedAt };
527
538
  }
528
539
  /** `sources`' writer, one writer per field like the others. Unconditional — the caller
@@ -538,8 +549,7 @@ export async function writeSources(repoPath, sources) {
538
549
  existing = {};
539
550
  }
540
551
  const next = { ...existing, sources: [...sources] };
541
- await mkdir(join(repoPath, ".descry"), { recursive: true });
542
- await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, "utf8");
552
+ await gatewayWriteJson(repoPath, CONFIG_RELATIVE_PATH, next);
543
553
  return { path };
544
554
  }
545
555
  export class Session {
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../../src/tools/aliases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAOhD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAKtD,CAAC;AAEH,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAKhE"}
1
+ {"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../../src/tools/aliases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQhD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAMtD,CAAC;AAEH,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAKhE"}
@@ -33,6 +33,7 @@ import { WORKSPACE_GROUP_ALIASES } from "./merged-workspace.js";
33
33
  import { CONTEXT_GROUP_ALIASES } from "./merged-context.js";
34
34
  import { OBSERVE_GROUP_ALIASES } from "./merged-observe.js";
35
35
  import { BROWSER_GROUP_ALIASES } from "./merged-browser.js";
36
+ import { REVIEW_GROUP_ALIASES } from "./merged-review.js";
36
37
  /**
37
38
  * Retired name → replacement. Empty until the first merge lands; the invariants
38
39
  * that guard it (`tool-aliases.test.ts`) are asserted over whatever it holds,
@@ -43,6 +44,7 @@ export const TOOL_ALIASES = new Map([
43
44
  ...CONTEXT_GROUP_ALIASES,
44
45
  ...OBSERVE_GROUP_ALIASES,
45
46
  ...BROWSER_GROUP_ALIASES,
47
+ ...REVIEW_GROUP_ALIASES,
46
48
  ]);
47
49
  /** The sentence a reply carries when it was reached under a retired name. */
48
50
  export function aliasDisclosure(from, to) {
@@ -1 +1 @@
1
- {"version":3,"file":"aliases.js","sourceRoot":"","sources":["../../src/tools/aliases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAmC,IAAI,GAAG,CAAoB;IACrF,GAAG,uBAAuB;IAC1B,GAAG,qBAAqB;IACxB,GAAG,qBAAqB;IACxB,GAAG,qBAAqB;CACzB,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,EAAU;IACtD,OAAO,CACL,IAAI,IAAI,gDAAgD,EAAE,wBAAwB;QAClF,qGAAqG,EAAE,IAAI,CAC5G,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"aliases.js","sourceRoot":"","sources":["../../src/tools/aliases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAmC,IAAI,GAAG,CAAoB;IACrF,GAAG,uBAAuB;IAC1B,GAAG,qBAAqB;IACxB,GAAG,qBAAqB;IACxB,GAAG,qBAAqB;IACxB,GAAG,oBAAoB;CACxB,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,EAAU;IACtD,OAAO,CACL,IAAI,IAAI,gDAAgD,EAAE,wBAAwB;QAClF,qGAAqG,EAAE,IAAI,CAC5G,CAAC;AACJ,CAAC"}
@@ -1,16 +1,21 @@
1
1
  /**
2
- * `browser_read` — merges the four browser tools that read a page without needing consent of
3
- * their own: `browser_snapshot`, `browser_navigate`, `browser_wait_for`, `browser_close_session`
4
- * (documents/plans/mcp-surface-consolidation.md, group 2).
2
+ * `browser_read` — merges the six browser tools that read a page, or a session's own history,
3
+ * without needing consent of their own: `browser_snapshot`, `browser_navigate`,
4
+ * `browser_wait_for`, `browser_close_session` (documents/plans/mcp-surface-consolidation.md,
5
+ * group 2), plus `record_start`/`record_stop` — turning a human's own drive of an already
6
+ * consented session into `browser_save_scenario` input.
5
7
  *
6
- * `class: "stateful-read"` — deliberately not `action`. None of the four mutates the application;
7
- * the developer's consent for driving it was already given at `browser_start_session`. What they
8
- * DO change is what a *later* call in the same session sees (each takes a fresh snapshot, which
9
- * invalidates every ref issued before it) — that is what "stateful" means here, and it is why
10
- * `browser_snapshot` was never `read`-class to begin with. Declaring `browser_read` as `action`
11
- * would put a plain read behind a confirmation handshake it has never needed; the other eight
12
- * `browser_*` verbs (the ones that DO mutate) are a separate merge, owned elsewhere, and are not
13
- * touched by this file.
8
+ * `class: "stateful-read"` — deliberately not `action`. None of the six mutates the application;
9
+ * the developer's consent for driving it was already given at `browser_start_session`, and
10
+ * `record_start`/`record_stop` do not act on the application at all — a human's own hands do
11
+ * that, these verbs only listen. What the four original verbs DO change is what a *later* call in
12
+ * the same session sees (each takes a fresh snapshot, which invalidates every ref issued before
13
+ * it) — that is what "stateful" means here, and it is why `browser_snapshot` was never
14
+ * `read`-class to begin with; `record_start`/`record_stop` earn the same class by changing
15
+ * whether this session is currently listening, and what `performedSteps()` holds. Declaring
16
+ * `browser_read` as `action` would put a plain read behind a confirmation handshake it has never
17
+ * needed; the eight `browser_*` verbs that DO mutate are a separate merge, owned elsewhere, and
18
+ * are not touched by this file.
14
19
  *
15
20
  * Dispatches on "verb" to each absorbed tool's exact `run` body — extracted, not reimplemented,
16
21
  * so behaviour is unchanged per verb.
@@ -20,6 +25,8 @@ import type { BrowserPageData } from "./browser-snapshot.ts";
20
25
  import type { BrowserNavigateData } from "./browser-navigate.ts";
21
26
  import type { BrowserWaitForData } from "./browser-wait-for.ts";
22
27
  import type { BrowserCloseSessionData } from "./browser-close-session.ts";
28
+ import type { BrowserRecordStartData } from "./browser-record-start.ts";
29
+ import type { BrowserRecordStopData } from "./browser-record-stop.ts";
23
30
  /**
24
31
  * What this tool answers with: one verb's shape, never a merged one.
25
32
  *
@@ -28,6 +35,6 @@ import type { BrowserCloseSessionData } from "./browser-close-session.ts";
28
35
  * to the code producing it. A union keeps that tie: a verb added without its
29
36
  * shape here stops compiling.
30
37
  */
31
- export type BrowserReadData = BrowserPageData | BrowserNavigateData | BrowserWaitForData | BrowserCloseSessionData;
38
+ export type BrowserReadData = BrowserPageData | BrowserNavigateData | BrowserWaitForData | BrowserCloseSessionData | BrowserRecordStartData | BrowserRecordStopData;
32
39
  export declare const browserReadTool: ToolDefinition;
33
40
  //# sourceMappingURL=browser-read.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-read.d.ts","sourceRoot":"","sources":["../../src/tools/browser-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,UAAU,CAAC;AAO5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,uBAAuB,CAAC;AA0E5B,eAAO,MAAM,eAAe,EAAE,cAY7B,CAAC"}
1
+ {"version":3,"file":"browser-read.d.ts","sourceRoot":"","sources":["../../src/tools/browser-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,UAAU,CAAC;AAS5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,uBAAuB,GACvB,sBAAsB,GACtB,qBAAqB,CAAC;AAiF1B,eAAO,MAAM,eAAe,EAAE,cAa7B,CAAC"}
@@ -1,16 +1,21 @@
1
1
  /**
2
- * `browser_read` — merges the four browser tools that read a page without needing consent of
3
- * their own: `browser_snapshot`, `browser_navigate`, `browser_wait_for`, `browser_close_session`
4
- * (documents/plans/mcp-surface-consolidation.md, group 2).
2
+ * `browser_read` — merges the six browser tools that read a page, or a session's own history,
3
+ * without needing consent of their own: `browser_snapshot`, `browser_navigate`,
4
+ * `browser_wait_for`, `browser_close_session` (documents/plans/mcp-surface-consolidation.md,
5
+ * group 2), plus `record_start`/`record_stop` — turning a human's own drive of an already
6
+ * consented session into `browser_save_scenario` input.
5
7
  *
6
- * `class: "stateful-read"` — deliberately not `action`. None of the four mutates the application;
7
- * the developer's consent for driving it was already given at `browser_start_session`. What they
8
- * DO change is what a *later* call in the same session sees (each takes a fresh snapshot, which
9
- * invalidates every ref issued before it) — that is what "stateful" means here, and it is why
10
- * `browser_snapshot` was never `read`-class to begin with. Declaring `browser_read` as `action`
11
- * would put a plain read behind a confirmation handshake it has never needed; the other eight
12
- * `browser_*` verbs (the ones that DO mutate) are a separate merge, owned elsewhere, and are not
13
- * touched by this file.
8
+ * `class: "stateful-read"` — deliberately not `action`. None of the six mutates the application;
9
+ * the developer's consent for driving it was already given at `browser_start_session`, and
10
+ * `record_start`/`record_stop` do not act on the application at all — a human's own hands do
11
+ * that, these verbs only listen. What the four original verbs DO change is what a *later* call in
12
+ * the same session sees (each takes a fresh snapshot, which invalidates every ref issued before
13
+ * it) — that is what "stateful" means here, and it is why `browser_snapshot` was never
14
+ * `read`-class to begin with; `record_start`/`record_stop` earn the same class by changing
15
+ * whether this session is currently listening, and what `performedSteps()` holds. Declaring
16
+ * `browser_read` as `action` would put a plain read behind a confirmation handshake it has never
17
+ * needed; the eight `browser_*` verbs that DO mutate are a separate merge, owned elsewhere, and
18
+ * are not touched by this file.
14
19
  *
15
20
  * Dispatches on "verb" to each absorbed tool's exact `run` body — extracted, not reimplemented,
16
21
  * so behaviour is unchanged per verb.
@@ -21,11 +26,15 @@ import { run as runSnapshot } from "./browser-snapshot.js";
21
26
  import { run as runNavigate } from "./browser-navigate.js";
22
27
  import { run as runWaitFor } from "./browser-wait-for.js";
23
28
  import { run as runClose } from "./browser-close-session.js";
29
+ import { run as runRecordStart } from "./browser-record-start.js";
30
+ import { run as runRecordStop } from "./browser-record-stop.js";
24
31
  const VERB_SPECS = [
25
32
  { verb: "snapshot", accepts: ["startAt", "limit", "reveal"] },
26
33
  { verb: "navigate", accepts: ["url"] },
27
34
  { verb: "wait_for", accepts: ["role", "name", "timeoutMs"] },
28
35
  { verb: "close", accepts: [] },
36
+ { verb: "record_start", accepts: [] },
37
+ { verb: "record_stop", accepts: [] },
29
38
  ];
30
39
  /** Every verb needs the session it reads — genuinely shared, not one verb's property leaking
31
40
  * into another's. */
@@ -35,8 +44,10 @@ const SCHEMA = {
35
44
  properties: {
36
45
  verb: {
37
46
  type: "string",
38
- enum: ["snapshot", "navigate", "wait_for", "close"],
39
- description: "Which read to perform: snapshot, navigate, wait_for, or close.",
47
+ enum: ["snapshot", "navigate", "wait_for", "close", "record_start", "record_stop"],
48
+ description: "Which read to perform: snapshot, navigate, wait_for, close, record_start, or record_stop. " +
49
+ "record_start/record_stop capture a human driving this session directly, between the two calls, as " +
50
+ "steps for browser's save_scenario verb.",
40
51
  },
41
52
  sessionId: {
42
53
  type: "string",
@@ -88,17 +99,22 @@ async function run(args, ctx) {
88
99
  return runNavigate(args, ctx);
89
100
  if (verb === "wait_for")
90
101
  return runWaitFor(args, ctx);
91
- return runClose(args, ctx);
102
+ if (verb === "close")
103
+ return runClose(args, ctx);
104
+ if (verb === "record_start")
105
+ return runRecordStart(args, ctx);
106
+ return runRecordStop(args, ctx);
92
107
  }
93
108
  export const browserReadTool = {
94
109
  name: "browser_read",
95
110
  class: "stateful-read",
96
111
  tier: "evidence",
97
112
  version: "1.0.0",
98
- title: "Read, navigate, wait on, or close a browser session",
99
- description: "Read-only browser operations, chosen by verb: snapshot, navigate, wait_for, or close. Never " +
100
- "mutates the app, so none needs confirming — but each takes a fresh snapshot, invalidating " +
101
- "prior refs.",
113
+ title: "Read, navigate, wait on, close, or record a browser session",
114
+ description: "Read-only browser operations, chosen by verb: snapshot, navigate, wait_for, close, record_start, or " +
115
+ "record_stop. Never mutates the app, so none needs confirming — but snapshot/navigate/wait_for each take a " +
116
+ "fresh snapshot, invalidating prior refs, and record_start/record_stop capture a human driving the session " +
117
+ "directly as steps for browser's save_scenario verb.",
102
118
  inputSchema: SCHEMA,
103
119
  run,
104
120
  };
@@ -1 +1 @@
1
- {"version":3,"file":"browser-read.js","sourceRoot":"","sources":["../../src/tools/browser-read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-read.js","sourceRoot":"","sources":["../../src/tools/browser-read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `record_start` (a `browser_read` verb) — attaches listeners for a human driving an already
3
+ * open, already consented session directly, so that later `record_stop` can hand back the
4
+ * ordered steps as `browser_save_scenario` input. `class: "stateful-read"`: nothing here acts on
5
+ * the application — a human's own hands do that — it only changes what a later call in this
6
+ * session sees, exactly the reasoning the other four `browser_read` verbs already rest on.
7
+ * Consent for the session itself was already granted at `browser_start_session`; recording adds
8
+ * no new capability to confirm, so it needs no confirmToken of its own.
9
+ */
10
+ import { type ToolContext, type ToolDefinition } from "./kit.ts";
11
+ import type { ToolAnswer } from "../render.ts";
12
+ export interface BrowserRecordStartData {
13
+ readonly sessionId: string;
14
+ readonly recording: boolean;
15
+ }
16
+ /** Exported so `browser-read.ts` can dispatch the "record_start" verb to this exact body —
17
+ * the same reuse discipline every other absorbed verb follows (mcp-surface-consolidation.md). */
18
+ export declare function run(args: Record<string, unknown>, ctx: ToolContext): Promise<ToolAnswer<BrowserRecordStartData>>;
19
+ export declare const browserRecordStartTool: ToolDefinition;
20
+ //# sourceMappingURL=browser-record-start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-record-start.d.ts","sourceRoot":"","sources":["../../src/tools/browser-record-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAkB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAkBD;kGACkG;AAClG,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAyDtH;AAED,eAAO,MAAM,sBAAsB,EAAE,cAapC,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * `record_start` (a `browser_read` verb) — attaches listeners for a human driving an already
3
+ * open, already consented session directly, so that later `record_stop` can hand back the
4
+ * ordered steps as `browser_save_scenario` input. `class: "stateful-read"`: nothing here acts on
5
+ * the application — a human's own hands do that — it only changes what a later call in this
6
+ * session sees, exactly the reasoning the other four `browser_read` verbs already rest on.
7
+ * Consent for the session itself was already granted at `browser_start_session`; recording adds
8
+ * no new capability to confirm, so it needs no confirmToken of its own.
9
+ */
10
+ import { browserAnswer, useSession } from "../browser/tool-support.js";
11
+ import { RecordingAlreadyActiveError } from "../browser/driver.js";
12
+ import { requiredString } from "./kit.js";
13
+ const SCHEMA = {
14
+ type: "object",
15
+ properties: {
16
+ sessionId: {
17
+ type: "string",
18
+ description: "REQUIRED. The id returned by browser_start_session. Recording attaches to that session directly.",
19
+ },
20
+ },
21
+ required: ["sessionId"],
22
+ additionalProperties: false,
23
+ };
24
+ function blank(sessionId) {
25
+ return { sessionId, recording: false };
26
+ }
27
+ /** Exported so `browser-read.ts` can dispatch the "record_start" verb to this exact body —
28
+ * the same reuse discipline every other absorbed verb follows (mcp-surface-consolidation.md). */
29
+ export async function run(args, ctx) {
30
+ const sessionId = requiredString(args, "sessionId");
31
+ const found = await useSession(ctx.session.browserSessions(), sessionId);
32
+ if (!found.ok) {
33
+ return browserAnswer({
34
+ ctx,
35
+ state: found.dead.state,
36
+ headline: found.dead.headline,
37
+ notes: found.dead.notes,
38
+ data: blank(sessionId),
39
+ });
40
+ }
41
+ const { entry } = found;
42
+ if (entry.page.startRecording === undefined) {
43
+ return browserAnswer({
44
+ ctx,
45
+ state: "refused",
46
+ headline: "This browser driver has no recording capability.",
47
+ notes: [
48
+ "Recording turns a human's own clicks, typing, choices and navigations into scenario steps by " +
49
+ "attaching listeners to the page; this build cannot install them. click/type/fill/select/submit " +
50
+ "and browser_save_scenario are unaffected — only recording a human-driven pass is unavailable.",
51
+ ],
52
+ data: blank(sessionId),
53
+ });
54
+ }
55
+ try {
56
+ ctx.progress("Attaching recording listeners");
57
+ // `!`: the `undefined` check above already refused and returned when this driver has no
58
+ // capability; `startRecording` cannot become undefined between that check and here, but TS
59
+ // does not carry that narrowing across the `ctx.progress` call in between.
60
+ await entry.page.startRecording();
61
+ }
62
+ catch (error) {
63
+ if (!(error instanceof RecordingAlreadyActiveError))
64
+ throw error;
65
+ return browserAnswer({
66
+ ctx,
67
+ state: "refused",
68
+ headline: `Browser session ${sessionId} is already recording.`,
69
+ notes: [error.message],
70
+ data: { sessionId, recording: true },
71
+ });
72
+ }
73
+ return browserAnswer({
74
+ ctx,
75
+ headline: `Recording started on ${entry.page.currentUrl()}.`,
76
+ notes: [
77
+ "Every click, text entry, choice and navigation this session's browser window sees from here is being " +
78
+ "captured, in order. Nothing is written yet — call record_stop to get the steps back, and " +
79
+ "browser's save_scenario verb to write them into a committed scenario.",
80
+ ],
81
+ data: { sessionId, recording: true },
82
+ });
83
+ }
84
+ export const browserRecordStartTool = {
85
+ name: "browser_record_start",
86
+ title: "Start recording a human-driven browser session",
87
+ description: "Attach listeners to an open, already-consented browser session and start capturing a human's own " +
88
+ "clicks, text entry, choices and navigations as ordered steps. Call browser_record_stop to get them back, " +
89
+ "then browser's save_scenario verb to write them into a committed scenario. Refuses by name when this " +
90
+ "driver build has no recording capability.",
91
+ class: "stateful-read",
92
+ tier: "evidence",
93
+ version: "1.0.0",
94
+ inputSchema: SCHEMA,
95
+ run,
96
+ };
97
+ //# sourceMappingURL=browser-record-start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-record-start.js","sourceRoot":"","sources":["../../src/tools/browser-record-start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * `record_stop` (a `browser_read` verb) — detaches the listeners `record_start` installed and
3
+ * hands back every step captured, in order. Nothing is written here: the steps this returns are
4
+ * exactly `browser_save_scenario`'s own `steps` shape (`PerformedStep`, restated by neither —
5
+ * `driver.ts`'s own type), so a caller passes them straight through to `browser`'s save_scenario
6
+ * verb. `class: "stateful-read"` for the same reason `record_start` is: nothing here acts on the
7
+ * application, only on what this session has captured.
8
+ */
9
+ import { type PerformedStep } from "../browser/driver.ts";
10
+ import { type ToolContext, type ToolDefinition } from "./kit.ts";
11
+ import type { ToolAnswer } from "../render.ts";
12
+ export interface BrowserRecordStopData {
13
+ readonly sessionId: string;
14
+ readonly steps: readonly PerformedStep[];
15
+ readonly stepCount: number;
16
+ /** Credential names this recording redacted a password field into, deduplicated, in the order
17
+ * first referenced — `${credential:NAME}` for each. Empty when nothing was redacted. Each one
18
+ * must be stored (`descry credential set`) before a scenario saved from these steps can replay. */
19
+ readonly secretsToStore: readonly string[];
20
+ }
21
+ /** Exported so `browser-read.ts` can dispatch the "record_stop" verb to this exact body — the
22
+ * same reuse discipline every other absorbed verb follows (mcp-surface-consolidation.md). */
23
+ export declare function run(args: Record<string, unknown>, ctx: ToolContext): Promise<ToolAnswer<BrowserRecordStopData>>;
24
+ export declare const browserRecordStopTool: ToolDefinition;
25
+ //# sourceMappingURL=browser-record-stop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-record-stop.d.ts","sourceRoot":"","sources":["../../src/tools/browser-record-stop.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAElF,OAAO,EAAkB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;wGAEoG;IACpG,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAkBD;8FAC8F;AAC9F,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAoErH;AAED,eAAO,MAAM,qBAAqB,EAAE,cAYnC,CAAC"}