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
@@ -1,4 +1,3 @@
1
1
  /** e2e CLI. */
2
2
  /** CLI entry invoked by the bin wrapper. */
3
3
  export declare function main(argv: readonly string[]): Promise<void>;
4
- //# sourceMappingURL=index.d.ts.map
package/dist/cli/index.js CHANGED
@@ -266,7 +266,7 @@ async function runToOutcome(telemetry, command, start) {
266
266
  const outcome = await start(signals);
267
267
  process.exitCode = outcome.exitCode;
268
268
  // The run event is the report's own numbers; every run has a report, even one that failed before its first test.
269
- telemetry.record(runCompletedEvent(outcome.report, usedFlags(command)));
269
+ telemetry.record(runCompletedEvent(outcome.report, { command: commandPath(command), flags: usedFlags(command), config: outcome.config }));
270
270
  }
271
271
  catch (cause) {
272
272
  reportFailure(telemetry, cause);
@@ -357,22 +357,22 @@ function createProgram(version, telemetry) {
357
357
  });
358
358
  program
359
359
  .command('login')
360
- .summary('sign in to a ChatGPT, GitHub Copilot, or SuperGrok subscription for agent steps')
361
- .description('Sign in once to a personal subscription and store the login for the e2e/oauth models: openai (ChatGPT Plus/Pro, the Codex sign-in), github-copilot (GitHub Copilot; reuses the GitHub CLI login or runs a device flow for your OAuth App), spacexai (SuperGrok or X Premium+, device code). The config then constructs the model with chatgpt(), copilot(), or grok() from e2e/oauth/<provider>.')
362
- .addArgument(new Argument('[provider]', 'openai, github-copilot, or spacexai; omitted, a picker').choices(PROVIDER_IDS))
360
+ .summary('sign in to a ChatGPT, GitHub Copilot, OpenCode Console, or SuperGrok subscription for agent steps')
361
+ .description('Sign in once to a personal subscription and store the login for the e2e/oauth models: openai (ChatGPT Plus/Pro, the Codex sign-in), github-copilot (GitHub Copilot; reuses the GitHub CLI login or runs a device flow for your OAuth App), opencode-console (OpenCode Console, device code), spacexai (SuperGrok or X Premium+, device code). The config then constructs the model with chatgpt(), copilot(), opencodeConsole(), or grok() from e2e/oauth/<provider>.')
362
+ .addArgument(new Argument('[provider]', 'openai, github-copilot, opencode-console, or spacexai; omitted, a picker').choices(PROVIDER_IDS))
363
363
  .option('--device', 'ChatGPT: show a code to enter on another device instead of opening a browser')
364
364
  .option('--client-id <id>', 'GitHub Copilot: the client id of your GitHub OAuth App with the device flow enabled')
365
365
  .option('--from-gh', 'GitHub Copilot: reuse the token of the signed-in GitHub CLI')
366
366
  .option('--enterprise-url <host>', 'GitHub Copilot: the GitHub Enterprise host')
367
- .addHelpText('after', ['', examples(['e2e login openai', 'e2e login github-copilot --from-gh', 'e2e login spacexai', 'e2e login']), '', docsLine('/subscriptions')].join('\n'))
367
+ .addHelpText('after', ['', examples(['e2e login openai', 'e2e login github-copilot --from-gh', 'e2e login opencode-console', 'e2e login spacexai', 'e2e login']), '', docsLine('/subscriptions')].join('\n'))
368
368
  .action(async (provider, options) => {
369
369
  process.exitCode = await runLogin(provider, options);
370
370
  });
371
371
  program
372
372
  .command('logout')
373
373
  .summary('forget a stored subscription login')
374
- .description('Remove the stored login of one provider (openai, github-copilot, spacexai). Without a provider, a picker over the stored logins.')
375
- .addArgument(new Argument('[provider]', 'openai, github-copilot, or spacexai; omitted, a picker').choices(PROVIDER_IDS))
374
+ .description('Remove the stored login of one provider (openai, github-copilot, opencode-console, spacexai). Without a provider, a picker over the stored logins.')
375
+ .addArgument(new Argument('[provider]', 'openai, github-copilot, opencode-console, or spacexai; omitted, a picker').choices(PROVIDER_IDS))
376
376
  .addHelpText('after', ['', examples(['e2e logout', 'e2e logout openai']), '', docsLine('/subscriptions')].join('\n'))
377
377
  .action(async (provider) => {
378
378
  process.exitCode = await runLogout(provider);
@@ -380,8 +380,8 @@ function createProgram(version, telemetry) {
380
380
  program
381
381
  .command('models')
382
382
  .summary('list the models a stored subscription login serves')
383
- .description('Ask the vendor which models the stored login serves and print their ids, the ones chatgpt(), copilot(), and grok() take. Without a provider, every stored login in turn.')
384
- .addArgument(new Argument('[provider]', 'openai, github-copilot, or spacexai; omitted, every stored login').choices(PROVIDER_IDS))
383
+ .description('Ask the vendor which models the stored login serves and print their ids, the ones chatgpt(), copilot(), opencodeConsole(), and grok() take. Without a provider, every stored login in turn.')
384
+ .addArgument(new Argument('[provider]', 'openai, github-copilot, opencode-console, or spacexai; omitted, every stored login').choices(PROVIDER_IDS))
385
385
  .addHelpText('after', ['', examples(['e2e models', 'e2e models openai']), '', docsLine('/subscriptions#pick-a-model')].join('\n'))
386
386
  .action(async (provider) => {
387
387
  process.exitCode = await runModels(provider);
@@ -410,7 +410,7 @@ function createProgram(version, telemetry) {
410
410
  docsLine('/reference/mcp'),
411
411
  ].join('\n'))
412
412
  .action(async (options) => {
413
- process.exitCode = await mcp(version, options);
413
+ process.exitCode = await mcp(version, options, telemetry);
414
414
  });
415
415
  const runCommand = program
416
416
  .command('run')
@@ -694,4 +694,3 @@ export async function main(argv) {
694
694
  await telemetry.flush();
695
695
  }
696
696
  }
697
- //# sourceMappingURL=index.js.map
@@ -111,4 +111,3 @@ export declare function describeLinks(install: SkillInstall): string;
111
111
  /** The install's obstacles for a message: the directory, then each entry and what it is in parentheses. */
112
112
  export declare function describeObstacles(install: SkillInstall): string;
113
113
  export {};
114
- //# sourceMappingURL=agent-skill.d.ts.map
@@ -212,4 +212,3 @@ function linkTarget(link) {
212
212
  function posixRelative(from, absolute) {
213
213
  return path.relative(from, absolute).split(path.sep).join('/');
214
214
  }
215
- //# sourceMappingURL=agent-skill.js.map
@@ -16,9 +16,7 @@ export declare function getEnginePresets(): readonly [{
16
16
  readonly id: 'web';
17
17
  readonly label: 'Web';
18
18
  readonly hint: 'Playwright';
19
- readonly dependencies: {
20
- readonly playwright: string;
21
- };
19
+ readonly dependencies: Readonly<Record<string, string>>;
22
20
  readonly imports: readonly ["import { web } from '@e2e-dev/web';"];
23
21
  readonly config: ` targets: [{
24
22
  engine: web(),
@@ -76,4 +74,3 @@ export type EngineId = ReturnType<typeof getEnginePresets>[number]['id'];
76
74
  export declare const DEFAULT_ENGINE_ID = "web";
77
75
  /** Resolves a preset with the common shape used by scaffold generation. */
78
76
  export declare function getEnginePreset(id: EngineId): EnginePreset;
79
- //# sourceMappingURL=engines.d.ts.map
@@ -1,6 +1,6 @@
1
1
  /** CLI scaffold presets. Engine packages are referenced as generated source, never imported. */
2
2
  import os from 'node:os';
3
- import { playwrightRange, siblingDependency, SIBLING_VERSIONS } from './versions.js';
3
+ import { siblingDependency } from './versions.js';
4
4
  /** Builds prompt choices and scaffolds with defaults for the machine running init. */
5
5
  export function getEnginePresets() {
6
6
  const ios = os.platform() === 'darwin';
@@ -9,7 +9,7 @@ export function getEnginePresets() {
9
9
  id: 'web',
10
10
  label: 'Web',
11
11
  hint: 'Playwright',
12
- dependencies: { ...siblingDependency('@e2e-dev/web'), playwright: playwrightRange(SIBLING_VERSIONS?.['playwright']) },
12
+ dependencies: siblingDependency('@e2e-dev/web'),
13
13
  imports: ["import { web } from '@e2e-dev/web';"],
14
14
  config: ` targets: [{
15
15
  engine: web(),
@@ -104,4 +104,3 @@ export function getEnginePreset(id) {
104
104
  throw new Error(`unknown engine: ${id}`);
105
105
  return preset;
106
106
  }
107
- //# sourceMappingURL=engines.js.map
@@ -4,7 +4,7 @@
4
4
  * of them and takes the constructed instance. Adding a gateway is adding an
5
5
  * entry here.
6
6
  */
7
- export type GatewayId = 'vercel' | 'openrouter' | 'openai-compatible' | 'chatgpt' | 'copilot' | 'grok';
7
+ export type GatewayId = 'vercel' | 'openrouter' | 'openai-compatible' | 'chatgpt' | 'copilot' | 'opencode-console' | 'grok';
8
8
  export interface GatewayPreset {
9
9
  readonly id: GatewayId;
10
10
  readonly label: string;
@@ -21,4 +21,3 @@ export interface GatewayPreset {
21
21
  }
22
22
  export declare const GATEWAYS: readonly GatewayPreset[];
23
23
  export declare function getGatewayPreset(id: GatewayId): GatewayPreset;
24
- //# sourceMappingURL=gateways.d.ts.map
@@ -50,12 +50,22 @@ export const GATEWAYS = [
50
50
  id: 'copilot',
51
51
  label: 'GitHub Copilot subscription',
52
52
  hint: 'your Copilot plan: OpenAI, Anthropic, Google, and SpaceXAI models',
53
- dependencies: { '@ai-sdk/openai-compatible': '^3.0.0' },
53
+ dependencies: { '@ai-sdk/openai-compatible': '^3.0.0', '@ai-sdk/openai': '^4.0.0' },
54
54
  import: "import { copilot } from 'e2e/oauth/copilot';",
55
55
  comment: 'Your GitHub Copilot subscription serves the model; sign in once with `e2e login github-copilot`, `e2e models github-copilot` lists the ids.',
56
56
  login: 'github-copilot',
57
57
  model: () => "copilot('claude-sonnet-5')",
58
58
  },
59
+ {
60
+ id: 'opencode-console',
61
+ label: 'OpenCode Console',
62
+ hint: 'the models your OpenCode Console workspace serves',
63
+ dependencies: { '@ai-sdk/openai-compatible': '^3.0.0', '@ai-sdk/openai': '^4.0.0', '@ai-sdk/anthropic': '^4.0.0', '@ai-sdk/google': '^4.0.0' },
64
+ import: "import { opencodeConsole } from 'e2e/oauth/opencode-console';",
65
+ comment: 'Your OpenCode Console workspace serves the model; sign in once with `e2e login opencode-console`, `e2e models opencode-console` lists the ids.',
66
+ login: 'opencode-console',
67
+ model: () => "opencodeConsole('deepseek-v4.1-flash')",
68
+ },
59
69
  {
60
70
  id: 'grok',
61
71
  label: 'SuperGrok subscription',
@@ -77,4 +87,3 @@ export function getGatewayPreset(id) {
77
87
  function quote(value) {
78
88
  return `'${value.replaceAll('\\', '\\\\').replaceAll("'", "\\'")}'`;
79
89
  }
80
- //# sourceMappingURL=gateways.js.map
@@ -28,4 +28,3 @@ export declare function findRegisteredMcpFiles(cwd: string): string[];
28
28
  * Other servers, other keys, and the file's indentation are preserved.
29
29
  */
30
30
  export declare function planMcpRegistration(cwd: string, files: readonly string[]): McpRegistration[];
31
- //# sourceMappingURL=mcp-config.d.ts.map
@@ -69,4 +69,3 @@ export function planMcpRegistration(cwd, files) {
69
69
  }
70
70
  return registrations;
71
71
  }
72
- //# sourceMappingURL=mcp-config.js.map
@@ -60,4 +60,3 @@ export declare function addScripts(manifest: PackageManifest, scripts: Readonly<
60
60
  */
61
61
  export declare function serializePackage(manifest: PackageManifest, original: string | undefined): string;
62
62
  export {};
63
- //# sourceMappingURL=package.d.ts.map
@@ -99,4 +99,3 @@ function ordering(value, reference) {
99
99
  out[key] = entry;
100
100
  return out;
101
101
  }
102
- //# sourceMappingURL=package.js.map
@@ -16,4 +16,3 @@ export declare function createScaffold(engineId: EngineId, model: ScaffoldModel
16
16
  example: string;
17
17
  needsAppUrl: boolean;
18
18
  };
19
- //# sourceMappingURL=scaffold.d.ts.map
@@ -48,4 +48,3 @@ ${configFields.join('\n')}
48
48
  needsAppUrl: engine.needsAppUrl,
49
49
  };
50
50
  }
51
- //# sourceMappingURL=scaffold.js.map
@@ -1 +1 @@
1
- {"@e2e-dev/web":"0.11.1","@e2e-dev/mobile":"0.9.0","playwright":"1.63.0"}
1
+ {"@e2e-dev/web":"0.12.0","@e2e-dev/mobile":"0.9.2"}
@@ -3,7 +3,6 @@
3
3
  * build in `sibling-versions.json` next to this module from their manifests.
4
4
  * Absent when running from source. Both preset tables read from here.
5
5
  */
6
- export declare const SIBLING_VERSIONS: Readonly<Record<string, string>> | undefined;
7
6
  /**
8
7
  * The range init writes for the runner and for an engine. Engines version
9
8
  * independently of the runner and pin it through their own peer range, so init
@@ -20,11 +19,3 @@ export declare const SIBLING_VERSIONS: Readonly<Record<string, string>> | undefi
20
19
  export declare function dependencyRange(version: string | undefined): string;
21
20
  /** The range init writes for a sibling `@e2e-dev/*` package released alongside this runner. */
22
21
  export declare function siblingDependency(name: string): Readonly<Record<string, string>>;
23
- /**
24
- * The range init writes for `playwright`, which `@e2e-dev/web` peers on
25
- * rather than installs, so an app that already ships Playwright keeps one copy
26
- * and one browser cache. The build records the version the engine was built
27
- * and tested against; from source, where nothing is recorded, any 1.x will do.
28
- */
29
- export declare function playwrightRange(version: string | undefined): string;
30
- //# sourceMappingURL=versions.d.ts.map
@@ -4,7 +4,7 @@
4
4
  * Absent when running from source. Both preset tables read from here.
5
5
  */
6
6
  import { readJson } from '../../internal/package-version.js';
7
- export const SIBLING_VERSIONS = readJson(import.meta.url, './sibling-versions.json');
7
+ const SIBLING_VERSIONS = readJson(import.meta.url, './sibling-versions.json');
8
8
  /**
9
9
  * The range init writes for the runner and for an engine. Engines version
10
10
  * independently of the runner and pin it through their own peer range, so init
@@ -27,13 +27,3 @@ export function dependencyRange(version) {
27
27
  export function siblingDependency(name) {
28
28
  return { [name]: dependencyRange(SIBLING_VERSIONS?.[name]) };
29
29
  }
30
- /**
31
- * The range init writes for `playwright`, which `@e2e-dev/web` peers on
32
- * rather than installs, so an app that already ships Playwright keeps one copy
33
- * and one browser cache. The build records the version the engine was built
34
- * and tested against; from source, where nothing is recorded, any 1.x will do.
35
- */
36
- export function playwrightRange(version) {
37
- return version === undefined ? '^1' : `^${version}`;
38
- }
39
- //# sourceMappingURL=versions.js.map
@@ -24,4 +24,3 @@ export interface InitOptions {
24
24
  export declare function init(cwd: string, options?: InitOptions): Promise<InitOutcome & {
25
25
  readonly exitCode: number;
26
26
  }>;
27
- //# sourceMappingURL=init.d.ts.map
package/dist/cli/init.js CHANGED
@@ -373,4 +373,3 @@ function cancelled() {
373
373
  clack.cancel('Cancelled; no changes were made');
374
374
  return 0;
375
375
  }
376
- //# sourceMappingURL=init.js.map
package/dist/cli/mcp.d.ts CHANGED
@@ -5,12 +5,19 @@
5
5
  * transport keeps the process's own stdout writer, and everything else that
6
6
  * reaches process.stdout is redirected to stderr for the whole process.
7
7
  */
8
+ import { type ServeOptions } from '../mcp/server.ts';
9
+ import type { Telemetry } from '../telemetry/telemetry.ts';
8
10
  export interface McpCommandOptions {
9
11
  config?: string | undefined;
10
12
  target?: string | undefined;
11
13
  headless?: boolean | undefined;
12
14
  maxSessions?: number | undefined;
13
15
  }
16
+ /**
17
+ * Records each MCP session as it ends and sends it at once: a server lives
18
+ * as long as its client, and one its client kills never reaches the flush
19
+ * at exit.
20
+ */
21
+ export declare function sessionTelemetry(telemetry: Telemetry): NonNullable<ServeOptions['onSessionEnd']>;
14
22
  /** Runs the server until the client disconnects or a signal arrives; returns the exit code. */
15
- export declare function mcp(version: string, options: McpCommandOptions): Promise<number>;
16
- //# sourceMappingURL=mcp.d.ts.map
23
+ export declare function mcp(version: string, options: McpCommandOptions, telemetry: Telemetry): Promise<number>;
package/dist/cli/mcp.js CHANGED
@@ -9,6 +9,7 @@ import { Writable } from 'node:stream';
9
9
  import { isCiMode } from '../config/resolve.js';
10
10
  import { errorMessage, exitCodeForCategory, classifyError } from '../internal/errors.js';
11
11
  import { serveMcp } from '../mcp/server.js';
12
+ import { mcpSessionEvent } from '../telemetry/events.js';
12
13
  /**
13
14
  * Diverts every later `process.stdout` write to stderr and returns a stream
14
15
  * that still reaches the real stdout. The protocol stream wraps the original
@@ -37,8 +38,19 @@ function claimStdout() {
37
38
  stderr.on('error', () => undefined);
38
39
  return protocol;
39
40
  }
41
+ /**
42
+ * Records each MCP session as it ends and sends it at once: a server lives
43
+ * as long as its client, and one its client kills never reaches the flush
44
+ * at exit.
45
+ */
46
+ export function sessionTelemetry(telemetry) {
47
+ return (summary, client) => {
48
+ telemetry.record(mcpSessionEvent(summary, client));
49
+ void telemetry.sendQueued();
50
+ };
51
+ }
40
52
  /** Runs the server until the client disconnects or a signal arrives; returns the exit code. */
41
- export async function mcp(version, options) {
53
+ export async function mcp(version, options, telemetry) {
42
54
  const stdout = claimStdout();
43
55
  const stop = new AbortController();
44
56
  const onSignal = () => stop.abort();
@@ -57,6 +69,7 @@ export async function mcp(version, options) {
57
69
  stdout,
58
70
  log: (line) => process.stderr.write(`e2e mcp: ${line}\n`),
59
71
  signal: stop.signal,
72
+ onSessionEnd: sessionTelemetry(telemetry),
60
73
  });
61
74
  }
62
75
  catch (cause) {
@@ -69,4 +82,3 @@ export async function mcp(version, options) {
69
82
  process.off('SIGTERM', onSignal);
70
83
  }
71
84
  }
72
- //# sourceMappingURL=mcp.js.map
@@ -23,4 +23,3 @@ export declare class SignalLadder {
23
23
  /** Installs the process handlers; returns their removal. */
24
24
  arm(exit?: (code: number) => void): () => void;
25
25
  }
26
- //# sourceMappingURL=signals.d.ts.map
@@ -45,4 +45,3 @@ export class SignalLadder {
45
45
  };
46
46
  }
47
47
  }
48
- //# sourceMappingURL=signals.js.map
@@ -13,4 +13,3 @@ export declare function readSkillFiles(): readonly SkillFile[];
13
13
  export declare function skillTopics(): readonly string[];
14
14
  /** The overview (`SKILL.md` without its frontmatter) or one topic's text; undefined for an unknown topic. */
15
15
  export declare function readGuide(topic: string | undefined): string | undefined;
16
- //# sourceMappingURL=skill.d.ts.map
package/dist/cli/skill.js CHANGED
@@ -54,4 +54,3 @@ export function readGuide(topic) {
54
54
  }
55
55
  return files.find((file) => file.relative === `${TOPIC_PREFIX}${topic}.md`)?.content;
56
56
  }
57
- //# sourceMappingURL=skill.js.map
@@ -9,4 +9,3 @@ export declare const TELEMETRY_ACTIONS: readonly TelemetryAction[];
9
9
  * choice could not be saved.
10
10
  */
11
11
  export declare function telemetry(action: TelemetryAction, instance: Telemetry): number;
12
- //# sourceMappingURL=telemetry.d.ts.map
@@ -29,7 +29,7 @@ export function telemetry(action, instance) {
29
29
  const disabledBy = instance.disabledBy;
30
30
  if (disabledBy === undefined) {
31
31
  out(`Status: ${picocolors.green('enabled')}`);
32
- out('Anonymous usage data is sent: the command, the versions, the OS, and run counts. Never test names, app data, or credentials.');
32
+ out('Anonymous usage data is sent: the command, the versions, the OS, and summaries of runs and MCP sessions. Never test names, app data, or credentials.');
33
33
  }
34
34
  else {
35
35
  out(`Status: ${picocolors.red('disabled')} (${REASONS[disabledBy]})`);
@@ -38,4 +38,3 @@ export function telemetry(action, instance) {
38
38
  out(`Details: ${DOCS_URL}/telemetry`);
39
39
  return 0;
40
40
  }
41
- //# sourceMappingURL=telemetry.js.map
@@ -36,4 +36,3 @@ export interface PlayWordmarkOptions {
36
36
  * as an interrupted run does.
37
37
  */
38
38
  export declare function playWordmark(stream: WordmarkStream, options?: PlayWordmarkOptions): Promise<void>;
39
- //# sourceMappingURL=wordmark.d.ts.map
@@ -262,4 +262,3 @@ export async function playWordmark(stream, options = {}) {
262
262
  stream.write(SHOW_CURSOR);
263
263
  }
264
264
  }
265
- //# sourceMappingURL=wordmark.js.map
@@ -165,4 +165,3 @@ export declare function collectSetups(config: ResolvedConfig): Promise<Collectio
165
165
  * stop `e2e run tests/one.e2e.ts`.
166
166
  */
167
167
  export declare function collect(config: ResolvedConfig, positionals?: readonly string[]): Promise<Collection>;
168
- //# sourceMappingURL=collect.d.ts.map
@@ -6,6 +6,7 @@ import { CollectionError } from '../internal/errors.js';
6
6
  import { setupTestId, testId } from '../internal/ids.js';
7
7
  import { explainModuleError } from '../config/diagnose.js';
8
8
  import { importModule } from '../config/load.js';
9
+ import { staticSecretLedger } from '../run/secrecy.js';
9
10
  import { collectModule, groupTitles, outermostSerialGroup, } from './registry.js';
10
11
  /** Narrows a collected test to its reportable, serializable identity. */
11
12
  export function testIdentity(test) {
@@ -345,12 +346,13 @@ export async function collect(config, positionals = []) {
345
346
  async function collectFiles(config, discovered, isSelected, narrowed, lines) {
346
347
  const files = [];
347
348
  const uncollected = [];
349
+ const { redact } = staticSecretLedger(config.allSecrets);
348
350
  for (const file of discovered) {
349
351
  const absolutePath = path.join(config.projectRoot, file);
350
352
  const skippable = narrowed && !isSelected(file);
351
353
  let registration;
352
354
  try {
353
- registration = await collectModule(() => importModule(absolutePath, 'collect'), absolutePath);
355
+ registration = await collectModule(() => importModule(absolutePath, 'collect'), absolutePath, redact);
354
356
  }
355
357
  catch (cause) {
356
358
  if (skippable) {
@@ -373,4 +375,3 @@ async function collectFiles(config, discovered, isSelected, narrowed, lines) {
373
375
  }
374
376
  return { files, uncollected };
375
377
  }
376
- //# sourceMappingURL=collect.js.map
@@ -73,9 +73,13 @@ export declare function outermostSerialGroup(group: GroupNode | undefined): Grou
73
73
  /**
74
74
  * Runs `load` with a fresh collector active and returns everything it
75
75
  * registered. `moduleFile` is the absolute path of the module `load` imports;
76
- * a test's source prefers a frame in that file.
76
+ * a test's source prefers a frame in that file. `redactTitle` is applied to
77
+ * every test and describe title as it registers, so a secret a title spells
78
+ * out never reaches a test id, a report, or a path derived from either; the
79
+ * runner passes the static secrets of the config (`staticSecretLedger`), the
80
+ * same in every process, so ids agree across them.
77
81
  */
78
- export declare function collectModule(load: () => Promise<unknown>, moduleFile?: string): Promise<ModuleRegistration>;
82
+ export declare function collectModule(load: () => Promise<unknown>, moduleFile?: string, redactTitle?: (title: string) => string): Promise<ModuleRegistration>;
79
83
  export declare const test: TestAPI;
80
84
  /**
81
85
  * `test.describe` and the hooks as top-level imports. The per-test hooks
@@ -87,4 +91,3 @@ export declare const describe: {
87
91
  <Result>(title: string, options: DescribeOptions, body: import("../types.ts").SynchronousBody<Result>): void;
88
92
  }, beforeEach: (fn: TestHookFn<import("../types.ts").TestFixtures>) => void, afterEach: (fn: TestHookFn<import("../types.ts").TestFixtures>) => void, beforeAll: (fn: SuiteHookFn) => void, afterAll: (fn: SuiteHookFn) => void;
89
93
  export {};
90
- //# sourceMappingURL=registry.d.ts.map
@@ -12,6 +12,7 @@ import { parseSkipCall, skipRunningTest } from '../internal/skip.js';
12
12
  import { unknownKeyMessage } from '../internal/options.js';
13
13
  const SESSION_NAME_PATTERN = /^[A-Za-z0-9_.-]{1,128}$/;
14
14
  class Collector {
15
+ redactTitle;
15
16
  tests = [];
16
17
  hooks = [];
17
18
  currentGroup = undefined;
@@ -19,13 +20,31 @@ class Collector {
19
20
  closed = false;
20
21
  /** Real path of the module being collected, the file a test's source prefers. */
21
22
  moduleFile;
22
- constructor(moduleFile) {
23
+ constructor(moduleFile,
24
+ /** Rewrites a registered secret value in a title to its marker. */
25
+ redactTitle) {
26
+ this.redactTitle = redactTitle;
23
27
  this.moduleFile = moduleFile === undefined ? undefined : realPath(moduleFile);
24
28
  }
25
29
  close() {
26
30
  this.closed = true;
27
31
  return { tests: this.tests, hooks: this.hooks };
28
32
  }
33
+ /**
34
+ * The title as it registers: validated as written, redacted, then
35
+ * normalized to NFC, and validated again, since a marker can be longer
36
+ * than the value it replaces.
37
+ */
38
+ title(raw) {
39
+ const rawError = validateTitle(raw);
40
+ if (rawError !== null)
41
+ throw new CollectionError(rawError);
42
+ const title = this.redactTitle(raw).normalize('NFC');
43
+ const error = title === raw.normalize('NFC') ? null : validateTitle(title);
44
+ if (error !== null)
45
+ throw new CollectionError(`${error} once secret values are redacted`);
46
+ return title;
47
+ }
29
48
  assertOpen(api) {
30
49
  if (this.closed) {
31
50
  throw new CollectionError(`${api} was called after module evaluation finished; registration must be synchronous`);
@@ -33,10 +52,7 @@ class Collector {
33
52
  }
34
53
  registerTest(kind, mode, title, options, sessions, fn, fixtures) {
35
54
  this.assertOpen(kind === 'setup' ? 'test.setup()' : 'test()');
36
- const titleError = validateTitle(title);
37
- if (titleError !== null)
38
- throw new CollectionError(titleError);
39
- const normalizedTitle = title.normalize('NFC');
55
+ const normalizedTitle = this.title(title);
40
56
  if (typeof fn !== 'function')
41
57
  throw new CollectionError('test body must be a function');
42
58
  if (kind === 'setup') {
@@ -80,14 +96,12 @@ class Collector {
80
96
  }
81
97
  registerDescribe(title, options, body) {
82
98
  this.assertOpen('describe()');
83
- const titleError = validateTitle(title);
84
- if (titleError !== null)
85
- throw new CollectionError(titleError);
99
+ const normalizedTitle = this.title(title);
86
100
  if (typeof body !== 'function')
87
101
  throw new CollectionError('describe body must be a function');
88
102
  validateDescribeOptions(options, this.currentGroup);
89
103
  const group = {
90
- title: title.normalize('NFC'),
104
+ title: normalizedTitle,
91
105
  options,
92
106
  parent: this.currentGroup,
93
107
  serial: options.serial === true,
@@ -97,7 +111,7 @@ class Collector {
97
111
  try {
98
112
  const result = body();
99
113
  if (isPromiseLike(result)) {
100
- throw new CollectionError(`describe body for ${JSON.stringify(title)} must finish synchronously`);
114
+ throw new CollectionError(`describe body for ${JSON.stringify(group.title)} must finish synchronously`);
101
115
  }
102
116
  }
103
117
  finally {
@@ -311,13 +325,17 @@ const collectorSlot = realmSlot('e2e.activeCollector.v1');
311
325
  /**
312
326
  * Runs `load` with a fresh collector active and returns everything it
313
327
  * registered. `moduleFile` is the absolute path of the module `load` imports;
314
- * a test's source prefers a frame in that file.
328
+ * a test's source prefers a frame in that file. `redactTitle` is applied to
329
+ * every test and describe title as it registers, so a secret a title spells
330
+ * out never reaches a test id, a report, or a path derived from either; the
331
+ * runner passes the static secrets of the config (`staticSecretLedger`), the
332
+ * same in every process, so ids agree across them.
315
333
  */
316
- export async function collectModule(load, moduleFile) {
334
+ export async function collectModule(load, moduleFile, redactTitle = (title) => title) {
317
335
  if (collectorSlot.get(globalThis) !== undefined) {
318
336
  throw new CollectionError('collection is already in progress');
319
337
  }
320
- const collector = new Collector(moduleFile);
338
+ const collector = new Collector(moduleFile, redactTitle);
321
339
  collectorSlot.set(globalThis, collector);
322
340
  try {
323
341
  await load();
@@ -495,4 +513,3 @@ export const test = createTestAPI([]);
495
513
  * registers through that `test`, or an engine's re-export of these.
496
514
  */
497
515
  export const { describe, beforeEach, afterEach, beforeAll, afterAll } = test;
498
- //# sourceMappingURL=registry.js.map
@@ -114,4 +114,3 @@ export declare function select(collection: Collection, config: ResolvedConfig, f
114
114
  * count, and a filtered or skipped pair is reported once.
115
115
  */
116
116
  export declare function repeatEach(selection: Selection, times: number): Selection;
117
- //# sourceMappingURL=select.d.ts.map
@@ -661,4 +661,3 @@ function appKinds(target) {
661
661
  const { base, bundleId, appPath } = target.app;
662
662
  return [...(base === undefined ? [] : ['browser']), ...(bundleId === undefined && appPath === undefined ? [] : ['native-app'])];
663
663
  }
664
- //# sourceMappingURL=select.js.map
@@ -101,4 +101,3 @@ export declare function isVisionMode(value: unknown): value is VisionMode;
101
101
  * from any realm or provider package are accepted.
102
102
  */
103
103
  export declare function isModelInstance(value: unknown): value is ModelInstance;
104
- //# sourceMappingURL=agent.d.ts.map
@@ -304,4 +304,3 @@ function validateContext(context, label) {
304
304
  }
305
305
  return context;
306
306
  }
307
- //# sourceMappingURL=agent.js.map
@@ -120,4 +120,3 @@ export declare function digestTargetApp(app: TargetAppDeclaration): import("../i
120
120
  reuseExisting?: boolean;
121
121
  }> | undefined;
122
122
  }>;
123
- //# sourceMappingURL=app.d.ts.map
@@ -169,4 +169,3 @@ export function digestTargetApp(app) {
169
169
  const { command, ...facts } = app;
170
170
  return obj({ ...facts, command: command === undefined ? undefined : digestCommand(command) });
171
171
  }
172
- //# sourceMappingURL=app.js.map
@@ -43,4 +43,3 @@ export declare function digestCommand(command: CommandConfig): import("../intern
43
43
  log?: string;
44
44
  reuseExisting?: boolean;
45
45
  }>;
46
- //# sourceMappingURL=command.d.ts.map
@@ -100,4 +100,3 @@ export function digestCommand(command) {
100
100
  const { env, ...rest } = command;
101
101
  return obj({ ...rest, env: env === undefined ? undefined : Object.fromEntries(Object.keys(env).map((key) => [key, { envName: key }])) });
102
102
  }
103
- //# sourceMappingURL=command.js.map
@@ -12,4 +12,3 @@ export declare const RUNTIME_EXPORTS: readonly string[];
12
12
  * its own message.
13
13
  */
14
14
  export declare function explainModuleError(cause: unknown, importer: string): string;
15
- //# sourceMappingURL=diagnose.d.ts.map
@@ -159,4 +159,3 @@ function nearestManifest(dir) {
159
159
  current = parent;
160
160
  }
161
161
  }
162
- //# sourceMappingURL=diagnose.js.map
@@ -54,4 +54,3 @@ export declare const resolveSync: ResolveHookSync;
54
54
  /** For `module.register`, which reads this export from the hook module. */
55
55
  export declare const resolve: ResolveHook;
56
56
  export {};
57
- //# sourceMappingURL=esm-hooks.d.ts.map
@@ -99,4 +99,3 @@ export function inGraph(specifier, context, resolution) {
99
99
  export const resolveSync = (specifier, context, nextResolve) => inGraph(specifier, context, asModule(specifier, context, nextResolve(specifier, context)));
100
100
  /** For `module.register`, which reads this export from the hook module. */
101
101
  export const resolve = async (specifier, context, nextResolve) => inGraph(specifier, context, asModule(specifier, context, await nextResolve(specifier, context)));
102
- //# sourceMappingURL=esm-hooks.js.map
@@ -48,4 +48,3 @@ export interface ConfigLoadOptions {
48
48
  export declare function importModule(absolutePath: string, cacheKey?: string): Promise<unknown>;
49
49
  /** Loads and returns the raw default export of a config module. */
50
50
  export declare function loadConfigModule(configPath: string, options?: ConfigLoadOptions): Promise<E2EConfig>;
51
- //# sourceMappingURL=load.d.ts.map