@probelabs/visor 0.1.128 → 0.1.130-ee

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 (302) hide show
  1. package/README.md +54 -1
  2. package/defaults/.visor.yaml +420 -0
  3. package/dist/ai-review-service.d.ts.map +1 -1
  4. package/dist/cli-main.d.ts.map +1 -1
  5. package/dist/config.d.ts +8 -0
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/daemon.js +19 -0
  8. package/dist/defaults/.visor.yaml +420 -0
  9. package/dist/docs/author-permissions.md +20 -0
  10. package/dist/docs/debugging.md +133 -0
  11. package/dist/docs/dev-playbook.md +10 -0
  12. package/dist/docs/enterprise-policy.md +1325 -0
  13. package/dist/docs/index.md +11 -0
  14. package/dist/docs/scheduler-storage.md +433 -0
  15. package/dist/docs/scheduler.md +513 -0
  16. package/dist/docs/slack-integration.md +21 -0
  17. package/dist/docs/workflow-creation-guide.md +39 -0
  18. package/dist/enterprise/license/validator.d.ts +39 -0
  19. package/dist/enterprise/license/validator.d.ts.map +1 -0
  20. package/dist/enterprise/loader.d.ts +25 -0
  21. package/dist/enterprise/loader.d.ts.map +1 -0
  22. package/dist/enterprise/policy/opa-compiler.d.ts +37 -0
  23. package/dist/enterprise/policy/opa-compiler.d.ts.map +1 -0
  24. package/dist/enterprise/policy/opa-http-evaluator.d.ts +36 -0
  25. package/dist/enterprise/policy/opa-http-evaluator.d.ts.map +1 -0
  26. package/dist/enterprise/policy/opa-policy-engine.d.ts +48 -0
  27. package/dist/enterprise/policy/opa-policy-engine.d.ts.map +1 -0
  28. package/dist/enterprise/policy/opa-wasm-evaluator.d.ts +34 -0
  29. package/dist/enterprise/policy/opa-wasm-evaluator.d.ts.map +1 -0
  30. package/dist/enterprise/policy/policy-input-builder.d.ts +120 -0
  31. package/dist/enterprise/policy/policy-input-builder.d.ts.map +1 -0
  32. package/dist/enterprise/scheduler/knex-store.d.ts +41 -0
  33. package/dist/enterprise/scheduler/knex-store.d.ts.map +1 -0
  34. package/dist/examples/README.md +53 -0
  35. package/dist/examples/calculator-config.yaml +4 -4
  36. package/dist/examples/enterprise-policy/README.md +344 -0
  37. package/dist/examples/enterprise-policy/policies/capability_resolve.rego +29 -0
  38. package/dist/examples/enterprise-policy/policies/capability_resolve_test.rego +230 -0
  39. package/dist/examples/enterprise-policy/policies/check_execute.rego +71 -0
  40. package/dist/examples/enterprise-policy/policies/check_execute_test.rego +321 -0
  41. package/dist/examples/enterprise-policy/policies/deploy_production.rego +33 -0
  42. package/dist/examples/enterprise-policy/policies/deploy_production_test.rego +29 -0
  43. package/dist/examples/enterprise-policy/policies/slack_channel_gate.rego +17 -0
  44. package/dist/examples/enterprise-policy/policies/slack_tool_restrict.rego +16 -0
  45. package/dist/examples/enterprise-policy/policies/tool_invoke.rego +24 -0
  46. package/dist/examples/enterprise-policy/policies/tool_invoke_test.rego +227 -0
  47. package/dist/examples/enterprise-policy/visor.yaml +64 -0
  48. package/dist/examples/sandbox-basic.yaml +18 -0
  49. package/dist/examples/sandbox-cache.yaml +32 -0
  50. package/dist/examples/sandbox-dockerfile-inline.yaml +22 -0
  51. package/dist/examples/sandbox-env-passthrough.yaml +26 -0
  52. package/dist/examples/sandbox-multi-env.yaml +27 -0
  53. package/dist/examples/sandbox-read-only.yaml +33 -0
  54. package/dist/examples/scheduler-example.yaml +118 -0
  55. package/dist/failure-condition-evaluator.d.ts +18 -0
  56. package/dist/failure-condition-evaluator.d.ts.map +1 -1
  57. package/dist/frontends/host.d.ts.map +1 -1
  58. package/dist/frontends/slack-frontend.d.ts +1 -0
  59. package/dist/frontends/slack-frontend.d.ts.map +1 -1
  60. package/dist/generated/config-schema.d.ts +320 -6
  61. package/dist/generated/config-schema.d.ts.map +1 -1
  62. package/dist/index.js +15893 -1724
  63. package/dist/liquid-extensions.d.ts.map +1 -1
  64. package/dist/mcp-server.d.ts +8 -8
  65. package/dist/policy/default-engine.d.ts +17 -0
  66. package/dist/policy/default-engine.d.ts.map +1 -0
  67. package/dist/policy/index.d.ts +4 -0
  68. package/dist/policy/index.d.ts.map +1 -0
  69. package/dist/policy/policy-check-command.d.ts +65 -0
  70. package/dist/policy/policy-check-command.d.ts.map +1 -0
  71. package/dist/policy/types.d.ts +81 -0
  72. package/dist/policy/types.d.ts.map +1 -0
  73. package/dist/providers/ai-check-provider.d.ts.map +1 -1
  74. package/dist/providers/check-provider.interface.d.ts +7 -0
  75. package/dist/providers/check-provider.interface.d.ts.map +1 -1
  76. package/dist/providers/claude-code-check-provider.d.ts.map +1 -1
  77. package/dist/providers/log-check-provider.d.ts.map +1 -1
  78. package/dist/providers/mcp-check-provider.d.ts.map +1 -1
  79. package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
  80. package/dist/providers/workflow-check-provider.d.ts.map +1 -1
  81. package/dist/sandbox/cache-volume-manager.d.ts +48 -0
  82. package/dist/sandbox/cache-volume-manager.d.ts.map +1 -0
  83. package/dist/sandbox/check-runner.d.ts +25 -0
  84. package/dist/sandbox/check-runner.d.ts.map +1 -0
  85. package/dist/sandbox/docker-compose-sandbox.d.ts +25 -0
  86. package/dist/sandbox/docker-compose-sandbox.d.ts.map +1 -0
  87. package/dist/sandbox/docker-image-sandbox.d.ts +32 -0
  88. package/dist/sandbox/docker-image-sandbox.d.ts.map +1 -0
  89. package/dist/sandbox/env-filter.d.ts +19 -0
  90. package/dist/sandbox/env-filter.d.ts.map +1 -0
  91. package/dist/sandbox/index.d.ts +9 -0
  92. package/dist/sandbox/index.d.ts.map +1 -0
  93. package/dist/sandbox/sandbox-manager.d.ts +39 -0
  94. package/dist/sandbox/sandbox-manager.d.ts.map +1 -0
  95. package/dist/sandbox/sandbox-telemetry.d.ts +9 -0
  96. package/dist/sandbox/sandbox-telemetry.d.ts.map +1 -0
  97. package/dist/sandbox/trace-ingester.d.ts +19 -0
  98. package/dist/sandbox/trace-ingester.d.ts.map +1 -0
  99. package/dist/sandbox/types.d.ts +149 -0
  100. package/dist/sandbox/types.d.ts.map +1 -0
  101. package/dist/scheduler/cli-handler.d.ts +6 -0
  102. package/dist/scheduler/cli-handler.d.ts.map +1 -0
  103. package/dist/scheduler/index.d.ts +16 -0
  104. package/dist/scheduler/index.d.ts.map +1 -0
  105. package/dist/scheduler/schedule-parser.d.ts +34 -0
  106. package/dist/scheduler/schedule-parser.d.ts.map +1 -0
  107. package/dist/scheduler/schedule-store.d.ts +156 -0
  108. package/dist/scheduler/schedule-store.d.ts.map +1 -0
  109. package/dist/scheduler/schedule-tool.d.ts +137 -0
  110. package/dist/scheduler/schedule-tool.d.ts.map +1 -0
  111. package/dist/scheduler/scheduler.d.ts +216 -0
  112. package/dist/scheduler/scheduler.d.ts.map +1 -0
  113. package/dist/scheduler/store/index.d.ts +7 -0
  114. package/dist/scheduler/store/index.d.ts.map +1 -0
  115. package/dist/scheduler/store/json-migrator.d.ts +10 -0
  116. package/dist/scheduler/store/json-migrator.d.ts.map +1 -0
  117. package/dist/scheduler/store/sqlite-store.d.ts +32 -0
  118. package/dist/scheduler/store/sqlite-store.d.ts.map +1 -0
  119. package/dist/scheduler/store/types.d.ts +127 -0
  120. package/dist/scheduler/store/types.d.ts.map +1 -0
  121. package/dist/sdk/check-provider-registry-PANIXYRB.mjs +28 -0
  122. package/dist/sdk/check-provider-registry-S7DKTEM6.mjs +28 -0
  123. package/dist/sdk/{chunk-N7IVCCGH.mjs → chunk-DIND4ZCV.mjs} +2 -2
  124. package/dist/sdk/{chunk-SIMCSNXO.mjs → chunk-GEW6LS32.mjs} +2 -2
  125. package/dist/sdk/chunk-H5BOW5CR.mjs +91 -0
  126. package/dist/sdk/chunk-H5BOW5CR.mjs.map +1 -0
  127. package/dist/sdk/{chunk-UKG5UP5U.mjs → chunk-HOKQOO3G.mjs} +12 -7
  128. package/dist/sdk/chunk-HOKQOO3G.mjs.map +1 -0
  129. package/dist/sdk/{chunk-YCUWMIV5.mjs → chunk-JL7JXCET.mjs} +2 -2
  130. package/dist/sdk/{chunk-QRXSDDYN.mjs → chunk-LG4AUKHB.mjs} +2 -2
  131. package/dist/sdk/{chunk-UPKHRMUA.mjs → chunk-S6CD7GFM.mjs} +33449 -28837
  132. package/dist/sdk/chunk-S6CD7GFM.mjs.map +1 -0
  133. package/dist/sdk/{chunk-P6YFV6N2.mjs → chunk-SZXICFQ3.mjs} +2 -2
  134. package/dist/sdk/{chunk-V7RIRPO7.mjs → chunk-TQ4D3YOF.mjs} +33449 -28837
  135. package/dist/sdk/chunk-TQ4D3YOF.mjs.map +1 -0
  136. package/dist/sdk/{chunk-4HVFUUNB.mjs → chunk-UCMJJ3IM.mjs} +84 -3
  137. package/dist/sdk/{chunk-4HVFUUNB.mjs.map → chunk-UCMJJ3IM.mjs.map} +1 -1
  138. package/dist/sdk/{chunk-D55IQCUP.mjs → chunk-UCNT3PDT.mjs} +677 -12
  139. package/dist/sdk/chunk-UCNT3PDT.mjs.map +1 -0
  140. package/dist/sdk/{chunk-LMJSJQPP.mjs → chunk-V2IV3ILA.mjs} +8 -6
  141. package/dist/sdk/chunk-V2IV3ILA.mjs.map +1 -0
  142. package/dist/sdk/{chunk-EJN6Q4D3.mjs → chunk-VF6XIUE4.mjs} +6 -4
  143. package/dist/sdk/{chunk-EJN6Q4D3.mjs.map → chunk-VF6XIUE4.mjs.map} +1 -1
  144. package/dist/sdk/{chunk-VEROLBCD.mjs → chunk-VMLORODQ.mjs} +108 -21
  145. package/dist/sdk/chunk-VMLORODQ.mjs.map +1 -0
  146. package/dist/sdk/{chunk-UEWXVJ6C.mjs → chunk-VPC3QSPW.mjs} +2 -2
  147. package/dist/sdk/{chunk-WVNQ56DO.mjs → chunk-YJRBN3XS.mjs} +13 -2
  148. package/dist/sdk/{chunk-WVNQ56DO.mjs.map → chunk-YJRBN3XS.mjs.map} +1 -1
  149. package/dist/sdk/{command-executor-C4DGIQ4Q.mjs → command-executor-TOYBBE7S.mjs} +4 -4
  150. package/dist/sdk/{config-GYTBTHRZ.mjs → config-OGOS4ZU4.mjs} +5 -5
  151. package/dist/sdk/event-bus-5K3Y2FCS.mjs +43 -0
  152. package/dist/sdk/{event-bus-XV2TOQFU.mjs.map → event-bus-5K3Y2FCS.mjs.map} +1 -1
  153. package/dist/sdk/failure-condition-evaluator-HC3M5377.mjs +17 -0
  154. package/dist/sdk/git-repository-analyzer-QFMW6WIS.mjs +471 -0
  155. package/dist/sdk/git-repository-analyzer-QFMW6WIS.mjs.map +1 -0
  156. package/dist/sdk/{github-frontend-UC326PMS.mjs → github-frontend-E2KJSC3Y.mjs} +517 -585
  157. package/dist/sdk/github-frontend-E2KJSC3Y.mjs.map +1 -0
  158. package/dist/sdk/host-EE6EJ2FM.mjs +63 -0
  159. package/dist/sdk/host-EE6EJ2FM.mjs.map +1 -0
  160. package/dist/sdk/host-OUSD2OIQ.mjs +63 -0
  161. package/dist/sdk/host-OUSD2OIQ.mjs.map +1 -0
  162. package/dist/sdk/knex-store-HPXJILBL.mjs +411 -0
  163. package/dist/sdk/knex-store-HPXJILBL.mjs.map +1 -0
  164. package/dist/sdk/lazy-otel-5NH4ZJJM.mjs +24 -0
  165. package/dist/sdk/{liquid-extensions-WJAC7QKG.mjs → liquid-extensions-E4EUOCES.mjs} +6 -6
  166. package/dist/sdk/loader-ID5LMXOW.mjs +89 -0
  167. package/dist/sdk/loader-ID5LMXOW.mjs.map +1 -0
  168. package/dist/sdk/memory-store-AAPL2MTE.mjs +12 -0
  169. package/dist/sdk/{metrics-CSBGJEWW.mjs → metrics-I6A7IHG4.mjs} +3 -3
  170. package/dist/sdk/ndjson-sink-FD2PSXGD.mjs +52 -0
  171. package/dist/sdk/{ndjson-sink-JQ2INHTS.mjs.map → ndjson-sink-FD2PSXGD.mjs.map} +1 -1
  172. package/dist/sdk/opa-policy-engine-UUPFN5CL.mjs +655 -0
  173. package/dist/sdk/opa-policy-engine-UUPFN5CL.mjs.map +1 -0
  174. package/dist/sdk/{prompt-state-X2WDGSEM.mjs → prompt-state-VAKKC773.mjs} +4 -4
  175. package/dist/sdk/{renderer-schema-FRCLA6KH.mjs → renderer-schema-HXEW6BRJ.mjs} +3 -3
  176. package/dist/sdk/routing-OZQWAGAI.mjs +25 -0
  177. package/dist/sdk/schedule-tool-handler-B7TMSG6A.mjs +38 -0
  178. package/dist/sdk/schedule-tool-handler-EBNKDUJC.mjs +38 -0
  179. package/dist/sdk/sdk.d.mts +284 -4
  180. package/dist/sdk/sdk.d.ts +284 -4
  181. package/dist/sdk/sdk.js +8247 -2417
  182. package/dist/sdk/sdk.js.map +1 -1
  183. package/dist/sdk/sdk.mjs +20 -1348
  184. package/dist/sdk/sdk.mjs.map +1 -1
  185. package/dist/sdk/slack-frontend-LAY45IBR.mjs +989 -0
  186. package/dist/sdk/slack-frontend-LAY45IBR.mjs.map +1 -0
  187. package/dist/sdk/{trace-helpers-LUCR52GY.mjs → trace-helpers-PP3YHTAM.mjs} +3 -3
  188. package/dist/sdk/tui-frontend-T56PZB67.mjs +290 -0
  189. package/dist/sdk/tui-frontend-T56PZB67.mjs.map +1 -0
  190. package/dist/sdk/validator-XTZJZZJH.mjs +134 -0
  191. package/dist/sdk/validator-XTZJZZJH.mjs.map +1 -0
  192. package/dist/sdk/workflow-check-provider-E7YPEZ45.mjs +28 -0
  193. package/dist/sdk/workflow-check-provider-E7YPEZ45.mjs.map +1 -0
  194. package/dist/sdk/workflow-check-provider-HB4XTD4Z.mjs +28 -0
  195. package/dist/sdk/workflow-check-provider-HB4XTD4Z.mjs.map +1 -0
  196. package/dist/sdk/workflow-registry-AAD37XKZ.mjs +12 -0
  197. package/dist/sdk/workflow-registry-AAD37XKZ.mjs.map +1 -0
  198. package/dist/slack/client.d.ts +40 -0
  199. package/dist/slack/client.d.ts.map +1 -1
  200. package/dist/slack/schedule-tool-handler.d.ts +46 -0
  201. package/dist/slack/schedule-tool-handler.d.ts.map +1 -0
  202. package/dist/slack/slack-output-adapter.d.ts +44 -0
  203. package/dist/slack/slack-output-adapter.d.ts.map +1 -0
  204. package/dist/slack/socket-runner.d.ts +22 -0
  205. package/dist/slack/socket-runner.d.ts.map +1 -1
  206. package/dist/state-machine/dispatch/execution-invoker.d.ts.map +1 -1
  207. package/dist/state-machine/dispatch/foreach-processor.d.ts.map +1 -1
  208. package/dist/state-machine/dispatch/policy-gate.d.ts +28 -0
  209. package/dist/state-machine/dispatch/policy-gate.d.ts.map +1 -0
  210. package/dist/state-machine/dispatch/sandbox-routing.d.ts +21 -0
  211. package/dist/state-machine/dispatch/sandbox-routing.d.ts.map +1 -0
  212. package/dist/state-machine/states/level-dispatch.d.ts.map +1 -1
  213. package/dist/state-machine/states/routing.d.ts.map +1 -1
  214. package/dist/state-machine/states/wave-planning.d.ts.map +1 -1
  215. package/dist/state-machine-execution-engine.d.ts.map +1 -1
  216. package/dist/test-runner/core/flow-stage.d.ts.map +1 -1
  217. package/dist/test-runner/index.d.ts.map +1 -1
  218. package/dist/test-runner/validator.d.ts.map +1 -1
  219. package/dist/tui/chat-runner.d.ts +39 -0
  220. package/dist/tui/chat-runner.d.ts.map +1 -0
  221. package/dist/tui/chat-state.d.ts +57 -0
  222. package/dist/tui/chat-state.d.ts.map +1 -0
  223. package/dist/tui/chat-tui.d.ts +70 -0
  224. package/dist/tui/chat-tui.d.ts.map +1 -0
  225. package/dist/tui/components/chat-box.d.ts +42 -0
  226. package/dist/tui/components/chat-box.d.ts.map +1 -0
  227. package/dist/tui/components/input-bar.d.ts +67 -0
  228. package/dist/tui/components/input-bar.d.ts.map +1 -0
  229. package/dist/tui/components/status-bar.d.ts +34 -0
  230. package/dist/tui/components/status-bar.d.ts.map +1 -0
  231. package/dist/tui/components/trace-viewer.d.ts +74 -0
  232. package/dist/tui/components/trace-viewer.d.ts.map +1 -0
  233. package/dist/tui/index.d.ts +14 -0
  234. package/dist/tui/index.d.ts.map +1 -0
  235. package/dist/tui/tui-frontend.d.ts +29 -0
  236. package/dist/tui/tui-frontend.d.ts.map +1 -0
  237. package/dist/types/bot.d.ts +35 -0
  238. package/dist/types/bot.d.ts.map +1 -1
  239. package/dist/types/config.d.ts +197 -2
  240. package/dist/types/config.d.ts.map +1 -1
  241. package/dist/types/engine.d.ts +8 -0
  242. package/dist/types/engine.d.ts.map +1 -1
  243. package/dist/types/execution.d.ts +1 -1
  244. package/dist/types/execution.d.ts.map +1 -1
  245. package/dist/utils/sandbox.d.ts.map +1 -1
  246. package/package.json +17 -5
  247. package/dist/docs/NPM_USAGE.md +0 -281
  248. package/dist/generated/config-schema.json +0 -2209
  249. package/dist/output/traces/run-2026-02-05T13-36-03-279Z.ndjson +0 -138
  250. package/dist/output/traces/run-2026-02-05T13-36-48-767Z.ndjson +0 -1137
  251. package/dist/output/traces/run-2026-02-05T13-36-58-960Z.ndjson +0 -17
  252. package/dist/output/traces/run-2026-02-05T13-37-00-184Z.ndjson +0 -205
  253. package/dist/sdk/check-provider-registry-OB5FEBJU.mjs +0 -28
  254. package/dist/sdk/check-provider-registry-UC2LPSB4.mjs +0 -28
  255. package/dist/sdk/chunk-D55IQCUP.mjs.map +0 -1
  256. package/dist/sdk/chunk-LMJSJQPP.mjs.map +0 -1
  257. package/dist/sdk/chunk-UKG5UP5U.mjs.map +0 -1
  258. package/dist/sdk/chunk-UPKHRMUA.mjs.map +0 -1
  259. package/dist/sdk/chunk-V7RIRPO7.mjs.map +0 -1
  260. package/dist/sdk/chunk-VEROLBCD.mjs.map +0 -1
  261. package/dist/sdk/event-bus-XV2TOQFU.mjs +0 -35
  262. package/dist/sdk/failure-condition-evaluator-KRFY4OLQ.mjs +0 -17
  263. package/dist/sdk/git-repository-analyzer-VO7OZMTM.mjs +0 -458
  264. package/dist/sdk/git-repository-analyzer-VO7OZMTM.mjs.map +0 -1
  265. package/dist/sdk/github-frontend-UC326PMS.mjs.map +0 -1
  266. package/dist/sdk/host-H7MKML2H.mjs +0 -52
  267. package/dist/sdk/host-H7MKML2H.mjs.map +0 -1
  268. package/dist/sdk/memory-store-LPOZWQ5E.mjs +0 -12
  269. package/dist/sdk/ndjson-sink-JQ2INHTS.mjs +0 -44
  270. package/dist/sdk/routing-745DOEKR.mjs +0 -24
  271. package/dist/sdk/slack-frontend-UPYUYCUQ.mjs +0 -821
  272. package/dist/sdk/slack-frontend-UPYUYCUQ.mjs.map +0 -1
  273. package/dist/sdk/workflow-check-provider-AA3VNYUY.mjs +0 -28
  274. package/dist/sdk/workflow-check-provider-LQNQZUN5.mjs +0 -28
  275. package/dist/sdk/workflow-registry-W7IEH7GK.mjs +0 -12
  276. package/dist/traces/run-2026-02-05T13-36-03-279Z.ndjson +0 -138
  277. package/dist/traces/run-2026-02-05T13-36-48-767Z.ndjson +0 -1137
  278. package/dist/traces/run-2026-02-05T13-36-58-960Z.ndjson +0 -17
  279. package/dist/traces/run-2026-02-05T13-37-00-184Z.ndjson +0 -205
  280. package/dist/tui.d.ts +0 -51
  281. package/dist/tui.d.ts.map +0 -1
  282. /package/dist/sdk/{check-provider-registry-OB5FEBJU.mjs.map → check-provider-registry-PANIXYRB.mjs.map} +0 -0
  283. /package/dist/sdk/{check-provider-registry-UC2LPSB4.mjs.map → check-provider-registry-S7DKTEM6.mjs.map} +0 -0
  284. /package/dist/sdk/{chunk-N7IVCCGH.mjs.map → chunk-DIND4ZCV.mjs.map} +0 -0
  285. /package/dist/sdk/{chunk-SIMCSNXO.mjs.map → chunk-GEW6LS32.mjs.map} +0 -0
  286. /package/dist/sdk/{chunk-YCUWMIV5.mjs.map → chunk-JL7JXCET.mjs.map} +0 -0
  287. /package/dist/sdk/{chunk-QRXSDDYN.mjs.map → chunk-LG4AUKHB.mjs.map} +0 -0
  288. /package/dist/sdk/{chunk-P6YFV6N2.mjs.map → chunk-SZXICFQ3.mjs.map} +0 -0
  289. /package/dist/sdk/{chunk-UEWXVJ6C.mjs.map → chunk-VPC3QSPW.mjs.map} +0 -0
  290. /package/dist/sdk/{command-executor-C4DGIQ4Q.mjs.map → command-executor-TOYBBE7S.mjs.map} +0 -0
  291. /package/dist/sdk/{config-GYTBTHRZ.mjs.map → config-OGOS4ZU4.mjs.map} +0 -0
  292. /package/dist/sdk/{failure-condition-evaluator-KRFY4OLQ.mjs.map → failure-condition-evaluator-HC3M5377.mjs.map} +0 -0
  293. /package/dist/sdk/{liquid-extensions-WJAC7QKG.mjs.map → lazy-otel-5NH4ZJJM.mjs.map} +0 -0
  294. /package/dist/sdk/{memory-store-LPOZWQ5E.mjs.map → liquid-extensions-E4EUOCES.mjs.map} +0 -0
  295. /package/dist/sdk/{metrics-CSBGJEWW.mjs.map → memory-store-AAPL2MTE.mjs.map} +0 -0
  296. /package/dist/sdk/{prompt-state-X2WDGSEM.mjs.map → metrics-I6A7IHG4.mjs.map} +0 -0
  297. /package/dist/sdk/{routing-745DOEKR.mjs.map → prompt-state-VAKKC773.mjs.map} +0 -0
  298. /package/dist/sdk/{renderer-schema-FRCLA6KH.mjs.map → renderer-schema-HXEW6BRJ.mjs.map} +0 -0
  299. /package/dist/sdk/{trace-helpers-LUCR52GY.mjs.map → routing-OZQWAGAI.mjs.map} +0 -0
  300. /package/dist/sdk/{workflow-check-provider-AA3VNYUY.mjs.map → schedule-tool-handler-B7TMSG6A.mjs.map} +0 -0
  301. /package/dist/sdk/{workflow-check-provider-LQNQZUN5.mjs.map → schedule-tool-handler-EBNKDUJC.mjs.map} +0 -0
  302. /package/dist/sdk/{workflow-registry-W7IEH7GK.mjs.map → trace-helpers-PP3YHTAM.mjs.map} +0 -0
package/dist/sdk/sdk.d.ts CHANGED
@@ -64,9 +64,102 @@ interface ReviewSummary {
64
64
  }
65
65
 
66
66
  /**
67
- * Types for Visor configuration system
67
+ * Types for Docker-based sandbox execution environments
68
68
  */
69
69
 
70
+ /**
71
+ * Cache configuration for sandbox volumes
72
+ */
73
+ interface SandboxCacheConfig {
74
+ /** Liquid template for cache scope prefix (default: git branch) */
75
+ prefix?: string;
76
+ /** Fallback prefix when current prefix has no cache */
77
+ fallback_prefix?: string;
78
+ /** Paths inside the container to cache */
79
+ paths: string[];
80
+ /** Time-to-live for cache volumes (e.g., "7d", "24h") */
81
+ ttl?: string;
82
+ /** Maximum number of cache scopes to keep */
83
+ max_scopes?: number;
84
+ }
85
+ /**
86
+ * Resource limits for sandbox containers
87
+ */
88
+ interface SandboxResourceConfig {
89
+ /** Memory limit (e.g., "512m", "2g") */
90
+ memory?: string;
91
+ /** CPU limit (e.g., 1.0, 0.5) */
92
+ cpu?: number;
93
+ }
94
+ /**
95
+ * Configuration for a single sandbox environment
96
+ */
97
+ interface SandboxConfig {
98
+ /** Docker image to use (e.g., "node:20-alpine") */
99
+ image?: string;
100
+ /** Path to Dockerfile (relative to config file or absolute) */
101
+ dockerfile?: string;
102
+ /** Inline Dockerfile content */
103
+ dockerfile_inline?: string;
104
+ /** Path to docker-compose file */
105
+ compose?: string;
106
+ /** Service name within the compose file */
107
+ service?: string;
108
+ /** Working directory inside container (default: /workspace) */
109
+ workdir?: string;
110
+ /** Glob patterns for host env vars to forward into sandbox */
111
+ env_passthrough?: string[];
112
+ /** Enable/disable network access (default: true) */
113
+ network?: boolean;
114
+ /** Mount repo as read-only (default: false) */
115
+ read_only?: boolean;
116
+ /** Resource limits */
117
+ resources?: SandboxResourceConfig;
118
+ /** Where visor is mounted inside container (default: /opt/visor) */
119
+ visor_path?: string;
120
+ /** Cache volume configuration */
121
+ cache?: SandboxCacheConfig;
122
+ }
123
+
124
+ interface PolicyConfig {
125
+ /** Policy engine mode */
126
+ engine: 'local' | 'remote' | 'disabled';
127
+ /** Path to .rego files or .wasm bundle (local mode) */
128
+ rules?: string | string[];
129
+ /** Path to a JSON file to load as OPA data document */
130
+ data?: string;
131
+ /** OPA server URL (remote mode) */
132
+ url?: string;
133
+ /** Default decision when policy evaluation fails */
134
+ fallback?: 'allow' | 'deny' | 'warn';
135
+ /** Evaluation timeout in ms (default: 5000) */
136
+ timeout?: number;
137
+ /** Role definitions: map role names to conditions */
138
+ roles?: Record<string, PolicyRoleConfig>;
139
+ }
140
+ interface PolicyRoleConfig {
141
+ /** GitHub author associations that map to this role */
142
+ author_association?: string[];
143
+ /** GitHub team slugs (requires GitHub API) */
144
+ teams?: string[];
145
+ /** Explicit GitHub usernames */
146
+ users?: string[];
147
+ /** Slack user IDs (e.g., ["U0123ABC"]) */
148
+ slack_users?: string[];
149
+ /** Email addresses for identity matching (e.g., ["alice@co.com"]) */
150
+ emails?: string[];
151
+ /** Slack channel IDs — role only applies when triggered from these channels */
152
+ slack_channels?: string[];
153
+ }
154
+ interface StepPolicyOverride {
155
+ /** Required role(s) - any of these roles suffices */
156
+ require?: string | string[];
157
+ /** Explicit deny for roles */
158
+ deny?: string[];
159
+ /** Custom OPA rule path for this step */
160
+ rule?: string;
161
+ }
162
+
70
163
  /**
71
164
  * Failure condition severity levels
72
165
  */
@@ -268,6 +361,8 @@ interface AIProviderConfig {
268
361
  bashConfig?: BashConfig;
269
362
  /** Completion prompt for post-completion validation/review (runs after attempt_completion) */
270
363
  completion_prompt?: string;
364
+ /** Enable the schedule tool for scheduling workflow executions (requires scheduler configuration) */
365
+ enable_scheduler?: boolean;
271
366
  }
272
367
  /**
273
368
  * Unified MCP server/tool entry - type detected by which properties are present
@@ -624,6 +719,10 @@ interface CheckConfig {
624
719
  cleanup_on_failure?: boolean;
625
720
  /** Keep worktree after workflow completion (default: false) */
626
721
  persist_worktree?: boolean;
722
+ /** Sandbox name to use for this check (overrides workspace-level default) */
723
+ sandbox?: string;
724
+ /** Per-step policy override (enterprise) */
725
+ policy?: StepPolicyOverride;
627
726
  }
628
727
  /**
629
728
  * Backoff policy for retries
@@ -666,12 +765,16 @@ interface OnFailConfig {
666
765
  */
667
766
  transitions?: TransitionRule[];
668
767
  }
768
+ /**
769
+ * Success routing run item - can be step name, step with args, or workflow with args
770
+ */
771
+ type OnSuccessRunItem = string | OnInitStepInvocation | OnInitWorkflowInvocation;
669
772
  /**
670
773
  * Success routing configuration per check
671
774
  */
672
775
  interface OnSuccessConfig {
673
- /** Post-success steps to run */
674
- run?: string[];
776
+ /** Post-success steps to run - can be step names or rich invocations with arguments */
777
+ run?: OnSuccessRunItem[];
675
778
  /** Optional jump back to ancestor step (by id) */
676
779
  goto?: string;
677
780
  /** Simulate a different event when performing goto (e.g., 'pr_updated') */
@@ -1026,6 +1129,145 @@ interface WorkflowOutput {
1026
1129
  /** Value using JavaScript expression (alternative to value) */
1027
1130
  value_js?: string;
1028
1131
  }
1132
+ interface SandboxDefaults {
1133
+ /** Base env var patterns for all sandboxes (replaces hardcoded defaults when set) */
1134
+ env_passthrough?: string[];
1135
+ }
1136
+ /**
1137
+ * Static cron job defined in YAML configuration
1138
+ * These are always executed by the scheduler daemon
1139
+ */
1140
+ interface StaticCronJob {
1141
+ /** Cron expression (e.g., "0 9 * * 1" for every Monday at 9am) */
1142
+ schedule: string;
1143
+ /** Workflow/check ID to run */
1144
+ workflow: string;
1145
+ /** Optional workflow inputs */
1146
+ inputs?: Record<string, unknown>;
1147
+ /** Output destination configuration */
1148
+ output?: {
1149
+ /** Output type: slack, github, webhook, or none */
1150
+ type: 'slack' | 'github' | 'webhook' | 'none';
1151
+ /** Target (channel name, repo, URL) */
1152
+ target?: string;
1153
+ /** Thread ID for threaded outputs */
1154
+ thread_id?: string;
1155
+ };
1156
+ /** Description for logging/display */
1157
+ description?: string;
1158
+ /** Enable/disable this job (default: true) */
1159
+ enabled?: boolean;
1160
+ /** Timezone for schedule (default: UTC or scheduler default) */
1161
+ timezone?: string;
1162
+ }
1163
+ /**
1164
+ * Scheduler limits configuration
1165
+ */
1166
+ interface SchedulerLimitsConfig {
1167
+ /** Maximum schedules per user (default: 25) */
1168
+ max_per_user?: number;
1169
+ /** Maximum recurring schedules per user (default: 10) */
1170
+ max_recurring_per_user?: number;
1171
+ /** Maximum total schedules (default: 1000) */
1172
+ max_global?: number;
1173
+ }
1174
+ /**
1175
+ * Scheduler permissions for dynamic schedule creation
1176
+ */
1177
+ interface SchedulerPermissionsConfig {
1178
+ /** Allow personal schedules (via DM or CLI) */
1179
+ allow_personal?: boolean;
1180
+ /** Allow channel schedules (in Slack channels) */
1181
+ allow_channel?: boolean;
1182
+ /** Allow DM schedules (to specific users) */
1183
+ allow_dm?: boolean;
1184
+ /** List of allowed workflow patterns (glob-style, e.g., "report-*") */
1185
+ allowed_workflows?: string[];
1186
+ /** List of denied workflow patterns */
1187
+ denied_workflows?: string[];
1188
+ }
1189
+ /**
1190
+ * SSL/TLS configuration for scheduler database connections
1191
+ */
1192
+ interface SchedulerSslConfig {
1193
+ /** Enable SSL (default: true when SslConfig object is provided) */
1194
+ enabled?: boolean;
1195
+ /** Reject unauthorized certificates (default: true) */
1196
+ reject_unauthorized?: boolean;
1197
+ /** Path to CA certificate PEM file */
1198
+ ca?: string;
1199
+ /** Path to client certificate PEM file */
1200
+ cert?: string;
1201
+ /** Path to client key PEM file */
1202
+ key?: string;
1203
+ }
1204
+ /**
1205
+ * Scheduler storage connection configuration
1206
+ */
1207
+ interface SchedulerStorageConnectionConfig {
1208
+ /** SQLite database file path (default: '.visor/schedules.db') */
1209
+ filename?: string;
1210
+ /** Database host (PostgreSQL/MySQL/MSSQL) */
1211
+ host?: string;
1212
+ /** Database port (PostgreSQL/MySQL/MSSQL) */
1213
+ port?: number;
1214
+ /** Database name (PostgreSQL/MySQL/MSSQL) */
1215
+ database?: string;
1216
+ /** Database user (PostgreSQL/MySQL/MSSQL) */
1217
+ user?: string;
1218
+ /** Database password (PostgreSQL/MySQL/MSSQL) */
1219
+ password?: string;
1220
+ /** SSL/TLS configuration (PostgreSQL/MySQL/MSSQL) */
1221
+ ssl?: boolean | SchedulerSslConfig;
1222
+ /** Connection string URL (e.g., postgresql://user:pass@host/db) */
1223
+ connection_string?: string;
1224
+ /** Connection pool configuration */
1225
+ pool?: {
1226
+ min?: number;
1227
+ max?: number;
1228
+ };
1229
+ }
1230
+ /**
1231
+ * Scheduler high-availability configuration
1232
+ */
1233
+ interface SchedulerHAConfig {
1234
+ /** Enable distributed locking for multi-node deployments (default: false) */
1235
+ enabled?: boolean;
1236
+ /** Unique node identifier (default: hostname-pid) */
1237
+ node_id?: string;
1238
+ /** Lock time-to-live in seconds (default: 60) */
1239
+ lock_ttl?: number;
1240
+ /** Heartbeat interval for lock renewal in seconds (default: 15) */
1241
+ heartbeat_interval?: number;
1242
+ }
1243
+ /**
1244
+ * Scheduler configuration for workflow scheduling
1245
+ */
1246
+ interface SchedulerConfig {
1247
+ /** Enable/disable the scheduler (default: true) */
1248
+ enabled?: boolean;
1249
+ /** Storage configuration */
1250
+ storage?: {
1251
+ /** Path to schedules JSON file (legacy, triggers auto-migration) */
1252
+ path?: string;
1253
+ /** Database driver (default: 'sqlite') */
1254
+ driver?: 'sqlite' | 'postgresql' | 'mysql' | 'mssql';
1255
+ /** Database connection configuration */
1256
+ connection?: SchedulerStorageConnectionConfig;
1257
+ };
1258
+ /** High-availability configuration for multi-node deployments */
1259
+ ha?: SchedulerHAConfig;
1260
+ /** Limits for dynamic schedules */
1261
+ limits?: SchedulerLimitsConfig;
1262
+ /** Default timezone (IANA format, e.g., "America/New_York") */
1263
+ default_timezone?: string;
1264
+ /** Check interval in milliseconds (default: 60000) */
1265
+ check_interval_ms?: number;
1266
+ /** Permissions for dynamic schedule creation (via AI tool) */
1267
+ permissions?: SchedulerPermissionsConfig;
1268
+ /** Static cron jobs defined in configuration (always executed) */
1269
+ cron?: Record<string, StaticCronJob>;
1270
+ }
1029
1271
  /**
1030
1272
  * Main Visor configuration
1031
1273
  */
@@ -1087,8 +1329,18 @@ interface VisorConfig {
1087
1329
  }>;
1088
1330
  /** Workspace isolation configuration for sandboxed execution */
1089
1331
  workspace?: WorkspaceConfig;
1332
+ /** Workspace-level default sandbox name (all checks use this unless overridden) */
1333
+ sandbox?: string;
1334
+ /** Named sandbox environment definitions */
1335
+ sandboxes?: Record<string, SandboxConfig>;
1336
+ /** Workspace-level sandbox defaults (env allowlist, etc.) */
1337
+ sandbox_defaults?: SandboxDefaults;
1090
1338
  /** Slack configuration */
1091
1339
  slack?: SlackConfig;
1340
+ /** Scheduler configuration for scheduled workflow execution */
1341
+ scheduler?: SchedulerConfig;
1342
+ /** Enterprise policy engine configuration */
1343
+ policy?: PolicyConfig;
1092
1344
  }
1093
1345
  /**
1094
1346
  * Workspace isolation configuration
@@ -1141,7 +1393,7 @@ interface CheckExecutionStats {
1141
1393
  failedRuns: number;
1142
1394
  skippedRuns: number;
1143
1395
  skipped: boolean;
1144
- skipReason?: 'if_condition' | 'fail_fast' | 'dependency_failed' | 'forEach_empty' | 'assume';
1396
+ skipReason?: 'if_condition' | 'fail_fast' | 'dependency_failed' | 'forEach_empty' | 'assume' | 'policy_denied';
1145
1397
  skipCondition?: string;
1146
1398
  totalDuration: number;
1147
1399
  providerDurationMs?: number;
@@ -1250,6 +1502,27 @@ declare class EventBus {
1250
1502
  emit(event: AnyEvent | EventEnvelope): Promise<void>;
1251
1503
  }
1252
1504
 
1505
+ /** Bot transport types (trimmed for Slack v1) */
1506
+ type BotTransportType = 'slack' | string;
1507
+ interface NormalizedMessage {
1508
+ role: 'user' | 'bot';
1509
+ text: string;
1510
+ timestamp: string;
1511
+ origin?: string;
1512
+ /** Optional user identifier (e.g., Slack user id, GitHub login) */
1513
+ user?: string;
1514
+ }
1515
+ interface ConversationContext {
1516
+ transport: BotTransportType;
1517
+ thread: {
1518
+ id: string;
1519
+ url?: string;
1520
+ };
1521
+ messages: NormalizedMessage[];
1522
+ current: NormalizedMessage;
1523
+ attributes: Record<string, string>;
1524
+ }
1525
+
1253
1526
  /**
1254
1527
  * Execution context passed to check providers
1255
1528
  */
@@ -1259,6 +1532,8 @@ interface ExecutionContext {
1259
1532
  reuseSession?: boolean;
1260
1533
  /** CLI message value (from --message argument) */
1261
1534
  cliMessage?: string;
1535
+ /** Conversation context - unified access to user message across transports (CLI, Slack, etc.) */
1536
+ conversation?: ConversationContext;
1262
1537
  /**
1263
1538
  * Stage-local baseline of output history lengths per check name.
1264
1539
  * When present, providers should expose an `outputs_history_stage` object in
@@ -1316,6 +1591,11 @@ interface ExecutionContext {
1316
1591
  webhookData?: Map<string, unknown>;
1317
1592
  eventType?: string;
1318
1593
  };
1594
+ /**
1595
+ * Callback for capturing AI responses - used by scheduler to store previousResponse
1596
+ * for recurring reminders. The text passed is the AI response before mrkdwn formatting.
1597
+ */
1598
+ responseCapture?: (text: string) => void;
1319
1599
  }
1320
1600
 
1321
1601
  interface VisorOptions {