@probelabs/visor 0.1.35 → 0.1.37
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 +355 -1
- package/defaults/.visor.yaml +69 -13
- package/dist/ai-review-service.d.ts +1 -1
- package/dist/ai-review-service.d.ts.map +1 -1
- package/dist/check-execution-engine.d.ts +8 -0
- 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 +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/cron-scheduler.d.ts +66 -0
- package/dist/cron-scheduler.d.ts.map +1 -0
- package/dist/defaults/.visor.yaml +69 -13
- package/dist/event-mapper.d.ts.map +1 -1
- package/dist/failure-condition-evaluator.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +107207 -76050
- package/dist/output/code-review/schema.json +1 -1
- package/dist/pr-analyzer.d.ts +8 -0
- 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 +6 -0
- package/dist/providers/check-provider.interface.d.ts.map +1 -1
- package/dist/providers/claude-code-check-provider.d.ts +68 -0
- package/dist/providers/claude-code-check-provider.d.ts.map +1 -0
- package/dist/providers/claude-code-types.d.ts +68 -0
- package/dist/providers/claude-code-types.d.ts.map +1 -0
- package/dist/providers/{webhook-check-provider.d.ts → http-check-provider.d.ts} +6 -4
- package/dist/providers/http-check-provider.d.ts.map +1 -0
- package/dist/providers/http-client-provider.d.ts +22 -0
- package/dist/providers/http-client-provider.d.ts.map +1 -0
- package/dist/providers/http-input-provider.d.ts +27 -0
- package/dist/providers/http-input-provider.d.ts.map +1 -0
- package/dist/providers/index.d.ts +5 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/mcp-tools.d.ts +106 -0
- package/dist/providers/mcp-tools.d.ts.map +1 -0
- package/dist/providers/tool-check-provider.d.ts.map +1 -1
- package/dist/types/config.d.ts +115 -8
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-merger.d.ts.map +1 -1
- package/dist/webhook-server.d.ts +93 -0
- package/dist/webhook-server.d.ts.map +1 -0
- package/package.json +16 -2
- package/dist/providers/webhook-check-provider.d.ts.map +0 -1
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"severity": {
|
|
40
40
|
"type": "string",
|
|
41
41
|
"enum": ["info", "warning", "error", "critical"],
|
|
42
|
-
"description": "Issue severity level"
|
|
42
|
+
"description": "Issue severity level: info (suggestions/improvements), warning (should fix), error (must fix), critical (blocks deployment)"
|
|
43
43
|
},
|
|
44
44
|
"category": {
|
|
45
45
|
"type": "string",
|
package/dist/pr-analyzer.d.ts
CHANGED
|
@@ -15,6 +15,13 @@ export interface PRDiff {
|
|
|
15
15
|
patch?: string;
|
|
16
16
|
status: 'added' | 'removed' | 'modified' | 'renamed';
|
|
17
17
|
}
|
|
18
|
+
export interface PRComment {
|
|
19
|
+
id: number;
|
|
20
|
+
author: string;
|
|
21
|
+
body: string;
|
|
22
|
+
createdAt: string;
|
|
23
|
+
updatedAt: string;
|
|
24
|
+
}
|
|
18
25
|
export interface PRInfo {
|
|
19
26
|
number: number;
|
|
20
27
|
title: string;
|
|
@@ -31,6 +38,7 @@ export interface PRInfo {
|
|
|
31
38
|
isIncremental?: boolean;
|
|
32
39
|
isIssue?: boolean;
|
|
33
40
|
eventContext?: Record<string, unknown>;
|
|
41
|
+
comments?: PRComment[];
|
|
34
42
|
}
|
|
35
43
|
export declare class PRAnalyzer {
|
|
36
44
|
private octokit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/pr-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,gBAAgB,EAAE,YAAY,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/pr-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,gBAAgB,EAAE,YAAY,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;CACxB;AAQD,qBAAa,UAAU;IAEnB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;gBADV,OAAO,EAAE,OAAO,EAChB,UAAU,GAAE,MAAU;IAGhC;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBtF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOlB,WAAW,CACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,OAAO,gBAAgB,EAAE,YAAY,GAChD,OAAO,CAAC,MAAM,CAAC;IAkHZ,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;;;;YAkBrD,SAAS;IAwCvB,OAAO,CAAC,gBAAgB;CAkBzB"}
|
|
@@ -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;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;
|
|
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;IA0I/B,sBAAsB,IAAI,MAAM,EAAE;IAiB5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC,eAAe,IAAI,MAAM,EAAE;CAO5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-provider-registry.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/check-provider-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"check-provider-registry.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/check-provider-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAS3D;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAwB;IAE/C,OAAO;IAKP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,qBAAqB;IAO3C;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAYvC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS9B;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIpD;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAU/C;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAIjC;;OAEG;IACH,eAAe,IAAI,aAAa,EAAE;IAIlC;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAapD;;OAEG;IACG,aAAa,IAAI,OAAO,CAC5B,KAAK,CAAC;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC,CACH;IAgBD;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;CAG7B"}
|
|
@@ -84,5 +84,11 @@ export declare abstract class CheckProvider {
|
|
|
84
84
|
* Get provider requirements (e.g., environment variables needed)
|
|
85
85
|
*/
|
|
86
86
|
abstract getRequirements(): string[];
|
|
87
|
+
/**
|
|
88
|
+
* Set webhook context for providers that need access to webhook data
|
|
89
|
+
* This is optional and only used by http_input providers
|
|
90
|
+
* @param webhookContext Map of endpoint paths to webhook data
|
|
91
|
+
*/
|
|
92
|
+
setWebhookContext?(webhookContext: Map<string, unknown>): void;
|
|
87
93
|
}
|
|
88
94
|
//# sourceMappingURL=check-provider.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-provider.interface.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/check-provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,EAAE,CAAC,EAAE;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,WAAW,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzD,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,8BAAsB,aAAa;IACjC;;OAEG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM;IAE1B;;OAEG;IACH,QAAQ,CAAC,cAAc,IAAI,MAAM;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAE1D;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC9C,WAAW,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GACjE,OAAO,CAAC,aAAa,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,IAAI,MAAM,EAAE;IAE3C;;;OAGG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,eAAe,IAAI,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"check-provider.interface.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/check-provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,EAAE,CAAC,EAAE;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,WAAW,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzD,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,8BAAsB,aAAa;IACjC;;OAEG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM;IAE1B;;OAEG;IACH,QAAQ,CAAC,cAAc,IAAI,MAAM;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAE1D;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC9C,WAAW,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GACjE,OAAO,CAAC,aAAa,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,IAAI,MAAM,EAAE;IAE3C;;;OAGG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,eAAe,IAAI,MAAM,EAAE;IAEpC;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAC/D"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { CheckProvider, CheckProviderConfig } from './check-provider.interface';
|
|
2
|
+
import { PRInfo } from '../pr-analyzer';
|
|
3
|
+
import { ReviewSummary } from '../reviewer';
|
|
4
|
+
/**
|
|
5
|
+
* Error thrown when Claude Code SDK is not installed
|
|
6
|
+
*/
|
|
7
|
+
export declare class ClaudeCodeSDKNotInstalledError extends Error {
|
|
8
|
+
constructor();
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Error thrown when Claude Code API key is not configured
|
|
12
|
+
*/
|
|
13
|
+
export declare class ClaudeCodeAPIKeyMissingError extends Error {
|
|
14
|
+
constructor();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Claude Code check provider using the Claude Code TypeScript SDK
|
|
18
|
+
* Supports MCP tools and streaming responses
|
|
19
|
+
*/
|
|
20
|
+
export declare class ClaudeCodeCheckProvider extends CheckProvider {
|
|
21
|
+
private liquidEngine;
|
|
22
|
+
private claudeCodeClient;
|
|
23
|
+
constructor();
|
|
24
|
+
getName(): string;
|
|
25
|
+
getDescription(): string;
|
|
26
|
+
validateConfig(config: unknown): Promise<boolean>;
|
|
27
|
+
/**
|
|
28
|
+
* Initialize Claude Code SDK client
|
|
29
|
+
*/
|
|
30
|
+
private initializeClaudeCodeClient;
|
|
31
|
+
/**
|
|
32
|
+
* Setup MCP tools based on configuration
|
|
33
|
+
*/
|
|
34
|
+
private setupMcpTools;
|
|
35
|
+
/**
|
|
36
|
+
* Group files by their file extension for template context
|
|
37
|
+
*/
|
|
38
|
+
private groupFilesByExtension;
|
|
39
|
+
/**
|
|
40
|
+
* Process prompt configuration to resolve final prompt string
|
|
41
|
+
*/
|
|
42
|
+
private processPrompt;
|
|
43
|
+
/**
|
|
44
|
+
* Detect if a string is likely a file path and if the file exists
|
|
45
|
+
*/
|
|
46
|
+
private isFilePath;
|
|
47
|
+
/**
|
|
48
|
+
* Load prompt content from file with security validation
|
|
49
|
+
*/
|
|
50
|
+
private loadPromptFromFile;
|
|
51
|
+
/**
|
|
52
|
+
* Render Liquid template in prompt with comprehensive context
|
|
53
|
+
*/
|
|
54
|
+
private renderPromptTemplate;
|
|
55
|
+
/**
|
|
56
|
+
* Parse structured response from Claude Code
|
|
57
|
+
*/
|
|
58
|
+
private parseStructuredResponse;
|
|
59
|
+
execute(prInfo: PRInfo, config: CheckProviderConfig, dependencyResults?: Map<string, ReviewSummary>, sessionInfo?: {
|
|
60
|
+
parentSessionId?: string;
|
|
61
|
+
reuseSession?: boolean;
|
|
62
|
+
}): Promise<ReviewSummary>;
|
|
63
|
+
private executeWithConfig;
|
|
64
|
+
getSupportedConfigKeys(): string[];
|
|
65
|
+
isAvailable(): Promise<boolean>;
|
|
66
|
+
getRequirements(): string[];
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=claude-code-check-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-check-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/claude-code-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;AAc5C;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;;CAOxD;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;;CAOtD;AAED;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAiC;;IAOzD,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAwDvD;;OAEG;YACW,0BAA0B;IAyCxC;;OAEG;YACW,aAAa;IAqE3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;YACW,aAAa;IAmB3B;;OAEG;YACW,UAAU;IAkExB;;OAEG;YACW,kBAAkB;IA0ChC;;OAEG;YACW,oBAAoB;IA+HlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmBzB,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC9C,WAAW,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GACjE,OAAO,CAAC,aAAa,CAAC;YAgBX,iBAAiB;IA8H/B,sBAAsB,IAAI,MAAM,EAAE;IAiB5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IA0BrC,eAAe,IAAI,MAAM,EAAE;CAQ5B"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Claude Code SDK and MCP SDK
|
|
3
|
+
* These are placeholder types for when the packages aren't installed
|
|
4
|
+
*/
|
|
5
|
+
export interface ClaudeCodeQuery {
|
|
6
|
+
query: string;
|
|
7
|
+
tools?: Array<{
|
|
8
|
+
name: string;
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
}>;
|
|
11
|
+
subagent?: string;
|
|
12
|
+
maxTurns?: number;
|
|
13
|
+
systemPrompt?: string;
|
|
14
|
+
sessionId?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ClaudeCodeResponse {
|
|
17
|
+
content: string;
|
|
18
|
+
usage?: {
|
|
19
|
+
input_tokens: number;
|
|
20
|
+
output_tokens: number;
|
|
21
|
+
};
|
|
22
|
+
turn_count?: number;
|
|
23
|
+
session_id?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface ClaudeCodeClient {
|
|
26
|
+
query(options: ClaudeCodeQuery): Promise<ClaudeCodeResponse>;
|
|
27
|
+
}
|
|
28
|
+
export interface McpServerConfig {
|
|
29
|
+
command: string;
|
|
30
|
+
args?: string[];
|
|
31
|
+
env?: Record<string, string>;
|
|
32
|
+
}
|
|
33
|
+
export interface McpTool {
|
|
34
|
+
name: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
inputSchema?: Record<string, unknown>;
|
|
37
|
+
handler?: (args: Record<string, unknown>) => Promise<unknown>;
|
|
38
|
+
}
|
|
39
|
+
export interface McpServer {
|
|
40
|
+
name: string;
|
|
41
|
+
command?: string;
|
|
42
|
+
args?: string[];
|
|
43
|
+
env?: Record<string, string>;
|
|
44
|
+
tools?: McpTool[];
|
|
45
|
+
}
|
|
46
|
+
export interface McpServerInstance {
|
|
47
|
+
name: string;
|
|
48
|
+
listTools(): Promise<McpTool[]>;
|
|
49
|
+
callTool(name: string, args: Record<string, unknown>): Promise<unknown>;
|
|
50
|
+
close(): Promise<void>;
|
|
51
|
+
}
|
|
52
|
+
export interface ClaudeCodeConfig {
|
|
53
|
+
allowedTools?: string[];
|
|
54
|
+
maxTurns?: number;
|
|
55
|
+
systemPrompt?: string;
|
|
56
|
+
mcpServers?: Record<string, McpServerConfig>;
|
|
57
|
+
subagent?: string;
|
|
58
|
+
hooks?: {
|
|
59
|
+
onStart?: string;
|
|
60
|
+
onEnd?: string;
|
|
61
|
+
onError?: string;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Utility function to safely import optional dependencies
|
|
66
|
+
*/
|
|
67
|
+
export declare function safeImport<T>(moduleName: string): Promise<T | null>;
|
|
68
|
+
//# sourceMappingURL=claude-code-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-types.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/claude-code-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC9D;AAGD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAGD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D;AAGD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AAGD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAMzE"}
|
|
@@ -2,13 +2,15 @@ import { CheckProvider, CheckProviderConfig } from './check-provider.interface';
|
|
|
2
2
|
import { PRInfo } from '../pr-analyzer';
|
|
3
3
|
import { ReviewSummary } from '../reviewer';
|
|
4
4
|
/**
|
|
5
|
-
* Check provider that sends
|
|
5
|
+
* Check provider that sends data to an HTTP endpoint, typically used as an output/notification provider
|
|
6
6
|
*/
|
|
7
|
-
export declare class
|
|
7
|
+
export declare class HttpCheckProvider extends CheckProvider {
|
|
8
|
+
private liquid;
|
|
9
|
+
constructor();
|
|
8
10
|
getName(): string;
|
|
9
11
|
getDescription(): string;
|
|
10
12
|
validateConfig(config: unknown): Promise<boolean>;
|
|
11
|
-
execute(prInfo: PRInfo, config: CheckProviderConfig,
|
|
13
|
+
execute(prInfo: PRInfo, config: CheckProviderConfig, dependencyResults?: Map<string, ReviewSummary>, _sessionInfo?: {
|
|
12
14
|
parentSessionId?: string;
|
|
13
15
|
reuseSession?: boolean;
|
|
14
16
|
}): Promise<ReviewSummary>;
|
|
@@ -21,4 +23,4 @@ export declare class WebhookCheckProvider extends CheckProvider {
|
|
|
21
23
|
isAvailable(): Promise<boolean>;
|
|
22
24
|
getRequirements(): string[];
|
|
23
25
|
}
|
|
24
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=http-check-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-check-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/http-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;AAIzD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAO,CAAC,MAAM,CAAS;;IAMvB,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BjD,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC9C,YAAY,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAClE,OAAO,CAAC,aAAa,CAAC;YAuEX,kBAAkB;IA4ChC,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;IASxB,sBAAsB,IAAI,MAAM,EAAE;IAiB5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC,eAAe,IAAI,MAAM,EAAE;CAQ5B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CheckProvider, CheckProviderConfig } from './check-provider.interface';
|
|
2
|
+
import { PRInfo } from '../pr-analyzer';
|
|
3
|
+
import { ReviewSummary } from '../reviewer';
|
|
4
|
+
/**
|
|
5
|
+
* Check provider that fetches data from HTTP endpoints
|
|
6
|
+
*/
|
|
7
|
+
export declare class HttpClientProvider extends CheckProvider {
|
|
8
|
+
private liquid;
|
|
9
|
+
constructor();
|
|
10
|
+
getName(): string;
|
|
11
|
+
getDescription(): string;
|
|
12
|
+
validateConfig(config: unknown): Promise<boolean>;
|
|
13
|
+
execute(prInfo: PRInfo, config: CheckProviderConfig, dependencyResults?: Map<string, ReviewSummary>, _sessionInfo?: {
|
|
14
|
+
parentSessionId?: string;
|
|
15
|
+
reuseSession?: boolean;
|
|
16
|
+
}): Promise<ReviewSummary>;
|
|
17
|
+
private fetchData;
|
|
18
|
+
getSupportedConfigKeys(): string[];
|
|
19
|
+
isAvailable(): Promise<boolean>;
|
|
20
|
+
getRequirements(): string[];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=http-client-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/http-client-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;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,OAAO,CAAC,MAAM,CAAS;;IAOvB,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,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC9C,YAAY,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAClE,OAAO,CAAC,aAAa,CAAC;YAkGX,SAAS;IA2EvB,sBAAsB,IAAI,MAAM,EAAE;IAiB5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC,eAAe,IAAI,MAAM,EAAE;CAQ5B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { CheckProvider, CheckProviderConfig } from './check-provider.interface';
|
|
2
|
+
import { PRInfo } from '../pr-analyzer';
|
|
3
|
+
import { ReviewSummary } from '../reviewer';
|
|
4
|
+
/**
|
|
5
|
+
* Check provider that receives input from HTTP webhooks and makes it available to dependent checks
|
|
6
|
+
*/
|
|
7
|
+
export declare class HttpInputProvider extends CheckProvider {
|
|
8
|
+
private liquid;
|
|
9
|
+
private webhookContext?;
|
|
10
|
+
constructor();
|
|
11
|
+
/**
|
|
12
|
+
* Set webhook context for accessing webhook data
|
|
13
|
+
*/
|
|
14
|
+
setWebhookContext(webhookContext: Map<string, unknown>): void;
|
|
15
|
+
getName(): string;
|
|
16
|
+
getDescription(): string;
|
|
17
|
+
validateConfig(config: unknown): Promise<boolean>;
|
|
18
|
+
execute(prInfo: PRInfo, config: CheckProviderConfig, _dependencyResults?: Map<string, ReviewSummary>, _sessionInfo?: {
|
|
19
|
+
parentSessionId?: string;
|
|
20
|
+
reuseSession?: boolean;
|
|
21
|
+
}): Promise<ReviewSummary>;
|
|
22
|
+
private getWebhookData;
|
|
23
|
+
getSupportedConfigKeys(): string[];
|
|
24
|
+
isAvailable(): Promise<boolean>;
|
|
25
|
+
getRequirements(): string[];
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=http-input-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-input-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/http-input-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;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAAC,CAAuB;;IAO9C;;OAEG;IACH,iBAAiB,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI7D,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBjD,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;IAwDzB,OAAO,CAAC,cAAc;IAqBtB,sBAAsB,IAAI,MAAM,EAAE;IAI5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC,eAAe,IAAI,MAAM,EAAE;CAO5B"}
|
|
@@ -5,6 +5,10 @@ export { CheckProvider, CheckProviderConfig } from './check-provider.interface';
|
|
|
5
5
|
export { CheckProviderRegistry } from './check-provider-registry';
|
|
6
6
|
export { AICheckProvider } from './ai-check-provider';
|
|
7
7
|
export { ToolCheckProvider } from './tool-check-provider';
|
|
8
|
-
export {
|
|
8
|
+
export { HttpCheckProvider } from './http-check-provider';
|
|
9
|
+
export { HttpInputProvider } from './http-input-provider';
|
|
10
|
+
export { HttpClientProvider } from './http-client-provider';
|
|
9
11
|
export { NoopCheckProvider } from './noop-check-provider';
|
|
12
|
+
export { ClaudeCodeCheckProvider } from './claude-code-check-provider';
|
|
13
|
+
export { VisorMcpTools, McpServerManager, DEFAULT_MCP_TOOLS_CONFIG } from './mcp-tools';
|
|
10
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools Support for Visor
|
|
3
|
+
*
|
|
4
|
+
* This module provides MCP (Model Context Protocol) tools integration
|
|
5
|
+
* for the Claude Code check provider, enabling custom tools and
|
|
6
|
+
* in-process MCP server creation.
|
|
7
|
+
*/
|
|
8
|
+
interface McpTool {
|
|
9
|
+
name: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
inputSchema?: Record<string, unknown>;
|
|
12
|
+
handler?: (args: Record<string, unknown>) => Promise<unknown>;
|
|
13
|
+
}
|
|
14
|
+
interface McpServer {
|
|
15
|
+
name: string;
|
|
16
|
+
command?: string;
|
|
17
|
+
args?: string[];
|
|
18
|
+
env?: Record<string, string>;
|
|
19
|
+
tools?: McpTool[];
|
|
20
|
+
}
|
|
21
|
+
interface McpServerInstance {
|
|
22
|
+
name: string;
|
|
23
|
+
listTools(): Promise<McpTool[]>;
|
|
24
|
+
callTool(name: string, args: Record<string, unknown>): Promise<unknown>;
|
|
25
|
+
close(): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Built-in MCP tools for Visor code analysis
|
|
29
|
+
*/
|
|
30
|
+
export declare class VisorMcpTools {
|
|
31
|
+
/**
|
|
32
|
+
* Get built-in MCP tools for code analysis
|
|
33
|
+
*/
|
|
34
|
+
static getBuiltInTools(): McpTool[];
|
|
35
|
+
/**
|
|
36
|
+
* Analyze file structure and organization
|
|
37
|
+
*/
|
|
38
|
+
private static analyzeFileStructure;
|
|
39
|
+
/**
|
|
40
|
+
* Detect common code patterns and anti-patterns
|
|
41
|
+
*/
|
|
42
|
+
private static detectPatterns;
|
|
43
|
+
/**
|
|
44
|
+
* Calculate code complexity metrics
|
|
45
|
+
*/
|
|
46
|
+
private static calculateComplexity;
|
|
47
|
+
/**
|
|
48
|
+
* Suggest code improvements based on best practices
|
|
49
|
+
*/
|
|
50
|
+
private static suggestImprovements;
|
|
51
|
+
/**
|
|
52
|
+
* Generate structure recommendations
|
|
53
|
+
*/
|
|
54
|
+
private static generateStructureRecommendations;
|
|
55
|
+
/**
|
|
56
|
+
* Calculate cyclomatic complexity (simplified)
|
|
57
|
+
*/
|
|
58
|
+
private static calculateCyclomaticComplexity;
|
|
59
|
+
/**
|
|
60
|
+
* Calculate nesting depth
|
|
61
|
+
*/
|
|
62
|
+
private static calculateNestingDepth;
|
|
63
|
+
/**
|
|
64
|
+
* Generate complexity recommendations
|
|
65
|
+
*/
|
|
66
|
+
private static generateComplexityRecommendations;
|
|
67
|
+
/**
|
|
68
|
+
* Calculate priority based on suggestions
|
|
69
|
+
*/
|
|
70
|
+
private static calculatePriority;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* MCP Server Manager for handling external MCP servers
|
|
74
|
+
*/
|
|
75
|
+
export declare class McpServerManager {
|
|
76
|
+
private servers;
|
|
77
|
+
/**
|
|
78
|
+
* Create and register an MCP server
|
|
79
|
+
*/
|
|
80
|
+
createServer(config: McpServer): Promise<McpServerInstance>;
|
|
81
|
+
/**
|
|
82
|
+
* Get a registered server by name
|
|
83
|
+
*/
|
|
84
|
+
getServer(name: string): McpServerInstance | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* List all available tools from all servers
|
|
87
|
+
*/
|
|
88
|
+
listAllTools(): Promise<Array<{
|
|
89
|
+
serverName: string;
|
|
90
|
+
tool: McpTool;
|
|
91
|
+
}>>;
|
|
92
|
+
/**
|
|
93
|
+
* Close all servers
|
|
94
|
+
*/
|
|
95
|
+
closeAll(): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Create external MCP server instance
|
|
98
|
+
*/
|
|
99
|
+
private createExternalServer;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Default MCP tools configuration for Visor
|
|
103
|
+
*/
|
|
104
|
+
export declare const DEFAULT_MCP_TOOLS_CONFIG: McpServer[];
|
|
105
|
+
export {};
|
|
106
|
+
//# sourceMappingURL=mcp-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tools.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/mcp-tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,OAAO,EAAE;IAmFnC;;OAEG;mBACkB,oBAAoB;IA8DzC;;OAEG;mBACkB,cAAc;IAqDnC;;OAEG;mBACkB,mBAAmB;IA6BxC;;OAEG;mBACkB,mBAAmB;IAwExC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC;IA0B/C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAuB5C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAgBpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iCAAiC;IAuBhD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAcjC;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAA6C;IAE5D;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAuBjE;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAItD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAiB3E;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B;;OAEG;YACW,oBAAoB;CAKnC;AA4DD;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,EAK/C,CAAC"}
|
|
@@ -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;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;
|
|
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;IAuBvB,OAAO,CAAC,mBAAmB;IAe3B,sBAAsB,IAAI,MAAM,EAAE;IAI5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAMrC,eAAe,IAAI,MAAM,EAAE;CAO5B"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -164,11 +164,11 @@ export interface FailureConditionResult {
|
|
|
164
164
|
/**
|
|
165
165
|
* Valid check types in configuration
|
|
166
166
|
*/
|
|
167
|
-
export type ConfigCheckType = 'ai' | 'tool' | '
|
|
167
|
+
export type ConfigCheckType = 'ai' | 'tool' | 'http' | 'http_input' | 'http_client' | 'noop' | 'claude-code';
|
|
168
168
|
/**
|
|
169
169
|
* Valid event triggers for checks
|
|
170
170
|
*/
|
|
171
|
-
export type EventTrigger = 'pr_opened' | 'pr_updated' | 'pr_closed' | 'issue_opened' | 'issue_comment' | 'manual';
|
|
171
|
+
export type EventTrigger = 'pr_opened' | 'pr_updated' | 'pr_closed' | 'issue_opened' | 'issue_comment' | 'manual' | 'schedule' | 'webhook_received';
|
|
172
172
|
/**
|
|
173
173
|
* Valid output formats
|
|
174
174
|
*/
|
|
@@ -196,12 +196,47 @@ export interface AIProviderConfig {
|
|
|
196
196
|
/** Request timeout in milliseconds */
|
|
197
197
|
timeout?: number;
|
|
198
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* MCP Server configuration
|
|
201
|
+
*/
|
|
202
|
+
export interface McpServerConfig {
|
|
203
|
+
/** Command to execute for the MCP server */
|
|
204
|
+
command: string;
|
|
205
|
+
/** Arguments to pass to the command */
|
|
206
|
+
args?: string[];
|
|
207
|
+
/** Environment variables for the MCP server */
|
|
208
|
+
env?: Record<string, string>;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Claude Code configuration
|
|
212
|
+
*/
|
|
213
|
+
export interface ClaudeCodeConfig {
|
|
214
|
+
/** List of allowed tools for Claude Code to use */
|
|
215
|
+
allowedTools?: string[];
|
|
216
|
+
/** Maximum number of turns in conversation */
|
|
217
|
+
maxTurns?: number;
|
|
218
|
+
/** System prompt for Claude Code */
|
|
219
|
+
systemPrompt?: string;
|
|
220
|
+
/** MCP servers configuration */
|
|
221
|
+
mcpServers?: Record<string, McpServerConfig>;
|
|
222
|
+
/** Path to subagent script */
|
|
223
|
+
subagent?: string;
|
|
224
|
+
/** Event hooks for lifecycle management */
|
|
225
|
+
hooks?: {
|
|
226
|
+
/** Called when check starts */
|
|
227
|
+
onStart?: string;
|
|
228
|
+
/** Called when check ends */
|
|
229
|
+
onEnd?: string;
|
|
230
|
+
/** Called when check encounters an error */
|
|
231
|
+
onError?: string;
|
|
232
|
+
};
|
|
233
|
+
}
|
|
199
234
|
/**
|
|
200
235
|
* Configuration for a single check
|
|
201
236
|
*/
|
|
202
237
|
export interface CheckConfig {
|
|
203
|
-
/** Type of check to perform */
|
|
204
|
-
type
|
|
238
|
+
/** Type of check to perform (defaults to 'ai' if not specified) */
|
|
239
|
+
type?: ConfigCheckType;
|
|
205
240
|
/** AI prompt for the check - can be inline string or file path (auto-detected) - required for AI checks */
|
|
206
241
|
prompt?: string;
|
|
207
242
|
/** Additional prompt to append when extending configurations - merged with parent prompt */
|
|
@@ -210,14 +245,26 @@ export interface CheckConfig {
|
|
|
210
245
|
exec?: string;
|
|
211
246
|
/** Stdin input for tools with Liquid template support - optional for tool checks */
|
|
212
247
|
stdin?: string;
|
|
213
|
-
/**
|
|
248
|
+
/** HTTP URL - required for http output checks */
|
|
214
249
|
url?: string;
|
|
250
|
+
/** HTTP body template (Liquid) - required for http output checks */
|
|
251
|
+
body?: string;
|
|
252
|
+
/** HTTP method (defaults to POST) */
|
|
253
|
+
method?: string;
|
|
254
|
+
/** HTTP headers */
|
|
255
|
+
headers?: Record<string, string>;
|
|
256
|
+
/** HTTP endpoint path - required for http_input checks */
|
|
257
|
+
endpoint?: string;
|
|
258
|
+
/** Transform template for http_input data (Liquid) - optional */
|
|
259
|
+
transform?: string;
|
|
260
|
+
/** Cron schedule expression (e.g., "0 2 * * *") - optional for any check type */
|
|
261
|
+
schedule?: string;
|
|
215
262
|
/** Focus area for the check (security/performance/style/architecture/all) - optional */
|
|
216
263
|
focus?: string;
|
|
217
264
|
/** Command that triggers this check (e.g., "review", "security-scan") - optional */
|
|
218
265
|
command?: string;
|
|
219
|
-
/** Events that trigger this check */
|
|
220
|
-
on
|
|
266
|
+
/** Events that trigger this check (defaults to ['manual'] if not specified) */
|
|
267
|
+
on?: EventTrigger[];
|
|
221
268
|
/** File patterns that trigger this check (optional) */
|
|
222
269
|
triggers?: string[];
|
|
223
270
|
/** AI provider configuration (optional) */
|
|
@@ -226,6 +273,8 @@ export interface CheckConfig {
|
|
|
226
273
|
ai_model?: string;
|
|
227
274
|
/** AI provider to use for this check - overrides global setting */
|
|
228
275
|
ai_provider?: 'google' | 'anthropic' | 'openai' | 'mock' | string;
|
|
276
|
+
/** Claude Code configuration (for claude-code type checks) */
|
|
277
|
+
claude_code?: ClaudeCodeConfig;
|
|
229
278
|
/** Environment variables for this check */
|
|
230
279
|
env?: EnvConfig;
|
|
231
280
|
/** Check IDs that this check depends on (optional) */
|
|
@@ -324,6 +373,62 @@ export interface OutputConfig {
|
|
|
324
373
|
/** Whether to enable issue suppression via visor-disable comments (default: true) */
|
|
325
374
|
suppressionEnabled?: boolean;
|
|
326
375
|
}
|
|
376
|
+
/**
|
|
377
|
+
* HTTP server authentication configuration
|
|
378
|
+
*/
|
|
379
|
+
export interface HttpAuthConfig {
|
|
380
|
+
/** Authentication type */
|
|
381
|
+
type: 'bearer_token' | 'hmac' | 'basic' | 'none';
|
|
382
|
+
/** Secret or token for authentication */
|
|
383
|
+
secret?: string;
|
|
384
|
+
/** Username for basic auth */
|
|
385
|
+
username?: string;
|
|
386
|
+
/** Password for basic auth */
|
|
387
|
+
password?: string;
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* HTTP server endpoint configuration
|
|
391
|
+
*/
|
|
392
|
+
export interface HttpEndpointConfig {
|
|
393
|
+
/** Path for the webhook endpoint */
|
|
394
|
+
path: string;
|
|
395
|
+
/** Optional transform template (Liquid) for the received data */
|
|
396
|
+
transform?: string;
|
|
397
|
+
/** Optional name/ID for this endpoint */
|
|
398
|
+
name?: string;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* TLS/SSL configuration for HTTPS server
|
|
402
|
+
*/
|
|
403
|
+
export interface TlsConfig {
|
|
404
|
+
/** Enable TLS/HTTPS */
|
|
405
|
+
enabled: boolean;
|
|
406
|
+
/** Path to TLS certificate file or certificate content */
|
|
407
|
+
cert?: string;
|
|
408
|
+
/** Path to TLS key file or key content */
|
|
409
|
+
key?: string;
|
|
410
|
+
/** Path to CA certificate file or CA content (optional) */
|
|
411
|
+
ca?: string;
|
|
412
|
+
/** Reject unauthorized connections (default: true) */
|
|
413
|
+
rejectUnauthorized?: boolean;
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* HTTP server configuration for receiving webhooks
|
|
417
|
+
*/
|
|
418
|
+
export interface HttpServerConfig {
|
|
419
|
+
/** Whether HTTP server is enabled */
|
|
420
|
+
enabled: boolean;
|
|
421
|
+
/** Port to listen on */
|
|
422
|
+
port: number;
|
|
423
|
+
/** Host/IP to bind to (defaults to 0.0.0.0) */
|
|
424
|
+
host?: string;
|
|
425
|
+
/** TLS/SSL configuration for HTTPS */
|
|
426
|
+
tls?: TlsConfig;
|
|
427
|
+
/** Authentication configuration */
|
|
428
|
+
auth?: HttpAuthConfig;
|
|
429
|
+
/** HTTP endpoints configuration */
|
|
430
|
+
endpoints?: HttpEndpointConfig[];
|
|
431
|
+
}
|
|
327
432
|
/**
|
|
328
433
|
* Main Visor configuration
|
|
329
434
|
*/
|
|
@@ -336,12 +441,14 @@ export interface VisorConfig {
|
|
|
336
441
|
checks: Record<string, CheckConfig>;
|
|
337
442
|
/** Output configuration */
|
|
338
443
|
output: OutputConfig;
|
|
444
|
+
/** HTTP server configuration for receiving webhooks */
|
|
445
|
+
http_server?: HttpServerConfig;
|
|
339
446
|
/** Global environment variables */
|
|
340
447
|
env?: EnvConfig;
|
|
341
448
|
/** Global AI model setting */
|
|
342
449
|
ai_model?: string;
|
|
343
450
|
/** Global AI provider setting */
|
|
344
|
-
ai_provider?: 'google' | 'anthropic' | 'openai' | 'mock' | string;
|
|
451
|
+
ai_provider?: 'google' | 'anthropic' | 'openai' | 'mock' | 'claude-code' | string;
|
|
345
452
|
/** Maximum number of checks to run in parallel (default: 3) */
|
|
346
453
|
max_parallelism?: number;
|
|
347
454
|
/** Stop execution when any check fails (default: false) */
|