@probelabs/visor 0.1.87 → 0.1.88
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 +12 -2
- package/dist/ai-review-service.d.ts +2 -1
- package/dist/ai-review-service.d.ts.map +1 -1
- package/dist/check-execution-engine.d.ts.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/generated/config-schema.d.ts +5 -0
- package/dist/generated/config-schema.d.ts.map +1 -1
- package/dist/generated/config-schema.json +8 -0
- package/dist/github-check-service.d.ts.map +1 -1
- package/dist/index.js +241 -37
- package/dist/output-formatters.d.ts.map +1 -1
- package/dist/providers/ai-check-provider.d.ts.map +1 -1
- package/dist/reviewer.d.ts +2 -0
- package/dist/reviewer.d.ts.map +1 -1
- package/dist/sdk/{check-execution-engine-2YUDSTZS.mjs → check-execution-engine-D6FPIIKR.mjs} +2 -2
- package/dist/sdk/{chunk-VQGP55ZL.mjs → chunk-N34GS4A5.mjs} +81 -9
- package/dist/sdk/chunk-N34GS4A5.mjs.map +1 -0
- package/dist/sdk/sdk.d.mts +4 -0
- package/dist/sdk/sdk.d.ts +4 -0
- package/dist/sdk/sdk.js +100 -7
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +22 -1
- package/dist/sdk/sdk.mjs.map +1 -1
- package/dist/session-registry.d.ts +5 -0
- package/dist/session-registry.d.ts.map +1 -1
- package/dist/types/config.d.ts +2 -0
- package/dist/types/config.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/sdk/chunk-VQGP55ZL.mjs.map +0 -1
- /package/dist/sdk/{check-execution-engine-2YUDSTZS.mjs.map → check-execution-engine-D6FPIIKR.mjs.map} +0 -0
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@ Visor ships with a ready-to-run configuration at `defaults/.visor.yaml`, so you
|
|
|
30
30
|
# .github/workflows/visor.yml
|
|
31
31
|
name: Visor
|
|
32
32
|
on:
|
|
33
|
-
pull_request: { types: [opened, synchronize] }
|
|
33
|
+
pull_request: { types: [opened, synchronize] } # For fork PRs, see docs/GITHUB_CHECKS.md
|
|
34
34
|
issues: { types: [opened] }
|
|
35
35
|
issue_comment: { types: [created] }
|
|
36
36
|
permissions:
|
|
@@ -50,6 +50,7 @@ jobs:
|
|
|
50
50
|
|
|
51
51
|
### Open a PR
|
|
52
52
|
- Visor posts a PR summary, creates GitHub Check runs, and annotates lines.
|
|
53
|
+
- **Note**: For external contributor PRs from forks, check runs may not be available due to GitHub security restrictions. Visor will gracefully fall back to PR comments. See [Fork PR Support](docs/GITHUB_CHECKS.md#fork-pr-support) for how to enable check runs for forks.
|
|
53
54
|
|
|
54
55
|
### Optional: Add `.visor.yaml`
|
|
55
56
|
|
|
@@ -415,7 +416,11 @@ Learn more: [docs/claude-code.md](docs/claude-code.md)
|
|
|
415
416
|
|
|
416
417
|
## 🔄 AI Session Reuse
|
|
417
418
|
|
|
418
|
-
Reuse context between dependent AI checks for smarter follow‑ups.
|
|
419
|
+
Reuse conversation context between dependent AI checks for smarter follow‑ups.
|
|
420
|
+
|
|
421
|
+
**Two modes available:**
|
|
422
|
+
- **`clone` (default)**: Independent copy of history for parallel follow-ups
|
|
423
|
+
- **`append`**: Shared conversation thread for sequential multi-turn dialogue
|
|
419
424
|
|
|
420
425
|
Example:
|
|
421
426
|
```yaml
|
|
@@ -424,7 +429,12 @@ checks:
|
|
|
424
429
|
remediation:
|
|
425
430
|
type: ai
|
|
426
431
|
depends_on: [security]
|
|
432
|
+
reuse_ai_session: true # Clones history by default
|
|
433
|
+
verify:
|
|
434
|
+
type: ai
|
|
435
|
+
depends_on: [remediation]
|
|
427
436
|
reuse_ai_session: true
|
|
437
|
+
session_mode: append # Shares history for full conversation
|
|
428
438
|
```
|
|
429
439
|
|
|
430
440
|
Learn more: [docs/advanced-ai.md](docs/advanced-ai.md)
|
|
@@ -65,8 +65,9 @@ export declare class AIReviewService {
|
|
|
65
65
|
executeReview(prInfo: PRInfo, customPrompt: string, schema?: string | Record<string, unknown>, _checkName?: string, sessionId?: string): Promise<ReviewSummary>;
|
|
66
66
|
/**
|
|
67
67
|
* Execute AI review using session reuse - reuses an existing ProbeAgent session
|
|
68
|
+
* @param sessionMode - 'clone' (default) clones history, 'append' shares history
|
|
68
69
|
*/
|
|
69
|
-
executeReviewWithSessionReuse(prInfo: PRInfo, customPrompt: string, parentSessionId: string, schema?: string | Record<string, unknown>, checkName?: string): Promise<ReviewSummary>;
|
|
70
|
+
executeReviewWithSessionReuse(prInfo: PRInfo, customPrompt: string, parentSessionId: string, schema?: string | Record<string, unknown>, checkName?: string, sessionMode?: 'clone' | 'append'): Promise<ReviewSummary>;
|
|
70
71
|
/**
|
|
71
72
|
* Register a new AI session in the session registry
|
|
72
73
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/ai-review-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAe,MAAM,YAAY,CAAC;AAWxD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,CAAC;IAClF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IAExD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,qCAAqC;IACrC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ;AAmBD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,eAAe,CAAkB;gBAE7B,MAAM,GAAE,cAAmB;IAyCvC;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC;IA+GzB
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/ai-review-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
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":"AAKA,OAAO,EACL,WAAW,EAOX,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC;;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;IA4DrD;;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;IAsKtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/config.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,WAAW,EAOX,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC;;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;IA4DrD;;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;IAsKtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmM3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA0DhC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAyE7B;;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"}
|
|
@@ -222,6 +222,11 @@ export declare const configSchema: {
|
|
|
222
222
|
readonly type: readonly ["string", "boolean"];
|
|
223
223
|
readonly description: "Check name to reuse AI session from, or true to use first dependency (only works with depends_on)";
|
|
224
224
|
};
|
|
225
|
+
readonly session_mode: {
|
|
226
|
+
readonly type: "string";
|
|
227
|
+
readonly enum: readonly ["clone", "append"];
|
|
228
|
+
readonly description: "How to reuse AI session: 'clone' (default, copy history) or 'append' (share history)";
|
|
229
|
+
};
|
|
225
230
|
readonly fail_if: {
|
|
226
231
|
readonly type: "string";
|
|
227
232
|
readonly description: "Simple fail condition - fails check if expression evaluates to true";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/generated/config-schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/generated/config-schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAs7Bf,CAAC;AACX,eAAe,YAAY,CAAC"}
|
|
@@ -235,6 +235,14 @@
|
|
|
235
235
|
],
|
|
236
236
|
"description": "Check name to reuse AI session from, or true to use first dependency (only works with depends_on)"
|
|
237
237
|
},
|
|
238
|
+
"session_mode": {
|
|
239
|
+
"type": "string",
|
|
240
|
+
"enum": [
|
|
241
|
+
"clone",
|
|
242
|
+
"append"
|
|
243
|
+
],
|
|
244
|
+
"description": "How to reuse AI session: 'clone' (default, copy history) or 'append' (share history)"
|
|
245
|
+
},
|
|
238
246
|
"fail_if": {
|
|
239
247
|
"type": "string",
|
|
240
248
|
"description": "Simple fail condition - fails check if expression evaluates to true"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/github-check-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,SAAS,GACT,WAAW,GACX,WAAW,GACX,iBAAiB,CAAC;AAEtB;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,cAAc,CAAM;gBAEhB,OAAO,EAAE,OAAO;IAI5B;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IA8BvC;;OAEG;IACG,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC;IAsBhB;;OAEG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,sBAAsB,EAAE,EACxC,YAAY,GAAE,WAAW,EAAO,EAChC,cAAc,CAAC,EAAE,MAAM,EACvB,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/github-check-service.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
process.env.VISOR_VERSION = '0.1.
|
|
2
|
+
process.env.VISOR_VERSION = '0.1.88';
|
|
3
3
|
process.env.PROBE_VERSION = '0.6.0-rc124';
|
|
4
4
|
/******/ (() => { // webpackBootstrap
|
|
5
5
|
/******/ var __webpack_modules__ = ({
|
|
@@ -99834,8 +99834,9 @@ class AIReviewService {
|
|
|
99834
99834
|
}
|
|
99835
99835
|
/**
|
|
99836
99836
|
* Execute AI review using session reuse - reuses an existing ProbeAgent session
|
|
99837
|
+
* @param sessionMode - 'clone' (default) clones history, 'append' shares history
|
|
99837
99838
|
*/
|
|
99838
|
-
async executeReviewWithSessionReuse(prInfo, customPrompt, parentSessionId, schema, checkName) {
|
|
99839
|
+
async executeReviewWithSessionReuse(prInfo, customPrompt, parentSessionId, schema, checkName, sessionMode = 'clone') {
|
|
99839
99840
|
const startTime = Date.now();
|
|
99840
99841
|
const timestamp = new Date().toISOString();
|
|
99841
99842
|
// Get the existing session
|
|
@@ -99845,7 +99846,25 @@ class AIReviewService {
|
|
|
99845
99846
|
}
|
|
99846
99847
|
// Build prompt from custom instructions
|
|
99847
99848
|
const prompt = await this.buildCustomPrompt(prInfo, customPrompt, schema);
|
|
99848
|
-
|
|
99849
|
+
// Determine which agent to use based on session mode
|
|
99850
|
+
let agentToUse;
|
|
99851
|
+
let currentSessionId;
|
|
99852
|
+
if (sessionMode === 'clone') {
|
|
99853
|
+
// Clone the session - creates a new agent with copied history
|
|
99854
|
+
currentSessionId = `${parentSessionId}-clone-${Date.now()}`;
|
|
99855
|
+
log(`📋 Cloning AI session ${parentSessionId} → ${currentSessionId}...`);
|
|
99856
|
+
const clonedAgent = await this.sessionRegistry.cloneSession(parentSessionId, currentSessionId);
|
|
99857
|
+
if (!clonedAgent) {
|
|
99858
|
+
throw new Error(`Failed to clone session ${parentSessionId}. Falling back to append mode.`);
|
|
99859
|
+
}
|
|
99860
|
+
agentToUse = clonedAgent;
|
|
99861
|
+
}
|
|
99862
|
+
else {
|
|
99863
|
+
// Append mode - use the same agent instance
|
|
99864
|
+
log(`🔄 Appending to AI session ${parentSessionId} (shared history)...`);
|
|
99865
|
+
agentToUse = existingAgent;
|
|
99866
|
+
currentSessionId = parentSessionId;
|
|
99867
|
+
}
|
|
99849
99868
|
log(`🔧 Debug: Raw schema parameter: ${JSON.stringify(schema)} (type: ${typeof schema})`);
|
|
99850
99869
|
log(`Schema type: ${schema || 'none (no schema)'}`);
|
|
99851
99870
|
let debugInfo;
|
|
@@ -99867,8 +99886,8 @@ class AIReviewService {
|
|
|
99867
99886
|
};
|
|
99868
99887
|
}
|
|
99869
99888
|
try {
|
|
99870
|
-
// Use
|
|
99871
|
-
const { response, effectiveSchema } = await this.callProbeAgentWithExistingSession(
|
|
99889
|
+
// Use the determined agent (cloned or original)
|
|
99890
|
+
const { response, effectiveSchema } = await this.callProbeAgentWithExistingSession(agentToUse, prompt, schema, debugInfo, checkName);
|
|
99872
99891
|
const processingTime = Date.now() - startTime;
|
|
99873
99892
|
if (debugInfo) {
|
|
99874
99893
|
debugInfo.rawResponse = response;
|
|
@@ -99879,6 +99898,11 @@ class AIReviewService {
|
|
|
99879
99898
|
if (debugInfo) {
|
|
99880
99899
|
result.debug = debugInfo;
|
|
99881
99900
|
}
|
|
99901
|
+
// Include the session ID in the result for cleanup tracking
|
|
99902
|
+
// Only include if we created a new cloned session
|
|
99903
|
+
if (sessionMode === 'clone' && currentSessionId !== parentSessionId) {
|
|
99904
|
+
result.sessionId = currentSessionId;
|
|
99905
|
+
}
|
|
99882
99906
|
return result;
|
|
99883
99907
|
}
|
|
99884
99908
|
catch (error) {
|
|
@@ -102693,6 +102717,13 @@ class CheckExecutionEngine {
|
|
|
102693
102717
|
if (debug) {
|
|
102694
102718
|
log(`🔧 Debug: Completed check: ${checkName}, issues found: ${(finalResult.issues || []).length}`);
|
|
102695
102719
|
}
|
|
102720
|
+
// Track cloned session IDs for cleanup
|
|
102721
|
+
if (finalResult.sessionId) {
|
|
102722
|
+
sessionIds.set(checkName, finalResult.sessionId);
|
|
102723
|
+
if (debug) {
|
|
102724
|
+
log(`🔧 Debug: Tracked cloned session for cleanup: ${finalResult.sessionId}`);
|
|
102725
|
+
}
|
|
102726
|
+
}
|
|
102696
102727
|
}
|
|
102697
102728
|
// Add checkName, group, schema, template info and timestamp to issues from config
|
|
102698
102729
|
const enrichedIssues = (finalResult.issues || []).map(issue => ({
|
|
@@ -105493,6 +105524,24 @@ class ConfigManager {
|
|
|
105493
105524
|
}
|
|
105494
105525
|
}
|
|
105495
105526
|
}
|
|
105527
|
+
// Validate session_mode configuration
|
|
105528
|
+
if (checkConfig.session_mode !== undefined) {
|
|
105529
|
+
if (checkConfig.session_mode !== 'clone' && checkConfig.session_mode !== 'append') {
|
|
105530
|
+
errors.push({
|
|
105531
|
+
field: `checks.${checkName}.session_mode`,
|
|
105532
|
+
message: `Invalid session_mode value for "${checkName}": must be 'clone' or 'append'`,
|
|
105533
|
+
value: checkConfig.session_mode,
|
|
105534
|
+
});
|
|
105535
|
+
}
|
|
105536
|
+
// session_mode only makes sense with reuse_ai_session
|
|
105537
|
+
if (!checkConfig.reuse_ai_session) {
|
|
105538
|
+
errors.push({
|
|
105539
|
+
field: `checks.${checkName}.session_mode`,
|
|
105540
|
+
message: `Check "${checkName}" has session_mode but no reuse_ai_session. session_mode requires reuse_ai_session to be set.`,
|
|
105541
|
+
value: checkConfig.session_mode,
|
|
105542
|
+
});
|
|
105543
|
+
}
|
|
105544
|
+
}
|
|
105496
105545
|
// Validate tags configuration
|
|
105497
105546
|
if (checkConfig.tags !== undefined) {
|
|
105498
105547
|
if (!Array.isArray(checkConfig.tags)) {
|
|
@@ -106871,6 +106920,11 @@ exports.configSchema = {
|
|
|
106871
106920
|
type: ['string', 'boolean'],
|
|
106872
106921
|
description: 'Check name to reuse AI session from, or true to use first dependency (only works with depends_on)',
|
|
106873
106922
|
},
|
|
106923
|
+
session_mode: {
|
|
106924
|
+
type: 'string',
|
|
106925
|
+
enum: ['clone', 'append'],
|
|
106926
|
+
description: "How to reuse AI session: 'clone' (default, copy history) or 'append' (share history)",
|
|
106927
|
+
},
|
|
106874
106928
|
fail_if: {
|
|
106875
106929
|
type: 'string',
|
|
106876
106930
|
description: 'Simple fail condition - fails check if expression evaluates to true',
|
|
@@ -107997,11 +108051,13 @@ class GitHubCheckService {
|
|
|
107997
108051
|
await this.clearOldAnnotations(owner, repo, prNumber, checkName, currentCommitSha, check_run_id);
|
|
107998
108052
|
}
|
|
107999
108053
|
const { conclusion, summary } = this.determineCheckRunConclusion(checkName, failureResults, reviewIssues, executionError);
|
|
108054
|
+
// Filter out system-level issues (fail_if conditions, internal errors)
|
|
108055
|
+
// These should not appear as annotations but affect the check conclusion
|
|
108056
|
+
let filteredIssues = reviewIssues.filter(issue => !(issue.file === 'system' && issue.line === 0));
|
|
108000
108057
|
// Filter annotations to only include files changed in this commit
|
|
108001
108058
|
// This prevents old annotations from previous commits showing up in the Files tab
|
|
108002
|
-
let filteredIssues = reviewIssues;
|
|
108003
108059
|
if (filesChangedInCommit && filesChangedInCommit.length > 0) {
|
|
108004
|
-
filteredIssues =
|
|
108060
|
+
filteredIssues = filteredIssues.filter(issue => filesChangedInCommit.some(changedFile => issue.file === changedFile));
|
|
108005
108061
|
}
|
|
108006
108062
|
const annotations = this.convertIssuesToAnnotations(filteredIssues);
|
|
108007
108063
|
await this.octokit.rest.checks.update({
|
|
@@ -108984,7 +109040,39 @@ async function handleEvent(octokit, inputs, eventName, context, config) {
|
|
|
108984
109040
|
if (!owner || !repo) {
|
|
108985
109041
|
throw new Error('Owner and repo are required');
|
|
108986
109042
|
}
|
|
108987
|
-
|
|
109043
|
+
// Determine context type for better logging
|
|
109044
|
+
const isPullRequest = eventName === 'pull_request';
|
|
109045
|
+
const isIssue = eventName === 'issues';
|
|
109046
|
+
const isIssueComment = eventName === 'issue_comment';
|
|
109047
|
+
const isManualCLI = !eventName || eventName === 'unknown';
|
|
109048
|
+
// Map GitHub event to our event trigger format
|
|
109049
|
+
const eventType = mapGitHubEventToTrigger(eventName, context.event?.action);
|
|
109050
|
+
// Enhanced event logging with context
|
|
109051
|
+
if (isManualCLI) {
|
|
109052
|
+
console.log(`🖥️ Mode: Manual CLI`);
|
|
109053
|
+
console.log(`📂 Repository: ${owner}/${repo}`);
|
|
109054
|
+
}
|
|
109055
|
+
else {
|
|
109056
|
+
console.log(`🤖 Mode: GitHub Action`);
|
|
109057
|
+
console.log(`📂 Repository: ${owner}/${repo}`);
|
|
109058
|
+
console.log(`📋 Event: ${eventName}${context.event?.action ? ` (action: ${context.event?.action})` : ''}`);
|
|
109059
|
+
console.log(`🎯 Trigger: ${eventType}`);
|
|
109060
|
+
// Show context-specific information
|
|
109061
|
+
if (isPullRequest) {
|
|
109062
|
+
const prNumber = context.event?.pull_request?.number;
|
|
109063
|
+
console.log(`🔀 Context: Pull Request #${prNumber}`);
|
|
109064
|
+
}
|
|
109065
|
+
else if (isIssue) {
|
|
109066
|
+
const issueNumber = context.event?.issue?.number;
|
|
109067
|
+
console.log(`🎫 Context: Issue #${issueNumber}`);
|
|
109068
|
+
}
|
|
109069
|
+
else if (isIssueComment) {
|
|
109070
|
+
const issueOrPR = context.event?.issue;
|
|
109071
|
+
const isPR = issueOrPR?.pull_request ? true : false;
|
|
109072
|
+
const number = issueOrPR?.number;
|
|
109073
|
+
console.log(`💬 Context: Comment on ${isPR ? 'Pull Request' : 'Issue'} #${number}`);
|
|
109074
|
+
}
|
|
109075
|
+
}
|
|
108988
109076
|
// Debug: Log the checks that are available in the loaded config
|
|
108989
109077
|
const allChecks = Object.keys(config.checks || {});
|
|
108990
109078
|
console.log(`📚 Total checks in loaded config: ${allChecks.length}`);
|
|
@@ -108992,8 +109080,6 @@ async function handleEvent(octokit, inputs, eventName, context, config) {
|
|
|
108992
109080
|
// Only log check names if there aren't too many
|
|
108993
109081
|
console.log(`📚 Available checks: ${allChecks.join(', ')}`);
|
|
108994
109082
|
}
|
|
108995
|
-
// Map GitHub event to our event trigger format
|
|
108996
|
-
const eventType = mapGitHubEventToTrigger(eventName, context.event?.action);
|
|
108997
109083
|
// Find checks that should run for this event
|
|
108998
109084
|
let checksToRun = [];
|
|
108999
109085
|
// First, get all checks that are configured for this event type
|
|
@@ -109117,7 +109203,7 @@ async function handleIssueEvent(octokit, owner, repo, context, inputs, config, c
|
|
|
109117
109203
|
console.log('Skipping PR-related issue event');
|
|
109118
109204
|
return;
|
|
109119
109205
|
}
|
|
109120
|
-
console.log(
|
|
109206
|
+
console.log(`📋 Processing issue #${issue.number} event: ${action} with ${checksToRun.length} check(s): ${checksToRun.join(', ')}`);
|
|
109121
109207
|
// For issue events, we need to create a PR-like structure for the checks to process
|
|
109122
109208
|
// This allows us to reuse the existing check infrastructure
|
|
109123
109209
|
const prInfo = {
|
|
@@ -109156,6 +109242,19 @@ async function handleIssueEvent(octokit, owner, repo, context, inputs, config, c
|
|
|
109156
109242
|
config, undefined, // outputFormat
|
|
109157
109243
|
inputs.debug === 'true');
|
|
109158
109244
|
const { results } = executionResult;
|
|
109245
|
+
// Log execution results for debugging (only in debug mode)
|
|
109246
|
+
if (inputs.debug === 'true') {
|
|
109247
|
+
console.log(`📊 Check execution completed: ${Object.keys(results).length} group(s)`);
|
|
109248
|
+
for (const [group, checks] of Object.entries(results)) {
|
|
109249
|
+
console.log(` Group "${group}": ${checks.length} check(s)`);
|
|
109250
|
+
for (const check of checks) {
|
|
109251
|
+
const hasContent = check.content && check.content.trim();
|
|
109252
|
+
const contentLength = hasContent ? check.content.trim().length : 0;
|
|
109253
|
+
const issueCount = check.issues?.length || 0;
|
|
109254
|
+
console.log(` - ${check.checkName}: ${hasContent ? `${contentLength} chars` : 'empty'}, ${issueCount} issue(s)`);
|
|
109255
|
+
}
|
|
109256
|
+
}
|
|
109257
|
+
}
|
|
109159
109258
|
// Format and post results as a comment on the issue
|
|
109160
109259
|
if (Object.keys(results).length > 0) {
|
|
109161
109260
|
let commentBody = '';
|
|
@@ -109167,18 +109266,24 @@ async function handleIssueEvent(octokit, owner, repo, context, inputs, config, c
|
|
|
109167
109266
|
}
|
|
109168
109267
|
}
|
|
109169
109268
|
}
|
|
109170
|
-
|
|
109171
|
-
|
|
109172
|
-
|
|
109173
|
-
|
|
109174
|
-
|
|
109175
|
-
|
|
109176
|
-
|
|
109177
|
-
|
|
109178
|
-
|
|
109269
|
+
// Only post if there's actual content (not just empty checks)
|
|
109270
|
+
if (commentBody.trim()) {
|
|
109271
|
+
commentBody += `\n---\n*Powered by [Visor](https://github.com/probelabs/visor)*`;
|
|
109272
|
+
// Post comment to the issue
|
|
109273
|
+
await octokit.rest.issues.createComment({
|
|
109274
|
+
owner,
|
|
109275
|
+
repo,
|
|
109276
|
+
issue_number: issue.number,
|
|
109277
|
+
body: commentBody,
|
|
109278
|
+
});
|
|
109279
|
+
console.log(`✅ Posted issue assistant results to issue #${issue.number}`);
|
|
109280
|
+
}
|
|
109281
|
+
else {
|
|
109282
|
+
console.log('ℹ️ No content to post - all checks returned empty results');
|
|
109283
|
+
}
|
|
109179
109284
|
}
|
|
109180
109285
|
else {
|
|
109181
|
-
console.log('No results from issue assistant checks');
|
|
109286
|
+
console.log('⚠️ No results from issue assistant checks');
|
|
109182
109287
|
}
|
|
109183
109288
|
// Set outputs for GitHub Actions
|
|
109184
109289
|
(0, core_1.setOutput)('review-completed', 'true');
|
|
@@ -109208,7 +109313,7 @@ async function handleIssueComment(octokit, owner, repo, context, inputs, actionC
|
|
|
109208
109313
|
comment.body.includes('*Powered by [Visor](https://probelabs.com/visor)') ||
|
|
109209
109314
|
comment.body.includes('*Powered by [Visor](https://github.com/probelabs/visor)'));
|
|
109210
109315
|
if (isVisorBot || hasVisorMarkers) {
|
|
109211
|
-
console.log(
|
|
109316
|
+
console.log(`✓ Skipping bot's own comment to prevent recursion. Author: ${comment.user?.login}, Type: ${comment.user?.type}, Has markers: ${hasVisorMarkers}`);
|
|
109212
109317
|
return;
|
|
109213
109318
|
}
|
|
109214
109319
|
// Process comments on both issues and PRs
|
|
@@ -109635,7 +109740,11 @@ async function createGitHubChecks(octokit, inputs, owner, repo, headSha, checksT
|
|
|
109635
109740
|
console.log(`✅ Created check run for ${checkName}: ${checkRun.url}`);
|
|
109636
109741
|
}
|
|
109637
109742
|
catch (error) {
|
|
109638
|
-
|
|
109743
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
109744
|
+
// Extract just the meaningful error message without stack trace
|
|
109745
|
+
const cleanMessage = errorMessage.split('\n')[0].replace('Error: ', '');
|
|
109746
|
+
console.error(`⚠️ Could not create check run for ${checkName}: ${cleanMessage}`);
|
|
109747
|
+
console.log('💬 Review will continue using PR comments instead');
|
|
109639
109748
|
// Continue with other checks even if one fails
|
|
109640
109749
|
}
|
|
109641
109750
|
}
|
|
@@ -109661,7 +109770,10 @@ async function createGitHubChecks(octokit, inputs, owner, repo, headSha, checksT
|
|
|
109661
109770
|
console.log(`✅ Created combined check run: ${checkRun.url}`);
|
|
109662
109771
|
}
|
|
109663
109772
|
catch (error) {
|
|
109664
|
-
|
|
109773
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
109774
|
+
const cleanMessage = errorMessage.split('\n')[0].replace('Error: ', '');
|
|
109775
|
+
console.error(`⚠️ Could not create combined check run: ${cleanMessage}`);
|
|
109776
|
+
console.log('💬 Review will continue using PR comments instead');
|
|
109665
109777
|
}
|
|
109666
109778
|
}
|
|
109667
109779
|
return {
|
|
@@ -109685,7 +109797,10 @@ async function createGitHubChecks(octokit, inputs, owner, repo, headSha, checksT
|
|
|
109685
109797
|
};
|
|
109686
109798
|
}
|
|
109687
109799
|
else {
|
|
109688
|
-
|
|
109800
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
109801
|
+
const cleanMessage = errorMessage.split('\n')[0].replace('Error: ', '');
|
|
109802
|
+
console.error(`⚠️ Could not create GitHub check runs: ${cleanMessage}`);
|
|
109803
|
+
console.log('💬 Review will continue using PR comments instead');
|
|
109689
109804
|
return {
|
|
109690
109805
|
checkRunMap: null,
|
|
109691
109806
|
checksApiAvailable: false,
|
|
@@ -110351,8 +110466,9 @@ class OutputFormatters {
|
|
|
110351
110466
|
static formatAsTable(result, options = {}) {
|
|
110352
110467
|
const { showDetails = false, groupByCategory = true } = options;
|
|
110353
110468
|
let output = '';
|
|
110354
|
-
//
|
|
110355
|
-
|
|
110469
|
+
// Filter out system-level issues (fail_if conditions, internal errors)
|
|
110470
|
+
// These should not appear in user-facing output
|
|
110471
|
+
const issues = (result.reviewSummary.issues || []).filter(issue => !(issue.file === 'system' && issue.line === 0));
|
|
110356
110472
|
const totalIssues = issues.length;
|
|
110357
110473
|
const criticalIssues = issues.filter(i => i.severity === 'critical').length;
|
|
110358
110474
|
// Check if this is a code review context
|
|
@@ -110502,8 +110618,8 @@ class OutputFormatters {
|
|
|
110502
110618
|
* Format analysis results as JSON
|
|
110503
110619
|
*/
|
|
110504
110620
|
static formatAsJSON(result, options = {}) {
|
|
110505
|
-
//
|
|
110506
|
-
const issues = result.reviewSummary.issues;
|
|
110621
|
+
// Filter out system-level issues (fail_if conditions, internal errors)
|
|
110622
|
+
const issues = (result.reviewSummary.issues || []).filter(issue => !(issue.file === 'system' && issue.line === 0));
|
|
110507
110623
|
const totalIssues = (0, reviewer_1.calculateTotalIssues)(issues);
|
|
110508
110624
|
const criticalIssues = (0, reviewer_1.calculateCriticalIssues)(issues);
|
|
110509
110625
|
const jsonResult = {
|
|
@@ -110538,8 +110654,8 @@ class OutputFormatters {
|
|
|
110538
110654
|
* Format analysis results as SARIF 2.1.0
|
|
110539
110655
|
*/
|
|
110540
110656
|
static formatAsSarif(result, _options = {}) {
|
|
110541
|
-
//
|
|
110542
|
-
const issues = result.reviewSummary.issues;
|
|
110657
|
+
// Filter out system-level issues (fail_if conditions, internal errors)
|
|
110658
|
+
const issues = (result.reviewSummary.issues || []).filter(issue => !(issue.file === 'system' && issue.line === 0));
|
|
110543
110659
|
// Generate unique rule definitions for each issue category
|
|
110544
110660
|
const rules = [
|
|
110545
110661
|
{
|
|
@@ -110661,8 +110777,8 @@ class OutputFormatters {
|
|
|
110661
110777
|
static formatAsMarkdown(result, options = {}) {
|
|
110662
110778
|
const { showDetails = false, groupByCategory = true } = options;
|
|
110663
110779
|
let output = '';
|
|
110664
|
-
//
|
|
110665
|
-
const issues = result.reviewSummary.issues;
|
|
110780
|
+
// Filter out system-level issues (fail_if conditions, internal errors)
|
|
110781
|
+
const issues = (result.reviewSummary.issues || []).filter(issue => !(issue.file === 'system' && issue.line === 0));
|
|
110666
110782
|
const totalIssues = (0, reviewer_1.calculateTotalIssues)(issues);
|
|
110667
110783
|
const criticalIssues = (0, reviewer_1.calculateCriticalIssues)(issues);
|
|
110668
110784
|
// Header with summary
|
|
@@ -111635,10 +111751,12 @@ class AICheckProvider extends check_provider_interface_1.CheckProvider {
|
|
|
111635
111751
|
let result;
|
|
111636
111752
|
// Check if we should use session reuse
|
|
111637
111753
|
if (sessionInfo?.reuseSession && sessionInfo.parentSessionId) {
|
|
111754
|
+
// Get session_mode from config, default to 'clone'
|
|
111755
|
+
const sessionMode = config.session_mode || 'clone';
|
|
111638
111756
|
if (aiConfig.debug) {
|
|
111639
|
-
console.error(`🔄 Debug: Using session reuse with parent session: ${sessionInfo.parentSessionId}`);
|
|
111757
|
+
console.error(`🔄 Debug: Using session reuse with parent session: ${sessionInfo.parentSessionId} (mode: ${sessionMode})`);
|
|
111640
111758
|
}
|
|
111641
|
-
result = await service.executeReviewWithSessionReuse(prInfo, processedPrompt, sessionInfo.parentSessionId, schema, config.checkName);
|
|
111759
|
+
result = await service.executeReviewWithSessionReuse(prInfo, processedPrompt, sessionInfo.parentSessionId, schema, config.checkName, sessionMode);
|
|
111642
111760
|
}
|
|
111643
111761
|
else {
|
|
111644
111762
|
if (aiConfig.debug) {
|
|
@@ -114417,10 +114535,43 @@ exports.PRReviewer = PRReviewer;
|
|
|
114417
114535
|
/***/ }),
|
|
114418
114536
|
|
|
114419
114537
|
/***/ 46059:
|
|
114420
|
-
/***/ ((__unused_webpack_module, exports)
|
|
114538
|
+
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
|
114421
114539
|
|
|
114422
114540
|
"use strict";
|
|
114423
114541
|
|
|
114542
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
114543
|
+
if (k2 === undefined) k2 = k;
|
|
114544
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
114545
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
114546
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
114547
|
+
}
|
|
114548
|
+
Object.defineProperty(o, k2, desc);
|
|
114549
|
+
}) : (function(o, m, k, k2) {
|
|
114550
|
+
if (k2 === undefined) k2 = k;
|
|
114551
|
+
o[k2] = m[k];
|
|
114552
|
+
}));
|
|
114553
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
114554
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
114555
|
+
}) : function(o, v) {
|
|
114556
|
+
o["default"] = v;
|
|
114557
|
+
});
|
|
114558
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
114559
|
+
var ownKeys = function(o) {
|
|
114560
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
114561
|
+
var ar = [];
|
|
114562
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
114563
|
+
return ar;
|
|
114564
|
+
};
|
|
114565
|
+
return ownKeys(o);
|
|
114566
|
+
};
|
|
114567
|
+
return function (mod) {
|
|
114568
|
+
if (mod && mod.__esModule) return mod;
|
|
114569
|
+
var result = {};
|
|
114570
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
114571
|
+
__setModuleDefault(result, mod);
|
|
114572
|
+
return result;
|
|
114573
|
+
};
|
|
114574
|
+
})();
|
|
114424
114575
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
114425
114576
|
exports.SessionRegistry = void 0;
|
|
114426
114577
|
/**
|
|
@@ -114513,6 +114664,59 @@ class SessionRegistry {
|
|
|
114513
114664
|
hasSession(sessionId) {
|
|
114514
114665
|
return this.sessions.has(sessionId);
|
|
114515
114666
|
}
|
|
114667
|
+
/**
|
|
114668
|
+
* Clone a session with a new session ID
|
|
114669
|
+
* Creates a new ProbeAgent with a copy of the conversation history
|
|
114670
|
+
*/
|
|
114671
|
+
async cloneSession(sourceSessionId, newSessionId) {
|
|
114672
|
+
const sourceAgent = this.sessions.get(sourceSessionId);
|
|
114673
|
+
if (!sourceAgent) {
|
|
114674
|
+
console.error(`⚠️ Cannot clone session: ${sourceSessionId} not found`);
|
|
114675
|
+
return undefined;
|
|
114676
|
+
}
|
|
114677
|
+
try {
|
|
114678
|
+
// Access the conversation history from the source agent
|
|
114679
|
+
// ProbeAgent stores history in a private field, we need to access it via 'any'
|
|
114680
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
114681
|
+
const sourceHistory = sourceAgent.conversationHistory || [];
|
|
114682
|
+
// Create a new agent with the same configuration
|
|
114683
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
114684
|
+
const sourceOptions = sourceAgent.options || {};
|
|
114685
|
+
// Import ProbeAgent dynamically to create new instance
|
|
114686
|
+
const { ProbeAgent: ProbeAgentClass } = await Promise.resolve().then(() => __importStar(__nccwpck_require__(83841)));
|
|
114687
|
+
const clonedAgent = new ProbeAgentClass({
|
|
114688
|
+
...sourceOptions,
|
|
114689
|
+
sessionId: newSessionId,
|
|
114690
|
+
});
|
|
114691
|
+
// Deep copy the conversation history to ensure complete isolation
|
|
114692
|
+
// Use JSON serialization for deep cloning to prevent shared object references
|
|
114693
|
+
if (sourceHistory.length > 0) {
|
|
114694
|
+
try {
|
|
114695
|
+
// Deep clone the history array and all message objects within it
|
|
114696
|
+
const deepClonedHistory = JSON.parse(JSON.stringify(sourceHistory));
|
|
114697
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
114698
|
+
clonedAgent.conversationHistory = deepClonedHistory;
|
|
114699
|
+
console.error(`📋 Cloned session ${sourceSessionId} → ${newSessionId} (${sourceHistory.length} messages, deep copy)`);
|
|
114700
|
+
}
|
|
114701
|
+
catch (cloneError) {
|
|
114702
|
+
// Fallback to shallow copy if deep clone fails (e.g., circular references)
|
|
114703
|
+
console.error(`⚠️ Warning: Deep clone failed for session ${sourceSessionId}, using shallow copy: ${cloneError}`);
|
|
114704
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
114705
|
+
clonedAgent.conversationHistory = [...sourceHistory];
|
|
114706
|
+
}
|
|
114707
|
+
}
|
|
114708
|
+
else {
|
|
114709
|
+
console.error(`📋 Cloned session ${sourceSessionId} → ${newSessionId} (no history)`);
|
|
114710
|
+
}
|
|
114711
|
+
// Register the cloned session
|
|
114712
|
+
this.registerSession(newSessionId, clonedAgent);
|
|
114713
|
+
return clonedAgent;
|
|
114714
|
+
}
|
|
114715
|
+
catch (error) {
|
|
114716
|
+
console.error(`⚠️ Failed to clone session ${sourceSessionId}: ${error}`);
|
|
114717
|
+
return undefined;
|
|
114718
|
+
}
|
|
114719
|
+
}
|
|
114516
114720
|
/**
|
|
114517
114721
|
* Register process exit handlers to cleanup sessions on exit
|
|
114518
114722
|
*/
|
|
@@ -232077,7 +232281,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"application/1d-interleaved-parityfec
|
|
|
232077
232281
|
/***/ ((module) => {
|
|
232078
232282
|
|
|
232079
232283
|
"use strict";
|
|
232080
|
-
module.exports = {"rE":"0.1.
|
|
232284
|
+
module.exports = {"rE":"0.1.88"};
|
|
232081
232285
|
|
|
232082
232286
|
/***/ })
|
|
232083
232287
|
|