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
@@ -1,14 +1,25 @@
1
1
  /** Runner-owned polling locator assertions. */
2
2
  import { TestError } from '../internal/errors.js';
3
- import { isTextMatch, normalizeText, compareText, matchesText, toTextPattern, describePattern, } from '../internal/text.js';
3
+ import { rejectUnknownOptions } from '../internal/options.js';
4
+ import { isTextMatch, normalizeText, compareText, toTextPattern, describePattern, withIgnoreCase, } from '../internal/text.js';
4
5
  import { isValueControl } from '../internal/roles.js';
5
6
  import { Deadline, pollCondition } from '../internal/time.js';
6
7
  import { attributeOf, denySecureRead, isNodeVisible } from '../locator/engine.js';
7
8
  import { describeExpression } from '../locator/expression.js';
8
9
  const STATE_MATCHERS = {
9
- toBeEnabled: { key: 'disabled', expected: false, describeExpected: 'enabled' },
10
+ toBeEnabled: {
11
+ key: 'disabled',
12
+ expected: false,
13
+ describeExpected: 'enabled',
14
+ flag: { option: 'enabled', describeExpected: 'disabled' },
15
+ },
10
16
  toBeDisabled: { key: 'disabled', expected: true, describeExpected: 'disabled' },
11
- toBeChecked: { key: 'checked', expected: true, describeExpected: 'checked' },
17
+ toBeChecked: {
18
+ key: 'checked',
19
+ expected: true,
20
+ describeExpected: 'checked',
21
+ flag: { option: 'checked', describeExpected: 'unchecked' },
22
+ },
12
23
  toBeSelected: { key: 'selected', expected: true, describeExpected: 'selected' },
13
24
  toBeExpanded: { key: 'expanded', expected: true, describeExpected: 'expanded' },
14
25
  toBeFocused: { key: 'focused', expected: true, describeExpected: 'focused' },
@@ -19,24 +30,28 @@ const TEXT_MATCHERS = {
19
30
  mode: 'equals',
20
31
  normalize: true,
21
32
  describeExpected: (pattern) => `text ${pattern}`,
33
+ takesIgnoreCase: true,
22
34
  },
23
35
  toContainText: {
24
36
  field: 'text',
25
37
  mode: 'contains',
26
38
  normalize: true,
27
39
  describeExpected: (pattern) => `text containing ${pattern}`,
40
+ takesIgnoreCase: true,
28
41
  },
29
42
  toHaveValue: {
30
43
  field: 'value',
31
44
  mode: 'equals',
32
45
  normalize: false,
33
46
  describeExpected: (pattern) => `value ${pattern}`,
47
+ takesIgnoreCase: false,
34
48
  },
35
49
  toHaveAccessibleName: {
36
50
  field: 'name',
37
51
  mode: 'equals',
38
52
  normalize: true,
39
53
  describeExpected: (pattern) => `accessible name ${pattern}`,
54
+ takesIgnoreCase: true,
40
55
  },
41
56
  };
42
57
  class AsyncExpectationImpl {
@@ -52,9 +67,28 @@ class AsyncExpectationImpl {
52
67
  get label() {
53
68
  return describeExpression(this.internals.expression);
54
69
  }
70
+ /** The matcher's name as its step and its errors print it: `expect.not.toBeChecked`. */
71
+ api(name) {
72
+ return `expect.${this.negated ? 'not.' : ''}${name}`;
73
+ }
74
+ /**
75
+ * Refuses an option `name` does not take before anything is read: a
76
+ * JavaScript caller's Playwright option must fail, not run as if absent.
77
+ * Returns the boolean `flag` option, `undefined` when absent.
78
+ */
79
+ readOptions(name, options, flag) {
80
+ const api = this.api(name);
81
+ rejectUnknownOptions(api, options, flag === undefined ? ['timeout'] : [flag, 'timeout']);
82
+ if (flag === undefined || options === undefined)
83
+ return undefined;
84
+ const value = Reflect.get(options, flag);
85
+ if (value === undefined || typeof value === 'boolean')
86
+ return value;
87
+ throw new TestError('INVALID_ARGUMENT', `${api} option ${flag} must be a boolean`);
88
+ }
55
89
  async poll(spec, timeout) {
56
90
  const { engine } = this.internals.context;
57
- const api = `expect.${this.negated ? 'not.' : ''}${spec.name}`;
91
+ const api = this.api(spec.name);
58
92
  await this.internals.context.steps.run('assertion', api, this.label, async () => {
59
93
  const deadline = engine.deadline(timeout ?? engine.assertionTimeout);
60
94
  let lastSample = { count: 0, node: null, nodes: [] };
@@ -113,29 +147,44 @@ class AsyncExpectationImpl {
113
147
  const { node, count } = await engine.tryRead(this.internals.expression, deadline);
114
148
  return { count, node, nodes: [] };
115
149
  }
116
- stateMatcher(name, timeout) {
150
+ /** A state matcher; its Playwright flag set to `false` expects the opposite state. */
151
+ stateMatcher(name, options) {
117
152
  const def = STATE_MATCHERS[name];
153
+ const holds = this.readOptions(name, options, def.flag?.option) ?? true;
154
+ const expected = holds ? def.expected : !def.expected;
118
155
  return this.poll({
119
156
  name,
120
- predicate: (sample) => sample.node !== null && (sample.node.states?.[def.key] === true) === def.expected,
121
- describeExpected: def.describeExpected,
157
+ predicate: (sample) => sample.node !== null && (sample.node.states?.[def.key] === true) === expected,
158
+ describeExpected: holds || def.flag === undefined ? def.describeExpected : def.flag.describeExpected,
122
159
  observed: observedState,
160
+ }, options?.timeout);
161
+ }
162
+ /** `toBeVisible` and `toBeHidden`: not visible means hidden or absent. */
163
+ visibilityMatcher(name, visible, timeout) {
164
+ return this.poll({
165
+ name,
166
+ evaluableWithoutNode: true,
167
+ predicate: (sample) => isNodeVisible(sample.node) === visible,
168
+ describeExpected: visible ? 'visible' : 'hidden or absent',
169
+ observed: visible ? observedState : (sample) => (isNodeVisible(sample.node) ? 'visible' : 'hidden'),
123
170
  }, timeout);
124
171
  }
125
- textMatcher(name, expected, timeout) {
126
- if (isTextMatchList(expected))
127
- return this.textListMatcher(name, expected, timeout);
172
+ textMatcher(name, expected, options) {
128
173
  const def = TEXT_MATCHERS[name];
129
- const pattern = toTextPattern(expected, { exact: true });
174
+ const ignoreCase = this.readOptions(name, options, def.takesIgnoreCase ? 'ignoreCase' : undefined);
175
+ const comparison = { mode: def.mode, normalize: def.normalize, ignoreCase };
176
+ if (isTextMatchList(expected))
177
+ return this.textListMatcher(name, expected, comparison, options?.timeout);
178
+ const pattern = withIgnoreCase(toTextPattern(expected, { exact: true }), ignoreCase);
130
179
  return this.poll({
131
180
  name,
132
181
  readsWithheld: def.field !== 'name',
133
182
  evaluableNode: (node) => readField(def, node) !== undefined,
134
183
  predicate: (sample) => {
135
184
  const actual = sample.node === null ? undefined : readField(def, sample.node);
136
- return actual !== undefined && compareText(actual, pattern, def);
185
+ return actual !== undefined && compareText(actual, pattern, comparison);
137
186
  },
138
- describeExpected: def.describeExpected(describePattern(pattern)),
187
+ describeExpected: def.describeExpected(describeText(pattern, ignoreCase)),
139
188
  observed: (sample) => {
140
189
  if (sample.node === null)
141
190
  return 'no node';
@@ -144,23 +193,23 @@ class AsyncExpectationImpl {
144
193
  return `no ${def.field} (not a form control)`;
145
194
  return `${def.field} ${printField(def, actual)}`;
146
195
  },
147
- }, timeout);
196
+ }, options?.timeout);
148
197
  }
149
198
  /**
150
199
  * The list form. `toHaveText` needs exactly as many matches as entries,
151
200
  * each match satisfying the entry at its position; `toContainText` needs
152
201
  * each entry contained by a distinct match, in order, as Playwright's does.
153
202
  */
154
- textListMatcher(name, expected, timeout) {
203
+ textListMatcher(name, expected, comparison, timeout) {
155
204
  const def = TEXT_MATCHERS[name];
156
- const patterns = expected.map((entry) => toTextPattern(entry, { exact: true }));
205
+ const patterns = expected.map((entry) => withIgnoreCase(toTextPattern(entry, { exact: true }), comparison.ignoreCase));
157
206
  const printed = (node) => {
158
207
  const actual = readField(def, node);
159
208
  return actual === undefined ? `no ${def.field}` : printField(def, actual);
160
209
  };
161
210
  const satisfies = (node, pattern) => {
162
211
  const actual = readField(def, node);
163
- return actual !== undefined && compareText(actual, pattern, def);
212
+ return actual !== undefined && compareText(actual, pattern, comparison);
164
213
  };
165
214
  const matchesList = def.mode === 'contains' ? matchesSubsequence : matchesPositionally;
166
215
  return this.poll({
@@ -168,75 +217,62 @@ class AsyncExpectationImpl {
168
217
  readsWithheld: def.field !== 'name',
169
218
  wholeSet: 'read',
170
219
  predicate: (sample) => matchesList(sample.nodes, patterns, satisfies),
171
- describeExpected: def.describeExpected(`[${patterns.map(describePattern).join(', ')}]`),
220
+ describeExpected: def.describeExpected(`[${patterns.map((pattern) => describeText(pattern, comparison.ignoreCase)).join(', ')}]`),
172
221
  observed: (sample) => `${def.field} [${sample.nodes.map(printed).join(', ')}]`,
173
222
  }, timeout);
174
223
  }
175
224
  toBeVisible(options) {
176
- return this.poll({
177
- name: 'toBeVisible',
178
- evaluableWithoutNode: true,
179
- predicate: (sample) => isNodeVisible(sample.node),
180
- describeExpected: 'visible',
181
- observed: observedState,
182
- }, options?.timeout);
225
+ const visible = this.readOptions('toBeVisible', options, 'visible') ?? true;
226
+ return this.visibilityMatcher('toBeVisible', visible, options?.timeout);
183
227
  }
184
228
  toBeHidden(options) {
185
- return this.poll({
186
- name: 'toBeHidden',
187
- evaluableWithoutNode: true,
188
- predicate: (sample) => !isNodeVisible(sample.node),
189
- describeExpected: 'hidden or absent',
190
- observed: (sample) => (isNodeVisible(sample.node) ? 'visible' : 'hidden'),
191
- }, options?.timeout);
229
+ this.readOptions('toBeHidden', options);
230
+ return this.visibilityMatcher('toBeHidden', false, options?.timeout);
192
231
  }
193
232
  toBeAttached(options) {
233
+ const attached = this.readOptions('toBeAttached', options, 'attached') ?? true;
194
234
  return this.poll({
195
235
  name: 'toBeAttached',
196
236
  evaluableWithoutNode: true,
197
- predicate: (sample) => sample.node !== null,
198
- describeExpected: 'attached',
237
+ predicate: (sample) => (sample.node !== null) === attached,
238
+ describeExpected: attached ? 'attached' : 'detached',
199
239
  observed: (sample) => (sample.node === null ? 'no node' : 'attached'),
200
240
  }, options?.timeout);
201
241
  }
202
242
  toBeEnabled(options) {
203
- return this.stateMatcher('toBeEnabled', options?.timeout);
243
+ return this.stateMatcher('toBeEnabled', options);
204
244
  }
205
245
  toBeDisabled(options) {
206
- return this.stateMatcher('toBeDisabled', options?.timeout);
246
+ return this.stateMatcher('toBeDisabled', options);
207
247
  }
208
248
  toBeChecked(options) {
209
- return this.stateMatcher('toBeChecked', options?.timeout);
249
+ return this.stateMatcher('toBeChecked', options);
210
250
  }
211
251
  toBeSelected(options) {
212
- return this.stateMatcher('toBeSelected', options?.timeout);
252
+ return this.stateMatcher('toBeSelected', options);
213
253
  }
214
254
  toBeExpanded(options) {
215
- return this.stateMatcher('toBeExpanded', options?.timeout);
255
+ return this.stateMatcher('toBeExpanded', options);
216
256
  }
217
257
  toBeFocused(options) {
218
- return this.stateMatcher('toBeFocused', options?.timeout);
258
+ return this.stateMatcher('toBeFocused', options);
219
259
  }
220
260
  toHaveText(expected, options) {
221
- return this.textMatcher('toHaveText', expected, options?.timeout);
261
+ return this.textMatcher('toHaveText', expected, options);
222
262
  }
223
263
  toContainText(expected, options) {
224
- return this.textMatcher('toContainText', expected, options?.timeout);
264
+ return this.textMatcher('toContainText', expected, options);
225
265
  }
226
266
  toHaveValue(expected, options) {
227
- return this.textMatcher('toHaveValue', expected, options?.timeout);
267
+ return this.textMatcher('toHaveValue', expected, options);
228
268
  }
229
269
  toHaveAttribute(name, valueOrOptions, options) {
230
- let value;
231
- let timeout;
232
- if (isTextMatch(valueOrOptions)) {
233
- value = valueOrOptions;
234
- timeout = options?.timeout;
235
- }
236
- else {
237
- timeout = valueOrOptions?.timeout;
238
- }
239
- const pattern = value === undefined ? undefined : toTextPattern(value, { exact: true });
270
+ const hasValue = isTextMatch(valueOrOptions);
271
+ // Presence reads the third argument too when the value is `undefined`, as Playwright does.
272
+ const bag = hasValue ? options : valueOrOptions === undefined ? options : valueOrOptions;
273
+ const ignoreCase = this.readOptions('toHaveAttribute', bag, hasValue ? 'ignoreCase' : undefined);
274
+ const pattern = hasValue ? withIgnoreCase(toTextPattern(valueOrOptions, { exact: true }), ignoreCase) : undefined;
275
+ const comparison = { mode: 'equals', normalize: true, ignoreCase };
240
276
  return this.poll({
241
277
  name: 'toHaveAttribute',
242
278
  readsWithheld: true,
@@ -244,11 +280,11 @@ class AsyncExpectationImpl {
244
280
  if (sample.node === null)
245
281
  return false;
246
282
  const attribute = attributeOf(sample.node, name);
247
- return attribute !== null && (pattern === undefined || matchesText(attribute, pattern));
283
+ return attribute !== null && (pattern === undefined || compareText(attribute, pattern, comparison));
248
284
  },
249
285
  describeExpected: pattern === undefined
250
286
  ? `attribute "${name}"`
251
- : `attribute "${name}" ${describePattern(pattern)}`,
287
+ : `attribute "${name}" ${describeText(pattern, ignoreCase)}`,
252
288
  observed: (sample) => {
253
289
  if (sample.node === null)
254
290
  return 'no node';
@@ -257,12 +293,13 @@ class AsyncExpectationImpl {
257
293
  ? `attribute "${name}" absent`
258
294
  : `attribute "${name}" ${JSON.stringify(attribute)}`;
259
295
  },
260
- }, timeout);
296
+ }, bag?.timeout);
261
297
  }
262
298
  toHaveAccessibleName(expected, options) {
263
- return this.textMatcher('toHaveAccessibleName', expected, options?.timeout);
299
+ return this.textMatcher('toHaveAccessibleName', expected, options);
264
300
  }
265
301
  toHaveCount(expected, options) {
302
+ this.readOptions('toHaveCount', options);
266
303
  return this.poll({
267
304
  name: 'toHaveCount',
268
305
  wholeSet: true,
@@ -310,6 +347,11 @@ function readField(def, node) {
310
347
  return '';
311
348
  return isValueControl(node) ? '' : undefined;
312
349
  }
350
+ /** A pattern as a failure message prints it, marking a string compared ignoring case. */
351
+ function describeText(pattern, ignoreCase) {
352
+ const described = describePattern(pattern);
353
+ return pattern.kind === 'string' && ignoreCase === true ? `${described} (ignoring case)` : described;
354
+ }
313
355
  /** The field as the failure message prints it: normalized when the comparison was, so the message shows what got compared. */
314
356
  function printField(def, actual) {
315
357
  return JSON.stringify(def.normalize ? normalizeText(actual) : actual);
@@ -326,4 +368,3 @@ function observedState(sample) {
326
368
  export function createAsyncExpectation(internals) {
327
369
  return new AsyncExpectationImpl(internals, false);
328
370
  }
329
- //# sourceMappingURL=async.js.map
@@ -16,4 +16,3 @@ export interface PublishedAttempt {
16
16
  export declare function publishAttempt(context: PublishedAttempt, until: AbortSignal): void;
17
17
  /** The attempt a poll runs inside, or undefined in a standalone script. */
18
18
  export declare function currentAttempt(): PublishedAttempt | undefined;
19
- //# sourceMappingURL=attempt.d.ts.map
@@ -30,4 +30,3 @@ export function publishAttempt(context, until) {
30
30
  export function currentAttempt() {
31
31
  return slot.get(globalThis);
32
32
  }
33
- //# sourceMappingURL=attempt.js.map
@@ -7,4 +7,3 @@ import type { Expect } from '../types.ts';
7
7
  * end of the body instead of throwing it.
8
8
  */
9
9
  export declare const expect: Expect;
10
- //# sourceMappingURL=index.d.ts.map
@@ -43,4 +43,3 @@ export const expect = Object.assign(dispatch, {
43
43
  stringContaining: (sample) => new StringContaining(sample),
44
44
  stringMatching: (sample) => new StringMatching(sample),
45
45
  });
46
- //# sourceMappingURL=index.js.map
@@ -2,4 +2,3 @@
2
2
  import type { PollExpectation, PollOptions } from '../types.ts';
3
3
  /** Re-reads `read` until the chosen value matcher holds or `options.timeout` passes. */
4
4
  export declare function createPollExpectation<T>(read: () => T | Promise<T>, options?: PollOptions): PollExpectation<T>;
5
- //# sourceMappingURL=poll.d.ts.map
@@ -121,4 +121,3 @@ export function createPollExpectation(read, options = {}) {
121
121
  checkOptions(options);
122
122
  return build(read, options, false);
123
123
  }
124
- //# sourceMappingURL=poll.js.map
@@ -28,4 +28,3 @@ export declare class SoftFailures {
28
28
  * attached matchers all go through the one wrapper.
29
29
  */
30
30
  export declare function soften<E extends object>(expectation: E): E;
31
- //# sourceMappingURL=soft.d.ts.map
@@ -85,4 +85,3 @@ export function soften(expectation) {
85
85
  },
86
86
  });
87
87
  }
88
- //# sourceMappingURL=soft.js.map
@@ -1,4 +1,3 @@
1
1
  /** Synchronous plain-value matchers. */
2
2
  import type { ValueExpectation } from '../types.ts';
3
3
  export declare function createValueExpectation<T>(actual: T, message?: string): ValueExpectation<T>;
4
- //# sourceMappingURL=values.d.ts.map
@@ -99,7 +99,7 @@ class ValueExpectationImpl {
99
99
  this.check(this.actual === undefined, () => `expected ${format(this.actual)} to be undefined`, () => `expected value not to be undefined`);
100
100
  }
101
101
  toBeDefined() {
102
- this.check(this.actual !== undefined && this.actual !== null, () => `expected ${format(this.actual)} to be defined`, () => `expected ${format(this.actual)} not to be defined`);
102
+ this.check(this.actual !== undefined, () => `expected ${format(this.actual)} to be defined`, () => `expected ${format(this.actual)} not to be defined`);
103
103
  }
104
104
  toHaveLength(expected) {
105
105
  const actual = this.actual;
@@ -221,4 +221,3 @@ function lookup(value, keys) {
221
221
  export function createValueExpectation(actual, message) {
222
222
  return new ValueExpectationImpl(actual, false, message);
223
223
  }
224
- //# sourceMappingURL=values.js.map
@@ -37,4 +37,3 @@ export interface ExploreBodyOptions {
37
37
  }
38
38
  /** Builds the test body for one exploration. */
39
39
  export declare function createExploreBody(options: ExploreBodyOptions): TestFn;
40
- //# sourceMappingURL=body.d.ts.map
@@ -178,4 +178,3 @@ function conclude(state) {
178
178
  throw new AgentError(code !== undefined && BLOCKABLE_CODES.has(code) ? code : 'AUTOMATION_UNSUPPORTED', `exploration could not complete a charter: ${first.summary ?? first.title}`, { blocked: true });
179
179
  }
180
180
  }
181
- //# sourceMappingURL=body.js.map
@@ -31,4 +31,3 @@ export interface ExplorerOptions {
31
31
  export declare function explorerAgent(options: ExplorerOptions): AgentConfig;
32
32
  /** The resolved explorer with the finding tool beside the project's tools. */
33
33
  export declare function withFindingTool(explorer: ResolvedAgentConfig, state: ExploreState): ResolvedAgentConfig;
34
- //# sourceMappingURL=executor.d.ts.map
@@ -98,4 +98,3 @@ function createFindingTool(state) {
98
98
  },
99
99
  }, { mutates: false });
100
100
  }
101
- //# sourceMappingURL=executor.js.map
@@ -76,4 +76,3 @@ export interface ExploreOutcome extends RunOutcome {
76
76
  * as a bad flag is.
77
77
  */
78
78
  export declare function explore(options?: ExploreOptions): Promise<ExploreOutcome>;
79
- //# sourceMappingURL=index.d.ts.map
@@ -15,6 +15,7 @@ import { resolveConfig } from '../config/resolve.js';
15
15
  import { ConfigurationError } from '../internal/errors.js';
16
16
  import { labelSegment } from '../run/artifacts.js';
17
17
  import { run } from '../run/runner.js';
18
+ import { staticSecretLedger } from '../run/secrecy.js';
18
19
  import { createExploreBody } from './body.js';
19
20
  import { explorerAgent, withFindingTool } from './executor.js';
20
21
  import { signedInContext } from './plan.js';
@@ -66,7 +67,7 @@ export async function explore(options = {}) {
66
67
  const agentName = resolved.agentNames[0];
67
68
  if (agentName !== 'default')
68
69
  notice(`exploring with agent "${agentName}"`);
69
- const state = new ExploreState(goal, budgets);
70
+ const state = new ExploreState(redactGoal(goal, resolved.allSecrets), budgets);
70
71
  const explorer = explorerAgent({ state, agentName, entry: raw.agents?.[agentName], resolved: resolved.agent, notice });
71
72
  const resolvedExplorer = resolveAgentConfig(exploreAgentConfig(explorer), `agents.${agentName}`);
72
73
  // Every exploration step calls the model, a custom executor's included,
@@ -121,6 +122,20 @@ function resolveGoal(goal) {
121
122
  }
122
123
  return trimmed;
123
124
  }
125
+ /**
126
+ * The goal with every static secret value it spells out redacted. The goal
127
+ * becomes the test's title, its artifact directory, the report's goal, and
128
+ * model input, so it is redacted once, here, as a test file's titles are at
129
+ * collection. A marker can be longer than the value it replaces, so the
130
+ * ceiling is checked again on what the run will keep.
131
+ */
132
+ function redactGoal(goal, secrets) {
133
+ const redacted = staticSecretLedger(secrets).redact(goal);
134
+ if (redacted.length > MAX_GOAL_CHARS) {
135
+ throw new ConfigurationError('INVALID_CONFIG', `the goal must be at most ${MAX_GOAL_CHARS} characters with its secret values redacted, got ${redacted.length}`);
136
+ }
137
+ return redacted;
138
+ }
124
139
  function resolveBounded(value, bounds, label) {
125
140
  if (value === undefined)
126
141
  return bounds.default;
@@ -204,4 +219,3 @@ function exploreRegistration(state, start) {
204
219
  };
205
220
  return { tests: [test], hooks: [] };
206
221
  }
207
- //# sourceMappingURL=index.js.map
@@ -79,4 +79,3 @@ export declare function repairPlan(answer: PlanAnswer): PlanDecision;
79
79
  /** The planner's instruction: the goal, the record so far, the budget, and how to decide. */
80
80
  export declare function planInstruction(state: ExploreState, request: PlanRequest): string;
81
81
  export {};
82
- //# sourceMappingURL=plan.d.ts.map
@@ -173,4 +173,3 @@ export function planInstruction(state, request) {
173
173
  'Respond with every field present: {"decision": "step", "title": "...", "instruction": "...", "summary": ""} or {"decision": "finish", "title": "", "instruction": "", "summary": "..."}.',
174
174
  ].join('\n');
175
175
  }
176
- //# sourceMappingURL=plan.js.map
@@ -40,4 +40,3 @@ export type ExploreProgress =
40
40
  readonly summary?: string | undefined;
41
41
  };
42
42
  export type ExploreListener = (progress: ExploreProgress) => void;
43
- //# sourceMappingURL=progress.d.ts.map
@@ -6,4 +6,3 @@
6
6
  * report is the record; these are its moments.
7
7
  */
8
8
  export {};
9
- //# sourceMappingURL=progress.js.map
@@ -56,4 +56,3 @@ export declare class ExploreState {
56
56
  * splits a surrogate pair.
57
57
  */
58
58
  export declare function clip(text: string, max: number): string;
59
- //# sourceMappingURL=state.d.ts.map
@@ -161,4 +161,3 @@ export function clip(text, max) {
161
161
  const points = Array.from(trimmed);
162
162
  return points.length <= max ? trimmed : `${points.slice(0, max - 1).join('')}…`;
163
163
  }
164
- //# sourceMappingURL=state.js.map
package/dist/index.d.ts CHANGED
@@ -11,4 +11,3 @@ export type { ExecutorActions, ExecutorAttempt, ExecutorBudgets, ExecutorModelCa
11
11
  export type { StepTurn, VisionDegradation } from './run/steps.ts';
12
12
  export type { RunEvent, RunEventOf, RunExitCode, RunStatus } from './run/events.ts';
13
13
  export type { EngineAppDeclaration } from './engine/index.ts';
14
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -7,4 +7,3 @@ export { AgentError, isAgentError } from './agent/error.js';
7
7
  // The markdown page the `markdown` reporter writes, for a reporter that posts
8
8
  // it elsewhere: @e2e-dev/github renders the pull request comment from it.
9
9
  export { renderMarkdownReport } from './report/markdown.js';
10
- //# sourceMappingURL=index.js.map
@@ -146,4 +146,3 @@ export declare class AiTraceCollector {
146
146
  }
147
147
  /** JSON with binary views omitted; arbitrary strings and raw tool JSON are preserved. */
148
148
  export declare function stringify(value: unknown): string;
149
- //# sourceMappingURL=ai-trace.d.ts.map
@@ -431,4 +431,3 @@ export function stringify(value) {
431
431
  return current;
432
432
  });
433
433
  }
434
- //# sourceMappingURL=ai-trace.js.map
@@ -14,4 +14,3 @@ export interface AtomicWriteOptions {
14
14
  export declare function writeFileAtomic(filePath: string, content: string | Uint8Array, options?: AtomicWriteOptions): Promise<void>;
15
15
  /** The synchronous twin, for a store that is read and written from synchronous code. */
16
16
  export declare function writeFileAtomicSync(filePath: string, content: string, options?: AtomicWriteOptions): void;
17
- //# sourceMappingURL=atomic-write.d.ts.map
@@ -41,4 +41,3 @@ export function writeFileAtomicSync(filePath, content, options = {}) {
41
41
  throw cause;
42
42
  }
43
43
  }
44
- //# sourceMappingURL=atomic-write.js.map
@@ -9,4 +9,3 @@ export declare const locatorBrand: unique symbol;
9
9
  export declare const expectationBrand: unique symbol;
10
10
  /** Slot on `globalThis` naming the running attempt for `expect.poll`. */
11
11
  export declare const attemptBrand: unique symbol;
12
- //# sourceMappingURL=brands.d.ts.map
@@ -9,4 +9,3 @@ export const locatorBrand = Symbol.for('e2e.locator');
9
9
  export const expectationBrand = Symbol.for('e2e.expectation.v1');
10
10
  /** Slot on `globalThis` naming the running attempt for `expect.poll`. */
11
11
  export const attemptBrand = Symbol.for('e2e.attempt.v1');
12
- //# sourceMappingURL=brands.js.map
@@ -40,4 +40,3 @@ export declare class DebugTrace {
40
40
  export declare function table(title: string, header: readonly string[], rows: readonly (readonly string[])[], empty: string, leftAligned?: ReadonlySet<number>): string;
41
41
  export declare function formatMs(value: number): string;
42
42
  export {};
43
- //# sourceMappingURL=debug.d.ts.map
@@ -99,4 +99,3 @@ export function formatMs(value) {
99
99
  return `${(value / 1000).toFixed(1)}s`;
100
100
  return `${Math.round(value)}ms`;
101
101
  }
102
- //# sourceMappingURL=debug.js.map
@@ -3,4 +3,3 @@
3
3
  export declare function envValue(env: NodeJS.ProcessEnv, name: string): string | undefined;
4
4
  /** True for a set variable that is not blank, `0`, or `false`. */
5
5
  export declare function envFlag(env: NodeJS.ProcessEnv, name: string): boolean;
6
- //# sourceMappingURL=env.d.ts.map
@@ -9,4 +9,3 @@ export function envFlag(env, name) {
9
9
  const value = envValue(env, name)?.trim().toLowerCase();
10
10
  return value !== undefined && value !== '0' && value !== 'false';
11
11
  }
12
- //# sourceMappingURL=env.js.map
@@ -172,4 +172,3 @@ export declare function sanitizeText(text: string): string;
172
172
  /** Truncates a string so its UTF-8 encoding fits maxBytes without splitting a code point. */
173
173
  export declare function truncateUtf8(text: string, maxBytes: number): string;
174
174
  export {};
175
- //# sourceMappingURL=errors.d.ts.map
@@ -342,4 +342,3 @@ export function truncateUtf8(text, maxBytes) {
342
342
  end -= 1;
343
343
  return UTF8_DECODER.decode(bytes.subarray(0, end));
344
344
  }
345
- //# sourceMappingURL=errors.js.map
@@ -28,4 +28,3 @@ export declare function overlapShare(a: Box, b: Box): number;
28
28
  * the main list. 0 for a viewport without area.
29
29
  */
30
30
  export declare function viewportShare(box: Box, viewport: ViewportSize): number;
31
- //# sourceMappingURL=geometry.d.ts.map
@@ -58,4 +58,3 @@ export function viewportShare(box, viewport) {
58
58
  return 0;
59
59
  return clamp((width * height) / (viewport.width * viewport.height), 0, 1);
60
60
  }
61
- //# sourceMappingURL=geometry.js.map
@@ -6,4 +6,3 @@
6
6
  export declare const COMMIT_HASH: RegExp;
7
7
  /** One git command's trimmed stdout; undefined when git is missing, slow, or refuses. */
8
8
  export declare function git(cwd: string, args: readonly string[]): Promise<string | undefined>;
9
- //# sourceMappingURL=git.d.ts.map
@@ -22,4 +22,3 @@ export async function git(cwd, args) {
22
22
  return undefined;
23
23
  }
24
24
  }
25
- //# sourceMappingURL=git.js.map
@@ -66,4 +66,3 @@ export declare function discoverFiles(root: string, patterns: readonly string[])
66
66
  /** Sorts strings by Unicode code point, the order collection is defined in. */
67
67
  export declare function compareCodePoints(a: string, b: string): number;
68
68
  export {};
69
- //# sourceMappingURL=globs.d.ts.map
@@ -234,4 +234,3 @@ export function compareCodePoints(a, b) {
234
234
  }
235
235
  return aPoints.length - bPoints.length;
236
236
  }
237
- //# sourceMappingURL=globs.js.map
@@ -35,4 +35,3 @@ export declare function resultId(test: string, targetId: string, agent: string,
35
35
  export declare function uuidv7(now?: number): string;
36
36
  /** RFC 3339 UTC timestamp with exactly millisecond precision. */
37
37
  export declare function timestamp(date?: Date): string;
38
- //# sourceMappingURL=ids.d.ts.map
@@ -127,4 +127,3 @@ export function uuidv7(now = Date.now()) {
127
127
  export function timestamp(date = new Date()) {
128
128
  return date.toISOString();
129
129
  }
130
- //# sourceMappingURL=ids.js.map