@e2edev/e2e 0.2.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 (399) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +104 -0
  3. package/dist/agent/act-validation.d.ts +27 -0
  4. package/dist/agent/act-validation.d.ts.map +1 -0
  5. package/dist/agent/act-validation.js +121 -0
  6. package/dist/agent/act-validation.js.map +1 -0
  7. package/dist/agent/act.d.ts +27 -0
  8. package/dist/agent/act.d.ts.map +1 -0
  9. package/dist/agent/act.js +775 -0
  10. package/dist/agent/act.js.map +1 -0
  11. package/dist/agent/actions.d.ts +66 -0
  12. package/dist/agent/actions.d.ts.map +1 -0
  13. package/dist/agent/actions.js +82 -0
  14. package/dist/agent/actions.js.map +1 -0
  15. package/dist/agent/ai-sdk.d.ts +16 -0
  16. package/dist/agent/ai-sdk.d.ts.map +1 -0
  17. package/dist/agent/ai-sdk.js +59 -0
  18. package/dist/agent/ai-sdk.js.map +1 -0
  19. package/dist/agent/call-options.d.ts +10 -0
  20. package/dist/agent/call-options.d.ts.map +1 -0
  21. package/dist/agent/call-options.js +28 -0
  22. package/dist/agent/call-options.js.map +1 -0
  23. package/dist/agent/default-agent.d.ts +22 -0
  24. package/dist/agent/default-agent.d.ts.map +1 -0
  25. package/dist/agent/default-agent.js +354 -0
  26. package/dist/agent/default-agent.js.map +1 -0
  27. package/dist/agent/error.d.ts +53 -0
  28. package/dist/agent/error.d.ts.map +1 -0
  29. package/dist/agent/error.js +94 -0
  30. package/dist/agent/error.js.map +1 -0
  31. package/dist/agent/executor.d.ts +238 -0
  32. package/dist/agent/executor.d.ts.map +1 -0
  33. package/dist/agent/executor.js +56 -0
  34. package/dist/agent/executor.js.map +1 -0
  35. package/dist/agent/index.d.ts +15 -0
  36. package/dist/agent/index.d.ts.map +1 -0
  37. package/dist/agent/index.js +304 -0
  38. package/dist/agent/index.js.map +1 -0
  39. package/dist/agent/invocation.d.ts +194 -0
  40. package/dist/agent/invocation.d.ts.map +1 -0
  41. package/dist/agent/invocation.js +389 -0
  42. package/dist/agent/invocation.js.map +1 -0
  43. package/dist/agent/ledger.d.ts +24 -0
  44. package/dist/agent/ledger.d.ts.map +1 -0
  45. package/dist/agent/ledger.js +48 -0
  46. package/dist/agent/ledger.js.map +1 -0
  47. package/dist/agent/loop-guards.d.ts +35 -0
  48. package/dist/agent/loop-guards.d.ts.map +1 -0
  49. package/dist/agent/loop-guards.js +110 -0
  50. package/dist/agent/loop-guards.js.map +1 -0
  51. package/dist/agent/model/adapter.d.ts +97 -0
  52. package/dist/agent/model/adapter.d.ts.map +1 -0
  53. package/dist/agent/model/adapter.js +40 -0
  54. package/dist/agent/model/adapter.js.map +1 -0
  55. package/dist/agent/model/router.d.ts +36 -0
  56. package/dist/agent/model/router.d.ts.map +1 -0
  57. package/dist/agent/model/router.js +45 -0
  58. package/dist/agent/model/router.js.map +1 -0
  59. package/dist/agent/model/schema.d.ts +16 -0
  60. package/dist/agent/model/schema.d.ts.map +1 -0
  61. package/dist/agent/model/schema.js +37 -0
  62. package/dist/agent/model/schema.js.map +1 -0
  63. package/dist/agent/model/sdk.d.ts +28 -0
  64. package/dist/agent/model/sdk.d.ts.map +1 -0
  65. package/dist/agent/model/sdk.js +258 -0
  66. package/dist/agent/model/sdk.js.map +1 -0
  67. package/dist/agent/observation.d.ts +70 -0
  68. package/dist/agent/observation.d.ts.map +1 -0
  69. package/dist/agent/observation.js +174 -0
  70. package/dist/agent/observation.js.map +1 -0
  71. package/dist/agent/phases.d.ts +71 -0
  72. package/dist/agent/phases.d.ts.map +1 -0
  73. package/dist/agent/phases.js +124 -0
  74. package/dist/agent/phases.js.map +1 -0
  75. package/dist/agent/prompts.d.ts +40 -0
  76. package/dist/agent/prompts.d.ts.map +1 -0
  77. package/dist/agent/prompts.js +104 -0
  78. package/dist/agent/prompts.js.map +1 -0
  79. package/dist/agent/protocol.d.ts +31 -0
  80. package/dist/agent/protocol.d.ts.map +1 -0
  81. package/dist/agent/protocol.js +67 -0
  82. package/dist/agent/protocol.js.map +1 -0
  83. package/dist/agent/public.d.ts +12 -0
  84. package/dist/agent/public.d.ts.map +1 -0
  85. package/dist/agent/public.js +12 -0
  86. package/dist/agent/public.js.map +1 -0
  87. package/dist/agent/replay.d.ts +61 -0
  88. package/dist/agent/replay.d.ts.map +1 -0
  89. package/dist/agent/replay.js +185 -0
  90. package/dist/agent/replay.js.map +1 -0
  91. package/dist/agent/secrets.d.ts +22 -0
  92. package/dist/agent/secrets.d.ts.map +1 -0
  93. package/dist/agent/secrets.js +63 -0
  94. package/dist/agent/secrets.js.map +1 -0
  95. package/dist/agent/step-cache.d.ts +156 -0
  96. package/dist/agent/step-cache.d.ts.map +1 -0
  97. package/dist/agent/step-cache.js +301 -0
  98. package/dist/agent/step-cache.js.map +1 -0
  99. package/dist/agent/tool-loop.d.ts +51 -0
  100. package/dist/agent/tool-loop.d.ts.map +1 -0
  101. package/dist/agent/tool-loop.js +331 -0
  102. package/dist/agent/tool-loop.js.map +1 -0
  103. package/dist/agent/tool.d.ts +39 -0
  104. package/dist/agent/tool.d.ts.map +1 -0
  105. package/dist/agent/tool.js +52 -0
  106. package/dist/agent/tool.js.map +1 -0
  107. package/dist/backend/contract.d.ts +186 -0
  108. package/dist/backend/contract.d.ts.map +1 -0
  109. package/dist/backend/contract.js +65 -0
  110. package/dist/backend/contract.js.map +1 -0
  111. package/dist/backend/index.d.ts +316 -0
  112. package/dist/backend/index.d.ts.map +1 -0
  113. package/dist/backend/index.js +219 -0
  114. package/dist/backend/index.js.map +1 -0
  115. package/dist/backend/session.d.ts +23 -0
  116. package/dist/backend/session.d.ts.map +1 -0
  117. package/dist/backend/session.js +213 -0
  118. package/dist/backend/session.js.map +1 -0
  119. package/dist/backend/surface.d.ts +83 -0
  120. package/dist/backend/surface.d.ts.map +1 -0
  121. package/dist/backend/surface.js +11 -0
  122. package/dist/backend/surface.js.map +1 -0
  123. package/dist/cache/anchors.d.ts +37 -0
  124. package/dist/cache/anchors.d.ts.map +1 -0
  125. package/dist/cache/anchors.js +89 -0
  126. package/dist/cache/anchors.js.map +1 -0
  127. package/dist/cache/context.d.ts +74 -0
  128. package/dist/cache/context.d.ts.map +1 -0
  129. package/dist/cache/context.js +82 -0
  130. package/dist/cache/context.js.map +1 -0
  131. package/dist/cache/decide.d.ts +42 -0
  132. package/dist/cache/decide.d.ts.map +1 -0
  133. package/dist/cache/decide.js +47 -0
  134. package/dist/cache/decide.js.map +1 -0
  135. package/dist/cache/identity.d.ts +113 -0
  136. package/dist/cache/identity.d.ts.map +1 -0
  137. package/dist/cache/identity.js +109 -0
  138. package/dist/cache/identity.js.map +1 -0
  139. package/dist/cache/recorder.d.ts +76 -0
  140. package/dist/cache/recorder.d.ts.map +1 -0
  141. package/dist/cache/recorder.js +143 -0
  142. package/dist/cache/recorder.js.map +1 -0
  143. package/dist/cache/relocate.d.ts +69 -0
  144. package/dist/cache/relocate.d.ts.map +1 -0
  145. package/dist/cache/relocate.js +125 -0
  146. package/dist/cache/relocate.js.map +1 -0
  147. package/dist/cache/store.d.ts +68 -0
  148. package/dist/cache/store.d.ts.map +1 -0
  149. package/dist/cache/store.js +106 -0
  150. package/dist/cache/store.js.map +1 -0
  151. package/dist/cache/trace.d.ts +146 -0
  152. package/dist/cache/trace.d.ts.map +1 -0
  153. package/dist/cache/trace.js +249 -0
  154. package/dist/cache/trace.js.map +1 -0
  155. package/dist/cli/bin.d.ts +3 -0
  156. package/dist/cli/bin.d.ts.map +1 -0
  157. package/dist/cli/bin.js +4 -0
  158. package/dist/cli/bin.js.map +1 -0
  159. package/dist/cli/index.d.ts +4 -0
  160. package/dist/cli/index.d.ts.map +1 -0
  161. package/dist/cli/index.js +108 -0
  162. package/dist/cli/index.js.map +1 -0
  163. package/dist/cli/init.d.ts +6 -0
  164. package/dist/cli/init.d.ts.map +1 -0
  165. package/dist/cli/init.js +101 -0
  166. package/dist/cli/init.js.map +1 -0
  167. package/dist/collect/collect.d.ts +44 -0
  168. package/dist/collect/collect.d.ts.map +1 -0
  169. package/dist/collect/collect.js +89 -0
  170. package/dist/collect/collect.js.map +1 -0
  171. package/dist/collect/registry.d.ts +47 -0
  172. package/dist/collect/registry.d.ts.map +1 -0
  173. package/dist/collect/registry.js +262 -0
  174. package/dist/collect/registry.js.map +1 -0
  175. package/dist/collect/select.d.ts +54 -0
  176. package/dist/collect/select.d.ts.map +1 -0
  177. package/dist/collect/select.js +230 -0
  178. package/dist/collect/select.js.map +1 -0
  179. package/dist/config/agent.d.ts +91 -0
  180. package/dist/config/agent.d.ts.map +1 -0
  181. package/dist/config/agent.js +232 -0
  182. package/dist/config/agent.js.map +1 -0
  183. package/dist/config/load.d.ts +23 -0
  184. package/dist/config/load.d.ts.map +1 -0
  185. package/dist/config/load.js +75 -0
  186. package/dist/config/load.js.map +1 -0
  187. package/dist/config/resolve.d.ts +94 -0
  188. package/dist/config/resolve.d.ts.map +1 -0
  189. package/dist/config/resolve.js +500 -0
  190. package/dist/config/resolve.js.map +1 -0
  191. package/dist/config/validate.d.ts +6 -0
  192. package/dist/config/validate.d.ts.map +1 -0
  193. package/dist/config/validate.js +21 -0
  194. package/dist/config/validate.js.map +1 -0
  195. package/dist/credentials.d.ts +7 -0
  196. package/dist/credentials.d.ts.map +1 -0
  197. package/dist/credentials.js +42 -0
  198. package/dist/credentials.js.map +1 -0
  199. package/dist/expect/async.d.ts +5 -0
  200. package/dist/expect/async.d.ts.map +1 -0
  201. package/dist/expect/async.js +186 -0
  202. package/dist/expect/async.js.map +1 -0
  203. package/dist/expect/index.d.ts +7 -0
  204. package/dist/expect/index.d.ts.map +1 -0
  205. package/dist/expect/index.js +23 -0
  206. package/dist/expect/index.js.map +1 -0
  207. package/dist/expect/values.d.ts +4 -0
  208. package/dist/expect/values.d.ts.map +1 -0
  209. package/dist/expect/values.js +108 -0
  210. package/dist/expect/values.js.map +1 -0
  211. package/dist/index.d.ts +13 -0
  212. package/dist/index.d.ts.map +1 -0
  213. package/dist/index.js +15 -0
  214. package/dist/index.js.map +1 -0
  215. package/dist/internal/ai-trace.d.ts +151 -0
  216. package/dist/internal/ai-trace.d.ts.map +1 -0
  217. package/dist/internal/ai-trace.js +360 -0
  218. package/dist/internal/ai-trace.js.map +1 -0
  219. package/dist/internal/brands.d.ts +9 -0
  220. package/dist/internal/brands.d.ts.map +1 -0
  221. package/dist/internal/brands.js +9 -0
  222. package/dist/internal/brands.js.map +1 -0
  223. package/dist/internal/debug.d.ts +43 -0
  224. package/dist/internal/debug.d.ts.map +1 -0
  225. package/dist/internal/debug.js +102 -0
  226. package/dist/internal/debug.js.map +1 -0
  227. package/dist/internal/errors.d.ts +98 -0
  228. package/dist/internal/errors.d.ts.map +1 -0
  229. package/dist/internal/errors.js +212 -0
  230. package/dist/internal/errors.js.map +1 -0
  231. package/dist/internal/globs.d.ts +29 -0
  232. package/dist/internal/globs.d.ts.map +1 -0
  233. package/dist/internal/globs.js +126 -0
  234. package/dist/internal/globs.js.map +1 -0
  235. package/dist/internal/ids.d.ts +32 -0
  236. package/dist/internal/ids.d.ts.map +1 -0
  237. package/dist/internal/ids.js +124 -0
  238. package/dist/internal/ids.js.map +1 -0
  239. package/dist/internal/json-value.d.ts +15 -0
  240. package/dist/internal/json-value.d.ts.map +1 -0
  241. package/dist/internal/json-value.js +61 -0
  242. package/dist/internal/json-value.js.map +1 -0
  243. package/dist/internal/package-version.d.ts +6 -0
  244. package/dist/internal/package-version.d.ts.map +1 -0
  245. package/dist/internal/package-version.js +14 -0
  246. package/dist/internal/package-version.js.map +1 -0
  247. package/dist/internal/realm-slot.d.ts +13 -0
  248. package/dist/internal/realm-slot.d.ts.map +1 -0
  249. package/dist/internal/realm-slot.js +23 -0
  250. package/dist/internal/realm-slot.js.map +1 -0
  251. package/dist/internal/redact.d.ts +33 -0
  252. package/dist/internal/redact.d.ts.map +1 -0
  253. package/dist/internal/redact.js +56 -0
  254. package/dist/internal/redact.js.map +1 -0
  255. package/dist/internal/regexp.d.ts +10 -0
  256. package/dist/internal/regexp.d.ts.map +1 -0
  257. package/dist/internal/regexp.js +27 -0
  258. package/dist/internal/regexp.js.map +1 -0
  259. package/dist/internal/text.d.ts +39 -0
  260. package/dist/internal/text.d.ts.map +1 -0
  261. package/dist/internal/text.js +66 -0
  262. package/dist/internal/text.js.map +1 -0
  263. package/dist/internal/time.d.ts +37 -0
  264. package/dist/internal/time.d.ts.map +1 -0
  265. package/dist/internal/time.js +91 -0
  266. package/dist/internal/time.js.map +1 -0
  267. package/dist/internal/trace.d.ts +18 -0
  268. package/dist/internal/trace.d.ts.map +1 -0
  269. package/dist/internal/trace.js +46 -0
  270. package/dist/internal/trace.js.map +1 -0
  271. package/dist/internal/urls.d.ts +31 -0
  272. package/dist/internal/urls.d.ts.map +1 -0
  273. package/dist/internal/urls.js +95 -0
  274. package/dist/internal/urls.js.map +1 -0
  275. package/dist/locator/engine.d.ts +65 -0
  276. package/dist/locator/engine.d.ts.map +1 -0
  277. package/dist/locator/engine.js +164 -0
  278. package/dist/locator/engine.js.map +1 -0
  279. package/dist/locator/expression.d.ts +19 -0
  280. package/dist/locator/expression.d.ts.map +1 -0
  281. package/dist/locator/expression.js +85 -0
  282. package/dist/locator/expression.js.map +1 -0
  283. package/dist/locator/screen.d.ts +36 -0
  284. package/dist/locator/screen.d.ts.map +1 -0
  285. package/dist/locator/screen.js +281 -0
  286. package/dist/locator/screen.js.map +1 -0
  287. package/dist/report/build.d.ts +214 -0
  288. package/dist/report/build.d.ts.map +1 -0
  289. package/dist/report/build.js +346 -0
  290. package/dist/report/build.js.map +1 -0
  291. package/dist/report/code-frame.d.ts +20 -0
  292. package/dist/report/code-frame.d.ts.map +1 -0
  293. package/dist/report/code-frame.js +73 -0
  294. package/dist/report/code-frame.js.map +1 -0
  295. package/dist/report/debug-steps.d.ts +14 -0
  296. package/dist/report/debug-steps.d.ts.map +1 -0
  297. package/dist/report/debug-steps.js +85 -0
  298. package/dist/report/debug-steps.js.map +1 -0
  299. package/dist/report/list.d.ts +80 -0
  300. package/dist/report/list.d.ts.map +1 -0
  301. package/dist/report/list.js +372 -0
  302. package/dist/report/list.js.map +1 -0
  303. package/dist/report/live-status.d.ts +51 -0
  304. package/dist/report/live-status.d.ts.map +1 -0
  305. package/dist/report/live-status.js +162 -0
  306. package/dist/report/live-status.js.map +1 -0
  307. package/dist/report/write.d.ts +4 -0
  308. package/dist/report/write.d.ts.map +1 -0
  309. package/dist/report/write.js +13 -0
  310. package/dist/report/write.js.map +1 -0
  311. package/dist/run/app-process.d.ts +18 -0
  312. package/dist/run/app-process.d.ts.map +1 -0
  313. package/dist/run/app-process.js +112 -0
  314. package/dist/run/app-process.js.map +1 -0
  315. package/dist/run/artifacts.d.ts +51 -0
  316. package/dist/run/artifacts.d.ts.map +1 -0
  317. package/dist/run/artifacts.js +114 -0
  318. package/dist/run/artifacts.js.map +1 -0
  319. package/dist/run/events.d.ts +100 -0
  320. package/dist/run/events.d.ts.map +1 -0
  321. package/dist/run/events.js +59 -0
  322. package/dist/run/events.js.map +1 -0
  323. package/dist/run/execute.d.ts +119 -0
  324. package/dist/run/execute.d.ts.map +1 -0
  325. package/dist/run/execute.js +555 -0
  326. package/dist/run/execute.js.map +1 -0
  327. package/dist/run/fixtures.d.ts +40 -0
  328. package/dist/run/fixtures.d.ts.map +1 -0
  329. package/dist/run/fixtures.js +408 -0
  330. package/dist/run/fixtures.js.map +1 -0
  331. package/dist/run/in-process.d.ts +24 -0
  332. package/dist/run/in-process.d.ts.map +1 -0
  333. package/dist/run/in-process.js +120 -0
  334. package/dist/run/in-process.js.map +1 -0
  335. package/dist/run/public.d.ts +19 -0
  336. package/dist/run/public.d.ts.map +1 -0
  337. package/dist/run/public.js +11 -0
  338. package/dist/run/public.js.map +1 -0
  339. package/dist/run/realm.d.ts +52 -0
  340. package/dist/run/realm.d.ts.map +1 -0
  341. package/dist/run/realm.js +101 -0
  342. package/dist/run/realm.js.map +1 -0
  343. package/dist/run/records.d.ts +87 -0
  344. package/dist/run/records.d.ts.map +1 -0
  345. package/dist/run/records.js +3 -0
  346. package/dist/run/records.js.map +1 -0
  347. package/dist/run/retry.d.ts +18 -0
  348. package/dist/run/retry.d.ts.map +1 -0
  349. package/dist/run/retry.js +33 -0
  350. package/dist/run/retry.js.map +1 -0
  351. package/dist/run/runner.d.ts +49 -0
  352. package/dist/run/runner.d.ts.map +1 -0
  353. package/dist/run/runner.js +375 -0
  354. package/dist/run/runner.js.map +1 -0
  355. package/dist/run/scheduler.d.ts +45 -0
  356. package/dist/run/scheduler.d.ts.map +1 -0
  357. package/dist/run/scheduler.js +512 -0
  358. package/dist/run/scheduler.js.map +1 -0
  359. package/dist/run/serial.d.ts +52 -0
  360. package/dist/run/serial.d.ts.map +1 -0
  361. package/dist/run/serial.js +247 -0
  362. package/dist/run/serial.js.map +1 -0
  363. package/dist/run/sessions.d.ts +54 -0
  364. package/dist/run/sessions.d.ts.map +1 -0
  365. package/dist/run/sessions.js +221 -0
  366. package/dist/run/sessions.js.map +1 -0
  367. package/dist/run/steps.d.ts +196 -0
  368. package/dist/run/steps.d.ts.map +1 -0
  369. package/dist/run/steps.js +151 -0
  370. package/dist/run/steps.js.map +1 -0
  371. package/dist/run/unit-runner.d.ts +30 -0
  372. package/dist/run/unit-runner.d.ts.map +1 -0
  373. package/dist/run/unit-runner.js +11 -0
  374. package/dist/run/unit-runner.js.map +1 -0
  375. package/dist/run/units.d.ts +50 -0
  376. package/dist/run/units.d.ts.map +1 -0
  377. package/dist/run/units.js +103 -0
  378. package/dist/run/units.js.map +1 -0
  379. package/dist/run/worker/entry.d.ts +8 -0
  380. package/dist/run/worker/entry.d.ts.map +1 -0
  381. package/dist/run/worker/entry.js +137 -0
  382. package/dist/run/worker/entry.js.map +1 -0
  383. package/dist/run/worker/handle.d.ts +10 -0
  384. package/dist/run/worker/handle.d.ts.map +1 -0
  385. package/dist/run/worker/handle.js +74 -0
  386. package/dist/run/worker/handle.js.map +1 -0
  387. package/dist/run/worker/protocol.d.ts +129 -0
  388. package/dist/run/worker/protocol.d.ts.map +1 -0
  389. package/dist/run/worker/protocol.js +18 -0
  390. package/dist/run/worker/protocol.js.map +1 -0
  391. package/dist/run/worker/session.d.ts +69 -0
  392. package/dist/run/worker/session.d.ts.map +1 -0
  393. package/dist/run/worker/session.js +123 -0
  394. package/dist/run/worker/session.js.map +1 -0
  395. package/dist/types.d.ts +630 -0
  396. package/dist/types.d.ts.map +1 -0
  397. package/dist/types.js +6 -0
  398. package/dist/types.js.map +1 -0
  399. package/package.json +91 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 TesterArmy, Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,104 @@
1
+ # e2e
2
+
3
+ The `e2e` SDK, runner, and CLI for agentic end-to-end testing. Full
4
+ documentation: [e2e.docs.buildwithfern.com](https://e2e.docs.buildwithfern.com).
5
+
6
+ ```bash
7
+ pnpm add -D e2e@beta @e2edev/playwright@beta
8
+ ```
9
+
10
+ ## Usage
11
+
12
+ ```bash
13
+ e2e init
14
+ APP_URL=http://localhost:3000 e2e run
15
+ ```
16
+
17
+ ```ts title="e2e.config.ts"
18
+ import { defineConfig } from '@e2edev/e2e';
19
+ import { playwright } from '@e2edev/playwright';
20
+
21
+ export default defineConfig({
22
+ app: { url: process.env.APP_URL ?? 'http://localhost:3000' },
23
+ targets: [{ name: 'web', platform: 'web', backend: playwright() }],
24
+ });
25
+ ```
26
+
27
+ ```ts
28
+ import { test } from '@e2edev/playwright';
29
+ import { expect } from '@e2edev/e2e';
30
+
31
+ test('user signs in', async ({ app, screen, web }) => {
32
+ await app.open('/login');
33
+ await screen.getByLabel('Email').fill('user@example.test');
34
+ await screen.getByRole('button', { name: 'Sign in' }).tap();
35
+ await expect(web).toHaveURL('/dashboard');
36
+ });
37
+ ```
38
+
39
+ The runner itself knows no platform: every target names the backend that
40
+ drives it, and `@e2edev/playwright` is the browser one. Missing Playwright
41
+ browsers are downloaded on first run. To provision them ahead of time (for
42
+ example in a CI image), run `npx playwright install chromium`.
43
+
44
+ Run files in parallel with `--workers`, or set `workers` in the config.
45
+
46
+ ## Agent steps
47
+
48
+ Deterministic tests need no model. Agent steps — `agent.act`, `assert`,
49
+ `waitFor`, and `extract` — require one:
50
+
51
+ ```ts
52
+ export default defineConfig({
53
+ agent: { model: 'anthropic/claude-sonnet-4.5' },
54
+ });
55
+ ```
56
+
57
+ ```bash
58
+ E2E_MODEL=openai/gpt-5.4-mini E2E_MODEL_API_KEY=... e2e run
59
+ ```
60
+
61
+ A `provider/model-id` string goes through the
62
+ [Vercel AI Gateway](https://vercel.com/docs/ai-gateway). To use a provider
63
+ directly, pass any AI SDK model instance instead:
64
+
65
+ ```ts
66
+ import { openai } from '@ai-sdk/openai';
67
+
68
+ export default defineConfig({
69
+ agent: { model: openai('gpt-5.4-mini') },
70
+ });
71
+ ```
72
+
73
+ Screenshots, raw HTML, cookies, headers, and registered secret values are never
74
+ sent to the model.
75
+
76
+ The adaptive trace cache (`trace-1`) replays a passing `agent.act()` step's
77
+ recorded actions zero-turn on the next run, diverging to the live agent
78
+ mid-step whenever the app no longer matches the recording, or whenever the
79
+ recorded actions ran but the recorded end state is not on screen again. An
80
+ entry is written only after a later assertion confirms the step's outcome. It
81
+ is on by default (`read-write`; CI forces the file store to `read-only`, while
82
+ a host-supplied store keeps its configured mode) — opt out with
83
+ `cache: 'off'` or per run with `--no-cache`. Entries live under
84
+ `.e2e/cache/` or in any custom `TraceCacheStore`. Judgments (`assert`,
85
+ `waitFor`, `extract`) are never cached — every judgment is made fresh, per
86
+ run, from a fresh observation.
87
+
88
+ `e2e run --ai-trace` records every model call of the run — prompt, tool
89
+ definitions, response, usage, cost — to `.e2e/ai-trace.json`, one run per
90
+ agent step, in the AI SDK devtools database shape. Open it with
91
+ [unbox-ai](https://github.com/tester-army/unbox-ai):
92
+ `npx unbox-ai .e2e/ai-trace.json`.
93
+
94
+ ## Current limitations
95
+
96
+ - `agent.act` structured output (`options.schema`) and vision evidence
97
+ (`options.vision`) reject with `UNSUPPORTED_CAPABILITY`.
98
+ - The HTML reporter and video artifacts are not available.
99
+ - Reported steps carry no source locations.
100
+ - iOS and Android need a backend package; none ships in this repo yet.
101
+
102
+ ## Contributing
103
+
104
+ See [CONTRIBUTING.md](https://github.com/tester-army/e2e/blob/main/CONTRIBUTING.md).
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Input and verdict validation for the act dispatch (spec 02, 16). Pure
3
+ * functions with no dispatch state: everything a step's arguments and an
4
+ * executor's verdict must satisfy before the harness trusts them.
5
+ */
6
+ import type { AgentOptions, AgentParams, JsonValue, Secret } from '../types.ts';
7
+ import { type StepVerdict } from './executor.ts';
8
+ /** Normalizes and bounds the instruction per spec 02. */
9
+ export declare function validateInstruction(instruction: string, api: string): string;
10
+ /** Options the socket does not support yet fail loudly, like `schema` does. */
11
+ export declare function rejectUnsupportedActOptions(options: AgentOptions | undefined): void;
12
+ /**
13
+ * Validates parameters and returns an inert, secret-free snapshot plus the
14
+ * declared secrets. A `Secret` value is projected to
15
+ * `{ kind: 'secret', name, purpose }` — its plaintext never enters the
16
+ * snapshot, the prompt, or any log — and is fillable only through
17
+ * `actions.typeSecret`. The JSON round-trip is deliberate: it bounds the
18
+ * canonical size (spec 02) and freezes what the executor sees, so a getter
19
+ * or proxy cannot change values — or run code — during later serialization.
20
+ */
21
+ export declare function validateParams(params: AgentParams | undefined): {
22
+ projected: Readonly<Record<string, JsonValue>> | undefined;
23
+ secrets: ReadonlyMap<string, Secret>;
24
+ };
25
+ /** Closes the verdict grammar: the executor cannot invent statuses or codes. */
26
+ export declare function validateVerdict(verdict: unknown, executorName: string): StepVerdict;
27
+ //# sourceMappingURL=act-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"act-validation.d.ts","sourceRoot":"","sources":["../../src/agent/act-validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAkB,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEhG,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAWlE,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAa5E;AAED,+EAA+E;AAC/E,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAUnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG;IAC/D,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;IAC3D,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,CAoBA;AAqBD,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW,CAqCnF"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Input and verdict validation for the act dispatch (spec 02, 16). Pure
3
+ * functions with no dispatch state: everything a step's arguments and an
4
+ * executor's verdict must satisfy before the harness trusts them.
5
+ */
6
+ import { ConfigurationError, TestError } from '../internal/errors.js';
7
+ import { validateJsonValue } from '../internal/json-value.js';
8
+ import { isSecret } from '../locator/screen.js';
9
+ import { AgentError, CATEGORY_BY_CODE } from './error.js';
10
+ import { BLOCKABLE_CODES } from './executor.js';
11
+ const MAX_SUMMARY_CHARS = 2_000;
12
+ /** Spec 02: instructions are 1 through 8 KiB UTF-8 after NFC. */
13
+ const MAX_INSTRUCTION_BYTES = 8_192;
14
+ /** Spec 02: canonical non-secret parameters are capped at 64 KiB, 32 levels. */
15
+ const MAX_PARAMS_BYTES = 65_536;
16
+ const MAX_PARAMS_DEPTH = 32;
17
+ /** Normalizes and bounds the instruction per spec 02. */
18
+ export function validateInstruction(instruction, api) {
19
+ if (typeof instruction !== 'string' || instruction.trim() === '') {
20
+ throw new TestError('INVALID_ARGUMENT', `${api} requires a non-empty instruction`);
21
+ }
22
+ const normalized = instruction.normalize('NFC');
23
+ const bytes = new TextEncoder().encode(normalized).byteLength;
24
+ if (bytes > MAX_INSTRUCTION_BYTES) {
25
+ throw new TestError('INVALID_ARGUMENT', `${api} instruction is ${bytes} bytes; the maximum is ${MAX_INSTRUCTION_BYTES}`);
26
+ }
27
+ return normalized;
28
+ }
29
+ /** Options the socket does not support yet fail loudly, like `schema` does. */
30
+ export function rejectUnsupportedActOptions(options) {
31
+ if (options === undefined)
32
+ return;
33
+ const unsupported = (name) => {
34
+ throw new ConfigurationError('UNSUPPORTED_CAPABILITY', `agent.act ${name} is not part of this milestone`);
35
+ };
36
+ if ('schema' in options && options.schema !== undefined)
37
+ unsupported('structured output (options.schema)');
38
+ if (options.vision !== undefined)
39
+ unsupported('vision evidence (options.vision)');
40
+ }
41
+ /**
42
+ * Validates parameters and returns an inert, secret-free snapshot plus the
43
+ * declared secrets. A `Secret` value is projected to
44
+ * `{ kind: 'secret', name, purpose }` — its plaintext never enters the
45
+ * snapshot, the prompt, or any log — and is fillable only through
46
+ * `actions.typeSecret`. The JSON round-trip is deliberate: it bounds the
47
+ * canonical size (spec 02) and freezes what the executor sees, so a getter
48
+ * or proxy cannot change values — or run code — during later serialization.
49
+ */
50
+ export function validateParams(params) {
51
+ if (params === undefined)
52
+ return { projected: undefined, secrets: new Map() };
53
+ if (typeof params !== 'object' || params === null || Array.isArray(params)) {
54
+ throw new TestError('INVALID_ARGUMENT', 'agent.act params must be a plain object');
55
+ }
56
+ const secrets = new Map();
57
+ const projectedRaw = projectSecrets(params, secrets, new Set());
58
+ validateJsonValue(projectedRaw, 'agent.act params', { maxDepth: MAX_PARAMS_DEPTH });
59
+ const canonical = JSON.stringify(projectedRaw);
60
+ const bytes = new TextEncoder().encode(canonical).byteLength;
61
+ if (bytes > MAX_PARAMS_BYTES) {
62
+ throw new TestError('INVALID_ARGUMENT', `agent.act params are ${bytes} canonical bytes; the maximum is ${MAX_PARAMS_BYTES}`);
63
+ }
64
+ return {
65
+ projected: JSON.parse(canonical),
66
+ secrets,
67
+ };
68
+ }
69
+ /** Replaces every Secret leaf with its placeholder, collecting the originals. */
70
+ function projectSecrets(value, secrets, seen) {
71
+ if (isSecret(value)) {
72
+ secrets.set(value.name, value);
73
+ return { kind: 'secret', name: value.name, purpose: value.purpose };
74
+ }
75
+ if (typeof value !== 'object' || value === null)
76
+ return value;
77
+ if (seen.has(value)) {
78
+ throw new TestError('INVALID_ARGUMENT', 'agent.act params contains a cycle');
79
+ }
80
+ seen.add(value);
81
+ if (Array.isArray(value)) {
82
+ return value.map((entry) => projectSecrets(entry, secrets, seen));
83
+ }
84
+ return Object.fromEntries(Object.entries(value).map(([key, entry]) => [key, projectSecrets(entry, secrets, seen)]));
85
+ }
86
+ /** Closes the verdict grammar: the executor cannot invent statuses or codes. */
87
+ export function validateVerdict(verdict, executorName) {
88
+ const invalid = (issue) => {
89
+ throw new AgentError('MODEL_OUTPUT_INVALID', `executor "${executorName}" returned an invalid verdict: ${issue}`);
90
+ };
91
+ if (typeof verdict !== 'object' || verdict === null)
92
+ return invalid('not an object');
93
+ const candidate = verdict;
94
+ const status = candidate['status'];
95
+ if (status !== 'passed' && status !== 'failed' && status !== 'blocked') {
96
+ return invalid(`status must be passed, failed, or blocked, got ${JSON.stringify(status)}`);
97
+ }
98
+ const summary = candidate['summary'];
99
+ if (typeof summary !== 'string' || summary.trim() === '') {
100
+ return invalid('summary must be a non-empty string');
101
+ }
102
+ const errorCode = candidate['errorCode'];
103
+ if (errorCode !== undefined) {
104
+ if (typeof errorCode !== 'string' || !(errorCode in CATEGORY_BY_CODE)) {
105
+ return invalid(`unknown errorCode ${JSON.stringify(errorCode)}`);
106
+ }
107
+ }
108
+ const code = errorCode;
109
+ if (status === 'passed' && code !== undefined) {
110
+ return invalid('a passed verdict cannot carry an errorCode');
111
+ }
112
+ if (status === 'blocked' && (code === undefined || !BLOCKABLE_CODES.has(code))) {
113
+ return invalid(`blocked requires a blockable errorCode (one of ${[...BLOCKABLE_CODES].join(', ')})`);
114
+ }
115
+ return {
116
+ status,
117
+ summary: summary.trim().slice(0, MAX_SUMMARY_CHARS),
118
+ ...(code === undefined ? {} : { errorCode: code }),
119
+ };
120
+ }
121
+ //# sourceMappingURL=act-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"act-validation.js","sourceRoot":"","sources":["../../src/agent/act-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Harness-owned dispatch of one `agent.act()` step (RFC0001, layer 3).
3
+ *
4
+ * The harness opens the step, owns the deadline, the action budget, origin
5
+ * policy, observation redaction, and recording — then hands the step to the
6
+ * configured executor and maps its verdict back onto the runner's error
7
+ * taxonomy. The executor never touches the backend: everything bottoms out in
8
+ * the context built here, on the same accounting core (phases.ts) the
9
+ * locate/judgment tier runs on. Trace-cache participation — replay, live
10
+ * recording, staging — lives beside the dispatch in `StepTraceSession`.
11
+ */
12
+ import type { AgentOptions, AgentParams, AgentResult } from '../types.ts';
13
+ import type { AgentContext } from './invocation.ts';
14
+ /** Runs one `agent.act()` call as a harness-dispatched executor step. */
15
+ export declare function runActStep(runtime: AgentContext, instruction: string, params: AgentParams | undefined, options: AgentOptions | undefined): Promise<AgentResult>;
16
+ /**
17
+ * Runs one `agent.assert()` call through the executor socket. Used when a
18
+ * custom executor is configured: the brain that plans flows also judges
19
+ * assertions, so swapping brains swaps all the thinking. The built-in
20
+ * single-judgment tier remains the default-path implementation.
21
+ */
22
+ export declare function runAssertStep(runtime: AgentContext, assertion: string, options: {
23
+ timeout?: number;
24
+ vision?: unknown;
25
+ screenshot?: boolean;
26
+ } | undefined): Promise<void>;
27
+ //# sourceMappingURL=act.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"act.d.ts","sourceRoot":"","sources":["../../src/agent/act.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,KAAK,EAEV,YAAY,EACZ,WAAW,EACX,WAAW,EAKZ,MAAM,aAAa,CAAC;AAkBrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA6BpD,yEAAyE;AACzE,wBAAsB,UAAU,CAC9B,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,EAAE,YAAY,GAAG,SAAS,GAChC,OAAO,CAAC,WAAW,CAAC,CAgBtB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,GAChF,OAAO,CAAC,IAAI,CAAC,CAqBf"}