@e2edev/e2e 0.5.1 → 0.6.1

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 (337) hide show
  1. package/README.md +24 -11
  2. package/dist/agent/act.d.ts +1 -1
  3. package/dist/agent/act.js +4 -2
  4. package/dist/agent/act.js.map +1 -1
  5. package/dist/agent/ai-sdk.d.ts +1 -2
  6. package/dist/agent/ai-sdk.d.ts.map +1 -1
  7. package/dist/agent/ai-sdk.js +1 -2
  8. package/dist/agent/ai-sdk.js.map +1 -1
  9. package/dist/agent/default-agent.d.ts +7 -3
  10. package/dist/agent/default-agent.d.ts.map +1 -1
  11. package/dist/agent/default-agent.js +2 -2
  12. package/dist/agent/default-agent.js.map +1 -1
  13. package/dist/agent/derived.d.ts +1 -1
  14. package/dist/agent/derived.js +1 -1
  15. package/dist/agent/error.d.ts +2 -2
  16. package/dist/agent/error.d.ts.map +1 -1
  17. package/dist/agent/error.js +2 -2
  18. package/dist/agent/error.js.map +1 -1
  19. package/dist/agent/executor.d.ts +8 -3
  20. package/dist/agent/executor.d.ts.map +1 -1
  21. package/dist/agent/executor.js +1 -1
  22. package/dist/agent/executor.js.map +1 -1
  23. package/dist/agent/index.d.ts +1 -1
  24. package/dist/agent/index.d.ts.map +1 -1
  25. package/dist/agent/index.js +8 -5
  26. package/dist/agent/index.js.map +1 -1
  27. package/dist/agent/invocation.d.ts +2 -2
  28. package/dist/agent/invocation.d.ts.map +1 -1
  29. package/dist/agent/invocation.js +9 -3
  30. package/dist/agent/invocation.js.map +1 -1
  31. package/dist/agent/ledger.d.ts +1 -1
  32. package/dist/agent/ledger.js +1 -1
  33. package/dist/agent/model/adapter.d.ts +7 -4
  34. package/dist/agent/model/adapter.d.ts.map +1 -1
  35. package/dist/agent/model/adapter.js +2 -2
  36. package/dist/agent/model/adapter.js.map +1 -1
  37. package/dist/agent/model/router.d.ts +1 -1
  38. package/dist/agent/model/router.d.ts.map +1 -1
  39. package/dist/agent/model/router.js +1 -1
  40. package/dist/agent/model/router.js.map +1 -1
  41. package/dist/agent/model/sdk.d.ts +11 -1
  42. package/dist/agent/model/sdk.d.ts.map +1 -1
  43. package/dist/agent/model/sdk.js +54 -10
  44. package/dist/agent/model/sdk.js.map +1 -1
  45. package/dist/agent/observation.d.ts +1 -1
  46. package/dist/agent/observation.d.ts.map +1 -1
  47. package/dist/agent/observation.js +2 -2
  48. package/dist/agent/observation.js.map +1 -1
  49. package/dist/agent/prompts.d.ts +1 -1
  50. package/dist/agent/prompts.js +1 -1
  51. package/dist/agent/protocol.d.ts +2 -3
  52. package/dist/agent/protocol.d.ts.map +1 -1
  53. package/dist/agent/protocol.js +2 -3
  54. package/dist/agent/protocol.js.map +1 -1
  55. package/dist/agent/public.d.ts +1 -1
  56. package/dist/agent/public.js +1 -1
  57. package/dist/agent/replay.d.ts +1 -1
  58. package/dist/agent/replay.js +1 -1
  59. package/dist/agent/secrets.d.ts +1 -1
  60. package/dist/agent/secrets.d.ts.map +1 -1
  61. package/dist/agent/secrets.js +1 -1
  62. package/dist/agent/secrets.js.map +1 -1
  63. package/dist/agent/step-cache.d.ts +1 -1
  64. package/dist/agent/step-cache.d.ts.map +1 -1
  65. package/dist/agent/step-cache.js +7 -1
  66. package/dist/agent/step-cache.js.map +1 -1
  67. package/dist/agent/tool-loop.d.ts +7 -3
  68. package/dist/agent/tool-loop.d.ts.map +1 -1
  69. package/dist/agent/tool-loop.js +6 -5
  70. package/dist/agent/tool-loop.js.map +1 -1
  71. package/dist/agent/usage.d.ts +6 -1
  72. package/dist/agent/usage.d.ts.map +1 -1
  73. package/dist/agent/usage.js +12 -0
  74. package/dist/agent/usage.js.map +1 -1
  75. package/dist/cache/anchors.d.ts +1 -1
  76. package/dist/cache/anchors.js +1 -1
  77. package/dist/cache/context.d.ts +6 -1
  78. package/dist/cache/context.d.ts.map +1 -1
  79. package/dist/cache/context.js +2 -1
  80. package/dist/cache/context.js.map +1 -1
  81. package/dist/cache/decide.d.ts +1 -1
  82. package/dist/cache/decide.js +1 -1
  83. package/dist/cache/identity.d.ts +1 -1
  84. package/dist/cache/identity.js +1 -1
  85. package/dist/cache/recorder.d.ts +4 -2
  86. package/dist/cache/recorder.d.ts.map +1 -1
  87. package/dist/cache/recorder.js +10 -1
  88. package/dist/cache/recorder.js.map +1 -1
  89. package/dist/cache/relocate.d.ts +1 -1
  90. package/dist/cache/relocate.js +1 -1
  91. package/dist/cache/store.d.ts +1 -1
  92. package/dist/cache/store.js +1 -1
  93. package/dist/cache/trace.d.ts +16 -1
  94. package/dist/cache/trace.d.ts.map +1 -1
  95. package/dist/cache/trace.js +22 -1
  96. package/dist/cache/trace.js.map +1 -1
  97. package/dist/cli/bin.js +9 -1
  98. package/dist/cli/bin.js.map +1 -1
  99. package/dist/cli/cache.d.ts +25 -0
  100. package/dist/cli/cache.d.ts.map +1 -0
  101. package/dist/cli/cache.js +249 -0
  102. package/dist/cli/cache.js.map +1 -0
  103. package/dist/cli/docs-url.d.ts +3 -0
  104. package/dist/cli/docs-url.d.ts.map +1 -0
  105. package/dist/cli/docs-url.js +3 -0
  106. package/dist/cli/docs-url.js.map +1 -0
  107. package/dist/cli/guide.d.ts +4 -0
  108. package/dist/cli/guide.d.ts.map +1 -0
  109. package/dist/cli/guide.js +16 -0
  110. package/dist/cli/guide.js.map +1 -0
  111. package/dist/cli/index.d.ts +1 -1
  112. package/dist/cli/index.d.ts.map +1 -1
  113. package/dist/cli/index.js +210 -41
  114. package/dist/cli/index.js.map +1 -1
  115. package/dist/cli/init/agent-skill.d.ts +34 -0
  116. package/dist/cli/init/agent-skill.d.ts.map +1 -0
  117. package/dist/cli/init/agent-skill.js +44 -0
  118. package/dist/cli/init/agent-skill.js.map +1 -0
  119. package/dist/cli/init/engines.d.ts +31 -23
  120. package/dist/cli/init/engines.d.ts.map +1 -1
  121. package/dist/cli/init/engines.js +34 -24
  122. package/dist/cli/init/engines.js.map +1 -1
  123. package/dist/cli/init/package.d.ts +19 -3
  124. package/dist/cli/init/package.d.ts.map +1 -1
  125. package/dist/cli/init/package.js +20 -20
  126. package/dist/cli/init/package.js.map +1 -1
  127. package/dist/cli/init/scaffold.d.ts.map +1 -1
  128. package/dist/cli/init/scaffold.js +5 -3
  129. package/dist/cli/init/scaffold.js.map +1 -1
  130. package/dist/cli/init.d.ts +14 -2
  131. package/dist/cli/init.d.ts.map +1 -1
  132. package/dist/cli/init.js +94 -16
  133. package/dist/cli/init.js.map +1 -1
  134. package/dist/cli/signals.d.ts +4 -1
  135. package/dist/cli/signals.d.ts.map +1 -1
  136. package/dist/cli/signals.js +8 -2
  137. package/dist/cli/signals.js.map +1 -1
  138. package/dist/cli/skill.d.ts +16 -0
  139. package/dist/cli/skill.d.ts.map +1 -0
  140. package/dist/cli/skill.js +57 -0
  141. package/dist/cli/skill.js.map +1 -0
  142. package/dist/collect/collect.d.ts +9 -1
  143. package/dist/collect/collect.d.ts.map +1 -1
  144. package/dist/collect/collect.js +50 -5
  145. package/dist/collect/collect.js.map +1 -1
  146. package/dist/collect/registry.d.ts +1 -1
  147. package/dist/collect/registry.d.ts.map +1 -1
  148. package/dist/collect/registry.js +1 -1
  149. package/dist/collect/registry.js.map +1 -1
  150. package/dist/collect/select.d.ts +1 -1
  151. package/dist/collect/select.d.ts.map +1 -1
  152. package/dist/collect/select.js +77 -8
  153. package/dist/collect/select.js.map +1 -1
  154. package/dist/config/agent.d.ts +14 -2
  155. package/dist/config/agent.d.ts.map +1 -1
  156. package/dist/config/agent.js +53 -16
  157. package/dist/config/agent.js.map +1 -1
  158. package/dist/config/app.d.ts +2 -2
  159. package/dist/config/app.d.ts.map +1 -1
  160. package/dist/config/app.js +3 -3
  161. package/dist/config/app.js.map +1 -1
  162. package/dist/config/diagnose.d.ts +15 -0
  163. package/dist/config/diagnose.d.ts.map +1 -0
  164. package/dist/config/diagnose.js +122 -0
  165. package/dist/config/diagnose.js.map +1 -0
  166. package/dist/config/load.d.ts +9 -1
  167. package/dist/config/load.d.ts.map +1 -1
  168. package/dist/config/load.js +35 -3
  169. package/dist/config/load.js.map +1 -1
  170. package/dist/config/resolve.d.ts +2 -2
  171. package/dist/config/resolve.d.ts.map +1 -1
  172. package/dist/config/resolve.js +51 -16
  173. package/dist/config/resolve.js.map +1 -1
  174. package/dist/config/validate.d.ts +6 -2
  175. package/dist/config/validate.d.ts.map +1 -1
  176. package/dist/config/validate.js +20 -3
  177. package/dist/config/validate.js.map +1 -1
  178. package/dist/credentials.d.ts +1 -1
  179. package/dist/credentials.d.ts.map +1 -1
  180. package/dist/credentials.js +1 -1
  181. package/dist/credentials.js.map +1 -1
  182. package/dist/engine/contract.d.ts +2 -2
  183. package/dist/engine/contract.js +1 -1
  184. package/dist/engine/index.d.ts +2 -2
  185. package/dist/engine/index.js +3 -3
  186. package/dist/engine/index.js.map +1 -1
  187. package/dist/engine/session.d.ts +1 -1
  188. package/dist/engine/session.d.ts.map +1 -1
  189. package/dist/engine/session.js +5 -2
  190. package/dist/engine/session.js.map +1 -1
  191. package/dist/expect/async.d.ts +1 -1
  192. package/dist/expect/async.d.ts.map +1 -1
  193. package/dist/expect/async.js +37 -1
  194. package/dist/expect/async.js.map +1 -1
  195. package/dist/expect/values.d.ts +1 -1
  196. package/dist/expect/values.d.ts.map +1 -1
  197. package/dist/expect/values.js +1 -1
  198. package/dist/expect/values.js.map +1 -1
  199. package/dist/index.d.ts +0 -3
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +0 -4
  202. package/dist/index.js.map +1 -1
  203. package/dist/internal/errors.d.ts +21 -3
  204. package/dist/internal/errors.d.ts.map +1 -1
  205. package/dist/internal/errors.js +55 -5
  206. package/dist/internal/errors.js.map +1 -1
  207. package/dist/internal/globs.d.ts +2 -2
  208. package/dist/internal/globs.d.ts.map +1 -1
  209. package/dist/internal/globs.js +2 -2
  210. package/dist/internal/globs.js.map +1 -1
  211. package/dist/internal/ids.d.ts +3 -3
  212. package/dist/internal/ids.d.ts.map +1 -1
  213. package/dist/internal/ids.js +3 -3
  214. package/dist/internal/ids.js.map +1 -1
  215. package/dist/internal/node-version.d.ts +10 -0
  216. package/dist/internal/node-version.d.ts.map +1 -0
  217. package/dist/internal/node-version.js +28 -0
  218. package/dist/internal/node-version.js.map +1 -0
  219. package/dist/internal/package-manager.d.ts +10 -0
  220. package/dist/internal/package-manager.d.ts.map +1 -0
  221. package/dist/internal/package-manager.js +43 -0
  222. package/dist/internal/package-manager.js.map +1 -0
  223. package/dist/internal/redact.d.ts +1 -1
  224. package/dist/internal/redact.d.ts.map +1 -1
  225. package/dist/internal/redact.js +1 -1
  226. package/dist/internal/redact.js.map +1 -1
  227. package/dist/internal/suggest.d.ts +16 -0
  228. package/dist/internal/suggest.d.ts.map +1 -0
  229. package/dist/internal/suggest.js +61 -0
  230. package/dist/internal/suggest.js.map +1 -0
  231. package/dist/internal/text.d.ts +1 -1
  232. package/dist/internal/text.d.ts.map +1 -1
  233. package/dist/internal/text.js +1 -1
  234. package/dist/internal/text.js.map +1 -1
  235. package/dist/internal/urls.d.ts +2 -2
  236. package/dist/internal/urls.d.ts.map +1 -1
  237. package/dist/internal/urls.js +2 -2
  238. package/dist/internal/urls.js.map +1 -1
  239. package/dist/locator/engine.d.ts +1 -1
  240. package/dist/locator/engine.d.ts.map +1 -1
  241. package/dist/locator/engine.js +1 -1
  242. package/dist/locator/engine.js.map +1 -1
  243. package/dist/locator/expression.d.ts +1 -1
  244. package/dist/locator/expression.d.ts.map +1 -1
  245. package/dist/locator/expression.js +1 -1
  246. package/dist/locator/expression.js.map +1 -1
  247. package/dist/locator/screen.js +1 -1
  248. package/dist/locator/screen.js.map +1 -1
  249. package/dist/report/build.d.ts +1 -1
  250. package/dist/report/build.d.ts.map +1 -1
  251. package/dist/report/build.js +4 -4
  252. package/dist/report/build.js.map +1 -1
  253. package/dist/report/format.d.ts +9 -1
  254. package/dist/report/format.d.ts.map +1 -1
  255. package/dist/report/format.js +17 -4
  256. package/dist/report/format.js.map +1 -1
  257. package/dist/report/junit.d.ts +1 -1
  258. package/dist/report/junit.d.ts.map +1 -1
  259. package/dist/report/junit.js +1 -1
  260. package/dist/report/junit.js.map +1 -1
  261. package/dist/report/list-model.d.ts +79 -0
  262. package/dist/report/list-model.d.ts.map +1 -0
  263. package/dist/report/list-model.js +10 -0
  264. package/dist/report/list-model.js.map +1 -0
  265. package/dist/report/list-steps.d.ts +27 -0
  266. package/dist/report/list-steps.d.ts.map +1 -0
  267. package/dist/report/list-steps.js +65 -0
  268. package/dist/report/list-steps.js.map +1 -0
  269. package/dist/report/list.d.ts +26 -24
  270. package/dist/report/list.d.ts.map +1 -1
  271. package/dist/report/list.js +89 -157
  272. package/dist/report/list.js.map +1 -1
  273. package/dist/report/live-window.d.ts +11 -0
  274. package/dist/report/live-window.d.ts.map +1 -1
  275. package/dist/report/live-window.js +12 -5
  276. package/dist/report/live-window.js.map +1 -1
  277. package/dist/report/running-tree.d.ts +46 -0
  278. package/dist/report/running-tree.d.ts.map +1 -0
  279. package/dist/report/running-tree.js +182 -0
  280. package/dist/report/running-tree.js.map +1 -0
  281. package/dist/report/write.d.ts +1 -1
  282. package/dist/report/write.d.ts.map +1 -1
  283. package/dist/report/write.js +1 -1
  284. package/dist/report/write.js.map +1 -1
  285. package/dist/run/budget.d.ts +2 -2
  286. package/dist/run/budget.js +2 -2
  287. package/dist/run/declared-processes.d.ts +1 -1
  288. package/dist/run/declared-processes.js +1 -1
  289. package/dist/run/events.d.ts +2 -0
  290. package/dist/run/events.d.ts.map +1 -1
  291. package/dist/run/events.js.map +1 -1
  292. package/dist/run/execute.d.ts +2 -3
  293. package/dist/run/execute.d.ts.map +1 -1
  294. package/dist/run/execute.js +4 -5
  295. package/dist/run/execute.js.map +1 -1
  296. package/dist/run/fixtures.d.ts +1 -1
  297. package/dist/run/fixtures.d.ts.map +1 -1
  298. package/dist/run/fixtures.js +41 -5
  299. package/dist/run/fixtures.js.map +1 -1
  300. package/dist/run/managed-process.d.ts +8 -1
  301. package/dist/run/managed-process.d.ts.map +1 -1
  302. package/dist/run/managed-process.js +35 -17
  303. package/dist/run/managed-process.js.map +1 -1
  304. package/dist/run/realm.d.ts +2 -2
  305. package/dist/run/realm.js +2 -2
  306. package/dist/run/runner.d.ts +22 -0
  307. package/dist/run/runner.d.ts.map +1 -1
  308. package/dist/run/runner.js +47 -9
  309. package/dist/run/runner.js.map +1 -1
  310. package/dist/run/scheduler.d.ts +1 -2
  311. package/dist/run/scheduler.d.ts.map +1 -1
  312. package/dist/run/scheduler.js +2 -3
  313. package/dist/run/scheduler.js.map +1 -1
  314. package/dist/run/serial.d.ts +1 -1
  315. package/dist/run/serial.d.ts.map +1 -1
  316. package/dist/run/serial.js +3 -3
  317. package/dist/run/serial.js.map +1 -1
  318. package/dist/run/sessions.d.ts +1 -1
  319. package/dist/run/sessions.d.ts.map +1 -1
  320. package/dist/run/sessions.js +1 -1
  321. package/dist/run/sessions.js.map +1 -1
  322. package/dist/run/steps.d.ts +8 -2
  323. package/dist/run/steps.d.ts.map +1 -1
  324. package/dist/run/steps.js +1 -1
  325. package/dist/run/steps.js.map +1 -1
  326. package/dist/run/units.d.ts +1 -1
  327. package/dist/run/units.js +1 -1
  328. package/dist/types.d.ts +27 -8
  329. package/dist/types.d.ts.map +1 -1
  330. package/dist/types.js +2 -2
  331. package/package.json +13 -12
  332. package/skills/e2e/SKILL.md +110 -0
  333. package/skills/e2e/references/agent.md +210 -0
  334. package/skills/e2e/references/debugging.md +81 -0
  335. package/skills/e2e/references/running.md +153 -0
  336. package/skills/e2e/references/setup.md +239 -0
  337. package/skills/e2e/references/writing-tests.md +289 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Deterministic target relocation (RFC0001 layer 3, cache-in decision).
2
+ * Deterministic target relocation.
3
3
  *
4
4
  * Re-finds a recorded target descriptor in a fresh observation: exactly one
5
5
  * node must match, or replay diverges. This is the conservative public
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Trace entry storage (RFC0001 layer 3, cache-in decision).
2
+ * Trace entry storage.
3
3
  *
4
4
  * One file per key under `.e2e/cache/`, named for the key digest. Reads fail
5
5
  * closed: an oversized or unreadable entry is a miss, never a repair. Writes go
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Trace entry storage (RFC0001 layer 3, cache-in decision).
2
+ * Trace entry storage.
3
3
  *
4
4
  * One file per key under `.e2e/cache/`, named for the key digest. Reads fail
5
5
  * closed: an oversized or unreadable entry is a miss, never a repair. Writes go
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `trace-1` entry format (RFC0001 layer 3, cache-in decision).
2
+ * `trace-1` entry format.
3
3
  *
4
4
  * A trace is the ordered list of grammar actions one passing `agent.act()`
5
5
  * step performed, each with a durable target descriptor and secret-free,
@@ -40,6 +40,19 @@ export declare function bound(text: string, maxChars: number): string;
40
40
  export declare const MAX_TRACE_ANCHORS = 8;
41
41
  /** Longest a replay waits for the recorded end state to return. */
42
42
  export declare const MAX_TRACE_END_WAIT_MS = 120000;
43
+ /**
44
+ * What a trace was recorded for, in the terms a person uses: the test, the
45
+ * target, and the digest of the instruction. None of it is replay input —
46
+ * every one of these fields is already in the key, so a mismatch is a miss
47
+ * before an entry is ever read — and none of it is trusted as such. It exists
48
+ * so a file named after a digest can say which test it belongs to.
49
+ */
50
+ export interface TraceProvenance {
51
+ readonly testId: string;
52
+ readonly targetId: string;
53
+ /** SHA-256 of the normalized instruction (`cache/identity.ts`). */
54
+ readonly instructionDigest: string;
55
+ }
43
56
  /**
44
57
  * How a recorded action addressed its node, independent of observation ids.
45
58
  * Ids are minted per observation, so replay re-finds the node from the
@@ -111,6 +124,8 @@ export interface ActionTrace {
111
124
  readonly name: string;
112
125
  readonly version?: string;
113
126
  };
127
+ /** Which test, target, and instruction recorded it; absent on older entries. */
128
+ readonly recordedFor?: TraceProvenance;
114
129
  /** The recorded run's verdict summary. */
115
130
  readonly summary: string;
116
131
  /** Location path when the step began; a precondition unless the trace opens with navigate. */
@@ -1 +1 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/cache/trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/cache/trace.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `trace-1` entry format (RFC0001 layer 3, cache-in decision).
2
+ * `trace-1` entry format.
3
3
  *
4
4
  * A trace is the ordered list of grammar actions one passing `agent.act()`
5
5
  * step performed, each with a durable target descriptor and secret-free,
@@ -43,6 +43,8 @@ export const MAX_TRACE_ANCHORS = 8;
43
43
  /** Longest a replay waits for the recorded end state to return. */
44
44
  export const MAX_TRACE_END_WAIT_MS = 120_000;
45
45
  const SCROLL_DIRECTIONS = new Set(['up', 'down', 'left', 'right']);
46
+ /** The shape of a SHA-256 digest in hex, as `instructionDigest` writes it. */
47
+ const SHA256_HEX = /^[a-f0-9]{64}$/u;
46
48
  /** The shape `timestamp()` writes: an ISO 8601 UTC instant. */
47
49
  const ISO_INSTANT = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/;
48
50
  /** Wraps one trace as a fresh entry. */
@@ -87,6 +89,10 @@ function readActionTrace(document) {
87
89
  return undefined;
88
90
  if (executorVersion !== undefined && typeof executorVersion !== 'string')
89
91
  return undefined;
92
+ const recordedForRaw = raw['recordedFor'];
93
+ const recordedFor = recordedForRaw === undefined ? undefined : readProvenance(recordedForRaw);
94
+ if (recordedForRaw !== undefined && recordedFor === undefined)
95
+ return undefined;
90
96
  const summary = readBoundedText(raw['summary'], MAX_TRACE_SUMMARY_CHARS);
91
97
  if (summary === undefined)
92
98
  return undefined;
@@ -140,6 +146,7 @@ function readActionTrace(document) {
140
146
  name: executorName,
141
147
  ...(executorVersion === undefined ? {} : { version: executorVersion }),
142
148
  },
149
+ ...(recordedFor === undefined ? {} : { recordedFor }),
143
150
  summary,
144
151
  ...(startPath === undefined ? {} : { startPath }),
145
152
  ...(endPath === undefined ? {} : { endPath }),
@@ -242,6 +249,20 @@ function readDescriptor(document) {
242
249
  return undefined;
243
250
  return descriptor;
244
251
  }
252
+ function readProvenance(document) {
253
+ if (typeof document !== 'object' || document === null || Array.isArray(document)) {
254
+ return undefined;
255
+ }
256
+ const raw = document;
257
+ const testId = readBoundedText(raw['testId'], MAX_TRACE_DESCRIPTOR_CHARS);
258
+ const targetId = readBoundedText(raw['targetId'], MAX_TRACE_DESCRIPTOR_CHARS);
259
+ const instructionDigest = raw['instructionDigest'];
260
+ if (testId === undefined || targetId === undefined)
261
+ return undefined;
262
+ if (typeof instructionDigest !== 'string' || !SHA256_HEX.test(instructionDigest))
263
+ return undefined;
264
+ return { testId, targetId, instructionDigest };
265
+ }
245
266
  function readBoundedText(value, maxChars) {
246
267
  if (typeof value !== 'string' || value.trim() === '' || value.length > maxChars) {
247
268
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/cache/trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/cache/trace.ts"],"names":[],"mappings":"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"}
package/dist/cli/bin.js CHANGED
@@ -1,4 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import { main } from './index.js';
2
+ import { unsupportedNodeMessage } from '../internal/node-version.js';
3
+ // Checked before the CLI module loads: that module and its dependencies are
4
+ // what an old runtime would fail on, with a stack trace instead of a sentence.
5
+ const unsupported = unsupportedNodeMessage(process.versions.node);
6
+ if (unsupported !== undefined) {
7
+ process.stderr.write(`${unsupported}\n`);
8
+ process.exit(2);
9
+ }
10
+ const { main } = await import('./index.js');
3
11
  await main(process.argv);
4
12
  //# sourceMappingURL=bin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,4EAA4E;AAC5E,+EAA+E;AAC/E,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;AAC5C,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * `e2e cache`: what is in the trace cache, and how to get rid of it.
3
+ *
4
+ * The store is a directory of digest-named files, so a committed cache is
5
+ * unreadable without a reader: `ls` prints each entry's provenance — the test,
6
+ * the target, the instruction digest, its age, and how many actions it would
7
+ * replay — `stats` sizes the store, and `clear` empties it.
8
+ *
9
+ * Every command works on files only. A project that configures `cache.store`
10
+ * replaced the filesystem with its own store, and this CLI has no way to
11
+ * enumerate it, so it says so instead of listing an empty directory.
12
+ */
13
+ export type CacheCommand = 'ls' | 'clear' | 'stats';
14
+ export interface CacheOptions {
15
+ /** Explicit config path; the nearest `e2e.config.ts` when absent. */
16
+ readonly config?: string;
17
+ readonly cwd?: string;
18
+ }
19
+ /**
20
+ * Runs one `e2e cache` command against the configured store directory.
21
+ * Returns the process exit code: 2 for a config or filesystem error, 0
22
+ * otherwise — an empty or absent cache is a fact, not a failure.
23
+ */
24
+ export declare function cache(command: CacheCommand, options?: CacheOptions): Promise<number>;
25
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/cli/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AA+BD;;;;GAIG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB9F"}
@@ -0,0 +1,249 @@
1
+ /**
2
+ * `e2e cache`: what is in the trace cache, and how to get rid of it.
3
+ *
4
+ * The store is a directory of digest-named files, so a committed cache is
5
+ * unreadable without a reader: `ls` prints each entry's provenance — the test,
6
+ * the target, the instruction digest, its age, and how many actions it would
7
+ * replay — `stats` sizes the store, and `clear` empties it.
8
+ *
9
+ * Every command works on files only. A project that configures `cache.store`
10
+ * replaced the filesystem with its own store, and this CLI has no way to
11
+ * enumerate it, so it says so instead of listing an empty directory.
12
+ */
13
+ import { readdir, rm, rmdir } from 'node:fs/promises';
14
+ import path from 'node:path';
15
+ import picocolors from 'picocolors';
16
+ import { FileTraceCacheStore, MAX_CACHE_WIRE_BYTES } from '../cache/store.js';
17
+ import { discoverConfig, loadConfigModule, missingConfigError } from '../config/load.js';
18
+ import { resolveConfig } from '../config/resolve.js';
19
+ import { errorMessage } from '../internal/errors.js';
20
+ /** Store file names: the key digest, as `FileTraceCacheStore` writes them. */
21
+ const ENTRY_FILE = /^([a-f0-9]{64})\.json$/u;
22
+ /** A crashed writer's leftover; a store file for cleanup purposes. */
23
+ const TEMPORARY_FILE = /^[a-f0-9]{64}\.json\.[a-f0-9]{16}\.tmp$/u;
24
+ /** Digest prefix printed instead of the full 64 hex characters. */
25
+ const DIGEST_PREFIX_CHARS = 12;
26
+ /**
27
+ * Runs one `e2e cache` command against the configured store directory.
28
+ * Returns the process exit code: 2 for a config or filesystem error, 0
29
+ * otherwise — an empty or absent cache is a fact, not a failure.
30
+ */
31
+ export async function cache(command, options = {}) {
32
+ let directory;
33
+ try {
34
+ directory = await resolveCacheDirectory(options);
35
+ }
36
+ catch (cause) {
37
+ process.stderr.write(`${errorMessage(cause)}\n`);
38
+ return 2;
39
+ }
40
+ try {
41
+ const contents = await readContents(directory);
42
+ switch (command) {
43
+ case 'ls':
44
+ return list(contents);
45
+ case 'stats':
46
+ return stats(contents);
47
+ case 'clear':
48
+ return await clear(contents);
49
+ }
50
+ }
51
+ catch (cause) {
52
+ process.stderr.write(`trace cache at ${directory} could not be read: ${errorMessage(cause)}\n`);
53
+ return 2;
54
+ }
55
+ }
56
+ /**
57
+ * The store directory from the project's resolved config, so `cache.dir` and
58
+ * `--config` mean here what they mean to a run.
59
+ */
60
+ async function resolveCacheDirectory(options) {
61
+ const cwd = options.cwd ?? process.cwd();
62
+ const discovered = discoverConfig(cwd, options.config);
63
+ if (discovered.configPath === undefined)
64
+ throw missingConfigError(cwd);
65
+ const raw = await loadConfigModule(discovered.configPath);
66
+ const config = resolveConfig(raw, {
67
+ projectRoot: discovered.projectRoot,
68
+ configPath: discovered.configPath,
69
+ env: process.env,
70
+ });
71
+ if (config.cache.store !== undefined) {
72
+ throw new Error('cache.store replaces the file store with a custom one; e2e cache reads files only, so inspect that store with its own tools');
73
+ }
74
+ return config.cache.dir;
75
+ }
76
+ /**
77
+ * Every file in the store directory, classified. Reads go through the store
78
+ * itself, so a file this CLI calls an entry is exactly one a run would
79
+ * replay: an oversized or unparseable file is unreadable here and a miss
80
+ * there. A directory that does not exist is an empty store.
81
+ */
82
+ async function readContents(directory) {
83
+ const store = new FileTraceCacheStore({ directory, maxBytes: MAX_CACHE_WIRE_BYTES, writable: false });
84
+ const entries = [];
85
+ const unreadable = [];
86
+ const foreign = [];
87
+ let names;
88
+ try {
89
+ names = await readdir(directory);
90
+ }
91
+ catch (cause) {
92
+ if (cause.code === 'ENOENT') {
93
+ return { directory, entries, unreadable, foreign };
94
+ }
95
+ throw cause;
96
+ }
97
+ for (const name of names.toSorted()) {
98
+ const keyHash = ENTRY_FILE.exec(name)?.[1];
99
+ if (keyHash === undefined) {
100
+ if (!TEMPORARY_FILE.test(name))
101
+ foreign.push(name);
102
+ continue;
103
+ }
104
+ const read = await store.read(keyHash);
105
+ if (read.status !== 'hit') {
106
+ unreadable.push({ name, bytes: read.status === 'invalid' ? (read.bytes ?? 0) : 0 });
107
+ continue;
108
+ }
109
+ const trace = read.entry.payload;
110
+ entries.push({
111
+ keyHash,
112
+ bytes: read.bytes,
113
+ createdAt: read.entry.createdAt,
114
+ actions: trace.actions.length,
115
+ truncated: trace.truncated === true,
116
+ testId: trace.recordedFor?.testId,
117
+ targetId: trace.recordedFor?.targetId,
118
+ instructionDigest: trace.recordedFor?.instructionDigest,
119
+ });
120
+ }
121
+ return { directory, entries, unreadable, foreign };
122
+ }
123
+ /**
124
+ * Prints one row per entry, newest last within a test, so a reviewer reads a
125
+ * committed cache test by test. Provenance an entry does not carry — one
126
+ * recorded before entries described themselves — prints as `-`.
127
+ */
128
+ function list(contents) {
129
+ if (contents.entries.length === 0) {
130
+ process.stdout.write(`no trace cache entries in ${contents.directory}\n`);
131
+ warnAboutSkipped(contents);
132
+ return 0;
133
+ }
134
+ const now = Date.now();
135
+ const rows = contents.entries
136
+ .toSorted((left, right) => (left.testId ?? '').localeCompare(right.testId ?? '') ||
137
+ (left.targetId ?? '').localeCompare(right.targetId ?? '') ||
138
+ left.createdAt.localeCompare(right.createdAt))
139
+ .map((entry) => [
140
+ entry.testId ?? '-',
141
+ entry.targetId ?? '-',
142
+ entry.instructionDigest?.slice(0, DIGEST_PREFIX_CHARS) ?? '-',
143
+ formatAge(entry.createdAt, now),
144
+ `${entry.actions}${entry.truncated ? ' (truncated)' : ''}`,
145
+ ]);
146
+ const header = ['TEST', 'TARGET', 'INSTRUCTION', 'AGE', 'ACTIONS'];
147
+ const widths = header.map((title, column) => Math.max(title.length, ...rows.map((row) => row[column].length)));
148
+ const line = (cells) => cells
149
+ .map((cell, column) => (column === cells.length - 1 ? cell : cell.padEnd(widths[column])))
150
+ .join(' ')
151
+ .trimEnd();
152
+ process.stdout.write(`${picocolors.bold(line(header))}\n`);
153
+ for (const row of rows)
154
+ process.stdout.write(`${line(row)}\n`);
155
+ warnAboutSkipped(contents);
156
+ return 0;
157
+ }
158
+ /** Prints the store's size: where it is, how many entries, how many bytes. */
159
+ function stats(contents) {
160
+ const bytes = contents.entries.reduce((total, entry) => total + entry.bytes, 0);
161
+ const rows = [
162
+ ['directory', contents.directory],
163
+ ['entries', String(contents.entries.length)],
164
+ ['size', formatBytes(bytes)],
165
+ ];
166
+ if (contents.unreadable.length > 0)
167
+ rows.push(['unreadable', String(contents.unreadable.length)]);
168
+ const width = Math.max(...rows.map(([label]) => label.length));
169
+ for (const [label, value] of rows) {
170
+ process.stdout.write(`${label.padEnd(width)} ${value}\n`);
171
+ }
172
+ warnAboutSkipped(contents);
173
+ return 0;
174
+ }
175
+ /**
176
+ * Deletes the store's own files and the directory when nothing else is left
177
+ * in it. Files the store never wrote stay: `cache.dir` can point anywhere,
178
+ * and a mistyped one must not take a project's files with it.
179
+ */
180
+ async function clear(contents) {
181
+ const removable = [
182
+ ...contents.entries.map((entry) => `${entry.keyHash}.json`),
183
+ ...contents.unreadable.map((file) => file.name),
184
+ ];
185
+ for (const name of removable) {
186
+ await rm(path.join(contents.directory, name), { force: true });
187
+ }
188
+ // Leftover temporaries are neither entries nor foreign files; they go too.
189
+ const temporaries = await removeTemporaries(contents.directory);
190
+ const removed = removable.length + temporaries;
191
+ if (contents.foreign.length === 0)
192
+ await rmdir(contents.directory).catch(() => undefined);
193
+ process.stdout.write(removed === 0
194
+ ? `no trace cache entries to clear in ${contents.directory}\n`
195
+ : `cleared ${removed} file(s) from ${contents.directory}\n`);
196
+ warnAboutSkipped(contents);
197
+ return 0;
198
+ }
199
+ async function removeTemporaries(directory) {
200
+ let names;
201
+ try {
202
+ names = await readdir(directory);
203
+ }
204
+ catch {
205
+ return 0;
206
+ }
207
+ let removed = 0;
208
+ for (const name of names) {
209
+ if (!TEMPORARY_FILE.test(name))
210
+ continue;
211
+ await rm(path.join(directory, name), { force: true });
212
+ removed += 1;
213
+ }
214
+ return removed;
215
+ }
216
+ /** Names what was left alone, so a surprising count has an explanation. */
217
+ function warnAboutSkipped(contents) {
218
+ if (contents.unreadable.length > 0) {
219
+ process.stderr.write(`${contents.unreadable.length} file(s) in ${contents.directory} are not readable trace-1 entries; a run treats each as a miss\n`);
220
+ }
221
+ if (contents.foreign.length > 0) {
222
+ process.stderr.write(`${contents.foreign.length} file(s) in ${contents.directory} are not cache files and were left alone: ${contents.foreign.join(', ')}\n`);
223
+ }
224
+ }
225
+ /** Coarse age of one entry: the unit a reviewer cares about, nothing finer. */
226
+ function formatAge(createdAt, now) {
227
+ const ms = now - Date.parse(createdAt);
228
+ if (!Number.isFinite(ms))
229
+ return '-';
230
+ // A future timestamp is a clock difference between two machines, not an age.
231
+ if (ms < 60_000)
232
+ return ms < 0 ? '0m' : '<1m';
233
+ const minutes = Math.floor(ms / 60_000);
234
+ if (minutes < 60)
235
+ return `${minutes}m`;
236
+ const hours = Math.floor(minutes / 60);
237
+ if (hours < 24)
238
+ return `${hours}h`;
239
+ return `${Math.floor(hours / 24)}d`;
240
+ }
241
+ function formatBytes(bytes) {
242
+ if (bytes < 1024)
243
+ return `${bytes} B`;
244
+ const kib = bytes / 1024;
245
+ if (kib < 1024)
246
+ return `${kib.toFixed(1)} KiB`;
247
+ return `${(kib / 1024).toFixed(1)} MiB`;
248
+ }
249
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/cli/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Root of the published documentation site. */
2
+ export declare const DOCS_URL = "https://e2e.docs.buildwithfern.com";
3
+ //# sourceMappingURL=docs-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-url.d.ts","sourceRoot":"","sources":["../../src/cli/docs-url.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,eAAO,MAAM,QAAQ,uCAAuC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Root of the published documentation site. */
2
+ export const DOCS_URL = 'https://e2e.docs.buildwithfern.com';
3
+ //# sourceMappingURL=docs-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-url.js","sourceRoot":"","sources":["../../src/cli/docs-url.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAG,oCAAoC,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** `e2e guide`: prints the bundled agent skill for agents and people who do not have it installed. */
2
+ /** Prints the overview or one topic to stdout; an unknown topic exits 2. */
3
+ export declare function guide(topic: string | undefined): number;
4
+ //# sourceMappingURL=guide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide.d.ts","sourceRoot":"","sources":["../../src/cli/guide.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAItG,4EAA4E;AAC5E,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAavD"}
@@ -0,0 +1,16 @@
1
+ /** `e2e guide`: prints the bundled agent skill for agents and people who do not have it installed. */
2
+ import { MISSING_SKILL_MESSAGE, readGuide, skillTopics } from './skill.js';
3
+ /** Prints the overview or one topic to stdout; an unknown topic exits 2. */
4
+ export function guide(topic) {
5
+ const text = readGuide(topic);
6
+ if (text === undefined) {
7
+ const topics = skillTopics();
8
+ process.stderr.write(topics.length === 0
9
+ ? `${MISSING_SKILL_MESSAGE}\n`
10
+ : `unknown topic "${topic}"; topics: ${topics.join(', ')}\n`);
11
+ return 2;
12
+ }
13
+ process.stdout.write(text.endsWith('\n') ? text : `${text}\n`);
14
+ return 0;
15
+ }
16
+ //# sourceMappingURL=guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide.js","sourceRoot":"","sources":["../../src/cli/guide.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAEtG,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE3E,4EAA4E;AAC5E,MAAM,UAAU,KAAK,CAAC,KAAyB;IAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,CAAC,MAAM,KAAK,CAAC;YACjB,CAAC,CAAC,GAAG,qBAAqB,IAAI;YAC9B,CAAC,CAAC,kBAAkB,KAAK,cAAc,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC/D,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1,4 +1,4 @@
1
- /** e2e CLI (spec 06-cli.md). */
1
+ /** e2e CLI. */
2
2
  /** CLI entry invoked by the bin wrapper. */
3
3
  export declare function main(argv: readonly string[]): Promise<void>;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAmIhC,4CAA4C;AAC5C,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAcjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,eAAe;AA4Wf,4CAA4C;AAC5C,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAcjE"}