@probelabs/visor 0.1.106 → 0.1.107

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 (450) hide show
  1. package/README.md +65 -2
  2. package/action.yml +1 -1
  3. package/defaults/code-refiner.yaml +114 -0
  4. package/defaults/{.visor.yaml → code-review.yaml} +35 -226
  5. package/defaults/override.yaml +52 -0
  6. package/defaults/task-refinement.yaml +620 -0
  7. package/defaults/visor.tests.yaml +674 -0
  8. package/defaults/visor.yaml +482 -0
  9. package/dist/663.index.js +2 -3
  10. package/dist/80.index.js +2 -3
  11. package/dist/action-cli-bridge.d.ts +11 -82
  12. package/dist/action-cli-bridge.d.ts.map +1 -1
  13. package/dist/ai-review-service.d.ts +15 -0
  14. package/dist/ai-review-service.d.ts.map +1 -1
  15. package/dist/check-execution-engine.d.ts +19 -331
  16. package/dist/check-execution-engine.d.ts.map +1 -1
  17. package/dist/cli-main.d.ts.map +1 -1
  18. package/dist/cli.d.ts +0 -1
  19. package/dist/cli.d.ts.map +1 -1
  20. package/dist/config.d.ts +16 -0
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/cron-scheduler.d.ts +3 -3
  23. package/dist/cron-scheduler.d.ts.map +1 -1
  24. package/dist/debug-visualizer/ws-server.d.ts.map +1 -1
  25. package/dist/defaults/code-refiner.yaml +114 -0
  26. package/dist/defaults/{.visor.yaml → code-review.yaml} +35 -226
  27. package/dist/defaults/override.yaml +52 -0
  28. package/dist/defaults/task-refinement.yaml +620 -0
  29. package/dist/defaults/visor.tests.yaml +674 -0
  30. package/dist/defaults/visor.yaml +482 -0
  31. package/dist/docs/DEPLOYMENT.md +118 -0
  32. package/dist/docs/GITHUB_CHECKS.md +280 -0
  33. package/dist/docs/NPM_USAGE.md +208 -0
  34. package/dist/docs/action-reference.md +19 -0
  35. package/dist/docs/advanced-ai.md +178 -0
  36. package/dist/docs/ai-configuration.md +468 -0
  37. package/dist/docs/author-permissions.md +610 -0
  38. package/dist/docs/ci-cli-mode.md +34 -0
  39. package/dist/docs/claude-code.md +74 -0
  40. package/dist/docs/command-provider.md +559 -0
  41. package/dist/docs/commands.md +8 -0
  42. package/dist/docs/configuration.md +303 -0
  43. package/dist/docs/custom-tools.md +424 -0
  44. package/dist/docs/dashboards/README.md +23 -0
  45. package/dist/docs/dashboards/grafana-visor-diagrams.json +20 -0
  46. package/dist/docs/dashboards/grafana-visor-overview.json +33 -0
  47. package/dist/docs/debug-visualizer-progress.md +572 -0
  48. package/dist/docs/debug-visualizer-rfc.md +691 -0
  49. package/dist/docs/debug-visualizer.md +114 -0
  50. package/dist/docs/debugging.md +636 -0
  51. package/dist/docs/default-output-schema.md +28 -0
  52. package/dist/docs/dependencies.md +369 -0
  53. package/dist/docs/dev-playbook.md +9 -0
  54. package/dist/docs/engine-state-machine-plan.md +333 -0
  55. package/dist/docs/event-driven-github-integration-rfc.md +743 -0
  56. package/dist/docs/event-triggers.md +292 -0
  57. package/dist/docs/execution-statistics-rfc.md +290 -0
  58. package/dist/docs/fact-validator-gap-analysis.md +178 -0
  59. package/dist/docs/fact-validator-implementation-plan.md +1235 -0
  60. package/dist/docs/fail-if.md +95 -0
  61. package/dist/docs/failure-conditions-implementation.md +271 -0
  62. package/dist/docs/failure-conditions-schema.md +173 -0
  63. package/dist/docs/failure-routing-rfc.md +193 -0
  64. package/dist/docs/failure-routing.md +507 -0
  65. package/dist/docs/foreach-dependency-propagation.md +473 -0
  66. package/dist/docs/github-ops.md +89 -0
  67. package/dist/docs/goto-forward-run-plan.md +113 -0
  68. package/dist/docs/guides/criticality-modes.md +332 -0
  69. package/dist/docs/guides/fault-management-and-contracts.md +738 -0
  70. package/dist/docs/guides/workflow-style-guide.md +224 -0
  71. package/dist/docs/http.md +299 -0
  72. package/dist/docs/human-input-provider.md +372 -0
  73. package/dist/docs/limits.md +64 -0
  74. package/dist/docs/liquid-templates.md +347 -0
  75. package/dist/docs/loop-routing-refactor.md +89 -0
  76. package/dist/docs/mcp-provider.md +557 -0
  77. package/dist/docs/mcp.md +124 -0
  78. package/dist/docs/memory.md +903 -0
  79. package/dist/docs/observability.md +12 -0
  80. package/dist/docs/output-formats.md +20 -0
  81. package/dist/docs/output-formatting.md +29 -0
  82. package/dist/docs/output-history.md +383 -0
  83. package/dist/docs/performance.md +6 -0
  84. package/dist/docs/pluggable.md +124 -0
  85. package/dist/docs/proposals/snapshot-scope-execution.md +236 -0
  86. package/dist/docs/recipes.md +21 -0
  87. package/dist/docs/roadmap/criticality-implementation-tasks.md +92 -0
  88. package/dist/docs/schema-next-pr.md +10 -0
  89. package/dist/docs/schema-templates.md +68 -0
  90. package/dist/docs/script.md +34 -0
  91. package/dist/docs/sdk.md +222 -0
  92. package/dist/docs/security.md +7 -0
  93. package/dist/docs/suppressions.md +89 -0
  94. package/dist/docs/tag-filtering.md +258 -0
  95. package/dist/docs/telemetry-setup.md +119 -0
  96. package/dist/docs/telemetry-tracing-rfc.md +275 -0
  97. package/dist/docs/test-framework-rfc.md +680 -0
  98. package/dist/docs/testing/assertions.md +85 -0
  99. package/dist/docs/testing/ci.md +44 -0
  100. package/dist/docs/testing/cli.md +41 -0
  101. package/dist/docs/testing/cookbook.md +172 -0
  102. package/dist/docs/testing/dsl-reference.md +199 -0
  103. package/dist/docs/testing/fixtures-and-mocks.md +91 -0
  104. package/dist/docs/testing/flows.md +92 -0
  105. package/dist/docs/testing/getting-started.md +93 -0
  106. package/dist/docs/testing/troubleshooting.md +55 -0
  107. package/dist/docs/timeouts.md +50 -0
  108. package/dist/docs/troubleshooting.md +7 -0
  109. package/dist/docs/visor-sdk-rfc.md +186 -0
  110. package/dist/docs/workflows.md +569 -0
  111. package/dist/engine/on-finish/orchestrator.d.ts +19 -0
  112. package/dist/engine/on-finish/orchestrator.d.ts.map +1 -0
  113. package/dist/engine/on-finish/utils.d.ts +44 -0
  114. package/dist/engine/on-finish/utils.d.ts.map +1 -0
  115. package/dist/event-bus/event-bus.d.ts +13 -0
  116. package/dist/event-bus/event-bus.d.ts.map +1 -0
  117. package/dist/event-bus/types.d.ts +57 -0
  118. package/dist/event-bus/types.d.ts.map +1 -0
  119. package/dist/examples/.claude/agents/code-reviewer.md +69 -0
  120. package/dist/examples/.mcp.json +34 -0
  121. package/dist/examples/CALCULATOR-SDK.md +364 -0
  122. package/dist/examples/README.md +384 -0
  123. package/dist/examples/ai-retry-fallback-config.yaml +180 -0
  124. package/dist/examples/ai-with-bash.yaml +126 -0
  125. package/dist/examples/ai-with-mcp.yaml +82 -0
  126. package/dist/examples/basic-human-input.yaml +15 -0
  127. package/dist/examples/bedrock-config.yaml +77 -0
  128. package/dist/examples/calculator-config.yaml +133 -0
  129. package/dist/examples/calculator-json-output-guide.md +311 -0
  130. package/dist/examples/calculator-sdk-automated.ts +340 -0
  131. package/dist/examples/calculator-sdk-example.ts +275 -0
  132. package/dist/examples/calculator-sdk-json.ts +331 -0
  133. package/dist/examples/calculator-sdk-real.ts +374 -0
  134. package/dist/examples/calculator-sdk-test.ts +148 -0
  135. package/dist/examples/claude-code-config.yaml +191 -0
  136. package/dist/examples/cron-webhook-config.yaml +215 -0
  137. package/dist/examples/custom-template.liquid +57 -0
  138. package/dist/examples/custom-tools-example.yaml +281 -0
  139. package/dist/examples/enhanced-config.yaml +165 -0
  140. package/dist/examples/environments/visor.base.yaml +92 -0
  141. package/dist/examples/environments/visor.dev.yaml +33 -0
  142. package/dist/examples/environments/visor.prod.yaml +95 -0
  143. package/dist/examples/environments/visor.staging.yaml +46 -0
  144. package/dist/examples/fact-validator.yaml +361 -0
  145. package/dist/examples/fail-if-simple.yaml +90 -0
  146. package/dist/examples/failure-conditions-advanced.yaml +136 -0
  147. package/dist/examples/failure-conditions-basic.yaml +48 -0
  148. package/dist/examples/failure-conditions-github-style.yaml +119 -0
  149. package/dist/examples/failure-conditions-migration.yaml +74 -0
  150. package/dist/examples/for-loop-example.yaml +176 -0
  151. package/dist/examples/forEach-example.yaml +120 -0
  152. package/dist/examples/github-workflow-with-tags.yml +163 -0
  153. package/dist/examples/http-integration-config.yaml +240 -0
  154. package/dist/examples/https-server-config.yaml +209 -0
  155. package/dist/examples/human-input-example.yaml +63 -0
  156. package/dist/examples/if-conditions.yaml +173 -0
  157. package/dist/examples/jira-simple-example.yaml +56 -0
  158. package/dist/examples/jira-single-issue-workflow.yaml +166 -0
  159. package/dist/examples/jira-workflow-mcp.yaml +182 -0
  160. package/dist/examples/mcp/analyzer.py +119 -0
  161. package/dist/examples/mcp-provider-example.yaml +301 -0
  162. package/dist/examples/memory-counter.yaml +99 -0
  163. package/dist/examples/memory-error-collection.yaml +104 -0
  164. package/dist/examples/memory-exec-js.yaml +247 -0
  165. package/dist/examples/memory-namespace-isolation.yaml +184 -0
  166. package/dist/examples/memory-retry-counter.yaml +65 -0
  167. package/dist/examples/memory-state-machine.yaml +170 -0
  168. package/dist/examples/outputs-raw-basic.yaml +26 -0
  169. package/dist/examples/project-with-tools.yaml +174 -0
  170. package/dist/examples/prompts/architecture-analysis.liquid +116 -0
  171. package/dist/examples/prompts/security-comprehensive.liquid +107 -0
  172. package/dist/examples/quick-start-tags.yaml +53 -0
  173. package/dist/examples/routing-basic.yaml +35 -0
  174. package/dist/examples/routing-dynamic-js.yaml +46 -0
  175. package/dist/examples/routing-foreach.yaml +34 -0
  176. package/dist/examples/routing-goto-event.yaml +34 -0
  177. package/dist/examples/routing-on-success.yaml +25 -0
  178. package/dist/examples/run-calculator-demo.sh +71 -0
  179. package/dist/examples/sdk-basic.mjs +10 -0
  180. package/dist/examples/sdk-cjs.cjs +10 -0
  181. package/dist/examples/sdk-comprehensive.mjs +175 -0
  182. package/dist/examples/sdk-manual-config.mjs +65 -0
  183. package/dist/examples/sdk-typescript.js +81 -0
  184. package/dist/examples/sdk-typescript.ts +92 -0
  185. package/dist/examples/session-reuse-config.yaml +151 -0
  186. package/dist/examples/templates/security-report.liquid +137 -0
  187. package/dist/examples/tools-library.yaml +281 -0
  188. package/dist/examples/transform-example.yaml +199 -0
  189. package/dist/examples/visor-with-tags.yaml +198 -0
  190. package/dist/examples/webhook-pipeline-config.yaml +218 -0
  191. package/dist/examples/workflows/calculator-workflow.yaml +163 -0
  192. package/dist/examples/workflows/code-quality.yaml +222 -0
  193. package/dist/examples/workflows/quick-pr-check.yaml +90 -0
  194. package/dist/examples/workflows/workflow-composition-example.yaml +130 -0
  195. package/dist/failure-condition-evaluator.d.ts +1 -0
  196. package/dist/failure-condition-evaluator.d.ts.map +1 -1
  197. package/dist/frontends/github-frontend.d.ts +38 -0
  198. package/dist/frontends/github-frontend.d.ts.map +1 -0
  199. package/dist/frontends/host.d.ts +43 -0
  200. package/dist/frontends/host.d.ts.map +1 -0
  201. package/dist/frontends/ndjson-sink.d.ts +12 -0
  202. package/dist/frontends/ndjson-sink.d.ts.map +1 -0
  203. package/dist/generated/config-schema.d.ts +564 -22
  204. package/dist/generated/config-schema.d.ts.map +1 -1
  205. package/dist/generated/config-schema.json +612 -24
  206. package/dist/github-check-service.d.ts +4 -6
  207. package/dist/github-check-service.d.ts.map +1 -1
  208. package/dist/github-comments.d.ts +0 -4
  209. package/dist/github-comments.d.ts.map +1 -1
  210. package/dist/index.d.ts.map +1 -1
  211. package/dist/index.js +70335 -62514
  212. package/dist/liquid-extensions.d.ts.map +1 -1
  213. package/dist/logger.d.ts +1 -0
  214. package/dist/logger.d.ts.map +1 -1
  215. package/dist/memory-store.d.ts +6 -0
  216. package/dist/memory-store.d.ts.map +1 -1
  217. package/dist/output/assistant-json/template.liquid +0 -0
  218. package/dist/output/traces/run-2025-11-21T11-50-46-505Z.ndjson +138 -0
  219. package/dist/output/traces/run-2025-11-21T11-51-33-674Z.ndjson +839 -0
  220. package/dist/output-formatters.d.ts +1 -1
  221. package/dist/output-formatters.d.ts.map +1 -1
  222. package/dist/providers/ai-check-provider.d.ts.map +1 -1
  223. package/dist/providers/check-provider-registry.d.ts +6 -0
  224. package/dist/providers/check-provider-registry.d.ts.map +1 -1
  225. package/dist/providers/check-provider.interface.d.ts +34 -1
  226. package/dist/providers/check-provider.interface.d.ts.map +1 -1
  227. package/dist/providers/claude-code-check-provider.d.ts.map +1 -1
  228. package/dist/providers/command-check-provider.d.ts +1 -1
  229. package/dist/providers/command-check-provider.d.ts.map +1 -1
  230. package/dist/providers/custom-tool-executor.d.ts +61 -0
  231. package/dist/providers/custom-tool-executor.d.ts.map +1 -0
  232. package/dist/providers/github-ops-provider.d.ts.map +1 -1
  233. package/dist/providers/http-client-provider.d.ts +1 -4
  234. package/dist/providers/http-client-provider.d.ts.map +1 -1
  235. package/dist/providers/human-input-check-provider.d.ts +3 -0
  236. package/dist/providers/human-input-check-provider.d.ts.map +1 -1
  237. package/dist/providers/index.d.ts +1 -0
  238. package/dist/providers/index.d.ts.map +1 -1
  239. package/dist/providers/log-check-provider.d.ts +2 -5
  240. package/dist/providers/log-check-provider.d.ts.map +1 -1
  241. package/dist/providers/mcp-check-provider.d.ts +9 -3
  242. package/dist/providers/mcp-check-provider.d.ts.map +1 -1
  243. package/dist/providers/memory-check-provider.d.ts +2 -8
  244. package/dist/providers/memory-check-provider.d.ts.map +1 -1
  245. package/dist/providers/script-check-provider.d.ts +25 -0
  246. package/dist/providers/script-check-provider.d.ts.map +1 -0
  247. package/dist/providers/workflow-check-provider.d.ts +56 -0
  248. package/dist/providers/workflow-check-provider.d.ts.map +1 -0
  249. package/dist/reviewer.d.ts +2 -1
  250. package/dist/reviewer.d.ts.map +1 -1
  251. package/dist/sdk/chunk-37ZSCMFC.mjs +482 -0
  252. package/dist/sdk/chunk-37ZSCMFC.mjs.map +1 -0
  253. package/dist/sdk/chunk-6Y4YTKCF.mjs +197 -0
  254. package/dist/sdk/chunk-6Y4YTKCF.mjs.map +1 -0
  255. package/dist/sdk/chunk-CNX7V5JK.mjs +89 -0
  256. package/dist/sdk/chunk-CNX7V5JK.mjs.map +1 -0
  257. package/dist/sdk/chunk-IEO6CFLG.mjs +1215 -0
  258. package/dist/sdk/chunk-IEO6CFLG.mjs.map +1 -0
  259. package/dist/sdk/chunk-JEHPDJIF.mjs +223 -0
  260. package/dist/sdk/chunk-JEHPDJIF.mjs.map +1 -0
  261. package/dist/sdk/chunk-O5EZDNYL.mjs +274 -0
  262. package/dist/sdk/chunk-O5EZDNYL.mjs.map +1 -0
  263. package/dist/sdk/{chunk-TUTOLSFV.mjs → chunk-OOZITMRU.mjs} +1 -1
  264. package/dist/sdk/chunk-OOZITMRU.mjs.map +1 -0
  265. package/dist/sdk/chunk-OWUVOILT.mjs +557 -0
  266. package/dist/sdk/chunk-OWUVOILT.mjs.map +1 -0
  267. package/dist/sdk/chunk-OZJ263FM.mjs +986 -0
  268. package/dist/sdk/chunk-OZJ263FM.mjs.map +1 -0
  269. package/dist/sdk/chunk-PTL3K3PN.mjs +3128 -0
  270. package/dist/sdk/chunk-PTL3K3PN.mjs.map +1 -0
  271. package/dist/sdk/chunk-S2RUE2RG.mjs +145 -0
  272. package/dist/sdk/chunk-S2RUE2RG.mjs.map +1 -0
  273. package/dist/sdk/chunk-VMPLF6FT.mjs +127 -0
  274. package/dist/sdk/chunk-VMPLF6FT.mjs.map +1 -0
  275. package/dist/sdk/chunk-YSN4G6CI.mjs +146 -0
  276. package/dist/sdk/chunk-YSN4G6CI.mjs.map +1 -0
  277. package/dist/sdk/chunk-ZYAUYXSW.mjs +206 -0
  278. package/dist/sdk/chunk-ZYAUYXSW.mjs.map +1 -0
  279. package/dist/sdk/config-M4ZNO6NU.mjs +14 -0
  280. package/dist/sdk/config-merger-PX3WIT57.mjs +10 -0
  281. package/dist/sdk/event-bus-5BEVPQ6T.mjs +35 -0
  282. package/dist/sdk/event-bus-5BEVPQ6T.mjs.map +1 -0
  283. package/dist/sdk/failure-condition-evaluator-NBO5YRXW.mjs +16 -0
  284. package/dist/sdk/git-repository-analyzer-HJC4MYW4.mjs +458 -0
  285. package/dist/sdk/git-repository-analyzer-HJC4MYW4.mjs.map +1 -0
  286. package/dist/sdk/github-frontend-4AWRJT7D.mjs +1242 -0
  287. package/dist/sdk/github-frontend-4AWRJT7D.mjs.map +1 -0
  288. package/dist/sdk/host-7GBC3S7L.mjs +49 -0
  289. package/dist/sdk/host-7GBC3S7L.mjs.map +1 -0
  290. package/dist/sdk/{liquid-extensions-KVL4MKRH.mjs → liquid-extensions-C7EG3YKH.mjs} +7 -2
  291. package/dist/sdk/memory-store-GJACZC2A.mjs +11 -0
  292. package/dist/sdk/metrics-7PP3EJUH.mjs +29 -0
  293. package/dist/sdk/ndjson-sink-B4V4NTAQ.mjs +44 -0
  294. package/dist/sdk/ndjson-sink-B4V4NTAQ.mjs.map +1 -0
  295. package/dist/sdk/renderer-schema-6RF26VUS.mjs +50 -0
  296. package/dist/sdk/renderer-schema-6RF26VUS.mjs.map +1 -0
  297. package/dist/sdk/routing-RP56JTV2.mjs +23 -0
  298. package/dist/sdk/routing-RP56JTV2.mjs.map +1 -0
  299. package/dist/sdk/sdk.d.mts +326 -21
  300. package/dist/sdk/sdk.d.ts +326 -21
  301. package/dist/sdk/sdk.js +21403 -16366
  302. package/dist/sdk/sdk.js.map +1 -1
  303. package/dist/sdk/sdk.mjs +13510 -2096
  304. package/dist/sdk/sdk.mjs.map +1 -1
  305. package/dist/sdk/session-registry-N5FFYFTM.mjs +10 -0
  306. package/dist/sdk/session-registry-N5FFYFTM.mjs.map +1 -0
  307. package/dist/sdk/trace-helpers-VP6QYVBX.mjs +23 -0
  308. package/dist/sdk/trace-helpers-VP6QYVBX.mjs.map +1 -0
  309. package/dist/sdk/{tracer-init-WC75N5NW.mjs → tracer-init-WP4X46IF.mjs} +2 -2
  310. package/dist/sdk/tracer-init-WP4X46IF.mjs.map +1 -0
  311. package/dist/sdk/workflow-registry-2YIIXQCK.mjs +11 -0
  312. package/dist/sdk/workflow-registry-2YIIXQCK.mjs.map +1 -0
  313. package/dist/sdk.d.ts.map +1 -1
  314. package/dist/snapshot-store.d.ts +59 -0
  315. package/dist/snapshot-store.d.ts.map +1 -0
  316. package/dist/state-machine/context/build-engine-context.d.ts +9 -0
  317. package/dist/state-machine/context/build-engine-context.d.ts.map +1 -0
  318. package/dist/state-machine/dispatch/dependency-gating.d.ts +12 -0
  319. package/dist/state-machine/dispatch/dependency-gating.d.ts.map +1 -0
  320. package/dist/state-machine/dispatch/execution-invoker.d.ts +14 -0
  321. package/dist/state-machine/dispatch/execution-invoker.d.ts.map +1 -0
  322. package/dist/state-machine/dispatch/foreach-processor.d.ts +8 -0
  323. package/dist/state-machine/dispatch/foreach-processor.d.ts.map +1 -0
  324. package/dist/state-machine/dispatch/history-snapshot.d.ts +8 -0
  325. package/dist/state-machine/dispatch/history-snapshot.d.ts.map +1 -0
  326. package/dist/state-machine/dispatch/renderer-schema.d.ts +8 -0
  327. package/dist/state-machine/dispatch/renderer-schema.d.ts.map +1 -0
  328. package/dist/state-machine/dispatch/stats-manager.d.ts +15 -0
  329. package/dist/state-machine/dispatch/stats-manager.d.ts.map +1 -0
  330. package/dist/state-machine/dispatch/template-renderer.d.ts +7 -0
  331. package/dist/state-machine/dispatch/template-renderer.d.ts.map +1 -0
  332. package/dist/state-machine/execution/summary.d.ts +8 -0
  333. package/dist/state-machine/execution/summary.d.ts.map +1 -0
  334. package/dist/state-machine/runner.d.ts +73 -0
  335. package/dist/state-machine/runner.d.ts.map +1 -0
  336. package/dist/state-machine/states/check-running.d.ts +14 -0
  337. package/dist/state-machine/states/check-running.d.ts.map +1 -0
  338. package/dist/state-machine/states/completed.d.ts +12 -0
  339. package/dist/state-machine/states/completed.d.ts.map +1 -0
  340. package/dist/state-machine/states/error.d.ts +11 -0
  341. package/dist/state-machine/states/error.d.ts.map +1 -0
  342. package/dist/state-machine/states/init.d.ts +11 -0
  343. package/dist/state-machine/states/init.d.ts.map +1 -0
  344. package/dist/state-machine/states/level-dispatch.d.ts +17 -0
  345. package/dist/state-machine/states/level-dispatch.d.ts.map +1 -0
  346. package/dist/state-machine/states/plan-ready.d.ts +12 -0
  347. package/dist/state-machine/states/plan-ready.d.ts.map +1 -0
  348. package/dist/state-machine/states/routing.d.ts +52 -0
  349. package/dist/state-machine/states/routing.d.ts.map +1 -0
  350. package/dist/state-machine/states/wave-planning.d.ts +14 -0
  351. package/dist/state-machine/states/wave-planning.d.ts.map +1 -0
  352. package/dist/state-machine/workflow-projection.d.ts +47 -0
  353. package/dist/state-machine/workflow-projection.d.ts.map +1 -0
  354. package/dist/state-machine-execution-engine.d.ts +147 -0
  355. package/dist/state-machine-execution-engine.d.ts.map +1 -0
  356. package/dist/telemetry/opentelemetry.d.ts.map +1 -1
  357. package/dist/test-runner/assertions.d.ts +59 -0
  358. package/dist/test-runner/assertions.d.ts.map +1 -0
  359. package/dist/test-runner/core/environment.d.ts +8 -0
  360. package/dist/test-runner/core/environment.d.ts.map +1 -0
  361. package/dist/test-runner/core/fixture.d.ts +3 -0
  362. package/dist/test-runner/core/fixture.d.ts.map +1 -0
  363. package/dist/test-runner/core/flow-stage.d.ts +32 -0
  364. package/dist/test-runner/core/flow-stage.d.ts.map +1 -0
  365. package/dist/test-runner/core/mocks.d.ts +8 -0
  366. package/dist/test-runner/core/mocks.d.ts.map +1 -0
  367. package/dist/test-runner/core/test-execution-wrapper.d.ts +18 -0
  368. package/dist/test-runner/core/test-execution-wrapper.d.ts.map +1 -0
  369. package/dist/test-runner/evaluators.d.ts +12 -0
  370. package/dist/test-runner/evaluators.d.ts.map +1 -0
  371. package/dist/test-runner/fixture-loader.d.ts +30 -0
  372. package/dist/test-runner/fixture-loader.d.ts.map +1 -0
  373. package/dist/test-runner/index.d.ts +120 -0
  374. package/dist/test-runner/index.d.ts.map +1 -0
  375. package/dist/test-runner/recorders/github-recorder.d.ts +23 -0
  376. package/dist/test-runner/recorders/github-recorder.d.ts.map +1 -0
  377. package/dist/test-runner/recorders/global-recorder.d.ts +4 -0
  378. package/dist/test-runner/recorders/global-recorder.d.ts.map +1 -0
  379. package/dist/test-runner/utils/selectors.d.ts +2 -0
  380. package/dist/test-runner/utils/selectors.d.ts.map +1 -0
  381. package/dist/test-runner/validator.d.ts +8 -0
  382. package/dist/test-runner/validator.d.ts.map +1 -0
  383. package/dist/traces/run-2025-11-21T11-50-46-505Z.ndjson +138 -0
  384. package/dist/traces/run-2025-11-21T11-51-33-674Z.ndjson +839 -0
  385. package/dist/types/cli.d.ts +4 -1
  386. package/dist/types/cli.d.ts.map +1 -1
  387. package/dist/types/config.d.ts +278 -5
  388. package/dist/types/config.d.ts.map +1 -1
  389. package/dist/types/engine.d.ts +172 -0
  390. package/dist/types/engine.d.ts.map +1 -0
  391. package/dist/types/execution.d.ts +73 -0
  392. package/dist/types/execution.d.ts.map +1 -0
  393. package/dist/types/github.d.ts +51 -0
  394. package/dist/types/github.d.ts.map +1 -0
  395. package/dist/types/workflow.d.ts +237 -0
  396. package/dist/types/workflow.d.ts.map +1 -0
  397. package/dist/utils/command-executor.d.ts +43 -0
  398. package/dist/utils/command-executor.d.ts.map +1 -0
  399. package/dist/utils/comment-metadata.d.ts +21 -0
  400. package/dist/utils/comment-metadata.d.ts.map +1 -0
  401. package/dist/utils/config-loader.d.ts.map +1 -1
  402. package/dist/utils/config-merger.d.ts.map +1 -1
  403. package/dist/utils/env-exposure.d.ts +3 -0
  404. package/dist/utils/env-exposure.d.ts.map +1 -0
  405. package/dist/utils/file-exclusion.d.ts.map +1 -1
  406. package/dist/utils/interactive-prompt.d.ts +1 -1
  407. package/dist/utils/interactive-prompt.d.ts.map +1 -1
  408. package/dist/utils/sandbox.d.ts.map +1 -1
  409. package/dist/utils/script-memory-ops.d.ts +21 -0
  410. package/dist/utils/script-memory-ops.d.ts.map +1 -0
  411. package/dist/utils/template-context.d.ts +7 -0
  412. package/dist/utils/template-context.d.ts.map +1 -0
  413. package/dist/webhook-server.d.ts +3 -3
  414. package/dist/webhook-server.d.ts.map +1 -1
  415. package/dist/workflow-executor.d.ts +81 -0
  416. package/dist/workflow-executor.d.ts.map +1 -0
  417. package/dist/workflow-registry.d.ts +79 -0
  418. package/dist/workflow-registry.d.ts.map +1 -0
  419. package/package.json +10 -5
  420. package/dist/output/traces/run-2025-10-22T18-22-56-873Z.ndjson +0 -218
  421. package/dist/sdk/check-execution-engine-2YYKUUSH.mjs +0 -11
  422. package/dist/sdk/check-execution-engine-6QJXYYON.mjs +0 -11
  423. package/dist/sdk/check-execution-engine-PJZ4ZOKG.mjs +0 -11
  424. package/dist/sdk/chunk-33QVZ2D4.mjs +0 -316
  425. package/dist/sdk/chunk-33QVZ2D4.mjs.map +0 -1
  426. package/dist/sdk/chunk-B5QBV2QJ.mjs +0 -752
  427. package/dist/sdk/chunk-B5QBV2QJ.mjs.map +0 -1
  428. package/dist/sdk/chunk-BVFNRCHT.mjs +0 -14129
  429. package/dist/sdk/chunk-BVFNRCHT.mjs.map +0 -1
  430. package/dist/sdk/chunk-KWZW23FG.mjs +0 -14129
  431. package/dist/sdk/chunk-KWZW23FG.mjs.map +0 -1
  432. package/dist/sdk/chunk-O4RP4BRH.mjs +0 -14092
  433. package/dist/sdk/chunk-O4RP4BRH.mjs.map +0 -1
  434. package/dist/sdk/chunk-TUTOLSFV.mjs.map +0 -1
  435. package/dist/sdk/chunk-U5D2LY66.mjs +0 -245
  436. package/dist/sdk/chunk-U5D2LY66.mjs.map +0 -1
  437. package/dist/sdk/chunk-U7X54EMV.mjs +0 -331
  438. package/dist/sdk/chunk-U7X54EMV.mjs.map +0 -1
  439. package/dist/sdk/config-merger-TWUBWFC2.mjs +0 -8
  440. package/dist/sdk/mermaid-telemetry-SN6A2TKW.mjs +0 -61
  441. package/dist/sdk/mermaid-telemetry-SN6A2TKW.mjs.map +0 -1
  442. package/dist/sdk/mermaid-telemetry-YCTIG76M.mjs +0 -61
  443. package/dist/sdk/mermaid-telemetry-YCTIG76M.mjs.map +0 -1
  444. package/dist/traces/run-2025-10-22T18-22-56-873Z.ndjson +0 -218
  445. /package/dist/sdk/{check-execution-engine-2YYKUUSH.mjs.map → config-M4ZNO6NU.mjs.map} +0 -0
  446. /package/dist/sdk/{check-execution-engine-6QJXYYON.mjs.map → config-merger-PX3WIT57.mjs.map} +0 -0
  447. /package/dist/sdk/{check-execution-engine-PJZ4ZOKG.mjs.map → failure-condition-evaluator-NBO5YRXW.mjs.map} +0 -0
  448. /package/dist/sdk/{config-merger-TWUBWFC2.mjs.map → liquid-extensions-C7EG3YKH.mjs.map} +0 -0
  449. /package/dist/sdk/{liquid-extensions-KVL4MKRH.mjs.map → memory-store-GJACZC2A.mjs.map} +0 -0
  450. /package/dist/sdk/{tracer-init-WC75N5NW.mjs.map → metrics-7PP3EJUH.mjs.map} +0 -0
@@ -0,0 +1,147 @@
1
+ import type { CheckExecutionOptions, ExecutionResult } from './types/execution';
2
+ import { AnalysisResult } from './output-formatters';
3
+ import type { VisorConfig } from './types/config';
4
+ import type { PRInfo } from './pr-analyzer';
5
+ import type { DebugVisualizerServer } from './debug-visualizer/ws-server';
6
+ /**
7
+ * State machine-based execution engine
8
+ *
9
+ * Production-ready state machine implementation with full observability support.
10
+ * M4: Includes OTEL telemetry and debug visualizer event streaming.
11
+ */
12
+ export declare class StateMachineExecutionEngine {
13
+ private workingDirectory;
14
+ private executionContext?;
15
+ private debugServer?;
16
+ private _lastContext?;
17
+ private _lastRunner?;
18
+ constructor(workingDirectory?: string, octokit?: import('@octokit/rest').Octokit, debugServer?: DebugVisualizerServer);
19
+ /**
20
+ * Execute checks using the state machine engine
21
+ *
22
+ * Converts CheckExecutionOptions -> executeGroupedChecks() -> AnalysisResult
23
+ */
24
+ executeChecks(options: CheckExecutionOptions): Promise<AnalysisResult>;
25
+ /**
26
+ * Get execution context (used by state machine to propagate hooks)
27
+ */
28
+ protected getExecutionContext(): import('./providers/check-provider.interface').ExecutionContext | undefined;
29
+ /**
30
+ * Set execution context for external callers
31
+ */
32
+ setExecutionContext(context: import('./providers/check-provider.interface').ExecutionContext | undefined): void;
33
+ /**
34
+ * Reset per-run state (no-op for state machine engine)
35
+ *
36
+ * The state machine engine is stateless per-run by design.
37
+ * Each execution creates a fresh journal and context.
38
+ * This method exists only for backward compatibility with test framework.
39
+ *
40
+ * @deprecated This is a no-op. State machine engine doesn't maintain per-run state.
41
+ */
42
+ resetPerRunState(): void;
43
+ /**
44
+ * Execute grouped checks using the state machine engine
45
+ *
46
+ * M4: Production-ready with full telemetry and debug server support
47
+ */
48
+ executeGroupedChecks(prInfo: PRInfo, checks: string[], timeout?: number, config?: VisorConfig, outputFormat?: string, debug?: boolean, maxParallelism?: number, failFast?: boolean, tagFilter?: import('./types/config').TagFilter, _pauseGate?: () => Promise<void>): Promise<ExecutionResult>;
49
+ /**
50
+ * Build the engine context for state machine execution
51
+ */
52
+ private buildEngineContext;
53
+ /**
54
+ * Get output history snapshot for test framework compatibility
55
+ * Extracts output history from the journal
56
+ */
57
+ getOutputHistorySnapshot(): Record<string, unknown[]>;
58
+ /**
59
+ * Save a JSON snapshot of the last run's state and journal to a file (experimental).
60
+ * Does not include secrets. Intended for debugging and future resume support.
61
+ */
62
+ saveSnapshotToFile(filePath: string): Promise<void>;
63
+ /**
64
+ * Load a snapshot JSON from file and return it. Resume support can build on this.
65
+ */
66
+ loadSnapshotFromFile<T = unknown>(filePath: string): Promise<T>;
67
+ /**
68
+ * Filter checks by tag filter
69
+ */
70
+ private filterChecksByTags;
71
+ /**
72
+ * Create an error result in AnalysisResult format
73
+ */
74
+ private createErrorResult;
75
+ /**
76
+ * Convert GroupedCheckResults to ReviewSummary
77
+ * Aggregates all check results into a single ReviewSummary
78
+ */
79
+ private convertGroupedResultsToReviewSummary;
80
+ /**
81
+ * Evaluate failure conditions for a check result
82
+ *
83
+ * This method provides backward compatibility with the legacy engine by
84
+ * delegating to the FailureConditionEvaluator.
85
+ *
86
+ * @param checkName - The name of the check being evaluated
87
+ * @param reviewSummary - The review summary containing check results
88
+ * @param config - The Visor configuration containing failure conditions
89
+ * @param previousOutputs - Optional previous check outputs for cross-check conditions
90
+ * @param authorAssociation - Optional GitHub author association for permission checks
91
+ * @returns Array of failure condition evaluation results
92
+ */
93
+ evaluateFailureConditions(checkName: string, reviewSummary: import('./reviewer').ReviewSummary, config: VisorConfig, previousOutputs?: Record<string, import('./reviewer').ReviewSummary>, authorAssociation?: string): Promise<import('./types/config').FailureConditionResult[]>;
94
+ /**
95
+ * Get repository status
96
+ * @returns Repository status information
97
+ */
98
+ getRepositoryStatus(): Promise<{
99
+ isGitRepository: boolean;
100
+ branch?: string;
101
+ hasChanges: boolean;
102
+ filesChanged?: number;
103
+ }>;
104
+ /**
105
+ * Check if current directory is a git repository
106
+ * @returns True if git repository, false otherwise
107
+ */
108
+ isGitRepository(): Promise<boolean>;
109
+ /**
110
+ * Get list of available check types
111
+ * @returns Array of check type names
112
+ */
113
+ static getAvailableCheckTypes(): string[];
114
+ /**
115
+ * Validate check types and return valid/invalid lists
116
+ * @param checks - Array of check type names to validate
117
+ * @returns Object with valid and invalid check types
118
+ */
119
+ static validateCheckTypes(checks: string[]): {
120
+ valid: string[];
121
+ invalid: string[];
122
+ };
123
+ /**
124
+ * Render check content using the appropriate template
125
+ *
126
+ * This method handles template rendering for check results, supporting:
127
+ * - Plain schema: returns raw content without template processing
128
+ * - Custom templates: from inline content or file
129
+ * - Built-in schema templates: from output/{schema}/template.liquid
130
+ */
131
+ private renderCheckContent;
132
+ /**
133
+ * Format the status column for execution statistics
134
+ * Used by execution-statistics-formatting tests
135
+ */
136
+ private formatStatusColumn;
137
+ /**
138
+ * Format the details column for execution statistics
139
+ * Used by execution-statistics-formatting tests
140
+ */
141
+ private formatDetailsColumn;
142
+ /**
143
+ * Truncate a string to a maximum length
144
+ * Used by formatDetailsColumn
145
+ */
146
+ private truncate;
147
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/state-machine-execution-engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"opentelemetry.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/telemetry/opentelemetry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAQ3E,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC3E,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAKD;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAED,wBAAsB,aAAa,CAAC,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgPlF;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCvD"}
1
+ {"version":3,"file":"opentelemetry.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/telemetry/opentelemetry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAQ3E,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC3E,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAKD;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAED,wBAAsB,aAAa,CAAC,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyOlF;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCvD"}
@@ -0,0 +1,59 @@
1
+ export type CountExpectation = {
2
+ exactly?: number;
3
+ at_least?: number;
4
+ at_most?: number;
5
+ };
6
+ export interface CallsExpectation extends CountExpectation {
7
+ step?: string;
8
+ provider?: 'github' | string;
9
+ op?: string;
10
+ args?: Record<string, unknown>;
11
+ }
12
+ export interface PromptsExpectation {
13
+ step: string;
14
+ index?: number | 'first' | 'last';
15
+ contains?: string[];
16
+ not_contains?: string[];
17
+ matches?: string;
18
+ where?: {
19
+ contains?: string[];
20
+ not_contains?: string[];
21
+ matches?: string;
22
+ };
23
+ }
24
+ export interface OutputsExpectation {
25
+ step: string;
26
+ index?: number | 'first' | 'last';
27
+ path: string;
28
+ equals?: unknown;
29
+ equalsDeep?: unknown;
30
+ matches?: string;
31
+ where?: {
32
+ path: string;
33
+ equals?: unknown;
34
+ matches?: string;
35
+ };
36
+ contains_unordered?: unknown[];
37
+ }
38
+ export interface ExpectBlock {
39
+ use?: string[];
40
+ calls?: CallsExpectation[];
41
+ prompts?: PromptsExpectation[];
42
+ outputs?: OutputsExpectation[];
43
+ no_calls?: Array<{
44
+ step?: string;
45
+ provider?: string;
46
+ op?: string;
47
+ }>;
48
+ fail?: {
49
+ message_contains?: string;
50
+ };
51
+ strict_violation?: {
52
+ for_step?: string;
53
+ message_contains?: string;
54
+ };
55
+ }
56
+ export declare function validateCounts(exp: CountExpectation): void;
57
+ export declare function deepEqual(a: unknown, b: unknown): boolean;
58
+ export declare function containsUnordered(haystack: unknown[], needles: unknown[]): boolean;
59
+ //# sourceMappingURL=assertions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/assertions.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,gBAAgB,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAK1D;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAgBzD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAclF"}
@@ -0,0 +1,8 @@
1
+ export type EnvOverrides = Record<string, string> | undefined;
2
+ export declare class EnvironmentManager {
3
+ private prevRepo?;
4
+ private saved;
5
+ apply(caseEnv?: EnvOverrides): void;
6
+ restore(): void;
7
+ }
8
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/core/environment.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;AAE9D,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,KAAK,CAA0C;IAEvD,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAanC,OAAO,IAAI,IAAI;CAShB"}
@@ -0,0 +1,3 @@
1
+ import type { PRInfo } from '../../pr-analyzer';
2
+ export declare function buildPrInfoFromFixture(mapEventFromFixtureName: (fx?: string) => import('../../types/config').EventTrigger, fixtureName?: string, overrides?: Record<string, unknown>): PRInfo;
3
+ //# sourceMappingURL=fixture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/core/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAgChD,wBAAgB,sBAAsB,CACpC,uBAAuB,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,oBAAoB,EAAE,YAAY,EACnF,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CA4ER"}
@@ -0,0 +1,32 @@
1
+ import type { ExecutionStatistics } from '../../types/execution';
2
+ import { StateMachineExecutionEngine } from '../../state-machine-execution-engine';
3
+ import { RecordingOctokit } from '../recorders/github-recorder';
4
+ type PrintHeaderFn = (flowName: string, stageName: string, event?: string, fixture?: string) => void;
5
+ type PrintChecksFn = (checks: string[]) => void;
6
+ type MapEventFn = (fixtureName?: string) => import('../../types/config').EventTrigger;
7
+ type ComputeChecksFn = (cfg: any, event: string, desired?: Set<string>) => string[];
8
+ type WarnUnmockedFn = (stats: ExecutionStatistics, cfg: any, mocks: Record<string, unknown>) => void;
9
+ export declare class FlowStage {
10
+ private readonly flowName;
11
+ private readonly engine;
12
+ private readonly recorder;
13
+ private readonly cfg;
14
+ private readonly prompts;
15
+ private readonly promptCap;
16
+ private readonly mapEventFromFixtureName;
17
+ private readonly computeChecksToRun;
18
+ private readonly printStageHeader;
19
+ private readonly printSelectedChecks;
20
+ private readonly warnUnmockedProviders;
21
+ private readonly defaultIncludeTags?;
22
+ private readonly defaultExcludeTags?;
23
+ private readonly defaultFrontends?;
24
+ constructor(flowName: string, engine: StateMachineExecutionEngine, recorder: RecordingOctokit, cfg: any, prompts: Record<string, string[]>, promptCap: number | undefined, mapEventFromFixtureName: MapEventFn, computeChecksToRun: ComputeChecksFn, printStageHeader: PrintHeaderFn, printSelectedChecks: PrintChecksFn, warnUnmockedProviders: WarnUnmockedFn, defaultIncludeTags?: string[] | undefined, defaultExcludeTags?: string[] | undefined, defaultFrontends?: any[] | undefined);
25
+ run(stage: any, flowCase: any, strict: boolean): Promise<{
26
+ name: string;
27
+ errors?: string[];
28
+ stats?: ExecutionStatistics;
29
+ }>;
30
+ }
31
+ export {};
32
+ //# sourceMappingURL=flow-stage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-stage.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/core/flow-stage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAOhE,KAAK,aAAa,GAAG,CACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,KACb,IAAI,CAAC;AACV,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;AAChD,KAAK,UAAU,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,oBAAoB,EAAE,YAAY,CAAC;AACtF,KAAK,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;AACpF,KAAK,cAAc,GAAG,CACpB,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,IAAI,CAAC;AAEV,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAbjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,2BAA2B,EACnC,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACjC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,uBAAuB,EAAE,UAAU,EACnC,kBAAkB,EAAE,eAAe,EACnC,gBAAgB,EAAE,aAAa,EAC/B,mBAAmB,EAAE,aAAa,EAClC,qBAAqB,EAAE,cAAc,EACrC,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAA,EAC7B,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAA,EAC7B,gBAAgB,CAAC,EAAE,GAAG,EAAE,YAAA;IAGrC,GAAG,CACP,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,OAAO,GACd,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,mBAAmB,CAAA;KAAE,CAAC;CAyc7E"}
@@ -0,0 +1,8 @@
1
+ export declare class MockManager {
2
+ private mocks;
3
+ private cursors;
4
+ constructor(mocks?: Record<string, unknown>);
5
+ reset(overrides?: Record<string, unknown>): void;
6
+ get(step: string): unknown;
7
+ }
8
+ //# sourceMappingURL=mocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/core/mocks.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,OAAO,CAA8B;gBAEjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI3C,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKhD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAW3B"}
@@ -0,0 +1,18 @@
1
+ import type { PRInfo } from '../../pr-analyzer';
2
+ import { StateMachineExecutionEngine } from '../../state-machine-execution-engine';
3
+ export declare class TestExecutionWrapper {
4
+ private readonly engine;
5
+ constructor(engine: StateMachineExecutionEngine);
6
+ /**
7
+ * Execute a grouped run in a deterministic, test-friendly way without
8
+ * adding test-specific branches to the core engine.
9
+ */
10
+ execute(prInfo: PRInfo, checks: string[], cfg: any, debug: boolean, tagFilter?: {
11
+ include?: string[];
12
+ exclude?: string[];
13
+ }): Promise<{
14
+ res: any;
15
+ outHistory: Record<string, unknown[]>;
16
+ }>;
17
+ }
18
+ //# sourceMappingURL=test-execution-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-execution-wrapper.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/core/test-execution-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAEnF,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,2BAA2B;IAEhE;;;OAGG;IACG,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,OAAO,EACd,SAAS,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GACrD,OAAO,CAAC;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;KAAE,CAAC;CA4FhE"}
@@ -0,0 +1,12 @@
1
+ import { RecordingOctokit } from './recorders/github-recorder';
2
+ import { type ExpectBlock } from './assertions';
3
+ type ExecStats = import('../types/execution').ExecutionStatistics;
4
+ type GroupedResults = import('../reviewer').GroupedCheckResults;
5
+ export declare function evaluateCalls(errors: string[], expect: ExpectBlock, executed: Record<string, number>): void;
6
+ export declare function evaluateProviderCalls(errors: string[], expect: ExpectBlock, recorder: RecordingOctokit): void;
7
+ export declare function evaluateNoCalls(errors: string[], expect: ExpectBlock, executed: Record<string, number>, recorder: RecordingOctokit): void;
8
+ export declare function evaluatePrompts(errors: string[], expect: ExpectBlock, promptsByStep: Record<string, string[]>): void;
9
+ export declare function evaluateOutputs(errors: string[], expect: ExpectBlock, outputHistory: Record<string, unknown[]>): void;
10
+ export declare function evaluateCase(caseName: string, stats: ExecStats, recorder: RecordingOctokit, expect: ExpectBlock, strict: boolean, promptsByStep: Record<string, string[]>, _results: GroupedResults, outputHistory: Record<string, unknown[]>): string[];
11
+ export {};
12
+ //# sourceMappingURL=evaluators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluators.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/evaluators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAkB,KAAK,WAAW,EAAgC,MAAM,cAAc,CAAC;AAG9F,KAAK,SAAS,GAAG,OAAO,oBAAoB,EAAE,mBAAmB,CAAC;AAClE,KAAK,cAAc,GAAG,OAAO,aAAa,EAAE,mBAAmB,CAAC;AA6DhE,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,IAAI,CAgBN;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,gBAAgB,GACzB,IAAI,CAkCN;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,EAAE,gBAAgB,GACzB,IAAI,CAYN;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACtC,IAAI,CA4DN;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GACvC,IAAI,CAiEN;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACvC,QAAQ,EAAE,cAAc,EACxB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GACvC,MAAM,EAAE,CAkBV"}
@@ -0,0 +1,30 @@
1
+ export type BuiltinFixtureName = 'gh.pr_open.minimal' | 'gh.pr_sync.minimal' | 'gh.issue_open.minimal' | 'gh.issue_comment.standard' | 'gh.issue_comment.visor_help' | 'gh.issue_comment.visor_regenerate' | 'gh.issue_comment.edited' | 'gh.pr_closed.minimal';
2
+ export interface LoadedFixture {
3
+ name: string;
4
+ webhook: {
5
+ name: string;
6
+ action?: string;
7
+ payload: Record<string, unknown>;
8
+ };
9
+ git?: {
10
+ branch?: string;
11
+ baseBranch?: string;
12
+ };
13
+ files?: Array<{
14
+ path: string;
15
+ content: string;
16
+ status?: 'added' | 'modified' | 'removed' | 'renamed';
17
+ additions?: number;
18
+ deletions?: number;
19
+ }>;
20
+ diff?: string;
21
+ env?: Record<string, string>;
22
+ time?: {
23
+ now?: string;
24
+ };
25
+ }
26
+ export declare class FixtureLoader {
27
+ load(name: BuiltinFixtureName): LoadedFixture;
28
+ private buildUnifiedDiff;
29
+ }
30
+ //# sourceMappingURL=fixture-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixture-loader.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/fixture-loader.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,oBAAoB,GACpB,oBAAoB,GACpB,uBAAuB,GACvB,2BAA2B,GAC3B,6BAA6B,GAC7B,mCAAmC,GACnC,yBAAyB,GACzB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAC7E,GAAG,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;QACtD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzB;AAED,qBAAa,aAAa;IACxB,IAAI,CAAC,IAAI,EAAE,kBAAkB,GAAG,aAAa;IA4G7C,OAAO,CAAC,gBAAgB;CAoBzB"}
@@ -0,0 +1,120 @@
1
+ export type TestCase = {
2
+ name: string;
3
+ description?: string;
4
+ event?: string;
5
+ flow?: Array<{
6
+ name: string;
7
+ }>;
8
+ };
9
+ export type TestSuite = {
10
+ version: string;
11
+ extends?: string | string[];
12
+ tests: {
13
+ defaults?: Record<string, unknown>;
14
+ fixtures?: unknown[];
15
+ cases: TestCase[];
16
+ };
17
+ };
18
+ export interface DiscoverOptions {
19
+ testsPath?: string;
20
+ cwd?: string;
21
+ }
22
+ /**
23
+ * Discover all YAML test suites under a directory or by glob pattern.
24
+ * Rules:
25
+ * - Include files ending with .tests.yaml/.tests.yml
26
+ * - Include YAML files containing a top-level `tests:` key (embedded suites)
27
+ */
28
+ export declare function discoverSuites(rootOrPattern?: string, cwd?: string): string[];
29
+ export declare function runSuites(files: string[], options: {
30
+ only?: string;
31
+ bail?: boolean;
32
+ maxParallelSuites?: number;
33
+ maxParallel?: number;
34
+ promptMaxChars?: number;
35
+ }): Promise<{
36
+ totalSuites: number;
37
+ failedSuites: number;
38
+ totalCases: number;
39
+ failedCases: number;
40
+ perSuite: Array<{
41
+ file: string;
42
+ failures: number;
43
+ results: Array<{
44
+ name: string;
45
+ passed: boolean;
46
+ errors?: string[];
47
+ stages?: Array<{
48
+ name: string;
49
+ errors?: string[];
50
+ }>;
51
+ }>;
52
+ }>;
53
+ }>;
54
+ export declare class VisorTestRunner {
55
+ private readonly cwd;
56
+ constructor(cwd?: string);
57
+ private readonly isTTY;
58
+ private color;
59
+ private bold;
60
+ private gray;
61
+ private tagPass;
62
+ private tagFail;
63
+ private tagSkip;
64
+ private line;
65
+ private setupTestCase;
66
+ private executeTestCase;
67
+ private printCaseHeader;
68
+ private printStageHeader;
69
+ private printSelectedChecks;
70
+ /**
71
+ * Locate a tests file: explicit path > ./.visor.tests.yaml > defaults/visor.tests.yaml
72
+ */
73
+ resolveTestsPath(explicit?: string): string;
74
+ /**
75
+ * Load and minimally validate tests YAML.
76
+ */
77
+ loadSuite(testsPath: string): TestSuite;
78
+ /**
79
+ * Pretty print discovered cases to stdout.
80
+ */
81
+ printDiscovery(testsPath: string, suite: TestSuite): void;
82
+ /**
83
+ * Execute non-flow cases with minimal assertions (Milestone 1 MVP).
84
+ */
85
+ runCases(testsPath: string, suite: TestSuite, options: {
86
+ only?: string;
87
+ bail?: boolean;
88
+ maxParallel?: number;
89
+ promptMaxChars?: number;
90
+ }): Promise<{
91
+ failures: number;
92
+ results: Array<{
93
+ name: string;
94
+ passed: boolean;
95
+ errors?: string[];
96
+ stages?: Array<{
97
+ name: string;
98
+ errors?: string[];
99
+ }>;
100
+ }>;
101
+ }>;
102
+ private runFlowCase;
103
+ private mapEventFromFixtureName;
104
+ private warnUnmockedProviders;
105
+ private mapGithubOp;
106
+ private computeChecksToRun;
107
+ private printCoverage;
108
+ }
109
+ export declare function discoverAndPrint(options?: DiscoverOptions): Promise<void>;
110
+ export declare function runMvp(options: {
111
+ testsPath?: string;
112
+ only?: string;
113
+ bail?: boolean;
114
+ maxParallel?: number;
115
+ promptMaxChars?: number;
116
+ }): Promise<number>;
117
+ export declare function validateTestsOnly(options: {
118
+ testsPath?: string;
119
+ }): Promise<number>;
120
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface RecordedCall {
2
+ provider: 'github';
3
+ op: string;
4
+ args: Record<string, unknown>;
5
+ ts: number;
6
+ }
7
+ /**
8
+ * Very small Recording Octokit that implements only the methods we need for
9
+ * discovery/MVP. It records all invocations in-memory.
10
+ */
11
+ export declare class RecordingOctokit {
12
+ readonly calls: RecordedCall[];
13
+ readonly rest: any;
14
+ private readonly mode?;
15
+ private comments;
16
+ private nextCommentId;
17
+ constructor(opts?: {
18
+ errorCode?: number;
19
+ timeoutMs?: number;
20
+ });
21
+ private stubResponse;
22
+ }
23
+ //# sourceMappingURL=github-recorder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-recorder.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/recorders/github-recorder.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,SAAgB,KAAK,EAAE,YAAY,EAAE,CAAM;IAE3C,SAAgB,IAAI,EAAE,GAAG,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAA6C;IACnE,OAAO,CAAC,QAAQ,CACJ;IACZ,OAAO,CAAC,aAAa,CAAK;gBAEd,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAsC7D,OAAO,CAAC,YAAY;CA8ErB"}
@@ -0,0 +1,4 @@
1
+ import type { RecordingOctokit } from './github-recorder';
2
+ export declare function setGlobalRecorder(r: RecordingOctokit | null): void;
3
+ export declare function getGlobalRecorder(): RecordingOctokit | null;
4
+ //# sourceMappingURL=global-recorder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-recorder.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/recorders/global-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAElE;AAED,wBAAgB,iBAAiB,IAAI,gBAAgB,GAAG,IAAI,CAE3D"}
@@ -0,0 +1,2 @@
1
+ export declare function deepGet(obj: unknown, path: string): unknown;
2
+ //# sourceMappingURL=selectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/utils/selectors.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CA0D3D"}
@@ -0,0 +1,8 @@
1
+ export type ValidationResult = {
2
+ ok: true;
3
+ } | {
4
+ ok: false;
5
+ errors: string[];
6
+ };
7
+ export declare function validateTestsDoc(doc: unknown): ValidationResult;
8
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/validator.ts"],"names":[],"mappings":"AAwcA,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE9E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAS/D"}