@probelabs/visor 0.1.167-ee → 0.1.168-ee

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/defaults/code-talk.yaml +3 -8
  2. package/dist/defaults/code-talk.yaml +3 -8
  3. package/dist/index.js +19 -11
  4. package/dist/sdk/{check-provider-registry-6WR2SG66.mjs → check-provider-registry-OJNYM7I6.mjs} +5 -5
  5. package/dist/sdk/{check-provider-registry-CWLPAM5U.mjs → check-provider-registry-TVZL4EDZ.mjs} +5 -5
  6. package/dist/sdk/{chunk-3LXYZ2OQ.mjs → chunk-6UY7MK7Z.mjs} +16 -16
  7. package/dist/sdk/chunk-6UY7MK7Z.mjs.map +1 -0
  8. package/dist/sdk/{chunk-E7NRUDWL.mjs → chunk-FUO4IFQD.mjs} +2 -2
  9. package/dist/sdk/{chunk-RV5SK4FZ.mjs → chunk-JT5DGR4J.mjs} +3 -3
  10. package/dist/sdk/{chunk-T5USZCCM.mjs → chunk-MVKLVG5R.mjs} +2 -2
  11. package/dist/sdk/{chunk-T5USZCCM.mjs.map → chunk-MVKLVG5R.mjs.map} +1 -1
  12. package/dist/sdk/{chunk-2G2PJKHM.mjs → chunk-QERE2WXY.mjs} +16 -16
  13. package/dist/sdk/chunk-QERE2WXY.mjs.map +1 -0
  14. package/dist/sdk/{failure-condition-evaluator-GPANOHP2.mjs → failure-condition-evaluator-HPUEA3XS.mjs} +3 -3
  15. package/dist/sdk/{github-frontend-VM52NX7N.mjs → github-frontend-QZ4CF563.mjs} +3 -3
  16. package/dist/sdk/{host-7MGCKSHM.mjs → host-L4Q3U2XG.mjs} +2 -2
  17. package/dist/sdk/{host-BTHRY6NS.mjs → host-P65NNMYN.mjs} +2 -2
  18. package/dist/sdk/{routing-BXHP2E62.mjs → routing-R4DGYG6Y.mjs} +4 -4
  19. package/dist/sdk/{schedule-tool-KKQ4W7KU.mjs → schedule-tool-FRWG5RG5.mjs} +5 -5
  20. package/dist/sdk/{schedule-tool-MPHHE2IM.mjs → schedule-tool-ZLRHDABX.mjs} +5 -5
  21. package/dist/sdk/{schedule-tool-handler-6NUB2IHV.mjs → schedule-tool-handler-LJDYKV3G.mjs} +5 -5
  22. package/dist/sdk/{schedule-tool-handler-V7A4AQGS.mjs → schedule-tool-handler-NLBCVAQE.mjs} +5 -5
  23. package/dist/sdk/sdk.js +2 -2
  24. package/dist/sdk/sdk.js.map +1 -1
  25. package/dist/sdk/sdk.mjs +4 -4
  26. package/dist/sdk/{trace-helpers-UG6FOWVV.mjs → trace-helpers-45BTGOUW.mjs} +2 -2
  27. package/dist/sdk/{workflow-check-provider-N4ZTFOH6.mjs → workflow-check-provider-ALB4BINK.mjs} +5 -5
  28. package/dist/sdk/{workflow-check-provider-PI7VJT25.mjs → workflow-check-provider-BHMQN234.mjs} +5 -5
  29. package/package.json +2 -2
  30. package/dist/sdk/chunk-2G2PJKHM.mjs.map +0 -1
  31. package/dist/sdk/chunk-3LXYZ2OQ.mjs.map +0 -1
  32. /package/dist/sdk/{check-provider-registry-6WR2SG66.mjs.map → check-provider-registry-OJNYM7I6.mjs.map} +0 -0
  33. /package/dist/sdk/{check-provider-registry-CWLPAM5U.mjs.map → check-provider-registry-TVZL4EDZ.mjs.map} +0 -0
  34. /package/dist/sdk/{chunk-E7NRUDWL.mjs.map → chunk-FUO4IFQD.mjs.map} +0 -0
  35. /package/dist/sdk/{chunk-RV5SK4FZ.mjs.map → chunk-JT5DGR4J.mjs.map} +0 -0
  36. /package/dist/sdk/{failure-condition-evaluator-GPANOHP2.mjs.map → failure-condition-evaluator-HPUEA3XS.mjs.map} +0 -0
  37. /package/dist/sdk/{github-frontend-VM52NX7N.mjs.map → github-frontend-QZ4CF563.mjs.map} +0 -0
  38. /package/dist/sdk/{host-7MGCKSHM.mjs.map → host-L4Q3U2XG.mjs.map} +0 -0
  39. /package/dist/sdk/{host-BTHRY6NS.mjs.map → host-P65NNMYN.mjs.map} +0 -0
  40. /package/dist/sdk/{routing-BXHP2E62.mjs.map → routing-R4DGYG6Y.mjs.map} +0 -0
  41. /package/dist/sdk/{schedule-tool-KKQ4W7KU.mjs.map → schedule-tool-FRWG5RG5.mjs.map} +0 -0
  42. /package/dist/sdk/{schedule-tool-MPHHE2IM.mjs.map → schedule-tool-ZLRHDABX.mjs.map} +0 -0
  43. /package/dist/sdk/{schedule-tool-handler-6NUB2IHV.mjs.map → schedule-tool-handler-LJDYKV3G.mjs.map} +0 -0
  44. /package/dist/sdk/{schedule-tool-handler-V7A4AQGS.mjs.map → schedule-tool-handler-NLBCVAQE.mjs.map} +0 -0
  45. /package/dist/sdk/{trace-helpers-UG6FOWVV.mjs.map → trace-helpers-45BTGOUW.mjs.map} +0 -0
  46. /package/dist/sdk/{workflow-check-provider-N4ZTFOH6.mjs.map → workflow-check-provider-ALB4BINK.mjs.map} +0 -0
  47. /package/dist/sdk/{workflow-check-provider-PI7VJT25.mjs.map → workflow-check-provider-BHMQN234.mjs.map} +0 -0
@@ -633,14 +633,6 @@ steps:
633
633
  required: [answer, references, confidence, confidence_reason]
634
634
  prompt: |
635
635
  <instructions>
636
- You are a code/documentation explorer. Your goal is to answer a code-level
637
- question that can span multiple projects, using:
638
- - the checked-out code repositories
639
- - the checked-out documentation repository
640
- - code-explorer tools (search, extract, query, listFiles, searchFiles)
641
- - delegate sub-agents when you need to dive deeply into a project
642
- - ensure that delegate sub-agents return detailed references with files and line numbers
643
-
644
636
  IMPORTANT - Handling ambiguity:
645
637
  If the question is ambiguous, unclear, or you need more details to provide
646
638
  a useful answer, DO NOT guess or make assumptions. Instead:
@@ -710,6 +702,9 @@ steps:
710
702
  - `git diff main...pr-123` or `git diff origin/main...HEAD`
711
703
 
712
704
  IMPORTANT bash tool usage rules:
705
+ - NEVER use bash for code exploration (no grep, cat, find, head, tail, awk, sed)
706
+ - ALWAYS use search and extract tools instead — they are faster, AST-aware, and return structured code blocks
707
+ - Bash is ONLY for: git commands, gh CLI, curl, and system operations
713
708
  - Do NOT use shell operators like && or || or | (pipes)
714
709
  - Do NOT use `cd dir && command`
715
710
  - INSTEAD, use the workingDirectory parameter to specify where to run commands
@@ -633,14 +633,6 @@ steps:
633
633
  required: [answer, references, confidence, confidence_reason]
634
634
  prompt: |
635
635
  <instructions>
636
- You are a code/documentation explorer. Your goal is to answer a code-level
637
- question that can span multiple projects, using:
638
- - the checked-out code repositories
639
- - the checked-out documentation repository
640
- - code-explorer tools (search, extract, query, listFiles, searchFiles)
641
- - delegate sub-agents when you need to dive deeply into a project
642
- - ensure that delegate sub-agents return detailed references with files and line numbers
643
-
644
636
  IMPORTANT - Handling ambiguity:
645
637
  If the question is ambiguous, unclear, or you need more details to provide
646
638
  a useful answer, DO NOT guess or make assumptions. Instead:
@@ -710,6 +702,9 @@ steps:
710
702
  - `git diff main...pr-123` or `git diff origin/main...HEAD`
711
703
 
712
704
  IMPORTANT bash tool usage rules:
705
+ - NEVER use bash for code exploration (no grep, cat, find, head, tail, awk, sed)
706
+ - ALWAYS use search and extract tools instead — they are faster, AST-aware, and return structured code blocks
707
+ - Bash is ONLY for: git commands, gh CLI, curl, and system operations
713
708
  - Do NOT use shell operators like && or || or | (pipes)
714
709
  - Do NOT use `cd dir && command`
715
710
  - INSTEAD, use the workingDirectory parameter to specify where to run commands
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- process.env.VISOR_VERSION = '0.1.167';
3
- process.env.PROBE_VERSION = '0.6.0-rc280';
4
- process.env.VISOR_COMMIT_SHA = '1e0341f43c4243f35be19f2043e34b954fdecde1';
5
- process.env.VISOR_COMMIT_SHORT = '1e0341f';
2
+ process.env.VISOR_VERSION = '0.1.168';
3
+ process.env.PROBE_VERSION = '0.6.0-rc281';
4
+ process.env.VISOR_COMMIT_SHA = '651d4efb09178f7bf0688305f0864591021fdeda';
5
+ process.env.VISOR_COMMIT_SHORT = '651d4ef';
6
6
  /******/ (() => { // webpackBootstrap
7
7
  /******/ var __webpack_modules__ = ({
8
8
 
@@ -160015,7 +160015,7 @@ ${'='.repeat(60)}
160015
160015
  // Derive a default system prompt for non-code-review flows when none is configured.
160016
160016
  // This keeps code-review schema using its specialized prompt template.
160017
160017
  let systemPrompt = this.config.systemPrompt;
160018
- if (!systemPrompt && schema !== 'code-review') {
160018
+ if (!systemPrompt && schema !== 'code-review' && !this.config.promptType) {
160019
160019
  systemPrompt = 'You are general assistant, follow user instructions.';
160020
160020
  }
160021
160021
  log(`🔧 AIReviewService config: allowEdit=${this.config.allowEdit}, allowBash=${this.config.allowBash}, promptType=${this.config.promptType}`);
@@ -286270,7 +286270,7 @@ var init_common2 = __esm({
286270
286270
  queryDescription = "Search code using ast-grep structural pattern matching. Use this tool to find specific code structures like functions, classes, or methods.";
286271
286271
  extractDescription = "Extract code blocks from files based on file paths and optional line numbers. Use this tool to see complete context after finding relevant files. Line numbers from output can be used with edit start_line/end_line for precise editing.";
286272
286272
  delegateDescription = "Automatically delegate big distinct tasks to specialized probe subagents within the agentic loop. Used by AI agents to break down complex requests into focused, parallel tasks.";
286273
- bashDescription = "Execute bash commands for system exploration and development tasks. Secure by default with built-in allow/deny lists.";
286273
+ bashDescription = "Execute bash commands for system operations: building, running tests, git, package management, etc. NEVER use for code exploration (no grep, cat, find, head, tail) \u2014 use search and extract tools instead. Secure by default with built-in allow/deny lists.";
286274
286274
  analyzeAllDescription = 'Answer questions that require analyzing ALL matching data in the codebase. Use for aggregate questions like "What features exist?", "List all API endpoints", "Count TODO comments". The AI automatically plans the search strategy, processes all results via map-reduce, and synthesizes a comprehensive answer. WARNING: Slower than search - only use when you need complete coverage.';
286275
286275
  }
286276
286276
  });
@@ -358048,7 +358048,7 @@ ${searchToolDesc1}
358048
358048
  - searchFiles: Find files by name patterns`;
358049
358049
  if (this.enableBash) {
358050
358050
  systemPrompt += `
358051
- - bash: Execute bash commands for system operations`;
358051
+ - bash: Execute bash commands for system operations (building, running tests, git, etc.). NEVER use bash for code exploration (no grep, cat, find, head, tail) \u2014 always use search and extract tools instead, they are faster and more accurate.`;
358052
358052
  }
358053
358053
  const searchGuidance1 = this.searchDelegate ? "1. Start with search \u2014 ask a question about what you want to understand. It returns extracted code blocks directly." : "1. Start with search to find relevant code patterns. One search per concept is usually enough \u2014 probe handles stemming and case variations.";
358054
358054
  const extractGuidance1 = this.searchDelegate ? "2. Use extract only if you need more context or a full file" : "2. Use extract to get detailed context when needed";
@@ -358103,7 +358103,7 @@ ${searchToolDesc2}
358103
358103
  - searchFiles: Find files by name patterns`;
358104
358104
  if (this.enableBash) {
358105
358105
  systemPrompt += `
358106
- - bash: Execute bash commands for system operations`;
358106
+ - bash: Execute bash commands for system operations (building, running tests, git, etc.). NEVER use bash for code exploration (no grep, cat, find, head, tail) \u2014 always use search and extract tools instead, they are faster and more accurate.`;
358107
358107
  }
358108
358108
  const searchGuidance2 = this.searchDelegate ? "1. Start with search \u2014 ask a question about what you want to understand. It returns extracted code blocks directly." : "1. Start with search to find relevant code patterns. One search per concept is usually enough \u2014 probe handles stemming and case variations.";
358109
358109
  const extractGuidance2 = this.searchDelegate ? "2. Use extract only if you need more context or a full file" : "2. Use extract to get detailed context when needed";
@@ -358169,7 +358169,8 @@ Follow these instructions carefully:
358169
358169
  3. You should always prefer the search tool for code-related questions.${this.searchDelegate ? " Ask natural language questions \u2014 the search subagent handles keyword formulation and returns extracted code blocks. Use extract only to expand context or read full files." : " Search handles stemming and case variations automatically \u2014 do NOT try keyword variations manually. Read full files only if really necessary."}
358170
358170
  4. Ensure to get really deep and understand the full picture before answering.
358171
358171
  5. Once the task is fully completed, use the attempt_completion tool to provide the final result.
358172
- 6. ${this.searchDelegate ? "Ask clear, specific questions when searching. Each search should target a distinct concept or question." : "Prefer concise and focused search queries. Use specific keywords and phrases to narrow down results."}${this.allowEdit ? `
358172
+ 6. ${this.searchDelegate ? "Ask clear, specific questions when searching. Each search should target a distinct concept or question." : "Prefer concise and focused search queries. Use specific keywords and phrases to narrow down results."}
358173
+ 7. NEVER use bash for code exploration (no grep, cat, find, head, tail, awk, sed) \u2014 always use search and extract tools instead. Bash is only for system operations like building, running tests, or git commands.${this.allowEdit ? `
358173
358174
  7. When modifying files, choose the appropriate tool:
358174
358175
  - Use 'edit' for all code modifications:
358175
358176
  * PREFERRED: Use start_line (and optionally end_line) for line-targeted editing \u2014 this is the safest and most precise approach.${this.hashLines ? ' Use the line:hash references from extract/search output (e.g. "42:ab") for integrity verification.' : ""} Always use extract first to see line numbers${this.hashLines ? " and hashes" : ""}, then edit by line reference.
@@ -358183,7 +358184,14 @@ Follow these instructions carefully:
358183
358184
  </instructions>
358184
358185
  `;
358185
358186
  let systemMessage = "";
358186
- if (this.customPrompt) {
358187
+ if (this.customPrompt && this.promptType && predefinedPrompts[this.promptType]) {
358188
+ systemMessage = "<role>" + predefinedPrompts[this.promptType] + "</role>";
358189
+ systemMessage += commonInstructions;
358190
+ systemMessage += "\n<custom-instructions>\n" + this.customPrompt + "\n</custom-instructions>";
358191
+ if (this.debug) {
358192
+ console.log(`[DEBUG] Using predefined prompt: ${this.promptType} + custom prompt`);
358193
+ }
358194
+ } else if (this.customPrompt) {
358187
358195
  systemMessage = "<role>" + this.customPrompt + "</role>";
358188
358196
  if (this.debug) {
358189
358197
  console.log(`[DEBUG] Using custom prompt`);
@@ -398283,7 +398291,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"100":"Continue","101":"Switching Pro
398283
398291
  /***/ ((module) => {
398284
398292
 
398285
398293
  "use strict";
398286
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@probelabs/visor","version":"0.1.42","main":"dist/index.js","bin":{"visor":"./dist/index.js"},"exports":{".":{"require":"./dist/index.js","import":"./dist/index.js"},"./sdk":{"types":"./dist/sdk/sdk.d.ts","import":"./dist/sdk/sdk.mjs","require":"./dist/sdk/sdk.js"},"./cli":{"require":"./dist/index.js"}},"files":["dist/","defaults/","action.yml","README.md","LICENSE"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build:cli":"ncc build src/index.ts -o dist && cp -r defaults dist/ && cp -r output dist/ && cp -r docs dist/ && cp -r examples dist/ && cp -r src/debug-visualizer/ui dist/debug-visualizer/ && node scripts/inject-version.js && echo \'#!/usr/bin/env node\' | cat - dist/index.js > temp && mv temp dist/index.js && chmod +x dist/index.js","build:sdk":"tsup src/sdk.ts --dts --sourcemap --format esm,cjs --out-dir dist/sdk","build":"./scripts/build-oss.sh","build:ee":"npm run build:cli && npm run build:sdk","test":"jest && npm run test:yaml","test:unit":"jest","prepublishOnly":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:ee":"jest --testPathPatterns=\'tests/ee\' --testPathIgnorePatterns=\'/node_modules/\' --no-coverage","test:manual:bash":"RUN_MANUAL_TESTS=true jest tests/manual/bash-config-manual.test.ts","lint":"eslint src tests --ext .ts","lint:fix":"eslint src tests --ext .ts --fix","format":"prettier --write src tests","format:check":"prettier --check src tests","clean":"","clean:traces":"node scripts/clean-traces.js","prebuild":"npm run clean && node scripts/generate-config-schema.js","pretest":"npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli","pretest:unit":"npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli","test:with-build":"npm run build:cli && jest","test:yaml":"node dist/index.js test --progress compact","test:yaml:parallel":"node dist/index.js test --progress compact --max-parallel 4","prepare":"husky","pre-commit":"lint-staged","deploy:site":"cd site && npx wrangler pages deploy . --project-name=visor-site --commit-dirty=true","deploy:worker":"npx wrangler deploy","deploy":"npm run deploy:site && npm run deploy:worker","publish:ee":"./scripts/publish-ee.sh","release":"./scripts/release.sh","release:patch":"./scripts/release.sh patch","release:minor":"./scripts/release.sh minor","release:major":"./scripts/release.sh major","release:prerelease":"./scripts/release.sh prerelease","docs:validate":"node scripts/validate-readme-links.js","workshop:setup":"npm install -D reveal-md@6.1.2","workshop:serve":"cd workshop && reveal-md slides.md -w","workshop:export":"reveal-md workshop/slides.md --static workshop/build","workshop:pdf":"reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter","workshop:pdf:ci":"reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter --puppeteer-launch-args=\\"--no-sandbox --disable-dev-shm-usage\\"","workshop:pdf:a4":"reveal-md workshop/slides.md --print workshop/Visor-Workshop-A4.pdf --print-size A4","workshop:build":"npm run workshop:export && npm run workshop:pdf","simulate:issue":"TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issues --action opened --debug","simulate:comment":"TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issue_comment --action created --debug"},"keywords":["code-review","ai","github-action","cli","pr-review","visor"],"author":"Probe Labs","license":"MIT","description":"AI workflow engine for code review, assistants, and automation — orchestrate checks, MCP tools, and AI providers with YAML-driven pipelines","repository":{"type":"git","url":"git+https://github.com/probelabs/visor.git"},"bugs":{"url":"https://github.com/probelabs/visor/issues"},"homepage":"https://github.com/probelabs/visor#readme","dependencies":{"@actions/core":"^1.11.1","@apidevtools/swagger-parser":"^12.1.0","@modelcontextprotocol/sdk":"^1.25.3","@nyariv/sandboxjs":"github:probelabs/SandboxJS#f1c13b8eee98734a8ea024061eada4aa9a9ff2e9","@octokit/action":"^8.0.2","@octokit/auth-app":"^8.1.0","@octokit/core":"^7.0.3","@octokit/rest":"^22.0.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^1.30.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.203.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/instrumentation":"^0.203.0","@opentelemetry/resources":"^1.30.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/sdk-trace-base":"^1.30.1","@opentelemetry/semantic-conventions":"^1.30.1","@probelabs/probe":"^0.6.0-rc280","@types/commander":"^2.12.0","@types/uuid":"^10.0.0","acorn":"^8.16.0","acorn-walk":"^8.3.5","ajv":"^8.17.1","ajv-formats":"^3.0.1","better-sqlite3":"^11.0.0","blessed":"^0.1.81","cli-table3":"^0.6.5","commander":"^14.0.0","deepmerge":"^4.3.1","dotenv":"^17.2.3","ignore":"^7.0.5","js-yaml":"^4.1.0","jsonpath-plus":"^10.4.0","liquidjs":"^10.21.1","minimatch":"^10.2.2","node-cron":"^3.0.3","open":"^9.1.0","simple-git":"^3.28.0","uuid":"^11.1.0","ws":"^8.18.3"},"optionalDependencies":{"@anthropic/claude-code-sdk":"npm:null@*","@open-policy-agent/opa-wasm":"^1.10.0","knex":"^3.1.0","mysql2":"^3.11.0","pg":"^8.13.0","tedious":"^19.0.0"},"devDependencies":{"@eslint/js":"^9.34.0","@kie/act-js":"^2.6.2","@kie/mock-github":"^2.0.1","@swc/core":"^1.13.2","@swc/jest":"^0.2.37","@types/better-sqlite3":"^7.6.0","@types/blessed":"^0.1.27","@types/jest":"^30.0.0","@types/js-yaml":"^4.0.9","@types/node":"^24.3.0","@types/node-cron":"^3.0.11","@types/ws":"^8.18.1","@typescript-eslint/eslint-plugin":"^8.42.0","@typescript-eslint/parser":"^8.42.0","@vercel/ncc":"^0.38.4","eslint":"^9.34.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","husky":"^9.1.7","jest":"^30.1.3","lint-staged":"^16.1.6","prettier":"^3.6.2","reveal-md":"^6.1.2","ts-json-schema-generator":"^1.5.1","ts-node":"^10.9.2","tsup":"^8.5.0","typescript":"^5.9.2","wrangler":"^3.0.0"},"peerDependenciesMeta":{"@anthropic/claude-code-sdk":{"optional":true}},"directories":{"test":"tests"},"lint-staged":{"src/**/*.{ts,js}":["eslint --fix","prettier --write"],"tests/**/*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]}}');
398294
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@probelabs/visor","version":"0.1.42","main":"dist/index.js","bin":{"visor":"./dist/index.js"},"exports":{".":{"require":"./dist/index.js","import":"./dist/index.js"},"./sdk":{"types":"./dist/sdk/sdk.d.ts","import":"./dist/sdk/sdk.mjs","require":"./dist/sdk/sdk.js"},"./cli":{"require":"./dist/index.js"}},"files":["dist/","defaults/","action.yml","README.md","LICENSE"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build:cli":"ncc build src/index.ts -o dist && cp -r defaults dist/ && cp -r output dist/ && cp -r docs dist/ && cp -r examples dist/ && cp -r src/debug-visualizer/ui dist/debug-visualizer/ && node scripts/inject-version.js && echo \'#!/usr/bin/env node\' | cat - dist/index.js > temp && mv temp dist/index.js && chmod +x dist/index.js","build:sdk":"tsup src/sdk.ts --dts --sourcemap --format esm,cjs --out-dir dist/sdk","build":"./scripts/build-oss.sh","build:ee":"npm run build:cli && npm run build:sdk","test":"jest && npm run test:yaml","test:unit":"jest","prepublishOnly":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:ee":"jest --testPathPatterns=\'tests/ee\' --testPathIgnorePatterns=\'/node_modules/\' --no-coverage","test:manual:bash":"RUN_MANUAL_TESTS=true jest tests/manual/bash-config-manual.test.ts","lint":"eslint src tests --ext .ts","lint:fix":"eslint src tests --ext .ts --fix","format":"prettier --write src tests","format:check":"prettier --check src tests","clean":"","clean:traces":"node scripts/clean-traces.js","prebuild":"npm run clean && node scripts/generate-config-schema.js","pretest":"npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli","pretest:unit":"npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli","test:with-build":"npm run build:cli && jest","test:yaml":"node dist/index.js test --progress compact","test:yaml:parallel":"node dist/index.js test --progress compact --max-parallel 4","prepare":"husky","pre-commit":"lint-staged","deploy:site":"cd site && npx wrangler pages deploy . --project-name=visor-site --commit-dirty=true","deploy:worker":"npx wrangler deploy","deploy":"npm run deploy:site && npm run deploy:worker","publish:ee":"./scripts/publish-ee.sh","release":"./scripts/release.sh","release:patch":"./scripts/release.sh patch","release:minor":"./scripts/release.sh minor","release:major":"./scripts/release.sh major","release:prerelease":"./scripts/release.sh prerelease","docs:validate":"node scripts/validate-readme-links.js","workshop:setup":"npm install -D reveal-md@6.1.2","workshop:serve":"cd workshop && reveal-md slides.md -w","workshop:export":"reveal-md workshop/slides.md --static workshop/build","workshop:pdf":"reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter","workshop:pdf:ci":"reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter --puppeteer-launch-args=\\"--no-sandbox --disable-dev-shm-usage\\"","workshop:pdf:a4":"reveal-md workshop/slides.md --print workshop/Visor-Workshop-A4.pdf --print-size A4","workshop:build":"npm run workshop:export && npm run workshop:pdf","simulate:issue":"TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issues --action opened --debug","simulate:comment":"TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issue_comment --action created --debug"},"keywords":["code-review","ai","github-action","cli","pr-review","visor"],"author":"Probe Labs","license":"MIT","description":"AI workflow engine for code review, assistants, and automation — orchestrate checks, MCP tools, and AI providers with YAML-driven pipelines","repository":{"type":"git","url":"git+https://github.com/probelabs/visor.git"},"bugs":{"url":"https://github.com/probelabs/visor/issues"},"homepage":"https://github.com/probelabs/visor#readme","dependencies":{"@actions/core":"^1.11.1","@apidevtools/swagger-parser":"^12.1.0","@modelcontextprotocol/sdk":"^1.25.3","@nyariv/sandboxjs":"github:probelabs/SandboxJS#f1c13b8eee98734a8ea024061eada4aa9a9ff2e9","@octokit/action":"^8.0.2","@octokit/auth-app":"^8.1.0","@octokit/core":"^7.0.3","@octokit/rest":"^22.0.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^1.30.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.203.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/instrumentation":"^0.203.0","@opentelemetry/resources":"^1.30.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/sdk-trace-base":"^1.30.1","@opentelemetry/semantic-conventions":"^1.30.1","@probelabs/probe":"^0.6.0-rc281","@types/commander":"^2.12.0","@types/uuid":"^10.0.0","acorn":"^8.16.0","acorn-walk":"^8.3.5","ajv":"^8.17.1","ajv-formats":"^3.0.1","better-sqlite3":"^11.0.0","blessed":"^0.1.81","cli-table3":"^0.6.5","commander":"^14.0.0","deepmerge":"^4.3.1","dotenv":"^17.2.3","ignore":"^7.0.5","js-yaml":"^4.1.0","jsonpath-plus":"^10.4.0","liquidjs":"^10.21.1","minimatch":"^10.2.2","node-cron":"^3.0.3","open":"^9.1.0","simple-git":"^3.28.0","uuid":"^11.1.0","ws":"^8.18.3"},"optionalDependencies":{"@anthropic/claude-code-sdk":"npm:null@*","@open-policy-agent/opa-wasm":"^1.10.0","knex":"^3.1.0","mysql2":"^3.11.0","pg":"^8.13.0","tedious":"^19.0.0"},"devDependencies":{"@eslint/js":"^9.34.0","@kie/act-js":"^2.6.2","@kie/mock-github":"^2.0.1","@swc/core":"^1.13.2","@swc/jest":"^0.2.37","@types/better-sqlite3":"^7.6.0","@types/blessed":"^0.1.27","@types/jest":"^30.0.0","@types/js-yaml":"^4.0.9","@types/node":"^24.3.0","@types/node-cron":"^3.0.11","@types/ws":"^8.18.1","@typescript-eslint/eslint-plugin":"^8.42.0","@typescript-eslint/parser":"^8.42.0","@vercel/ncc":"^0.38.4","eslint":"^9.34.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","husky":"^9.1.7","jest":"^30.1.3","lint-staged":"^16.1.6","prettier":"^3.6.2","reveal-md":"^6.1.2","ts-json-schema-generator":"^1.5.1","ts-node":"^10.9.2","tsup":"^8.5.0","typescript":"^5.9.2","wrangler":"^3.0.0"},"peerDependenciesMeta":{"@anthropic/claude-code-sdk":{"optional":true}},"directories":{"test":"tests"},"lint-staged":{"src/**/*.{ts,js}":["eslint --fix","prettier --write"],"tests/**/*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]}}');
398287
398295
 
398288
398296
  /***/ })
398289
398297
 
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CheckProviderRegistry,
3
3
  init_check_provider_registry
4
- } from "./chunk-2G2PJKHM.mjs";
4
+ } from "./chunk-6UY7MK7Z.mjs";
5
5
  import "./chunk-KFKHU6CM.mjs";
6
6
  import "./chunk-AVMMKGLQ.mjs";
7
7
  import "./chunk-LG4AUKHB.mjs";
@@ -11,9 +11,9 @@ import "./chunk-GEW6LS32.mjs";
11
11
  import "./chunk-NZADFXHE.mjs";
12
12
  import "./chunk-KYBKVKBS.mjs";
13
13
  import "./chunk-NCWIZVOT.mjs";
14
- import "./chunk-RV5SK4FZ.mjs";
15
- import "./chunk-E7NRUDWL.mjs";
16
- import "./chunk-T5USZCCM.mjs";
14
+ import "./chunk-JT5DGR4J.mjs";
15
+ import "./chunk-FUO4IFQD.mjs";
16
+ import "./chunk-MVKLVG5R.mjs";
17
17
  import "./chunk-JL7JXCET.mjs";
18
18
  import "./chunk-ZUEQNCKB.mjs";
19
19
  import "./chunk-25IC7KXZ.mjs";
@@ -26,4 +26,4 @@ init_check_provider_registry();
26
26
  export {
27
27
  CheckProviderRegistry
28
28
  };
29
- //# sourceMappingURL=check-provider-registry-6WR2SG66.mjs.map
29
+ //# sourceMappingURL=check-provider-registry-OJNYM7I6.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CheckProviderRegistry,
3
3
  init_check_provider_registry
4
- } from "./chunk-3LXYZ2OQ.mjs";
4
+ } from "./chunk-QERE2WXY.mjs";
5
5
  import "./chunk-KFKHU6CM.mjs";
6
6
  import "./chunk-AVMMKGLQ.mjs";
7
7
  import "./chunk-LG4AUKHB.mjs";
@@ -11,9 +11,9 @@ import "./chunk-GEW6LS32.mjs";
11
11
  import "./chunk-NZADFXHE.mjs";
12
12
  import "./chunk-KYBKVKBS.mjs";
13
13
  import "./chunk-NCWIZVOT.mjs";
14
- import "./chunk-RV5SK4FZ.mjs";
15
- import "./chunk-E7NRUDWL.mjs";
16
- import "./chunk-T5USZCCM.mjs";
14
+ import "./chunk-JT5DGR4J.mjs";
15
+ import "./chunk-FUO4IFQD.mjs";
16
+ import "./chunk-MVKLVG5R.mjs";
17
17
  import "./chunk-JL7JXCET.mjs";
18
18
  import "./chunk-ZUEQNCKB.mjs";
19
19
  import "./chunk-25IC7KXZ.mjs";
@@ -26,4 +26,4 @@ init_check_provider_registry();
26
26
  export {
27
27
  CheckProviderRegistry
28
28
  };
29
- //# sourceMappingURL=check-provider-registry-CWLPAM5U.mjs.map
29
+ //# sourceMappingURL=check-provider-registry-TVZL4EDZ.mjs.map
@@ -42,11 +42,11 @@ import {
42
42
  init_routing,
43
43
  init_snapshot_store,
44
44
  snapshot_store_exports
45
- } from "./chunk-RV5SK4FZ.mjs";
45
+ } from "./chunk-JT5DGR4J.mjs";
46
46
  import {
47
47
  FailureConditionEvaluator,
48
48
  init_failure_condition_evaluator
49
- } from "./chunk-E7NRUDWL.mjs";
49
+ } from "./chunk-FUO4IFQD.mjs";
50
50
  import {
51
51
  addEvent,
52
52
  emitNdjsonFallback,
@@ -57,7 +57,7 @@ import {
57
57
  setSpanAttributes,
58
58
  trace_helpers_exports,
59
59
  withActiveSpan
60
- } from "./chunk-T5USZCCM.mjs";
60
+ } from "./chunk-MVKLVG5R.mjs";
61
61
  import {
62
62
  addDiagramBlock,
63
63
  init_metrics
@@ -1579,7 +1579,7 @@ ${"=".repeat(60)}
1579
1579
  }
1580
1580
  const explicitPromptType = (process.env.VISOR_PROMPT_TYPE || "").trim();
1581
1581
  let systemPrompt = this.config.systemPrompt;
1582
- if (!systemPrompt && schema !== "code-review") {
1582
+ if (!systemPrompt && schema !== "code-review" && !this.config.promptType) {
1583
1583
  systemPrompt = "You are general assistant, follow user instructions.";
1584
1584
  }
1585
1585
  log(
@@ -3965,7 +3965,7 @@ async function executeWorkflowAsTool(workflowId, args, context2, argsOverrides)
3965
3965
  ...args,
3966
3966
  ...argsOverrides
3967
3967
  };
3968
- const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-PI7VJT25.mjs");
3968
+ const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-ALB4BINK.mjs");
3969
3969
  const provider = new WorkflowCheckProvider2();
3970
3970
  const checkConfig = {
3971
3971
  type: "workflow",
@@ -9283,7 +9283,7 @@ async function executeCheckWithForEachItems2(checkId, forEachParent, forEachItem
9283
9283
  }
9284
9284
  }
9285
9285
  try {
9286
- const { evaluateTransitions } = await import("./routing-BXHP2E62.mjs");
9286
+ const { evaluateTransitions } = await import("./routing-R4DGYG6Y.mjs");
9287
9287
  const transTarget = await evaluateTransitions(
9288
9288
  onFinish.transitions,
9289
9289
  forEachParent,
@@ -9343,7 +9343,7 @@ async function executeCheckWithForEachItems2(checkId, forEachParent, forEachItem
9343
9343
  `[LevelDispatch] Error evaluating on_finish transitions for ${forEachParent}: ${e instanceof Error ? e.message : String(e)}`
9344
9344
  );
9345
9345
  }
9346
- const { evaluateGoto: evaluateGoto2 } = await import("./routing-BXHP2E62.mjs");
9346
+ const { evaluateGoto: evaluateGoto2 } = await import("./routing-R4DGYG6Y.mjs");
9347
9347
  if (context2.debug) {
9348
9348
  logger.info(
9349
9349
  `[LevelDispatch] Evaluating on_finish.goto_js for forEach parent: ${forEachParent}`
@@ -13279,7 +13279,7 @@ var init_state_machine_execution_engine = __esm({
13279
13279
  try {
13280
13280
  const map = options?.webhookContext?.webhookData;
13281
13281
  if (map) {
13282
- const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-CWLPAM5U.mjs");
13282
+ const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-OJNYM7I6.mjs");
13283
13283
  const reg = CheckProviderRegistry2.getInstance();
13284
13284
  const p = reg.getProvider("http_input");
13285
13285
  if (p && typeof p.setWebhookContext === "function") p.setWebhookContext(map);
@@ -13402,7 +13402,7 @@ var init_state_machine_execution_engine = __esm({
13402
13402
  tag_filter: tagFilter
13403
13403
  } : config;
13404
13404
  try {
13405
- const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-CWLPAM5U.mjs");
13405
+ const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-OJNYM7I6.mjs");
13406
13406
  const registry = CheckProviderRegistry2.getInstance();
13407
13407
  registry.setCustomTools(configWithTagFilter.tools || {});
13408
13408
  } catch (error) {
@@ -13466,7 +13466,7 @@ var init_state_machine_execution_engine = __esm({
13466
13466
  try {
13467
13467
  const webhookData = this.executionContext?.webhookContext?.webhookData;
13468
13468
  if (webhookData instanceof Map) {
13469
- const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-6NUB2IHV.mjs");
13469
+ const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-NLBCVAQE.mjs");
13470
13470
  const slackCtx = extractSlackContext2(webhookData);
13471
13471
  if (slackCtx) {
13472
13472
  const payload = Array.from(webhookData.values())[0];
@@ -13495,7 +13495,7 @@ var init_state_machine_execution_engine = __esm({
13495
13495
  if (Array.isArray(configWithTagFilter.frontends) && configWithTagFilter.frontends.length > 0) {
13496
13496
  try {
13497
13497
  const { EventBus } = await import("./event-bus-5K3Y2FCS.mjs");
13498
- const { FrontendsHost } = await import("./host-BTHRY6NS.mjs");
13498
+ const { FrontendsHost } = await import("./host-L4Q3U2XG.mjs");
13499
13499
  const bus = new EventBus();
13500
13500
  context2.eventBus = bus;
13501
13501
  frontendsHost = new FrontendsHost(bus, logger);
@@ -13845,9 +13845,9 @@ var init_state_machine_execution_engine = __esm({
13845
13845
  * @returns Array of failure condition evaluation results
13846
13846
  */
13847
13847
  async evaluateFailureConditions(checkName, reviewSummary, config, previousOutputs, authorAssociation) {
13848
- const { FailureConditionEvaluator: FailureConditionEvaluator2 } = await import("./failure-condition-evaluator-GPANOHP2.mjs");
13848
+ const { FailureConditionEvaluator: FailureConditionEvaluator2 } = await import("./failure-condition-evaluator-HPUEA3XS.mjs");
13849
13849
  const evaluator = new FailureConditionEvaluator2();
13850
- const { addEvent: addEvent3 } = await import("./trace-helpers-UG6FOWVV.mjs");
13850
+ const { addEvent: addEvent3 } = await import("./trace-helpers-45BTGOUW.mjs");
13851
13851
  const { addFailIfTriggered } = await import("./metrics-I6A7IHG4.mjs");
13852
13852
  const checkConfig = config.checks?.[checkName];
13853
13853
  if (!checkConfig) {
@@ -41174,8 +41174,8 @@ function buildBuiltinGlobals(opts) {
41174
41174
  const asyncFunctionNames = /* @__PURE__ */ new Set();
41175
41175
  const scheduleFn = async (args = {}) => {
41176
41176
  try {
41177
- const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-KKQ4W7KU.mjs");
41178
- const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-6NUB2IHV.mjs");
41177
+ const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-ZLRHDABX.mjs");
41178
+ const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-NLBCVAQE.mjs");
41179
41179
  const parentCtx = opts.sessionInfo?._parentContext;
41180
41180
  const webhookData = parentCtx?.prInfo?.eventContext?.webhookData;
41181
41181
  const visorCfg = parentCtx?.config;
@@ -44320,4 +44320,4 @@ undici/lib/fetch/body.js:
44320
44320
  undici/lib/websocket/frame.js:
44321
44321
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
44322
44322
  */
44323
- //# sourceMappingURL=chunk-3LXYZ2OQ.mjs.map
44323
+ //# sourceMappingURL=chunk-6UY7MK7Z.mjs.map