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
package/dist/.build.json CHANGED
@@ -1 +1 @@
1
- {"version":"0.15.2"}
1
+ {"version":"0.17.0"}
@@ -35,6 +35,15 @@ export declare function validateParams(params: AgentParams | undefined): {
35
35
  secrets: ReadonlyMap<string, Secret>;
36
36
  templates: readonly ParamTemplate[];
37
37
  };
38
+ /**
39
+ * Projected params with `redact` applied to every string in them, object
40
+ * keys included, and their `unique()` templates moved with their leaves: a
41
+ * template's pointer follows the redacted keys and its value is redacted as
42
+ * the leaf is, so the trace cache slots what the params hold.
43
+ */
44
+ export declare function redactParams(params: Readonly<Record<string, JsonValue>>, templates: readonly ParamTemplate[], redact: (text: string) => string): {
45
+ params: Readonly<Record<string, JsonValue>>;
46
+ templates: readonly ParamTemplate[];
47
+ };
38
48
  /** Closes the verdict grammar: the executor cannot invent statuses or codes. */
39
49
  export declare function validateVerdict(verdict: unknown, executorName: string): StepVerdict;
40
- //# sourceMappingURL=act-validation.d.ts.map
@@ -90,6 +90,54 @@ export function validateParams(params) {
90
90
  templates: found.templates,
91
91
  };
92
92
  }
93
+ /**
94
+ * Projected params with `redact` applied to every string in them, object
95
+ * keys included, and their `unique()` templates moved with their leaves: a
96
+ * template's pointer follows the redacted keys and its value is redacted as
97
+ * the leaf is, so the trace cache slots what the params hold.
98
+ */
99
+ export function redactParams(params, templates, redact) {
100
+ const pointers = new Map();
101
+ const redacted = redactJson(params, redact, { from: '', to: '' }, pointers);
102
+ return {
103
+ params: redacted,
104
+ templates: templates.map((template) => ({
105
+ pointer: pointers.get(template.pointer) ?? template.pointer,
106
+ value: redact(template.value),
107
+ })),
108
+ };
109
+ }
110
+ /**
111
+ * `value` with `redact` applied to every string in it, object keys included.
112
+ * Records in `pointers` where each node's pointer (`at.from`) lands once its
113
+ * keys are redacted (`at.to`). Two keys of one object that redact alike would
114
+ * leave one value standing for both, so that is `INVALID_ARGUMENT`.
115
+ */
116
+ function redactJson(value, redact, at, pointers) {
117
+ pointers.set(at.from, at.to);
118
+ if (typeof value === 'string')
119
+ return redact(value);
120
+ if (Array.isArray(value)) {
121
+ return value.map((entry, index) => redactJson(entry, redact, { from: paramPointer(at.from, index), to: paramPointer(at.to, index) }, pointers));
122
+ }
123
+ if (typeof value !== 'object' || value === null)
124
+ return value;
125
+ const out = {};
126
+ for (const [key, entry] of Object.entries(value)) {
127
+ const clean = redact(key);
128
+ if (Object.hasOwn(out, clean)) {
129
+ throw new TestError('INVALID_ARGUMENT', `agent.act params has two keys that read ${JSON.stringify(clean)} once secret values are redacted; a key cannot be told apart by a secret`);
130
+ }
131
+ // Defined, not assigned, so a `__proto__` key stays an own property.
132
+ Object.defineProperty(out, clean, {
133
+ value: redactJson(entry, redact, { from: paramPointer(at.from, key), to: paramPointer(at.to, clean) }, pointers),
134
+ enumerable: true,
135
+ writable: true,
136
+ configurable: true,
137
+ });
138
+ }
139
+ return out;
140
+ }
93
141
  /** Replaces every Secret leaf with its placeholder and every Unique leaf with its value, collecting both. */
94
142
  function projectParams(value, pointer, found, seen) {
95
143
  if (isSecret(value)) {
@@ -146,4 +194,3 @@ export function validateVerdict(verdict, executorName) {
146
194
  ...(code === undefined ? {} : { errorCode: code }),
147
195
  };
148
196
  }
149
- //# sourceMappingURL=act-validation.js.map
@@ -66,5 +66,4 @@ export declare function runAssertStep(runtime: AgentContext, assertion: string,
66
66
  * passing is what confirms the traces staged before it at attempt end
67
67
  * (cache/context.ts).
68
68
  */
69
- export declare function dispatchAgentStep(runtime: AgentContext, spec: DispatchSpec, agent?: DispatchAgent): Promise<ActResult>;
70
- //# sourceMappingURL=act.d.ts.map
69
+ export declare function dispatchAgentStep(runtime: AgentContext, raw: DispatchSpec, agent?: DispatchAgent): Promise<ActResult>;
package/dist/agent/act.js CHANGED
@@ -21,7 +21,7 @@ import { join } from 'node:path';
21
21
  import { ConfigurationError } from '../internal/errors.js';
22
22
  import { withAbort, withTimeout } from '../internal/time.js';
23
23
  import { AgentError, CATEGORY_BY_CODE, toAgentError } from './error.js';
24
- import { validateActOptions, validateInstruction, validateParams, validateVerdict } from './act-validation.js';
24
+ import { redactParams, validateActOptions, validateInstruction, validateParams, validateVerdict } from './act-validation.js';
25
25
  import { ActionDispatcher } from './action-dispatcher.js';
26
26
  import { resolveBoundedBudget, resolveTimeout } from './call-options.js';
27
27
  import { RUNTIME_CODES } from './executor.js';
@@ -29,6 +29,7 @@ import { projectPriorSteps, serializeLedger } from './ledger.js';
29
29
  import { instantiateLanguageModel } from './model/sdk.js';
30
30
  import { ObservationFeed } from './observation-feed.js';
31
31
  import { recordPolicyEvent } from './phases.js';
32
+ import { appLocation } from '../cache/route.js';
32
33
  import { OperationQueue } from './operation-queue.js';
33
34
  import { StepAccounting } from './step-accounting.js';
34
35
  import { failedStepOutcome, StepTraceSession } from './step-cache.js';
@@ -88,12 +89,16 @@ export async function runAssertStep(runtime, assertion, options) {
88
89
  * passing is what confirms the traces staged before it at attempt end
89
90
  * (cache/context.ts).
90
91
  */
91
- export async function dispatchAgentStep(runtime, spec,
92
+ export async function dispatchAgentStep(runtime, raw,
92
93
  // Resolved before the step opens, so an unknown name fails the call, not a
93
94
  // recorded step, and the step carries the agent it ran with.
94
- agent = runtime.select(spec.agent)) {
95
+ agent = runtime.select(raw.agent)) {
96
+ const spec = redactSpec(raw, runtime.redact);
97
+ // Redacted per step, not once per agent: the ledger is live, so a value
98
+ // resolved since the agent was selected is covered too.
99
+ const context = agent.agentContext === undefined ? undefined : runtime.redact(agent.agentContext);
95
100
  return runtime.steps.run('agent', spec.api, spec.instruction, async () => {
96
- const dispatch = new ActDispatch(runtime, spec, agent);
101
+ const dispatch = new ActDispatch(runtime, spec, { ...agent, agentContext: context });
97
102
  try {
98
103
  let verdict;
99
104
  try {
@@ -116,6 +121,20 @@ agent = runtime.select(spec.agent)) {
116
121
  }
117
122
  }, { verifies: spec.kind === 'assert', agent: agent.name });
118
123
  }
124
+ /**
125
+ * The spec with every registered secret value the test spelled into the
126
+ * instruction or a param string (a key or a leaf) rewritten to its marker,
127
+ * before anything reads it: the executor, its model, the step label, the
128
+ * trace cache, and the prior-step ledger all see the same redacted step. A
129
+ * `Secret` handle is already a placeholder here and stays fillable through
130
+ * `typeSecret`.
131
+ */
132
+ function redactSpec(spec, redact) {
133
+ const instruction = redact(spec.instruction);
134
+ if (spec.params === undefined)
135
+ return { ...spec, instruction };
136
+ return { ...spec, instruction, ...redactParams(spec.params, spec.templates, redact) };
137
+ }
119
138
  /** One step's wiring: the collaborators, the executor's context, and the verdict mapping. */
120
139
  class ActDispatch {
121
140
  runtime;
@@ -181,7 +200,10 @@ class ActDispatch {
181
200
  name: agent.executor.name,
182
201
  ...(agent.executor.version === undefined ? {} : { version: agent.executor.version }),
183
202
  },
203
+ // Redacted already (`dispatchAgentStep`): the key digests the context the executor reads.
204
+ agent: { name: agent.name, context: agent.agentContext },
184
205
  redact: runtime.redact,
206
+ redactCut: runtime.redactCut,
185
207
  maxActions: this.accounting.maxActions,
186
208
  stepIndex,
187
209
  });
@@ -403,11 +425,10 @@ class ActDispatch {
403
425
  const feed = this.feed;
404
426
  return {
405
427
  get traceEligible() { return feed.traceEligible; },
406
- observe: async (mode) => screenOf(await this.feed.probe(mode)),
428
+ observe: async (mode) => screenOf(await this.feed.probe(mode), this.runtime.app.base?.origin),
407
429
  actions: this.dispatcher.actions,
408
430
  signal: this.accounting.signal,
409
431
  remainingMs: () => this.accounting.remainingMs(),
410
- redact: this.runtime.redact,
411
432
  replaying: (active) => {
412
433
  this.runtime.steps.replaying(active);
413
434
  this.accounting.replaying(active);
@@ -456,13 +477,12 @@ class ActDispatch {
456
477
  }
457
478
  }
458
479
  /** The replay engine's view of a capture: the nodes, and the viewport a recorded point is checked against. */
459
- function screenOf(observation) {
480
+ function screenOf(observation, appOrigin) {
460
481
  const metadata = {
461
482
  viewport: { width: observation.viewport.width, height: observation.viewport.height },
462
- ...(observation.path === undefined ? {} : { path: observation.path }),
483
+ ...(observation.location === undefined ? {} : { path: appLocation(observation.location, appOrigin) }),
463
484
  };
464
485
  return observation.kind === 'semantic'
465
486
  ? { ...metadata, kind: 'semantic', nodes: observation.nodes }
466
487
  : { ...metadata, kind: 'pixels' };
467
488
  }
468
- //# sourceMappingURL=act.js.map
@@ -184,4 +184,3 @@ export declare class ActionDispatcher {
184
184
  /** The seam a policy records its decisions through, onto this step's events. */
185
185
  private policyHost;
186
186
  }
187
- //# sourceMappingURL=action-dispatcher.d.ts.map
@@ -487,10 +487,10 @@ export class ActionDispatcher {
487
487
  }
488
488
  async runActionNow(name, body) {
489
489
  this.accounting.reserveAction();
490
- const redact = this.runtime.redact;
490
+ const redaction = { redact: this.runtime.redact, redactCut: this.runtime.redactCut };
491
491
  let action;
492
492
  try {
493
- action = await instrumentPhase(this.runtime, { api: this.accounting.api, kind: 'engine', phase: 'agent.action', name }, body, (committed) => ({ detail: describeAction(committed, redact).summary }));
493
+ action = await instrumentPhase(this.runtime, { api: this.accounting.api, kind: 'engine', phase: 'agent.action', name }, body, (committed) => ({ detail: describeAction(committed, redaction).summary }));
494
494
  }
495
495
  catch (cause) {
496
496
  this.accounting.checkpoint(cause);
@@ -579,9 +579,8 @@ export class ActionDispatcher {
579
579
  * number picks the same one.
580
580
  */
581
581
  placementOf({ node, observation }) {
582
- const redact = this.runtime.redact;
583
- const within = containerKey(node.ref.id, observation.nodes, observation.parents, redact);
584
- const position = describePosition(node, within, observation.nodes, { redact });
582
+ const within = containerKey(node.ref.id, observation.nodes, observation.parents);
583
+ const position = describePosition(node, within, observation.nodes);
585
584
  return {
586
585
  ...(within === undefined ? {} : { within }),
587
586
  ...(position === undefined ? {} : { position }),
@@ -598,4 +597,3 @@ function isInViewport(rect, viewport) {
598
597
  return true;
599
598
  return rect.x < viewport.width && rect.y < viewport.height && rect.x + rect.width > 0 && rect.y + rect.height > 0;
600
599
  }
601
- //# sourceMappingURL=action-dispatcher.js.map
@@ -25,4 +25,3 @@ export declare const HARNESS_TOOL_NAMES: ReadonlyMap<string, string>;
25
25
  * take one: it would be silently shadowed on one engine and live on another.
26
26
  */
27
27
  export declare const GRAMMAR_TOOL_NAMES: ReadonlySet<string>;
28
- //# sourceMappingURL=action-names.d.ts.map
@@ -78,4 +78,3 @@ export const GRAMMAR_TOOL_NAMES = new Set([
78
78
  'select_at',
79
79
  'dismiss_keyboard',
80
80
  ]);
81
- //# sourceMappingURL=action-names.js.map
@@ -8,51 +8,52 @@
8
8
  * the same descriptor projection. One owner for all three, so a recorded
9
9
  * summary, a live event line, and a relocation candidate can never drift.
10
10
  */
11
- import type { SemanticNode, ViewportPoint, ViewportSize } from '../engine/surface.ts';
11
+ import type { ViewportPoint, ViewportSize } from '../engine/surface.ts';
12
+ import { type NodeRedaction, type RedactedNode } from './observation.ts';
12
13
  import { type NodeActionName, type PointActionName, type TraceTargetDescriptor, type TracePosition } from '../cache/trace.ts';
13
14
  import type { ScrollDirection } from '../types.ts';
14
15
  /** One committed grammar action, addressed by the node it actually ran against. */
15
16
  export type RecordableAction = ({
16
17
  readonly name: NodeActionName;
17
- readonly node: SemanticNode;
18
+ readonly node: RedactedNode;
18
19
  } & Placement) | ({
19
20
  readonly name: 'type';
20
- readonly node: SemanticNode;
21
+ readonly node: RedactedNode;
21
22
  readonly value: string;
22
23
  } & Placement) | ({
23
24
  readonly name: 'typeSecret';
24
- readonly node: SemanticNode;
25
+ readonly node: RedactedNode;
25
26
  readonly secret: string;
26
27
  } & Placement) | ({
27
28
  readonly name: 'press';
28
- readonly node: SemanticNode;
29
+ readonly node: RedactedNode;
29
30
  readonly key: string;
30
31
  } & Placement) | ({
31
32
  readonly name: 'select';
32
- readonly node: SemanticNode;
33
+ readonly node: RedactedNode;
33
34
  readonly value: string;
34
35
  } & Placement) | ({
35
36
  readonly name: 'check';
36
- readonly node: SemanticNode;
37
+ readonly node: RedactedNode;
37
38
  readonly checked: boolean;
38
39
  } & Placement)
39
40
  /** Project-relative paths as the executor gave them; replay authorizes them again. */
40
41
  | ({
41
42
  readonly name: 'upload';
42
- readonly node: SemanticNode;
43
+ readonly node: RedactedNode;
43
44
  readonly paths: readonly string[];
44
45
  } & Placement)
45
46
  /** The dragged node with its placement, and where it was dropped, with its own. */
46
47
  | ({
47
48
  readonly name: 'drag';
48
- readonly node: SemanticNode;
49
+ readonly node: RedactedNode;
49
50
  readonly destination: {
50
- readonly node: SemanticNode;
51
+ readonly node: RedactedNode;
51
52
  } & Placement;
52
53
  } & Placement) | ({
53
54
  readonly name: 'scroll';
54
55
  readonly direction: ScrollDirection;
55
- readonly node?: SemanticNode;
56
+ readonly node?: RedactedNode;
56
57
  /** The share of the viewport the node covered when scrolled, 0 to 1 (`ScrollAction.spans`). */
57
58
  readonly spans?: number;
58
59
  } & Placement)
@@ -61,7 +62,7 @@ export type RecordableAction = ({
61
62
  readonly name: 'scrollUntil';
62
63
  readonly text: string;
63
64
  readonly direction: ScrollDirection;
64
- readonly node?: SemanticNode;
65
+ readonly node?: RedactedNode;
65
66
  readonly spans?: number;
66
67
  /** How many pages it took; in the summary, never in the trace, since a replay pages for itself. */
67
68
  readonly screens: number;
@@ -92,7 +93,7 @@ export type RecordableAction = ({
92
93
  readonly name: PointActionName;
93
94
  readonly point: ViewportPoint;
94
95
  readonly viewport: ViewportSize;
95
- readonly under?: SemanticNode;
96
+ readonly under?: RedactedNode;
96
97
  };
97
98
  /** Where the node sat when it was acted on: its container's key and its place among identical twins. */
98
99
  export interface Placement {
@@ -100,14 +101,17 @@ export interface Placement {
100
101
  readonly position?: TracePosition;
101
102
  }
102
103
  /**
103
- * The key of the nearest named container a node sits in — the first text of
104
- * its row or list item — when that key says more than the node's own name.
105
- * Ten rows each with a "Delete" button are ten identical descriptors; "Delete
106
- * in the row that starts with Budget draft" is one.
104
+ * The key of the nearest named container a node sits in, the first text of
105
+ * its row or list item or else the container's own label, when that key says
106
+ * more than the node's own name. Ten rows each with a "Delete" button are ten
107
+ * identical descriptors; "Delete in the row that starts with Budget draft" is
108
+ * one. A row whose only text is its own (`<li>Alpha <button><svg/></li>`)
109
+ * is keyed by it. Only the nearest container counts: the list around a row
110
+ * with no text names every row alike, so its key would tell no twin apart.
107
111
  */
108
- export declare function containerKey(id: string, nodes: ReadonlyMap<string, SemanticNode>, parents: ReadonlyMap<string, string>, redact: (text: string) => string): string | undefined;
112
+ export declare function containerKey(id: string, nodes: ReadonlyMap<string, RedactedNode>, parents: ReadonlyMap<string, string>): string | undefined;
109
113
  /** Parent id of every non-root node, derived from the tree the node map indexes. */
110
- export declare function parentsOf(nodes: ReadonlyMap<string, SemanticNode>): ReadonlyMap<string, string>;
114
+ export declare function parentsOf(nodes: ReadonlyMap<string, RedactedNode>): ReadonlyMap<string, string>;
111
115
  /** How one committed action reads back: where it acted, and what it did. */
112
116
  export interface DescribedAction {
113
117
  /**
@@ -124,14 +128,18 @@ export interface DescribedAction {
124
128
  /** Where a drag was dropped, described like its target; only a drag has one. */
125
129
  readonly destination?: TraceTargetDescriptor;
126
130
  }
127
- /** Describes one committed action for recording and for the live event. */
128
- export declare function describeAction(action: RecordableAction, redact: (text: string) => string): DescribedAction;
131
+ /**
132
+ * Describes one committed action for recording and for the live event. Its
133
+ * nodes pass the ledger again as it is now: a secret resolved after the
134
+ * capture (inside the action itself) masks what the capture still shows.
135
+ */
136
+ export declare function describeAction(action: RecordableAction, redaction: NodeRedaction): DescribedAction;
129
137
  /**
130
138
  * Builds the durable descriptor for one resolved node: the semantic fields
131
139
  * replay re-finds it by, plus the engine's structural selector hint (kept as
132
140
  * provenance for tuned policies; the conservative relocator ignores it).
133
141
  * Values a secure node holds are never part of it — descriptors carry how a
134
- * node is named, not what it contains.
142
+ * node is named, not what it contains. The node was redacted with its
143
+ * observation (`redactNode`), each field in the one-line form read here too.
135
144
  */
136
- export declare function describeTarget(node: SemanticNode, redact: (text: string) => string): TraceTargetDescriptor | undefined;
137
- //# sourceMappingURL=actions.d.ts.map
145
+ export declare function describeTarget(node: RedactedNode): TraceTargetDescriptor | undefined;
@@ -8,32 +8,33 @@
8
8
  * the same descriptor projection. One owner for all three, so a recorded
9
9
  * summary, a live event line, and a relocation candidate can never drift.
10
10
  */
11
+ import { redactNode } from './observation.js';
11
12
  import { bound, isNodeAction, MAX_TRACE_DESCRIPTOR_CHARS, MAX_TRACE_SUMMARY_CHARS, } from '../cache/trace.js';
12
13
  import { sanitizeText } from '../internal/errors.js';
13
- import { normalizeText } from '../internal/text.js';
14
+ import { collapseText } from '../internal/text.js';
14
15
  /** Roles whose first text names the thing a control belongs to: a row's key, a list item's title. */
15
16
  const CONTAINER_ROLES = new Set(['row', 'listitem', 'article', 'group', 'region', 'dialog', 'tabpanel']);
16
17
  /** Longest container key kept. */
17
18
  const MAX_WITHIN_CHARS = 80;
18
19
  /**
19
- * The key of the nearest named container a node sits in — the first text of
20
- * its row or list item — when that key says more than the node's own name.
21
- * Ten rows each with a "Delete" button are ten identical descriptors; "Delete
22
- * in the row that starts with Budget draft" is one.
20
+ * The key of the nearest named container a node sits in, the first text of
21
+ * its row or list item or else the container's own label, when that key says
22
+ * more than the node's own name. Ten rows each with a "Delete" button are ten
23
+ * identical descriptors; "Delete in the row that starts with Budget draft" is
24
+ * one. A row whose only text is its own (`<li>Alpha <button><svg/></li>`)
25
+ * is keyed by it. Only the nearest container counts: the list around a row
26
+ * with no text names every row alike, so its key would tell no twin apart.
23
27
  */
24
- export function containerKey(id, nodes, parents, redact) {
28
+ export function containerKey(id, nodes, parents) {
25
29
  const node = nodes.get(id);
26
30
  const own = node === undefined ? '' : squash(node.name ?? node.text ?? '');
27
31
  let cursor = parents.get(id);
28
32
  while (cursor !== undefined) {
29
33
  const container = nodes.get(cursor);
30
34
  if (container !== undefined && CONTAINER_ROLES.has(container.role ?? '')) {
31
- const key = firstLeafText(container);
32
- if (key !== undefined) {
33
- const clean = bound(redact(sanitizeText(key)).replace(/\s+/g, ' ').trim(), MAX_WITHIN_CHARS);
34
- return clean === '' || squash(clean) === own ? undefined : clean;
35
- }
36
- return undefined;
35
+ const key = firstLeafText(container) ?? ownLabel(container);
36
+ const clean = key === undefined ? '' : bound(collapseText(key), MAX_WITHIN_CHARS);
37
+ return clean === '' || squash(clean) === own ? undefined : clean;
37
38
  }
38
39
  cursor = parents.get(cursor);
39
40
  }
@@ -60,6 +61,11 @@ function firstLeafText(node) {
60
61
  }
61
62
  return undefined;
62
63
  }
64
+ /** A container's own name or text, when it has one. */
65
+ function ownLabel(node) {
66
+ const label = (node.name ?? node.text ?? '').trim();
67
+ return label === '' ? undefined : label;
68
+ }
63
69
  function squash(text) {
64
70
  return text.replace(/\s+/g, ' ').trim().toLowerCase();
65
71
  }
@@ -74,16 +80,20 @@ const NODE_ACTION_PROSE = {
74
80
  };
75
81
  /** How each point verb reads: `tap the point (x, y)`, `hover over the point (x, y)`. */
76
82
  const POINT_ACTION_PROSE = { tapAt: 'tap', hoverAt: 'hover over' };
77
- /** Describes one committed action for recording and for the live event. */
78
- export function describeAction(action, redact) {
83
+ /**
84
+ * Describes one committed action for recording and for the live event. Its
85
+ * nodes pass the ledger again as it is now: a secret resolved after the
86
+ * capture (inside the action itself) masks what the capture still shows.
87
+ */
88
+ export function describeAction(action, redaction) {
79
89
  const target = 'node' in action
80
- ? describePlaced(action.node, action, redact)
90
+ ? describePlaced(action.node, action, redaction)
81
91
  : 'point' in action
82
- ? describePlaced(action.under, {}, redact)
92
+ ? describePlaced(action.under, {}, redaction)
83
93
  : undefined;
84
- const destination = action.name === 'drag' ? describePlaced(action.destination.node, action.destination, redact) : undefined;
94
+ const destination = action.name === 'drag' ? describePlaced(action.destination.node, action.destination, redaction) : undefined;
85
95
  const where = describeForSummary(target);
86
- const safe = (value) => quote(redact(sanitizeText(value)));
96
+ const safe = (value) => quote(redaction.redact(sanitizeText(value)));
87
97
  const prose = (() => {
88
98
  if (isNodeAction(action))
89
99
  return NODE_ACTION_PROSE[action.name](where);
@@ -134,13 +144,16 @@ export function describeAction(action, redact) {
134
144
  };
135
145
  }
136
146
  /** A node's durable descriptor with the placement it was acted on in; undefined for no node or nothing durable. */
137
- function describePlaced(node, placement, redact) {
138
- const described = node === undefined ? undefined : describeTarget(node, redact);
147
+ function describePlaced(node, placement, redaction) {
148
+ if (node === undefined)
149
+ return undefined;
150
+ const { children: _children, ...fields } = node;
151
+ const described = describeTarget(redactNode(fields, redaction));
139
152
  if (described === undefined)
140
153
  return undefined;
141
154
  return {
142
155
  ...described,
143
- ...(placement.within === undefined ? {} : { within: bound(placement.within, MAX_WITHIN_CHARS) }),
156
+ ...(placement.within === undefined ? {} : { within: bound(redaction.redact(placement.within), MAX_WITHIN_CHARS) }),
144
157
  ...(placement.position === undefined ? {} : { position: placement.position }),
145
158
  };
146
159
  }
@@ -149,13 +162,14 @@ function describePlaced(node, placement, redact) {
149
162
  * replay re-finds it by, plus the engine's structural selector hint (kept as
150
163
  * provenance for tuned policies; the conservative relocator ignores it).
151
164
  * Values a secure node holds are never part of it — descriptors carry how a
152
- * node is named, not what it contains.
165
+ * node is named, not what it contains. The node was redacted with its
166
+ * observation (`redactNode`), each field in the one-line form read here too.
153
167
  */
154
- export function describeTarget(node, redact) {
168
+ export function describeTarget(node) {
155
169
  const field = (value) => {
156
170
  if (value === undefined)
157
171
  return undefined;
158
- const collapsed = normalizeText(redact(sanitizeText(value)));
172
+ const collapsed = collapseText(value);
159
173
  return collapsed === '' ? undefined : bound(collapsed, MAX_TRACE_DESCRIPTOR_CHARS);
160
174
  };
161
175
  const role = field(node.role);
@@ -193,4 +207,3 @@ function describeWhere(target) {
193
207
  function quote(value) {
194
208
  return JSON.stringify(bound(value, 40));
195
209
  }
196
- //# sourceMappingURL=actions.js.map
@@ -11,4 +11,3 @@ export declare const BUILT_IN_AGENT: {
11
11
  readonly name: 'e2e-default-agent';
12
12
  readonly version: '2';
13
13
  };
14
- //# sourceMappingURL=agent-brand.d.ts.map
@@ -8,4 +8,3 @@
8
8
  * valid whatever options an agents entry sets.
9
9
  */
10
10
  export const BUILT_IN_AGENT = { name: 'e2e-default-agent', version: '2' };
11
- //# sourceMappingURL=agent-brand.js.map
@@ -19,9 +19,15 @@ export type SdkLanguageModel = Exclude<LanguageModel, string>;
19
19
  export declare function asSdkLanguageModel(instance: ModelInstance): SdkLanguageModel;
20
20
  /** Loads and caches the AI SDK, or fails with MODEL_UNAVAILABLE. */
21
21
  export declare function loadAiSdk(): Promise<AiSdk>;
22
+ /**
23
+ * The SDK when the optional peer is installed, else undefined: for the seams
24
+ * that have a way to do their job without it.
25
+ */
26
+ export declare function loadAiSdkIfInstalled(): Promise<AiSdk | undefined>;
27
+ /** The SDK when an earlier call loaded it, else undefined; never loads it. */
28
+ export declare function loadedAiSdk(): AiSdk | undefined;
22
29
  /**
23
30
  * The already-loaded SDK, for the few synchronous seams (error-class checks)
24
31
  * that run strictly after an async caller primed the cache.
25
32
  */
26
33
  export declare function aiSdk(): AiSdk;
27
- //# sourceMappingURL=ai-sdk.d.ts.map
@@ -53,6 +53,17 @@ export async function loadAiSdk() {
53
53
  throw missing(state.failure);
54
54
  }
55
55
  }
56
+ /**
57
+ * The SDK when the optional peer is installed, else undefined: for the seams
58
+ * that have a way to do their job without it.
59
+ */
60
+ export async function loadAiSdkIfInstalled() {
61
+ return loadAiSdk().catch(() => undefined);
62
+ }
63
+ /** The SDK when an earlier call loaded it, else undefined; never loads it. */
64
+ export function loadedAiSdk() {
65
+ return cache().loaded;
66
+ }
56
67
  /**
57
68
  * The already-loaded SDK, for the few synchronous seams (error-class checks)
58
69
  * that run strictly after an async caller primed the cache.
@@ -69,4 +80,3 @@ function missing(cause) {
69
80
  'peer dependency ai@^7 — install it, or configure an agent that brings ' +
70
81
  'its own model transport', { cause });
71
82
  }
72
- //# sourceMappingURL=ai-sdk.js.map
@@ -7,4 +7,3 @@
7
7
  export declare function resolveTimeout(requested: number | undefined, fallback: number): number;
8
8
  /** Resolves a per-call budget override, capped at the configured limit. */
9
9
  export declare function resolveBoundedBudget(requested: number | undefined, limit: number, label: string): number;
10
- //# sourceMappingURL=call-options.d.ts.map
@@ -25,4 +25,3 @@ export function resolveBoundedBudget(requested, limit, label) {
25
25
  }
26
26
  return requested;
27
27
  }
28
- //# sourceMappingURL=call-options.js.map
@@ -28,4 +28,3 @@ export declare function createBuiltInAgent(options?: BuiltInAgentOptions): StepE
28
28
  * and a host outside the loop reports them its own way.
29
29
  */
30
30
  export declare function projectTools(context: StepExecutorContext, tools: Readonly<Record<string, AgentTool>>): ToolSet;
31
- //# sourceMappingURL=default-agent.d.ts.map
@@ -170,4 +170,3 @@ function guardedTools(helpers, tools) {
170
170
  }
171
171
  return guarded;
172
172
  }
173
- //# sourceMappingURL=default-agent.js.map
@@ -57,4 +57,3 @@ export interface StepEvidence {
57
57
  * the model composed itself.
58
58
  */
59
59
  export declare function derivedReason(value: string, instruction: string, params: Readonly<Record<string, JsonValue>> | undefined, evidence?: StepEvidence): DerivedReason | undefined;
60
- //# sourceMappingURL=derived.d.ts.map
@@ -125,4 +125,3 @@ function paramStrings(params) {
125
125
  function normalize(text) {
126
126
  return text.toLowerCase().replace(/\s+/g, ' ').trim();
127
127
  }
128
- //# sourceMappingURL=derived.js.map
@@ -64,4 +64,3 @@ export declare function toAgentError(cause: unknown): AgentError;
64
64
  * keep honest names and `instanceof` never spans realms.
65
65
  */
66
66
  export declare function isAgentError(value: unknown): value is AgentError;
67
- //# sourceMappingURL=error.d.ts.map
@@ -118,4 +118,3 @@ export function isAgentError(value) {
118
118
  typeof value.code === 'string' &&
119
119
  value.code in CATEGORY_BY_CODE);
120
120
  }
121
- //# sourceMappingURL=error.js.map
@@ -495,4 +495,3 @@ export declare function isRuntimeHardStop(cause: unknown): cause is AgentError;
495
495
  export declare const BLOCKABLE_CODES: ReadonlySet<AgentErrorCode>;
496
496
  /** Structural executor check, mirroring how model instances are detected. */
497
497
  export declare function isStepExecutor(value: unknown): value is StepExecutor;
498
- //# sourceMappingURL=executor.d.ts.map
@@ -52,4 +52,3 @@ export function isStepExecutor(value) {
52
52
  candidate['name'] !== '' &&
53
53
  typeof candidate['runStep'] === 'function');
54
54
  }
55
- //# sourceMappingURL=executor.js.map
@@ -12,4 +12,3 @@ import type { Agent } from '../types.ts';
12
12
  import { type AgentContext } from './invocation.ts';
13
13
  /** Builds the agent fixture for one attempt. */
14
14
  export declare function createAgentFixture(runtime: AgentContext): Agent;
15
- //# sourceMappingURL=index.d.ts.map
@@ -350,4 +350,3 @@ function safeJson(value) {
350
350
  return undefined;
351
351
  }
352
352
  }
353
- //# sourceMappingURL=index.js.map
@@ -35,4 +35,3 @@ export interface InteractiveStep {
35
35
  * never resolved and the budgets a model loop needs do not apply.
36
36
  */
37
37
  export declare function openInteractiveStep(runtime: AgentContext, options: InteractiveStepOptions): Promise<InteractiveStep>;
38
- //# sourceMappingURL=interactive-step.d.ts.map
@@ -129,4 +129,3 @@ class HostExecutor {
129
129
  job.settle({ error: reason });
130
130
  }
131
131
  }
132
- //# sourceMappingURL=interactive-step.js.map
@@ -210,4 +210,3 @@ export declare class Invocation {
210
210
  private modelInfo;
211
211
  private consumeModelCall;
212
212
  }
213
- //# sourceMappingURL=invocation.d.ts.map