e2e 0.15.2 → 0.17.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 (1024) hide show
  1. package/dist/.build.json +1 -1
  2. package/dist/agent/act-validation.d.ts +10 -1
  3. package/dist/agent/act-validation.js +48 -1
  4. package/dist/agent/act.d.ts +1 -2
  5. package/dist/agent/act.js +29 -9
  6. package/dist/agent/action-dispatcher.d.ts +0 -1
  7. package/dist/agent/action-dispatcher.js +4 -6
  8. package/dist/agent/action-names.d.ts +0 -1
  9. package/dist/agent/action-names.js +0 -1
  10. package/dist/agent/actions.d.ts +32 -24
  11. package/dist/agent/actions.js +38 -25
  12. package/dist/agent/agent-brand.d.ts +0 -1
  13. package/dist/agent/agent-brand.js +0 -1
  14. package/dist/agent/ai-sdk.d.ts +7 -1
  15. package/dist/agent/ai-sdk.js +11 -1
  16. package/dist/agent/call-options.d.ts +0 -1
  17. package/dist/agent/call-options.js +0 -1
  18. package/dist/agent/default-agent.d.ts +0 -1
  19. package/dist/agent/default-agent.js +0 -1
  20. package/dist/agent/derived.d.ts +0 -1
  21. package/dist/agent/derived.js +0 -1
  22. package/dist/agent/error.d.ts +0 -1
  23. package/dist/agent/error.js +0 -1
  24. package/dist/agent/executor.d.ts +0 -1
  25. package/dist/agent/executor.js +0 -1
  26. package/dist/agent/index.d.ts +0 -1
  27. package/dist/agent/index.js +0 -1
  28. package/dist/agent/interactive-step.d.ts +0 -1
  29. package/dist/agent/interactive-step.js +0 -1
  30. package/dist/agent/invocation.d.ts +0 -1
  31. package/dist/agent/invocation.js +10 -5
  32. package/dist/agent/ledger.d.ts +0 -1
  33. package/dist/agent/ledger.js +0 -1
  34. package/dist/agent/loop-guards.d.ts +0 -1
  35. package/dist/agent/loop-guards.js +0 -1
  36. package/dist/agent/model/adapter.d.ts +0 -1
  37. package/dist/agent/model/adapter.js +0 -1
  38. package/dist/agent/model/overflow.d.ts +0 -1
  39. package/dist/agent/model/overflow.js +0 -1
  40. package/dist/agent/model/provider-hints.d.ts +0 -1
  41. package/dist/agent/model/provider-hints.js +0 -1
  42. package/dist/agent/model/schema.d.ts +0 -1
  43. package/dist/agent/model/schema.js +0 -1
  44. package/dist/agent/model/sdk.d.ts +0 -1
  45. package/dist/agent/model/sdk.js +2 -1
  46. package/dist/agent/model/stall.d.ts +0 -1
  47. package/dist/agent/model/stall.js +0 -1
  48. package/dist/agent/model/tool-choice.d.ts +0 -1
  49. package/dist/agent/model/tool-choice.js +0 -1
  50. package/dist/agent/observation-budget.d.ts +0 -1
  51. package/dist/agent/observation-budget.js +0 -1
  52. package/dist/agent/observation-feed.d.ts +5 -7
  53. package/dist/agent/observation-feed.js +5 -8
  54. package/dist/agent/observation.d.ts +40 -12
  55. package/dist/agent/observation.js +109 -60
  56. package/dist/agent/operation-queue.d.ts +0 -1
  57. package/dist/agent/operation-queue.js +0 -1
  58. package/dist/agent/phases.d.ts +0 -1
  59. package/dist/agent/phases.js +0 -1
  60. package/dist/agent/pixels.d.ts +0 -1
  61. package/dist/agent/pixels.js +0 -1
  62. package/dist/agent/point-tap.d.ts +8 -9
  63. package/dist/agent/point-tap.js +1 -2
  64. package/dist/agent/primitives.d.ts +6 -1
  65. package/dist/agent/primitives.js +4 -2
  66. package/dist/agent/prompts.d.ts +0 -1
  67. package/dist/agent/prompts.js +0 -1
  68. package/dist/agent/protocol.d.ts +0 -1
  69. package/dist/agent/protocol.js +0 -1
  70. package/dist/agent/public.d.ts +0 -1
  71. package/dist/agent/public.js +0 -1
  72. package/dist/agent/reading.d.ts +0 -1
  73. package/dist/agent/reading.js +0 -1
  74. package/dist/agent/replay.d.ts +19 -9
  75. package/dist/agent/replay.js +11 -15
  76. package/dist/agent/screen-update.d.ts +0 -1
  77. package/dist/agent/screen-update.js +0 -1
  78. package/dist/agent/scroll-target.d.ts +2 -4
  79. package/dist/agent/scroll-target.js +0 -1
  80. package/dist/agent/secrets.d.ts +0 -1
  81. package/dist/agent/secrets.js +0 -1
  82. package/dist/agent/settle-policy.d.ts +0 -1
  83. package/dist/agent/settle-policy.js +0 -1
  84. package/dist/agent/step-accounting.d.ts +0 -1
  85. package/dist/agent/step-accounting.js +0 -1
  86. package/dist/agent/step-cache.d.ts +41 -15
  87. package/dist/agent/step-cache.js +147 -63
  88. package/dist/agent/tool-loop.d.ts +0 -1
  89. package/dist/agent/tool-loop.js +2 -1
  90. package/dist/agent/tool-output.d.ts +0 -1
  91. package/dist/agent/tool-output.js +0 -1
  92. package/dist/agent/tool.d.ts +0 -1
  93. package/dist/agent/tool.js +0 -1
  94. package/dist/agent/transcript-compaction.d.ts +0 -1
  95. package/dist/agent/transcript-compaction.js +0 -1
  96. package/dist/agent/upload-paths.d.ts +0 -1
  97. package/dist/agent/upload-paths.js +0 -1
  98. package/dist/agent/usage.d.ts +0 -1
  99. package/dist/agent/usage.js +0 -1
  100. package/dist/cache/anchors.d.ts +72 -24
  101. package/dist/cache/anchors.js +233 -61
  102. package/dist/cache/context.d.ts +25 -15
  103. package/dist/cache/context.js +50 -9
  104. package/dist/cache/decide.d.ts +2 -3
  105. package/dist/cache/decide.js +4 -7
  106. package/dist/cache/identity.d.ts +18 -5
  107. package/dist/cache/identity.js +9 -5
  108. package/dist/cache/recorder.d.ts +15 -2
  109. package/dist/cache/recorder.js +36 -24
  110. package/dist/cache/rekeyed.d.ts +46 -0
  111. package/dist/cache/rekeyed.js +89 -0
  112. package/dist/cache/relocate.d.ts +14 -15
  113. package/dist/cache/relocate.js +33 -26
  114. package/dist/cache/route.d.ts +32 -34
  115. package/dist/cache/route.js +94 -51
  116. package/dist/cache/store.d.ts +6 -1
  117. package/dist/cache/store.js +21 -2
  118. package/dist/cache/template.d.ts +0 -1
  119. package/dist/cache/template.js +0 -1
  120. package/dist/cache/trace.d.ts +53 -15
  121. package/dist/cache/trace.js +70 -29
  122. package/dist/cli/bin.d.ts +0 -1
  123. package/dist/cli/bin.js +0 -1
  124. package/dist/cli/cache.d.ts +0 -1
  125. package/dist/cli/cache.js +0 -1
  126. package/dist/cli/docs-url.d.ts +0 -1
  127. package/dist/cli/docs-url.js +0 -1
  128. package/dist/cli/feedback.d.ts +0 -1
  129. package/dist/cli/feedback.js +0 -1
  130. package/dist/cli/guide.d.ts +0 -1
  131. package/dist/cli/guide.js +0 -1
  132. package/dist/cli/index.d.ts +0 -1
  133. package/dist/cli/index.js +10 -11
  134. package/dist/cli/init/agent-skill.d.ts +0 -1
  135. package/dist/cli/init/agent-skill.js +0 -1
  136. package/dist/cli/init/engines.d.ts +1 -4
  137. package/dist/cli/init/engines.js +2 -3
  138. package/dist/cli/init/gateways.d.ts +1 -2
  139. package/dist/cli/init/gateways.js +11 -2
  140. package/dist/cli/init/mcp-config.d.ts +0 -1
  141. package/dist/cli/init/mcp-config.js +0 -1
  142. package/dist/cli/init/package.d.ts +0 -1
  143. package/dist/cli/init/package.js +0 -1
  144. package/dist/cli/init/scaffold.d.ts +0 -1
  145. package/dist/cli/init/scaffold.js +0 -1
  146. package/dist/cli/init/sibling-versions.json +1 -1
  147. package/dist/cli/init/versions.d.ts +0 -9
  148. package/dist/cli/init/versions.js +1 -11
  149. package/dist/cli/init.d.ts +0 -1
  150. package/dist/cli/init.js +0 -1
  151. package/dist/cli/mcp.d.ts +9 -2
  152. package/dist/cli/mcp.js +14 -2
  153. package/dist/cli/signals.d.ts +0 -1
  154. package/dist/cli/signals.js +0 -1
  155. package/dist/cli/skill.d.ts +0 -1
  156. package/dist/cli/skill.js +0 -1
  157. package/dist/cli/telemetry.d.ts +0 -1
  158. package/dist/cli/telemetry.js +1 -2
  159. package/dist/cli/wordmark.d.ts +0 -1
  160. package/dist/cli/wordmark.js +0 -1
  161. package/dist/collect/collect.d.ts +0 -1
  162. package/dist/collect/collect.js +3 -2
  163. package/dist/collect/registry.d.ts +6 -3
  164. package/dist/collect/registry.js +31 -14
  165. package/dist/collect/select.d.ts +0 -1
  166. package/dist/collect/select.js +0 -1
  167. package/dist/config/agent.d.ts +0 -1
  168. package/dist/config/agent.js +0 -1
  169. package/dist/config/app.d.ts +0 -1
  170. package/dist/config/app.js +0 -1
  171. package/dist/config/command.d.ts +0 -1
  172. package/dist/config/command.js +0 -1
  173. package/dist/config/diagnose.d.ts +0 -1
  174. package/dist/config/diagnose.js +0 -1
  175. package/dist/config/esm-hooks.d.ts +0 -1
  176. package/dist/config/esm-hooks.js +0 -1
  177. package/dist/config/load.d.ts +0 -1
  178. package/dist/config/load.js +0 -1
  179. package/dist/config/resolve.d.ts +1 -1
  180. package/dist/config/resolve.js +33 -2
  181. package/dist/config/secrets.d.ts +0 -1
  182. package/dist/config/secrets.js +0 -1
  183. package/dist/config/targets.d.ts +0 -1
  184. package/dist/config/targets.js +0 -1
  185. package/dist/config/validate.d.ts +0 -1
  186. package/dist/config/validate.js +0 -1
  187. package/dist/engine/contract.d.ts +0 -1
  188. package/dist/engine/contract.js +0 -1
  189. package/dist/engine/index.d.ts +3 -4
  190. package/dist/engine/index.js +4 -4
  191. package/dist/engine/manifest.d.ts +0 -1
  192. package/dist/engine/manifest.js +0 -1
  193. package/dist/engine/recording.d.ts +0 -1
  194. package/dist/engine/recording.js +0 -1
  195. package/dist/engine/resolve.d.ts +0 -1
  196. package/dist/engine/resolve.js +0 -1
  197. package/dist/engine/session.d.ts +0 -1
  198. package/dist/engine/session.js +0 -1
  199. package/dist/engine/surface.d.ts +0 -1
  200. package/dist/engine/surface.js +0 -1
  201. package/dist/engine/timing.d.ts +0 -1
  202. package/dist/engine/timing.js +0 -1
  203. package/dist/expect/async.d.ts +0 -1
  204. package/dist/expect/async.js +101 -59
  205. package/dist/expect/attempt.d.ts +0 -1
  206. package/dist/expect/attempt.js +0 -1
  207. package/dist/expect/index.d.ts +0 -1
  208. package/dist/expect/index.js +0 -1
  209. package/dist/expect/poll-scope.d.ts +52 -0
  210. package/dist/expect/poll-scope.js +113 -0
  211. package/dist/expect/poll.d.ts +0 -1
  212. package/dist/expect/poll.js +31 -5
  213. package/dist/expect/soft.d.ts +0 -1
  214. package/dist/expect/soft.js +0 -1
  215. package/dist/expect/values.d.ts +0 -1
  216. package/dist/expect/values.js +11 -5
  217. package/dist/explore/body.d.ts +0 -1
  218. package/dist/explore/body.js +0 -1
  219. package/dist/explore/executor.d.ts +0 -1
  220. package/dist/explore/executor.js +0 -1
  221. package/dist/explore/index.d.ts +0 -1
  222. package/dist/explore/index.js +16 -2
  223. package/dist/explore/plan.d.ts +0 -1
  224. package/dist/explore/plan.js +0 -1
  225. package/dist/explore/progress.d.ts +0 -1
  226. package/dist/explore/progress.js +0 -1
  227. package/dist/explore/state.d.ts +0 -1
  228. package/dist/explore/state.js +0 -1
  229. package/dist/index.d.ts +0 -1
  230. package/dist/index.js +0 -1
  231. package/dist/internal/abandoned.d.ts +11 -0
  232. package/dist/internal/abandoned.js +23 -0
  233. package/dist/internal/ai-trace.d.ts +0 -1
  234. package/dist/internal/ai-trace.js +0 -1
  235. package/dist/internal/atomic-write.d.ts +0 -1
  236. package/dist/internal/atomic-write.js +0 -1
  237. package/dist/internal/brands.d.ts +2 -1
  238. package/dist/internal/brands.js +2 -1
  239. package/dist/internal/client-identity.d.ts +9 -0
  240. package/dist/internal/client-identity.js +14 -0
  241. package/dist/internal/debug.d.ts +0 -1
  242. package/dist/internal/debug.js +0 -1
  243. package/dist/internal/env.d.ts +0 -1
  244. package/dist/internal/env.js +0 -1
  245. package/dist/internal/errors.d.ts +0 -1
  246. package/dist/internal/errors.js +0 -1
  247. package/dist/internal/geometry.d.ts +0 -1
  248. package/dist/internal/geometry.js +0 -1
  249. package/dist/internal/git.d.ts +0 -1
  250. package/dist/internal/git.js +0 -1
  251. package/dist/internal/globs.d.ts +0 -1
  252. package/dist/internal/globs.js +0 -1
  253. package/dist/internal/ids.d.ts +0 -1
  254. package/dist/internal/ids.js +0 -1
  255. package/dist/internal/json-value.d.ts +0 -1
  256. package/dist/internal/json-value.js +0 -1
  257. package/dist/internal/keys.d.ts +0 -1
  258. package/dist/internal/keys.js +0 -1
  259. package/dist/internal/node-version.d.ts +0 -1
  260. package/dist/internal/node-version.js +0 -1
  261. package/dist/internal/objects.d.ts +0 -1
  262. package/dist/internal/objects.js +0 -1
  263. package/dist/internal/options.d.ts +0 -1
  264. package/dist/internal/options.js +0 -1
  265. package/dist/internal/package-manager.d.ts +0 -1
  266. package/dist/internal/package-manager.js +0 -1
  267. package/dist/internal/package-version.d.ts +0 -1
  268. package/dist/internal/package-version.js +0 -1
  269. package/dist/internal/paths.d.ts +0 -1
  270. package/dist/internal/paths.js +0 -1
  271. package/dist/internal/realm-slot.d.ts +0 -1
  272. package/dist/internal/realm-slot.js +0 -1
  273. package/dist/internal/recording-modes.d.ts +0 -1
  274. package/dist/internal/recording-modes.js +0 -1
  275. package/dist/internal/redact.d.ts +7 -5
  276. package/dist/internal/redact.js +116 -24
  277. package/dist/internal/regexp.d.ts +0 -1
  278. package/dist/internal/regexp.js +0 -1
  279. package/dist/internal/roles.d.ts +0 -1
  280. package/dist/internal/roles.js +0 -1
  281. package/dist/internal/skip.d.ts +0 -1
  282. package/dist/internal/skip.js +0 -1
  283. package/dist/internal/source.d.ts +0 -1
  284. package/dist/internal/source.js +0 -1
  285. package/dist/internal/standard-schema.d.ts +0 -1
  286. package/dist/internal/standard-schema.js +0 -1
  287. package/dist/internal/suggest.d.ts +0 -1
  288. package/dist/internal/suggest.js +0 -1
  289. package/dist/internal/text.d.ts +8 -1
  290. package/dist/internal/text.js +13 -2
  291. package/dist/internal/time.d.ts +6 -1
  292. package/dist/internal/time.js +25 -14
  293. package/dist/internal/urls.d.ts +9 -6
  294. package/dist/internal/urls.js +19 -11
  295. package/dist/internal/vcs.d.ts +0 -1
  296. package/dist/internal/vcs.js +0 -1
  297. package/dist/internal/zip.d.ts +0 -1
  298. package/dist/internal/zip.js +0 -1
  299. package/dist/locator/engine.d.ts +12 -3
  300. package/dist/locator/engine.js +8 -4
  301. package/dist/locator/expression.d.ts +0 -1
  302. package/dist/locator/expression.js +0 -1
  303. package/dist/locator/screen.d.ts +0 -1
  304. package/dist/locator/screen.js +28 -5
  305. package/dist/mcp/catalog.d.ts +7 -3
  306. package/dist/mcp/catalog.js +8 -9
  307. package/dist/mcp/config.d.ts +0 -1
  308. package/dist/mcp/config.js +0 -1
  309. package/dist/mcp/recording.d.ts +0 -1
  310. package/dist/mcp/recording.js +0 -1
  311. package/dist/mcp/server.d.ts +8 -1
  312. package/dist/mcp/server.js +8 -5
  313. package/dist/mcp/session.d.ts +4 -2
  314. package/dist/mcp/session.js +44 -22
  315. package/dist/mcp/sessions.d.ts +2 -1
  316. package/dist/mcp/sessions.js +5 -2
  317. package/dist/mcp/tools.d.ts +7 -6
  318. package/dist/mcp/tools.js +36 -11
  319. package/dist/mcp/usage.d.ts +61 -0
  320. package/dist/mcp/usage.js +73 -0
  321. package/dist/oauth/callback-server.d.ts +0 -1
  322. package/dist/oauth/callback-server.js +0 -1
  323. package/dist/oauth/chatgpt.d.ts +0 -1
  324. package/dist/oauth/chatgpt.js +3 -24
  325. package/dist/oauth/cli.d.ts +0 -1
  326. package/dist/oauth/cli.js +1 -1
  327. package/dist/oauth/copilot.d.ts +5 -5
  328. package/dist/oauth/copilot.js +80 -8
  329. package/dist/oauth/device-code.d.ts +0 -1
  330. package/dist/oauth/device-code.js +0 -1
  331. package/dist/oauth/errors.d.ts +0 -1
  332. package/dist/oauth/errors.js +0 -1
  333. package/dist/oauth/fetch.d.ts +0 -1
  334. package/dist/oauth/fetch.js +0 -1
  335. package/dist/oauth/grok.d.ts +0 -1
  336. package/dist/oauth/grok.js +2 -2
  337. package/dist/oauth/jwt.d.ts +0 -1
  338. package/dist/oauth/jwt.js +0 -1
  339. package/dist/oauth/login.d.ts +0 -1
  340. package/dist/oauth/login.js +0 -1
  341. package/dist/oauth/models.d.ts +0 -1
  342. package/dist/oauth/models.js +2 -2
  343. package/dist/oauth/opencode-console.d.ts +10 -0
  344. package/dist/oauth/opencode-console.js +133 -0
  345. package/dist/oauth/pkce.d.ts +0 -1
  346. package/dist/oauth/pkce.js +0 -1
  347. package/dist/oauth/providers/github-copilot.d.ts +12 -1
  348. package/dist/oauth/providers/github-copilot.js +80 -19
  349. package/dist/oauth/providers/openai.d.ts +0 -1
  350. package/dist/oauth/providers/openai.js +1 -2
  351. package/dist/oauth/providers/opencode-console.d.ts +31 -0
  352. package/dist/oauth/providers/opencode-console.js +148 -0
  353. package/dist/oauth/providers/xai.d.ts +0 -1
  354. package/dist/oauth/providers/xai.js +0 -1
  355. package/dist/oauth/providers.d.ts +2 -7
  356. package/dist/oauth/providers.js +3 -8
  357. package/dist/oauth/responses.d.ts +9 -0
  358. package/dist/oauth/responses.js +23 -0
  359. package/dist/oauth/sse.d.ts +0 -1
  360. package/dist/oauth/sse.js +0 -1
  361. package/dist/oauth/store.d.ts +0 -1
  362. package/dist/oauth/store.js +0 -1
  363. package/dist/oauth/token-endpoint.d.ts +0 -1
  364. package/dist/oauth/token-endpoint.js +0 -1
  365. package/dist/oauth/types.d.ts +0 -1
  366. package/dist/oauth/types.js +0 -1
  367. package/dist/params.d.ts +0 -1
  368. package/dist/params.js +0 -1
  369. package/dist/report/build.d.ts +26 -1
  370. package/dist/report/build.js +16 -9
  371. package/dist/report/builtin.d.ts +0 -1
  372. package/dist/report/builtin.js +0 -1
  373. package/dist/report/code-frame.d.ts +0 -1
  374. package/dist/report/code-frame.js +0 -1
  375. package/dist/report/debug-steps.d.ts +0 -1
  376. package/dist/report/debug-steps.js +0 -1
  377. package/dist/report/explore-text.d.ts +0 -1
  378. package/dist/report/explore-text.js +0 -1
  379. package/dist/report/failure-text.d.ts +6 -2
  380. package/dist/report/failure-text.js +14 -5
  381. package/dist/report/format.d.ts +10 -6
  382. package/dist/report/format.js +12 -6
  383. package/dist/report/json.d.ts +0 -1
  384. package/dist/report/json.js +0 -1
  385. package/dist/report/junit.d.ts +0 -1
  386. package/dist/report/junit.js +11 -13
  387. package/dist/report/list-explore.d.ts +0 -1
  388. package/dist/report/list-explore.js +0 -1
  389. package/dist/report/list-model.d.ts +0 -1
  390. package/dist/report/list-model.js +0 -1
  391. package/dist/report/list-steps.d.ts +0 -1
  392. package/dist/report/list-steps.js +0 -1
  393. package/dist/report/list.d.ts +1 -1
  394. package/dist/report/list.js +38 -19
  395. package/dist/report/live-window.d.ts +0 -1
  396. package/dist/report/live-window.js +0 -1
  397. package/dist/report/markdown-text.d.ts +0 -1
  398. package/dist/report/markdown-text.js +0 -1
  399. package/dist/report/markdown.d.ts +1 -2
  400. package/dist/report/markdown.js +37 -15
  401. package/dist/report/outcome.d.ts +0 -1
  402. package/dist/report/outcome.js +0 -1
  403. package/dist/report/repeats.d.ts +6 -2
  404. package/dist/report/repeats.js +12 -4
  405. package/dist/report/running-tree.d.ts +0 -1
  406. package/dist/report/running-tree.js +0 -1
  407. package/dist/report/write.d.ts +0 -1
  408. package/dist/report/write.js +0 -1
  409. package/dist/run/app-ports.d.ts +0 -1
  410. package/dist/run/app-ports.js +0 -1
  411. package/dist/run/artifacts.d.ts +18 -1
  412. package/dist/run/artifacts.js +68 -2
  413. package/dist/run/budget.d.ts +0 -1
  414. package/dist/run/budget.js +0 -1
  415. package/dist/run/declared-processes.d.ts +0 -1
  416. package/dist/run/declared-processes.js +0 -1
  417. package/dist/run/events.d.ts +0 -1
  418. package/dist/run/events.js +0 -1
  419. package/dist/run/execute.d.ts +9 -1
  420. package/dist/run/execute.js +55 -29
  421. package/dist/run/extended-fixtures.d.ts +0 -1
  422. package/dist/run/extended-fixtures.js +6 -3
  423. package/dist/run/failure-evidence.d.ts +0 -1
  424. package/dist/run/failure-evidence.js +4 -3
  425. package/dist/run/fixture-recording.d.ts +0 -1
  426. package/dist/run/fixture-recording.js +0 -1
  427. package/dist/run/fixtures.d.ts +0 -1
  428. package/dist/run/fixtures.js +6 -9
  429. package/dist/run/in-process.d.ts +2 -1
  430. package/dist/run/in-process.js +1 -1
  431. package/dist/run/last-run.d.ts +42 -9
  432. package/dist/run/last-run.js +121 -15
  433. package/dist/run/managed-process.d.ts +0 -1
  434. package/dist/run/managed-process.js +0 -1
  435. package/dist/run/output.d.ts +0 -1
  436. package/dist/run/output.js +0 -1
  437. package/dist/run/process-pool.d.ts +0 -1
  438. package/dist/run/process-pool.js +0 -1
  439. package/dist/run/provision.d.ts +0 -1
  440. package/dist/run/provision.js +0 -1
  441. package/dist/run/realm.d.ts +6 -2
  442. package/dist/run/realm.js +21 -8
  443. package/dist/run/records.d.ts +16 -1
  444. package/dist/run/records.js +26 -1
  445. package/dist/run/retry.d.ts +3 -2
  446. package/dist/run/retry.js +4 -3
  447. package/dist/run/runner.d.ts +3 -2
  448. package/dist/run/runner.js +70 -32
  449. package/dist/run/scheduler.d.ts +0 -1
  450. package/dist/run/scheduler.js +0 -1
  451. package/dist/run/secrecy.d.ts +15 -1
  452. package/dist/run/secrecy.js +27 -2
  453. package/dist/run/serial.d.ts +2 -1
  454. package/dist/run/serial.js +8 -6
  455. package/dist/run/sessions.d.ts +0 -1
  456. package/dist/run/sessions.js +0 -1
  457. package/dist/run/standalone.d.ts +0 -1
  458. package/dist/run/standalone.js +3 -3
  459. package/dist/run/steps.d.ts +2 -9
  460. package/dist/run/steps.js +7 -22
  461. package/dist/run/trace-redaction.d.ts +0 -1
  462. package/dist/run/trace-redaction.js +0 -1
  463. package/dist/run/unit-runner.d.ts +0 -1
  464. package/dist/run/unit-runner.js +0 -1
  465. package/dist/run/units.d.ts +0 -1
  466. package/dist/run/units.js +0 -1
  467. package/dist/run/worker/entry.d.ts +0 -1
  468. package/dist/run/worker/entry.js +7 -7
  469. package/dist/run/worker/handle.d.ts +0 -1
  470. package/dist/run/worker/handle.js +0 -1
  471. package/dist/run/worker/protocol.d.ts +2 -1
  472. package/dist/run/worker/protocol.js +0 -1
  473. package/dist/run/worker/session.d.ts +2 -1
  474. package/dist/run/worker/session.js +1 -1
  475. package/dist/run/worker-models.d.ts +0 -1
  476. package/dist/run/worker-models.js +0 -1
  477. package/dist/secrets.d.ts +0 -1
  478. package/dist/secrets.js +0 -1
  479. package/dist/telemetry/checkout.d.ts +0 -1
  480. package/dist/telemetry/checkout.js +0 -1
  481. package/dist/telemetry/environment.d.ts +0 -1
  482. package/dist/telemetry/environment.js +0 -1
  483. package/dist/telemetry/events.d.ts +26 -10
  484. package/dist/telemetry/events.js +108 -13
  485. package/dist/telemetry/failure-kind.d.ts +0 -1
  486. package/dist/telemetry/failure-kind.js +0 -1
  487. package/dist/telemetry/posthog.d.ts +0 -1
  488. package/dist/telemetry/posthog.js +0 -1
  489. package/dist/telemetry/project.d.ts +0 -1
  490. package/dist/telemetry/project.js +0 -1
  491. package/dist/telemetry/store.d.ts +0 -1
  492. package/dist/telemetry/store.js +0 -1
  493. package/dist/telemetry/telemetry.d.ts +19 -8
  494. package/dist/telemetry/telemetry.js +26 -9
  495. package/dist/telemetry/token.d.ts +0 -1
  496. package/dist/telemetry/token.js +0 -1
  497. package/dist/types.d.ts +34 -26
  498. package/dist/types.js +0 -1
  499. package/docs/agents.mdx +6 -3
  500. package/docs/assertions.mdx +94 -0
  501. package/docs/authentication.mdx +3 -1
  502. package/docs/browser.mdx +42 -6
  503. package/docs/cache.mdx +64 -18
  504. package/docs/ci.mdx +11 -7
  505. package/docs/debugging.mdx +6 -3
  506. package/docs/executors.mdx +5 -3
  507. package/docs/github.mdx +12 -4
  508. package/docs/{writing-tests.mdx → goals.mdx} +21 -101
  509. package/docs/index.mdx +4 -4
  510. package/docs/integrations/kernel.mdx +1 -1
  511. package/docs/locators.mdx +64 -0
  512. package/docs/migrate/cypress.mdx +2 -2
  513. package/docs/migrate/maestro.mdx +2 -2
  514. package/docs/migrate/playwright.mdx +22 -16
  515. package/docs/migrate/selenium.mdx +2 -2
  516. package/docs/mobile.mdx +61 -4
  517. package/docs/models.mdx +53 -7
  518. package/docs/physical-devices.mdx +76 -0
  519. package/docs/quickstart.mdx +4 -3
  520. package/docs/reference/app.mdx +1 -1
  521. package/docs/reference/cli.mdx +30 -11
  522. package/docs/reference/config.mdx +25 -7
  523. package/docs/reference/engine.mdx +4 -3
  524. package/docs/reference/environment.mdx +8 -1
  525. package/docs/reference/errors.mdx +5 -5
  526. package/docs/reference/expect.mdx +79 -24
  527. package/docs/reference/mcp.mdx +3 -0
  528. package/docs/reference/mobile.mdx +23 -13
  529. package/docs/reference/reporters.mdx +8 -2
  530. package/docs/reference/screen.mdx +30 -7
  531. package/docs/reference/test.mdx +11 -4
  532. package/docs/reference/web.mdx +131 -23
  533. package/docs/security.mdx +45 -19
  534. package/docs/subscriptions.mdx +97 -9
  535. package/docs/telemetry.mdx +48 -6
  536. package/package.json +18 -4
  537. package/schema/report-v1.schema.json +14 -1
  538. package/skills/e2e/SKILL.md +2 -2
  539. package/skills/e2e/references/agent.md +22 -11
  540. package/skills/e2e/references/debugging.md +4 -4
  541. package/skills/e2e/references/mcp.md +3 -0
  542. package/skills/e2e/references/running.md +13 -8
  543. package/skills/e2e/references/setup.md +42 -15
  544. package/skills/e2e/references/writing-tests.md +43 -15
  545. package/dist/agent/act-validation.d.ts.map +0 -1
  546. package/dist/agent/act-validation.js.map +0 -1
  547. package/dist/agent/act.d.ts.map +0 -1
  548. package/dist/agent/act.js.map +0 -1
  549. package/dist/agent/action-dispatcher.d.ts.map +0 -1
  550. package/dist/agent/action-dispatcher.js.map +0 -1
  551. package/dist/agent/action-names.d.ts.map +0 -1
  552. package/dist/agent/action-names.js.map +0 -1
  553. package/dist/agent/actions.d.ts.map +0 -1
  554. package/dist/agent/actions.js.map +0 -1
  555. package/dist/agent/agent-brand.d.ts.map +0 -1
  556. package/dist/agent/agent-brand.js.map +0 -1
  557. package/dist/agent/ai-sdk.d.ts.map +0 -1
  558. package/dist/agent/ai-sdk.js.map +0 -1
  559. package/dist/agent/call-options.d.ts.map +0 -1
  560. package/dist/agent/call-options.js.map +0 -1
  561. package/dist/agent/default-agent.d.ts.map +0 -1
  562. package/dist/agent/default-agent.js.map +0 -1
  563. package/dist/agent/derived.d.ts.map +0 -1
  564. package/dist/agent/derived.js.map +0 -1
  565. package/dist/agent/error.d.ts.map +0 -1
  566. package/dist/agent/error.js.map +0 -1
  567. package/dist/agent/executor.d.ts.map +0 -1
  568. package/dist/agent/executor.js.map +0 -1
  569. package/dist/agent/index.d.ts.map +0 -1
  570. package/dist/agent/index.js.map +0 -1
  571. package/dist/agent/interactive-step.d.ts.map +0 -1
  572. package/dist/agent/interactive-step.js.map +0 -1
  573. package/dist/agent/invocation.d.ts.map +0 -1
  574. package/dist/agent/invocation.js.map +0 -1
  575. package/dist/agent/ledger.d.ts.map +0 -1
  576. package/dist/agent/ledger.js.map +0 -1
  577. package/dist/agent/loop-guards.d.ts.map +0 -1
  578. package/dist/agent/loop-guards.js.map +0 -1
  579. package/dist/agent/model/adapter.d.ts.map +0 -1
  580. package/dist/agent/model/adapter.js.map +0 -1
  581. package/dist/agent/model/overflow.d.ts.map +0 -1
  582. package/dist/agent/model/overflow.js.map +0 -1
  583. package/dist/agent/model/provider-hints.d.ts.map +0 -1
  584. package/dist/agent/model/provider-hints.js.map +0 -1
  585. package/dist/agent/model/schema.d.ts.map +0 -1
  586. package/dist/agent/model/schema.js.map +0 -1
  587. package/dist/agent/model/sdk.d.ts.map +0 -1
  588. package/dist/agent/model/sdk.js.map +0 -1
  589. package/dist/agent/model/stall.d.ts.map +0 -1
  590. package/dist/agent/model/stall.js.map +0 -1
  591. package/dist/agent/model/tool-choice.d.ts.map +0 -1
  592. package/dist/agent/model/tool-choice.js.map +0 -1
  593. package/dist/agent/observation-budget.d.ts.map +0 -1
  594. package/dist/agent/observation-budget.js.map +0 -1
  595. package/dist/agent/observation-feed.d.ts.map +0 -1
  596. package/dist/agent/observation-feed.js.map +0 -1
  597. package/dist/agent/observation.d.ts.map +0 -1
  598. package/dist/agent/observation.js.map +0 -1
  599. package/dist/agent/operation-queue.d.ts.map +0 -1
  600. package/dist/agent/operation-queue.js.map +0 -1
  601. package/dist/agent/phases.d.ts.map +0 -1
  602. package/dist/agent/phases.js.map +0 -1
  603. package/dist/agent/pixels.d.ts.map +0 -1
  604. package/dist/agent/pixels.js.map +0 -1
  605. package/dist/agent/point-tap.d.ts.map +0 -1
  606. package/dist/agent/point-tap.js.map +0 -1
  607. package/dist/agent/primitives.d.ts.map +0 -1
  608. package/dist/agent/primitives.js.map +0 -1
  609. package/dist/agent/prompts.d.ts.map +0 -1
  610. package/dist/agent/prompts.js.map +0 -1
  611. package/dist/agent/protocol.d.ts.map +0 -1
  612. package/dist/agent/protocol.js.map +0 -1
  613. package/dist/agent/public.d.ts.map +0 -1
  614. package/dist/agent/public.js.map +0 -1
  615. package/dist/agent/reading.d.ts.map +0 -1
  616. package/dist/agent/reading.js.map +0 -1
  617. package/dist/agent/replay.d.ts.map +0 -1
  618. package/dist/agent/replay.js.map +0 -1
  619. package/dist/agent/screen-update.d.ts.map +0 -1
  620. package/dist/agent/screen-update.js.map +0 -1
  621. package/dist/agent/scroll-target.d.ts.map +0 -1
  622. package/dist/agent/scroll-target.js.map +0 -1
  623. package/dist/agent/secrets.d.ts.map +0 -1
  624. package/dist/agent/secrets.js.map +0 -1
  625. package/dist/agent/settle-policy.d.ts.map +0 -1
  626. package/dist/agent/settle-policy.js.map +0 -1
  627. package/dist/agent/step-accounting.d.ts.map +0 -1
  628. package/dist/agent/step-accounting.js.map +0 -1
  629. package/dist/agent/step-cache.d.ts.map +0 -1
  630. package/dist/agent/step-cache.js.map +0 -1
  631. package/dist/agent/tool-loop.d.ts.map +0 -1
  632. package/dist/agent/tool-loop.js.map +0 -1
  633. package/dist/agent/tool-output.d.ts.map +0 -1
  634. package/dist/agent/tool-output.js.map +0 -1
  635. package/dist/agent/tool.d.ts.map +0 -1
  636. package/dist/agent/tool.js.map +0 -1
  637. package/dist/agent/transcript-compaction.d.ts.map +0 -1
  638. package/dist/agent/transcript-compaction.js.map +0 -1
  639. package/dist/agent/upload-paths.d.ts.map +0 -1
  640. package/dist/agent/upload-paths.js.map +0 -1
  641. package/dist/agent/usage.d.ts.map +0 -1
  642. package/dist/agent/usage.js.map +0 -1
  643. package/dist/cache/anchors.d.ts.map +0 -1
  644. package/dist/cache/anchors.js.map +0 -1
  645. package/dist/cache/context.d.ts.map +0 -1
  646. package/dist/cache/context.js.map +0 -1
  647. package/dist/cache/decide.d.ts.map +0 -1
  648. package/dist/cache/decide.js.map +0 -1
  649. package/dist/cache/identity.d.ts.map +0 -1
  650. package/dist/cache/identity.js.map +0 -1
  651. package/dist/cache/recorder.d.ts.map +0 -1
  652. package/dist/cache/recorder.js.map +0 -1
  653. package/dist/cache/relocate.d.ts.map +0 -1
  654. package/dist/cache/relocate.js.map +0 -1
  655. package/dist/cache/route.d.ts.map +0 -1
  656. package/dist/cache/route.js.map +0 -1
  657. package/dist/cache/store.d.ts.map +0 -1
  658. package/dist/cache/store.js.map +0 -1
  659. package/dist/cache/template.d.ts.map +0 -1
  660. package/dist/cache/template.js.map +0 -1
  661. package/dist/cache/trace.d.ts.map +0 -1
  662. package/dist/cache/trace.js.map +0 -1
  663. package/dist/cli/bin.d.ts.map +0 -1
  664. package/dist/cli/bin.js.map +0 -1
  665. package/dist/cli/cache.d.ts.map +0 -1
  666. package/dist/cli/cache.js.map +0 -1
  667. package/dist/cli/docs-url.d.ts.map +0 -1
  668. package/dist/cli/docs-url.js.map +0 -1
  669. package/dist/cli/feedback.d.ts.map +0 -1
  670. package/dist/cli/feedback.js.map +0 -1
  671. package/dist/cli/guide.d.ts.map +0 -1
  672. package/dist/cli/guide.js.map +0 -1
  673. package/dist/cli/index.d.ts.map +0 -1
  674. package/dist/cli/index.js.map +0 -1
  675. package/dist/cli/init/agent-skill.d.ts.map +0 -1
  676. package/dist/cli/init/agent-skill.js.map +0 -1
  677. package/dist/cli/init/engines.d.ts.map +0 -1
  678. package/dist/cli/init/engines.js.map +0 -1
  679. package/dist/cli/init/gateways.d.ts.map +0 -1
  680. package/dist/cli/init/gateways.js.map +0 -1
  681. package/dist/cli/init/mcp-config.d.ts.map +0 -1
  682. package/dist/cli/init/mcp-config.js.map +0 -1
  683. package/dist/cli/init/package.d.ts.map +0 -1
  684. package/dist/cli/init/package.js.map +0 -1
  685. package/dist/cli/init/scaffold.d.ts.map +0 -1
  686. package/dist/cli/init/scaffold.js.map +0 -1
  687. package/dist/cli/init/versions.d.ts.map +0 -1
  688. package/dist/cli/init/versions.js.map +0 -1
  689. package/dist/cli/init.d.ts.map +0 -1
  690. package/dist/cli/init.js.map +0 -1
  691. package/dist/cli/mcp.d.ts.map +0 -1
  692. package/dist/cli/mcp.js.map +0 -1
  693. package/dist/cli/signals.d.ts.map +0 -1
  694. package/dist/cli/signals.js.map +0 -1
  695. package/dist/cli/skill.d.ts.map +0 -1
  696. package/dist/cli/skill.js.map +0 -1
  697. package/dist/cli/telemetry.d.ts.map +0 -1
  698. package/dist/cli/telemetry.js.map +0 -1
  699. package/dist/cli/wordmark.d.ts.map +0 -1
  700. package/dist/cli/wordmark.js.map +0 -1
  701. package/dist/collect/collect.d.ts.map +0 -1
  702. package/dist/collect/collect.js.map +0 -1
  703. package/dist/collect/registry.d.ts.map +0 -1
  704. package/dist/collect/registry.js.map +0 -1
  705. package/dist/collect/select.d.ts.map +0 -1
  706. package/dist/collect/select.js.map +0 -1
  707. package/dist/config/agent.d.ts.map +0 -1
  708. package/dist/config/agent.js.map +0 -1
  709. package/dist/config/app.d.ts.map +0 -1
  710. package/dist/config/app.js.map +0 -1
  711. package/dist/config/command.d.ts.map +0 -1
  712. package/dist/config/command.js.map +0 -1
  713. package/dist/config/diagnose.d.ts.map +0 -1
  714. package/dist/config/diagnose.js.map +0 -1
  715. package/dist/config/esm-hooks.d.ts.map +0 -1
  716. package/dist/config/esm-hooks.js.map +0 -1
  717. package/dist/config/load.d.ts.map +0 -1
  718. package/dist/config/load.js.map +0 -1
  719. package/dist/config/resolve.d.ts.map +0 -1
  720. package/dist/config/resolve.js.map +0 -1
  721. package/dist/config/secrets.d.ts.map +0 -1
  722. package/dist/config/secrets.js.map +0 -1
  723. package/dist/config/targets.d.ts.map +0 -1
  724. package/dist/config/targets.js.map +0 -1
  725. package/dist/config/validate.d.ts.map +0 -1
  726. package/dist/config/validate.js.map +0 -1
  727. package/dist/engine/contract.d.ts.map +0 -1
  728. package/dist/engine/contract.js.map +0 -1
  729. package/dist/engine/index.d.ts.map +0 -1
  730. package/dist/engine/index.js.map +0 -1
  731. package/dist/engine/manifest.d.ts.map +0 -1
  732. package/dist/engine/manifest.js.map +0 -1
  733. package/dist/engine/recording.d.ts.map +0 -1
  734. package/dist/engine/recording.js.map +0 -1
  735. package/dist/engine/resolve.d.ts.map +0 -1
  736. package/dist/engine/resolve.js.map +0 -1
  737. package/dist/engine/session.d.ts.map +0 -1
  738. package/dist/engine/session.js.map +0 -1
  739. package/dist/engine/surface.d.ts.map +0 -1
  740. package/dist/engine/surface.js.map +0 -1
  741. package/dist/engine/timing.d.ts.map +0 -1
  742. package/dist/engine/timing.js.map +0 -1
  743. package/dist/expect/async.d.ts.map +0 -1
  744. package/dist/expect/async.js.map +0 -1
  745. package/dist/expect/attempt.d.ts.map +0 -1
  746. package/dist/expect/attempt.js.map +0 -1
  747. package/dist/expect/index.d.ts.map +0 -1
  748. package/dist/expect/index.js.map +0 -1
  749. package/dist/expect/poll.d.ts.map +0 -1
  750. package/dist/expect/poll.js.map +0 -1
  751. package/dist/expect/soft.d.ts.map +0 -1
  752. package/dist/expect/soft.js.map +0 -1
  753. package/dist/expect/values.d.ts.map +0 -1
  754. package/dist/expect/values.js.map +0 -1
  755. package/dist/explore/body.d.ts.map +0 -1
  756. package/dist/explore/body.js.map +0 -1
  757. package/dist/explore/executor.d.ts.map +0 -1
  758. package/dist/explore/executor.js.map +0 -1
  759. package/dist/explore/index.d.ts.map +0 -1
  760. package/dist/explore/index.js.map +0 -1
  761. package/dist/explore/plan.d.ts.map +0 -1
  762. package/dist/explore/plan.js.map +0 -1
  763. package/dist/explore/progress.d.ts.map +0 -1
  764. package/dist/explore/progress.js.map +0 -1
  765. package/dist/explore/state.d.ts.map +0 -1
  766. package/dist/explore/state.js.map +0 -1
  767. package/dist/index.d.ts.map +0 -1
  768. package/dist/index.js.map +0 -1
  769. package/dist/internal/ai-trace.d.ts.map +0 -1
  770. package/dist/internal/ai-trace.js.map +0 -1
  771. package/dist/internal/atomic-write.d.ts.map +0 -1
  772. package/dist/internal/atomic-write.js.map +0 -1
  773. package/dist/internal/brands.d.ts.map +0 -1
  774. package/dist/internal/brands.js.map +0 -1
  775. package/dist/internal/debug.d.ts.map +0 -1
  776. package/dist/internal/debug.js.map +0 -1
  777. package/dist/internal/env.d.ts.map +0 -1
  778. package/dist/internal/env.js.map +0 -1
  779. package/dist/internal/errors.d.ts.map +0 -1
  780. package/dist/internal/errors.js.map +0 -1
  781. package/dist/internal/geometry.d.ts.map +0 -1
  782. package/dist/internal/geometry.js.map +0 -1
  783. package/dist/internal/git.d.ts.map +0 -1
  784. package/dist/internal/git.js.map +0 -1
  785. package/dist/internal/globs.d.ts.map +0 -1
  786. package/dist/internal/globs.js.map +0 -1
  787. package/dist/internal/ids.d.ts.map +0 -1
  788. package/dist/internal/ids.js.map +0 -1
  789. package/dist/internal/json-value.d.ts.map +0 -1
  790. package/dist/internal/json-value.js.map +0 -1
  791. package/dist/internal/keys.d.ts.map +0 -1
  792. package/dist/internal/keys.js.map +0 -1
  793. package/dist/internal/node-version.d.ts.map +0 -1
  794. package/dist/internal/node-version.js.map +0 -1
  795. package/dist/internal/objects.d.ts.map +0 -1
  796. package/dist/internal/objects.js.map +0 -1
  797. package/dist/internal/options.d.ts.map +0 -1
  798. package/dist/internal/options.js.map +0 -1
  799. package/dist/internal/package-manager.d.ts.map +0 -1
  800. package/dist/internal/package-manager.js.map +0 -1
  801. package/dist/internal/package-version.d.ts.map +0 -1
  802. package/dist/internal/package-version.js.map +0 -1
  803. package/dist/internal/paths.d.ts.map +0 -1
  804. package/dist/internal/paths.js.map +0 -1
  805. package/dist/internal/realm-slot.d.ts.map +0 -1
  806. package/dist/internal/realm-slot.js.map +0 -1
  807. package/dist/internal/recording-modes.d.ts.map +0 -1
  808. package/dist/internal/recording-modes.js.map +0 -1
  809. package/dist/internal/redact.d.ts.map +0 -1
  810. package/dist/internal/redact.js.map +0 -1
  811. package/dist/internal/regexp.d.ts.map +0 -1
  812. package/dist/internal/regexp.js.map +0 -1
  813. package/dist/internal/roles.d.ts.map +0 -1
  814. package/dist/internal/roles.js.map +0 -1
  815. package/dist/internal/skip.d.ts.map +0 -1
  816. package/dist/internal/skip.js.map +0 -1
  817. package/dist/internal/source.d.ts.map +0 -1
  818. package/dist/internal/source.js.map +0 -1
  819. package/dist/internal/standard-schema.d.ts.map +0 -1
  820. package/dist/internal/standard-schema.js.map +0 -1
  821. package/dist/internal/suggest.d.ts.map +0 -1
  822. package/dist/internal/suggest.js.map +0 -1
  823. package/dist/internal/text.d.ts.map +0 -1
  824. package/dist/internal/text.js.map +0 -1
  825. package/dist/internal/time.d.ts.map +0 -1
  826. package/dist/internal/time.js.map +0 -1
  827. package/dist/internal/urls.d.ts.map +0 -1
  828. package/dist/internal/urls.js.map +0 -1
  829. package/dist/internal/vcs.d.ts.map +0 -1
  830. package/dist/internal/vcs.js.map +0 -1
  831. package/dist/internal/zip.d.ts.map +0 -1
  832. package/dist/internal/zip.js.map +0 -1
  833. package/dist/locator/engine.d.ts.map +0 -1
  834. package/dist/locator/engine.js.map +0 -1
  835. package/dist/locator/expression.d.ts.map +0 -1
  836. package/dist/locator/expression.js.map +0 -1
  837. package/dist/locator/screen.d.ts.map +0 -1
  838. package/dist/locator/screen.js.map +0 -1
  839. package/dist/mcp/catalog.d.ts.map +0 -1
  840. package/dist/mcp/catalog.js.map +0 -1
  841. package/dist/mcp/config.d.ts.map +0 -1
  842. package/dist/mcp/config.js.map +0 -1
  843. package/dist/mcp/recording.d.ts.map +0 -1
  844. package/dist/mcp/recording.js.map +0 -1
  845. package/dist/mcp/server.d.ts.map +0 -1
  846. package/dist/mcp/server.js.map +0 -1
  847. package/dist/mcp/session.d.ts.map +0 -1
  848. package/dist/mcp/session.js.map +0 -1
  849. package/dist/mcp/sessions.d.ts.map +0 -1
  850. package/dist/mcp/sessions.js.map +0 -1
  851. package/dist/mcp/tools.d.ts.map +0 -1
  852. package/dist/mcp/tools.js.map +0 -1
  853. package/dist/oauth/callback-server.d.ts.map +0 -1
  854. package/dist/oauth/callback-server.js.map +0 -1
  855. package/dist/oauth/chatgpt.d.ts.map +0 -1
  856. package/dist/oauth/chatgpt.js.map +0 -1
  857. package/dist/oauth/cli.d.ts.map +0 -1
  858. package/dist/oauth/cli.js.map +0 -1
  859. package/dist/oauth/copilot.d.ts.map +0 -1
  860. package/dist/oauth/copilot.js.map +0 -1
  861. package/dist/oauth/device-code.d.ts.map +0 -1
  862. package/dist/oauth/device-code.js.map +0 -1
  863. package/dist/oauth/errors.d.ts.map +0 -1
  864. package/dist/oauth/errors.js.map +0 -1
  865. package/dist/oauth/fetch.d.ts.map +0 -1
  866. package/dist/oauth/fetch.js.map +0 -1
  867. package/dist/oauth/grok.d.ts.map +0 -1
  868. package/dist/oauth/grok.js.map +0 -1
  869. package/dist/oauth/jwt.d.ts.map +0 -1
  870. package/dist/oauth/jwt.js.map +0 -1
  871. package/dist/oauth/login.d.ts.map +0 -1
  872. package/dist/oauth/login.js.map +0 -1
  873. package/dist/oauth/models.d.ts.map +0 -1
  874. package/dist/oauth/models.js.map +0 -1
  875. package/dist/oauth/pkce.d.ts.map +0 -1
  876. package/dist/oauth/pkce.js.map +0 -1
  877. package/dist/oauth/providers/github-copilot.d.ts.map +0 -1
  878. package/dist/oauth/providers/github-copilot.js.map +0 -1
  879. package/dist/oauth/providers/openai.d.ts.map +0 -1
  880. package/dist/oauth/providers/openai.js.map +0 -1
  881. package/dist/oauth/providers/xai.d.ts.map +0 -1
  882. package/dist/oauth/providers/xai.js.map +0 -1
  883. package/dist/oauth/providers.d.ts.map +0 -1
  884. package/dist/oauth/providers.js.map +0 -1
  885. package/dist/oauth/sse.d.ts.map +0 -1
  886. package/dist/oauth/sse.js.map +0 -1
  887. package/dist/oauth/store.d.ts.map +0 -1
  888. package/dist/oauth/store.js.map +0 -1
  889. package/dist/oauth/token-endpoint.d.ts.map +0 -1
  890. package/dist/oauth/token-endpoint.js.map +0 -1
  891. package/dist/oauth/types.d.ts.map +0 -1
  892. package/dist/oauth/types.js.map +0 -1
  893. package/dist/params.d.ts.map +0 -1
  894. package/dist/params.js.map +0 -1
  895. package/dist/report/build.d.ts.map +0 -1
  896. package/dist/report/build.js.map +0 -1
  897. package/dist/report/builtin.d.ts.map +0 -1
  898. package/dist/report/builtin.js.map +0 -1
  899. package/dist/report/code-frame.d.ts.map +0 -1
  900. package/dist/report/code-frame.js.map +0 -1
  901. package/dist/report/debug-steps.d.ts.map +0 -1
  902. package/dist/report/debug-steps.js.map +0 -1
  903. package/dist/report/explore-text.d.ts.map +0 -1
  904. package/dist/report/explore-text.js.map +0 -1
  905. package/dist/report/failure-text.d.ts.map +0 -1
  906. package/dist/report/failure-text.js.map +0 -1
  907. package/dist/report/format.d.ts.map +0 -1
  908. package/dist/report/format.js.map +0 -1
  909. package/dist/report/json.d.ts.map +0 -1
  910. package/dist/report/json.js.map +0 -1
  911. package/dist/report/junit.d.ts.map +0 -1
  912. package/dist/report/junit.js.map +0 -1
  913. package/dist/report/list-explore.d.ts.map +0 -1
  914. package/dist/report/list-explore.js.map +0 -1
  915. package/dist/report/list-model.d.ts.map +0 -1
  916. package/dist/report/list-model.js.map +0 -1
  917. package/dist/report/list-steps.d.ts.map +0 -1
  918. package/dist/report/list-steps.js.map +0 -1
  919. package/dist/report/list.d.ts.map +0 -1
  920. package/dist/report/list.js.map +0 -1
  921. package/dist/report/live-window.d.ts.map +0 -1
  922. package/dist/report/live-window.js.map +0 -1
  923. package/dist/report/markdown-text.d.ts.map +0 -1
  924. package/dist/report/markdown-text.js.map +0 -1
  925. package/dist/report/markdown.d.ts.map +0 -1
  926. package/dist/report/markdown.js.map +0 -1
  927. package/dist/report/outcome.d.ts.map +0 -1
  928. package/dist/report/outcome.js.map +0 -1
  929. package/dist/report/repeats.d.ts.map +0 -1
  930. package/dist/report/repeats.js.map +0 -1
  931. package/dist/report/running-tree.d.ts.map +0 -1
  932. package/dist/report/running-tree.js.map +0 -1
  933. package/dist/report/write.d.ts.map +0 -1
  934. package/dist/report/write.js.map +0 -1
  935. package/dist/run/app-ports.d.ts.map +0 -1
  936. package/dist/run/app-ports.js.map +0 -1
  937. package/dist/run/artifacts.d.ts.map +0 -1
  938. package/dist/run/artifacts.js.map +0 -1
  939. package/dist/run/budget.d.ts.map +0 -1
  940. package/dist/run/budget.js.map +0 -1
  941. package/dist/run/declared-processes.d.ts.map +0 -1
  942. package/dist/run/declared-processes.js.map +0 -1
  943. package/dist/run/events.d.ts.map +0 -1
  944. package/dist/run/events.js.map +0 -1
  945. package/dist/run/execute.d.ts.map +0 -1
  946. package/dist/run/execute.js.map +0 -1
  947. package/dist/run/extended-fixtures.d.ts.map +0 -1
  948. package/dist/run/extended-fixtures.js.map +0 -1
  949. package/dist/run/failure-evidence.d.ts.map +0 -1
  950. package/dist/run/failure-evidence.js.map +0 -1
  951. package/dist/run/fixture-recording.d.ts.map +0 -1
  952. package/dist/run/fixture-recording.js.map +0 -1
  953. package/dist/run/fixtures.d.ts.map +0 -1
  954. package/dist/run/fixtures.js.map +0 -1
  955. package/dist/run/in-process.d.ts.map +0 -1
  956. package/dist/run/in-process.js.map +0 -1
  957. package/dist/run/last-run.d.ts.map +0 -1
  958. package/dist/run/last-run.js.map +0 -1
  959. package/dist/run/managed-process.d.ts.map +0 -1
  960. package/dist/run/managed-process.js.map +0 -1
  961. package/dist/run/output.d.ts.map +0 -1
  962. package/dist/run/output.js.map +0 -1
  963. package/dist/run/process-pool.d.ts.map +0 -1
  964. package/dist/run/process-pool.js.map +0 -1
  965. package/dist/run/provision.d.ts.map +0 -1
  966. package/dist/run/provision.js.map +0 -1
  967. package/dist/run/realm.d.ts.map +0 -1
  968. package/dist/run/realm.js.map +0 -1
  969. package/dist/run/records.d.ts.map +0 -1
  970. package/dist/run/records.js.map +0 -1
  971. package/dist/run/retry.d.ts.map +0 -1
  972. package/dist/run/retry.js.map +0 -1
  973. package/dist/run/runner.d.ts.map +0 -1
  974. package/dist/run/runner.js.map +0 -1
  975. package/dist/run/scheduler.d.ts.map +0 -1
  976. package/dist/run/scheduler.js.map +0 -1
  977. package/dist/run/secrecy.d.ts.map +0 -1
  978. package/dist/run/secrecy.js.map +0 -1
  979. package/dist/run/serial.d.ts.map +0 -1
  980. package/dist/run/serial.js.map +0 -1
  981. package/dist/run/sessions.d.ts.map +0 -1
  982. package/dist/run/sessions.js.map +0 -1
  983. package/dist/run/standalone.d.ts.map +0 -1
  984. package/dist/run/standalone.js.map +0 -1
  985. package/dist/run/steps.d.ts.map +0 -1
  986. package/dist/run/steps.js.map +0 -1
  987. package/dist/run/trace-redaction.d.ts.map +0 -1
  988. package/dist/run/trace-redaction.js.map +0 -1
  989. package/dist/run/unit-runner.d.ts.map +0 -1
  990. package/dist/run/unit-runner.js.map +0 -1
  991. package/dist/run/units.d.ts.map +0 -1
  992. package/dist/run/units.js.map +0 -1
  993. package/dist/run/worker/entry.d.ts.map +0 -1
  994. package/dist/run/worker/entry.js.map +0 -1
  995. package/dist/run/worker/handle.d.ts.map +0 -1
  996. package/dist/run/worker/handle.js.map +0 -1
  997. package/dist/run/worker/protocol.d.ts.map +0 -1
  998. package/dist/run/worker/protocol.js.map +0 -1
  999. package/dist/run/worker/session.d.ts.map +0 -1
  1000. package/dist/run/worker/session.js.map +0 -1
  1001. package/dist/run/worker-models.d.ts.map +0 -1
  1002. package/dist/run/worker-models.js.map +0 -1
  1003. package/dist/secrets.d.ts.map +0 -1
  1004. package/dist/secrets.js.map +0 -1
  1005. package/dist/telemetry/checkout.d.ts.map +0 -1
  1006. package/dist/telemetry/checkout.js.map +0 -1
  1007. package/dist/telemetry/environment.d.ts.map +0 -1
  1008. package/dist/telemetry/environment.js.map +0 -1
  1009. package/dist/telemetry/events.d.ts.map +0 -1
  1010. package/dist/telemetry/events.js.map +0 -1
  1011. package/dist/telemetry/failure-kind.d.ts.map +0 -1
  1012. package/dist/telemetry/failure-kind.js.map +0 -1
  1013. package/dist/telemetry/posthog.d.ts.map +0 -1
  1014. package/dist/telemetry/posthog.js.map +0 -1
  1015. package/dist/telemetry/project.d.ts.map +0 -1
  1016. package/dist/telemetry/project.js.map +0 -1
  1017. package/dist/telemetry/store.d.ts.map +0 -1
  1018. package/dist/telemetry/store.js.map +0 -1
  1019. package/dist/telemetry/telemetry.d.ts.map +0 -1
  1020. package/dist/telemetry/telemetry.js.map +0 -1
  1021. package/dist/telemetry/token.d.ts.map +0 -1
  1022. package/dist/telemetry/token.js.map +0 -1
  1023. package/dist/types.d.ts.map +0 -1
  1024. package/dist/types.js.map +0 -1
@@ -18,4 +18,3 @@ export declare class OperationQueue {
18
18
  /** Runs `body` after every operation queued before it, in call order. */
19
19
  run<T>(body: () => Promise<T>): Promise<T>;
20
20
  }
21
- //# sourceMappingURL=operation-queue.d.ts.map
@@ -24,4 +24,3 @@ export class OperationQueue {
24
24
  return run;
25
25
  }
26
26
  }
27
- //# sourceMappingURL=operation-queue.js.map
@@ -75,4 +75,3 @@ export declare function retryingObserve(options: {
75
75
  readonly signal: AbortSignal;
76
76
  readonly api: string;
77
77
  }): Promise<Observation>;
78
- //# sourceMappingURL=phases.d.ts.map
@@ -140,4 +140,3 @@ function phaseErrorCode(cause) {
140
140
  return engineError.code;
141
141
  return cause instanceof Error ? cause.name : 'ERROR';
142
142
  }
143
- //# sourceMappingURL=phases.js.map
@@ -18,4 +18,3 @@ export declare function sizeForModel<P extends ObservationPixels>(pixels: P): P;
18
18
  * the caller's pixels carry (a masked-region count) rides along unchanged.
19
19
  */
20
20
  export declare function downscalePixels<P extends ObservationPixels>(pixels: P, maxLongSide: number): P;
21
- //# sourceMappingURL=pixels.d.ts.map
@@ -82,4 +82,3 @@ function boxResample(source, sourceWidth, sourceHeight, target, targetWidth, tar
82
82
  }
83
83
  }
84
84
  }
85
- //# sourceMappingURL=pixels.js.map
@@ -7,9 +7,9 @@
7
7
  * screenshot are scaled into the observation's CSS pixels first.
8
8
  */
9
9
  import type { PointActionName } from '../cache/trace.ts';
10
- import type { SemanticNode, ViewportPoint, ViewportSize } from '../engine/surface.ts';
10
+ import type { ViewportPoint, ViewportSize } from '../engine/surface.ts';
11
11
  import type { ExecutorPixels } from './executor.ts';
12
- import { type AgentObservation } from './observation.ts';
12
+ import { type AgentObservation, type RedactedNode } from './observation.ts';
13
13
  /**
14
14
  * Scales a point read off a screenshot into the observation's CSS pixels and
15
15
  * clamps it to the viewport. `pixels.scale` is image pixels per CSS pixel
@@ -23,9 +23,9 @@ export declare function imagePointToViewport(point: {
23
23
  }, pixels: Pick<ExecutorPixels, 'width' | 'height' | 'scale'>, viewport: ViewportSize): ViewportPoint;
24
24
  export interface HitTest {
25
25
  /** The innermost enabled control whose box contains the point, if any. */
26
- readonly control: SemanticNode | undefined;
26
+ readonly control: RedactedNode | undefined;
27
27
  /** The innermost listed node of any role whose box contains the point, if any. */
28
- readonly under: SemanticNode | undefined;
28
+ readonly under: RedactedNode | undefined;
29
29
  }
30
30
  /**
31
31
  * Finds what the newest observation lists at a viewport point. Only an
@@ -54,13 +54,12 @@ export declare const POINT_VERBS: Readonly<Record<PointActionName, {
54
54
  export declare function describePointAction(input: PointProse & {
55
55
  readonly verb: PointActionName;
56
56
  readonly point: ViewportPoint;
57
- readonly control: SemanticNode | undefined;
58
- readonly under: SemanticNode | undefined;
57
+ readonly control: RedactedNode | undefined;
58
+ readonly under: RedactedNode | undefined;
59
59
  }): string;
60
60
  /** What one hit test found, for the model that named the point. */
61
61
  export declare function describePointHit(input: PointProse & {
62
62
  readonly point: ViewportPoint;
63
- readonly control: SemanticNode | undefined;
64
- readonly under: SemanticNode | undefined;
63
+ readonly control: RedactedNode | undefined;
64
+ readonly under: RedactedNode | undefined;
65
65
  }): string;
66
- //# sourceMappingURL=point-tap.d.ts.map
@@ -41,7 +41,7 @@ export function hitTest(observation, point) {
41
41
  * The innermost listed node whose box contains the point, among those
42
42
  * `accept` admits: deepest in the tree, then the smallest box. Hidden nodes
43
43
  * and nodes without a box are skipped. Every box is in the top-level
44
- * viewport's CSS pixels, nested documents included (`SemanticNode.rect`), so
44
+ * viewport's CSS pixels, nested documents included (`RedactedNode.rect`), so
45
45
  * a node inside an iframe is found like any other.
46
46
  */
47
47
  function innermostAt(observation, point, accept = () => true) {
@@ -112,4 +112,3 @@ export function describePointHit(input) {
112
112
  function describeNode(prose, node) {
113
113
  return nodeLine(prose.observation, node.ref.id);
114
114
  }
115
- //# sourceMappingURL=point-tap.js.map
@@ -46,6 +46,12 @@ export interface GrammarToolOptions {
46
46
  * otherwise.
47
47
  */
48
48
  readonly screen?: ScreenPresenter;
49
+ /**
50
+ * Told the cause of every action that failed into a result rather than a
51
+ * throw, before it becomes the result's text: the one place its runner
52
+ * code is still structured.
53
+ */
54
+ readonly onActionFailed?: ((cause: unknown) => void) | undefined;
49
55
  }
50
56
  /**
51
57
  * AI SDK tools over the harness action grammar, limited to the verbs the
@@ -78,4 +84,3 @@ export declare function trackModelCalls(context: StepExecutorContext, model?: {
78
84
  readonly provider?: string;
79
85
  readonly modelId?: string;
80
86
  }): ModelCallTracker;
81
- //# sourceMappingURL=primitives.d.ts.map
@@ -666,7 +666,10 @@ function verbKit(context, options) {
666
666
  catch (cause) {
667
667
  if (isRuntimeHardStop(cause))
668
668
  throw cause;
669
- return present(failureLead(label, cause));
669
+ const failed = await present(failureLead(label, cause));
670
+ // After the look, so a look that throws fails the call once, as itself.
671
+ options.onActionFailed?.(cause);
672
+ return failed;
670
673
  }
671
674
  return present(outcome.lead, { expectChange: outcome.expectChange, ...update });
672
675
  });
@@ -717,4 +720,3 @@ export function trackModelCalls(context, model) {
717
720
  },
718
721
  };
719
722
  }
720
- //# sourceMappingURL=primitives.js.map
@@ -49,4 +49,3 @@ export declare const JUDGMENT_REQUEST: string;
49
49
  export declare const EXTRACT_REQUEST: string;
50
50
  /** The extraction's answer to a rejection the screen cannot satisfy: say so rather than change the data. */
51
51
  export declare const EXTRACT_REPAIR_OUTLET = "Correct a misread or a wrong shape. When the data the observation shows cannot satisfy the errors, respond with \"found\": false and say why in \"missing\" rather than change a value to fit.";
52
- //# sourceMappingURL=prompts.d.ts.map
@@ -118,4 +118,3 @@ export const EXTRACT_REQUEST = [
118
118
  ].join('\n');
119
119
  /** The extraction's answer to a rejection the screen cannot satisfy: say so rather than change the data. */
120
120
  export const EXTRACT_REPAIR_OUTLET = 'Correct a misread or a wrong shape. When the data the observation shows cannot satisfy the errors, respond with "found": false and say why in "missing" rather than change a value to fit.';
121
- //# sourceMappingURL=prompts.js.map
@@ -65,4 +65,3 @@ export declare function extractSchema(shape: JSONSchema7): JSONSchema7;
65
65
  */
66
66
  export declare function validateExtractResponse(value: unknown): ProtocolValidation<ExtractResponse>;
67
67
  export {};
68
- //# sourceMappingURL=protocol.d.ts.map
@@ -163,4 +163,3 @@ function asBoundedString(value, min, max) {
163
163
  function codePointLength(value) {
164
164
  return [...value].length;
165
165
  }
166
- //# sourceMappingURL=protocol.js.map
@@ -11,4 +11,3 @@
11
11
  export { createToolLoopExecutor, type ToolLoopExecutorOptions, type PreparedTurn, type PreparedMessages, type ToolLoopHelpers, } from './tool-loop.ts';
12
12
  export { defineTool, getToolContext, type DefinedTool, type ToolAnnotations } from './tool.ts';
13
13
  export { AgentError, isAgentError } from './error.ts';
14
- //# sourceMappingURL=public.d.ts.map
@@ -11,4 +11,3 @@
11
11
  export { createToolLoopExecutor, } from './tool-loop.js';
12
12
  export { defineTool, getToolContext } from './tool.js';
13
13
  export { AgentError, isAgentError } from './error.js';
14
- //# sourceMappingURL=public.js.map
@@ -24,4 +24,3 @@ export declare function nodeReading(observation: Pick<SemanticAgentObservation,
24
24
  * list moving.
25
25
  */
26
26
  export declare function readingShape(observation: Pick<SemanticAgentObservation, 'nodes'>): string;
27
- //# sourceMappingURL=reading.d.ts.map
@@ -80,4 +80,3 @@ export function readingShape(observation) {
80
80
  }
81
81
  return lines.join('\n');
82
82
  }
83
- //# sourceMappingURL=reading.js.map
@@ -11,15 +11,20 @@
11
11
  * timeout, cancellation) rethrow untouched; they are the step's truth, not a
12
12
  * divergence.
13
13
  */
14
- import { type ActionTrace, type DerivedReason, type TraceTargetDescriptor, type TraceViewport } from '../cache/trace.ts';
15
- import type { SemanticNode } from '../engine/surface.ts';
14
+ import { type ActionTrace, type DerivedReason, type TraceViewport } from '../cache/trace.ts';
15
+ import type { RedactedNode } from './observation.ts';
16
16
  import { type ExecutorActions, type ReplayHandOffReason } from './executor.ts';
17
17
  import { type SettleMode } from './settle-policy.ts';
18
18
  /** The nodes of one observation, keyed by their per-observation ids. */
19
- export type ObservedNodes = ReadonlyMap<string, SemanticNode>;
19
+ export type ObservedNodes = ReadonlyMap<string, RedactedNode>;
20
20
  /** One capture's location and viewport, with nodes only when semantic evidence is available. */
21
21
  export type ObservedScreen = {
22
22
  readonly viewport: TraceViewport;
23
+ /**
24
+ * Where the capture was, as the cache compares it (`appLocation`): on the
25
+ * app's own origin its path, query, and fragment; elsewhere the whole
26
+ * location; a device's screen title as it is.
27
+ */
23
28
  readonly path?: string;
24
29
  } & ({
25
30
  readonly kind: 'semantic';
@@ -45,7 +50,6 @@ export interface ReplayHost {
45
50
  readonly actions: ExecutorActions;
46
51
  readonly signal: AbortSignal;
47
52
  remainingMs(): number;
48
- readonly redact: (text: string) => string;
49
53
  }
50
54
  export interface ReplayOutcome {
51
55
  /** True when every recorded action executed; the step self-finalizes. */
@@ -67,21 +71,27 @@ export interface ReplayOptions {
67
71
  * instead of capturing again: nothing has happened since it was taken.
68
72
  */
69
73
  readonly initial?: SemanticScreen;
74
+ /**
75
+ * Asked before a free action (a navigate, typed text, a key) that follows
76
+ * another action; true takes the look a targeted action would have taken.
77
+ * A free action reads no screen, so without it the screen the previous
78
+ * action left goes unseen.
79
+ */
80
+ readonly looksBeforeFree?: () => boolean;
70
81
  }
71
82
  /** Replays one trace until it completes or diverges. */
72
83
  export declare function replayTrace(host: ReplayHost, trace: ActionTrace, options?: ReplayOptions): Promise<ReplayOutcome>;
73
84
  /**
74
- * Verifies a trace's recorded end anchors against the live screen: every
75
- * anchor must be present again (`anchors.ts`, every recorded field equal) or
76
- * the replay must not pass on its own. Waits on the same settling backoff
85
+ * Waits for a trace's recorded end state on the live screen: `holds` (the
86
+ * recorded delta, `cache/anchors.ts`) must be true of one look, or the
87
+ * replay must not pass on its own. Waits on the same settling backoff
77
88
  * relocation uses, because the recording run's final look came seconds of
78
89
  * model latency after its last action and a replay's comes right away: a
79
90
  * save still in flight is a wait, not a divergence. A surface that cannot be
80
91
  * observed at all is a mismatch too — the executor gets the step and judges
81
92
  * the live state; only runtime hard stops propagate.
82
93
  */
83
- export declare function verifyAnchors(host: ReplayHost, anchors: readonly TraceTargetDescriptor[], options?: {
94
+ export declare function verifyEndState(host: ReplayHost, holds: (screen: SemanticScreen) => boolean, options?: {
84
95
  readonly waitMs?: number;
85
96
  readonly initial?: SemanticScreen;
86
97
  }): Promise<boolean>;
87
- //# sourceMappingURL=replay.d.ts.map
@@ -11,7 +11,6 @@
11
11
  * timeout, cancellation) rethrow untouched; they are the step's truth, not a
12
12
  * divergence.
13
13
  */
14
- import { anchorsPresent } from '../cache/anchors.js';
15
14
  import { isRelocatableDescriptor, MAIN_LIST_SHARE, relocateDescriptor } from '../cache/relocate.js';
16
15
  import { isNodeAction } from '../cache/trace.js';
17
16
  import { hasCause } from '../internal/errors.js';
@@ -146,6 +145,8 @@ export async function replayTrace(host, trace, options = {}) {
146
145
  break;
147
146
  }
148
147
  case 'free':
148
+ if (previous !== undefined && options.looksBeforeFree?.() === true)
149
+ await firstLook(host, look);
149
150
  await planned.invoke();
150
151
  break;
151
152
  case 'scroll': {
@@ -228,21 +229,19 @@ export async function replayTrace(host, trace, options = {}) {
228
229
  return { completed: true, executed: summaries.length, total, summaries };
229
230
  }
230
231
  /**
231
- * Verifies a trace's recorded end anchors against the live screen: every
232
- * anchor must be present again (`anchors.ts`, every recorded field equal) or
233
- * the replay must not pass on its own. Waits on the same settling backoff
232
+ * Waits for a trace's recorded end state on the live screen: `holds` (the
233
+ * recorded delta, `cache/anchors.ts`) must be true of one look, or the
234
+ * replay must not pass on its own. Waits on the same settling backoff
234
235
  * relocation uses, because the recording run's final look came seconds of
235
236
  * model latency after its last action and a replay's comes right away: a
236
237
  * save still in flight is a wait, not a divergence. A surface that cannot be
237
238
  * observed at all is a mismatch too — the executor gets the step and judges
238
239
  * the live state; only runtime hard stops propagate.
239
240
  */
240
- export async function verifyAnchors(host, anchors, options = {}) {
241
- if (anchors.length === 0)
242
- return true;
241
+ export async function verifyEndState(host, holds, options = {}) {
243
242
  const startedMs = Date.now();
244
243
  try {
245
- const present = await pollSettled(host, ({ nodes }) => anchorsPresent(anchors, nodes, host) ? true : undefined, options.initial === undefined ? HELD_STILL : { kind: 'in-hand', screen: options.initial });
244
+ const present = await pollSettled(host, (screen) => holds(screen) ? true : undefined, options.initial === undefined ? HELD_STILL : { kind: 'in-hand', screen: options.initial });
246
245
  if (present === true)
247
246
  return true;
248
247
  // The settling backoff covers a slow re-render; the recorded run may have
@@ -255,7 +254,7 @@ export async function verifyAnchors(host, anchors, options = {}) {
255
254
  const screen = await host.observe('raw');
256
255
  if (screen.kind === 'pixels' || !host.traceEligible)
257
256
  return false;
258
- if (anchorsPresent(anchors, screen.nodes, host))
257
+ if (holds(screen))
259
258
  return true;
260
259
  }
261
260
  return false;
@@ -272,10 +271,9 @@ const END_WAIT_POLL_MS = 1_000;
272
271
  const END_WAIT_RESERVE_MS = 20_000;
273
272
  /** Relocates one descriptor against the settling screen, looking again while `retryable` says the failure may pass. */
274
273
  async function relocate(host, descriptor, look) {
275
- const options = { redact: host.redact };
276
274
  let last = { kind: 'failed', failure: 'target-not-found' };
277
275
  const settled = await pollSettled(host, (screen) => {
278
- const result = relocateDescriptor(descriptor, screen.nodes, options);
276
+ const result = relocateDescriptor(descriptor, screen.nodes);
279
277
  if (result.kind === 'failed') {
280
278
  last = result.failure === 'target-not-found' ? result : { ...result, screen };
281
279
  return retryable(result.failure, descriptor) ? undefined : last;
@@ -294,17 +292,16 @@ async function relocate(host, descriptor, look) {
294
292
  * unpositioned ambiguity is not.
295
293
  */
296
294
  async function relocatePair(host, source, destination, look) {
297
- const options = { redact: host.redact };
298
295
  let last = 'target-not-found';
299
296
  const failed = (descriptor, failure) => {
300
297
  last = failure;
301
298
  return retryable(failure, descriptor) ? undefined : { kind: 'failed', failure };
302
299
  };
303
300
  const settled = await pollSettled(host, (screen) => {
304
- const from = relocateDescriptor(source, screen.nodes, options);
301
+ const from = relocateDescriptor(source, screen.nodes);
305
302
  if (from.kind === 'failed')
306
303
  return failed(source, from.failure);
307
- const to = relocateDescriptor(destination, screen.nodes, options);
304
+ const to = relocateDescriptor(destination, screen.nodes);
308
305
  if (to.kind === 'failed')
309
306
  return failed(destination, to.failure);
310
307
  return { kind: 'found', source: from.id, destination: to.id };
@@ -438,4 +435,3 @@ function isUncertainCommit(cause) {
438
435
  function isReplayFatal(cause, signal) {
439
436
  return signal.aborted || isRuntimeHardStop(cause);
440
437
  }
441
- //# sourceMappingURL=replay.js.map
@@ -121,4 +121,3 @@ export declare class ScreenPresenter {
121
121
  */
122
122
  private withScreenshot;
123
123
  }
124
- //# sourceMappingURL=screen-update.d.ts.map
@@ -312,4 +312,3 @@ function diffScreens(previous, next) {
312
312
  }
313
313
  return lines;
314
314
  }
315
- //# sourceMappingURL=screen-update.js.map
@@ -10,11 +10,10 @@
10
10
  * all scrolls as the viewport does, which is what scrolling the main list
11
11
  * does; a smaller region that vanished is gone, as for any other action.
12
12
  */
13
- import type { SemanticNode } from '../engine/surface.ts';
14
13
  import { type Box } from '../internal/geometry.ts';
15
14
  import type { ExecutorTarget } from './executor.ts';
16
15
  import { type ObservationFeed, type Resolved } from './observation-feed.ts';
17
- import type { SemanticAgentObservation } from './observation.ts';
16
+ import type { RedactedNode, SemanticAgentObservation } from './observation.ts';
18
17
  /**
19
18
  * The node a scroll target names now: the node itself, its descriptor's
20
19
  * match, or the same-role node in its old place. Undefined for a lost list
@@ -22,5 +21,4 @@ import type { SemanticAgentObservation } from './observation.ts';
22
21
  */
23
22
  export declare function resolveScrollTarget(feed: ObservationFeed, target: ExecutorTarget): Resolved | undefined;
24
23
  /** The listed node of the role whose box overlaps `box` most, when it overlaps enough. */
25
- export declare function samePlace(observation: SemanticAgentObservation, role: string | undefined, box: Box): SemanticNode | undefined;
26
- //# sourceMappingURL=scroll-target.d.ts.map
24
+ export declare function samePlace(observation: SemanticAgentObservation, role: string | undefined, box: Box): RedactedNode | undefined;
@@ -51,4 +51,3 @@ export function samePlace(observation, role, box) {
51
51
  }
52
52
  return best?.node;
53
53
  }
54
- //# sourceMappingURL=scroll-target.js.map
@@ -17,4 +17,3 @@ interface SecretFillHost {
17
17
  */
18
18
  export declare function authorizeSecretFill(host: SecretFillHost, runtime: AgentContext, secret: Secret, node: SemanticNode): Promise<string>;
19
19
  export {};
20
- //# sourceMappingURL=secrets.d.ts.map
@@ -38,4 +38,3 @@ export async function authorizeSecretFill(host, runtime, secret, node) {
38
38
  throw toAgentError(cause);
39
39
  }
40
40
  }
41
- //# sourceMappingURL=secrets.js.map
@@ -53,4 +53,3 @@ interface SettleAfter {
53
53
  */
54
54
  export declare const SETTLE_AFTER: Record<RecordedAction['name'], SettleAfter>;
55
55
  export {};
56
- //# sourceMappingURL=settle-policy.d.ts.map
@@ -66,4 +66,3 @@ export const SETTLE_AFTER = {
66
66
  dismissKeyboard: { changeWaitMs: FULL_CHANGE_WAIT_MS, look: 'held-still' },
67
67
  tool: { changeWaitMs: BRIEF_CHANGE_WAIT_MS, look: 'held-still' },
68
68
  };
69
- //# sourceMappingURL=settle-policy.js.map
@@ -108,4 +108,3 @@ export declare class StepAccounting {
108
108
  */
109
109
  modelInfo(executor: Pick<StepExecutor, 'name' | 'version'>): StepModelInfo | undefined;
110
110
  }
111
- //# sourceMappingURL=step-accounting.d.ts.map
@@ -220,4 +220,3 @@ export class StepAccounting {
220
220
  }, calls);
221
221
  }
222
222
  }
223
- //# sourceMappingURL=step-accounting.js.map
@@ -12,6 +12,7 @@
12
12
  * when replay performed no action.
13
13
  */
14
14
  import type { AgentCacheContext } from '../cache/context.ts';
15
+ import type { CacheAgentIdentity } from '../cache/identity.ts';
15
16
  import { type ParamTemplate } from '../cache/template.ts';
16
17
  import { type DerivedReason } from '../cache/trace.ts';
17
18
  import type { StepCacheInfo } from '../run/steps.ts';
@@ -42,7 +43,11 @@ export interface StepCacheOptions {
42
43
  readonly name: string;
43
44
  readonly version?: string;
44
45
  };
46
+ /** The agent the step runs with, part of the key (`cache/identity.ts`). */
47
+ readonly agent: CacheAgentIdentity;
45
48
  readonly redact: (text: string) => string;
49
+ /** `redact` for a field cut at its observed limit (`SecretLedger.redactCut`). */
50
+ readonly redactCut: (text: string) => string;
46
51
  readonly maxActions: number;
47
52
  /** Timeline index of the step being dispatched. */
48
53
  readonly stepIndex: number;
@@ -60,8 +65,11 @@ export declare class StepTraceSession {
60
65
  private readonly host;
61
66
  private readonly cache;
62
67
  private readonly keyHash;
68
+ /** The claimed key and the step it names, which an entry records as its provenance. */
69
+ private readonly claim;
63
70
  private readonly recorder;
64
71
  private readonly options;
72
+ private readonly redaction;
65
73
  private info;
66
74
  private prefix;
67
75
  private startPath;
@@ -85,6 +93,8 @@ export declare class StepTraceSession {
85
93
  private replayedWhole;
86
94
  /** True once a cached entry's actions were run this step, fully or partly. */
87
95
  private consumedReplay;
96
+ /** True once the store returned an entry for this step, whether or not it replayed. */
97
+ private readEntryHit;
88
98
  /** True once `cache.strict` failed the step on its recording, which is then kept for review rather than evicted. */
89
99
  private failedStale;
90
100
  /** Grammar actions recorded so far when an end-mismatch hand-off happened. */
@@ -117,6 +127,14 @@ export declare class StepTraceSession {
117
127
  * model call to absorb on every run. The report keeps the cache detail.
118
128
  */
119
129
  private failIfStale;
130
+ /**
131
+ * Under `cache.strict`, ends a step whose key found no entry while the
132
+ * store holds a recording made for the same step under another key: the
133
+ * runner, the engine, the app, or the agent's context changed since, and
134
+ * the recording no longer replays as surely as one that diverged. A step
135
+ * whose instruction or params changed is a new step and still runs live.
136
+ */
137
+ private failIfRekeyed;
120
138
  /**
121
139
  * Closes the session once the step has settled. The whole write-side
122
140
  * decision lives here, in read-write mode only:
@@ -136,6 +154,10 @@ export declare class StepTraceSession {
136
154
  * anchor, or end wait, so drift is repaired only once a relocation fails
137
155
  * and the hand-off that follows re-records.
138
156
  * - passed otherwise: stage the recorded trace for attempt-end settlement.
157
+ * When this pass leaves nothing to stage (it changed nothing a replay
158
+ * could check) and an entry was read for the step, evict that entry: it
159
+ * did not serve this pass, and nothing recorded will replace it, so
160
+ * keeping it would hand every later run off the same way.
139
161
  * - failed after consuming a replay: evict. Without this, a diverged replay
140
162
  * whose step then fails stages nothing — and the poisoned entry would
141
163
  * replay its bad prefix on every future first attempt.
@@ -172,18 +194,22 @@ export declare class StepTraceSession {
172
194
  private replayEntry;
173
195
  /**
174
196
  * The trace's postcondition against the live screen: the recorded end
175
- * route (when the live location is known) and every recorded end anchor
176
- * present again. A route the path leaves undecided is the recorded screen
177
- * only if the anchors are already on it, which then needs no second look.
197
+ * route when the live location is known, the recorded delta on the
198
+ * screen (`deltaHolds`), and evidence that the replay produced it rather
199
+ * than finding it there (`deltaEvidenced`). The evidence is measured from
200
+ * the first screen the replay saw on the route it ended on (`screens`, in
201
+ * order): the start for a step that stays on one screen, the page a
202
+ * recorded navigate opened before the switch on it was tapped. An outcome
203
+ * already showing there proves nothing, and neither does a recording with
204
+ * no delta at all.
178
205
  */
179
206
  private endStateMatches;
180
207
  /**
181
208
  * Captures the semantic end state once its route matches the recording,
182
- * polling while a navigation the last action started commits. Reports
183
- * whether the anchors were what settled the route, so the caller does not
184
- * verify them again. A route still undecided when the poll runs out is
185
- * handed on with the anchors unseen: the caller's anchor wait, sized by
186
- * the recording, is the one that decides it, as for a route that matched.
209
+ * polling while a navigation the last action started commits. A route
210
+ * that never matches is another screen, whatever it shows: a link that
211
+ * now lands on a page sharing the recorded one's layout is exactly the
212
+ * flow that went wrong.
187
213
  */
188
214
  private endScreen;
189
215
  private selfFinalize;
@@ -199,12 +225,13 @@ export declare class StepTraceSession {
199
225
  *
200
226
  * The end path and a fresh settled observation are the trace's
201
227
  * postcondition — the state the step passed in. The delta between the
202
- * baseline and the passing observation becomes the end anchors. When the
203
- * step moved to another pathname the whole new screen is the delta, and its
204
- * first stable anchors back the path check, which matches a created
205
- * record's page up to the id the app minted for it. A postcondition that
206
- * cannot be captured stages nothing: a trace without its check would
207
- * replay on mechanics alone.
228
+ * baseline and the passing observation becomes the anchors: what appeared
229
+ * and what vanished. When the step moved to another pathname the whole new
230
+ * screen is the delta, and its first stable anchors back the path check,
231
+ * which matches a created record's page up to the id the app minted for
232
+ * it. A postcondition that cannot be captured stages nothing, and neither
233
+ * does a step that changed nothing a replay could check, no node and no
234
+ * route: a trace without its check would replay on mechanics alone.
208
235
  */
209
236
  private stage;
210
237
  /**
@@ -224,4 +251,3 @@ export declare class StepTraceSession {
224
251
  * drift apart; a summary not written by it is returned as is.
225
252
  */
226
253
  export declare function recordedVerdictOf(summary: string): string;
227
- //# sourceMappingURL=step-cache.d.ts.map