@reticlehq/server 2.14.0 → 3.2.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 (1493) hide show
  1. package/SKILL.md +54 -136
  2. package/bin/reticle.js +1 -1
  3. package/dist/command/cli/adhoc-verdict.d.ts +64 -0
  4. package/dist/command/cli/adhoc-verdict.js +144 -0
  5. package/dist/command/cli/answers/status-next-action.d.ts +61 -0
  6. package/dist/command/cli/answers/status-next-action.js +84 -0
  7. package/dist/command/cli/auth/cloud-keystore.js +97 -0
  8. package/dist/command/cli/auth/device-flow.d.ts +76 -0
  9. package/dist/command/cli/auth/device-flow.js +56 -0
  10. package/dist/command/cli/cli-doctor.js +215 -0
  11. package/dist/command/cli/cli-flow-commands.d.ts +47 -0
  12. package/dist/command/cli/cli-flow-commands.js +255 -0
  13. package/dist/command/cli/cli-kill.d.ts +59 -0
  14. package/dist/command/cli/cli-kill.js +162 -0
  15. package/dist/command/cli/cli-parse-grammar.d.ts +29 -0
  16. package/dist/command/cli/cli-parse-grammar.js +39 -0
  17. package/dist/command/cli/cli-parse-verify.d.ts +22 -0
  18. package/dist/command/cli/cli-parse-verify.js +143 -0
  19. package/dist/command/cli/cli-parse.d.ts +193 -0
  20. package/dist/command/cli/cli-parse.js +833 -0
  21. package/dist/command/cli/cli-update-commands.js +112 -0
  22. package/dist/command/cli/cli-verify.d.ts +124 -0
  23. package/dist/command/cli/cli-verify.js +426 -0
  24. package/dist/command/cli/cloud-cli.js +694 -0
  25. package/dist/command/cli/cloud-kit.d.ts +37 -0
  26. package/dist/command/cli/cloud-kit.js +117 -0
  27. package/dist/command/cli/cloud-login.js +183 -0
  28. package/dist/command/cli/config/config-discovery.d.ts +48 -0
  29. package/dist/command/cli/config/config-discovery.js +183 -0
  30. package/dist/command/cli/daemon-start-options.d.ts +33 -0
  31. package/dist/command/cli/demo/demo-page.d.ts +78 -0
  32. package/dist/command/cli/demo/demo-page.js +238 -0
  33. package/dist/command/cli/demo/demo-run.d.ts +38 -0
  34. package/dist/command/cli/demo/demo-run.js +138 -0
  35. package/dist/command/cli/doctor/doctor-daemon-line.js +47 -0
  36. package/dist/command/cli/doctor/doctor-rows.d.ts +75 -0
  37. package/dist/command/cli/doctor/doctor-rows.js +77 -0
  38. package/dist/command/cli/doctor/doctor-sessions-line.js +69 -0
  39. package/dist/command/cli/drive/drive-attach.d.ts +113 -0
  40. package/dist/command/cli/drive/drive-attach.js +221 -0
  41. package/dist/command/cli/drive/drive-command.js +107 -0
  42. package/dist/command/cli/launch/cli-launch.d.ts +100 -0
  43. package/dist/command/cli/launch/cli-launch.js +216 -0
  44. package/dist/command/cli/lifecycle/daemon-lifecycle.d.ts +33 -0
  45. package/dist/command/cli/lifecycle/daemon-lifecycle.js +198 -0
  46. package/dist/command/cli/mcp-command.js +176 -0
  47. package/dist/command/cli/ports/port-holder.js +123 -0
  48. package/dist/command/cli/ports/resolve/cli-port.d.ts +71 -0
  49. package/dist/command/cli/ports/resolve/cli-port.js +140 -0
  50. package/dist/command/cli/setup-mcp-cli.d.ts +29 -0
  51. package/dist/command/cli/setup-mcp-cli.js +107 -0
  52. package/dist/command/cli/status/status-lines.d.ts +28 -0
  53. package/dist/command/cli/status/status-lines.js +117 -0
  54. package/dist/command/cli/status-fields.d.ts +28 -0
  55. package/dist/command/cli/status-fields.js +29 -0
  56. package/dist/command/cli/tutorial.d.ts +116 -0
  57. package/dist/command/cli/tutorial.js +189 -0
  58. package/dist/command/cli-onboarding.d.ts +21 -0
  59. package/dist/command/cli-onboarding.js +27 -0
  60. package/dist/command/cli.d.ts +6 -0
  61. package/dist/command/cli.js +710 -0
  62. package/dist/command/daemon/binding/daemon-status-probe.d.ts +2 -0
  63. package/dist/command/daemon/binding/daemon-status-probe.js +48 -0
  64. package/dist/command/daemon/binding/loopback-reach.d.ts +42 -0
  65. package/dist/command/daemon/binding/loopback-reach.js +63 -0
  66. package/dist/command/daemon/daemon-resilience.d.ts +86 -0
  67. package/dist/command/daemon/daemon-resilience.js +339 -0
  68. package/dist/command/daemon/daemon-resolve.d.ts +113 -0
  69. package/dist/command/daemon/daemon-resolve.js +187 -0
  70. package/dist/command/daemon/daemon.d.ts +86 -0
  71. package/dist/command/daemon/daemon.js +333 -0
  72. package/dist/command/daemon/idle-shutdown.d.ts +54 -0
  73. package/dist/command/daemon/idle-shutdown.js +98 -0
  74. package/dist/command/daemon/lifetime/daemon-usefulness.d.ts +60 -0
  75. package/dist/command/daemon/lifetime/daemon-usefulness.js +61 -0
  76. package/dist/command/daemon/lifetime/heartbeat.d.ts +119 -0
  77. package/dist/command/daemon/lifetime/heartbeat.js +151 -0
  78. package/dist/command/daemon/lifetime/idle-grace.d.ts +32 -0
  79. package/dist/command/daemon/lifetime/idle-grace.js +41 -0
  80. package/dist/command/daemon/lifetime/log-cap.d.ts +68 -0
  81. package/dist/command/daemon/lifetime/log-cap.js +115 -0
  82. package/dist/command/daemon/state-dir.js +59 -0
  83. package/dist/command/daemon/wake-decision.d.ts +32 -0
  84. package/dist/command/daemon/wake-decision.js +38 -0
  85. package/dist/command/dev/stale-issue-guard.d.ts +35 -0
  86. package/dist/command/dev/stale-issue-guard.js +69 -0
  87. package/dist/command/setup/agent-configs.d.ts +111 -0
  88. package/dist/command/setup/agent-configs.js +365 -0
  89. package/dist/command/setup/agent-notice-memory.d.ts +16 -0
  90. package/dist/command/setup/agent-notice-memory.js +65 -0
  91. package/dist/command/setup/agent-writer.d.ts +52 -0
  92. package/dist/command/setup/agent-writer.js +116 -0
  93. package/dist/command/setup/auto-approve.js +153 -0
  94. package/dist/command/setup/bringup/bridge-port.d.ts +15 -0
  95. package/dist/command/setup/bringup/bridge-port.js +24 -0
  96. package/dist/command/setup/bringup/dev-server-wait.d.ts +69 -0
  97. package/dist/command/setup/bringup/dev-server-wait.js +83 -0
  98. package/dist/command/setup/bringup/ensure-daemon.js +58 -0
  99. package/dist/command/setup/init/init-host.js +37 -0
  100. package/dist/command/setup/init/init-runtime.d.ts +39 -0
  101. package/dist/command/setup/init/init-runtime.js +168 -0
  102. package/dist/command/setup/node-effects.d.ts +63 -0
  103. package/dist/command/setup/node-effects.js +225 -0
  104. package/dist/command/setup/probe/page-probe.d.ts +71 -0
  105. package/dist/command/setup/probe/page-probe.js +89 -0
  106. package/dist/command/setup/remaining-steps.js +53 -0
  107. package/dist/command/setup/run-setup.d.ts +123 -0
  108. package/dist/command/setup/run-setup.js +316 -0
  109. package/dist/command/setup/setup-command.d.ts +48 -0
  110. package/dist/command/setup/setup-command.js +224 -0
  111. package/dist/command/setup/setup-install.d.ts +18 -0
  112. package/dist/command/setup/setup-install.js +40 -0
  113. package/dist/command/setup/setup-mcp.d.ts +57 -0
  114. package/dist/command/setup/setup-mcp.js +92 -0
  115. package/dist/command/setup/setup-options.d.ts +66 -0
  116. package/dist/command/setup/setup-options.js +63 -0
  117. package/dist/command/setup/terminal/confirm.js +206 -0
  118. package/dist/command/setup/terminal/crash.d.ts +55 -0
  119. package/dist/command/setup/terminal/crash.js +74 -0
  120. package/dist/command/update/nudge-credit.js +53 -0
  121. package/dist/command/update/sdk-sync.d.ts +20 -0
  122. package/dist/command/update/sdk-sync.js +22 -0
  123. package/dist/command/update/update-checker.js +122 -0
  124. package/dist/command/update/update-nudge.d.ts +90 -0
  125. package/dist/command/update/update-nudge.js +211 -0
  126. package/dist/command/update/updater.d.ts +81 -0
  127. package/dist/command/update/updater.js +223 -0
  128. package/dist/command/version/identity/server-version.js +50 -0
  129. package/dist/command/version/peer-announce.js +32 -0
  130. package/dist/command/version/sdk-fix.js +127 -0
  131. package/dist/command/version/version-nudge.js +61 -0
  132. package/dist/command/version/version-skew.d.ts +113 -0
  133. package/dist/command/version/version-skew.js +192 -0
  134. package/dist/features/crawl/crawl-tools.d.ts +7 -0
  135. package/dist/features/crawl/crawl-tools.js +89 -0
  136. package/dist/features/crawl/crawl.d.ts +98 -0
  137. package/dist/features/crawl/crawl.js +444 -0
  138. package/dist/features/ee/audit-log.js +11 -0
  139. package/dist/features/harness/drive-report.d.ts +73 -0
  140. package/dist/features/harness/drive-report.js +196 -0
  141. package/dist/features/harness/driver.d.ts +50 -0
  142. package/dist/features/harness/driver.js +239 -0
  143. package/dist/features/harness/drivers.d.ts +19 -0
  144. package/dist/features/harness/drivers.js +19 -0
  145. package/dist/features/harness/fill-values.d.ts +67 -0
  146. package/dist/features/harness/fill-values.js +153 -0
  147. package/dist/features/harness/harness.d.ts +159 -0
  148. package/dist/features/harness/harness.js +203 -0
  149. package/dist/features/harness/jev-driver.d.ts +188 -0
  150. package/dist/features/harness/jev-driver.js +664 -0
  151. package/dist/features/harness/openai-driver.d.ts +46 -0
  152. package/dist/features/harness/openai-driver.js +197 -0
  153. package/dist/features/harness/platform-config.d.ts +52 -0
  154. package/dist/features/harness/platform-config.js +89 -0
  155. package/dist/features/harness/with-timeout.d.ts +18 -0
  156. package/dist/features/harness/with-timeout.js +34 -0
  157. package/dist/features/license/license-env.d.ts +24 -0
  158. package/dist/features/license/license-env.js +140 -0
  159. package/dist/features/license/license.d.ts +161 -0
  160. package/dist/features/license/license.js +287 -0
  161. package/dist/features/visual/visual-store.d.ts +22 -0
  162. package/dist/features/visual/visual-store.js +66 -0
  163. package/dist/features/visual/visual-tools.d.ts +26 -0
  164. package/dist/features/visual/visual-tools.js +352 -0
  165. package/dist/hooks/hook-bus.d.ts +53 -0
  166. package/dist/hooks/hook-bus.js +106 -0
  167. package/dist/hooks/hook-commands.d.ts +59 -0
  168. package/dist/hooks/hook-commands.js +184 -0
  169. package/dist/hooks/hook-emit.d.ts +44 -0
  170. package/dist/hooks/hook-emit.js +85 -0
  171. package/dist/import-graph.d.ts +48 -0
  172. package/dist/import-graph.js +106 -0
  173. package/dist/index.d.ts +91 -125
  174. package/dist/index.js +250 -160
  175. package/dist/judgement/capsule/capsule-store.d.ts +70 -0
  176. package/dist/judgement/capsule/capsule-store.js +113 -0
  177. package/dist/judgement/capsule/capsule.d.ts +42 -0
  178. package/dist/judgement/capsule/capsule.js +73 -0
  179. package/dist/judgement/capsule/causal-summary.d.ts +119 -0
  180. package/dist/judgement/capsule/causal-summary.js +172 -0
  181. package/dist/judgement/capsule/divergence.d.ts +26 -0
  182. package/dist/judgement/domain/domain-model.js +126 -0
  183. package/dist/judgement/domain/domain-tools.d.ts +2 -0
  184. package/dist/judgement/domain/domain-tools.js +96 -0
  185. package/dist/judgement/domain/flow-risk.js +80 -0
  186. package/dist/judgement/oracles/propose-consequences.d.ts +22 -0
  187. package/dist/judgement/oracles/propose-consequences.js +106 -0
  188. package/dist/judgement/outcome/predicate-to-expect.d.ts +44 -0
  189. package/dist/judgement/outcome/predicate-to-expect.js +148 -0
  190. package/dist/judgement/runs/artifact/build-verification-run.d.ts +34 -0
  191. package/dist/judgement/runs/artifact/build-verification-run.js +83 -0
  192. package/dist/judgement/runs/artifact/render-report.js +84 -0
  193. package/dist/judgement/runs/artifact/replay-mapping.js +34 -0
  194. package/dist/judgement/runs/artifact/run-store.d.ts +54 -0
  195. package/dist/judgement/runs/artifact/run-store.js +150 -0
  196. package/dist/judgement/runs/artifact/to-artifact.d.ts +119 -0
  197. package/dist/judgement/runs/artifact/to-artifact.js +83 -0
  198. package/dist/judgement/runs/context-tools.d.ts +2 -0
  199. package/dist/judgement/runs/context-tools.js +70 -0
  200. package/dist/judgement/runs/default-run-id.d.ts +8 -0
  201. package/dist/judgement/runs/default-run-id.js +11 -0
  202. package/dist/judgement/runs/drive-run.d.ts +61 -0
  203. package/dist/judgement/runs/drive-run.js +130 -0
  204. package/dist/judgement/runs/late-answer.d.ts +55 -0
  205. package/dist/judgement/runs/late-answer.js +81 -0
  206. package/dist/judgement/runs/reticle-runner.d.ts +60 -0
  207. package/dist/judgement/runs/reticle-runner.js +95 -0
  208. package/dist/judgement/runs/run-tools.d.ts +17 -0
  209. package/dist/judgement/runs/run-tools.js +97 -0
  210. package/dist/judgement/runs/runner-port.d.ts +11 -0
  211. package/dist/judgement/runs/runner-port.js +18 -0
  212. package/dist/judgement/runs/verification-sync.d.ts +13 -0
  213. package/dist/judgement/runs/verification-sync.js +93 -0
  214. package/dist/language/flows/affected-tools.d.ts +18 -0
  215. package/dist/language/flows/affected-tools.js +83 -0
  216. package/dist/language/flows/annotate-tools.d.ts +15 -0
  217. package/dist/language/flows/annotate-tools.js +179 -0
  218. package/dist/language/flows/change/affected.d.ts +24 -0
  219. package/dist/language/flows/change/affected.js +35 -0
  220. package/dist/language/flows/change/flow-sources.d.ts +19 -0
  221. package/dist/language/flows/change/flow-sources.js +55 -0
  222. package/dist/language/flows/change/gate.js +33 -0
  223. package/dist/language/flows/decision.d.ts +45 -0
  224. package/dist/language/flows/decision.js +371 -0
  225. package/dist/language/flows/empty-flow.js +24 -0
  226. package/dist/language/flows/fields/flow-secret-field.d.ts +53 -0
  227. package/dist/language/flows/fields/flow-secret-field.js +75 -0
  228. package/dist/language/flows/fields/flow-upload-resolve.d.ts +23 -0
  229. package/dist/language/flows/fields/flow-upload-resolve.js +46 -0
  230. package/dist/language/flows/flow-anchor.d.ts +59 -0
  231. package/dist/language/flows/flow-anchor.js +240 -0
  232. package/dist/language/flows/flow-classify.d.ts +73 -0
  233. package/dist/language/flows/flow-classify.js +146 -0
  234. package/dist/language/flows/flow-expect-grammar.d.ts +33 -0
  235. package/dist/language/flows/flow-expect-grammar.js +155 -0
  236. package/dist/language/flows/flow-intent.d.ts +52 -0
  237. package/dist/language/flows/flow-intent.js +123 -0
  238. package/dist/language/flows/flow-learning.d.ts +52 -0
  239. package/dist/language/flows/flow-learning.js +76 -0
  240. package/dist/language/flows/flow-mutate-tools.d.ts +14 -0
  241. package/dist/language/flows/flow-mutate-tools.js +82 -0
  242. package/dist/language/flows/flow-replay-run.d.ts +91 -0
  243. package/dist/language/flows/flow-replay-run.js +748 -0
  244. package/dist/language/flows/flow-replay-types.d.ts +37 -0
  245. package/dist/language/flows/flow-replay-types.js +1 -0
  246. package/dist/language/flows/flow-replay.d.ts +91 -0
  247. package/dist/language/flows/flow-replay.js +487 -0
  248. package/dist/language/flows/flow-result.d.ts +35 -0
  249. package/dist/language/flows/flow-result.js +26 -0
  250. package/dist/language/flows/flow-step-runners.d.ts +54 -0
  251. package/dist/language/flows/flow-step-runners.js +369 -0
  252. package/dist/language/flows/flow-store-for-session.d.ts +32 -0
  253. package/dist/language/flows/flow-success.d.ts +32 -0
  254. package/dist/language/flows/flow-success.js +181 -0
  255. package/dist/language/flows/flow-tools.d.ts +15 -0
  256. package/dist/language/flows/flow-tools.js +842 -0
  257. package/dist/language/flows/flows.d.ts +114 -0
  258. package/dist/language/flows/flows.js +492 -0
  259. package/dist/language/flows/heal-precondition.d.ts +28 -0
  260. package/dist/language/flows/heal-precondition.js +38 -0
  261. package/dist/language/flows/heal-run.d.ts +17 -0
  262. package/dist/language/flows/heal-run.js +186 -0
  263. package/dist/language/flows/heal.js +97 -0
  264. package/dist/language/flows/mutation-run.d.ts +33 -0
  265. package/dist/language/flows/mutation-run.js +60 -0
  266. package/dist/language/flows/narrow-write.d.ts +32 -0
  267. package/dist/language/flows/narrow-write.js +26 -0
  268. package/dist/language/flows/recording/flake.d.ts +56 -0
  269. package/dist/language/flows/recording/recording-backtrack.js +73 -0
  270. package/dist/language/flows/recording/tape/recordings.d.ts +134 -0
  271. package/dist/language/flows/recording/tape/recordings.js +144 -0
  272. package/dist/language/flows/replay.d.ts +83 -0
  273. package/dist/language/flows/replay.js +397 -0
  274. package/dist/language/flows/role-anchor-nearest.js +45 -0
  275. package/dist/language/flows/stores/assertion-tiers-store.d.ts +26 -0
  276. package/dist/language/flows/stores/assertion-tiers-store.js +107 -0
  277. package/dist/language/flows/stores/flake-store.d.ts +18 -0
  278. package/dist/language/flows/stores/flake-store.js +58 -0
  279. package/dist/language/flows/suite/server-verify.d.ts +15 -0
  280. package/dist/language/flows/suite/server-verify.js +56 -0
  281. package/dist/language/flows/suite/suite-flakes.d.ts +34 -0
  282. package/dist/language/flows/suite/suite-flakes.js +32 -0
  283. package/dist/language/flows/suite-selection.d.ts +45 -0
  284. package/dist/language/flows/suite-selection.js +84 -0
  285. package/dist/language/flows/verify-change-tools.d.ts +2 -0
  286. package/dist/language/flows/verify-change-tools.js +244 -0
  287. package/dist/machine/clock.d.ts +24 -0
  288. package/dist/machine/clock.js +1 -0
  289. package/dist/machine/repo-root.d.ts +16 -0
  290. package/dist/machine/repo-root.js +20 -0
  291. package/dist/memory/cloud/account-state.d.ts +20 -0
  292. package/dist/memory/cloud/account-state.js +70 -0
  293. package/dist/memory/cloud/cloud-config.d.ts +79 -0
  294. package/dist/memory/cloud/cloud-config.js +156 -0
  295. package/dist/memory/cloud/cloud-sync.d.ts +195 -0
  296. package/dist/memory/cloud/cloud-sync.js +359 -0
  297. package/dist/memory/cloud/harness-config.d.ts +10 -0
  298. package/dist/memory/cloud/harness-config.js +58 -0
  299. package/dist/memory/cloud/harness-offer.d.ts +44 -0
  300. package/dist/memory/cloud/harness-offer.js +146 -0
  301. package/dist/memory/cloud/harness-switch.d.ts +11 -0
  302. package/dist/memory/cloud/harness-switch.js +53 -0
  303. package/dist/memory/cloud/sync-cycle.d.ts +121 -0
  304. package/dist/memory/cloud/sync-cycle.js +295 -0
  305. package/dist/memory/cloud/sync-daemon.d.ts +73 -0
  306. package/dist/memory/cloud/sync-daemon.js +297 -0
  307. package/dist/memory/cloud/sync-disk.js +193 -0
  308. package/dist/memory/impact/impact-recorder.d.ts +54 -0
  309. package/dist/memory/impact/impact-recorder.js +160 -0
  310. package/dist/memory/impact/impact-store.d.ts +52 -0
  311. package/dist/memory/impact/impact-store.js +274 -0
  312. package/dist/memory/intent/inline-intent.d.ts +60 -0
  313. package/dist/memory/intent/inline-intent.js +206 -0
  314. package/dist/memory/intent/intent-shard-store.d.ts +87 -0
  315. package/dist/memory/intent/intent-shard-store.js +215 -0
  316. package/dist/memory/intent/intent-shard.d.ts +389 -0
  317. package/dist/memory/intent/intent-shard.js +153 -0
  318. package/dist/memory/intent/intent-store.d.ts +47 -0
  319. package/dist/memory/intent/intent-store.js +133 -0
  320. package/dist/memory/intent/intent-subject.d.ts +46 -0
  321. package/dist/memory/intent/intent-subject.js +175 -0
  322. package/dist/memory/intent/intent-tools.d.ts +2 -0
  323. package/dist/memory/intent/intent-tools.js +157 -0
  324. package/dist/memory/intent/open-intents.d.ts +36 -0
  325. package/dist/memory/intent/open-intents.js +58 -0
  326. package/dist/memory/journal/ambient-store.d.ts +13 -0
  327. package/dist/memory/journal/ambient-store.js +52 -0
  328. package/dist/memory/journal/attach-journal.d.ts +37 -0
  329. package/dist/memory/journal/attach-journal.js +26 -0
  330. package/dist/memory/journal/drive-flow.d.ts +74 -0
  331. package/dist/memory/journal/drive-flow.js +157 -0
  332. package/dist/memory/journal/drive-run-flush.d.ts +42 -0
  333. package/dist/memory/journal/drive-run-flush.js +82 -0
  334. package/dist/memory/journal/envelope-store.d.ts +16 -0
  335. package/dist/memory/journal/envelope-store.js +61 -0
  336. package/dist/memory/journal/envelope.d.ts +230 -0
  337. package/dist/memory/journal/journal-query.d.ts +66 -0
  338. package/dist/memory/journal/journal-query.js +98 -0
  339. package/dist/memory/journal/journal-recorder.d.ts +109 -0
  340. package/dist/memory/journal/journal-recorder.js +153 -0
  341. package/dist/memory/journal/on-disk/ambient-file.d.ts +21 -0
  342. package/dist/memory/journal/on-disk/ambient-file.js +15 -0
  343. package/dist/memory/journal/on-disk/retention.d.ts +141 -0
  344. package/dist/memory/journal/on-disk/retention.js +291 -0
  345. package/dist/memory/journal/on-disk/workspace-gitignore.d.ts +21 -0
  346. package/dist/memory/journal/on-disk/workspace-gitignore.js +93 -0
  347. package/dist/memory/journal/self-observation.d.ts +3 -0
  348. package/dist/memory/journal/self-observation.js +67 -0
  349. package/dist/memory/journal/session-end.d.ts +112 -0
  350. package/dist/memory/journal/session-end.js +179 -0
  351. package/dist/memory/journal/session-journal.d.ts +134 -0
  352. package/dist/memory/journal/session-journal.js +614 -0
  353. package/dist/memory/project/artifact-root-resolver.d.ts +3 -0
  354. package/dist/memory/project/artifact-root-resolver.js +89 -0
  355. package/dist/memory/project/artifact-root.d.ts +109 -0
  356. package/dist/memory/project/artifact-root.js +157 -0
  357. package/dist/memory/project/dir/fill-value-store.d.ts +32 -0
  358. package/dist/memory/project/dir/fill-value-store.js +88 -0
  359. package/dist/memory/project/dir/reticle-dir.d.ts +139 -0
  360. package/dist/memory/project/dir/reticle-dir.js +229 -0
  361. package/dist/memory/project/fs/fs-port.d.ts +68 -0
  362. package/dist/memory/project/fs/fs-port.js +82 -0
  363. package/dist/memory/project/learned-routes.d.ts +38 -0
  364. package/dist/memory/project/learned-routes.js +79 -0
  365. package/dist/memory/project/memory-fs.d.ts +10 -0
  366. package/dist/memory/project/project-for-root.d.ts +30 -0
  367. package/dist/memory/project/project-for-root.js +43 -0
  368. package/dist/memory/project/project-store.d.ts +54 -0
  369. package/dist/memory/project/project-store.js +244 -0
  370. package/dist/memory/project/project-tools.d.ts +8 -0
  371. package/dist/memory/project/project-tools.js +160 -0
  372. package/dist/memory/project/reticle-deps.d.ts +15 -0
  373. package/dist/memory/project/reticle-deps.js +33 -0
  374. package/dist/memory/project/session-root.d.ts +52 -0
  375. package/dist/memory/project/session-root.js +100 -0
  376. package/dist/memory/recall/memory-tools.d.ts +2 -0
  377. package/dist/memory/recall/memory-tools.js +81 -0
  378. package/dist/memory/recall/prior/connection-memory.d.ts +65 -0
  379. package/dist/memory/recall/prior/connection-memory.js +114 -0
  380. package/dist/memory/recall/project-memory.d.ts +33 -0
  381. package/dist/portal/bridge/auth-failure-reason.d.ts +32 -0
  382. package/dist/portal/bridge/auth-failure-reason.js +68 -0
  383. package/dist/portal/bridge/bridge-security.d.ts +30 -0
  384. package/dist/portal/bridge/bridge-security.js +53 -0
  385. package/dist/portal/bridge/bridge.d.ts +109 -0
  386. package/dist/portal/bridge/bridge.js +808 -0
  387. package/dist/portal/input/drive-url-stamp.d.ts +14 -0
  388. package/dist/portal/input/drive-url-stamp.js +33 -0
  389. package/dist/portal/input/network-detail.d.ts +97 -0
  390. package/dist/portal/input/network-detail.js +138 -0
  391. package/dist/portal/input/network-mock-tools.d.ts +21 -0
  392. package/dist/portal/input/network-mock-tools.js +124 -0
  393. package/dist/portal/input/network-mock.js +83 -0
  394. package/dist/portal/input/network-mutation.d.ts +47 -0
  395. package/dist/portal/input/network-mutation.js +53 -0
  396. package/dist/portal/input/real-input.d.ts +261 -0
  397. package/dist/portal/input/real-input.js +488 -0
  398. package/dist/portal/input/scroll-find.js +111 -0
  399. package/dist/portal/input/scroll-tools.d.ts +2 -0
  400. package/dist/portal/input/scroll-tools.js +76 -0
  401. package/dist/portal/input/storage-fixture.d.ts +57 -0
  402. package/dist/portal/input/storage-fixture.js +92 -0
  403. package/dist/portal/input/viewport-tools.d.ts +2 -0
  404. package/dist/portal/input/viewport-tools.js +72 -0
  405. package/dist/portal/pool/browser-pool.d.ts +174 -0
  406. package/dist/portal/pool/browser-pool.js +559 -0
  407. package/dist/portal/pool/lease-reaper.js +40 -0
  408. package/dist/portal/pool/playwright-launcher.js +150 -0
  409. package/dist/portal/pool/pool-contract.d.ts +116 -0
  410. package/dist/portal/pool/pool-contract.js +8 -0
  411. package/dist/portal/pool/storage-seed.d.ts +23 -0
  412. package/dist/portal/realm/conformance-client.d.ts +43 -0
  413. package/dist/portal/realm/conformance-client.js +227 -0
  414. package/dist/portal/realm/http-witness.d.ts +48 -0
  415. package/dist/portal/realm/http-witness.js +135 -0
  416. package/dist/portal/realm/web-realm.d.ts +225 -0
  417. package/dist/portal/realm/web-realm.js +661 -0
  418. package/dist/portal/session/daemon-answers.d.ts +20 -0
  419. package/dist/portal/session/daemon-answers.js +20 -0
  420. package/dist/portal/session/dev-server/dev-server-probe.js +147 -0
  421. package/dist/portal/session/facts/handshake-facts.d.ts +56 -0
  422. package/dist/portal/session/facts/handshake-facts.js +1 -0
  423. package/dist/portal/session/facts/observed-state.d.ts +60 -0
  424. package/dist/portal/session/facts/observed-state.js +121 -0
  425. package/dist/portal/session/facts/session-replaced.d.ts +43 -0
  426. package/dist/portal/session/facts/session-replaced.js +51 -0
  427. package/dist/portal/session/live-control-tools.d.ts +15 -0
  428. package/dist/portal/session/live-control-tools.js +242 -0
  429. package/dist/portal/session/no-session-diagnosis.d.ts +176 -0
  430. package/dist/portal/session/no-session-diagnosis.js +457 -0
  431. package/dist/portal/session/no-session-next-action.d.ts +76 -0
  432. package/dist/portal/session/no-session-next-action.js +211 -0
  433. package/dist/portal/session/no-session-watch.js +351 -0
  434. package/dist/portal/session/output-budget.d.ts +82 -0
  435. package/dist/portal/session/output-budget.js +108 -0
  436. package/dist/portal/session/page-commands/undeclared-command.d.ts +30 -0
  437. package/dist/portal/session/page-commands/undeclared-command.js +44 -0
  438. package/dist/portal/session/presence/session-recommendation.js +29 -0
  439. package/dist/portal/session/rebind.d.ts +18 -0
  440. package/dist/portal/session/rebind.js +38 -0
  441. package/dist/portal/session/session-health.d.ts +145 -0
  442. package/dist/portal/session/session-health.js +154 -0
  443. package/dist/portal/session/session-manager.d.ts +81 -0
  444. package/dist/portal/session/session-manager.js +504 -0
  445. package/dist/portal/session/session-reaper.d.ts +36 -0
  446. package/dist/portal/session/session-reaper.js +93 -0
  447. package/dist/portal/session/session-tools.d.ts +8 -0
  448. package/dist/portal/session/session-tools.js +42 -0
  449. package/dist/portal/session/session.d.ts +279 -0
  450. package/dist/portal/session/session.js +875 -0
  451. package/dist/portal/session/stall-clock.js +48 -0
  452. package/dist/portal/session/timing/command-timeout.d.ts +40 -0
  453. package/dist/portal/session/timing/command-timeout.js +42 -0
  454. package/dist/start-options.d.ts +51 -0
  455. package/dist/start-options.js +7 -0
  456. package/dist/status-payload.d.ts +16 -10
  457. package/dist/status-payload.js +5 -2
  458. package/dist/surface/http-server.d.ts +52 -0
  459. package/dist/surface/http-server.js +379 -0
  460. package/dist/surface/mcp/consumer-verdict-guard.d.ts +40 -0
  461. package/dist/surface/mcp/consumer-verdict-guard.js +57 -0
  462. package/dist/surface/mcp/faults/mcp-is-error.d.ts +13 -0
  463. package/dist/surface/mcp/faults/mcp-is-error.js +18 -0
  464. package/dist/surface/mcp/faults/mcp-outage.d.ts +33 -0
  465. package/dist/surface/mcp/faults/mcp-outage.js +71 -0
  466. package/dist/surface/mcp/mcp-proxy.d.ts +119 -0
  467. package/dist/surface/mcp/mcp-proxy.js +882 -0
  468. package/dist/surface/mcp/mcp.d.ts +89 -0
  469. package/dist/surface/mcp/mcp.js +676 -0
  470. package/dist/surface/mcp/proxy/mcp-post-transport.js +109 -0
  471. package/dist/surface/mcp/proxy/proxy-daemon-probe.d.ts +22 -0
  472. package/dist/surface/mcp/proxy/proxy-daemon-probe.js +71 -0
  473. package/dist/surface/mcp/proxy/proxy-handshake.js +192 -0
  474. package/dist/surface/mcp/proxy/proxy-lifecycle.d.ts +90 -0
  475. package/dist/surface/mcp/proxy/proxy-lifecycle.js +98 -0
  476. package/dist/surface/mcp/proxy/proxy-log.d.ts +57 -0
  477. package/dist/surface/mcp/proxy/proxy-log.js +117 -0
  478. package/dist/surface/mcp/server-instructions.d.ts +26 -0
  479. package/dist/surface/mcp/server-instructions.js +156 -0
  480. package/dist/surface/mcp/surface-vocabulary.d.ts +47 -0
  481. package/dist/surface/mcp/surface-vocabulary.js +56 -0
  482. package/dist/surface/mcp/tool-catalog-cache.d.ts +45 -0
  483. package/dist/surface/mcp/tool-catalog-cache.js +77 -0
  484. package/dist/surface/tools/act/act-danger.js +69 -0
  485. package/dist/surface/tools/act/act-helpers.d.ts +17 -0
  486. package/dist/surface/tools/act/act-helpers.js +40 -0
  487. package/dist/surface/tools/act/act-observation.d.ts +42 -0
  488. package/dist/surface/tools/act/act-observation.js +36 -0
  489. package/dist/surface/tools/act/act-preflight.d.ts +27 -0
  490. package/dist/surface/tools/act/act-preflight.js +168 -0
  491. package/dist/surface/tools/act/act-target.d.ts +10 -0
  492. package/dist/surface/tools/act/act-target.js +100 -0
  493. package/dist/surface/tools/act/navigation/navigate-arrival.d.ts +68 -0
  494. package/dist/surface/tools/act/resolve-target.js +115 -0
  495. package/dist/surface/tools/act/sequence-grade.d.ts +79 -0
  496. package/dist/surface/tools/act/sequence-grade.js +104 -0
  497. package/dist/surface/tools/act-capsule.d.ts +33 -0
  498. package/dist/surface/tools/act-capsule.js +79 -0
  499. package/dist/surface/tools/act-merged.d.ts +20 -0
  500. package/dist/surface/tools/act-merged.js +53 -0
  501. package/dist/surface/tools/act-sequence-tool.js +330 -0
  502. package/dist/surface/tools/act-tools.d.ts +24 -0
  503. package/dist/surface/tools/act-tools.js +835 -0
  504. package/dist/surface/tools/args/numeric-bounds.d.ts +97 -0
  505. package/dist/surface/tools/args/numeric-bounds.js +133 -0
  506. package/dist/surface/tools/assert/assert-grade.d.ts +42 -0
  507. package/dist/surface/tools/assert/assert-grade.js +125 -0
  508. package/dist/surface/tools/assert/assert-source.d.ts +52 -0
  509. package/dist/surface/tools/assert/assert-source.js +74 -0
  510. package/dist/surface/tools/assert/assert-verdict.d.ts +48 -0
  511. package/dist/surface/tools/assert/assert-verdict.js +247 -0
  512. package/dist/surface/tools/browser-tools.d.ts +2 -0
  513. package/dist/surface/tools/browser-tools.js +115 -0
  514. package/dist/surface/tools/contract-tools.d.ts +2 -0
  515. package/dist/surface/tools/contract-tools.js +112 -0
  516. package/dist/surface/tools/coverage-tools.d.ts +18 -0
  517. package/dist/surface/tools/coverage-tools.js +178 -0
  518. package/dist/surface/tools/dynamic-tools.d.ts +17 -0
  519. package/dist/surface/tools/dynamic-tools.js +282 -0
  520. package/dist/surface/tools/error-recovery.d.ts +116 -0
  521. package/dist/surface/tools/error-recovery.js +527 -0
  522. package/dist/surface/tools/explore-tools.d.ts +14 -0
  523. package/dist/surface/tools/explore-tools.js +162 -0
  524. package/dist/surface/tools/feature-capture.d.ts +151 -0
  525. package/dist/surface/tools/feature-capture.js +235 -0
  526. package/dist/surface/tools/feedback-invite.d.ts +48 -0
  527. package/dist/surface/tools/feedback-invite.js +71 -0
  528. package/dist/surface/tools/feedback-tools.d.ts +35 -0
  529. package/dist/surface/tools/feedback-tools.js +280 -0
  530. package/dist/surface/tools/first-sentence.d.ts +24 -0
  531. package/dist/surface/tools/first-sentence.js +0 -0
  532. package/dist/surface/tools/gap-novelty.d.ts +39 -0
  533. package/dist/surface/tools/gap-novelty.js +69 -0
  534. package/dist/surface/tools/gaps/capability-absences.d.ts +39 -0
  535. package/dist/surface/tools/gaps/capability-absences.js +46 -0
  536. package/dist/surface/tools/harness-explore.d.ts +177 -0
  537. package/dist/surface/tools/harness-explore.js +453 -0
  538. package/dist/surface/tools/harness-plan.d.ts +76 -0
  539. package/dist/surface/tools/harness-plan.js +156 -0
  540. package/dist/surface/tools/harness-toolset.d.ts +35 -0
  541. package/dist/surface/tools/harness-toolset.js +144 -0
  542. package/dist/surface/tools/inspect-tool.d.ts +4 -0
  543. package/dist/surface/tools/inspect-tool.js +142 -0
  544. package/dist/surface/tools/invoke-tool.d.ts +10 -0
  545. package/dist/surface/tools/invoke-tool.js +668 -0
  546. package/dist/surface/tools/lease-hint.d.ts +50 -0
  547. package/dist/surface/tools/lease-hint.js +125 -0
  548. package/dist/surface/tools/lease-tools.d.ts +195 -0
  549. package/dist/surface/tools/lease-tools.js +797 -0
  550. package/dist/surface/tools/lineage-tools.d.ts +14 -0
  551. package/dist/surface/tools/lineage-tools.js +64 -0
  552. package/dist/surface/tools/live-call-text.d.ts +25 -0
  553. package/dist/surface/tools/live-call-text.js +191 -0
  554. package/dist/surface/tools/merge-tools.d.ts +68 -0
  555. package/dist/surface/tools/merge-tools.js +110 -0
  556. package/dist/surface/tools/merged-name-redirect.d.ts +36 -0
  557. package/dist/surface/tools/merged-name-redirect.js +107 -0
  558. package/dist/surface/tools/observe-tools.js +700 -0
  559. package/dist/surface/tools/read/query-windowed.d.ts +54 -0
  560. package/dist/surface/tools/read/query-windowed.js +75 -0
  561. package/dist/surface/tools/read/snapshot-delta.d.ts +92 -0
  562. package/dist/surface/tools/read/snapshot-delta.js +356 -0
  563. package/dist/surface/tools/read-tools.js +569 -0
  564. package/dist/surface/tools/real-input-attempt.d.ts +68 -0
  565. package/dist/surface/tools/real-input-attempt.js +360 -0
  566. package/dist/surface/tools/reconcile-tools.js +211 -0
  567. package/dist/surface/tools/tool-hit-rate.js +90 -0
  568. package/dist/surface/tools/tool-kit.d.ts +254 -0
  569. package/dist/surface/tools/tool-kit.js +123 -0
  570. package/dist/surface/tools/tool-surface.d.ts +195 -0
  571. package/dist/surface/tools/tool-surface.js +429 -0
  572. package/dist/surface/tools/tools-helpers.d.ts +40 -0
  573. package/dist/surface/tools/tools-helpers.js +76 -0
  574. package/dist/surface/tools/tools.d.ts +76 -0
  575. package/dist/surface/tools/tools.js +799 -0
  576. package/dist/surface/tools/unadvertised-help.js +60 -0
  577. package/dist/surface/tools/verify-next-baton.js +52 -0
  578. package/dist/telemetry/app-instrumented.d.ts +3 -5
  579. package/dist/telemetry/app-instrumented.js +17 -6
  580. package/dist/telemetry/argument-shape.js +4 -4
  581. package/dist/telemetry/bug-found.js +49 -27
  582. package/dist/telemetry/cli-telemetry.js +27 -10
  583. package/dist/telemetry/daemon-telemetry.d.ts +7 -13
  584. package/dist/telemetry/daemon-telemetry.js +15 -22
  585. package/dist/telemetry/error-fingerprint.js +26 -1
  586. package/dist/telemetry/feedback-cli.d.ts +1 -1
  587. package/dist/telemetry/feedback-cli.js +2 -2
  588. package/dist/telemetry/feedback-context.js +4 -4
  589. package/dist/telemetry/feedback.js +1 -1
  590. package/dist/telemetry/harness-drive.d.ts +6 -0
  591. package/dist/telemetry/harness-drive.js +39 -0
  592. package/dist/telemetry/install-source.js +1 -1
  593. package/dist/telemetry/install-trace.d.ts +8 -0
  594. package/dist/telemetry/install-trace.js +74 -0
  595. package/dist/telemetry/license-activation.js +1 -1
  596. package/dist/telemetry/mcp-connection.d.ts +14 -1
  597. package/dist/telemetry/mcp-connection.js +17 -2
  598. package/dist/telemetry/onboarding-firsts.d.ts +40 -0
  599. package/dist/telemetry/onboarding-firsts.js +109 -0
  600. package/dist/telemetry/onboarding-funnel.d.ts +26 -0
  601. package/dist/telemetry/onboarding-funnel.js +60 -0
  602. package/dist/telemetry/project-profile.js +1 -1
  603. package/dist/telemetry/run-telemetry.js +13 -0
  604. package/dist/telemetry/session-metrics.d.ts +6 -7
  605. package/dist/telemetry/session-metrics.js +14 -21
  606. package/dist/telemetry/telemetry.d.ts +8 -1
  607. package/dist/telemetry/telemetry.js +6 -5
  608. package/dist/telemetry/verification-of.d.ts +6 -8
  609. package/dist/telemetry/verification-of.js +38 -12
  610. package/dist/workspace-packages.d.ts +22 -0
  611. package/dist/workspace-packages.js +57 -0
  612. package/docs/README.md +29 -23
  613. package/docs/actions.mdx +4 -4
  614. package/docs/adapters.md +75 -0
  615. package/docs/agent-cheatsheet.md +37 -27
  616. package/docs/architecture.md +3 -2
  617. package/docs/autodrive.md +99 -0
  618. package/docs/benchmarks.md +1 -1
  619. package/docs/best-practices.mdx +3 -3
  620. package/docs/capabilities.mdx +4 -4
  621. package/docs/cli/cloud.mdx +4 -4
  622. package/docs/cli/doctor.mdx +1 -0
  623. package/docs/cli/feedback.mdx +1 -1
  624. package/docs/cli/init.mdx +3 -3
  625. package/docs/cli/mcp.mdx +1 -1
  626. package/docs/cli/status.mdx +35 -20
  627. package/docs/cli/watch.mdx +1 -1
  628. package/docs/cli.mdx +15 -25
  629. package/docs/desktop.mdx +1 -1
  630. package/docs/enterprise.md +3 -2
  631. package/docs/faq.mdx +4 -4
  632. package/docs/first-drive.md +5 -5
  633. package/docs/flows.md +5 -5
  634. package/docs/for-agents.md +2 -1
  635. package/docs/frameworks.mdx +1 -1
  636. package/docs/getting-started.md +30 -21
  637. package/docs/http-transport.md +1 -1
  638. package/docs/index.mdx +28 -10
  639. package/docs/install-agentic.mdx +12 -4
  640. package/docs/install-manual.mdx +23 -7
  641. package/docs/instrumentation.mdx +3 -3
  642. package/docs/local-registry.md +15 -4
  643. package/docs/packages/babel-plugin.mdx +1 -1
  644. package/docs/packages/browser.mdx +2 -2
  645. package/docs/packages/core.mdx +2 -2
  646. package/docs/packages/engine.mdx +40 -0
  647. package/docs/packages/open-verification.mdx +40 -0
  648. package/docs/packages/tauri.mdx +1 -1
  649. package/docs/packages.mdx +22 -2
  650. package/docs/platform-integration.md +3 -3
  651. package/docs/predicates.mdx +19 -3
  652. package/docs/protocol.mdx +60 -0
  653. package/docs/quickstart.mdx +48 -13
  654. package/docs/recipes.mdx +1 -1
  655. package/docs/required-checks.md +37 -0
  656. package/docs/skill-file.mdx +2 -2
  657. package/docs/skill-setup.md +104 -0
  658. package/docs/state-files.md +46 -0
  659. package/docs/state-management.mdx +1 -1
  660. package/docs/system-map.md +8 -6
  661. package/docs/telemetry.md +4 -3
  662. package/docs/testing.md +12 -3
  663. package/docs/token-efficiency.md +3 -3
  664. package/docs/tools/act-and-wait.mdx +173 -0
  665. package/docs/tools/act-sequence.mdx +160 -0
  666. package/docs/tools/act.mdx +95 -0
  667. package/docs/tools/assert.mdx +129 -0
  668. package/docs/tools/console.mdx +70 -0
  669. package/docs/tools/inspect.mdx +95 -0
  670. package/docs/tools/navigate.mdx +107 -0
  671. package/docs/tools/network.mdx +126 -0
  672. package/docs/tools/observe.mdx +145 -0
  673. package/docs/tools/overview.mdx +163 -0
  674. package/docs/tools/query.mdx +133 -0
  675. package/docs/tools/sessions.mdx +101 -0
  676. package/docs/tools/snapshot.mdx +136 -0
  677. package/docs/tools/state.mdx +111 -0
  678. package/docs/tools/wait-for.mdx +92 -0
  679. package/docs/troubleshooting.mdx +43 -9
  680. package/docs/usage.md +59 -59
  681. package/package.json +31 -13
  682. package/dist/bridge/auth-failure-reason.d.ts +0 -23
  683. package/dist/bridge/auth-failure-reason.js +0 -47
  684. package/dist/bridge/bridge-security.d.ts +0 -30
  685. package/dist/bridge/bridge-security.js +0 -53
  686. package/dist/bridge/bridge.d.ts +0 -95
  687. package/dist/bridge/bridge.js +0 -713
  688. package/dist/bridge/bridge.test-harness.d.ts +0 -65
  689. package/dist/bridge/bridge.test-harness.js +0 -230
  690. package/dist/capsule/capsule-store.d.ts +0 -71
  691. package/dist/capsule/capsule-store.js +0 -114
  692. package/dist/capsule/capsule.d.ts +0 -18
  693. package/dist/capsule/capsule.js +0 -35
  694. package/dist/capsule/causal-summary.d.ts +0 -119
  695. package/dist/capsule/causal-summary.js +0 -172
  696. package/dist/capsule/divergence.d.ts +0 -35
  697. package/dist/capsule/predicate-to-links.d.ts +0 -8
  698. package/dist/capsule/predicate-to-links.js +0 -33
  699. package/dist/cli/adhoc-verdict.d.ts +0 -58
  700. package/dist/cli/adhoc-verdict.js +0 -115
  701. package/dist/cli/cli-doctor.js +0 -195
  702. package/dist/cli/cli-flow-commands.d.ts +0 -46
  703. package/dist/cli/cli-flow-commands.js +0 -255
  704. package/dist/cli/cli-kill.d.ts +0 -59
  705. package/dist/cli/cli-kill.js +0 -162
  706. package/dist/cli/cli-launch.d.ts +0 -92
  707. package/dist/cli/cli-launch.js +0 -223
  708. package/dist/cli/cli-parse.d.ts +0 -171
  709. package/dist/cli/cli-parse.js +0 -874
  710. package/dist/cli/cli-port.d.ts +0 -70
  711. package/dist/cli/cli-port.js +0 -136
  712. package/dist/cli/cli-update-commands.js +0 -112
  713. package/dist/cli/cli-verify.d.ts +0 -86
  714. package/dist/cli/cli-verify.js +0 -340
  715. package/dist/cli/cloud-cli.js +0 -694
  716. package/dist/cli/cloud-keystore.js +0 -97
  717. package/dist/cli/cloud-kit.d.ts +0 -37
  718. package/dist/cli/cloud-kit.js +0 -121
  719. package/dist/cli/cloud-login.js +0 -183
  720. package/dist/cli/config-discovery.d.ts +0 -36
  721. package/dist/cli/config-discovery.js +0 -164
  722. package/dist/cli/daemon-start-options.d.ts +0 -33
  723. package/dist/cli/device-flow.d.ts +0 -76
  724. package/dist/cli/device-flow.js +0 -56
  725. package/dist/cli/doctor-daemon-line.js +0 -47
  726. package/dist/cli/doctor-rows.d.ts +0 -63
  727. package/dist/cli/doctor-rows.js +0 -65
  728. package/dist/cli/doctor-sessions-line.js +0 -69
  729. package/dist/cli/drive-attach.d.ts +0 -113
  730. package/dist/cli/drive-attach.js +0 -221
  731. package/dist/cli/drive-command.js +0 -107
  732. package/dist/cli/mcp-command.js +0 -174
  733. package/dist/cli/port-holder.js +0 -123
  734. package/dist/cli/status-next-action.d.ts +0 -51
  735. package/dist/cli/status-next-action.js +0 -60
  736. package/dist/cli.d.ts +0 -6
  737. package/dist/cli.js +0 -828
  738. package/dist/cloud/account-state.d.ts +0 -20
  739. package/dist/cloud/account-state.js +0 -65
  740. package/dist/cloud/cloud-config.d.ts +0 -57
  741. package/dist/cloud/cloud-config.js +0 -145
  742. package/dist/cloud/cloud-sync.d.ts +0 -190
  743. package/dist/cloud/cloud-sync.js +0 -354
  744. package/dist/cloud/sync-cycle.d.ts +0 -111
  745. package/dist/cloud/sync-cycle.js +0 -270
  746. package/dist/cloud/sync-daemon.d.ts +0 -53
  747. package/dist/cloud/sync-daemon.js +0 -260
  748. package/dist/cloud/sync-disk.js +0 -191
  749. package/dist/crawl/crawl-tools.d.ts +0 -7
  750. package/dist/crawl/crawl-tools.js +0 -87
  751. package/dist/crawl/crawl.d.ts +0 -98
  752. package/dist/crawl/crawl.js +0 -441
  753. package/dist/daemon/daemon-resilience.d.ts +0 -74
  754. package/dist/daemon/daemon-resilience.js +0 -318
  755. package/dist/daemon/daemon-resolve.d.ts +0 -113
  756. package/dist/daemon/daemon-resolve.js +0 -187
  757. package/dist/daemon/daemon-usefulness.d.ts +0 -61
  758. package/dist/daemon/daemon-usefulness.js +0 -62
  759. package/dist/daemon/daemon.d.ts +0 -95
  760. package/dist/daemon/daemon.js +0 -336
  761. package/dist/daemon/heartbeat.d.ts +0 -111
  762. package/dist/daemon/heartbeat.js +0 -141
  763. package/dist/daemon/idle-grace.d.ts +0 -32
  764. package/dist/daemon/idle-grace.js +0 -41
  765. package/dist/daemon/idle-shutdown.d.ts +0 -54
  766. package/dist/daemon/idle-shutdown.js +0 -98
  767. package/dist/daemon/state-dir.js +0 -59
  768. package/dist/daemon/wake-decision.d.ts +0 -32
  769. package/dist/daemon/wake-decision.js +0 -38
  770. package/dist/dev/stale-issue-guard.d.ts +0 -41
  771. package/dist/dev/stale-issue-guard.js +0 -75
  772. package/dist/domain/domain-model.js +0 -126
  773. package/dist/domain/domain-tools.d.ts +0 -2
  774. package/dist/domain/domain-tools.js +0 -94
  775. package/dist/domain/flow-risk.js +0 -80
  776. package/dist/ee/audit-log.js +0 -11
  777. package/dist/events/body-failures.d.ts +0 -4
  778. package/dist/events/body-failures.js +0 -113
  779. package/dist/events/contradiction-folds.d.ts +0 -45
  780. package/dist/events/contradiction-folds.js +0 -42
  781. package/dist/events/contradictions.d.ts +0 -170
  782. package/dist/events/contradictions.js +0 -718
  783. package/dist/events/declared.d.ts +0 -74
  784. package/dist/events/declared.js +0 -171
  785. package/dist/events/echo-mismatch.d.ts +0 -10
  786. package/dist/events/echo-mismatch.js +0 -299
  787. package/dist/events/event-filters.d.ts +0 -121
  788. package/dist/events/event-filters.js +0 -215
  789. package/dist/events/json-salvage.d.ts +0 -33
  790. package/dist/events/json-salvage.js +0 -96
  791. package/dist/events/lineage.d.ts +0 -52
  792. package/dist/events/lineage.js +0 -122
  793. package/dist/events/net-evidence.d.ts +0 -21
  794. package/dist/events/net-evidence.js +0 -81
  795. package/dist/events/observed-in-window.d.ts +0 -24
  796. package/dist/events/observed-in-window.js +0 -38
  797. package/dist/events/predicate-asks.d.ts +0 -30
  798. package/dist/events/predicate-asks.js +0 -48
  799. package/dist/events/predicate-console.d.ts +0 -13
  800. package/dist/events/predicate-console.js +0 -138
  801. package/dist/events/predicate-element.d.ts +0 -13
  802. package/dist/events/predicate-element.js +0 -214
  803. package/dist/events/predicate-eval.d.ts +0 -101
  804. package/dist/events/predicate-eval.js +0 -834
  805. package/dist/events/predicate-parse.d.ts +0 -17
  806. package/dist/events/predicate-parse.js +0 -175
  807. package/dist/events/predicate-precheck.d.ts +0 -8
  808. package/dist/events/predicate-precheck.js +0 -41
  809. package/dist/events/predicate-request-body.d.ts +0 -50
  810. package/dist/events/predicate-request-body.js +0 -120
  811. package/dist/events/predicate-route.d.ts +0 -66
  812. package/dist/events/predicate-route.js +0 -258
  813. package/dist/events/predicate-schema.d.ts +0 -168
  814. package/dist/events/predicate-schema.js +0 -501
  815. package/dist/events/predicate.d.ts +0 -74
  816. package/dist/events/predicate.js +0 -725
  817. package/dist/events/reaction.d.ts +0 -33
  818. package/dist/events/reaction.js +0 -59
  819. package/dist/events/reconcile.d.ts +0 -39
  820. package/dist/events/reconcile.js +0 -211
  821. package/dist/events/ring-buffer.d.ts +0 -41
  822. package/dist/events/ring-buffer.js +0 -151
  823. package/dist/events/split-text-miss.d.ts +0 -32
  824. package/dist/events/split-text-miss.js +0 -51
  825. package/dist/events/stale-response.d.ts +0 -3
  826. package/dist/events/stale-response.js +0 -186
  827. package/dist/events/testid-near-miss.d.ts +0 -22
  828. package/dist/events/testid-near-miss.js +0 -33
  829. package/dist/events/unit-mismatch.d.ts +0 -16
  830. package/dist/events/unit-mismatch.js +0 -167
  831. package/dist/flows/affected-tools.d.ts +0 -18
  832. package/dist/flows/affected-tools.js +0 -80
  833. package/dist/flows/affected.d.ts +0 -24
  834. package/dist/flows/affected.js +0 -35
  835. package/dist/flows/annotate-tools.d.ts +0 -15
  836. package/dist/flows/annotate-tools.js +0 -179
  837. package/dist/flows/assertion-tiers-store.d.ts +0 -16
  838. package/dist/flows/assertion-tiers-store.js +0 -98
  839. package/dist/flows/decision.d.ts +0 -25
  840. package/dist/flows/decision.js +0 -201
  841. package/dist/flows/empty-flow.js +0 -24
  842. package/dist/flows/flake-store.d.ts +0 -18
  843. package/dist/flows/flake-store.js +0 -58
  844. package/dist/flows/flake.d.ts +0 -56
  845. package/dist/flows/flow-classify.d.ts +0 -51
  846. package/dist/flows/flow-classify.js +0 -102
  847. package/dist/flows/flow-expect-grammar.d.ts +0 -33
  848. package/dist/flows/flow-expect-grammar.js +0 -155
  849. package/dist/flows/flow-intent.d.ts +0 -52
  850. package/dist/flows/flow-intent.js +0 -123
  851. package/dist/flows/flow-replay-run.d.ts +0 -43
  852. package/dist/flows/flow-replay-run.js +0 -478
  853. package/dist/flows/flow-replay.d.ts +0 -82
  854. package/dist/flows/flow-replay.js +0 -519
  855. package/dist/flows/flow-secret-field.d.ts +0 -14
  856. package/dist/flows/flow-secret-field.js +0 -22
  857. package/dist/flows/flow-sources.d.ts +0 -19
  858. package/dist/flows/flow-sources.js +0 -32
  859. package/dist/flows/flow-step-runners.d.ts +0 -52
  860. package/dist/flows/flow-step-runners.js +0 -315
  861. package/dist/flows/flow-store-for-session.d.ts +0 -31
  862. package/dist/flows/flow-success.d.ts +0 -32
  863. package/dist/flows/flow-success.js +0 -169
  864. package/dist/flows/flow-tools.d.ts +0 -15
  865. package/dist/flows/flow-tools.js +0 -639
  866. package/dist/flows/flow-upload-resolve.d.ts +0 -23
  867. package/dist/flows/flow-upload-resolve.js +0 -46
  868. package/dist/flows/flows.d.ts +0 -130
  869. package/dist/flows/flows.js +0 -870
  870. package/dist/flows/gate.js +0 -33
  871. package/dist/flows/heal-run.d.ts +0 -10
  872. package/dist/flows/heal-run.js +0 -139
  873. package/dist/flows/heal.js +0 -97
  874. package/dist/flows/predicate-to-expect.d.ts +0 -44
  875. package/dist/flows/predicate-to-expect.js +0 -130
  876. package/dist/flows/recording-backtrack.js +0 -73
  877. package/dist/flows/recordings.d.ts +0 -63
  878. package/dist/flows/recordings.js +0 -57
  879. package/dist/flows/replay.d.ts +0 -62
  880. package/dist/flows/replay.js +0 -337
  881. package/dist/flows/role-anchor-nearest.js +0 -45
  882. package/dist/flows/server-verify.d.ts +0 -15
  883. package/dist/flows/server-verify.js +0 -56
  884. package/dist/flows/suite-flakes.d.ts +0 -34
  885. package/dist/flows/suite-flakes.js +0 -32
  886. package/dist/flows/verify-change-tools.d.ts +0 -2
  887. package/dist/flows/verify-change-tools.js +0 -231
  888. package/dist/honesty/accepted-write.d.ts +0 -17
  889. package/dist/honesty/accepted-write.js +0 -22
  890. package/dist/honesty/already-true.d.ts +0 -16
  891. package/dist/honesty/already-true.js +0 -89
  892. package/dist/honesty/blind-spots.d.ts +0 -133
  893. package/dist/honesty/blind-spots.js +0 -248
  894. package/dist/honesty/body-capture-remedy.d.ts +0 -42
  895. package/dist/honesty/body-capture-remedy.js +0 -95
  896. package/dist/honesty/feature-capture.d.ts +0 -151
  897. package/dist/honesty/feature-capture.js +0 -233
  898. package/dist/honesty/gap-ledger.d.ts +0 -52
  899. package/dist/honesty/gap-ledger.js +0 -63
  900. package/dist/honesty/honesty.d.ts +0 -103
  901. package/dist/honesty/honesty.js +0 -95
  902. package/dist/honesty/instrumentation-gaps.d.ts +0 -95
  903. package/dist/honesty/instrumentation-gaps.js +0 -114
  904. package/dist/honesty/observability.d.ts +0 -38
  905. package/dist/honesty/observability.js +0 -40
  906. package/dist/honesty/tool-hit-rate.js +0 -90
  907. package/dist/honesty/uncaptured-bodies.d.ts +0 -23
  908. package/dist/honesty/uncaptured-bodies.js +0 -41
  909. package/dist/honesty/undeclared-change.d.ts +0 -51
  910. package/dist/honesty/undeclared-change.js +0 -56
  911. package/dist/honesty/unread-outcome.d.ts +0 -10
  912. package/dist/honesty/unread-outcome.js +0 -77
  913. package/dist/honesty/unsettled.d.ts +0 -58
  914. package/dist/honesty/unsettled.js +0 -127
  915. package/dist/honesty/verified.d.ts +0 -148
  916. package/dist/honesty/verified.js +0 -330
  917. package/dist/http-server.d.ts +0 -52
  918. package/dist/http-server.js +0 -381
  919. package/dist/impact/impact-recorder.d.ts +0 -46
  920. package/dist/impact/impact-recorder.js +0 -159
  921. package/dist/impact/impact-store.d.ts +0 -47
  922. package/dist/impact/impact-store.js +0 -255
  923. package/dist/input/network-detail.d.ts +0 -104
  924. package/dist/input/network-detail.js +0 -211
  925. package/dist/input/network-mock-tools.d.ts +0 -21
  926. package/dist/input/network-mock-tools.js +0 -124
  927. package/dist/input/network-mock.js +0 -61
  928. package/dist/input/real-input.d.ts +0 -222
  929. package/dist/input/real-input.js +0 -405
  930. package/dist/input/scroll-find.js +0 -111
  931. package/dist/input/scroll-tools.d.ts +0 -2
  932. package/dist/input/scroll-tools.js +0 -76
  933. package/dist/input/viewport-tools.d.ts +0 -2
  934. package/dist/input/viewport-tools.js +0 -72
  935. package/dist/intent/inline-intent.d.ts +0 -27
  936. package/dist/intent/inline-intent.js +0 -193
  937. package/dist/intent/intent-shard-store.d.ts +0 -73
  938. package/dist/intent/intent-shard-store.js +0 -203
  939. package/dist/intent/intent-shard.d.ts +0 -411
  940. package/dist/intent/intent-shard.js +0 -176
  941. package/dist/intent/intent-store.d.ts +0 -49
  942. package/dist/intent/intent-store.js +0 -133
  943. package/dist/intent/intent-subject.d.ts +0 -46
  944. package/dist/intent/intent-subject.js +0 -177
  945. package/dist/intent/intent-tools.d.ts +0 -2
  946. package/dist/intent/intent-tools.js +0 -143
  947. package/dist/intent/open-intents.d.ts +0 -43
  948. package/dist/intent/open-intents.js +0 -40
  949. package/dist/journal/ambient-store.d.ts +0 -13
  950. package/dist/journal/ambient-store.js +0 -45
  951. package/dist/journal/ambient.d.ts +0 -47
  952. package/dist/journal/ambient.js +0 -47
  953. package/dist/journal/attach-journal.d.ts +0 -30
  954. package/dist/journal/attach-journal.js +0 -30
  955. package/dist/journal/envelope-store.d.ts +0 -16
  956. package/dist/journal/envelope-store.js +0 -61
  957. package/dist/journal/envelope.d.ts +0 -230
  958. package/dist/journal/journal-query.d.ts +0 -32
  959. package/dist/journal/journal-query.js +0 -52
  960. package/dist/journal/journal-recorder.d.ts +0 -61
  961. package/dist/journal/journal-recorder.js +0 -115
  962. package/dist/journal/retention.d.ts +0 -20
  963. package/dist/journal/retention.js +0 -49
  964. package/dist/journal/session-end.d.ts +0 -32
  965. package/dist/journal/session-end.js +0 -51
  966. package/dist/journal/session-journal.d.ts +0 -24
  967. package/dist/journal/session-journal.js +0 -167
  968. package/dist/journal/workspace-gitignore.d.ts +0 -10
  969. package/dist/journal/workspace-gitignore.js +0 -59
  970. package/dist/license/license-env.d.ts +0 -29
  971. package/dist/license/license-env.js +0 -148
  972. package/dist/license/license.d.ts +0 -169
  973. package/dist/license/license.js +0 -289
  974. package/dist/mcp/mcp-is-error.d.ts +0 -13
  975. package/dist/mcp/mcp-is-error.js +0 -18
  976. package/dist/mcp/mcp-outage.d.ts +0 -32
  977. package/dist/mcp/mcp-outage.js +0 -55
  978. package/dist/mcp/mcp-post-transport.js +0 -109
  979. package/dist/mcp/mcp-proxy.d.ts +0 -110
  980. package/dist/mcp/mcp-proxy.js +0 -872
  981. package/dist/mcp/mcp.d.ts +0 -80
  982. package/dist/mcp/mcp.js +0 -536
  983. package/dist/mcp/proxy-daemon-probe.d.ts +0 -9
  984. package/dist/mcp/proxy-daemon-probe.js +0 -54
  985. package/dist/mcp/proxy-handshake.js +0 -192
  986. package/dist/mcp/proxy-lifecycle.d.ts +0 -92
  987. package/dist/mcp/proxy-lifecycle.js +0 -100
  988. package/dist/mcp/proxy-log.d.ts +0 -63
  989. package/dist/mcp/proxy-log.js +0 -132
  990. package/dist/mcp/server-instructions.d.ts +0 -18
  991. package/dist/mcp/server-instructions.js +0 -98
  992. package/dist/mcp/tool-catalog-cache.d.ts +0 -45
  993. package/dist/mcp/tool-catalog-cache.js +0 -77
  994. package/dist/memory/memory-tools.d.ts +0 -2
  995. package/dist/memory/memory-tools.js +0 -82
  996. package/dist/memory/project-memory.d.ts +0 -33
  997. package/dist/oracles/propose-consequences.d.ts +0 -22
  998. package/dist/oracles/propose-consequences.js +0 -106
  999. package/dist/pool/browser-pool.d.ts +0 -282
  1000. package/dist/pool/browser-pool.js +0 -560
  1001. package/dist/pool/lease-reaper.js +0 -40
  1002. package/dist/pool/playwright-launcher.js +0 -150
  1003. package/dist/pool/storage-seed.d.ts +0 -23
  1004. package/dist/project/artifact-root.d.ts +0 -84
  1005. package/dist/project/artifact-root.js +0 -112
  1006. package/dist/project/fs-port.d.ts +0 -47
  1007. package/dist/project/fs-port.js +0 -54
  1008. package/dist/project/learned-routes.d.ts +0 -24
  1009. package/dist/project/learned-routes.js +0 -63
  1010. package/dist/project/memory-fs.d.ts +0 -10
  1011. package/dist/project/project-store.d.ts +0 -54
  1012. package/dist/project/project-store.js +0 -201
  1013. package/dist/project/project-tools.d.ts +0 -2
  1014. package/dist/project/project-tools.js +0 -155
  1015. package/dist/project/reticle-dir.d.ts +0 -102
  1016. package/dist/project/reticle-dir.js +0 -188
  1017. package/dist/project/session-root.d.ts +0 -23
  1018. package/dist/project/session-root.js +0 -38
  1019. package/dist/runs/build-verification-run.d.ts +0 -29
  1020. package/dist/runs/build-verification-run.js +0 -70
  1021. package/dist/runs/context-tools.d.ts +0 -2
  1022. package/dist/runs/context-tools.js +0 -89
  1023. package/dist/runs/render-report.js +0 -69
  1024. package/dist/runs/replay-mapping.js +0 -34
  1025. package/dist/runs/reticle-runner.d.ts +0 -60
  1026. package/dist/runs/reticle-runner.js +0 -95
  1027. package/dist/runs/run-store.d.ts +0 -54
  1028. package/dist/runs/run-store.js +0 -147
  1029. package/dist/runs/run-tools.d.ts +0 -9
  1030. package/dist/runs/run-tools.js +0 -82
  1031. package/dist/runs/runner-port.d.ts +0 -13
  1032. package/dist/runs/runner-port.js +0 -22
  1033. package/dist/runs/verification-sync.d.ts +0 -12
  1034. package/dist/runs/verification-sync.js +0 -87
  1035. package/dist/session/command-timeout.d.ts +0 -46
  1036. package/dist/session/command-timeout.js +0 -42
  1037. package/dist/session/connection-memory.d.ts +0 -59
  1038. package/dist/session/connection-memory.js +0 -108
  1039. package/dist/session/dev-server-probe.js +0 -147
  1040. package/dist/session/live-control-tools.d.ts +0 -15
  1041. package/dist/session/live-control-tools.js +0 -242
  1042. package/dist/session/no-session-diagnosis.d.ts +0 -176
  1043. package/dist/session/no-session-diagnosis.js +0 -477
  1044. package/dist/session/no-session-next-action.d.ts +0 -72
  1045. package/dist/session/no-session-next-action.js +0 -174
  1046. package/dist/session/no-session-watch.js +0 -335
  1047. package/dist/session/observed-state.d.ts +0 -60
  1048. package/dist/session/observed-state.js +0 -121
  1049. package/dist/session/output-budget.d.ts +0 -49
  1050. package/dist/session/output-budget.js +0 -67
  1051. package/dist/session/session-health.d.ts +0 -138
  1052. package/dist/session/session-health.js +0 -154
  1053. package/dist/session/session-manager.d.ts +0 -76
  1054. package/dist/session/session-manager.js +0 -464
  1055. package/dist/session/session-reaper.d.ts +0 -36
  1056. package/dist/session/session-reaper.js +0 -93
  1057. package/dist/session/session-recommendation.js +0 -29
  1058. package/dist/session/session-replaced.d.ts +0 -24
  1059. package/dist/session/session-replaced.js +0 -29
  1060. package/dist/session/session-tools.d.ts +0 -8
  1061. package/dist/session/session-tools.js +0 -42
  1062. package/dist/session/session.d.ts +0 -280
  1063. package/dist/session/session.js +0 -891
  1064. package/dist/session/stall-clock.js +0 -48
  1065. package/dist/setup/agent-configs.d.ts +0 -97
  1066. package/dist/setup/agent-configs.js +0 -333
  1067. package/dist/setup/agent-writer.d.ts +0 -52
  1068. package/dist/setup/agent-writer.js +0 -115
  1069. package/dist/setup/auto-approve.js +0 -153
  1070. package/dist/setup/bridge-port.d.ts +0 -15
  1071. package/dist/setup/bridge-port.js +0 -24
  1072. package/dist/setup/confirm.js +0 -205
  1073. package/dist/setup/dev-server-wait.d.ts +0 -68
  1074. package/dist/setup/dev-server-wait.js +0 -67
  1075. package/dist/setup/drive-agent.d.ts +0 -70
  1076. package/dist/setup/drive-agent.js +0 -171
  1077. package/dist/setup/drive-plan.d.ts +0 -69
  1078. package/dist/setup/drive-plan.js +0 -130
  1079. package/dist/setup/ensure-daemon.js +0 -58
  1080. package/dist/setup/init-host.js +0 -26
  1081. package/dist/setup/init-runtime.d.ts +0 -41
  1082. package/dist/setup/init-runtime.js +0 -167
  1083. package/dist/setup/node-effects.d.ts +0 -63
  1084. package/dist/setup/node-effects.js +0 -225
  1085. package/dist/setup/page-probe.d.ts +0 -44
  1086. package/dist/setup/page-probe.js +0 -49
  1087. package/dist/setup/remaining-steps.js +0 -31
  1088. package/dist/setup/run-setup.d.ts +0 -103
  1089. package/dist/setup/run-setup.js +0 -294
  1090. package/dist/setup/setup-command.d.ts +0 -46
  1091. package/dist/setup/setup-command.js +0 -207
  1092. package/dist/setup/setup-options.d.ts +0 -76
  1093. package/dist/setup/setup-options.js +0 -68
  1094. package/dist/tools/act-capsule.d.ts +0 -33
  1095. package/dist/tools/act-capsule.js +0 -53
  1096. package/dist/tools/act-danger.js +0 -69
  1097. package/dist/tools/act-helpers.d.ts +0 -17
  1098. package/dist/tools/act-helpers.js +0 -40
  1099. package/dist/tools/act-observation.d.ts +0 -42
  1100. package/dist/tools/act-observation.js +0 -36
  1101. package/dist/tools/act-preflight.d.ts +0 -20
  1102. package/dist/tools/act-preflight.js +0 -103
  1103. package/dist/tools/act-sequence-tool.js +0 -135
  1104. package/dist/tools/act-target.d.ts +0 -18
  1105. package/dist/tools/act-target.js +0 -56
  1106. package/dist/tools/act-tools.d.ts +0 -20
  1107. package/dist/tools/act-tools.js +0 -763
  1108. package/dist/tools/assert-grade.d.ts +0 -42
  1109. package/dist/tools/assert-grade.js +0 -108
  1110. package/dist/tools/assert-source.d.ts +0 -52
  1111. package/dist/tools/assert-source.js +0 -74
  1112. package/dist/tools/assert-verdict.d.ts +0 -48
  1113. package/dist/tools/assert-verdict.js +0 -197
  1114. package/dist/tools/browser-tools.d.ts +0 -2
  1115. package/dist/tools/browser-tools.js +0 -115
  1116. package/dist/tools/contract-tools.d.ts +0 -2
  1117. package/dist/tools/contract-tools.js +0 -98
  1118. package/dist/tools/coverage-tools.d.ts +0 -18
  1119. package/dist/tools/coverage-tools.js +0 -175
  1120. package/dist/tools/dynamic-tools.d.ts +0 -7
  1121. package/dist/tools/dynamic-tools.js +0 -257
  1122. package/dist/tools/error-recovery.d.ts +0 -110
  1123. package/dist/tools/error-recovery.js +0 -499
  1124. package/dist/tools/feedback-invite.d.ts +0 -48
  1125. package/dist/tools/feedback-invite.js +0 -71
  1126. package/dist/tools/feedback-tools.d.ts +0 -35
  1127. package/dist/tools/feedback-tools.js +0 -228
  1128. package/dist/tools/invoke-tool.d.ts +0 -10
  1129. package/dist/tools/invoke-tool.js +0 -569
  1130. package/dist/tools/lease-hint.d.ts +0 -49
  1131. package/dist/tools/lease-hint.js +0 -124
  1132. package/dist/tools/lease-tools.d.ts +0 -143
  1133. package/dist/tools/lease-tools.js +0 -688
  1134. package/dist/tools/lineage-tools.d.ts +0 -14
  1135. package/dist/tools/lineage-tools.js +0 -64
  1136. package/dist/tools/merge-tools.d.ts +0 -51
  1137. package/dist/tools/merge-tools.js +0 -69
  1138. package/dist/tools/merged-name-redirect.d.ts +0 -26
  1139. package/dist/tools/merged-name-redirect.js +0 -77
  1140. package/dist/tools/navigate-arrival.d.ts +0 -68
  1141. package/dist/tools/numeric-bounds.d.ts +0 -89
  1142. package/dist/tools/numeric-bounds.js +0 -125
  1143. package/dist/tools/observe-tools.js +0 -578
  1144. package/dist/tools/read-tools.js +0 -569
  1145. package/dist/tools/real-input-attempt.d.ts +0 -68
  1146. package/dist/tools/real-input-attempt.js +0 -360
  1147. package/dist/tools/reconcile-tools.js +0 -126
  1148. package/dist/tools/resolve-target.js +0 -116
  1149. package/dist/tools/snapshot-delta.d.ts +0 -92
  1150. package/dist/tools/snapshot-delta.js +0 -356
  1151. package/dist/tools/tool-kit.d.ts +0 -221
  1152. package/dist/tools/tool-kit.js +0 -114
  1153. package/dist/tools/tool-names.d.ts +0 -112
  1154. package/dist/tools/tool-names.js +0 -112
  1155. package/dist/tools/tool-surface.d.ts +0 -222
  1156. package/dist/tools/tool-surface.js +0 -439
  1157. package/dist/tools/tools-helpers.d.ts +0 -42
  1158. package/dist/tools/tools-helpers.js +0 -87
  1159. package/dist/tools/tools.d.ts +0 -20
  1160. package/dist/tools/tools.js +0 -739
  1161. package/dist/tools/unadvertised-help.js +0 -42
  1162. package/dist/tools/verify-next-baton.js +0 -52
  1163. package/dist/update/nudge-credit.js +0 -53
  1164. package/dist/update/reticle-deps.d.ts +0 -9
  1165. package/dist/update/reticle-deps.js +0 -27
  1166. package/dist/update/sdk-sync.d.ts +0 -20
  1167. package/dist/update/sdk-sync.js +0 -22
  1168. package/dist/update/update-checker.js +0 -122
  1169. package/dist/update/update-nudge.d.ts +0 -92
  1170. package/dist/update/update-nudge.js +0 -214
  1171. package/dist/update/updater.d.ts +0 -54
  1172. package/dist/update/updater.js +0 -190
  1173. package/dist/version/peer-announce.js +0 -32
  1174. package/dist/version/sdk-fix.js +0 -127
  1175. package/dist/version/server-version.js +0 -13
  1176. package/dist/version/version-nudge.js +0 -61
  1177. package/dist/version/version-skew.d.ts +0 -93
  1178. package/dist/version/version-skew.js +0 -147
  1179. package/dist/visual/visual-store.d.ts +0 -22
  1180. package/dist/visual/visual-store.js +0 -66
  1181. package/dist/visual/visual-tools.d.ts +0 -26
  1182. package/dist/visual/visual-tools.js +0 -328
  1183. package/docs/docs.json +0 -369
  1184. package/docs/fixtures.md +0 -51
  1185. package/docs/gate-plan.md +0 -104
  1186. package/docs/gates.md +0 -131
  1187. package/docs/style.css +0 -14
  1188. package/docs/telemetry-contract.md +0 -390
  1189. package/docs/telemetry-events.mdx +0 -442
  1190. package/docs/tools-act-and-wait.mdx +0 -173
  1191. package/docs/tools-act-sequence.mdx +0 -153
  1192. package/docs/tools-act.mdx +0 -95
  1193. package/docs/tools-assert.mdx +0 -129
  1194. package/docs/tools-console.mdx +0 -63
  1195. package/docs/tools-inspect.mdx +0 -88
  1196. package/docs/tools-navigate.mdx +0 -107
  1197. package/docs/tools-network.mdx +0 -119
  1198. package/docs/tools-observe.mdx +0 -145
  1199. package/docs/tools-overview.mdx +0 -160
  1200. package/docs/tools-query.mdx +0 -126
  1201. package/docs/tools-sessions.mdx +0 -94
  1202. package/docs/tools-snapshot.mdx +0 -129
  1203. package/docs/tools-state.mdx +0 -104
  1204. package/docs/tools-wait-for.mdx +0 -85
  1205. /package/dist/{cli → command/cli/answers}/gate-exit.d.ts +0 -0
  1206. /package/dist/{cli → command/cli/answers}/gate-exit.js +0 -0
  1207. /package/dist/{cli → command/cli/answers}/gate-hook-message.d.ts +0 -0
  1208. /package/dist/{cli → command/cli/answers}/gate-hook-message.js +0 -0
  1209. /package/dist/{cli → command/cli/answers}/open-note.d.ts +0 -0
  1210. /package/dist/{cli → command/cli/answers}/open-note.js +0 -0
  1211. /package/dist/{cli → command/cli/auth}/cloud-keystore.d.ts +0 -0
  1212. /package/dist/{cli → command/cli/auth}/cloud-session.d.ts +0 -0
  1213. /package/dist/{cli → command/cli/auth}/cloud-session.js +0 -0
  1214. /package/dist/{cli → command/cli}/cli-doctor.d.ts +0 -0
  1215. /package/dist/{cli → command/cli}/cli-parse-feedback.d.ts +0 -0
  1216. /package/dist/{cli → command/cli}/cli-parse-feedback.js +0 -0
  1217. /package/dist/{cli → command/cli}/cli-update-commands.d.ts +0 -0
  1218. /package/dist/{cli → command/cli}/cloud-cli.d.ts +0 -0
  1219. /package/dist/{cli → command/cli}/cloud-login.d.ts +0 -0
  1220. /package/dist/{cli → command/cli}/daemon-start-options.js +0 -0
  1221. /package/dist/{cli → command/cli/doctor/browser}/chromium-hint.d.ts +0 -0
  1222. /package/dist/{cli → command/cli/doctor/browser}/chromium-hint.js +0 -0
  1223. /package/dist/{cli → command/cli/doctor}/doctor-daemon-line.d.ts +0 -0
  1224. /package/dist/{cli → command/cli/doctor}/doctor-project-line.d.ts +0 -0
  1225. /package/dist/{cli → command/cli/doctor}/doctor-project-line.js +0 -0
  1226. /package/dist/{cli → command/cli/doctor}/doctor-sessions-line.d.ts +0 -0
  1227. /package/dist/{cli → command/cli/drive}/drive-command.d.ts +0 -0
  1228. /package/dist/{cli → command/cli}/mcp-command.d.ts +0 -0
  1229. /package/dist/{cli → command/cli/ports}/port-holder.d.ts +0 -0
  1230. /package/dist/{cli → command/cli/ports}/sibling-ports.d.ts +0 -0
  1231. /package/dist/{cli → command/cli/ports}/sibling-ports.js +0 -0
  1232. /package/dist/{cli → command/cli}/project-name.d.ts +0 -0
  1233. /package/dist/{cli → command/cli}/project-name.js +0 -0
  1234. /package/dist/{daemon → command/daemon/binding}/free-port.d.ts +0 -0
  1235. /package/dist/{daemon → command/daemon/binding}/free-port.js +0 -0
  1236. /package/dist/{daemon → command/daemon/binding}/loopback-alias.d.ts +0 -0
  1237. /package/dist/{daemon → command/daemon/binding}/loopback-alias.js +0 -0
  1238. /package/dist/{daemon → command/daemon/binding}/port-presence.d.ts +0 -0
  1239. /package/dist/{daemon → command/daemon/binding}/port-presence.js +0 -0
  1240. /package/dist/{daemon → command/daemon}/dev-servers.d.ts +0 -0
  1241. /package/dist/{daemon → command/daemon}/dev-servers.js +0 -0
  1242. /package/dist/{daemon → command/daemon/lifetime}/startup-failure.d.ts +0 -0
  1243. /package/dist/{daemon → command/daemon/lifetime}/startup-failure.js +0 -0
  1244. /package/dist/{daemon → command/daemon/lifetime}/unclean-predecessor.d.ts +0 -0
  1245. /package/dist/{daemon → command/daemon/lifetime}/unclean-predecessor.js +0 -0
  1246. /package/dist/{daemon → command/daemon}/state-dir.d.ts +0 -0
  1247. /package/dist/{setup → command/setup}/agent-io.d.ts +0 -0
  1248. /package/dist/{setup → command/setup}/agent-io.js +0 -0
  1249. /package/dist/{setup → command/setup}/approval-migration.d.ts +0 -0
  1250. /package/dist/{setup → command/setup}/approval-migration.js +0 -0
  1251. /package/dist/{setup → command/setup}/auto-approve.d.ts +0 -0
  1252. /package/dist/{setup → command/setup/bringup}/ensure-daemon.d.ts +0 -0
  1253. /package/dist/{setup → command/setup/bringup}/relaunch.d.ts +0 -0
  1254. /package/dist/{setup → command/setup/bringup}/relaunch.js +0 -0
  1255. /package/dist/{setup → command/setup}/desktop-shape.d.ts +0 -0
  1256. /package/dist/{setup → command/setup}/desktop-shape.js +0 -0
  1257. /package/dist/{setup → command/setup/init}/init-host.d.ts +0 -0
  1258. /package/dist/{setup → command/setup}/license-key.d.ts +0 -0
  1259. /package/dist/{setup → command/setup}/license-key.js +0 -0
  1260. /package/dist/{setup → command/setup/probe}/existing-app.d.ts +0 -0
  1261. /package/dist/{setup → command/setup/probe}/existing-app.js +0 -0
  1262. /package/dist/{setup → command/setup/probe}/loopback-probe-urls.d.ts +0 -0
  1263. /package/dist/{setup → command/setup/probe}/loopback-probe-urls.js +0 -0
  1264. /package/dist/{setup → command/setup}/remaining-steps.d.ts +0 -0
  1265. /package/dist/{setup → command/setup}/session-pick.d.ts +0 -0
  1266. /package/dist/{setup → command/setup}/session-pick.js +0 -0
  1267. /package/dist/{setup → command/setup/terminal}/confirm.d.ts +0 -0
  1268. /package/dist/{setup → command/setup/terminal}/interrupt.d.ts +0 -0
  1269. /package/dist/{setup → command/setup/terminal}/interrupt.js +0 -0
  1270. /package/dist/{setup → command/setup/terminal}/listeners.d.ts +0 -0
  1271. /package/dist/{setup → command/setup/terminal}/listeners.js +0 -0
  1272. /package/dist/{setup → command/setup/terminal}/transcripts.d.ts +0 -0
  1273. /package/dist/{setup → command/setup/terminal}/transcripts.js +0 -0
  1274. /package/dist/{setup → command/setup/terminal}/wait-progress.d.ts +0 -0
  1275. /package/dist/{setup → command/setup/terminal}/wait-progress.js +0 -0
  1276. /package/dist/{update → command/update}/nudge-credit.d.ts +0 -0
  1277. /package/dist/{update → command/update}/update-checker.d.ts +0 -0
  1278. /package/dist/{version → command/version/identity}/server-version.d.ts +0 -0
  1279. /package/dist/{version → command/version}/peer-announce.d.ts +0 -0
  1280. /package/dist/{version → command/version}/sdk-fix.d.ts +0 -0
  1281. /package/dist/{version → command/version}/version-nudge.d.ts +0 -0
  1282. /package/dist/{crawl → features/crawl}/crawl-empty.d.ts +0 -0
  1283. /package/dist/{crawl → features/crawl}/crawl-empty.js +0 -0
  1284. /package/dist/{ee → features/ee}/audit-log.d.ts +0 -0
  1285. /package/dist/{visual → features/visual}/capture-cleanup.d.ts +0 -0
  1286. /package/dist/{visual → features/visual}/capture-cleanup.js +0 -0
  1287. /package/dist/{visual → features/visual}/visual-diff.d.ts +0 -0
  1288. /package/dist/{visual → features/visual}/visual-diff.js +0 -0
  1289. /package/dist/{capsule → judgement/capsule}/divergence.js +0 -0
  1290. /package/dist/{capsule → judgement/capsule}/minimize.d.ts +0 -0
  1291. /package/dist/{capsule → judgement/capsule}/minimize.js +0 -0
  1292. /package/dist/{domain → judgement/domain}/domain-model.d.ts +0 -0
  1293. /package/dist/{domain → judgement/domain}/flow-risk.d.ts +0 -0
  1294. /package/dist/{hunt → judgement/hunt}/hunt-report.d.ts +0 -0
  1295. /package/dist/{hunt → judgement/hunt}/hunt-report.js +0 -0
  1296. /package/dist/{oracles → judgement/oracles}/flow-instrument-gaps.d.ts +0 -0
  1297. /package/dist/{oracles → judgement/oracles}/flow-instrument-gaps.js +0 -0
  1298. /package/dist/{oracles → judgement/oracles}/self-instrument.d.ts +0 -0
  1299. /package/dist/{oracles → judgement/oracles}/self-instrument.js +0 -0
  1300. /package/dist/{flows → judgement/outcome}/assertion-integrity.d.ts +0 -0
  1301. /package/dist/{flows → judgement/outcome}/assertion-integrity.js +0 -0
  1302. /package/dist/{flows → judgement/outcome}/attributed-failure.d.ts +0 -0
  1303. /package/dist/{flows → judgement/outcome}/attributed-failure.js +0 -0
  1304. /package/dist/{flows → judgement/outcome}/role-drift-reason.d.ts +0 -0
  1305. /package/dist/{flows → judgement/outcome}/role-drift-reason.js +0 -0
  1306. /package/dist/{flows → judgement/outcome}/verify-change-verdict.d.ts +0 -0
  1307. /package/dist/{flows → judgement/outcome}/verify-change-verdict.js +0 -0
  1308. /package/dist/{phenomena → judgement/phenomena}/phenomena.d.ts +0 -0
  1309. /package/dist/{phenomena → judgement/phenomena}/phenomena.js +0 -0
  1310. /package/dist/{runs → judgement/runs/artifact}/profile-redact.d.ts +0 -0
  1311. /package/dist/{runs → judgement/runs/artifact}/profile-redact.js +0 -0
  1312. /package/dist/{runs → judgement/runs/artifact}/render-report.d.ts +0 -0
  1313. /package/dist/{runs → judgement/runs/artifact}/replay-mapping.d.ts +0 -0
  1314. /package/dist/{runs → judgement/runs/artifact}/run-context.d.ts +0 -0
  1315. /package/dist/{runs → judgement/runs/artifact}/run-context.js +0 -0
  1316. /package/dist/{runs → judgement/runs/artifact}/run-diff.d.ts +0 -0
  1317. /package/dist/{runs → judgement/runs/artifact}/run-diff.js +0 -0
  1318. /package/dist/{runs → judgement/runs}/repair-prompt.d.ts +0 -0
  1319. /package/dist/{runs → judgement/runs}/repair-prompt.js +0 -0
  1320. /package/dist/{runs → judgement/runs}/risk-classify.d.ts +0 -0
  1321. /package/dist/{runs → judgement/runs}/risk-classify.js +0 -0
  1322. /package/dist/{runs → judgement/runs}/verify-http.d.ts +0 -0
  1323. /package/dist/{runs → judgement/runs}/verify-http.js +0 -0
  1324. /package/dist/{runs → judgement/runs}/verify-server.d.ts +0 -0
  1325. /package/dist/{runs → judgement/runs}/verify-server.js +0 -0
  1326. /package/dist/{flows → language/flows/annotate-notes}/annotate-target.d.ts +0 -0
  1327. /package/dist/{flows → language/flows/annotate-notes}/annotate-target.js +0 -0
  1328. /package/dist/{flows → language/flows/annotate-notes}/annotate.d.ts +0 -0
  1329. /package/dist/{flows → language/flows/annotate-notes}/annotate.js +0 -0
  1330. /package/dist/{flows → language/flows}/buddy-status.d.ts +0 -0
  1331. /package/dist/{flows → language/flows}/buddy-status.js +0 -0
  1332. /package/dist/{flows → language/flows/change}/gate.d.ts +0 -0
  1333. /package/dist/{flows → language/flows/change}/git-changed.d.ts +0 -0
  1334. /package/dist/{flows → language/flows/change}/git-changed.js +0 -0
  1335. /package/dist/{flows → language/flows/change}/watch-batcher.d.ts +0 -0
  1336. /package/dist/{flows → language/flows/change}/watch-batcher.js +0 -0
  1337. /package/dist/{flows → language/flows}/empty-flow.d.ts +0 -0
  1338. /package/dist/{flows → language/flows}/flow-memory-consult.d.ts +0 -0
  1339. /package/dist/{flows → language/flows}/flow-memory-consult.js +0 -0
  1340. /package/dist/{flows → language/flows}/flow-report.d.ts +0 -0
  1341. /package/dist/{flows → language/flows}/flow-report.js +0 -0
  1342. /package/dist/{flows → language/flows}/flow-scope.d.ts +0 -0
  1343. /package/dist/{flows → language/flows}/flow-scope.js +0 -0
  1344. /package/dist/{flows → language/flows}/flow-store-for-session.js +0 -0
  1345. /package/dist/{flows → language/flows}/heal.d.ts +0 -0
  1346. /package/dist/{flows → language/flows/recording}/flake.js +0 -0
  1347. /package/dist/{flows → language/flows/recording}/recording-backtrack.d.ts +0 -0
  1348. /package/dist/{flows → language/flows/recording}/replay-halt.d.ts +0 -0
  1349. /package/dist/{flows → language/flows/recording}/replay-halt.js +0 -0
  1350. /package/dist/{flows → language/flows}/role-anchor-nearest.d.ts +0 -0
  1351. /package/dist/{flows → language/flows/stores}/annotation-store.d.ts +0 -0
  1352. /package/dist/{flows → language/flows/stores}/annotation-store.js +0 -0
  1353. /package/dist/{flows → language/flows/suite}/coverage.d.ts +0 -0
  1354. /package/dist/{flows → language/flows/suite}/coverage.js +0 -0
  1355. /package/dist/{flows → language/flows/suite}/parallel-suite.d.ts +0 -0
  1356. /package/dist/{flows → language/flows/suite}/parallel-suite.js +0 -0
  1357. /package/dist/{platform.d.ts → machine/platform.d.ts} +0 -0
  1358. /package/dist/{platform.js → machine/platform.js} +0 -0
  1359. /package/dist/{temp-dir.d.ts → machine/temp-dir.d.ts} +0 -0
  1360. /package/dist/{temp-dir.js → machine/temp-dir.js} +0 -0
  1361. /package/dist/{cloud → memory/cloud}/sync-disk.d.ts +0 -0
  1362. /package/dist/{cloud → memory/cloud}/sync-hash.d.ts +0 -0
  1363. /package/dist/{cloud → memory/cloud}/sync-hash.js +0 -0
  1364. /package/dist/{journal → memory/journal}/deviation-report.d.ts +0 -0
  1365. /package/dist/{journal → memory/journal}/deviation-report.js +0 -0
  1366. /package/dist/{journal → memory/journal}/deviation-service.d.ts +0 -0
  1367. /package/dist/{journal → memory/journal}/deviation-service.js +0 -0
  1368. /package/dist/{journal → memory/journal}/envelope.js +0 -0
  1369. /package/dist/{journal → memory/journal}/rollups.d.ts +0 -0
  1370. /package/dist/{journal → memory/journal}/rollups.js +0 -0
  1371. /package/dist/{project → memory/project}/baselines.d.ts +0 -0
  1372. /package/dist/{project → memory/project}/baselines.js +0 -0
  1373. /package/dist/{project → memory/project}/file-lock.d.ts +0 -0
  1374. /package/dist/{project → memory/project}/file-lock.js +0 -0
  1375. /package/dist/{project → memory/project}/memory-fs.js +0 -0
  1376. /package/dist/{session → memory/recall}/looks-like-dev-server.d.ts +0 -0
  1377. /package/dist/{session → memory/recall}/looks-like-dev-server.js +0 -0
  1378. /package/dist/memory/{project-memory.js → recall/project-memory.js} +0 -0
  1379. /package/dist/{session → memory/recall}/registered-projects.d.ts +0 -0
  1380. /package/dist/{session → memory/recall}/registered-projects.js +0 -0
  1381. /package/dist/{bridge → portal/bridge}/pairing-token.d.ts +0 -0
  1382. /package/dist/{bridge → portal/bridge}/pairing-token.js +0 -0
  1383. /package/dist/{bridge → portal/bridge}/protocol-skew.d.ts +0 -0
  1384. /package/dist/{bridge → portal/bridge}/protocol-skew.js +0 -0
  1385. /package/dist/{bridge → portal/bridge}/token-auth.d.ts +0 -0
  1386. /package/dist/{bridge → portal/bridge}/token-auth.js +0 -0
  1387. /package/dist/{input → portal/input}/driven-redaction.d.ts +0 -0
  1388. /package/dist/{input → portal/input}/driven-redaction.js +0 -0
  1389. /package/dist/{input → portal/input}/network-mock.d.ts +0 -0
  1390. /package/dist/{input → portal/input}/scroll-find.d.ts +0 -0
  1391. /package/dist/{pool → portal/pool}/lease-reaper.d.ts +0 -0
  1392. /package/dist/{pool → portal/pool}/playwright-launcher.d.ts +0 -0
  1393. /package/dist/{pool → portal/pool}/storage-seed.js +0 -0
  1394. /package/dist/{session → portal/session}/control-envelope.d.ts +0 -0
  1395. /package/dist/{session → portal/session}/control-envelope.js +0 -0
  1396. /package/dist/{session → portal/session/dev-server}/dev-command.d.ts +0 -0
  1397. /package/dist/{session → portal/session/dev-server}/dev-command.js +0 -0
  1398. /package/dist/{session → portal/session/dev-server}/dev-server-probe.d.ts +0 -0
  1399. /package/dist/{session → portal/session/facts}/ref-provenance.d.ts +0 -0
  1400. /package/dist/{session → portal/session/facts}/ref-provenance.js +0 -0
  1401. /package/dist/{session → portal/session}/fake-session.d.ts +0 -0
  1402. /package/dist/{session → portal/session}/fake-session.js +0 -0
  1403. /package/dist/{session → portal/session/human}/live-control.d.ts +0 -0
  1404. /package/dist/{session → portal/session/human}/live-control.js +0 -0
  1405. /package/dist/{session → portal/session/human}/presenter-args.d.ts +0 -0
  1406. /package/dist/{session → portal/session/human}/presenter-args.js +0 -0
  1407. /package/dist/{session → portal/session/human}/review-store.d.ts +0 -0
  1408. /package/dist/{session → portal/session/human}/review-store.js +0 -0
  1409. /package/dist/{session → portal/session}/last-act.d.ts +0 -0
  1410. /package/dist/{session → portal/session}/last-act.js +0 -0
  1411. /package/dist/{session → portal/session}/lease-visibility.d.ts +0 -0
  1412. /package/dist/{session → portal/session}/lease-visibility.js +0 -0
  1413. /package/dist/{session → portal/session}/no-session-watch.d.ts +0 -0
  1414. /package/dist/{session → portal/session/page-commands}/pending-commands.d.ts +0 -0
  1415. /package/dist/{session → portal/session/page-commands}/pending-commands.js +0 -0
  1416. /package/dist/{session → portal/session/presence}/attachment-history.d.ts +0 -0
  1417. /package/dist/{session → portal/session/presence}/attachment-history.js +0 -0
  1418. /package/dist/{session → portal/session/presence}/lease-availability.d.ts +0 -0
  1419. /package/dist/{session → portal/session/presence}/lease-availability.js +0 -0
  1420. /package/dist/{session → portal/session/presence}/session-lease.d.ts +0 -0
  1421. /package/dist/{session → portal/session/presence}/session-lease.js +0 -0
  1422. /package/dist/{session → portal/session/presence}/session-mirror.d.ts +0 -0
  1423. /package/dist/{session → portal/session/presence}/session-mirror.js +0 -0
  1424. /package/dist/{session → portal/session/presence}/session-recommendation.d.ts +0 -0
  1425. /package/dist/{session → portal/session}/session-info.d.ts +0 -0
  1426. /package/dist/{session → portal/session}/session-info.js +0 -0
  1427. /package/dist/{session → portal/session}/session-reconnect.d.ts +0 -0
  1428. /package/dist/{session → portal/session}/session-reconnect.js +0 -0
  1429. /package/dist/{session → portal/session}/session-successor.d.ts +0 -0
  1430. /package/dist/{session → portal/session}/session-successor.js +0 -0
  1431. /package/dist/{session → portal/session}/stall-clock.d.ts +0 -0
  1432. /package/dist/{session → portal/session}/state-select.d.ts +0 -0
  1433. /package/dist/{session → portal/session}/state-select.js +0 -0
  1434. /package/dist/{session → portal/session/timing}/resolve-within.d.ts +0 -0
  1435. /package/dist/{session → portal/session/timing}/resolve-within.js +0 -0
  1436. /package/dist/{session → portal/session/timing}/wall-clock.d.ts +0 -0
  1437. /package/dist/{session → portal/session/timing}/wall-clock.js +0 -0
  1438. /package/dist/{loopback-agent.d.ts → surface/loopback-agent.d.ts} +0 -0
  1439. /package/dist/{loopback-agent.js → surface/loopback-agent.js} +0 -0
  1440. /package/dist/{mcp → surface/mcp}/attach-memory.d.ts +0 -0
  1441. /package/dist/{mcp → surface/mcp}/attach-memory.js +0 -0
  1442. /package/dist/{mcp → surface/mcp/peer}/client-identity.d.ts +0 -0
  1443. /package/dist/{mcp → surface/mcp/peer}/client-identity.js +0 -0
  1444. /package/dist/{mcp → surface/mcp/proxy}/mcp-post-transport.d.ts +0 -0
  1445. /package/dist/{mcp → surface/mcp/proxy}/proxy-backoff.d.ts +0 -0
  1446. /package/dist/{mcp → surface/mcp/proxy}/proxy-backoff.js +0 -0
  1447. /package/dist/{mcp → surface/mcp/proxy}/proxy-handshake.d.ts +0 -0
  1448. /package/dist/{mcp → surface/mcp}/proxy-idle-exit.d.ts +0 -0
  1449. /package/dist/{mcp → surface/mcp}/proxy-idle-exit.js +0 -0
  1450. /package/dist/{mcp → surface/mcp}/shared-params.d.ts +0 -0
  1451. /package/dist/{mcp → surface/mcp}/shared-params.js +0 -0
  1452. /package/dist/{mcp → surface/mcp}/sse-frame-parser.d.ts +0 -0
  1453. /package/dist/{mcp → surface/mcp}/sse-frame-parser.js +0 -0
  1454. /package/dist/{tools → surface/tools/act}/act-danger.d.ts +0 -0
  1455. /package/dist/{tools → surface/tools/act}/act-sequence-retry.d.ts +0 -0
  1456. /package/dist/{tools → surface/tools/act}/act-sequence-retry.js +0 -0
  1457. /package/dist/{tools → surface/tools/act}/act-view.d.ts +0 -0
  1458. /package/dist/{tools → surface/tools/act}/act-view.js +0 -0
  1459. /package/dist/{tools → surface/tools/act/navigation}/navigate-arrival.js +0 -0
  1460. /package/dist/{tools → surface/tools/act/navigation}/navigate-result.d.ts +0 -0
  1461. /package/dist/{tools → surface/tools/act/navigation}/navigate-result.js +0 -0
  1462. /package/dist/{tools → surface/tools/act/navigation}/reload-result.d.ts +0 -0
  1463. /package/dist/{tools → surface/tools/act/navigation}/reload-result.js +0 -0
  1464. /package/dist/{tools → surface/tools/act}/react-grace.d.ts +0 -0
  1465. /package/dist/{tools → surface/tools/act}/react-grace.js +0 -0
  1466. /package/dist/{tools → surface/tools/act}/resolve-target.d.ts +0 -0
  1467. /package/dist/{tools → surface/tools/act}/settle-in-flight.d.ts +0 -0
  1468. /package/dist/{tools → surface/tools/act}/settle-in-flight.js +0 -0
  1469. /package/dist/{tools → surface/tools}/act-sequence-tool.d.ts +0 -0
  1470. /package/dist/{tools → surface/tools/args}/alias-args.d.ts +0 -0
  1471. /package/dist/{tools → surface/tools/args}/alias-args.js +0 -0
  1472. /package/dist/{tools → surface/tools/gaps}/coverage-identity.d.ts +0 -0
  1473. /package/dist/{tools → surface/tools/gaps}/coverage-identity.js +0 -0
  1474. /package/dist/{tools → surface/tools/gaps}/observed-nothing.d.ts +0 -0
  1475. /package/dist/{tools → surface/tools/gaps}/observed-nothing.js +0 -0
  1476. /package/dist/{tools → surface/tools/gaps}/sdk-marker-probe.d.ts +0 -0
  1477. /package/dist/{tools → surface/tools/gaps}/sdk-marker-probe.js +0 -0
  1478. /package/dist/{tools → surface/tools}/observe-tools.d.ts +0 -0
  1479. /package/dist/{tools → surface/tools/read}/complete-snapshot.d.ts +0 -0
  1480. /package/dist/{tools → surface/tools/read}/complete-snapshot.js +0 -0
  1481. /package/dist/{tools → surface/tools/read}/query-paginate.d.ts +0 -0
  1482. /package/dist/{tools → surface/tools/read}/query-paginate.js +0 -0
  1483. /package/dist/{tools → surface/tools/read}/query-shape.d.ts +0 -0
  1484. /package/dist/{tools → surface/tools/read}/query-shape.js +0 -0
  1485. /package/dist/{tools → surface/tools}/read-tools.d.ts +0 -0
  1486. /package/dist/{tools → surface/tools}/reconcile-tools.d.ts +0 -0
  1487. /package/dist/{honesty → surface/tools}/tool-hit-rate.d.ts +0 -0
  1488. /package/dist/{tools → surface/tools}/tool-invoker.d.ts +0 -0
  1489. /package/dist/{tools → surface/tools}/tool-invoker.js +0 -0
  1490. /package/dist/{tools → surface/tools}/unadvertised-help.d.ts +0 -0
  1491. /package/dist/{tools → surface/tools}/verify-next-baton.d.ts +0 -0
  1492. /package/docs/{tools-session-and-feedback.mdx → tools/session-and-feedback.mdx} +0 -0
  1493. /package/docs/{tools-tools-and-run.mdx → tools/tools-and-run.mdx} +0 -0
@@ -0,0 +1,875 @@
1
+ import { asProjectId } from '@reticlehq/core';
2
+ import { refusedResult } from './page-commands/undeclared-command.js';
3
+ import { recordImpact } from '../../memory/impact/impact-recorder.js';
4
+ import { LastAct } from './last-act.js';
5
+ import { GapLedger } from '@reticlehq/engine/evidence/gap-ledger.js';
6
+ import { CaptureLedger } from '../../surface/tools/feature-capture.js';
7
+ import { commandTimeoutMessage } from './timing/command-timeout.js';
8
+ import { readHealthEvent, pendingNavigationMs } from './session-health.js';
9
+ import { MIRRORED_COMMANDS, mirroredNarration } from './presence/session-mirror.js';
10
+ /** The HUD does not need 200 frames to watch a counter climb; the last state always lands. */
11
+ const IMPACT_PUSH_DEBOUNCE_MS = 700;
12
+ import { PendingCommands, CommandTimeoutError } from './page-commands/pending-commands.js';
13
+ import { span } from '../../trace.js';
14
+ import { keepCallerContextInDaemon, noteToDaemonLog } from './daemon-answers.js';
15
+ import { isKnownRealm, EventType, HumanControlDataSchema, HumanControlKind, HumanMarkDataSchema, ReticleCommand, MessageKind, parseEventPayload, PresenterTone, SESSION_HEALTH, SESSION_LEASE, SESSION_LIFECYCLE, SessionState, } from '@reticlehq/core';
16
+ import { RingBuffer } from '@reticlehq/engine/window/ring-buffer.js';
17
+ import { readJournalWriteLoss, readQueryEvents, } from '../../memory/journal/journal-query.js';
18
+ import {} from '@reticlehq/engine/window/ambient.js';
19
+ import { ObservedState } from './facts/observed-state.js';
20
+ import { recordBrowserLatency, recordSdkFailure } from '../../telemetry/session-metrics.js';
21
+ import { LiveControl } from './human/live-control.js';
22
+ import { ReviewStore } from './human/review-store.js';
23
+ import { buildSessionRecommendation } from './presence/session-recommendation.js';
24
+ import { buildPresenterArgs } from './human/presenter-args.js';
25
+ import { buildSessionLease } from './presence/session-lease.js';
26
+ import { buildSessionInfo } from './session-info.js';
27
+ import { MAX_SUCCESSOR_HOPS, REBINDABLE_COMMANDS } from './rebind.js';
28
+ const DEFAULT_COMMAND_TIMEOUT_MS = 8000;
29
+ /** Prefix on correlated command ids (c1, c2, …) — distinguishes them from mark ids. */
30
+ const COMMAND_ID_PREFIX = 'c';
31
+ /** Prefix on minted action ids (a1, a2, …) — the journal's action identity, independent of commands. */
32
+ const ACTION_ID_PREFIX = 'a';
33
+ /**
34
+ * How many consecutive unanswered commands make a tab unresponsive. One is a page that was merely
35
+ * busy for its budget; two in a row with no reply between them is a wedge, and the cost of being
36
+ * wrong about that is one extra browser tab.
37
+ */
38
+ const UNRESPONSIVE_AFTER_TIMEOUTS = 2;
39
+ /** ws readyState for an OPEN socket — guard fire-and-forget pushes against a closing tab. */
40
+ const WS_OPEN = 1;
41
+ /**
42
+ * One connected browser tab. Owns its socket, a ring buffer of observations, and the
43
+ * in-flight command map. `clock` is injected so elapsed-time logic stays testable.
44
+ */
45
+ export class Session {
46
+ id;
47
+ /**
48
+ * Stable build-stamped project identity; undefined for SDKs old enough to omit it.
49
+ *
50
+ * MINTED HERE. This is one of the two places a projectId enters the daemon with its provenance
51
+ * intact: the field is `projectId` on a zod-parsed HELLO, so the page said what it is. Every
52
+ * downstream reader takes the brand from this property rather than re-blessing a string.
53
+ */
54
+ projectId;
55
+ /**
56
+ * The `.reticle` directory this session's evidence belongs in — impact counters AND capsules.
57
+ *
58
+ * Stamped once when the session is created, from the project it declared in HELLO, rather than
59
+ * resolved per call: the answer cannot change while the tab is connected, and resolving it once
60
+ * means every counter that fires for this session agrees about where it goes.
61
+ *
62
+ * Undefined when nothing could name a project — the caller then falls back to the daemon's own
63
+ * root, which is what every counter did unconditionally before this existed.
64
+ */
65
+ artifactRoot;
66
+ url;
67
+ title;
68
+ adapters;
69
+ hasCapabilities;
70
+ // What the page said about itself at HELLO. `HandshakeFacts` holds the reasoning, including
71
+ // the rule that `undefined` means "too old to say" and never "no".
72
+ versionSkew;
73
+ sdkVersion;
74
+ captureBodies;
75
+ channels;
76
+ commands;
77
+ sourceMapping;
78
+ redactKeys;
79
+ #socket;
80
+ #clock;
81
+ #startedAt;
82
+ #buffer = new RingBuffer();
83
+ #pending = new PendingCommands();
84
+ #listeners = new Set();
85
+ #disconnectListeners = new Set();
86
+ #actionSeq = 0;
87
+ /** Consecutive missed command budgets — free liveness evidence. Any reply resets it. */
88
+ #unansweredCommands = 0;
89
+ #lastSeenAt;
90
+ #hidden = false;
91
+ /** Which shell the page reported (PAGE_HEALTH). Undefined until the first report lands. */
92
+ #runtime;
93
+ #engine;
94
+ /** Which browser the page said it is (chrome/edge/arc/…). Undefined on an SDK too old to report one. */
95
+ #brand;
96
+ #focused = true;
97
+ /** Liveness: wall-clock of the last AGENT command (distinct from browser chatter / lastSeen). */
98
+ #lastAgentActivityAt;
99
+ /** Server-side mirror of the agent-tuned idle window, so the reaper honors reticle_session. */
100
+ #idleEndMs = SESSION_LIFECYCLE.IDLE_END_MS;
101
+ /** True when the reaper/disconnect ended this session — such an end is revivable; explicit ends are not. */
102
+ #autoEnded = false;
103
+ #live = new LiveControl();
104
+ /** Human review marks: mistakes the human pinned to elements, for the agent to drain and fix. */
105
+ #review = new ReviewStore();
106
+ /** Whether the session_lease has already been returned (fire-once per session). */
107
+ #firstCommandDone = false;
108
+ /** Durable causal-journal recorder; undefined when journaling is off (opt-out or not yet attached). */
109
+ #journal;
110
+ #activeActionId; // action window, held independently of the journal
111
+ /** Read side of the journal, for queries that must survive ring-buffer eviction. */
112
+ #journalReader;
113
+ /** What this session has learned by watching its own stream: ambient churn + blind-spot levels. */
114
+ #observed = new ObservedState();
115
+ /** Set when a required application precondition (e.g. seedStorage) was not established. */
116
+ #preconditionFailure;
117
+ /**
118
+ * Which document is on screen right now — the one the most recent stamped event was observed under.
119
+ * DERIVED, never announced: the SDK stamps it on events. An unstamped event never clears this.
120
+ */
121
+ #documentId;
122
+ /**
123
+ * The edit epoch of the most recent stamped event. DERIVED for the same reason `#documentId` is.
124
+ * A hot update advances it inside the same document. An unstamped event never clears it.
125
+ */
126
+ #editEpoch;
127
+ constructor(hello, socket, clock) {
128
+ this.id = hello.sessionId;
129
+ this.projectId = hello.projectId === undefined ? undefined : asProjectId(hello.projectId);
130
+ this.url = hello.url;
131
+ this.title = hello.title;
132
+ this.adapters = hello.adapters;
133
+ this.hasCapabilities = hello.hasCapabilities ?? false;
134
+ this.sourceMapping = hello.sourceMapping;
135
+ this.redactKeys = hello.redactKeys ?? [];
136
+ this.#socket = socket;
137
+ this.#clock = clock;
138
+ this.#startedAt = clock();
139
+ this.#lastSeenAt = clock();
140
+ this.#lastAgentActivityAt = clock();
141
+ }
142
+ /** Milliseconds since this session connected — the authoritative buffer clock. */
143
+ elapsed() {
144
+ return this.#clock() - this.#startedAt;
145
+ }
146
+ /** Mark that the SDK was just heard from. Called on every inbound message. */
147
+ touch() {
148
+ this.#lastSeenAt = this.#clock();
149
+ }
150
+ /** ms since the SDK last reported anything (distinct from elapsed-since-connect). */
151
+ lastSeenMs() {
152
+ return this.#clock() - this.#lastSeenAt;
153
+ }
154
+ /**
155
+ * Record the latest page visibility/focus state from a PAGE_HEALTH event.
156
+ *
157
+ * `runtime` is optional so an older SDK (which does not report it) still works — it simply loses
158
+ * the desktop-specific timeout diagnosis rather than breaking.
159
+ */
160
+ applyHealth(hidden, focused, runtime, engine, brand) {
161
+ this.#hidden = hidden;
162
+ this.#focused = focused;
163
+ // Asked of the table, not listed again here. A realm missing from a repeated list is not
164
+ // rejected loudly -- its name is dropped, and every later question about this session answers as
165
+ // though the page never said what it was.
166
+ if (isKnownRealm(runtime)) {
167
+ this.#runtime = runtime;
168
+ }
169
+ if (engine !== undefined)
170
+ this.#engine = engine;
171
+ if (brand !== undefined)
172
+ this.#brand = brand;
173
+ }
174
+ /** The shell (web/electron/tauri) and rendering engine the SDK reported. Undefined on an older SDK. */
175
+ get runtime() {
176
+ return this.#runtime;
177
+ }
178
+ get engine() {
179
+ return this.#engine;
180
+ }
181
+ /** The browser brand the SDK reported. Absent (never guessed) when the page did not say. */
182
+ get brand() {
183
+ return this.#brand;
184
+ }
185
+ /** Throttled if the tab is hidden OR we have not heard from it recently. */
186
+ throttled() {
187
+ return this.#hidden || this.lastSeenMs() > SESSION_HEALTH.STALE_THRESHOLD_MS;
188
+ }
189
+ /** The attachable health block — single source of truth for the tools. */
190
+ health() {
191
+ // From event t=0, not a cursor: a wedge that began before the current action is exactly the
192
+ // case a per-window reading cannot see, and is the one both reporters hit.
193
+ const stuck = pendingNavigationMs(this.eventsSince(0), this.elapsed());
194
+ const base = {
195
+ lastSeenMs: this.lastSeenMs(),
196
+ throttled: this.throttled(),
197
+ focused: this.#focused,
198
+ ...(stuck === undefined ? {} : { pendingNavigationMs: stuck }),
199
+ // Carried onto every act/assert result, not just reticle_sessions: skew drops actions
200
+ // SILENTLY, and the fields it contradicts are on the act verdict.
201
+ ...(this.versionSkew === undefined ? {} : { versionSkew: this.versionSkew }),
202
+ };
203
+ // attach the escape-hatch hint only when un-scriptable (keeps field absent otherwise).
204
+ const recommendation = buildSessionRecommendation({
205
+ hidden: this.#hidden,
206
+ throttled: base.throttled,
207
+ focused: base.focused,
208
+ // Without this the desktop branch is unreachable in production: every unit test would pass and
209
+ // every real Electron window would still be told to open a browser.
210
+ runtime: this.#runtime,
211
+ });
212
+ return recommendation === undefined ? base : { ...base, recommendation };
213
+ }
214
+ info() {
215
+ return buildSessionInfo({
216
+ id: this.id,
217
+ url: this.url,
218
+ projectId: this.projectId,
219
+ title: this.title,
220
+ adapters: this.adapters,
221
+ hasCapabilities: this.hasCapabilities,
222
+ runtime: this.#runtime,
223
+ versionSkew: this.versionSkew,
224
+ hidden: this.#hidden,
225
+ health: () => this.health(),
226
+ staleMs: () => this.staleMs(),
227
+ pendingMarkCount: () => this.#review.pendingCount(),
228
+ unresponsive: () => this.unresponsive(),
229
+ });
230
+ }
231
+ /**
232
+ * Attached but not answering. A tab can be `connected` with a fresh `lastSeenMs` and still answer
233
+ * nothing: `lastSeenMs` measures the events the SDK streams, not the commands it replies to. Reuse
234
+ * and auto-selection read that as health, so `reticle open` handed a wedged tab back forever and
235
+ * `reticle_session{action:"end"}` — a flag on the record, not on the page — could not help.
236
+ */
237
+ unresponsive() {
238
+ return this.#unansweredCommands >= UNRESPONSIVE_AFTER_TIMEOUTS;
239
+ }
240
+ /** Wall-clock age of the session in milliseconds. */
241
+ staleMs() {
242
+ return this.#clock() - this.#startedAt;
243
+ }
244
+ /** The document the most recent stamped event was observed under. See `#documentId`. */
245
+ get currentDocumentId() {
246
+ return this.#documentId;
247
+ }
248
+ /** The edit epoch the most recent stamped event was observed under. See `#editEpoch`. */
249
+ get currentEditEpoch() {
250
+ return this.#editEpoch;
251
+ }
252
+ /** Seed/auth precondition failure reason, if any. */
253
+ setPreconditionFailure(reason) {
254
+ this.#preconditionFailure = reason;
255
+ }
256
+ preconditionFailure() {
257
+ return this.#preconditionFailure;
258
+ }
259
+ /** What the rules that decide a verdict need from the daemon. See daemon-answers.ts. */
260
+ note = noteToDaemonLog;
261
+ keepCallerContext = keepCallerContextInDaemon;
262
+ /** Re-stamp an incoming event with server-relative time, buffer it, and fan out. */
263
+ pushEvent(event, byteSize) {
264
+ if (event.documentId !== undefined)
265
+ this.#documentId = event.documentId;
266
+ if (event.editEpoch !== undefined)
267
+ this.#editEpoch = event.editEpoch;
268
+ if (event.type === EventType.PAGE_HEALTH) {
269
+ const r = readHealthEvent(event.data);
270
+ this.applyHealth(r.hidden ?? this.#hidden, r.focused ?? this.#focused, r.runtime, r.engine, r.brand);
271
+ }
272
+ // The in-page half of Reticle reporting its own failure — recorded like a tool error
273
+ // (fingerprinted, variables stripped) so a broken observer is as visible as a broken tool.
274
+ if (event.type === EventType.SDK_FAILED) {
275
+ const sdk = parseEventPayload(EventType.SDK_FAILED, event.data);
276
+ if (sdk.success)
277
+ recordSdkFailure(sdk.data);
278
+ }
279
+ if (event.type === EventType.HUMAN_CONTROL) {
280
+ // Narrow unknown at the boundary; an invalid/unknown control is ignored (never thrown).
281
+ const parsed = HumanControlDataSchema.safeParse(event.data);
282
+ if (parsed.success)
283
+ this.applyHumanControl(parsed.data);
284
+ }
285
+ if (event.type === EventType.HUMAN_MARK) {
286
+ // A human pinned a mistake to an element. Narrow at the boundary; an invalid mark is ignored.
287
+ const parsed = HumanMarkDataSchema.safeParse(event.data);
288
+ if (parsed.success) {
289
+ this.#review.add(parsed.data, this.elapsed());
290
+ // The impact record's `marks` field existed and nothing ever wrote it: the report would
291
+ // have shown a permanent zero next to a page covered in pins.
292
+ recordImpact({ marks: 1 }, {}, this.artifactRoot);
293
+ }
294
+ }
295
+ if (event.type === EventType.ROUTE_CHANGE) {
296
+ // Keep the reported URL live across SPA navigation. The SDK already emits route.change on
297
+ // pushState/replaceState/popstate; without this the URL stays frozen at the hello value, and
298
+ // URL-based CDP correlation (real input) silently breaks after the first client-side nav.
299
+ const to = event.data['to'];
300
+ if ('string' === typeof to && to.length > 0)
301
+ this.url = to;
302
+ }
303
+ const t = this.elapsed();
304
+ const stamped = { ...event, t, sessionId: this.id };
305
+ // The recorder attributes the event to the in-flight action (if any) and journals it durably; the
306
+ // returned event carries actionId/attribution so the buffer + all queries see the same causal link.
307
+ // Falls back to the session's own window so attribution survives the journal being switched off.
308
+ const seen = this.#journal?.observe(stamped) ?? stamped;
309
+ const fallback = this.#activeActionId;
310
+ const attributed = seen.actionId === undefined && fallback !== undefined
311
+ ? { ...seen, actionId: fallback }
312
+ : seen;
313
+ this.#observed.observe(attributed);
314
+ this.#buffer.push(attributed, t, byteSize);
315
+ // Each subscriber is independent, and this runs inside the websocket's `message` handler — a
316
+ // NON-async callback, so a sync throw here escapes every try/catch the tool call is wrapped in
317
+ // and becomes an uncaughtException, which the daemon answers by exiting. One observer's bug must
318
+ // not cost the fleet its daemon. Same rule the session-ready fan-out already follows.
319
+ for (const listener of this.#listeners) {
320
+ try {
321
+ listener(attributed);
322
+ }
323
+ catch {
324
+ /* an event observer must never break the session it observes */
325
+ }
326
+ }
327
+ }
328
+ // Passthroughs to ObservedState, which owns the per-session facts that must SURVIVE buffer
329
+ // eviction: refs the agent drove, and what the layer could not see. See observed-state.ts.
330
+ recordActedRef(ref) {
331
+ this.#observed.recordActedRef(ref);
332
+ }
333
+ actedLabels() {
334
+ return this.#observed.actedLabels();
335
+ }
336
+ /**
337
+ * Derive the snapshot-shaped label (`button "Deploy"`) from an act reply and remember it.
338
+ *
339
+ * Same shape the interactive snapshot emits, so coverage can match a control the agent drove
340
+ * against the same control after a re-render gave it a different ref.
341
+ */
342
+ recordActedLabelFrom(result) {
343
+ const payload = result.result;
344
+ if (typeof payload !== 'object' || null === payload)
345
+ return;
346
+ const record = payload;
347
+ // The TESTID first: it is the strongest identity a control has and it survives any re-render.
348
+ // Coverage previously matched only on `role "name"`, so a control with a testid but no accessible
349
+ // name — or on a stack where the act reply carried neither — was unrecognisable after a
350
+ // re-render, and coverage read `exercised: 0` however much work had been done.
351
+ const testid = record['testid'];
352
+ if ('string' === typeof testid && testid.length > 0)
353
+ this.#observed.recordActedLabel(testid);
354
+ const role = record['role'];
355
+ const name = record['name'];
356
+ if (typeof role !== 'string' || typeof name !== 'string')
357
+ return;
358
+ if (0 === role.length || 0 === name.length)
359
+ return;
360
+ this.#observed.recordActedLabel(`${role} "${name}"`);
361
+ }
362
+ actedRefs() {
363
+ return this.#observed.actedRefs();
364
+ }
365
+ noteRateLimited(dropped) {
366
+ this.#observed.noteRateLimited(dropped);
367
+ }
368
+ blindSpots() {
369
+ return this.#observed.blindSpots();
370
+ }
371
+ /** Learned ambient-churn counts (PredicateSession hook the settle oracle reads). */
372
+ ambientCounts() {
373
+ return this.#observed.ambientCounts();
374
+ }
375
+ /** Only what THIS session observed — what teardown accumulates onto the persisted map. */
376
+ ownAmbientCounts() {
377
+ return this.#observed.ownAmbientCounts();
378
+ }
379
+ /** Seed the ambient map from the persisted per-app `.reticle/ambient.json` (sharpens across sessions). */
380
+ seedAmbient(counts) {
381
+ this.#observed.seedAmbient(counts);
382
+ }
383
+ /**
384
+ * Attach the durable causal-journal recorder (off by default; wired at session creation). The optional
385
+ * reader is the query fall-through source — pass it to make `queryEvents` survive buffer eviction.
386
+ */
387
+ setJournal(recorder, reader) {
388
+ this.#journal = recorder;
389
+ this.#journalReader = reader;
390
+ }
391
+ /**
392
+ * Journal-backed event query — the rule itself lives in `readQueryEvents`, beside the merge and
393
+ * filter it is made of. This is how "what did action N cause" is answered after the buffer has
394
+ * dropped the evidence. The sync `eventsSince`/`window` stay for the hot path.
395
+ */
396
+ async queryEvents(options) {
397
+ return readQueryEvents(this.#journalReader, this.#buffer, options);
398
+ }
399
+ /** What the durable ledger could not WRITE — see `readJournalWriteLoss` for the rule and why. */
400
+ async journalWriteLoss() {
401
+ return readJournalWriteLoss(this.#journalReader, this.#buffer);
402
+ }
403
+ /**
404
+ * Open an action-attribution window: events observed until finishAction attribute to the returned
405
+ * action id. Ids are minted independently of command correlation ids so the journal is self-contained.
406
+ */
407
+ beginAction(tool, args) {
408
+ const actionId = this.#mintActionId();
409
+ // Held here, not only in the journal: with the journal off every event was unattributed, and
410
+ // pushEvent reads that as ambient churn the settle oracle then ignores. See action-attribution test.
411
+ this.#activeActionId = actionId;
412
+ this.#journal?.beginAction(actionId, tool, args);
413
+ return actionId;
414
+ }
415
+ /**
416
+ * Record one action WITHOUT opening an attribution window — for a tool that returns a verdict but
417
+ * drives nothing, so no event it observes was caused by it. See `JournalRecorder.recordAction`.
418
+ */
419
+ recordAction(tool, args, effect) {
420
+ const actionId = this.#mintActionId();
421
+ this.#journal?.recordAction(actionId, tool, args, effect);
422
+ return actionId;
423
+ }
424
+ #mintActionId() {
425
+ this.#actionSeq += 1;
426
+ return `${ACTION_ID_PREFIX}${String(this.#actionSeq)}`;
427
+ }
428
+ /**
429
+ * How many actions this session has dispatched.
430
+ *
431
+ * The counter that mints journal action ids, not a second one — so it equals the journal's own
432
+ * length, and `reticle_context`'s `step`, whenever this session journals at all.
433
+ */
434
+ get actionCount() {
435
+ return this.#actionSeq;
436
+ }
437
+ /** Close the active action window, persisting its action record with the settle outcome. */
438
+ finishAction(effect, settled, settledInMs) {
439
+ this.#activeActionId = undefined;
440
+ this.#journal?.finishAction(effect, settled, settledInMs);
441
+ }
442
+ /**
443
+ * The durable action ledger for this session — the ledger the run context is folded out of.
444
+ *
445
+ * `[]` when nothing journals this session (journaling disabled, or an id that is not a safe path
446
+ * segment). An absent ledger reads as an empty run, never as a missing one: the fold simply has
447
+ * nothing to say, which is the honest answer.
448
+ */
449
+ async readJournalActions() {
450
+ return (await this.#journalReader?.readActions?.()) ?? [];
451
+ }
452
+ /** Flush any buffered journal events to disk (call on session end). */
453
+ async flushJournal() {
454
+ await this.#journal?.flush();
455
+ }
456
+ eventsSince(cursor) {
457
+ return this.#buffer.since(cursor);
458
+ }
459
+ /**
460
+ * What the most recent act was: its cursor, its source, and what it changed inside its target.
461
+ *
462
+ * Exposed as the object rather than six pass-through methods — act writes to it and observe reads
463
+ * from it, and the split between those two tool calls is the whole reason it exists.
464
+ */
465
+ lastAct = new LastAct();
466
+ /**
467
+ * What this app still cannot tell Reticle, as of the most recent verdict.
468
+ *
469
+ * Lives on the session because that is the scope the question belongs to: "am I done with this
470
+ * app" is a session question, and a gap closed halfway through must not follow the agent to the
471
+ * end of it.
472
+ */
473
+ gaps = new GapLedger();
474
+ /**
475
+ * The read-only calls the journal does not keep, so "was `reticle_context` ever called" has
476
+ * something to fold. See surface/tools/feature-capture.ts — it is the only state that instrument adds.
477
+ */
478
+ capture = new CaptureLedger();
479
+ // ── Server-authoritative liveness (immune to browser-tab throttling) ──────────────
480
+ /**
481
+ * Stamp the wall-clock of the latest AGENT command (called whenever a tool resolves this session).
482
+ * If the reaper had auto-ended the session, a fresh command means the agent is alive again, so the
483
+ * session is REVIVED to ACTIVE. An EXPLICIT end (human/agent reticle_end_session) is terminal and is
484
+ * never revived here.
485
+ */
486
+ markAgentActivity() {
487
+ this.#lastAgentActivityAt = this.#clock();
488
+ if (this.#live.isEnded() && this.#autoEnded) {
489
+ this.#autoEnded = false;
490
+ this.setState(SessionState.ACTIVE);
491
+ }
492
+ }
493
+ /** ms since the agent last issued a command against this session (the reaper's idle signal). */
494
+ agentIdleMs() {
495
+ return this.#clock() - this.#lastAgentActivityAt;
496
+ }
497
+ /** The agent-idle window after which the reaper ends this session. */
498
+ idleEndMs() {
499
+ return this.#idleEndMs;
500
+ }
501
+ /** Tune the idle window (reticle_session). Floored so an agent can't disable the safety net. */
502
+ setIdleEndMs(ms) {
503
+ this.#idleEndMs = Math.max(SESSION_LIFECYCLE.IDLE_END_MIN_MS, Math.floor(ms));
504
+ }
505
+ /**
506
+ * Reaper/disconnect end: terminal like a normal end (pushes PRESENTER ended to the browser, which a
507
+ * throttled tab still receives) but flagged auto-ended so a returning agent revives it. No-op if
508
+ * already ended.
509
+ */
510
+ autoEnd(text, tone = PresenterTone.WARN) {
511
+ if (this.#live.isEnded())
512
+ return;
513
+ this.#autoEnded = true;
514
+ this.setState(SessionState.ENDED, text, tone);
515
+ }
516
+ eventsInWindow(windowMs) {
517
+ return this.#buffer.window(windowMs, this.elapsed());
518
+ }
519
+ /** Buffer honesty: events currently held + cumulative evictions since connect (for false-negative detection). */
520
+ bufferHealth() {
521
+ return this.#buffer.bufferHealth();
522
+ }
523
+ /**
524
+ * Did the EVENT STORE lose scarce evidence from a window opened at `cursor`? The input to whether a
525
+ * verdict's capture was clean — see `RingBuffer.lostSince`, and never the raw drop counter, which
526
+ * moves for the age and churn evictions that every live page produces continuously. The journal is
527
+ * the other half of that store, so a durable read that could not reach back to `cursor` lost
528
+ * exactly what an eviction would have. Both boundaries are INCLUSIVE (`t` is a millisecond many
529
+ * records share) and an absent `lostThroughT` impeaches every window rather than none — the
530
+ * conservative direction, both times.
531
+ */
532
+ lostSince(cursor) {
533
+ if (this.#buffer.lostSince(cursor))
534
+ return true;
535
+ const lost = this.#journalReader?.readLoss?.();
536
+ return lost !== undefined && (lost.lostThroughT === undefined || lost.lostThroughT >= cursor);
537
+ }
538
+ onEvent(listener) {
539
+ this.#listeners.add(listener);
540
+ return () => this.#listeners.delete(listener);
541
+ }
542
+ onDisconnect(listener) {
543
+ this.#disconnectListeners.add(listener);
544
+ return () => this.#disconnectListeners.delete(listener);
545
+ }
546
+ /** Send a command to the browser and await its reply (or time out). */
547
+ command(name, args = {}, timeoutMs = DEFAULT_COMMAND_TIMEOUT_MS) {
548
+ // Recorded HERE rather than at the tool call sites: this is the one place every driven action
549
+ // passes through, so act_sequence and flow replay count too. Doing it per-tool missed both, and
550
+ // an under-counted "exercised" reports worse coverage than reality — the safe direction, but
551
+ // still wrong, and it made the number depend on which tool the agent happened to use.
552
+ if (name === ReticleCommand.ACT) {
553
+ const ref = args['ref'];
554
+ if ('string' === typeof ref)
555
+ this.recordActedRef(ref);
556
+ }
557
+ // Refused before it is sent, when the page said it does not serve this. The rule, and why
558
+ // an absent declaration is not an empty list, live in `undeclared-command.ts`.
559
+ const refused = refusedResult(name, this.commands, `${COMMAND_ID_PREFIX}refused`);
560
+ if (refused !== undefined)
561
+ return Promise.resolve(refused);
562
+ // The page already re-dialled under this same id. Nothing has been sent yet, so handing the
563
+ // command to the live connection cannot perform anything twice — it is the call the agent would
564
+ // have made itself after a `reticle_sessions` round trip, minus the round trip.
565
+ const successor = this.#liveSuccessor();
566
+ if (successor !== undefined)
567
+ return successor.command(name, args, timeoutMs);
568
+ const id = this.#pending.nextId(COMMAND_ID_PREFIX);
569
+ const payload = JSON.stringify({
570
+ kind: MessageKind.COMMAND,
571
+ id,
572
+ sessionId: this.id,
573
+ name,
574
+ args,
575
+ });
576
+ // The timeout message is built LAZILY: health can change while a command is in flight, and the
577
+ // diagnosis should describe the page as it was when the command actually gave up.
578
+ const awaited = this.#pending.track(id, timeoutMs, () => commandTimeoutMessage(name, timeoutMs, {
579
+ url: this.url,
580
+ hidden: this.#hidden,
581
+ lastSeenMs: this.lastSeenMs(),
582
+ ...(this.#runtime === undefined ? {} : { runtime: this.#runtime }),
583
+ }));
584
+ this.#socket.send(payload);
585
+ const sentAt = Date.now(); // browser-leg timing; see recordBrowserLatency for why it is split out
586
+ // Traced because this is the boundary that decides whether a slow tool call is OUR overhead or
587
+ // the app taking its time — the split telemetry reports in aggregate, made visible per call.
588
+ return span('browser.command', { command: name, sessionId: this.id }, () => awaited)
589
+ .then((result) => {
590
+ // Answered — whatever the reply said, the command channel is alive.
591
+ this.#unansweredCommands = 0;
592
+ // The label is only knowable from the REPLY — the request carries a ref, and a ref dies with
593
+ // the next re-render. Recorded here so coverage survives frameworks that replace nodes.
594
+ if (name === ReticleCommand.ACT)
595
+ this.recordActedLabelFrom(result);
596
+ return result;
597
+ })
598
+ .finally(() => recordBrowserLatency(Date.now() - sentAt))
599
+ .catch((error) => {
600
+ // The replacement landed while this command was on the wire, which is the reported case:
601
+ // `reticle_navigate` reloads the page, the reload sends a fresh HELLO carrying the same id,
602
+ // and the `reticle_snapshot` already in flight is rejected by the displaced session.
603
+ // A TIMEOUT is not a replacement. The catch fired on any rejection, so a command that had
604
+ // simply not been answered in budget was read as "you were replaced, ask again" — and
605
+ // against a page re-dialling in a loop that turned one read into hundreds of commands on the
606
+ // wire, minutes of wall clock, and an answer still quoting the budget it had blown.
607
+ if (error instanceof CommandTimeoutError)
608
+ this.#unansweredCommands += 1;
609
+ const next = error instanceof CommandTimeoutError ? undefined : this.#liveSuccessor();
610
+ if (next === undefined || !REBINDABLE_COMMANDS.has(name))
611
+ throw error;
612
+ // What is LEFT of the caller's budget, not a fresh copy of it. Re-issuing with the original
613
+ // timeout means a caller who granted 8s can wait 16, and across a chain of replacements the
614
+ // total is unbounded — a wait nobody asked for, on the path that exists to save a round trip.
615
+ // A budget already spent means there is nothing left to retry into, so the error stands.
616
+ const remaining = timeoutMs - (Date.now() - sentAt);
617
+ if (remaining <= 0)
618
+ throw error;
619
+ return next.command(name, args, remaining);
620
+ });
621
+ }
622
+ handleResult(result) {
623
+ // Any reply at all clears the wedge, including one for a command that already timed out: it is
624
+ // still proof that bridge→page→bridge works right now, which is the only thing being claimed.
625
+ this.#unansweredCommands = 0;
626
+ this.#pending.settle(result);
627
+ }
628
+ /** Reject everything still in flight — used on disconnect. */
629
+ rejectAll(reason, replaced = false) {
630
+ this.#pending.rejectAll(reason, replaced);
631
+ for (const listener of this.#disconnectListeners)
632
+ listener();
633
+ this.#disconnectListeners.clear();
634
+ }
635
+ /**
636
+ * The connection that took this session's id over, once one has.
637
+ *
638
+ * Set by the bridge at the moment it displaces this session, so the two facts a replaced handle
639
+ * needs — that it was replaced, and by whom — arrive together. Without it, every tool call holding
640
+ * this handle could only report "session replaced by a newer connection claiming the same id", and
641
+ * the caller's only recovery was `reticle_sessions` plus a retry: two round trips to rediscover an
642
+ * id the daemon was already holding, and which had not even changed.
643
+ */
644
+ #successor;
645
+ succeededBy(next) {
646
+ // A session is never its own replacement; guarding here keeps `command` from recursing forever
647
+ // if a registry ever re-adds the same object.
648
+ if (next !== this)
649
+ this.#successor = next;
650
+ }
651
+ /**
652
+ * The replacement, but only while it can actually answer.
653
+ *
654
+ * A successor is recorded once and never cleared, so without this a session that was replaced an
655
+ * hour ago keeps handing commands to a socket that has since closed — and the caller pays the full
656
+ * timeout to learn it, turning an instant "session replaced" into a wait. The point of delegating
657
+ * was to save the caller a round trip; delegating to a dead socket costs them more than the error
658
+ * did.
659
+ */
660
+ #liveSuccessor() {
661
+ // Walked, not just read one hop. Two replacements in quick succession — a page that reloads
662
+ // twice — leave a CHAIN, and the handle the caller holds points at a session that is itself
663
+ // already displaced. Stopping at the first dead link fails safe and also fails: the open page is
664
+ // one hop further on, and the caller gets back exactly the error this exists to remove.
665
+ //
666
+ // Bounded, because `succeededBy` refuses self-succession but nothing prevents a cycle, and an
667
+ // unbounded walk over one is a hang — which is worse than the error it was trying to avoid.
668
+ let next = this.#successor;
669
+ for (let hops = 0; next !== undefined && hops < MAX_SUCCESSOR_HOPS; hops += 1) {
670
+ if (next.#socket.readyState === WS_OPEN)
671
+ return next;
672
+ next = next.#successor;
673
+ }
674
+ return undefined;
675
+ }
676
+ /** End this transport without letting a stale socket remove its replacement session. */
677
+ disconnect(reason, replaced = false) {
678
+ // "Longest run" means the longest SESSION, and it used to be fed a single tool call's duration
679
+ // - so the report's superlative was a number in milliseconds that never grew past a click.
680
+ recordImpact({}, { runMs: this.elapsed() }, this.artifactRoot);
681
+ this.rejectAll(reason, replaced);
682
+ try {
683
+ this.#socket.close(1008, reason);
684
+ }
685
+ catch {
686
+ // A fake or already-closed socket needs no further cleanup.
687
+ }
688
+ }
689
+ // ── Live-control: state machine + human→agent inbox (server-owned) ───────────────
690
+ getState() {
691
+ return this.#live.state();
692
+ }
693
+ isPaused() {
694
+ return this.#live.isPaused();
695
+ }
696
+ isEnded() {
697
+ return this.#live.isEnded();
698
+ }
699
+ /**
700
+ * Set the lifecycle state and echo it to the panel in ONE PRESENTER push. The SOLE pusher of
701
+ * PRESENTER for a transition. Optional `text` rides the same push (e.g. an end-of-session
702
+ * summary) so a transition never emits two PRESENTER commands.
703
+ */
704
+ setState(next, text, tone) {
705
+ this.#live.setState(next);
706
+ this.pushPresenter(next, text, tone);
707
+ }
708
+ /** Push a human note onto the inbox (see LiveControl). */
709
+ pushMessage(text) {
710
+ this.#live.push(text, this.elapsed());
711
+ }
712
+ /** Queued human notes, cleared as they are read (delivered-once). */
713
+ drainInbox() {
714
+ return this.#live.drain();
715
+ }
716
+ /** Diagnostic read of the inbox depth (does not clear). */
717
+ inboxSize() {
718
+ return this.#live.size();
719
+ }
720
+ /** Everything the human has said this session, delivered or not. Never clears. */
721
+ inboxHistory() {
722
+ return this.#live.history();
723
+ }
724
+ // ── Human review marks: the "annotate the bug where you see it" inbox (server-owned) ──────────
725
+ /** Human marks still awaiting a fix (oldest first). Reading does not consume — resolveMark does. */
726
+ pendingMarks() {
727
+ return this.#review.pending();
728
+ }
729
+ /** Full mark history (pending + resolved), oldest first. */
730
+ allMarks() {
731
+ return this.#review.all();
732
+ }
733
+ /** Count of pending marks — surfaced as the panel badge / a session-health hint. */
734
+ pendingMarkCount() {
735
+ return this.#review.pendingCount();
736
+ }
737
+ /** Retire a mark the agent fixed. True on a real pending → resolved transition; false otherwise. */
738
+ resolveMark(id) {
739
+ return this.#review.resolve(id);
740
+ }
741
+ /**
742
+ * Apply a narrowed human control. LiveControl decides the transition; this applies it, so a real
743
+ * change pushes exactly one PRESENTER command and a no-op pushes none.
744
+ */
745
+ applyHumanControl(data) {
746
+ const next = this.#live.nextStateFor(data);
747
+ if (next !== undefined)
748
+ this.setState(next);
749
+ if (data.kind === HumanControlKind.MESSAGE && data.text !== undefined) {
750
+ this.pushMessage(data.text);
751
+ }
752
+ }
753
+ /**
754
+ * Push the impact record to this tab's HUD.
755
+ *
756
+ * Debounced: the record changes on every tool call, and the panel does not need 200 frames to
757
+ * show a counter going up. The LAST state always lands, because the timer re-reads the store
758
+ * when it fires rather than capturing a snapshot when it was scheduled.
759
+ */
760
+ pushImpact(read, immediate = false) {
761
+ if (immediate) {
762
+ // A tab that just connected has nothing to show yet, so its first record goes out at once -
763
+ // waiting a debounce here is a report that reads "nothing recorded" over a month of history.
764
+ const first = read();
765
+ if (first !== undefined)
766
+ this.#post(ReticleCommand.IMPACT, { snapshot: first });
767
+ return;
768
+ }
769
+ if (this.#impactTimer !== undefined)
770
+ return;
771
+ this.#impactTimer = setTimeout(() => {
772
+ this.#impactTimer = undefined;
773
+ const snapshot = read();
774
+ if (snapshot !== undefined)
775
+ this.#post(ReticleCommand.IMPACT, { snapshot });
776
+ }, IMPACT_PUSH_DEBOUNCE_MS);
777
+ this.#impactTimer.unref?.();
778
+ }
779
+ pushPresenter(state, text, tone) {
780
+ this.#post(ReticleCommand.PRESENTER, buildPresenterArgs(state, text, tone));
781
+ }
782
+ /** Fire-and-forget a narration row to the live panel (so a resolved mark shows "✓ fixed"). */
783
+ #impactTimer;
784
+ pushNarration(text) {
785
+ this.#post(ReticleCommand.NARRATE, { text, level: 'info' });
786
+ }
787
+ /** The one-time lease block on the first agent command, then undefined forever after. */
788
+ takeSessionLease() {
789
+ if (this.#firstCommandDone)
790
+ return undefined;
791
+ this.#firstCommandDone = true;
792
+ return buildSessionLease(this.id, this.#startedAt);
793
+ }
794
+ /**
795
+ * Returns a human-readable age warning after SESSION_LEASE.WARN_AFTER_MS (10 min), else undefined.
796
+ * Spliced onto every session-bound tool result so the agent is passively reminded to clean up
797
+ * without needing an explicit polling loop.
798
+ */
799
+ ageWarning() {
800
+ const ageMs = this.#clock() - this.#startedAt;
801
+ if (ageMs < SESSION_LEASE.WARN_AFTER_MS)
802
+ return undefined;
803
+ const minutes = Math.floor(ageMs / 60_000);
804
+ return `Session ${this.id} has been open for ${String(minutes)} minutes. If your task is complete, call reticle_session{action:"end"} now.`;
805
+ }
806
+ /**
807
+ * The tabs that should SEE what this session is told, supplied by the SessionManager.
808
+ *
809
+ * `reticle drive` attaches to the running daemon and is handed a pooled HEADLESS context, so the
810
+ * whole HUD feed — the narration, the counters, the bug that was just raised — went to a browser
811
+ * with nobody in front of it, while the developer's own tab showed nothing. The feed is now a
812
+ * per-project broadcast: the driven tab is still the only one DRIVEN, and any other tab of the
813
+ * same app is a viewer.
814
+ */
815
+ #viewers;
816
+ /** Wired by SessionManager.add, the one place every session registers. */
817
+ setViewers(read) {
818
+ this.#viewers = read;
819
+ }
820
+ /**
821
+ * Fire-and-forget command send — NOT registered in #pending (no correlated result expected).
822
+ *
823
+ * Mirrored to this project's other tabs, for the two commands that are a REPORT of what happened
824
+ * (narration, impact). PRESENTER is deliberately not among them: it is the glow and the lifecycle
825
+ * that say "the agent is driving THIS tab", and a viewer that showed it would be claiming
826
+ * something untrue about itself.
827
+ */
828
+ #post(name, args) {
829
+ this.#send(name, args);
830
+ if (!MIRRORED_COMMANDS.has(name))
831
+ return;
832
+ for (const viewer of this.#viewers?.() ?? []) {
833
+ if (viewer === this)
834
+ continue;
835
+ // Straight to the raw send, so a mirrored row is never mirrored again.
836
+ viewer.#send(name, name === ReticleCommand.NARRATE ? this.#labelled(args) : args);
837
+ }
838
+ }
839
+ /** A narration row re-addressed to a tab that is watching rather than being driven. */
840
+ #labelled(args) {
841
+ const text = args['text'];
842
+ if ('string' !== typeof text)
843
+ return args;
844
+ return { ...args, text: mirroredNarration(this.id, text) };
845
+ }
846
+ #send(name, args) {
847
+ if (this.#socket.readyState !== WS_OPEN)
848
+ return;
849
+ // Shares the same counter as tracked commands, so a fire-and-forget id can never collide with
850
+ // one that IS awaiting a reply.
851
+ // Recorded HERE rather than at the tool call sites: this is the one place every driven action
852
+ // passes through, so act_sequence and flow replay count too. Doing it per-tool missed both, and
853
+ // an under-counted "exercised" reports worse coverage than reality — the safe direction, but
854
+ // still wrong, and it made the number depend on which tool the agent happened to use.
855
+ if (name === ReticleCommand.ACT) {
856
+ const ref = args['ref'];
857
+ if ('string' === typeof ref)
858
+ this.recordActedRef(ref);
859
+ }
860
+ const id = this.#pending.nextId(COMMAND_ID_PREFIX);
861
+ const payload = JSON.stringify({
862
+ kind: MessageKind.COMMAND,
863
+ id,
864
+ sessionId: this.id,
865
+ name,
866
+ args,
867
+ });
868
+ try {
869
+ this.#socket.send(payload);
870
+ }
871
+ catch {
872
+ // A closing/closed tab must never break event routing for the session.
873
+ }
874
+ }
875
+ }