@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.
- package/defaults/code-talk.yaml +3 -8
- package/dist/defaults/code-talk.yaml +3 -8
- package/dist/index.js +19 -11
- package/dist/sdk/{check-provider-registry-6WR2SG66.mjs → check-provider-registry-OJNYM7I6.mjs} +5 -5
- package/dist/sdk/{check-provider-registry-CWLPAM5U.mjs → check-provider-registry-TVZL4EDZ.mjs} +5 -5
- package/dist/sdk/{chunk-3LXYZ2OQ.mjs → chunk-6UY7MK7Z.mjs} +16 -16
- package/dist/sdk/chunk-6UY7MK7Z.mjs.map +1 -0
- package/dist/sdk/{chunk-E7NRUDWL.mjs → chunk-FUO4IFQD.mjs} +2 -2
- package/dist/sdk/{chunk-RV5SK4FZ.mjs → chunk-JT5DGR4J.mjs} +3 -3
- package/dist/sdk/{chunk-T5USZCCM.mjs → chunk-MVKLVG5R.mjs} +2 -2
- package/dist/sdk/{chunk-T5USZCCM.mjs.map → chunk-MVKLVG5R.mjs.map} +1 -1
- package/dist/sdk/{chunk-2G2PJKHM.mjs → chunk-QERE2WXY.mjs} +16 -16
- package/dist/sdk/chunk-QERE2WXY.mjs.map +1 -0
- package/dist/sdk/{failure-condition-evaluator-GPANOHP2.mjs → failure-condition-evaluator-HPUEA3XS.mjs} +3 -3
- package/dist/sdk/{github-frontend-VM52NX7N.mjs → github-frontend-QZ4CF563.mjs} +3 -3
- package/dist/sdk/{host-7MGCKSHM.mjs → host-L4Q3U2XG.mjs} +2 -2
- package/dist/sdk/{host-BTHRY6NS.mjs → host-P65NNMYN.mjs} +2 -2
- package/dist/sdk/{routing-BXHP2E62.mjs → routing-R4DGYG6Y.mjs} +4 -4
- package/dist/sdk/{schedule-tool-KKQ4W7KU.mjs → schedule-tool-FRWG5RG5.mjs} +5 -5
- package/dist/sdk/{schedule-tool-MPHHE2IM.mjs → schedule-tool-ZLRHDABX.mjs} +5 -5
- package/dist/sdk/{schedule-tool-handler-6NUB2IHV.mjs → schedule-tool-handler-LJDYKV3G.mjs} +5 -5
- package/dist/sdk/{schedule-tool-handler-V7A4AQGS.mjs → schedule-tool-handler-NLBCVAQE.mjs} +5 -5
- package/dist/sdk/sdk.js +2 -2
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +4 -4
- package/dist/sdk/{trace-helpers-UG6FOWVV.mjs → trace-helpers-45BTGOUW.mjs} +2 -2
- package/dist/sdk/{workflow-check-provider-N4ZTFOH6.mjs → workflow-check-provider-ALB4BINK.mjs} +5 -5
- package/dist/sdk/{workflow-check-provider-PI7VJT25.mjs → workflow-check-provider-BHMQN234.mjs} +5 -5
- package/package.json +2 -2
- package/dist/sdk/chunk-2G2PJKHM.mjs.map +0 -1
- package/dist/sdk/chunk-3LXYZ2OQ.mjs.map +0 -1
- /package/dist/sdk/{check-provider-registry-6WR2SG66.mjs.map → check-provider-registry-OJNYM7I6.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-CWLPAM5U.mjs.map → check-provider-registry-TVZL4EDZ.mjs.map} +0 -0
- /package/dist/sdk/{chunk-E7NRUDWL.mjs.map → chunk-FUO4IFQD.mjs.map} +0 -0
- /package/dist/sdk/{chunk-RV5SK4FZ.mjs.map → chunk-JT5DGR4J.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-GPANOHP2.mjs.map → failure-condition-evaluator-HPUEA3XS.mjs.map} +0 -0
- /package/dist/sdk/{github-frontend-VM52NX7N.mjs.map → github-frontend-QZ4CF563.mjs.map} +0 -0
- /package/dist/sdk/{host-7MGCKSHM.mjs.map → host-L4Q3U2XG.mjs.map} +0 -0
- /package/dist/sdk/{host-BTHRY6NS.mjs.map → host-P65NNMYN.mjs.map} +0 -0
- /package/dist/sdk/{routing-BXHP2E62.mjs.map → routing-R4DGYG6Y.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-KKQ4W7KU.mjs.map → schedule-tool-FRWG5RG5.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-MPHHE2IM.mjs.map → schedule-tool-ZLRHDABX.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-6NUB2IHV.mjs.map → schedule-tool-handler-LJDYKV3G.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-V7A4AQGS.mjs.map → schedule-tool-handler-NLBCVAQE.mjs.map} +0 -0
- /package/dist/sdk/{trace-helpers-UG6FOWVV.mjs.map → trace-helpers-45BTGOUW.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-N4ZTFOH6.mjs.map → workflow-check-provider-ALB4BINK.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-PI7VJT25.mjs.map → workflow-check-provider-BHMQN234.mjs.map} +0 -0
package/defaults/code-talk.yaml
CHANGED
|
@@ -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.
|
|
3
|
-
process.env.PROBE_VERSION = '0.6.0-
|
|
4
|
-
process.env.VISOR_COMMIT_SHA = '
|
|
5
|
-
process.env.VISOR_COMMIT_SHORT = '
|
|
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
|
|
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."}
|
|
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-
|
|
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
|
|
package/dist/sdk/{check-provider-registry-6WR2SG66.mjs → check-provider-registry-OJNYM7I6.mjs}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CheckProviderRegistry,
|
|
3
3
|
init_check_provider_registry
|
|
4
|
-
} from "./chunk-
|
|
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-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
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-
|
|
29
|
+
//# sourceMappingURL=check-provider-registry-OJNYM7I6.mjs.map
|
package/dist/sdk/{check-provider-registry-CWLPAM5U.mjs → check-provider-registry-TVZL4EDZ.mjs}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CheckProviderRegistry,
|
|
3
3
|
init_check_provider_registry
|
|
4
|
-
} from "./chunk-
|
|
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-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
45
|
+
} from "./chunk-JT5DGR4J.mjs";
|
|
46
46
|
import {
|
|
47
47
|
FailureConditionEvaluator,
|
|
48
48
|
init_failure_condition_evaluator
|
|
49
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
41178
|
-
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-
|
|
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-
|
|
44323
|
+
//# sourceMappingURL=chunk-6UY7MK7Z.mjs.map
|