@probelabs/visor 0.1.43 → 0.1.44
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 +2 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/index.js +71 -32
- package/dist/providers/command-check-provider.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -366,7 +366,8 @@ Learn more: [docs/http.md](docs/http.md)
|
|
|
366
366
|
|
|
367
367
|
Mix providers (`ai`, `http`, `http_client`, `log`, `command`, `claude-code`) or add your own.
|
|
368
368
|
|
|
369
|
-
|
|
369
|
+
- **Command Provider**: Execute shell commands with templating and security - [docs/command-provider.md](docs/command-provider.md)
|
|
370
|
+
- **Custom Providers**: Build your own providers - [docs/pluggable.md](docs/pluggable.md)
|
|
370
371
|
|
|
371
372
|
## 🎯 GitHub Action Reference
|
|
372
373
|
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAA2B,MAAM,aAAa,CAAC;AAIlE;;GAEG;AACH,qBAAa,GAAG;IACd,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAA4E;IAC/F,OAAO,CAAC,YAAY,CAA0D;;IAO9E;;OAEG;IACH,OAAO,CAAC,YAAY;IAwCpB;;OAEG;IACH,OAAO,CAAC,aAAa,CAEnB;IAEF;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU;IAkI5C;;OAEG;IACH,OAAO,CAAC,eAAe;IAkCvB;;OAEG;IACI,WAAW,IAAI,MAAM;IAsC5B;;OAEG;IACI,UAAU,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAA2B,MAAM,aAAa,CAAC;AAIlE;;GAEG;AACH,qBAAa,GAAG;IACd,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAA4E;IAC/F,OAAO,CAAC,YAAY,CAA0D;;IAO9E;;OAEG;IACH,OAAO,CAAC,YAAY;IAwCpB;;OAEG;IACH,OAAO,CAAC,aAAa,CAEnB;IAEF;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU;IAkI5C;;OAEG;IACH,OAAO,CAAC,eAAe;IAkCvB;;OAEG;IACI,WAAW,IAAI,MAAM;IAsC5B;;OAEG;IACI,UAAU,IAAI,MAAM;IAoC3B;;OAEG;IACI,eAAe,IAAI,MAAM;IAiBhC;;OAEG;IACI,QAAQ,IAAI,IAAI;IAIvB;;OAEG;IACI,WAAW,IAAI,IAAI;CAG3B"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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,CASrB;IACF,OAAO,CAAC,kBAAkB,CASxB;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;IA2FvB;;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;IAoDrD;;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;
|
|
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,CASrB;IACF,OAAO,CAAC,kBAAkB,CASxB;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;IA2FvB;;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;IAoDrD;;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;IAkEtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0J3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6DzB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA6EhC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA6B1B"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
process.env.VISOR_VERSION = '0.1.44';
|
|
2
3
|
/******/ (() => { // webpackBootstrap
|
|
3
4
|
/******/ var __webpack_modules__ = ({
|
|
4
5
|
|
|
@@ -97388,17 +97389,38 @@ class CLI {
|
|
|
97388
97389
|
* Get version from package.json
|
|
97389
97390
|
*/
|
|
97390
97391
|
getVersion() {
|
|
97392
|
+
// First, try environment variable (set during build/publish)
|
|
97393
|
+
if (process.env.VISOR_VERSION) {
|
|
97394
|
+
return process.env.VISOR_VERSION;
|
|
97395
|
+
}
|
|
97391
97396
|
try {
|
|
97392
|
-
|
|
97393
|
-
|
|
97394
|
-
|
|
97395
|
-
|
|
97397
|
+
// Try multiple possible locations for package.json
|
|
97398
|
+
const possiblePaths = [
|
|
97399
|
+
path.join(__dirname, '../../package.json'), // Development
|
|
97400
|
+
path.join(__dirname, '../package.json'), // Alternate bundled
|
|
97401
|
+
path.join(process.cwd(), 'package.json'), // Current directory
|
|
97402
|
+
'/snapshot/visor/package.json', // Vercel pkg snapshot
|
|
97403
|
+
];
|
|
97404
|
+
for (const packageJsonPath of possiblePaths) {
|
|
97405
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
97406
|
+
try {
|
|
97407
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
97408
|
+
// Only use if it's the visor package
|
|
97409
|
+
if (packageJson.name === '@probelabs/visor' && packageJson.version) {
|
|
97410
|
+
return packageJson.version;
|
|
97411
|
+
}
|
|
97412
|
+
}
|
|
97413
|
+
catch {
|
|
97414
|
+
// Try next path
|
|
97415
|
+
}
|
|
97416
|
+
}
|
|
97396
97417
|
}
|
|
97397
97418
|
}
|
|
97398
97419
|
catch {
|
|
97399
|
-
//
|
|
97420
|
+
// Continue to fallback
|
|
97400
97421
|
}
|
|
97401
|
-
|
|
97422
|
+
// Fallback to the actual current version in package.json
|
|
97423
|
+
return '0.1.42';
|
|
97402
97424
|
}
|
|
97403
97425
|
/**
|
|
97404
97426
|
* Get examples text for help
|
|
@@ -97854,10 +97876,7 @@ class ConfigManager {
|
|
|
97854
97876
|
if (!checkConfig.type) {
|
|
97855
97877
|
checkConfig.type = 'ai';
|
|
97856
97878
|
}
|
|
97857
|
-
//
|
|
97858
|
-
if (!checkConfig.on) {
|
|
97859
|
-
checkConfig.on = ['manual'];
|
|
97860
|
-
}
|
|
97879
|
+
// 'on' field is optional - if not specified, check can run on any event
|
|
97861
97880
|
this.validateCheckConfig(checkName, checkConfig, errors);
|
|
97862
97881
|
}
|
|
97863
97882
|
}
|
|
@@ -97959,21 +97978,24 @@ class ConfigManager {
|
|
|
97959
97978
|
});
|
|
97960
97979
|
}
|
|
97961
97980
|
}
|
|
97962
|
-
|
|
97963
|
-
|
|
97964
|
-
|
|
97965
|
-
|
|
97966
|
-
|
|
97967
|
-
|
|
97968
|
-
|
|
97969
|
-
|
|
97970
|
-
|
|
97971
|
-
|
|
97972
|
-
|
|
97973
|
-
|
|
97974
|
-
|
|
97975
|
-
|
|
97976
|
-
|
|
97981
|
+
// 'on' field is optional - if not specified, check can be triggered by any event
|
|
97982
|
+
if (checkConfig.on) {
|
|
97983
|
+
if (!Array.isArray(checkConfig.on)) {
|
|
97984
|
+
errors.push({
|
|
97985
|
+
field: `checks.${checkName}.on`,
|
|
97986
|
+
message: `Invalid check configuration for "${checkName}": 'on' field must be an array`,
|
|
97987
|
+
});
|
|
97988
|
+
}
|
|
97989
|
+
else {
|
|
97990
|
+
// Validate event triggers
|
|
97991
|
+
for (const event of checkConfig.on) {
|
|
97992
|
+
if (!this.validEventTriggers.includes(event)) {
|
|
97993
|
+
errors.push({
|
|
97994
|
+
field: `checks.${checkName}.on`,
|
|
97995
|
+
message: `Invalid event "${event}". Must be one of: ${this.validEventTriggers.join(', ')}`,
|
|
97996
|
+
value: event,
|
|
97997
|
+
});
|
|
97998
|
+
}
|
|
97977
97999
|
}
|
|
97978
98000
|
}
|
|
97979
98001
|
}
|
|
@@ -100216,8 +100238,8 @@ async function handleEvent(octokit, inputs, eventName, context, config) {
|
|
|
100216
100238
|
const eventChecks = [];
|
|
100217
100239
|
for (const [checkName, checkConfig] of Object.entries(config.checks || {})) {
|
|
100218
100240
|
// Check if this check should run for this event
|
|
100219
|
-
|
|
100220
|
-
if (
|
|
100241
|
+
// If 'on' is not specified, the check can run on any event
|
|
100242
|
+
if (!checkConfig.on || checkConfig.on.includes(eventType)) {
|
|
100221
100243
|
eventChecks.push(checkName);
|
|
100222
100244
|
}
|
|
100223
100245
|
}
|
|
@@ -100586,13 +100608,16 @@ async function handleIssueComment(octokit, owner, repo, context, inputs, actionC
|
|
|
100586
100608
|
if (!config?.checks?.[checkId])
|
|
100587
100609
|
return false;
|
|
100588
100610
|
const checkConfig = config.checks[checkId];
|
|
100589
|
-
|
|
100611
|
+
// If 'on' is not specified, the check can run on any event
|
|
100612
|
+
if (!checkConfig.on) {
|
|
100613
|
+
return true;
|
|
100614
|
+
}
|
|
100590
100615
|
// For issue comments, only run checks that are configured for issue_comment events
|
|
100591
100616
|
if (!isPullRequest) {
|
|
100592
|
-
return
|
|
100617
|
+
return checkConfig.on.includes('issue_comment');
|
|
100593
100618
|
}
|
|
100594
100619
|
// For PR comments, run checks configured for PR events or issue_comment
|
|
100595
|
-
return
|
|
100620
|
+
return checkConfig.on.includes('pr_updated') || checkConfig.on.includes('issue_comment');
|
|
100596
100621
|
});
|
|
100597
100622
|
if (filteredCheckIds.length === 0) {
|
|
100598
100623
|
console.log(`No checks configured to run for ${isPullRequest ? 'PR' : 'issue'} comments`);
|
|
@@ -103616,9 +103641,12 @@ class CommandCheckProvider extends check_provider_interface_1.CheckProvider {
|
|
|
103616
103641
|
const { exec } = await Promise.resolve().then(() => __importStar(__nccwpck_require__(35317)));
|
|
103617
103642
|
const { promisify } = await Promise.resolve().then(() => __importStar(__nccwpck_require__(39023)));
|
|
103618
103643
|
const execAsync = promisify(exec);
|
|
103644
|
+
// Get timeout from config (in seconds) or use default (60 seconds)
|
|
103645
|
+
const timeoutSeconds = config.timeout || 60;
|
|
103646
|
+
const timeoutMs = timeoutSeconds * 1000;
|
|
103619
103647
|
const { stdout, stderr } = await execAsync(renderedCommand, {
|
|
103620
103648
|
env: scriptEnv,
|
|
103621
|
-
timeout:
|
|
103649
|
+
timeout: timeoutMs,
|
|
103622
103650
|
maxBuffer: 10 * 1024 * 1024, // 10MB buffer
|
|
103623
103651
|
});
|
|
103624
103652
|
if (stderr && process.env.DEBUG) {
|
|
@@ -103721,7 +103749,18 @@ class CommandCheckProvider extends check_provider_interface_1.CheckProvider {
|
|
|
103721
103749
|
return safeVars;
|
|
103722
103750
|
}
|
|
103723
103751
|
getSupportedConfigKeys() {
|
|
103724
|
-
return [
|
|
103752
|
+
return [
|
|
103753
|
+
'type',
|
|
103754
|
+
'exec',
|
|
103755
|
+
'transform',
|
|
103756
|
+
'env',
|
|
103757
|
+
'timeout',
|
|
103758
|
+
'depends_on',
|
|
103759
|
+
'on',
|
|
103760
|
+
'if',
|
|
103761
|
+
'group',
|
|
103762
|
+
'forEach',
|
|
103763
|
+
];
|
|
103725
103764
|
}
|
|
103726
103765
|
async isAvailable() {
|
|
103727
103766
|
// Command provider is always available as long as we can execute commands
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-check-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/command-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;AAG5C;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,CAAC,MAAM,CAAS;;IAWvB,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAejD,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAC7C,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"command-check-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/command-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;AAG5C;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,CAAC,MAAM,CAAS;;IAWvB,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAejD,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAC7C,OAAO,CAAC,aAAa,CAAC;IA8HzB,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,2BAA2B;IAgBnC,sBAAsB,IAAI,MAAM,EAAE;IAe5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC,eAAe,IAAI,MAAM,EAAE;CAO5B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@probelabs/visor",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.44",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"bin": {
|
|
6
6
|
"visor": "./dist/index.js"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"registry": "https://registry.npmjs.org/"
|
|
18
18
|
},
|
|
19
19
|
"scripts": {
|
|
20
|
-
"build": "ncc build src/index.ts -o dist && cp -r defaults dist/ && echo '#!/usr/bin/env node' | cat - dist/index.js > temp && mv temp dist/index.js && chmod +x dist/index.js",
|
|
20
|
+
"build": "ncc build src/index.ts -o dist && cp -r defaults dist/ && 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",
|
|
21
21
|
"test": "jest",
|
|
22
22
|
"prepublishOnly": "npm run build",
|
|
23
23
|
"test:watch": "jest --watch",
|