@probelabs/visor 0.1.34 → 0.1.35

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 CHANGED
@@ -1,5 +1,5 @@
1
1
  <div align="center">
2
- <img src="site/visor.png" alt="Visor Logo" width="200" />
2
+ <img src="site/visor.png" alt="Visor Logo" width="500" />
3
3
 
4
4
  # Visor - AI-Powered Code Review with Schema-Template System
5
5
 
@@ -126,6 +126,7 @@ npm run build
126
126
  - **Step Dependencies** - Define execution order with `depends_on` relationships
127
127
  - **PR Commands** - Trigger reviews with `/review` comments
128
128
  - **GitHub Integration** - Creates check runs, adds labels, posts comments
129
+ - **Warning Suppression** - Suppress false positives with `visor-disable` comments
129
130
 
130
131
  ## 💬 PR Comment Commands
131
132
 
@@ -136,6 +137,95 @@ Add comments to your PR to trigger Visor:
136
137
  - `/review --check performance` - Run performance checks only
137
138
  - `/review --help` - Show available commands
138
139
 
140
+ ## 🔇 Suppressing Warnings
141
+
142
+ Visor supports suppressing specific warnings or all warnings in a file using special comments in your code. This is useful for false positives or intentional code patterns that should not trigger warnings.
143
+
144
+ ### Line-Level Suppression
145
+
146
+ Add `visor-disable` in a comment within ±2 lines of the issue to suppress it:
147
+
148
+ ```javascript
149
+ // Example: Suppress a specific warning
150
+ function authenticate() {
151
+ const testPassword = "demo123"; // visor-disable
152
+ // This hardcoded password warning will be suppressed
153
+ }
154
+ ```
155
+
156
+ The suppression works with any comment style:
157
+ - `// visor-disable` (JavaScript, TypeScript, C++, etc.)
158
+ - `# visor-disable` (Python, Ruby, Shell, etc.)
159
+ - `/* visor-disable */` (Multi-line comments)
160
+ - `<!-- visor-disable -->` (HTML, XML)
161
+
162
+ ### File-Level Suppression
163
+
164
+ To suppress all warnings in an entire file, add `visor-disable-file` in the first 5 lines:
165
+
166
+ ```javascript
167
+ // visor-disable-file
168
+ // All warnings in this file will be suppressed
169
+
170
+ function insecureCode() {
171
+ eval("user input"); // No warning
172
+ const password = "hardcoded"; // No warning
173
+ }
174
+ ```
175
+
176
+ ### Configuration
177
+
178
+ The suppression feature is enabled by default. You can disable it in your configuration:
179
+
180
+ ```yaml
181
+ # .visor.yaml
182
+ version: "1.0"
183
+ output:
184
+ suppressionEnabled: false # Disable suppression comments
185
+ pr_comment:
186
+ format: markdown
187
+ group_by: check
188
+ ```
189
+
190
+ ### Important Notes
191
+
192
+ - Suppression comments are **case-insensitive** (`visor-disable`, `VISOR-DISABLE`, `Visor-Disable` all work)
193
+ - The comment just needs to contain the suppression keyword as a substring
194
+ - When issues are suppressed, Visor logs a summary showing which files had suppressed issues
195
+ - Use suppression judiciously - it's better to fix issues than suppress them
196
+
197
+ ### Examples
198
+
199
+ ```python
200
+ # Python example
201
+ def process_data():
202
+ api_key = "sk-12345" # visor-disable
203
+ return api_key
204
+ ```
205
+
206
+ ```typescript
207
+ // TypeScript example - suppress within range
208
+ function riskyOperation() {
209
+ // visor-disable
210
+ const unsafe = eval(userInput); // Suppressed (within 2 lines)
211
+ processData(unsafe); // Suppressed (within 2 lines)
212
+
213
+ doSomethingElse();
214
+ anotherOperation(); // NOT suppressed (> 2 lines away)
215
+ }
216
+ ```
217
+
218
+ ```go
219
+ // Go example - file-level suppression
220
+ // visor-disable-file
221
+ package main
222
+
223
+ func main() {
224
+ password := "hardcoded" // All issues suppressed
225
+ fmt.Println(password)
226
+ }
227
+ ```
228
+
139
229
  ## 📋 CLI Usage
140
230
 
141
231
  ```bash
@@ -1080,11 +1170,20 @@ checks:
1080
1170
  group: code-review # \
1081
1171
  performance: # } All grouped in one comment
1082
1172
  group: code-review # /
1083
-
1173
+
1084
1174
  overview:
1085
1175
  group: summary # Separate comment
1176
+
1177
+ issue-assistant:
1178
+ group: dynamic # Special group: creates NEW comment each time (never updates)
1086
1179
  ```
1087
1180
 
1181
+ **Special "dynamic" group**: When a check uses `group: dynamic`, it creates a new comment for each execution instead of updating an existing comment. This is perfect for:
1182
+ - Issue assistants that respond to user questions
1183
+ - Release notes generation
1184
+ - Changelog updates
1185
+ - Any check where you want to preserve the history of responses
1186
+
1088
1187
  ### Custom Schemas and Templates
1089
1188
 
1090
1189
  Add custom schemas in your config:
@@ -1128,8 +1227,12 @@ checks:
1128
1227
  group: code-review # Same group = combined in one comment
1129
1228
  overview:
1130
1229
  group: pr-summary # Different group = separate comment
1230
+ changelog:
1231
+ group: dynamic # Special: creates NEW comment each time
1131
1232
  ```
1132
1233
 
1234
+ The special `group: dynamic` creates a new comment for each execution instead of updating existing comments. Use this for checks where you want to preserve history (issue assistants, release notes, etc.)
1235
+
1133
1236
  #### Schema Property
1134
1237
  Enforces structured output format:
1135
1238
  ```yaml
@@ -244,8 +244,8 @@ checks:
244
244
  # Intelligent Issue Assistant - provides sophisticated issue triage and assistance
245
245
  issue-assistant:
246
246
  type: ai
247
- group: issue-support
248
- command: "ask"
247
+ group: dynamic # Special group: creates new comment each time instead of updating
248
+ command: "visor"
249
249
  if: "event.name === 'issues' && event.action === 'opened' || (event.name === 'issue_comment' && event.comment && event.comment.body && event.comment.body.trim().startsWith('/ask'))"
250
250
  prompt: |
251
251
  You are an intelligent GitHub issue assistant for the {{ event.repository.fullName }} repository. Your role is to provide professional, knowledgeable assistance based on the trigger event.
@@ -361,4 +361,4 @@ output:
361
361
  pr_comment:
362
362
  format: markdown
363
363
  group_by: check
364
- collapse: true
364
+ collapse: true
@@ -69,6 +69,8 @@ export declare class CheckExecutionEngine {
69
69
  private githubCheckService?;
70
70
  private checkRunMap?;
71
71
  private githubContext?;
72
+ private workingDirectory;
73
+ private config?;
72
74
  constructor(workingDirectory?: string);
73
75
  /**
74
76
  * Execute checks on the local repository
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/check-execution-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/check-execution-engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/config.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EAOX,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,eAAe,CAAwD;IAC/E,OAAO,CAAC,kBAAkB,CAOxB;IACF,OAAO,CAAC,kBAAkB,CAAgE;IAC1F,OAAO,CAAC,mBAAmB,CAAkD;IAE7E;;OAEG;IACU,UAAU,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,WAAW,CAAC;IA6EvB;;OAEG;IACU,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyBrF;;OAEG;YACW,qBAAqB;IAiBnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC;IAerD;;OAEG;IACI,wBAAwB,IAAI,WAAW,GAAG,IAAI;IAgCrD;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,UAAU,GAAG,YAAY;IAqB9F;;OAEG;IACU,0BAA0B,IAAI,OAAO,CAAC;QACjD,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,oBAAoB,EAAE,oBAAoB,CAAC;KAC5C,CAAC;IA2BF;;OAEG;IACH,OAAO,CAAC,cAAc;IAgDtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwF3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA6B1B"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/config.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EAOX,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,eAAe,CAAwD;IAC/E,OAAO,CAAC,kBAAkB,CAOxB;IACF,OAAO,CAAC,kBAAkB,CAAgE;IAC1F,OAAO,CAAC,mBAAmB,CAAkD;IAE7E;;OAEG;IACU,UAAU,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,WAAW,CAAC;IA6EvB;;OAEG;IACU,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyBrF;;OAEG;YACW,qBAAqB;IAiBnC;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC;IAerD;;OAEG;IACI,wBAAwB,IAAI,WAAW,GAAG,IAAI;IAmDrD;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,UAAU,GAAG,YAAY;IAqB9F;;OAEG;IACU,0BAA0B,IAAI,OAAO,CAAC;QACjD,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,oBAAoB,EAAE,oBAAoB,CAAC;KAC5C,CAAC;IA2BF;;OAEG;IACH,OAAO,CAAC,cAAc;IAgDtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwF3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA6B1B"}
@@ -244,8 +244,8 @@ checks:
244
244
  # Intelligent Issue Assistant - provides sophisticated issue triage and assistance
245
245
  issue-assistant:
246
246
  type: ai
247
- group: issue-support
248
- command: "ask"
247
+ group: dynamic # Special group: creates new comment each time instead of updating
248
+ command: "visor"
249
249
  if: "event.name === 'issues' && event.action === 'opened' || (event.name === 'issue_comment' && event.comment && event.comment.body && event.comment.body.trim().startsWith('/ask'))"
250
250
  prompt: |
251
251
  You are an intelligent GitHub issue assistant for the {{ event.repository.fullName }} repository. Your role is to provide professional, knowledgeable assistance based on the trigger event.
@@ -361,4 +361,4 @@ output:
361
361
  pr_comment:
362
362
  format: markdown
363
363
  group_by: check
364
- collapse: true
364
+ collapse: true
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/index.ts"],"names":[],"mappings":"AAyGA,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAwHzC"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/index.ts"],"names":[],"mappings":"AAwGA,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAoHzC"}
package/dist/index.js CHANGED
@@ -81724,6 +81724,7 @@ const check_provider_registry_1 = __nccwpck_require__(57140);
81724
81724
  const dependency_resolver_1 = __nccwpck_require__(98645);
81725
81725
  const failure_condition_evaluator_1 = __nccwpck_require__(54429);
81726
81726
  const github_check_service_1 = __nccwpck_require__(21367);
81727
+ const issue_filter_1 = __nccwpck_require__(36879);
81727
81728
  /**
81728
81729
  * Filter environment variables to only include safe ones for sandbox evaluation
81729
81730
  */
@@ -81759,8 +81760,11 @@ class CheckExecutionEngine {
81759
81760
  githubCheckService;
81760
81761
  checkRunMap;
81761
81762
  githubContext;
81763
+ workingDirectory;
81764
+ config;
81762
81765
  constructor(workingDirectory) {
81763
- this.gitAnalyzer = new git_repository_analyzer_1.GitRepositoryAnalyzer(workingDirectory);
81766
+ this.workingDirectory = workingDirectory || process.cwd();
81767
+ this.gitAnalyzer = new git_repository_analyzer_1.GitRepositoryAnalyzer(this.workingDirectory);
81764
81768
  this.providerRegistry = check_provider_registry_1.CheckProviderRegistry.getInstance();
81765
81769
  this.failureEvaluator = new failure_condition_evaluator_1.FailureConditionEvaluator();
81766
81770
  // Create a mock Octokit instance for local analysis
@@ -81904,6 +81908,8 @@ class CheckExecutionEngine {
81904
81908
  * Execute review checks using parallel execution for multiple AI checks
81905
81909
  */
81906
81910
  async executeReviewChecks(prInfo, checks, timeout, config, outputFormat, debug, maxParallelism, failFast) {
81911
+ // Store config for use in filtering
81912
+ this.config = config;
81907
81913
  // Determine where to send log messages based on output format
81908
81914
  const logFn = outputFormat === 'json' || outputFormat === 'sarif' ? console.error : console.log;
81909
81915
  logFn(`🔧 Debug: executeReviewChecks called with checks: ${JSON.stringify(checks)}`);
@@ -82744,6 +82750,10 @@ class CheckExecutionEngine {
82744
82750
  // Add summary information
82745
82751
  aggregatedSuggestions.unshift(...debugInfo);
82746
82752
  console.error(`🔧 Debug: Aggregated ${aggregatedIssues.length} issues from ${results.size} dependency-aware checks`);
82753
+ // Apply issue suppression filtering
82754
+ const suppressionEnabled = this.config?.output?.suppressionEnabled !== false;
82755
+ const issueFilter = new issue_filter_1.IssueFilter(suppressionEnabled);
82756
+ const filteredIssues = issueFilter.filterIssues(aggregatedIssues, this.workingDirectory);
82747
82757
  // Collect debug information when debug mode is enabled
82748
82758
  let aggregatedDebug;
82749
82759
  if (debug) {
@@ -82782,7 +82792,7 @@ class CheckExecutionEngine {
82782
82792
  }
82783
82793
  }
82784
82794
  return {
82785
- issues: aggregatedIssues,
82795
+ issues: filteredIssues,
82786
82796
  suggestions: aggregatedSuggestions,
82787
82797
  debug: aggregatedDebug,
82788
82798
  };
@@ -82870,6 +82880,10 @@ class CheckExecutionEngine {
82870
82880
  : `🔍 Parallel execution completed: ${successfulChecks} successful, ${failedChecks} failed`);
82871
82881
  aggregatedSuggestions.unshift(...debugInfo);
82872
82882
  console.error(`🔧 Debug: Aggregated ${aggregatedIssues.length} issues from ${results.length} checks`);
82883
+ // Apply issue suppression filtering
82884
+ const suppressionEnabled = this.config?.output?.suppressionEnabled !== false;
82885
+ const issueFilter = new issue_filter_1.IssueFilter(suppressionEnabled);
82886
+ const filteredIssues = issueFilter.filterIssues(aggregatedIssues, this.workingDirectory);
82873
82887
  // Collect debug information when debug mode is enabled
82874
82888
  let aggregatedDebug;
82875
82889
  if (debug) {
@@ -82965,7 +82979,7 @@ class CheckExecutionEngine {
82965
82979
  }
82966
82980
  }
82967
82981
  return {
82968
- issues: aggregatedIssues,
82982
+ issues: filteredIssues,
82969
82983
  suggestions: aggregatedSuggestions,
82970
82984
  debug: aggregatedDebug,
82971
82985
  };
@@ -84184,13 +84198,31 @@ class ConfigManager {
84184
84198
  */
84185
84199
  loadBundledDefaultConfig() {
84186
84200
  try {
84187
- // Find the package root by looking for package.json
84188
- const packageRoot = this.findPackageRoot();
84189
- if (!packageRoot) {
84190
- return null;
84201
+ // Try different paths to find the bundled default config
84202
+ const possiblePaths = [
84203
+ // When running as GitHub Action (bundled in dist/)
84204
+ path.join(__dirname, 'defaults', '.visor.yaml'),
84205
+ // When running from source
84206
+ path.join(__dirname, '..', 'defaults', '.visor.yaml'),
84207
+ // Try via package root
84208
+ this.findPackageRoot() ? path.join(this.findPackageRoot(), 'defaults', '.visor.yaml') : '',
84209
+ // GitHub Action environment variable
84210
+ process.env.GITHUB_ACTION_PATH
84211
+ ? path.join(process.env.GITHUB_ACTION_PATH, 'defaults', '.visor.yaml')
84212
+ : '',
84213
+ process.env.GITHUB_ACTION_PATH
84214
+ ? path.join(process.env.GITHUB_ACTION_PATH, 'dist', 'defaults', '.visor.yaml')
84215
+ : '',
84216
+ ].filter(p => p); // Remove empty paths
84217
+ let bundledConfigPath;
84218
+ for (const possiblePath of possiblePaths) {
84219
+ if (fs.existsSync(possiblePath)) {
84220
+ bundledConfigPath = possiblePath;
84221
+ break;
84222
+ }
84191
84223
  }
84192
- const bundledConfigPath = path.join(packageRoot, 'defaults', '.visor.yaml');
84193
- if (fs.existsSync(bundledConfigPath)) {
84224
+ if (bundledConfigPath && fs.existsSync(bundledConfigPath)) {
84225
+ console.log(`📦 Loading bundled default configuration from ${bundledConfigPath}`);
84194
84226
  const configContent = fs.readFileSync(bundledConfigPath, 'utf8');
84195
84227
  const parsedConfig = yaml.load(configContent);
84196
84228
  if (!parsedConfig || typeof parsedConfig !== 'object') {
@@ -86144,7 +86176,6 @@ exports.run = run;
86144
86176
  const rest_1 = __nccwpck_require__(47432);
86145
86177
  const auth_app_1 = __nccwpck_require__(76479);
86146
86178
  const core_1 = __nccwpck_require__(37484);
86147
- const path = __importStar(__nccwpck_require__(16928));
86148
86179
  const commands_1 = __nccwpck_require__(99153);
86149
86180
  const pr_analyzer_1 = __nccwpck_require__(80100);
86150
86181
  const reviewer_1 = __nccwpck_require__(532);
@@ -86308,12 +86339,12 @@ async function run() {
86308
86339
  }
86309
86340
  catch {
86310
86341
  // Fall back to bundled default config
86311
- try {
86312
- const defaultConfigPath = path.join(process.env.GITHUB_ACTION_PATH || __dirname, 'defaults', '.visor.yaml');
86313
- config = await configManager.loadConfig(defaultConfigPath);
86314
- console.log('📋 Using bundled default configuration from defaults/.visor.yaml');
86342
+ const bundledConfig = configManager.loadBundledDefaultConfig();
86343
+ if (bundledConfig) {
86344
+ config = bundledConfig;
86345
+ console.log('📋 Using bundled default configuration');
86315
86346
  }
86316
- catch {
86347
+ else {
86317
86348
  // Ultimate fallback if even defaults/.visor.yaml can't be loaded
86318
86349
  config = {
86319
86350
  version: '1.0',
@@ -87278,6 +87309,159 @@ if (process.env.NODE_ENV !== 'test' && process.env.JEST_WORKER_ID === undefined)
87278
87309
  }
87279
87310
 
87280
87311
 
87312
+ /***/ }),
87313
+
87314
+ /***/ 36879:
87315
+ /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
87316
+
87317
+ "use strict";
87318
+
87319
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
87320
+ if (k2 === undefined) k2 = k;
87321
+ var desc = Object.getOwnPropertyDescriptor(m, k);
87322
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
87323
+ desc = { enumerable: true, get: function() { return m[k]; } };
87324
+ }
87325
+ Object.defineProperty(o, k2, desc);
87326
+ }) : (function(o, m, k, k2) {
87327
+ if (k2 === undefined) k2 = k;
87328
+ o[k2] = m[k];
87329
+ }));
87330
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
87331
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
87332
+ }) : function(o, v) {
87333
+ o["default"] = v;
87334
+ });
87335
+ var __importStar = (this && this.__importStar) || (function () {
87336
+ var ownKeys = function(o) {
87337
+ ownKeys = Object.getOwnPropertyNames || function (o) {
87338
+ var ar = [];
87339
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
87340
+ return ar;
87341
+ };
87342
+ return ownKeys(o);
87343
+ };
87344
+ return function (mod) {
87345
+ if (mod && mod.__esModule) return mod;
87346
+ var result = {};
87347
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
87348
+ __setModuleDefault(result, mod);
87349
+ return result;
87350
+ };
87351
+ })();
87352
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
87353
+ exports.IssueFilter = void 0;
87354
+ const fs = __importStar(__nccwpck_require__(79896));
87355
+ const path = __importStar(__nccwpck_require__(16928));
87356
+ /**
87357
+ * Filter for suppressing Visor issues based on special comments in code
87358
+ */
87359
+ class IssueFilter {
87360
+ fileCache = new Map();
87361
+ suppressionEnabled;
87362
+ constructor(suppressionEnabled = true) {
87363
+ this.suppressionEnabled = suppressionEnabled;
87364
+ }
87365
+ /**
87366
+ * Filter out issues that have suppression comments
87367
+ * @param issues Array of issues to filter
87368
+ * @param workingDir Working directory for resolving file paths
87369
+ * @returns Filtered array of issues with suppressed ones removed
87370
+ */
87371
+ filterIssues(issues, workingDir = process.cwd()) {
87372
+ if (!this.suppressionEnabled || !issues || issues.length === 0) {
87373
+ return issues;
87374
+ }
87375
+ const filteredIssues = [];
87376
+ const suppressedCount = {};
87377
+ for (const issue of issues) {
87378
+ if (this.shouldSuppressIssue(issue, workingDir)) {
87379
+ // Track suppressed issues for logging
87380
+ suppressedCount[issue.file] = (suppressedCount[issue.file] || 0) + 1;
87381
+ }
87382
+ else {
87383
+ filteredIssues.push(issue);
87384
+ }
87385
+ }
87386
+ // Log suppression summary if any issues were suppressed
87387
+ const totalSuppressed = Object.values(suppressedCount).reduce((sum, count) => sum + count, 0);
87388
+ if (totalSuppressed > 0) {
87389
+ console.log(`🔇 Suppressed ${totalSuppressed} issue(s) via visor-disable comments:`);
87390
+ for (const [file, count] of Object.entries(suppressedCount)) {
87391
+ console.log(` - ${file}: ${count} issue(s)`);
87392
+ }
87393
+ }
87394
+ return filteredIssues;
87395
+ }
87396
+ /**
87397
+ * Check if an issue should be suppressed based on comments in the file
87398
+ */
87399
+ shouldSuppressIssue(issue, workingDir) {
87400
+ // Skip system-level issues or issues without file/line info
87401
+ if (!issue.file || issue.file === 'system' || issue.file === 'webhook' || issue.line === 0) {
87402
+ return false;
87403
+ }
87404
+ const lines = this.getFileLines(issue.file, workingDir);
87405
+ if (!lines || lines.length === 0) {
87406
+ return false;
87407
+ }
87408
+ // Check for file-level suppression (visor-disable-file in first 5 lines)
87409
+ const firstFiveLines = lines.slice(0, 5).join('\n').toLowerCase();
87410
+ if (firstFiveLines.includes('visor-disable-file')) {
87411
+ return true;
87412
+ }
87413
+ // Check for line-level suppression (visor-disable within ±2 lines)
87414
+ const lineIndex = issue.line - 1; // Convert to 0-based index
87415
+ const startLine = Math.max(0, lineIndex - 2);
87416
+ const endLine = Math.min(lines.length - 1, lineIndex + 2);
87417
+ for (let i = startLine; i <= endLine; i++) {
87418
+ if (lines[i].toLowerCase().includes('visor-disable')) {
87419
+ return true;
87420
+ }
87421
+ }
87422
+ return false;
87423
+ }
87424
+ /**
87425
+ * Get file lines from cache or read from disk
87426
+ */
87427
+ getFileLines(filePath, workingDir) {
87428
+ // Check cache first
87429
+ if (this.fileCache.has(filePath)) {
87430
+ return this.fileCache.get(filePath);
87431
+ }
87432
+ try {
87433
+ // Resolve the file path
87434
+ const resolvedPath = path.isAbsolute(filePath) ? filePath : path.join(workingDir, filePath);
87435
+ if (!fs.existsSync(resolvedPath)) {
87436
+ // Try without working directory if the file doesn't exist
87437
+ if (fs.existsSync(filePath)) {
87438
+ const content = fs.readFileSync(filePath, 'utf8');
87439
+ const lines = content.split('\n');
87440
+ this.fileCache.set(filePath, lines);
87441
+ return lines;
87442
+ }
87443
+ return null;
87444
+ }
87445
+ const content = fs.readFileSync(resolvedPath, 'utf8');
87446
+ const lines = content.split('\n');
87447
+ this.fileCache.set(filePath, lines);
87448
+ return lines;
87449
+ }
87450
+ catch {
87451
+ // Silently skip files that can't be read
87452
+ return null;
87453
+ }
87454
+ }
87455
+ /**
87456
+ * Clear the file cache (useful for testing or long-running processes)
87457
+ */
87458
+ clearCache() {
87459
+ this.fileCache.clear();
87460
+ }
87461
+ }
87462
+ exports.IssueFilter = IssueFilter;
87463
+
87464
+
87281
87465
  /***/ }),
87282
87466
 
87283
87467
  /***/ 25508:
@@ -88137,6 +88321,7 @@ exports.AICheckProvider = void 0;
88137
88321
  const check_provider_interface_1 = __nccwpck_require__(14131);
88138
88322
  const ai_review_service_1 = __nccwpck_require__(51796);
88139
88323
  const env_resolver_1 = __nccwpck_require__(58749);
88324
+ const issue_filter_1 = __nccwpck_require__(36879);
88140
88325
  const liquidjs_1 = __nccwpck_require__(48694);
88141
88326
  const promises_1 = __importDefault(__nccwpck_require__(91943));
88142
88327
  const path_1 = __importDefault(__nccwpck_require__(16928));
@@ -88506,15 +88691,24 @@ class AICheckProvider extends check_provider_interface_1.CheckProvider {
88506
88691
  console.error(`🔧 Debug: AICheckProvider full config: ${JSON.stringify(config, null, 2)}`);
88507
88692
  try {
88508
88693
  console.error(`🔧 Debug: AICheckProvider passing checkName: ${config.checkName} to service`);
88694
+ let result;
88509
88695
  // Check if we should use session reuse
88510
88696
  if (sessionInfo?.reuseSession && sessionInfo.parentSessionId) {
88511
88697
  console.error(`🔄 Debug: Using session reuse with parent session: ${sessionInfo.parentSessionId}`);
88512
- return await service.executeReviewWithSessionReuse(prInfo, processedPrompt, sessionInfo.parentSessionId, schema, config.checkName);
88698
+ result = await service.executeReviewWithSessionReuse(prInfo, processedPrompt, sessionInfo.parentSessionId, schema, config.checkName);
88513
88699
  }
88514
88700
  else {
88515
88701
  console.error(`🆕 Debug: Creating new AI session for check: ${config.checkName}`);
88516
- return await service.executeReview(prInfo, processedPrompt, schema, config.checkName, config.sessionId);
88702
+ result = await service.executeReview(prInfo, processedPrompt, schema, config.checkName, config.sessionId);
88517
88703
  }
88704
+ // Apply issue suppression filtering
88705
+ const suppressionEnabled = config.suppressionEnabled !== false;
88706
+ const issueFilter = new issue_filter_1.IssueFilter(suppressionEnabled);
88707
+ const filteredIssues = issueFilter.filterIssues(result.issues || [], process.cwd());
88708
+ return {
88709
+ ...result,
88710
+ issues: filteredIssues,
88711
+ };
88518
88712
  }
88519
88713
  catch (error) {
88520
88714
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -88802,6 +88996,7 @@ exports.NoopCheckProvider = NoopCheckProvider;
88802
88996
  Object.defineProperty(exports, "__esModule", ({ value: true }));
88803
88997
  exports.ToolCheckProvider = void 0;
88804
88998
  const check_provider_interface_1 = __nccwpck_require__(14131);
88999
+ const issue_filter_1 = __nccwpck_require__(36879);
88805
89000
  const child_process_1 = __nccwpck_require__(35317);
88806
89001
  const liquidjs_1 = __nccwpck_require__(48694);
88807
89002
  /**
@@ -88887,8 +89082,12 @@ class ToolCheckProvider extends check_provider_interface_1.CheckProvider {
88887
89082
  suggestion: undefined,
88888
89083
  replacement: undefined,
88889
89084
  }));
89085
+ // Apply issue suppression filtering
89086
+ const suppressionEnabled = config.suppressionEnabled !== false;
89087
+ const issueFilter = new issue_filter_1.IssueFilter(suppressionEnabled);
89088
+ const filteredIssues = issueFilter.filterIssues(issues, process.cwd());
88890
89089
  return {
88891
- issues,
89090
+ issues: filteredIssues,
88892
89091
  suggestions: this.generateSuggestions(comments, renderedCommand),
88893
89092
  };
88894
89093
  }
@@ -88983,6 +89182,7 @@ exports.ToolCheckProvider = ToolCheckProvider;
88983
89182
  Object.defineProperty(exports, "__esModule", ({ value: true }));
88984
89183
  exports.WebhookCheckProvider = void 0;
88985
89184
  const check_provider_interface_1 = __nccwpck_require__(14131);
89185
+ const issue_filter_1 = __nccwpck_require__(36879);
88986
89186
  /**
88987
89187
  * Check provider that sends PR info to a webhook for external analysis
88988
89188
  */
@@ -89043,7 +89243,15 @@ class WebhookCheckProvider extends check_provider_interface_1.CheckProvider {
89043
89243
  // Send webhook request
89044
89244
  const response = await this.sendWebhookRequest(url, method, headers, payload, timeout);
89045
89245
  // Parse webhook response
89046
- return this.parseWebhookResponse(response, url);
89246
+ const result = this.parseWebhookResponse(response, url);
89247
+ // Apply issue suppression filtering
89248
+ const suppressionEnabled = config.suppressionEnabled !== false;
89249
+ const issueFilter = new issue_filter_1.IssueFilter(suppressionEnabled);
89250
+ const filteredIssues = issueFilter.filterIssues(result.issues || [], process.cwd());
89251
+ return {
89252
+ ...result,
89253
+ issues: filteredIssues,
89254
+ };
89047
89255
  }
89048
89256
  catch (error) {
89049
89257
  return this.createErrorResult(url, error);
@@ -89283,9 +89491,19 @@ class PRReviewer {
89283
89491
  prNumber,
89284
89492
  commitSha: options.commitSha,
89285
89493
  });
89286
- const commentId = options.commentId
89287
- ? `${options.commentId}-${groupName}`
89288
- : `visor-review-${groupName}`;
89494
+ // Generate comment ID - use unique ID for "dynamic" group
89495
+ let commentId;
89496
+ if (groupName === 'dynamic') {
89497
+ // Dynamic group creates a new comment each time with timestamp-based ID
89498
+ const timestamp = Date.now();
89499
+ commentId = `visor-dynamic-${timestamp}`;
89500
+ }
89501
+ else {
89502
+ // Regular groups use static IDs that get updated
89503
+ commentId = options.commentId
89504
+ ? `${options.commentId}-${groupName}`
89505
+ : `visor-review-${groupName}`;
89506
+ }
89289
89507
  await this.commentManager.updateOrCreateComment(owner, repo, prNumber, comment, {
89290
89508
  commentId,
89291
89509
  triggeredBy: options.triggeredBy || 'unknown',
@@ -89731,15 +89949,31 @@ class ConfigLoader {
89731
89949
  * Load bundled default configuration
89732
89950
  */
89733
89951
  async fetchDefaultConfig() {
89734
- // First try to find the bundled default config
89735
- let packageRoot = this.findPackageRoot();
89736
- if (!packageRoot) {
89737
- // Fallback: try relative to current file
89738
- packageRoot = path.resolve(__dirname, '..', '..');
89739
- }
89740
- const defaultConfigPath = path.join(packageRoot, 'defaults', '.visor.yaml');
89741
- if (fs.existsSync(defaultConfigPath)) {
89742
- console.log(`📦 Loading bundled default configuration`);
89952
+ // Try different paths to find the bundled default config
89953
+ const possiblePaths = [
89954
+ // When running as GitHub Action (bundled in dist/)
89955
+ path.join(__dirname, 'defaults', '.visor.yaml'),
89956
+ // When running from source
89957
+ path.join(__dirname, '..', '..', 'defaults', '.visor.yaml'),
89958
+ // Try via package root
89959
+ this.findPackageRoot() ? path.join(this.findPackageRoot(), 'defaults', '.visor.yaml') : '',
89960
+ // GitHub Action environment variable
89961
+ process.env.GITHUB_ACTION_PATH
89962
+ ? path.join(process.env.GITHUB_ACTION_PATH, 'defaults', '.visor.yaml')
89963
+ : '',
89964
+ process.env.GITHUB_ACTION_PATH
89965
+ ? path.join(process.env.GITHUB_ACTION_PATH, 'dist', 'defaults', '.visor.yaml')
89966
+ : '',
89967
+ ].filter(p => p); // Remove empty paths
89968
+ let defaultConfigPath;
89969
+ for (const possiblePath of possiblePaths) {
89970
+ if (fs.existsSync(possiblePath)) {
89971
+ defaultConfigPath = possiblePath;
89972
+ break;
89973
+ }
89974
+ }
89975
+ if (defaultConfigPath && fs.existsSync(defaultConfigPath)) {
89976
+ console.log(`📦 Loading bundled default configuration from ${defaultConfigPath}`);
89743
89977
  const content = fs.readFileSync(defaultConfigPath, 'utf8');
89744
89978
  const config = yaml.load(content);
89745
89979
  if (!config || typeof config !== 'object') {
@@ -0,0 +1,28 @@
1
+ import { ReviewIssue } from './reviewer';
2
+ /**
3
+ * Filter for suppressing Visor issues based on special comments in code
4
+ */
5
+ export declare class IssueFilter {
6
+ private fileCache;
7
+ private suppressionEnabled;
8
+ constructor(suppressionEnabled?: boolean);
9
+ /**
10
+ * Filter out issues that have suppression comments
11
+ * @param issues Array of issues to filter
12
+ * @param workingDir Working directory for resolving file paths
13
+ * @returns Filtered array of issues with suppressed ones removed
14
+ */
15
+ filterIssues(issues: ReviewIssue[], workingDir?: string): ReviewIssue[];
16
+ /**
17
+ * Check if an issue should be suppressed based on comments in the file
18
+ */
19
+ private shouldSuppressIssue;
20
+ /**
21
+ * Get file lines from cache or read from disk
22
+ */
23
+ private getFileLines;
24
+ /**
25
+ * Clear the file cache (useful for testing or long-running processes)
26
+ */
27
+ clearCache(): void;
28
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/issue-filter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,kBAAkB,CAAU;gBAExB,kBAAkB,GAAE,OAAc;IAI9C;;;;;OAKG;IACI,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,UAAU,GAAE,MAAsB,GAAG,WAAW,EAAE;IA6B7F;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+B3B;;OAEG;IACH,OAAO,CAAC,YAAY;IA+BpB;;OAEG;IACI,UAAU,IAAI,IAAI;CAG1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-check-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/ai-check-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAO5C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa;IAChD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAS;;IAQ7B,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAoCvD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;YACW,aAAa;IAmB3B;;OAEG;YACW,UAAU;IAsExB;;OAEG;YACW,kBAAkB;IA0ChC;;OAEG;YACW,oBAAoB;IA+J5B,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC/C,WAAW,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GACjE,OAAO,CAAC,aAAa,CAAC;YAiBX,iBAAiB;IAmH/B,sBAAsB,IAAI,MAAM,EAAE;IAiB5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC,eAAe,IAAI,MAAM,EAAE;CAO5B"}
1
+ {"version":3,"file":"ai-check-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/ai-check-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ5C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa;IAChD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAS;;IAQ7B,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAoCvD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;YACW,aAAa;IAmB3B;;OAEG;YACW,UAAU;IAsExB;;OAEG;YACW,kBAAkB;IA0ChC;;OAEG;YACW,oBAAoB;IA+J5B,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC/C,WAAW,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GACjE,OAAO,CAAC,aAAa,CAAC;YAiBX,iBAAiB;IA+H/B,sBAAsB,IAAI,MAAM,EAAE;IAiB5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC,eAAe,IAAI,MAAM,EAAE;CAO5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-check-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/tool-check-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAA8B,MAAM,aAAa,CAAC;AAIxE;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAO,CAAC,MAAM,CAAS;;IASvB,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBjD,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC/C,YAAY,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAClE,OAAO,CAAC,aAAa,CAAC;YA8DX,cAAc;IAwC5B,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,mBAAmB;IAe3B,sBAAsB,IAAI,MAAM,EAAE;IAI5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAMrC,eAAe,IAAI,MAAM,EAAE;CAO5B"}
1
+ {"version":3,"file":"tool-check-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/tool-check-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAA8B,MAAM,aAAa,CAAC;AAKxE;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAO,CAAC,MAAM,CAAS;;IASvB,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBjD,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC/C,YAAY,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAClE,OAAO,CAAC,aAAa,CAAC;YAmEX,cAAc;IAwC5B,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,mBAAmB;IAe3B,sBAAsB,IAAI,MAAM,EAAE;IAI5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAMrC,eAAe,IAAI,MAAM,EAAE;CAO5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"webhook-check-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/webhook-check-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAe,MAAM,aAAa,CAAC;AAEzD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BjD,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC/C,YAAY,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAClE,OAAO,CAAC,aAAa,CAAC;YAqCX,kBAAkB;IA4ChC,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;IASxB,sBAAsB,IAAI,MAAM,EAAE;IAI5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC,eAAe,IAAI,MAAM,EAAE;CAQ5B"}
1
+ {"version":3,"file":"webhook-check-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/webhook-check-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAe,MAAM,aAAa,CAAC;AAGzD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BjD,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC/C,YAAY,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAClE,OAAO,CAAC,aAAa,CAAC;YA+CX,kBAAkB;IA4ChC,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;IASxB,sBAAsB,IAAI,MAAM,EAAE;IAI5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC,eAAe,IAAI,MAAM,EAAE;CAQ5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/reviewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/reviewer.ts"],"names":[],"mappings":"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"}
@@ -321,6 +321,8 @@ export interface OutputConfig {
321
321
  file_comment?: FileCommentOutput;
322
322
  /** GitHub check runs configuration (optional) */
323
323
  github_checks?: GitHubCheckOutput;
324
+ /** Whether to enable issue suppression via visor-disable comments (default: true) */
325
+ suppressionEnabled?: boolean;
324
326
  }
325
327
  /**
326
328
  * Main Visor configuration
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/types/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/utils/config-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAWD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2GAA2G;IAC3G,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,YAAY;IAIX,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,aAAa,CAA0B;gBAE3B,OAAO,GAAE,mBAAwB;IAYrD;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACU,WAAW,CACtB,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,MAAU,GACvB,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAyChC;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;YACW,gBAAgB;IA2C9B;;OAEG;YACW,iBAAiB;IAkE/B;;OAEG;YACW,kBAAkB;IA2ChC;;OAEG;YACW,cAAc;IAiC5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACI,UAAU,IAAI,IAAI;IAIzB;;OAEG;IACI,KAAK,IAAI,IAAI;CAIrB"}
1
+ {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/utils/config-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAWD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2GAA2G;IAC3G,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,YAAY;IAIX,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,aAAa,CAA0B;gBAE3B,OAAO,GAAE,mBAAwB;IAYrD;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACU,WAAW,CACtB,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,MAAU,GACvB,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAyChC;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;YACW,gBAAgB;IA2C9B;;OAEG;YACW,iBAAiB;IAkE/B;;OAEG;YACW,kBAAkB;IA0DhC;;OAEG;YACW,cAAc;IAiC5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACI,UAAU,IAAI,IAAI;IAIzB;;OAEG;IACI,KAAK,IAAI,IAAI;CAIrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@probelabs/visor",
3
- "version": "0.1.34",
3
+ "version": "0.1.35",
4
4
  "main": "dist/index.js",
5
5
  "bin": {
6
6
  "visor": "./dist/index.js"