@probelabs/visor 0.1.96 → 0.1.98

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 (88) hide show
  1. package/README.md +20 -19
  2. package/defaults/.visor.yaml +3 -2
  3. package/dist/{168.index.js → 136.index.js} +5 -5
  4. package/dist/{272.index.js → 146.index.js} +5 -5
  5. package/dist/{13.index.js → 160.index.js} +5 -5
  6. package/dist/{421.index.js → 179.index.js} +3 -3
  7. package/dist/{85.index.js → 191.index.js} +5 -5
  8. package/dist/{544.index.js → 384.index.js} +3 -3
  9. package/dist/{861.index.js → 405.index.js} +3 -3
  10. package/dist/{320.index.js → 42.index.js} +3 -3
  11. package/dist/448.index.js +48 -0
  12. package/dist/{878.index.js → 491.index.js} +5 -5
  13. package/dist/663.index.js +321 -0
  14. package/dist/69.index.js +38 -0
  15. package/dist/{54.index.js → 760.index.js} +5 -5
  16. package/dist/80.index.js +263 -0
  17. package/dist/886.index.js +81 -0
  18. package/dist/917.index.js +82 -0
  19. package/dist/955.index.js +82 -0
  20. package/dist/ai-review-service.d.ts +2 -3
  21. package/dist/ai-review-service.d.ts.map +1 -1
  22. package/dist/check-execution-engine.d.ts.map +1 -1
  23. package/dist/cli.d.ts.map +1 -1
  24. package/dist/config.d.ts +5 -0
  25. package/dist/config.d.ts.map +1 -1
  26. package/dist/defaults/.visor.yaml +3 -2
  27. package/dist/generated/config-schema.d.ts +24 -3
  28. package/dist/generated/config-schema.d.ts.map +1 -1
  29. package/dist/generated/config-schema.json +28 -3
  30. package/dist/index.js +198171 -161819
  31. package/dist/proto/protoc-gen-validate/LICENSE +202 -0
  32. package/dist/proto/protoc-gen-validate/validate/validate.proto +797 -0
  33. package/dist/proto/xds/LICENSE +201 -0
  34. package/dist/proto/xds/xds/data/orca/v3/orca_load_report.proto +58 -0
  35. package/dist/proto/xds/xds/service/orca/v3/orca.proto +36 -0
  36. package/dist/protoc-gen-validate/LICENSE +202 -0
  37. package/dist/protoc-gen-validate/validate/validate.proto +797 -0
  38. package/dist/providers/check-provider-registry.d.ts.map +1 -1
  39. package/dist/providers/index.d.ts +1 -0
  40. package/dist/providers/index.d.ts.map +1 -1
  41. package/dist/providers/mcp-check-provider.d.ts +102 -0
  42. package/dist/providers/mcp-check-provider.d.ts.map +1 -0
  43. package/dist/sdk/check-execution-engine-W5FLIWZL.mjs +11 -0
  44. package/dist/sdk/chunk-IG3BFIIN.mjs +174 -0
  45. package/dist/sdk/chunk-IG3BFIIN.mjs.map +1 -0
  46. package/dist/sdk/{chunk-Q4S5A5TO.mjs → chunk-POYXI3MQ.mjs} +610 -21
  47. package/dist/sdk/chunk-POYXI3MQ.mjs.map +1 -0
  48. package/dist/sdk/chunk-YXOWIDEF.mjs +60 -0
  49. package/dist/sdk/chunk-YXOWIDEF.mjs.map +1 -0
  50. package/dist/sdk/{mermaid-telemetry-LZGDD35I.mjs → mermaid-telemetry-4DUEYCLE.mjs} +2 -2
  51. package/dist/sdk/sdk.d.mts +16 -3
  52. package/dist/sdk/sdk.d.ts +16 -3
  53. package/dist/sdk/sdk.js +994 -1513
  54. package/dist/sdk/sdk.js.map +1 -1
  55. package/dist/sdk/sdk.mjs +70 -13
  56. package/dist/sdk/sdk.mjs.map +1 -1
  57. package/dist/sdk/{tracer-init-O7RLXMJ3.mjs → tracer-init-RJGAIOBP.mjs} +2 -2
  58. package/dist/session-registry.d.ts +2 -3
  59. package/dist/session-registry.d.ts.map +1 -1
  60. package/dist/traces/run-2025-10-19T19-05-29-328Z.ndjson +40 -0
  61. package/dist/traces/run-2025-10-19T19-05-42-253Z.ndjson +40 -0
  62. package/dist/traces/run-2025-10-19T19-05-42-805Z.ndjson +40 -0
  63. package/dist/traces/run-2025-10-19T19-05-43-323Z.ndjson +40 -0
  64. package/dist/traces/run-2025-10-19T19-05-43-841Z.ndjson +12 -0
  65. package/dist/types/config.d.ts +16 -3
  66. package/dist/types/config.d.ts.map +1 -1
  67. package/dist/utils/config-loader.d.ts +5 -0
  68. package/dist/utils/config-loader.d.ts.map +1 -1
  69. package/dist/utils/tracer-init.d.ts +3 -4
  70. package/dist/utils/tracer-init.d.ts.map +1 -1
  71. package/dist/xds/LICENSE +201 -0
  72. package/dist/xds/xds/data/orca/v3/orca_load_report.proto +58 -0
  73. package/dist/xds/xds/service/orca/v3/orca.proto +36 -0
  74. package/package.json +15 -8
  75. package/dist/sdk/check-execution-engine-NMPXJ7FQ.mjs +0 -11
  76. package/dist/sdk/chunk-KVHVCGY6.mjs +0 -103
  77. package/dist/sdk/chunk-KVHVCGY6.mjs.map +0 -1
  78. package/dist/sdk/chunk-Q4S5A5TO.mjs.map +0 -1
  79. package/dist/sdk/chunk-TWJKAYT6.mjs +0 -1124
  80. package/dist/sdk/chunk-TWJKAYT6.mjs.map +0 -1
  81. /package/dist/{traces/run-2025-10-18T20-24-27-886Z.ndjson → output/traces/run-2025-10-19T19-05-29-328Z.ndjson} +0 -0
  82. /package/dist/{traces/run-2025-10-18T20-24-38-817Z.ndjson → output/traces/run-2025-10-19T19-05-42-253Z.ndjson} +0 -0
  83. /package/dist/{traces/run-2025-10-18T20-24-39-361Z.ndjson → output/traces/run-2025-10-19T19-05-42-805Z.ndjson} +0 -0
  84. /package/dist/{traces/run-2025-10-18T20-24-39-852Z.ndjson → output/traces/run-2025-10-19T19-05-43-323Z.ndjson} +0 -0
  85. /package/dist/{traces/run-2025-10-18T20-24-40-335Z.ndjson → output/traces/run-2025-10-19T19-05-43-841Z.ndjson} +0 -0
  86. /package/dist/sdk/{check-execution-engine-NMPXJ7FQ.mjs.map → check-execution-engine-W5FLIWZL.mjs.map} +0 -0
  87. /package/dist/sdk/{mermaid-telemetry-LZGDD35I.mjs.map → mermaid-telemetry-4DUEYCLE.mjs.map} +0 -0
  88. /package/dist/sdk/{tracer-init-O7RLXMJ3.mjs.map → tracer-init-RJGAIOBP.mjs.map} +0 -0
package/dist/sdk/sdk.mjs CHANGED
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  CheckExecutionEngine
3
- } from "./chunk-Q4S5A5TO.mjs";
4
- import "./chunk-KVHVCGY6.mjs";
3
+ } from "./chunk-POYXI3MQ.mjs";
4
+ import "./chunk-YXOWIDEF.mjs";
5
5
  import {
6
6
  init_logger,
7
7
  logger
8
8
  } from "./chunk-I3GQJIR7.mjs";
9
- import "./chunk-TWJKAYT6.mjs";
9
+ import "./chunk-IG3BFIIN.mjs";
10
10
  import {
11
11
  ConfigMerger
12
12
  } from "./chunk-U5D2LY66.mjs";
@@ -52,9 +52,13 @@ var init_config_schema = __esm({
52
52
  ],
53
53
  description: 'Extends from other configurations - can be file path, HTTP(S) URL, or "default"'
54
54
  },
55
+ steps: {
56
+ $ref: "#/definitions/Record%3Cstring%2CCheckConfig%3E",
57
+ description: "Step configurations (recommended)"
58
+ },
55
59
  checks: {
56
60
  $ref: "#/definitions/Record%3Cstring%2CCheckConfig%3E",
57
- description: "Check configurations"
61
+ description: "Check configurations (legacy, use 'steps' instead) - always populated after normalization"
58
62
  },
59
63
  output: {
60
64
  $ref: "#/definitions/OutputConfig",
@@ -109,7 +113,7 @@ var init_config_schema = __esm({
109
113
  description: "Optional routing defaults for retry/goto/run policies"
110
114
  }
111
115
  },
112
- required: ["version", "checks", "output"],
116
+ required: ["version", "output"],
113
117
  additionalProperties: false,
114
118
  description: "Main Visor configuration",
115
119
  patternProperties: {
@@ -355,6 +359,23 @@ var init_config_schema = __esm({
355
359
  }
356
360
  ],
357
361
  description: "Values for GitHub operations (can be array or single value)"
362
+ },
363
+ transport: {
364
+ type: "string",
365
+ enum: ["stdio", "sse", "http"],
366
+ description: "Transport type for MCP: stdio (default), sse (legacy), or http (streamable HTTP)"
367
+ },
368
+ methodArgs: {
369
+ $ref: "#/definitions/Record%3Cstring%2Cunknown%3E",
370
+ description: "Arguments to pass to the MCP method (supports Liquid templates)"
371
+ },
372
+ argsTransform: {
373
+ type: "string",
374
+ description: "Transform template for method arguments (Liquid)"
375
+ },
376
+ sessionId: {
377
+ type: "string",
378
+ description: "Session ID for HTTP transport (optional, server may generate one)"
358
379
  }
359
380
  },
360
381
  additionalProperties: false,
@@ -375,7 +396,8 @@ var init_config_schema = __esm({
375
396
  "log",
376
397
  "memory",
377
398
  "github",
378
- "claude-code"
399
+ "claude-code",
400
+ "mcp"
379
401
  ],
380
402
  description: "Valid check types in configuration"
381
403
  },
@@ -1278,10 +1300,11 @@ var ConfigLoader = class {
1278
1300
  if (defaultConfigPath && fs.existsSync(defaultConfigPath)) {
1279
1301
  console.error(`\u{1F4E6} Loading bundled default configuration from ${defaultConfigPath}`);
1280
1302
  const content = fs.readFileSync(defaultConfigPath, "utf8");
1281
- const config = yaml.load(content);
1303
+ let config = yaml.load(content);
1282
1304
  if (!config || typeof config !== "object") {
1283
1305
  throw new Error("Invalid default configuration");
1284
1306
  }
1307
+ config = this.normalizeStepsAndChecks(config);
1285
1308
  if (config.extends) {
1286
1309
  return await this.processExtends(config);
1287
1310
  }
@@ -1412,6 +1435,20 @@ var ConfigLoader = class {
1412
1435
  this.loadedConfigs.clear();
1413
1436
  this.clearCache();
1414
1437
  }
1438
+ /**
1439
+ * Normalize 'checks' and 'steps' keys for backward compatibility
1440
+ * Ensures both keys are present and contain the same data
1441
+ */
1442
+ normalizeStepsAndChecks(config) {
1443
+ if (config.steps && config.checks) {
1444
+ config.checks = config.steps;
1445
+ } else if (config.steps && !config.checks) {
1446
+ config.checks = config.steps;
1447
+ } else if (config.checks && !config.steps) {
1448
+ config.steps = config.checks;
1449
+ }
1450
+ return config;
1451
+ }
1415
1452
  };
1416
1453
 
1417
1454
  // src/config.ts
@@ -1485,6 +1522,7 @@ var ConfigManager = class {
1485
1522
  parsedConfig = merger.merge(mergedConfig, configWithoutExtends);
1486
1523
  parsedConfig = merger.removeDisabledChecks(parsedConfig);
1487
1524
  }
1525
+ parsedConfig = this.normalizeStepsAndChecks(parsedConfig);
1488
1526
  if (validate) {
1489
1527
  this.validateConfig(parsedConfig);
1490
1528
  }
@@ -1551,7 +1589,9 @@ var ConfigManager = class {
1551
1589
  async getDefaultConfig() {
1552
1590
  return {
1553
1591
  version: "1.0",
1592
+ steps: {},
1554
1593
  checks: {},
1594
+ // Keep for backward compatibility
1555
1595
  max_parallelism: 3,
1556
1596
  output: {
1557
1597
  pr_comment: {
@@ -1594,10 +1634,11 @@ var ConfigManager = class {
1594
1634
  if (bundledConfigPath && fs2.existsSync(bundledConfigPath)) {
1595
1635
  console.error(`\u{1F4E6} Loading bundled default configuration from ${bundledConfigPath}`);
1596
1636
  const configContent = fs2.readFileSync(bundledConfigPath, "utf8");
1597
- const parsedConfig = yaml2.load(configContent);
1637
+ let parsedConfig = yaml2.load(configContent);
1598
1638
  if (!parsedConfig || typeof parsedConfig !== "object") {
1599
1639
  return null;
1600
1640
  }
1641
+ parsedConfig = this.normalizeStepsAndChecks(parsedConfig);
1601
1642
  this.validateConfig(parsedConfig);
1602
1643
  return this.mergeWithDefaults(parsedConfig);
1603
1644
  }
@@ -1629,6 +1670,20 @@ var ConfigManager = class {
1629
1670
  }
1630
1671
  return null;
1631
1672
  }
1673
+ /**
1674
+ * Normalize 'checks' and 'steps' keys for backward compatibility
1675
+ * Ensures both keys are present and contain the same data
1676
+ */
1677
+ normalizeStepsAndChecks(config) {
1678
+ if (config.steps && config.checks) {
1679
+ config.checks = config.steps;
1680
+ } else if (config.steps && !config.checks) {
1681
+ config.checks = config.steps;
1682
+ } else if (config.checks && !config.steps) {
1683
+ config.steps = config.checks;
1684
+ }
1685
+ return config;
1686
+ }
1632
1687
  /**
1633
1688
  * Merge configuration with CLI options
1634
1689
  */
@@ -1684,13 +1739,15 @@ var ConfigManager = class {
1684
1739
  message: "Missing required field: version"
1685
1740
  });
1686
1741
  }
1687
- if (!config.checks) {
1742
+ if (!config.checks && !config.steps) {
1688
1743
  errors.push({
1689
- field: "checks",
1690
- message: "Missing required field: checks"
1744
+ field: "checks/steps",
1745
+ message: 'Missing required field: either "checks" or "steps" must be defined. "steps" is recommended for new configurations.'
1691
1746
  });
1692
- } else {
1693
- for (const [checkName, checkConfig] of Object.entries(config.checks)) {
1747
+ }
1748
+ const checksToValidate = config.checks || config.steps;
1749
+ if (checksToValidate) {
1750
+ for (const [checkName, checkConfig] of Object.entries(checksToValidate)) {
1694
1751
  if (!checkConfig.type) {
1695
1752
  checkConfig.type = "ai";
1696
1753
  }