e2e 0.15.1 → 0.16.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 (1019) hide show
  1. package/README.md +51 -24
  2. package/dist/.build.json +1 -1
  3. package/dist/agent/act-validation.d.ts +10 -1
  4. package/dist/agent/act-validation.js +48 -1
  5. package/dist/agent/act.d.ts +1 -2
  6. package/dist/agent/act.js +25 -8
  7. package/dist/agent/action-dispatcher.d.ts +0 -1
  8. package/dist/agent/action-dispatcher.js +0 -1
  9. package/dist/agent/action-names.d.ts +0 -1
  10. package/dist/agent/action-names.js +0 -1
  11. package/dist/agent/actions.d.ts +0 -1
  12. package/dist/agent/actions.js +0 -1
  13. package/dist/agent/agent-brand.d.ts +0 -1
  14. package/dist/agent/agent-brand.js +0 -1
  15. package/dist/agent/ai-sdk.d.ts +7 -1
  16. package/dist/agent/ai-sdk.js +11 -1
  17. package/dist/agent/call-options.d.ts +0 -1
  18. package/dist/agent/call-options.js +0 -1
  19. package/dist/agent/default-agent.d.ts +0 -1
  20. package/dist/agent/default-agent.js +0 -1
  21. package/dist/agent/derived.d.ts +0 -1
  22. package/dist/agent/derived.js +0 -1
  23. package/dist/agent/error.d.ts +16 -4
  24. package/dist/agent/error.js +25 -7
  25. package/dist/agent/executor.d.ts +0 -1
  26. package/dist/agent/executor.js +0 -1
  27. package/dist/agent/index.d.ts +0 -1
  28. package/dist/agent/index.js +0 -1
  29. package/dist/agent/interactive-step.d.ts +0 -1
  30. package/dist/agent/interactive-step.js +0 -1
  31. package/dist/agent/invocation.d.ts +0 -1
  32. package/dist/agent/invocation.js +10 -5
  33. package/dist/agent/ledger.d.ts +0 -1
  34. package/dist/agent/ledger.js +0 -1
  35. package/dist/agent/loop-guards.d.ts +0 -1
  36. package/dist/agent/loop-guards.js +0 -1
  37. package/dist/agent/model/adapter.d.ts +0 -1
  38. package/dist/agent/model/adapter.js +0 -1
  39. package/dist/agent/model/overflow.d.ts +0 -1
  40. package/dist/agent/model/overflow.js +0 -1
  41. package/dist/agent/model/provider-hints.d.ts +0 -1
  42. package/dist/agent/model/provider-hints.js +0 -1
  43. package/dist/agent/model/schema.d.ts +0 -1
  44. package/dist/agent/model/schema.js +0 -1
  45. package/dist/agent/model/sdk.d.ts +0 -1
  46. package/dist/agent/model/sdk.js +0 -1
  47. package/dist/agent/model/stall.d.ts +0 -1
  48. package/dist/agent/model/stall.js +0 -1
  49. package/dist/agent/model/tool-choice.d.ts +24 -2
  50. package/dist/agent/model/tool-choice.js +27 -2
  51. package/dist/agent/observation-budget.d.ts +0 -1
  52. package/dist/agent/observation-budget.js +0 -1
  53. package/dist/agent/observation-feed.d.ts +0 -1
  54. package/dist/agent/observation-feed.js +0 -1
  55. package/dist/agent/observation.d.ts +0 -1
  56. package/dist/agent/observation.js +0 -1
  57. package/dist/agent/operation-queue.d.ts +0 -1
  58. package/dist/agent/operation-queue.js +0 -1
  59. package/dist/agent/phases.d.ts +0 -1
  60. package/dist/agent/phases.js +0 -1
  61. package/dist/agent/pixels.d.ts +0 -1
  62. package/dist/agent/pixels.js +0 -1
  63. package/dist/agent/point-tap.d.ts +0 -1
  64. package/dist/agent/point-tap.js +0 -1
  65. package/dist/agent/primitives.d.ts +6 -1
  66. package/dist/agent/primitives.js +4 -2
  67. package/dist/agent/prompts.d.ts +0 -1
  68. package/dist/agent/prompts.js +0 -1
  69. package/dist/agent/protocol.d.ts +0 -1
  70. package/dist/agent/protocol.js +0 -1
  71. package/dist/agent/public.d.ts +0 -1
  72. package/dist/agent/public.js +0 -1
  73. package/dist/agent/reading.d.ts +0 -1
  74. package/dist/agent/reading.js +0 -1
  75. package/dist/agent/replay.d.ts +0 -1
  76. package/dist/agent/replay.js +0 -1
  77. package/dist/agent/screen-update.d.ts +0 -1
  78. package/dist/agent/screen-update.js +0 -1
  79. package/dist/agent/scroll-target.d.ts +0 -1
  80. package/dist/agent/scroll-target.js +0 -1
  81. package/dist/agent/secrets.d.ts +0 -1
  82. package/dist/agent/secrets.js +0 -1
  83. package/dist/agent/settle-policy.d.ts +0 -1
  84. package/dist/agent/settle-policy.js +0 -1
  85. package/dist/agent/step-accounting.d.ts +0 -1
  86. package/dist/agent/step-accounting.js +0 -1
  87. package/dist/agent/step-cache.d.ts +14 -4
  88. package/dist/agent/step-cache.js +13 -4
  89. package/dist/agent/tool-loop.d.ts +0 -1
  90. package/dist/agent/tool-loop.js +62 -10
  91. package/dist/agent/tool-output.d.ts +0 -1
  92. package/dist/agent/tool-output.js +0 -1
  93. package/dist/agent/tool.d.ts +0 -1
  94. package/dist/agent/tool.js +0 -1
  95. package/dist/agent/transcript-compaction.d.ts +0 -1
  96. package/dist/agent/transcript-compaction.js +0 -1
  97. package/dist/agent/upload-paths.d.ts +0 -1
  98. package/dist/agent/upload-paths.js +0 -1
  99. package/dist/agent/usage.d.ts +0 -1
  100. package/dist/agent/usage.js +0 -1
  101. package/dist/cache/anchors.d.ts +0 -1
  102. package/dist/cache/anchors.js +0 -1
  103. package/dist/cache/context.d.ts +19 -7
  104. package/dist/cache/context.js +15 -22
  105. package/dist/cache/decide.d.ts +0 -1
  106. package/dist/cache/decide.js +0 -1
  107. package/dist/cache/identity.d.ts +0 -1
  108. package/dist/cache/identity.js +0 -1
  109. package/dist/cache/recorder.d.ts +0 -1
  110. package/dist/cache/recorder.js +0 -1
  111. package/dist/cache/relocate.d.ts +0 -1
  112. package/dist/cache/relocate.js +0 -1
  113. package/dist/cache/route.d.ts +0 -1
  114. package/dist/cache/route.js +0 -1
  115. package/dist/cache/store.d.ts +0 -1
  116. package/dist/cache/store.js +0 -1
  117. package/dist/cache/template.d.ts +0 -1
  118. package/dist/cache/template.js +0 -1
  119. package/dist/cache/trace.d.ts +0 -1
  120. package/dist/cache/trace.js +0 -1
  121. package/dist/cli/bin.d.ts +0 -1
  122. package/dist/cli/bin.js +0 -1
  123. package/dist/cli/cache.d.ts +0 -1
  124. package/dist/cli/cache.js +0 -1
  125. package/dist/cli/docs-url.d.ts +0 -1
  126. package/dist/cli/docs-url.js +0 -1
  127. package/dist/cli/feedback.d.ts +0 -1
  128. package/dist/cli/feedback.js +0 -1
  129. package/dist/cli/guide.d.ts +0 -1
  130. package/dist/cli/guide.js +0 -1
  131. package/dist/cli/index.d.ts +0 -1
  132. package/dist/cli/index.js +2 -3
  133. package/dist/cli/init/agent-skill.d.ts +0 -1
  134. package/dist/cli/init/agent-skill.js +0 -1
  135. package/dist/cli/init/engines.d.ts +0 -1
  136. package/dist/cli/init/engines.js +0 -1
  137. package/dist/cli/init/gateways.d.ts +0 -1
  138. package/dist/cli/init/gateways.js +0 -1
  139. package/dist/cli/init/mcp-config.d.ts +0 -1
  140. package/dist/cli/init/mcp-config.js +0 -1
  141. package/dist/cli/init/package.d.ts +0 -1
  142. package/dist/cli/init/package.js +0 -1
  143. package/dist/cli/init/scaffold.d.ts +1 -1
  144. package/dist/cli/init/scaffold.js +2 -2
  145. package/dist/cli/init/sibling-versions.json +1 -1
  146. package/dist/cli/init/versions.d.ts +0 -1
  147. package/dist/cli/init/versions.js +0 -1
  148. package/dist/cli/init.d.ts +0 -1
  149. package/dist/cli/init.js +0 -1
  150. package/dist/cli/mcp.d.ts +9 -2
  151. package/dist/cli/mcp.js +14 -2
  152. package/dist/cli/signals.d.ts +0 -1
  153. package/dist/cli/signals.js +0 -1
  154. package/dist/cli/skill.d.ts +0 -1
  155. package/dist/cli/skill.js +0 -1
  156. package/dist/cli/telemetry.d.ts +0 -1
  157. package/dist/cli/telemetry.js +1 -2
  158. package/dist/cli/wordmark.d.ts +0 -1
  159. package/dist/cli/wordmark.js +0 -1
  160. package/dist/collect/collect.d.ts +0 -1
  161. package/dist/collect/collect.js +3 -2
  162. package/dist/collect/registry.d.ts +6 -3
  163. package/dist/collect/registry.js +31 -14
  164. package/dist/collect/select.d.ts +0 -1
  165. package/dist/collect/select.js +0 -1
  166. package/dist/config/agent.d.ts +0 -1
  167. package/dist/config/agent.js +0 -1
  168. package/dist/config/app.d.ts +0 -1
  169. package/dist/config/app.js +0 -1
  170. package/dist/config/command.d.ts +0 -1
  171. package/dist/config/command.js +0 -1
  172. package/dist/config/diagnose.d.ts +0 -1
  173. package/dist/config/diagnose.js +0 -1
  174. package/dist/config/esm-hooks.d.ts +0 -1
  175. package/dist/config/esm-hooks.js +0 -1
  176. package/dist/config/load.d.ts +0 -1
  177. package/dist/config/load.js +0 -1
  178. package/dist/config/resolve.d.ts +0 -1
  179. package/dist/config/resolve.js +0 -1
  180. package/dist/config/secrets.d.ts +0 -1
  181. package/dist/config/secrets.js +0 -1
  182. package/dist/config/targets.d.ts +0 -1
  183. package/dist/config/targets.js +0 -1
  184. package/dist/config/validate.d.ts +0 -1
  185. package/dist/config/validate.js +0 -1
  186. package/dist/engine/contract.d.ts +0 -1
  187. package/dist/engine/contract.js +0 -1
  188. package/dist/engine/index.d.ts +1 -2
  189. package/dist/engine/index.js +4 -4
  190. package/dist/engine/manifest.d.ts +0 -1
  191. package/dist/engine/manifest.js +0 -1
  192. package/dist/engine/recording.d.ts +0 -1
  193. package/dist/engine/recording.js +0 -1
  194. package/dist/engine/resolve.d.ts +0 -1
  195. package/dist/engine/resolve.js +0 -1
  196. package/dist/engine/session.d.ts +0 -1
  197. package/dist/engine/session.js +0 -1
  198. package/dist/engine/surface.d.ts +0 -1
  199. package/dist/engine/surface.js +0 -1
  200. package/dist/engine/timing.d.ts +0 -1
  201. package/dist/engine/timing.js +0 -1
  202. package/dist/expect/async.d.ts +0 -1
  203. package/dist/expect/async.js +99 -58
  204. package/dist/expect/attempt.d.ts +0 -1
  205. package/dist/expect/attempt.js +0 -1
  206. package/dist/expect/index.d.ts +0 -1
  207. package/dist/expect/index.js +0 -1
  208. package/dist/expect/poll.d.ts +0 -1
  209. package/dist/expect/poll.js +0 -1
  210. package/dist/expect/soft.d.ts +0 -1
  211. package/dist/expect/soft.js +0 -1
  212. package/dist/expect/values.d.ts +0 -1
  213. package/dist/expect/values.js +1 -2
  214. package/dist/explore/body.d.ts +0 -1
  215. package/dist/explore/body.js +0 -1
  216. package/dist/explore/executor.d.ts +0 -1
  217. package/dist/explore/executor.js +0 -1
  218. package/dist/explore/index.d.ts +0 -1
  219. package/dist/explore/index.js +16 -2
  220. package/dist/explore/plan.d.ts +0 -1
  221. package/dist/explore/plan.js +0 -1
  222. package/dist/explore/progress.d.ts +0 -1
  223. package/dist/explore/progress.js +0 -1
  224. package/dist/explore/state.d.ts +0 -1
  225. package/dist/explore/state.js +0 -1
  226. package/dist/index.d.ts +0 -1
  227. package/dist/index.js +0 -1
  228. package/dist/internal/ai-trace.d.ts +0 -1
  229. package/dist/internal/ai-trace.js +0 -1
  230. package/dist/internal/atomic-write.d.ts +0 -1
  231. package/dist/internal/atomic-write.js +0 -1
  232. package/dist/internal/brands.d.ts +0 -1
  233. package/dist/internal/brands.js +0 -1
  234. package/dist/internal/debug.d.ts +0 -1
  235. package/dist/internal/debug.js +0 -1
  236. package/dist/internal/env.d.ts +0 -1
  237. package/dist/internal/env.js +0 -1
  238. package/dist/internal/errors.d.ts +0 -1
  239. package/dist/internal/errors.js +0 -1
  240. package/dist/internal/geometry.d.ts +0 -1
  241. package/dist/internal/geometry.js +0 -1
  242. package/dist/internal/git.d.ts +0 -1
  243. package/dist/internal/git.js +0 -1
  244. package/dist/internal/globs.d.ts +0 -1
  245. package/dist/internal/globs.js +0 -1
  246. package/dist/internal/ids.d.ts +0 -1
  247. package/dist/internal/ids.js +0 -1
  248. package/dist/internal/json-value.d.ts +0 -1
  249. package/dist/internal/json-value.js +0 -1
  250. package/dist/internal/keys.d.ts +0 -1
  251. package/dist/internal/keys.js +0 -1
  252. package/dist/internal/node-version.d.ts +0 -1
  253. package/dist/internal/node-version.js +0 -1
  254. package/dist/internal/objects.d.ts +0 -1
  255. package/dist/internal/objects.js +0 -1
  256. package/dist/internal/options.d.ts +0 -1
  257. package/dist/internal/options.js +0 -1
  258. package/dist/internal/package-manager.d.ts +0 -1
  259. package/dist/internal/package-manager.js +0 -1
  260. package/dist/internal/package-version.d.ts +0 -1
  261. package/dist/internal/package-version.js +0 -1
  262. package/dist/internal/paths.d.ts +0 -1
  263. package/dist/internal/paths.js +0 -1
  264. package/dist/internal/realm-slot.d.ts +0 -1
  265. package/dist/internal/realm-slot.js +0 -1
  266. package/dist/internal/recording-modes.d.ts +0 -1
  267. package/dist/internal/recording-modes.js +0 -1
  268. package/dist/internal/redact.d.ts +0 -1
  269. package/dist/internal/redact.js +0 -1
  270. package/dist/internal/regexp.d.ts +0 -1
  271. package/dist/internal/regexp.js +0 -1
  272. package/dist/internal/roles.d.ts +0 -1
  273. package/dist/internal/roles.js +0 -1
  274. package/dist/internal/skip.d.ts +0 -1
  275. package/dist/internal/skip.js +0 -1
  276. package/dist/internal/source.d.ts +0 -1
  277. package/dist/internal/source.js +0 -1
  278. package/dist/internal/standard-schema.d.ts +0 -1
  279. package/dist/internal/standard-schema.js +0 -1
  280. package/dist/internal/suggest.d.ts +0 -1
  281. package/dist/internal/suggest.js +0 -1
  282. package/dist/internal/text.d.ts +8 -1
  283. package/dist/internal/text.js +13 -2
  284. package/dist/internal/time.d.ts +0 -1
  285. package/dist/internal/time.js +0 -1
  286. package/dist/internal/urls.d.ts +0 -1
  287. package/dist/internal/urls.js +0 -1
  288. package/dist/internal/vcs.d.ts +0 -1
  289. package/dist/internal/vcs.js +0 -1
  290. package/dist/internal/zip.d.ts +0 -1
  291. package/dist/internal/zip.js +0 -1
  292. package/dist/locator/engine.d.ts +0 -1
  293. package/dist/locator/engine.js +0 -1
  294. package/dist/locator/expression.d.ts +0 -1
  295. package/dist/locator/expression.js +0 -1
  296. package/dist/locator/screen.d.ts +0 -1
  297. package/dist/locator/screen.js +0 -1
  298. package/dist/mcp/catalog.d.ts +4 -1
  299. package/dist/mcp/catalog.js +2 -3
  300. package/dist/mcp/config.d.ts +0 -1
  301. package/dist/mcp/config.js +0 -1
  302. package/dist/mcp/recording.d.ts +0 -1
  303. package/dist/mcp/recording.js +0 -1
  304. package/dist/mcp/server.d.ts +8 -1
  305. package/dist/mcp/server.js +8 -5
  306. package/dist/mcp/session.d.ts +4 -2
  307. package/dist/mcp/session.js +43 -21
  308. package/dist/mcp/sessions.d.ts +2 -1
  309. package/dist/mcp/sessions.js +5 -2
  310. package/dist/mcp/tools.d.ts +7 -6
  311. package/dist/mcp/tools.js +36 -11
  312. package/dist/mcp/usage.d.ts +61 -0
  313. package/dist/mcp/usage.js +73 -0
  314. package/dist/oauth/callback-server.d.ts +0 -1
  315. package/dist/oauth/callback-server.js +0 -1
  316. package/dist/oauth/chatgpt.d.ts +0 -1
  317. package/dist/oauth/chatgpt.js +0 -1
  318. package/dist/oauth/cli.d.ts +0 -1
  319. package/dist/oauth/cli.js +0 -1
  320. package/dist/oauth/copilot.d.ts +0 -1
  321. package/dist/oauth/copilot.js +0 -1
  322. package/dist/oauth/device-code.d.ts +0 -1
  323. package/dist/oauth/device-code.js +0 -1
  324. package/dist/oauth/errors.d.ts +0 -1
  325. package/dist/oauth/errors.js +0 -1
  326. package/dist/oauth/fetch.d.ts +0 -1
  327. package/dist/oauth/fetch.js +0 -1
  328. package/dist/oauth/grok.d.ts +0 -1
  329. package/dist/oauth/grok.js +0 -1
  330. package/dist/oauth/jwt.d.ts +0 -1
  331. package/dist/oauth/jwt.js +0 -1
  332. package/dist/oauth/login.d.ts +0 -1
  333. package/dist/oauth/login.js +0 -1
  334. package/dist/oauth/models.d.ts +0 -1
  335. package/dist/oauth/models.js +0 -1
  336. package/dist/oauth/pkce.d.ts +0 -1
  337. package/dist/oauth/pkce.js +0 -1
  338. package/dist/oauth/providers/github-copilot.d.ts +0 -1
  339. package/dist/oauth/providers/github-copilot.js +10 -3
  340. package/dist/oauth/providers/openai.d.ts +0 -1
  341. package/dist/oauth/providers/openai.js +1 -2
  342. package/dist/oauth/providers/xai.d.ts +0 -1
  343. package/dist/oauth/providers/xai.js +0 -1
  344. package/dist/oauth/providers.d.ts +0 -1
  345. package/dist/oauth/providers.js +0 -1
  346. package/dist/oauth/sse.d.ts +0 -1
  347. package/dist/oauth/sse.js +0 -1
  348. package/dist/oauth/store.d.ts +0 -1
  349. package/dist/oauth/store.js +0 -1
  350. package/dist/oauth/token-endpoint.d.ts +0 -1
  351. package/dist/oauth/token-endpoint.js +0 -1
  352. package/dist/oauth/types.d.ts +0 -1
  353. package/dist/oauth/types.js +0 -1
  354. package/dist/params.d.ts +0 -1
  355. package/dist/params.js +0 -1
  356. package/dist/report/build.d.ts +0 -1
  357. package/dist/report/build.js +0 -1
  358. package/dist/report/builtin.d.ts +0 -1
  359. package/dist/report/builtin.js +0 -1
  360. package/dist/report/code-frame.d.ts +0 -1
  361. package/dist/report/code-frame.js +0 -1
  362. package/dist/report/debug-steps.d.ts +0 -1
  363. package/dist/report/debug-steps.js +0 -1
  364. package/dist/report/explore-text.d.ts +0 -1
  365. package/dist/report/explore-text.js +0 -1
  366. package/dist/report/failure-text.d.ts +0 -1
  367. package/dist/report/failure-text.js +0 -1
  368. package/dist/report/format.d.ts +0 -1
  369. package/dist/report/format.js +0 -1
  370. package/dist/report/json.d.ts +0 -1
  371. package/dist/report/json.js +0 -1
  372. package/dist/report/junit.d.ts +0 -1
  373. package/dist/report/junit.js +0 -1
  374. package/dist/report/list-explore.d.ts +0 -1
  375. package/dist/report/list-explore.js +0 -1
  376. package/dist/report/list-model.d.ts +0 -1
  377. package/dist/report/list-model.js +0 -1
  378. package/dist/report/list-steps.d.ts +0 -1
  379. package/dist/report/list-steps.js +0 -1
  380. package/dist/report/list.d.ts +0 -1
  381. package/dist/report/list.js +0 -1
  382. package/dist/report/live-window.d.ts +0 -1
  383. package/dist/report/live-window.js +0 -1
  384. package/dist/report/markdown-text.d.ts +0 -1
  385. package/dist/report/markdown-text.js +0 -1
  386. package/dist/report/markdown.d.ts +0 -1
  387. package/dist/report/markdown.js +0 -1
  388. package/dist/report/outcome.d.ts +0 -1
  389. package/dist/report/outcome.js +0 -1
  390. package/dist/report/repeats.d.ts +0 -1
  391. package/dist/report/repeats.js +0 -1
  392. package/dist/report/running-tree.d.ts +0 -1
  393. package/dist/report/running-tree.js +0 -1
  394. package/dist/report/write.d.ts +0 -1
  395. package/dist/report/write.js +0 -1
  396. package/dist/run/app-ports.d.ts +0 -1
  397. package/dist/run/app-ports.js +0 -1
  398. package/dist/run/artifacts.d.ts +0 -1
  399. package/dist/run/artifacts.js +0 -1
  400. package/dist/run/budget.d.ts +0 -1
  401. package/dist/run/budget.js +0 -1
  402. package/dist/run/declared-processes.d.ts +0 -1
  403. package/dist/run/declared-processes.js +0 -1
  404. package/dist/run/events.d.ts +0 -1
  405. package/dist/run/events.js +0 -1
  406. package/dist/run/execute.d.ts +0 -1
  407. package/dist/run/execute.js +27 -13
  408. package/dist/run/extended-fixtures.d.ts +0 -1
  409. package/dist/run/extended-fixtures.js +0 -1
  410. package/dist/run/failure-evidence.d.ts +0 -1
  411. package/dist/run/failure-evidence.js +0 -1
  412. package/dist/run/fixture-recording.d.ts +0 -1
  413. package/dist/run/fixture-recording.js +0 -1
  414. package/dist/run/fixtures.d.ts +0 -1
  415. package/dist/run/fixtures.js +0 -1
  416. package/dist/run/in-process.d.ts +0 -1
  417. package/dist/run/in-process.js +0 -1
  418. package/dist/run/last-run.d.ts +0 -1
  419. package/dist/run/last-run.js +0 -1
  420. package/dist/run/managed-process.d.ts +0 -1
  421. package/dist/run/managed-process.js +0 -1
  422. package/dist/run/output.d.ts +0 -1
  423. package/dist/run/output.js +0 -1
  424. package/dist/run/process-pool.d.ts +0 -1
  425. package/dist/run/process-pool.js +0 -1
  426. package/dist/run/provision.d.ts +0 -1
  427. package/dist/run/provision.js +0 -1
  428. package/dist/run/realm.d.ts +2 -1
  429. package/dist/run/realm.js +1 -2
  430. package/dist/run/records.d.ts +0 -1
  431. package/dist/run/records.js +0 -1
  432. package/dist/run/retry.d.ts +0 -1
  433. package/dist/run/retry.js +0 -1
  434. package/dist/run/runner.d.ts +2 -1
  435. package/dist/run/runner.js +1 -2
  436. package/dist/run/scheduler.d.ts +0 -1
  437. package/dist/run/scheduler.js +0 -1
  438. package/dist/run/secrecy.d.ts +15 -1
  439. package/dist/run/secrecy.js +27 -2
  440. package/dist/run/serial.d.ts +0 -1
  441. package/dist/run/serial.js +0 -1
  442. package/dist/run/sessions.d.ts +0 -1
  443. package/dist/run/sessions.js +0 -1
  444. package/dist/run/standalone.d.ts +0 -1
  445. package/dist/run/standalone.js +3 -3
  446. package/dist/run/steps.d.ts +2 -3
  447. package/dist/run/steps.js +4 -2
  448. package/dist/run/trace-redaction.d.ts +0 -1
  449. package/dist/run/trace-redaction.js +0 -1
  450. package/dist/run/unit-runner.d.ts +0 -1
  451. package/dist/run/unit-runner.js +0 -1
  452. package/dist/run/units.d.ts +0 -1
  453. package/dist/run/units.js +0 -1
  454. package/dist/run/worker/entry.d.ts +0 -1
  455. package/dist/run/worker/entry.js +2 -3
  456. package/dist/run/worker/handle.d.ts +0 -1
  457. package/dist/run/worker/handle.js +0 -1
  458. package/dist/run/worker/protocol.d.ts +0 -1
  459. package/dist/run/worker/protocol.js +0 -1
  460. package/dist/run/worker/session.d.ts +0 -1
  461. package/dist/run/worker/session.js +0 -1
  462. package/dist/run/worker-models.d.ts +0 -1
  463. package/dist/run/worker-models.js +0 -1
  464. package/dist/secrets.d.ts +0 -1
  465. package/dist/secrets.js +0 -1
  466. package/dist/telemetry/checkout.d.ts +0 -1
  467. package/dist/telemetry/checkout.js +0 -1
  468. package/dist/telemetry/environment.d.ts +0 -1
  469. package/dist/telemetry/environment.js +0 -1
  470. package/dist/telemetry/events.d.ts +26 -10
  471. package/dist/telemetry/events.js +107 -13
  472. package/dist/telemetry/failure-kind.d.ts +0 -1
  473. package/dist/telemetry/failure-kind.js +0 -1
  474. package/dist/telemetry/posthog.d.ts +0 -1
  475. package/dist/telemetry/posthog.js +0 -1
  476. package/dist/telemetry/project.d.ts +0 -1
  477. package/dist/telemetry/project.js +0 -1
  478. package/dist/telemetry/store.d.ts +0 -1
  479. package/dist/telemetry/store.js +0 -1
  480. package/dist/telemetry/telemetry.d.ts +19 -8
  481. package/dist/telemetry/telemetry.js +26 -9
  482. package/dist/telemetry/token.d.ts +0 -1
  483. package/dist/telemetry/token.js +0 -1
  484. package/dist/types.d.ts +26 -24
  485. package/dist/types.js +0 -1
  486. package/docs/agent-steps.mdx +126 -0
  487. package/docs/agents.mdx +217 -0
  488. package/docs/api-testing.mdx +65 -0
  489. package/docs/authentication.mdx +345 -0
  490. package/docs/browser.mdx +440 -0
  491. package/docs/bug-bash.mdx +90 -0
  492. package/docs/cache.mdx +306 -0
  493. package/docs/ci.mdx +210 -0
  494. package/docs/coding-agents.mdx +183 -0
  495. package/docs/debugging.mdx +291 -0
  496. package/docs/executors.mdx +243 -0
  497. package/docs/explore.mdx +174 -0
  498. package/docs/github.mdx +184 -0
  499. package/docs/index.mdx +82 -0
  500. package/docs/integrations/eas.mdx +216 -0
  501. package/docs/integrations/index.mdx +24 -0
  502. package/docs/integrations/kernel.mdx +163 -0
  503. package/docs/migrate/cypress.mdx +124 -0
  504. package/docs/migrate/detox.mdx +140 -0
  505. package/docs/migrate/maestro.mdx +229 -0
  506. package/docs/migrate/playwright.mdx +430 -0
  507. package/docs/migrate/selenium.mdx +110 -0
  508. package/docs/mobile-ci.mdx +567 -0
  509. package/docs/mobile.mdx +595 -0
  510. package/docs/models.mdx +241 -0
  511. package/docs/quickstart.mdx +260 -0
  512. package/docs/reference/agent.mdx +524 -0
  513. package/docs/reference/app.mdx +72 -0
  514. package/docs/reference/cli.mdx +819 -0
  515. package/docs/reference/config.mdx +986 -0
  516. package/docs/reference/engine.mdx +1363 -0
  517. package/docs/reference/environment.mdx +113 -0
  518. package/docs/reference/errors.mdx +143 -0
  519. package/docs/reference/expect.mdx +546 -0
  520. package/docs/reference/mcp.mdx +205 -0
  521. package/docs/reference/mobile.mdx +522 -0
  522. package/docs/reference/reporters.mdx +216 -0
  523. package/docs/reference/screen.mdx +688 -0
  524. package/docs/reference/test.mdx +449 -0
  525. package/docs/reference/web.mdx +615 -0
  526. package/docs/security.mdx +308 -0
  527. package/docs/starting-your-app.mdx +231 -0
  528. package/docs/subscriptions.mdx +166 -0
  529. package/docs/telemetry.mdx +227 -0
  530. package/docs/tools.mdx +150 -0
  531. package/docs/viewports.mdx +146 -0
  532. package/docs/writing-an-engine.mdx +316 -0
  533. package/docs/writing-tests.mdx +256 -0
  534. package/package.json +5 -3
  535. package/skills/e2e/SKILL.md +4 -1
  536. package/skills/e2e/references/agent.md +3 -1
  537. package/skills/e2e/references/mcp.md +3 -0
  538. package/skills/e2e/references/setup.md +19 -4
  539. package/skills/e2e/references/writing-tests.md +11 -0
  540. package/dist/agent/act-validation.d.ts.map +0 -1
  541. package/dist/agent/act-validation.js.map +0 -1
  542. package/dist/agent/act.d.ts.map +0 -1
  543. package/dist/agent/act.js.map +0 -1
  544. package/dist/agent/action-dispatcher.d.ts.map +0 -1
  545. package/dist/agent/action-dispatcher.js.map +0 -1
  546. package/dist/agent/action-names.d.ts.map +0 -1
  547. package/dist/agent/action-names.js.map +0 -1
  548. package/dist/agent/actions.d.ts.map +0 -1
  549. package/dist/agent/actions.js.map +0 -1
  550. package/dist/agent/agent-brand.d.ts.map +0 -1
  551. package/dist/agent/agent-brand.js.map +0 -1
  552. package/dist/agent/ai-sdk.d.ts.map +0 -1
  553. package/dist/agent/ai-sdk.js.map +0 -1
  554. package/dist/agent/call-options.d.ts.map +0 -1
  555. package/dist/agent/call-options.js.map +0 -1
  556. package/dist/agent/default-agent.d.ts.map +0 -1
  557. package/dist/agent/default-agent.js.map +0 -1
  558. package/dist/agent/derived.d.ts.map +0 -1
  559. package/dist/agent/derived.js.map +0 -1
  560. package/dist/agent/error.d.ts.map +0 -1
  561. package/dist/agent/error.js.map +0 -1
  562. package/dist/agent/executor.d.ts.map +0 -1
  563. package/dist/agent/executor.js.map +0 -1
  564. package/dist/agent/index.d.ts.map +0 -1
  565. package/dist/agent/index.js.map +0 -1
  566. package/dist/agent/interactive-step.d.ts.map +0 -1
  567. package/dist/agent/interactive-step.js.map +0 -1
  568. package/dist/agent/invocation.d.ts.map +0 -1
  569. package/dist/agent/invocation.js.map +0 -1
  570. package/dist/agent/ledger.d.ts.map +0 -1
  571. package/dist/agent/ledger.js.map +0 -1
  572. package/dist/agent/loop-guards.d.ts.map +0 -1
  573. package/dist/agent/loop-guards.js.map +0 -1
  574. package/dist/agent/model/adapter.d.ts.map +0 -1
  575. package/dist/agent/model/adapter.js.map +0 -1
  576. package/dist/agent/model/overflow.d.ts.map +0 -1
  577. package/dist/agent/model/overflow.js.map +0 -1
  578. package/dist/agent/model/provider-hints.d.ts.map +0 -1
  579. package/dist/agent/model/provider-hints.js.map +0 -1
  580. package/dist/agent/model/schema.d.ts.map +0 -1
  581. package/dist/agent/model/schema.js.map +0 -1
  582. package/dist/agent/model/sdk.d.ts.map +0 -1
  583. package/dist/agent/model/sdk.js.map +0 -1
  584. package/dist/agent/model/stall.d.ts.map +0 -1
  585. package/dist/agent/model/stall.js.map +0 -1
  586. package/dist/agent/model/tool-choice.d.ts.map +0 -1
  587. package/dist/agent/model/tool-choice.js.map +0 -1
  588. package/dist/agent/observation-budget.d.ts.map +0 -1
  589. package/dist/agent/observation-budget.js.map +0 -1
  590. package/dist/agent/observation-feed.d.ts.map +0 -1
  591. package/dist/agent/observation-feed.js.map +0 -1
  592. package/dist/agent/observation.d.ts.map +0 -1
  593. package/dist/agent/observation.js.map +0 -1
  594. package/dist/agent/operation-queue.d.ts.map +0 -1
  595. package/dist/agent/operation-queue.js.map +0 -1
  596. package/dist/agent/phases.d.ts.map +0 -1
  597. package/dist/agent/phases.js.map +0 -1
  598. package/dist/agent/pixels.d.ts.map +0 -1
  599. package/dist/agent/pixels.js.map +0 -1
  600. package/dist/agent/point-tap.d.ts.map +0 -1
  601. package/dist/agent/point-tap.js.map +0 -1
  602. package/dist/agent/primitives.d.ts.map +0 -1
  603. package/dist/agent/primitives.js.map +0 -1
  604. package/dist/agent/prompts.d.ts.map +0 -1
  605. package/dist/agent/prompts.js.map +0 -1
  606. package/dist/agent/protocol.d.ts.map +0 -1
  607. package/dist/agent/protocol.js.map +0 -1
  608. package/dist/agent/public.d.ts.map +0 -1
  609. package/dist/agent/public.js.map +0 -1
  610. package/dist/agent/reading.d.ts.map +0 -1
  611. package/dist/agent/reading.js.map +0 -1
  612. package/dist/agent/replay.d.ts.map +0 -1
  613. package/dist/agent/replay.js.map +0 -1
  614. package/dist/agent/screen-update.d.ts.map +0 -1
  615. package/dist/agent/screen-update.js.map +0 -1
  616. package/dist/agent/scroll-target.d.ts.map +0 -1
  617. package/dist/agent/scroll-target.js.map +0 -1
  618. package/dist/agent/secrets.d.ts.map +0 -1
  619. package/dist/agent/secrets.js.map +0 -1
  620. package/dist/agent/settle-policy.d.ts.map +0 -1
  621. package/dist/agent/settle-policy.js.map +0 -1
  622. package/dist/agent/step-accounting.d.ts.map +0 -1
  623. package/dist/agent/step-accounting.js.map +0 -1
  624. package/dist/agent/step-cache.d.ts.map +0 -1
  625. package/dist/agent/step-cache.js.map +0 -1
  626. package/dist/agent/tool-loop.d.ts.map +0 -1
  627. package/dist/agent/tool-loop.js.map +0 -1
  628. package/dist/agent/tool-output.d.ts.map +0 -1
  629. package/dist/agent/tool-output.js.map +0 -1
  630. package/dist/agent/tool.d.ts.map +0 -1
  631. package/dist/agent/tool.js.map +0 -1
  632. package/dist/agent/transcript-compaction.d.ts.map +0 -1
  633. package/dist/agent/transcript-compaction.js.map +0 -1
  634. package/dist/agent/upload-paths.d.ts.map +0 -1
  635. package/dist/agent/upload-paths.js.map +0 -1
  636. package/dist/agent/usage.d.ts.map +0 -1
  637. package/dist/agent/usage.js.map +0 -1
  638. package/dist/cache/anchors.d.ts.map +0 -1
  639. package/dist/cache/anchors.js.map +0 -1
  640. package/dist/cache/context.d.ts.map +0 -1
  641. package/dist/cache/context.js.map +0 -1
  642. package/dist/cache/decide.d.ts.map +0 -1
  643. package/dist/cache/decide.js.map +0 -1
  644. package/dist/cache/identity.d.ts.map +0 -1
  645. package/dist/cache/identity.js.map +0 -1
  646. package/dist/cache/recorder.d.ts.map +0 -1
  647. package/dist/cache/recorder.js.map +0 -1
  648. package/dist/cache/relocate.d.ts.map +0 -1
  649. package/dist/cache/relocate.js.map +0 -1
  650. package/dist/cache/route.d.ts.map +0 -1
  651. package/dist/cache/route.js.map +0 -1
  652. package/dist/cache/store.d.ts.map +0 -1
  653. package/dist/cache/store.js.map +0 -1
  654. package/dist/cache/template.d.ts.map +0 -1
  655. package/dist/cache/template.js.map +0 -1
  656. package/dist/cache/trace.d.ts.map +0 -1
  657. package/dist/cache/trace.js.map +0 -1
  658. package/dist/cli/bin.d.ts.map +0 -1
  659. package/dist/cli/bin.js.map +0 -1
  660. package/dist/cli/cache.d.ts.map +0 -1
  661. package/dist/cli/cache.js.map +0 -1
  662. package/dist/cli/docs-url.d.ts.map +0 -1
  663. package/dist/cli/docs-url.js.map +0 -1
  664. package/dist/cli/feedback.d.ts.map +0 -1
  665. package/dist/cli/feedback.js.map +0 -1
  666. package/dist/cli/guide.d.ts.map +0 -1
  667. package/dist/cli/guide.js.map +0 -1
  668. package/dist/cli/index.d.ts.map +0 -1
  669. package/dist/cli/index.js.map +0 -1
  670. package/dist/cli/init/agent-skill.d.ts.map +0 -1
  671. package/dist/cli/init/agent-skill.js.map +0 -1
  672. package/dist/cli/init/engines.d.ts.map +0 -1
  673. package/dist/cli/init/engines.js.map +0 -1
  674. package/dist/cli/init/gateways.d.ts.map +0 -1
  675. package/dist/cli/init/gateways.js.map +0 -1
  676. package/dist/cli/init/mcp-config.d.ts.map +0 -1
  677. package/dist/cli/init/mcp-config.js.map +0 -1
  678. package/dist/cli/init/package.d.ts.map +0 -1
  679. package/dist/cli/init/package.js.map +0 -1
  680. package/dist/cli/init/scaffold.d.ts.map +0 -1
  681. package/dist/cli/init/scaffold.js.map +0 -1
  682. package/dist/cli/init/versions.d.ts.map +0 -1
  683. package/dist/cli/init/versions.js.map +0 -1
  684. package/dist/cli/init.d.ts.map +0 -1
  685. package/dist/cli/init.js.map +0 -1
  686. package/dist/cli/mcp.d.ts.map +0 -1
  687. package/dist/cli/mcp.js.map +0 -1
  688. package/dist/cli/signals.d.ts.map +0 -1
  689. package/dist/cli/signals.js.map +0 -1
  690. package/dist/cli/skill.d.ts.map +0 -1
  691. package/dist/cli/skill.js.map +0 -1
  692. package/dist/cli/telemetry.d.ts.map +0 -1
  693. package/dist/cli/telemetry.js.map +0 -1
  694. package/dist/cli/wordmark.d.ts.map +0 -1
  695. package/dist/cli/wordmark.js.map +0 -1
  696. package/dist/collect/collect.d.ts.map +0 -1
  697. package/dist/collect/collect.js.map +0 -1
  698. package/dist/collect/registry.d.ts.map +0 -1
  699. package/dist/collect/registry.js.map +0 -1
  700. package/dist/collect/select.d.ts.map +0 -1
  701. package/dist/collect/select.js.map +0 -1
  702. package/dist/config/agent.d.ts.map +0 -1
  703. package/dist/config/agent.js.map +0 -1
  704. package/dist/config/app.d.ts.map +0 -1
  705. package/dist/config/app.js.map +0 -1
  706. package/dist/config/command.d.ts.map +0 -1
  707. package/dist/config/command.js.map +0 -1
  708. package/dist/config/diagnose.d.ts.map +0 -1
  709. package/dist/config/diagnose.js.map +0 -1
  710. package/dist/config/esm-hooks.d.ts.map +0 -1
  711. package/dist/config/esm-hooks.js.map +0 -1
  712. package/dist/config/load.d.ts.map +0 -1
  713. package/dist/config/load.js.map +0 -1
  714. package/dist/config/resolve.d.ts.map +0 -1
  715. package/dist/config/resolve.js.map +0 -1
  716. package/dist/config/secrets.d.ts.map +0 -1
  717. package/dist/config/secrets.js.map +0 -1
  718. package/dist/config/targets.d.ts.map +0 -1
  719. package/dist/config/targets.js.map +0 -1
  720. package/dist/config/validate.d.ts.map +0 -1
  721. package/dist/config/validate.js.map +0 -1
  722. package/dist/engine/contract.d.ts.map +0 -1
  723. package/dist/engine/contract.js.map +0 -1
  724. package/dist/engine/index.d.ts.map +0 -1
  725. package/dist/engine/index.js.map +0 -1
  726. package/dist/engine/manifest.d.ts.map +0 -1
  727. package/dist/engine/manifest.js.map +0 -1
  728. package/dist/engine/recording.d.ts.map +0 -1
  729. package/dist/engine/recording.js.map +0 -1
  730. package/dist/engine/resolve.d.ts.map +0 -1
  731. package/dist/engine/resolve.js.map +0 -1
  732. package/dist/engine/session.d.ts.map +0 -1
  733. package/dist/engine/session.js.map +0 -1
  734. package/dist/engine/surface.d.ts.map +0 -1
  735. package/dist/engine/surface.js.map +0 -1
  736. package/dist/engine/timing.d.ts.map +0 -1
  737. package/dist/engine/timing.js.map +0 -1
  738. package/dist/expect/async.d.ts.map +0 -1
  739. package/dist/expect/async.js.map +0 -1
  740. package/dist/expect/attempt.d.ts.map +0 -1
  741. package/dist/expect/attempt.js.map +0 -1
  742. package/dist/expect/index.d.ts.map +0 -1
  743. package/dist/expect/index.js.map +0 -1
  744. package/dist/expect/poll.d.ts.map +0 -1
  745. package/dist/expect/poll.js.map +0 -1
  746. package/dist/expect/soft.d.ts.map +0 -1
  747. package/dist/expect/soft.js.map +0 -1
  748. package/dist/expect/values.d.ts.map +0 -1
  749. package/dist/expect/values.js.map +0 -1
  750. package/dist/explore/body.d.ts.map +0 -1
  751. package/dist/explore/body.js.map +0 -1
  752. package/dist/explore/executor.d.ts.map +0 -1
  753. package/dist/explore/executor.js.map +0 -1
  754. package/dist/explore/index.d.ts.map +0 -1
  755. package/dist/explore/index.js.map +0 -1
  756. package/dist/explore/plan.d.ts.map +0 -1
  757. package/dist/explore/plan.js.map +0 -1
  758. package/dist/explore/progress.d.ts.map +0 -1
  759. package/dist/explore/progress.js.map +0 -1
  760. package/dist/explore/state.d.ts.map +0 -1
  761. package/dist/explore/state.js.map +0 -1
  762. package/dist/index.d.ts.map +0 -1
  763. package/dist/index.js.map +0 -1
  764. package/dist/internal/ai-trace.d.ts.map +0 -1
  765. package/dist/internal/ai-trace.js.map +0 -1
  766. package/dist/internal/atomic-write.d.ts.map +0 -1
  767. package/dist/internal/atomic-write.js.map +0 -1
  768. package/dist/internal/brands.d.ts.map +0 -1
  769. package/dist/internal/brands.js.map +0 -1
  770. package/dist/internal/debug.d.ts.map +0 -1
  771. package/dist/internal/debug.js.map +0 -1
  772. package/dist/internal/env.d.ts.map +0 -1
  773. package/dist/internal/env.js.map +0 -1
  774. package/dist/internal/errors.d.ts.map +0 -1
  775. package/dist/internal/errors.js.map +0 -1
  776. package/dist/internal/geometry.d.ts.map +0 -1
  777. package/dist/internal/geometry.js.map +0 -1
  778. package/dist/internal/git.d.ts.map +0 -1
  779. package/dist/internal/git.js.map +0 -1
  780. package/dist/internal/globs.d.ts.map +0 -1
  781. package/dist/internal/globs.js.map +0 -1
  782. package/dist/internal/ids.d.ts.map +0 -1
  783. package/dist/internal/ids.js.map +0 -1
  784. package/dist/internal/json-value.d.ts.map +0 -1
  785. package/dist/internal/json-value.js.map +0 -1
  786. package/dist/internal/keys.d.ts.map +0 -1
  787. package/dist/internal/keys.js.map +0 -1
  788. package/dist/internal/node-version.d.ts.map +0 -1
  789. package/dist/internal/node-version.js.map +0 -1
  790. package/dist/internal/objects.d.ts.map +0 -1
  791. package/dist/internal/objects.js.map +0 -1
  792. package/dist/internal/options.d.ts.map +0 -1
  793. package/dist/internal/options.js.map +0 -1
  794. package/dist/internal/package-manager.d.ts.map +0 -1
  795. package/dist/internal/package-manager.js.map +0 -1
  796. package/dist/internal/package-version.d.ts.map +0 -1
  797. package/dist/internal/package-version.js.map +0 -1
  798. package/dist/internal/paths.d.ts.map +0 -1
  799. package/dist/internal/paths.js.map +0 -1
  800. package/dist/internal/realm-slot.d.ts.map +0 -1
  801. package/dist/internal/realm-slot.js.map +0 -1
  802. package/dist/internal/recording-modes.d.ts.map +0 -1
  803. package/dist/internal/recording-modes.js.map +0 -1
  804. package/dist/internal/redact.d.ts.map +0 -1
  805. package/dist/internal/redact.js.map +0 -1
  806. package/dist/internal/regexp.d.ts.map +0 -1
  807. package/dist/internal/regexp.js.map +0 -1
  808. package/dist/internal/roles.d.ts.map +0 -1
  809. package/dist/internal/roles.js.map +0 -1
  810. package/dist/internal/skip.d.ts.map +0 -1
  811. package/dist/internal/skip.js.map +0 -1
  812. package/dist/internal/source.d.ts.map +0 -1
  813. package/dist/internal/source.js.map +0 -1
  814. package/dist/internal/standard-schema.d.ts.map +0 -1
  815. package/dist/internal/standard-schema.js.map +0 -1
  816. package/dist/internal/suggest.d.ts.map +0 -1
  817. package/dist/internal/suggest.js.map +0 -1
  818. package/dist/internal/text.d.ts.map +0 -1
  819. package/dist/internal/text.js.map +0 -1
  820. package/dist/internal/time.d.ts.map +0 -1
  821. package/dist/internal/time.js.map +0 -1
  822. package/dist/internal/urls.d.ts.map +0 -1
  823. package/dist/internal/urls.js.map +0 -1
  824. package/dist/internal/vcs.d.ts.map +0 -1
  825. package/dist/internal/vcs.js.map +0 -1
  826. package/dist/internal/zip.d.ts.map +0 -1
  827. package/dist/internal/zip.js.map +0 -1
  828. package/dist/locator/engine.d.ts.map +0 -1
  829. package/dist/locator/engine.js.map +0 -1
  830. package/dist/locator/expression.d.ts.map +0 -1
  831. package/dist/locator/expression.js.map +0 -1
  832. package/dist/locator/screen.d.ts.map +0 -1
  833. package/dist/locator/screen.js.map +0 -1
  834. package/dist/mcp/catalog.d.ts.map +0 -1
  835. package/dist/mcp/catalog.js.map +0 -1
  836. package/dist/mcp/config.d.ts.map +0 -1
  837. package/dist/mcp/config.js.map +0 -1
  838. package/dist/mcp/recording.d.ts.map +0 -1
  839. package/dist/mcp/recording.js.map +0 -1
  840. package/dist/mcp/server.d.ts.map +0 -1
  841. package/dist/mcp/server.js.map +0 -1
  842. package/dist/mcp/session.d.ts.map +0 -1
  843. package/dist/mcp/session.js.map +0 -1
  844. package/dist/mcp/sessions.d.ts.map +0 -1
  845. package/dist/mcp/sessions.js.map +0 -1
  846. package/dist/mcp/tools.d.ts.map +0 -1
  847. package/dist/mcp/tools.js.map +0 -1
  848. package/dist/oauth/callback-server.d.ts.map +0 -1
  849. package/dist/oauth/callback-server.js.map +0 -1
  850. package/dist/oauth/chatgpt.d.ts.map +0 -1
  851. package/dist/oauth/chatgpt.js.map +0 -1
  852. package/dist/oauth/cli.d.ts.map +0 -1
  853. package/dist/oauth/cli.js.map +0 -1
  854. package/dist/oauth/copilot.d.ts.map +0 -1
  855. package/dist/oauth/copilot.js.map +0 -1
  856. package/dist/oauth/device-code.d.ts.map +0 -1
  857. package/dist/oauth/device-code.js.map +0 -1
  858. package/dist/oauth/errors.d.ts.map +0 -1
  859. package/dist/oauth/errors.js.map +0 -1
  860. package/dist/oauth/fetch.d.ts.map +0 -1
  861. package/dist/oauth/fetch.js.map +0 -1
  862. package/dist/oauth/grok.d.ts.map +0 -1
  863. package/dist/oauth/grok.js.map +0 -1
  864. package/dist/oauth/jwt.d.ts.map +0 -1
  865. package/dist/oauth/jwt.js.map +0 -1
  866. package/dist/oauth/login.d.ts.map +0 -1
  867. package/dist/oauth/login.js.map +0 -1
  868. package/dist/oauth/models.d.ts.map +0 -1
  869. package/dist/oauth/models.js.map +0 -1
  870. package/dist/oauth/pkce.d.ts.map +0 -1
  871. package/dist/oauth/pkce.js.map +0 -1
  872. package/dist/oauth/providers/github-copilot.d.ts.map +0 -1
  873. package/dist/oauth/providers/github-copilot.js.map +0 -1
  874. package/dist/oauth/providers/openai.d.ts.map +0 -1
  875. package/dist/oauth/providers/openai.js.map +0 -1
  876. package/dist/oauth/providers/xai.d.ts.map +0 -1
  877. package/dist/oauth/providers/xai.js.map +0 -1
  878. package/dist/oauth/providers.d.ts.map +0 -1
  879. package/dist/oauth/providers.js.map +0 -1
  880. package/dist/oauth/sse.d.ts.map +0 -1
  881. package/dist/oauth/sse.js.map +0 -1
  882. package/dist/oauth/store.d.ts.map +0 -1
  883. package/dist/oauth/store.js.map +0 -1
  884. package/dist/oauth/token-endpoint.d.ts.map +0 -1
  885. package/dist/oauth/token-endpoint.js.map +0 -1
  886. package/dist/oauth/types.d.ts.map +0 -1
  887. package/dist/oauth/types.js.map +0 -1
  888. package/dist/params.d.ts.map +0 -1
  889. package/dist/params.js.map +0 -1
  890. package/dist/report/build.d.ts.map +0 -1
  891. package/dist/report/build.js.map +0 -1
  892. package/dist/report/builtin.d.ts.map +0 -1
  893. package/dist/report/builtin.js.map +0 -1
  894. package/dist/report/code-frame.d.ts.map +0 -1
  895. package/dist/report/code-frame.js.map +0 -1
  896. package/dist/report/debug-steps.d.ts.map +0 -1
  897. package/dist/report/debug-steps.js.map +0 -1
  898. package/dist/report/explore-text.d.ts.map +0 -1
  899. package/dist/report/explore-text.js.map +0 -1
  900. package/dist/report/failure-text.d.ts.map +0 -1
  901. package/dist/report/failure-text.js.map +0 -1
  902. package/dist/report/format.d.ts.map +0 -1
  903. package/dist/report/format.js.map +0 -1
  904. package/dist/report/json.d.ts.map +0 -1
  905. package/dist/report/json.js.map +0 -1
  906. package/dist/report/junit.d.ts.map +0 -1
  907. package/dist/report/junit.js.map +0 -1
  908. package/dist/report/list-explore.d.ts.map +0 -1
  909. package/dist/report/list-explore.js.map +0 -1
  910. package/dist/report/list-model.d.ts.map +0 -1
  911. package/dist/report/list-model.js.map +0 -1
  912. package/dist/report/list-steps.d.ts.map +0 -1
  913. package/dist/report/list-steps.js.map +0 -1
  914. package/dist/report/list.d.ts.map +0 -1
  915. package/dist/report/list.js.map +0 -1
  916. package/dist/report/live-window.d.ts.map +0 -1
  917. package/dist/report/live-window.js.map +0 -1
  918. package/dist/report/markdown-text.d.ts.map +0 -1
  919. package/dist/report/markdown-text.js.map +0 -1
  920. package/dist/report/markdown.d.ts.map +0 -1
  921. package/dist/report/markdown.js.map +0 -1
  922. package/dist/report/outcome.d.ts.map +0 -1
  923. package/dist/report/outcome.js.map +0 -1
  924. package/dist/report/repeats.d.ts.map +0 -1
  925. package/dist/report/repeats.js.map +0 -1
  926. package/dist/report/running-tree.d.ts.map +0 -1
  927. package/dist/report/running-tree.js.map +0 -1
  928. package/dist/report/write.d.ts.map +0 -1
  929. package/dist/report/write.js.map +0 -1
  930. package/dist/run/app-ports.d.ts.map +0 -1
  931. package/dist/run/app-ports.js.map +0 -1
  932. package/dist/run/artifacts.d.ts.map +0 -1
  933. package/dist/run/artifacts.js.map +0 -1
  934. package/dist/run/budget.d.ts.map +0 -1
  935. package/dist/run/budget.js.map +0 -1
  936. package/dist/run/declared-processes.d.ts.map +0 -1
  937. package/dist/run/declared-processes.js.map +0 -1
  938. package/dist/run/events.d.ts.map +0 -1
  939. package/dist/run/events.js.map +0 -1
  940. package/dist/run/execute.d.ts.map +0 -1
  941. package/dist/run/execute.js.map +0 -1
  942. package/dist/run/extended-fixtures.d.ts.map +0 -1
  943. package/dist/run/extended-fixtures.js.map +0 -1
  944. package/dist/run/failure-evidence.d.ts.map +0 -1
  945. package/dist/run/failure-evidence.js.map +0 -1
  946. package/dist/run/fixture-recording.d.ts.map +0 -1
  947. package/dist/run/fixture-recording.js.map +0 -1
  948. package/dist/run/fixtures.d.ts.map +0 -1
  949. package/dist/run/fixtures.js.map +0 -1
  950. package/dist/run/in-process.d.ts.map +0 -1
  951. package/dist/run/in-process.js.map +0 -1
  952. package/dist/run/last-run.d.ts.map +0 -1
  953. package/dist/run/last-run.js.map +0 -1
  954. package/dist/run/managed-process.d.ts.map +0 -1
  955. package/dist/run/managed-process.js.map +0 -1
  956. package/dist/run/output.d.ts.map +0 -1
  957. package/dist/run/output.js.map +0 -1
  958. package/dist/run/process-pool.d.ts.map +0 -1
  959. package/dist/run/process-pool.js.map +0 -1
  960. package/dist/run/provision.d.ts.map +0 -1
  961. package/dist/run/provision.js.map +0 -1
  962. package/dist/run/realm.d.ts.map +0 -1
  963. package/dist/run/realm.js.map +0 -1
  964. package/dist/run/records.d.ts.map +0 -1
  965. package/dist/run/records.js.map +0 -1
  966. package/dist/run/retry.d.ts.map +0 -1
  967. package/dist/run/retry.js.map +0 -1
  968. package/dist/run/runner.d.ts.map +0 -1
  969. package/dist/run/runner.js.map +0 -1
  970. package/dist/run/scheduler.d.ts.map +0 -1
  971. package/dist/run/scheduler.js.map +0 -1
  972. package/dist/run/secrecy.d.ts.map +0 -1
  973. package/dist/run/secrecy.js.map +0 -1
  974. package/dist/run/serial.d.ts.map +0 -1
  975. package/dist/run/serial.js.map +0 -1
  976. package/dist/run/sessions.d.ts.map +0 -1
  977. package/dist/run/sessions.js.map +0 -1
  978. package/dist/run/standalone.d.ts.map +0 -1
  979. package/dist/run/standalone.js.map +0 -1
  980. package/dist/run/steps.d.ts.map +0 -1
  981. package/dist/run/steps.js.map +0 -1
  982. package/dist/run/trace-redaction.d.ts.map +0 -1
  983. package/dist/run/trace-redaction.js.map +0 -1
  984. package/dist/run/unit-runner.d.ts.map +0 -1
  985. package/dist/run/unit-runner.js.map +0 -1
  986. package/dist/run/units.d.ts.map +0 -1
  987. package/dist/run/units.js.map +0 -1
  988. package/dist/run/worker/entry.d.ts.map +0 -1
  989. package/dist/run/worker/entry.js.map +0 -1
  990. package/dist/run/worker/handle.d.ts.map +0 -1
  991. package/dist/run/worker/handle.js.map +0 -1
  992. package/dist/run/worker/protocol.d.ts.map +0 -1
  993. package/dist/run/worker/protocol.js.map +0 -1
  994. package/dist/run/worker/session.d.ts.map +0 -1
  995. package/dist/run/worker/session.js.map +0 -1
  996. package/dist/run/worker-models.d.ts.map +0 -1
  997. package/dist/run/worker-models.js.map +0 -1
  998. package/dist/secrets.d.ts.map +0 -1
  999. package/dist/secrets.js.map +0 -1
  1000. package/dist/telemetry/checkout.d.ts.map +0 -1
  1001. package/dist/telemetry/checkout.js.map +0 -1
  1002. package/dist/telemetry/environment.d.ts.map +0 -1
  1003. package/dist/telemetry/environment.js.map +0 -1
  1004. package/dist/telemetry/events.d.ts.map +0 -1
  1005. package/dist/telemetry/events.js.map +0 -1
  1006. package/dist/telemetry/failure-kind.d.ts.map +0 -1
  1007. package/dist/telemetry/failure-kind.js.map +0 -1
  1008. package/dist/telemetry/posthog.d.ts.map +0 -1
  1009. package/dist/telemetry/posthog.js.map +0 -1
  1010. package/dist/telemetry/project.d.ts.map +0 -1
  1011. package/dist/telemetry/project.js.map +0 -1
  1012. package/dist/telemetry/store.d.ts.map +0 -1
  1013. package/dist/telemetry/store.js.map +0 -1
  1014. package/dist/telemetry/telemetry.d.ts.map +0 -1
  1015. package/dist/telemetry/telemetry.js.map +0 -1
  1016. package/dist/telemetry/token.d.ts.map +0 -1
  1017. package/dist/telemetry/token.js.map +0 -1
  1018. package/dist/types.d.ts.map +0 -1
  1019. package/dist/types.js.map +0 -1
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <a href="https://tester.army/e2e?utm_source=e2e&utm_medium=github&utm_campaign=readme_banner"><img src="https://raw.githubusercontent.com/tester-army/e2e/main/.github/assets/readme-banner.png" alt="e2e by TesterArmy" width="100%" /></a>
1
+ <a href="https://tester.army/e2e?utm_source=e2e&utm_medium=github&utm_campaign=readme_banner"><img src="https://raw.githubusercontent.com/tester-army/e2e/main/.github/assets/readme-banner.png" alt="e2e, the open source AI testing framework by TesterArmy" width="100%" /></a>
2
2
 
3
3
  <p align="center">
4
4
  <a href="https://tester.army?utm_source=e2e&utm_medium=github&utm_campaign=readme_badge"><img alt="Made by TesterArmy" src="https://raw.githubusercontent.com/tester-army/e2e/main/.github/assets/made-by-testerarmy.svg" /></a>
@@ -9,8 +9,7 @@
9
9
 
10
10
  # e2e
11
11
 
12
- [e2e](https://tester.army/e2e?utm_source=e2e&utm_medium=github&utm_campaign=readme_intro) is an end-to-end testing framework for web and mobile apps. Describe a goal in natural language and an agent interacts with the app to complete it. Use locators and assertions in the same test to check exact results. Customize anything from agent to the engine.
13
-
12
+ [e2e](https://tester.army/e2e?utm_source=e2e&utm_medium=github&utm_campaign=readme_intro) is an end-to-end testing framework for web and mobile apps. Describe a goal in natural language and an agent drives the app to reach it. Check the result with locators and assertions in the same test.
14
13
 
15
14
  ```ts
16
15
  // tests/checkout.e2e.ts
@@ -26,37 +25,65 @@ test('a member upgrades to Pro', async ({ app, agent, screen }) => {
26
25
  });
27
26
  ```
28
27
 
29
- ```bash
30
- npx e2e init
31
- ```
32
-
33
28
  An agent step that a later assertion verifies records its actions, and the
34
29
  next run replays them with no model calls until the app changes. Tests
35
30
  without agent steps need no model. Bring your own subscription, API key, or
36
31
  local model.
37
32
 
38
- ## Documentation
33
+ ## Quick start
39
34
 
40
- [e2e.tester.army/docs](https://e2e.tester.army/docs): quickstart, writing
41
- tests, mobile, migrating from Playwright, Cypress, Selenium, Detox, or
42
- Maestro, and the full reference.
35
+ ```bash
36
+ npx e2e init
37
+ ```
38
+
39
+ `init` asks for an engine, web or mobile, and a model provider, then writes a
40
+ config and an example test. The
41
+ [quickstart](https://e2e.tester.army/docs/quickstart) covers the rest.
43
42
 
44
43
  ## Packages
45
44
 
46
- - [`e2e`](https://www.npmjs.com/package/e2e): SDK, runner, and CLI.
47
- - [`@e2e-dev/web`](https://www.npmjs.com/package/@e2e-dev/web): the browser engine.
48
- - [`@e2e-dev/mobile`](https://www.npmjs.com/package/@e2e-dev/mobile): the iOS and Android engine.
49
- - [`@e2e-dev/github`](https://www.npmjs.com/package/@e2e-dev/github): the pull request comment reporter.
50
- - [`@e2e-dev/kernel`](https://www.npmjs.com/package/@e2e-dev/kernel): Kernel hosted browsers for the web
51
- engine.
52
- - [`@e2e-dev/eas`](https://www.npmjs.com/package/@e2e-dev/eas): EAS Simulators hosted iOS simulators and
53
- Android emulators for the mobile engine.
45
+ | Package | What it does |
46
+ | --- | --- |
47
+ | [`e2e`](https://www.npmjs.com/package/e2e) | The SDK, runner, and CLI. |
48
+ | [`@e2e-dev/web`](https://www.npmjs.com/package/@e2e-dev/web) | Browser engine: Chromium, Firefox, and WebKit through Playwright. |
49
+ | [`@e2e-dev/mobile`](https://www.npmjs.com/package/@e2e-dev/mobile) | iOS and Android engine: simulators and emulators through agent-device. |
50
+ | [`@e2e-dev/github`](https://www.npmjs.com/package/@e2e-dev/github) | Reporter that posts results as a pull request comment. |
51
+ | [`@e2e-dev/kernel`](https://www.npmjs.com/package/@e2e-dev/kernel) | Kernel hosted browsers for the web engine. |
52
+ | [`@e2e-dev/eas`](https://www.npmjs.com/package/@e2e-dev/eas) | EAS Simulators hosted iOS simulators and Android emulators for the mobile engine. |
53
+
54
+ ## Documentation
55
+
56
+ [e2e.tester.army/docs](https://e2e.tester.army/docs). The `e2e` package ships
57
+ every page, so coding agents can read them offline in `node_modules/e2e/docs`.
54
58
 
55
59
  ## Contributing
56
60
 
57
- See [CONTRIBUTING.md](https://github.com/tester-army/e2e/blob/main/CONTRIBUTING.md) and [SECURITY.md](https://github.com/tester-army/e2e/blob/main/SECURITY.md).
58
- Apache-2.0.
61
+ See [CONTRIBUTING.md](https://github.com/tester-army/e2e/blob/main/CONTRIBUTING.md). Questions go to
62
+ [Discord](https://tester.army/discord).
63
+
64
+ ## Security
65
+
66
+ Please don't open public issues for security vulnerabilities. Follow
67
+ [SECURITY.md](https://github.com/tester-army/e2e/blob/main/SECURITY.md) and report them to
68
+ [security@tester.army](mailto:security@tester.army).
69
+
70
+ ## Telemetry
71
+
72
+ The CLI sends anonymous usage data, such as which commands and engines run and
73
+ where runs fail, but no test content, app content, or credentials. Opt out with
74
+ `npx e2e telemetry disable` or `E2E_TELEMETRY_DISABLED=1`.
75
+ [Telemetry](https://e2e.tester.army/docs/telemetry) lists every field.
59
76
 
60
- Built by [TesterArmy](https://tester.army/?utm_source=e2e&utm_medium=github&utm_campaign=readme_footer),
61
- the agentic testing platform that runs plain-English tests on web and mobile
62
- apps and reports back with screenshots and recordings.
77
+ ## Status
78
+
79
+ > [!NOTE]
80
+ > e2e is in active development on the way to 1.0. APIs and config can still
81
+ > change between minor releases.
82
+
83
+ ## Made by TesterArmy
84
+
85
+ e2e is built by [TesterArmy](https://tester.army/?utm_source=e2e&utm_medium=github&utm_campaign=readme_footer),
86
+ the agentic testing platform that runs natural language tests on web and mobile
87
+ apps, on every pull request or on a schedule.
88
+
89
+ Apache-2.0.
package/dist/.build.json CHANGED
@@ -1 +1 @@
1
- {"version":"0.15.1"}
1
+ {"version":"0.16.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
@@ -20,8 +20,8 @@ import { writeFile } from 'node:fs/promises';
20
20
  import { join } from 'node:path';
21
21
  import { ConfigurationError } from '../internal/errors.js';
22
22
  import { withAbort, withTimeout } from '../internal/time.js';
23
- import { AgentError, CATEGORY_BY_CODE, isAgentError, toAgentError } from './error.js';
24
- import { validateActOptions, validateInstruction, validateParams, validateVerdict } from './act-validation.js';
23
+ import { AgentError, CATEGORY_BY_CODE, toAgentError } from './error.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';
@@ -31,7 +31,7 @@ import { ObservationFeed } from './observation-feed.js';
31
31
  import { recordPolicyEvent } from './phases.js';
32
32
  import { OperationQueue } from './operation-queue.js';
33
33
  import { StepAccounting } from './step-accounting.js';
34
- import { StepTraceSession } from './step-cache.js';
34
+ import { failedStepOutcome, StepTraceSession } from './step-cache.js';
35
35
  /** Runs one `agent.act()` call as a harness-dispatched executor step. */
36
36
  export async function runActStep(runtime, instruction, options, extraArguments = 0) {
37
37
  const normalized = validateInstruction(instruction, 'agent.act');
@@ -88,12 +88,16 @@ export async function runAssertStep(runtime, assertion, options) {
88
88
  * passing is what confirms the traces staged before it at attempt end
89
89
  * (cache/context.ts).
90
90
  */
91
- export async function dispatchAgentStep(runtime, spec,
91
+ export async function dispatchAgentStep(runtime, raw,
92
92
  // Resolved before the step opens, so an unknown name fails the call, not a
93
93
  // recorded step, and the step carries the agent it ran with.
94
- agent = runtime.select(spec.agent)) {
94
+ agent = runtime.select(raw.agent)) {
95
+ const spec = redactSpec(raw, runtime.redact);
96
+ // Redacted per step, not once per agent: the ledger is live, so a value
97
+ // resolved since the agent was selected is covered too.
98
+ const context = agent.agentContext === undefined ? undefined : runtime.redact(agent.agentContext);
95
99
  return runtime.steps.run('agent', spec.api, spec.instruction, async () => {
96
- const dispatch = new ActDispatch(runtime, spec, agent);
100
+ const dispatch = new ActDispatch(runtime, spec, { ...agent, agentContext: context });
97
101
  try {
98
102
  let verdict;
99
103
  try {
@@ -108,7 +112,7 @@ agent = runtime.select(spec.agent)) {
108
112
  return dispatch.result();
109
113
  }
110
114
  catch (cause) {
111
- await dispatch.conclude(isAgentError(cause) && cause.code === 'CANCELLED' ? 'cancelled' : 'failed');
115
+ await dispatch.conclude(failedStepOutcome(cause));
112
116
  throw cause;
113
117
  }
114
118
  finally {
@@ -116,6 +120,20 @@ agent = runtime.select(spec.agent)) {
116
120
  }
117
121
  }, { verifies: spec.kind === 'assert', agent: agent.name });
118
122
  }
123
+ /**
124
+ * The spec with every registered secret value the test spelled into the
125
+ * instruction or a param string (a key or a leaf) rewritten to its marker,
126
+ * before anything reads it: the executor, its model, the step label, the
127
+ * trace cache, and the prior-step ledger all see the same redacted step. A
128
+ * `Secret` handle is already a placeholder here and stays fillable through
129
+ * `typeSecret`.
130
+ */
131
+ function redactSpec(spec, redact) {
132
+ const instruction = redact(spec.instruction);
133
+ if (spec.params === undefined)
134
+ return { ...spec, instruction };
135
+ return { ...spec, instruction, ...redactParams(spec.params, spec.templates, redact) };
136
+ }
119
137
  /** One step's wiring: the collaborators, the executor's context, and the verdict mapping. */
120
138
  class ActDispatch {
121
139
  runtime;
@@ -465,4 +483,3 @@ function screenOf(observation) {
465
483
  ? { ...metadata, kind: 'semantic', nodes: observation.nodes }
466
484
  : { ...metadata, kind: 'pixels' };
467
485
  }
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
@@ -598,4 +598,3 @@ function isInViewport(rect, viewport) {
598
598
  return true;
599
599
  return rect.x < viewport.width && rect.y < viewport.height && rect.x + rect.width > 0 && rect.y + rect.height > 0;
600
600
  }
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
@@ -134,4 +134,3 @@ export declare function describeAction(action: RecordableAction, redact: (text:
134
134
  * node is named, not what it contains.
135
135
  */
136
136
  export declare function describeTarget(node: SemanticNode, redact: (text: string) => string): TraceTargetDescriptor | undefined;
137
- //# sourceMappingURL=actions.d.ts.map
@@ -193,4 +193,3 @@ function describeWhere(target) {
193
193
  function quote(value) {
194
194
  return JSON.stringify(bound(value, 40));
195
195
  }
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
@@ -10,16 +10,29 @@ import type { AgentErrorCode } from '../types.ts';
10
10
  export type BlockedCategory = 'credentials' | 'environment' | 'seed_data' | 'test_setup' | 'automation';
11
11
  /**
12
12
  * The single source of truth for the closed agent code set: exit/result class
13
- * for every code, plus the blocked category for codes a `blocked` verdict may
14
- * carry. The model never selects a code, a category, or a blocked category —
15
- * everything derives from this table.
13
+ * for every code, the blocked category for codes a `blocked` verdict may
14
+ * carry, and whether the code means no model answered at all. The model never
15
+ * selects a code, a category, or a blocked category — everything derives from
16
+ * this table.
16
17
  */
17
18
  export declare const AGENT_CODE_TABLE: Readonly<Record<AgentErrorCode, {
18
19
  category: ErrorCategory;
19
20
  blockedCategory?: BlockedCategory;
21
+ modelUnreachable?: true;
20
22
  }>>;
21
23
  /** Exit/result class per code; derived from the one table. */
22
24
  export declare const CATEGORY_BY_CODE: Readonly<Record<AgentErrorCode, ErrorCategory>>;
25
+ /**
26
+ * True when a failure means no model answered: none was configured, the
27
+ * provider returned an error (a rejected or missing key, a rate limit, a
28
+ * 5xx), or the stall guard cut off a request that got no response. Such a
29
+ * failure is a verdict on the model's reachability, never on the app, so it
30
+ * implicates no recorded flow. A model that answered with something unusable
31
+ * (`MODEL_OUTPUT_INVALID`, `CONTEXT_OVERFLOW`) or a step that ran out of time
32
+ * (`STEP_TIMEOUT`, even while a request was open) is not this: the screen the
33
+ * model was shown may be what went wrong.
34
+ */
35
+ export declare function isModelUnreachable(error: unknown): boolean;
23
36
  /**
24
37
  * Runner-classified agent failure (spec api/e2e.d.ts). It extends the internal
25
38
  * error base so category, exit code, retry eligibility, and report
@@ -51,4 +64,3 @@ export declare function toAgentError(cause: unknown): AgentError;
51
64
  * keep honest names and `instanceof` never spans realms.
52
65
  */
53
66
  export declare function isAgentError(value: unknown): value is AgentError;
54
- //# sourceMappingURL=error.d.ts.map
@@ -2,9 +2,10 @@
2
2
  import { classifyError, E2EError } from '../internal/errors.js';
3
3
  /**
4
4
  * The single source of truth for the closed agent code set: exit/result class
5
- * for every code, plus the blocked category for codes a `blocked` verdict may
6
- * carry. The model never selects a code, a category, or a blocked category —
7
- * everything derives from this table.
5
+ * for every code, the blocked category for codes a `blocked` verdict may
6
+ * carry, and whether the code means no model answered at all. The model never
7
+ * selects a code, a category, or a blocked category — everything derives from
8
+ * this table.
8
9
  */
9
10
  export const AGENT_CODE_TABLE = {
10
11
  AUTH_CREDENTIAL_UNAVAILABLE: { category: 'configuration', blockedCategory: 'credentials' },
@@ -17,12 +18,12 @@ export const AGENT_CODE_TABLE = {
17
18
  TEST_SETUP_FAILED: { category: 'configuration', blockedCategory: 'test_setup' },
18
19
  APP_NOT_OPEN: { category: 'test', blockedCategory: 'test_setup' },
19
20
  POLICY_DENIED: { category: 'configuration', blockedCategory: 'test_setup' },
20
- MODEL_UNAVAILABLE: { category: 'configuration', blockedCategory: 'automation' },
21
+ MODEL_UNAVAILABLE: { category: 'configuration', blockedCategory: 'automation', modelUnreachable: true },
21
22
  AUTOMATION_UNSUPPORTED: { category: 'test', blockedCategory: 'automation' },
22
23
  STEP_BUDGET_EXHAUSTED: { category: 'test', blockedCategory: 'automation' },
23
24
  STEP_TIMEOUT: { category: 'test', blockedCategory: 'automation' },
24
25
  CONTEXT_OVERFLOW: { category: 'test', blockedCategory: 'automation' },
25
- MODEL_PROVIDER_FAILED: { category: 'infrastructure' },
26
+ MODEL_PROVIDER_FAILED: { category: 'infrastructure', modelUnreachable: true },
26
27
  CANCELLED: { category: 'infrastructure' },
27
28
  AUTHENTICATION_FAILED: { category: 'test' },
28
29
  MODEL_OUTPUT_INVALID: { category: 'test' },
@@ -39,7 +40,25 @@ export const AGENT_CODE_TABLE = {
39
40
  };
40
41
  /** Exit/result class per code; derived from the one table. */
41
42
  export const CATEGORY_BY_CODE = Object.fromEntries(Object.entries(AGENT_CODE_TABLE).map(([code, entry]) => [code, entry.category]));
42
- /** The blocked category a code names, or undefined when it is not blockable. */
43
+ /** The codes that mean no model answered; derived from the one table. */
44
+ const MODEL_UNREACHABLE_CODES = new Set(Object.entries(AGENT_CODE_TABLE)
45
+ .filter(([, entry]) => entry.modelUnreachable === true)
46
+ .map(([code]) => code));
47
+ /**
48
+ * True when a failure means no model answered: none was configured, the
49
+ * provider returned an error (a rejected or missing key, a rate limit, a
50
+ * 5xx), or the stall guard cut off a request that got no response. Such a
51
+ * failure is a verdict on the model's reachability, never on the app, so it
52
+ * implicates no recorded flow. A model that answered with something unusable
53
+ * (`MODEL_OUTPUT_INVALID`, `CONTEXT_OVERFLOW`) or a step that ran out of time
54
+ * (`STEP_TIMEOUT`, even while a request was open) is not this: the screen the
55
+ * model was shown may be what went wrong.
56
+ */
57
+ export function isModelUnreachable(error) {
58
+ if (!(error instanceof E2EError) && !isAgentError(error))
59
+ return false;
60
+ return MODEL_UNREACHABLE_CODES.has(error.code);
61
+ }
43
62
  /** Cross-realm identity marker, mirroring `internal/errors.ts`. */
44
63
  const AGENT_ERROR_MARKER = Symbol.for('e2e.agent-error.v1');
45
64
  /**
@@ -99,4 +118,3 @@ export function isAgentError(value) {
99
118
  typeof value.code === 'string' &&
100
119
  value.code in CATEGORY_BY_CODE);
101
120
  }
102
- //# 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
@@ -53,7 +53,7 @@ export class Invocation {
53
53
  this.agent = runtime.select(options.agent);
54
54
  this.deadline = runtime.engine.deadline(options.timeoutMs);
55
55
  this.pixelTier = options.vision === true || options.vision === 'only';
56
- this.system = buildSystem(options.task, this.agent.agentContext);
56
+ this.system = runtime.redact(buildSystem(options.task, this.agent.agentContext));
57
57
  this.systemBytes = tokenUpperBound(this.system);
58
58
  }
59
59
  get session() {
@@ -179,11 +179,17 @@ export class Invocation {
179
179
  for (;;) {
180
180
  this.checkDeadline();
181
181
  this.consumeModelCall();
182
- const prompt = buildPrompt({
182
+ // The observation is redacted already; the instruction is the test's
183
+ // own text, which may spell out a registered value. The repair's raw
184
+ // text is redacted before the prompt cuts it, so the cut never splits a
185
+ // value into a fragment whole-value matching would miss.
186
+ const prompt = this.runtime.redact(buildPrompt({
183
187
  ...request.prompt,
184
188
  ...(this.treeWithheld ? { withholdTree: true } : {}),
185
- ...(repair === undefined ? {} : { repair }),
186
- });
189
+ ...(repair === undefined
190
+ ? {}
191
+ : { repair: { ...repair, rawText: repair.rawText === undefined ? undefined : this.runtime.redact(repair.rawText) } }),
192
+ }));
187
193
  // Pixels travel with the observation they were captured for, so the
188
194
  // image and the tree in one request always describe one revision.
189
195
  const images = imagesFor(request.prompt.observation);
@@ -322,4 +328,3 @@ function imagesFor(observation) {
322
328
  },
323
329
  ];
324
330
  }
325
- //# sourceMappingURL=invocation.js.map
@@ -36,4 +36,3 @@ export interface LedgerContext {
36
36
  * handoff to the ledger's own line budget.
37
37
  */
38
38
  export declare function serializeLedger(steps: readonly PriorStep[], maxBytes: number): LedgerContext;
39
- //# sourceMappingURL=ledger.d.ts.map
@@ -72,4 +72,3 @@ function formatEntry(step, position) {
72
72
  const handoff = truncateUtf8(step.explanation, MAX_HANDOFF_BYTES);
73
73
  return `${head}\n observed: ${handoff}`;
74
74
  }
75
- //# sourceMappingURL=ledger.js.map
@@ -84,4 +84,3 @@ export declare function isFailedResult(toolName: string, text: string): boolean;
84
84
  * that the last id was. Warns first, then forces the conclusion.
85
85
  */
86
86
  export declare function checkFailureStreak(results: readonly GuardToolResult[], thresholds?: LoopGuardThresholds): LoopGuardVerdict;
87
- //# sourceMappingURL=loop-guards.d.ts.map
@@ -184,4 +184,3 @@ export function checkFailureStreak(results, thresholds = DEFAULT_LOOP_GUARD_THRE
184
184
  }
185
185
  return { kind: 'clear' };
186
186
  }
187
- //# sourceMappingURL=loop-guards.js.map
@@ -102,4 +102,3 @@ export declare function imageTokenUpperBound(image: {
102
102
  width: number;
103
103
  height: number;
104
104
  }): number;
105
- //# sourceMappingURL=adapter.d.ts.map
@@ -37,4 +37,3 @@ export function imageTokenUpperBound(image) {
37
37
  return (Math.ceil(Math.max(1, image.width) / IMAGE_TILE_PX) *
38
38
  Math.ceil(Math.max(1, image.height) / IMAGE_TILE_PX));
39
39
  }
40
- //# sourceMappingURL=adapter.js.map
@@ -17,4 +17,3 @@
17
17
  * provider's words.
18
18
  */
19
19
  export declare function isContextOverflow(error: unknown): boolean;
20
- //# sourceMappingURL=overflow.d.ts.map
@@ -79,4 +79,3 @@ function describesOverflow(error) {
79
79
  OVERFLOW_PATTERNS.some((pattern) => pattern.test(text)) &&
80
80
  !NON_OVERFLOW_PATTERNS.some((pattern) => pattern.test(text)));
81
81
  }
82
- //# sourceMappingURL=overflow.js.map