agenticreplay 0.1.0 → 0.1.2

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 (1565) hide show
  1. package/README.md +14 -13
  2. package/bin/agenticreplay.js +2 -0
  3. package/node_modules/@agenticreplay/adapters/dist/claude-code.d.ts +37 -0
  4. package/node_modules/@agenticreplay/adapters/dist/claude-code.d.ts.map +1 -0
  5. package/node_modules/@agenticreplay/adapters/dist/claude-code.js +103 -0
  6. package/node_modules/@agenticreplay/adapters/dist/claude-code.js.map +1 -0
  7. package/node_modules/@agenticreplay/adapters/dist/codex.d.ts +36 -0
  8. package/node_modules/@agenticreplay/adapters/dist/codex.d.ts.map +1 -0
  9. package/node_modules/@agenticreplay/adapters/dist/codex.js +130 -0
  10. package/node_modules/@agenticreplay/adapters/dist/codex.js.map +1 -0
  11. package/node_modules/@agenticreplay/adapters/dist/contract.d.ts +65 -0
  12. package/node_modules/@agenticreplay/adapters/dist/contract.d.ts.map +1 -0
  13. package/node_modules/@agenticreplay/adapters/dist/contract.js +460 -0
  14. package/node_modules/@agenticreplay/adapters/dist/contract.js.map +1 -0
  15. package/node_modules/@agenticreplay/adapters/dist/cursor.d.ts +40 -0
  16. package/node_modules/@agenticreplay/adapters/dist/cursor.d.ts.map +1 -0
  17. package/node_modules/@agenticreplay/adapters/dist/cursor.js +71 -0
  18. package/node_modules/@agenticreplay/adapters/dist/cursor.js.map +1 -0
  19. package/node_modules/@agenticreplay/adapters/dist/detect.d.ts +47 -0
  20. package/node_modules/@agenticreplay/adapters/dist/detect.d.ts.map +1 -0
  21. package/node_modules/@agenticreplay/adapters/dist/detect.js +123 -0
  22. package/node_modules/@agenticreplay/adapters/dist/detect.js.map +1 -0
  23. package/node_modules/@agenticreplay/adapters/dist/env.d.ts +60 -0
  24. package/node_modules/@agenticreplay/adapters/dist/env.d.ts.map +1 -0
  25. package/node_modules/@agenticreplay/adapters/dist/env.js +99 -0
  26. package/node_modules/@agenticreplay/adapters/dist/env.js.map +1 -0
  27. package/node_modules/@agenticreplay/adapters/dist/exec.d.ts +25 -0
  28. package/node_modules/@agenticreplay/adapters/dist/exec.d.ts.map +1 -0
  29. package/node_modules/@agenticreplay/adapters/dist/exec.js +51 -0
  30. package/node_modules/@agenticreplay/adapters/dist/exec.js.map +1 -0
  31. package/node_modules/@agenticreplay/adapters/dist/generic-openai.d.ts +8 -0
  32. package/node_modules/@agenticreplay/adapters/dist/generic-openai.d.ts.map +1 -0
  33. package/node_modules/@agenticreplay/adapters/dist/generic-openai.js +31 -0
  34. package/node_modules/@agenticreplay/adapters/dist/generic-openai.js.map +1 -0
  35. package/node_modules/@agenticreplay/adapters/dist/goose.d.ts +39 -0
  36. package/node_modules/@agenticreplay/adapters/dist/goose.d.ts.map +1 -0
  37. package/node_modules/@agenticreplay/adapters/dist/goose.js +81 -0
  38. package/node_modules/@agenticreplay/adapters/dist/goose.js.map +1 -0
  39. package/node_modules/@agenticreplay/adapters/dist/grok.d.ts +23 -0
  40. package/node_modules/@agenticreplay/adapters/dist/grok.d.ts.map +1 -0
  41. package/node_modules/@agenticreplay/adapters/dist/grok.js +50 -0
  42. package/node_modules/@agenticreplay/adapters/dist/grok.js.map +1 -0
  43. package/node_modules/@agenticreplay/adapters/dist/hermes.d.ts +70 -0
  44. package/node_modules/@agenticreplay/adapters/dist/hermes.d.ts.map +1 -0
  45. package/node_modules/@agenticreplay/adapters/dist/hermes.js +88 -0
  46. package/node_modules/@agenticreplay/adapters/dist/hermes.js.map +1 -0
  47. package/node_modules/@agenticreplay/adapters/dist/index.d.ts +25 -0
  48. package/node_modules/@agenticreplay/adapters/dist/index.d.ts.map +1 -0
  49. package/node_modules/@agenticreplay/adapters/dist/index.js +25 -0
  50. package/node_modules/@agenticreplay/adapters/dist/index.js.map +1 -0
  51. package/node_modules/@agenticreplay/adapters/dist/indexrag.d.ts +27 -0
  52. package/node_modules/@agenticreplay/adapters/dist/indexrag.d.ts.map +1 -0
  53. package/node_modules/@agenticreplay/adapters/dist/indexrag.js +236 -0
  54. package/node_modules/@agenticreplay/adapters/dist/indexrag.js.map +1 -0
  55. package/node_modules/@agenticreplay/adapters/dist/kilo.d.ts +21 -0
  56. package/node_modules/@agenticreplay/adapters/dist/kilo.d.ts.map +1 -0
  57. package/node_modules/@agenticreplay/adapters/dist/kilo.js +35 -0
  58. package/node_modules/@agenticreplay/adapters/dist/kilo.js.map +1 -0
  59. package/node_modules/@agenticreplay/adapters/dist/mcode.d.ts +81 -0
  60. package/node_modules/@agenticreplay/adapters/dist/mcode.d.ts.map +1 -0
  61. package/node_modules/@agenticreplay/adapters/dist/mcode.js +368 -0
  62. package/node_modules/@agenticreplay/adapters/dist/mcode.js.map +1 -0
  63. package/node_modules/@agenticreplay/adapters/dist/mcp-config.d.ts +17 -0
  64. package/node_modules/@agenticreplay/adapters/dist/mcp-config.d.ts.map +1 -0
  65. package/node_modules/@agenticreplay/adapters/dist/mcp-config.js +62 -0
  66. package/node_modules/@agenticreplay/adapters/dist/mcp-config.js.map +1 -0
  67. package/node_modules/@agenticreplay/adapters/dist/mimo.d.ts +26 -0
  68. package/node_modules/@agenticreplay/adapters/dist/mimo.d.ts.map +1 -0
  69. package/node_modules/@agenticreplay/adapters/dist/mimo.js +40 -0
  70. package/node_modules/@agenticreplay/adapters/dist/mimo.js.map +1 -0
  71. package/node_modules/@agenticreplay/adapters/dist/node.d.ts +19 -0
  72. package/node_modules/@agenticreplay/adapters/dist/node.d.ts.map +1 -0
  73. package/node_modules/@agenticreplay/adapters/dist/node.js +59 -0
  74. package/node_modules/@agenticreplay/adapters/dist/node.js.map +1 -0
  75. package/node_modules/@agenticreplay/adapters/dist/openclaw.d.ts +19 -0
  76. package/node_modules/@agenticreplay/adapters/dist/openclaw.d.ts.map +1 -0
  77. package/node_modules/@agenticreplay/adapters/dist/openclaw.js +43 -0
  78. package/node_modules/@agenticreplay/adapters/dist/openclaw.js.map +1 -0
  79. package/node_modules/@agenticreplay/adapters/dist/opencode-api-bases.d.ts +2 -0
  80. package/node_modules/@agenticreplay/adapters/dist/opencode-api-bases.d.ts.map +1 -0
  81. package/node_modules/@agenticreplay/adapters/dist/opencode-api-bases.js +201 -0
  82. package/node_modules/@agenticreplay/adapters/dist/opencode-api-bases.js.map +1 -0
  83. package/node_modules/@agenticreplay/adapters/dist/opencode-capture.d.ts +26 -0
  84. package/node_modules/@agenticreplay/adapters/dist/opencode-capture.d.ts.map +1 -0
  85. package/node_modules/@agenticreplay/adapters/dist/opencode-capture.js +132 -0
  86. package/node_modules/@agenticreplay/adapters/dist/opencode-capture.js.map +1 -0
  87. package/node_modules/@agenticreplay/adapters/dist/opencode-catalog.d.ts +5 -0
  88. package/node_modules/@agenticreplay/adapters/dist/opencode-catalog.d.ts.map +1 -0
  89. package/node_modules/@agenticreplay/adapters/dist/opencode-catalog.js +43 -0
  90. package/node_modules/@agenticreplay/adapters/dist/opencode-catalog.js.map +1 -0
  91. package/node_modules/@agenticreplay/adapters/dist/opencode-config.d.ts +40 -0
  92. package/node_modules/@agenticreplay/adapters/dist/opencode-config.d.ts.map +1 -0
  93. package/node_modules/@agenticreplay/adapters/dist/opencode-config.js +185 -0
  94. package/node_modules/@agenticreplay/adapters/dist/opencode-config.js.map +1 -0
  95. package/node_modules/@agenticreplay/adapters/dist/opencode.d.ts +10 -0
  96. package/node_modules/@agenticreplay/adapters/dist/opencode.d.ts.map +1 -0
  97. package/node_modules/@agenticreplay/adapters/dist/opencode.js +243 -0
  98. package/node_modules/@agenticreplay/adapters/dist/opencode.js.map +1 -0
  99. package/node_modules/@agenticreplay/adapters/dist/qwen.d.ts +51 -0
  100. package/node_modules/@agenticreplay/adapters/dist/qwen.d.ts.map +1 -0
  101. package/node_modules/@agenticreplay/adapters/dist/qwen.js +105 -0
  102. package/node_modules/@agenticreplay/adapters/dist/qwen.js.map +1 -0
  103. package/node_modules/@agenticreplay/adapters/dist/registry.d.ts +19 -0
  104. package/node_modules/@agenticreplay/adapters/dist/registry.d.ts.map +1 -0
  105. package/node_modules/@agenticreplay/adapters/dist/registry.js +110 -0
  106. package/node_modules/@agenticreplay/adapters/dist/registry.js.map +1 -0
  107. package/node_modules/@agenticreplay/adapters/dist/scaffold.d.ts +26 -0
  108. package/node_modules/@agenticreplay/adapters/dist/scaffold.d.ts.map +1 -0
  109. package/node_modules/@agenticreplay/adapters/dist/scaffold.js +125 -0
  110. package/node_modules/@agenticreplay/adapters/dist/scaffold.js.map +1 -0
  111. package/node_modules/@agenticreplay/adapters/dist/session.d.ts +47 -0
  112. package/node_modules/@agenticreplay/adapters/dist/session.d.ts.map +1 -0
  113. package/node_modules/@agenticreplay/adapters/dist/session.js +112 -0
  114. package/node_modules/@agenticreplay/adapters/dist/session.js.map +1 -0
  115. package/node_modules/@agenticreplay/adapters/dist/zcode.d.ts +60 -0
  116. package/node_modules/@agenticreplay/adapters/dist/zcode.d.ts.map +1 -0
  117. package/node_modules/@agenticreplay/adapters/dist/zcode.js +424 -0
  118. package/node_modules/@agenticreplay/adapters/dist/zcode.js.map +1 -0
  119. package/node_modules/@agenticreplay/adapters/package.json +29 -0
  120. package/node_modules/@agenticreplay/core/dist/blobs.d.ts +21 -0
  121. package/node_modules/@agenticreplay/core/dist/blobs.d.ts.map +1 -0
  122. package/node_modules/@agenticreplay/core/dist/blobs.js +102 -0
  123. package/node_modules/@agenticreplay/core/dist/blobs.js.map +1 -0
  124. package/node_modules/@agenticreplay/core/dist/fetch.d.ts +38 -0
  125. package/node_modules/@agenticreplay/core/dist/fetch.d.ts.map +1 -0
  126. package/node_modules/@agenticreplay/core/dist/fetch.js +47 -0
  127. package/node_modules/@agenticreplay/core/dist/fetch.js.map +1 -0
  128. package/node_modules/@agenticreplay/core/dist/graph.d.ts +106 -0
  129. package/node_modules/@agenticreplay/core/dist/graph.d.ts.map +1 -0
  130. package/node_modules/@agenticreplay/core/dist/graph.js +394 -0
  131. package/node_modules/@agenticreplay/core/dist/graph.js.map +1 -0
  132. package/node_modules/@agenticreplay/core/dist/index.d.ts +9 -0
  133. package/node_modules/@agenticreplay/core/dist/index.d.ts.map +1 -0
  134. package/node_modules/@agenticreplay/core/dist/index.js +9 -0
  135. package/node_modules/@agenticreplay/core/dist/index.js.map +1 -0
  136. package/node_modules/@agenticreplay/core/dist/paths.d.ts +45 -0
  137. package/node_modules/@agenticreplay/core/dist/paths.d.ts.map +1 -0
  138. package/node_modules/@agenticreplay/core/dist/paths.js +149 -0
  139. package/node_modules/@agenticreplay/core/dist/paths.js.map +1 -0
  140. package/node_modules/@agenticreplay/core/dist/private-files.d.ts +37 -0
  141. package/node_modules/@agenticreplay/core/dist/private-files.d.ts.map +1 -0
  142. package/node_modules/@agenticreplay/core/dist/private-files.js +353 -0
  143. package/node_modules/@agenticreplay/core/dist/private-files.js.map +1 -0
  144. package/node_modules/@agenticreplay/core/dist/reader.d.ts +45 -0
  145. package/node_modules/@agenticreplay/core/dist/reader.d.ts.map +1 -0
  146. package/node_modules/@agenticreplay/core/dist/reader.js +152 -0
  147. package/node_modules/@agenticreplay/core/dist/reader.js.map +1 -0
  148. package/node_modules/@agenticreplay/core/dist/redaction.d.ts +69 -0
  149. package/node_modules/@agenticreplay/core/dist/redaction.d.ts.map +1 -0
  150. package/node_modules/@agenticreplay/core/dist/redaction.js +768 -0
  151. package/node_modules/@agenticreplay/core/dist/redaction.js.map +1 -0
  152. package/node_modules/@agenticreplay/core/dist/writer.d.ts +75 -0
  153. package/node_modules/@agenticreplay/core/dist/writer.d.ts.map +1 -0
  154. package/node_modules/@agenticreplay/core/dist/writer.js +368 -0
  155. package/node_modules/@agenticreplay/core/dist/writer.js.map +1 -0
  156. package/node_modules/@agenticreplay/core/package.json +26 -0
  157. package/node_modules/@agenticreplay/fs-capture/dist/capture.d.ts +84 -0
  158. package/node_modules/@agenticreplay/fs-capture/dist/capture.d.ts.map +1 -0
  159. package/node_modules/@agenticreplay/fs-capture/dist/capture.js +147 -0
  160. package/node_modules/@agenticreplay/fs-capture/dist/capture.js.map +1 -0
  161. package/node_modules/@agenticreplay/fs-capture/dist/git.d.ts +25 -0
  162. package/node_modules/@agenticreplay/fs-capture/dist/git.d.ts.map +1 -0
  163. package/node_modules/@agenticreplay/fs-capture/dist/git.js +108 -0
  164. package/node_modules/@agenticreplay/fs-capture/dist/git.js.map +1 -0
  165. package/node_modules/@agenticreplay/fs-capture/dist/index.d.ts +4 -0
  166. package/node_modules/@agenticreplay/fs-capture/dist/index.d.ts.map +1 -0
  167. package/node_modules/@agenticreplay/fs-capture/dist/index.js +4 -0
  168. package/node_modules/@agenticreplay/fs-capture/dist/index.js.map +1 -0
  169. package/node_modules/@agenticreplay/fs-capture/dist/shadow.d.ts +271 -0
  170. package/node_modules/@agenticreplay/fs-capture/dist/shadow.d.ts.map +1 -0
  171. package/node_modules/@agenticreplay/fs-capture/dist/shadow.js +668 -0
  172. package/node_modules/@agenticreplay/fs-capture/dist/shadow.js.map +1 -0
  173. package/node_modules/@agenticreplay/fs-capture/package.json +25 -0
  174. package/node_modules/@agenticreplay/mcp-shim/dist/cli.d.ts +100 -0
  175. package/node_modules/@agenticreplay/mcp-shim/dist/cli.d.ts.map +1 -0
  176. package/node_modules/@agenticreplay/mcp-shim/dist/cli.js +334 -0
  177. package/node_modules/@agenticreplay/mcp-shim/dist/cli.js.map +1 -0
  178. package/node_modules/@agenticreplay/mcp-shim/dist/framing.d.ts +41 -0
  179. package/node_modules/@agenticreplay/mcp-shim/dist/framing.d.ts.map +1 -0
  180. package/node_modules/@agenticreplay/mcp-shim/dist/framing.js +94 -0
  181. package/node_modules/@agenticreplay/mcp-shim/dist/framing.js.map +1 -0
  182. package/node_modules/@agenticreplay/mcp-shim/dist/index.d.ts +5 -0
  183. package/node_modules/@agenticreplay/mcp-shim/dist/index.d.ts.map +1 -0
  184. package/node_modules/@agenticreplay/mcp-shim/dist/index.js +5 -0
  185. package/node_modules/@agenticreplay/mcp-shim/dist/index.js.map +1 -0
  186. package/node_modules/@agenticreplay/mcp-shim/dist/mock.d.ts +70 -0
  187. package/node_modules/@agenticreplay/mcp-shim/dist/mock.d.ts.map +1 -0
  188. package/node_modules/@agenticreplay/mcp-shim/dist/mock.js +138 -0
  189. package/node_modules/@agenticreplay/mcp-shim/dist/mock.js.map +1 -0
  190. package/node_modules/@agenticreplay/mcp-shim/dist/shim.d.ts +24 -0
  191. package/node_modules/@agenticreplay/mcp-shim/dist/shim.d.ts.map +1 -0
  192. package/node_modules/@agenticreplay/mcp-shim/dist/shim.js +105 -0
  193. package/node_modules/@agenticreplay/mcp-shim/dist/shim.js.map +1 -0
  194. package/node_modules/@agenticreplay/mcp-shim/package.json +26 -0
  195. package/node_modules/@agenticreplay/node-instrument/dist/capture.d.ts +58 -0
  196. package/node_modules/@agenticreplay/node-instrument/dist/capture.d.ts.map +1 -0
  197. package/node_modules/@agenticreplay/node-instrument/dist/capture.js +404 -0
  198. package/node_modules/@agenticreplay/node-instrument/dist/capture.js.map +1 -0
  199. package/node_modules/@agenticreplay/node-instrument/dist/index.d.ts +4 -0
  200. package/node_modules/@agenticreplay/node-instrument/dist/index.d.ts.map +1 -0
  201. package/node_modules/@agenticreplay/node-instrument/dist/index.js +4 -0
  202. package/node_modules/@agenticreplay/node-instrument/dist/index.js.map +1 -0
  203. package/node_modules/@agenticreplay/node-instrument/dist/install.d.ts +47 -0
  204. package/node_modules/@agenticreplay/node-instrument/dist/install.d.ts.map +1 -0
  205. package/node_modules/@agenticreplay/node-instrument/dist/install.js +174 -0
  206. package/node_modules/@agenticreplay/node-instrument/dist/install.js.map +1 -0
  207. package/node_modules/@agenticreplay/node-instrument/dist/rewrite.d.ts +33 -0
  208. package/node_modules/@agenticreplay/node-instrument/dist/rewrite.d.ts.map +1 -0
  209. package/node_modules/@agenticreplay/node-instrument/dist/rewrite.js +61 -0
  210. package/node_modules/@agenticreplay/node-instrument/dist/rewrite.js.map +1 -0
  211. package/node_modules/@agenticreplay/node-instrument/package.json +23 -0
  212. package/node_modules/@agenticreplay/plugin-api/dist/canonical.d.ts +87 -0
  213. package/node_modules/@agenticreplay/plugin-api/dist/canonical.d.ts.map +1 -0
  214. package/node_modules/@agenticreplay/plugin-api/dist/canonical.js +10 -0
  215. package/node_modules/@agenticreplay/plugin-api/dist/canonical.js.map +1 -0
  216. package/node_modules/@agenticreplay/plugin-api/dist/index.d.ts +3 -0
  217. package/node_modules/@agenticreplay/plugin-api/dist/index.d.ts.map +1 -0
  218. package/node_modules/@agenticreplay/plugin-api/dist/index.js +3 -0
  219. package/node_modules/@agenticreplay/plugin-api/dist/index.js.map +1 -0
  220. package/node_modules/@agenticreplay/plugin-api/dist/plugins.d.ts +258 -0
  221. package/node_modules/@agenticreplay/plugin-api/dist/plugins.d.ts.map +1 -0
  222. package/node_modules/@agenticreplay/plugin-api/dist/plugins.js +2 -0
  223. package/node_modules/@agenticreplay/plugin-api/dist/plugins.js.map +1 -0
  224. package/node_modules/@agenticreplay/plugin-api/package.json +22 -0
  225. package/node_modules/@agenticreplay/providers/dist/index.d.ts +34 -0
  226. package/node_modules/@agenticreplay/providers/dist/index.d.ts.map +1 -0
  227. package/node_modules/@agenticreplay/providers/dist/index.js +34 -0
  228. package/node_modules/@agenticreplay/providers/dist/index.js.map +1 -0
  229. package/node_modules/@agenticreplay/providers/dist/pricing.d.ts +44 -0
  230. package/node_modules/@agenticreplay/providers/dist/pricing.d.ts.map +1 -0
  231. package/node_modules/@agenticreplay/providers/dist/pricing.js +126 -0
  232. package/node_modules/@agenticreplay/providers/dist/pricing.js.map +1 -0
  233. package/node_modules/@agenticreplay/providers/dist/translate/anthropic.d.ts +66 -0
  234. package/node_modules/@agenticreplay/providers/dist/translate/anthropic.d.ts.map +1 -0
  235. package/node_modules/@agenticreplay/providers/dist/translate/anthropic.js +569 -0
  236. package/node_modules/@agenticreplay/providers/dist/translate/anthropic.js.map +1 -0
  237. package/node_modules/@agenticreplay/providers/dist/translate/openai-responses.d.ts +51 -0
  238. package/node_modules/@agenticreplay/providers/dist/translate/openai-responses.d.ts.map +1 -0
  239. package/node_modules/@agenticreplay/providers/dist/translate/openai-responses.js +574 -0
  240. package/node_modules/@agenticreplay/providers/dist/translate/openai-responses.js.map +1 -0
  241. package/node_modules/@agenticreplay/providers/dist/translate/openai.d.ts +60 -0
  242. package/node_modules/@agenticreplay/providers/dist/translate/openai.d.ts.map +1 -0
  243. package/node_modules/@agenticreplay/providers/dist/translate/openai.js +577 -0
  244. package/node_modules/@agenticreplay/providers/dist/translate/openai.js.map +1 -0
  245. package/node_modules/@agenticreplay/providers/dist/translate/sse.d.ts +29 -0
  246. package/node_modules/@agenticreplay/providers/dist/translate/sse.d.ts.map +1 -0
  247. package/node_modules/@agenticreplay/providers/dist/translate/sse.js +97 -0
  248. package/node_modules/@agenticreplay/providers/dist/translate/sse.js.map +1 -0
  249. package/node_modules/@agenticreplay/providers/dist/translate/util.d.ts +34 -0
  250. package/node_modules/@agenticreplay/providers/dist/translate/util.d.ts.map +1 -0
  251. package/node_modules/@agenticreplay/providers/dist/translate/util.js +106 -0
  252. package/node_modules/@agenticreplay/providers/dist/translate/util.js.map +1 -0
  253. package/node_modules/@agenticreplay/providers/package.json +26 -0
  254. package/node_modules/@agenticreplay/proxy/dist/ca.d.ts +45 -0
  255. package/node_modules/@agenticreplay/proxy/dist/ca.d.ts.map +1 -0
  256. package/node_modules/@agenticreplay/proxy/dist/ca.js +264 -0
  257. package/node_modules/@agenticreplay/proxy/dist/ca.js.map +1 -0
  258. package/node_modules/@agenticreplay/proxy/dist/der.d.ts +51 -0
  259. package/node_modules/@agenticreplay/proxy/dist/der.d.ts.map +1 -0
  260. package/node_modules/@agenticreplay/proxy/dist/der.js +144 -0
  261. package/node_modules/@agenticreplay/proxy/dist/der.js.map +1 -0
  262. package/node_modules/@agenticreplay/proxy/dist/dialects.d.ts +81 -0
  263. package/node_modules/@agenticreplay/proxy/dist/dialects.d.ts.map +1 -0
  264. package/node_modules/@agenticreplay/proxy/dist/dialects.js +329 -0
  265. package/node_modules/@agenticreplay/proxy/dist/dialects.js.map +1 -0
  266. package/node_modules/@agenticreplay/proxy/dist/forward.d.ts +34 -0
  267. package/node_modules/@agenticreplay/proxy/dist/forward.d.ts.map +1 -0
  268. package/node_modules/@agenticreplay/proxy/dist/forward.js +44 -0
  269. package/node_modules/@agenticreplay/proxy/dist/forward.js.map +1 -0
  270. package/node_modules/@agenticreplay/proxy/dist/index.d.ts +9 -0
  271. package/node_modules/@agenticreplay/proxy/dist/index.d.ts.map +1 -0
  272. package/node_modules/@agenticreplay/proxy/dist/index.js +9 -0
  273. package/node_modules/@agenticreplay/proxy/dist/index.js.map +1 -0
  274. package/node_modules/@agenticreplay/proxy/dist/intercept.d.ts +234 -0
  275. package/node_modules/@agenticreplay/proxy/dist/intercept.d.ts.map +1 -0
  276. package/node_modules/@agenticreplay/proxy/dist/intercept.js +1258 -0
  277. package/node_modules/@agenticreplay/proxy/dist/intercept.js.map +1 -0
  278. package/node_modules/@agenticreplay/proxy/dist/matching.d.ts +109 -0
  279. package/node_modules/@agenticreplay/proxy/dist/matching.d.ts.map +1 -0
  280. package/node_modules/@agenticreplay/proxy/dist/matching.js +928 -0
  281. package/node_modules/@agenticreplay/proxy/dist/matching.js.map +1 -0
  282. package/node_modules/@agenticreplay/proxy/dist/retrieval.d.ts +93 -0
  283. package/node_modules/@agenticreplay/proxy/dist/retrieval.d.ts.map +1 -0
  284. package/node_modules/@agenticreplay/proxy/dist/retrieval.js +233 -0
  285. package/node_modules/@agenticreplay/proxy/dist/retrieval.js.map +1 -0
  286. package/node_modules/@agenticreplay/proxy/dist/server.d.ts +327 -0
  287. package/node_modules/@agenticreplay/proxy/dist/server.d.ts.map +1 -0
  288. package/node_modules/@agenticreplay/proxy/dist/server.js +2291 -0
  289. package/node_modules/@agenticreplay/proxy/dist/server.js.map +1 -0
  290. package/node_modules/@agenticreplay/proxy/dist/tls-hosts.d.ts +54 -0
  291. package/node_modules/@agenticreplay/proxy/dist/tls-hosts.d.ts.map +1 -0
  292. package/node_modules/@agenticreplay/proxy/dist/tls-hosts.js +178 -0
  293. package/node_modules/@agenticreplay/proxy/dist/tls-hosts.js.map +1 -0
  294. package/node_modules/@agenticreplay/proxy/package.json +28 -0
  295. package/node_modules/@agenticreplay/schema/dist/constants.d.ts +30 -0
  296. package/node_modules/@agenticreplay/schema/dist/constants.d.ts.map +1 -0
  297. package/node_modules/@agenticreplay/schema/dist/constants.js +66 -0
  298. package/node_modules/@agenticreplay/schema/dist/constants.js.map +1 -0
  299. package/node_modules/@agenticreplay/schema/dist/index.d.ts +4 -0
  300. package/node_modules/@agenticreplay/schema/dist/index.d.ts.map +1 -0
  301. package/node_modules/@agenticreplay/schema/dist/index.js +4 -0
  302. package/node_modules/@agenticreplay/schema/dist/index.js.map +1 -0
  303. package/node_modules/@agenticreplay/schema/dist/types.d.ts +97 -0
  304. package/node_modules/@agenticreplay/schema/dist/types.d.ts.map +1 -0
  305. package/node_modules/@agenticreplay/schema/dist/types.js +7 -0
  306. package/node_modules/@agenticreplay/schema/dist/types.js.map +1 -0
  307. package/node_modules/@agenticreplay/schema/dist/validate.d.ts +13 -0
  308. package/node_modules/@agenticreplay/schema/dist/validate.d.ts.map +1 -0
  309. package/node_modules/@agenticreplay/schema/dist/validate.js +44 -0
  310. package/node_modules/@agenticreplay/schema/dist/validate.js.map +1 -0
  311. package/node_modules/@agenticreplay/schema/package.json +28 -0
  312. package/node_modules/@agenticreplay/shell-shim/dist/index.d.ts +4 -0
  313. package/node_modules/@agenticreplay/shell-shim/dist/index.d.ts.map +1 -0
  314. package/node_modules/@agenticreplay/shell-shim/dist/index.js +4 -0
  315. package/node_modules/@agenticreplay/shell-shim/dist/index.js.map +1 -0
  316. package/node_modules/@agenticreplay/shell-shim/dist/install.d.ts +75 -0
  317. package/node_modules/@agenticreplay/shell-shim/dist/install.d.ts.map +1 -0
  318. package/node_modules/@agenticreplay/shell-shim/dist/install.js +353 -0
  319. package/node_modules/@agenticreplay/shell-shim/dist/install.js.map +1 -0
  320. package/node_modules/@agenticreplay/shell-shim/dist/resolve.d.ts +2 -0
  321. package/node_modules/@agenticreplay/shell-shim/dist/resolve.d.ts.map +1 -0
  322. package/node_modules/@agenticreplay/shell-shim/dist/resolve.js +97 -0
  323. package/node_modules/@agenticreplay/shell-shim/dist/resolve.js.map +1 -0
  324. package/node_modules/@agenticreplay/shell-shim/dist/runner-bin.d.ts +3 -0
  325. package/node_modules/@agenticreplay/shell-shim/dist/runner-bin.d.ts.map +1 -0
  326. package/node_modules/@agenticreplay/shell-shim/dist/runner-bin.js +4 -0
  327. package/node_modules/@agenticreplay/shell-shim/dist/runner-bin.js.map +1 -0
  328. package/node_modules/@agenticreplay/shell-shim/dist/runner.d.ts +45 -0
  329. package/node_modules/@agenticreplay/shell-shim/dist/runner.d.ts.map +1 -0
  330. package/node_modules/@agenticreplay/shell-shim/dist/runner.js +105 -0
  331. package/node_modules/@agenticreplay/shell-shim/dist/runner.js.map +1 -0
  332. package/node_modules/@agenticreplay/shell-shim/package.json +26 -0
  333. package/node_modules/@agenticreplay/viewer/dist/bundle.d.ts +11 -0
  334. package/node_modules/@agenticreplay/viewer/dist/bundle.d.ts.map +1 -0
  335. package/node_modules/@agenticreplay/viewer/dist/bundle.js +36 -0
  336. package/node_modules/@agenticreplay/viewer/dist/bundle.js.map +1 -0
  337. package/node_modules/@agenticreplay/viewer/dist/client/main.d.ts +12 -0
  338. package/node_modules/@agenticreplay/viewer/dist/client/main.d.ts.map +1 -0
  339. package/node_modules/@agenticreplay/viewer/dist/client/main.js +249 -0
  340. package/node_modules/@agenticreplay/viewer/dist/client/main.js.map +1 -0
  341. package/node_modules/@agenticreplay/viewer/dist/credit.d.ts +22 -0
  342. package/node_modules/@agenticreplay/viewer/dist/credit.d.ts.map +1 -0
  343. package/node_modules/@agenticreplay/viewer/dist/credit.js +22 -0
  344. package/node_modules/@agenticreplay/viewer/dist/credit.js.map +1 -0
  345. package/node_modules/@agenticreplay/viewer/dist/css.d.ts +11 -0
  346. package/node_modules/@agenticreplay/viewer/dist/css.d.ts.map +1 -0
  347. package/node_modules/@agenticreplay/viewer/dist/css.js +410 -0
  348. package/node_modules/@agenticreplay/viewer/dist/css.js.map +1 -0
  349. package/node_modules/@agenticreplay/viewer/dist/export.d.ts +21 -0
  350. package/node_modules/@agenticreplay/viewer/dist/export.d.ts.map +1 -0
  351. package/node_modules/@agenticreplay/viewer/dist/export.js +22 -0
  352. package/node_modules/@agenticreplay/viewer/dist/export.js.map +1 -0
  353. package/node_modules/@agenticreplay/viewer/dist/html.d.ts +32 -0
  354. package/node_modules/@agenticreplay/viewer/dist/html.d.ts.map +1 -0
  355. package/node_modules/@agenticreplay/viewer/dist/html.js +252 -0
  356. package/node_modules/@agenticreplay/viewer/dist/html.js.map +1 -0
  357. package/node_modules/@agenticreplay/viewer/dist/index.d.ts +16 -0
  358. package/node_modules/@agenticreplay/viewer/dist/index.d.ts.map +1 -0
  359. package/node_modules/@agenticreplay/viewer/dist/index.js +16 -0
  360. package/node_modules/@agenticreplay/viewer/dist/index.js.map +1 -0
  361. package/node_modules/@agenticreplay/viewer/dist/render.d.ts +126 -0
  362. package/node_modules/@agenticreplay/viewer/dist/render.d.ts.map +1 -0
  363. package/node_modules/@agenticreplay/viewer/dist/render.js +699 -0
  364. package/node_modules/@agenticreplay/viewer/dist/render.js.map +1 -0
  365. package/node_modules/@agenticreplay/viewer/dist/serve.d.ts +21 -0
  366. package/node_modules/@agenticreplay/viewer/dist/serve.d.ts.map +1 -0
  367. package/node_modules/@agenticreplay/viewer/dist/serve.js +122 -0
  368. package/node_modules/@agenticreplay/viewer/dist/serve.js.map +1 -0
  369. package/node_modules/@agenticreplay/viewer/dist/trace-dir.d.ts +28 -0
  370. package/node_modules/@agenticreplay/viewer/dist/trace-dir.d.ts.map +1 -0
  371. package/node_modules/@agenticreplay/viewer/dist/trace-dir.js +120 -0
  372. package/node_modules/@agenticreplay/viewer/dist/trace-dir.js.map +1 -0
  373. package/node_modules/@agenticreplay/viewer/package.json +25 -0
  374. package/node_modules/ajv/.runkit_example.js +23 -0
  375. package/node_modules/ajv/LICENSE +22 -0
  376. package/node_modules/ajv/README.md +207 -0
  377. package/node_modules/ajv/dist/2019.d.ts +19 -0
  378. package/node_modules/ajv/dist/2019.js +61 -0
  379. package/node_modules/ajv/dist/2019.js.map +1 -0
  380. package/node_modules/ajv/dist/2020.d.ts +19 -0
  381. package/node_modules/ajv/dist/2020.js +55 -0
  382. package/node_modules/ajv/dist/2020.js.map +1 -0
  383. package/node_modules/ajv/dist/ajv.d.ts +18 -0
  384. package/node_modules/ajv/dist/ajv.js +50 -0
  385. package/node_modules/ajv/dist/ajv.js.map +1 -0
  386. package/node_modules/ajv/dist/compile/codegen/code.d.ts +40 -0
  387. package/node_modules/ajv/dist/compile/codegen/code.js +156 -0
  388. package/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  389. package/node_modules/ajv/dist/compile/codegen/index.d.ts +79 -0
  390. package/node_modules/ajv/dist/compile/codegen/index.js +697 -0
  391. package/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  392. package/node_modules/ajv/dist/compile/codegen/scope.d.ts +79 -0
  393. package/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
  394. package/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  395. package/node_modules/ajv/dist/compile/errors.d.ts +13 -0
  396. package/node_modules/ajv/dist/compile/errors.js +123 -0
  397. package/node_modules/ajv/dist/compile/errors.js.map +1 -0
  398. package/node_modules/ajv/dist/compile/index.d.ts +80 -0
  399. package/node_modules/ajv/dist/compile/index.js +242 -0
  400. package/node_modules/ajv/dist/compile/index.js.map +1 -0
  401. package/node_modules/ajv/dist/compile/jtd/parse.d.ts +4 -0
  402. package/node_modules/ajv/dist/compile/jtd/parse.js +350 -0
  403. package/node_modules/ajv/dist/compile/jtd/parse.js.map +1 -0
  404. package/node_modules/ajv/dist/compile/jtd/serialize.d.ts +4 -0
  405. package/node_modules/ajv/dist/compile/jtd/serialize.js +236 -0
  406. package/node_modules/ajv/dist/compile/jtd/serialize.js.map +1 -0
  407. package/node_modules/ajv/dist/compile/jtd/types.d.ts +6 -0
  408. package/node_modules/ajv/dist/compile/jtd/types.js +14 -0
  409. package/node_modules/ajv/dist/compile/jtd/types.js.map +1 -0
  410. package/node_modules/ajv/dist/compile/names.d.ts +20 -0
  411. package/node_modules/ajv/dist/compile/names.js +28 -0
  412. package/node_modules/ajv/dist/compile/names.js.map +1 -0
  413. package/node_modules/ajv/dist/compile/ref_error.d.ts +6 -0
  414. package/node_modules/ajv/dist/compile/ref_error.js +12 -0
  415. package/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  416. package/node_modules/ajv/dist/compile/resolve.d.ts +12 -0
  417. package/node_modules/ajv/dist/compile/resolve.js +155 -0
  418. package/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  419. package/node_modules/ajv/dist/compile/rules.d.ts +28 -0
  420. package/node_modules/ajv/dist/compile/rules.js +26 -0
  421. package/node_modules/ajv/dist/compile/rules.js.map +1 -0
  422. package/node_modules/ajv/dist/compile/util.d.ts +40 -0
  423. package/node_modules/ajv/dist/compile/util.js +178 -0
  424. package/node_modules/ajv/dist/compile/util.js.map +1 -0
  425. package/node_modules/ajv/dist/compile/validate/applicability.d.ts +6 -0
  426. package/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
  427. package/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  428. package/node_modules/ajv/dist/compile/validate/boolSchema.d.ts +4 -0
  429. package/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
  430. package/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  431. package/node_modules/ajv/dist/compile/validate/dataType.d.ts +17 -0
  432. package/node_modules/ajv/dist/compile/validate/dataType.js +203 -0
  433. package/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  434. package/node_modules/ajv/dist/compile/validate/defaults.d.ts +2 -0
  435. package/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
  436. package/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  437. package/node_modules/ajv/dist/compile/validate/index.d.ts +42 -0
  438. package/node_modules/ajv/dist/compile/validate/index.js +520 -0
  439. package/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  440. package/node_modules/ajv/dist/compile/validate/keyword.d.ts +8 -0
  441. package/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
  442. package/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  443. package/node_modules/ajv/dist/compile/validate/subschema.d.ts +47 -0
  444. package/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
  445. package/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  446. package/node_modules/ajv/dist/core.d.ts +174 -0
  447. package/node_modules/ajv/dist/core.js +618 -0
  448. package/node_modules/ajv/dist/core.js.map +1 -0
  449. package/node_modules/ajv/dist/jtd.d.ts +47 -0
  450. package/node_modules/ajv/dist/jtd.js +72 -0
  451. package/node_modules/ajv/dist/jtd.js.map +1 -0
  452. package/node_modules/ajv/dist/refs/data.json +13 -0
  453. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.d.ts +2 -0
  454. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js +28 -0
  455. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js.map +1 -0
  456. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/applicator.json +53 -0
  457. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/content.json +17 -0
  458. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/core.json +57 -0
  459. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/format.json +14 -0
  460. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/meta-data.json +37 -0
  461. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +90 -0
  462. package/node_modules/ajv/dist/refs/json-schema-2019-09/schema.json +39 -0
  463. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.d.ts +2 -0
  464. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +30 -0
  465. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js.map +1 -0
  466. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +48 -0
  467. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +17 -0
  468. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +51 -0
  469. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  470. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  471. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  472. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +90 -0
  473. package/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +55 -0
  474. package/node_modules/ajv/dist/refs/json-schema-draft-06.json +137 -0
  475. package/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
  476. package/node_modules/ajv/dist/refs/json-schema-secure.json +88 -0
  477. package/node_modules/ajv/dist/refs/jtd-schema.d.ts +3 -0
  478. package/node_modules/ajv/dist/refs/jtd-schema.js +118 -0
  479. package/node_modules/ajv/dist/refs/jtd-schema.js.map +1 -0
  480. package/node_modules/ajv/dist/runtime/equal.d.ts +6 -0
  481. package/node_modules/ajv/dist/runtime/equal.js +7 -0
  482. package/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  483. package/node_modules/ajv/dist/runtime/parseJson.d.ts +18 -0
  484. package/node_modules/ajv/dist/runtime/parseJson.js +185 -0
  485. package/node_modules/ajv/dist/runtime/parseJson.js.map +1 -0
  486. package/node_modules/ajv/dist/runtime/quote.d.ts +5 -0
  487. package/node_modules/ajv/dist/runtime/quote.js +30 -0
  488. package/node_modules/ajv/dist/runtime/quote.js.map +1 -0
  489. package/node_modules/ajv/dist/runtime/re2.d.ts +6 -0
  490. package/node_modules/ajv/dist/runtime/re2.js +6 -0
  491. package/node_modules/ajv/dist/runtime/re2.js.map +1 -0
  492. package/node_modules/ajv/dist/runtime/timestamp.d.ts +5 -0
  493. package/node_modules/ajv/dist/runtime/timestamp.js +42 -0
  494. package/node_modules/ajv/dist/runtime/timestamp.js.map +1 -0
  495. package/node_modules/ajv/dist/runtime/ucs2length.d.ts +5 -0
  496. package/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
  497. package/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  498. package/node_modules/ajv/dist/runtime/uri.d.ts +6 -0
  499. package/node_modules/ajv/dist/runtime/uri.js +6 -0
  500. package/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  501. package/node_modules/ajv/dist/runtime/validation_error.d.ts +7 -0
  502. package/node_modules/ajv/dist/runtime/validation_error.js +11 -0
  503. package/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  504. package/node_modules/ajv/dist/standalone/index.d.ts +6 -0
  505. package/node_modules/ajv/dist/standalone/index.js +90 -0
  506. package/node_modules/ajv/dist/standalone/index.js.map +1 -0
  507. package/node_modules/ajv/dist/standalone/instance.d.ts +12 -0
  508. package/node_modules/ajv/dist/standalone/instance.js +35 -0
  509. package/node_modules/ajv/dist/standalone/instance.js.map +1 -0
  510. package/node_modules/ajv/dist/types/index.d.ts +183 -0
  511. package/node_modules/ajv/dist/types/index.js +3 -0
  512. package/node_modules/ajv/dist/types/index.js.map +1 -0
  513. package/node_modules/ajv/dist/types/json-schema.d.ts +125 -0
  514. package/node_modules/ajv/dist/types/json-schema.js +3 -0
  515. package/node_modules/ajv/dist/types/json-schema.js.map +1 -0
  516. package/node_modules/ajv/dist/types/jtd-schema.d.ts +174 -0
  517. package/node_modules/ajv/dist/types/jtd-schema.js +3 -0
  518. package/node_modules/ajv/dist/types/jtd-schema.js.map +1 -0
  519. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts +8 -0
  520. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
  521. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  522. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts +6 -0
  523. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
  524. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  525. package/node_modules/ajv/dist/vocabularies/applicator/allOf.d.ts +3 -0
  526. package/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
  527. package/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  528. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts +4 -0
  529. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
  530. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  531. package/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts +7 -0
  532. package/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
  533. package/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  534. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts +21 -0
  535. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
  536. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  537. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.d.ts +3 -0
  538. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +11 -0
  539. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js.map +1 -0
  540. package/node_modules/ajv/dist/vocabularies/applicator/if.d.ts +6 -0
  541. package/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
  542. package/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  543. package/node_modules/ajv/dist/vocabularies/applicator/index.d.ts +13 -0
  544. package/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
  545. package/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  546. package/node_modules/ajv/dist/vocabularies/applicator/items.d.ts +5 -0
  547. package/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
  548. package/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  549. package/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts +6 -0
  550. package/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
  551. package/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  552. package/node_modules/ajv/dist/vocabularies/applicator/not.d.ts +4 -0
  553. package/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
  554. package/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  555. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts +6 -0
  556. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
  557. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  558. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.d.ts +3 -0
  559. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
  560. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  561. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.d.ts +3 -0
  562. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
  563. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  564. package/node_modules/ajv/dist/vocabularies/applicator/properties.d.ts +3 -0
  565. package/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
  566. package/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  567. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts +6 -0
  568. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
  569. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  570. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.d.ts +3 -0
  571. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
  572. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  573. package/node_modules/ajv/dist/vocabularies/code.d.ts +17 -0
  574. package/node_modules/ajv/dist/vocabularies/code.js +131 -0
  575. package/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  576. package/node_modules/ajv/dist/vocabularies/core/id.d.ts +3 -0
  577. package/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
  578. package/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  579. package/node_modules/ajv/dist/vocabularies/core/index.d.ts +3 -0
  580. package/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
  581. package/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  582. package/node_modules/ajv/dist/vocabularies/core/ref.d.ts +8 -0
  583. package/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
  584. package/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  585. package/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts +5 -0
  586. package/node_modules/ajv/dist/vocabularies/discriminator/index.js +104 -0
  587. package/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  588. package/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts +10 -0
  589. package/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
  590. package/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  591. package/node_modules/ajv/dist/vocabularies/draft2020.d.ts +3 -0
  592. package/node_modules/ajv/dist/vocabularies/draft2020.js +23 -0
  593. package/node_modules/ajv/dist/vocabularies/draft2020.js.map +1 -0
  594. package/node_modules/ajv/dist/vocabularies/draft7.d.ts +3 -0
  595. package/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
  596. package/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  597. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.d.ts +5 -0
  598. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +30 -0
  599. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js.map +1 -0
  600. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.d.ts +5 -0
  601. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +51 -0
  602. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js.map +1 -0
  603. package/node_modules/ajv/dist/vocabularies/dynamic/index.d.ts +3 -0
  604. package/node_modules/ajv/dist/vocabularies/dynamic/index.js +9 -0
  605. package/node_modules/ajv/dist/vocabularies/dynamic/index.js.map +1 -0
  606. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.d.ts +3 -0
  607. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +16 -0
  608. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js.map +1 -0
  609. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.d.ts +3 -0
  610. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +10 -0
  611. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js.map +1 -0
  612. package/node_modules/ajv/dist/vocabularies/errors.d.ts +9 -0
  613. package/node_modules/ajv/dist/vocabularies/errors.js +3 -0
  614. package/node_modules/ajv/dist/vocabularies/errors.js.map +1 -0
  615. package/node_modules/ajv/dist/vocabularies/format/format.d.ts +8 -0
  616. package/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
  617. package/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  618. package/node_modules/ajv/dist/vocabularies/format/index.d.ts +3 -0
  619. package/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
  620. package/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  621. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts +6 -0
  622. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js +71 -0
  623. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js.map +1 -0
  624. package/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts +5 -0
  625. package/node_modules/ajv/dist/vocabularies/jtd/elements.js +24 -0
  626. package/node_modules/ajv/dist/vocabularies/jtd/elements.js.map +1 -0
  627. package/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts +6 -0
  628. package/node_modules/ajv/dist/vocabularies/jtd/enum.js +43 -0
  629. package/node_modules/ajv/dist/vocabularies/jtd/enum.js.map +1 -0
  630. package/node_modules/ajv/dist/vocabularies/jtd/error.d.ts +9 -0
  631. package/node_modules/ajv/dist/vocabularies/jtd/error.js +20 -0
  632. package/node_modules/ajv/dist/vocabularies/jtd/error.js.map +1 -0
  633. package/node_modules/ajv/dist/vocabularies/jtd/index.d.ts +10 -0
  634. package/node_modules/ajv/dist/vocabularies/jtd/index.js +29 -0
  635. package/node_modules/ajv/dist/vocabularies/jtd/index.js.map +1 -0
  636. package/node_modules/ajv/dist/vocabularies/jtd/metadata.d.ts +5 -0
  637. package/node_modules/ajv/dist/vocabularies/jtd/metadata.js +25 -0
  638. package/node_modules/ajv/dist/vocabularies/jtd/metadata.js.map +1 -0
  639. package/node_modules/ajv/dist/vocabularies/jtd/nullable.d.ts +4 -0
  640. package/node_modules/ajv/dist/vocabularies/jtd/nullable.js +22 -0
  641. package/node_modules/ajv/dist/vocabularies/jtd/nullable.js.map +1 -0
  642. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.d.ts +3 -0
  643. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js +15 -0
  644. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js.map +1 -0
  645. package/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts +22 -0
  646. package/node_modules/ajv/dist/vocabularies/jtd/properties.js +149 -0
  647. package/node_modules/ajv/dist/vocabularies/jtd/properties.js.map +1 -0
  648. package/node_modules/ajv/dist/vocabularies/jtd/ref.d.ts +4 -0
  649. package/node_modules/ajv/dist/vocabularies/jtd/ref.js +67 -0
  650. package/node_modules/ajv/dist/vocabularies/jtd/ref.js.map +1 -0
  651. package/node_modules/ajv/dist/vocabularies/jtd/type.d.ts +10 -0
  652. package/node_modules/ajv/dist/vocabularies/jtd/type.js +69 -0
  653. package/node_modules/ajv/dist/vocabularies/jtd/type.js.map +1 -0
  654. package/node_modules/ajv/dist/vocabularies/jtd/union.d.ts +3 -0
  655. package/node_modules/ajv/dist/vocabularies/jtd/union.js +12 -0
  656. package/node_modules/ajv/dist/vocabularies/jtd/union.js.map +1 -0
  657. package/node_modules/ajv/dist/vocabularies/jtd/values.d.ts +5 -0
  658. package/node_modules/ajv/dist/vocabularies/jtd/values.js +51 -0
  659. package/node_modules/ajv/dist/vocabularies/jtd/values.js.map +1 -0
  660. package/node_modules/ajv/dist/vocabularies/metadata.d.ts +3 -0
  661. package/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
  662. package/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  663. package/node_modules/ajv/dist/vocabularies/next.d.ts +3 -0
  664. package/node_modules/ajv/dist/vocabularies/next.js +8 -0
  665. package/node_modules/ajv/dist/vocabularies/next.js.map +1 -0
  666. package/node_modules/ajv/dist/vocabularies/unevaluated/index.d.ts +3 -0
  667. package/node_modules/ajv/dist/vocabularies/unevaluated/index.js +7 -0
  668. package/node_modules/ajv/dist/vocabularies/unevaluated/index.js.map +1 -0
  669. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts +6 -0
  670. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +40 -0
  671. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js.map +1 -0
  672. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts +6 -0
  673. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +65 -0
  674. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js.map +1 -0
  675. package/node_modules/ajv/dist/vocabularies/validation/const.d.ts +6 -0
  676. package/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
  677. package/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  678. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts +5 -0
  679. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +12 -0
  680. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js.map +1 -0
  681. package/node_modules/ajv/dist/vocabularies/validation/enum.d.ts +8 -0
  682. package/node_modules/ajv/dist/vocabularies/validation/enum.js +48 -0
  683. package/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  684. package/node_modules/ajv/dist/vocabularies/validation/index.d.ts +16 -0
  685. package/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
  686. package/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  687. package/node_modules/ajv/dist/vocabularies/validation/limitContains.d.ts +3 -0
  688. package/node_modules/ajv/dist/vocabularies/validation/limitContains.js +15 -0
  689. package/node_modules/ajv/dist/vocabularies/validation/limitContains.js.map +1 -0
  690. package/node_modules/ajv/dist/vocabularies/validation/limitItems.d.ts +3 -0
  691. package/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
  692. package/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  693. package/node_modules/ajv/dist/vocabularies/validation/limitLength.d.ts +3 -0
  694. package/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
  695. package/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  696. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts +11 -0
  697. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
  698. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  699. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.d.ts +3 -0
  700. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
  701. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  702. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts +8 -0
  703. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
  704. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  705. package/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts +8 -0
  706. package/node_modules/ajv/dist/vocabularies/validation/pattern.js +33 -0
  707. package/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  708. package/node_modules/ajv/dist/vocabularies/validation/required.d.ts +8 -0
  709. package/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
  710. package/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  711. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts +9 -0
  712. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
  713. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  714. package/node_modules/ajv/lib/2019.ts +81 -0
  715. package/node_modules/ajv/lib/2020.ts +75 -0
  716. package/node_modules/ajv/lib/ajv.ts +70 -0
  717. package/node_modules/ajv/lib/compile/codegen/code.ts +169 -0
  718. package/node_modules/ajv/lib/compile/codegen/index.ts +852 -0
  719. package/node_modules/ajv/lib/compile/codegen/scope.ts +215 -0
  720. package/node_modules/ajv/lib/compile/errors.ts +184 -0
  721. package/node_modules/ajv/lib/compile/index.ts +324 -0
  722. package/node_modules/ajv/lib/compile/jtd/parse.ts +411 -0
  723. package/node_modules/ajv/lib/compile/jtd/serialize.ts +277 -0
  724. package/node_modules/ajv/lib/compile/jtd/types.ts +16 -0
  725. package/node_modules/ajv/lib/compile/names.ts +27 -0
  726. package/node_modules/ajv/lib/compile/ref_error.ts +13 -0
  727. package/node_modules/ajv/lib/compile/resolve.ts +149 -0
  728. package/node_modules/ajv/lib/compile/rules.ts +50 -0
  729. package/node_modules/ajv/lib/compile/util.ts +213 -0
  730. package/node_modules/ajv/lib/compile/validate/applicability.ts +22 -0
  731. package/node_modules/ajv/lib/compile/validate/boolSchema.ts +47 -0
  732. package/node_modules/ajv/lib/compile/validate/dataType.ts +230 -0
  733. package/node_modules/ajv/lib/compile/validate/defaults.ts +32 -0
  734. package/node_modules/ajv/lib/compile/validate/index.ts +582 -0
  735. package/node_modules/ajv/lib/compile/validate/keyword.ts +171 -0
  736. package/node_modules/ajv/lib/compile/validate/subschema.ts +135 -0
  737. package/node_modules/ajv/lib/core.ts +892 -0
  738. package/node_modules/ajv/lib/jtd.ts +132 -0
  739. package/node_modules/ajv/lib/refs/data.json +13 -0
  740. package/node_modules/ajv/lib/refs/json-schema-2019-09/index.ts +28 -0
  741. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/applicator.json +53 -0
  742. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/content.json +17 -0
  743. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/core.json +57 -0
  744. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/format.json +14 -0
  745. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/meta-data.json +37 -0
  746. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/validation.json +90 -0
  747. package/node_modules/ajv/lib/refs/json-schema-2019-09/schema.json +39 -0
  748. package/node_modules/ajv/lib/refs/json-schema-2020-12/index.ts +30 -0
  749. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/applicator.json +48 -0
  750. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/content.json +17 -0
  751. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/core.json +51 -0
  752. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  753. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  754. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  755. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/validation.json +90 -0
  756. package/node_modules/ajv/lib/refs/json-schema-2020-12/schema.json +55 -0
  757. package/node_modules/ajv/lib/refs/json-schema-draft-06.json +137 -0
  758. package/node_modules/ajv/lib/refs/json-schema-draft-07.json +151 -0
  759. package/node_modules/ajv/lib/refs/json-schema-secure.json +88 -0
  760. package/node_modules/ajv/lib/refs/jtd-schema.ts +130 -0
  761. package/node_modules/ajv/lib/runtime/equal.ts +7 -0
  762. package/node_modules/ajv/lib/runtime/parseJson.ts +177 -0
  763. package/node_modules/ajv/lib/runtime/quote.ts +31 -0
  764. package/node_modules/ajv/lib/runtime/re2.ts +6 -0
  765. package/node_modules/ajv/lib/runtime/timestamp.ts +46 -0
  766. package/node_modules/ajv/lib/runtime/ucs2length.ts +20 -0
  767. package/node_modules/ajv/lib/runtime/uri.ts +6 -0
  768. package/node_modules/ajv/lib/runtime/validation_error.ts +13 -0
  769. package/node_modules/ajv/lib/standalone/index.ts +100 -0
  770. package/node_modules/ajv/lib/standalone/instance.ts +36 -0
  771. package/node_modules/ajv/lib/types/index.ts +244 -0
  772. package/node_modules/ajv/lib/types/json-schema.ts +187 -0
  773. package/node_modules/ajv/lib/types/jtd-schema.ts +273 -0
  774. package/node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts +56 -0
  775. package/node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts +118 -0
  776. package/node_modules/ajv/lib/vocabularies/applicator/allOf.ts +22 -0
  777. package/node_modules/ajv/lib/vocabularies/applicator/anyOf.ts +14 -0
  778. package/node_modules/ajv/lib/vocabularies/applicator/contains.ts +109 -0
  779. package/node_modules/ajv/lib/vocabularies/applicator/dependencies.ts +112 -0
  780. package/node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts +11 -0
  781. package/node_modules/ajv/lib/vocabularies/applicator/if.ts +80 -0
  782. package/node_modules/ajv/lib/vocabularies/applicator/index.ts +53 -0
  783. package/node_modules/ajv/lib/vocabularies/applicator/items.ts +59 -0
  784. package/node_modules/ajv/lib/vocabularies/applicator/items2020.ts +36 -0
  785. package/node_modules/ajv/lib/vocabularies/applicator/not.ts +38 -0
  786. package/node_modules/ajv/lib/vocabularies/applicator/oneOf.ts +82 -0
  787. package/node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts +91 -0
  788. package/node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts +12 -0
  789. package/node_modules/ajv/lib/vocabularies/applicator/properties.ts +57 -0
  790. package/node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts +50 -0
  791. package/node_modules/ajv/lib/vocabularies/applicator/thenElse.ts +13 -0
  792. package/node_modules/ajv/lib/vocabularies/code.ts +168 -0
  793. package/node_modules/ajv/lib/vocabularies/core/id.ts +10 -0
  794. package/node_modules/ajv/lib/vocabularies/core/index.ts +16 -0
  795. package/node_modules/ajv/lib/vocabularies/core/ref.ts +129 -0
  796. package/node_modules/ajv/lib/vocabularies/discriminator/index.ts +113 -0
  797. package/node_modules/ajv/lib/vocabularies/discriminator/types.ts +12 -0
  798. package/node_modules/ajv/lib/vocabularies/draft2020.ts +23 -0
  799. package/node_modules/ajv/lib/vocabularies/draft7.ts +17 -0
  800. package/node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts +31 -0
  801. package/node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts +51 -0
  802. package/node_modules/ajv/lib/vocabularies/dynamic/index.ts +9 -0
  803. package/node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts +14 -0
  804. package/node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts +10 -0
  805. package/node_modules/ajv/lib/vocabularies/errors.ts +18 -0
  806. package/node_modules/ajv/lib/vocabularies/format/format.ts +120 -0
  807. package/node_modules/ajv/lib/vocabularies/format/index.ts +6 -0
  808. package/node_modules/ajv/lib/vocabularies/jtd/discriminator.ts +89 -0
  809. package/node_modules/ajv/lib/vocabularies/jtd/elements.ts +32 -0
  810. package/node_modules/ajv/lib/vocabularies/jtd/enum.ts +45 -0
  811. package/node_modules/ajv/lib/vocabularies/jtd/error.ts +23 -0
  812. package/node_modules/ajv/lib/vocabularies/jtd/index.ts +37 -0
  813. package/node_modules/ajv/lib/vocabularies/jtd/metadata.ts +24 -0
  814. package/node_modules/ajv/lib/vocabularies/jtd/nullable.ts +21 -0
  815. package/node_modules/ajv/lib/vocabularies/jtd/optionalProperties.ts +15 -0
  816. package/node_modules/ajv/lib/vocabularies/jtd/properties.ts +184 -0
  817. package/node_modules/ajv/lib/vocabularies/jtd/ref.ts +76 -0
  818. package/node_modules/ajv/lib/vocabularies/jtd/type.ts +75 -0
  819. package/node_modules/ajv/lib/vocabularies/jtd/union.ts +12 -0
  820. package/node_modules/ajv/lib/vocabularies/jtd/values.ts +58 -0
  821. package/node_modules/ajv/lib/vocabularies/metadata.ts +17 -0
  822. package/node_modules/ajv/lib/vocabularies/next.ts +8 -0
  823. package/node_modules/ajv/lib/vocabularies/unevaluated/index.ts +7 -0
  824. package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts +47 -0
  825. package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts +85 -0
  826. package/node_modules/ajv/lib/vocabularies/validation/const.ts +28 -0
  827. package/node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts +23 -0
  828. package/node_modules/ajv/lib/vocabularies/validation/enum.ts +54 -0
  829. package/node_modules/ajv/lib/vocabularies/validation/index.ts +49 -0
  830. package/node_modules/ajv/lib/vocabularies/validation/limitContains.ts +16 -0
  831. package/node_modules/ajv/lib/vocabularies/validation/limitItems.ts +26 -0
  832. package/node_modules/ajv/lib/vocabularies/validation/limitLength.ts +30 -0
  833. package/node_modules/ajv/lib/vocabularies/validation/limitNumber.ts +42 -0
  834. package/node_modules/ajv/lib/vocabularies/validation/limitProperties.ts +26 -0
  835. package/node_modules/ajv/lib/vocabularies/validation/multipleOf.ts +34 -0
  836. package/node_modules/ajv/lib/vocabularies/validation/pattern.ts +39 -0
  837. package/node_modules/ajv/lib/vocabularies/validation/required.ts +98 -0
  838. package/node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts +79 -0
  839. package/node_modules/ajv/package.json +126 -0
  840. package/node_modules/ajv-formats/LICENSE +21 -0
  841. package/node_modules/ajv-formats/README.md +125 -0
  842. package/node_modules/ajv-formats/dist/formats.d.ts +9 -0
  843. package/node_modules/ajv-formats/dist/formats.js +208 -0
  844. package/node_modules/ajv-formats/dist/formats.js.map +1 -0
  845. package/node_modules/ajv-formats/dist/index.d.ts +15 -0
  846. package/node_modules/ajv-formats/dist/index.js +37 -0
  847. package/node_modules/ajv-formats/dist/index.js.map +1 -0
  848. package/node_modules/ajv-formats/dist/limit.d.ts +10 -0
  849. package/node_modules/ajv-formats/dist/limit.js +69 -0
  850. package/node_modules/ajv-formats/dist/limit.js.map +1 -0
  851. package/node_modules/ajv-formats/package.json +74 -0
  852. package/node_modules/ajv-formats/src/formats.ts +269 -0
  853. package/node_modules/ajv-formats/src/index.ts +62 -0
  854. package/node_modules/ajv-formats/src/limit.ts +99 -0
  855. package/node_modules/fast-deep-equal/LICENSE +21 -0
  856. package/node_modules/fast-deep-equal/README.md +96 -0
  857. package/node_modules/fast-deep-equal/es6/index.d.ts +2 -0
  858. package/node_modules/fast-deep-equal/es6/index.js +72 -0
  859. package/node_modules/fast-deep-equal/es6/react.d.ts +2 -0
  860. package/node_modules/fast-deep-equal/es6/react.js +79 -0
  861. package/node_modules/fast-deep-equal/index.d.ts +4 -0
  862. package/node_modules/fast-deep-equal/index.js +46 -0
  863. package/node_modules/fast-deep-equal/package.json +61 -0
  864. package/node_modules/fast-deep-equal/react.d.ts +2 -0
  865. package/node_modules/fast-deep-equal/react.js +53 -0
  866. package/node_modules/fast-uri/.gitattributes +2 -0
  867. package/node_modules/fast-uri/.github/dependabot.yml +13 -0
  868. package/node_modules/fast-uri/.github/workflows/ci.yml +106 -0
  869. package/node_modules/fast-uri/.github/workflows/lock-threads.yml +19 -0
  870. package/node_modules/fast-uri/.github/workflows/package-manager-ci.yml +24 -0
  871. package/node_modules/fast-uri/LICENSE +30 -0
  872. package/node_modules/fast-uri/README.md +152 -0
  873. package/node_modules/fast-uri/benchmark/benchmark.mjs +159 -0
  874. package/node_modules/fast-uri/benchmark/equal.mjs +51 -0
  875. package/node_modules/fast-uri/benchmark/non-simple-domain.mjs +22 -0
  876. package/node_modules/fast-uri/benchmark/package.json +17 -0
  877. package/node_modules/fast-uri/benchmark/string-array-to-hex-stripped.mjs +24 -0
  878. package/node_modules/fast-uri/benchmark/ws-is-secure.mjs +65 -0
  879. package/node_modules/fast-uri/eslint.config.js +6 -0
  880. package/node_modules/fast-uri/index.js +631 -0
  881. package/node_modules/fast-uri/lib/schemes.js +272 -0
  882. package/node_modules/fast-uri/lib/utils.js +747 -0
  883. package/node_modules/fast-uri/package.json +68 -0
  884. package/node_modules/fast-uri/test/ajv.test.js +43 -0
  885. package/node_modules/fast-uri/test/component-safe-serialization.test.js +163 -0
  886. package/node_modules/fast-uri/test/equal.test.js +145 -0
  887. package/node_modules/fast-uri/test/fixtures/uri-js-parse.json +503 -0
  888. package/node_modules/fast-uri/test/fixtures/uri-js-serialize.json +120 -0
  889. package/node_modules/fast-uri/test/ipv6-canonical.test.js +34 -0
  890. package/node_modules/fast-uri/test/ipv6-validation.test.js +124 -0
  891. package/node_modules/fast-uri/test/malformed-percent.test.js +77 -0
  892. package/node_modules/fast-uri/test/malformed-urn.test.js +61 -0
  893. package/node_modules/fast-uri/test/parse.test.js +327 -0
  894. package/node_modules/fast-uri/test/query-fragment-normalization.test.js +33 -0
  895. package/node_modules/fast-uri/test/reserved-path-normalization.test.js +109 -0
  896. package/node_modules/fast-uri/test/resolve.test.js +87 -0
  897. package/node_modules/fast-uri/test/rfc-3986.test.js +90 -0
  898. package/node_modules/fast-uri/test/scheme-validation.test.js +124 -0
  899. package/node_modules/fast-uri/test/security-normalization.test.js +178 -0
  900. package/node_modules/fast-uri/test/security.test.js +431 -0
  901. package/node_modules/fast-uri/test/serialize.test.js +151 -0
  902. package/node_modules/fast-uri/test/uri-js-compatibility.test.js +33 -0
  903. package/node_modules/fast-uri/test/uri-js.test.js +912 -0
  904. package/node_modules/fast-uri/test/urn-full-input.test.js +29 -0
  905. package/node_modules/fast-uri/test/util.test.js +38 -0
  906. package/node_modules/fast-uri/test/websocket-query-preservation.test.js +24 -0
  907. package/node_modules/fast-uri/tsconfig.json +9 -0
  908. package/node_modules/fast-uri/types/index.d.ts +60 -0
  909. package/node_modules/fast-uri/types/index.test-d.ts +17 -0
  910. package/node_modules/json-schema-traverse/.eslintrc.yml +27 -0
  911. package/node_modules/json-schema-traverse/.github/FUNDING.yml +2 -0
  912. package/node_modules/json-schema-traverse/.github/workflows/build.yml +28 -0
  913. package/node_modules/json-schema-traverse/.github/workflows/publish.yml +27 -0
  914. package/node_modules/json-schema-traverse/LICENSE +21 -0
  915. package/node_modules/json-schema-traverse/README.md +95 -0
  916. package/node_modules/json-schema-traverse/index.d.ts +40 -0
  917. package/node_modules/json-schema-traverse/index.js +93 -0
  918. package/node_modules/json-schema-traverse/package.json +43 -0
  919. package/node_modules/json-schema-traverse/spec/.eslintrc.yml +6 -0
  920. package/node_modules/json-schema-traverse/spec/fixtures/schema.js +125 -0
  921. package/node_modules/json-schema-traverse/spec/index.spec.js +171 -0
  922. package/node_modules/require-from-string/index.js +34 -0
  923. package/node_modules/require-from-string/license +21 -0
  924. package/node_modules/require-from-string/package.json +28 -0
  925. package/node_modules/require-from-string/readme.md +56 -0
  926. package/package.json +49 -2
  927. package/packages/cli/dist/agent-spans.d.ts +238 -0
  928. package/packages/cli/dist/agent-spans.d.ts.map +1 -0
  929. package/packages/cli/dist/agent-spans.js +677 -0
  930. package/packages/cli/dist/agent-spans.js.map +1 -0
  931. package/packages/cli/dist/api.d.ts +127 -0
  932. package/packages/cli/dist/api.d.ts.map +1 -0
  933. package/packages/cli/dist/api.js +159 -0
  934. package/packages/cli/dist/api.js.map +1 -0
  935. package/packages/cli/dist/archive.d.ts +24 -0
  936. package/packages/cli/dist/archive.d.ts.map +1 -0
  937. package/packages/cli/dist/archive.js +230 -0
  938. package/packages/cli/dist/archive.js.map +1 -0
  939. package/packages/cli/dist/args.d.ts +57 -0
  940. package/packages/cli/dist/args.d.ts.map +1 -0
  941. package/packages/cli/dist/args.js +180 -0
  942. package/packages/cli/dist/args.js.map +1 -0
  943. package/packages/cli/dist/attach.d.ts +48 -0
  944. package/packages/cli/dist/attach.d.ts.map +1 -0
  945. package/packages/cli/dist/attach.js +153 -0
  946. package/packages/cli/dist/attach.js.map +1 -0
  947. package/packages/cli/dist/capture-limits.d.ts +7 -0
  948. package/packages/cli/dist/capture-limits.d.ts.map +1 -0
  949. package/packages/cli/dist/capture-limits.js +13 -0
  950. package/packages/cli/dist/capture-limits.js.map +1 -0
  951. package/packages/cli/dist/cli.d.ts +3 -0
  952. package/packages/cli/dist/cli.d.ts.map +1 -0
  953. package/packages/cli/dist/cli.js +4 -0
  954. package/packages/cli/dist/cli.js.map +1 -0
  955. package/packages/cli/dist/commands/attach.d.ts +49 -0
  956. package/packages/cli/dist/commands/attach.d.ts.map +1 -0
  957. package/packages/cli/dist/commands/attach.js +350 -0
  958. package/packages/cli/dist/commands/attach.js.map +1 -0
  959. package/packages/cli/dist/commands/compare.d.ts +27 -0
  960. package/packages/cli/dist/commands/compare.d.ts.map +1 -0
  961. package/packages/cli/dist/commands/compare.js +187 -0
  962. package/packages/cli/dist/commands/compare.js.map +1 -0
  963. package/packages/cli/dist/commands/doctor.d.ts +24 -0
  964. package/packages/cli/dist/commands/doctor.d.ts.map +1 -0
  965. package/packages/cli/dist/commands/doctor.js +402 -0
  966. package/packages/cli/dist/commands/doctor.js.map +1 -0
  967. package/packages/cli/dist/commands/gc.d.ts +24 -0
  968. package/packages/cli/dist/commands/gc.d.ts.map +1 -0
  969. package/packages/cli/dist/commands/gc.js +326 -0
  970. package/packages/cli/dist/commands/gc.js.map +1 -0
  971. package/packages/cli/dist/commands/inspect.d.ts +45 -0
  972. package/packages/cli/dist/commands/inspect.d.ts.map +1 -0
  973. package/packages/cli/dist/commands/inspect.js +375 -0
  974. package/packages/cli/dist/commands/inspect.js.map +1 -0
  975. package/packages/cli/dist/commands/quickstart.d.ts +48 -0
  976. package/packages/cli/dist/commands/quickstart.d.ts.map +1 -0
  977. package/packages/cli/dist/commands/quickstart.js +413 -0
  978. package/packages/cli/dist/commands/quickstart.js.map +1 -0
  979. package/packages/cli/dist/commands/record.d.ts +31 -0
  980. package/packages/cli/dist/commands/record.d.ts.map +1 -0
  981. package/packages/cli/dist/commands/record.js +958 -0
  982. package/packages/cli/dist/commands/record.js.map +1 -0
  983. package/packages/cli/dist/commands/replay.d.ts +184 -0
  984. package/packages/cli/dist/commands/replay.d.ts.map +1 -0
  985. package/packages/cli/dist/commands/replay.js +2014 -0
  986. package/packages/cli/dist/commands/replay.js.map +1 -0
  987. package/packages/cli/dist/commands/scrub.d.ts +34 -0
  988. package/packages/cli/dist/commands/scrub.d.ts.map +1 -0
  989. package/packages/cli/dist/commands/scrub.js +765 -0
  990. package/packages/cli/dist/commands/scrub.js.map +1 -0
  991. package/packages/cli/dist/commands/setup.d.ts +23 -0
  992. package/packages/cli/dist/commands/setup.d.ts.map +1 -0
  993. package/packages/cli/dist/commands/setup.js +239 -0
  994. package/packages/cli/dist/commands/setup.js.map +1 -0
  995. package/packages/cli/dist/commands/sync.d.ts +236 -0
  996. package/packages/cli/dist/commands/sync.d.ts.map +1 -0
  997. package/packages/cli/dist/commands/sync.js +1270 -0
  998. package/packages/cli/dist/commands/sync.js.map +1 -0
  999. package/packages/cli/dist/config.d.ts +69 -0
  1000. package/packages/cli/dist/config.d.ts.map +1 -0
  1001. package/packages/cli/dist/config.js +144 -0
  1002. package/packages/cli/dist/config.js.map +1 -0
  1003. package/packages/cli/dist/exchange-events.d.ts +80 -0
  1004. package/packages/cli/dist/exchange-events.d.ts.map +1 -0
  1005. package/packages/cli/dist/exchange-events.js +296 -0
  1006. package/packages/cli/dist/exchange-events.js.map +1 -0
  1007. package/packages/cli/dist/flags.d.ts +41 -0
  1008. package/packages/cli/dist/flags.d.ts.map +1 -0
  1009. package/packages/cli/dist/flags.js +292 -0
  1010. package/packages/cli/dist/flags.js.map +1 -0
  1011. package/packages/cli/dist/fs-events.d.ts +19 -0
  1012. package/packages/cli/dist/fs-events.d.ts.map +1 -0
  1013. package/packages/cli/dist/fs-events.js +89 -0
  1014. package/packages/cli/dist/fs-events.js.map +1 -0
  1015. package/packages/cli/dist/index.d.ts +18 -0
  1016. package/packages/cli/dist/index.d.ts.map +1 -0
  1017. package/packages/cli/dist/index.js +18 -0
  1018. package/packages/cli/dist/index.js.map +1 -0
  1019. package/packages/cli/dist/main.d.ts +2 -0
  1020. package/packages/cli/dist/main.d.ts.map +1 -0
  1021. package/packages/cli/dist/main.js +404 -0
  1022. package/packages/cli/dist/main.js.map +1 -0
  1023. package/packages/cli/dist/mcp-server.d.ts +44 -0
  1024. package/packages/cli/dist/mcp-server.d.ts.map +1 -0
  1025. package/packages/cli/dist/mcp-server.js +250 -0
  1026. package/packages/cli/dist/mcp-server.js.map +1 -0
  1027. package/packages/cli/dist/mcp.d.ts +126 -0
  1028. package/packages/cli/dist/mcp.d.ts.map +1 -0
  1029. package/packages/cli/dist/mcp.js +290 -0
  1030. package/packages/cli/dist/mcp.js.map +1 -0
  1031. package/packages/cli/dist/out.d.ts +107 -0
  1032. package/packages/cli/dist/out.d.ts.map +1 -0
  1033. package/packages/cli/dist/out.js +280 -0
  1034. package/packages/cli/dist/out.js.map +1 -0
  1035. package/packages/cli/dist/rasterize.d.ts +62 -0
  1036. package/packages/cli/dist/rasterize.d.ts.map +1 -0
  1037. package/packages/cli/dist/rasterize.js +154 -0
  1038. package/packages/cli/dist/rasterize.js.map +1 -0
  1039. package/packages/cli/dist/serial.d.ts +19 -0
  1040. package/packages/cli/dist/serial.d.ts.map +1 -0
  1041. package/packages/cli/dist/serial.js +34 -0
  1042. package/packages/cli/dist/serial.js.map +1 -0
  1043. package/packages/cli/dist/share-card.d.ts +73 -0
  1044. package/packages/cli/dist/share-card.d.ts.map +1 -0
  1045. package/packages/cli/dist/share-card.js +413 -0
  1046. package/packages/cli/dist/share-card.js.map +1 -0
  1047. package/packages/cli/dist/snapshot.d.ts +39 -0
  1048. package/packages/cli/dist/snapshot.d.ts.map +1 -0
  1049. package/packages/cli/dist/snapshot.js +43 -0
  1050. package/packages/cli/dist/snapshot.js.map +1 -0
  1051. package/packages/cli/dist/tls-capture.d.ts +135 -0
  1052. package/packages/cli/dist/tls-capture.d.ts.map +1 -0
  1053. package/packages/cli/dist/tls-capture.js +586 -0
  1054. package/packages/cli/dist/tls-capture.js.map +1 -0
  1055. package/packages/cli/dist/upstream.d.ts +29 -0
  1056. package/packages/cli/dist/upstream.d.ts.map +1 -0
  1057. package/packages/cli/dist/upstream.js +41 -0
  1058. package/packages/cli/dist/upstream.js.map +1 -0
  1059. package/packages/cli/dist/version.d.ts +2 -0
  1060. package/packages/cli/dist/version.d.ts.map +1 -0
  1061. package/packages/cli/dist/version.js +18 -0
  1062. package/packages/cli/dist/version.js.map +1 -0
  1063. package/packages/cli/package.json +11 -11
  1064. package/.dockerignore +0 -11
  1065. package/.gitattributes +0 -19
  1066. package/.github/workflows/ci.yml +0 -146
  1067. package/.grok-plugin/plugin.json +0 -12
  1068. package/.mcp.json +0 -8
  1069. package/.prettierignore +0 -4
  1070. package/.prettierrc.json +0 -1
  1071. package/CONTRIBUTING.md +0 -106
  1072. package/Dockerfile +0 -30
  1073. package/MAINTAINERS.md +0 -24
  1074. package/RELEASING.md +0 -183
  1075. package/SECURITY.md +0 -149
  1076. package/capture/CAPTURE-RUNBOOK.md +0 -271
  1077. package/capture/CURSOR-HTTP2.md +0 -226
  1078. package/capture/README.md +0 -349
  1079. package/capture/capture-run.gif +0 -0
  1080. package/capture/capture.mjs +0 -1883
  1081. package/capture/fable-capture.gif +0 -0
  1082. package/capture/fable-capture.mp4 +0 -0
  1083. package/capture/muse-shim.mjs +0 -114
  1084. package/capture/render-run.mjs +0 -125
  1085. package/capture/render.mjs +0 -228
  1086. package/companion-kiokuko-dsh.patch +0 -7806
  1087. package/docs/agenticreplay-acceptance.md +0 -135
  1088. package/docs/architecture.md +0 -160
  1089. package/docs/chain-card.png +0 -0
  1090. package/docs/compare-card.png +0 -0
  1091. package/docs/demo-cli.gif +0 -0
  1092. package/docs/demo-viewer.gif +0 -0
  1093. package/docs/fidelity.md +0 -16
  1094. package/docs/good-first-issues.md +0 -78
  1095. package/docs/graph-card.png +0 -0
  1096. package/docs/how-to/compare-models-on-the-same-failure.md +0 -58
  1097. package/docs/how-to/debug-a-failing-agent-run.md +0 -127
  1098. package/docs/how-to/why-did-my-agent-delete-my-file.md +0 -92
  1099. package/docs/i18n/README.ar.md +0 -597
  1100. package/docs/i18n/README.de.md +0 -648
  1101. package/docs/i18n/README.es.md +0 -642
  1102. package/docs/i18n/README.fr.md +0 -649
  1103. package/docs/i18n/README.ja.md +0 -608
  1104. package/docs/i18n/README.ko.md +0 -598
  1105. package/docs/i18n/README.zh-CN.md +0 -574
  1106. package/docs/integrations.md +0 -628
  1107. package/docs/launch-path.md +0 -215
  1108. package/docs/media/README.md +0 -101
  1109. package/docs/media/sync-transcript.txt +0 -18
  1110. package/docs/media/transcript.txt +0 -29
  1111. package/docs/opencode-capture.md +0 -137
  1112. package/docs/plugins.md +0 -250
  1113. package/docs/proposals/action-graph-and-reasoning.md +0 -354
  1114. package/docs/sync-card.png +0 -0
  1115. package/docs/validation.md +0 -52
  1116. package/docs/viewer-timeline.png +0 -0
  1117. package/examples/traces/README.md +0 -50
  1118. package/examples/traces/run_9f2c14a03b71/blobs/1b/1b694f32b8c582ace6b35ad64050e532fb3ee3ecc1a2763a82cf42ad0f2a3dd0 +0 -10
  1119. package/examples/traces/run_9f2c14a03b71/blobs/51/517b5b8ec6c3b13121dbaec61784e2a024247c7c4efd9ba068b582ee57bd2764 +0 -4
  1120. package/examples/traces/run_9f2c14a03b71/blobs/5b/5bba1bd069013d86363f69c00c1ae77c84c4e113aeeb7431c8141af4fed76860 +0 -7
  1121. package/examples/traces/run_9f2c14a03b71/blobs/84/84247e7b385fd5f99a6728a509838e52ef963af92f44ef6eccbed6910de1438d +0 -10
  1122. package/examples/traces/run_9f2c14a03b71/blobs/ac/ac9b4be9bdf7fe63c7b5135e2d14c4c0745a48771e733804869790590455f8e8 +0 -7
  1123. package/examples/traces/run_9f2c14a03b71/events.jsonl +0 -31
  1124. package/examples/traces/run_9f2c14a03b71/manifest.json +0 -46
  1125. package/examples/traces/run_9f2c14a03b71/redactions.json +0 -17
  1126. package/llms.txt +0 -26
  1127. package/packages/adapters/fixtures/harness/claude-code.json +0 -12
  1128. package/packages/adapters/fixtures/harness/codex.json +0 -10
  1129. package/packages/adapters/fixtures/harness/cursor.json +0 -10
  1130. package/packages/adapters/fixtures/harness/exec.json +0 -10
  1131. package/packages/adapters/fixtures/harness/generic-openai.json +0 -14
  1132. package/packages/adapters/fixtures/harness/goose.json +0 -14
  1133. package/packages/adapters/fixtures/harness/grok.json +0 -18
  1134. package/packages/adapters/fixtures/harness/hermes.json +0 -10
  1135. package/packages/adapters/fixtures/harness/indexrag.json +0 -21
  1136. package/packages/adapters/fixtures/harness/kilo.json +0 -10
  1137. package/packages/adapters/fixtures/harness/mcode.json +0 -10
  1138. package/packages/adapters/fixtures/harness/mimo.json +0 -10
  1139. package/packages/adapters/fixtures/harness/node.json +0 -22
  1140. package/packages/adapters/fixtures/harness/openclaw.json +0 -21
  1141. package/packages/adapters/fixtures/harness/opencode.json +0 -20
  1142. package/packages/adapters/fixtures/harness/qwen.json +0 -20
  1143. package/packages/adapters/fixtures/harness/zcode.json +0 -10
  1144. package/packages/adapters/package.json +0 -29
  1145. package/packages/adapters/src/claude-code.ts +0 -109
  1146. package/packages/adapters/src/codex.ts +0 -135
  1147. package/packages/adapters/src/contract.ts +0 -531
  1148. package/packages/adapters/src/cursor.ts +0 -76
  1149. package/packages/adapters/src/detect.ts +0 -132
  1150. package/packages/adapters/src/env.ts +0 -118
  1151. package/packages/adapters/src/exec.ts +0 -59
  1152. package/packages/adapters/src/generic-openai.ts +0 -36
  1153. package/packages/adapters/src/goose.ts +0 -87
  1154. package/packages/adapters/src/grok.ts +0 -60
  1155. package/packages/adapters/src/hermes.ts +0 -92
  1156. package/packages/adapters/src/index.ts +0 -24
  1157. package/packages/adapters/src/indexrag.ts +0 -254
  1158. package/packages/adapters/src/kilo.ts +0 -39
  1159. package/packages/adapters/src/mcode.ts +0 -392
  1160. package/packages/adapters/src/mcp-config.ts +0 -84
  1161. package/packages/adapters/src/mimo.ts +0 -44
  1162. package/packages/adapters/src/node.ts +0 -71
  1163. package/packages/adapters/src/openclaw.ts +0 -50
  1164. package/packages/adapters/src/opencode-api-bases.ts +0 -200
  1165. package/packages/adapters/src/opencode-capture.ts +0 -164
  1166. package/packages/adapters/src/opencode-catalog.ts +0 -44
  1167. package/packages/adapters/src/opencode-config.ts +0 -209
  1168. package/packages/adapters/src/opencode.ts +0 -257
  1169. package/packages/adapters/src/qwen.ts +0 -113
  1170. package/packages/adapters/src/registry.ts +0 -121
  1171. package/packages/adapters/src/scaffold.ts +0 -173
  1172. package/packages/adapters/src/session.ts +0 -138
  1173. package/packages/adapters/src/zcode.ts +0 -440
  1174. package/packages/adapters/test/adapters.test.ts +0 -666
  1175. package/packages/adapters/test/contract.test.ts +0 -601
  1176. package/packages/adapters/test/exec-adapter.test.ts +0 -114
  1177. package/packages/adapters/test/harness-versions.test.ts +0 -220
  1178. package/packages/adapters/test/indexrag.test.ts +0 -192
  1179. package/packages/adapters/test/mcode.test.ts +0 -678
  1180. package/packages/adapters/test/mcp-config.test.ts +0 -118
  1181. package/packages/adapters/test/named-agents.test.ts +0 -262
  1182. package/packages/adapters/test/node-adapter.test.ts +0 -98
  1183. package/packages/adapters/test/opencode-capture.test.ts +0 -137
  1184. package/packages/adapters/test/opencode-catalog.test.ts +0 -178
  1185. package/packages/adapters/test/opencode-config.test.ts +0 -63
  1186. package/packages/adapters/test/scaffold.test.ts +0 -156
  1187. package/packages/adapters/test/session.test.ts +0 -368
  1188. package/packages/adapters/test/zcode.test.ts +0 -497
  1189. package/packages/adapters/tsconfig.json +0 -16
  1190. package/packages/cli/README.md +0 -92
  1191. package/packages/cli/src/agent-spans.ts +0 -752
  1192. package/packages/cli/src/api.ts +0 -275
  1193. package/packages/cli/src/archive.ts +0 -264
  1194. package/packages/cli/src/args.ts +0 -207
  1195. package/packages/cli/src/attach.ts +0 -178
  1196. package/packages/cli/src/capture-limits.ts +0 -21
  1197. package/packages/cli/src/cli.ts +0 -4
  1198. package/packages/cli/src/commands/attach.ts +0 -441
  1199. package/packages/cli/src/commands/compare.ts +0 -218
  1200. package/packages/cli/src/commands/doctor.ts +0 -447
  1201. package/packages/cli/src/commands/gc.ts +0 -372
  1202. package/packages/cli/src/commands/inspect.ts +0 -482
  1203. package/packages/cli/src/commands/quickstart.ts +0 -479
  1204. package/packages/cli/src/commands/record.ts +0 -1069
  1205. package/packages/cli/src/commands/replay.ts +0 -2289
  1206. package/packages/cli/src/commands/scrub.ts +0 -865
  1207. package/packages/cli/src/commands/setup.ts +0 -294
  1208. package/packages/cli/src/commands/sync.ts +0 -1429
  1209. package/packages/cli/src/config.ts +0 -182
  1210. package/packages/cli/src/exchange-events.ts +0 -369
  1211. package/packages/cli/src/flags.ts +0 -316
  1212. package/packages/cli/src/fs-events.ts +0 -103
  1213. package/packages/cli/src/index.ts +0 -17
  1214. package/packages/cli/src/main.ts +0 -419
  1215. package/packages/cli/src/mcp-server.ts +0 -314
  1216. package/packages/cli/src/mcp.ts +0 -350
  1217. package/packages/cli/src/out.ts +0 -350
  1218. package/packages/cli/src/rasterize.ts +0 -205
  1219. package/packages/cli/src/serial.ts +0 -38
  1220. package/packages/cli/src/share-card.ts +0 -514
  1221. package/packages/cli/src/snapshot.ts +0 -80
  1222. package/packages/cli/src/tls-capture.ts +0 -688
  1223. package/packages/cli/src/upstream.ts +0 -75
  1224. package/packages/cli/src/version.ts +0 -21
  1225. package/packages/cli/test/agent-spans-drain.test.ts +0 -157
  1226. package/packages/cli/test/agent-spans-race.test.ts +0 -97
  1227. package/packages/cli/test/agent-spans.test.ts +0 -1032
  1228. package/packages/cli/test/api.test.ts +0 -178
  1229. package/packages/cli/test/archive.test.ts +0 -143
  1230. package/packages/cli/test/args.test.ts +0 -164
  1231. package/packages/cli/test/attach-command.test.ts +0 -356
  1232. package/packages/cli/test/attach.test.ts +0 -198
  1233. package/packages/cli/test/capture-oracle.test.ts +0 -160
  1234. package/packages/cli/test/capture-warning.test.ts +0 -215
  1235. package/packages/cli/test/chain-card.test.ts +0 -190
  1236. package/packages/cli/test/claude-capture.test.ts +0 -242
  1237. package/packages/cli/test/compare.test.ts +0 -329
  1238. package/packages/cli/test/config-permission-failure.test.ts +0 -41
  1239. package/packages/cli/test/config.test.ts +0 -239
  1240. package/packages/cli/test/declared-inside-replay.test.ts +0 -170
  1241. package/packages/cli/test/doctor.test.ts +0 -276
  1242. package/packages/cli/test/e2e.test.ts +0 -1230
  1243. package/packages/cli/test/exchange-events.test.ts +0 -345
  1244. package/packages/cli/test/failure-lines.test.ts +0 -47
  1245. package/packages/cli/test/fixtures/deaf-agent.mjs +0 -11
  1246. package/packages/cli/test/fixtures/embedding-agent.mjs +0 -32
  1247. package/packages/cli/test/fixtures/fake-agent.mjs +0 -114
  1248. package/packages/cli/test/fixtures/fake-model.mjs +0 -105
  1249. package/packages/cli/test/fixtures/gateway-agent.mjs +0 -20
  1250. package/packages/cli/test/fixtures/ide-parent.mjs +0 -34
  1251. package/packages/cli/test/fixtures/mcp-agent.mjs +0 -64
  1252. package/packages/cli/test/fixtures/proxy-call.mjs +0 -105
  1253. package/packages/cli/test/fixtures/responses-agent.mjs +0 -82
  1254. package/packages/cli/test/fixtures/responses-model.mjs +0 -94
  1255. package/packages/cli/test/fixtures/tls-agent.mjs +0 -35
  1256. package/packages/cli/test/fixtures/vercel-agent.mjs +0 -81
  1257. package/packages/cli/test/flag-values.test.ts +0 -162
  1258. package/packages/cli/test/flags.test.ts +0 -313
  1259. package/packages/cli/test/fork-provenance.test.ts +0 -224
  1260. package/packages/cli/test/fork-tls.test.ts +0 -190
  1261. package/packages/cli/test/gateway-e2e.test.ts +0 -110
  1262. package/packages/cli/test/gc.test.ts +0 -531
  1263. package/packages/cli/test/generated-esm.test.ts +0 -87
  1264. package/packages/cli/test/graph-card.test.ts +0 -249
  1265. package/packages/cli/test/graph-command.test.ts +0 -258
  1266. package/packages/cli/test/grok-bot-e2e.test.ts +0 -349
  1267. package/packages/cli/test/inspect.test.ts +0 -412
  1268. package/packages/cli/test/intercept-failures.test.ts +0 -74
  1269. package/packages/cli/test/json-only.test.ts +0 -88
  1270. package/packages/cli/test/json-output.test.ts +0 -221
  1271. package/packages/cli/test/list-gateway.test.ts +0 -770
  1272. package/packages/cli/test/mcp-capture.test.ts +0 -498
  1273. package/packages/cli/test/mcp-server.test.ts +0 -315
  1274. package/packages/cli/test/nested-repo-replay.test.ts +0 -972
  1275. package/packages/cli/test/no-credential-in-attrs.test.ts +0 -255
  1276. package/packages/cli/test/opencode-capture.test.ts +0 -422
  1277. package/packages/cli/test/opencode-catalog-capture.test.ts +0 -175
  1278. package/packages/cli/test/out.test.ts +0 -491
  1279. package/packages/cli/test/pinned-fetch.test.ts +0 -154
  1280. package/packages/cli/test/prompt-scrub.test.ts +0 -132
  1281. package/packages/cli/test/publish-order.test.ts +0 -87
  1282. package/packages/cli/test/quickstart.test.ts +0 -579
  1283. package/packages/cli/test/rasterize.test.ts +0 -86
  1284. package/packages/cli/test/record-detection.test.ts +0 -156
  1285. package/packages/cli/test/record-teardown.test.ts +0 -203
  1286. package/packages/cli/test/replay-putback.test.ts +0 -242
  1287. package/packages/cli/test/replay-spill.test.ts +0 -116
  1288. package/packages/cli/test/replay-teardown.test.ts +0 -143
  1289. package/packages/cli/test/replay-trace.test.ts +0 -199
  1290. package/packages/cli/test/replay-transport.test.ts +0 -113
  1291. package/packages/cli/test/reset-roots.test.ts +0 -67
  1292. package/packages/cli/test/responses-e2e.test.ts +0 -119
  1293. package/packages/cli/test/retrieval-context.test.ts +0 -168
  1294. package/packages/cli/test/review-regressions.test.ts +0 -168
  1295. package/packages/cli/test/route-decision.test.ts +0 -134
  1296. package/packages/cli/test/run-dir-sidecars.test.ts +0 -779
  1297. package/packages/cli/test/scrub.test.ts +0 -936
  1298. package/packages/cli/test/serial.test.ts +0 -65
  1299. package/packages/cli/test/setup.test.ts +0 -535
  1300. package/packages/cli/test/share-card.test.ts +0 -135
  1301. package/packages/cli/test/shell-capture.test.ts +0 -184
  1302. package/packages/cli/test/shell-frames-drain.test.ts +0 -91
  1303. package/packages/cli/test/snapshot-retry.test.ts +0 -54
  1304. package/packages/cli/test/support-claims.test.ts +0 -127
  1305. package/packages/cli/test/sync-credentials.test.ts +0 -177
  1306. package/packages/cli/test/sync.test.ts +0 -1709
  1307. package/packages/cli/test/tls-intercept.test.ts +0 -548
  1308. package/packages/cli/test/upstream-visible.test.ts +0 -314
  1309. package/packages/cli/test/vercel-sdk-e2e.test.ts +0 -105
  1310. package/packages/cli/test/version.test.ts +0 -20
  1311. package/packages/cli/tsconfig.json +0 -40
  1312. package/packages/core/package.json +0 -26
  1313. package/packages/core/src/blobs.ts +0 -109
  1314. package/packages/core/src/fetch.ts +0 -48
  1315. package/packages/core/src/graph.ts +0 -450
  1316. package/packages/core/src/index.ts +0 -8
  1317. package/packages/core/src/paths.ts +0 -180
  1318. package/packages/core/src/private-files.ts +0 -394
  1319. package/packages/core/src/reader.ts +0 -175
  1320. package/packages/core/src/redaction.ts +0 -826
  1321. package/packages/core/src/writer.ts +0 -467
  1322. package/packages/core/test/blobs.test.ts +0 -170
  1323. package/packages/core/test/capture-contract.test.ts +0 -179
  1324. package/packages/core/test/data-uri-redaction.test.ts +0 -758
  1325. package/packages/core/test/graph.test.ts +0 -520
  1326. package/packages/core/test/integration.test.ts +0 -148
  1327. package/packages/core/test/paths-permission-failure.test.ts +0 -53
  1328. package/packages/core/test/paths.test.ts +0 -339
  1329. package/packages/core/test/private-files-owner.test.ts +0 -77
  1330. package/packages/core/test/private-files-scratch-race.test.ts +0 -62
  1331. package/packages/core/test/private-files.test.ts +0 -251
  1332. package/packages/core/test/reader.test.ts +0 -271
  1333. package/packages/core/test/redaction.test.ts +0 -525
  1334. package/packages/core/test/writer.test.ts +0 -531
  1335. package/packages/core/tsconfig.json +0 -6
  1336. package/packages/fs-capture/package.json +0 -25
  1337. package/packages/fs-capture/src/capture.ts +0 -193
  1338. package/packages/fs-capture/src/git.ts +0 -131
  1339. package/packages/fs-capture/src/index.ts +0 -3
  1340. package/packages/fs-capture/src/shadow.ts +0 -751
  1341. package/packages/fs-capture/test/capture.test.ts +0 -241
  1342. package/packages/fs-capture/test/git.test.ts +0 -118
  1343. package/packages/fs-capture/test/helpers.ts +0 -28
  1344. package/packages/fs-capture/test/shadow.test.ts +0 -1058
  1345. package/packages/fs-capture/tsconfig.json +0 -6
  1346. package/packages/mcp-shim/package.json +0 -26
  1347. package/packages/mcp-shim/src/cli.ts +0 -372
  1348. package/packages/mcp-shim/src/framing.ts +0 -106
  1349. package/packages/mcp-shim/src/index.ts +0 -4
  1350. package/packages/mcp-shim/src/mock.ts +0 -194
  1351. package/packages/mcp-shim/src/shim.ts +0 -126
  1352. package/packages/mcp-shim/test/cli.test.ts +0 -489
  1353. package/packages/mcp-shim/test/framing.test.ts +0 -143
  1354. package/packages/mcp-shim/test/mock.test.ts +0 -200
  1355. package/packages/mcp-shim/test/shim.test.ts +0 -287
  1356. package/packages/mcp-shim/tsconfig.json +0 -5
  1357. package/packages/node-instrument/package.json +0 -23
  1358. package/packages/node-instrument/src/capture.ts +0 -505
  1359. package/packages/node-instrument/src/index.ts +0 -3
  1360. package/packages/node-instrument/src/install.ts +0 -186
  1361. package/packages/node-instrument/src/rewrite.ts +0 -66
  1362. package/packages/node-instrument/test/capture.test.ts +0 -423
  1363. package/packages/node-instrument/test/install.test.ts +0 -427
  1364. package/packages/node-instrument/test/rewrite.test.ts +0 -85
  1365. package/packages/node-instrument/tsconfig.json +0 -9
  1366. package/packages/plugin-api/package.json +0 -22
  1367. package/packages/plugin-api/src/canonical.ts +0 -73
  1368. package/packages/plugin-api/src/index.ts +0 -2
  1369. package/packages/plugin-api/src/plugins.ts +0 -265
  1370. package/packages/plugin-api/test/canonical.test.ts +0 -58
  1371. package/packages/plugin-api/tsconfig.json +0 -5
  1372. package/packages/providers/package.json +0 -26
  1373. package/packages/providers/src/index.ts +0 -34
  1374. package/packages/providers/src/pricing.ts +0 -140
  1375. package/packages/providers/src/translate/anthropic.ts +0 -620
  1376. package/packages/providers/src/translate/openai-responses.ts +0 -638
  1377. package/packages/providers/src/translate/openai.ts +0 -630
  1378. package/packages/providers/src/translate/sse.ts +0 -99
  1379. package/packages/providers/src/translate/util.ts +0 -111
  1380. package/packages/providers/test/anthropic-translate.test.ts +0 -687
  1381. package/packages/providers/test/openai-responses-translate.test.ts +0 -377
  1382. package/packages/providers/test/openai-translate.test.ts +0 -884
  1383. package/packages/providers/test/pricing.test.ts +0 -171
  1384. package/packages/providers/tsconfig.json +0 -6
  1385. package/packages/proxy/package.json +0 -28
  1386. package/packages/proxy/src/ca.ts +0 -376
  1387. package/packages/proxy/src/der.ts +0 -152
  1388. package/packages/proxy/src/dialects.ts +0 -413
  1389. package/packages/proxy/src/forward.ts +0 -64
  1390. package/packages/proxy/src/index.ts +0 -8
  1391. package/packages/proxy/src/intercept.ts +0 -1554
  1392. package/packages/proxy/src/matching.ts +0 -1056
  1393. package/packages/proxy/src/retrieval.ts +0 -290
  1394. package/packages/proxy/src/server.ts +0 -2875
  1395. package/packages/proxy/src/tls-hosts.ts +0 -205
  1396. package/packages/proxy/test/beta-headers.test.ts +0 -39
  1397. package/packages/proxy/test/ca.test.ts +0 -146
  1398. package/packages/proxy/test/forward.test.ts +0 -306
  1399. package/packages/proxy/test/hop-by-hop.test.ts +0 -118
  1400. package/packages/proxy/test/image-matching.test.ts +0 -129
  1401. package/packages/proxy/test/indexing-concurrency.test.ts +0 -224
  1402. package/packages/proxy/test/lookahead.test.ts +0 -160
  1403. package/packages/proxy/test/malformed-body.test.ts +0 -73
  1404. package/packages/proxy/test/matching.test.ts +0 -822
  1405. package/packages/proxy/test/passthrough.test.ts +0 -599
  1406. package/packages/proxy/test/recorded-upstream.test.ts +0 -253
  1407. package/packages/proxy/test/responses-dialect.test.ts +0 -239
  1408. package/packages/proxy/test/retrieval.test.ts +0 -589
  1409. package/packages/proxy/test/server.test.ts +0 -1281
  1410. package/packages/proxy/test/tls-hosts.test.ts +0 -190
  1411. package/packages/proxy/test/tls-intercept.test.ts +0 -1769
  1412. package/packages/proxy/tsconfig.json +0 -22
  1413. package/packages/schema/package.json +0 -28
  1414. package/packages/schema/src/constants.ts +0 -73
  1415. package/packages/schema/src/index.ts +0 -3
  1416. package/packages/schema/src/types.ts +0 -103
  1417. package/packages/schema/src/validate.ts +0 -60
  1418. package/packages/schema/test/schema-parity.test.ts +0 -116
  1419. package/packages/schema/tsconfig.json +0 -5
  1420. package/packages/shell-shim/package.json +0 -26
  1421. package/packages/shell-shim/src/index.ts +0 -3
  1422. package/packages/shell-shim/src/install.ts +0 -406
  1423. package/packages/shell-shim/src/resolve.ts +0 -98
  1424. package/packages/shell-shim/src/runner-bin.ts +0 -4
  1425. package/packages/shell-shim/src/runner.ts +0 -149
  1426. package/packages/shell-shim/test/resolve.test.ts +0 -125
  1427. package/packages/shell-shim/test/shim.test.ts +0 -548
  1428. package/packages/shell-shim/test/transport-race.test.ts +0 -109
  1429. package/packages/shell-shim/tsconfig.json +0 -13
  1430. package/packages/viewer/package.json +0 -25
  1431. package/packages/viewer/src/bundle.ts +0 -36
  1432. package/packages/viewer/src/client/main.ts +0 -248
  1433. package/packages/viewer/src/credit.ts +0 -24
  1434. package/packages/viewer/src/css.ts +0 -409
  1435. package/packages/viewer/src/export.ts +0 -38
  1436. package/packages/viewer/src/html.ts +0 -356
  1437. package/packages/viewer/src/index.ts +0 -16
  1438. package/packages/viewer/src/render.ts +0 -791
  1439. package/packages/viewer/src/serve.ts +0 -150
  1440. package/packages/viewer/src/trace-dir.ts +0 -140
  1441. package/packages/viewer/test/bundle.test.ts +0 -47
  1442. package/packages/viewer/test/client.test.ts +0 -378
  1443. package/packages/viewer/test/export.test.ts +0 -131
  1444. package/packages/viewer/test/fixtures.ts +0 -69
  1445. package/packages/viewer/test/html.test.ts +0 -453
  1446. package/packages/viewer/test/playback.test.ts +0 -54
  1447. package/packages/viewer/test/render.test.ts +0 -714
  1448. package/packages/viewer/test/serve.test.ts +0 -125
  1449. package/packages/viewer/tsconfig.json +0 -6
  1450. package/prompt/AIDER/deepseek-v4-1-flash-system-prompt.md +0 -29
  1451. package/prompt/CLAUDECODE/claude-fable-5-1-print-system-prompt.md +0 -127
  1452. package/prompt/CLAUDECODE/claude-fable-5-1-system-prompt.md +0 -169
  1453. package/prompt/CLAUDECODE/claude-opus-4-8-system-prompt.md +0 -131
  1454. package/prompt/CLAUDECODE/claude-opus-5-system-prompt.md +0 -149
  1455. package/prompt/CLINE/openai-gpt-4o-mini-system-prompt.md +0 -37
  1456. package/prompt/CODEX/gpt-5-6-luna-system-prompt.md +0 -183
  1457. package/prompt/CODEX/gpt-5-6-sol-system-prompt.md +0 -218
  1458. package/prompt/CODEX/gpt-6-1-sol-system-prompt.md +0 -242
  1459. package/prompt/CODEX/gpt-6-astra-system-prompt.md +0 -170
  1460. package/prompt/CODEX/gpt-6-luna-system-prompt.md +0 -223
  1461. package/prompt/CODEX/gpt-6-sol-system-prompt.md +0 -226
  1462. package/prompt/CRUSH/deepseek-v4-1-flash-system-prompt.md +0 -472
  1463. package/prompt/CURSOR/grok-4-5-high-system-prompt.md +0 -40
  1464. package/prompt/DSH/deepseek-flash-system-prompt.md +0 -31
  1465. package/prompt/GEMINICLI/gemini-3-5-flash-system-prompt.md +0 -168
  1466. package/prompt/GOOSE/deepseek-v4-1-flash-system-prompt.md +0 -180
  1467. package/prompt/HACKERAI/openai-gpt-4o-mini-system-prompt.md +0 -70
  1468. package/prompt/HERMES/nemotron-3-5-lightning-free-system-prompt.md +0 -111
  1469. package/prompt/KILOCODE/kilo-auto-free-system-prompt.md +0 -129
  1470. package/prompt/MCODE/deepseek-deepseek-v4-flash-free-coding-system-prompt.md +0 -128
  1471. package/prompt/MCODE/deepseek-deepseek-v4-flash-free-tui-system-prompt.md +0 -119
  1472. package/prompt/MCODE/deepseek-deepseek-v4-flash-free-work-system-prompt.md +0 -140
  1473. package/prompt/MIMOCODE/mimo-v2-5-pro-system-prompt.md +0 -411
  1474. package/prompt/MIMOCODE/mimo-v2-5-system-prompt.md +0 -411
  1475. package/prompt/MUSECODE/muse-spark-1-3-system-prompt.md +0 -78
  1476. package/prompt/OPENCLAW/gpt-5-6-sol-system-prompt.md +0 -333
  1477. package/prompt/OPENCODE/big-pickle-system-prompt.md +0 -114
  1478. package/prompt/OPENCODE/gpt-5-6-sol-system-prompt.md +0 -126
  1479. package/prompt/OPENCODE/ling-3-0-flash-fin-free-system-prompt.md +0 -114
  1480. package/prompt/OPENCODE/mimo-v2-5-free-system-prompt.md +0 -114
  1481. package/prompt/OPENCODE/muse-spark-1-2-contributor-free-system-prompt.md +0 -84
  1482. package/prompt/OPENCODE/nemotron-3-5-lightning-free-system-prompt.md +0 -114
  1483. package/prompt/OPENCODE/nemotron-3-ultra-free-system-prompt.md +0 -114
  1484. package/prompt/PI/openai-gpt-4o-mini-system-prompt.md +0 -31
  1485. package/prompt/QWENCODE/gpt-5-6-sol-system-prompt.md +0 -290
  1486. package/prompt/ZCODE/glm-4-6-system-prompt.md +0 -91
  1487. package/python/README.md +0 -132
  1488. package/python/agenticreplay_trace/__init__.py +0 -58
  1489. package/python/agenticreplay_trace/graph.py +0 -137
  1490. package/python/agenticreplay_trace/models.py +0 -491
  1491. package/python/agenticreplay_trace/py.typed +0 -0
  1492. package/python/agenticreplay_trace/reader.py +0 -295
  1493. package/python/conftest.py +0 -12
  1494. package/python/examples/analyze.py +0 -114
  1495. package/python/pyproject.toml +0 -45
  1496. package/python/tests/conftest.py +0 -102
  1497. package/python/tests/test_capture_contract.py +0 -24
  1498. package/python/tests/test_conformance.py +0 -235
  1499. package/python/tests/test_examples.py +0 -60
  1500. package/python/tests/test_graph.py +0 -247
  1501. package/python/tests/test_models.py +0 -342
  1502. package/python/tests/test_reader.py +0 -423
  1503. package/python-langgraph/README.md +0 -159
  1504. package/python-langgraph/agenticreplay_langgraph/__init__.py +0 -21
  1505. package/python-langgraph/agenticreplay_langgraph/handler.py +0 -317
  1506. package/python-langgraph/agenticreplay_langgraph/hook.py +0 -168
  1507. package/python-langgraph/pyproject.toml +0 -35
  1508. package/python-langgraph/tests/test_handler.py +0 -370
  1509. package/python-langgraph/tests/test_integration.py +0 -484
  1510. package/python-openai-agents/README.md +0 -145
  1511. package/python-openai-agents/agenticreplay_openai_agents/__init__.py +0 -11
  1512. package/python-openai-agents/agenticreplay_openai_agents/processor.py +0 -331
  1513. package/python-openai-agents/pyproject.toml +0 -34
  1514. package/python-openai-agents/tests/test_processor.py +0 -457
  1515. package/scripts/check-neutrality.mjs +0 -62
  1516. package/scripts/codex-client-acceptance.mjs +0 -133
  1517. package/scripts/conformance.mjs +0 -245
  1518. package/scripts/fidelity.mjs +0 -170
  1519. package/scripts/hermes-client-acceptance.mjs +0 -158
  1520. package/scripts/host-client-acceptance.mjs +0 -732
  1521. package/scripts/installed-smoke.mjs +0 -316
  1522. package/scripts/publish-order.mjs +0 -96
  1523. package/scripts/regenerate-quickstart.mjs +0 -79
  1524. package/scripts/render-cards.mjs +0 -178
  1525. package/scripts/render-demo.mjs +0 -139
  1526. package/scripts/render-sync-card.mjs +0 -96
  1527. package/scripts/set-version.mjs +0 -152
  1528. package/scripts/set-version.test.ts +0 -220
  1529. package/scripts/sync-server-json.mjs +0 -13
  1530. package/scripts/update-opencode-api-bases.mjs +0 -29
  1531. package/server.json +0 -28
  1532. package/skills/agenticreplay-replay/SKILL.md +0 -211
  1533. package/spec/agenticreplay-trace-v0.md +0 -223
  1534. package/test/integrations/README.md +0 -133
  1535. package/test/integrations/agents/ai_sdk_openai.mjs +0 -24
  1536. package/test/integrations/agents/anthropic_sdk.py +0 -10
  1537. package/test/integrations/agents/browser_use_agent.py +0 -24
  1538. package/test/integrations/agents/crewai_agent.py +0 -44
  1539. package/test/integrations/agents/crewai_model_names.py +0 -72
  1540. package/test/integrations/agents/hardcoded_origin.mjs +0 -13
  1541. package/test/integrations/agents/haystack_pipeline.py +0 -28
  1542. package/test/integrations/agents/haystack_rag.py +0 -35
  1543. package/test/integrations/agents/langgraph_agent.py +0 -54
  1544. package/test/integrations/agents/langgraph_nodes.py +0 -62
  1545. package/test/integrations/agents/litellm_agent.py +0 -11
  1546. package/test/integrations/agents/llama_index_agent.py +0 -27
  1547. package/test/integrations/agents/llama_index_model_names.py +0 -67
  1548. package/test/integrations/agents/mastra_agent.mjs +0 -20
  1549. package/test/integrations/agents/mcp_agent.py +0 -44
  1550. package/test/integrations/agents/mcp_server.py +0 -20
  1551. package/test/integrations/agents/openai_agents_handoff.py +0 -52
  1552. package/test/integrations/agents/openai_agents_sdk.py +0 -29
  1553. package/test/integrations/agents/openai_async.py +0 -17
  1554. package/test/integrations/agents/openai_sdk.py +0 -10
  1555. package/test/integrations/agents/openhands_agent.py +0 -34
  1556. package/test/integrations/agents/rag_pipeline.py +0 -79
  1557. package/test/integrations/agents/vision_agent.py +0 -63
  1558. package/test/integrations/run.mjs +0 -719
  1559. package/test/integrations/stub-origin.mjs +0 -229
  1560. package/tsconfig.base.json +0 -20
  1561. package/tsconfig.json +0 -41
  1562. package/vitest.config.ts +0 -39
  1563. package/vitest.setup.ts +0 -25
  1564. /package/{packages → node_modules/@agenticreplay}/schema/schema/event.schema.json +0 -0
  1565. /package/{packages → node_modules/@agenticreplay}/schema/schema/manifest.schema.json +0 -0
@@ -1,1230 +0,0 @@
1
- import { execFile } from 'node:child_process';
2
- import { mkdtemp, readFile, readdir, rm, symlink, unlink, writeFile } from 'node:fs/promises';
3
- import { tmpdir } from 'node:os';
4
- import { dirname, join } from 'node:path';
5
- import { fileURLToPath } from 'node:url';
6
- import { promisify } from 'node:util';
7
- import { afterEach, beforeEach, describe, expect, it } from 'vitest';
8
- import {
9
- TraceReader,
10
- deriveCheckpoints,
11
- listRuns,
12
- resolveRunSelector,
13
- runGraph,
14
- chainTo,
15
- } from '@agenticreplay/core';
16
- import { isBlobRef, validateEvent, validateManifest } from '@agenticreplay/schema';
17
- import { parseArgs } from '../src/args.js';
18
- import { Output } from '../src/out.js';
19
- import { recordCommand } from '../src/commands/record.js';
20
- import { replayCommand } from '../src/commands/replay.js';
21
- import { startFakeModel } from './fixtures/fake-model.mjs';
22
- import { existsSync, mkdirSync, symlinkSync, unlinkSync } from 'node:fs';
23
-
24
- const run = promisify(execFile);
25
- const here = dirname(fileURLToPath(import.meta.url));
26
- const FAKE_AGENT = join(here, 'fixtures', 'fake-agent.mjs');
27
-
28
- /**
29
- * Run `body` with the temp directory pointed somewhere only this test can reach, and hand back
30
- * what was left in it.
31
- *
32
- * A replay's safety scratch goes to `os.tmpdir()`, so asserting on what it leaves there means
33
- * asserting on a directory the whole machine shares — the other suites replay too, and a test
34
- * that diffed the real `$TMPDIR` failed under `vitest run` while passing on its own. Moving the
35
- * directory for the duration makes "nothing was left behind" a statement about this replay.
36
- */
37
- async function withIsolatedTmp<T>(
38
- body: () => Promise<T>,
39
- ): Promise<{ result: T; leftBehind: string[] }> {
40
- const isolated = await mkdtemp(join(tmpdir(), 'agenticreplay-tmproot-'));
41
- const saved = { TMPDIR: process.env.TMPDIR, TMP: process.env.TMP, TEMP: process.env.TEMP };
42
- process.env.TMPDIR = isolated;
43
- process.env.TMP = isolated;
44
- process.env.TEMP = isolated;
45
- try {
46
- const result = await body();
47
- return { result, leftBehind: await readdir(isolated) };
48
- } finally {
49
- for (const [key, value] of Object.entries(saved)) {
50
- if (value === undefined) delete process.env[key];
51
- else process.env[key] = value;
52
- }
53
- }
54
- }
55
-
56
- /**
57
- * The acceptance test for the whole project.
58
- *
59
- * agenticreplay record <agent>
60
- * agenticreplay replay last
61
- * agenticreplay replay last --from N --model <other>
62
- *
63
- * If these three work against a real child process, a real proxy and a real trace on disk, the
64
- * mechanism is proven. Everything else is refinement.
65
- */
66
- describe('end to end: record → replay → fork', () => {
67
- let workspace: string;
68
- let model: Awaited<ReturnType<typeof startFakeModel>>;
69
- let out: Output;
70
- let lines: string[];
71
-
72
- beforeEach(async () => {
73
- workspace = await mkdtemp(join(tmpdir(), 'agenticreplay-e2e-'));
74
- model = await startFakeModel();
75
- lines = [];
76
- out = new Output({ write: (s) => void lines.push(s), isTTY: false });
77
- // A git repo so the shadow index has something to work with.
78
- await run('git', ['init', '-q'], { cwd: workspace });
79
- await run('git', ['config', 'user.email', 'test@example.com'], { cwd: workspace });
80
- await run('git', ['config', 'user.name', 'Test'], { cwd: workspace });
81
- await writeFile(join(workspace, 'auth.ts'), 'export const fixed = false;\n');
82
- });
83
-
84
- afterEach(async () => {
85
- await model.close();
86
- await rm(workspace, { recursive: true, force: true });
87
- });
88
-
89
- async function record(turns = 3) {
90
- const args = parseArgs([
91
- 'record',
92
- 'generic-openai',
93
- '--upstream-anthropic',
94
- model.url,
95
- '--',
96
- 'node',
97
- FAKE_AGENT,
98
- ]);
99
- process.env.FAKE_AGENT_TURNS = String(turns);
100
- delete process.env.FAKE_AGENT_CWD;
101
- return recordCommand(args, out, workspace);
102
- }
103
-
104
- it('records a run that validates against the normative schema', async () => {
105
- const result = await record();
106
-
107
- expect(result.events).toBeGreaterThan(4);
108
-
109
- const reader = await TraceReader.open(result.runDir);
110
- expect(validateManifest(reader.manifest()).valid).toBe(true);
111
- for (const event of await reader.events()) {
112
- const r = validateEvent(event);
113
- expect(r.valid, `seq ${event.seq}: ${r.errors.join(', ')}`).toBe(true);
114
- }
115
- });
116
-
117
- it('captures the tool loop the agent actually ran', async () => {
118
- const result = await record();
119
- const reader = await TraceReader.open(result.runDir);
120
- const events = await reader.events();
121
- const types = events.map((e) => e.type);
122
-
123
- expect(types).toContain('model.request');
124
- expect(types).toContain('model.response');
125
- // The whole thesis: a proxy that only sees model traffic still recovers the tool loop.
126
- expect(types).toContain('tool.call');
127
- expect(types).toContain('tool.result');
128
-
129
- const call = events.find((e) => e.type === 'tool.call');
130
- expect(call?.attrs?.name).toBe('edit_file');
131
- });
132
-
133
- it('captures the filesystem change the agent made', async () => {
134
- const result = await record();
135
- const events = await (await TraceReader.open(result.runDir)).events();
136
- const changes = events.filter((e) => e.type === 'fs.change');
137
- expect(changes.some((c) => String(c.attrs?.path).endsWith('auth.ts'))).toBe(true);
138
- expect(await readFile(join(workspace, 'auth.ts'), 'utf8')).toContain('fixed = true');
139
- });
140
-
141
- it('verifies its own integrity digest', async () => {
142
- const result = await record();
143
- expect((await (await TraceReader.open(result.runDir)).verifyIntegrity()).ok).toBe(true);
144
- });
145
-
146
- it('replays exactly, with the model server never contacted again', async () => {
147
- await record();
148
- const callsAfterRecording = model.calls.length;
149
- expect(callsAfterRecording).toBeGreaterThan(0);
150
-
151
- const result = await replayCommand(parseArgs(['replay', 'last']), out, workspace);
152
-
153
- expect(result.mode).toBe('exact');
154
- expect(result.canonicalExact).toBeGreaterThan(0);
155
- expect(result.divergences).toBe(0);
156
- expect(result.liveCalls).toBe(0);
157
- expect(model.calls.length, 'exact replay must not reach the network at all').toBe(
158
- callsAfterRecording,
159
- );
160
- });
161
-
162
- it('replays exactly when the recorded bodies are large enough to spill to blobs', async () => {
163
- // The size is the test. Under the inline limit a body is stored as itself; over it, the writer
164
- // spills `JSON.stringify(payload)` and the body becomes a quoted, escaped JSON string literal.
165
- // Replay read those bytes back without undoing the encoding, so it canonicalized an escaped
166
- // copy — `model: ''`, `messages: []` — and matched nothing against any real harness, which all
167
- // send a system prompt big enough to spill on turn one. Every other test here stayed under the
168
- // limit, so all of them passed while replay was completely broken in practice.
169
- process.env.FAKE_AGENT_PAD = '400';
170
- try {
171
- const recorded = await record();
172
- const events = await (await TraceReader.open(recorded.runDir)).events();
173
- const request = events.find((e) => e.type === 'model.request');
174
- expect(isBlobRef(request?.payload), 'fixture must cross the spill boundary').toBe(true);
175
-
176
- const result = await replayCommand(parseArgs(['replay', 'last']), out, workspace);
177
-
178
- expect(result.canonicalExact).toBeGreaterThan(0);
179
- expect(result.divergences).toBe(0);
180
- expect(result.liveCalls).toBe(0);
181
- } finally {
182
- delete process.env.FAKE_AGENT_PAD;
183
- }
184
- });
185
-
186
- it('halts with a reason, not a hang, when the agent asks something else', async () => {
187
- await record();
188
-
189
- // Same recording, different question: nothing can match, and the operator has to be told why.
190
- process.env.FAKE_AGENT_PROMPT = 'do something completely different';
191
- try {
192
- const result = await replayCommand(parseArgs(['replay', 'last']), out, workspace);
193
-
194
- expect(result.canonicalExact).toBe(0);
195
- expect(result.exitCode, 'a halted replay must not look like a clean run').not.toBe(0);
196
- const halt = lines.find((l) => l.includes('replay.unmatched'));
197
- expect(halt, `no halt reason in output:\n${lines.join('\n')}`).toBeDefined();
198
- expect(halt).toContain('does not match the recording');
199
- } finally {
200
- delete process.env.FAKE_AGENT_PROMPT;
201
- }
202
- });
203
-
204
- it('replays a run that changed the files it depends on', async () => {
205
- // The one that made exact replay useless on a real agent. The recording reads auth.ts into the
206
- // conversation and then edits it, so by the time you replay, the working tree no longer holds
207
- // what the recorded request contains. Replaying in place re-reads the mutated file, the
208
- // trailing message differs, and the run halts at rung 4 — correctly, but uselessly: nothing
209
- // about the recording changed, only the directory it ran in.
210
- //
211
- // Replay therefore restores the filesystem the run started from, the same way a fork does.
212
- process.env.FAKE_AGENT_READ = 'auth.ts';
213
- try {
214
- await record();
215
- const mutated = await readFile(join(workspace, 'auth.ts'), 'utf8');
216
- expect(
217
- mutated,
218
- 'the recording must have changed the file for this test to mean anything',
219
- ).not.toBe('export const fixed = false;\n');
220
-
221
- const result = await replayCommand(parseArgs(['replay', 'last']), out, workspace);
222
-
223
- expect(result.canonicalExact).toBeGreaterThan(0);
224
- expect(result.exitCode).toBe(0);
225
- expect(lines.join('\n')).not.toContain('replay.unmatched');
226
- } finally {
227
- delete process.env.FAKE_AGENT_READ;
228
- }
229
- });
230
-
231
- it('leaves the working tree exactly as it found it', async () => {
232
- // Replay restores the recorded state over the working tree, because a harness bakes absolute
233
- // paths into its tool calls and a copy somewhere else gets a permission refusal where the
234
- // recording has file contents. That is only acceptable because it is reversible: the current
235
- // state is snapshotted first and put back afterwards, so a replay is observationally a no-op
236
- // on your checkout.
237
- process.env.FAKE_AGENT_READ = 'auth.ts';
238
- try {
239
- await record();
240
- const before = await readFile(join(workspace, 'auth.ts'), 'utf8');
241
- await replayCommand(parseArgs(['replay', 'last']), out, workspace);
242
- expect(await readFile(join(workspace, 'auth.ts'), 'utf8')).toBe(before);
243
- } finally {
244
- delete process.env.FAKE_AGENT_READ;
245
- }
246
- });
247
-
248
- it('replays in the directory the run was recorded in, not a copy of it', async () => {
249
- // The property the whole restore exists for. Harnesses record absolute paths, so the replay
250
- // has to happen at the same path or the agent is reading somewhere it was never given.
251
- process.env.FAKE_AGENT_READ = 'auth.ts';
252
- try {
253
- await record();
254
- await replayCommand(parseArgs(['replay', 'last']), out, workspace);
255
- const replaying = lines.find((l) => l.includes('info replaying')) ?? '';
256
- expect(replaying).toContain(`cwd=${workspace}`);
257
- } finally {
258
- delete process.env.FAKE_AGENT_READ;
259
- }
260
- });
261
-
262
- /**
263
- * A refusal must not cost you your working tree.
264
- *
265
- * `upstreamPlan` rejects an upstream that is not an origin, and it used to be resolved *after*
266
- * `replayWorkspace` had already replaced the checkout with the recording — so the throw escaped
267
- * the `finally` that puts the tree back, which only begins at the child's launch. The operator's
268
- * own files were left in an `agenticreplay-safety-*` scratch nothing pointed at, on a command that had
269
- * just printed "your files are restored when the replay ends".
270
- *
271
- * Asserted on the file rather than on the error, because the error was never the problem.
272
- */
273
- it('leaves the working tree alone when it refuses the upstream', async () => {
274
- await record();
275
- await writeFile(join(workspace, 'auth.ts'), 'MY UNCOMMITTED WORK\n');
276
-
277
- await expect(
278
- replayCommand(
279
- parseArgs(['replay', 'last', '--upstream-openai', 'myuser:PASSWORD@gw.example/v1']),
280
- out,
281
- workspace,
282
- ),
283
- ).rejects.toThrow(/is not an origin agenticreplay can use/);
284
-
285
- expect(
286
- await readFile(join(workspace, 'auth.ts'), 'utf8'),
287
- 'a refused replay must not have touched the checkout',
288
- ).toBe('MY UNCOMMITTED WORK\n');
289
- // And it never claimed to have: the restore line belongs to a replay that got that far.
290
- expect(lines.join('\n')).not.toContain('replay.restored');
291
- });
292
-
293
- /**
294
- * Nor may a refusal leave a run behind.
295
- *
296
- * The same misordering as above, in its quiet form. `upstreamPlan` throws for an upstream that is
297
- * not an origin, and every command resolved it *after* creating the run directory — `record`,
298
- * `attach`, and the fork path, which also restores a temp worktree first. So a typo in
299
- * `--upstream-*` left an empty run for `agenticreplay list` to show, reading `FROM <parent>@<n>` on a fork
300
- * as though it had run, plus a restored tree abandoned in `$TMPDIR`. Nothing was lost, which is
301
- * why it went unnoticed; it is the same rule, and the rule is that an invocation which cannot
302
- * work decides so before it touches anything.
303
- */
304
- it('leaves no run behind when it refuses the upstream', async () => {
305
- const BAD = 'myuser:PASSWORD@gw.example/v1';
306
-
307
- const before = (await listRuns(workspace)).length;
308
- await expect(
309
- recordCommand(
310
- parseArgs(['record', 'generic-openai', '--upstream-openai', BAD, '--', 'node', FAKE_AGENT]),
311
- out,
312
- workspace,
313
- ),
314
- ).rejects.toThrow(/is not an origin agenticreplay can use/);
315
- expect((await listRuns(workspace)).length, 'a refused record must not have created a run').toBe(
316
- before,
317
- );
318
-
319
- // The fork path gets there by a different route: a checkpoint restored into a temp worktree and
320
- // a second run directory, both made before the upstream was ever looked at.
321
- await record();
322
- const afterGood = (await listRuns(workspace)).length;
323
- await expect(
324
- replayCommand(
325
- parseArgs([
326
- 'replay',
327
- 'last',
328
- '--from',
329
- '1',
330
- '--model',
331
- 'gpt-5.2',
332
- '--upstream-openai',
333
- BAD,
334
- ]),
335
- out,
336
- workspace,
337
- ),
338
- ).rejects.toThrow(/is not an origin agenticreplay can use/);
339
- expect((await listRuns(workspace)).length, 'a refused fork must not have created a run').toBe(
340
- afterGood,
341
- );
342
- });
343
-
344
- /**
345
- * The same rule, for the other refusal in the same window.
346
- *
347
- * `--tls-hosts` is refused by `resolveTlsHosts`/`HostPolicy.from`, and that happened inside
348
- * `setupTlsCapture` — reached after `replayWorkspace` had already written the recording over the
349
- * checkout, and after the replay's own run directory existed. The throw escaped the `finally`
350
- * that puts the tree back for the same reason the upstream one did: that `finally` only begins
351
- * at the child's launch. So the operator was left holding the recording's files, with their own
352
- * work in an `agenticreplay-safety-*` scratch whose path nothing prints.
353
- *
354
- * `planTlsCapture` is the refusing half on its own and mints nothing; `attach` already calls it
355
- * before its run directory for exactly this reason.
356
- */
357
- it('leaves the working tree alone when it refuses the tls host list', async () => {
358
- await record();
359
- await writeFile(join(workspace, 'auth.ts'), 'MY UNCOMMITTED WORK\n');
360
- const before = (await listRuns(workspace)).length;
361
-
362
- await expect(
363
- replayCommand(
364
- parseArgs(['replay', 'last', '--tls-intercept', '--tls-hosts', '*']),
365
- out,
366
- workspace,
367
- ),
368
- ).rejects.toThrow(/would intercept every host/);
369
-
370
- expect(
371
- await readFile(join(workspace, 'auth.ts'), 'utf8'),
372
- 'a refused replay must not have touched the checkout',
373
- ).toBe('MY UNCOMMITTED WORK\n');
374
- // And it never claimed to have: the restore line belongs to a replay that got that far.
375
- expect(lines.join('\n')).not.toContain('replay.restored');
376
- expect((await listRuns(workspace)).length, 'nor created a run for it').toBe(before);
377
- });
378
-
379
- /**
380
- * The refusal that hoisting alone would still have missed.
381
- *
382
- * `AGENTICREPLAY_TLS_UPSTREAM_CA` is read from disk, so it cannot be decided from the arguments the way
383
- * a host list can — `setupTlsCapture` opens it, past the restore. Two things now stand between
384
- * that and the operator's checkout: `planTlsCapture` reads the roots too, so the refusal
385
- * happens before `replayWorkspace`; and the release is armed for the whole restored span, so a
386
- * throw that gets past the first still puts the tree back.
387
- *
388
- * Worth its own test because it is the one that proves the rule generalises. `createProxy`,
389
- * `RunCa.create` and `adapter.prepare` all sit in the same window and are not on any list.
390
- */
391
- it('leaves the working tree alone when the upstream CA cannot be read', async () => {
392
- await record();
393
- await writeFile(join(workspace, 'auth.ts'), 'MY UNCOMMITTED WORK\n');
394
-
395
- process.env.AGENTICREPLAY_TLS_UPSTREAM_CA = join(workspace, 'no-such-root.pem');
396
- try {
397
- await expect(
398
- replayCommand(
399
- parseArgs(['replay', 'last', '--tls-intercept', '--tls-hosts', 'api.openai.com']),
400
- out,
401
- workspace,
402
- ),
403
- ).rejects.toThrow(/ENOENT|no such file/);
404
- } finally {
405
- delete process.env.AGENTICREPLAY_TLS_UPSTREAM_CA;
406
- }
407
-
408
- expect(
409
- await readFile(join(workspace, 'auth.ts'), 'utf8'),
410
- 'a refused replay must not have touched the checkout',
411
- ).toBe('MY UNCOMMITTED WORK\n');
412
- expect(lines.join('\n')).not.toContain('replay.restored');
413
- });
414
-
415
- /**
416
- * And the same on the two paths where only scratch is at stake.
417
- *
418
- * A fork restores its checkpoint into a temp worktree and opens its own run before it reaches
419
- * `setupTlsCapture`, and `record` opens its run first too — so a refused host list left an empty
420
- * run for `agenticreplay list` to show, plus a worktree in `$TMPDIR` that `agenticreplay gc` will not reclaim
421
- * because no manifest points at it. Cheaper than the checkout, the same rule.
422
- */
423
- it('leaves no run behind when it refuses the tls host list', async () => {
424
- const before = (await listRuns(workspace)).length;
425
- await expect(
426
- recordCommand(
427
- parseArgs([
428
- 'record',
429
- 'generic-openai',
430
- '--tls-intercept',
431
- '--tls-hosts',
432
- '*',
433
- '--',
434
- 'node',
435
- FAKE_AGENT,
436
- ]),
437
- out,
438
- workspace,
439
- ),
440
- ).rejects.toThrow(/would intercept every host/);
441
- expect((await listRuns(workspace)).length, 'a refused record must not have created a run').toBe(
442
- before,
443
- );
444
-
445
- await record();
446
- const afterGood = (await listRuns(workspace)).length;
447
- await expect(
448
- replayCommand(
449
- parseArgs([
450
- 'replay',
451
- 'last',
452
- '--from',
453
- '1',
454
- '--model',
455
- 'gpt-5.2',
456
- '--tls-intercept',
457
- '--tls-hosts',
458
- '*',
459
- ]),
460
- out,
461
- workspace,
462
- ),
463
- ).rejects.toThrow(/would intercept every host/);
464
- expect((await listRuns(workspace)).length, 'a refused fork must not have created a run').toBe(
465
- afterGood,
466
- );
467
- });
468
-
469
- /**
470
- * The restore is inside the thing that undoes it, so the caller cannot guard it.
471
- *
472
- * `replayWorkspace` snapshots the checkout, then overwrites it, then returns the `release` that
473
- * puts it back — so a `materialize` that fails rejects before its caller has anything to call.
474
- * The guard in `replayExact` is armed on the next line and never ran; the scratch holding the
475
- * only copy of the operator's tree was abandoned in `$TMPDIR` with nothing printing its path.
476
- *
477
- * The store is emptied of its objects rather than deleted, so `FsCapture.start` still opens it
478
- * and the failure lands where it matters: on `read-tree`, inside the restore. `agenticreplay gc` on a
479
- * half-copied trace gets there the same way.
480
- */
481
- it('puts the working tree back when the restore itself fails', async () => {
482
- const recorded = await record();
483
- await writeFile(join(workspace, 'auth.ts'), 'MY UNCOMMITTED WORK\n');
484
-
485
- // A shadow store that opens and holds nothing: every loose-object directory removed.
486
- const objects = join(recorded.runDir, 'fs', 'objects');
487
- for (const entry of await readdir(objects)) {
488
- if (/^[0-9a-f]{2}$/.test(entry)) await rm(join(objects, entry), { recursive: true });
489
- }
490
-
491
- const { leftBehind } = await withIsolatedTmp(async () => {
492
- await expect(replayCommand(parseArgs(['replay', 'last']), out, workspace)).rejects.toThrow();
493
- });
494
-
495
- expect(
496
- await readFile(join(workspace, 'auth.ts'), 'utf8'),
497
- 'a replay whose restore failed must not have kept the operator out of their own tree',
498
- ).toBe('MY UNCOMMITTED WORK\n');
499
- // The release ran, which is the whole assertion: it is the only thing that removes the
500
- // scratch, and it removes it only once the tree is back.
501
- expect(leftBehind, 'nor left the only copy of it in a temp directory nothing names').toEqual(
502
- [],
503
- );
504
- });
505
-
506
- /**
507
- * A replay that dies after minting a certificate authority must take the key with it.
508
- *
509
- * `tls-capture.ts` puts it in writing — "the caller owns the CA's lifetime and must dispose it
510
- * on every exit path" — and `replayCommand` had no equivalent of the `minted` wrapper that
511
- * `recordCommand` and `attachCommand` use. Between `RunCa.create` and the child's launch sit
512
- * `createProxy`, `mcpForReplay` and `adapter.prepare`, and a throw from any of them left
513
- * `tls/ca.key` on disk.
514
- *
515
- * The throw here is a trace naming an adapter this build does not have, which is what replaying
516
- * a newer agenticreplay's recording looks like. It also pins the other half: the proxy is listening by
517
- * then, and a proxy that is not closed keeps Node's event loop alive — so a regression shows up
518
- * as this test timing out rather than as a hang nobody notices until a user reports it.
519
- */
520
- it('takes the run CA with it when the replay dies after minting one', async () => {
521
- const recorded = await record();
522
- const manifestPath = join(recorded.runDir, 'manifest.json');
523
- const manifest = JSON.parse(await readFile(manifestPath, 'utf8')) as {
524
- adapter: { id: string };
525
- };
526
- manifest.adapter.id = 'agent-from-the-future';
527
- await writeFile(manifestPath, JSON.stringify(manifest));
528
-
529
- await expect(
530
- replayCommand(
531
- parseArgs(['replay', 'last', '--tls-intercept', '--tls-hosts', 'api.openai.com']),
532
- out,
533
- workspace,
534
- ),
535
- ).rejects.toThrow(/unknown adapter/);
536
-
537
- const withKey: string[] = [];
538
- const runsRoot = join(workspace, '.agenticreplay', 'runs');
539
- for (const run of await readdir(runsRoot)) {
540
- const entries = await readdir(join(runsRoot, run)).catch(() => [] as string[]);
541
- if (entries.includes('tls')) withKey.push(run);
542
- }
543
- expect(withKey, 'a replay that refused after minting must not leave the key').toEqual([]);
544
- });
545
-
546
- /**
547
- * The one line a reader checks to know whether a run can spend money.
548
- *
549
- * `egress` was a literal, so `--loose` — which answers an unmatched request from the provider —
550
- * still announced `blocked`. Asserted on both spellings rather than only the flag's, because the
551
- * bug was that one value was printed for two behaviours; a test that only pins `--loose` would
552
- * pass again the moment someone hardcoded the other way round.
553
- */
554
- it('says egress is blocked only when it is, and says so differently under --loose', async () => {
555
- process.env.FAKE_AGENT_READ = 'auth.ts';
556
- try {
557
- await record();
558
-
559
- await replayCommand(parseArgs(['replay', 'last']), out, workspace);
560
- const strict = lines.find((l) => l.includes('info replaying')) ?? '';
561
- expect(strict).toContain('egress=blocked');
562
-
563
- lines.length = 0;
564
- await replayCommand(parseArgs(['replay', 'last', '--loose']), out, workspace);
565
- const loose = lines.find((l) => l.includes('info replaying')) ?? '';
566
- expect(loose, `no replaying line in:\n${lines.join('\n')}`).not.toContain('egress=blocked');
567
- expect(loose).toContain('egress=live-on-unmatched');
568
- } finally {
569
- delete process.env.FAKE_AGENT_READ;
570
- }
571
- });
572
-
573
- it('names the snapshot it can restore from if a replay dies halfway', async () => {
574
- // The safety net has to be visible before it is needed. If the process is killed between the
575
- // restore and the put-back, this id is the only way back to the tree you had.
576
- process.env.FAKE_AGENT_READ = 'auth.ts';
577
- try {
578
- await record();
579
- await replayCommand(parseArgs(['replay', 'last']), out, workspace);
580
- const line = lines.find((l) => l.includes('replay.restored')) ?? '';
581
- expect(line, `no restore line in:\n${lines.join('\n')}`).toMatch(/[0-9a-f]{40}/);
582
- } finally {
583
- delete process.env.FAKE_AGENT_READ;
584
- }
585
- });
586
-
587
- /**
588
- * "Your files are restored when the replay ends" has two halves, and the put-back kept neither
589
- * where the recorded tree and the working tree disagree about what exists. It is undone from an
590
- * ordinary snapshot, which honours `.gitignore`, so a file the recording tracked and the
591
- * workspace ignores now was overwritten with no copy to restore it from. And a snapshot restore
592
- * writes files without removing any, so a file the recording had and the operator has deleted
593
- * since came back, and stayed.
594
- */
595
- it('puts back exactly the tree it found: nothing lost, nothing added', async () => {
596
- await writeFile(join(workspace, 'settings.json'), '{"endpoint":"recorded"}\n');
597
- mkdirSync(join(workspace, 'legacy'));
598
- await writeFile(join(workspace, 'legacy', 'old-config.env'), 'OLD CONFIG\n');
599
- const recorded = await record(2);
600
-
601
- // Since the recording: the legacy directory is gone, and settings.json became a local file.
602
- await rm(join(workspace, 'legacy'), { recursive: true, force: true });
603
- await writeFile(join(workspace, '.gitignore'), 'settings.json\n');
604
- await writeFile(join(workspace, 'settings.json'), '{"endpoint":"MY LOCAL SETTINGS"}\n');
605
- await writeFile(join(workspace, 'auth.ts'), 'MY UNCOMMITTED WORK\n');
606
-
607
- const { leftBehind } = await withIsolatedTmp(async () => {
608
- await expect(
609
- replayCommand(parseArgs(['replay', recorded.runId]), out, workspace),
610
- ).rejects.toThrow(/would overwrite settings\.json/);
611
- });
612
- expect(
613
- await readFile(join(workspace, 'settings.json'), 'utf8'),
614
- 'an ignored file the copy does not hold must not be overwritten',
615
- ).toBe('{"endpoint":"MY LOCAL SETTINGS"}\n');
616
- expect(await readFile(join(workspace, 'auth.ts'), 'utf8')).toBe('MY UNCOMMITTED WORK\n');
617
- expect(leftBehind, 'a refused replay must not leave its copy behind').toEqual([]);
618
-
619
- // Moved aside, the replay runs, and hands back the tree it found — without the files the
620
- // recording had and this tree does not, and without the directory it made for them.
621
- await rm(join(workspace, 'settings.json'));
622
- await replayCommand(parseArgs(['replay', recorded.runId]), out, workspace);
623
- expect(existsSync(join(workspace, 'legacy')), 'a deleted directory came back').toBe(false);
624
- expect(existsSync(join(workspace, 'settings.json')), 'a removed file came back').toBe(false);
625
- expect(await readFile(join(workspace, 'auth.ts'), 'utf8')).toBe('MY UNCOMMITTED WORK\n');
626
- expect(await readFile(join(workspace, '.gitignore'), 'utf8')).toBe('settings.json\n');
627
- });
628
-
629
- /**
630
- * The same promise, for what the replayed agent writes rather than what the restore does. An exact
631
- * replay makes the recorded agent do what it did, so a file it created during the recording is
632
- * created again — and the put-back, whose copy never had it, left it in the operator's tree.
633
- */
634
- it('takes away what the replayed agent created, as well as what the restore wrote', async () => {
635
- await rm(join(workspace, 'auth.ts'));
636
- const recorded = await record(2);
637
- expect(existsSync(join(workspace, 'auth.ts')), 'fixture: the agent creates auth.ts').toBe(true);
638
- await rm(join(workspace, 'auth.ts'));
639
- await writeFile(join(workspace, 'notes.txt'), 'MY NOTES\n');
640
-
641
- const replayed = await replayCommand(parseArgs(['replay', recorded.runId]), out, workspace);
642
- expect(replayed.canonicalExact, 'the agent must actually have run').toBe(2);
643
- expect(existsSync(join(workspace, 'auth.ts')), 'the replayed agent left its file').toBe(false);
644
- expect(await readFile(join(workspace, 'notes.txt'), 'utf8')).toBe('MY NOTES\n');
645
- });
646
-
647
- /**
648
- * A file standing where the recording had a directory is in the way of every path under it, and
649
- * the restore deletes it to make the directory. `lstat` answers ENOTDIR for those paths, which
650
- * read as "nothing there" — so an ignored file at such a path was destroyed without a copy.
651
- */
652
- it('counts a file where the recording had a directory as something it would overwrite', async () => {
653
- mkdirSync(join(workspace, 'cfg'));
654
- await writeFile(join(workspace, 'cfg', 'app.json'), '{"recorded":true}\n');
655
- const recorded = await record(2);
656
- await rm(join(workspace, 'cfg'), { recursive: true, force: true });
657
- await writeFile(join(workspace, '.gitignore'), 'cfg\n');
658
- await writeFile(join(workspace, 'cfg'), 'MY LOCAL CFG FILE\n');
659
-
660
- await expect(
661
- replayCommand(parseArgs(['replay', recorded.runId]), out, workspace),
662
- ).rejects.toThrow(/would overwrite cfg:/);
663
- expect(await readFile(join(workspace, 'cfg'), 'utf8')).toBe('MY LOCAL CFG FILE\n');
664
- });
665
-
666
- /**
667
- * A junction is a directory as far as git is concerned: the copy holds what is inside it as
668
- * ordinary files, and the restore writes through it. Judged by `lstat`, which calls it a link,
669
- * a file deleted from under one refused the whole replay — "would overwrite data" — when the
670
- * restore would only have written that file back and the put-back taken it away again. On POSIX
671
- * git records a symlink as itself, so there this holds trivially; on Windows it is the case.
672
- */
673
- it('treats a directory link git walks into as the directory it is', async () => {
674
- const outside = await mkdtemp(join(tmpdir(), 'agenticreplay-outside-'));
675
- const link = join(workspace, 'data');
676
- symlinkSync(outside, link, process.platform === 'win32' ? 'junction' : 'dir');
677
- try {
678
- await writeFile(join(outside, 'a.csv'), 'A\n');
679
- await writeFile(join(outside, 'b.csv'), 'B\n');
680
- const recorded = await record(2);
681
- await rm(join(outside, 'b.csv'));
682
- await writeFile(join(workspace, 'auth.ts'), 'MY UNCOMMITTED WORK\n');
683
-
684
- const replayed = await replayCommand(parseArgs(['replay', recorded.runId]), out, workspace);
685
- expect(replayed.canonicalExact).toBe(2);
686
- expect(await readdir(outside), 'the deleted file must stay deleted').toEqual(['a.csv']);
687
- expect(await readFile(join(workspace, 'auth.ts'), 'utf8')).toBe('MY UNCOMMITTED WORK\n');
688
- } finally {
689
- // The link first and on its own, so nothing recursive ever walks through it.
690
- unlinkSync(link);
691
- await rm(outside, { recursive: true, force: true });
692
- }
693
- });
694
-
695
- /**
696
- * The other half of the case above: a file where the recording had a directory, and one the copy
697
- * DOES hold. The restore deletes it to make the directory; the put-back writes it back, and
698
- * `checkout-index -f` clears the directory it made to do so. So this replays, rather than being
699
- * refused — and the operator's uncommitted edit survives it. Pinned because it was disputed: the
700
- * claim was that the put-back skips a file over a non-empty directory, which git 2.43 (Linux) and
701
- * 2.55 (Windows) both do not.
702
- */
703
- it('puts back a held file where the recording had a directory', async () => {
704
- mkdirSync(join(workspace, 'cfg'));
705
- await writeFile(join(workspace, 'cfg', 'app.json'), '{"recorded":true}\n');
706
- const recorded = await record(2);
707
- await rm(join(workspace, 'cfg'), { recursive: true, force: true });
708
- await writeFile(join(workspace, 'cfg'), 'MY UNCOMMITTED EDIT\n');
709
-
710
- const replayed = await replayCommand(parseArgs(['replay', recorded.runId]), out, workspace);
711
- expect(replayed.canonicalExact).toBe(2);
712
- expect(await readFile(join(workspace, 'cfg'), 'utf8')).toBe('MY UNCOMMITTED EDIT\n');
713
- });
714
-
715
- it('does not leave a copy of the working tree in the temp directory', async () => {
716
- // The safety snapshot is a shadow git store holding the whole workspace, and it was never
717
- // removed — one per `agenticreplay replay`, growing with the size of your checkout, in a directory
718
- // `agenticreplay gc` deliberately will not sweep because it only reclaims fork worktrees. Replay owns
719
- // it, so replay has to clean it up.
720
- //
721
- // Watched in a temp directory of this test's own, not in the machine's. Diffing a listing of
722
- // the whole OS temp dir before and after cannot tell a directory *this* replay created from
723
- // one another test's replay created in the same window, so under the parallel suite it failed
724
- // with nothing wrong. `replay.ts` calls `tmpdir()` at the moment it mkdtemps, so redirecting
725
- // it here is enough, and leaves the product's own output alone.
726
- const isolatedTmp = await mkdtemp(join(tmpdir(), 'agenticreplay-e2e-tmp-'));
727
- const outerTmp = { TEMP: process.env.TEMP, TMP: process.env.TMP, TMPDIR: process.env.TMPDIR };
728
- process.env.TEMP = isolatedTmp;
729
- process.env.TMP = isolatedTmp;
730
- process.env.TMPDIR = isolatedTmp;
731
- process.env.FAKE_AGENT_READ = 'auth.ts';
732
- try {
733
- await record();
734
- await replayCommand(parseArgs(['replay', 'last']), out, workspace);
735
- const leaked = (await readdir(isolatedTmp)).filter((e) =>
736
- e.startsWith('agenticreplay-safety-'),
737
- );
738
- expect(leaked, 'the pre-replay snapshot store must not outlive the replay').toEqual([]);
739
- } finally {
740
- delete process.env.FAKE_AGENT_READ;
741
- for (const [key, value] of Object.entries(outerTmp)) {
742
- if (value === undefined) delete process.env[key];
743
- else process.env[key] = value;
744
- }
745
- await rm(isolatedTmp, { recursive: true, force: true });
746
- }
747
- });
748
-
749
- /**
750
- * `--worktree` promises never to touch your files, and two branches ahead of the one that reads
751
- * it broke the promise: `--in-place` given beside it won without a word, and a run recorded with
752
- * --no-fs fell through to the in-place warning and ran the agent over the working tree anyway —
753
- * the recorded edit landed on uncommitted work.
754
- */
755
- it('never replays in your directory once asked for a scratch copy', async () => {
756
- const withFs = await record(2);
757
- await writeFile(join(workspace, 'auth.ts'), 'MY UNCOMMITTED WORK\n');
758
- await expect(
759
- replayCommand(
760
- parseArgs(['replay', withFs.runId, '--worktree', '--in-place']),
761
- out,
762
- workspace,
763
- ),
764
- ).rejects.toThrow(/cannot both apply/);
765
- expect(await readFile(join(workspace, 'auth.ts'), 'utf8')).toBe('MY UNCOMMITTED WORK\n');
766
-
767
- const noFs = await recordCommand(
768
- parseArgs([
769
- 'record',
770
- 'generic-openai',
771
- '--no-fs',
772
- '--upstream-anthropic',
773
- model.url,
774
- '--',
775
- 'node',
776
- FAKE_AGENT,
777
- ]),
778
- out,
779
- workspace,
780
- );
781
- await writeFile(join(workspace, 'auth.ts'), 'MY UNCOMMITTED WORK\n');
782
- const { leftBehind } = await withIsolatedTmp(async () => {
783
- await expect(
784
- replayCommand(parseArgs(['replay', noFs.runId, '--worktree']), out, workspace),
785
- ).rejects.toThrow(/no workspace snapshot to copy/);
786
- });
787
- expect(
788
- await readFile(join(workspace, 'auth.ts'), 'utf8'),
789
- 'a replay asked for a scratch copy must not have written into the checkout',
790
- ).toBe('MY UNCOMMITTED WORK\n');
791
- expect(leftBehind).toEqual([]);
792
- const warned = lines.find((l) => l.includes('replay.no_snapshot')) ?? '';
793
- expect(warned, `no diagnosis in:\n${lines.join('\n')}`).toContain('--in-place');
794
- expect(lines.join('\n')).not.toContain('replay.in-place');
795
-
796
- // Unchanged without the flag: a run with no snapshot still replays where it is, and says so.
797
- const inPlace = await replayCommand(parseArgs(['replay', noFs.runId]), out, workspace);
798
- expect(inPlace.canonicalExact).toBe(2);
799
- expect(lines.join('\n')).toContain('replay.in-place');
800
- });
801
-
802
- it('does not touch the working tree when asked to replay in a scratch copy', async () => {
803
- process.env.FAKE_AGENT_READ = 'auth.ts';
804
- try {
805
- await record();
806
- await replayCommand(parseArgs(['replay', 'last', '--worktree']), out, workspace);
807
- const replaying = lines.find((l) => l.includes('info replaying')) ?? '';
808
- expect(replaying).not.toContain(`cwd=${workspace}`);
809
- expect(lines.join('\n')).not.toContain('replay.restored');
810
- } finally {
811
- delete process.env.FAKE_AGENT_READ;
812
- }
813
- });
814
-
815
- /**
816
- * A RUN CAN BE WITHOUT THE STORE ITS OWN EVENTS POINT AT: pulled from a gateway it was pushed to
817
- * without `--fs`, or put through `agenticreplay scrub --drop-fs`. Either way its `fs.snapshot` events name
818
- * trees that are nowhere on this machine, and a restore of one died inside git — "failed to
819
- * unpack tree object <40 hex>" — on `agenticreplay replay` and `--worktree` alike, while only the fork
820
- * path said what had happened. Each refusal also left an empty directory in `$TMPDIR` that
821
- * nothing named and `agenticreplay gc` never reclaims.
822
- */
823
- it('says why it cannot restore a run whose snapshots are gone, and leaves nothing behind', async () => {
824
- const recorded = await record(2);
825
- const from = deriveCheckpoints(await (await TraceReader.open(recorded.runDir)).events())[0]!
826
- .seq;
827
- await rm(join(recorded.runDir, 'fs'), { recursive: true, force: true });
828
- await writeFile(join(workspace, 'auth.ts'), 'MY UNCOMMITTED WORK\n');
829
-
830
- const { leftBehind } = await withIsolatedTmp(async () => {
831
- for (const extra of [[], ['--worktree']]) {
832
- await expect(
833
- replayCommand(parseArgs(['replay', recorded.runId, ...extra]), out, workspace),
834
- ).rejects.toThrow(/no workspace snapshot to restore/);
835
- }
836
- await expect(
837
- replayCommand(
838
- parseArgs([
839
- 'replay',
840
- recorded.runId,
841
- '--from',
842
- String(from),
843
- '--model',
844
- 'claude-sonnet-5',
845
- '--upstream-anthropic',
846
- model.url,
847
- ]),
848
- out,
849
- workspace,
850
- ),
851
- ).rejects.toThrow(/no workspace snapshot for the checkpoint/);
852
- });
853
-
854
- // Both causes named, because nothing on disk says which it was — and the first one has a way
855
- // back that the old wording ("never the filesystem snapshots") said did not exist.
856
- const warned = lines.filter((l) => /(replay|fork)\.no_snapshot/.test(l));
857
- expect(warned, `expected three diagnoses in:\n${lines.join('\n')}`).toHaveLength(3);
858
- for (const line of warned) {
859
- expect(line).toContain('pushed with --fs');
860
- expect(line).toContain('--drop-fs');
861
- }
862
- expect(warned.slice(0, 2).every((l) => l.includes('--in-place'))).toBe(true);
863
- expect(warned[2]).toContain('--no-fs');
864
-
865
- expect(leftBehind, 'a refusal must not leave a worktree in the temp directory').toEqual([]);
866
- expect(
867
- await readFile(join(workspace, 'auth.ts'), 'utf8'),
868
- 'a refused replay must not have touched the checkout',
869
- ).toBe('MY UNCOMMITTED WORK\n');
870
-
871
- // And the way out it names has to work, or the diagnosis is just a nicer dead end.
872
- const inPlace = await replayCommand(
873
- parseArgs(['replay', recorded.runId, '--in-place']),
874
- out,
875
- workspace,
876
- );
877
- expect(inPlace.unmatched).toBe(0);
878
- expect(inPlace.canonicalExact).toBe(2);
879
- });
880
-
881
- it('says where the recording ran and where the replay ran when it halts', async () => {
882
- // A halt reason like "distance 205343" is true and useless. The most common cause by far is
883
- // that the recorded conversation contains absolute paths from the directory the run was made
884
- // in and the replay is somewhere else, so the harness refuses the read and the tool result
885
- // comes back as a permission error instead of the file. Both directories on the line is what
886
- // turns the number into something an operator can act on — including confirming they match.
887
- await record();
888
- // Set *after* recording: the replay has to ask something the recording cannot answer.
889
- process.env.FAKE_AGENT_PROMPT = 'ask something else entirely';
890
- try {
891
- await replayCommand(parseArgs(['replay', 'last']), out, workspace);
892
-
893
- const halt = lines.find((l) => l.includes('replay.unmatched')) ?? '';
894
- expect(halt).toContain(`recorded_in=${workspace}`);
895
- expect(halt).toContain(`replayed_in=${workspace}`);
896
- expect(halt).toContain('--loose');
897
- } finally {
898
- delete process.env.FAKE_AGENT_PROMPT;
899
- }
900
- });
901
-
902
- it('points at the recording directory when the replay is somewhere else', async () => {
903
- await record();
904
- const elsewhere = await mkdtemp(join(tmpdir(), 'agenticreplay-elsewhere-'));
905
- process.env.FAKE_AGENT_PROMPT = 'ask something else entirely';
906
- try {
907
- // Copy the trace, not the files: this is someone replaying a colleague's run.
908
- await run('cp', ['-r', join(workspace, '.agenticreplay'), elsewhere]);
909
- await replayCommand(parseArgs(['replay', 'last']), out, elsewhere);
910
-
911
- const warned = lines.find((l) => l.includes('replay.elsewhere')) ?? '';
912
- expect(warned, `no elsewhere warning in:\n${lines.join('\n')}`).toContain(workspace);
913
- expect(warned).toContain('--worktree');
914
- } finally {
915
- delete process.env.FAKE_AGENT_PROMPT;
916
- await rm(elsewhere, { recursive: true, force: true });
917
- }
918
- });
919
-
920
- /**
921
- * The directory a run was recorded in is that directory however the path to it is spelled.
922
- *
923
- * Windows hands a process its working directory as typed — `C:\…` from PowerShell, `c:\…` from
924
- * cmd — and a junction or symlink names the same folder differently again. Compared as strings,
925
- * the replay called it "elsewhere", skipped the safety copy, and the recorded edit replaced
926
- * uncommitted work in the very directory the run was made in.
927
- */
928
- it('restores and puts back where it was recorded, however that path is spelled', async () => {
929
- await record(2);
930
- const aliasRoot = await mkdtemp(join(tmpdir(), 'agenticreplay-alias-'));
931
- const alias = join(aliasRoot, 'same');
932
- await symlink(workspace, alias, process.platform === 'win32' ? 'junction' : 'dir');
933
- const spellings = [alias];
934
- if (process.platform === 'win32') {
935
- spellings.push(workspace.replace(/^[A-Z]:/, (drive) => drive.toLowerCase()));
936
- }
937
- try {
938
- for (const cwd of spellings) {
939
- await writeFile(join(workspace, 'auth.ts'), 'MY UNCOMMITTED WORK\n');
940
- await replayCommand(parseArgs(['replay', 'last']), out, cwd);
941
- expect(
942
- await readFile(join(workspace, 'auth.ts'), 'utf8'),
943
- `replayed from ${cwd}: the checkout must come back as it was`,
944
- ).toBe('MY UNCOMMITTED WORK\n');
945
- }
946
- expect(lines.join('\n')).not.toContain('replay.elsewhere');
947
- expect(lines.filter((l) => l.includes('replay.restored'))).toHaveLength(spellings.length);
948
- } finally {
949
- // The link first and on its own, so nothing recursive ever walks into the workspace.
950
- await unlink(alias);
951
- await rm(aliasRoot, { recursive: true, force: true });
952
- }
953
- });
954
-
955
- it('records the commit the run started from', async () => {
956
- // `manifest.git` is in the schema, the Python reader parses it, and nothing ever wrote it — so
957
- // every trace was missing the single most useful piece of provenance for "why did my agent
958
- // delete my file": which commit it was looking at.
959
- // The shared fixture inits a repo but never commits, so HEAD is unborn there. Commit here
960
- // rather than in `beforeEach`: other tests assert on a dirty tree and should keep doing so.
961
- await run('git', ['add', '-A'], { cwd: workspace });
962
- await run('git', ['commit', '-qm', 'initial'], { cwd: workspace });
963
-
964
- const result = await record();
965
- const manifest = (await TraceReader.open(result.runDir)).manifest();
966
- const head = (await run('git', ['rev-parse', 'HEAD'], { cwd: workspace })).stdout.trim();
967
-
968
- expect(manifest.git?.head).toBe(head);
969
- expect(manifest.git?.branch).toBeDefined();
970
- // The agent edits a file, so by the end the tree is dirty — but `git` describes the state the
971
- // run *started* from, which is what makes it a reproduction instruction.
972
- expect(manifest.git?.dirty).toBe(false);
973
- });
974
-
975
- it('closes the proxy and seals the trace when the agent will not start', async () => {
976
- // Two bugs, one cause. `recordCommand` had no `try/finally`, so a throw skipped both
977
- // `proxy.close()` and `writer.close()`.
978
- //
979
- // The proxy is the visible one: a listening server keeps Node's event loop alive, so
980
- // `agenticreplay record generic-openai -- /nonexistent` printed its error and then **hung** — verified
981
- // against the built CLI, killed at 12s. Mistyping an agent name is the first thing a new user
982
- // does.
983
- //
984
- // The trace is the quieter one: everything the agent did is on disk, but with no `ended_at`,
985
- // no `counts` and no `integrity`, so `verifyIntegrity` reports the run as tampered rather than
986
- // as unfinished. The same shape loses a complete recording to one failed write.
987
- const args = parseArgs([
988
- 'record',
989
- 'generic-openai',
990
- '--upstream-anthropic',
991
- model.url,
992
- '--',
993
- join(workspace, 'no-such-binary'),
994
- ]);
995
-
996
- await expect(recordCommand(args, out, workspace)).rejects.toThrow();
997
-
998
- const runs = await listRuns(workspace);
999
- expect(runs, 'the run directory should still exist').toHaveLength(1);
1000
- const manifest = (await TraceReader.open(runs[0]!.dir)).manifest();
1001
- expect(manifest.ended_at, 'a failed run must still be sealed').toBeDefined();
1002
- expect(manifest.integrity?.events_sha256).toBeDefined();
1003
- });
1004
-
1005
- it('derives checkpoints you can fork from', async () => {
1006
- const result = await record();
1007
- const events = await (await TraceReader.open(result.runDir)).events();
1008
- const checkpoints = deriveCheckpoints(events);
1009
- expect(checkpoints.length).toBeGreaterThan(0);
1010
- expect(checkpoints[0]!.fsTree).toBeTruthy();
1011
- });
1012
-
1013
- it('forks from a checkpoint and continues live on a different model', async () => {
1014
- const first = await record();
1015
- const events = await (await TraceReader.open(first.runDir)).events();
1016
- const checkpoint = deriveCheckpoints(events)[0]!;
1017
- const callsBefore = model.calls.length;
1018
-
1019
- const result = await replayCommand(
1020
- parseArgs([
1021
- 'replay',
1022
- 'last',
1023
- '--from',
1024
- String(checkpoint.seq),
1025
- '--model',
1026
- 'glm-5.3-flash',
1027
- '--upstream-anthropic',
1028
- model.url,
1029
- ]),
1030
- out,
1031
- workspace,
1032
- );
1033
-
1034
- expect(result.mode).toBe('fork');
1035
- expect(result.forkRunId).toBeTruthy();
1036
- expect(result.forkRunId).not.toBe(first.runId);
1037
- // Live calls happened past the fork point — that is what makes it a fork rather than a replay.
1038
- expect(result.liveCalls).toBeGreaterThan(0);
1039
- expect(model.calls.length).toBeGreaterThan(callsBefore);
1040
-
1041
- // And the substituted model actually reached the upstream.
1042
- const forkedCalls = model.calls.slice(callsBefore);
1043
- expect(forkedCalls.some((c) => c.body?.model === 'glm-5.3-flash')).toBe(true);
1044
- });
1045
-
1046
- it('records the fork with provenance pointing back at its parent', async () => {
1047
- const first = await record();
1048
- const events = await (await TraceReader.open(first.runDir)).events();
1049
- const checkpoint = deriveCheckpoints(events)[0]!;
1050
-
1051
- const result = await replayCommand(
1052
- parseArgs([
1053
- 'replay',
1054
- 'last',
1055
- '--from',
1056
- String(checkpoint.seq),
1057
- '--model',
1058
- 'glm-5.3-flash',
1059
- '--upstream-anthropic',
1060
- model.url,
1061
- ]),
1062
- out,
1063
- workspace,
1064
- );
1065
-
1066
- const forkDir = (await resolveRunSelector(workspace, result.forkRunId!)).dir;
1067
- const forkEvents = await (await TraceReader.open(forkDir)).events();
1068
- const forkEvent = forkEvents.find((e) => e.type === 'fork');
1069
- expect(forkEvent?.attrs?.parent_run).toBe(first.runId);
1070
- expect(forkEvent?.attrs?.fork_point).toBe(checkpoint.seq);
1071
- });
1072
-
1073
- it('records the filesystem as a fork runs, so a fork can be forked again', async () => {
1074
- // A fork used to record only the conversation. A checkpoint is derived from a snapshot
1075
- // (spec §3), so a fork had no checkpoints and could not be forked — and `agenticreplay compare last`
1076
- // straight after a fork failed with "this run has no checkpoints", because `last` resolves to
1077
- // the fork. A branch you cannot branch again is a dead end one step in.
1078
- const recorded = await record();
1079
- const checkpoints = deriveCheckpoints(await (await TraceReader.open(recorded.runDir)).events());
1080
- const first = await replayCommand(
1081
- parseArgs([
1082
- 'replay',
1083
- 'last',
1084
- '--from',
1085
- String(checkpoints[0]!.seq),
1086
- '--model',
1087
- 'glm-5.3-flash',
1088
- '--upstream-anthropic',
1089
- model.url,
1090
- ]),
1091
- out,
1092
- workspace,
1093
- );
1094
-
1095
- const forkDir = (await resolveRunSelector(workspace, first.forkRunId!)).dir;
1096
- const forkEvents = await (await TraceReader.open(forkDir)).events();
1097
- expect(
1098
- forkEvents.filter((e) => e.type === 'fs.snapshot').length,
1099
- 'the fork recorded no filesystem snapshot',
1100
- ).toBeGreaterThan(0);
1101
-
1102
- const forkCheckpoints = deriveCheckpoints(forkEvents);
1103
- expect(forkCheckpoints.length, 'a fork with no checkpoints cannot be forked').toBeGreaterThan(
1104
- 0,
1105
- );
1106
-
1107
- // And the property that actually matters: forking it works.
1108
- const second = await replayCommand(
1109
- parseArgs([
1110
- 'replay',
1111
- first.forkRunId!,
1112
- '--from',
1113
- String(forkCheckpoints[0]!.seq),
1114
- '--model',
1115
- 'claude-haiku-4-5',
1116
- '--upstream-anthropic',
1117
- model.url,
1118
- ]),
1119
- out,
1120
- workspace,
1121
- );
1122
- expect(second.forkRunId).toBeDefined();
1123
- expect(second.forkRunId).not.toBe(first.forkRunId);
1124
- expect(second.exitCode, 'the twice-forked agent must actually run').toBe(0);
1125
- });
1126
-
1127
- it('lists both runs afterwards, newest first', async () => {
1128
- await record();
1129
- const before = (await listRuns(workspace)).length;
1130
- const events = await (await TraceReader.open((await listRuns(workspace))[0]!.dir)).events();
1131
- await replayCommand(
1132
- parseArgs([
1133
- 'replay',
1134
- 'last',
1135
- '--from',
1136
- String(deriveCheckpoints(events)[0]!.seq),
1137
- '--upstream-anthropic',
1138
- model.url,
1139
- ]),
1140
- out,
1141
- workspace,
1142
- );
1143
- expect((await listRuns(workspace)).length).toBe(before + 1);
1144
- });
1145
-
1146
- it('never writes the agent api key into the trace', async () => {
1147
- process.env.ANTHROPIC_API_KEY = 'sk-e2e-secret-key-should-never-appear-anywhere';
1148
- try {
1149
- const result = await record();
1150
- const raw = await readFile(join(result.runDir, 'events.jsonl'), 'utf8');
1151
- expect(raw).not.toContain('sk-e2e-secret-key-should-never-appear-anywhere');
1152
- const manifest = await readFile(join(result.runDir, 'manifest.json'), 'utf8');
1153
- expect(manifest).not.toContain('sk-e2e-secret-key-should-never-appear-anywhere');
1154
- } finally {
1155
- delete process.env.ANTHROPIC_API_KEY;
1156
- }
1157
- });
1158
-
1159
- /**
1160
- * The edges that make a run answerable in one hop rather than by reading every line. Asserted
1161
- * against a real recording rather than a fixture, because the seq resolution happens in the
1162
- * recorder and a unit test of the deriver cannot see it.
1163
- */
1164
- describe('causal edges', () => {
1165
- it('points each tool.call at the model.response that emitted it', async () => {
1166
- const result = await record();
1167
- const events = await (await TraceReader.open(result.runDir)).events();
1168
- const bySeq = new Map(events.map((e) => [e.seq, e]));
1169
- const calls = events.filter((e) => e.type === 'tool.call');
1170
-
1171
- expect(calls.length).toBeGreaterThan(0);
1172
- for (const call of calls) {
1173
- expect(call.causes, `tool.call seq ${call.seq} names no cause`).toHaveLength(1);
1174
- expect(bySeq.get(call.causes![0]!)?.type).toBe('model.response');
1175
- }
1176
- });
1177
-
1178
- it('points a model.request at the tool.result it carried back', async () => {
1179
- const result = await record();
1180
- const events = await (await TraceReader.open(result.runDir)).events();
1181
- const bySeq = new Map(events.map((e) => [e.seq, e]));
1182
- const carrying = events.filter((e) => e.type === 'model.request' && e.causes?.length);
1183
-
1184
- expect(carrying.length).toBeGreaterThan(0);
1185
- for (const request of carrying) {
1186
- for (const cause of request.causes ?? []) {
1187
- expect(bySeq.get(cause)?.type).toBe('tool.result');
1188
- }
1189
- }
1190
- });
1191
-
1192
- it('keeps every edge pointing backwards, as spec §2.1 requires of causes', async () => {
1193
- const result = await record();
1194
- const events = await (await TraceReader.open(result.runDir)).events();
1195
- for (const event of events) {
1196
- for (const cause of event.causes ?? []) expect(cause).toBeLessThan(event.seq);
1197
- }
1198
- });
1199
-
1200
- it('derives the tool call behind a file change without writing that edge to the trace', async () => {
1201
- const result = await record();
1202
- const events = await (await TraceReader.open(result.runDir)).events();
1203
-
1204
- // The recorder must not have written it: a snapshot is per turn, so this is a guess.
1205
- for (const change of events.filter((e) => e.type === 'fs.change')) {
1206
- expect(change.causes).toBeUndefined();
1207
- }
1208
-
1209
- // The reader derives it anyway, and says that it did.
1210
- const inferred = runGraph(events).edges.filter((e) => e.kind === 'inferred');
1211
- expect(inferred.length).toBeGreaterThan(0);
1212
- const bySeq = new Map(events.map((e) => [e.seq, e]));
1213
- for (const edge of inferred) {
1214
- expect(bySeq.get(edge.from)?.type).toBe('tool.call');
1215
- expect(edge.rule).not.toBe('');
1216
- }
1217
- });
1218
-
1219
- it('walks from a file change back to the model turn that caused it', async () => {
1220
- const result = await record();
1221
- const events = await (await TraceReader.open(result.runDir)).events();
1222
- const change = events.find((e) => e.type === 'fs.change');
1223
- expect(change).toBeDefined();
1224
-
1225
- const chain = chainTo(runGraph(events), change!.seq).nodes.map((n) => n.type);
1226
- expect(chain).toContain('tool.call');
1227
- expect(chain).toContain('model.response');
1228
- });
1229
- });
1230
- });