@reticlehq/server 3.8.2 → 3.10.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 (477) hide show
  1. package/LICENSE +201 -104
  2. package/NOTICE +5 -0
  3. package/README.md +1 -1
  4. package/SKILL.md +13 -12
  5. package/bin/launch.js +13 -0
  6. package/bin/package.json +3 -0
  7. package/bin/reticle.js +66 -8
  8. package/dist/chromium-launch-options.d.ts +25 -0
  9. package/dist/chromium-launch-options.js +21 -1
  10. package/dist/command/cli/adhoc-suite.js +2 -0
  11. package/dist/command/cli/adhoc-verdict.d.ts +2 -43
  12. package/dist/command/cli/adhoc-verdict.js +50 -160
  13. package/dist/command/cli/answers/gate-exit.d.ts +6 -2
  14. package/dist/command/cli/answers/gate-exit.js +12 -2
  15. package/dist/command/cli/answers/mcp-connection-hint.d.ts +2 -0
  16. package/dist/command/cli/answers/mcp-connection-hint.js +6 -0
  17. package/dist/command/cli/ci-hint.d.ts +44 -0
  18. package/dist/command/cli/ci-hint.js +72 -0
  19. package/dist/command/cli/cli-doctor.d.ts +6 -1
  20. package/dist/command/cli/cli-doctor.js +46 -5
  21. package/dist/command/cli/cli-flow-commands.d.ts +7 -1
  22. package/dist/command/cli/cli-flow-commands.js +39 -24
  23. package/dist/command/cli/cli-kill.d.ts +21 -0
  24. package/dist/command/cli/cli-kill.js +47 -4
  25. package/dist/command/cli/cli-parse-compare.d.ts +22 -0
  26. package/dist/command/cli/cli-parse-compare.js +75 -0
  27. package/dist/command/cli/cli-parse-grade.d.ts +36 -0
  28. package/dist/command/cli/cli-parse-grade.js +75 -0
  29. package/dist/command/cli/cli-parse-grammar.d.ts +2 -0
  30. package/dist/command/cli/cli-parse-grammar.js +18 -20
  31. package/dist/command/cli/cli-parse-verify.d.ts +10 -0
  32. package/dist/command/cli/cli-parse-verify.js +63 -14
  33. package/dist/command/cli/cli-parse.d.ts +22 -17
  34. package/dist/command/cli/cli-parse.js +54 -32
  35. package/dist/command/cli/cli-update-commands.d.ts +1 -1
  36. package/dist/command/cli/cli-update-commands.js +29 -20
  37. package/dist/command/cli/cli-usage.js +61 -31
  38. package/dist/command/cli/cli-verify.d.ts +17 -3
  39. package/dist/command/cli/cli-verify.js +59 -21
  40. package/dist/command/cli/cloud-cli.js +2 -119
  41. package/dist/command/cli/daemon-link/daemon-client.d.ts +45 -0
  42. package/dist/command/cli/daemon-link/daemon-client.js +205 -0
  43. package/dist/command/cli/doctor/browser/chromium-hint.d.ts +6 -1
  44. package/dist/command/cli/doctor/browser/chromium-hint.js +11 -5
  45. package/dist/command/cli/doctor/doctor-daemon-line.js +6 -3
  46. package/dist/command/cli/doctor/doctor-fix.d.ts +44 -0
  47. package/dist/command/cli/doctor/doctor-fix.js +89 -0
  48. package/dist/command/cli/doctor/doctor-launcher-line.d.ts +23 -0
  49. package/dist/command/cli/doctor/doctor-launcher-line.js +60 -0
  50. package/dist/command/cli/doctor/doctor-rows.d.ts +4 -0
  51. package/dist/command/cli/doctor/doctor-rows.js +4 -0
  52. package/dist/command/cli/doctor-repairs.d.ts +64 -0
  53. package/dist/command/cli/doctor-repairs.js +214 -0
  54. package/dist/command/cli/drive/drive-command.js +3 -7
  55. package/dist/command/cli/ensure-daemon.d.ts +26 -0
  56. package/dist/command/cli/ensure-daemon.js +57 -0
  57. package/dist/command/cli/finished-run/grade-command.d.ts +23 -0
  58. package/dist/command/cli/finished-run/grade-command.js +180 -0
  59. package/dist/command/cli/first-use-checks.d.ts +41 -0
  60. package/dist/command/cli/first-use-checks.js +127 -0
  61. package/dist/command/cli/first-verdict-node.d.ts +3 -0
  62. package/dist/command/cli/first-verdict-node.js +189 -0
  63. package/dist/command/cli/first-verdict.d.ts +126 -0
  64. package/dist/command/cli/first-verdict.js +267 -0
  65. package/dist/command/cli/launch/sdk-version-match.d.ts +3 -2
  66. package/dist/command/cli/launch/sdk-version-match.js +3 -2
  67. package/dist/command/cli/lifecycle/daemon-lifecycle.d.ts +1 -1
  68. package/dist/command/cli/lifecycle/daemon-lifecycle.js +7 -6
  69. package/dist/command/cli/mcp-command.js +13 -4
  70. package/dist/command/cli/ports/port-holder.d.ts +11 -0
  71. package/dist/command/cli/ports/port-holder.js +36 -4
  72. package/dist/command/cli/setup-mcp-cli.d.ts +27 -1
  73. package/dist/command/cli/setup-mcp-cli.js +98 -23
  74. package/dist/command/cli/status/status-lines.d.ts +2 -0
  75. package/dist/command/cli/status/status-lines.js +72 -17
  76. package/dist/command/cli/status-fields.d.ts +5 -1
  77. package/dist/command/cli/status-fields.js +24 -6
  78. package/dist/command/cli/try-command.d.ts +7 -0
  79. package/dist/command/cli/try-command.js +11 -3
  80. package/dist/command/cli/two-builds/compare-command.d.ts +48 -0
  81. package/dist/command/cli/two-builds/compare-command.js +314 -0
  82. package/dist/command/cli/verify-against.d.ts +61 -0
  83. package/dist/command/cli/verify-against.js +187 -0
  84. package/dist/command/cli/verify-no-session.d.ts +2 -0
  85. package/dist/command/cli/verify-no-session.js +13 -0
  86. package/dist/command/cli/verify-results.d.ts +35 -2
  87. package/dist/command/cli/verify-results.js +76 -10
  88. package/dist/command/cli.js +112 -70
  89. package/dist/command/daemon/binding/daemon-status-probe.d.ts +3 -1
  90. package/dist/command/daemon/binding/daemon-status-probe.js +4 -2
  91. package/dist/command/daemon/daemon-argv.d.ts +9 -0
  92. package/dist/command/daemon/daemon-argv.js +11 -0
  93. package/dist/command/daemon/daemon-resolve.d.ts +8 -1
  94. package/dist/command/daemon/daemon-resolve.js +27 -1
  95. package/dist/command/daemon/daemon.d.ts +22 -4
  96. package/dist/command/daemon/daemon.js +52 -10
  97. package/dist/command/daemon/lifetime/daemon-exit.d.ts +24 -0
  98. package/dist/command/daemon/lifetime/daemon-exit.js +39 -0
  99. package/dist/command/daemon/lifetime/death-cause.d.ts +15 -0
  100. package/dist/command/daemon/lifetime/death-cause.js +149 -0
  101. package/dist/command/daemon/lifetime/heartbeat.d.ts +7 -15
  102. package/dist/command/daemon/lifetime/heartbeat.js +11 -15
  103. package/dist/command/daemon/lifetime/startup-failure.d.ts +29 -0
  104. package/dist/command/daemon/lifetime/startup-failure.js +62 -0
  105. package/dist/command/daemon/port-state.d.ts +14 -0
  106. package/dist/command/daemon/port-state.js +31 -0
  107. package/dist/command/setup/agent-configs.d.ts +2 -0
  108. package/dist/command/setup/agent-configs.js +42 -15
  109. package/dist/command/setup/agent-next-steps.d.ts +77 -0
  110. package/dist/command/setup/agent-next-steps.js +284 -0
  111. package/dist/command/setup/agent-writer.js +11 -6
  112. package/dist/command/setup/bringup/dev-server-files.d.ts +9 -0
  113. package/dist/command/setup/bringup/dev-server-files.js +17 -0
  114. package/dist/command/setup/bringup/static-page-server.d.ts +14 -2
  115. package/dist/command/setup/bringup/static-page-server.js +43 -9
  116. package/dist/command/setup/init/init-host.js +2 -0
  117. package/dist/command/setup/init/init-runtime.d.ts +6 -1
  118. package/dist/command/setup/init/init-runtime.js +63 -21
  119. package/dist/command/setup/mcp-launcher.d.ts +3 -0
  120. package/dist/command/setup/mcp-launcher.js +11 -0
  121. package/dist/command/setup/node-effects.d.ts +3 -2
  122. package/dist/command/setup/node-effects.js +9 -3
  123. package/dist/command/setup/remaining-steps.d.ts +8 -0
  124. package/dist/command/setup/remaining-steps.js +10 -0
  125. package/dist/command/setup/run-setup.d.ts +2 -0
  126. package/dist/command/setup/run-setup.js +9 -1
  127. package/dist/command/setup/setup-command.js +36 -15
  128. package/dist/command/setup/setup-mcp.d.ts +8 -0
  129. package/dist/command/setup/setup-mcp.js +47 -20
  130. package/dist/command/setup/start-dev-server.d.ts +8 -0
  131. package/dist/command/setup/start-dev-server.js +43 -0
  132. package/dist/command/update/updater.js +6 -0
  133. package/dist/command/version/identity/server-version.d.ts +2 -0
  134. package/dist/command/version/identity/server-version.js +2 -0
  135. package/dist/command/version/version-skew.d.ts +7 -0
  136. package/dist/command/version/version-skew.js +14 -3
  137. package/dist/features/compare/action-plan.d.ts +260 -0
  138. package/dist/features/compare/action-plan.js +543 -0
  139. package/dist/features/compare/behaviour-compare.d.ts +24 -0
  140. package/dist/features/compare/behaviour-compare.js +85 -0
  141. package/dist/features/compare/behaviour-diff.d.ts +97 -0
  142. package/dist/features/compare/behaviour-diff.js +202 -0
  143. package/dist/features/compare/behaviour-report.d.ts +40 -0
  144. package/dist/features/compare/behaviour-report.js +128 -0
  145. package/dist/features/compare/build-readings.d.ts +106 -0
  146. package/dist/features/compare/build-readings.js +250 -0
  147. package/dist/features/compare/compare-diff.d.ts +62 -0
  148. package/dist/features/compare/compare-diff.js +177 -0
  149. package/dist/features/compare/compare-report-html.d.ts +6 -0
  150. package/dist/features/compare/compare-report-html.js +102 -0
  151. package/dist/features/compare/compare-report.d.ts +15 -0
  152. package/dist/features/compare/compare-report.js +73 -0
  153. package/dist/features/compare/compare-run.d.ts +60 -0
  154. package/dist/features/compare/compare-run.js +123 -0
  155. package/dist/features/compare/outside/effect-lines.d.ts +26 -0
  156. package/dist/features/compare/outside/effect-lines.js +103 -0
  157. package/dist/features/compare/outside/state-sources.d.ts +76 -0
  158. package/dist/features/compare/outside/state-sources.js +164 -0
  159. package/dist/features/compare/outside/value-dictionary.d.ts +51 -0
  160. package/dist/features/compare/outside/value-dictionary.js +227 -0
  161. package/dist/features/compare/visible-content.d.ts +20 -0
  162. package/dist/features/compare/visible-content.js +125 -0
  163. package/dist/features/crawl/crawl-empty.js +2 -1
  164. package/dist/features/crawl/crawl-exhaustive.d.ts +55 -0
  165. package/dist/features/crawl/crawl-exhaustive.js +138 -0
  166. package/dist/features/crawl/crawl-tools.d.ts +9 -2
  167. package/dist/features/crawl/crawl-tools.js +28 -12
  168. package/dist/features/crawl/crawl.d.ts +8 -9
  169. package/dist/features/crawl/crawl.js +61 -65
  170. package/dist/features/exhaust/app-coverage.d.ts +5 -1
  171. package/dist/features/exhaust/app-coverage.js +3 -1
  172. package/dist/features/exhaust/code-coverage.js +8 -4
  173. package/dist/features/exhaust/edge-cases.d.ts +133 -0
  174. package/dist/features/exhaust/edge-cases.js +310 -0
  175. package/dist/features/exhaust/edges/edge-drive.d.ts +42 -0
  176. package/dist/features/exhaust/edges/edge-drive.js +364 -0
  177. package/dist/features/exhaust/edges/edge-run.d.ts +59 -0
  178. package/dist/features/exhaust/edges/edge-run.js +169 -0
  179. package/dist/features/exhaust/explorer.d.ts +87 -14
  180. package/dist/features/exhaust/explorer.js +159 -25
  181. package/dist/features/exhaust/failure-branches.d.ts +5 -0
  182. package/dist/features/exhaust/failure-branches.js +29 -11
  183. package/dist/features/exhaust/invariants.d.ts +112 -0
  184. package/dist/features/exhaust/invariants.js +188 -0
  185. package/dist/features/exhaust/ledger.d.ts +68 -0
  186. package/dist/features/exhaust/ledger.js +121 -13
  187. package/dist/features/exhaust/session-fold.d.ts +10 -0
  188. package/dist/features/exhaust/session-fold.js +46 -3
  189. package/dist/features/exhaust/session-port.d.ts +3 -1
  190. package/dist/features/exhaust/session-port.js +97 -28
  191. package/dist/features/grade/grade-answer.d.ts +99 -0
  192. package/dist/features/grade/grade-answer.js +112 -0
  193. package/dist/features/grade/grade-noise.d.ts +27 -0
  194. package/dist/features/grade/grade-noise.js +55 -0
  195. package/dist/features/grade/grade-renumber.d.ts +12 -0
  196. package/dist/features/grade/grade-renumber.js +86 -0
  197. package/dist/features/grade/grade-state.d.ts +50 -0
  198. package/dist/features/grade/grade-state.js +93 -0
  199. package/dist/features/grade/grade-suggest.d.ts +33 -0
  200. package/dist/features/grade/grade-suggest.js +98 -0
  201. package/dist/features/license/license.d.ts +11 -71
  202. package/dist/features/license/license.js +43 -136
  203. package/dist/features/visual/desktop-capture.d.ts +33 -0
  204. package/dist/features/visual/desktop-capture.js +94 -0
  205. package/dist/features/visual/step-shots.js +139 -35
  206. package/dist/features/visual/visual-tools.d.ts +0 -18
  207. package/dist/features/visual/visual-tools.js +67 -99
  208. package/dist/import-graph.js +5 -6
  209. package/dist/index.d.ts +3 -1
  210. package/dist/index.js +19 -7
  211. package/dist/judgement/capsule/causal-summary.js +9 -2
  212. package/dist/judgement/runs/artifact/replay-mapping.d.ts +13 -1
  213. package/dist/judgement/runs/artifact/replay-mapping.js +1 -1
  214. package/dist/judgement/runs/reticle-runner.js +16 -2
  215. package/dist/judgement/runs/run-ledger.d.ts +7 -5
  216. package/dist/judgement/runs/run-ledger.js +98 -69
  217. package/dist/judgement/runs/runner-port.d.ts +2 -0
  218. package/dist/judgement/runs/runner-port.js +23 -5
  219. package/dist/judgement/runs/verification-sync.d.ts +6 -3
  220. package/dist/judgement/runs/verification-sync.js +21 -10
  221. package/dist/language/flows/affected-tools.d.ts +1 -1
  222. package/dist/language/flows/affected-tools.js +49 -30
  223. package/dist/language/flows/change/git-changed.d.ts +2 -1
  224. package/dist/language/flows/change/git-changed.js +19 -2
  225. package/dist/language/flows/fields/flow-secret-field.d.ts +1 -13
  226. package/dist/language/flows/fields/flow-secret-field.js +77 -21
  227. package/dist/language/flows/flow-anchor.d.ts +60 -2
  228. package/dist/language/flows/flow-anchor.js +125 -20
  229. package/dist/language/flows/flow-classify.d.ts +20 -0
  230. package/dist/language/flows/flow-classify.js +90 -12
  231. package/dist/language/flows/flow-cross-step.d.ts +7 -1
  232. package/dist/language/flows/flow-cross-step.js +25 -1
  233. package/dist/language/flows/flow-journey.d.ts +38 -4
  234. package/dist/language/flows/flow-journey.js +138 -8
  235. package/dist/language/flows/flow-replay-run.d.ts +0 -16
  236. package/dist/language/flows/flow-replay-run.js +76 -14
  237. package/dist/language/flows/flow-replay-types.d.ts +4 -2
  238. package/dist/language/flows/flow-replay.d.ts +19 -1
  239. package/dist/language/flows/flow-replay.js +169 -52
  240. package/dist/language/flows/flow-replayable.js +7 -1
  241. package/dist/language/flows/flow-start-path.d.ts +34 -5
  242. package/dist/language/flows/flow-start-path.js +202 -15
  243. package/dist/language/flows/flow-step-runners.d.ts +14 -13
  244. package/dist/language/flows/flow-step-runners.js +184 -109
  245. package/dist/language/flows/flow-store-for-session.d.ts +26 -25
  246. package/dist/language/flows/flow-store-for-session.js +51 -5
  247. package/dist/language/flows/flow-tools.js +46 -33
  248. package/dist/language/flows/flows.js +176 -76
  249. package/dist/language/flows/recording/tape/recordings.d.ts +21 -16
  250. package/dist/language/flows/recording/tape/recordings.js +112 -49
  251. package/dist/language/flows/replay.d.ts +36 -12
  252. package/dist/language/flows/replay.js +193 -50
  253. package/dist/language/flows/steps/page-steps.d.ts +68 -0
  254. package/dist/language/flows/steps/page-steps.js +198 -0
  255. package/dist/language/flows/suite/sequential-run.d.ts +68 -0
  256. package/dist/language/flows/suite/sequential-run.js +96 -0
  257. package/dist/language/flows/verify-change-tools.js +26 -15
  258. package/dist/launch-chromium.d.ts +1 -0
  259. package/dist/launch-chromium.js +49 -12
  260. package/dist/memory/cloud/background-sync.d.ts +13 -0
  261. package/dist/memory/cloud/background-sync.js +24 -3
  262. package/dist/memory/cloud/sync-daemon.js +26 -27
  263. package/dist/memory/cloud/sync-screenshots.js +6 -1
  264. package/dist/memory/journal/attach-journal.js +2 -1
  265. package/dist/memory/journal/drive-flow.d.ts +7 -0
  266. package/dist/memory/journal/drive-flow.js +44 -13
  267. package/dist/memory/journal/journal-recorder.d.ts +4 -2
  268. package/dist/memory/journal/session-journal.d.ts +7 -0
  269. package/dist/memory/journal/session-journal.js +58 -10
  270. package/dist/memory/project/root-claims.d.ts +9 -0
  271. package/dist/memory/project/root-claims.js +9 -4
  272. package/dist/portal/bridge/bridge.d.ts +13 -4
  273. package/dist/portal/bridge/bridge.js +10 -9
  274. package/dist/portal/input/download-capture.d.ts +7 -0
  275. package/dist/portal/input/download-capture.js +92 -0
  276. package/dist/portal/input/network-detail.d.ts +6 -0
  277. package/dist/portal/input/network-detail.js +12 -1
  278. package/dist/portal/input/network-mock-tools.js +49 -13
  279. package/dist/portal/input/network-mock.d.ts +8 -0
  280. package/dist/portal/input/network-mock.js +30 -10
  281. package/dist/portal/input/page-capture.d.ts +24 -0
  282. package/dist/portal/input/page-capture.js +33 -0
  283. package/dist/portal/input/real-input.d.ts +35 -18
  284. package/dist/portal/input/real-input.js +99 -33
  285. package/dist/portal/input/viewport-tools.d.ts +8 -0
  286. package/dist/portal/input/viewport-tools.js +81 -21
  287. package/dist/portal/pool/browser-pool.d.ts +16 -30
  288. package/dist/portal/pool/browser-pool.js +64 -52
  289. package/dist/portal/pool/context-permissions.d.ts +34 -17
  290. package/dist/portal/pool/context-permissions.js +94 -1
  291. package/dist/portal/pool/csp-widen.d.ts +62 -0
  292. package/dist/portal/pool/csp-widen.js +132 -0
  293. package/dist/portal/pool/determinism.d.ts +52 -0
  294. package/dist/portal/pool/determinism.js +259 -0
  295. package/dist/portal/pool/lease-emulation.d.ts +34 -1
  296. package/dist/portal/pool/lease-emulation.js +18 -0
  297. package/dist/portal/pool/lease-marker-stamp.d.ts +6 -0
  298. package/dist/portal/pool/lease-marker-stamp.js +15 -1
  299. package/dist/portal/pool/lease-page-error.d.ts +56 -0
  300. package/dist/portal/pool/lease-page-error.js +160 -0
  301. package/dist/portal/pool/page-error-journal.d.ts +63 -0
  302. package/dist/portal/pool/page-error-journal.js +208 -0
  303. package/dist/portal/pool/playwright-launcher.js +71 -15
  304. package/dist/portal/pool/pool-contract.d.ts +49 -1
  305. package/dist/portal/pool/pool-lease.d.ts +70 -2
  306. package/dist/portal/pool/pool-lease.js +23 -0
  307. package/dist/portal/pool/zero-install.d.ts +8 -0
  308. package/dist/portal/pool/zero-install.js +91 -1
  309. package/dist/portal/session/dev-server/dev-command.d.ts +11 -2
  310. package/dist/portal/session/dev-server/dev-command.js +110 -16
  311. package/dist/portal/session/dev-server/dev-server-probe.d.ts +7 -0
  312. package/dist/portal/session/dev-server/dev-server-probe.js +9 -0
  313. package/dist/portal/session/dev-server/project-ports.d.ts +21 -0
  314. package/dist/portal/session/dev-server/project-ports.js +62 -0
  315. package/dist/portal/session/facts/departed-network.d.ts +66 -0
  316. package/dist/portal/session/facts/departed-network.js +142 -0
  317. package/dist/portal/session/no-session-diagnosis.d.ts +9 -0
  318. package/dist/portal/session/no-session-diagnosis.js +76 -27
  319. package/dist/portal/session/no-session-next-action.d.ts +14 -0
  320. package/dist/portal/session/no-session-next-action.js +56 -7
  321. package/dist/portal/session/no-session-watch.d.ts +6 -0
  322. package/dist/portal/session/no-session-watch.js +41 -4
  323. package/dist/portal/session/page-commands/undeclared-command.d.ts +9 -3
  324. package/dist/portal/session/page-commands/undeclared-command.js +16 -7
  325. package/dist/portal/session/recorded-gaps.d.ts +1 -1
  326. package/dist/portal/session/recorded-gaps.js +5 -2
  327. package/dist/portal/session/serving-directory.d.ts +10 -0
  328. package/dist/portal/session/serving-directory.js +39 -8
  329. package/dist/portal/session/session-manager.d.ts +10 -0
  330. package/dist/portal/session/session-manager.js +211 -81
  331. package/dist/portal/session/session.js +4 -3
  332. package/dist/portal/session/zero-install-first-call.d.ts +20 -1
  333. package/dist/portal/session/zero-install-first-call.js +34 -2
  334. package/dist/start-wiring.d.ts +30 -2
  335. package/dist/start-wiring.js +74 -9
  336. package/dist/surface/mcp/mcp-proxy.js +10 -2
  337. package/dist/surface/mcp/mcp.js +8 -5
  338. package/dist/surface/mcp/peer/agents-connected.d.ts +6 -0
  339. package/dist/surface/mcp/peer/agents-connected.js +58 -0
  340. package/dist/surface/mcp/proxy/proxy-daemon-probe.js +17 -5
  341. package/dist/surface/mcp/shared-params.d.ts +2 -0
  342. package/dist/surface/mcp/shared-params.js +31 -0
  343. package/dist/surface/tools/act/act-observation.d.ts +40 -2
  344. package/dist/surface/tools/act/act-observation.js +118 -12
  345. package/dist/surface/tools/act/act-preflight.js +38 -18
  346. package/dist/surface/tools/act/act-sequence-retry.d.ts +23 -2
  347. package/dist/surface/tools/act/act-sequence-retry.js +61 -5
  348. package/dist/surface/tools/act/act-target.js +3 -1
  349. package/dist/surface/tools/act/after-match.d.ts +10 -0
  350. package/dist/surface/tools/act/after-match.js +40 -0
  351. package/dist/surface/tools/act/already-true.js +1 -1
  352. package/dist/surface/tools/act/navigation/reload-result.d.ts +12 -1
  353. package/dist/surface/tools/act/navigation/reload-result.js +25 -2
  354. package/dist/surface/tools/act/resolve-target.d.ts +17 -1
  355. package/dist/surface/tools/act/resolve-target.js +59 -9
  356. package/dist/surface/tools/act/sequence-grade.d.ts +15 -1
  357. package/dist/surface/tools/act/sequence-grade.js +45 -27
  358. package/dist/surface/tools/act/settle-in-flight.js +27 -15
  359. package/dist/surface/tools/act-command.d.ts +23 -0
  360. package/dist/surface/tools/act-command.js +50 -0
  361. package/dist/surface/tools/act-sequence-tool.js +81 -50
  362. package/dist/surface/tools/act-tools.d.ts +1 -13
  363. package/dist/surface/tools/act-tools.js +83 -95
  364. package/dist/surface/tools/agent/build-staleness.d.ts +1 -1
  365. package/dist/surface/tools/agent/build-staleness.js +1 -1
  366. package/dist/surface/tools/assert/assert-verdict.js +18 -12
  367. package/dist/surface/tools/browser-tools.js +87 -13
  368. package/dist/surface/tools/compare-tools.d.ts +11 -0
  369. package/dist/surface/tools/compare-tools.js +94 -0
  370. package/dist/surface/tools/coverage-tools.js +1 -1
  371. package/dist/surface/tools/dynamic-tools.js +11 -3
  372. package/dist/surface/tools/empty-session-list.d.ts +2 -0
  373. package/dist/surface/tools/empty-session-list.js +4 -2
  374. package/dist/surface/tools/error-recovery.d.ts +12 -1
  375. package/dist/surface/tools/error-recovery.js +131 -40
  376. package/dist/surface/tools/explore-tools.js +1 -1
  377. package/dist/surface/tools/invoke-tool.js +29 -21
  378. package/dist/surface/tools/lease-coverage-tools.d.ts +49 -0
  379. package/dist/surface/tools/lease-coverage-tools.js +128 -0
  380. package/dist/surface/tools/lease-hint.d.ts +42 -1
  381. package/dist/surface/tools/lease-hint.js +52 -3
  382. package/dist/surface/tools/lease-readiness.d.ts +47 -0
  383. package/dist/surface/tools/lease-readiness.js +126 -0
  384. package/dist/surface/tools/lease-seed.d.ts +16 -1
  385. package/dist/surface/tools/lease-seed.js +37 -4
  386. package/dist/surface/tools/lease-tools.d.ts +3 -41
  387. package/dist/surface/tools/lease-tools.js +104 -124
  388. package/dist/surface/tools/lease-url-identity.d.ts +46 -0
  389. package/dist/surface/tools/lease-url-identity.js +97 -0
  390. package/dist/surface/tools/merge-tools.js +99 -2
  391. package/dist/surface/tools/merged-name-redirect.js +5 -1
  392. package/dist/surface/tools/observe-tools.js +15 -9
  393. package/dist/surface/tools/read/console-pre-attach.d.ts +19 -0
  394. package/dist/surface/tools/read/console-pre-attach.js +23 -0
  395. package/dist/surface/tools/read-tools.js +33 -30
  396. package/dist/surface/tools/real-input-attempt.d.ts +0 -8
  397. package/dist/surface/tools/real-input-attempt.js +143 -28
  398. package/dist/surface/tools/repeat-hint.d.ts +40 -0
  399. package/dist/surface/tools/repeat-hint.js +171 -0
  400. package/dist/surface/tools/run-report.d.ts +2 -2
  401. package/dist/surface/tools/run-report.js +27 -15
  402. package/dist/surface/tools/session-ports.d.ts +14 -0
  403. package/dist/surface/tools/session-ports.js +53 -0
  404. package/dist/surface/tools/tool-kit.d.ts +18 -0
  405. package/dist/surface/tools/tool-kit.js +9 -3
  406. package/dist/surface/tools/tool-surface.js +0 -1
  407. package/dist/surface/tools/tools.js +54 -18
  408. package/dist/surface/tools/type-spelling.d.ts +13 -0
  409. package/dist/surface/tools/type-spelling.js +36 -0
  410. package/dist/telemetry/agent-client.d.ts +6 -0
  411. package/dist/telemetry/agent-client.js +10 -0
  412. package/dist/telemetry/argument-shape.js +17 -7
  413. package/dist/telemetry/cli-telemetry.d.ts +10 -1
  414. package/dist/telemetry/cli-telemetry.js +15 -0
  415. package/dist/telemetry/init-telemetry.d.ts +2 -1
  416. package/dist/telemetry/init-telemetry.js +47 -2
  417. package/dist/telemetry/install-trace.js +23 -4
  418. package/dist/telemetry/onboarding-funnel.d.ts +19 -2
  419. package/dist/telemetry/onboarding-funnel.js +25 -3
  420. package/dist/telemetry/proxy-telemetry.d.ts +2 -1
  421. package/dist/telemetry/proxy-telemetry.js +2 -2
  422. package/dist/telemetry/session-metrics.d.ts +1 -1
  423. package/dist/telemetry/session-metrics.js +67 -27
  424. package/dist/telemetry/telemetry.d.ts +3 -1
  425. package/dist/telemetry/telemetry.js +60 -28
  426. package/dist/telemetry/tool-refused.d.ts +6 -3
  427. package/dist/telemetry/tool-refused.js +15 -3
  428. package/docs/actions.mdx +3 -3
  429. package/docs/agent-cheatsheet.md +1 -1
  430. package/docs/architecture.md +3 -6
  431. package/docs/capabilities.mdx +61 -1
  432. package/docs/cli/affected.mdx +9 -7
  433. package/docs/cli/cloud.mdx +3 -3
  434. package/docs/cli/compare.mdx +94 -0
  435. package/docs/cli/doctor.mdx +41 -2
  436. package/docs/cli/grade.mdx +97 -0
  437. package/docs/cli/help.mdx +4 -2
  438. package/docs/cli/license.mdx +13 -12
  439. package/docs/cli/restart.mdx +7 -5
  440. package/docs/cli/rollback.mdx +5 -5
  441. package/docs/cli/setup.mdx +13 -2
  442. package/docs/cli/status.mdx +4 -0
  443. package/docs/cli/stop.mdx +3 -3
  444. package/docs/cli/update.mdx +2 -2
  445. package/docs/cli/verify.mdx +23 -1
  446. package/docs/cli.mdx +34 -24
  447. package/docs/deploy-checks.md +25 -0
  448. package/docs/desktop.mdx +1 -1
  449. package/docs/enterprise.md +17 -22
  450. package/docs/environment.mdx +1 -0
  451. package/docs/first-drive.md +1 -1
  452. package/docs/flows.md +11 -1
  453. package/docs/frameworks.mdx +9 -9
  454. package/docs/getting-started.md +1 -1
  455. package/docs/install-manual.mdx +16 -1
  456. package/docs/license-activation.mdx +3 -3
  457. package/docs/packages/engine.mdx +1 -1
  458. package/docs/packages/server.mdx +1 -1
  459. package/docs/packages/tauri.mdx +1 -1
  460. package/docs/packages/test.mdx +1 -1
  461. package/docs/packages.mdx +1 -1
  462. package/docs/platform-integration.md +1 -1
  463. package/docs/predicates.mdx +1 -1
  464. package/docs/quickstart.mdx +68 -49
  465. package/docs/skill-setup.md +1 -1
  466. package/docs/skill.md +14 -13
  467. package/docs/telemetry.md +6 -4
  468. package/docs/tools/navigate.mdx +1 -1
  469. package/docs/tools/verify.mdx +4 -1
  470. package/docs/troubleshooting.mdx +1 -1
  471. package/docs/usage.md +17 -14
  472. package/package.json +18 -14
  473. package/LICENSE-ENTERPRISE +0 -37
  474. package/dist/features/ee/audit-log.d.ts +0 -14
  475. package/dist/features/ee/audit-log.js +0 -11
  476. package/dist/features/exhaust/exhaust-run.d.ts +0 -33
  477. package/dist/features/exhaust/exhaust-run.js +0 -82
@@ -11,30 +11,32 @@
11
11
  */
12
12
  import { z } from 'zod';
13
13
  import { timeoutMsSchema } from './args/numeric-bounds.js';
14
- import { compileSequenceStep, pathOf, wroteSince } from '../../language/flows/replay.js';
14
+ import { compileSequenceStep, pageOf, wroteSince } from '../../language/flows/replay.js';
15
15
  import { DEFAULT_SEQUENCE_STEP_TIMEOUT_MS } from '../../language/flows/flow-step-runners.js';
16
16
  import { sequenceStepArgs } from './act/act-preflight.js';
17
- import { REPLAY_PROGRAM_VERSION, ReticleTool, Verified, VerifiedReason, checkIntent, } from '@reticlehq/core';
17
+ import { REPLAY_PROGRAM_VERSION, ReticleCommand, ReticleTool, Verified, VerifiedReason, checkIntent, } from '@reticlehq/core';
18
18
  import { healthEnvelope } from '../../portal/session/session-health.js';
19
19
  import { pausedShortCircuit, pausedOutputShape, withControl, } from '../../portal/session/control-envelope.js';
20
- import { asRecord, isAbsenceDerived, isAdvisory } from '@reticlehq/core';
20
+ import { asRecord, asString, isAbsenceDerived, isAdvisory } from '@reticlehq/core';
21
+ import { couldNotEvaluate } from '@reticlehq/engine/evidence/verified.js';
21
22
  import { sessionIdFromArgs } from './tools-helpers.js';
22
- import { describeStepResult, runStepWithStaleRetry } from './act/act-sequence-retry.js';
23
+ import { BURST_MAX_GAP_MS, describeStepResult, runStepWithStaleRetry, } from './act/act-sequence-retry.js';
23
24
  import { assertSequenceSteps } from './act/act-preflight.js';
24
25
  import { EnvelopeKey, sessionIdShape } from './tool-kit.js';
25
26
  import { takeStepShot } from '../../features/visual/step-shots.js';
26
- import { actCommand } from './act-tools.js';
27
+ import { actCommand } from './act-command.js';
27
28
  import { PredicateSchema, waitForPredicate, } from '@reticlehq/engine/question/predicate/predicate.js';
28
29
  import { DeviationMode, gradeSequence, JOURNEY_RECORDING, offerToKeep, } from './act/sequence-grade.js';
29
30
  import { stepEffect, appScope } from '@reticlehq/engine/evidence/step-effect.js';
30
31
  // resolveActTarget moved out of act-tools into its own module on this branch; #706 was written
31
32
  // against the older layout where act-tools re-exported it.
32
33
  import { resolveActTarget } from './act/act-target.js';
34
+ import { hiddenTargetField } from './act/resolve-target.js';
33
35
  import { gradeOfPredicate } from './assert/assert-grade.js';
34
36
  import { describeWaitTarget } from '@reticlehq/engine/evidence/unsettled.js';
35
37
  import { sourceOf } from './tools-helpers.js';
36
38
  import { confirmedByDeclaration } from './act/act-danger.js';
37
- import { unreachableTargetNote } from './act/act-observation.js';
39
+ import { diagnoseTimeout, unreachableTargetNote } from './act/act-observation.js';
38
40
  /**
39
41
  * The step's effect record, best-effort.
40
42
  *
@@ -54,20 +56,43 @@ function effectOf(session, since, expect) {
54
56
  return {};
55
57
  }
56
58
  }
59
+ /**
60
+ * Why a step's check decided nothing, when the target was reachable.
61
+ *
62
+ * A read that could not be evaluated gets the sentence `reticle_act_and_wait` gives for it, with the
63
+ * same diagnosis of a timed-out read. The plan gave the raw error only, so it named no fix (#2204).
64
+ */
65
+ function whyUndecided(verdict, session) {
66
+ if (true === verdict.observationLost) {
67
+ return `${verdict.failureReason ?? 'the observation was lost'} (the page left)`;
68
+ }
69
+ const missing = diagnoseTimeout(verdict.inconclusive, session);
70
+ if (missing !== undefined) {
71
+ return couldNotEvaluate(missing);
72
+ }
73
+ return verdict.failureReason ?? 'the predicate could not be read';
74
+ }
75
+ /** The step's action, for the sentence that names a step nobody could judge. */
76
+ function actionOf(step) {
77
+ const action = asString(step['action']);
78
+ return action === undefined ? {} : { action };
79
+ }
80
+ /** One step's verdict and its reason. */
81
+ function stepVerdict(check) {
82
+ if (check.held) {
83
+ return 0 < check.contradicted.length
84
+ ? { verified: Verified.NO, reason: VerifiedReason.CONTRADICTED }
85
+ : { verified: Verified.YES, reason: undefined };
86
+ }
87
+ if (check.undecided) {
88
+ const reason = true === check.unreachable ? VerifiedReason.INCONCLUSIVE : VerifiedReason.OBSERVATION_LOST;
89
+ return { verified: Verified.UNKNOWN, reason };
90
+ }
91
+ return { verified: Verified.NO, reason: VerifiedReason.ASSERTION_FAILED };
92
+ }
57
93
  /** The verdict effect for one step: the same rules act_and_wait applies to one action. */
58
94
  function stepVerdictEffect(check) {
59
- const { verified, reason } = check.held
60
- ? 0 < check.contradicted.length
61
- ? { verified: Verified.NO, reason: VerifiedReason.CONTRADICTED }
62
- : { verified: Verified.YES, reason: undefined }
63
- : check.undecided
64
- ? {
65
- verified: Verified.UNKNOWN,
66
- reason: true === check.unreachable
67
- ? VerifiedReason.INCONCLUSIVE
68
- : VerifiedReason.OBSERVATION_LOST,
69
- }
70
- : { verified: Verified.NO, reason: VerifiedReason.ASSERTION_FAILED };
95
+ const { verified, reason } = stepVerdict(check);
71
96
  const source = sourceOf(check.source);
72
97
  return {
73
98
  claim: describeWaitTarget(check.expect),
@@ -93,18 +118,6 @@ function journalStep(session, args, effect) {
93
118
  // ponytail: a session without a journal (a test double, journaling off) keeps no check.
94
119
  }
95
120
  }
96
- /**
97
- * Ceiling for a burst gap. Past this it is not a burst, it is a paced walk.
98
- *
99
- * HOW TO PICK A GAP, because both edges are real and neither is guessable. It must outlast the
100
- * handler committing and dispatching its request, and undercut the response it is racing.
101
- * Measured against a superseded-filter race (the superseded query 700ms, the one replacing it 90ms):
102
- * at 0ms the first request was never issued at all, and at the ordinary settle (~500ms in a
103
- * throttled tab, where rAF never fires and the frame budget always times out) the two clicks
104
- * serialised and never overlapped. 50ms sat in the window. A different app needs a different
105
- * number: read its own slow endpoint.
106
- */
107
- const BURST_MAX_GAP_MS = 500;
108
121
  /** A step error that means nothing was acted on, or the page went away with the observation. */
109
122
  const UNJUDGED_STEP = /matched no element|no longer resolves|session disconnected|session (was )?replaced/i;
110
123
  export const ACT_SEQUENCE_TOOL = {
@@ -153,6 +166,8 @@ export const ACT_SEQUENCE_TOOL = {
153
166
  stopped_at: z.number().optional(),
154
167
  /** THE field to gate on: "yes" | "no" | "unknown" — see `because`. */
155
168
  verified: z.string().optional(),
169
+ /** The deciding clause of `verified`, from the same list as every other verdict. */
170
+ verifiedReason: z.string().optional(),
156
171
  because: z.string().optional(),
157
172
  /**
158
173
  * Present only when the plan PROVED something — see `offerToKeep`. A plan that declared nothing
@@ -181,10 +196,11 @@ export const ACT_SEQUENCE_TOOL = {
181
196
  handler: async (deps, args) => {
182
197
  const session = deps.sessions.resolve(sessionIdFromArgs(args));
183
198
  const paused = pausedShortCircuit(session);
184
- if (paused !== undefined)
199
+ if (paused !== undefined) {
185
200
  return paused;
201
+ }
186
202
  const since = session.elapsed();
187
- const pageBefore = pathOf(session.url);
203
+ const pageBefore = pageOf(session.url);
188
204
  session.beginAction(ReticleTool.ACT_SEQUENCE, asRecord(args));
189
205
  try {
190
206
  const inputSteps = Array.isArray(args['steps']) ? args['steps'] : [];
@@ -226,13 +242,17 @@ export const ACT_SEQUENCE_TOOL = {
226
242
  // Resolve `target` with the same helper reticle_act uses, then dispatch by ref. Passing
227
243
  // the unresolved step through used to send `ref: undefined` and the browser blamed a
228
244
  // stale empty ref — the caller went looking for a re-render instead of a missing locator.
245
+ // Set by the resolve below, so the step row names a hidden match the step acted on.
246
+ let hidden = {};
229
247
  const outcome = await runStepWithStaleRetry(async () => {
230
248
  const resolved = await resolveActTarget(session, step, perStepTimeout);
231
- if ('error' === resolved.kind)
249
+ if ('error' === resolved.kind) {
232
250
  return { ok: false, error: resolved.message };
251
+ }
252
+ hidden = hiddenTargetField(resolved);
233
253
  // In burst mode every step carries a zero settle budget, so step N+1 is dispatched
234
254
  // while step N is still in flight. That overlap IS the test — see `burst` above.
235
- return actCommand(deps, session, {
255
+ return actCommand(deps, session, ReticleCommand.ACT, {
236
256
  ref: resolved.ref,
237
257
  action: step['action'],
238
258
  // `sequenceStepArgs` reads a step's arguments flat OR nested — keep it, it is the
@@ -253,8 +273,9 @@ export const ACT_SEQUENCE_TOOL = {
253
273
  if (burstGapMs !== undefined && i < inputSteps.length - 1) {
254
274
  const elapsed = session.elapsed() - stepSince;
255
275
  const remaining = burstGapMs - elapsed;
256
- if (remaining > 0)
276
+ if (remaining > 0) {
257
277
  await new Promise((r) => setTimeout(r, remaining));
278
+ }
258
279
  }
259
280
  if (!outcome.ok) {
260
281
  stalledAt = i;
@@ -266,6 +287,7 @@ export const ACT_SEQUENCE_TOOL = {
266
287
  });
267
288
  const error = outcome.error ?? 'the step could not be performed';
268
289
  expectations.push({
290
+ ...actionOf(step),
269
291
  declared: undefined !== step['expect'],
270
292
  held: false,
271
293
  observed: error,
@@ -285,6 +307,7 @@ export const ACT_SEQUENCE_TOOL = {
285
307
  const describe = () => ({
286
308
  ...describeStepResult(step, asRecord(outcome.result)),
287
309
  ...effectOf(session, stepSince, step['expect']),
310
+ ...hidden,
288
311
  });
289
312
  const deciding = (step) => (step.contradictions ?? [])
290
313
  .map((c) => c.kind)
@@ -302,8 +325,15 @@ export const ACT_SEQUENCE_TOOL = {
302
325
  if (!parsed.success) {
303
326
  const described = describe();
304
327
  const contradicted = deciding(described);
328
+ // What a quiet, undeclared plan is graded on — see gradeSequence.
329
+ const doubted = (described.contradictions ?? [])
330
+ .map((c) => c.kind)
331
+ .filter((kind) => !isAdvisory(kind) && isAbsenceDerived(kind));
305
332
  expectations.push({
333
+ ...actionOf(step),
306
334
  declared: false,
335
+ settled: true === asRecord(outcome.result)['settled'],
336
+ ...(0 === doubted.length ? {} : { doubted }),
307
337
  ...(0 === contradicted.length ? {} : { contradicted }),
308
338
  ...(unreachable === undefined ? {} : { undecided: unreachable }),
309
339
  });
@@ -337,15 +367,12 @@ export const ACT_SEQUENCE_TOOL = {
337
367
  assertion: verdict.assertion,
338
368
  }));
339
369
  expectations.push({
370
+ ...actionOf(step),
340
371
  declared: true,
341
372
  held,
342
373
  ...(undecided
343
374
  ? {
344
- undecided: unreachable !== undefined
345
- ? unreachable
346
- : true === verdict.observationLost
347
- ? `${verdict.failureReason ?? 'the observation was lost'} (the page left)`
348
- : (verdict.failureReason ?? 'the predicate could not be read'),
375
+ undecided: unreachable ?? whyUndecided(verdict, session),
349
376
  }
350
377
  : {}),
351
378
  ...disagreement,
@@ -364,8 +391,9 @@ export const ACT_SEQUENCE_TOOL = {
364
391
  });
365
392
  if (!held) {
366
393
  stoppedAt ??= i;
367
- if (DeviationMode.HALT === onDeviation)
394
+ if (DeviationMode.HALT === onDeviation) {
368
395
  break;
396
+ }
369
397
  }
370
398
  }
371
399
  }
@@ -393,11 +421,8 @@ export const ACT_SEQUENCE_TOOL = {
393
421
  * The halted step counts: it WAS dispatched, and only the consequence it declared failed
394
422
  * afterwards. A stalled step never ran, which is why that index stays exclusive.
395
423
  */
396
- const completed = DeviationMode.CONTINUE === onDeviation
397
- ? (stalledAt ?? inputSteps.length)
398
- : stoppedAt !== undefined
399
- ? stoppedAt + 1
400
- : (stalledAt ?? inputSteps.length);
424
+ const halted = DeviationMode.CONTINUE === onDeviation ? undefined : stoppedAt;
425
+ const completed = halted === undefined ? (stalledAt ?? inputSteps.length) : halted + 1;
401
426
  if (completed > 0) {
402
427
  session.lastAct.markActed(since, undefined, undefined);
403
428
  }
@@ -417,8 +442,9 @@ export const ACT_SEQUENCE_TOOL = {
417
442
  const compiled = (steps) => {
418
443
  const step = compileSequenceStep({ ...args, steps }, { count: completed, steps: stepResults.slice(0, completed) });
419
444
  // The journey sent a write request: saved `writes`, so a replay does not repeat it unasked.
420
- if (wroteSince(session, since))
445
+ if (wroteSince(session, since)) {
421
446
  step.writes = true;
447
+ }
422
448
  return step;
423
449
  };
424
450
  const recorded = compiled(proved);
@@ -426,9 +452,12 @@ export const ACT_SEQUENCE_TOOL = {
426
452
  const onPage = (step) => pageBefore === undefined ? step : { ...step, page: pageBefore };
427
453
  // Every step was on Reticle's own panel: nothing of the app's journey to record.
428
454
  const onApp = asRecord(recorded.args)['steps'];
429
- if (Array.isArray(onApp) && 0 < onApp.length)
430
- deps.recordings.capture(onPage(compiled(ran)), undefined, session.id, onPage(recorded));
431
- deps.recordings.markEnded(pathOf(session.url), session.id);
455
+ // The route as act_and_wait gives it: the ambient tape is cut into journeys by route, and a
456
+ // step with none started a journey of its own and lost the act that came after it.
457
+ if (Array.isArray(onApp) && 0 < onApp.length) {
458
+ deps.recordings.capture(onPage(compiled(ran)), pageBefore, session.id, onPage(recorded));
459
+ }
460
+ deps.recordings.markEnded(pageOf(session.url), session.id);
432
461
  }
433
462
  /*
434
463
  * The grade, and the coverage it is never allowed to hide.
@@ -440,6 +469,7 @@ export const ACT_SEQUENCE_TOOL = {
440
469
  const grade = gradeSequence(expectations, {
441
470
  planned: inputSteps.length,
442
471
  dispatched: completed > 0,
472
+ captureLost: session.lostSince(since),
443
473
  });
444
474
  // The journey a `keep` offer names, held as a stopped recording so `reticle_flow_save
445
475
  // { flowName: JOURNEY_RECORDING, saveAs }` saves exactly what was just driven. The offer used
@@ -464,6 +494,7 @@ export const ACT_SEQUENCE_TOOL = {
464
494
  ...(stalledAt !== undefined ? { stalled_at: stalledAt } : {}),
465
495
  ...(stoppedAt !== undefined ? { stopped_at: stoppedAt } : {}),
466
496
  verified: grade.verified,
497
+ verifiedReason: grade.reason,
467
498
  because: grade.because,
468
499
  // Offered at the one moment the compiled program is in hand and free to keep.
469
500
  ...(() => {
@@ -1,14 +1,2 @@
1
- import type { Session } from '../../portal/session/session.js';
2
- import { type ToolDef, type ToolDeps } from './tool-kit.js';
3
- /**
4
- * Single dispatch point for every ACT and ACT_SEQUENCE command.
5
- *
6
- * reticle_act, act_and_wait and act_sequence rewrite uploads here, once. The path resolves against
7
- * the session's project, not the daemon's folder, so a worktree uploads its own fixture (#1769).
8
- *
9
- * captureAct is called AFTER this, so the flow-recording captures the pre-rewrite args (the path
10
- * the agent actually wrote) rather than the base64 blob — replay would otherwise send 750 KiB of
11
- * base64 to the browser as if it were an inline content call.
12
- */
13
- export declare function actCommand(deps: ToolDeps, session: Session, actArgs: Record<string, unknown>, timeoutMs?: number): Promise<import('@reticlehq/core').CommandResult>;
1
+ import { type ToolDef } from './tool-kit.js';
14
2
  export declare const ACT_TOOLS: ToolDef[];