@probelabs/visor 0.1.106 → 0.1.111
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 +71 -2
- package/action.yml +1 -1
- package/defaults/code-refiner.yaml +114 -0
- package/defaults/{.visor.yaml → code-review.yaml} +35 -226
- package/defaults/override.yaml +52 -0
- package/defaults/task-refinement.yaml +624 -0
- package/defaults/visor.tests.yaml +685 -0
- package/defaults/visor.yaml +483 -0
- package/dist/action-cli-bridge.d.ts +11 -82
- package/dist/action-cli-bridge.d.ts.map +1 -1
- package/dist/ai-review-service.d.ts +28 -9
- package/dist/ai-review-service.d.ts.map +1 -1
- package/dist/check-execution-engine.d.ts +19 -331
- package/dist/check-execution-engine.d.ts.map +1 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/config.d.ts +16 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/cron-scheduler.d.ts +3 -3
- package/dist/cron-scheduler.d.ts.map +1 -1
- package/dist/debug-visualizer/ws-server.d.ts +7 -1
- package/dist/debug-visualizer/ws-server.d.ts.map +1 -1
- package/dist/defaults/code-refiner.yaml +114 -0
- package/dist/defaults/{.visor.yaml → code-review.yaml} +35 -226
- package/dist/defaults/override.yaml +52 -0
- package/dist/defaults/task-refinement.yaml +624 -0
- package/dist/defaults/visor.tests.yaml +685 -0
- package/dist/defaults/visor.yaml +483 -0
- package/dist/docs/DEPLOYMENT.md +118 -0
- package/dist/docs/GITHUB_CHECKS.md +280 -0
- package/dist/docs/NPM_USAGE.md +208 -0
- package/dist/docs/action-reference.md +19 -0
- package/dist/docs/advanced-ai.md +237 -0
- package/dist/docs/ai-configuration.md +535 -0
- package/dist/docs/ai-custom-tools-usage.md +261 -0
- package/dist/docs/ai-custom-tools.md +392 -0
- package/dist/docs/author-permissions.md +610 -0
- package/dist/docs/bot-transports-rfc.md +23 -0
- package/dist/docs/ci-cli-mode.md +34 -0
- package/dist/docs/claude-code.md +74 -0
- package/dist/docs/command-provider.md +559 -0
- package/dist/docs/commands.md +8 -0
- package/dist/docs/configuration.md +324 -0
- package/dist/docs/custom-tools.md +424 -0
- package/dist/docs/dashboards/README.md +23 -0
- package/dist/docs/dashboards/grafana-visor-diagrams.json +20 -0
- package/dist/docs/dashboards/grafana-visor-overview.json +33 -0
- package/dist/docs/debug-visualizer-progress.md +572 -0
- package/dist/docs/debug-visualizer-rfc.md +691 -0
- package/dist/docs/debug-visualizer.md +114 -0
- package/dist/docs/debugging.md +636 -0
- package/dist/docs/default-output-schema.md +28 -0
- package/dist/docs/dependencies.md +369 -0
- package/dist/docs/dev-playbook.md +9 -0
- package/dist/docs/engine-pause-resume-rfc.md +192 -0
- package/dist/docs/engine-state-machine-plan.md +333 -0
- package/dist/docs/event-driven-github-integration-rfc.md +743 -0
- package/dist/docs/event-triggers.md +292 -0
- package/dist/docs/execution-statistics-rfc.md +290 -0
- package/dist/docs/fact-validator-gap-analysis.md +178 -0
- package/dist/docs/fact-validator-implementation-plan.md +1235 -0
- package/dist/docs/fail-if.md +95 -0
- package/dist/docs/failure-conditions-implementation.md +271 -0
- package/dist/docs/failure-conditions-schema.md +173 -0
- package/dist/docs/failure-routing-rfc.md +193 -0
- package/dist/docs/failure-routing.md +507 -0
- package/dist/docs/foreach-dependency-propagation.md +473 -0
- package/dist/docs/github-ops.md +89 -0
- package/dist/docs/goto-forward-run-plan.md +113 -0
- package/dist/docs/guides/criticality-modes.md +332 -0
- package/dist/docs/guides/fault-management-and-contracts.md +738 -0
- package/dist/docs/guides/workflow-style-guide.md +224 -0
- package/dist/docs/http.md +299 -0
- package/dist/docs/human-input-provider.md +372 -0
- package/dist/docs/lifecycle-hooks.md +253 -0
- package/dist/docs/limits.md +64 -0
- package/dist/docs/liquid-templates.md +490 -0
- package/dist/docs/loop-routing-refactor.md +89 -0
- package/dist/docs/mcp-provider.md +557 -0
- package/dist/docs/mcp.md +124 -0
- package/dist/docs/memory.md +903 -0
- package/dist/docs/observability.md +12 -0
- package/dist/docs/output-formats.md +20 -0
- package/dist/docs/output-formatting.md +29 -0
- package/dist/docs/output-history.md +383 -0
- package/dist/docs/performance.md +6 -0
- package/dist/docs/pluggable.md +124 -0
- package/dist/docs/proposals/snapshot-scope-execution.md +236 -0
- package/dist/docs/providers/git-checkout.md +589 -0
- package/dist/docs/recipes.md +474 -0
- package/dist/docs/rfc/git-checkout-step.md +601 -0
- package/dist/docs/rfc/on_init-hook.md +1294 -0
- package/dist/docs/rfc/workspace-isolation.md +216 -0
- package/dist/docs/roadmap/criticality-implementation-tasks.md +92 -0
- package/dist/docs/router-patterns.md +339 -0
- package/dist/docs/schema-next-pr.md +10 -0
- package/dist/docs/schema-templates.md +68 -0
- package/dist/docs/script.md +34 -0
- package/dist/docs/sdk.md +222 -0
- package/dist/docs/security.md +7 -0
- package/dist/docs/suppressions.md +89 -0
- package/dist/docs/tag-filtering.md +258 -0
- package/dist/docs/telemetry-setup.md +119 -0
- package/dist/docs/telemetry-tracing-rfc.md +275 -0
- package/dist/docs/test-framework-rfc.md +680 -0
- package/dist/docs/testing/assertions.md +85 -0
- package/dist/docs/testing/ci.md +44 -0
- package/dist/docs/testing/cli.md +41 -0
- package/dist/docs/testing/cookbook.md +172 -0
- package/dist/docs/testing/dsl-reference.md +199 -0
- package/dist/docs/testing/fixtures-and-mocks.md +91 -0
- package/dist/docs/testing/flows.md +92 -0
- package/dist/docs/testing/getting-started.md +93 -0
- package/dist/docs/testing/troubleshooting.md +55 -0
- package/dist/docs/timeouts.md +50 -0
- package/dist/docs/troubleshooting.md +7 -0
- package/dist/docs/visor-sdk-rfc.md +186 -0
- package/dist/docs/workflows.md +569 -0
- package/dist/engine/on-finish/orchestrator.d.ts +19 -0
- package/dist/engine/on-finish/orchestrator.d.ts.map +1 -0
- package/dist/engine/on-finish/utils.d.ts +44 -0
- package/dist/engine/on-finish/utils.d.ts.map +1 -0
- package/dist/event-bus/event-bus.d.ts +13 -0
- package/dist/event-bus/event-bus.d.ts.map +1 -0
- package/dist/event-bus/types.d.ts +71 -0
- package/dist/event-bus/types.d.ts.map +1 -0
- package/dist/examples/.claude/agents/code-reviewer.md +69 -0
- package/dist/examples/.mcp.json +34 -0
- package/dist/examples/CALCULATOR-SDK.md +364 -0
- package/dist/examples/README.md +384 -0
- package/dist/examples/ai-custom-tools-example.yaml +206 -0
- package/dist/examples/ai-custom-tools-simple.yaml +76 -0
- package/dist/examples/ai-retry-fallback-config.yaml +180 -0
- package/dist/examples/ai-with-bash.yaml +126 -0
- package/dist/examples/ai-with-mcp.yaml +82 -0
- package/dist/examples/basic-human-input.yaml +15 -0
- package/dist/examples/bedrock-config.yaml +77 -0
- package/dist/examples/calculator-config.yaml +133 -0
- package/dist/examples/calculator-json-output-guide.md +311 -0
- package/dist/examples/calculator-sdk-automated.ts +340 -0
- package/dist/examples/calculator-sdk-example.ts +275 -0
- package/dist/examples/calculator-sdk-json.ts +331 -0
- package/dist/examples/calculator-sdk-real.ts +374 -0
- package/dist/examples/calculator-sdk-test.ts +148 -0
- package/dist/examples/claude-code-config.yaml +191 -0
- package/dist/examples/cron-webhook-config.yaml +215 -0
- package/dist/examples/custom-template.liquid +57 -0
- package/dist/examples/custom-tools-example.yaml +281 -0
- package/dist/examples/enhanced-config.yaml +165 -0
- package/dist/examples/environments/visor.base.yaml +92 -0
- package/dist/examples/environments/visor.dev.yaml +33 -0
- package/dist/examples/environments/visor.prod.yaml +95 -0
- package/dist/examples/environments/visor.staging.yaml +46 -0
- package/dist/examples/fact-validator.yaml +361 -0
- package/dist/examples/fail-if-simple.yaml +90 -0
- package/dist/examples/failure-conditions-advanced.yaml +136 -0
- package/dist/examples/failure-conditions-basic.yaml +48 -0
- package/dist/examples/failure-conditions-github-style.yaml +119 -0
- package/dist/examples/failure-conditions-migration.yaml +74 -0
- package/dist/examples/for-loop-example.yaml +176 -0
- package/dist/examples/forEach-example.yaml +120 -0
- package/dist/examples/git-checkout-basic.yaml +32 -0
- package/dist/examples/git-checkout-compare.yaml +59 -0
- package/dist/examples/git-checkout-cross-repo.yaml +76 -0
- package/dist/examples/github-workflow-with-tags.yml +163 -0
- package/dist/examples/http-integration-config.yaml +240 -0
- package/dist/examples/https-server-config.yaml +209 -0
- package/dist/examples/human-input-example.yaml +63 -0
- package/dist/examples/if-conditions.yaml +173 -0
- package/dist/examples/jira-simple-example.yaml +56 -0
- package/dist/examples/jira-single-issue-workflow.yaml +166 -0
- package/dist/examples/jira-workflow-mcp.yaml +182 -0
- package/dist/examples/mcp/analyzer.py +119 -0
- package/dist/examples/mcp-provider-example.yaml +301 -0
- package/dist/examples/memory-counter.yaml +99 -0
- package/dist/examples/memory-error-collection.yaml +104 -0
- package/dist/examples/memory-exec-js.yaml +247 -0
- package/dist/examples/memory-namespace-isolation.yaml +184 -0
- package/dist/examples/memory-retry-counter.yaml +65 -0
- package/dist/examples/memory-state-machine.yaml +170 -0
- package/dist/examples/on-init-import-demo.yaml +179 -0
- package/dist/examples/outputs-raw-basic.yaml +26 -0
- package/dist/examples/project-with-tools.yaml +174 -0
- package/dist/examples/prompts/architecture-analysis.liquid +116 -0
- package/dist/examples/prompts/security-comprehensive.liquid +107 -0
- package/dist/examples/quick-start-tags.yaml +53 -0
- package/dist/examples/reusable-tools.yaml +92 -0
- package/dist/examples/reusable-workflows.yaml +88 -0
- package/dist/examples/routing-basic.yaml +35 -0
- package/dist/examples/routing-dynamic-js.yaml +46 -0
- package/dist/examples/routing-foreach.yaml +34 -0
- package/dist/examples/routing-goto-event.yaml +34 -0
- package/dist/examples/routing-on-success.yaml +25 -0
- package/dist/examples/run-calculator-demo.sh +71 -0
- package/dist/examples/sdk-basic.mjs +10 -0
- package/dist/examples/sdk-cjs.cjs +10 -0
- package/dist/examples/sdk-comprehensive.mjs +175 -0
- package/dist/examples/sdk-manual-config.mjs +65 -0
- package/dist/examples/sdk-typescript.js +81 -0
- package/dist/examples/sdk-typescript.ts +92 -0
- package/dist/examples/session-reuse-config.yaml +151 -0
- package/dist/examples/session-reuse-self.yaml +81 -0
- package/dist/examples/slack-simple-chat.yaml +775 -0
- package/dist/examples/templates/security-report.liquid +137 -0
- package/dist/examples/tools-library.yaml +281 -0
- package/dist/examples/transform-example.yaml +199 -0
- package/dist/examples/visor-with-tags.yaml +198 -0
- package/dist/examples/webhook-pipeline-config.yaml +218 -0
- package/dist/examples/workflows/calculator-workflow.yaml +163 -0
- package/dist/examples/workflows/code-quality.yaml +222 -0
- package/dist/examples/workflows/quick-pr-check.yaml +90 -0
- package/dist/examples/workflows/workflow-composition-example.yaml +130 -0
- package/dist/failure-condition-evaluator.d.ts +3 -0
- package/dist/failure-condition-evaluator.d.ts.map +1 -1
- package/dist/frontends/github-frontend.d.ts +58 -0
- package/dist/frontends/github-frontend.d.ts.map +1 -0
- package/dist/frontends/host.d.ts +47 -0
- package/dist/frontends/host.d.ts.map +1 -0
- package/dist/frontends/ndjson-sink.d.ts +12 -0
- package/dist/frontends/ndjson-sink.d.ts.map +1 -0
- package/dist/frontends/slack-frontend.d.ts +58 -0
- package/dist/frontends/slack-frontend.d.ts.map +1 -0
- package/dist/generated/config-schema.d.ts +967 -57
- package/dist/generated/config-schema.d.ts.map +1 -1
- package/dist/generated/config-schema.json +1033 -56
- package/dist/github-check-service.d.ts +4 -6
- package/dist/github-check-service.d.ts.map +1 -1
- package/dist/github-comments.d.ts +2 -4
- package/dist/github-comments.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +134327 -99004
- package/dist/liquid-extensions.d.ts.map +1 -1
- package/dist/logger.d.ts +2 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/memory-store.d.ts +6 -0
- package/dist/memory-store.d.ts.map +1 -1
- package/dist/output/assistant-json/template.liquid +0 -0
- package/dist/output/traces/run-2026-01-20T19-22-58-043Z.ndjson +138 -0
- package/dist/output/traces/run-2026-01-20T19-23-52-175Z.ndjson +1067 -0
- package/dist/output-formatters.d.ts +1 -1
- package/dist/output-formatters.d.ts.map +1 -1
- package/dist/providers/ai-check-provider.d.ts +12 -0
- package/dist/providers/ai-check-provider.d.ts.map +1 -1
- package/dist/providers/check-provider-registry.d.ts +6 -0
- package/dist/providers/check-provider-registry.d.ts.map +1 -1
- package/dist/providers/check-provider.interface.d.ts +43 -1
- package/dist/providers/check-provider.interface.d.ts.map +1 -1
- package/dist/providers/claude-code-check-provider.d.ts.map +1 -1
- package/dist/providers/command-check-provider.d.ts +1 -1
- package/dist/providers/command-check-provider.d.ts.map +1 -1
- package/dist/providers/custom-tool-executor.d.ts +61 -0
- package/dist/providers/custom-tool-executor.d.ts.map +1 -0
- package/dist/providers/git-checkout-provider.d.ts +25 -0
- package/dist/providers/git-checkout-provider.d.ts.map +1 -0
- package/dist/providers/github-ops-provider.d.ts.map +1 -1
- package/dist/providers/http-client-provider.d.ts +4 -4
- package/dist/providers/http-client-provider.d.ts.map +1 -1
- package/dist/providers/human-input-check-provider.d.ts +5 -0
- package/dist/providers/human-input-check-provider.d.ts.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/log-check-provider.d.ts +2 -5
- package/dist/providers/log-check-provider.d.ts.map +1 -1
- package/dist/providers/mcp-check-provider.d.ts +10 -4
- package/dist/providers/mcp-check-provider.d.ts.map +1 -1
- package/dist/providers/mcp-custom-sse-server.d.ts +66 -0
- package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -0
- package/dist/providers/memory-check-provider.d.ts +2 -8
- package/dist/providers/memory-check-provider.d.ts.map +1 -1
- package/dist/providers/script-check-provider.d.ts +25 -0
- package/dist/providers/script-check-provider.d.ts.map +1 -0
- package/dist/providers/workflow-check-provider.d.ts +56 -0
- package/dist/providers/workflow-check-provider.d.ts.map +1 -0
- package/dist/reviewer.d.ts +2 -1
- package/dist/reviewer.d.ts.map +1 -1
- package/dist/sdk/check-provider-registry-534KL5HT.mjs +27 -0
- package/dist/sdk/chunk-23L3QRYX.mjs +16872 -0
- package/dist/sdk/chunk-23L3QRYX.mjs.map +1 -0
- package/dist/sdk/{chunk-TUTOLSFV.mjs → chunk-3OMWVM6J.mjs} +11 -1
- package/dist/sdk/chunk-3OMWVM6J.mjs.map +1 -0
- package/dist/sdk/chunk-7UK3NIIT.mjs +482 -0
- package/dist/sdk/chunk-7UK3NIIT.mjs.map +1 -0
- package/dist/sdk/chunk-AGIZJ4UZ.mjs +173 -0
- package/dist/sdk/chunk-AGIZJ4UZ.mjs.map +1 -0
- package/dist/sdk/chunk-AIVFBIS4.mjs +1371 -0
- package/dist/sdk/chunk-AIVFBIS4.mjs.map +1 -0
- package/dist/sdk/chunk-AK6BVWIT.mjs +426 -0
- package/dist/sdk/chunk-AK6BVWIT.mjs.map +1 -0
- package/dist/sdk/chunk-AUT26LHW.mjs +139 -0
- package/dist/sdk/chunk-AUT26LHW.mjs.map +1 -0
- package/dist/sdk/chunk-BOVFH3LI.mjs +232 -0
- package/dist/sdk/chunk-BOVFH3LI.mjs.map +1 -0
- package/dist/sdk/chunk-CNX7V5JK.mjs +89 -0
- package/dist/sdk/chunk-CNX7V5JK.mjs.map +1 -0
- package/dist/sdk/chunk-HTOKWMPO.mjs +157 -0
- package/dist/sdk/chunk-HTOKWMPO.mjs.map +1 -0
- package/dist/sdk/chunk-NAW3DB3I.mjs +197 -0
- package/dist/sdk/chunk-NAW3DB3I.mjs.map +1 -0
- package/dist/sdk/chunk-O5EZDNYL.mjs +274 -0
- package/dist/sdk/chunk-O5EZDNYL.mjs.map +1 -0
- package/dist/sdk/chunk-QR7MOMJH.mjs +558 -0
- package/dist/sdk/chunk-QR7MOMJH.mjs.map +1 -0
- package/dist/sdk/chunk-QY2XYPEV.mjs +3556 -0
- package/dist/sdk/chunk-QY2XYPEV.mjs.map +1 -0
- package/dist/sdk/chunk-S2RUE2RG.mjs +145 -0
- package/dist/sdk/chunk-S2RUE2RG.mjs.map +1 -0
- package/dist/sdk/chunk-SIWNBRTK.mjs +800 -0
- package/dist/sdk/chunk-SIWNBRTK.mjs.map +1 -0
- package/dist/sdk/chunk-YSN4G6CI.mjs +146 -0
- package/dist/sdk/chunk-YSN4G6CI.mjs.map +1 -0
- package/dist/sdk/chunk-ZYAUYXSW.mjs +206 -0
- package/dist/sdk/chunk-ZYAUYXSW.mjs.map +1 -0
- package/dist/sdk/command-executor-TYUV6HUS.mjs +14 -0
- package/dist/sdk/config-YNC2EOOT.mjs +16 -0
- package/dist/sdk/config-merger-PX3WIT57.mjs +10 -0
- package/dist/sdk/event-bus-5BEVPQ6T.mjs +35 -0
- package/dist/sdk/event-bus-5BEVPQ6T.mjs.map +1 -0
- package/dist/sdk/failure-condition-evaluator-YGTF2GHG.mjs +17 -0
- package/dist/sdk/git-repository-analyzer-HJC4MYW4.mjs +458 -0
- package/dist/sdk/git-repository-analyzer-HJC4MYW4.mjs.map +1 -0
- package/dist/sdk/github-frontend-SIAEOCON.mjs +1420 -0
- package/dist/sdk/github-frontend-SIAEOCON.mjs.map +1 -0
- package/dist/sdk/host-DXUYTNMU.mjs +52 -0
- package/dist/sdk/host-DXUYTNMU.mjs.map +1 -0
- package/dist/sdk/{liquid-extensions-KVL4MKRH.mjs → liquid-extensions-PKWCKK7E.mjs} +8 -2
- package/dist/sdk/memory-store-XGBB7LX7.mjs +12 -0
- package/dist/sdk/memory-store-XGBB7LX7.mjs.map +1 -0
- package/dist/sdk/metrics-7PP3EJUH.mjs +29 -0
- package/dist/sdk/metrics-7PP3EJUH.mjs.map +1 -0
- package/dist/sdk/ndjson-sink-B4V4NTAQ.mjs +44 -0
- package/dist/sdk/ndjson-sink-B4V4NTAQ.mjs.map +1 -0
- package/dist/sdk/prompt-state-YRJY6QAL.mjs +16 -0
- package/dist/sdk/prompt-state-YRJY6QAL.mjs.map +1 -0
- package/dist/sdk/renderer-schema-LPKN5UJS.mjs +51 -0
- package/dist/sdk/renderer-schema-LPKN5UJS.mjs.map +1 -0
- package/dist/sdk/routing-6N45MJ4F.mjs +24 -0
- package/dist/sdk/routing-6N45MJ4F.mjs.map +1 -0
- package/dist/sdk/sdk.d.mts +541 -22
- package/dist/sdk/sdk.d.ts +541 -22
- package/dist/sdk/sdk.js +27963 -16505
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +1116 -2169
- package/dist/sdk/sdk.mjs.map +1 -1
- package/dist/sdk/session-registry-4E6YRQ77.mjs +10 -0
- package/dist/sdk/session-registry-4E6YRQ77.mjs.map +1 -0
- package/dist/sdk/slack-frontend-BVKW3GD5.mjs +735 -0
- package/dist/sdk/slack-frontend-BVKW3GD5.mjs.map +1 -0
- package/dist/sdk/trace-helpers-VP6QYVBX.mjs +23 -0
- package/dist/sdk/trace-helpers-VP6QYVBX.mjs.map +1 -0
- package/dist/sdk/{tracer-init-WC75N5NW.mjs → tracer-init-GSLPPLCD.mjs} +2 -2
- package/dist/sdk/tracer-init-GSLPPLCD.mjs.map +1 -0
- package/dist/sdk/workflow-registry-R6KSACFR.mjs +12 -0
- package/dist/sdk/workflow-registry-R6KSACFR.mjs.map +1 -0
- package/dist/sdk.d.ts.map +1 -1
- package/dist/slack/adapter.d.ts +36 -0
- package/dist/slack/adapter.d.ts.map +1 -0
- package/dist/slack/cache-prewarmer.d.ts +31 -0
- package/dist/slack/cache-prewarmer.d.ts.map +1 -0
- package/dist/slack/client.d.ts +77 -0
- package/dist/slack/client.d.ts.map +1 -0
- package/dist/slack/markdown.d.ts +45 -0
- package/dist/slack/markdown.d.ts.map +1 -0
- package/dist/slack/prompt-state.d.ts +33 -0
- package/dist/slack/prompt-state.d.ts.map +1 -0
- package/dist/slack/rate-limiter.d.ts +56 -0
- package/dist/slack/rate-limiter.d.ts.map +1 -0
- package/dist/slack/signature.d.ts +2 -0
- package/dist/slack/signature.d.ts.map +1 -0
- package/dist/slack/socket-runner.d.ts +42 -0
- package/dist/slack/socket-runner.d.ts.map +1 -0
- package/dist/slack/thread-cache.d.ts +51 -0
- package/dist/slack/thread-cache.d.ts.map +1 -0
- package/dist/snapshot-store.d.ts +59 -0
- package/dist/snapshot-store.d.ts.map +1 -0
- package/dist/state-machine/context/build-engine-context.d.ts +17 -0
- package/dist/state-machine/context/build-engine-context.d.ts.map +1 -0
- package/dist/state-machine/dispatch/dependency-gating.d.ts +12 -0
- package/dist/state-machine/dispatch/dependency-gating.d.ts.map +1 -0
- package/dist/state-machine/dispatch/execution-invoker.d.ts +14 -0
- package/dist/state-machine/dispatch/execution-invoker.d.ts.map +1 -0
- package/dist/state-machine/dispatch/foreach-processor.d.ts +8 -0
- package/dist/state-machine/dispatch/foreach-processor.d.ts.map +1 -0
- package/dist/state-machine/dispatch/history-snapshot.d.ts +8 -0
- package/dist/state-machine/dispatch/history-snapshot.d.ts.map +1 -0
- package/dist/state-machine/dispatch/on-init-handlers.d.ts +43 -0
- package/dist/state-machine/dispatch/on-init-handlers.d.ts.map +1 -0
- package/dist/state-machine/dispatch/renderer-schema.d.ts +8 -0
- package/dist/state-machine/dispatch/renderer-schema.d.ts.map +1 -0
- package/dist/state-machine/dispatch/stats-manager.d.ts +15 -0
- package/dist/state-machine/dispatch/stats-manager.d.ts.map +1 -0
- package/dist/state-machine/dispatch/template-renderer.d.ts +7 -0
- package/dist/state-machine/dispatch/template-renderer.d.ts.map +1 -0
- package/dist/state-machine/execution/summary.d.ts +8 -0
- package/dist/state-machine/execution/summary.d.ts.map +1 -0
- package/dist/state-machine/runner.d.ts +79 -0
- package/dist/state-machine/runner.d.ts.map +1 -0
- package/dist/state-machine/states/check-running.d.ts +14 -0
- package/dist/state-machine/states/check-running.d.ts.map +1 -0
- package/dist/state-machine/states/completed.d.ts +12 -0
- package/dist/state-machine/states/completed.d.ts.map +1 -0
- package/dist/state-machine/states/error.d.ts +11 -0
- package/dist/state-machine/states/error.d.ts.map +1 -0
- package/dist/state-machine/states/init.d.ts +11 -0
- package/dist/state-machine/states/init.d.ts.map +1 -0
- package/dist/state-machine/states/level-dispatch.d.ts +17 -0
- package/dist/state-machine/states/level-dispatch.d.ts.map +1 -0
- package/dist/state-machine/states/plan-ready.d.ts +12 -0
- package/dist/state-machine/states/plan-ready.d.ts.map +1 -0
- package/dist/state-machine/states/routing.d.ts +52 -0
- package/dist/state-machine/states/routing.d.ts.map +1 -0
- package/dist/state-machine/states/wave-planning.d.ts +14 -0
- package/dist/state-machine/states/wave-planning.d.ts.map +1 -0
- package/dist/state-machine/workflow-projection.d.ts +47 -0
- package/dist/state-machine/workflow-projection.d.ts.map +1 -0
- package/dist/state-machine-execution-engine.d.ts +159 -0
- package/dist/state-machine-execution-engine.d.ts.map +1 -0
- package/dist/telemetry/opentelemetry.d.ts.map +1 -1
- package/dist/telemetry/state-capture.d.ts +5 -0
- package/dist/telemetry/state-capture.d.ts.map +1 -1
- package/dist/test-runner/assertions.d.ts +59 -0
- package/dist/test-runner/assertions.d.ts.map +1 -0
- package/dist/test-runner/core/environment.d.ts +8 -0
- package/dist/test-runner/core/environment.d.ts.map +1 -0
- package/dist/test-runner/core/fixture.d.ts +3 -0
- package/dist/test-runner/core/fixture.d.ts.map +1 -0
- package/dist/test-runner/core/flow-stage.d.ts +32 -0
- package/dist/test-runner/core/flow-stage.d.ts.map +1 -0
- package/dist/test-runner/core/mocks.d.ts +8 -0
- package/dist/test-runner/core/mocks.d.ts.map +1 -0
- package/dist/test-runner/core/test-execution-wrapper.d.ts +18 -0
- package/dist/test-runner/core/test-execution-wrapper.d.ts.map +1 -0
- package/dist/test-runner/evaluators.d.ts +45 -0
- package/dist/test-runner/evaluators.d.ts.map +1 -0
- package/dist/test-runner/fixture-loader.d.ts +30 -0
- package/dist/test-runner/fixture-loader.d.ts.map +1 -0
- package/dist/test-runner/index.d.ts +127 -0
- package/dist/test-runner/index.d.ts.map +1 -0
- package/dist/test-runner/recorders/github-recorder.d.ts +23 -0
- package/dist/test-runner/recorders/github-recorder.d.ts.map +1 -0
- package/dist/test-runner/recorders/global-recorder.d.ts +4 -0
- package/dist/test-runner/recorders/global-recorder.d.ts.map +1 -0
- package/dist/test-runner/recorders/slack-recorder.d.ts +17 -0
- package/dist/test-runner/recorders/slack-recorder.d.ts.map +1 -0
- package/dist/test-runner/utils/selectors.d.ts +2 -0
- package/dist/test-runner/utils/selectors.d.ts.map +1 -0
- package/dist/test-runner/validator.d.ts +8 -0
- package/dist/test-runner/validator.d.ts.map +1 -0
- package/dist/traces/run-2026-01-20T19-22-58-043Z.ndjson +138 -0
- package/dist/traces/run-2026-01-20T19-23-52-175Z.ndjson +1067 -0
- package/dist/types/bot.d.ts +109 -0
- package/dist/types/bot.d.ts.map +1 -0
- package/dist/types/cli.d.ts +8 -1
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/config.d.ts +459 -9
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/engine.d.ts +177 -0
- package/dist/types/engine.d.ts.map +1 -0
- package/dist/types/execution.d.ts +73 -0
- package/dist/types/execution.d.ts.map +1 -0
- package/dist/types/git-checkout.d.ts +76 -0
- package/dist/types/git-checkout.d.ts.map +1 -0
- package/dist/types/github.d.ts +51 -0
- package/dist/types/github.d.ts.map +1 -0
- package/dist/types/workflow.d.ts +237 -0
- package/dist/types/workflow.d.ts.map +1 -0
- package/dist/utils/command-executor.d.ts +43 -0
- package/dist/utils/command-executor.d.ts.map +1 -0
- package/dist/utils/comment-metadata.d.ts +21 -0
- package/dist/utils/comment-metadata.d.ts.map +1 -0
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-merger.d.ts.map +1 -1
- package/dist/utils/env-exposure.d.ts +3 -0
- package/dist/utils/env-exposure.d.ts.map +1 -0
- package/dist/utils/file-exclusion.d.ts.map +1 -1
- package/dist/utils/interactive-prompt.d.ts +1 -1
- package/dist/utils/interactive-prompt.d.ts.map +1 -1
- package/dist/utils/json-text-extractor.d.ts +17 -0
- package/dist/utils/json-text-extractor.d.ts.map +1 -0
- package/dist/utils/sandbox.d.ts +10 -0
- package/dist/utils/sandbox.d.ts.map +1 -1
- package/dist/utils/script-memory-ops.d.ts +21 -0
- package/dist/utils/script-memory-ops.d.ts.map +1 -0
- package/dist/utils/template-context.d.ts +8 -0
- package/dist/utils/template-context.d.ts.map +1 -0
- package/dist/utils/tracer-init.d.ts.map +1 -1
- package/dist/utils/workspace-manager.d.ts +118 -0
- package/dist/utils/workspace-manager.d.ts.map +1 -0
- package/dist/utils/worktree-cleanup.d.ts +33 -0
- package/dist/utils/worktree-cleanup.d.ts.map +1 -0
- package/dist/utils/worktree-manager.d.ts +153 -0
- package/dist/utils/worktree-manager.d.ts.map +1 -0
- package/dist/webhook-server.d.ts +3 -3
- package/dist/webhook-server.d.ts.map +1 -1
- package/dist/workflow-executor.d.ts +81 -0
- package/dist/workflow-executor.d.ts.map +1 -0
- package/dist/workflow-registry.d.ts +79 -0
- package/dist/workflow-registry.d.ts.map +1 -0
- package/package.json +12 -5
- package/dist/output/traces/run-2025-10-22T18-22-56-873Z.ndjson +0 -218
- package/dist/sdk/check-execution-engine-2YYKUUSH.mjs +0 -11
- package/dist/sdk/check-execution-engine-6QJXYYON.mjs +0 -11
- package/dist/sdk/check-execution-engine-PJZ4ZOKG.mjs +0 -11
- package/dist/sdk/chunk-33QVZ2D4.mjs +0 -316
- package/dist/sdk/chunk-33QVZ2D4.mjs.map +0 -1
- package/dist/sdk/chunk-B5QBV2QJ.mjs +0 -752
- package/dist/sdk/chunk-B5QBV2QJ.mjs.map +0 -1
- package/dist/sdk/chunk-BVFNRCHT.mjs +0 -14129
- package/dist/sdk/chunk-BVFNRCHT.mjs.map +0 -1
- package/dist/sdk/chunk-KWZW23FG.mjs +0 -14129
- package/dist/sdk/chunk-KWZW23FG.mjs.map +0 -1
- package/dist/sdk/chunk-O4RP4BRH.mjs +0 -14092
- package/dist/sdk/chunk-O4RP4BRH.mjs.map +0 -1
- package/dist/sdk/chunk-TUTOLSFV.mjs.map +0 -1
- package/dist/sdk/chunk-U5D2LY66.mjs +0 -245
- package/dist/sdk/chunk-U5D2LY66.mjs.map +0 -1
- package/dist/sdk/chunk-U7X54EMV.mjs +0 -331
- package/dist/sdk/chunk-U7X54EMV.mjs.map +0 -1
- package/dist/sdk/config-merger-TWUBWFC2.mjs +0 -8
- package/dist/sdk/mermaid-telemetry-SN6A2TKW.mjs +0 -61
- package/dist/sdk/mermaid-telemetry-SN6A2TKW.mjs.map +0 -1
- package/dist/sdk/mermaid-telemetry-YCTIG76M.mjs +0 -61
- package/dist/sdk/mermaid-telemetry-YCTIG76M.mjs.map +0 -1
- package/dist/traces/run-2025-10-22T18-22-56-873Z.ndjson +0 -218
- /package/dist/sdk/{check-execution-engine-2YYKUUSH.mjs.map → check-provider-registry-534KL5HT.mjs.map} +0 -0
- /package/dist/sdk/{check-execution-engine-6QJXYYON.mjs.map → command-executor-TYUV6HUS.mjs.map} +0 -0
- /package/dist/sdk/{check-execution-engine-PJZ4ZOKG.mjs.map → config-YNC2EOOT.mjs.map} +0 -0
- /package/dist/sdk/{config-merger-TWUBWFC2.mjs.map → config-merger-PX3WIT57.mjs.map} +0 -0
- /package/dist/sdk/{liquid-extensions-KVL4MKRH.mjs.map → failure-condition-evaluator-YGTF2GHG.mjs.map} +0 -0
- /package/dist/sdk/{tracer-init-WC75N5NW.mjs.map → liquid-extensions-PKWCKK7E.mjs.map} +0 -0
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
## 🤖 AI Configuration
|
|
2
|
+
|
|
3
|
+
Visor supports multiple AI providers. Configure one via environment variables.
|
|
4
|
+
|
|
5
|
+
### Supported Providers
|
|
6
|
+
|
|
7
|
+
| Provider | Env Var | Example Models |
|
|
8
|
+
|----------|---------|----------------|
|
|
9
|
+
| Google Gemini | `GOOGLE_API_KEY` | `gemini-2.0-flash-exp`, `gemini-1.5-pro` |
|
|
10
|
+
| Anthropic Claude | `ANTHROPIC_API_KEY` | `claude-3-opus`, `claude-3-sonnet` |
|
|
11
|
+
| OpenAI GPT | `OPENAI_API_KEY` | `gpt-4`, `gpt-4-turbo`, `gpt-3.5-turbo` |
|
|
12
|
+
| AWS Bedrock | AWS credentials (see below) | `anthropic.claude-sonnet-4-20250514-v1:0` (default) |
|
|
13
|
+
|
|
14
|
+
### GitHub Actions Setup
|
|
15
|
+
Add the provider key as a secret (Settings → Secrets → Actions), then expose it:
|
|
16
|
+
|
|
17
|
+
```yaml
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
- uses: probelabs/visor@v1
|
|
21
|
+
env:
|
|
22
|
+
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
|
|
23
|
+
# or ANTHROPIC_API_KEY / OPENAI_API_KEY
|
|
24
|
+
# For AWS Bedrock:
|
|
25
|
+
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
26
|
+
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
27
|
+
# AWS_REGION: us-east-1
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Local Development
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Google Gemini
|
|
34
|
+
export GOOGLE_API_KEY="your-api-key"
|
|
35
|
+
export MODEL_NAME="gemini-2.0-flash-exp"
|
|
36
|
+
|
|
37
|
+
# AWS Bedrock
|
|
38
|
+
export AWS_ACCESS_KEY_ID="your-access-key"
|
|
39
|
+
export AWS_SECRET_ACCESS_KEY="your-secret-key"
|
|
40
|
+
export AWS_REGION="us-east-1"
|
|
41
|
+
# Optional: Use specific model
|
|
42
|
+
export MODEL_NAME="anthropic.claude-sonnet-4-20250514-v1:0"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### AWS Bedrock Configuration
|
|
46
|
+
|
|
47
|
+
Bedrock supports multiple authentication methods:
|
|
48
|
+
|
|
49
|
+
1. **IAM Credentials** (recommended):
|
|
50
|
+
```bash
|
|
51
|
+
export AWS_ACCESS_KEY_ID="your-access-key"
|
|
52
|
+
export AWS_SECRET_ACCESS_KEY="your-secret-key"
|
|
53
|
+
export AWS_REGION="us-east-1"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
2. **Temporary Session Credentials**:
|
|
57
|
+
```bash
|
|
58
|
+
export AWS_ACCESS_KEY_ID="your-access-key"
|
|
59
|
+
export AWS_SECRET_ACCESS_KEY="your-secret-key"
|
|
60
|
+
export AWS_SESSION_TOKEN="your-session-token"
|
|
61
|
+
export AWS_REGION="us-east-1"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
3. **API Key Authentication** (if configured):
|
|
65
|
+
```bash
|
|
66
|
+
export AWS_BEDROCK_API_KEY="your-api-key"
|
|
67
|
+
export AWS_BEDROCK_BASE_URL="https://your-custom-endpoint.com" # Optional
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
To force Bedrock provider:
|
|
71
|
+
```bash
|
|
72
|
+
export FORCE_PROVIDER=bedrock
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### YAML Configuration
|
|
76
|
+
|
|
77
|
+
#### Global Provider Settings
|
|
78
|
+
|
|
79
|
+
Configure a default AI provider in `.visor.yaml`:
|
|
80
|
+
|
|
81
|
+
```yaml
|
|
82
|
+
# Global configuration for all checks
|
|
83
|
+
ai_provider: bedrock # or google, anthropic, openai
|
|
84
|
+
ai_model: anthropic.claude-sonnet-4-20250514-v1:0 # Optional, uses default if not specified
|
|
85
|
+
|
|
86
|
+
steps:
|
|
87
|
+
security-review:
|
|
88
|
+
type: ai
|
|
89
|
+
prompt: "Analyze code for security vulnerabilities"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### Per-Check Provider Configuration
|
|
93
|
+
|
|
94
|
+
Override the provider for specific checks:
|
|
95
|
+
|
|
96
|
+
```yaml
|
|
97
|
+
# Use different providers for different checks
|
|
98
|
+
steps:
|
|
99
|
+
security-review:
|
|
100
|
+
type: ai
|
|
101
|
+
ai_provider: bedrock
|
|
102
|
+
ai_model: anthropic.claude-sonnet-4-20250514-v1:0
|
|
103
|
+
prompt: "Analyze code for security vulnerabilities using AWS Bedrock"
|
|
104
|
+
|
|
105
|
+
performance-review:
|
|
106
|
+
type: ai
|
|
107
|
+
ai_provider: google
|
|
108
|
+
ai_model: gemini-2.0-flash-exp
|
|
109
|
+
prompt: "Analyze code for performance issues using Gemini"
|
|
110
|
+
|
|
111
|
+
style-review:
|
|
112
|
+
type: ai
|
|
113
|
+
ai:
|
|
114
|
+
provider: openai
|
|
115
|
+
model: gpt-4-turbo
|
|
116
|
+
prompt: "Review code style and best practices"
|
|
117
|
+
|
|
118
|
+
#### Prompt Controls (Probe promptType, customPrompt, and persona)
|
|
119
|
+
|
|
120
|
+
Visor exposes Probe’s prompt controls to adjust the agent’s behavior for a given step. Use underscore names only.
|
|
121
|
+
|
|
122
|
+
Accepted keys
|
|
123
|
+
- Under `ai:`
|
|
124
|
+
- `prompt_type`: string — Probe persona/family, e.g., `engineer`, `code-review`, `architect`.
|
|
125
|
+
- `custom_prompt`: string — Baseline/system prompt prepended by the SDK.
|
|
126
|
+
- At the check level (aliases if you prefer not to nest):
|
|
127
|
+
- `ai_prompt_type`: string
|
|
128
|
+
- `ai_custom_prompt`: string
|
|
129
|
+
- `ai_persona`: string — optional hint we prepend as a first line: `Persona: <value>`.
|
|
130
|
+
|
|
131
|
+
Examples
|
|
132
|
+
|
|
133
|
+
```yaml
|
|
134
|
+
steps:
|
|
135
|
+
engineer-review:
|
|
136
|
+
type: ai
|
|
137
|
+
ai:
|
|
138
|
+
provider: anthropic
|
|
139
|
+
model: claude-3-5-sonnet-latest
|
|
140
|
+
prompt_type: engineer
|
|
141
|
+
custom_prompt: |
|
|
142
|
+
You are a specialist in analyzing security vulnerabilities.
|
|
143
|
+
Focus on injection, authn/z, crypto, and data exposure.
|
|
144
|
+
schema: code-review
|
|
145
|
+
prompt: |
|
|
146
|
+
Review the following changes.
|
|
147
|
+
|
|
148
|
+
quick-architect-check:
|
|
149
|
+
type: ai
|
|
150
|
+
ai_prompt_type: architect # check-level alias
|
|
151
|
+
ai_custom_prompt: "Favor modular boundaries and low coupling."
|
|
152
|
+
prompt: "Assess high-level design risks in the diff"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Notes
|
|
156
|
+
- If `prompt_type` is omitted and a `schema` is provided, Visor defaults to `code-review`.
|
|
157
|
+
- `ai_persona` is a lightweight hint added as a first line; prefer `prompt_type` when integrating with Probe personas.
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
#### AWS Bedrock Specific Configuration
|
|
161
|
+
|
|
162
|
+
Complete example for Bedrock with all options:
|
|
163
|
+
|
|
164
|
+
```yaml
|
|
165
|
+
version: "1.0"
|
|
166
|
+
|
|
167
|
+
# Global Bedrock settings
|
|
168
|
+
ai_provider: bedrock
|
|
169
|
+
ai_model: anthropic.claude-sonnet-4-20250514-v1:0
|
|
170
|
+
|
|
171
|
+
# Environment variables can be referenced
|
|
172
|
+
env:
|
|
173
|
+
AWS_REGION: us-east-1
|
|
174
|
+
# AWS credentials should be set as environment variables, not in config
|
|
175
|
+
|
|
176
|
+
steps:
|
|
177
|
+
comprehensive-review:
|
|
178
|
+
type: ai
|
|
179
|
+
ai_provider: bedrock
|
|
180
|
+
prompt: |
|
|
181
|
+
Perform a comprehensive code review including:
|
|
182
|
+
- Security vulnerabilities
|
|
183
|
+
- Performance optimizations
|
|
184
|
+
- Code quality and best practices
|
|
185
|
+
- Architectural concerns
|
|
186
|
+
schema: code-review # Use structured output format
|
|
187
|
+
|
|
188
|
+
custom-bedrock-model:
|
|
189
|
+
type: ai
|
|
190
|
+
ai:
|
|
191
|
+
provider: bedrock
|
|
192
|
+
model: anthropic.claude-3-opus-20240229 # Use a different Bedrock model
|
|
193
|
+
timeout: 120000 # 2 minute timeout for complex analysis
|
|
194
|
+
prompt: "Perform deep architectural analysis"
|
|
195
|
+
|
|
196
|
+
output:
|
|
197
|
+
pr_comment:
|
|
198
|
+
format: markdown
|
|
199
|
+
group_by: check
|
|
200
|
+
collapse: true
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Advanced AI Configuration
|
|
204
|
+
|
|
205
|
+
#### Transport Context Controls (GitHub, Slack, etc.)
|
|
206
|
+
|
|
207
|
+
By default, Visor automatically adds transport‑specific context to AI prompts:
|
|
208
|
+
|
|
209
|
+
- **GitHub**: PR / issue metadata + diffs (as XML `<context>...</context>`).
|
|
210
|
+
- **Slack**: Slack conversation context (as XML `<slack_context>...</slack_context>`).
|
|
211
|
+
|
|
212
|
+
You can control this per step with three flags under `ai:`:
|
|
213
|
+
|
|
214
|
+
```yaml
|
|
215
|
+
steps:
|
|
216
|
+
slack-chat:
|
|
217
|
+
type: ai
|
|
218
|
+
prompt: "Chat with the user"
|
|
219
|
+
ai:
|
|
220
|
+
# Turn off ALL automatic transport context (GitHub + Slack)
|
|
221
|
+
skip_transport_context: true
|
|
222
|
+
|
|
223
|
+
github-only:
|
|
224
|
+
type: ai
|
|
225
|
+
prompt: "Review PR using GitHub context only"
|
|
226
|
+
ai:
|
|
227
|
+
skip_slack_context: true # never add Slack context
|
|
228
|
+
# keep code context on (default)
|
|
229
|
+
|
|
230
|
+
slack-only:
|
|
231
|
+
type: ai
|
|
232
|
+
prompt: "Answer based on this Slack thread"
|
|
233
|
+
ai:
|
|
234
|
+
skip_code_context: true # no PR/issue XML
|
|
235
|
+
# keep Slack context on (default)
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Semantics:
|
|
239
|
+
|
|
240
|
+
- `skip_code_context: true`
|
|
241
|
+
- Skip GitHub PR/issue XML context (diffs, metadata).
|
|
242
|
+
- `skip_slack_context: true`
|
|
243
|
+
- Skip Slack `<slack_context>` XML.
|
|
244
|
+
- `skip_transport_context: true`
|
|
245
|
+
- High‑level switch:
|
|
246
|
+
- Behaves like setting both `skip_code_context` and `skip_slack_context` to `true`,
|
|
247
|
+
**unless** those are explicitly overridden on the same step.
|
|
248
|
+
|
|
249
|
+
Even when transport XML is disabled, the **structured conversation object** is still available
|
|
250
|
+
in Liquid templates:
|
|
251
|
+
|
|
252
|
+
```liquid
|
|
253
|
+
{% if conversation %}
|
|
254
|
+
Transport: {{ conversation.transport }} {# 'slack', 'github', ... #}
|
|
255
|
+
Thread: {{ conversation.thread.id }}
|
|
256
|
+
{% for m in conversation.messages %}
|
|
257
|
+
{{ m.user }} ({{ m.role }}): {{ m.text }}
|
|
258
|
+
{% endfor %}
|
|
259
|
+
{% endif %}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
- For Slack:
|
|
263
|
+
- `conversation.transport == 'slack'`
|
|
264
|
+
- Also available via `slack.conversation`.
|
|
265
|
+
- For GitHub (PR/issue + comments):
|
|
266
|
+
- `conversation.transport == 'github'`
|
|
267
|
+
- Exposed via a normalized GitHub conversation builder.
|
|
268
|
+
|
|
269
|
+
Use these flags when you want full manual control over context, or to keep prompts lean in
|
|
270
|
+
chat‑style flows.
|
|
271
|
+
|
|
272
|
+
#### File Editing (`allowEdit`)
|
|
273
|
+
|
|
274
|
+
Enable Edit and Create tools to allow AI agents to modify files directly. This feature is disabled by default for security and requires explicit opt-in.
|
|
275
|
+
|
|
276
|
+
```yaml
|
|
277
|
+
steps:
|
|
278
|
+
auto-fix-security:
|
|
279
|
+
type: ai
|
|
280
|
+
prompt: "Fix the security vulnerabilities found in the code"
|
|
281
|
+
ai:
|
|
282
|
+
provider: anthropic
|
|
283
|
+
model: claude-3-opus
|
|
284
|
+
allowEdit: true # Enable Edit and Create tools
|
|
285
|
+
|
|
286
|
+
read-only-review:
|
|
287
|
+
type: ai
|
|
288
|
+
prompt: "Review code for security issues"
|
|
289
|
+
ai:
|
|
290
|
+
provider: google
|
|
291
|
+
allowEdit: false # Disable editing (default)
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**When to enable editing:**
|
|
295
|
+
- Automated fix workflows where the AI should apply changes
|
|
296
|
+
- Code refactoring tasks
|
|
297
|
+
- Auto-formatting or style correction
|
|
298
|
+
- When working in a sandboxed or test environment
|
|
299
|
+
|
|
300
|
+
**When to disable editing:**
|
|
301
|
+
- Review-only workflows (default behavior)
|
|
302
|
+
- Production environments without proper safeguards
|
|
303
|
+
- When you want to review suggested changes before applying them
|
|
304
|
+
|
|
305
|
+
**Security Note:** Edit tools respect existing `allowedFolders` configuration and perform exact string matching to prevent unintended modifications. Always review changes before merging.
|
|
306
|
+
|
|
307
|
+
#### Tool Filtering (`allowedTools`, `disableTools`)
|
|
308
|
+
|
|
309
|
+
Control which tools the AI agent can access during execution. This feature supports three filtering modes for fine-grained control over agent capabilities.
|
|
310
|
+
|
|
311
|
+
**Filtering Modes:**
|
|
312
|
+
|
|
313
|
+
1. **Allow All Tools (default)**: No filtering applied, agent has access to all available tools
|
|
314
|
+
2. **Whitelist Mode**: Specify exact tools the agent can use (e.g., `['Read', 'Grep']`)
|
|
315
|
+
3. **Exclusion Mode**: Block specific tools using `!` prefix (e.g., `['!Edit', '!Write']`)
|
|
316
|
+
4. **Raw AI Mode**: Disable all tools for pure conversational interactions
|
|
317
|
+
|
|
318
|
+
```yaml
|
|
319
|
+
steps:
|
|
320
|
+
# Whitelist specific tools only
|
|
321
|
+
restricted-analysis:
|
|
322
|
+
type: ai
|
|
323
|
+
prompt: "Analyze the codebase structure"
|
|
324
|
+
ai:
|
|
325
|
+
provider: anthropic
|
|
326
|
+
allowedTools: ['Read', 'Grep', 'Glob'] # Only these tools allowed
|
|
327
|
+
|
|
328
|
+
# Exclude specific tools
|
|
329
|
+
safe-review:
|
|
330
|
+
type: ai
|
|
331
|
+
prompt: "Review code without making changes"
|
|
332
|
+
ai:
|
|
333
|
+
provider: google
|
|
334
|
+
allowedTools: ['!Edit', '!Write', '!Delete'] # Block modification tools
|
|
335
|
+
|
|
336
|
+
# Raw AI mode - no tools
|
|
337
|
+
conversational:
|
|
338
|
+
type: ai
|
|
339
|
+
prompt: "Explain the architecture"
|
|
340
|
+
ai:
|
|
341
|
+
provider: openai
|
|
342
|
+
disableTools: true # Pure conversation, no tool access
|
|
343
|
+
|
|
344
|
+
# Alternative raw AI mode
|
|
345
|
+
conversational-alt:
|
|
346
|
+
type: ai
|
|
347
|
+
prompt: "Explain the architecture"
|
|
348
|
+
ai:
|
|
349
|
+
provider: anthropic
|
|
350
|
+
allowedTools: [] # Empty array also disables all tools
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
**MCP Tool Filtering:**
|
|
354
|
+
|
|
355
|
+
Filter external Model Context Protocol tools using the `mcp__` prefix pattern:
|
|
356
|
+
|
|
357
|
+
```yaml
|
|
358
|
+
steps:
|
|
359
|
+
mcp-filtered:
|
|
360
|
+
type: ai
|
|
361
|
+
prompt: "Search the codebase"
|
|
362
|
+
ai:
|
|
363
|
+
provider: anthropic
|
|
364
|
+
allowedTools: ['mcp__code-search__*'] # Allow all code-search MCP tools
|
|
365
|
+
mcpServers:
|
|
366
|
+
code-search:
|
|
367
|
+
command: "npx"
|
|
368
|
+
args: ["-y", "@modelcontextprotocol/server-code-search"]
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
**When to use tool filtering:**
|
|
372
|
+
- Restrict agent capabilities for security-sensitive tasks
|
|
373
|
+
- Prevent unintended file modifications
|
|
374
|
+
- Create specialized agents with limited toolsets
|
|
375
|
+
- Testing and debugging specific tool interactions
|
|
376
|
+
- Compliance requirements that limit agent autonomy
|
|
377
|
+
|
|
378
|
+
**Security Note:** Tool filtering is enforced at runtime through system message filtering. Always combine with other security measures like `allowedFolders` for defense in depth.
|
|
379
|
+
|
|
380
|
+
#### Task Delegation (`enableDelegate`)
|
|
381
|
+
|
|
382
|
+
Enable the delegate tool to allow AI agents to break down complex tasks and distribute them to specialized subagents for parallel processing. This feature is available when using Probe as the AI provider (Google Gemini, Anthropic Claude, OpenAI GPT, AWS Bedrock).
|
|
383
|
+
|
|
384
|
+
```yaml
|
|
385
|
+
steps:
|
|
386
|
+
comprehensive-security-audit:
|
|
387
|
+
type: ai
|
|
388
|
+
prompt: |
|
|
389
|
+
Perform a comprehensive security audit including:
|
|
390
|
+
- SQL injection vulnerabilities
|
|
391
|
+
- XSS attack vectors
|
|
392
|
+
- Authentication bypass risks
|
|
393
|
+
- Authorization flaws
|
|
394
|
+
- Cryptographic weaknesses
|
|
395
|
+
ai:
|
|
396
|
+
provider: anthropic
|
|
397
|
+
model: claude-3-opus
|
|
398
|
+
enableDelegate: true # Enable task delegation to subagents
|
|
399
|
+
|
|
400
|
+
focused-sql-injection-check:
|
|
401
|
+
type: ai
|
|
402
|
+
prompt: "Check for SQL injection vulnerabilities"
|
|
403
|
+
ai:
|
|
404
|
+
provider: google
|
|
405
|
+
enableDelegate: false # Disable delegation for focused check
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
**When to enable delegation:**
|
|
409
|
+
- Complex multi-step analysis requiring different expertise areas (e.g., security + performance + architecture)
|
|
410
|
+
- Large codebases where parallel processing speeds up review
|
|
411
|
+
- Comprehensive audits that benefit from specialized subagents
|
|
412
|
+
|
|
413
|
+
**When to disable delegation:**
|
|
414
|
+
- Simple, focused checks (e.g., "check for SQL injection")
|
|
415
|
+
- Time-sensitive reviews where speed is critical
|
|
416
|
+
- Resource-constrained environments
|
|
417
|
+
- Default behavior (delegation is disabled by default)
|
|
418
|
+
|
|
419
|
+
**Note:** Task delegation increases execution time and token usage, but can provide more thorough analysis for complex tasks.
|
|
420
|
+
|
|
421
|
+
#### Bash Command Execution (`allowBash` / `bashConfig`)
|
|
422
|
+
|
|
423
|
+
Enable secure bash command execution for AI agents to run read-only commands and analyze system state. This feature is disabled by default for security and requires explicit opt-in.
|
|
424
|
+
|
|
425
|
+
**Simple Configuration:**
|
|
426
|
+
|
|
427
|
+
Use `allowBash: true` for basic bash command execution with default safe commands:
|
|
428
|
+
|
|
429
|
+
```yaml
|
|
430
|
+
steps:
|
|
431
|
+
# Simple: Enable bash with default safe commands
|
|
432
|
+
git-status-analysis:
|
|
433
|
+
type: ai
|
|
434
|
+
prompt: "Analyze the project structure and git status"
|
|
435
|
+
ai:
|
|
436
|
+
provider: anthropic
|
|
437
|
+
model: claude-3-opus
|
|
438
|
+
allowBash: true # Simple one-line enable
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
**Advanced Configuration:**
|
|
442
|
+
|
|
443
|
+
Use `bashConfig` for fine-grained control over bash command execution:
|
|
444
|
+
|
|
445
|
+
```yaml
|
|
446
|
+
steps:
|
|
447
|
+
# Advanced: Custom allow/deny lists
|
|
448
|
+
custom-bash-config:
|
|
449
|
+
type: ai
|
|
450
|
+
prompt: "Run custom analysis commands"
|
|
451
|
+
ai:
|
|
452
|
+
provider: google
|
|
453
|
+
allowBash: true # Enable bash execution
|
|
454
|
+
bashConfig:
|
|
455
|
+
allow: ['npm test', 'npm run lint'] # Additional allowed commands
|
|
456
|
+
deny: ['npm install'] # Additional blocked commands
|
|
457
|
+
timeout: 30000 # 30 second timeout per command
|
|
458
|
+
workingDirectory: './src' # Default working directory
|
|
459
|
+
|
|
460
|
+
# Advanced: Disable default filters (expert mode)
|
|
461
|
+
advanced-bash:
|
|
462
|
+
type: ai
|
|
463
|
+
prompt: "Run advanced system commands"
|
|
464
|
+
ai:
|
|
465
|
+
provider: anthropic
|
|
466
|
+
allowBash: true
|
|
467
|
+
bashConfig:
|
|
468
|
+
noDefaultAllow: true # Disable default safe command list
|
|
469
|
+
noDefaultDeny: false # Keep default dangerous command blocklist
|
|
470
|
+
allow: ['specific-command-1', 'specific-command-2']
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
**Configuration Options:**
|
|
474
|
+
|
|
475
|
+
- **`allowBash`** (boolean): Simple toggle to enable bash command execution. Default: `false`
|
|
476
|
+
- **`allow`** (string[]): Additional permitted command patterns (e.g., `['ls', 'git status']`)
|
|
477
|
+
- **`deny`** (string[]): Additional blocked command patterns (e.g., `['rm -rf', 'sudo']`)
|
|
478
|
+
- **`noDefaultAllow`** (boolean): Disable default safe command list (~235 commands). Default: `false`
|
|
479
|
+
- **`noDefaultDeny`** (boolean): Disable default dangerous command blocklist (~191 patterns). Default: `false`
|
|
480
|
+
- **`timeout`** (number): Execution timeout in milliseconds. Default: varies by ProbeAgent
|
|
481
|
+
- **`workingDirectory`** (string): Base directory for command execution
|
|
482
|
+
|
|
483
|
+
**Default Security:**
|
|
484
|
+
|
|
485
|
+
ProbeAgent includes comprehensive security by default:
|
|
486
|
+
- **Safe Commands** (~235): Read-only operations like `ls`, `cat`, `git status`, `npm list`, `grep`
|
|
487
|
+
- **Blocked Commands** (~191): Dangerous operations like `rm -rf`, `sudo`, `npm install`, `curl`, system modifications
|
|
488
|
+
|
|
489
|
+
**When to enable bash commands:**
|
|
490
|
+
- System state analysis (git status, file listings, environment info)
|
|
491
|
+
- Running read-only diagnostic commands
|
|
492
|
+
- Executing test suites or linters
|
|
493
|
+
- Analyzing build outputs or logs
|
|
494
|
+
|
|
495
|
+
**When to keep bash disabled (default):**
|
|
496
|
+
- Security-sensitive environments
|
|
497
|
+
- Untrusted AI prompts or inputs
|
|
498
|
+
- Code review without system access needs
|
|
499
|
+
- Compliance requirements that prohibit command execution
|
|
500
|
+
|
|
501
|
+
**Security Best Practices:**
|
|
502
|
+
1. Always use the default allow/deny lists unless you have specific requirements
|
|
503
|
+
2. Set reasonable timeouts to prevent long-running commands
|
|
504
|
+
3. Use `workingDirectory` to restrict command execution scope
|
|
505
|
+
4. Audit command patterns in your allow list regularly
|
|
506
|
+
5. Test configuration in a safe environment first
|
|
507
|
+
6. Review AI-generated commands before enabling in production
|
|
508
|
+
|
|
509
|
+
**Example: Git Status Analysis**
|
|
510
|
+
|
|
511
|
+
```yaml
|
|
512
|
+
steps:
|
|
513
|
+
git-status-review:
|
|
514
|
+
type: ai
|
|
515
|
+
prompt: |
|
|
516
|
+
Analyze the current git status and provide insights:
|
|
517
|
+
- Check for uncommitted changes
|
|
518
|
+
- Review branch state
|
|
519
|
+
- Identify any potential issues
|
|
520
|
+
ai:
|
|
521
|
+
provider: anthropic
|
|
522
|
+
allowBash: true # Simple enable
|
|
523
|
+
bashConfig:
|
|
524
|
+
allow: ['git log --oneline'] # Add custom git command
|
|
525
|
+
workingDirectory: '.'
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
**Security Note:** Bash command execution respects existing security boundaries and permissions. Commands run with the same privileges as the Visor process. Always review and test bash configurations before deploying to production environments.
|
|
529
|
+
|
|
530
|
+
### Fallback Behavior
|
|
531
|
+
|
|
532
|
+
If no key is configured, Visor falls back to fast, heuristic checks (simple patterns, basic style/perf). For best results, set a provider.
|
|
533
|
+
|
|
534
|
+
### MCP (Tools) Support
|
|
535
|
+
See docs/mcp.md for adding MCP servers (Probe, Jira, Filesystem, etc.).
|