@probelabs/visor 0.1.97 → 0.1.100
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 +16 -15
- package/action.yml +7 -2
- package/defaults/.visor.yaml +7 -6
- package/dist/action-cli-bridge.d.ts +1 -0
- package/dist/action-cli-bridge.d.ts.map +1 -1
- package/dist/ai-review-service.d.ts.map +1 -1
- package/dist/check-execution-engine.d.ts +8 -2
- package/dist/check-execution-engine.d.ts.map +1 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/debug-visualizer/debug-span-exporter.d.ts +47 -0
- package/dist/debug-visualizer/debug-span-exporter.d.ts.map +1 -0
- package/dist/debug-visualizer/trace-reader.d.ts +117 -0
- package/dist/debug-visualizer/trace-reader.d.ts.map +1 -0
- package/dist/debug-visualizer/ui/index.html +2568 -0
- package/dist/debug-visualizer/ws-server.d.ts +99 -0
- package/dist/debug-visualizer/ws-server.d.ts.map +1 -0
- package/dist/defaults/.visor.yaml +7 -6
- package/dist/failure-condition-evaluator.d.ts.map +1 -1
- package/dist/generated/config-schema.d.ts +7 -3
- package/dist/generated/config-schema.d.ts.map +1 -1
- package/dist/generated/config-schema.json +7 -3
- package/dist/git-repository-analyzer.d.ts +1 -7
- package/dist/git-repository-analyzer.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17668 -1760
- package/dist/liquid-extensions.d.ts +1 -1
- package/dist/liquid-extensions.d.ts.map +1 -1
- package/dist/output/code-review/schema.json +2 -2
- package/dist/output/traces/run-2025-10-22T10-40-34-055Z.ndjson +218 -0
- package/dist/pr-analyzer.d.ts +2 -1
- package/dist/pr-analyzer.d.ts.map +1 -1
- package/dist/providers/ai-check-provider.d.ts.map +1 -1
- package/dist/providers/check-provider-registry.d.ts.map +1 -1
- package/dist/providers/check-provider.interface.d.ts +17 -6
- package/dist/providers/check-provider.interface.d.ts.map +1 -1
- package/dist/providers/command-check-provider.d.ts.map +1 -1
- package/dist/providers/github-ops-provider.d.ts.map +1 -1
- package/dist/providers/http-check-provider.d.ts.map +1 -1
- package/dist/providers/human-input-check-provider.d.ts +78 -0
- package/dist/providers/human-input-check-provider.d.ts.map +1 -0
- package/dist/providers/index.d.ts +2 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/mcp-check-provider.d.ts.map +1 -1
- package/dist/providers/memory-check-provider.d.ts.map +1 -1
- package/dist/sdk/check-execution-engine-F3662LY7.mjs +11 -0
- package/dist/sdk/{chunk-I3GQJIR7.mjs → chunk-B5QBV2QJ.mjs} +2 -2
- package/dist/sdk/chunk-B5QBV2QJ.mjs.map +1 -0
- package/dist/sdk/{chunk-IG3BFIIN.mjs → chunk-FVS5CJ5S.mjs} +30 -1
- package/dist/sdk/chunk-FVS5CJ5S.mjs.map +1 -0
- package/dist/sdk/{chunk-YXOWIDEF.mjs → chunk-TUTOLSFV.mjs} +15 -3
- package/dist/sdk/chunk-TUTOLSFV.mjs.map +1 -0
- package/dist/sdk/{chunk-4VK6WTYU.mjs → chunk-X2JKUOE5.mjs} +1375 -570
- package/dist/sdk/chunk-X2JKUOE5.mjs.map +1 -0
- package/dist/sdk/{liquid-extensions-GMEGEGC3.mjs → liquid-extensions-KVL4MKRH.mjs} +2 -2
- package/dist/sdk/{mermaid-telemetry-4DUEYCLE.mjs → mermaid-telemetry-FBF6D35S.mjs} +2 -2
- package/dist/sdk/sdk.d.mts +62 -4
- package/dist/sdk/sdk.d.ts +62 -4
- package/dist/sdk/sdk.js +1658 -723
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +60 -15
- package/dist/sdk/sdk.mjs.map +1 -1
- package/dist/sdk/{tracer-init-RJGAIOBP.mjs → tracer-init-WC75N5NW.mjs} +2 -2
- package/dist/sdk.d.ts +5 -2
- package/dist/sdk.d.ts.map +1 -1
- package/dist/telemetry/file-span-exporter.d.ts.map +1 -1
- package/dist/telemetry/opentelemetry.d.ts +2 -0
- package/dist/telemetry/opentelemetry.d.ts.map +1 -1
- package/dist/telemetry/state-capture.d.ts +53 -0
- package/dist/telemetry/state-capture.d.ts.map +1 -0
- package/dist/telemetry/trace-helpers.d.ts.map +1 -1
- package/dist/traces/run-2025-10-22T10-40-34-055Z.ndjson +218 -0
- package/dist/types/cli.d.ts +6 -0
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/config.d.ts +44 -3
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/config-loader.d.ts +5 -0
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/file-exclusion.d.ts +50 -0
- package/dist/utils/file-exclusion.d.ts.map +1 -0
- package/dist/utils/interactive-prompt.d.ts +26 -0
- package/dist/utils/interactive-prompt.d.ts.map +1 -0
- package/dist/utils/sandbox.d.ts +26 -0
- package/dist/utils/sandbox.d.ts.map +1 -0
- package/dist/utils/stdin-reader.d.ts +22 -0
- package/dist/utils/stdin-reader.d.ts.map +1 -0
- package/dist/utils/tracer-init.d.ts +0 -5
- package/dist/utils/tracer-init.d.ts.map +1 -1
- package/package.json +8 -4
- package/dist/output/traces/run-2025-10-19T14-24-36-341Z.ndjson +0 -40
- package/dist/output/traces/run-2025-10-19T14-24-48-674Z.ndjson +0 -40
- package/dist/output/traces/run-2025-10-19T14-24-49-238Z.ndjson +0 -40
- package/dist/output/traces/run-2025-10-19T14-24-49-761Z.ndjson +0 -40
- package/dist/output/traces/run-2025-10-19T14-24-50-279Z.ndjson +0 -12
- package/dist/sdk/check-execution-engine-S7BFPVWA.mjs +0 -11
- package/dist/sdk/chunk-4VK6WTYU.mjs.map +0 -1
- package/dist/sdk/chunk-I3GQJIR7.mjs.map +0 -1
- package/dist/sdk/chunk-IG3BFIIN.mjs.map +0 -1
- package/dist/sdk/chunk-YXOWIDEF.mjs.map +0 -1
- package/dist/traces/run-2025-10-19T14-24-36-341Z.ndjson +0 -40
- package/dist/traces/run-2025-10-19T14-24-48-674Z.ndjson +0 -40
- package/dist/traces/run-2025-10-19T14-24-49-238Z.ndjson +0 -40
- package/dist/traces/run-2025-10-19T14-24-49-761Z.ndjson +0 -40
- package/dist/traces/run-2025-10-19T14-24-50-279Z.ndjson +0 -12
- /package/dist/sdk/{check-execution-engine-S7BFPVWA.mjs.map → check-execution-engine-F3662LY7.mjs.map} +0 -0
- /package/dist/sdk/{liquid-extensions-GMEGEGC3.mjs.map → liquid-extensions-KVL4MKRH.mjs.map} +0 -0
- /package/dist/sdk/{mermaid-telemetry-4DUEYCLE.mjs.map → mermaid-telemetry-FBF6D35S.mjs.map} +0 -0
- /package/dist/sdk/{tracer-init-RJGAIOBP.mjs.map → tracer-init-WC75N5NW.mjs.map} +0 -0
package/dist/sdk/sdk.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CheckExecutionEngine
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-X2JKUOE5.mjs";
|
|
4
|
+
import "./chunk-TUTOLSFV.mjs";
|
|
5
5
|
import {
|
|
6
6
|
init_logger,
|
|
7
7
|
logger
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-B5QBV2QJ.mjs";
|
|
9
|
+
import "./chunk-FVS5CJ5S.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", "
|
|
116
|
+
required: ["version", "output"],
|
|
113
117
|
additionalProperties: false,
|
|
114
118
|
description: "Main Visor configuration",
|
|
115
119
|
patternProperties: {
|
|
@@ -393,7 +397,8 @@ var init_config_schema = __esm({
|
|
|
393
397
|
"memory",
|
|
394
398
|
"github",
|
|
395
399
|
"claude-code",
|
|
396
|
-
"mcp"
|
|
400
|
+
"mcp",
|
|
401
|
+
"human-input"
|
|
397
402
|
],
|
|
398
403
|
description: "Valid check types in configuration"
|
|
399
404
|
},
|
|
@@ -1296,10 +1301,11 @@ var ConfigLoader = class {
|
|
|
1296
1301
|
if (defaultConfigPath && fs.existsSync(defaultConfigPath)) {
|
|
1297
1302
|
console.error(`\u{1F4E6} Loading bundled default configuration from ${defaultConfigPath}`);
|
|
1298
1303
|
const content = fs.readFileSync(defaultConfigPath, "utf8");
|
|
1299
|
-
|
|
1304
|
+
let config = yaml.load(content);
|
|
1300
1305
|
if (!config || typeof config !== "object") {
|
|
1301
1306
|
throw new Error("Invalid default configuration");
|
|
1302
1307
|
}
|
|
1308
|
+
config = this.normalizeStepsAndChecks(config);
|
|
1303
1309
|
if (config.extends) {
|
|
1304
1310
|
return await this.processExtends(config);
|
|
1305
1311
|
}
|
|
@@ -1430,6 +1436,20 @@ var ConfigLoader = class {
|
|
|
1430
1436
|
this.loadedConfigs.clear();
|
|
1431
1437
|
this.clearCache();
|
|
1432
1438
|
}
|
|
1439
|
+
/**
|
|
1440
|
+
* Normalize 'checks' and 'steps' keys for backward compatibility
|
|
1441
|
+
* Ensures both keys are present and contain the same data
|
|
1442
|
+
*/
|
|
1443
|
+
normalizeStepsAndChecks(config) {
|
|
1444
|
+
if (config.steps && config.checks) {
|
|
1445
|
+
config.checks = config.steps;
|
|
1446
|
+
} else if (config.steps && !config.checks) {
|
|
1447
|
+
config.checks = config.steps;
|
|
1448
|
+
} else if (config.checks && !config.steps) {
|
|
1449
|
+
config.steps = config.checks;
|
|
1450
|
+
}
|
|
1451
|
+
return config;
|
|
1452
|
+
}
|
|
1433
1453
|
};
|
|
1434
1454
|
|
|
1435
1455
|
// src/config.ts
|
|
@@ -1449,6 +1469,7 @@ var ConfigManager = class {
|
|
|
1449
1469
|
validCheckTypes = [
|
|
1450
1470
|
"ai",
|
|
1451
1471
|
"claude-code",
|
|
1472
|
+
"mcp",
|
|
1452
1473
|
"command",
|
|
1453
1474
|
"http",
|
|
1454
1475
|
"http_input",
|
|
@@ -1457,7 +1478,8 @@ var ConfigManager = class {
|
|
|
1457
1478
|
"noop",
|
|
1458
1479
|
"log",
|
|
1459
1480
|
"memory",
|
|
1460
|
-
"github"
|
|
1481
|
+
"github",
|
|
1482
|
+
"human-input"
|
|
1461
1483
|
];
|
|
1462
1484
|
validEventTriggers = [...VALID_EVENT_TRIGGERS];
|
|
1463
1485
|
validOutputFormats = ["table", "json", "markdown", "sarif"];
|
|
@@ -1503,6 +1525,7 @@ var ConfigManager = class {
|
|
|
1503
1525
|
parsedConfig = merger.merge(mergedConfig, configWithoutExtends);
|
|
1504
1526
|
parsedConfig = merger.removeDisabledChecks(parsedConfig);
|
|
1505
1527
|
}
|
|
1528
|
+
parsedConfig = this.normalizeStepsAndChecks(parsedConfig);
|
|
1506
1529
|
if (validate) {
|
|
1507
1530
|
this.validateConfig(parsedConfig);
|
|
1508
1531
|
}
|
|
@@ -1569,7 +1592,9 @@ var ConfigManager = class {
|
|
|
1569
1592
|
async getDefaultConfig() {
|
|
1570
1593
|
return {
|
|
1571
1594
|
version: "1.0",
|
|
1595
|
+
steps: {},
|
|
1572
1596
|
checks: {},
|
|
1597
|
+
// Keep for backward compatibility
|
|
1573
1598
|
max_parallelism: 3,
|
|
1574
1599
|
output: {
|
|
1575
1600
|
pr_comment: {
|
|
@@ -1612,10 +1637,11 @@ var ConfigManager = class {
|
|
|
1612
1637
|
if (bundledConfigPath && fs2.existsSync(bundledConfigPath)) {
|
|
1613
1638
|
console.error(`\u{1F4E6} Loading bundled default configuration from ${bundledConfigPath}`);
|
|
1614
1639
|
const configContent = fs2.readFileSync(bundledConfigPath, "utf8");
|
|
1615
|
-
|
|
1640
|
+
let parsedConfig = yaml2.load(configContent);
|
|
1616
1641
|
if (!parsedConfig || typeof parsedConfig !== "object") {
|
|
1617
1642
|
return null;
|
|
1618
1643
|
}
|
|
1644
|
+
parsedConfig = this.normalizeStepsAndChecks(parsedConfig);
|
|
1619
1645
|
this.validateConfig(parsedConfig);
|
|
1620
1646
|
return this.mergeWithDefaults(parsedConfig);
|
|
1621
1647
|
}
|
|
@@ -1647,6 +1673,20 @@ var ConfigManager = class {
|
|
|
1647
1673
|
}
|
|
1648
1674
|
return null;
|
|
1649
1675
|
}
|
|
1676
|
+
/**
|
|
1677
|
+
* Normalize 'checks' and 'steps' keys for backward compatibility
|
|
1678
|
+
* Ensures both keys are present and contain the same data
|
|
1679
|
+
*/
|
|
1680
|
+
normalizeStepsAndChecks(config) {
|
|
1681
|
+
if (config.steps && config.checks) {
|
|
1682
|
+
config.checks = config.steps;
|
|
1683
|
+
} else if (config.steps && !config.checks) {
|
|
1684
|
+
config.checks = config.steps;
|
|
1685
|
+
} else if (config.checks && !config.steps) {
|
|
1686
|
+
config.steps = config.checks;
|
|
1687
|
+
}
|
|
1688
|
+
return config;
|
|
1689
|
+
}
|
|
1650
1690
|
/**
|
|
1651
1691
|
* Merge configuration with CLI options
|
|
1652
1692
|
*/
|
|
@@ -1702,13 +1742,15 @@ var ConfigManager = class {
|
|
|
1702
1742
|
message: "Missing required field: version"
|
|
1703
1743
|
});
|
|
1704
1744
|
}
|
|
1705
|
-
if (!config.checks) {
|
|
1745
|
+
if (!config.checks && !config.steps) {
|
|
1706
1746
|
errors.push({
|
|
1707
|
-
field: "checks",
|
|
1708
|
-
message:
|
|
1747
|
+
field: "checks/steps",
|
|
1748
|
+
message: 'Missing required field: either "checks" or "steps" must be defined. "steps" is recommended for new configurations.'
|
|
1709
1749
|
});
|
|
1710
|
-
}
|
|
1711
|
-
|
|
1750
|
+
}
|
|
1751
|
+
const checksToValidate = config.checks || config.steps;
|
|
1752
|
+
if (checksToValidate) {
|
|
1753
|
+
for (const [checkName, checkConfig] of Object.entries(checksToValidate)) {
|
|
1712
1754
|
if (!checkConfig.type) {
|
|
1713
1755
|
checkConfig.type = "ai";
|
|
1714
1756
|
}
|
|
@@ -2317,6 +2359,9 @@ async function runChecks(opts = {}) {
|
|
|
2317
2359
|
}
|
|
2318
2360
|
const checks = opts.checks && opts.checks.length > 0 ? resolveChecks(opts.checks, config) : Object.keys(config.checks || {});
|
|
2319
2361
|
const engine = new CheckExecutionEngine(opts.cwd);
|
|
2362
|
+
if (opts.executionContext) {
|
|
2363
|
+
engine.setExecutionContext(opts.executionContext);
|
|
2364
|
+
}
|
|
2320
2365
|
const result = await engine.executeChecks({
|
|
2321
2366
|
checks,
|
|
2322
2367
|
workingDirectory: opts.cwd,
|