@reticlehq/server 2.1.0 → 2.2.1

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 (471) hide show
  1. package/LICENSE-ENTERPRISE +37 -0
  2. package/README.md +5 -1
  3. package/dist/bridge-security.d.ts +1 -1
  4. package/dist/bridge-security.js +1 -1
  5. package/dist/bridge.d.ts +7 -0
  6. package/dist/bridge.d.ts.map +1 -1
  7. package/dist/bridge.js +22 -3
  8. package/dist/bridge.js.map +1 -1
  9. package/dist/bridge.test-harness.d.ts +5 -0
  10. package/dist/bridge.test-harness.d.ts.map +1 -1
  11. package/dist/bridge.test-harness.js +4 -0
  12. package/dist/bridge.test-harness.js.map +1 -1
  13. package/dist/capsule/capsule-store.d.ts +66 -0
  14. package/dist/capsule/capsule-store.d.ts.map +1 -0
  15. package/dist/capsule/capsule-store.js +110 -0
  16. package/dist/capsule/capsule-store.js.map +1 -0
  17. package/dist/capsule/capsule.d.ts +19 -0
  18. package/dist/capsule/capsule.d.ts.map +1 -0
  19. package/dist/capsule/capsule.js +36 -0
  20. package/dist/capsule/capsule.js.map +1 -0
  21. package/dist/capsule/causal-summary.d.ts +36 -0
  22. package/dist/capsule/causal-summary.d.ts.map +1 -0
  23. package/dist/capsule/causal-summary.js +111 -0
  24. package/dist/capsule/causal-summary.js.map +1 -0
  25. package/dist/capsule/divergence.d.ts +31 -0
  26. package/dist/capsule/divergence.d.ts.map +1 -0
  27. package/dist/capsule/divergence.js +41 -0
  28. package/dist/capsule/divergence.js.map +1 -0
  29. package/dist/capsule/minimize.d.ts +13 -0
  30. package/dist/capsule/minimize.d.ts.map +1 -0
  31. package/dist/capsule/minimize.js +23 -0
  32. package/dist/capsule/minimize.js.map +1 -0
  33. package/dist/capsule/predicate-to-links.d.ts +9 -0
  34. package/dist/capsule/predicate-to-links.d.ts.map +1 -0
  35. package/dist/capsule/predicate-to-links.js +31 -0
  36. package/dist/capsule/predicate-to-links.js.map +1 -0
  37. package/dist/cli-flow-commands.d.ts +31 -0
  38. package/dist/cli-flow-commands.d.ts.map +1 -0
  39. package/dist/cli-flow-commands.js +207 -0
  40. package/dist/cli-flow-commands.js.map +1 -0
  41. package/dist/cli-parse.d.ts +36 -2
  42. package/dist/cli-parse.d.ts.map +1 -1
  43. package/dist/cli-parse.js +97 -2
  44. package/dist/cli-parse.js.map +1 -1
  45. package/dist/cli-port.d.ts +10 -4
  46. package/dist/cli-port.d.ts.map +1 -1
  47. package/dist/cli-port.js +32 -6
  48. package/dist/cli-port.js.map +1 -1
  49. package/dist/cli-verify.d.ts +2 -0
  50. package/dist/cli-verify.d.ts.map +1 -1
  51. package/dist/cli-verify.js +52 -11
  52. package/dist/cli-verify.js.map +1 -1
  53. package/dist/cli.d.ts +2 -3
  54. package/dist/cli.d.ts.map +1 -1
  55. package/dist/cli.js +175 -9
  56. package/dist/cli.js.map +1 -1
  57. package/dist/cloud/cloud-config.d.ts +37 -0
  58. package/dist/cloud/cloud-config.d.ts.map +1 -0
  59. package/dist/cloud/cloud-config.js +87 -0
  60. package/dist/cloud/cloud-config.js.map +1 -0
  61. package/dist/cloud/cloud-sync.d.ts +96 -3
  62. package/dist/cloud/cloud-sync.d.ts.map +1 -1
  63. package/dist/cloud/cloud-sync.js +131 -2
  64. package/dist/cloud/cloud-sync.js.map +1 -1
  65. package/dist/cloud-cli.d.ts +4 -0
  66. package/dist/cloud-cli.d.ts.map +1 -0
  67. package/dist/cloud-cli.js +507 -0
  68. package/dist/cloud-cli.js.map +1 -0
  69. package/dist/crawl/crawl-tools.d.ts.map +1 -1
  70. package/dist/crawl/crawl-tools.js +12 -0
  71. package/dist/crawl/crawl-tools.js.map +1 -1
  72. package/dist/crawl/crawl.d.ts +23 -1
  73. package/dist/crawl/crawl.d.ts.map +1 -1
  74. package/dist/crawl/crawl.js +36 -9
  75. package/dist/crawl/crawl.js.map +1 -1
  76. package/dist/daemon-resilience.d.ts +5 -5
  77. package/dist/daemon-resilience.js +5 -5
  78. package/dist/daemon.d.ts +1 -1
  79. package/dist/daemon.d.ts.map +1 -1
  80. package/dist/daemon.js +53 -8
  81. package/dist/daemon.js.map +1 -1
  82. package/dist/domain/domain-tools.d.ts.map +1 -1
  83. package/dist/domain/domain-tools.js +11 -1
  84. package/dist/domain/domain-tools.js.map +1 -1
  85. package/dist/domain/flow-risk.d.ts +4 -4
  86. package/dist/domain/flow-risk.js +4 -4
  87. package/dist/ee/audit-log.d.ts +2 -2
  88. package/dist/ee/audit-log.js +2 -2
  89. package/dist/events/event-filters.d.ts +29 -1
  90. package/dist/events/event-filters.d.ts.map +1 -1
  91. package/dist/events/event-filters.js +75 -1
  92. package/dist/events/event-filters.js.map +1 -1
  93. package/dist/events/predicate-eval.d.ts +15 -0
  94. package/dist/events/predicate-eval.d.ts.map +1 -1
  95. package/dist/events/predicate-eval.js +97 -18
  96. package/dist/events/predicate-eval.js.map +1 -1
  97. package/dist/events/predicate.d.ts +22 -1
  98. package/dist/events/predicate.d.ts.map +1 -1
  99. package/dist/events/predicate.js +154 -20
  100. package/dist/events/predicate.js.map +1 -1
  101. package/dist/events/ring-buffer.d.ts +3 -3
  102. package/dist/events/ring-buffer.d.ts.map +1 -1
  103. package/dist/events/ring-buffer.js +54 -8
  104. package/dist/events/ring-buffer.js.map +1 -1
  105. package/dist/flows/affected.d.ts +25 -0
  106. package/dist/flows/affected.d.ts.map +1 -0
  107. package/dist/flows/affected.js +36 -0
  108. package/dist/flows/affected.js.map +1 -0
  109. package/dist/flows/annotate.d.ts +4 -4
  110. package/dist/flows/annotate.js +4 -4
  111. package/dist/flows/assertion-integrity.d.ts +24 -0
  112. package/dist/flows/assertion-integrity.d.ts.map +1 -0
  113. package/dist/flows/assertion-integrity.js +27 -0
  114. package/dist/flows/assertion-integrity.js.map +1 -0
  115. package/dist/flows/assertion-tiers-store.d.ts +80 -0
  116. package/dist/flows/assertion-tiers-store.d.ts.map +1 -0
  117. package/dist/flows/assertion-tiers-store.js +99 -0
  118. package/dist/flows/assertion-tiers-store.js.map +1 -0
  119. package/dist/flows/buddy-status.d.ts +25 -0
  120. package/dist/flows/buddy-status.d.ts.map +1 -0
  121. package/dist/flows/buddy-status.js +33 -0
  122. package/dist/flows/buddy-status.js.map +1 -0
  123. package/dist/flows/coverage.d.ts +28 -0
  124. package/dist/flows/coverage.d.ts.map +1 -0
  125. package/dist/flows/coverage.js +22 -0
  126. package/dist/flows/coverage.js.map +1 -0
  127. package/dist/flows/decision.d.ts.map +1 -1
  128. package/dist/flows/decision.js +16 -8
  129. package/dist/flows/decision.js.map +1 -1
  130. package/dist/flows/flake-store.d.ts +20 -0
  131. package/dist/flows/flake-store.d.ts.map +1 -0
  132. package/dist/flows/flake-store.js +59 -0
  133. package/dist/flows/flake-store.js.map +1 -0
  134. package/dist/flows/flake.d.ts +58 -0
  135. package/dist/flows/flake.d.ts.map +1 -0
  136. package/dist/flows/flake.js +36 -0
  137. package/dist/flows/flake.js.map +1 -0
  138. package/dist/flows/flow-classify.d.ts +8 -8
  139. package/dist/flows/flow-classify.js +8 -8
  140. package/dist/flows/flow-replay-run.d.ts.map +1 -1
  141. package/dist/flows/flow-replay-run.js +58 -5
  142. package/dist/flows/flow-replay-run.js.map +1 -1
  143. package/dist/flows/flow-replay.d.ts +9 -0
  144. package/dist/flows/flow-replay.d.ts.map +1 -1
  145. package/dist/flows/flow-replay.js +48 -13
  146. package/dist/flows/flow-replay.js.map +1 -1
  147. package/dist/flows/flow-report.d.ts +4 -4
  148. package/dist/flows/flow-sources.d.ts +20 -0
  149. package/dist/flows/flow-sources.d.ts.map +1 -0
  150. package/dist/flows/flow-sources.js +33 -0
  151. package/dist/flows/flow-sources.js.map +1 -0
  152. package/dist/flows/flow-tools.d.ts +13 -1
  153. package/dist/flows/flow-tools.d.ts.map +1 -1
  154. package/dist/flows/flow-tools.js +116 -13
  155. package/dist/flows/flow-tools.js.map +1 -1
  156. package/dist/flows/flows.d.ts +9 -4
  157. package/dist/flows/flows.d.ts.map +1 -1
  158. package/dist/flows/flows.js +38 -21
  159. package/dist/flows/flows.js.map +1 -1
  160. package/dist/flows/gate.d.ts +39 -0
  161. package/dist/flows/gate.d.ts.map +1 -0
  162. package/dist/flows/gate.js +34 -0
  163. package/dist/flows/gate.js.map +1 -0
  164. package/dist/flows/git-changed.d.ts +9 -0
  165. package/dist/flows/git-changed.d.ts.map +1 -0
  166. package/dist/flows/git-changed.js +25 -0
  167. package/dist/flows/git-changed.js.map +1 -0
  168. package/dist/flows/heal-run.d.ts +1 -1
  169. package/dist/flows/heal-run.js +1 -1
  170. package/dist/flows/parallel-suite.d.ts +27 -0
  171. package/dist/flows/parallel-suite.d.ts.map +1 -0
  172. package/dist/flows/parallel-suite.js +51 -0
  173. package/dist/flows/parallel-suite.js.map +1 -0
  174. package/dist/flows/replay.d.ts.map +1 -1
  175. package/dist/flows/replay.js +33 -11
  176. package/dist/flows/replay.js.map +1 -1
  177. package/dist/flows/server-verify.d.ts +16 -0
  178. package/dist/flows/server-verify.d.ts.map +1 -0
  179. package/dist/flows/server-verify.js +43 -0
  180. package/dist/flows/server-verify.js.map +1 -0
  181. package/dist/flows/watch-batcher.d.ts +18 -0
  182. package/dist/flows/watch-batcher.d.ts.map +1 -0
  183. package/dist/flows/watch-batcher.js +20 -0
  184. package/dist/flows/watch-batcher.js.map +1 -0
  185. package/dist/honesty/blind-spots.d.ts +37 -0
  186. package/dist/honesty/blind-spots.d.ts.map +1 -0
  187. package/dist/honesty/blind-spots.js +57 -0
  188. package/dist/honesty/blind-spots.js.map +1 -0
  189. package/dist/honesty/honesty.d.ts +57 -0
  190. package/dist/honesty/honesty.d.ts.map +1 -0
  191. package/dist/honesty/honesty.js +63 -0
  192. package/dist/honesty/honesty.js.map +1 -0
  193. package/dist/http-server.d.ts +5 -5
  194. package/dist/http-server.js +4 -4
  195. package/dist/idle-shutdown.d.ts +2 -2
  196. package/dist/idle-shutdown.js +2 -2
  197. package/dist/index.d.ts +3 -2
  198. package/dist/index.d.ts.map +1 -1
  199. package/dist/index.js +98 -13
  200. package/dist/index.js.map +1 -1
  201. package/dist/init/agent-rules.d.ts +38 -0
  202. package/dist/init/agent-rules.d.ts.map +1 -0
  203. package/dist/init/agent-rules.js +65 -0
  204. package/dist/init/agent-rules.js.map +1 -0
  205. package/dist/init/plan.d.ts +6 -0
  206. package/dist/init/plan.d.ts.map +1 -1
  207. package/dist/init/plan.js +79 -3
  208. package/dist/init/plan.js.map +1 -1
  209. package/dist/init/run.d.ts.map +1 -1
  210. package/dist/init/run.js +4 -0
  211. package/dist/init/run.js.map +1 -1
  212. package/dist/init/snippets.js +1 -1
  213. package/dist/init/vite-config.d.ts +1 -1
  214. package/dist/init/vite-config.js +2 -2
  215. package/dist/init/vite-config.js.map +1 -1
  216. package/dist/input/network-detail.d.ts +74 -0
  217. package/dist/input/network-detail.d.ts.map +1 -0
  218. package/dist/input/network-detail.js +160 -0
  219. package/dist/input/network-detail.js.map +1 -0
  220. package/dist/input/network-mock.d.ts +4 -4
  221. package/dist/input/real-input.d.ts +44 -11
  222. package/dist/input/real-input.d.ts.map +1 -1
  223. package/dist/input/real-input.js +57 -9
  224. package/dist/input/real-input.js.map +1 -1
  225. package/dist/journal/ambient-store.d.ts +16 -0
  226. package/dist/journal/ambient-store.d.ts.map +1 -0
  227. package/dist/journal/ambient-store.js +46 -0
  228. package/dist/journal/ambient-store.js.map +1 -0
  229. package/dist/journal/ambient.d.ts +48 -0
  230. package/dist/journal/ambient.d.ts.map +1 -0
  231. package/dist/journal/ambient.js +48 -0
  232. package/dist/journal/ambient.js.map +1 -0
  233. package/dist/journal/attach-journal.d.ts +22 -0
  234. package/dist/journal/attach-journal.d.ts.map +1 -0
  235. package/dist/journal/attach-journal.js +20 -0
  236. package/dist/journal/attach-journal.js.map +1 -0
  237. package/dist/journal/deviation-report.d.ts +28 -0
  238. package/dist/journal/deviation-report.d.ts.map +1 -0
  239. package/dist/journal/deviation-report.js +54 -0
  240. package/dist/journal/deviation-report.js.map +1 -0
  241. package/dist/journal/deviation-service.d.ts +12 -0
  242. package/dist/journal/deviation-service.d.ts.map +1 -0
  243. package/dist/journal/deviation-service.js +32 -0
  244. package/dist/journal/deviation-service.js.map +1 -0
  245. package/dist/journal/envelope-store.d.ts +19 -0
  246. package/dist/journal/envelope-store.d.ts.map +1 -0
  247. package/dist/journal/envelope-store.js +62 -0
  248. package/dist/journal/envelope-store.js.map +1 -0
  249. package/dist/journal/envelope.d.ts +232 -0
  250. package/dist/journal/envelope.d.ts.map +1 -0
  251. package/dist/journal/envelope.js +94 -0
  252. package/dist/journal/envelope.js.map +1 -0
  253. package/dist/journal/journal-query.d.ts +20 -0
  254. package/dist/journal/journal-query.d.ts.map +1 -0
  255. package/dist/journal/journal-query.js +28 -0
  256. package/dist/journal/journal-query.js.map +1 -0
  257. package/dist/journal/journal-recorder.d.ts +38 -0
  258. package/dist/journal/journal-recorder.d.ts.map +1 -0
  259. package/dist/journal/journal-recorder.js +81 -0
  260. package/dist/journal/journal-recorder.js.map +1 -0
  261. package/dist/journal/retention.d.ts +21 -0
  262. package/dist/journal/retention.d.ts.map +1 -0
  263. package/dist/journal/retention.js +50 -0
  264. package/dist/journal/retention.js.map +1 -0
  265. package/dist/journal/rollups.d.ts +49 -0
  266. package/dist/journal/rollups.d.ts.map +1 -0
  267. package/dist/journal/rollups.js +83 -0
  268. package/dist/journal/rollups.js.map +1 -0
  269. package/dist/journal/session-end.d.ts +32 -0
  270. package/dist/journal/session-end.d.ts.map +1 -0
  271. package/dist/journal/session-end.js +52 -0
  272. package/dist/journal/session-end.js.map +1 -0
  273. package/dist/journal/session-journal.d.ts +25 -0
  274. package/dist/journal/session-journal.d.ts.map +1 -0
  275. package/dist/journal/session-journal.js +168 -0
  276. package/dist/journal/session-journal.js.map +1 -0
  277. package/dist/license/license.d.ts +8 -3
  278. package/dist/license/license.d.ts.map +1 -1
  279. package/dist/license/license.js +34 -11
  280. package/dist/license/license.js.map +1 -1
  281. package/dist/mcp-proxy.d.ts +20 -0
  282. package/dist/mcp-proxy.d.ts.map +1 -1
  283. package/dist/mcp-proxy.js +45 -27
  284. package/dist/mcp-proxy.js.map +1 -1
  285. package/dist/mcp.d.ts +14 -0
  286. package/dist/mcp.d.ts.map +1 -1
  287. package/dist/mcp.js +79 -9
  288. package/dist/mcp.js.map +1 -1
  289. package/dist/oracles/flow-instrument-gaps.d.ts +19 -0
  290. package/dist/oracles/flow-instrument-gaps.d.ts.map +1 -0
  291. package/dist/oracles/flow-instrument-gaps.js +45 -0
  292. package/dist/oracles/flow-instrument-gaps.js.map +1 -0
  293. package/dist/oracles/propose-consequences.d.ts +22 -0
  294. package/dist/oracles/propose-consequences.d.ts.map +1 -0
  295. package/dist/oracles/propose-consequences.js +93 -0
  296. package/dist/oracles/propose-consequences.js.map +1 -0
  297. package/dist/oracles/self-instrument.d.ts +32 -0
  298. package/dist/oracles/self-instrument.d.ts.map +1 -0
  299. package/dist/oracles/self-instrument.js +44 -0
  300. package/dist/oracles/self-instrument.js.map +1 -0
  301. package/dist/pairing-token.d.ts +1 -1
  302. package/dist/phenomena/phenomena.d.ts +27 -0
  303. package/dist/phenomena/phenomena.d.ts.map +1 -0
  304. package/dist/phenomena/phenomena.js +102 -0
  305. package/dist/phenomena/phenomena.js.map +1 -0
  306. package/dist/pool/browser-pool.d.ts +5 -3
  307. package/dist/pool/browser-pool.d.ts.map +1 -1
  308. package/dist/pool/browser-pool.js +21 -3
  309. package/dist/pool/browser-pool.js.map +1 -1
  310. package/dist/pool/playwright-launcher.d.ts +2 -0
  311. package/dist/pool/playwright-launcher.d.ts.map +1 -1
  312. package/dist/pool/playwright-launcher.js +21 -2
  313. package/dist/pool/playwright-launcher.js.map +1 -1
  314. package/dist/project/baselines.d.ts.map +1 -1
  315. package/dist/project/baselines.js +5 -3
  316. package/dist/project/baselines.js.map +1 -1
  317. package/dist/project/file-lock.d.ts +2 -0
  318. package/dist/project/file-lock.d.ts.map +1 -0
  319. package/dist/project/file-lock.js +24 -0
  320. package/dist/project/file-lock.js.map +1 -0
  321. package/dist/project/fs-port.d.ts +18 -0
  322. package/dist/project/fs-port.d.ts.map +1 -1
  323. package/dist/project/fs-port.js +24 -2
  324. package/dist/project/fs-port.js.map +1 -1
  325. package/dist/project/project-store.d.ts.map +1 -1
  326. package/dist/project/project-store.js +33 -15
  327. package/dist/project/project-store.js.map +1 -1
  328. package/dist/project/project-tools.d.ts +0 -6
  329. package/dist/project/project-tools.d.ts.map +1 -1
  330. package/dist/project/project-tools.js +52 -6
  331. package/dist/project/project-tools.js.map +1 -1
  332. package/dist/project/reticle-dir.d.ts +39 -14
  333. package/dist/project/reticle-dir.d.ts.map +1 -1
  334. package/dist/project/reticle-dir.js +30 -4
  335. package/dist/project/reticle-dir.js.map +1 -1
  336. package/dist/runs/build-verification-run.d.ts +1 -1
  337. package/dist/runs/build-verification-run.js +1 -1
  338. package/dist/runs/repair-prompt.d.ts +2 -0
  339. package/dist/runs/repair-prompt.d.ts.map +1 -1
  340. package/dist/runs/repair-prompt.js +14 -1
  341. package/dist/runs/repair-prompt.js.map +1 -1
  342. package/dist/runs/reticle-runner.d.ts +1 -1
  343. package/dist/runs/reticle-runner.d.ts.map +1 -1
  344. package/dist/runs/run-diff.d.ts +34 -0
  345. package/dist/runs/run-diff.d.ts.map +1 -0
  346. package/dist/runs/run-diff.js +71 -0
  347. package/dist/runs/run-diff.js.map +1 -0
  348. package/dist/runs/run-store.d.ts +6 -1
  349. package/dist/runs/run-store.d.ts.map +1 -1
  350. package/dist/runs/run-store.js +22 -2
  351. package/dist/runs/run-store.js.map +1 -1
  352. package/dist/runs/run-tools.d.ts.map +1 -1
  353. package/dist/runs/run-tools.js +16 -3
  354. package/dist/runs/run-tools.js.map +1 -1
  355. package/dist/runs/verification-sync.d.ts +24 -0
  356. package/dist/runs/verification-sync.d.ts.map +1 -0
  357. package/dist/runs/verification-sync.js +67 -0
  358. package/dist/runs/verification-sync.js.map +1 -0
  359. package/dist/runs/verify-server.js +1 -1
  360. package/dist/runs/verify-server.js.map +1 -1
  361. package/dist/session/control-envelope.d.ts +9 -1
  362. package/dist/session/control-envelope.d.ts.map +1 -1
  363. package/dist/session/control-envelope.js +13 -1
  364. package/dist/session/control-envelope.js.map +1 -1
  365. package/dist/session/live-control-tools.d.ts +1 -1
  366. package/dist/session/live-control-tools.js +1 -1
  367. package/dist/session/live-control.d.ts +38 -0
  368. package/dist/session/live-control.d.ts.map +1 -0
  369. package/dist/session/live-control.js +64 -0
  370. package/dist/session/live-control.js.map +1 -0
  371. package/dist/session/observed-state.d.ts +46 -0
  372. package/dist/session/observed-state.d.ts.map +1 -0
  373. package/dist/session/observed-state.js +76 -0
  374. package/dist/session/observed-state.js.map +1 -0
  375. package/dist/session/output-budget.d.ts +9 -0
  376. package/dist/session/output-budget.d.ts.map +1 -1
  377. package/dist/session/output-budget.js +9 -0
  378. package/dist/session/output-budget.js.map +1 -1
  379. package/dist/session/review-store.d.ts +1 -1
  380. package/dist/session/review-store.d.ts.map +1 -1
  381. package/dist/session/review-store.js +2 -2
  382. package/dist/session/review-store.js.map +1 -1
  383. package/dist/session/session-manager.d.ts +9 -7
  384. package/dist/session/session-manager.d.ts.map +1 -1
  385. package/dist/session/session-manager.js +8 -8
  386. package/dist/session/session-manager.js.map +1 -1
  387. package/dist/session/session-readiness.js +1 -1
  388. package/dist/session/session-readiness.js.map +1 -1
  389. package/dist/session/session-reaper.d.ts +1 -1
  390. package/dist/session/session-reaper.js +1 -1
  391. package/dist/session/session-recommendation.d.ts +1 -1
  392. package/dist/session/session-recommendation.js +1 -1
  393. package/dist/session/session-tools.js +1 -1
  394. package/dist/session/session-tools.js.map +1 -1
  395. package/dist/session/session.d.ts +43 -11
  396. package/dist/session/session.d.ts.map +1 -1
  397. package/dist/session/session.js +115 -46
  398. package/dist/session/session.js.map +1 -1
  399. package/dist/telemetry/telemetry.d.ts +41 -0
  400. package/dist/telemetry/telemetry.d.ts.map +1 -0
  401. package/dist/telemetry/telemetry.js +220 -0
  402. package/dist/telemetry/telemetry.js.map +1 -0
  403. package/dist/tools/act-tools.d.ts.map +1 -1
  404. package/dist/tools/act-tools.js +252 -70
  405. package/dist/tools/act-tools.js.map +1 -1
  406. package/dist/tools/act-view.d.ts +4 -4
  407. package/dist/tools/act-view.js +4 -4
  408. package/dist/tools/browser-tools.d.ts.map +1 -1
  409. package/dist/tools/browser-tools.js +32 -8
  410. package/dist/tools/browser-tools.js.map +1 -1
  411. package/dist/tools/contract-tools.d.ts.map +1 -1
  412. package/dist/tools/contract-tools.js +5 -0
  413. package/dist/tools/contract-tools.js.map +1 -1
  414. package/dist/tools/dynamic-tools.d.ts.map +1 -1
  415. package/dist/tools/dynamic-tools.js +8 -7
  416. package/dist/tools/dynamic-tools.js.map +1 -1
  417. package/dist/tools/invoke-tool.d.ts.map +1 -1
  418. package/dist/tools/invoke-tool.js +36 -29
  419. package/dist/tools/invoke-tool.js.map +1 -1
  420. package/dist/tools/lease-tools.d.ts +16 -0
  421. package/dist/tools/lease-tools.d.ts.map +1 -1
  422. package/dist/tools/lease-tools.js +11 -0
  423. package/dist/tools/lease-tools.js.map +1 -1
  424. package/dist/tools/merge-tools.d.ts +43 -0
  425. package/dist/tools/merge-tools.d.ts.map +1 -0
  426. package/dist/tools/merge-tools.js +66 -0
  427. package/dist/tools/merge-tools.js.map +1 -0
  428. package/dist/tools/observe-tools.d.ts.map +1 -1
  429. package/dist/tools/observe-tools.js +172 -29
  430. package/dist/tools/observe-tools.js.map +1 -1
  431. package/dist/tools/profiles.d.ts +18 -13
  432. package/dist/tools/profiles.d.ts.map +1 -1
  433. package/dist/tools/profiles.js +39 -33
  434. package/dist/tools/profiles.js.map +1 -1
  435. package/dist/tools/query-paginate.d.ts +9 -2
  436. package/dist/tools/query-paginate.d.ts.map +1 -1
  437. package/dist/tools/query-paginate.js +21 -4
  438. package/dist/tools/query-paginate.js.map +1 -1
  439. package/dist/tools/read-tools.d.ts.map +1 -1
  440. package/dist/tools/read-tools.js +30 -1
  441. package/dist/tools/read-tools.js.map +1 -1
  442. package/dist/tools/snapshot-delta.d.ts +2 -0
  443. package/dist/tools/snapshot-delta.d.ts.map +1 -1
  444. package/dist/tools/snapshot-delta.js +0 -0
  445. package/dist/tools/snapshot-delta.js.map +1 -1
  446. package/dist/tools/tool-kit.d.ts +3 -2
  447. package/dist/tools/tool-kit.d.ts.map +1 -1
  448. package/dist/tools/tool-kit.js +11 -1
  449. package/dist/tools/tool-kit.js.map +1 -1
  450. package/dist/tools/tool-names.d.ts +18 -10
  451. package/dist/tools/tool-names.d.ts.map +1 -1
  452. package/dist/tools/tool-names.js +22 -13
  453. package/dist/tools/tool-names.js.map +1 -1
  454. package/dist/tools/tools-helpers.d.ts +12 -0
  455. package/dist/tools/tools-helpers.d.ts.map +1 -1
  456. package/dist/tools/tools-helpers.js +20 -0
  457. package/dist/tools/tools-helpers.js.map +1 -1
  458. package/dist/tools/tools.d.ts.map +1 -1
  459. package/dist/tools/tools.js +162 -12
  460. package/dist/tools/tools.js.map +1 -1
  461. package/dist/update/update-checker.d.ts.map +1 -1
  462. package/dist/update/update-checker.js +26 -1
  463. package/dist/update/update-checker.js.map +1 -1
  464. package/dist/update/updater.d.ts +1 -1
  465. package/dist/update/updater.js +2 -2
  466. package/dist/update/updater.js.map +1 -1
  467. package/package.json +8 -3
  468. package/dist/update/update-tools.d.ts +0 -3
  469. package/dist/update/update-tools.d.ts.map +0 -1
  470. package/dist/update/update-tools.js +0 -94
  471. package/dist/update/update-tools.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"contract-tools.js","sourceRoot":"","sources":["../../src/tools/contract-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAGzF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC;QACE,IAAI,EAAE,WAAW,CAAC,YAAY;QAC9B,WAAW,EACT,yUAAyU;QAC3U,WAAW,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,cAAc,EAAE;QAC3E,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1E,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,oEAAoE,CAAC;SAClF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxD,IAAI,CAAC,CAAC,CAAC,EAAE;oBACP,MAAM,IAAI,KAAK,CACb,CAAC,CAAC,MAAM,KAAK,iBAAiB,CAAC,OAAO;wBACpC,CAAC,CAAC,iHAAiH;wBACnH,CAAC,CAAC,uFAAuF,CAC5F,CAAC;gBACJ,OAAO,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3E,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,IAAI,EACJ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAC3B,cAAc,CAAC,YAAY,EAC3B,EAAE,CACH,CAAC;YACF,OAAO,EAAE,GAAI,IAAe,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACjD,CAAC;KACF;IACD;QACE,IAAI,EAAE,WAAW,CAAC,aAAa;QAC/B,WAAW,EACT,mNAAmN;QACrN,WAAW,EAAE,EAAE,GAAG,cAAc,EAAE;QAClC,YAAY,EAAE;YACZ,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;YAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;SACxB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,MAAM,cAAc,CAC9B,IAAI,EACJ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAC3B,cAAc,CAAC,YAAY,EAC3B,EAAE,CACH,CAAC;YACF,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/D,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ;gBAChD,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAChC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;aACjC,CAAC;QACJ,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"contract-tools.js","sourceRoot":"","sources":["../../src/tools/contract-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-tools.d.ts","sourceRoot":"","sources":["../../src/tools/dynamic-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,YAAY,CAAC;AA8CpD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAkEhE"}
1
+ {"version":3,"file":"dynamic-tools.d.ts","sourceRoot":"","sources":["../../src/tools/dynamic-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,YAAY,CAAC;AA+CpD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAkEhE"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { runTool } from './invoke-tool.js';
3
+ import { ReticleTool } from './tool-names.js';
3
4
  /**
4
5
  * On-demand tool loading for MCP — the answer to the per-turn tool-definition tax.
5
6
  *
@@ -9,10 +10,10 @@ import { runTool } from './invoke-tool.js';
9
10
  *
10
11
  * The `dynamic` profile advertises just TWO meta-tools (~hundreds of tokens, fixed regardless of
11
12
  * how many real tools exist):
12
- * reticle_tools — discover. No args ⇒ a compact catalog (name + one-line summary) of every tool.
13
- * names:[...] ⇒ full description + params for just those tools, loaded on demand.
14
- * reticle_run — invoke any tool by name. On a bad/unknown call it returns that tool's params as a
15
- * hint, so the model self-corrects without ever needing the schema up front.
13
+ * reticle_tools — discover. No args ⇒ a compact catalog (name + one-line summary) of every tool.
14
+ * names:[...] ⇒ full description + params for just those tools, loaded on demand.
15
+ * reticle_run — invoke any tool by name. On a bad/unknown call it returns that tool's params as a
16
+ * hint, so the model self-corrects without ever needing the schema up front.
16
17
  *
17
18
  * The model lists once, loads the 2–3 tools it actually needs, and calls them — paying for tool
18
19
  * detail only when used, not every turn. Works with any MCP client (no client-side support needed).
@@ -41,8 +42,8 @@ function paramInfo(shape) {
41
42
  export function buildDynamicTools(allTools) {
42
43
  const byName = new Map(allTools.map((t) => [t.name, t]));
43
44
  const reticleTools = {
44
- name: 'reticle_tools',
45
- description: 'Discover Reticle tools on demand. Call with no arguments to list every tool (name + one-line summary); call with names:["reticle_network", …] to load full descriptions and parameters for specific tools. Then invoke them with reticle_run. This avoids paying for every tool definition on every turn.',
45
+ name: ReticleTool.TOOLS,
46
+ description: 'Discover Reticle tools on demand. Call with no arguments to list every tool (name + one-line summary); call with names:["reticle_network", …] to load full descriptions and parameters for specific tools. Then invoke them with reticle_run. This avoids paying for every tool definition on every turn. To make a verification REUSABLE (record once, replay free forever), the flow workflow lives here: reticle_record_start → act → reticle_flow_save → reticle_flow_verify (and reticle_flow_heal on drift). Load those names when you want to save or re-run a flow.',
46
47
  inputSchema: {
47
48
  names: z
48
49
  .array(z.string())
@@ -70,7 +71,7 @@ export function buildDynamicTools(allTools) {
70
71
  },
71
72
  };
72
73
  const reticleRun = {
73
- name: 'reticle_run',
74
+ name: ReticleTool.RUN,
74
75
  description: "Invoke any Reticle tool by name (discover names/params first with reticle_tools). On an unknown tool or bad arguments it returns the available names or the tool's params, so you can correct and retry.",
75
76
  inputSchema: {
76
77
  tool: z.string().describe('Tool name to invoke, e.g. reticle_network.'),
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-tools.js","sourceRoot":"","sources":["../../src/tools/dynamic-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-tools.js","sourceRoot":"","sources":["../../src/tools/dynamic-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"invoke-tool.d.ts","sourceRoot":"","sources":["../../src/tools/invoke-tool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CA2BlD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CA0BnD,CAAC;AAMH;;;;;GAKG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAqBlB"}
1
+ {"version":3,"file":"invoke-tool.d.ts","sourceRoot":"","sources":["../../src/tools/invoke-tool.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAuBlD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAkBnD,CAAC;AAMH;;;;;GAKG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAyClB"}
@@ -1,4 +1,5 @@
1
1
  import { healthEnvelope } from '../session/session-health.js';
2
+ import { getTelemetry, TelemetryEventKind } from '../telemetry/telemetry.js';
2
3
  import { asString } from './tools-helpers.js';
3
4
  import { ReticleTool } from './tool-names.js';
4
5
  /**
@@ -20,12 +21,9 @@ export const SESSION_BOUND_TOOLS = new Set([
20
21
  ReticleTool.NETWORK,
21
22
  ReticleTool.CONSOLE,
22
23
  ReticleTool.ANIMATIONS,
23
- ReticleTool.BASELINE_SAVE,
24
- ReticleTool.DIFF,
25
- ReticleTool.RECORD_START,
26
- ReticleTool.RECORD_STOP,
24
+ ReticleTool.BASELINE, // merged save/list/diff — save+diff are live reads
25
+ ReticleTool.RECORD, // merged start/stop — both live
27
26
  ReticleTool.REPLAY,
28
- ReticleTool.NARRATE,
29
27
  ReticleTool.CLOCK,
30
28
  ReticleTool.STATE,
31
29
  ReticleTool.STORAGE,
@@ -33,7 +31,6 @@ export const SESSION_BOUND_TOOLS = new Set([
33
31
  ReticleTool.CRAWL,
34
32
  ReticleTool.SCROLL_TO,
35
33
  ReticleTool.NAVIGATE,
36
- ReticleTool.REFRESH,
37
34
  ]);
38
35
  /**
39
36
  * Tools that carry a `sessionId` arg but are NOT live-session-health tools — they read/write
@@ -45,28 +42,20 @@ export const SESSION_EXEMPT_TOOLS = new Set([
45
42
  ReticleTool.CAPABILITIES, // has a fromDisk mode with no live session
46
43
  ReticleTool.CONTRACT_SAVE, // persists the registry to disk
47
44
  ReticleTool.FLOW_SAVE, // sessionId only scopes the write to the app's flow subdir; disk-side
48
- ReticleTool.FLOW_LIST, // sessionId only scopes which project's flows are listed; disk read
49
- ReticleTool.FLOW_LOAD, // sessionId only scopes which project's flow is read; disk read
50
- ReticleTool.FLOW_DELETE, // sessionId only scopes which project's flow is removed; disk delete
45
+ ReticleTool.FLOW, // merged list/load/delete — sessionId only scopes the project; all disk-side
51
46
  ReticleTool.FLOW_REPLAY, // returns its own FlowReplayResult contract (+ auto-records a run)
52
47
  ReticleTool.FLOW_VERIFY, // returns its own SuiteVerdict contract (replays the whole suite)
53
48
  ReticleTool.FLOW_SAVE_RECORDED, // reads the recording buffer, writes disk
54
49
  ReticleTool.FLOW_HEAL, // returns its own FlowHealResult contract
55
50
  ReticleTool.PROJECT, // reads .reticle/project.json
56
- ReticleTool.RUN_RECORD, // writes .reticle/project.json
57
51
  ReticleTool.RUN_EXPORT, // reads .reticle/runs/<id>.json (verification-run artifact)
58
- ReticleTool.END_SESSION, // live-control lifecycle
59
- ReticleTool.YIELD, // live-control lifecycle (hand back to the human between turns)
60
- ReticleTool.RESUME, // live-control lifecycle
61
- ReticleTool.MESSAGES, // drains the human→agent inbox
62
- ReticleTool.REVIEW, // lists/resolves human review marks; own contract, no live-DOM read
63
- ReticleTool.SESSION, // tunes the presenter session (idle-end); own contract
52
+ ReticleTool.SESSION, // merged lifecycle/human-channel family (tune/yield/end/resume/messages/review/narrate)
64
53
  ReticleTool.SCREENSHOT, // own contract; provider-driven, not a live-DOM-health read
65
54
  ReticleTool.VISUAL_DIFF, // own contract (matched/ratio/region)
66
55
  ReticleTool.NETWORK_MOCK, // own contract (applied/count); provider-driven, not a live-DOM read
67
56
  ReticleTool.VIEWPORT, // own contract (applied/width/height); provider-driven, not a live-DOM read
68
57
  ReticleTool.ANNOTATE, // annotates a recording's steps; pure disk-side metadata, no live DOM read
69
- ReticleTool.LEASE_RELEASE, // its sessionId is a pool lease id, not a live session; no health splice
58
+ ReticleTool.LEASE, // merged acquire/release — its sessionId is a pool lease id, not a live session
70
59
  ]);
71
60
  function isPlainObject(value) {
72
61
  return typeof value === 'object' && value !== null && !Array.isArray(value);
@@ -78,29 +67,47 @@ function isPlainObject(value) {
78
67
  * (handlers that already add health are left untouched) and never alters non-object results.
79
68
  */
80
69
  export async function runTool(tool, deps, args) {
81
- // Heartbeat: every tool call targeting a leased session keeps its pool lease alive, so the
82
- // LeaseReaper only reclaims genuinely orphaned (crashed/hung-agent) leases.
83
- const targetSession = asString(args['sessionId']);
84
- if (targetSession !== undefined)
85
- deps.pool?.touch(targetSession);
70
+ // Both dispatch paths (MCP + programmatic) pass through here — the one place "which tool is mostly
71
+ // used" can be counted. Fire-and-forget: telemetry never delays or fails a tool call.
72
+ void getTelemetry().emit(TelemetryEventKind.TOOL, { tool: tool.name });
73
+ const rawSessionId = asString(args['sessionId']);
74
+ const bound = SESSION_BOUND_TOOLS.has(tool.name);
75
+ // Resolve the session identity ONCE, up front, for a live-session tool. The lease heartbeat must
76
+ // target the session the handler will ACTUALLY drive — which, when the agent omits sessionId, is the
77
+ // auto-selected one, NOT the raw (undefined) arg. Touching the raw arg meant an auto-selected drive
78
+ // never refreshed its pool lease, so the reaper could reclaim the session mid-operation. Resolve
79
+ // before the handler so a long ACT_AND_WAIT is protected for its whole duration; on failure leave it
80
+ // to the handler to throw the canonical no-session error.
81
+ let session;
82
+ if (bound) {
83
+ try {
84
+ session = deps.sessions.resolve(rawSessionId);
85
+ }
86
+ catch {
87
+ session = undefined;
88
+ }
89
+ }
90
+ const leaseId = session?.id ?? rawSessionId;
91
+ if (leaseId !== undefined)
92
+ deps.pool?.touch(leaseId);
86
93
  const result = await tool.handler(deps, args);
87
- if (!SESSION_BOUND_TOOLS.has(tool.name))
94
+ if (!bound || !isPlainObject(result))
88
95
  return result;
89
- if (!isPlainObject(result))
90
- return result;
91
- const session = deps.sessions.resolve(asString(args['sessionId']));
96
+ // Reuse the session resolved above so the health envelope describes the SAME session the handler
97
+ // drove; only re-resolve if the up-front attempt failed but the handler somehow succeeded.
98
+ const resolved = session ?? deps.sessions.resolve(rawSessionId);
92
99
  const envelope = {};
93
100
  // The health block is idempotent: add it only when the handler didn't already include a `session`.
94
101
  if (!('session' in result))
95
- Object.assign(envelope, healthEnvelope(session));
102
+ Object.assign(envelope, healthEnvelope(resolved));
96
103
  // Lease + age-warning are INDEPENDENT of the health block. Previously the `'session' in result`
97
104
  // early-return skipped them whenever a handler returned its own health (which a throttled tab always
98
105
  // does) — so a long-running backgrounded session, the case most likely to leak, never got the
99
106
  // one-time pool-lease reminder or the age cleanup nudge. Splice them regardless.
100
- const lease = session.takeSessionLease();
107
+ const lease = resolved.takeSessionLease();
101
108
  if (lease !== undefined)
102
109
  envelope['session_lease'] = lease;
103
- const warning = session.ageWarning();
110
+ const warning = resolved.ageWarning();
104
111
  if (warning !== undefined)
105
112
  envelope['session_age_warning'] = warning;
106
113
  return Object.keys(envelope).length > 0 ? { ...result, ...envelope } : result;
@@ -1 +1 @@
1
- {"version":3,"file":"invoke-tool.js","sourceRoot":"","sources":["../../src/tools/invoke-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC;IAC9D,WAAW,CAAC,QAAQ;IACpB,WAAW,CAAC,KAAK;IACjB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,GAAG;IACf,WAAW,CAAC,YAAY;IACxB,WAAW,CAAC,YAAY;IACxB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,QAAQ;IACpB,WAAW,CAAC,MAAM;IAClB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,UAAU;IACtB,WAAW,CAAC,aAAa;IACzB,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,YAAY;IACxB,WAAW,CAAC,WAAW;IACvB,WAAW,CAAC,MAAM;IAClB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,KAAK;IACjB,WAAW,CAAC,KAAK;IACjB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,KAAK;IACjB,WAAW,CAAC,SAAS;IACrB,WAAW,CAAC,QAAQ;IACpB,WAAW,CAAC,OAAO;CACpB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,WAAW,CAAC,YAAY,EAAE,2CAA2C;IACrE,WAAW,CAAC,aAAa,EAAE,gCAAgC;IAC3D,WAAW,CAAC,SAAS,EAAE,sEAAsE;IAC7F,WAAW,CAAC,SAAS,EAAE,oEAAoE;IAC3F,WAAW,CAAC,SAAS,EAAE,gEAAgE;IACvF,WAAW,CAAC,WAAW,EAAE,qEAAqE;IAC9F,WAAW,CAAC,WAAW,EAAE,mEAAmE;IAC5F,WAAW,CAAC,WAAW,EAAE,kEAAkE;IAC3F,WAAW,CAAC,kBAAkB,EAAE,0CAA0C;IAC1E,WAAW,CAAC,SAAS,EAAE,0CAA0C;IACjE,WAAW,CAAC,OAAO,EAAE,8BAA8B;IACnD,WAAW,CAAC,UAAU,EAAE,+BAA+B;IACvD,WAAW,CAAC,UAAU,EAAE,4DAA4D;IACpF,WAAW,CAAC,WAAW,EAAE,yBAAyB;IAClD,WAAW,CAAC,KAAK,EAAE,gEAAgE;IACnF,WAAW,CAAC,MAAM,EAAE,yBAAyB;IAC7C,WAAW,CAAC,QAAQ,EAAE,+BAA+B;IACrD,WAAW,CAAC,MAAM,EAAE,oEAAoE;IACxF,WAAW,CAAC,OAAO,EAAE,uDAAuD;IAC5E,WAAW,CAAC,UAAU,EAAE,4DAA4D;IACpF,WAAW,CAAC,WAAW,EAAE,sCAAsC;IAC/D,WAAW,CAAC,YAAY,EAAE,qEAAqE;IAC/F,WAAW,CAAC,QAAQ,EAAE,4EAA4E;IAClG,WAAW,CAAC,QAAQ,EAAE,2EAA2E;IACjG,WAAW,CAAC,aAAa,EAAE,yEAAyE;CACrG,CAAC,CAAC;AAEH,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAa,EACb,IAAc,EACd,IAA6B;IAE7B,2FAA2F;IAC3F,4EAA4E;IAC5E,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,IAAI,aAAa,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACvD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,mGAAmG;IACnG,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC;QAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,gGAAgG;IAChG,qGAAqG;IACrG,8FAA8F;IAC9F,iFAAiF;IACjF,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS;QAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACrC,IAAI,OAAO,KAAK,SAAS;QAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC;IACrE,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"invoke-tool.js","sourceRoot":"","sources":["../../src/tools/invoke-tool.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,22 @@ export declare function cleanNavError(err: unknown): string;
26
26
  * an agent's very next call could race and hit "no connected session"). Returns whether it connected
27
27
  * in time. `isConnected`, `sleeper`, and `attempts` are injected so this is fast to unit-test.
28
28
  */
29
+ /**
30
+ * Acquire a leased, SDK-connected context for a caller that is not the lease TOOL (the parallel suite).
31
+ * Returns the session id plus its release; the caller must release in a finally so a crashed flow never
32
+ * leaks a pool slot and starves the rest of the suite.
33
+ */
34
+ export declare function acquireLeasedSession(pool: {
35
+ acquire: (url: string, opts: {
36
+ sessionId: string;
37
+ }) => Promise<{
38
+ sessionId: string;
39
+ release: () => Promise<void>;
40
+ }>;
41
+ }, hasSession: (id: string) => boolean, url: string, projectId?: string): Promise<{
42
+ sessionId: string;
43
+ release: () => Promise<void>;
44
+ }>;
29
45
  export declare function waitForLeasedSession(isConnected: () => boolean, sleeper?: (ms: number) => Promise<void>, attempts?: number, pollMs?: number): Promise<boolean>;
30
46
  export declare const LEASE_TOOLS: ToolDef[];
31
47
  //# sourceMappingURL=lease-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lease-tools.d.ts","sourceRoot":"","sources":["../../src/tools/lease-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,eAAe,CAAC;AAMvD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB5F;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAclD;AAeD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,OAAO,EAC1B,OAAO,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAS,EAC9C,QAAQ,GAAE,MAA6B,EACvC,MAAM,GAAE,MAA4B,GACnC,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,eAAO,MAAM,WAAW,EAAE,OAAO,EAuFhC,CAAC"}
1
+ {"version":3,"file":"lease-tools.d.ts","sourceRoot":"","sources":["../../src/tools/lease-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,eAAe,CAAC;AAMvD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB5F;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAclD;AAeD;;;;;GAKG;AACH;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE;IACJ,OAAO,EAAE,CACP,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,KACxB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC,CAAC;CACnE,EACD,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,EACnC,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAK9D;AAED,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,OAAO,EAC1B,OAAO,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAS,EAC9C,QAAQ,GAAE,MAA6B,EACvC,MAAM,GAAE,MAA4B,GACnC,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,eAAO,MAAM,WAAW,EAAE,OAAO,EAuFhC,CAAC"}
@@ -72,6 +72,17 @@ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
72
72
  * an agent's very next call could race and hit "no connected session"). Returns whether it connected
73
73
  * in time. `isConnected`, `sleeper`, and `attempts` are injected so this is fast to unit-test.
74
74
  */
75
+ /**
76
+ * Acquire a leased, SDK-connected context for a caller that is not the lease TOOL (the parallel suite).
77
+ * Returns the session id plus its release; the caller must release in a finally so a crashed flow never
78
+ * leaks a pool slot and starves the rest of the suite.
79
+ */
80
+ export async function acquireLeasedSession(pool, hasSession, url, projectId) {
81
+ const sessionId = newLeaseId();
82
+ const lease = await pool.acquire(appendReticleParams(url, sessionId, projectId), { sessionId });
83
+ await waitForLeasedSession(() => hasSession(lease.sessionId));
84
+ return { sessionId: lease.sessionId, release: () => lease.release() };
85
+ }
75
86
  export async function waitForLeasedSession(isConnected, sleeper = sleep, attempts = LEASE_READY_ATTEMPTS, pollMs = LEASE_READY_POLL_MS) {
76
87
  for (let i = 0; i < attempts; i++) {
77
88
  if (isConnected())
@@ -1 +1 @@
1
- {"version":3,"file":"lease-tools.js","sourceRoot":"","sources":["../../src/tools/lease-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lease-tools.js","sourceRoot":"","sources":["../../src/tools/lease-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { ToolDef } from './tool-kit.js';
2
+ /**
3
+ * Surface consolidation. Tool definitions are re-sent to the model EVERY turn, so the named-def
4
+ * count is a per-turn tax multiplied by loop length. This merges a family of sibling tools
5
+ * (`baseline_save`/`baseline_list`/`diff`) into one action-dispatched tool (`reticle_baseline {action}`)
6
+ * WITHOUT rewriting any handler — each original handler is kept verbatim and selected by `action`, so a
7
+ * merge cannot change behavior, only the advertised shape.
8
+ *
9
+ * The merged input schema is `{ action }` plus the union of the members' fields, each made optional
10
+ * (different actions need different fields). Every handler already narrows its own args, so validation
11
+ * strength is unchanged in practice.
12
+ *
13
+ * TRADEOFF (deliberate): a merged tool carries NO `outputSchema`, because its members return different
14
+ * shapes and one schema cannot describe them. Schema-aware clients lose output validation for merged
15
+ * families. That is why tools whose result contract matters — the 12-tool core hot-set, and hot verbs
16
+ * like flow_replay/flow_verify/flow_heal that return their own documented verdict shapes — are NOT
17
+ * merged. Only sibling families whose value is the capability, not the contract, are consolidated.
18
+ */
19
+ export interface MergeSpec {
20
+ name: string;
21
+ description: string;
22
+ /** action value → the original tool whose handler serves it. */
23
+ actions: Record<string, ToolDef>;
24
+ }
25
+ /** A merge declared by member NAME, resolved against the assembled tool list. */
26
+ export interface MergePlan {
27
+ name: string;
28
+ description: string;
29
+ /** action value → the existing tool name whose handler serves it. */
30
+ members: Record<string, string>;
31
+ }
32
+ /**
33
+ * Apply the consolidation to an assembled tool list: drop each plan's members and each retired name from
34
+ * the advertised surface, and append one action-dispatched tool per plan. Member ToolDefs stay defined in
35
+ * their own modules (handlers untouched) — they simply stop being advertised separately, which is the
36
+ * whole point: the cost is the advertised count, not the code.
37
+ *
38
+ * A plan naming a member that does not exist is a build error, not a silent no-op — a typo would
39
+ * otherwise quietly drop a capability from the surface.
40
+ */
41
+ export declare function applyMerges(tools: readonly ToolDef[], plans: readonly MergePlan[], retired?: readonly string[]): ToolDef[];
42
+ export declare function mergeTools(spec: MergeSpec): ToolDef;
43
+ //# sourceMappingURL=merge-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-tools.d.ts","sourceRoot":"","sources":["../../src/tools/merge-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,eAAe,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAcD,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,OAAO,GAAE,SAAS,MAAM,EAAO,GAC9B,OAAO,EAAE,CAiBX;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAwBnD"}
@@ -0,0 +1,66 @@
1
+ import { z } from 'zod';
2
+ /** The union of member input shapes, every field optional so one schema serves every action. */
3
+ function unionShape(actions) {
4
+ const shape = {};
5
+ for (const tool of Object.values(actions)) {
6
+ for (const [key, schema] of Object.entries(tool.inputSchema)) {
7
+ // First definition wins; siblings share field names/meanings by construction.
8
+ shape[key] ??= schema.isOptional() ? schema : schema.optional();
9
+ }
10
+ }
11
+ return shape;
12
+ }
13
+ /**
14
+ * Apply the consolidation to an assembled tool list: drop each plan's members and each retired name from
15
+ * the advertised surface, and append one action-dispatched tool per plan. Member ToolDefs stay defined in
16
+ * their own modules (handlers untouched) — they simply stop being advertised separately, which is the
17
+ * whole point: the cost is the advertised count, not the code.
18
+ *
19
+ * A plan naming a member that does not exist is a build error, not a silent no-op — a typo would
20
+ * otherwise quietly drop a capability from the surface.
21
+ */
22
+ export function applyMerges(tools, plans, retired = []) {
23
+ const byName = new Map(tools.map((t) => [t.name, t]));
24
+ const consumed = new Set(retired);
25
+ const merged = [];
26
+ for (const plan of plans) {
27
+ const actions = {};
28
+ for (const [action, memberName] of Object.entries(plan.members)) {
29
+ const member = byName.get(memberName);
30
+ if (member === undefined) {
31
+ throw new Error(`applyMerges(${plan.name}): unknown member tool '${memberName}'`);
32
+ }
33
+ actions[action] = member;
34
+ consumed.add(memberName);
35
+ }
36
+ merged.push(mergeTools({ name: plan.name, description: plan.description, actions }));
37
+ }
38
+ return [...tools.filter((t) => !consumed.has(t.name)), ...merged];
39
+ }
40
+ export function mergeTools(spec) {
41
+ const actionNames = Object.keys(spec.actions);
42
+ if (actionNames.length === 0)
43
+ throw new Error(`mergeTools(${spec.name}): no actions`);
44
+ return {
45
+ name: spec.name,
46
+ description: spec.description,
47
+ inputSchema: {
48
+ action: z
49
+ .enum(actionNames)
50
+ .describe(`Which operation to run: ${actionNames.join(' | ')}.`),
51
+ ...unionShape(spec.actions),
52
+ },
53
+ handler: (deps, args) => {
54
+ const action = args['action'];
55
+ const chosen = typeof action === 'string' ? spec.actions[action] : undefined;
56
+ if (chosen === undefined) {
57
+ return Promise.resolve({
58
+ error: `unknown action '${String(action)}' for ${spec.name}`,
59
+ expected: actionNames,
60
+ });
61
+ }
62
+ return chosen.handler(deps, args);
63
+ },
64
+ };
65
+ }
66
+ //# sourceMappingURL=merge-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-tools.js","sourceRoot":"","sources":["../../src/tools/merge-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"observe-tools.d.ts","sourceRoot":"","sources":["../../src/tools/observe-tools.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,eAAe,CAAC;AAe7E,eAAO,MAAM,aAAa,EAAE,OAAO,EAmTlC,CAAC"}
1
+ {"version":3,"file":"observe-tools.d.ts","sourceRoot":"","sources":["../../src/tools/observe-tools.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,eAAe,CAAC;AAgC7E,eAAO,MAAM,aAAa,EAAE,OAAO,EAoclC,CAAC"}