@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/README.md CHANGED
@@ -96,6 +96,9 @@ visor validate --config .visor.yaml # Validate specific config file
96
96
  # Run all checks with a table output
97
97
  visor --check all --output table
98
98
 
99
+ # Interactive TUI mode (chat-style interface for human-input workflows)
100
+ visor --tui --config ./my-workflow.yaml
101
+
99
102
  # Filter by tags (e.g., fast/local) and increase parallelism
100
103
  visor --tags fast,local --max-parallelism 5
101
104
 
@@ -112,14 +115,18 @@ visor --event all # Run all checks regardless of event filters (
112
115
  # Emit machine‑readable results and save to a file
113
116
  visor --check security --output json --output-file visor-results.json
114
117
 
118
+ # Visual debugger with web UI
119
+ visor --debug-server --debug-port 3456
120
+
115
121
  # Discover options
116
122
  visor --help
117
123
  ```
118
124
 
119
- See full options and examples: [docs/NPM_USAGE.md](docs/NPM_USAGE.md)
125
+ See full CLI options: [docs/commands.md](docs/commands.md)
120
126
 
121
127
  Additional guides:
122
128
 
129
+ - debugging and local development (TUI, debug server): [docs/debugging.md](docs/debugging.md)
123
130
  - fail conditions: [docs/fail-if.md](docs/fail-if.md)
124
131
  - forEach behavior and dependent propagation (including outputs_raw and history precedence): [docs/foreach-dependency-propagation.md](docs/foreach-dependency-propagation.md)
125
132
  - Failure routing and `on_finish` (with outputs_raw in routing JS): [docs/failure-routing.md](docs/failure-routing.md)
@@ -127,6 +134,7 @@ Additional guides:
127
134
  - execution limits (run caps for safety): [docs/limits.md](docs/limits.md)
128
135
  - output formatting limits and truncation controls: [docs/output-formatting.md](docs/output-formatting.md)
129
136
  - live execution visualizer and control API: [docs/debug-visualizer.md](docs/debug-visualizer.md)
137
+ - scheduler for cron jobs and dynamic schedules: [docs/scheduler.md](docs/scheduler.md)
130
138
 
131
139
  ## 🧪 Integration Tests
132
140
 
@@ -178,6 +186,7 @@ Visor is a general SDLC automation framework:
178
186
  - [Developer Experience Playbook](#-developer-experience-playbook)
179
187
  - [Tag-Based Check Filtering](#-tag-based-check-filtering)
180
188
  - [PR Comment Commands](#-pr-comment-commands)
189
+ - [Enterprise Policy Engine (EE)](#-enterprise-policy-engine-ee)
181
190
  - [Suppressing Warnings](#-suppressing-warnings)
182
191
  - [Troubleshooting](#-troubleshooting)
183
192
  - [Security Defaults](#-security-defaults)
@@ -299,6 +308,28 @@ steps:
299
308
 
300
309
  Learn more: [docs/author-permissions.md](docs/author-permissions.md)
301
310
 
311
+ ## 🏢 Enterprise Policy Engine (EE)
312
+
313
+ > **Enterprise Edition feature.** Requires a Visor EE license. Contact **hello@probelabs.com**.
314
+
315
+ Add OPA-based role-based access control to gate checks, MCP tools, and AI capabilities using [Rego](https://www.openpolicyagent.org/docs/latest/policy-language/) policies.
316
+
317
+ ```yaml
318
+ policy:
319
+ engine: local
320
+ rules: ./policies/
321
+ fallback: deny
322
+ roles:
323
+ admin:
324
+ author_association: [OWNER]
325
+ developer:
326
+ author_association: [MEMBER, COLLABORATOR]
327
+ ```
328
+
329
+ Checks denied by policy are skipped with reason `policy_denied`. Without a valid license, the engine silently disables and all checks run normally.
330
+
331
+ Learn more: [docs/enterprise-policy.md](docs/enterprise-policy.md) | [examples/enterprise-policy/](examples/enterprise-policy/)
332
+
302
333
  ## 🔇 Suppressing Warnings
303
334
 
304
335
  Suppress a specific issue by adding a nearby `visor-disable` comment.
@@ -618,6 +649,28 @@ Learn more: [docs/sdk.md](docs/sdk.md)
618
649
 
619
650
  Comprehensive debugging tools help troubleshoot configurations and data flows:
620
651
 
652
+ ### Running Locally
653
+
654
+ ```bash
655
+ # Basic CLI run
656
+ visor --config .visor.yaml --check all
657
+
658
+ # TUI mode - interactive chat interface for human-input workflows
659
+ visor --tui --config ./examples/calculator-config.yaml
660
+
661
+ # Debug server - web UI for stepping through execution
662
+ visor --debug-server --debug-port 3456
663
+
664
+ # Combine options for full visibility
665
+ visor --tui --config .visor.yaml --debug
666
+ ```
667
+
668
+ **TUI Mode Features:**
669
+ - Chat-style interface with persistent input bar
670
+ - Press `Tab` to switch between Chat and Logs tabs
671
+ - Re-run workflows by typing new messages after completion
672
+ - Press `q` to exit when done
673
+
621
674
  ### Quick Debugging Tips
622
675
 
623
676
  **Use `log()` in JavaScript expressions:**
@@ -0,0 +1,420 @@
1
+ version: "1.0"
2
+
3
+ # Default Visor configuration - provides comprehensive code analysis out-of-the-box
4
+ # Uses mock provider for CI compatibility when no AI API keys are configured
5
+ # Users can override this by creating their own .visor.yaml in their project root
6
+
7
+ # Global AI provider settings - users should configure their preferred provider
8
+ # For CI testing, use --provider mock CLI flag instead
9
+
10
+ # Run checks sequentially to ensure session reuse works correctly
11
+ max_parallelism: 1
12
+
13
+ # 🔄 AI Session Reuse Feature:
14
+ # This configuration demonstrates the new 'reuse_ai_session' feature that allows
15
+ # dependent checks to continue conversations with the same AI session, providing
16
+ # context continuity and more intelligent follow-up analysis.
17
+ #
18
+ # Example: security-remediation reuses the session from the security check,
19
+ # allowing the AI to reference the previous security analysis discussion.
20
+
21
+ # Global fail condition - fail if critical or error severity issues are found
22
+ fail_if: "output.issues && output.issues.some(i => i.severity === 'critical' || i.severity === 'error')"
23
+
24
+ checks:
25
+ # AI-powered release notes generation - manual execution only for release workflows
26
+ release-notes:
27
+ type: ai
28
+ group: release
29
+ schema: plain
30
+ prompt: |
31
+ Generate professional release notes for version {{ env.TAG_NAME }} of this project.
32
+
33
+ Analyze the git commits since the last release:
34
+ ```
35
+ {{ env.GIT_LOG }}
36
+ ```
37
+
38
+ And the file changes summary:
39
+ ```
40
+ {{ env.GIT_DIFF_STAT }}
41
+ ```
42
+
43
+ Create release notes with these sections:
44
+
45
+ ## 🚀 What's New in {{ env.TAG_NAME }}
46
+
47
+ ### ✨ New Features
48
+ List any new features added (look for feat: commits)
49
+
50
+ ### 🐛 Bug Fixes
51
+ List any bugs fixed (look for fix: commits)
52
+
53
+ ### 📈 Improvements
54
+ List any improvements or refactoring (look for refactor:, perf:, chore:, build: commits)
55
+
56
+ ### 🔥 Breaking Changes
57
+ List any breaking changes if present (look for BREAKING CHANGE or ! in commits)
58
+
59
+ ### 📊 Statistics
60
+ - Number of commits since last release
61
+ - Number of contributors involved
62
+ - Number of files changed
63
+
64
+ Keep descriptions concise and user-friendly. Focus on what changed from a user perspective, not implementation details.
65
+ Use present tense and action-oriented language. Group similar changes together.
66
+ on: [manual]
67
+
68
+ # PR overview with intelligent analysis - runs first to establish context
69
+ overview:
70
+ type: ai
71
+ group: overview
72
+ prompt: |
73
+ # 📋 Pull Request Overview: {{ pr.title }}
74
+
75
+ {% if pr.body %}
76
+ ## Description
77
+ {{ pr.body }}
78
+ {% endif %}
79
+
80
+ ## Files Changed Analysis
81
+
82
+ Analyze the files listed in the `<files_summary>` section, which provides a structured overview of all changes including filenames, status, additions, and deletions.
83
+
84
+ ## Architecture & Impact Assessment
85
+
86
+ Please generate a comprehensive overview and analysis of this pull request.
87
+
88
+ Follow these instructions to create a thorough assessment:
89
+
90
+ 1. **Change Impact Analysis**
91
+ - What this PR accomplishes
92
+ - Key technical changes introduced
93
+ - Affected system components
94
+
95
+ 2. **Architecture Visualization**
96
+ - Create appropriate mermaid diagram(s) to visualize the changes
97
+ - Choose the best diagram type for the context
98
+ - Use multiple diagrams if needed to explain different aspects
99
+ - Focus on modified components and their relationships
100
+
101
+ Provide a balanced technical assessment suitable for both developers and stakeholders.
102
+ on: [pr_opened, pr_updated]
103
+
104
+ # Security analysis - Critical for all projects
105
+ security:
106
+ type: ai
107
+ group: review
108
+ schema: code-review
109
+ prompt: |
110
+ Based on our overview discussion, please perform a comprehensive security analysis of the code changes.
111
+
112
+ Analyze the files listed in the `<files_summary>` section and focus on the code changes shown in the diff sections.
113
+
114
+ ## Security Analysis Areas
115
+
116
+ **Input Validation & Injection:**
117
+ - SQL injection in database queries
118
+ - XSS vulnerabilities in user input handling
119
+ - Command injection in system calls
120
+ - Path traversal in file operations
121
+
122
+ **Authentication & Authorization:**
123
+ - Weak authentication mechanisms
124
+ - Session management flaws
125
+ - Access control bypasses
126
+ - Privilege escalation opportunities
127
+
128
+ **Data Protection:**
129
+ - Sensitive data exposure in logs/errors
130
+ - Unencrypted data storage
131
+ - API key or credential leaks
132
+ - Privacy regulation compliance
133
+
134
+ **Infrastructure Security:**
135
+ - Insecure configurations
136
+ - Missing security headers
137
+ - Vulnerable dependencies
138
+ - Resource exhaustion vulnerabilities
139
+
140
+ Provide specific findings with clear explanations and actionable remediation steps.
141
+
142
+ ## Severity Guidelines
143
+ Use the following severity levels appropriately:
144
+ - **critical**: Security vulnerabilities that could lead to immediate compromise (RCE, SQL injection, authentication bypass, exposed secrets)
145
+ - **error**: Security issues that must be fixed before production (XSS, path traversal, weak crypto, missing auth checks)
146
+ - **warning**: Security concerns that should be addressed (verbose errors, missing rate limiting, insecure defaults)
147
+ - **info**: Security best practices and hardening suggestions (defense in depth, additional validation)
148
+ depends_on: [overview]
149
+ reuse_ai_session: true # 🔄 Reuses the overview check's AI session for context continuity
150
+ on: [pr_opened, pr_updated]
151
+
152
+ # Performance analysis - Important for all applications
153
+ performance:
154
+ type: ai
155
+ group: review
156
+ schema: code-review
157
+ prompt: |
158
+ Building on our overview and security analysis, now review the code changes for performance issues.
159
+
160
+ Focus on the files listed in `<files_summary>` and analyze the code changes shown in the `<full_diff>` or `<commit_diff>` sections.
161
+
162
+ ## Performance Analysis Areas
163
+ **Algorithm & Data Structure Efficiency:**
164
+ - Time complexity analysis (O(n), O(n²), etc.)
165
+ - Space complexity and memory usage
166
+ - Inefficient loops and nested operations
167
+ - Suboptimal data structure choices
168
+
169
+ **Database Performance:**
170
+ - N+1 query problems
171
+ - Missing database indexes
172
+ - Inefficient JOIN operations
173
+ - Large result set retrievals
174
+
175
+ **Resource Management:**
176
+ - Memory leaks and excessive allocations
177
+ - File handle management
178
+ - Connection pooling issues
179
+ - Resource cleanup patterns
180
+
181
+ **Async & Concurrency:**
182
+ - Blocking operations in async contexts
183
+ - Race conditions and deadlocks
184
+ - Inefficient parallel processing
185
+
186
+ Building on our overview and security analysis, identify performance issues and provide optimization recommendations that complement our previous findings.
187
+
188
+ ## Severity Guidelines
189
+ Use the following severity levels appropriately:
190
+ - **critical**: Performance issues causing system failure or severe degradation (infinite loops, memory leaks causing OOM)
191
+ - **error**: Significant performance problems affecting user experience (O(n²) in critical path, N+1 queries, blocking I/O)
192
+ - **warning**: Performance concerns that should be optimized (inefficient algorithms, missing indexes, unnecessary operations)
193
+ - **info**: Performance best practices and optimization opportunities (caching suggestions, async improvements)
194
+ depends_on: [security]
195
+ reuse_ai_session: true # 🔄 Reuses the security check's AI session for context continuity
196
+ on: [pr_opened, pr_updated]
197
+
198
+ # Code quality and maintainability
199
+ quality:
200
+ type: ai
201
+ group: review
202
+ schema: code-review
203
+ prompt: |
204
+ Building on our overview, security, and performance discussions, evaluate the code quality and maintainability.
205
+
206
+ Review the code changes shown in the `<full_diff>` or `<commit_diff>` sections, considering the files listed in `<files_summary>`.
207
+
208
+ ## Quality Assessment Areas
209
+ **Code Structure & Design:**
210
+ - SOLID principles adherence
211
+ - Design pattern appropriateness
212
+ - Separation of concerns
213
+ - Code organization and clarity
214
+
215
+ **Error Handling & Reliability:**
216
+ - Exception handling completeness
217
+ - Error propagation patterns
218
+ - Input validation thoroughness
219
+ - Edge case coverage
220
+
221
+ **Testing & Test Coverage:**
222
+ - Missing tests for critical functionality
223
+ - Test coverage gaps
224
+ - Test quality and effectiveness
225
+ - Edge cases and error scenarios coverage
226
+
227
+ **Maintainability:**
228
+ - Code testability issues
229
+ - Dependencies and coupling problems
230
+ - Technical debt introduction
231
+ - Code duplication (DRY violations)
232
+
233
+ **Language-Specific Best Practices:**
234
+ - Idiomatic code usage
235
+ - Framework/library best practices
236
+ - Type safety (if applicable)
237
+
238
+ Focus on actionable improvements that enhance code maintainability while considering the overview, security, and performance findings we've already discussed.
239
+
240
+ ## Severity Guidelines
241
+ Use the following severity levels appropriately:
242
+ - **critical**: Code quality issues that will cause bugs or failures (logic errors, race conditions, null pointer issues)
243
+ - **error**: Quality problems that significantly impact maintainability (no error handling, high complexity, severe coupling)
244
+ - **warning**: Quality concerns that should be addressed (missing tests, code duplication, poor naming)
245
+ - **info**: Best practices and improvement suggestions (refactoring opportunities, documentation improvements)
246
+ depends_on: [performance]
247
+ reuse_ai_session: true # 🔄 Reuses the performance check's AI session for context continuity
248
+ on: [pr_opened, pr_updated]
249
+
250
+ # Code style and formatting analysis
251
+ style:
252
+ type: ai
253
+ group: review
254
+ schema: code-review
255
+ prompt: |
256
+ Building on our overview, security, performance, and quality discussions, analyze the code style and formatting consistency.
257
+
258
+ Review the code changes shown in the `<full_diff>` or `<commit_diff>` sections, considering the files listed in `<files_summary>`.
259
+
260
+ ## Style Assessment Areas
261
+ **Code Formatting & Consistency:**
262
+ - Indentation and spacing consistency
263
+ - Naming conventions adherence
264
+ - Code organization and structure
265
+ - Comment style and documentation
266
+
267
+ **Language-Specific Style Guidelines:**
268
+ - Adherence to language style guides (PEP 8, ESLint, etc.)
269
+ - Import/require statement organization
270
+ - Variable and function naming patterns
271
+ - Code readability and clarity
272
+
273
+ **Team Standards:**
274
+ - Consistency with existing codebase patterns
275
+ - Formatting tool configuration compliance
276
+ - Documentation standards adherence
277
+ - Code comment quality and completeness
278
+
279
+ Focus on style improvements that enhance code readability and maintainability while considering our previous analysis.
280
+
281
+ ## Severity Guidelines
282
+ Use the following severity levels appropriately:
283
+ - **critical**: Never use for style issues (style issues are never critical)
284
+ - **error**: Major style violations that significantly harm readability (completely inconsistent formatting, misleading names)
285
+ - **warning**: Style inconsistencies that should be fixed (mixed conventions, unclear naming, formatting issues)
286
+ - **info**: Style suggestions and minor improvements (spacing, comment formatting, optional conventions)
287
+ depends_on: [quality]
288
+ reuse_ai_session: true # 🔄 Reuses the quality check's AI session for context continuity
289
+ on: [pr_opened, pr_updated]
290
+
291
+ # Command orchestrator - demonstrates noop type for triggering multiple checks
292
+ review-all:
293
+ type: noop
294
+ command: '/review'
295
+ depends_on: [overview, security, performance, quality, style]
296
+ on: [issue_comment]
297
+ if: "event.isPullRequest" # Only trigger on PR comments, not issues
298
+ group: orchestrator
299
+
300
+ # Intelligent Issue Assistant - provides sophisticated issue triage and assistance
301
+ issue-assistant:
302
+ type: ai
303
+ group: dynamic # Special group: creates new comment each time instead of updating
304
+ command: "visor"
305
+ if: "event.name === 'issues' && event.action === 'opened' || (event.name === 'issue_comment' && event.comment && event.comment.body && event.comment.body.trim().startsWith('/visor'))"
306
+ prompt: |
307
+ You are an intelligent GitHub issue assistant for the {{ event.repository.fullName }} repository. Your role is to provide professional, knowledgeable assistance based on the trigger event.
308
+
309
+ ## Event Context
310
+ **Event Type**: {{ event.name }} - {{ event.action }}
311
+ {% if event.issue -%}
312
+ **Issue #{{ event.issue.number }}**: {{ event.issue.title }}
313
+ **Author**: {{ event.issue.author }}
314
+ **State**: {{ event.issue.state }}
315
+ **Created**: {{ event.issue.createdAt }}
316
+ {%- if event.issue.labels.size > 0 %}
317
+ **Labels**: {% for label in event.issue.labels %}{{ label.name }}{% unless forloop.last %}, {% endunless %}{% endfor %}
318
+ {%- endif %}
319
+ {%- if event.issue.assignees.size > 0 %}
320
+ **Assignees**: {% for assignee in event.issue.assignees %}{{ assignee }}{% unless forloop.last %}, {% endunless %}{% endfor %}
321
+ {%- endif %}
322
+ {%- endif %}
323
+ {%- if event.comment %}
324
+ **Comment by**: {{ event.comment.author }}
325
+ {%- endif %}
326
+
327
+ ## Repository Analysis Context
328
+ {%- if event.isPullRequest and pr.title %}
329
+ **PR Context**: {{ pr.title }}
330
+ {%- endif %}
331
+ {%- if event.repository %}
332
+ **Repository**: {{ event.repository.fullName }}
333
+ {%- endif %}
334
+
335
+ ## Instructions
336
+
337
+ {%- if event.name == 'issues' and event.action == 'opened' %}
338
+
339
+ **ISSUE TRIAGE MODE**
340
+
341
+ Analyze this new issue and provide intelligent triage:
342
+
343
+ ### Issue Content
344
+ {{ event.issue.body }}
345
+
346
+ ### Analysis Tasks
347
+ 1. **Categorize** the issue (bug/feature/documentation/question/enhancement/maintenance)
348
+ 2. **Assess priority** (low/medium/high/urgent) based on:
349
+ - Impact on users/system
350
+ - Security implications
351
+ - Blocking nature
352
+ - Community interest
353
+ 3. **Estimate complexity** (trivial/simple/moderate/complex)
354
+ 4. **Suggest timeline** for resolution
355
+ 5. **Recommend labels** that would help with organization
356
+ 6. **Identify stakeholders** who should be involved or assignees
357
+ 7. **Provide initial response** to the issue author
358
+
359
+ ### Response Requirements
360
+ - Be professional and welcoming
361
+ - Show you understand the request
362
+ - Provide clear next steps
363
+ - Ask clarifying questions if needed
364
+ - Include technical insights where appropriate
365
+
366
+ {%- elsif event.name == 'issue_comment' %}
367
+
368
+ **ASSISTANCE MODE**
369
+
370
+ A user has asked a question or provided additional information. Provide helpful technical assistance:
371
+
372
+ ### Original Issue
373
+ {%- if event.issue.title %}
374
+ **Title**: {{ event.issue.title }}
375
+ {%- endif %}
376
+ {%- if event.issue.body %}
377
+ **Description**: {{ event.issue.body }}
378
+ {%- endif %}
379
+
380
+ ### Latest Comment
381
+ {{ event.comment.body }}
382
+
383
+ ### Analysis Tasks
384
+ 1. **Understand the context** of their question/comment
385
+ 2. **Provide technical guidance** based on project knowledge
386
+ 3. **Reference relevant code/files** if applicable
387
+ 4. **Suggest implementation approaches** for feature requests
388
+ 5. **Provide debugging steps** for bug reports
389
+ 6. **Link to documentation** or similar issues if helpful
390
+ 7. **Offer code examples** when appropriate
391
+
392
+ ### Response Requirements
393
+ - Address their specific question directly
394
+ - Provide actionable guidance
395
+ - Be encouraging and supportive
396
+ - Use technical language appropriate to their level
397
+ - Include code examples where helpful
398
+ - Reference project conventions and patterns
399
+
400
+ {%- endif %}
401
+
402
+ ### Special Instructions
403
+ - Always be professional, helpful, and encouraging
404
+ - Focus on actionable advice and clear next steps
405
+ - Use markdown formatting for better readability
406
+ - Include relevant code examples when helpful
407
+ - Reference project context and patterns when applicable
408
+ - If dealing with `/visor` commands in comments, acknowledge and provide assistance
409
+ - Maintain consistency with project tone and contributor guidelines
410
+
411
+ ### Response Format
412
+ Provide a well-structured markdown response with clear sections and helpful guidance.
413
+ on: [issue_opened, issue_comment]
414
+
415
+ # Output configuration
416
+ output:
417
+ pr_comment:
418
+ format: markdown
419
+ group_by: check
420
+ collapse: true
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/ai-review-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/ai-review-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/cli-main.ts"],"names":[],"mappings":"AAqgBA;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAisC1C"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/cli-main.ts"],"names":[],"mappings":"AAyxBA;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAu1C1C"}
package/dist/config.d.ts CHANGED
@@ -75,10 +75,18 @@ export declare class ConfigManager {
75
75
  * @param strict If true, treat warnings as errors (default: false)
76
76
  */
77
77
  validateConfig(config: Partial<VisorConfig>, strict?: boolean): void;
78
+ /**
79
+ * Validate sandbox configuration
80
+ */
81
+ private validateSandboxConfig;
78
82
  /**
79
83
  * Validate individual check configuration
80
84
  */
81
85
  private validateCheckConfig;
86
+ /**
87
+ * Validate policy engine configuration
88
+ */
89
+ private validatePolicyConfig;
82
90
  /**
83
91
  * Validate MCP servers object shape and values (basic shape only)
84
92
  */
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/config.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,WAAW,EAGX,YAAY,EAIZ,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,YAAY,EAS9C,CAAC;AAEX;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,eAAe,CAgBrB;IACF,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,kBAAkB,CAAgE;IAC1F,OAAO,CAAC,mBAAmB,CAA2D;IAEtF;;OAEG;IACU,UAAU,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,WAAW,CAAC;IAqHvB;;;OAGG;IACU,oBAAoB,CAC/B,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,EACzB,OAAO,GAAE,iBAAiB,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GACrD,OAAO,CAAC,WAAW,CAAC;IAkDvB;;OAEG;IACU,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;IA4CrF;;OAEG;YACW,qBAAqB;IAiBnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC;IAgBrD;;OAEG;IACI,wBAAwB,IAAI,WAAW,GAAG,IAAI;IA0FrD;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;;OAGG;YACW,uBAAuB;IAkFrC;;OAEG;YACW,aAAa;IA6B3B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAgC/B;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,UAAU,GAAG,YAAY;IAqB9F;;OAEG;IACU,0BAA0B,IAAI,OAAO,CAAC;QACjD,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,oBAAoB,EAAE,oBAAoB,CAAC;KAC5C,CAAC;IA2BF;;;;OAIG;IACI,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,UAAQ,GAAG,IAAI;IAkLzE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8T3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA0DhC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAmF7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6DzB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA6EhC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA6B1B"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/config.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,WAAW,EAGX,YAAY,EAIZ,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,YAAY,EAS9C,CAAC;AAEX;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,eAAe,CAgBrB;IACF,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,kBAAkB,CAAgE;IAC1F,OAAO,CAAC,mBAAmB,CAA2D;IAEtF;;OAEG;IACU,UAAU,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,WAAW,CAAC;IAqHvB;;;OAGG;IACU,oBAAoB,CAC/B,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,EACzB,OAAO,GAAE,iBAAiB,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GACrD,OAAO,CAAC,WAAW,CAAC;IAkDvB;;OAEG;IACU,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;IA4CrF;;OAEG;YACW,qBAAqB;IAiBnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC;IAgBrD;;OAEG;IACI,wBAAwB,IAAI,WAAW,GAAG,IAAI;IA0FrD;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;;OAGG;YACW,uBAAuB;IAkFrC;;OAEG;YACW,aAAa;IA6B3B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAgC/B;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,UAAU,GAAG,YAAY;IAqB9F;;OAEG;IACU,0BAA0B,IAAI,OAAO,CAAC;QACjD,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,oBAAoB,EAAE,oBAAoB,CAAC;KAC5C,CAAC;IA2BF;;;;OAIG;IACI,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,UAAQ,GAAG,IAAI;IA+SzE;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoH7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8T3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmM5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA0DhC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAiG7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6DzB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA6EhC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA6B1B"}
package/dist/daemon.js ADDED
@@ -0,0 +1,19 @@
1
+ const ScheduledTask = require('../scheduled-task');
2
+
3
+ let scheduledTask;
4
+
5
+ function register(message){
6
+ const script = require(message.path);
7
+ scheduledTask = new ScheduledTask(message.cron, script.task, message.options);
8
+ scheduledTask.on('task-done', (result) => {
9
+ process.send({ type: 'task-done', result});
10
+ });
11
+ process.send({ type: 'registred' });
12
+ }
13
+
14
+ process.on('message', (message) => {
15
+ switch(message.type){
16
+ case 'register':
17
+ return register(message);
18
+ }
19
+ });