@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,240 @@
1
+ version: "1.0"
2
+
3
+ # Complete example of HTTP integration features
4
+ # Demonstrates http, http_input, and http_client check types
5
+
6
+ # HTTP server for receiving webhooks (disabled in GitHub Actions)
7
+ http_server:
8
+ enabled: true
9
+ port: 8080
10
+ host: "0.0.0.0"
11
+ auth:
12
+ type: bearer_token
13
+ secret: "${HTTP_SERVER_SECRET}" # Environment variable
14
+ endpoints:
15
+ - path: "/github/webhook"
16
+ name: "github-events"
17
+ - path: "/monitoring/health"
18
+ name: "health-checks"
19
+
20
+ steps:
21
+ # === HTTP CLIENT: Fetch data from external APIs ===
22
+
23
+ # Fetch repository statistics from GitHub API
24
+ github-stats:
25
+ type: http_client
26
+ url: "https://api.github.com/repos/{{ pr.base | split: '/' | last }}/stats/contributors"
27
+ headers:
28
+ Authorization: "token ${GITHUB_TOKEN}"
29
+ Accept: "application/vnd.github.v3+json"
30
+ transform: |
31
+ {
32
+ "total_contributors": {{ response | size }},
33
+ "top_contributor": "{{ response | first | map: 'author.login' }}",
34
+ "total_commits": {{ response | map: 'total' | sum }}
35
+ }
36
+ schedule: "0 0 * * 0" # Weekly on Sunday
37
+
38
+ # Fetch build status from CI/CD system
39
+ ci-status:
40
+ type: http_client
41
+ url: "${CI_API_URL}/builds/{{ pr.head }}"
42
+ method: GET
43
+ headers:
44
+ X-API-Key: "${CI_API_KEY}"
45
+ transform: |
46
+ {
47
+ "build_status": "{{ response.status }}",
48
+ "test_coverage": {{ response.coverage }},
49
+ "failed_tests": {{ response.failed_tests | default: 0 }}
50
+ }
51
+
52
+ # Poll external service with POST request
53
+ vulnerability-check:
54
+ type: http_client
55
+ url: "${SECURITY_API_URL}/scan"
56
+ method: POST
57
+ body: |
58
+ {
59
+ "repository": "{{ pr.base }}",
60
+ "commit": "{{ pr.head }}",
61
+ "files": {{ pr.files | map: 'filename' | json }}
62
+ }
63
+ headers:
64
+ Content-Type: "application/json"
65
+ Authorization: "Bearer ${SECURITY_API_TOKEN}"
66
+ transform: |
67
+ {
68
+ "vulnerabilities": {{ response.vulnerabilities | default: [] | json }},
69
+ "risk_score": {{ response.risk_score | default: 0 }}
70
+ }
71
+
72
+ # === HTTP INPUT: Receive webhook data ===
73
+
74
+ # Receive GitHub webhook events
75
+ github-webhook-receiver:
76
+ type: http_input
77
+ endpoint: "/github/webhook"
78
+ on: [webhook_received]
79
+ transform: |
80
+ {
81
+ "event": "{{ webhook.action }}",
82
+ "repository": "{{ webhook.repository.full_name }}",
83
+ "sender": "{{ webhook.sender.login }}"
84
+ }
85
+
86
+ # Receive monitoring health checks
87
+ health-check-receiver:
88
+ type: http_input
89
+ endpoint: "/monitoring/health"
90
+ on: [webhook_received]
91
+
92
+ # === AI ANALYSIS: Process fetched/received data ===
93
+
94
+ # Analyze GitHub statistics
95
+ contributor-analysis:
96
+ type: ai
97
+ depends_on: [github-stats]
98
+ prompt: |
99
+ Analyze the repository contributor statistics:
100
+ - Total contributors: {{ outputs['github-stats'].suggestions | first | parse_json: 'total_contributors' }}
101
+ - Top contributor: {{ outputs['github-stats'].suggestions | first | parse_json: 'top_contributor' }}
102
+ - Total commits: {{ outputs['github-stats'].suggestions | first | parse_json: 'total_commits' }}
103
+
104
+ Provide insights on:
105
+ 1. Contribution patterns
106
+ 2. Bus factor risks
107
+ 3. Recommendations for improving collaboration
108
+ group: analytics
109
+
110
+ # Analyze CI/CD status
111
+ build-analysis:
112
+ type: ai
113
+ depends_on: [ci-status]
114
+ prompt: |
115
+ CI/CD Build Analysis:
116
+ {{ outputs['ci-status'].suggestions | first }}
117
+
118
+ Evaluate:
119
+ 1. Build health and stability
120
+ 2. Test coverage adequacy
121
+ 3. Failed test patterns
122
+ 4. Recommendations for improvement
123
+ group: ci-cd
124
+
125
+ # Security assessment based on vulnerability scan
126
+ security-assessment:
127
+ type: ai
128
+ depends_on: [vulnerability-check]
129
+ prompt: |
130
+ Security Vulnerability Assessment:
131
+ {{ outputs['vulnerability-check'].suggestions | first }}
132
+
133
+ Provide:
134
+ 1. Risk assessment summary
135
+ 2. Critical vulnerabilities that need immediate attention
136
+ 3. Remediation priorities
137
+ 4. Security best practices recommendations
138
+ group: security
139
+
140
+ # === HTTP OUTPUT: Send results to external services ===
141
+
142
+ # Send analysis to Slack
143
+ slack-notification:
144
+ type: http
145
+ depends_on: [contributor-analysis, build-analysis]
146
+ url: "${SLACK_WEBHOOK_URL}"
147
+ method: POST
148
+ body: |
149
+ {
150
+ "text": "Repository Analysis Complete",
151
+ "attachments": [
152
+ {
153
+ "color": "good",
154
+ "title": "Contributor Analysis",
155
+ "text": "{{ outputs['contributor-analysis'].suggestions | first | truncate: 200 }}"
156
+ },
157
+ {
158
+ "color": "{{ outputs['ci-status'].suggestions | first | parse_json: 'build_status' == 'passed' ? 'good' : 'danger' }}",
159
+ "title": "Build Status",
160
+ "text": "{{ outputs['build-analysis'].suggestions | first | truncate: 200 }}"
161
+ }
162
+ ]
163
+ }
164
+
165
+ # Send metrics to monitoring system
166
+ metrics-export:
167
+ type: http
168
+ depends_on: [github-stats, ci-status]
169
+ url: "${METRICS_ENDPOINT}"
170
+ method: POST
171
+ headers:
172
+ Content-Type: "application/json"
173
+ X-API-Key: "${METRICS_API_KEY}"
174
+ body: |
175
+ {
176
+ "timestamp": "{{ 'now' | date: '%Y-%m-%dT%H:%M:%S' }}",
177
+ "metrics": {
178
+ "contributors": {{ outputs['github-stats'].suggestions | first | parse_json: 'total_contributors' }},
179
+ "commits": {{ outputs['github-stats'].suggestions | first | parse_json: 'total_commits' }},
180
+ "test_coverage": {{ outputs['ci-status'].suggestions | first | parse_json: 'test_coverage' }},
181
+ "failed_tests": {{ outputs['ci-status'].suggestions | first | parse_json: 'failed_tests' }}
182
+ }
183
+ }
184
+
185
+ # Create JIRA ticket for critical vulnerabilities
186
+ jira-ticket:
187
+ type: http
188
+ depends_on: [vulnerability-check]
189
+ if: "outputs['vulnerability-check'].suggestions | first | parse_json: 'risk_score' > 7"
190
+ url: "${JIRA_API_URL}/rest/api/2/issue"
191
+ method: POST
192
+ headers:
193
+ Authorization: "Basic ${JIRA_AUTH}"
194
+ Content-Type: "application/json"
195
+ body: |
196
+ {
197
+ "fields": {
198
+ "project": { "key": "SEC" },
199
+ "summary": "Critical vulnerabilities detected in {{ pr.base }}",
200
+ "description": "Risk Score: {{ outputs['vulnerability-check'].suggestions | first | parse_json: 'risk_score' }}\n\nVulnerabilities:\n{{ outputs['vulnerability-check'].suggestions | first | parse_json: 'vulnerabilities' | json }}",
201
+ "issuetype": { "name": "Bug" },
202
+ "priority": { "name": "Critical" }
203
+ }
204
+ }
205
+
206
+ # === SCHEDULED AGGREGATION ===
207
+
208
+ # Daily summary that combines multiple data sources
209
+ daily-report:
210
+ type: http_client
211
+ schedule: "0 18 * * *" # 6 PM daily
212
+ url: "${ANALYTICS_API}/daily-summary"
213
+ method: GET
214
+ transform: |
215
+ {
216
+ "date": "{{ 'now' | date: '%Y-%m-%d' }}",
217
+ "summary": {{ response | json }}
218
+ }
219
+
220
+ # Send daily report via email service
221
+ email-report:
222
+ type: http
223
+ depends_on: [daily-report]
224
+ url: "${EMAIL_SERVICE_URL}/send"
225
+ method: POST
226
+ headers:
227
+ Authorization: "Bearer ${EMAIL_API_KEY}"
228
+ body: |
229
+ {
230
+ "to": ["team@example.com"],
231
+ "subject": "Daily Visor Report - {{ 'now' | date: '%Y-%m-%d' }}",
232
+ "html": "<h1>Daily Summary</h1><pre>{{ outputs['daily-report'].suggestions | first }}</pre>"
233
+ }
234
+
235
+ output:
236
+ pr_comment:
237
+ format: markdown
238
+ group_by: check
239
+ collapse: true
240
+ suppressionEnabled: true
@@ -0,0 +1,209 @@
1
+ version: "1.0"
2
+
3
+ # Example of HTTPS server configuration with TLS/SSL
4
+ # Note: This server is automatically disabled when running in GitHub Actions
5
+
6
+ http_server:
7
+ enabled: true
8
+ port: 8443 # Standard HTTPS port
9
+ host: "0.0.0.0"
10
+
11
+ # TLS/SSL Configuration Options
12
+ tls:
13
+ enabled: true
14
+
15
+ # Option 1: File paths to certificates
16
+ # cert: "/path/to/server.crt"
17
+ # key: "/path/to/server.key"
18
+ # ca: "/path/to/ca.crt" # Optional: CA certificate
19
+
20
+ # Option 2: Environment variables containing certificate content
21
+ cert: "${TLS_CERT}" # Certificate content from environment variable
22
+ key: "${TLS_KEY}" # Private key content from environment variable
23
+ ca: "${TLS_CA}" # Optional: CA cert from environment variable
24
+
25
+ # Option 3: Inline certificate content (not recommended for production)
26
+ # cert: |
27
+ # -----BEGIN CERTIFICATE-----
28
+ # MIIDXTCCAkWgAwIBAgIJAKLdQVPy90WjMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
29
+ # ... certificate content ...
30
+ # -----END CERTIFICATE-----
31
+ # key: |
32
+ # -----BEGIN PRIVATE KEY-----
33
+ # MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDYscr5BQJG
34
+ # ... key content ...
35
+ # -----END PRIVATE KEY-----
36
+
37
+ # Reject unauthorized connections (default: true)
38
+ rejectUnauthorized: true
39
+
40
+ # Authentication for webhook endpoints
41
+ auth:
42
+ type: bearer_token
43
+ secret: "${WEBHOOK_SECRET}"
44
+
45
+ # Webhook endpoints
46
+ endpoints:
47
+ - path: "/webhook/github"
48
+ name: "github-events"
49
+ - path: "/webhook/jenkins"
50
+ name: "jenkins-builds"
51
+ - path: "/webhook/datadog"
52
+ name: "monitoring-alerts"
53
+
54
+ steps:
55
+ # === Webhook receivers for HTTPS endpoints ===
56
+
57
+ github-webhook:
58
+ type: http_input
59
+ endpoint: "/webhook/github"
60
+ on: [webhook_received]
61
+ transform: |
62
+ {
63
+ "event": "{{ webhook.action }}",
64
+ "repository": "{{ webhook.repository.full_name }}",
65
+ "sender": "{{ webhook.sender.login }}",
66
+ "signature": "{{ headers['x-hub-signature-256'] }}"
67
+ }
68
+
69
+ jenkins-webhook:
70
+ type: http_input
71
+ endpoint: "/webhook/jenkins"
72
+ on: [webhook_received]
73
+ transform: |
74
+ {
75
+ "job": "{{ webhook.name }}",
76
+ "build": "{{ webhook.build.number }}",
77
+ "status": "{{ webhook.build.status }}",
78
+ "url": "{{ webhook.build.url }}"
79
+ }
80
+
81
+ datadog-alert:
82
+ type: http_input
83
+ endpoint: "/webhook/datadog"
84
+ on: [webhook_received]
85
+ transform: |
86
+ {
87
+ "alert": "{{ webhook.title }}",
88
+ "priority": "{{ webhook.priority }}",
89
+ "tags": {{ webhook.tags | json }},
90
+ "event_msg": "{{ webhook.event_msg }}"
91
+ }
92
+
93
+ # === Process webhook data ===
94
+
95
+ github-analysis:
96
+ type: ai
97
+ depends_on: [github-webhook]
98
+ prompt: |
99
+ Analyze the GitHub webhook event:
100
+ {{ outputs['github-webhook'].suggestions | first }}
101
+
102
+ Determine:
103
+ 1. Security implications
104
+ 2. Required actions
105
+ 3. Impact assessment
106
+ group: github
107
+
108
+ jenkins-build-analysis:
109
+ type: ai
110
+ depends_on: [jenkins-webhook]
111
+ prompt: |
112
+ Jenkins build notification:
113
+ {{ outputs['jenkins-webhook'].suggestions | first }}
114
+
115
+ Analyze:
116
+ 1. Build failure patterns
117
+ 2. Performance trends
118
+ 3. Recommended fixes
119
+ group: ci-cd
120
+
121
+ monitoring-response:
122
+ type: ai
123
+ depends_on: [datadog-alert]
124
+ prompt: |
125
+ Datadog monitoring alert:
126
+ {{ outputs['datadog-alert'].suggestions | first }}
127
+
128
+ Provide:
129
+ 1. Root cause analysis
130
+ 2. Immediate remediation steps
131
+ 3. Long-term prevention strategies
132
+ group: monitoring
133
+
134
+ # === Send secure notifications ===
135
+
136
+ # Send to secure internal API using HTTPS
137
+ internal-api-notification:
138
+ type: http
139
+ depends_on: [github-analysis, jenkins-build-analysis]
140
+ url: "https://internal-api.example.com/notifications"
141
+ method: POST
142
+ headers:
143
+ Content-Type: "application/json"
144
+ Authorization: "Bearer ${INTERNAL_API_TOKEN}"
145
+ X-TLS-Client-Cert: "${CLIENT_CERT}" # Client certificate for mTLS
146
+ body: |
147
+ {
148
+ "source": "visor",
149
+ "timestamp": "{{ 'now' | date: '%Y-%m-%dT%H:%M:%S' }}",
150
+ "github_analysis": {{ outputs['github-analysis'] | json }},
151
+ "jenkins_analysis": {{ outputs['jenkins-build-analysis'] | json }},
152
+ "secure": true,
153
+ "protocol": "https"
154
+ }
155
+
156
+ # Fetch from secure API endpoint
157
+ secure-api-fetch:
158
+ type: http_client
159
+ url: "https://secure-api.example.com/data"
160
+ method: GET
161
+ headers:
162
+ Authorization: "Bearer ${SECURE_API_TOKEN}"
163
+ X-Client-Id: "${CLIENT_ID}"
164
+ # Note: http_client automatically handles HTTPS connections
165
+ transform: |
166
+ {
167
+ "fetched_at": "{{ 'now' | date: '%Y-%m-%dT%H:%M:%S' }}",
168
+ "data": {{ response | json }}
169
+ }
170
+ schedule: "*/30 * * * *" # Every 30 minutes
171
+
172
+ # Production TLS Setup Examples:
173
+
174
+ # 1. Let's Encrypt with Certbot:
175
+ # tls:
176
+ # cert: "/etc/letsencrypt/live/example.com/fullchain.pem"
177
+ # key: "/etc/letsencrypt/live/example.com/privkey.pem"
178
+
179
+ # 2. Self-signed for development:
180
+ # Generate: openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
181
+ # tls:
182
+ # cert: "./cert.pem"
183
+ # key: "./key.pem"
184
+ # rejectUnauthorized: false # Allow self-signed in dev
185
+
186
+ # 3. Kubernetes secrets:
187
+ # tls:
188
+ # cert: "${TLS_CERT}" # Mounted from K8s secret
189
+ # key: "${TLS_KEY}" # Mounted from K8s secret
190
+
191
+ # 4. AWS Certificate Manager:
192
+ # Use AWS ALB/NLB for TLS termination, then:
193
+ # tls:
194
+ # enabled: false # TLS handled by load balancer
195
+ # auth:
196
+ # type: bearer_token # Still authenticate requests
197
+
198
+ # 5. Mutual TLS (mTLS):
199
+ # tls:
200
+ # cert: "${SERVER_CERT}"
201
+ # key: "${SERVER_KEY}"
202
+ # ca: "${CLIENT_CA}" # CA to verify client certificates
203
+ # rejectUnauthorized: true
204
+
205
+ output:
206
+ pr_comment:
207
+ format: markdown
208
+ group_by: check
209
+ collapse: true
@@ -0,0 +1,63 @@
1
+ version: "1.0"
2
+
3
+ # Example configuration demonstrating human-input check type
4
+ # This shows various ways to use human-in-the-loop interactions
5
+
6
+ checks:
7
+ # Example 1: Simple approval gate
8
+ approval-gate:
9
+ type: human-input
10
+ prompt: "Do you approve this change? (yes/no)"
11
+ allow_empty: false
12
+ timeout: 300 # 5 minutes in seconds
13
+
14
+ # Example 2: Context collection
15
+ gather-context:
16
+ type: human-input
17
+ prompt: |
18
+ Please provide additional context about this change:
19
+ - What problem does it solve?
20
+ - Are there any risks?
21
+ - Any special deployment considerations?
22
+ placeholder: "Enter context here..."
23
+ multiline: true
24
+ allow_empty: true
25
+ default: "No additional context provided"
26
+
27
+ # Example 3: Conditional workflow
28
+ choose-review-type:
29
+ type: human-input
30
+ prompt: "Select review type: (1) Quick check or (2) Full analysis?"
31
+ allow_empty: false
32
+
33
+ quick-check:
34
+ type: log
35
+ depends_on: [choose-review-type]
36
+ if: "outputs['choose-review-type'] === '1'"
37
+ message: "Running quick check... (selected option: {{ outputs['choose-review-type'] }})"
38
+
39
+ full-analysis:
40
+ type: log
41
+ depends_on: [choose-review-type]
42
+ if: "outputs['choose-review-type'] === '2'"
43
+ message: "Running full analysis... (selected option: {{ outputs['choose-review-type'] }})"
44
+
45
+ # Example 4: Using human input in subsequent checks
46
+ deployment-confirmation:
47
+ type: human-input
48
+ prompt: "Are you ready to deploy? Enter deployment target (staging/production):"
49
+ allow_empty: false
50
+
51
+ deploy:
52
+ type: log
53
+ depends_on: [deployment-confirmation]
54
+ message: |
55
+ Deploying to: {{ outputs['deployment-confirmation'] }}
56
+
57
+ This is where you would trigger your deployment script
58
+
59
+ output:
60
+ pr_comment:
61
+ format: markdown
62
+ group_by: check
63
+ collapse: false
@@ -0,0 +1,173 @@
1
+ version: "1.0"
2
+
3
+ # Example configuration showing how to use if conditions to control check execution
4
+ # The if condition determines whether a check should run based on context
5
+
6
+ steps:
7
+ # Run only on main branch
8
+ production-check:
9
+ type: ai
10
+ schema: code-review
11
+ prompt: "Check production readiness and deployment safety"
12
+ on: [pr_opened, pr_updated]
13
+ if: 'branch == "main" || baseBranch == "main"'
14
+ fail_if: "output.issues.some(i => i.severity === 'critical')"
15
+
16
+ # Run only when there are file changes
17
+ incremental-review:
18
+ type: ai
19
+ schema: code-review
20
+ prompt: "Review changed files for issues"
21
+ on: [pr_opened, pr_updated]
22
+ if: "filesCount > 0"
23
+ fail_if: "output.issues.some(i => i.severity === 'error')"
24
+
25
+ # Run only on feature branches
26
+ feature-validation:
27
+ type: ai
28
+ schema: code-review
29
+ prompt: "Validate feature implementation"
30
+ on: [pr_opened, pr_updated]
31
+ if: 'startsWith(branch, "feature/")'
32
+ fail_if: "output.issues.some(i => i.severity === 'critical')"
33
+
34
+ # Run only in CI environment
35
+ ci-only-check:
36
+ type: ai
37
+ schema: security
38
+ prompt: "Comprehensive security scan"
39
+ on: [pr_opened, pr_updated]
40
+ if: 'env.CI == "true"'
41
+ fail_if: "output.issues.length > 0"
42
+
43
+ # Run when specific files are changed
44
+ auth-security-check:
45
+ type: ai
46
+ schema: security
47
+ prompt: "Security review for authentication changes"
48
+ on: [pr_opened, pr_updated]
49
+ # Run when auth-related files are modified
50
+ if: 'contains(filesChanged, "auth") || contains(filesChanged, "login") || contains(filesChanged, "session")'
51
+ fail_if: "output.issues.length > 0"
52
+
53
+ # Complex condition - run on main or when many files changed
54
+ comprehensive-review:
55
+ type: ai
56
+ schema: code-review
57
+ prompt: "Comprehensive code review"
58
+ on: [pr_opened, pr_updated]
59
+ # Run on main branch OR when more than 10 files changed
60
+ if: 'branch == "main" || filesCount > 10'
61
+ fail_if: "output.issues.some(i => i.severity === 'critical')"
62
+
63
+ # Always run (default behavior)
64
+ standard-check:
65
+ type: ai
66
+ schema: code-review
67
+ prompt: "Standard code review"
68
+ on: [pr_opened, pr_updated]
69
+ if: "always()" # Explicitly always run
70
+ fail_if: "output.issues.some(i => i.severity === 'critical')"
71
+
72
+ # Never run (can be enabled by removing/changing condition)
73
+ disabled-check:
74
+ type: ai
75
+ schema: code-review
76
+ prompt: "Currently disabled check"
77
+ on: [pr_opened, pr_updated]
78
+ if: "!always()" # Never run
79
+ fail_if: "output.issues.some(i => i.severity === 'critical')"
80
+
81
+ # Dependency-based execution
82
+ security-check:
83
+ type: ai
84
+ schema: security
85
+ prompt: "Security vulnerability scan"
86
+ on: [pr_opened, pr_updated]
87
+ if: "always()"
88
+ fail_if: "output.issues.some(i => i.severity === 'critical')"
89
+
90
+ performance-check:
91
+ type: ai
92
+ schema: code-review
93
+ prompt: "Performance analysis"
94
+ on: [pr_opened, pr_updated]
95
+ if: "always()"
96
+ fail_if: "output.issues.filter(i => i.severity === 'error').length > 2"
97
+
98
+ # Run only if security check found issues
99
+ security-remediation:
100
+ type: ai
101
+ schema: code-review
102
+ prompt: "Suggest security fixes"
103
+ on: [pr_opened, pr_updated]
104
+ depends_on: [security-check]
105
+ # Only run if security check found issues (use length() function)
106
+ if: 'outputs["security-check"] && length(outputs["security-check"].issues) > 0'
107
+ fail_if: "output.issues.some(i => i.severity === 'critical')"
108
+
109
+ # Run only if all previous checks passed
110
+ final-validation:
111
+ type: ai
112
+ schema: code-review
113
+ prompt: "Final validation before merge"
114
+ on: [pr_opened, pr_updated]
115
+ depends_on: [security-check, performance-check]
116
+ # Only run if both dependencies passed (check for specific severities)
117
+ if: |
118
+ outputs["security-check"] &&
119
+ !hasIssue(outputs["security-check"].issues, "severity", "critical") &&
120
+ !hasIssue(outputs["security-check"].issues, "severity", "error") &&
121
+ outputs["performance-check"] &&
122
+ !hasIssue(outputs["performance-check"].issues, "severity", "critical") &&
123
+ !hasIssue(outputs["performance-check"].issues, "severity", "error")
124
+ fail_if: "output.issues.length > 0"
125
+
126
+ # Environment-specific checks
127
+ staging-check:
128
+ type: ai
129
+ schema: code-review
130
+ prompt: "Staging environment validation"
131
+ on: [pr_opened, pr_updated]
132
+ # Run only in staging environment
133
+ if: 'env.ENVIRONMENT == "staging"'
134
+ fail_if: "output.issues.some(i => i.severity === 'critical')"
135
+
136
+ # Time-based or conditional skip
137
+ weekend-check:
138
+ type: ai
139
+ schema: code-review
140
+ prompt: "Weekend maintenance check"
141
+ on: [pr_opened, pr_updated]
142
+ # Could be used with env vars set by CI to control execution
143
+ if: 'env.RUN_WEEKEND_CHECKS == "true"'
144
+ fail_if: "output.issues.some(i => i.severity === 'critical')"
145
+
146
+ output:
147
+ pr_comment:
148
+ format: markdown
149
+ group_by: check
150
+ collapse: true
151
+
152
+ # Available variables in if conditions:
153
+ # - checkName: Name of the current check
154
+ # - branch: Current branch name
155
+ # - baseBranch: Target/base branch name
156
+ # - filesChanged: Array of changed file paths
157
+ # - filesCount: Number of changed files
158
+ # - event: Event that triggered the check (e.g., "pr_opened", "manual")
159
+ # - env: Environment variables
160
+ # - outputs: Raw ReviewSummary objects from previous checks (for dependent checks)
161
+ # Example: outputs["check-name"].issues, outputs["check-name"].suggestions
162
+ # - metadata: Additional metadata (hasChanges, branch, event, checkName)
163
+
164
+ # Available functions (GitHub Actions-style):
165
+ # - contains(haystack, needle): Check if string/array contains value
166
+ # - startsWith(str, prefix): Check if string starts with prefix
167
+ # - endsWith(str, suffix): Check if string ends with suffix
168
+ # - always(): Always returns true
169
+ # - length(array|string|object): Get length of array, string, or object keys
170
+ # - hasIssue(issues, field, value): Check if any issue has field matching value
171
+ # - countIssues(issues, field, value): Count issues with field matching value
172
+ # - hasFileMatching(issues, pattern): Check if any issue file contains pattern
173
+ # - Standard operators: ==, !=, >, <, >=, <=, &&, ||, !