@probelabs/visor 0.1.127 → 0.1.129
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.
- package/README.md +31 -1
- package/defaults/.visor.yaml +420 -0
- package/dist/ai-review-service.d.ts +1 -0
- package/dist/ai-review-service.d.ts.map +1 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/daemon.js +19 -0
- package/dist/defaults/.visor.yaml +420 -0
- package/dist/docs/commands.md +1 -1
- package/dist/docs/debugging.md +133 -0
- package/dist/docs/dev-playbook.md +10 -0
- package/dist/docs/index.md +1 -0
- package/dist/docs/scheduler.md +503 -0
- package/dist/docs/slack-integration.md +21 -0
- package/dist/docs/timeouts.md +1 -1
- package/dist/docs/workflow-creation-guide.md +39 -0
- package/dist/examples/README.md +30 -0
- package/dist/examples/calculator-config.yaml +4 -4
- package/dist/examples/sandbox-basic.yaml +18 -0
- package/dist/examples/sandbox-cache.yaml +32 -0
- package/dist/examples/sandbox-dockerfile-inline.yaml +22 -0
- package/dist/examples/sandbox-env-passthrough.yaml +26 -0
- package/dist/examples/sandbox-multi-env.yaml +27 -0
- package/dist/examples/sandbox-read-only.yaml +33 -0
- package/dist/examples/scheduler-example.yaml +118 -0
- package/dist/frontends/host.d.ts.map +1 -1
- package/dist/frontends/slack-frontend.d.ts.map +1 -1
- package/dist/generated/config-schema.d.ts +230 -9
- package/dist/generated/config-schema.d.ts.map +1 -1
- package/dist/index.js +13676 -1604
- package/dist/mcp-server.d.ts +8 -8
- package/dist/{traces/run-2026-02-01T09-59-08-165Z.ndjson → output/traces/run-2026-02-08T18-16-04-160Z.ndjson} +84 -84
- package/dist/{traces/run-2026-02-01T09-59-52-595Z.ndjson → output/traces/run-2026-02-08T18-16-51-253Z.ndjson} +1029 -1029
- package/dist/providers/ai-check-provider.d.ts +16 -0
- package/dist/providers/ai-check-provider.d.ts.map +1 -1
- package/dist/providers/check-provider.interface.d.ts +5 -0
- package/dist/providers/check-provider.interface.d.ts.map +1 -1
- package/dist/providers/command-check-provider.d.ts.map +1 -1
- package/dist/providers/log-check-provider.d.ts.map +1 -1
- package/dist/providers/mcp-check-provider.d.ts +3 -0
- package/dist/providers/mcp-check-provider.d.ts.map +1 -1
- package/dist/providers/mcp-custom-sse-server.d.ts +22 -2
- package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
- package/dist/providers/workflow-check-provider.d.ts.map +1 -1
- package/dist/providers/workflow-tool-executor.d.ts +2 -0
- package/dist/providers/workflow-tool-executor.d.ts.map +1 -1
- package/dist/sandbox/cache-volume-manager.d.ts +48 -0
- package/dist/sandbox/cache-volume-manager.d.ts.map +1 -0
- package/dist/sandbox/check-runner.d.ts +25 -0
- package/dist/sandbox/check-runner.d.ts.map +1 -0
- package/dist/sandbox/docker-compose-sandbox.d.ts +25 -0
- package/dist/sandbox/docker-compose-sandbox.d.ts.map +1 -0
- package/dist/sandbox/docker-image-sandbox.d.ts +32 -0
- package/dist/sandbox/docker-image-sandbox.d.ts.map +1 -0
- package/dist/sandbox/env-filter.d.ts +19 -0
- package/dist/sandbox/env-filter.d.ts.map +1 -0
- package/dist/sandbox/index.d.ts +9 -0
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/sandbox-manager.d.ts +39 -0
- package/dist/sandbox/sandbox-manager.d.ts.map +1 -0
- package/dist/sandbox/sandbox-telemetry.d.ts +9 -0
- package/dist/sandbox/sandbox-telemetry.d.ts.map +1 -0
- package/dist/sandbox/trace-ingester.d.ts +19 -0
- package/dist/sandbox/trace-ingester.d.ts.map +1 -0
- package/dist/sandbox/types.d.ts +149 -0
- package/dist/sandbox/types.d.ts.map +1 -0
- package/dist/scheduler/cli-handler.d.ts +6 -0
- package/dist/scheduler/cli-handler.d.ts.map +1 -0
- package/dist/scheduler/index.d.ts +14 -0
- package/dist/scheduler/index.d.ts.map +1 -0
- package/dist/scheduler/schedule-parser.d.ts +34 -0
- package/dist/scheduler/schedule-parser.d.ts.map +1 -0
- package/dist/scheduler/schedule-store.d.ts +182 -0
- package/dist/scheduler/schedule-store.d.ts.map +1 -0
- package/dist/scheduler/schedule-tool.d.ts +137 -0
- package/dist/scheduler/schedule-tool.d.ts.map +1 -0
- package/dist/scheduler/scheduler.d.ts +195 -0
- package/dist/scheduler/scheduler.d.ts.map +1 -0
- package/dist/sdk/check-provider-registry-ACRGIYOB.mjs +28 -0
- package/dist/sdk/check-provider-registry-VYHKFHK2.mjs +28 -0
- package/dist/sdk/{chunk-CNX7V5JK.mjs → chunk-25IC7KXZ.mjs} +2 -2
- package/dist/sdk/{chunk-IHZOSIF4.mjs → chunk-2KB35MB7.mjs} +3 -3
- package/dist/sdk/{chunk-HQL734ZI.mjs → chunk-6W75IMDC.mjs} +3 -3
- package/dist/sdk/{chunk-XWJPT5KQ.mjs → chunk-7YSOINAQ.mjs} +392 -18
- package/dist/sdk/chunk-7YSOINAQ.mjs.map +1 -0
- package/dist/sdk/{chunk-3OMWVM6J.mjs → chunk-B7BVQM5K.mjs} +2 -2
- package/dist/sdk/chunk-BDGUM6BA.mjs +38825 -0
- package/dist/sdk/chunk-BDGUM6BA.mjs.map +1 -0
- package/dist/sdk/{chunk-VW2GBXQT.mjs → chunk-D5KI4YQ4.mjs} +3 -3
- package/dist/sdk/chunk-DGZPPGJJ.mjs +38825 -0
- package/dist/sdk/chunk-DGZPPGJJ.mjs.map +1 -0
- package/dist/sdk/chunk-H5BOW5CR.mjs +91 -0
- package/dist/sdk/chunk-H5BOW5CR.mjs.map +1 -0
- package/dist/sdk/{chunk-YSN4G6CI.mjs → chunk-HEX3RL32.mjs} +81 -3
- package/dist/sdk/{chunk-YSN4G6CI.mjs.map → chunk-HEX3RL32.mjs.map} +1 -1
- package/dist/sdk/{chunk-ZYAUYXSW.mjs → chunk-J5RGJQ53.mjs} +14 -3
- package/dist/sdk/{chunk-ZYAUYXSW.mjs.map → chunk-J5RGJQ53.mjs.map} +1 -1
- package/dist/sdk/{chunk-WMJKH4XE.mjs → chunk-J7LXIPZS.mjs} +16 -1
- package/dist/sdk/{chunk-EXFGO4FX.mjs → chunk-KFKHU6CM.mjs} +2 -2
- package/dist/sdk/{chunk-MPS4HVQI.mjs → chunk-N7HO6KKC.mjs} +8 -8
- package/dist/sdk/{chunk-O5EZDNYL.mjs → chunk-NCWIZVOT.mjs} +2 -2
- package/dist/sdk/{chunk-3NMLT3YS.mjs → chunk-PO7X5XI7.mjs} +3 -3
- package/dist/sdk/{chunk-BHOKBQPB.mjs → chunk-R5Z7YWPB.mjs} +5 -5
- package/dist/sdk/{chunk-EORMDOZU.mjs → chunk-SGS2VMEL.mjs} +7 -7
- package/dist/sdk/{chunk-BOVFH3LI.mjs → chunk-VF6XIUE4.mjs} +21 -10
- package/dist/sdk/chunk-VF6XIUE4.mjs.map +1 -0
- package/dist/sdk/{chunk-J2QWVDXK.mjs → chunk-XDLQ3UNF.mjs} +3 -3
- package/dist/sdk/{chunk-S2RUE2RG.mjs → chunk-XR7XXGL7.mjs} +3 -3
- package/dist/sdk/{chunk-NAW3DB3I.mjs → chunk-XXAEN5KU.mjs} +3 -3
- package/dist/sdk/command-executor-DVVXERLR.mjs +14 -0
- package/dist/sdk/config-7VTT64SQ.mjs +16 -0
- package/dist/sdk/config-merger-RKCZJQ44.mjs +10 -0
- package/dist/sdk/event-bus-5K3Y2FCS.mjs +43 -0
- package/dist/sdk/{event-bus-5BEVPQ6T.mjs.map → event-bus-5K3Y2FCS.mjs.map} +1 -1
- package/dist/sdk/failure-condition-evaluator-4WMDF4Q3.mjs +17 -0
- package/dist/sdk/git-repository-analyzer-QFMW6WIS.mjs +471 -0
- package/dist/sdk/git-repository-analyzer-QFMW6WIS.mjs.map +1 -0
- package/dist/sdk/{github-frontend-5PCKKHVC.mjs → github-frontend-3N2NLO66.mjs} +520 -588
- package/dist/sdk/github-frontend-3N2NLO66.mjs.map +1 -0
- package/dist/sdk/host-ONVMEHAA.mjs +63 -0
- package/dist/sdk/host-ONVMEHAA.mjs.map +1 -0
- package/dist/sdk/{liquid-extensions-I7O7KMHF.mjs → liquid-extensions-5IZLTFSZ.mjs} +8 -8
- package/dist/sdk/memory-store-3N4AZCYB.mjs +12 -0
- package/dist/sdk/{metrics-7PP3EJUH.mjs → metrics-GXQ2EDXA.mjs} +4 -4
- package/dist/sdk/ndjson-sink-FD2PSXGD.mjs +52 -0
- package/dist/sdk/{ndjson-sink-B4V4NTAQ.mjs.map → ndjson-sink-FD2PSXGD.mjs.map} +1 -1
- package/dist/sdk/{prompt-state-EZYOUG75.mjs → prompt-state-YHGXB2OA.mjs} +5 -5
- package/dist/sdk/{renderer-schema-CKFB5NDB.mjs → renderer-schema-CMXOLNIG.mjs} +4 -4
- package/dist/sdk/routing-S3Y7T2X3.mjs +24 -0
- package/dist/sdk/sdk.d.mts +212 -4
- package/dist/sdk/sdk.d.ts +212 -4
- package/dist/sdk/sdk.js +26927 -6264
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +23 -1278
- package/dist/sdk/sdk.mjs.map +1 -1
- package/dist/sdk/session-registry-6PV6SGEJ.mjs +10 -0
- package/dist/sdk/slack-frontend-R3M2CACB.mjs +899 -0
- package/dist/sdk/slack-frontend-R3M2CACB.mjs.map +1 -0
- package/dist/sdk/{trace-helpers-VP6QYVBX.mjs → trace-helpers-YHNPC7MR.mjs} +4 -4
- package/dist/sdk/tracer-init-XPRWKMZT.mjs +10 -0
- package/dist/sdk/tui-frontend-S546M7A7.mjs +281 -0
- package/dist/sdk/tui-frontend-S546M7A7.mjs.map +1 -0
- package/dist/sdk/workflow-check-provider-4F3432ZP.mjs +28 -0
- package/dist/sdk/workflow-check-provider-A44PBPG2.mjs +28 -0
- package/dist/sdk/workflow-check-provider-A44PBPG2.mjs.map +1 -0
- package/dist/sdk/workflow-registry-ZAYYXLEP.mjs +12 -0
- package/dist/sdk/workflow-registry-ZAYYXLEP.mjs.map +1 -0
- package/dist/slack/client.d.ts +28 -0
- package/dist/slack/client.d.ts.map +1 -1
- package/dist/slack/schedule-tool-handler.d.ts +46 -0
- package/dist/slack/schedule-tool-handler.d.ts.map +1 -0
- package/dist/slack/slack-output-adapter.d.ts +44 -0
- package/dist/slack/slack-output-adapter.d.ts.map +1 -0
- package/dist/slack/socket-runner.d.ts +22 -0
- package/dist/slack/socket-runner.d.ts.map +1 -1
- package/dist/state-machine/dispatch/execution-invoker.d.ts.map +1 -1
- package/dist/state-machine/dispatch/foreach-processor.d.ts.map +1 -1
- package/dist/state-machine/dispatch/sandbox-routing.d.ts +21 -0
- package/dist/state-machine/dispatch/sandbox-routing.d.ts.map +1 -0
- package/dist/state-machine/states/level-dispatch.d.ts.map +1 -1
- package/dist/state-machine-execution-engine.d.ts.map +1 -1
- package/dist/test-runner/index.d.ts +5 -0
- package/dist/test-runner/index.d.ts.map +1 -1
- package/dist/{output/traces/run-2026-02-01T09-59-08-165Z.ndjson → traces/run-2026-02-08T18-16-04-160Z.ndjson} +84 -84
- package/dist/{output/traces/run-2026-02-01T09-59-52-595Z.ndjson → traces/run-2026-02-08T18-16-51-253Z.ndjson} +1029 -1029
- package/dist/tui/chat-runner.d.ts +39 -0
- package/dist/tui/chat-runner.d.ts.map +1 -0
- package/dist/tui/chat-state.d.ts +56 -0
- package/dist/tui/chat-state.d.ts.map +1 -0
- package/dist/tui/chat-tui.d.ts +69 -0
- package/dist/tui/chat-tui.d.ts.map +1 -0
- package/dist/tui/components/chat-box.d.ts +33 -0
- package/dist/tui/components/chat-box.d.ts.map +1 -0
- package/dist/tui/components/input-bar.d.ts +50 -0
- package/dist/tui/components/input-bar.d.ts.map +1 -0
- package/dist/tui/components/status-bar.d.ts +31 -0
- package/dist/tui/components/status-bar.d.ts.map +1 -0
- package/dist/tui/components/trace-viewer.d.ts +73 -0
- package/dist/tui/components/trace-viewer.d.ts.map +1 -0
- package/dist/tui/index.d.ts +14 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/tui-frontend.d.ts +29 -0
- package/dist/tui/tui-frontend.d.ts.map +1 -0
- package/dist/types/bot.d.ts +35 -0
- package/dist/types/bot.d.ts.map +1 -1
- package/dist/types/config.d.ts +152 -3
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/engine.d.ts +3 -0
- package/dist/types/engine.d.ts.map +1 -1
- package/dist/utils/sandbox.d.ts.map +1 -1
- package/dist/utils/workspace-manager.d.ts +22 -2
- package/dist/utils/workspace-manager.d.ts.map +1 -1
- package/dist/utils/worktree-manager.d.ts +2 -1
- package/dist/utils/worktree-manager.d.ts.map +1 -1
- package/package.json +4 -2
- package/dist/docs/NPM_USAGE.md +0 -281
- package/dist/generated/config-schema.json +0 -2161
- package/dist/sdk/check-provider-registry-CVUONJ5A.mjs +0 -28
- package/dist/sdk/chunk-BOVFH3LI.mjs.map +0 -1
- package/dist/sdk/chunk-TS6BUNAI.mjs +0 -17722
- package/dist/sdk/chunk-TS6BUNAI.mjs.map +0 -1
- package/dist/sdk/chunk-XWJPT5KQ.mjs.map +0 -1
- package/dist/sdk/command-executor-Q7MHJKZJ.mjs +0 -14
- package/dist/sdk/config-DXX64GD3.mjs +0 -16
- package/dist/sdk/config-merger-PX3WIT57.mjs +0 -10
- package/dist/sdk/event-bus-5BEVPQ6T.mjs +0 -35
- package/dist/sdk/failure-condition-evaluator-G4HMJPXF.mjs +0 -17
- package/dist/sdk/git-repository-analyzer-HJC4MYW4.mjs +0 -458
- package/dist/sdk/git-repository-analyzer-HJC4MYW4.mjs.map +0 -1
- package/dist/sdk/github-frontend-5PCKKHVC.mjs.map +0 -1
- package/dist/sdk/host-H3AWNZ2F.mjs +0 -52
- package/dist/sdk/host-H3AWNZ2F.mjs.map +0 -1
- package/dist/sdk/memory-store-RW5N2NGJ.mjs +0 -12
- package/dist/sdk/ndjson-sink-B4V4NTAQ.mjs +0 -44
- package/dist/sdk/routing-QHTGDIXF.mjs +0 -24
- package/dist/sdk/session-registry-4E6YRQ77.mjs +0 -10
- package/dist/sdk/slack-frontend-JUT3TYVC.mjs +0 -821
- package/dist/sdk/slack-frontend-JUT3TYVC.mjs.map +0 -1
- package/dist/sdk/tracer-init-GSLPPLCD.mjs +0 -10
- package/dist/sdk/workflow-check-provider-3IWBAZP7.mjs +0 -28
- package/dist/sdk/workflow-registry-KFWSDSLM.mjs +0 -12
- package/dist/tui.d.ts +0 -51
- package/dist/tui.d.ts.map +0 -1
- /package/dist/sdk/{check-provider-registry-CVUONJ5A.mjs.map → check-provider-registry-ACRGIYOB.mjs.map} +0 -0
- /package/dist/sdk/{chunk-WMJKH4XE.mjs.map → check-provider-registry-VYHKFHK2.mjs.map} +0 -0
- /package/dist/sdk/{chunk-CNX7V5JK.mjs.map → chunk-25IC7KXZ.mjs.map} +0 -0
- /package/dist/sdk/{chunk-IHZOSIF4.mjs.map → chunk-2KB35MB7.mjs.map} +0 -0
- /package/dist/sdk/{chunk-HQL734ZI.mjs.map → chunk-6W75IMDC.mjs.map} +0 -0
- /package/dist/sdk/{chunk-3OMWVM6J.mjs.map → chunk-B7BVQM5K.mjs.map} +0 -0
- /package/dist/sdk/{chunk-VW2GBXQT.mjs.map → chunk-D5KI4YQ4.mjs.map} +0 -0
- /package/dist/sdk/{command-executor-Q7MHJKZJ.mjs.map → chunk-J7LXIPZS.mjs.map} +0 -0
- /package/dist/sdk/{chunk-EXFGO4FX.mjs.map → chunk-KFKHU6CM.mjs.map} +0 -0
- /package/dist/sdk/{chunk-MPS4HVQI.mjs.map → chunk-N7HO6KKC.mjs.map} +0 -0
- /package/dist/sdk/{chunk-O5EZDNYL.mjs.map → chunk-NCWIZVOT.mjs.map} +0 -0
- /package/dist/sdk/{chunk-3NMLT3YS.mjs.map → chunk-PO7X5XI7.mjs.map} +0 -0
- /package/dist/sdk/{chunk-BHOKBQPB.mjs.map → chunk-R5Z7YWPB.mjs.map} +0 -0
- /package/dist/sdk/{chunk-EORMDOZU.mjs.map → chunk-SGS2VMEL.mjs.map} +0 -0
- /package/dist/sdk/{chunk-J2QWVDXK.mjs.map → chunk-XDLQ3UNF.mjs.map} +0 -0
- /package/dist/sdk/{chunk-S2RUE2RG.mjs.map → chunk-XR7XXGL7.mjs.map} +0 -0
- /package/dist/sdk/{chunk-NAW3DB3I.mjs.map → chunk-XXAEN5KU.mjs.map} +0 -0
- /package/dist/sdk/{config-DXX64GD3.mjs.map → command-executor-DVVXERLR.mjs.map} +0 -0
- /package/dist/sdk/{config-merger-PX3WIT57.mjs.map → config-7VTT64SQ.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-G4HMJPXF.mjs.map → config-merger-RKCZJQ44.mjs.map} +0 -0
- /package/dist/sdk/{liquid-extensions-I7O7KMHF.mjs.map → failure-condition-evaluator-4WMDF4Q3.mjs.map} +0 -0
- /package/dist/sdk/{memory-store-RW5N2NGJ.mjs.map → liquid-extensions-5IZLTFSZ.mjs.map} +0 -0
- /package/dist/sdk/{metrics-7PP3EJUH.mjs.map → memory-store-3N4AZCYB.mjs.map} +0 -0
- /package/dist/sdk/{prompt-state-EZYOUG75.mjs.map → metrics-GXQ2EDXA.mjs.map} +0 -0
- /package/dist/sdk/{routing-QHTGDIXF.mjs.map → prompt-state-YHGXB2OA.mjs.map} +0 -0
- /package/dist/sdk/{renderer-schema-CKFB5NDB.mjs.map → renderer-schema-CMXOLNIG.mjs.map} +0 -0
- /package/dist/sdk/{session-registry-4E6YRQ77.mjs.map → routing-S3Y7T2X3.mjs.map} +0 -0
- /package/dist/sdk/{trace-helpers-VP6QYVBX.mjs.map → session-registry-6PV6SGEJ.mjs.map} +0 -0
- /package/dist/sdk/{tracer-init-GSLPPLCD.mjs.map → trace-helpers-YHNPC7MR.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-3IWBAZP7.mjs.map → tracer-init-XPRWKMZT.mjs.map} +0 -0
- /package/dist/sdk/{workflow-registry-KFWSDSLM.mjs.map → workflow-check-provider-4F3432ZP.mjs.map} +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
version: "2.0"
|
|
2
|
+
|
|
3
|
+
# Simplest sandbox: run a command check inside a Docker container
|
|
4
|
+
sandboxes:
|
|
5
|
+
node-env:
|
|
6
|
+
image: "node:20-alpine"
|
|
7
|
+
|
|
8
|
+
sandbox: node-env
|
|
9
|
+
|
|
10
|
+
checks:
|
|
11
|
+
node-version:
|
|
12
|
+
type: command
|
|
13
|
+
exec: "node --version"
|
|
14
|
+
|
|
15
|
+
lint-check:
|
|
16
|
+
type: command
|
|
17
|
+
depends_on: [node-version]
|
|
18
|
+
exec: "echo 'All files pass lint'"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
version: "2.0"
|
|
2
|
+
|
|
3
|
+
# Cache volumes: persist data between sandbox runs
|
|
4
|
+
sandboxes:
|
|
5
|
+
node-env:
|
|
6
|
+
image: "node:20-alpine"
|
|
7
|
+
cache:
|
|
8
|
+
paths:
|
|
9
|
+
- "/tmp/cache"
|
|
10
|
+
- "/root/.npm"
|
|
11
|
+
ttl: "7d"
|
|
12
|
+
max_scopes: 5
|
|
13
|
+
|
|
14
|
+
sandbox: node-env
|
|
15
|
+
|
|
16
|
+
checks:
|
|
17
|
+
warm-cache:
|
|
18
|
+
type: command
|
|
19
|
+
exec: |
|
|
20
|
+
mkdir -p /tmp/cache
|
|
21
|
+
echo "cached-data" > /tmp/cache/result.txt
|
|
22
|
+
echo "cache warmed"
|
|
23
|
+
|
|
24
|
+
read-cache:
|
|
25
|
+
type: command
|
|
26
|
+
depends_on: [warm-cache]
|
|
27
|
+
exec: |
|
|
28
|
+
if [ -f /tmp/cache/result.txt ]; then
|
|
29
|
+
echo "cache hit: $(cat /tmp/cache/result.txt)"
|
|
30
|
+
else
|
|
31
|
+
echo "cache miss"
|
|
32
|
+
fi
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
version: "2.0"
|
|
2
|
+
|
|
3
|
+
# Inline Dockerfile: install custom tools in the sandbox image
|
|
4
|
+
sandboxes:
|
|
5
|
+
jq-env:
|
|
6
|
+
dockerfile_inline: |
|
|
7
|
+
FROM alpine:3.19
|
|
8
|
+
RUN apk add --no-cache jq
|
|
9
|
+
|
|
10
|
+
sandbox: jq-env
|
|
11
|
+
|
|
12
|
+
checks:
|
|
13
|
+
parse-json:
|
|
14
|
+
type: command
|
|
15
|
+
exec: |
|
|
16
|
+
echo '{"name":"visor","version":"2.0"}' | jq -r '.name'
|
|
17
|
+
|
|
18
|
+
transform-json:
|
|
19
|
+
type: command
|
|
20
|
+
depends_on: [parse-json]
|
|
21
|
+
exec: |
|
|
22
|
+
echo '[{"severity":"high"},{"severity":"low"}]' | jq '[.[] | select(.severity == "high")] | length'
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
version: "2.0"
|
|
2
|
+
|
|
3
|
+
# Environment variable forwarding into sandbox containers
|
|
4
|
+
sandboxes:
|
|
5
|
+
node-env:
|
|
6
|
+
image: "node:20-alpine"
|
|
7
|
+
# Forward host env vars matching these patterns into the container
|
|
8
|
+
env_passthrough:
|
|
9
|
+
- "CI"
|
|
10
|
+
- "NODE_*"
|
|
11
|
+
- "GITHUB_*"
|
|
12
|
+
|
|
13
|
+
sandbox: node-env
|
|
14
|
+
|
|
15
|
+
checks:
|
|
16
|
+
check-env:
|
|
17
|
+
type: command
|
|
18
|
+
# Check-level env vars are always injected (override host vars)
|
|
19
|
+
env:
|
|
20
|
+
MY_VAR: hello
|
|
21
|
+
BUILD_MODE: production
|
|
22
|
+
exec: "echo \"MY_VAR=$MY_VAR BUILD_MODE=$BUILD_MODE\""
|
|
23
|
+
|
|
24
|
+
check-passthrough:
|
|
25
|
+
type: command
|
|
26
|
+
exec: "echo \"CI=$CI NODE_ENV=$NODE_ENV\""
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
version: "2.0"
|
|
2
|
+
|
|
3
|
+
# Multiple sandbox environments with per-check overrides
|
|
4
|
+
sandboxes:
|
|
5
|
+
node-env:
|
|
6
|
+
image: "node:20-alpine"
|
|
7
|
+
alpine-env:
|
|
8
|
+
image: "alpine:3.19"
|
|
9
|
+
|
|
10
|
+
# Default: all checks run in node-env
|
|
11
|
+
sandbox: node-env
|
|
12
|
+
|
|
13
|
+
checks:
|
|
14
|
+
build:
|
|
15
|
+
type: command
|
|
16
|
+
exec: "node -e \"console.log('build OK')\""
|
|
17
|
+
|
|
18
|
+
system-check:
|
|
19
|
+
type: command
|
|
20
|
+
# Override: this check runs in alpine-env instead of node-env
|
|
21
|
+
sandbox: alpine-env
|
|
22
|
+
exec: "cat /etc/os-release | head -1"
|
|
23
|
+
|
|
24
|
+
final:
|
|
25
|
+
type: command
|
|
26
|
+
depends_on: [build, system-check]
|
|
27
|
+
exec: "echo 'all checks passed'"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
version: "2.0"
|
|
2
|
+
|
|
3
|
+
# Secure execution: read-only workspace + no network access
|
|
4
|
+
sandboxes:
|
|
5
|
+
secure-env:
|
|
6
|
+
image: "node:20-alpine"
|
|
7
|
+
read_only: true
|
|
8
|
+
network: false
|
|
9
|
+
|
|
10
|
+
sandbox: secure-env
|
|
11
|
+
|
|
12
|
+
checks:
|
|
13
|
+
read-source:
|
|
14
|
+
type: command
|
|
15
|
+
exec: "cat package.json | head -5"
|
|
16
|
+
|
|
17
|
+
verify-read-only:
|
|
18
|
+
type: command
|
|
19
|
+
exec: |
|
|
20
|
+
if touch /workspace/test-file 2>/dev/null; then
|
|
21
|
+
echo "ERROR: workspace is writable" >&2
|
|
22
|
+
exit 1
|
|
23
|
+
fi
|
|
24
|
+
echo "workspace is read-only as expected"
|
|
25
|
+
|
|
26
|
+
verify-no-network:
|
|
27
|
+
type: command
|
|
28
|
+
exec: |
|
|
29
|
+
if wget -q --timeout=2 https://example.com -O /dev/null 2>/dev/null; then
|
|
30
|
+
echo "ERROR: network is available" >&2
|
|
31
|
+
exit 1
|
|
32
|
+
fi
|
|
33
|
+
echo "network is disabled as expected"
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Scheduler Example Configuration
|
|
2
|
+
# Demonstrates static cron jobs and scheduler permissions
|
|
3
|
+
version: "1.0"
|
|
4
|
+
|
|
5
|
+
# Scheduler configuration
|
|
6
|
+
scheduler:
|
|
7
|
+
enabled: true
|
|
8
|
+
storage:
|
|
9
|
+
path: .visor/schedules.json
|
|
10
|
+
default_timezone: America/New_York
|
|
11
|
+
check_interval_ms: 60000
|
|
12
|
+
|
|
13
|
+
# Limits for dynamic schedules created via AI tool
|
|
14
|
+
limits:
|
|
15
|
+
max_per_user: 25
|
|
16
|
+
max_recurring_per_user: 10
|
|
17
|
+
max_global: 1000
|
|
18
|
+
|
|
19
|
+
# Permissions for dynamic schedule creation
|
|
20
|
+
permissions:
|
|
21
|
+
allow_personal: true # Allow personal schedules (via DM or CLI)
|
|
22
|
+
allow_channel: true # Allow channel schedules (in Slack channels)
|
|
23
|
+
allow_dm: false # Disable sending scheduled DMs to other users
|
|
24
|
+
allowed_workflows: # Only these workflows can be scheduled dynamically
|
|
25
|
+
- "report-*"
|
|
26
|
+
- "status-*"
|
|
27
|
+
- "summary-*"
|
|
28
|
+
denied_workflows: # Block admin and dangerous workflows
|
|
29
|
+
- "admin-*"
|
|
30
|
+
- "dangerous-*"
|
|
31
|
+
- "deploy-*"
|
|
32
|
+
|
|
33
|
+
# Static cron jobs (always execute, bypass permissions)
|
|
34
|
+
cron:
|
|
35
|
+
# Daily status report on weekdays
|
|
36
|
+
daily-status:
|
|
37
|
+
workflow: daily-status-report
|
|
38
|
+
schedule: "0 9 * * 1-5" # Weekdays at 9am
|
|
39
|
+
timezone: America/New_York
|
|
40
|
+
output:
|
|
41
|
+
type: slack
|
|
42
|
+
target: "#team-updates"
|
|
43
|
+
|
|
44
|
+
# Weekly summary on Mondays
|
|
45
|
+
weekly-summary:
|
|
46
|
+
workflow: weekly-summary
|
|
47
|
+
schedule: "0 10 * * 1" # Mondays at 10am
|
|
48
|
+
inputs:
|
|
49
|
+
include_metrics: true
|
|
50
|
+
include_trends: true
|
|
51
|
+
output:
|
|
52
|
+
type: slack
|
|
53
|
+
target: "#engineering"
|
|
54
|
+
|
|
55
|
+
# Hourly health check
|
|
56
|
+
health-check:
|
|
57
|
+
workflow: health-check
|
|
58
|
+
schedule: "0 * * * *" # Every hour on the hour
|
|
59
|
+
output:
|
|
60
|
+
type: webhook
|
|
61
|
+
target: https://api.example.com/health-status
|
|
62
|
+
|
|
63
|
+
# Monthly audit report
|
|
64
|
+
monthly-audit:
|
|
65
|
+
workflow: monthly-audit
|
|
66
|
+
schedule: "0 8 1 * *" # First day of month at 8am
|
|
67
|
+
inputs:
|
|
68
|
+
detailed: true
|
|
69
|
+
output:
|
|
70
|
+
type: slack
|
|
71
|
+
target: "#security"
|
|
72
|
+
|
|
73
|
+
# Workflows that can be scheduled
|
|
74
|
+
checks:
|
|
75
|
+
# Daily status report workflow
|
|
76
|
+
daily-status-report:
|
|
77
|
+
type: ai
|
|
78
|
+
prompt: |
|
|
79
|
+
Generate a brief daily status report for the team.
|
|
80
|
+
Include:
|
|
81
|
+
- Recent commits and changes
|
|
82
|
+
- Open issues and PRs
|
|
83
|
+
- Any blockers or concerns
|
|
84
|
+
|
|
85
|
+
# Weekly summary workflow
|
|
86
|
+
weekly-summary:
|
|
87
|
+
type: ai
|
|
88
|
+
prompt: |
|
|
89
|
+
Generate a weekly summary report.
|
|
90
|
+
{% if inputs.include_metrics %}Include key metrics and statistics.{% endif %}
|
|
91
|
+
{% if inputs.include_trends %}Include trend analysis.{% endif %}
|
|
92
|
+
|
|
93
|
+
# Health check workflow
|
|
94
|
+
health-check:
|
|
95
|
+
type: command
|
|
96
|
+
command: "echo 'Health check passed at $(date)'"
|
|
97
|
+
|
|
98
|
+
# Monthly audit workflow
|
|
99
|
+
monthly-audit:
|
|
100
|
+
type: ai
|
|
101
|
+
prompt: |
|
|
102
|
+
Perform a monthly security and compliance audit.
|
|
103
|
+
{% if inputs.detailed %}Provide detailed findings.{% endif %}
|
|
104
|
+
|
|
105
|
+
# Report workflow that can be dynamically scheduled
|
|
106
|
+
report-team-status:
|
|
107
|
+
type: ai
|
|
108
|
+
prompt: "Generate a team status report"
|
|
109
|
+
|
|
110
|
+
# Status workflow that can be dynamically scheduled
|
|
111
|
+
status-quick:
|
|
112
|
+
type: command
|
|
113
|
+
command: "echo 'Quick status: All systems operational'"
|
|
114
|
+
|
|
115
|
+
# Summary workflow that can be dynamically scheduled
|
|
116
|
+
summary-daily:
|
|
117
|
+
type: ai
|
|
118
|
+
prompt: "Summarize today's activities"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/frontends/host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QAC5B,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QAC5B,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;KAC9B,CAAC;IACF,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE,GAAG,CAAC;IAEd,cAAc,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,SAAS,CAAkB;gBAEvB,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC;IAKnD,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/frontends/host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QAC5B,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QAC5B,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;KAC9B,CAAC;IACF,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE,GAAG,CAAC;IAEd,cAAc,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,SAAS,CAAkB;gBAEvB,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC;IAKnD,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB1C,QAAQ,CAAC,UAAU,EAAE,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAS/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-frontend.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/frontends/slack-frontend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAUxD,KAAK,mBAAmB,GAAG;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,qBAAa,aAAc,YAAW,QAAQ;IAC5C,SAAgB,IAAI,WAAW;IAC/B,OAAO,CAAC,IAAI,CAAsC;IAClD,OAAO,CAAC,GAAG,CAAsB;IAEjC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,aAAa,CAAkB;gBAE3B,MAAM,CAAC,EAAE,mBAAmB;IAIxC,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAgJjC,IAAI,IAAI,IAAI;IAKZ,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,kBAAkB;YAcZ,cAAc;IAoC5B,OAAO,CAAC,uBAAuB;YAcjB,yBAAyB;YAgCzB,qBAAqB;YAkCrB,iBAAiB;IA6B/B;;;;OAIG;YACW,oBAAoB;
|
|
1
|
+
{"version":3,"file":"slack-frontend.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/frontends/slack-frontend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAUxD,KAAK,mBAAmB,GAAG;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,qBAAa,aAAc,YAAW,QAAQ;IAC5C,SAAgB,IAAI,WAAW;IAC/B,OAAO,CAAC,IAAI,CAAsC;IAClD,OAAO,CAAC,GAAG,CAAsB;IAEjC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,aAAa,CAAkB;gBAE3B,MAAM,CAAC,EAAE,mBAAmB;IAIxC,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAgJjC,IAAI,IAAI,IAAI;IAKZ,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,kBAAkB;YAcZ,cAAc;IAoC5B,OAAO,CAAC,uBAAuB;YAcjB,yBAAyB;YAgCzB,qBAAqB;YAkCrB,iBAAiB;IA6B/B;;;;OAIG;YACW,oBAAoB;IAyKlC,OAAO,CAAC,YAAY;CAWrB"}
|
|
@@ -150,6 +150,10 @@ export declare const configSchema: {
|
|
|
150
150
|
readonly $ref: "#/definitions/SlackConfig";
|
|
151
151
|
readonly description: "Slack configuration";
|
|
152
152
|
};
|
|
153
|
+
readonly scheduler: {
|
|
154
|
+
readonly $ref: "#/definitions/SchedulerConfig";
|
|
155
|
+
readonly description: "Scheduler configuration for scheduled workflow execution";
|
|
156
|
+
};
|
|
153
157
|
};
|
|
154
158
|
readonly required: readonly ["version"];
|
|
155
159
|
readonly patternProperties: {
|
|
@@ -434,6 +438,10 @@ export declare const configSchema: {
|
|
|
434
438
|
readonly $ref: "#/definitions/Record%3Cstring%2CMcpServerConfig%3E";
|
|
435
439
|
readonly description: "MCP servers for this AI check - overrides global setting";
|
|
436
440
|
};
|
|
441
|
+
readonly ai_mcp_servers_js: {
|
|
442
|
+
readonly type: "string";
|
|
443
|
+
readonly description: "JavaScript expression to dynamically compute MCP servers for this AI check. Expression has access to: outputs, inputs, pr, files, env, memory Must return an object mapping server names to McpServerConfig objects.\n\nExample: ``` const servers = {}; const tags = outputs['route-intent']?.tags || []; if (tags.includes('jira')) { servers.jira = { command: \"npx\", args: [\"-y\", \"@aashari/mcp-server-atlassian-jira\"], env: { ATLASSIAN_SITE_NAME: \"mysite\" } }; } return servers; ```";
|
|
444
|
+
};
|
|
437
445
|
readonly ai_custom_tools: {
|
|
438
446
|
readonly type: "array";
|
|
439
447
|
readonly items: {
|
|
@@ -441,6 +449,10 @@ export declare const configSchema: {
|
|
|
441
449
|
};
|
|
442
450
|
readonly description: "List of custom tool names to expose to this AI check via ephemeral SSE MCP server";
|
|
443
451
|
};
|
|
452
|
+
readonly ai_custom_tools_js: {
|
|
453
|
+
readonly type: "string";
|
|
454
|
+
readonly description: "JavaScript expression to dynamically compute custom tools for this AI check. Expression has access to: outputs, inputs, pr, files, env, memory Must return an array of tool names (strings) or WorkflowToolReference objects ({ workflow: string, args?: Record<string, unknown> })\n\nExample: ``` const tools = []; if (outputs['route-intent'].intent === 'engineer') { tools.push({ workflow: 'engineer', args: { projects: ['tyk'] } }); } return tools; ```";
|
|
455
|
+
};
|
|
444
456
|
readonly claude_code: {
|
|
445
457
|
readonly $ref: "#/definitions/ClaudeCodeConfig";
|
|
446
458
|
readonly description: "Claude Code configuration (for claude-code type checks)";
|
|
@@ -690,7 +702,7 @@ export declare const configSchema: {
|
|
|
690
702
|
readonly description: "Arguments/inputs for the workflow";
|
|
691
703
|
};
|
|
692
704
|
readonly overrides: {
|
|
693
|
-
readonly $ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
705
|
+
readonly $ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-12605-26099-src_types_config.ts-0-46407%3E%3E";
|
|
694
706
|
readonly description: "Override specific step configurations in the workflow";
|
|
695
707
|
};
|
|
696
708
|
readonly output_mapping: {
|
|
@@ -706,7 +718,7 @@ export declare const configSchema: {
|
|
|
706
718
|
readonly description: "Config file path - alternative to workflow ID (loads a Visor config file as workflow)";
|
|
707
719
|
};
|
|
708
720
|
readonly workflow_overrides: {
|
|
709
|
-
readonly $ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
721
|
+
readonly $ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-12605-26099-src_types_config.ts-0-46407%3E%3E";
|
|
710
722
|
readonly description: "Alias for overrides - workflow step overrides (backward compatibility)";
|
|
711
723
|
};
|
|
712
724
|
readonly ref: {
|
|
@@ -850,6 +862,10 @@ export declare const configSchema: {
|
|
|
850
862
|
readonly type: "boolean";
|
|
851
863
|
readonly description: "Enable the delegate tool for task distribution to subagents";
|
|
852
864
|
};
|
|
865
|
+
readonly enableTasks: {
|
|
866
|
+
readonly type: "boolean";
|
|
867
|
+
readonly description: "Enable task management for tracking multi-goal requests";
|
|
868
|
+
};
|
|
853
869
|
readonly retry: {
|
|
854
870
|
readonly $ref: "#/definitions/AIRetryConfig";
|
|
855
871
|
readonly description: "Retry configuration for this provider";
|
|
@@ -903,7 +919,7 @@ export declare const configSchema: {
|
|
|
903
919
|
readonly properties: {
|
|
904
920
|
readonly command: {
|
|
905
921
|
readonly type: "string";
|
|
906
|
-
readonly description: "Command to execute
|
|
922
|
+
readonly description: "Command to execute (presence indicates stdio server)";
|
|
907
923
|
};
|
|
908
924
|
readonly args: {
|
|
909
925
|
readonly type: "array";
|
|
@@ -916,10 +932,44 @@ export declare const configSchema: {
|
|
|
916
932
|
readonly $ref: "#/definitions/Record%3Cstring%2Cstring%3E";
|
|
917
933
|
readonly description: "Environment variables for the MCP server";
|
|
918
934
|
};
|
|
935
|
+
readonly url: {
|
|
936
|
+
readonly type: "string";
|
|
937
|
+
readonly description: "URL endpoint (presence indicates external server)";
|
|
938
|
+
};
|
|
939
|
+
readonly transport: {
|
|
940
|
+
readonly type: "string";
|
|
941
|
+
readonly enum: readonly ["stdio", "sse", "http"];
|
|
942
|
+
readonly description: "Transport type";
|
|
943
|
+
};
|
|
944
|
+
readonly workflow: {
|
|
945
|
+
readonly type: "string";
|
|
946
|
+
readonly description: "Workflow ID or path (presence indicates workflow tool)";
|
|
947
|
+
};
|
|
948
|
+
readonly inputs: {
|
|
949
|
+
readonly $ref: "#/definitions/Record%3Cstring%2Cunknown%3E";
|
|
950
|
+
readonly description: "Inputs to pass to workflow";
|
|
951
|
+
};
|
|
952
|
+
readonly description: {
|
|
953
|
+
readonly type: "string";
|
|
954
|
+
readonly description: "Tool description for AI";
|
|
955
|
+
};
|
|
956
|
+
readonly allowedMethods: {
|
|
957
|
+
readonly type: "array";
|
|
958
|
+
readonly items: {
|
|
959
|
+
readonly type: "string";
|
|
960
|
+
};
|
|
961
|
+
readonly description: "Whitelist specific methods from this MCP server (supports wildcards like \"search_*\")";
|
|
962
|
+
};
|
|
963
|
+
readonly blockedMethods: {
|
|
964
|
+
readonly type: "array";
|
|
965
|
+
readonly items: {
|
|
966
|
+
readonly type: "string";
|
|
967
|
+
};
|
|
968
|
+
readonly description: "Block specific methods from this MCP server (supports wildcards like \"*_delete\")";
|
|
969
|
+
};
|
|
919
970
|
};
|
|
920
|
-
readonly required: readonly ["command"];
|
|
921
971
|
readonly additionalProperties: false;
|
|
922
|
-
readonly description: "MCP
|
|
972
|
+
readonly description: "Unified MCP server/tool entry - type detected by which properties are present\n\nDetection logic (priority order): 1. Has `command` → stdio MCP server (external process) 2. Has `url` → SSE/HTTP MCP server (external endpoint) 3. Has `workflow` → workflow tool reference 4. Empty `{}` or just key → auto-detect from `tools:` section";
|
|
923
973
|
readonly patternProperties: {
|
|
924
974
|
readonly '^x-': {};
|
|
925
975
|
};
|
|
@@ -1304,7 +1354,7 @@ export declare const configSchema: {
|
|
|
1304
1354
|
readonly description: "Custom output name (defaults to workflow name)";
|
|
1305
1355
|
};
|
|
1306
1356
|
readonly overrides: {
|
|
1307
|
-
readonly $ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
1357
|
+
readonly $ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-12605-26099-src_types_config.ts-0-46407%3E%3E";
|
|
1308
1358
|
readonly description: "Step overrides";
|
|
1309
1359
|
};
|
|
1310
1360
|
readonly output_mapping: {
|
|
@@ -1319,13 +1369,13 @@ export declare const configSchema: {
|
|
|
1319
1369
|
readonly '^x-': {};
|
|
1320
1370
|
};
|
|
1321
1371
|
};
|
|
1322
|
-
readonly 'Record<string,Partial<interface-src_types_config.ts-
|
|
1372
|
+
readonly 'Record<string,Partial<interface-src_types_config.ts-12605-26099-src_types_config.ts-0-46407>>': {
|
|
1323
1373
|
readonly type: "object";
|
|
1324
1374
|
readonly additionalProperties: {
|
|
1325
|
-
readonly $ref: "#/definitions/Partial%3Cinterface-src_types_config.ts-
|
|
1375
|
+
readonly $ref: "#/definitions/Partial%3Cinterface-src_types_config.ts-12605-26099-src_types_config.ts-0-46407%3E";
|
|
1326
1376
|
};
|
|
1327
1377
|
};
|
|
1328
|
-
readonly 'Partial<interface-src_types_config.ts-
|
|
1378
|
+
readonly 'Partial<interface-src_types_config.ts-12605-26099-src_types_config.ts-0-46407>': {
|
|
1329
1379
|
readonly type: "object";
|
|
1330
1380
|
readonly additionalProperties: false;
|
|
1331
1381
|
};
|
|
@@ -1960,6 +2010,177 @@ export declare const configSchema: {
|
|
|
1960
2010
|
readonly '^x-': {};
|
|
1961
2011
|
};
|
|
1962
2012
|
};
|
|
2013
|
+
readonly SchedulerConfig: {
|
|
2014
|
+
readonly type: "object";
|
|
2015
|
+
readonly properties: {
|
|
2016
|
+
readonly enabled: {
|
|
2017
|
+
readonly type: "boolean";
|
|
2018
|
+
readonly description: "Enable/disable the scheduler (default: true)";
|
|
2019
|
+
};
|
|
2020
|
+
readonly storage: {
|
|
2021
|
+
readonly type: "object";
|
|
2022
|
+
readonly properties: {
|
|
2023
|
+
readonly path: {
|
|
2024
|
+
readonly type: "string";
|
|
2025
|
+
readonly description: "Path to schedules JSON file (default: .visor/schedules.json)";
|
|
2026
|
+
};
|
|
2027
|
+
};
|
|
2028
|
+
readonly additionalProperties: false;
|
|
2029
|
+
readonly description: "Storage configuration";
|
|
2030
|
+
readonly patternProperties: {
|
|
2031
|
+
readonly '^x-': {};
|
|
2032
|
+
};
|
|
2033
|
+
};
|
|
2034
|
+
readonly limits: {
|
|
2035
|
+
readonly $ref: "#/definitions/SchedulerLimitsConfig";
|
|
2036
|
+
readonly description: "Limits for dynamic schedules";
|
|
2037
|
+
};
|
|
2038
|
+
readonly default_timezone: {
|
|
2039
|
+
readonly type: "string";
|
|
2040
|
+
readonly description: "Default timezone (IANA format, e.g., \"America/New_York\")";
|
|
2041
|
+
};
|
|
2042
|
+
readonly check_interval_ms: {
|
|
2043
|
+
readonly type: "number";
|
|
2044
|
+
readonly description: "Check interval in milliseconds (default: 60000)";
|
|
2045
|
+
};
|
|
2046
|
+
readonly permissions: {
|
|
2047
|
+
readonly $ref: "#/definitions/SchedulerPermissionsConfig";
|
|
2048
|
+
readonly description: "Permissions for dynamic schedule creation (via AI tool)";
|
|
2049
|
+
};
|
|
2050
|
+
readonly cron: {
|
|
2051
|
+
readonly $ref: "#/definitions/Record%3Cstring%2CStaticCronJob%3E";
|
|
2052
|
+
readonly description: "Static cron jobs defined in configuration (always executed)";
|
|
2053
|
+
};
|
|
2054
|
+
};
|
|
2055
|
+
readonly additionalProperties: false;
|
|
2056
|
+
readonly description: "Scheduler configuration for workflow scheduling";
|
|
2057
|
+
readonly patternProperties: {
|
|
2058
|
+
readonly '^x-': {};
|
|
2059
|
+
};
|
|
2060
|
+
};
|
|
2061
|
+
readonly SchedulerLimitsConfig: {
|
|
2062
|
+
readonly type: "object";
|
|
2063
|
+
readonly properties: {
|
|
2064
|
+
readonly max_per_user: {
|
|
2065
|
+
readonly type: "number";
|
|
2066
|
+
readonly description: "Maximum schedules per user (default: 25)";
|
|
2067
|
+
};
|
|
2068
|
+
readonly max_recurring_per_user: {
|
|
2069
|
+
readonly type: "number";
|
|
2070
|
+
readonly description: "Maximum recurring schedules per user (default: 10)";
|
|
2071
|
+
};
|
|
2072
|
+
readonly max_global: {
|
|
2073
|
+
readonly type: "number";
|
|
2074
|
+
readonly description: "Maximum total schedules (default: 1000)";
|
|
2075
|
+
};
|
|
2076
|
+
};
|
|
2077
|
+
readonly additionalProperties: false;
|
|
2078
|
+
readonly description: "Scheduler limits configuration";
|
|
2079
|
+
readonly patternProperties: {
|
|
2080
|
+
readonly '^x-': {};
|
|
2081
|
+
};
|
|
2082
|
+
};
|
|
2083
|
+
readonly SchedulerPermissionsConfig: {
|
|
2084
|
+
readonly type: "object";
|
|
2085
|
+
readonly properties: {
|
|
2086
|
+
readonly allow_personal: {
|
|
2087
|
+
readonly type: "boolean";
|
|
2088
|
+
readonly description: "Allow personal schedules (via DM or CLI)";
|
|
2089
|
+
};
|
|
2090
|
+
readonly allow_channel: {
|
|
2091
|
+
readonly type: "boolean";
|
|
2092
|
+
readonly description: "Allow channel schedules (in Slack channels)";
|
|
2093
|
+
};
|
|
2094
|
+
readonly allow_dm: {
|
|
2095
|
+
readonly type: "boolean";
|
|
2096
|
+
readonly description: "Allow DM schedules (to specific users)";
|
|
2097
|
+
};
|
|
2098
|
+
readonly allowed_workflows: {
|
|
2099
|
+
readonly type: "array";
|
|
2100
|
+
readonly items: {
|
|
2101
|
+
readonly type: "string";
|
|
2102
|
+
};
|
|
2103
|
+
readonly description: "List of allowed workflow patterns (glob-style, e.g., \"report-*\")";
|
|
2104
|
+
};
|
|
2105
|
+
readonly denied_workflows: {
|
|
2106
|
+
readonly type: "array";
|
|
2107
|
+
readonly items: {
|
|
2108
|
+
readonly type: "string";
|
|
2109
|
+
};
|
|
2110
|
+
readonly description: "List of denied workflow patterns";
|
|
2111
|
+
};
|
|
2112
|
+
};
|
|
2113
|
+
readonly additionalProperties: false;
|
|
2114
|
+
readonly description: "Scheduler permissions for dynamic schedule creation";
|
|
2115
|
+
readonly patternProperties: {
|
|
2116
|
+
readonly '^x-': {};
|
|
2117
|
+
};
|
|
2118
|
+
};
|
|
2119
|
+
readonly 'Record<string,StaticCronJob>': {
|
|
2120
|
+
readonly type: "object";
|
|
2121
|
+
readonly additionalProperties: {
|
|
2122
|
+
readonly $ref: "#/definitions/StaticCronJob";
|
|
2123
|
+
};
|
|
2124
|
+
};
|
|
2125
|
+
readonly StaticCronJob: {
|
|
2126
|
+
readonly type: "object";
|
|
2127
|
+
readonly properties: {
|
|
2128
|
+
readonly schedule: {
|
|
2129
|
+
readonly type: "string";
|
|
2130
|
+
readonly description: "Cron expression (e.g., \"0 9 * * 1\" for every Monday at 9am)";
|
|
2131
|
+
};
|
|
2132
|
+
readonly workflow: {
|
|
2133
|
+
readonly type: "string";
|
|
2134
|
+
readonly description: "Workflow/check ID to run";
|
|
2135
|
+
};
|
|
2136
|
+
readonly inputs: {
|
|
2137
|
+
readonly $ref: "#/definitions/Record%3Cstring%2Cunknown%3E";
|
|
2138
|
+
readonly description: "Optional workflow inputs";
|
|
2139
|
+
};
|
|
2140
|
+
readonly output: {
|
|
2141
|
+
readonly type: "object";
|
|
2142
|
+
readonly properties: {
|
|
2143
|
+
readonly type: {
|
|
2144
|
+
readonly type: "string";
|
|
2145
|
+
readonly enum: readonly ["slack", "github", "webhook", "none"];
|
|
2146
|
+
readonly description: "Output type: slack, github, webhook, or none";
|
|
2147
|
+
};
|
|
2148
|
+
readonly target: {
|
|
2149
|
+
readonly type: "string";
|
|
2150
|
+
readonly description: "Target (channel name, repo, URL)";
|
|
2151
|
+
};
|
|
2152
|
+
readonly thread_id: {
|
|
2153
|
+
readonly type: "string";
|
|
2154
|
+
readonly description: "Thread ID for threaded outputs";
|
|
2155
|
+
};
|
|
2156
|
+
};
|
|
2157
|
+
readonly required: readonly ["type"];
|
|
2158
|
+
readonly additionalProperties: false;
|
|
2159
|
+
readonly description: "Output destination configuration";
|
|
2160
|
+
readonly patternProperties: {
|
|
2161
|
+
readonly '^x-': {};
|
|
2162
|
+
};
|
|
2163
|
+
};
|
|
2164
|
+
readonly description: {
|
|
2165
|
+
readonly type: "string";
|
|
2166
|
+
readonly description: "Description for logging/display";
|
|
2167
|
+
};
|
|
2168
|
+
readonly enabled: {
|
|
2169
|
+
readonly type: "boolean";
|
|
2170
|
+
readonly description: "Enable/disable this job (default: true)";
|
|
2171
|
+
};
|
|
2172
|
+
readonly timezone: {
|
|
2173
|
+
readonly type: "string";
|
|
2174
|
+
readonly description: "Timezone for schedule (default: UTC or scheduler default)";
|
|
2175
|
+
};
|
|
2176
|
+
};
|
|
2177
|
+
readonly required: readonly ["schedule", "workflow"];
|
|
2178
|
+
readonly additionalProperties: false;
|
|
2179
|
+
readonly description: "Static cron job defined in YAML configuration These are always executed by the scheduler daemon";
|
|
2180
|
+
readonly patternProperties: {
|
|
2181
|
+
readonly '^x-': {};
|
|
2182
|
+
};
|
|
2183
|
+
};
|
|
1963
2184
|
};
|
|
1964
2185
|
};
|
|
1965
2186
|
export default configSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/generated/config-schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/generated/config-schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8vEf,CAAC;AACX,eAAe,YAAY,CAAC"}
|