@reticlehq/server 2.0.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) 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 +62 -6
  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-launch.d.ts.map +1 -1
  42. package/dist/cli-launch.js +1 -2
  43. package/dist/cli-launch.js.map +1 -1
  44. package/dist/cli-parse.d.ts +18 -2
  45. package/dist/cli-parse.d.ts.map +1 -1
  46. package/dist/cli-parse.js +57 -0
  47. package/dist/cli-parse.js.map +1 -1
  48. package/dist/cli-port.d.ts +10 -4
  49. package/dist/cli-port.d.ts.map +1 -1
  50. package/dist/cli-port.js +32 -6
  51. package/dist/cli-port.js.map +1 -1
  52. package/dist/cli-verify.d.ts.map +1 -1
  53. package/dist/cli-verify.js +29 -10
  54. package/dist/cli-verify.js.map +1 -1
  55. package/dist/cli.d.ts.map +1 -1
  56. package/dist/cli.js +83 -13
  57. package/dist/cli.js.map +1 -1
  58. package/dist/crawl/crawl-tools.d.ts.map +1 -1
  59. package/dist/crawl/crawl-tools.js +12 -0
  60. package/dist/crawl/crawl-tools.js.map +1 -1
  61. package/dist/crawl/crawl.d.ts +23 -1
  62. package/dist/crawl/crawl.d.ts.map +1 -1
  63. package/dist/crawl/crawl.js +42 -12
  64. package/dist/crawl/crawl.js.map +1 -1
  65. package/dist/daemon-resilience.d.ts +5 -5
  66. package/dist/daemon-resilience.js +5 -5
  67. package/dist/daemon.d.ts +9 -3
  68. package/dist/daemon.d.ts.map +1 -1
  69. package/dist/daemon.js +41 -8
  70. package/dist/daemon.js.map +1 -1
  71. package/dist/domain/domain-tools.d.ts.map +1 -1
  72. package/dist/domain/domain-tools.js +11 -1
  73. package/dist/domain/domain-tools.js.map +1 -1
  74. package/dist/domain/flow-risk.d.ts +4 -4
  75. package/dist/domain/flow-risk.js +4 -4
  76. package/dist/ee/audit-log.d.ts +2 -2
  77. package/dist/ee/audit-log.js +2 -2
  78. package/dist/events/event-filters.d.ts +35 -1
  79. package/dist/events/event-filters.d.ts.map +1 -1
  80. package/dist/events/event-filters.js +93 -6
  81. package/dist/events/event-filters.js.map +1 -1
  82. package/dist/events/predicate-eval.d.ts +15 -0
  83. package/dist/events/predicate-eval.d.ts.map +1 -1
  84. package/dist/events/predicate-eval.js +130 -9
  85. package/dist/events/predicate-eval.js.map +1 -1
  86. package/dist/events/predicate.d.ts +22 -1
  87. package/dist/events/predicate.d.ts.map +1 -1
  88. package/dist/events/predicate.js +169 -15
  89. package/dist/events/predicate.js.map +1 -1
  90. package/dist/events/ring-buffer.d.ts +10 -8
  91. package/dist/events/ring-buffer.d.ts.map +1 -1
  92. package/dist/events/ring-buffer.js +84 -25
  93. package/dist/events/ring-buffer.js.map +1 -1
  94. package/dist/flows/affected.d.ts +25 -0
  95. package/dist/flows/affected.d.ts.map +1 -0
  96. package/dist/flows/affected.js +36 -0
  97. package/dist/flows/affected.js.map +1 -0
  98. package/dist/flows/annotate.d.ts +4 -4
  99. package/dist/flows/annotate.js +4 -4
  100. package/dist/flows/assertion-integrity.d.ts +24 -0
  101. package/dist/flows/assertion-integrity.d.ts.map +1 -0
  102. package/dist/flows/assertion-integrity.js +27 -0
  103. package/dist/flows/assertion-integrity.js.map +1 -0
  104. package/dist/flows/assertion-tiers-store.d.ts +80 -0
  105. package/dist/flows/assertion-tiers-store.d.ts.map +1 -0
  106. package/dist/flows/assertion-tiers-store.js +99 -0
  107. package/dist/flows/assertion-tiers-store.js.map +1 -0
  108. package/dist/flows/buddy-status.d.ts +25 -0
  109. package/dist/flows/buddy-status.d.ts.map +1 -0
  110. package/dist/flows/buddy-status.js +33 -0
  111. package/dist/flows/buddy-status.js.map +1 -0
  112. package/dist/flows/coverage.d.ts +28 -0
  113. package/dist/flows/coverage.d.ts.map +1 -0
  114. package/dist/flows/coverage.js +22 -0
  115. package/dist/flows/coverage.js.map +1 -0
  116. package/dist/flows/decision.d.ts.map +1 -1
  117. package/dist/flows/decision.js +18 -9
  118. package/dist/flows/decision.js.map +1 -1
  119. package/dist/flows/flake-store.d.ts +20 -0
  120. package/dist/flows/flake-store.d.ts.map +1 -0
  121. package/dist/flows/flake-store.js +59 -0
  122. package/dist/flows/flake-store.js.map +1 -0
  123. package/dist/flows/flake.d.ts +58 -0
  124. package/dist/flows/flake.d.ts.map +1 -0
  125. package/dist/flows/flake.js +36 -0
  126. package/dist/flows/flake.js.map +1 -0
  127. package/dist/flows/flow-classify.d.ts +8 -8
  128. package/dist/flows/flow-classify.d.ts.map +1 -1
  129. package/dist/flows/flow-classify.js +12 -20
  130. package/dist/flows/flow-classify.js.map +1 -1
  131. package/dist/flows/flow-replay-run.d.ts +6 -0
  132. package/dist/flows/flow-replay-run.d.ts.map +1 -1
  133. package/dist/flows/flow-replay-run.js +49 -0
  134. package/dist/flows/flow-replay-run.js.map +1 -1
  135. package/dist/flows/flow-replay.d.ts +9 -0
  136. package/dist/flows/flow-replay.d.ts.map +1 -1
  137. package/dist/flows/flow-replay.js +52 -18
  138. package/dist/flows/flow-replay.js.map +1 -1
  139. package/dist/flows/flow-report.d.ts +4 -4
  140. package/dist/flows/flow-report.d.ts.map +1 -1
  141. package/dist/flows/flow-report.js +2 -1
  142. package/dist/flows/flow-report.js.map +1 -1
  143. package/dist/flows/flow-sources.d.ts +20 -0
  144. package/dist/flows/flow-sources.d.ts.map +1 -0
  145. package/dist/flows/flow-sources.js +33 -0
  146. package/dist/flows/flow-sources.js.map +1 -0
  147. package/dist/flows/flow-tools.d.ts +13 -1
  148. package/dist/flows/flow-tools.d.ts.map +1 -1
  149. package/dist/flows/flow-tools.js +97 -152
  150. package/dist/flows/flow-tools.js.map +1 -1
  151. package/dist/flows/flows.d.ts +9 -4
  152. package/dist/flows/flows.d.ts.map +1 -1
  153. package/dist/flows/flows.js +39 -27
  154. package/dist/flows/flows.js.map +1 -1
  155. package/dist/flows/gate.d.ts +39 -0
  156. package/dist/flows/gate.d.ts.map +1 -0
  157. package/dist/flows/gate.js +34 -0
  158. package/dist/flows/gate.js.map +1 -0
  159. package/dist/flows/git-changed.d.ts +9 -0
  160. package/dist/flows/git-changed.d.ts.map +1 -0
  161. package/dist/flows/git-changed.js +25 -0
  162. package/dist/flows/git-changed.js.map +1 -0
  163. package/dist/flows/heal-run.d.ts +19 -0
  164. package/dist/flows/heal-run.d.ts.map +1 -0
  165. package/dist/flows/heal-run.js +137 -0
  166. package/dist/flows/heal-run.js.map +1 -0
  167. package/dist/flows/parallel-suite.d.ts +27 -0
  168. package/dist/flows/parallel-suite.d.ts.map +1 -0
  169. package/dist/flows/parallel-suite.js +51 -0
  170. package/dist/flows/parallel-suite.js.map +1 -0
  171. package/dist/flows/replay.d.ts +13 -0
  172. package/dist/flows/replay.d.ts.map +1 -1
  173. package/dist/flows/replay.js +56 -23
  174. package/dist/flows/replay.js.map +1 -1
  175. package/dist/flows/watch-batcher.d.ts +18 -0
  176. package/dist/flows/watch-batcher.d.ts.map +1 -0
  177. package/dist/flows/watch-batcher.js +20 -0
  178. package/dist/flows/watch-batcher.js.map +1 -0
  179. package/dist/honesty/blind-spots.d.ts +37 -0
  180. package/dist/honesty/blind-spots.d.ts.map +1 -0
  181. package/dist/honesty/blind-spots.js +57 -0
  182. package/dist/honesty/blind-spots.js.map +1 -0
  183. package/dist/honesty/honesty.d.ts +57 -0
  184. package/dist/honesty/honesty.d.ts.map +1 -0
  185. package/dist/honesty/honesty.js +63 -0
  186. package/dist/honesty/honesty.js.map +1 -0
  187. package/dist/http-server.d.ts +5 -9
  188. package/dist/http-server.d.ts.map +1 -1
  189. package/dist/http-server.js +5 -9
  190. package/dist/http-server.js.map +1 -1
  191. package/dist/idle-shutdown.d.ts +2 -2
  192. package/dist/idle-shutdown.js +2 -2
  193. package/dist/index.d.ts +3 -3
  194. package/dist/index.d.ts.map +1 -1
  195. package/dist/index.js +131 -73
  196. package/dist/index.js.map +1 -1
  197. package/dist/init/agent-rules.d.ts +38 -0
  198. package/dist/init/agent-rules.d.ts.map +1 -0
  199. package/dist/init/agent-rules.js +65 -0
  200. package/dist/init/agent-rules.js.map +1 -0
  201. package/dist/init/mcp.d.ts.map +1 -1
  202. package/dist/init/mcp.js +4 -3
  203. package/dist/init/mcp.js.map +1 -1
  204. package/dist/init/plan.d.ts +6 -0
  205. package/dist/init/plan.d.ts.map +1 -1
  206. package/dist/init/plan.js +79 -3
  207. package/dist/init/plan.js.map +1 -1
  208. package/dist/init/run.d.ts.map +1 -1
  209. package/dist/init/run.js +4 -0
  210. package/dist/init/run.js.map +1 -1
  211. package/dist/init/snippets.js +1 -1
  212. package/dist/init/vite-config.d.ts +1 -1
  213. package/dist/init/vite-config.js +2 -2
  214. package/dist/init/vite-config.js.map +1 -1
  215. package/dist/input/network-detail.d.ts +74 -0
  216. package/dist/input/network-detail.d.ts.map +1 -0
  217. package/dist/input/network-detail.js +160 -0
  218. package/dist/input/network-detail.js.map +1 -0
  219. package/dist/input/network-mock-tools.d.ts.map +1 -1
  220. package/dist/input/network-mock-tools.js +1 -6
  221. package/dist/input/network-mock-tools.js.map +1 -1
  222. package/dist/input/network-mock.d.ts +4 -4
  223. package/dist/input/real-input.d.ts +44 -11
  224. package/dist/input/real-input.d.ts.map +1 -1
  225. package/dist/input/real-input.js +57 -9
  226. package/dist/input/real-input.js.map +1 -1
  227. package/dist/input/viewport-tools.d.ts.map +1 -1
  228. package/dist/input/viewport-tools.js +1 -6
  229. package/dist/input/viewport-tools.js.map +1 -1
  230. package/dist/journal/ambient-store.d.ts +16 -0
  231. package/dist/journal/ambient-store.d.ts.map +1 -0
  232. package/dist/journal/ambient-store.js +46 -0
  233. package/dist/journal/ambient-store.js.map +1 -0
  234. package/dist/journal/ambient.d.ts +48 -0
  235. package/dist/journal/ambient.d.ts.map +1 -0
  236. package/dist/journal/ambient.js +48 -0
  237. package/dist/journal/ambient.js.map +1 -0
  238. package/dist/journal/attach-journal.d.ts +22 -0
  239. package/dist/journal/attach-journal.d.ts.map +1 -0
  240. package/dist/journal/attach-journal.js +20 -0
  241. package/dist/journal/attach-journal.js.map +1 -0
  242. package/dist/journal/deviation-report.d.ts +28 -0
  243. package/dist/journal/deviation-report.d.ts.map +1 -0
  244. package/dist/journal/deviation-report.js +54 -0
  245. package/dist/journal/deviation-report.js.map +1 -0
  246. package/dist/journal/deviation-service.d.ts +12 -0
  247. package/dist/journal/deviation-service.d.ts.map +1 -0
  248. package/dist/journal/deviation-service.js +32 -0
  249. package/dist/journal/deviation-service.js.map +1 -0
  250. package/dist/journal/envelope-store.d.ts +19 -0
  251. package/dist/journal/envelope-store.d.ts.map +1 -0
  252. package/dist/journal/envelope-store.js +62 -0
  253. package/dist/journal/envelope-store.js.map +1 -0
  254. package/dist/journal/envelope.d.ts +232 -0
  255. package/dist/journal/envelope.d.ts.map +1 -0
  256. package/dist/journal/envelope.js +94 -0
  257. package/dist/journal/envelope.js.map +1 -0
  258. package/dist/journal/journal-query.d.ts +20 -0
  259. package/dist/journal/journal-query.d.ts.map +1 -0
  260. package/dist/journal/journal-query.js +28 -0
  261. package/dist/journal/journal-query.js.map +1 -0
  262. package/dist/journal/journal-recorder.d.ts +38 -0
  263. package/dist/journal/journal-recorder.d.ts.map +1 -0
  264. package/dist/journal/journal-recorder.js +81 -0
  265. package/dist/journal/journal-recorder.js.map +1 -0
  266. package/dist/journal/retention.d.ts +21 -0
  267. package/dist/journal/retention.d.ts.map +1 -0
  268. package/dist/journal/retention.js +50 -0
  269. package/dist/journal/retention.js.map +1 -0
  270. package/dist/journal/rollups.d.ts +49 -0
  271. package/dist/journal/rollups.d.ts.map +1 -0
  272. package/dist/journal/rollups.js +83 -0
  273. package/dist/journal/rollups.js.map +1 -0
  274. package/dist/journal/session-end.d.ts +32 -0
  275. package/dist/journal/session-end.d.ts.map +1 -0
  276. package/dist/journal/session-end.js +52 -0
  277. package/dist/journal/session-end.js.map +1 -0
  278. package/dist/journal/session-journal.d.ts +25 -0
  279. package/dist/journal/session-journal.d.ts.map +1 -0
  280. package/dist/journal/session-journal.js +168 -0
  281. package/dist/journal/session-journal.js.map +1 -0
  282. package/dist/license/license.d.ts +8 -3
  283. package/dist/license/license.d.ts.map +1 -1
  284. package/dist/license/license.js +34 -11
  285. package/dist/license/license.js.map +1 -1
  286. package/dist/mcp-proxy.d.ts +20 -0
  287. package/dist/mcp-proxy.d.ts.map +1 -1
  288. package/dist/mcp-proxy.js +52 -29
  289. package/dist/mcp-proxy.js.map +1 -1
  290. package/dist/mcp.d.ts +22 -0
  291. package/dist/mcp.d.ts.map +1 -1
  292. package/dist/mcp.js +93 -10
  293. package/dist/mcp.js.map +1 -1
  294. package/dist/oracles/flow-instrument-gaps.d.ts +19 -0
  295. package/dist/oracles/flow-instrument-gaps.d.ts.map +1 -0
  296. package/dist/oracles/flow-instrument-gaps.js +45 -0
  297. package/dist/oracles/flow-instrument-gaps.js.map +1 -0
  298. package/dist/oracles/propose-consequences.d.ts +22 -0
  299. package/dist/oracles/propose-consequences.d.ts.map +1 -0
  300. package/dist/oracles/propose-consequences.js +93 -0
  301. package/dist/oracles/propose-consequences.js.map +1 -0
  302. package/dist/oracles/self-instrument.d.ts +32 -0
  303. package/dist/oracles/self-instrument.d.ts.map +1 -0
  304. package/dist/oracles/self-instrument.js +44 -0
  305. package/dist/oracles/self-instrument.js.map +1 -0
  306. package/dist/pairing-token.d.ts +1 -1
  307. package/dist/phenomena/phenomena.d.ts +27 -0
  308. package/dist/phenomena/phenomena.d.ts.map +1 -0
  309. package/dist/phenomena/phenomena.js +102 -0
  310. package/dist/phenomena/phenomena.js.map +1 -0
  311. package/dist/pool/browser-pool.d.ts +5 -3
  312. package/dist/pool/browser-pool.d.ts.map +1 -1
  313. package/dist/pool/browser-pool.js +21 -3
  314. package/dist/pool/browser-pool.js.map +1 -1
  315. package/dist/pool/playwright-launcher.d.ts +2 -2
  316. package/dist/pool/playwright-launcher.d.ts.map +1 -1
  317. package/dist/pool/playwright-launcher.js +20 -6
  318. package/dist/pool/playwright-launcher.js.map +1 -1
  319. package/dist/project/file-lock.d.ts +2 -0
  320. package/dist/project/file-lock.d.ts.map +1 -0
  321. package/dist/project/file-lock.js +24 -0
  322. package/dist/project/file-lock.js.map +1 -0
  323. package/dist/project/fs-port.d.ts +18 -0
  324. package/dist/project/fs-port.d.ts.map +1 -1
  325. package/dist/project/fs-port.js +24 -2
  326. package/dist/project/fs-port.js.map +1 -1
  327. package/dist/project/project-store.d.ts.map +1 -1
  328. package/dist/project/project-store.js +13 -7
  329. package/dist/project/project-store.js.map +1 -1
  330. package/dist/project/project-tools.d.ts +0 -6
  331. package/dist/project/project-tools.d.ts.map +1 -1
  332. package/dist/project/project-tools.js +25 -7
  333. package/dist/project/project-tools.js.map +1 -1
  334. package/dist/project/reticle-dir.d.ts +39 -14
  335. package/dist/project/reticle-dir.d.ts.map +1 -1
  336. package/dist/project/reticle-dir.js +30 -4
  337. package/dist/project/reticle-dir.js.map +1 -1
  338. package/dist/runs/build-verification-run.d.ts +1 -1
  339. package/dist/runs/build-verification-run.js +1 -1
  340. package/dist/runs/repair-prompt.d.ts +2 -0
  341. package/dist/runs/repair-prompt.d.ts.map +1 -1
  342. package/dist/runs/repair-prompt.js +14 -1
  343. package/dist/runs/repair-prompt.js.map +1 -1
  344. package/dist/runs/reticle-runner.d.ts +1 -1
  345. package/dist/runs/reticle-runner.d.ts.map +1 -1
  346. package/dist/runs/run-diff.d.ts +34 -0
  347. package/dist/runs/run-diff.d.ts.map +1 -0
  348. package/dist/runs/run-diff.js +71 -0
  349. package/dist/runs/run-diff.js.map +1 -0
  350. package/dist/runs/run-store.d.ts +6 -1
  351. package/dist/runs/run-store.d.ts.map +1 -1
  352. package/dist/runs/run-store.js +22 -2
  353. package/dist/runs/run-store.js.map +1 -1
  354. package/dist/runs/run-tools.d.ts.map +1 -1
  355. package/dist/runs/run-tools.js +16 -3
  356. package/dist/runs/run-tools.js.map +1 -1
  357. package/dist/runs/verify-server.js +1 -1
  358. package/dist/runs/verify-server.js.map +1 -1
  359. package/dist/server-version.d.ts +5 -0
  360. package/dist/server-version.d.ts.map +1 -1
  361. package/dist/server-version.js +5 -0
  362. package/dist/server-version.js.map +1 -1
  363. package/dist/session/control-envelope.d.ts +9 -1
  364. package/dist/session/control-envelope.d.ts.map +1 -1
  365. package/dist/session/control-envelope.js +13 -1
  366. package/dist/session/control-envelope.js.map +1 -1
  367. package/dist/session/live-control-tools.d.ts +1 -1
  368. package/dist/session/live-control-tools.d.ts.map +1 -1
  369. package/dist/session/live-control-tools.js +2 -7
  370. package/dist/session/live-control-tools.js.map +1 -1
  371. package/dist/session/live-control.d.ts +38 -0
  372. package/dist/session/live-control.d.ts.map +1 -0
  373. package/dist/session/live-control.js +64 -0
  374. package/dist/session/live-control.js.map +1 -0
  375. package/dist/session/observed-state.d.ts +46 -0
  376. package/dist/session/observed-state.d.ts.map +1 -0
  377. package/dist/session/observed-state.js +76 -0
  378. package/dist/session/observed-state.js.map +1 -0
  379. package/dist/session/output-budget.d.ts +9 -0
  380. package/dist/session/output-budget.d.ts.map +1 -1
  381. package/dist/session/output-budget.js +12 -1
  382. package/dist/session/output-budget.js.map +1 -1
  383. package/dist/session/review-store.d.ts +1 -1
  384. package/dist/session/review-store.d.ts.map +1 -1
  385. package/dist/session/review-store.js +2 -2
  386. package/dist/session/review-store.js.map +1 -1
  387. package/dist/session/session-manager.d.ts +9 -7
  388. package/dist/session/session-manager.d.ts.map +1 -1
  389. package/dist/session/session-manager.js +8 -8
  390. package/dist/session/session-manager.js.map +1 -1
  391. package/dist/session/session-readiness.js +1 -1
  392. package/dist/session/session-readiness.js.map +1 -1
  393. package/dist/session/session-reaper.d.ts +1 -1
  394. package/dist/session/session-reaper.js +1 -1
  395. package/dist/session/session-recommendation.d.ts +1 -1
  396. package/dist/session/session-recommendation.js +1 -1
  397. package/dist/session/session-tools.js +1 -1
  398. package/dist/session/session-tools.js.map +1 -1
  399. package/dist/session/session.d.ts +44 -12
  400. package/dist/session/session.d.ts.map +1 -1
  401. package/dist/session/session.js +116 -47
  402. package/dist/session/session.js.map +1 -1
  403. package/dist/tools/act-tools.d.ts.map +1 -1
  404. package/dist/tools/act-tools.js +257 -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/assert-grade.d.ts.map +1 -1
  409. package/dist/tools/assert-grade.js +15 -26
  410. package/dist/tools/assert-grade.js.map +1 -1
  411. package/dist/tools/browser-tools.d.ts.map +1 -1
  412. package/dist/tools/browser-tools.js +32 -8
  413. package/dist/tools/browser-tools.js.map +1 -1
  414. package/dist/tools/contract-tools.d.ts.map +1 -1
  415. package/dist/tools/contract-tools.js +5 -0
  416. package/dist/tools/contract-tools.js.map +1 -1
  417. package/dist/tools/dynamic-tools.d.ts.map +1 -1
  418. package/dist/tools/dynamic-tools.js +7 -6
  419. package/dist/tools/dynamic-tools.js.map +1 -1
  420. package/dist/tools/invoke-tool.d.ts.map +1 -1
  421. package/dist/tools/invoke-tool.js +41 -30
  422. package/dist/tools/invoke-tool.js.map +1 -1
  423. package/dist/tools/lease-tools.d.ts +16 -0
  424. package/dist/tools/lease-tools.d.ts.map +1 -1
  425. package/dist/tools/lease-tools.js +11 -0
  426. package/dist/tools/lease-tools.js.map +1 -1
  427. package/dist/tools/merge-tools.d.ts +43 -0
  428. package/dist/tools/merge-tools.d.ts.map +1 -0
  429. package/dist/tools/merge-tools.js +66 -0
  430. package/dist/tools/merge-tools.js.map +1 -0
  431. package/dist/tools/observe-tools.d.ts.map +1 -1
  432. package/dist/tools/observe-tools.js +172 -29
  433. package/dist/tools/observe-tools.js.map +1 -1
  434. package/dist/tools/profiles.d.ts +18 -13
  435. package/dist/tools/profiles.d.ts.map +1 -1
  436. package/dist/tools/profiles.js +39 -33
  437. package/dist/tools/profiles.js.map +1 -1
  438. package/dist/tools/query-paginate.d.ts +9 -2
  439. package/dist/tools/query-paginate.d.ts.map +1 -1
  440. package/dist/tools/query-paginate.js +21 -4
  441. package/dist/tools/query-paginate.js.map +1 -1
  442. package/dist/tools/read-tools.d.ts.map +1 -1
  443. package/dist/tools/read-tools.js +95 -2
  444. package/dist/tools/read-tools.js.map +1 -1
  445. package/dist/tools/snapshot-delta.d.ts +2 -0
  446. package/dist/tools/snapshot-delta.d.ts.map +1 -1
  447. package/dist/tools/snapshot-delta.js +0 -0
  448. package/dist/tools/snapshot-delta.js.map +1 -1
  449. package/dist/tools/tool-kit.d.ts +11 -2
  450. package/dist/tools/tool-kit.d.ts.map +1 -1
  451. package/dist/tools/tool-kit.js +24 -1
  452. package/dist/tools/tool-kit.js.map +1 -1
  453. package/dist/tools/tool-names.d.ts +19 -10
  454. package/dist/tools/tool-names.d.ts.map +1 -1
  455. package/dist/tools/tool-names.js +23 -13
  456. package/dist/tools/tool-names.js.map +1 -1
  457. package/dist/tools/tools-helpers.d.ts +12 -0
  458. package/dist/tools/tools-helpers.d.ts.map +1 -1
  459. package/dist/tools/tools-helpers.js +20 -0
  460. package/dist/tools/tools-helpers.js.map +1 -1
  461. package/dist/tools/tools.d.ts.map +1 -1
  462. package/dist/tools/tools.js +162 -12
  463. package/dist/tools/tools.js.map +1 -1
  464. package/dist/update/update-checker.d.ts +14 -1
  465. package/dist/update/update-checker.d.ts.map +1 -1
  466. package/dist/update/update-checker.js +9 -5
  467. package/dist/update/update-checker.js.map +1 -1
  468. package/dist/update/updater.d.ts +20 -2
  469. package/dist/update/updater.d.ts.map +1 -1
  470. package/dist/update/updater.js +48 -14
  471. package/dist/update/updater.js.map +1 -1
  472. package/dist/visual/visual-tools.d.ts.map +1 -1
  473. package/dist/visual/visual-tools.js +1 -6
  474. package/dist/visual/visual-tools.js.map +1 -1
  475. package/package.json +8 -3
  476. package/dist/update/update-tools.d.ts +0 -3
  477. package/dist/update/update-tools.d.ts.map +0 -1
  478. package/dist/update/update-tools.js +0 -94
  479. package/dist/update/update-tools.js.map +0 -1
@@ -1,20 +1,36 @@
1
1
  /**
2
2
  * Action tools — reticle_act, reticle_act_sequence, reticle_act_and_wait — plus the native-input machinery
3
3
  * (asBox / tryRealInput). Split out of tools.ts to keep that file under the line cap; assembled back
4
- * into the tool list there via ...ACT_TOOLS.
4
+ * into the tool list there via...ACT_TOOLS.
5
5
  */
6
6
  import { z } from 'zod';
7
7
  import { compileActStep, compileSequenceStep } from '../flows/replay.js';
8
- import { ActionType, ActionWarning, DANGEROUS_ACTION_CONFIRM_ARG, InputMode, InputModeReason, ReticleCommand, isDangerousActionText, } from '@reticlehq/core';
8
+ import { ActionType, ActionWarning, AnchorKind, DANGEROUS_ACTION_CONFIRM_ARG, DEFAULT_ASSERT_TIMEOUT_MS, InputMode, InputModeReason, ReticleCommand, isDangerousActionText, } from '@reticlehq/core';
9
9
  import { isPointerAction } from '../input/real-input.js';
10
10
  import { leanActResult } from './act-view.js';
11
11
  import { ReticleTool } from './tool-names.js';
12
12
  import { buildReactionReport, summarizeReaction } from '../events/reaction.js';
13
- import { evaluatePredicate, waitForPredicate, PredicateSchema } from '../events/predicate.js';
13
+ import { causalSummary } from '../capsule/causal-summary.js';
14
+ import { buildDivergenceCapsule } from '../capsule/capsule.js';
15
+ import { predicateToExpectedLinks } from '../capsule/predicate-to-links.js';
16
+ import { HonestyGrade, buildHonestyBlock } from '../honesty/honesty.js';
17
+ import { buildCoverageStatement, blindSpotsFromState } from '../honesty/blind-spots.js';
18
+ import { CapsuleStore, capsuleId } from '../capsule/capsule-store.js';
19
+ import { evaluatePredicate, waitForPredicate, provenExpectedLinks, PredicateSchema, } from '../events/predicate.js';
14
20
  import { healthEnvelope, refuseIfThrottled } from '../session/session-health.js';
15
- import { pausedShortCircuit, withControl } from '../session/control-envelope.js';
16
- import { asString, asNumber, asRecord } from './tools-helpers.js';
21
+ import { pausedShortCircuit, pausedOutputShape, withControl } from '../session/control-envelope.js';
22
+ import { asString, asNumber, asRecord, sourceOf } from './tools-helpers.js';
17
23
  import { sessionIdShape, commandOrThrow } from './tool-kit.js';
24
+ /** The strongest consequence grade a set of expected links proves (signal > net > state > presence). */
25
+ function gradeOf(links) {
26
+ if (links.some((l) => l.kind === 'signal'))
27
+ return HonestyGrade.SIGNAL;
28
+ if (links.some((l) => l.kind === 'net'))
29
+ return HonestyGrade.NET;
30
+ if (links.some((l) => l.kind === 'state'))
31
+ return HonestyGrade.STATE;
32
+ return HonestyGrade.PRESENCE;
33
+ }
18
34
  /** Narrow an INSPECT result's `box` into a positive-area ElementBox (else undefined). */
19
35
  function asBox(value) {
20
36
  const b = asRecord(asRecord(value)['box']);
@@ -117,6 +133,20 @@ async function tryRealInput(deps, session, ref, action, args) {
117
133
  };
118
134
  }
119
135
  }
136
+ /**
137
+ * Narrow the wire's `action` to a real ActionType, or undefined.
138
+ *
139
+ * It used to be `asString(args['action']) ?? ''`, so an unknown or missing action became the empty
140
+ * string and travelled on — reaching the browser as a command it could not perform, and reported back
141
+ * as a generic failure rather than "that is not an action". Validate at the boundary, per the project's
142
+ * unknown-plus-narrowing rule, so a typo is rejected where it can still be explained.
143
+ */
144
+ function asActionType(value) {
145
+ const raw = asString(value);
146
+ if (raw === undefined)
147
+ return undefined;
148
+ return Object.values(ActionType).includes(raw) ? raw : undefined;
149
+ }
120
150
  export const ACT_TOOLS = [
121
151
  {
122
152
  name: ReticleTool.ACT,
@@ -143,12 +173,26 @@ export const ACT_TOOLS = [
143
173
  dispatched: z.boolean(),
144
174
  settled: z.boolean().nullable(),
145
175
  inputMode: z.string(),
176
+ // Diagnostic fields the handler splices — declared so schema-strict clients keep them.
177
+ effect: z.unknown().optional(),
178
+ settleReason: z.unknown().nullable().optional(),
179
+ inputModeReason: z.string().optional(),
180
+ warning: z.string().optional(),
146
181
  result: z.unknown().optional(),
147
182
  session: z
148
183
  .object({ lastSeenMs: z.number(), throttled: z.boolean(), focused: z.boolean() })
149
184
  .optional(),
185
+ // This tool short-circuits to pausedShortCircuit while the human has paused; declare its fields
186
+ // or the whole pause payload — including drained-once guidance — is stripped on validating clients.
187
+ ...pausedOutputShape,
150
188
  },
151
189
  handler: async (deps, args) => {
190
+ // Validate the REQUEST before touching a session: a malformed action is the caller's error and
191
+ // should be reported as such, not after resolving a session and marking an act cursor.
192
+ const action = asActionType(args['action']);
193
+ if (action === undefined) {
194
+ throw new Error(`unknown action '${String(args['action'])}' — expected one of: ${Object.values(ActionType).join(', ')}`);
195
+ }
152
196
  const session = deps.sessions.resolve(asString(args['sessionId']));
153
197
  // Live-control: refuse to drive the page while the human has paused us (before any work).
154
198
  const paused = pausedShortCircuit(session);
@@ -158,47 +202,64 @@ export const ACT_TOOLS = [
158
202
  const since = session.elapsed();
159
203
  session.markActCursor(since); // honesty: wait_for/assert default their floor to this cursor
160
204
  const ref = asString(args['ref']) ?? '';
161
- const action = asString(args['action']) ?? '';
162
- // drive native pointer input when a provider is available; otherwise fall back.
163
- const real = await tryRealInput(deps, session, ref, action, args);
164
- if (real.result !== undefined) {
205
+ // Open the journal's action-attribution window BEFORE dispatching, so it covers the native path
206
+ // too. It used to open only on the synthetic path, and the native path returned above it — so a
207
+ // hover, a drag or any native:true click produced events with no actionId. Session.pushEvent
208
+ // treats an unattributed ref-bearing event as ambient background churn, so an action's OWN
209
+ // effects were learned as noise; past the ambient threshold the settle oracle then filtered that
210
+ // region out entirely and reported settled while the app was still working. A false green
211
+ // manufactured by the machinery that exists to prevent false greens.
212
+ session.beginAction(ReticleTool.ACT, asRecord(args));
213
+ let settledOutcome;
214
+ try {
215
+ // drive native pointer input when a provider is available; otherwise fall back.
216
+ const real = await tryRealInput(deps, session, ref, action, args);
217
+ if (real.result !== undefined) {
218
+ if (deps.recordings.active().length > 0) {
219
+ deps.recordings.capture(compileActStep(args, real.result));
220
+ }
221
+ settledOutcome = real.settled ?? undefined;
222
+ return withControl(session, {
223
+ since,
224
+ inputMode: InputMode.REAL,
225
+ dispatched: true,
226
+ settled: real.settled,
227
+ settleReason: null,
228
+ result: leanActResult(real.result),
229
+ ...healthEnvelope(session),
230
+ });
231
+ }
232
+ const result = await session.command(ReticleCommand.ACT, {
233
+ ref: args['ref'],
234
+ action: args['action'],
235
+ args: args['args'] ?? {},
236
+ });
237
+ if (!result.ok)
238
+ throw new Error(result.error ?? 'act failed');
165
239
  if (deps.recordings.active().length > 0) {
166
- deps.recordings.capture(compileActStep(args, real.result));
240
+ deps.recordings.capture(compileActStep(args, result.result));
167
241
  }
242
+ // lift dispatch/settle status to the envelope (a settle timeout is NOT a failure).
243
+ const r = asRecord(result.result);
244
+ if (typeof r['settled'] === 'boolean')
245
+ settledOutcome = r['settled'];
168
246
  return withControl(session, {
169
247
  since,
170
- inputMode: InputMode.REAL,
171
- dispatched: true,
172
- settled: real.settled,
173
- settleReason: null,
174
- result: leanActResult(real.result),
248
+ inputMode: InputMode.SYNTHETIC,
249
+ // #2: never a silent real→synthetic fallback — say WHY (unless real input isn't configured).
250
+ ...(real.reason !== undefined ? { inputModeReason: real.reason } : {}),
251
+ dispatched: r['dispatched'] ?? true,
252
+ settled: r['settled'] ?? null,
253
+ settleReason: r['settleReason'] ?? null,
254
+ result: leanActResult(result.result),
255
+ ...(real.fellBack === true ? { warning: ActionWarning.REAL_INPUT_FELL_BACK } : {}),
175
256
  ...healthEnvelope(session),
176
257
  });
177
258
  }
178
- const result = await session.command(ReticleCommand.ACT, {
179
- ref: args['ref'],
180
- action: args['action'],
181
- args: args['args'] ?? {},
182
- });
183
- if (!result.ok)
184
- throw new Error(result.error ?? 'act failed');
185
- if (deps.recordings.active().length > 0) {
186
- deps.recordings.capture(compileActStep(args, result.result));
259
+ finally {
260
+ // Close the window on every exit (settle or throw), recording the action + settle outcome.
261
+ session.finishAction(undefined, settledOutcome, settledOutcome === true ? session.elapsed() - since : undefined);
187
262
  }
188
- // lift dispatch/settle status to the envelope (a settle timeout is NOT a failure).
189
- const r = asRecord(result.result);
190
- return withControl(session, {
191
- since,
192
- inputMode: InputMode.SYNTHETIC,
193
- // #2: never a silent real→synthetic fallback — say WHY (unless real input isn't configured).
194
- ...(real.reason !== undefined ? { inputModeReason: real.reason } : {}),
195
- dispatched: r['dispatched'] ?? true,
196
- settled: r['settled'] ?? null,
197
- settleReason: r['settleReason'] ?? null,
198
- result: leanActResult(result.result),
199
- ...(real.fellBack === true ? { warning: ActionWarning.REAL_INPUT_FELL_BACK } : {}),
200
- ...healthEnvelope(session),
201
- });
202
263
  },
203
264
  },
204
265
  {
@@ -217,6 +278,8 @@ export const ACT_TOOLS = [
217
278
  session: z
218
279
  .object({ lastSeenMs: z.number(), throttled: z.boolean(), focused: z.boolean() })
219
280
  .optional(),
281
+ // Short-circuits to pausedShortCircuit while paused — declare its fields (drained-once guidance).
282
+ ...pausedOutputShape,
220
283
  },
221
284
  handler: async (deps, args) => {
222
285
  const session = deps.sessions.resolve(asString(args['sessionId']));
@@ -226,19 +289,26 @@ export const ACT_TOOLS = [
226
289
  return paused;
227
290
  const since = session.elapsed();
228
291
  session.markActCursor(since); // honesty: a later wait_for/assert floors at this cursor
229
- const result = await session.command(ReticleCommand.ACT_SEQUENCE, { steps: args['steps'] });
230
- if (!result.ok)
231
- throw new Error(result.error ?? 'act_sequence failed');
232
- if (deps.recordings.active().length > 0) {
233
- deps.recordings.capture(compileSequenceStep(args, result.result));
292
+ session.beginAction(ReticleTool.ACT_SEQUENCE, asRecord(args));
293
+ try {
294
+ const result = await session.command(ReticleCommand.ACT_SEQUENCE, { steps: args['steps'] });
295
+ if (!result.ok)
296
+ throw new Error(result.error ?? 'act_sequence failed');
297
+ if (deps.recordings.active().length > 0) {
298
+ deps.recordings.capture(compileSequenceStep(args, result.result));
299
+ }
300
+ const r = asRecord(result.result); // per-step settle status lives in result.steps[]
301
+ return withControl(session, {
302
+ since,
303
+ dispatched: r['count'] !== undefined,
304
+ result: leanActResult(result.result),
305
+ ...healthEnvelope(session),
306
+ });
307
+ }
308
+ finally {
309
+ // Per-step settle lives in steps[]; the sequence action records without a single settle bool.
310
+ session.finishAction();
234
311
  }
235
- const r = asRecord(result.result); // per-step settle status lives in result.steps[]
236
- return withControl(session, {
237
- since,
238
- dispatched: r['count'] !== undefined,
239
- result: leanActResult(result.result),
240
- ...healthEnvelope(session),
241
- });
242
312
  },
243
313
  },
244
314
  {
@@ -277,16 +347,48 @@ export const ACT_TOOLS = [
277
347
  pass: z.boolean(),
278
348
  evidence: z.unknown().optional(),
279
349
  failureReason: z.string().optional(),
350
+ // The STRUCTURED cause — observed / expected / assertion — is what the repair literature ranks
351
+ // above the prose failureReason (structured feedback beat narrative by 10.5pp) and above a bare
352
+ // pointer. `verdict` is `await waitForPredicate(...)`, whose EvalResult carries these on a
353
+ // failure; without declaring them here the strict object schema silently dropped them from
354
+ // structuredContent on the validating `full` profile — reticle_assert declares them (it spreads
355
+ // the verdict at top level), so act_and_wait was losing the highest-value signal that assert kept.
356
+ observed: z.string().optional(),
357
+ expected: z.string().optional(),
358
+ assertion: z.string().optional(),
280
359
  }),
281
360
  trace: z
282
361
  .unknown()
283
362
  .describe('Reaction digest: { window_ms, summary } of what the app did (DOM/network/route/console/signal counts). The full per-event timeline is one reticle_observe { since } away.'),
363
+ summary: z
364
+ .unknown()
365
+ .describe('Bounded causal summary: net {total,errors,headline}, consoleErrors, statePathsChanged, storageKeysChanged, stateDiffs [{path,from,to}], storageDiffs [{key,from,to}], route, signals, layoutShift, longTasks — real before→after diffs (capped), not just readings.'),
366
+ // Promoted out of `effect` on RED only — the file:line the failure came from, the first thing a
367
+ // repair wants. Undeclared, it was stripped on the validating profile exactly like the structured
368
+ // cause above was, losing the highest-value pointer on the one path (a failed verdict) that has it.
369
+ source: z
370
+ .string()
371
+ .optional()
372
+ .describe('Present only on a FAILED verdict: `file:line` of the acted element.'),
373
+ capsule: z
374
+ .unknown()
375
+ .optional()
376
+ .describe('Present only on a FAILED verdict: the divergence capsule { summary, firstDivergence (declared vs observed), blastRadius (undeclared side effects) } — the fault, located, no re-exploration needed.'),
377
+ capsuleSaved: z
378
+ .string()
379
+ .optional()
380
+ .describe('Present only on a FAILED verdict when the fail-to-pass capsule was persisted: its id, replayable as a regression flow once the bug goes green.'),
381
+ honesty: z
382
+ .unknown()
383
+ .describe('The verdict trust block { grade, attribution, coverage, integrity, envelope? } — a green never looks stronger than this. Gate on grade ≥ net AND integrity.clean. Fields that were not measured are OMITTED rather than reported as zero, so treat an absent `envelope` as "not sampled", never as a failure.'),
284
384
  since: z
285
385
  .number()
286
386
  .describe('Cursor for this act — pass to reticle_observe/reticle_assert for the full timeline.'),
287
387
  session: z
288
388
  .object({ lastSeenMs: z.number(), throttled: z.boolean(), focused: z.boolean() })
289
389
  .optional(),
390
+ // Short-circuits to pausedShortCircuit while paused — declare its fields (drained-once guidance).
391
+ ...pausedOutputShape,
290
392
  },
291
393
  handler: async (deps, args) => {
292
394
  const session = deps.sessions.resolve(asString(args['sessionId']));
@@ -299,28 +401,113 @@ export const ACT_TOOLS = [
299
401
  const until = args['until'] !== undefined
300
402
  ? PredicateSchema.parse(args['until'])
301
403
  : { kind: 'settled' };
302
- const timeout = asNumber(args['timeout_ms']) ?? 4000;
404
+ const timeout = asNumber(args['timeout_ms']) ?? DEFAULT_ASSERT_TIMEOUT_MS;
303
405
  const since = session.elapsed();
304
406
  session.markActCursor(since);
305
- const actResult = await session.command(ReticleCommand.ACT, {
306
- ref: args['ref'],
307
- action: args['action'],
308
- args: args['args'] ?? {},
309
- });
310
- if (!actResult.ok)
311
- throw new Error(actResult.error ?? 'act failed');
312
- // Honesty: floor the predicate at this act's cursor so a stale buffered event can't satisfy it.
313
- const verdict = timeout > 0
314
- ? await waitForPredicate(session, until, timeout, since)
315
- : await evaluatePredicate(session, until, since);
316
- const trace = summarizeReaction(buildReactionReport(session.eventsSince(since), session.elapsed() - since));
317
- return withControl(session, {
318
- effect: leanActResult(actResult.result),
319
- verdict,
320
- trace,
321
- since,
322
- ...healthEnvelope(session),
323
- });
407
+ // The attribution window stays open across the settle wait below, so post-dispatch async events
408
+ // (the whole point of act_and_wait) attribute to this action. finishAction fires after the wait.
409
+ session.beginAction(ReticleTool.ACT_AND_WAIT, asRecord(args));
410
+ let settledOutcome;
411
+ try {
412
+ const actResult = await session.command(ReticleCommand.ACT, {
413
+ ref: args['ref'],
414
+ action: args['action'],
415
+ args: args['args'] ?? {},
416
+ });
417
+ if (!actResult.ok)
418
+ throw new Error(actResult.error ?? 'act failed');
419
+ // Honesty: floor the predicate at this act's cursor so a stale buffered event can't satisfy it.
420
+ const verdict = timeout > 0
421
+ ? await waitForPredicate(session, until, timeout, since)
422
+ : await evaluatePredicate(session, until, since);
423
+ const r = asRecord(actResult.result);
424
+ if (typeof r['settled'] === 'boolean')
425
+ settledOutcome = r['settled'];
426
+ // Where the acted element is written. Captured at act time alongside the anchor, so it is
427
+ // available even when the action unmounted its own target.
428
+ const actedSource = sourceOf(r['source']);
429
+ // Remembered on the session so a LATER assertion can name a file even when its failure has no
430
+ // element to point at — a signal that never fired, a request that was never made.
431
+ session.markActSource(actedSource === undefined ? undefined : `${actedSource.file}:${String(actedSource.line)}`);
432
+ const windowEvents = session.eventsSince(since);
433
+ const trace = summarizeReaction(buildReactionReport(windowEvents, session.elapsed() - since));
434
+ // The bounded Tier-1 causal summary — net/console/state/storage diffs the trace's counts miss.
435
+ // ponytail: Layer B validation of this result-shape change is pending — additive + bounded.
436
+ // On RED only, attach the Tier-2 divergence capsule (first-divergence + blast radius). Red-only,
437
+ // so the common green path — what the loop optimizes — is unchanged; on red, diagnosis is the point.
438
+ const links = predicateToExpectedLinks(until);
439
+ const capsule = verdict.pass ? undefined : buildDivergenceCapsule(links, windowEvents);
440
+ // Grade from what the verdict PROVED, not what it declared. A green anyOf holds on one branch, so
441
+ // grading off `links` (every branch) would let a presence-only OR report grade `signal` — a false
442
+ // green in the gate itself. `provenExpectedLinks` narrows a green to the branch that actually held;
443
+ // on red we keep the declared links (the capsule wants the full expected surface).
444
+ const gradedLinks = verdict.pass ? await provenExpectedLinks(session, until, since) : links;
445
+ // Honesty: the grade this verdict actually proved + capture integrity — a green never looks
446
+ // stronger than this block. Grade from the strongest asserted consequence; integrity from evictions.
447
+ // Coverage: cross-origin frames / other blind spots the SDK reported during this window mean the
448
+ // verdict didn't see everything — say so, never imply full coverage.
449
+ const coverage = buildCoverageStatement(blindSpotsFromState(session.blindSpots()));
450
+ const honesty = buildHonestyBlock({
451
+ grade: gradeOf(gradedLinks),
452
+ attribution: 'window',
453
+ truncated: session.bufferHealth().dropped > 0,
454
+ coveragePartial: coverage.coverage === 'partial',
455
+ ...(coverage.note === undefined ? {} : { blindSpots: [coverage.note] }),
456
+ });
457
+ //: a red assertion is the ONE moment the evidence explaining it is in hand. Persist it as a
458
+ // replayable fail-to-pass capsule so the bug survives the turn — and becomes a regression flow
459
+ // the moment it goes green. Best-effort: capturing evidence must never fail the run that found it.
460
+ let capsuleSaved;
461
+ if (!verdict.pass && capsule !== undefined) {
462
+ const id = capsuleId(deps.now(), asString(args['ref']) ?? 'assert');
463
+ const expectedText = links
464
+ .map((l) => ('name' in l ? `${l.kind} ${l.name}` : l.kind))
465
+ .join(' AND ');
466
+ const saved = await new CapsuleStore(deps.fs, deps.reticleRoot).save({
467
+ version: 1,
468
+ id,
469
+ createdAt: deps.now(),
470
+ origin: 'failed-assert',
471
+ expected: expectedText.length > 0 ? expectedText : 'declared consequence',
472
+ observed: capsule.firstDivergence?.observed ?? verdict.failureReason ?? 'not observed',
473
+ steps: [
474
+ {
475
+ tool: ReticleTool.ACT,
476
+ anchor: {
477
+ kind: AnchorKind.TESTID,
478
+ value: asString(asRecord(actResult.result)['testid']) ?? asString(args['ref']) ?? '',
479
+ // Carried so the saved capsule — which outlives this turn and becomes a regression
480
+ // flow when it goes green — still knows which file the failure came from.
481
+ ...(actedSource === undefined ? {} : { source: actedSource }),
482
+ },
483
+ action: (asString(args['action']) ?? ActionType.CLICK),
484
+ },
485
+ ],
486
+ });
487
+ if (saved)
488
+ capsuleSaved = id;
489
+ }
490
+ return withControl(session, {
491
+ effect: leanActResult(actResult.result),
492
+ verdict,
493
+ // Promoted out of `effect` on red only. On green nobody needs it and it is noise; on red it
494
+ // is the first thing the agent wants, and burying a file:line inside the effect block is
495
+ // most of the way to not reporting it at all.
496
+ ...(verdict.pass || actedSource === undefined
497
+ ? {}
498
+ : { source: `${actedSource.file}:${String(actedSource.line)}` }),
499
+ trace,
500
+ ...(capsuleSaved === undefined ? {} : { capsuleSaved }),
501
+ summary: causalSummary(windowEvents),
502
+ honesty,
503
+ ...(capsule === undefined ? {} : { capsule }),
504
+ since,
505
+ ...healthEnvelope(session),
506
+ });
507
+ }
508
+ finally {
509
+ session.finishAction(undefined, settledOutcome, settledOutcome === true ? session.elapsed() - since : undefined);
510
+ }
324
511
  },
325
512
  },
326
513
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"act-tools.js","sourceRoot":"","sources":["../../src/tools/act-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"act-tools.js","sourceRoot":"","sources":["../../src/tools/act-tools.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,10 @@
4
4
  * almost always at a non-informative default. We drop a field ONLY when it equals its
5
5
  * uninformative default, so absence always means "the boring value" and no real signal is lost:
6
6
  *
7
- * - success defaults — `dispatched`/`targetMatched`/`visible`/`enabled` are `true` on a clean
8
- * action; only their `false` (action missed, hit a hidden/disabled element) carries signal;
9
- * - `false` defaults — `occluded`/`scrolledIntoView`/`defaultPrevented`/`valueChanged`;
10
- * - `null` defaults — `occludedBy`/`focusMoved` (no overlay / no focus change).
7
+ * - success defaults — `dispatched`/`targetMatched`/`visible`/`enabled` are `true` on a clean
8
+ * action; only their `false` (action missed, hit a hidden/disabled element) carries signal;
9
+ * - `false` defaults — `occluded`/`scrolledIntoView`/`defaultPrevented`/`valueChanged`;
10
+ * - `null` defaults — `occludedBy`/`focusMoved` (no overlay / no focus change).
11
11
  *
12
12
  * A clean click therefore collapses to its consequence alone (e.g. `{ domMutatedWithin: 8 }`),
13
13
  * matching the leanness of a bare browser-driver click. This runs at the serialization boundary;
@@ -4,10 +4,10 @@
4
4
  * almost always at a non-informative default. We drop a field ONLY when it equals its
5
5
  * uninformative default, so absence always means "the boring value" and no real signal is lost:
6
6
  *
7
- * - success defaults — `dispatched`/`targetMatched`/`visible`/`enabled` are `true` on a clean
8
- * action; only their `false` (action missed, hit a hidden/disabled element) carries signal;
9
- * - `false` defaults — `occluded`/`scrolledIntoView`/`defaultPrevented`/`valueChanged`;
10
- * - `null` defaults — `occludedBy`/`focusMoved` (no overlay / no focus change).
7
+ * - success defaults — `dispatched`/`targetMatched`/`visible`/`enabled` are `true` on a clean
8
+ * action; only their `false` (action missed, hit a hidden/disabled element) carries signal;
9
+ * - `false` defaults — `occluded`/`scrolledIntoView`/`defaultPrevented`/`valueChanged`;
10
+ * - `null` defaults — `occludedBy`/`focusMoved` (no overlay / no focus change).
11
11
  *
12
12
  * A clean click therefore collapses to its consequence alone (e.g. `{ domMutatedWithin: 8 }`),
13
13
  * matching the leanness of a bare browser-driver click. This runs at the serialization boundary;
@@ -1 +1 @@
1
- {"version":3,"file":"assert-grade.d.ts","sourceRoot":"","sources":["../../src/tools/assert-grade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,eAAO,MAAM,oBAAoB,mTACuQ,CAAC;AAuCzS;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAGrE"}
1
+ {"version":3,"file":"assert-grade.d.ts","sourceRoot":"","sources":["../../src/tools/assert-grade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,eAAO,MAAM,oBAAoB,mTACuQ,CAAC;AA0BzS;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAGrE"}
@@ -10,35 +10,24 @@
10
10
  *
11
11
  * Pure: no IO, no clock.
12
12
  */
13
+ import { isConsequenceKind, isPresenceKind } from '@reticlehq/core';
13
14
  export const PRESENCE_ONLY_ADVICE = 'This predicate only checks element/text presence, not an observable consequence. A locator healed to the wrong element (or a stale render) can satisfy it while the feature is broken. Prefer a { signal } or { net } assertion — or allOf it with one — so green means the feature actually worked.';
14
15
  function walk(predicate) {
15
- switch (predicate.kind) {
16
- case 'signal':
17
- case 'net':
18
- case 'state':
19
- // A state assertion verifies the app's own source of truth changed — a consequence a wrong
20
- // element or stale render cannot fake (the strongest form of the success-oracle).
21
- return { consequence: true, presence: false };
22
- case 'element':
23
- case 'text':
24
- return { consequence: false, presence: true };
25
- case 'route':
26
- case 'console':
27
- case 'animation':
28
- case 'settled':
29
- // Observable but not the weak presence pattern we nudge — neither flags the advice.
30
- return { consequence: false, presence: false };
31
- case 'allOf':
32
- case 'anyOf': {
33
- const subs = predicate.predicates.map(walk);
34
- return {
35
- consequence: subs.some((s) => s.consequence),
36
- presence: subs.some((s) => s.presence),
37
- };
38
- }
39
- case 'not':
40
- return walk(predicate.predicate);
16
+ if (predicate.kind === 'allOf' || predicate.kind === 'anyOf') {
17
+ const subs = predicate.predicates.map(walk);
18
+ return {
19
+ consequence: subs.some((s) => s.consequence),
20
+ presence: subs.some((s) => s.presence),
21
+ };
41
22
  }
23
+ if (predicate.kind === 'not')
24
+ return walk(predicate.predicate);
25
+ // Leaf: classify against the single source of truth in core. Kinds that are neither consequence
26
+ // nor presence (route/console/settled/animation) correctly return false for both.
27
+ return {
28
+ consequence: isConsequenceKind(predicate.kind),
29
+ presence: isPresenceKind(predicate.kind),
30
+ };
42
31
  }
43
32
  /**
44
33
  * True when the predicate asserts ONLY element/text presence with no signal/net consequence anywhere
@@ -1 +1 @@
1
- {"version":3,"file":"assert-grade.js","sourceRoot":"","sources":["../../src/tools/assert-grade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,sSAAsS,CAAC;AASzS,SAAS,IAAI,CAAC,SAAoB;IAChC,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,QAAQ,CAAC;QACd,KAAK,KAAK,CAAC;QACX,KAAK,OAAO;YACV,2FAA2F;YAC3F,kFAAkF;YAClF,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAChD,KAAK,SAAS,CAAC;QACf,KAAK,MAAM;YACT,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChD,KAAK,OAAO,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS;YACZ,oFAAoF;YACpF,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACjD,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC5C,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aACvC,CAAC;QACJ,CAAC;QACD,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAoB;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"assert-grade.js","sourceRoot":"","sources":["../../src/tools/assert-grade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGpE,MAAM,CAAC,MAAM,oBAAoB,GAC/B,sSAAsS,CAAC;AASzS,SAAS,IAAI,CAAC,SAAoB;IAChC,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5C,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SACvC,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/D,gGAAgG;IAChG,kFAAkF;IAClF,OAAO;QACL,WAAW,EAAE,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC;QAC9C,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC;KACzC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAoB;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAC9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser-tools.d.ts","sourceRoot":"","sources":["../../src/tools/browser-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,aAAa,EAAE,OAAO,EAmDlC,CAAC"}
1
+ {"version":3,"file":"browser-tools.d.ts","sourceRoot":"","sources":["../../src/tools/browser-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,aAAa,EAAE,OAAO,EA0ElC,CAAC"}