@alexeiled/pi-fusion 0.6.2 → 0.7.0

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/src/types.ts CHANGED
@@ -15,6 +15,7 @@ export const JUDGE_AGENT = "pi-fusion.fusion-judge";
15
15
  export const COMPOSER_AGENT = "pi-fusion.fusion-composer";
16
16
 
17
17
  export type FusionContextMode = "fresh" | "fork";
18
+ export type CallerOutputContract = "plan-review-v1";
18
19
 
19
20
  /**
20
21
  * How panel answers become one report.
@@ -48,7 +49,12 @@ export interface FusionProfile {
48
49
  panel: PanelMemberConfig[];
49
50
  judge: JudgeConfig;
50
51
  concurrency?: number;
52
+ /** Legacy shared wall-clock timeout used when a stage timeout is absent. */
51
53
  timeoutMs?: number;
54
+ /** Wall-clock timeout for the complete panel workflow. */
55
+ panelTimeoutMs?: number;
56
+ /** Wall-clock timeout for the synthesis workflow. */
57
+ judgeTimeoutMs?: number;
52
58
  context?: FusionContextMode;
53
59
  stopWhenPanelAgrees?: boolean;
54
60
  /**
@@ -57,6 +63,11 @@ export interface FusionProfile {
57
63
  * content is compared. The report always restores the real labels.
58
64
  */
59
65
  blindPanelLabels?: boolean;
66
+ /**
67
+ * Caps each panelist's tool calls. `soft` nudges; `hard` blocks further tool
68
+ * use so the panelist still finalises before the workflow timeout.
69
+ */
70
+ panelToolBudget?: ToolBudget;
60
71
  /**
61
72
  * Caps the tool calls the judge may spend verifying contested claims.
62
73
  * `soft` nudges, `hard` blocks further tool use so the judge still finalises.
@@ -110,6 +121,7 @@ export function resolveSynthesisMode(
110
121
  export interface ToolBudget {
111
122
  soft?: number;
112
123
  hard?: number;
124
+ block?: "*" | string[];
113
125
  }
114
126
 
115
127
  export type PanelConfidence = "low" | "medium" | "high";
@@ -157,6 +169,7 @@ export interface ParsedFusionArgs {
157
169
  prompt: string;
158
170
  profile?: string;
159
171
  operationId?: string;
172
+ outputContract?: CallerOutputContract;
160
173
  /** Inline panel entries from `--panel`: `<model>` or `<agent>:<model>`. */
161
174
  panel?: string[];
162
175
  }
@@ -210,6 +223,7 @@ export interface FusionRun {
210
223
  /** Name of the config profile the inline panel was layered onto. */
211
224
  baseProfileName?: string;
212
225
  operationId?: string;
226
+ outputContract?: CallerOutputContract;
213
227
  phase: FusionPhase;
214
228
  createdAt: number;
215
229
  updatedAt: number;