@xoxoai/checkmate 0.6.7 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/dist/checkmate.js +13375 -0
  2. package/package.json +14 -100
  3. package/plugin/.claude-plugin/plugin.json +10 -0
  4. package/plugin/bin/checkmate.ts +3 -0
  5. package/plugin/contracts/finding.schema.json +78 -0
  6. package/plugin/contracts/gap.schema.json +56 -0
  7. package/plugin/contracts/plan-candidate.schema.json +103 -0
  8. package/plugin/contracts/plan-delta.schema.json +63 -0
  9. package/plugin/contracts/plan-patch.schema.json +116 -0
  10. package/plugin/contracts/plan-request.schema.json +108 -0
  11. package/plugin/contracts/plan.schema.json +313 -0
  12. package/plugin/contracts/profile.schema.json +154 -0
  13. package/plugin/contracts/response.schema.json +25 -0
  14. package/plugin/contracts/result.schema.json +410 -0
  15. package/plugin/dist/checkmate.js +13012 -0
  16. package/plugin/package.json +4 -0
  17. package/plugin/references/browser.md +35 -0
  18. package/plugin/references/http.md +30 -0
  19. package/plugin/references/workflow.md +122 -0
  20. package/plugin/skills/execute/SKILL.md +92 -0
  21. package/plugin/skills/plan/SKILL.md +94 -0
  22. package/plugin/skills/report/SKILL.md +28 -0
  23. package/plugin/skills/revise/SKILL.md +43 -0
  24. package/plugin/skills/setup/SKILL.md +82 -0
  25. package/plugin/skills/status/SKILL.md +20 -0
  26. package/plugin/skills/ui/SKILL.md +26 -0
  27. package/plugin/src/actor.ts +21 -0
  28. package/plugin/src/cli.ts +1133 -0
  29. package/plugin/src/contracts.ts +342 -0
  30. package/plugin/src/index.ts +52 -0
  31. package/plugin/src/plans.ts +1028 -0
  32. package/plugin/src/render.ts +544 -0
  33. package/plugin/src/runs.ts +868 -0
  34. package/plugin/src/store.ts +384 -0
  35. package/plugin/src/targets.ts +205 -0
  36. package/plugin/src/types.ts +319 -0
  37. package/plugin/src/ui/assets/client.js +501 -0
  38. package/plugin/src/ui/assets/favicon.svg +1 -0
  39. package/plugin/src/ui/assets/fonts/inter-OFL.txt +93 -0
  40. package/plugin/src/ui/assets/fonts/inter.woff2 +0 -0
  41. package/plugin/src/ui/assets/fonts/jetbrains-mono-OFL.txt +93 -0
  42. package/plugin/src/ui/assets/fonts/jetbrains-mono.woff2 +0 -0
  43. package/plugin/src/ui/assets/fonts/space-grotesk-OFL.txt +93 -0
  44. package/plugin/src/ui/assets/fonts/space-grotesk.woff2 +0 -0
  45. package/plugin/src/ui/assets/style.css +1926 -0
  46. package/plugin/src/ui/edit.ts +305 -0
  47. package/plugin/src/ui/forms.ts +209 -0
  48. package/plugin/src/ui/html.ts +130 -0
  49. package/plugin/src/ui/layout.ts +198 -0
  50. package/plugin/src/ui/lists.ts +645 -0
  51. package/plugin/src/ui/plan.ts +577 -0
  52. package/plugin/src/ui/run.ts +489 -0
  53. package/plugin/src/ui/server.ts +684 -0
  54. package/plugin/src/validators.d.ts +13 -0
  55. package/plugin/src/validators.js +1 -0
  56. package/plugin/src/views.ts +839 -0
  57. package/LICENSE +0 -21
  58. package/README.md +0 -294
  59. package/bin/checkmate.js +0 -13
  60. package/dist/ai/client.d.ts +0 -64
  61. package/dist/ai/client.d.ts.map +0 -1
  62. package/dist/ai/client.js +0 -313
  63. package/dist/ai/client.js.map +0 -1
  64. package/dist/ai/message-handler.d.ts +0 -9
  65. package/dist/ai/message-handler.d.ts.map +0 -1
  66. package/dist/ai/message-handler.js +0 -50
  67. package/dist/ai/message-handler.js.map +0 -1
  68. package/dist/ai/message-history.d.ts +0 -17
  69. package/dist/ai/message-history.d.ts.map +0 -1
  70. package/dist/ai/message-history.js +0 -45
  71. package/dist/ai/message-history.js.map +0 -1
  72. package/dist/ai/prompts.d.ts +0 -4
  73. package/dist/ai/prompts.d.ts.map +0 -1
  74. package/dist/ai/prompts.js +0 -24
  75. package/dist/ai/prompts.js.map +0 -1
  76. package/dist/ai/rate-limit-policy.d.ts +0 -9
  77. package/dist/ai/rate-limit-policy.d.ts.map +0 -1
  78. package/dist/ai/rate-limit-policy.js +0 -34
  79. package/dist/ai/rate-limit-policy.js.map +0 -1
  80. package/dist/ai/tool-response-handler.d.ts +0 -16
  81. package/dist/ai/tool-response-handler.d.ts.map +0 -1
  82. package/dist/ai/tool-response-handler.js +0 -85
  83. package/dist/ai/tool-response-handler.js.map +0 -1
  84. package/dist/ai/turn-processor.d.ts +0 -34
  85. package/dist/ai/turn-processor.d.ts.map +0 -1
  86. package/dist/ai/turn-processor.js +0 -107
  87. package/dist/ai/turn-processor.js.map +0 -1
  88. package/dist/api/allocate-run-identity.d.ts +0 -8
  89. package/dist/api/allocate-run-identity.d.ts.map +0 -1
  90. package/dist/api/allocate-run-identity.js +0 -10
  91. package/dist/api/allocate-run-identity.js.map +0 -1
  92. package/dist/api/execute-prepared-run.d.ts +0 -22
  93. package/dist/api/execute-prepared-run.d.ts.map +0 -1
  94. package/dist/api/execute-prepared-run.js +0 -184
  95. package/dist/api/execute-prepared-run.js.map +0 -1
  96. package/dist/api/index.d.ts +0 -25
  97. package/dist/api/index.d.ts.map +0 -1
  98. package/dist/api/index.js +0 -69
  99. package/dist/api/index.js.map +0 -1
  100. package/dist/api/prepare-run.d.ts +0 -44
  101. package/dist/api/prepare-run.d.ts.map +0 -1
  102. package/dist/api/prepare-run.js +0 -261
  103. package/dist/api/prepare-run.js.map +0 -1
  104. package/dist/cli/diagnostic-relay.d.ts +0 -6
  105. package/dist/cli/diagnostic-relay.d.ts.map +0 -1
  106. package/dist/cli/diagnostic-relay.js +0 -6
  107. package/dist/cli/diagnostic-relay.js.map +0 -1
  108. package/dist/cli/main.d.ts +0 -21
  109. package/dist/cli/main.d.ts.map +0 -1
  110. package/dist/cli/main.js +0 -166
  111. package/dist/cli/main.js.map +0 -1
  112. package/dist/cli/protocol.d.ts +0 -57
  113. package/dist/cli/protocol.d.ts.map +0 -1
  114. package/dist/cli/protocol.js +0 -116
  115. package/dist/cli/protocol.js.map +0 -1
  116. package/dist/cli/reconcile-result.d.ts +0 -13
  117. package/dist/cli/reconcile-result.d.ts.map +0 -1
  118. package/dist/cli/reconcile-result.js +0 -300
  119. package/dist/cli/reconcile-result.js.map +0 -1
  120. package/dist/cli/run-parent.d.ts +0 -37
  121. package/dist/cli/run-parent.d.ts.map +0 -1
  122. package/dist/cli/run-parent.js +0 -491
  123. package/dist/cli/run-parent.js.map +0 -1
  124. package/dist/cli/signals.d.ts +0 -36
  125. package/dist/cli/signals.d.ts.map +0 -1
  126. package/dist/cli/signals.js +0 -85
  127. package/dist/cli/signals.js.map +0 -1
  128. package/dist/cli/static-commands.d.ts +0 -11
  129. package/dist/cli/static-commands.d.ts.map +0 -1
  130. package/dist/cli/static-commands.js +0 -83
  131. package/dist/cli/static-commands.js.map +0 -1
  132. package/dist/cli/worker-stream-guard.d.ts +0 -20
  133. package/dist/cli/worker-stream-guard.d.ts.map +0 -1
  134. package/dist/cli/worker-stream-guard.js +0 -41
  135. package/dist/cli/worker-stream-guard.js.map +0 -1
  136. package/dist/cli/worker.d.ts +0 -3
  137. package/dist/cli/worker.d.ts.map +0 -1
  138. package/dist/cli/worker.js +0 -111
  139. package/dist/cli/worker.js.map +0 -1
  140. package/dist/config/ingestion.d.ts +0 -58
  141. package/dist/config/ingestion.d.ts.map +0 -1
  142. package/dist/config/ingestion.js +0 -283
  143. package/dist/config/ingestion.js.map +0 -1
  144. package/dist/config/manifest.d.ts +0 -20
  145. package/dist/config/manifest.d.ts.map +0 -1
  146. package/dist/config/manifest.js +0 -91
  147. package/dist/config/manifest.js.map +0 -1
  148. package/dist/config/model-egress.d.ts +0 -10
  149. package/dist/config/model-egress.d.ts.map +0 -1
  150. package/dist/config/model-egress.js +0 -62
  151. package/dist/config/model-egress.js.map +0 -1
  152. package/dist/config/package-resolution.d.ts +0 -4
  153. package/dist/config/package-resolution.d.ts.map +0 -1
  154. package/dist/config/package-resolution.js +0 -24
  155. package/dist/config/package-resolution.js.map +0 -1
  156. package/dist/config/policy.d.ts +0 -44
  157. package/dist/config/policy.d.ts.map +0 -1
  158. package/dist/config/policy.js +0 -141
  159. package/dist/config/policy.js.map +0 -1
  160. package/dist/config/record.d.ts +0 -4
  161. package/dist/config/record.d.ts.map +0 -1
  162. package/dist/config/record.js +0 -10
  163. package/dist/config/record.js.map +0 -1
  164. package/dist/config/secrets.d.ts +0 -11
  165. package/dist/config/secrets.d.ts.map +0 -1
  166. package/dist/config/secrets.js +0 -42
  167. package/dist/config/secrets.js.map +0 -1
  168. package/dist/contracts/diagnostics.d.ts +0 -4
  169. package/dist/contracts/diagnostics.d.ts.map +0 -1
  170. package/dist/contracts/diagnostics.js +0 -31
  171. package/dist/contracts/diagnostics.js.map +0 -1
  172. package/dist/contracts/serialize.d.ts +0 -2
  173. package/dist/contracts/serialize.d.ts.map +0 -1
  174. package/dist/contracts/serialize.js +0 -90
  175. package/dist/contracts/serialize.js.map +0 -1
  176. package/dist/contracts/types.d.ts +0 -316
  177. package/dist/contracts/types.d.ts.map +0 -1
  178. package/dist/contracts/types.js +0 -74
  179. package/dist/contracts/types.js.map +0 -1
  180. package/dist/contracts/validator.d.ts +0 -8
  181. package/dist/contracts/validator.d.ts.map +0 -1
  182. package/dist/contracts/validator.js +0 -71
  183. package/dist/contracts/validator.js.map +0 -1
  184. package/dist/driver.d.ts +0 -97
  185. package/dist/driver.d.ts.map +0 -1
  186. package/dist/driver.js +0 -24
  187. package/dist/driver.js.map +0 -1
  188. package/dist/drivers/descriptor.d.ts +0 -15
  189. package/dist/drivers/descriptor.d.ts.map +0 -1
  190. package/dist/drivers/descriptor.js +0 -122
  191. package/dist/drivers/descriptor.js.map +0 -1
  192. package/dist/drivers/loader.d.ts +0 -18
  193. package/dist/drivers/loader.d.ts.map +0 -1
  194. package/dist/drivers/loader.js +0 -97
  195. package/dist/drivers/loader.js.map +0 -1
  196. package/dist/drivers/web/checkmate-driver.json +0 -47
  197. package/dist/drivers/web/index.d.ts +0 -6
  198. package/dist/drivers/web/index.d.ts.map +0 -1
  199. package/dist/drivers/web/index.js +0 -27
  200. package/dist/drivers/web/index.js.map +0 -1
  201. package/dist/drivers/web/session.d.ts +0 -25
  202. package/dist/drivers/web/session.d.ts.map +0 -1
  203. package/dist/drivers/web/session.js +0 -132
  204. package/dist/drivers/web/session.js.map +0 -1
  205. package/dist/drivers/web/tools/network-request-recorder.d.ts +0 -46
  206. package/dist/drivers/web/tools/network-request-recorder.d.ts.map +0 -1
  207. package/dist/drivers/web/tools/network-request-recorder.js +0 -164
  208. package/dist/drivers/web/tools/network-request-recorder.js.map +0 -1
  209. package/dist/drivers/web/tools/screenshot-service.d.ts +0 -10
  210. package/dist/drivers/web/tools/screenshot-service.d.ts.map +0 -1
  211. package/dist/drivers/web/tools/screenshot-service.js +0 -23
  212. package/dist/drivers/web/tools/screenshot-service.js.map +0 -1
  213. package/dist/drivers/web/tools/snapshot-filter/index.d.ts +0 -4
  214. package/dist/drivers/web/tools/snapshot-filter/index.d.ts.map +0 -1
  215. package/dist/drivers/web/tools/snapshot-filter/index.js +0 -4
  216. package/dist/drivers/web/tools/snapshot-filter/index.js.map +0 -1
  217. package/dist/drivers/web/tools/snapshot-filter/semantic-scorer.d.ts +0 -15
  218. package/dist/drivers/web/tools/snapshot-filter/semantic-scorer.d.ts.map +0 -1
  219. package/dist/drivers/web/tools/snapshot-filter/semantic-scorer.js +0 -99
  220. package/dist/drivers/web/tools/snapshot-filter/semantic-scorer.js.map +0 -1
  221. package/dist/drivers/web/tools/snapshot-filter/snapshot-filter.d.ts +0 -5
  222. package/dist/drivers/web/tools/snapshot-filter/snapshot-filter.d.ts.map +0 -1
  223. package/dist/drivers/web/tools/snapshot-filter/snapshot-filter.js +0 -56
  224. package/dist/drivers/web/tools/snapshot-filter/snapshot-filter.js.map +0 -1
  225. package/dist/drivers/web/tools/snapshot-filter/tree-reconstructor.d.ts +0 -3
  226. package/dist/drivers/web/tools/snapshot-filter/tree-reconstructor.d.ts.map +0 -1
  227. package/dist/drivers/web/tools/snapshot-filter/tree-reconstructor.js +0 -85
  228. package/dist/drivers/web/tools/snapshot-filter/tree-reconstructor.js.map +0 -1
  229. package/dist/drivers/web/tools/snapshot-service.d.ts +0 -31
  230. package/dist/drivers/web/tools/snapshot-service.d.ts.map +0 -1
  231. package/dist/drivers/web/tools/snapshot-service.js +0 -96
  232. package/dist/drivers/web/tools/snapshot-service.js.map +0 -1
  233. package/dist/drivers/web/tools/tool.d.ts +0 -76
  234. package/dist/drivers/web/tools/tool.d.ts.map +0 -1
  235. package/dist/drivers/web/tools/tool.js +0 -562
  236. package/dist/drivers/web/tools/tool.js.map +0 -1
  237. package/dist/drivers/web/tools/transient-state-tracker.d.ts +0 -26
  238. package/dist/drivers/web/tools/transient-state-tracker.d.ts.map +0 -1
  239. package/dist/drivers/web/tools/transient-state-tracker.js +0 -301
  240. package/dist/drivers/web/tools/transient-state-tracker.js.map +0 -1
  241. package/dist/drivers/web/tools/types.d.ts +0 -11
  242. package/dist/drivers/web/tools/types.d.ts.map +0 -1
  243. package/dist/drivers/web/tools/types.js +0 -2
  244. package/dist/drivers/web/tools/types.js.map +0 -1
  245. package/dist/evidence/atomic-file.d.ts +0 -23
  246. package/dist/evidence/atomic-file.d.ts.map +0 -1
  247. package/dist/evidence/atomic-file.js +0 -104
  248. package/dist/evidence/atomic-file.js.map +0 -1
  249. package/dist/evidence/layout.d.ts +0 -30
  250. package/dist/evidence/layout.d.ts.map +0 -1
  251. package/dist/evidence/layout.js +0 -152
  252. package/dist/evidence/layout.js.map +0 -1
  253. package/dist/evidence/retention.d.ts +0 -5
  254. package/dist/evidence/retention.d.ts.map +0 -1
  255. package/dist/evidence/retention.js +0 -10
  256. package/dist/evidence/retention.js.map +0 -1
  257. package/dist/evidence/store.d.ts +0 -101
  258. package/dist/evidence/store.d.ts.map +0 -1
  259. package/dist/evidence/store.js +0 -375
  260. package/dist/evidence/store.js.map +0 -1
  261. package/dist/evidence/terminal-finalizer.d.ts +0 -19
  262. package/dist/evidence/terminal-finalizer.d.ts.map +0 -1
  263. package/dist/evidence/terminal-finalizer.js +0 -56
  264. package/dist/evidence/terminal-finalizer.js.map +0 -1
  265. package/dist/index.d.ts +0 -9
  266. package/dist/index.d.ts.map +0 -1
  267. package/dist/index.js +0 -12
  268. package/dist/index.js.map +0 -1
  269. package/dist/logging/invocation-logger.d.ts +0 -4
  270. package/dist/logging/invocation-logger.d.ts.map +0 -1
  271. package/dist/logging/invocation-logger.js +0 -25
  272. package/dist/logging/invocation-logger.js.map +0 -1
  273. package/dist/logging/level-logger.d.ts +0 -11
  274. package/dist/logging/level-logger.d.ts.map +0 -1
  275. package/dist/logging/level-logger.js +0 -82
  276. package/dist/logging/level-logger.js.map +0 -1
  277. package/dist/logging/types.d.ts +0 -8
  278. package/dist/logging/types.d.ts.map +0 -1
  279. package/dist/logging/types.js +0 -7
  280. package/dist/logging/types.js.map +0 -1
  281. package/dist/redaction/diagnostic-sanitizer.d.ts +0 -7
  282. package/dist/redaction/diagnostic-sanitizer.d.ts.map +0 -1
  283. package/dist/redaction/diagnostic-sanitizer.js +0 -42
  284. package/dist/redaction/diagnostic-sanitizer.js.map +0 -1
  285. package/dist/redaction/redactor.d.ts +0 -40
  286. package/dist/redaction/redactor.d.ts.map +0 -1
  287. package/dist/redaction/redactor.js +0 -176
  288. package/dist/redaction/redactor.js.map +0 -1
  289. package/dist/redaction/scrub.d.ts +0 -29
  290. package/dist/redaction/scrub.d.ts.map +0 -1
  291. package/dist/redaction/scrub.js +0 -54
  292. package/dist/redaction/scrub.js.map +0 -1
  293. package/dist/runtime/config.d.ts +0 -16
  294. package/dist/runtime/config.d.ts.map +0 -1
  295. package/dist/runtime/config.js +0 -2
  296. package/dist/runtime/config.js.map +0 -1
  297. package/dist/runtime/driver-boundary.d.ts +0 -16
  298. package/dist/runtime/driver-boundary.d.ts.map +0 -1
  299. package/dist/runtime/driver-boundary.js +0 -71
  300. package/dist/runtime/driver-boundary.js.map +0 -1
  301. package/dist/runtime/driver-session.d.ts +0 -9
  302. package/dist/runtime/driver-session.d.ts.map +0 -1
  303. package/dist/runtime/driver-session.js +0 -64
  304. package/dist/runtime/driver-session.js.map +0 -1
  305. package/dist/runtime/internal-step-evidence.d.ts +0 -30
  306. package/dist/runtime/internal-step-evidence.d.ts.map +0 -1
  307. package/dist/runtime/internal-step-evidence.js +0 -82
  308. package/dist/runtime/internal-step-evidence.js.map +0 -1
  309. package/dist/runtime/result-adapter.d.ts +0 -9
  310. package/dist/runtime/result-adapter.d.ts.map +0 -1
  311. package/dist/runtime/result-adapter.js +0 -77
  312. package/dist/runtime/result-adapter.js.map +0 -1
  313. package/dist/runtime/runner.d.ts +0 -43
  314. package/dist/runtime/runner.d.ts.map +0 -1
  315. package/dist/runtime/runner.js +0 -72
  316. package/dist/runtime/runner.js.map +0 -1
  317. package/dist/runtime/scenario-control.d.ts +0 -40
  318. package/dist/runtime/scenario-control.d.ts.map +0 -1
  319. package/dist/runtime/scenario-control.js +0 -94
  320. package/dist/runtime/scenario-control.js.map +0 -1
  321. package/dist/runtime/scenario-runner.d.ts +0 -41
  322. package/dist/runtime/scenario-runner.d.ts.map +0 -1
  323. package/dist/runtime/scenario-runner.js +0 -274
  324. package/dist/runtime/scenario-runner.js.map +0 -1
  325. package/dist/runtime/scenario-state.d.ts +0 -55
  326. package/dist/runtime/scenario-state.d.ts.map +0 -1
  327. package/dist/runtime/scenario-state.js +0 -128
  328. package/dist/runtime/scenario-state.js.map +0 -1
  329. package/dist/runtime/step-execution.d.ts +0 -27
  330. package/dist/runtime/step-execution.d.ts.map +0 -1
  331. package/dist/runtime/step-execution.js +0 -143
  332. package/dist/runtime/step-execution.js.map +0 -1
  333. package/dist/runtime/text.d.ts +0 -10
  334. package/dist/runtime/text.d.ts.map +0 -1
  335. package/dist/runtime/text.js +0 -25
  336. package/dist/runtime/text.js.map +0 -1
  337. package/dist/runtime/types.d.ts +0 -53
  338. package/dist/runtime/types.d.ts.map +0 -1
  339. package/dist/runtime/types.js +0 -2
  340. package/dist/runtime/types.js.map +0 -1
  341. package/dist/runtime/usage-tracker.d.ts +0 -37
  342. package/dist/runtime/usage-tracker.d.ts.map +0 -1
  343. package/dist/runtime/usage-tracker.js +0 -110
  344. package/dist/runtime/usage-tracker.js.map +0 -1
  345. package/dist/tools/define-agent-tool.d.ts +0 -20
  346. package/dist/tools/define-agent-tool.d.ts.map +0 -1
  347. package/dist/tools/define-agent-tool.js +0 -30
  348. package/dist/tools/define-agent-tool.js.map +0 -1
  349. package/dist/tools/dispatcher.d.ts +0 -19
  350. package/dist/tools/dispatcher.d.ts.map +0 -1
  351. package/dist/tools/dispatcher.js +0 -91
  352. package/dist/tools/dispatcher.js.map +0 -1
  353. package/dist/tools/loop-detector.d.ts +0 -27
  354. package/dist/tools/loop-detector.d.ts.map +0 -1
  355. package/dist/tools/loop-detector.js +0 -76
  356. package/dist/tools/loop-detector.js.map +0 -1
  357. package/dist/tools/registry.d.ts +0 -19
  358. package/dist/tools/registry.d.ts.map +0 -1
  359. package/dist/tools/registry.js +0 -54
  360. package/dist/tools/registry.js.map +0 -1
  361. package/dist/tools/step/result-tool.d.ts +0 -7
  362. package/dist/tools/step/result-tool.d.ts.map +0 -1
  363. package/dist/tools/step/result-tool.js +0 -34
  364. package/dist/tools/step/result-tool.js.map +0 -1
  365. package/dist/tools/tool-contract.d.ts +0 -3
  366. package/dist/tools/tool-contract.d.ts.map +0 -1
  367. package/dist/tools/tool-contract.js +0 -2
  368. package/dist/tools/tool-contract.js.map +0 -1
  369. package/dist/tools/types.d.ts +0 -210
  370. package/dist/tools/types.d.ts.map +0 -1
  371. package/dist/tools/types.js +0 -4
  372. package/dist/tools/types.js.map +0 -1
  373. package/docs/CLI.md +0 -59
  374. package/docs/CONFIGURATION.md +0 -105
  375. package/docs/DRIVERS.md +0 -79
  376. package/docs/EVIDENCE.md +0 -64
  377. package/schemas/checkmate-config.v1.json +0 -176
  378. package/schemas/describe-result.v1.json +0 -414
  379. package/schemas/driver-descriptor.v1.json +0 -66
  380. package/schemas/run-request.v1.json +0 -67
  381. package/schemas/run-result.v1.json +0 -333
  382. package/schemas/validation-result.v1.json +0 -86
@@ -1,72 +0,0 @@
1
- import { validateDriverSession } from '../drivers/loader.js';
2
- import { adaptDriverTool } from './driver-session.js';
3
- import { createStepResultTools } from '../tools/step/result-tool.js';
4
- import { ToolRegistry } from '../tools/registry.js';
5
- import { AiClient } from '../ai/client.js';
6
- import { ScenarioUsageTracker } from './usage-tracker.js';
7
- import { StepExecution } from './step-execution.js';
8
- import { createInvocationLogger } from '../logging/invocation-logger.js';
9
- import { silentLogger } from '../logging/types.js';
10
- import { DiagnosticSanitizer } from '../redaction/diagnostic-sanitizer.js';
11
- export class CheckmateRunner {
12
- options;
13
- config;
14
- toolRegistry;
15
- aiClient;
16
- usageTracker;
17
- diagnosticSanitizer;
18
- runtimeLogger;
19
- constructor(options) {
20
- this.options = options;
21
- const exactSecrets = [options.apiKey, ...(options.exactSecrets ?? [])];
22
- this.diagnosticSanitizer = new DiagnosticSanitizer(exactSecrets);
23
- this.runtimeLogger = createInvocationLogger(options.logger ?? silentLogger, this.diagnosticSanitizer);
24
- this.config = {
25
- model: options.modelEgress.provider.model,
26
- baseUrl: options.modelEgress.provider.baseUrl,
27
- reasoningEffort: options.modelEgress.provider.reasoningEffort,
28
- temperature: options.modelEgress.provider.temperature ?? 0,
29
- turnCap: options.limits.turnsPerStep,
30
- redact: options.modelEgress.textRedaction === 'on',
31
- toolChoice: 'required',
32
- maxRetries: options.limits.maxRetries,
33
- requestTimeout: options.limits.requestTimeoutMs,
34
- loopMaxRepetitions: options.limits.loopMaxRepetitions,
35
- rateLimitDelay: 0,
36
- logLevel: options.logLevel ?? 'off',
37
- };
38
- this.usageTracker = options.usageTracker ?? new ScenarioUsageTracker(options.limits.budgetTokens);
39
- this.toolRegistry = new ToolRegistry({ allowedTools: options.allowedTools });
40
- this.toolRegistry.register(createStepResultTools());
41
- const tools = validateDriverSession(options.session, options.descriptor, options.allowedTools);
42
- this.toolRegistry.register(tools.map((tool) => adaptDriverTool(options.driverId, tool)));
43
- this.aiClient =
44
- options.aiClient ??
45
- new AiClient({
46
- config: this.config,
47
- toolRegistry: this.toolRegistry,
48
- apiKey: options.apiKey,
49
- modelEgress: options.modelEgress,
50
- exactSecrets,
51
- logger: this.runtimeLogger,
52
- });
53
- }
54
- async teardown() { }
55
- async run(step, control) {
56
- return new StepExecution({
57
- config: this.config,
58
- aiClient: this.aiClient,
59
- toolRegistry: this.toolRegistry,
60
- driverSession: this.options.session,
61
- usageTracker: this.usageTracker,
62
- driverId: this.options.driverId,
63
- redact: this.config.redact,
64
- diagnosticSanitizer: this.diagnosticSanitizer,
65
- logger: this.runtimeLogger,
66
- }).run(step, control);
67
- }
68
- }
69
- export function createDriverRunner(options) {
70
- return new CheckmateRunner(options);
71
- }
72
- //# sourceMappingURL=runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runtime/runner.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- export type ControlExpirationReason = 'step-timeout' | 'scenario-timeout' | 'interrupted';
2
- export type ControlPoll = {
3
- expired: false;
4
- } | {
5
- expired: true;
6
- reason: ControlExpirationReason;
7
- };
8
- export type StepControl = Readonly<{
9
- signal: AbortSignal;
10
- deadline: number;
11
- now(): number;
12
- poll(): ControlPoll;
13
- dispose(): void;
14
- }>;
15
- export type ScenarioControlOptions = Readonly<{
16
- timeoutMs: number;
17
- signal?: AbortSignal;
18
- now?: () => number;
19
- setTimer?: typeof setTimeout;
20
- clearTimer?: typeof clearTimeout;
21
- }>;
22
- export declare class ScenarioControl {
23
- readonly signal: AbortSignal;
24
- readonly interruptionSignal: AbortSignal;
25
- readonly deadline: number;
26
- private readonly controller;
27
- private readonly interruptionController;
28
- private readonly now;
29
- private readonly setTimer;
30
- private readonly clearTimer;
31
- private readonly timer;
32
- private readonly externalSignal?;
33
- private disposed;
34
- constructor(options: ScenarioControlOptions);
35
- poll(): ControlPoll;
36
- createStepControl(stepTimeoutMs: number): StepControl;
37
- dispose(): void;
38
- private readonly handleExternalAbort;
39
- }
40
- //# sourceMappingURL=scenario-control.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-control.d.ts","sourceRoot":"","sources":["../../src/runtime/scenario-control.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,cAAc,GAAG,kBAAkB,GAAG,aAAa,CAAA;AAEzF,MAAM,MAAM,WAAW,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAA;CAAE,CAAA;AAEjG,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IAClC,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,IAAI,MAAM,CAAA;IACb,IAAI,IAAI,WAAW,CAAA;IACnB,OAAO,IAAI,IAAI,CAAA;CACf,CAAC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,UAAU,CAAA;IAC5B,UAAU,CAAC,EAAE,OAAO,YAAY,CAAA;CAChC,CAAC,CAAA;AAEF,qBAAa,eAAe;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAwB;IAC/D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAa;IAC7C,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,OAAO,EAAE,sBAAsB;IAgB3C,IAAI,IAAI,WAAW;IAYnB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW;IAuCrD,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAGnC;CACD"}
@@ -1,94 +0,0 @@
1
- export class ScenarioControl {
2
- signal;
3
- interruptionSignal;
4
- deadline;
5
- controller = new AbortController();
6
- interruptionController = new AbortController();
7
- now;
8
- setTimer;
9
- clearTimer;
10
- timer;
11
- externalSignal;
12
- disposed = false;
13
- constructor(options) {
14
- if (!Number.isFinite(options.timeoutMs) || options.timeoutMs < 0) {
15
- throw new Error('Scenario timeout must be a non-negative finite number');
16
- }
17
- this.now = options.now ?? Date.now;
18
- this.setTimer = options.setTimer ?? setTimeout;
19
- this.clearTimer = options.clearTimer ?? clearTimeout;
20
- this.deadline = this.now() + options.timeoutMs;
21
- this.signal = this.controller.signal;
22
- this.interruptionSignal = this.interruptionController.signal;
23
- this.externalSignal = options.signal;
24
- if (options.signal?.aborted)
25
- this.handleExternalAbort();
26
- else
27
- options.signal?.addEventListener('abort', this.handleExternalAbort, { once: true });
28
- this.timer = this.setTimer(() => this.controller.abort('scenario-timeout'), options.timeoutMs);
29
- }
30
- poll() {
31
- if (this.externalSignal?.aborted || this.interruptionSignal.aborted) {
32
- this.handleExternalAbort();
33
- return { expired: true, reason: 'interrupted' };
34
- }
35
- if (this.signal.reason === 'scenario-timeout' || this.now() >= this.deadline) {
36
- this.controller.abort('scenario-timeout');
37
- return { expired: true, reason: 'scenario-timeout' };
38
- }
39
- return { expired: false };
40
- }
41
- createStepControl(stepTimeoutMs) {
42
- if (!Number.isFinite(stepTimeoutMs) || stepTimeoutMs < 0) {
43
- throw new Error('Step timeout must be a non-negative finite number');
44
- }
45
- const now = this.now();
46
- const stepDeadline = now + stepTimeoutMs;
47
- const deadline = Math.min(stepDeadline, this.deadline);
48
- const owner = this.deadline <= stepDeadline ? 'scenario-timeout' : 'step-timeout';
49
- const controller = new AbortController();
50
- const onScenarioAbort = () => controller.abort(this.signal.reason ?? 'scenario-timeout');
51
- if (this.signal.aborted)
52
- onScenarioAbort();
53
- else
54
- this.signal.addEventListener('abort', onScenarioAbort, { once: true });
55
- const timer = this.setTimer(() => controller.abort(owner), Math.max(0, deadline - now));
56
- let disposed = false;
57
- return {
58
- signal: controller.signal,
59
- deadline,
60
- now: this.now,
61
- poll: () => {
62
- const scenario = this.poll();
63
- if (scenario.expired)
64
- return scenario;
65
- if (controller.signal.reason === 'interrupted')
66
- return { expired: true, reason: 'interrupted' };
67
- if (controller.signal.aborted || this.now() >= deadline) {
68
- controller.abort(owner);
69
- return { expired: true, reason: owner };
70
- }
71
- return { expired: false };
72
- },
73
- dispose: () => {
74
- if (disposed)
75
- return;
76
- disposed = true;
77
- this.clearTimer(timer);
78
- this.signal.removeEventListener('abort', onScenarioAbort);
79
- },
80
- };
81
- }
82
- dispose() {
83
- if (this.disposed)
84
- return;
85
- this.disposed = true;
86
- this.clearTimer(this.timer);
87
- this.externalSignal?.removeEventListener('abort', this.handleExternalAbort);
88
- }
89
- handleExternalAbort = () => {
90
- this.interruptionController.abort('interrupted');
91
- this.controller.abort('interrupted');
92
- };
93
- }
94
- //# sourceMappingURL=scenario-control.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-control.js","sourceRoot":"","sources":["../../src/runtime/scenario-control.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- import type { CheckmateDriverV1, DriverEvidenceSink, StepIntent } from '../driver.js';
2
- import { type EvidenceStore } from '../evidence/store.js';
3
- import type { LogLevel } from '../logging/level-logger.js';
4
- import type { RuntimeLogger } from '../logging/types.js';
5
- import type { DiagnosticSanitizer } from '../redaction/diagnostic-sanitizer.js';
6
- import { type DriverCheckmateRunnerOptions } from './runner.js';
7
- import type { ScenarioControl } from './scenario-control.js';
8
- import type { ScenarioState } from './scenario-state.js';
9
- import type { InternalStepReport } from './types.js';
10
- import type { ScenarioUsageTracker } from './usage-tracker.js';
11
- export type ScenarioStepRunner = Readonly<{
12
- run(step: StepIntent, control: ReturnType<ScenarioControl['createStepControl']>): Promise<InternalStepReport>;
13
- teardown(): Promise<void>;
14
- }>;
15
- export type ScenarioRunnerFactory = (options: DriverCheckmateRunnerOptions) => ScenarioStepRunner;
16
- export type RunScenarioOptions = Readonly<{
17
- driver: CheckmateDriverV1;
18
- prepared: import('../api/prepare-run.js').PreparedRun;
19
- state: ScenarioState;
20
- control: ScenarioControl;
21
- store: EvidenceStore;
22
- usageTracker: ScenarioUsageTracker;
23
- secretValues: ReadonlyMap<string, string>;
24
- apiKey: string;
25
- exactSecrets: readonly string[];
26
- logger: RuntimeLogger;
27
- logLevel?: LogLevel;
28
- sanitizer: DiagnosticSanitizer;
29
- createRunner?: ScenarioRunnerFactory;
30
- now?: () => number;
31
- onCleanupStarted?: () => void;
32
- }>;
33
- export declare function runScenario(options: RunScenarioOptions): Promise<void>;
34
- export declare class EvidenceAttribution {
35
- private stepId;
36
- beginStep(stepId: string): void;
37
- endStep(stepId?: string): void;
38
- currentStep(): string | undefined;
39
- }
40
- export declare function createDriverEvidenceSink(store: EvidenceStore, attribution: EvidenceAttribution, logger: RuntimeLogger): DriverEvidenceSink;
41
- //# sourceMappingURL=scenario-runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-runner.d.ts","sourceRoot":"","sources":["../../src/runtime/scenario-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAqC,UAAU,EAAE,MAAM,cAAc,CAAA;AACxH,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AAC/E,OAAO,EAAsB,KAAK,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAGnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACzC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAC7G,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,4BAA4B,KAAK,kBAAkB,CAAA;AAEjG,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACzC,MAAM,EAAE,iBAAiB,CAAA;IACzB,QAAQ,EAAE,OAAO,uBAAuB,EAAE,WAAW,CAAA;IACrD,KAAK,EAAE,aAAa,CAAA;IACpB,OAAO,EAAE,eAAe,CAAA;IACxB,KAAK,EAAE,aAAa,CAAA;IACpB,YAAY,EAAE,oBAAoB,CAAA;IAClC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IAC/B,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,EAAE,mBAAmB,CAAA;IAC9B,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;CAC7B,CAAC,CAAA;AAEF,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyH5E;AA8ID,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,MAAM,CAAoB;IAElC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI9B,WAAW,IAAI,MAAM,GAAG,SAAS;CAGjC;AAED,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,mBAAmB,EAChC,MAAM,EAAE,aAAa,GACnB,kBAAkB,CAcpB"}
@@ -1,274 +0,0 @@
1
- import { EvidenceCaptureError } from '../evidence/store.js';
2
- import { createDriverRunner } from './runner.js';
3
- import { awaitDriverBoundary, DriverBoundaryError } from './driver-boundary.js';
4
- import { adaptStepResult } from './result-adapter.js';
5
- export async function runScenario(options) {
6
- let session;
7
- let runner;
8
- const attribution = new EvidenceAttribution();
9
- const now = options.now ?? Date.now;
10
- try {
11
- session = await scenarioBoundary('driver-start', options.control, now, (signal) => options.driver.start({
12
- target: structuredClone(options.prepared.driver.target),
13
- settings: structuredClone(options.prepared.driver.settings),
14
- secrets: driverSecretReader(options.prepared.driver.secretBindings, options.secretValues),
15
- evidence: createDriverEvidenceSink(options.store, attribution, options.logger),
16
- logger: options.logger,
17
- signal,
18
- }));
19
- try {
20
- runner = (options.createRunner ?? createDriverRunner)({
21
- driverId: options.prepared.driver.id,
22
- descriptor: options.prepared.driver.descriptor,
23
- session,
24
- allowedTools: options.prepared.driver.allowedTools,
25
- modelEgress: options.prepared.modelEgress,
26
- limits: options.prepared.effectiveLimits,
27
- apiKey: options.apiKey,
28
- exactSecrets: options.exactSecrets,
29
- logger: options.logger,
30
- logLevel: options.logLevel ?? 'off',
31
- usageTracker: options.usageTracker,
32
- });
33
- }
34
- catch (error) {
35
- options.state.recordLifecycleFailure('driver-start-failed', diagnostic('driver.start-failed', '/driver', error, options.sanitizer));
36
- options.state.markNotStarted();
37
- return;
38
- }
39
- for (const [stepIndex, step] of options.prepared.request.scenario.steps.entries()) {
40
- const expired = options.control.poll();
41
- if (expired.expired) {
42
- options.state.recordLifecycleFailure(expired.reason, diagnostic('scenario.expired', '', expired.reason, options.sanitizer));
43
- options.state.markNotStarted();
44
- break;
45
- }
46
- const intent = { id: step.id, action: step.action, expect: step.expect };
47
- const checkpoint = options.usageTracker.beginStep();
48
- const startedAt = now();
49
- const stepControl = options.control.createStepControl(options.prepared.effectiveLimits.stepTimeoutMs);
50
- let report;
51
- let finalizationStarted = false;
52
- try {
53
- attribution.beginStep(step.id);
54
- try {
55
- report = await runner.run(intent, stepControl);
56
- }
57
- finally {
58
- attribution.endStep(step.id);
59
- }
60
- const adapted = adaptStepResult(report);
61
- for (const candidate of adapted.evidence) {
62
- try {
63
- options.store.captureHarnessStep(candidate);
64
- }
65
- catch (error) {
66
- options.store.recordCaptureFailure(candidate.kind, error);
67
- }
68
- }
69
- finalizationStarted = true;
70
- await options.store.finalizeStep(step.id, adapted.result.status);
71
- options.state.recordStep(adapted.result, report.diagnostics);
72
- }
73
- catch (error) {
74
- const failure = internalErrorStep(intent, stepIndex, report, checkpoint, startedAt, now, options, error);
75
- if (!finalizationStarted) {
76
- finalizationStarted = true;
77
- try {
78
- await options.store.finalizeStep(step.id, 'failed');
79
- }
80
- catch (finalizationError) {
81
- failure.diagnostics.push(diagnostic('evidence.finalize-failed', '/evidence', finalizationError, options.sanitizer));
82
- }
83
- }
84
- options.state.recordStep(failure.result, failure.diagnostics);
85
- }
86
- finally {
87
- attribution.endStep(step.id);
88
- stepControl.dispose();
89
- }
90
- await options.store.replaceCheckpoint({ completedSteps: options.state.completedSteps });
91
- const recorded = options.state.completedSteps.at(-1);
92
- if (recorded.status === 'failed') {
93
- options.state.blockRemaining(step.id);
94
- break;
95
- }
96
- }
97
- }
98
- catch (error) {
99
- const expiration = expirationReason(error, options.control);
100
- options.state.recordLifecycleFailure(expiration ?? (session ? 'internal-error' : 'driver-start-failed'), diagnostic(session ? 'scenario.internal-error' : 'driver.start-failed', session ? '' : '/driver', error, options.sanitizer));
101
- options.state.markNotStarted();
102
- }
103
- finally {
104
- attribution.endStep();
105
- latchInterruption(options);
106
- if (session) {
107
- options.onCleanupStarted?.();
108
- await cleanup(runner, session, options, now);
109
- }
110
- latchInterruption(options);
111
- }
112
- }
113
- async function cleanup(runner, session, options, now) {
114
- const cleanupController = new AbortController();
115
- const boundaryController = new AbortController();
116
- const onInterruption = () => cleanupController.abort('interrupted');
117
- if (options.control.interruptionSignal.aborted)
118
- onInterruption();
119
- else
120
- options.control.interruptionSignal.addEventListener('abort', onInterruption, { once: true });
121
- const deadline = now() + options.prepared.effectiveLimits.cleanupTimeoutMs;
122
- const runnerTeardown = runner ? startCleanupCall(() => runner.teardown()) : undefined;
123
- if (now() >= deadline) {
124
- cleanupController.abort('driver-teardown-failed');
125
- boundaryController.abort('driver-teardown-failed');
126
- }
127
- const sessionClose = startCleanupCall(() => session.close({ signal: cleanupController.signal }));
128
- if (now() >= deadline) {
129
- cleanupController.abort('driver-teardown-failed');
130
- boundaryController.abort('driver-teardown-failed');
131
- }
132
- const operations = [
133
- ...(runnerTeardown
134
- ? [boundedCleanup('runner-teardown', runnerTeardown, boundaryController, deadline, now)]
135
- : []),
136
- boundedCleanup('driver-close', sessionClose, boundaryController, deadline, now),
137
- ];
138
- try {
139
- const results = await Promise.allSettled(operations);
140
- const failures = results.filter((result) => result.status === 'rejected');
141
- if (failures.length === 0)
142
- return;
143
- cleanupController.abort('driver-teardown-failed');
144
- options.state.recordCleanupFailure({
145
- code: 'driver.teardown-failed',
146
- path: '/driver',
147
- message: failures.map((failure) => options.sanitizer.error(failure.reason)).join('; '),
148
- });
149
- }
150
- finally {
151
- options.control.interruptionSignal.removeEventListener('abort', onInterruption);
152
- }
153
- }
154
- function startCleanupCall(call) {
155
- try {
156
- const operation = Promise.resolve(call());
157
- void operation.catch(() => undefined);
158
- return operation;
159
- }
160
- catch (error) {
161
- return Promise.reject(error);
162
- }
163
- }
164
- function boundedCleanup(operation, started, controller, deadline, now) {
165
- return awaitDriverBoundary({
166
- operation,
167
- signal: controller.signal,
168
- deadline,
169
- now,
170
- reason: () => 'interrupted',
171
- call: () => started,
172
- });
173
- }
174
- function scenarioBoundary(operation, control, now, call) {
175
- return awaitDriverBoundary({
176
- operation,
177
- signal: control.signal,
178
- deadline: control.deadline,
179
- now,
180
- reason: () => {
181
- const state = control.poll();
182
- return state.expired ? state.reason : 'scenario-timeout';
183
- },
184
- call,
185
- });
186
- }
187
- function internalErrorStep(step, stepIndex, report, checkpoint, startedAt, now, options, error) {
188
- const failure = diagnostic('scenario.internal-error', `/scenario/steps/${stepIndex}`, error, options.sanitizer);
189
- return {
190
- result: {
191
- id: step.id,
192
- status: 'failed',
193
- category: 'infra',
194
- reason: 'internal-error',
195
- actual: failure.message,
196
- turns: report?.turns ?? 0,
197
- durationMs: report?.durationMs ?? Math.max(0, now() - startedAt),
198
- usage: options.usageTracker.stepUsage(checkpoint),
199
- toolCalls: [],
200
- },
201
- diagnostics: [failure],
202
- };
203
- }
204
- function latchInterruption(options) {
205
- if (!options.control.interruptionSignal.aborted)
206
- return;
207
- options.state.latchInterruption({
208
- code: 'scenario.interrupted',
209
- path: '',
210
- message: 'Scenario execution was interrupted',
211
- });
212
- }
213
- function driverSecretReader(bindings, values) {
214
- return {
215
- read(slot) {
216
- if (!Object.hasOwn(bindings, slot))
217
- throw new Error(`Driver secret slot '${slot}' is not declared`);
218
- const binding = bindings[slot];
219
- const value = values.get(binding);
220
- if (value === undefined)
221
- throw new Error(`Driver secret binding '${binding}' is unavailable`);
222
- return value;
223
- },
224
- };
225
- }
226
- export class EvidenceAttribution {
227
- stepId;
228
- beginStep(stepId) {
229
- this.stepId = stepId;
230
- }
231
- endStep(stepId) {
232
- if (stepId === undefined || this.stepId === stepId)
233
- this.stepId = undefined;
234
- }
235
- currentStep() {
236
- return this.stepId;
237
- }
238
- }
239
- export function createDriverEvidenceSink(store, attribution, logger) {
240
- return {
241
- async capture(input) {
242
- try {
243
- store.captureDriver({ ...input, stepId: input.stepId ?? attribution.currentStep() });
244
- return { status: 'accepted' };
245
- }
246
- catch (error) {
247
- if (!isDiscardableCaptureError(error))
248
- throw error;
249
- const diagnostic = store.recordCaptureFailure(input.kind, error);
250
- logger.warn(diagnostic.message);
251
- return { status: 'discarded' };
252
- }
253
- },
254
- };
255
- }
256
- function isDiscardableCaptureError(error) {
257
- return (error instanceof EvidenceCaptureError &&
258
- [
259
- 'evidence.candidate-too-large',
260
- 'evidence.invocation-buffer-too-large',
261
- 'evidence.invalid-text',
262
- 'evidence.invalid-structured-content',
263
- ].includes(error.code));
264
- }
265
- function expirationReason(error, control) {
266
- if (error instanceof DriverBoundaryError && error.reason !== 'step-timeout')
267
- return error.reason;
268
- const state = control.poll();
269
- return state.expired && state.reason !== 'step-timeout' ? state.reason : undefined;
270
- }
271
- function diagnostic(code, path, error, sanitizer) {
272
- return { code, path, message: sanitizer.error(error) };
273
- }
274
- //# sourceMappingURL=scenario-runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-runner.js","sourceRoot":"","sources":["../../src/runtime/scenario-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAsB,MAAM,sBAAsB,CAAA;AAI/E,OAAO,EAAE,kBAAkB,EAAqC,MAAM,aAAa,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AA+BrD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC5D,IAAI,OAAkC,CAAA;IACtC,IAAI,MAAsC,CAAA;IAC1C,MAAM,WAAW,GAAG,IAAI,mBAAmB,EAAE,CAAA;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;IAEnC,IAAI,CAAC;QACJ,OAAO,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YACpB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;YACvD,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC3D,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC;YACzF,QAAQ,EAAE,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC;YAC9E,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM;SACN,CAAC,CACF,CAAA;QACD,IAAI,CAAC;YACJ,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,kBAAkB,CAAC,CAAC;gBACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACpC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU;gBAC9C,OAAO;gBACP,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY;gBAClD,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;gBACzC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,eAAe;gBACxC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;gBACnC,YAAY,EAAE,OAAO,CAAC,YAAY;aAClC,CAAC,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,sBAAsB,CACnC,qBAAqB,EACrB,UAAU,CAAC,qBAAqB,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CACtE,CAAA;YACD,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAA;YAC9B,OAAM;QACP,CAAC;QAED,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACnF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YACtC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,sBAAsB,CACnC,OAAO,CAAC,MAAM,EACd,UAAU,CAAC,kBAAkB,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CACrE,CAAA;gBACD,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAA;gBAC9B,MAAK;YACN,CAAC;YAED,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;YACxE,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,CAAA;YACnD,MAAM,SAAS,GAAG,GAAG,EAAE,CAAA;YACvB,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;YACrG,IAAI,MAAsC,CAAA;YAC1C,IAAI,mBAAmB,GAAG,KAAK,CAAA;YAC/B,IAAI,CAAC;gBACJ,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAC9B,IAAI,CAAC;oBACJ,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;gBAC/C,CAAC;wBAAS,CAAC;oBACV,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAC7B,CAAC;gBACD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;gBACvC,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC1C,IAAI,CAAC;wBACJ,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;oBAC5C,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;oBAC1D,CAAC;gBACF,CAAC;gBACD,mBAAmB,GAAG,IAAI,CAAA;gBAC1B,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBAChE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;YAC7D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;gBACxG,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC1B,mBAAmB,GAAG,IAAI,CAAA;oBAC1B,IAAI,CAAC;wBACJ,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;oBACpD,CAAC;oBAAC,OAAO,iBAAiB,EAAE,CAAC;wBAC5B,OAAO,CAAC,WAAW,CAAC,IAAI,CACvB,UAAU,CAAC,0BAA0B,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,CAAC,SAAS,CAAC,CACzF,CAAA;oBACF,CAAC;gBACF,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;YAC9D,CAAC;oBAAS,CAAC;gBACV,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAC5B,WAAW,CAAC,OAAO,EAAE,CAAA;YACtB,CAAC;YAED,MAAM,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAA;YACvF,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;YACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAClC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACrC,MAAK;YACN,CAAC;QACF,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;QAC3D,OAAO,CAAC,KAAK,CAAC,sBAAsB,CACnC,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAClE,UAAU,CACT,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,qBAAqB,EAC3D,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACxB,KAAK,EACL,OAAO,CAAC,SAAS,CACjB,CACD,CAAA;QACD,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAA;IAC/B,CAAC;YAAS,CAAC;QACV,WAAW,CAAC,OAAO,EAAE,CAAA;QACrB,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAA;YAC5B,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;QAC7C,CAAC;QACD,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC3B,CAAC;AACF,CAAC;AAED,KAAK,UAAU,OAAO,CACrB,MAAsC,EACtC,OAAsB,EACtB,OAA2B,EAC3B,GAAiB;IAEjB,MAAM,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAA;IAC/C,MAAM,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAA;IAChD,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACnE,IAAI,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO;QAAE,cAAc,EAAE,CAAA;;QAC3D,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACjG,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,gBAAgB,CAAA;IAC1E,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACrF,IAAI,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;QACvB,iBAAiB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACjD,kBAAkB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAChG,IAAI,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;QACvB,iBAAiB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACjD,kBAAkB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,UAAU,GAAG;QAClB,GAAG,CAAC,cAAc;YACjB,CAAC,CAAC,CAAC,cAAc,CAAC,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YACxF,CAAC,CAAC,EAAE,CAAC;QACN,cAAc,CAAC,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,CAAC;KAC/E,CAAA;IACD,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAmC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAA;QAC1G,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QACjC,iBAAiB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACjD,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAClC,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SACtF,CAAC,CAAA;IACH,CAAC;YAAS,CAAC;QACV,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;IAChF,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAsC;IAC/D,IAAI,CAAC;QACJ,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QACzC,KAAK,SAAS,CAAC,KAAK,CAAC,GAAS,EAAE,CAAC,SAAS,CAAC,CAAA;QAC3C,OAAO,SAAS,CAAA;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CACtB,SAAiB,EACjB,OAAyB,EACzB,UAA2B,EAC3B,QAAgB,EAChB,GAAiB;IAEjB,OAAO,mBAAmB,CAAC;QAC1B,SAAS;QACT,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,QAAQ;QACR,GAAG;QACH,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa;QAC3B,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO;KACnB,CAAC,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CACxB,SAAiB,EACjB,OAAwB,EACxB,GAAiB,EACjB,IAA6C;IAE7C,OAAO,mBAAmB,CAAC;QAC1B,SAAS;QACT,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG;QACH,MAAM,EAAE,GAAG,EAAE;YACZ,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;YAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAA;QACzD,CAAC;QACD,IAAI;KACJ,CAAC,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CACzB,IAAgB,EAChB,SAAiB,EACjB,MAAsC,EACtC,UAAyD,EACzD,SAAiB,EACjB,GAAiB,EACjB,OAA2B,EAC3B,KAAc;IAEd,MAAM,OAAO,GAAG,UAAU,CAAC,yBAAyB,EAAE,mBAAmB,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC/G,OAAO;QACN,MAAM,EAAE;YACP,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,OAAO,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;YACzB,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;YAChE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC;YACjD,SAAS,EAAE,EAAE;SACb;QACD,WAAW,EAAE,CAAC,OAAO,CAAC;KACtB,CAAA;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA2B;IACrD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO;QAAE,OAAM;IACvD,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC/B,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,oCAAoC;KAC7C,CAAC,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAC1B,QAA0C,EAC1C,MAAmC;IAEnC,OAAO;QACN,IAAI,CAAC,IAAI;YACR,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,mBAAmB,CAAC,CAAA;YACnG,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACjC,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,kBAAkB,CAAC,CAAA;YAC7F,OAAO,KAAK,CAAA;QACb,CAAC;KACD,CAAA;AACF,CAAC;AAED,MAAM,OAAO,mBAAmB;IACvB,MAAM,CAAoB;IAElC,SAAS,CAAC,MAAc;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACrB,CAAC;IAED,OAAO,CAAC,MAAe;QACtB,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;IAC5E,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;CACD;AAED,MAAM,UAAU,wBAAwB,CACvC,KAAoB,EACpB,WAAgC,EAChC,MAAqB;IAErB,OAAO;QACN,KAAK,CAAC,OAAO,CAAC,KAAK;YAClB,IAAI,CAAC;gBACJ,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;gBACpF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAA;gBAClD,MAAM,UAAU,GAAG,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAChE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;gBAC/B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;YAC/B,CAAC;QACF,CAAC;KACD,CAAA;AACF,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc;IAChD,OAAO,CACN,KAAK,YAAY,oBAAoB;QACrC;YACC,8BAA8B;YAC9B,sCAAsC;YACtC,uBAAuB;YACvB,qCAAqC;SACrC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CACtB,CAAA;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,OAAwB;IACjE,IAAI,KAAK,YAAY,mBAAmB,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc;QAAE,OAAO,KAAK,CAAC,MAAM,CAAA;IAChG,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;IAC5B,OAAO,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AACnF,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,IAAY,EAAE,KAAc,EAAE,SAA8B;IAC7F,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAA;AACvD,CAAC"}
@@ -1,55 +0,0 @@
1
- import type { Diagnostic, EffectiveLimits, EvidenceReference, ExecutedStepResult, ExecutionResultV1, RunReason, RunRequestV1, Usage } from '../contracts/types.js';
2
- import type { RunIdentity } from '../evidence/layout.js';
3
- type Failure = Readonly<{
4
- reason: Exclude<RunReason, 'scenario-complete'>;
5
- diagnostic?: Diagnostic;
6
- }>;
7
- export type ScenarioStateOptions = Readonly<{
8
- request: RunRequestV1;
9
- identity: RunIdentity;
10
- driver: {
11
- id: string;
12
- contractVersion: 1;
13
- };
14
- policy: {
15
- id: string;
16
- effectiveLimits: EffectiveLimits;
17
- };
18
- now?: () => number;
19
- }>;
20
- export declare class ScenarioState {
21
- private readonly request;
22
- private readonly identity;
23
- private readonly driver;
24
- private readonly policy;
25
- private readonly now;
26
- private readonly startedAtMs;
27
- private readonly results;
28
- private readonly diagnostics;
29
- private readonly lifecycleFailures;
30
- private cleanupFailure;
31
- private mutation;
32
- constructor(options: ScenarioStateOptions);
33
- get completedSteps(): readonly ExecutedStepResult[];
34
- get hasFailure(): boolean;
35
- markMutationPossible(): void;
36
- recordStep(result: ExecutedStepResult, diagnostics?: readonly Diagnostic[]): void;
37
- blockRemaining(blockedBy: string): void;
38
- markNotStarted(): void;
39
- recordLifecycleFailure(reason: Failure['reason'], diagnostic?: Diagnostic): void;
40
- latchInterruption(diagnostic?: Diagnostic): void;
41
- recordCleanupFailure(diagnostic: Diagnostic): void;
42
- recordDiagnostics(diagnostics: readonly Diagnostic[]): void;
43
- buildCandidateResult(input: {
44
- usage: Usage & {
45
- state: 'complete' | 'partial' | 'unavailable';
46
- };
47
- evidence: {
48
- state: 'complete' | 'partial';
49
- references: readonly EvidenceReference[];
50
- };
51
- }): ExecutionResultV1;
52
- private selectFailure;
53
- }
54
- export {};
55
- //# sourceMappingURL=scenario-state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-state.d.ts","sourceRoot":"","sources":["../../src/runtime/scenario-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAEjB,SAAS,EACT,YAAY,EACZ,KAAK,EACL,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAExD,KAAK,OAAO,GAAG,QAAQ,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;IAC/C,UAAU,CAAC,EAAE,UAAU,CAAA;CACvB,CAAC,CAAA;AAEF,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC3C,OAAO,EAAE,YAAY,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IACrB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,CAAC,CAAA;KAAE,CAAA;IAC1C,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,eAAe,CAAA;KAAE,CAAA;IACxD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAClB,CAAC,CAAA;AAEF,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkD;IACzE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmD;IAC3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgB;IAClD,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAuD;gBAE3D,OAAO,EAAE,oBAAoB;IASzC,IAAI,cAAc,IAAI,SAAS,kBAAkB,EAAE,CAElD;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,oBAAoB,IAAI,IAAI;IAI5B,UAAU,CAAC,MAAM,EAAE,kBAAkB,EAAE,WAAW,GAAE,SAAS,UAAU,EAAO,GAAG,IAAI;IASrF,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IASvC,cAAc,IAAI,IAAI;IAMtB,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;IAOhF,iBAAiB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;IAIhD,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAKlD,iBAAiB,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI;IAI3D,oBAAoB,CAAC,KAAK,EAAE;QAC3B,KAAK,EAAE,KAAK,GAAG;YAAE,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,CAAA;SAAE,CAAA;QAChE,QAAQ,EAAE;YAAE,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC;YAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAA;SAAE,CAAA;KACrF,GAAG,iBAAiB;IA2BrB,OAAO,CAAC,aAAa;CAgBrB"}