@probelabs/visor 0.1.86 → 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.
Files changed (33) hide show
  1. package/README.md +19 -2
  2. package/dist/action-cli-bridge.d.ts.map +1 -1
  3. package/dist/ai-review-service.d.ts +2 -1
  4. package/dist/ai-review-service.d.ts.map +1 -1
  5. package/dist/check-execution-engine.d.ts.map +1 -1
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/failure-condition-evaluator.d.ts.map +1 -1
  8. package/dist/generated/config-schema.d.ts +5 -0
  9. package/dist/generated/config-schema.d.ts.map +1 -1
  10. package/dist/generated/config-schema.json +8 -0
  11. package/dist/github-check-service.d.ts.map +1 -1
  12. package/dist/index.js +384 -80
  13. package/dist/output-formatters.d.ts +8 -0
  14. package/dist/output-formatters.d.ts.map +1 -1
  15. package/dist/providers/ai-check-provider.d.ts.map +1 -1
  16. package/dist/reviewer.d.ts +2 -0
  17. package/dist/reviewer.d.ts.map +1 -1
  18. package/dist/sdk/{check-execution-engine-WI7LJL2G.mjs → check-execution-engine-D6FPIIKR.mjs} +2 -2
  19. package/dist/sdk/{chunk-P4XLP7NN.mjs → chunk-N34GS4A5.mjs} +160 -32
  20. package/dist/sdk/chunk-N34GS4A5.mjs.map +1 -0
  21. package/dist/sdk/sdk.d.mts +4 -0
  22. package/dist/sdk/sdk.d.ts +4 -0
  23. package/dist/sdk/sdk.js +179 -30
  24. package/dist/sdk/sdk.js.map +1 -1
  25. package/dist/sdk/sdk.mjs +22 -1
  26. package/dist/sdk/sdk.mjs.map +1 -1
  27. package/dist/session-registry.d.ts +5 -0
  28. package/dist/session-registry.d.ts.map +1 -1
  29. package/dist/types/config.d.ts +2 -0
  30. package/dist/types/config.d.ts.map +1 -1
  31. package/package.json +1 -1
  32. package/dist/sdk/chunk-P4XLP7NN.mjs.map +0 -1
  33. /package/dist/sdk/{check-execution-engine-WI7LJL2G.mjs.map → check-execution-engine-D6FPIIKR.mjs.map} +0 -0
@@ -34,6 +34,11 @@ export interface OutputFormatterOptions {
34
34
  includeTimestamp?: boolean;
35
35
  }
36
36
  export declare class OutputFormatters {
37
+ private static readonly MAX_CELL_CHARS;
38
+ private static readonly MAX_CODE_LINES;
39
+ private static readonly WRAP_WIDTH_MESSAGE;
40
+ private static readonly WRAP_WIDTH_MESSAGE_NARROW;
41
+ private static readonly WRAP_WIDTH_CODE;
37
42
  /**
38
43
  * Format analysis results as a table using cli-table3
39
44
  */
@@ -64,4 +69,7 @@ export declare class OutputFormatters {
64
69
  private static getSeverityColor;
65
70
  private static truncateText;
66
71
  private static wrapText;
72
+ private static truncateCell;
73
+ private static safeWrapAndTruncate;
74
+ private static formatCodeBlock;
67
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/output-formatters.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EAMd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,iBAAiB,CAAC;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,0BAA0B,EAAE,mBAAmB,CAAC;IAC7E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,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;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,sBAA2B,GAAG,MAAM;IA8L1F;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,sBAA2B,GAAG,MAAM;IAoCzF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,GAAE,sBAA2B,GAAG,MAAM;IAmI3F;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,sBAA2B,GAAG,MAAM;IAuN7F,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAqBtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAc7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAsBpC,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAUjC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAU/B,OAAO,CAAC,MAAM,CAAC,YAAY;IAK3B,OAAO,CAAC,MAAM,CAAC,QAAQ;CAmBxB"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/output-formatters.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EAMd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,iBAAiB,CAAC;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,0BAA0B,EAAE,mBAAmB,CAAC;IAC7E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,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;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,gBAAgB;IAG3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAGpC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAGpC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAM;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAE7C;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,sBAA2B,GAAG,MAAM;IAwM1F;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,sBAA2B,GAAG,MAAM;IAsCzF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,GAAE,sBAA2B,GAAG,MAAM;IAqI3F;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,sBAA2B,GAAG,MAAM;IAyN7F,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAqBtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAc7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAsBpC,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAUjC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAU/B,OAAO,CAAC,MAAM,CAAC,YAAY;IAK3B,OAAO,CAAC,MAAM,CAAC,QAAQ;IA6BvB,OAAO,CAAC,MAAM,CAAC,YAAY;IAM3B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAKlC,OAAO,CAAC,MAAM,CAAC,eAAe;CAgB/B"}
@@ -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;AAS5C;;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;IAoDvD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;YACW,aAAa;IAmB3B;;OAEG;YACW,UAAU;IAsExB;;OAEG;YACW,kBAAkB;IA0ChC;;OAEG;YACW,oBAAoB;IA0I5B,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;IAoL/B,sBAAsB,IAAI,MAAM,EAAE;IAmB5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAYrC,eAAe,IAAI,MAAM,EAAE;CAQ5B"}
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;AAS5C;;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;IAoDvD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;YACW,aAAa;IAmB3B;;OAEG;YACW,UAAU;IAsExB;;OAEG;YACW,kBAAkB;IA0ChC;;OAEG;YACW,oBAAoB;IA0I5B,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;IAwL/B,sBAAsB,IAAI,MAAM,EAAE;IAmB5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAYrC,eAAe,IAAI,MAAM,EAAE;CAQ5B"}
@@ -39,6 +39,8 @@ export interface GroupedCheckResults {
39
39
  export interface ReviewSummary {
40
40
  issues?: ReviewIssue[];
41
41
  debug?: AIDebugInfo;
42
+ /** Session ID created for this check (for cleanup tracking) */
43
+ sessionId?: string;
42
44
  }
43
45
  export declare function convertReviewSummaryToGroupedResults(reviewSummary: ReviewSummary, checkName?: string, groupName?: string): GroupedCheckResults;
44
46
  export declare function calculateTotalIssues(issues?: ReviewIssue[]): number;
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/reviewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/reviewer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  CheckExecutionEngine
3
- } from "./chunk-P4XLP7NN.mjs";
3
+ } from "./chunk-N34GS4A5.mjs";
4
4
  import "./chunk-FIL2OGF6.mjs";
5
5
  import "./chunk-WMJKH4XE.mjs";
6
6
  export {
7
7
  CheckExecutionEngine
8
8
  };
9
- //# sourceMappingURL=check-execution-engine-WI7LJL2G.mjs.map
9
+ //# sourceMappingURL=check-execution-engine-D6FPIIKR.mjs.map
@@ -94,6 +94,47 @@ var init_session_registry = __esm({
94
94
  hasSession(sessionId) {
95
95
  return this.sessions.has(sessionId);
96
96
  }
97
+ /**
98
+ * Clone a session with a new session ID
99
+ * Creates a new ProbeAgent with a copy of the conversation history
100
+ */
101
+ async cloneSession(sourceSessionId, newSessionId) {
102
+ const sourceAgent = this.sessions.get(sourceSessionId);
103
+ if (!sourceAgent) {
104
+ console.error(`\u26A0\uFE0F Cannot clone session: ${sourceSessionId} not found`);
105
+ return void 0;
106
+ }
107
+ try {
108
+ const sourceHistory = sourceAgent.conversationHistory || [];
109
+ const sourceOptions = sourceAgent.options || {};
110
+ const { ProbeAgent: ProbeAgentClass } = await import("@probelabs/probe");
111
+ const clonedAgent = new ProbeAgentClass({
112
+ ...sourceOptions,
113
+ sessionId: newSessionId
114
+ });
115
+ if (sourceHistory.length > 0) {
116
+ try {
117
+ const deepClonedHistory = JSON.parse(JSON.stringify(sourceHistory));
118
+ clonedAgent.conversationHistory = deepClonedHistory;
119
+ console.error(
120
+ `\u{1F4CB} Cloned session ${sourceSessionId} \u2192 ${newSessionId} (${sourceHistory.length} messages, deep copy)`
121
+ );
122
+ } catch (cloneError) {
123
+ console.error(
124
+ `\u26A0\uFE0F Warning: Deep clone failed for session ${sourceSessionId}, using shallow copy: ${cloneError}`
125
+ );
126
+ clonedAgent.conversationHistory = [...sourceHistory];
127
+ }
128
+ } else {
129
+ console.error(`\u{1F4CB} Cloned session ${sourceSessionId} \u2192 ${newSessionId} (no history)`);
130
+ }
131
+ this.registerSession(newSessionId, clonedAgent);
132
+ return clonedAgent;
133
+ } catch (error) {
134
+ console.error(`\u26A0\uFE0F Failed to clone session ${sourceSessionId}: ${error}`);
135
+ return void 0;
136
+ }
137
+ }
97
138
  /**
98
139
  * Register process exit handlers to cleanup sessions on exit
99
140
  */
@@ -634,8 +675,9 @@ var AIReviewService = class {
634
675
  }
635
676
  /**
636
677
  * Execute AI review using session reuse - reuses an existing ProbeAgent session
678
+ * @param sessionMode - 'clone' (default) clones history, 'append' shares history
637
679
  */
638
- async executeReviewWithSessionReuse(prInfo, customPrompt, parentSessionId, schema, checkName) {
680
+ async executeReviewWithSessionReuse(prInfo, customPrompt, parentSessionId, schema, checkName, sessionMode = "clone") {
639
681
  const startTime = Date.now();
640
682
  const timestamp = (/* @__PURE__ */ new Date()).toISOString();
641
683
  const existingAgent = this.sessionRegistry.getSession(parentSessionId);
@@ -645,7 +687,24 @@ var AIReviewService = class {
645
687
  );
646
688
  }
647
689
  const prompt = await this.buildCustomPrompt(prInfo, customPrompt, schema);
648
- log(`\u{1F504} Reusing AI session ${parentSessionId} for review...`);
690
+ let agentToUse;
691
+ let currentSessionId;
692
+ if (sessionMode === "clone") {
693
+ currentSessionId = `${parentSessionId}-clone-${Date.now()}`;
694
+ log(`\u{1F4CB} Cloning AI session ${parentSessionId} \u2192 ${currentSessionId}...`);
695
+ const clonedAgent = await this.sessionRegistry.cloneSession(
696
+ parentSessionId,
697
+ currentSessionId
698
+ );
699
+ if (!clonedAgent) {
700
+ throw new Error(`Failed to clone session ${parentSessionId}. Falling back to append mode.`);
701
+ }
702
+ agentToUse = clonedAgent;
703
+ } else {
704
+ log(`\u{1F504} Appending to AI session ${parentSessionId} (shared history)...`);
705
+ agentToUse = existingAgent;
706
+ currentSessionId = parentSessionId;
707
+ }
649
708
  log(`\u{1F527} Debug: Raw schema parameter: ${JSON.stringify(schema)} (type: ${typeof schema})`);
650
709
  log(`Schema type: ${schema || "none (no schema)"}`);
651
710
  let debugInfo;
@@ -669,7 +728,7 @@ var AIReviewService = class {
669
728
  }
670
729
  try {
671
730
  const { response, effectiveSchema } = await this.callProbeAgentWithExistingSession(
672
- existingAgent,
731
+ agentToUse,
673
732
  prompt,
674
733
  schema,
675
734
  debugInfo,
@@ -685,6 +744,9 @@ var AIReviewService = class {
685
744
  if (debugInfo) {
686
745
  result.debug = debugInfo;
687
746
  }
747
+ if (sessionMode === "clone" && currentSessionId !== parentSessionId) {
748
+ result.sessionId = currentSessionId;
749
+ }
688
750
  return result;
689
751
  } catch (error) {
690
752
  if (debugInfo) {
@@ -773,7 +835,8 @@ ${prContext}
773
835
  <rule>For INCREMENTAL analysis, ONLY review changes in commit_diff section</rule>
774
836
  <rule>For FULL analysis, review all changes in full_diff section</rule>
775
837
  <rule>Reference specific XML elements like files_summary, metadata when providing context</rule>
776
- <rule>SEVERITY ASSIGNMENT: All severity levels (critical, error, warning, info) should be based on the NEW code being introduced, not on what it fixes. When code INTRODUCES new problems (bugs, vulnerabilities, performance issues, breaking changes), assign appropriate severity (critical/error/warning). When code FIXES or IMPROVES existing issues, use lower severity (info/warning) to acknowledge the improvement. This applies to all issue types: security, performance, style, logic, documentation. The schema provides detailed severity level definitions.</rule>
838
+ <rule>STRICT OUTPUT POLICY: Report only actual problems, risks, or deficiencies. Do not write praise, congratulations, or celebratory text. Do not create issues that merely restate improvements or say "no action needed".</rule>
839
+ <rule>SEVERITY ASSIGNMENT: Assign severity ONLY to problems introduced or left unresolved by this change (critical/error/warning/info as appropriate). Do NOT create issue entries solely to acknowledge improvements; if no problems exist, return zero issues.</rule>
777
840
  </rules>
778
841
  </review_request>`;
779
842
  }
@@ -1549,7 +1612,7 @@ var PRReviewer = class {
1549
1612
  async reviewPR(owner, repo, prNumber, prInfo, options = {}) {
1550
1613
  const { debug = false, config, checks } = options;
1551
1614
  if (config && checks && checks.length > 0) {
1552
- const { CheckExecutionEngine: CheckExecutionEngine2 } = await import("./check-execution-engine-WI7LJL2G.mjs");
1615
+ const { CheckExecutionEngine: CheckExecutionEngine2 } = await import("./check-execution-engine-D6FPIIKR.mjs");
1553
1616
  const engine = new CheckExecutionEngine2();
1554
1617
  const { results } = await engine.executeGroupedChecks(
1555
1618
  prInfo,
@@ -2559,9 +2622,10 @@ var AICheckProvider = class extends CheckProvider {
2559
2622
  }
2560
2623
  let result;
2561
2624
  if (sessionInfo?.reuseSession && sessionInfo.parentSessionId) {
2625
+ const sessionMode = config.session_mode || "clone";
2562
2626
  if (aiConfig.debug) {
2563
2627
  console.error(
2564
- `\u{1F504} Debug: Using session reuse with parent session: ${sessionInfo.parentSessionId}`
2628
+ `\u{1F504} Debug: Using session reuse with parent session: ${sessionInfo.parentSessionId} (mode: ${sessionMode})`
2565
2629
  );
2566
2630
  }
2567
2631
  result = await service.executeReviewWithSessionReuse(
@@ -2569,7 +2633,8 @@ var AICheckProvider = class extends CheckProvider {
2569
2633
  processedPrompt,
2570
2634
  sessionInfo.parentSessionId,
2571
2635
  schema,
2572
- config.checkName
2636
+ config.checkName,
2637
+ sessionMode
2573
2638
  );
2574
2639
  } else {
2575
2640
  if (aiConfig.debug) {
@@ -5215,26 +5280,36 @@ var FailureConditionEvaluator = class _FailureConditionEvaluator {
5215
5280
  // eslint-disable-line @typescript-eslint/no-unused-vars
5216
5281
  ...otherFields
5217
5282
  } = reviewSummaryWithOutput;
5283
+ const aggregatedOutput = {
5284
+ issues: (issues || []).map((issue) => ({
5285
+ file: issue.file,
5286
+ line: issue.line,
5287
+ endLine: issue.endLine,
5288
+ ruleId: issue.ruleId,
5289
+ message: issue.message,
5290
+ severity: issue.severity,
5291
+ category: issue.category,
5292
+ group: issue.group,
5293
+ schema: issue.schema,
5294
+ suggestion: issue.suggestion,
5295
+ replacement: issue.replacement
5296
+ })),
5297
+ // Include additional schema-specific data from reviewSummary
5298
+ ...otherFields
5299
+ };
5300
+ if (Array.isArray(extractedOutput)) {
5301
+ aggregatedOutput.items = extractedOutput;
5302
+ const anyError = extractedOutput.find(
5303
+ (it) => it && typeof it === "object" && it.error
5304
+ );
5305
+ if (anyError && anyError.error !== void 0) {
5306
+ aggregatedOutput.error = anyError.error;
5307
+ }
5308
+ } else if (extractedOutput && typeof extractedOutput === "object") {
5309
+ Object.assign(aggregatedOutput, extractedOutput);
5310
+ }
5218
5311
  const context = {
5219
- output: {
5220
- issues: (issues || []).map((issue) => ({
5221
- file: issue.file,
5222
- line: issue.line,
5223
- endLine: issue.endLine,
5224
- ruleId: issue.ruleId,
5225
- message: issue.message,
5226
- severity: issue.severity,
5227
- category: issue.category,
5228
- group: issue.group,
5229
- schema: issue.schema,
5230
- suggestion: issue.suggestion,
5231
- replacement: issue.replacement
5232
- })),
5233
- // Include additional schema-specific data from reviewSummary
5234
- ...otherFields,
5235
- // Spread the extracted output directly (avoid output.output nesting)
5236
- ...extractedOutput && typeof extractedOutput === "object" ? extractedOutput : {}
5237
- },
5312
+ output: aggregatedOutput,
5238
5313
  outputs: (() => {
5239
5314
  if (!previousOutputs) return {};
5240
5315
  const outputs = {};
@@ -5394,9 +5469,11 @@ var GitHubCheckService = class {
5394
5469
  reviewIssues,
5395
5470
  executionError
5396
5471
  );
5397
- let filteredIssues = reviewIssues;
5472
+ let filteredIssues = reviewIssues.filter(
5473
+ (issue) => !(issue.file === "system" && issue.line === 0)
5474
+ );
5398
5475
  if (filesChangedInCommit && filesChangedInCommit.length > 0) {
5399
- filteredIssues = reviewIssues.filter(
5476
+ filteredIssues = filteredIssues.filter(
5400
5477
  (issue) => filesChangedInCommit.some((changedFile) => issue.file === changedFile)
5401
5478
  );
5402
5479
  }
@@ -7118,10 +7195,19 @@ ${expr}
7118
7195
  const id = issue.ruleId || "";
7119
7196
  return id.endsWith("/__skipped");
7120
7197
  });
7121
- const hasFatalFailure = (depRes.issues || []).some((issue) => {
7198
+ let hasFatalFailure = (depRes.issues || []).some((issue) => {
7122
7199
  const id = issue.ruleId || "";
7123
- return id === "command/execution_error" || id.endsWith("/command/execution_error") || id === "command/transform_js_error" || id.endsWith("/command/transform_js_error") || id === "command/transform_error" || id.endsWith("/command/transform_error") || id.endsWith("/forEach/iteration_error") || id === "forEach/undefined_output" || id.endsWith("/forEach/undefined_output") || id.endsWith("_fail_if") || id.endsWith("/global_fail_if");
7200
+ return id === "command/execution_error" || id.endsWith("/command/execution_error") || id === "command/timeout" || id.endsWith("/command/timeout") || id === "command/transform_js_error" || id.endsWith("/command/transform_js_error") || id === "command/transform_error" || id.endsWith("/command/transform_error") || id.endsWith("/forEach/iteration_error") || id === "forEach/undefined_output" || id.endsWith("/forEach/undefined_output") || id.endsWith("_fail_if") || id.endsWith("/global_fail_if");
7124
7201
  });
7202
+ if (!hasFatalFailure && config && (config.fail_if || config.checks[depId]?.fail_if)) {
7203
+ const failIfResults = await this.evaluateFailureConditions(depId, depRes, config);
7204
+ hasFatalFailure = failIfResults.some((r) => r.failed);
7205
+ }
7206
+ if (debug) {
7207
+ log2(
7208
+ `\u{1F527} Debug: gating check '${checkName}' against dep '${depId}': wasSkipped=${wasSkipped} hasFatalFailure=${hasFatalFailure}`
7209
+ );
7210
+ }
7125
7211
  if (wasSkipped || hasFatalFailure) failedDeps.push(depId);
7126
7212
  }
7127
7213
  if (failedDeps.length > 0) {
@@ -7353,6 +7439,24 @@ ${expr}
7353
7439
  issues: allIssues,
7354
7440
  ...finalOutput !== void 0 ? { output: finalOutput } : {}
7355
7441
  };
7442
+ if (config && (config.fail_if || checkConfig.fail_if)) {
7443
+ const failureResults = await this.evaluateFailureConditions(
7444
+ checkName,
7445
+ finalResult,
7446
+ config
7447
+ );
7448
+ if (failureResults.length > 0) {
7449
+ const failureIssues = failureResults.filter((f) => f.failed).map((f) => ({
7450
+ file: "system",
7451
+ line: 0,
7452
+ ruleId: f.conditionName,
7453
+ message: f.message || `Failure condition met: ${f.expression}`,
7454
+ severity: f.severity || "error",
7455
+ category: "logic"
7456
+ }));
7457
+ finalResult.issues = [...finalResult.issues || [], ...failureIssues];
7458
+ }
7459
+ }
7356
7460
  if (allOutputs.length > 0) {
7357
7461
  finalResult.isForEach = true;
7358
7462
  finalResult.forEachItems = allOutputs;
@@ -7399,9 +7503,27 @@ ${expr}
7399
7503
  debug,
7400
7504
  results
7401
7505
  );
7506
+ if (config && (config.fail_if || checkConfig.fail_if)) {
7507
+ const failureResults = await this.evaluateFailureConditions(
7508
+ checkName,
7509
+ finalResult,
7510
+ config
7511
+ );
7512
+ if (failureResults.length > 0) {
7513
+ const failureIssues = failureResults.filter((f) => f.failed).map((f) => ({
7514
+ file: "system",
7515
+ line: 0,
7516
+ ruleId: f.conditionName,
7517
+ message: f.message || `Failure condition met: ${f.expression}`,
7518
+ severity: f.severity || "error",
7519
+ category: "logic"
7520
+ }));
7521
+ finalResult.issues = [...finalResult.issues || [], ...failureIssues];
7522
+ }
7523
+ }
7402
7524
  const hadFatalError = (finalResult.issues || []).some((issue) => {
7403
7525
  const id = issue.ruleId || "";
7404
- return id === "command/execution_error" || id.endsWith("/command/execution_error") || id === "command/transform_js_error" || id.endsWith("/command/transform_js_error") || id === "command/transform_error" || id.endsWith("/command/transform_error") || id === "forEach/undefined_output" || id.endsWith("/forEach/undefined_output");
7526
+ return id === "command/execution_error" || id.endsWith("/command/execution_error") || id === "command/timeout" || id.endsWith("/command/timeout") || id === "command/transform_js_error" || id.endsWith("/command/transform_js_error") || id === "command/transform_error" || id.endsWith("/command/transform_error") || id === "forEach/undefined_output" || id.endsWith("/forEach/undefined_output");
7405
7527
  });
7406
7528
  this.recordIterationComplete(
7407
7529
  checkName,
@@ -7424,6 +7546,12 @@ ${expr}
7424
7546
  `\u{1F527} Debug: Completed check: ${checkName}, issues found: ${(finalResult.issues || []).length}`
7425
7547
  );
7426
7548
  }
7549
+ if (finalResult.sessionId) {
7550
+ sessionIds.set(checkName, finalResult.sessionId);
7551
+ if (debug) {
7552
+ log2(`\u{1F527} Debug: Tracked cloned session for cleanup: ${finalResult.sessionId}`);
7553
+ }
7554
+ }
7427
7555
  }
7428
7556
  const enrichedIssues = (finalResult.issues || []).map((issue) => ({
7429
7557
  ...issue,
@@ -8772,4 +8900,4 @@ export {
8772
8900
  logger,
8773
8901
  CheckExecutionEngine
8774
8902
  };
8775
- //# sourceMappingURL=chunk-P4XLP7NN.mjs.map
8903
+ //# sourceMappingURL=chunk-N34GS4A5.mjs.map