@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
package/dist/docs/NPM_USAGE.md
DELETED
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
# Using Visor via npm/npx
|
|
2
|
-
|
|
3
|
-
## Quick Start (No Installation Required)
|
|
4
|
-
|
|
5
|
-
Run Visor directly using npx:
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npx -y @probelabs/visor@latest --help
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
### Safety & Criticality (Quick Note)
|
|
12
|
-
|
|
13
|
-
Visor follows a criticality‑first model:
|
|
14
|
-
|
|
15
|
-
- Declare criticality on steps (`criticality: external|internal|policy|info`).
|
|
16
|
-
- Pair critical steps with contracts:
|
|
17
|
-
- `assume:` preconditions (skip if unmet; use a guard step if you need a hard fail)
|
|
18
|
-
- `guarantee:` postconditions (violation adds issues and routes `on_fail`)
|
|
19
|
-
- Prefer declarative `transitions` over `goto_js` for routing.
|
|
20
|
-
|
|
21
|
-
Example (block‑style YAML):
|
|
22
|
-
```yaml
|
|
23
|
-
checks:
|
|
24
|
-
post-comment:
|
|
25
|
-
type: github
|
|
26
|
-
criticality: external
|
|
27
|
-
on:
|
|
28
|
-
- pr_opened
|
|
29
|
-
op: comment.create
|
|
30
|
-
assume:
|
|
31
|
-
- "isMember()"
|
|
32
|
-
guarantee:
|
|
33
|
-
- "output && typeof output.id === 'number'"
|
|
34
|
-
continue_on_failure: false
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Global Installation
|
|
38
|
-
|
|
39
|
-
Install globally for frequent use:
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
npm install -g @probelabs/visor
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Then use the `visor` command:
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
visor --check all --output table
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Local Project Installation
|
|
52
|
-
|
|
53
|
-
Add to your project as a dev dependency:
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
npm install --save-dev @probelabs/visor
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
Add to your package.json scripts:
|
|
60
|
-
|
|
61
|
-
```json
|
|
62
|
-
{
|
|
63
|
-
"scripts": {
|
|
64
|
-
"review": "visor --check all",
|
|
65
|
-
"review:security": "visor --check security --output json"
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Usage Examples
|
|
71
|
-
|
|
72
|
-
### Validate configuration
|
|
73
|
-
```bash
|
|
74
|
-
# Validate config in current directory (searches for .visor.yaml)
|
|
75
|
-
npx -y @probelabs/visor validate
|
|
76
|
-
|
|
77
|
-
# Validate specific config file
|
|
78
|
-
npx -y @probelabs/visor validate --config .visor.yaml
|
|
79
|
-
|
|
80
|
-
# Validate before committing
|
|
81
|
-
npx -y @probelabs/visor validate --config examples/my-config.yaml
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
The `validate` command checks your configuration for:
|
|
85
|
-
- Missing required fields (e.g., `version`)
|
|
86
|
-
- Invalid check types or event triggers
|
|
87
|
-
- Incorrect field names and values
|
|
88
|
-
- Schema compliance
|
|
89
|
-
|
|
90
|
-
It provides detailed error messages with helpful hints to fix issues.
|
|
91
|
-
|
|
92
|
-
### Run all checks
|
|
93
|
-
```bash
|
|
94
|
-
npx -y @probelabs/visor@latest --check all
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### Security check with JSON output
|
|
98
|
-
```bash
|
|
99
|
-
npx -y @probelabs/visor@latest --check security --output json
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### Multiple checks with custom config
|
|
103
|
-
```bash
|
|
104
|
-
npx -y @probelabs/visor@latest --check performance --check architecture --config .visor.yaml
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Generate SARIF report for CI/CD
|
|
108
|
-
```bash
|
|
109
|
-
npx -y @probelabs/visor@latest --check security --output sarif --output-file results.sarif
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Save JSON to a file (recommended)
|
|
113
|
-
```bash
|
|
114
|
-
npx -y @probelabs/visor@latest --check all --output json --output-file visor-results.json
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## Configuration
|
|
118
|
-
|
|
119
|
-
Create a `.visor.yaml` file in your project root:
|
|
120
|
-
|
|
121
|
-
```yaml
|
|
122
|
-
version: "1"
|
|
123
|
-
|
|
124
|
-
checks:
|
|
125
|
-
security-review:
|
|
126
|
-
type: ai
|
|
127
|
-
schema: code-review
|
|
128
|
-
prompt: |
|
|
129
|
-
Review the code for security vulnerabilities.
|
|
130
|
-
|
|
131
|
-
performance-review:
|
|
132
|
-
type: ai
|
|
133
|
-
schema: code-review
|
|
134
|
-
prompt: |
|
|
135
|
-
Review the code for performance issues.
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
For complete configuration options, see the [Configuration Guide](./configuration.md).
|
|
139
|
-
|
|
140
|
-
### Structured Outputs and Schemas
|
|
141
|
-
|
|
142
|
-
Use a `schema` field to control output format and validation:
|
|
143
|
-
|
|
144
|
-
- **String schemas** (e.g., `code-review`, `markdown`) select a rendering template
|
|
145
|
-
- **Object schemas** (JSON Schema) validate the produced `output`
|
|
146
|
-
|
|
147
|
-
```yaml
|
|
148
|
-
checks:
|
|
149
|
-
summary:
|
|
150
|
-
type: ai
|
|
151
|
-
schema: code-review
|
|
152
|
-
prompt: |
|
|
153
|
-
Summarize the PR...
|
|
154
|
-
|
|
155
|
-
summarize-json:
|
|
156
|
-
type: ai
|
|
157
|
-
schema:
|
|
158
|
-
type: object
|
|
159
|
-
properties:
|
|
160
|
-
ok: { type: boolean }
|
|
161
|
-
items: { type: array, items: { type: string } }
|
|
162
|
-
required: [ok, items]
|
|
163
|
-
prompt: |
|
|
164
|
-
Return JSON with ok and items...
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
> **Note**: `output_schema` is deprecated. Use `schema` instead.
|
|
168
|
-
|
|
169
|
-
## Environment Variables
|
|
170
|
-
|
|
171
|
-
Set API keys for AI-powered reviews:
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
export GOOGLE_API_KEY=your-key-here
|
|
175
|
-
# or
|
|
176
|
-
export ANTHROPIC_API_KEY=your-key-here
|
|
177
|
-
# or
|
|
178
|
-
export OPENAI_API_KEY=your-key-here
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
## Subcommands
|
|
182
|
-
|
|
183
|
-
Visor supports several subcommands for different workflows:
|
|
184
|
-
|
|
185
|
-
### validate / lint
|
|
186
|
-
|
|
187
|
-
Validate your configuration file before running:
|
|
188
|
-
|
|
189
|
-
```bash
|
|
190
|
-
visor validate --config .visor.yaml
|
|
191
|
-
visor lint --config .visor.yaml # alias
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### test
|
|
195
|
-
|
|
196
|
-
Run YAML-based test suites:
|
|
197
|
-
|
|
198
|
-
```bash
|
|
199
|
-
visor test # Discover and run all test suites
|
|
200
|
-
visor test --config tests/ # Run tests in a directory
|
|
201
|
-
visor test --only "my-test-case" # Run specific test case
|
|
202
|
-
visor test --bail # Stop on first failure
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
See the [Test Framework documentation](./testing/getting-started.md) for details.
|
|
206
|
-
|
|
207
|
-
### code-review / review
|
|
208
|
-
|
|
209
|
-
Run the built-in code review workflow:
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
visor code-review # Review current branch changes
|
|
213
|
-
visor review # alias
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
### mcp-server
|
|
217
|
-
|
|
218
|
-
Start Visor as an MCP (Model Context Protocol) server:
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
visor mcp-server --config .visor.yaml
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
## CLI Options Reference
|
|
225
|
-
|
|
226
|
-
| Option | Description |
|
|
227
|
-
|--------|-------------|
|
|
228
|
-
| `-c, --check <type>` | Specify check(s) to run (can be used multiple times) |
|
|
229
|
-
| `-o, --output <format>` | Output format: `table`, `json`, `markdown`, `sarif` |
|
|
230
|
-
| `--output-file <path>` | Write output to file instead of stdout |
|
|
231
|
-
| `--config <path>` | Path to configuration file |
|
|
232
|
-
| `--timeout <ms>` | Timeout in milliseconds (default: 1200000 / 20 min) |
|
|
233
|
-
| `--max-parallelism <n>` | Max parallel checks (default: 3) |
|
|
234
|
-
| `--debug` | Enable debug mode |
|
|
235
|
-
| `-v, --verbose` | Increase verbosity |
|
|
236
|
-
| `-q, --quiet` | Reduce output to warnings/errors |
|
|
237
|
-
| `--fail-fast` | Stop on first failure |
|
|
238
|
-
| `--tags <tags>` | Run checks with these tags (comma-separated) |
|
|
239
|
-
| `--exclude-tags <tags>` | Skip checks with these tags |
|
|
240
|
-
| `--event <type>` | Simulate event: `pr_opened`, `pr_updated`, `manual`, etc. |
|
|
241
|
-
| `--analyze-branch-diff` | Analyze diff vs base branch |
|
|
242
|
-
| `--tui` | Enable interactive TUI mode |
|
|
243
|
-
| `--debug-server` | Start debug visualizer |
|
|
244
|
-
| `--message <text>` | Message for human-input checks |
|
|
245
|
-
|
|
246
|
-
For complete CLI documentation, see the [CI/CLI Mode Guide](./ci-cli-mode.md).
|
|
247
|
-
|
|
248
|
-
## CI/CD Integration
|
|
249
|
-
|
|
250
|
-
Add to your GitHub Actions workflow:
|
|
251
|
-
|
|
252
|
-
```yaml
|
|
253
|
-
- name: Run Visor Code Review
|
|
254
|
-
run: npx -y @probelabs/visor@latest --check all --output markdown
|
|
255
|
-
env:
|
|
256
|
-
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
### SARIF Output for GitHub Code Scanning
|
|
260
|
-
|
|
261
|
-
```yaml
|
|
262
|
-
- name: Run Security Scan
|
|
263
|
-
run: npx -y @probelabs/visor@latest --check security --output sarif --output-file results.sarif
|
|
264
|
-
env:
|
|
265
|
-
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
266
|
-
|
|
267
|
-
- name: Upload SARIF
|
|
268
|
-
uses: github/codeql-action/upload-sarif@v3
|
|
269
|
-
with:
|
|
270
|
-
sarif_file: results.sarif
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
For complete CI/CD examples, see the [CI/CLI Mode Guide](./ci-cli-mode.md).
|
|
274
|
-
|
|
275
|
-
## Related Documentation
|
|
276
|
-
|
|
277
|
-
- [Configuration Guide](./configuration.md) - Complete configuration reference
|
|
278
|
-
- [AI Configuration](./ai-configuration.md) - AI provider setup and options
|
|
279
|
-
- [CI/CLI Mode Guide](./ci-cli-mode.md) - GitHub Actions and CI integration
|
|
280
|
-
- [Test Framework](./testing/getting-started.md) - Writing and running tests
|
|
281
|
-
- [Troubleshooting](./troubleshooting.md) - Common issues and solutions
|