@claudexor/orchestrator 3.1.0 → 3.1.2
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/dist/attemptFinalize.d.ts +38 -0
- package/dist/attemptFinalize.d.ts.map +1 -1
- package/dist/attemptFinalize.js +44 -0
- package/dist/attemptFinalize.js.map +1 -1
- package/dist/attemptTelemetry.d.ts +9 -20
- package/dist/attemptTelemetry.d.ts.map +1 -1
- package/dist/attemptTelemetry.js +36 -69
- package/dist/attemptTelemetry.js.map +1 -1
- package/dist/attemptUsageCost.d.ts +31 -0
- package/dist/attemptUsageCost.d.ts.map +1 -0
- package/dist/attemptUsageCost.js +181 -0
- package/dist/attemptUsageCost.js.map +1 -0
- package/dist/budgetFailure.d.ts +3 -1
- package/dist/budgetFailure.d.ts.map +1 -1
- package/dist/budgetFailure.js.map +1 -1
- package/dist/candidateEvidence.d.ts +5 -0
- package/dist/candidateEvidence.d.ts.map +1 -1
- package/dist/candidateEvidence.js +3 -1
- package/dist/candidateEvidence.js.map +1 -1
- package/dist/candidateOutputs.d.ts +19 -0
- package/dist/candidateOutputs.d.ts.map +1 -1
- package/dist/candidateOutputs.js +201 -67
- package/dist/candidateOutputs.js.map +1 -1
- package/dist/decisionBudget.d.ts +43 -0
- package/dist/decisionBudget.d.ts.map +1 -0
- package/dist/decisionBudget.js +84 -0
- package/dist/decisionBudget.js.map +1 -0
- package/dist/decisionTerminalReconciliation.d.ts +18 -0
- package/dist/decisionTerminalReconciliation.d.ts.map +1 -0
- package/dist/decisionTerminalReconciliation.js +26 -0
- package/dist/decisionTerminalReconciliation.js.map +1 -0
- package/dist/deepScanReducer.d.ts.map +1 -1
- package/dist/deepScanReducer.js +1 -5
- package/dist/deepScanReducer.js.map +1 -1
- package/dist/delegation-parent-activation.d.ts +6 -0
- package/dist/delegation-parent-activation.d.ts.map +1 -0
- package/dist/delegation-parent-activation.js +13 -0
- package/dist/delegation-parent-activation.js.map +1 -0
- package/dist/delegationBudgetAuthority.d.ts +30 -0
- package/dist/delegationBudgetAuthority.d.ts.map +1 -0
- package/dist/delegationBudgetAuthority.js +157 -0
- package/dist/delegationBudgetAuthority.js.map +1 -0
- package/dist/delegationFailure.d.ts +58 -0
- package/dist/delegationFailure.d.ts.map +1 -0
- package/dist/delegationFailure.js +184 -0
- package/dist/delegationFailure.js.map +1 -0
- package/dist/delegationToolEvidence.d.ts +20 -0
- package/dist/delegationToolEvidence.d.ts.map +1 -0
- package/dist/delegationToolEvidence.js +46 -0
- package/dist/delegationToolEvidence.js.map +1 -0
- package/dist/effortGovernance.d.ts +49 -0
- package/dist/effortGovernance.d.ts.map +1 -0
- package/dist/effortGovernance.js +35 -0
- package/dist/effortGovernance.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/orchestrator.d.ts +29 -38
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +294 -392
- package/dist/orchestrator.js.map +1 -1
- package/dist/plan-prompt.d.ts +3 -0
- package/dist/plan-prompt.d.ts.map +1 -0
- package/dist/plan-prompt.js +28 -0
- package/dist/plan-prompt.js.map +1 -0
- package/dist/requestRequirements.d.ts +17 -0
- package/dist/requestRequirements.d.ts.map +1 -1
- package/dist/requestRequirements.js +69 -1
- package/dist/requestRequirements.js.map +1 -1
- package/dist/reviewerPanel.d.ts +4 -0
- package/dist/reviewerPanel.d.ts.map +1 -1
- package/dist/reviewerPanel.js +54 -9
- package/dist/reviewerPanel.js.map +1 -1
- package/dist/revisePrompt.d.ts +17 -0
- package/dist/revisePrompt.d.ts.map +1 -0
- package/dist/revisePrompt.js +15 -0
- package/dist/revisePrompt.js.map +1 -0
- package/dist/root-ledger.d.ts +13 -0
- package/dist/root-ledger.d.ts.map +1 -0
- package/dist/root-ledger.js +19 -0
- package/dist/root-ledger.js.map +1 -0
- package/dist/routing-failure.d.ts +6 -0
- package/dist/routing-failure.d.ts.map +1 -0
- package/dist/routing-failure.js +12 -0
- package/dist/routing-failure.js.map +1 -0
- package/dist/run-bounded.d.ts +3 -0
- package/dist/run-bounded.d.ts.map +1 -0
- package/dist/run-bounded.js +17 -0
- package/dist/run-bounded.js.map +1 -0
- package/dist/run-input-resolution.d.ts +10 -0
- package/dist/run-input-resolution.d.ts.map +1 -0
- package/dist/run-input-resolution.js +70 -0
- package/dist/run-input-resolution.js.map +1 -0
- package/dist/runSupport.d.ts +17 -0
- package/dist/runSupport.d.ts.map +1 -1
- package/dist/runSupport.js +26 -0
- package/dist/runSupport.js.map +1 -1
- package/dist/runTelemetryWriter.d.ts +5 -2
- package/dist/runTelemetryWriter.d.ts.map +1 -1
- package/dist/runTelemetryWriter.js +72 -1
- package/dist/runTelemetryWriter.js.map +1 -1
- package/dist/runTerminals.d.ts +34 -7
- package/dist/runTerminals.d.ts.map +1 -1
- package/dist/runTerminals.js +215 -24
- package/dist/runTerminals.js.map +1 -1
- package/dist/secretDiff.d.ts +29 -0
- package/dist/secretDiff.d.ts.map +1 -0
- package/dist/secretDiff.js +133 -0
- package/dist/secretDiff.js.map +1 -0
- package/dist/terminalOutcome.d.ts +22 -0
- package/dist/terminalOutcome.d.ts.map +1 -0
- package/dist/terminalOutcome.js +39 -0
- package/dist/terminalOutcome.js.map +1 -0
- package/dist/write-isolation.d.ts +11 -0
- package/dist/write-isolation.d.ts.map +1 -0
- package/dist/write-isolation.js +13 -0
- package/dist/write-isolation.js.map +1 -0
- package/package.json +17 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-prompt.d.ts","sourceRoot":"","sources":["../src/plan-prompt.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAyB/C"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Explicitly keep a plan-mode harness in read-only planning work. */
|
|
2
|
+
export function planPrompt(goal) {
|
|
3
|
+
return [
|
|
4
|
+
`You are planning, NOT implementing. Explore the repository read-only and produce a plan another agent will execute later. Do not write files or output full implementations.`,
|
|
5
|
+
``,
|
|
6
|
+
`## Goal`,
|
|
7
|
+
goal,
|
|
8
|
+
``,
|
|
9
|
+
`## Required output (markdown)`,
|
|
10
|
+
`1. Approach — 2-3 sentences on how you'd solve this.`,
|
|
11
|
+
`2. Steps — a numbered list; each step names the file(s) it touches and what changes.`,
|
|
12
|
+
`3. Risks & edge cases.`,
|
|
13
|
+
`4. End your response with a section titled exactly:`,
|
|
14
|
+
``,
|
|
15
|
+
`## Open Questions`,
|
|
16
|
+
``,
|
|
17
|
+
`List every decision the user must make before implementation, one per bullet, in EXACTLY this format:`,
|
|
18
|
+
``,
|
|
19
|
+
`- [single] <question> :: <option A> :: <option B>`,
|
|
20
|
+
`- [multi] <question> :: <option A> :: <option B>`,
|
|
21
|
+
`- [text] <question that has no good fixed options>`,
|
|
22
|
+
``,
|
|
23
|
+
`Rules: [single] = pick exactly one; [multi] = pick one or more; [text] = free-form (no "::" options). Ground every option in THIS repository. If nothing is ambiguous, write a single bullet: - (none)`,
|
|
24
|
+
``,
|
|
25
|
+
`Keep it concise. Reference real paths you found. Do NOT paste large code blocks; describe the change instead.`,
|
|
26
|
+
].join("\n");
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=plan-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-prompt.js","sourceRoot":"","sources":["../src/plan-prompt.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO;QACL,8KAA8K;QAC9K,EAAE;QACF,SAAS;QACT,IAAI;QACJ,EAAE;QACF,+BAA+B;QAC/B,sDAAsD;QACtD,sFAAsF;QACtF,wBAAwB;QACxB,qDAAqD;QACrD,EAAE;QACF,mBAAmB;QACnB,EAAE;QACF,uGAAuG;QACvG,EAAE;QACF,mDAAmD;QACnD,kDAAkD;QAClD,oDAAoD;QACpD,EAAE;QACF,wMAAwM;QACxM,EAAE;QACF,+GAA+G;KAChH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -7,6 +7,16 @@ export interface BrowserLaneRequirementInput {
|
|
|
7
7
|
webPolicy: ExternalContextPolicy;
|
|
8
8
|
access: AccessProfile;
|
|
9
9
|
}
|
|
10
|
+
export interface DelegationLaneRequirementInput {
|
|
11
|
+
harnessId: string;
|
|
12
|
+
requested: boolean;
|
|
13
|
+
runtimeAvailable: boolean;
|
|
14
|
+
manifestCapable: boolean;
|
|
15
|
+
requiresFullAccess: boolean;
|
|
16
|
+
fullAccess: boolean;
|
|
17
|
+
}
|
|
18
|
+
/** Access profiles that map to an unsandboxed/full-access harness lane. */
|
|
19
|
+
export declare function isFullAccess(access: AccessProfile): boolean;
|
|
10
20
|
export declare class RequestRequirementsError extends HarnessUnavailableError {
|
|
11
21
|
readonly resolutions: RequestRequirementResolution[];
|
|
12
22
|
readonly code = "browser_unavailable";
|
|
@@ -33,6 +43,13 @@ export declare class RequestRequirementsResolver {
|
|
|
33
43
|
* implying OS/native containment that is not there.
|
|
34
44
|
*/
|
|
35
45
|
resolveDenyPaths(harnessId: string, requested: boolean): RequestRequirementResolution;
|
|
46
|
+
/**
|
|
47
|
+
* Resolve Delegate independently for each selected lane. Known pre-start
|
|
48
|
+
* unavailability is a disclosed degradation, not a routing refusal; an
|
|
49
|
+
* injected server that later reports startup failure is handled separately
|
|
50
|
+
* by attempt telemetry and remains terminal.
|
|
51
|
+
*/
|
|
52
|
+
resolveDelegation(input: DelegationLaneRequirementInput): RequestRequirementResolution;
|
|
36
53
|
requireEffectiveBrowser(requested: boolean, resolutions: RequestRequirementResolution[]): void;
|
|
37
54
|
}
|
|
38
55
|
//# sourceMappingURL=requestRequirements.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestRequirements.d.ts","sourceRoot":"","sources":["../src/requestRequirements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,MAAM,EACN,4BAA4B,EAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,qBAAqB,CAAC;IACjC,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,qBAAa,wBAAyB,SAAQ,uBAAuB;IAKjE,QAAQ,CAAC,WAAW,EAAE,4BAA4B,EAAE;IAJtD,QAAQ,CAAC,IAAI,yBAAyB;gBAGpC,OAAO,EAAE,MAAM,EACN,WAAW,EAAE,4BAA4B,EAAE;CAIvD;AAED,4EAA4E;AAC5E,qBAAa,2BAA2B;IACtC,+EAA+E;IAC/E,aAAa,CACX,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,uBAAuB,EAChD,eAAe,EAAE,aAAa,GAC7B,aAAa;IAOhB,0BAA0B,CACxB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE;QAAE,uBAAuB,EAAE,uBAAuB,CAAA;KAAE,EAAE,GAC7D,IAAI;IAQP,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,UAAU,EAAE,EACzB,YAAY,EAAE,oBAAoB,EAAE,GACnC,MAAM,GAAG,IAAI;IAmBhB,WAAW,CACT,UAAU,EAAE,4BAA4B,EACxC,SAAS,EAAE,MAAM,GAChB;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAInD,cAAc,CAAC,KAAK,EAAE,2BAA2B,GAAG,4BAA4B;IA6DhF;;;;;;OAMG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,4BAA4B;IAYrF,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,4BAA4B,EAAE,GAAG,IAAI;CAU/F"}
|
|
1
|
+
{"version":3,"file":"requestRequirements.d.ts","sourceRoot":"","sources":["../src/requestRequirements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,MAAM,EACN,4BAA4B,EAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,qBAAqB,CAAC;IACjC,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAE3D;AAED,qBAAa,wBAAyB,SAAQ,uBAAuB;IAKjE,QAAQ,CAAC,WAAW,EAAE,4BAA4B,EAAE;IAJtD,QAAQ,CAAC,IAAI,yBAAyB;gBAGpC,OAAO,EAAE,MAAM,EACN,WAAW,EAAE,4BAA4B,EAAE;CAIvD;AAED,4EAA4E;AAC5E,qBAAa,2BAA2B;IACtC,+EAA+E;IAC/E,aAAa,CACX,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,uBAAuB,EAChD,eAAe,EAAE,aAAa,GAC7B,aAAa;IAOhB,0BAA0B,CACxB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE;QAAE,uBAAuB,EAAE,uBAAuB,CAAA;KAAE,EAAE,GAC7D,IAAI;IAQP,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,UAAU,EAAE,EACzB,YAAY,EAAE,oBAAoB,EAAE,GACnC,MAAM,GAAG,IAAI;IAmBhB,WAAW,CACT,UAAU,EAAE,4BAA4B,EACxC,SAAS,EAAE,MAAM,GAChB;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAInD,cAAc,CAAC,KAAK,EAAE,2BAA2B,GAAG,4BAA4B;IA6DhF;;;;;;OAMG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,4BAA4B;IAYrF;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,8BAA8B,GAAG,4BAA4B;IA2DtF,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,4BAA4B,EAAE,GAAG,IAAI;CAU/F"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { HarnessUnavailableError } from "@claudexor/core";
|
|
2
|
+
/** Access profiles that map to an unsandboxed/full-access harness lane. */
|
|
3
|
+
export function isFullAccess(access) {
|
|
4
|
+
return access === "full" || access === "external_sandbox_full";
|
|
5
|
+
}
|
|
2
6
|
export class RequestRequirementsError extends HarnessUnavailableError {
|
|
3
7
|
resolutions;
|
|
4
8
|
code = "browser_unavailable";
|
|
@@ -72,7 +76,7 @@ export class RequestRequirementsResolver {
|
|
|
72
76
|
evidence_refs: ["request.external_context_policy"],
|
|
73
77
|
};
|
|
74
78
|
}
|
|
75
|
-
if (input.access
|
|
79
|
+
if (!isFullAccess(input.access)) {
|
|
76
80
|
return {
|
|
77
81
|
capability: "browser",
|
|
78
82
|
harness_id: input.harnessId,
|
|
@@ -115,6 +119,70 @@ export class RequestRequirementsResolver {
|
|
|
115
119
|
evidence_refs: ["request.deny_paths"],
|
|
116
120
|
};
|
|
117
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Resolve Delegate independently for each selected lane. Known pre-start
|
|
124
|
+
* unavailability is a disclosed degradation, not a routing refusal; an
|
|
125
|
+
* injected server that later reports startup failure is handled separately
|
|
126
|
+
* by attempt telemetry and remains terminal.
|
|
127
|
+
*/
|
|
128
|
+
resolveDelegation(input) {
|
|
129
|
+
if (!input.requested) {
|
|
130
|
+
return {
|
|
131
|
+
capability: "delegation",
|
|
132
|
+
harness_id: input.harnessId,
|
|
133
|
+
eligible: input.manifestCapable,
|
|
134
|
+
requested: false,
|
|
135
|
+
effective: false,
|
|
136
|
+
reason: "not_requested",
|
|
137
|
+
evidence_refs: ["task.delegation_requested"],
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
if (!input.manifestCapable) {
|
|
141
|
+
return {
|
|
142
|
+
capability: "delegation",
|
|
143
|
+
harness_id: input.harnessId,
|
|
144
|
+
eligible: false,
|
|
145
|
+
requested: true,
|
|
146
|
+
effective: false,
|
|
147
|
+
reason: "manifest_unsupported",
|
|
148
|
+
evidence_refs: ["manifest.capability_profile.mcp_injection"],
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
if (!input.runtimeAvailable) {
|
|
152
|
+
return {
|
|
153
|
+
capability: "delegation",
|
|
154
|
+
harness_id: input.harnessId,
|
|
155
|
+
eligible: false,
|
|
156
|
+
requested: true,
|
|
157
|
+
effective: false,
|
|
158
|
+
reason: "runtime_unavailable",
|
|
159
|
+
evidence_refs: ["runtime.delegation_belt"],
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
if (input.requiresFullAccess && !input.fullAccess) {
|
|
163
|
+
return {
|
|
164
|
+
capability: "delegation",
|
|
165
|
+
harness_id: input.harnessId,
|
|
166
|
+
eligible: true,
|
|
167
|
+
requested: true,
|
|
168
|
+
effective: false,
|
|
169
|
+
reason: "access_profile_incompatible",
|
|
170
|
+
evidence_refs: [
|
|
171
|
+
"manifest.capability_profile.mcp_injection_requires_full_access",
|
|
172
|
+
"task.access.effective_profile",
|
|
173
|
+
],
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
capability: "delegation",
|
|
178
|
+
harness_id: input.harnessId,
|
|
179
|
+
eligible: true,
|
|
180
|
+
requested: true,
|
|
181
|
+
effective: true,
|
|
182
|
+
reason: "effective",
|
|
183
|
+
evidence_refs: ["runtime.delegation_belt", "manifest.capability_profile.mcp_injection"],
|
|
184
|
+
};
|
|
185
|
+
}
|
|
118
186
|
requireEffectiveBrowser(requested, resolutions) {
|
|
119
187
|
if (!requested || resolutions.some((resolution) => resolution.effective))
|
|
120
188
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestRequirements.js","sourceRoot":"","sources":["../src/requestRequirements.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"requestRequirements.js","sourceRoot":"","sources":["../src/requestRequirements.ts"],"names":[],"mappings":"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"}
|
package/dist/reviewerPanel.d.ts
CHANGED
|
@@ -20,6 +20,10 @@ export interface ReviewerPanelDeps {
|
|
|
20
20
|
registry: Map<string, HarnessAdapter>;
|
|
21
21
|
harnessSettings: Record<string, PanelHarnessSettings | undefined>;
|
|
22
22
|
authPreferenceFor: (harnessId: string) => AuthPreference;
|
|
23
|
+
/** Disclosure sink for a knob the panel dropped instead of refusing (the
|
|
24
|
+
* auto panel's `reviewerEfforts` map). Optional: the drop itself never
|
|
25
|
+
* depends on a listener being wired. */
|
|
26
|
+
onIgnoredSetting?: (detail: string) => void;
|
|
23
27
|
}
|
|
24
28
|
export declare function resolveExplicitReviewerPanel(deps: ReviewerPanelDeps, panel: ControlReviewerPanelEntry[]): Promise<ReviewerSpec[]>;
|
|
25
29
|
export interface AutoReviewerPanelOverrides {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewerPanel.d.ts","sourceRoot":"","sources":["../src/reviewerPanel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EACV,cAAc,EAGd,yBAAyB,EACzB,UAAU,
|
|
1
|
+
{"version":3,"file":"reviewerPanel.d.ts","sourceRoot":"","sources":["../src/reviewerPanel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EACV,cAAc,EAGd,yBAAyB,EACzB,UAAU,EAGV,cAAc,EACf,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,SAAS,CAAC,CAAC;IAClE,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,cAAc,CAAC;IACzD;;4CAEwC;IACxC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AA0CD,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,yBAAyB,EAAE,GACjC,OAAO,CAAC,YAAY,EAAE,CAAC,CAyJzB;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;CAC/D;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,iBAAiB,EACvB,SAAS,GAAE,0BAA+B,GACzC,OAAO,CAAC,YAAY,EAAE,CAAC,CAyFzB"}
|
package/dist/reviewerPanel.js
CHANGED
|
@@ -1,7 +1,39 @@
|
|
|
1
|
-
import { estimateEffectiveAuthRoute, knownModelIdsForRoute } from "@claudexor/schema";
|
|
1
|
+
import { effortLevelsForModel, estimateEffectiveAuthRoute, knownModelIdsForRoute, } from "@claudexor/schema";
|
|
2
2
|
import { HarnessUnavailableError, validateModel } from "@claudexor/core";
|
|
3
3
|
import { WorkspaceManager } from "@claudexor/workspace";
|
|
4
4
|
const MODEL_INVENTORY_RETRY_DELAY_MS = 250;
|
|
5
|
+
/**
|
|
6
|
+
* The reviewer effort gate: a requested level must be one the SELECTED reviewer
|
|
7
|
+
* actually advertises.
|
|
8
|
+
*
|
|
9
|
+
* ONE owner for both panel paths (INV-104's effort sibling). The wire type is an
|
|
10
|
+
* open slug rather than an enum — a level is only meaningful per (harness,
|
|
11
|
+
* model), so the boundary cannot know it — which means this manifest check IS
|
|
12
|
+
* the guarantee that a typo or an unsupported level is refused instead of
|
|
13
|
+
* travelling inward. Without it a reviewer effort dies silently: the adapter's
|
|
14
|
+
* normalizer drops an unresolvable level to "send no flag", while the review
|
|
15
|
+
* artifact still records `requested_effort`, so the run reads as though the
|
|
16
|
+
* level had been honored.
|
|
17
|
+
*/
|
|
18
|
+
function reviewerEffortRefusal(harnessId, requestedEffort, capabilities, model) {
|
|
19
|
+
if (!requestedEffort)
|
|
20
|
+
return null;
|
|
21
|
+
// Validate against the ladder of the model that will actually review: the
|
|
22
|
+
// model's own advertised list when the entry resolves one and the manifest
|
|
23
|
+
// recorded it, else the harness-wide merged ladder — which is then the only
|
|
24
|
+
// honest set, and the refusal says so.
|
|
25
|
+
const advertised = effortLevelsForModel(capabilities, model);
|
|
26
|
+
if (advertised.includes(requestedEffort))
|
|
27
|
+
return null;
|
|
28
|
+
const perModel = model !== null && (capabilities.model_effort_levels[model]?.levels.length ?? 0) > 0;
|
|
29
|
+
const supported = advertised.join(", ");
|
|
30
|
+
const suffix = !supported
|
|
31
|
+
? " (harness declares no effort controls)"
|
|
32
|
+
: perModel
|
|
33
|
+
? ` (model '${model}' advertises: ${supported})`
|
|
34
|
+
: ` (harness-wide advertised ladder — no per-model ladder recorded${model ? ` for '${model}'` : ""}: ${supported})`;
|
|
35
|
+
return `reviewer harness '${harnessId}' does not support requested effort '${requestedEffort}'${suffix}`;
|
|
36
|
+
}
|
|
5
37
|
export async function resolveExplicitReviewerPanel(deps, panel) {
|
|
6
38
|
const { cwd, registry, harnessSettings } = deps;
|
|
7
39
|
const known = [...registry.keys()].sort().join(", ");
|
|
@@ -100,13 +132,11 @@ export async function resolveExplicitReviewerPanel(deps, panel) {
|
|
|
100
132
|
}
|
|
101
133
|
}
|
|
102
134
|
const requestedEffort = entry.effort ?? null;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
throw new HarnessUnavailableError(`reviewer harness '${entry.harness}' does not support requested effort '${requestedEffort}'${suffix}`);
|
|
109
|
-
}
|
|
135
|
+
// An EXPLICIT panel entry is a precise owner statement — an unadvertised
|
|
136
|
+
// level stays a hard, typed refusal (never forwarded to die natively).
|
|
137
|
+
const refusal = reviewerEffortRefusal(entry.harness, requestedEffort, manifest.capabilities, requestedModel);
|
|
138
|
+
if (refusal)
|
|
139
|
+
throw new HarnessUnavailableError(refusal);
|
|
110
140
|
specs.push({
|
|
111
141
|
adapter,
|
|
112
142
|
providerFamily: manifest.provider_family,
|
|
@@ -182,12 +212,27 @@ export async function resolveAutoReviewerPanel(deps, overrides = {}) {
|
|
|
182
212
|
`fix the reviewer model override or harnesses.${adapter.id}.default_model, or run \`claudexor models --harness ${adapter.id}\``);
|
|
183
213
|
}
|
|
184
214
|
}
|
|
215
|
+
// DISCLOSE-AND-DROP, deliberately weaker than the model gate above: the
|
|
216
|
+
// per-family `reviewerEfforts` map also rides stored replay surfaces
|
|
217
|
+
// (Exact Retry params, `ControlRunAgainDraft.request`), so a map recorded
|
|
218
|
+
// before a reviewer/catalog change must not hard-fail a replay that used
|
|
219
|
+
// to run. A fresh request and a replayed draft are indistinguishable at
|
|
220
|
+
// this layer, so the disclosed drop applies everywhere — the honest
|
|
221
|
+
// middle: the panel still reviews, at the reviewer's default effort, and
|
|
222
|
+
// the drop is disclosed instead of a typed refusal killing the run.
|
|
223
|
+
// (Explicit `reviewerPanel[].effort` entries above stay hard refusals.)
|
|
224
|
+
let requestedEffort = overrides.reviewerEfforts?.[m.provider_family] ?? null;
|
|
225
|
+
const dropped = reviewerEffortRefusal(adapter.id, requestedEffort, m.capabilities, requestedModel);
|
|
226
|
+
if (dropped) {
|
|
227
|
+
deps.onIgnoredSetting?.(`reviewer effort dropped: ${dropped}`);
|
|
228
|
+
requestedEffort = null;
|
|
229
|
+
}
|
|
185
230
|
seen.add(m.provider_family);
|
|
186
231
|
specs.push({
|
|
187
232
|
adapter,
|
|
188
233
|
providerFamily: m.provider_family,
|
|
189
234
|
requestedModel,
|
|
190
|
-
requestedEffort
|
|
235
|
+
requestedEffort,
|
|
191
236
|
authPreference,
|
|
192
237
|
});
|
|
193
238
|
if (specs.length >= 2)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewerPanel.js","sourceRoot":"","sources":["../src/reviewerPanel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reviewerPanel.js","sourceRoot":"","sources":["../src/reviewerPanel.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAkB3C;;;;;;;;;;;;GAYG;AACH,SAAS,qBAAqB,CAC5B,SAAiB,EACjB,eAAkC,EAClC,YAGC,EACD,KAAoB;IAEpB,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAClC,0EAA0E;IAC1E,2EAA2E;IAC3E,4EAA4E;IAC5E,uCAAuC;IACvC,MAAM,UAAU,GAAG,oBAAoB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,QAAQ,GACZ,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,CAAC,SAAS;QACvB,CAAC,CAAC,wCAAwC;QAC1C,CAAC,CAAC,QAAQ;YACR,CAAC,CAAC,YAAY,KAAK,iBAAiB,SAAS,GAAG;YAChD,CAAC,CAAC,kEAAkE,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,GAAG,CAAC;IACxH,OAAO,qBAAqB,SAAS,wCAAwC,eAAe,IAAI,MAAM,EAAE,CAAC;AAC3G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,IAAuB,EACvB,KAAkC;IAElC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAChD,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,GAAG,EAS1B,CAAC;IACJ,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,eAAe,GAEjB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,GAA2B,EAAE;YAClD,eAAe,CAAC,OAAO,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;YACxE,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC;QACrC,CAAC,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,uBAAuB,CAC/B,6BAA6B,KAAK,CAAC,OAAO,kBAAkB,KAAK,yCAAyC,CAC3G,CAAC;YACJ,CAAC;YACD,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;gBACtD,MAAM,IAAI,uBAAuB,CAC/B,qBAAqB,KAAK,CAAC,OAAO,wCAAwC,KAAK,CAAC,OAAO,iBAAiB,CACzG,CAAC;YACJ,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;YACvD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,IAAI,QAAQ,GAA2D,IAAI,CAAC;gBAC5E,IAAI,CAAC;oBACH,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtC,CAAC;gBAAC,MAAM,CAAC;oBACP,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;oBACpF,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE;wBAC1B,QAAQ;wBACR,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,cAAc,EAAE,MAAM,CAAC,eAAe;wBACtC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;wBAC7B,WAAW,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;qBACvC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE;wBAC1B,QAAQ;wBACR,MAAM,EAAE,aAAa;wBACrB,cAAc,EAAE,EAAE;wBAClB,OAAO,EAAE,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC3D,WAAW,EAAE,EAAE;qBAChB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAC;YAClC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACzB,MAAM,IAAI,uBAAuB,CAAC,qBAAqB,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;YAC1F,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,IAAI,uBAAuB,CAC/B,qBAAqB,KAAK,CAAC,OAAO,2DAA2D,CAC9F,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjF,MAAM,IAAI,uBAAuB,CAC/B,qBAAqB,KAAK,CAAC,OAAO,qBAAqB,MAAM,EAAE,CAChE,CAAC;YACJ,CAAC;YACD,IACE,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACzC,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM;gBAC7B,CAAC,QAAQ,CAAC,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC,EACxD,CAAC;gBACD,MAAM,IAAI,uBAAuB,CAC/B,qBAAqB,KAAK,CAAC,OAAO,kCAAkC,CACrE,CAAC;YACJ,CAAC;YACD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,aAAa,IAAI,IAAI,CAAC;YAC5F,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACzC,+DAA+D;oBAC/D,+DAA+D;oBAC/D,0DAA0D;oBAC1D,MAAM,KAAK,GAAG,aAAa,CACzB,cAAc,EACd,qBAAqB,CACnB,QAAQ,CAAC,YAAY,CAAC,YAAY,EAClC,0BAA0B,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAC/D,EACD,UAAU,CACX,CAAC;oBACF,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;wBAC1B,MAAM,IAAI,uBAAuB,CAC/B,qBAAqB,KAAK,CAAC,OAAO,8BAA8B,cAAc,MAAM,KAAK,CAAC,OAAO,sCAAsC,KAAK,CAAC,OAAO,IAAI,CACzJ,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,YAAY,GAAG,GAAG,KAAK,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;oBAC3D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;wBACtC,cAAc,CAAC,GAAG,CAChB,YAAY,EACZ,MAAM,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;4BACxD,GAAG;4BACH,cAAc;4BACd,GAAG,EAAE,cAAc;4BACnB,SAAS,EAAE,KAAK,CAAC,OAAO;4BACxB,cAAc;yBACf,CAAC,CACH,CAAC;oBACJ,CAAC;oBACD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAChD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;wBAC1C,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtE,MAAM,IAAI,uBAAuB,CAC/B,qBAAqB,KAAK,CAAC,OAAO,uCAAuC,cAAc,qCAAqC,SAAS,GAAG,MAAM,uCAAuC,KAAK,CAAC,OAAO,IAAI,CACvM,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;YAC7C,yEAAyE;YACzE,uEAAuE;YACvE,MAAM,OAAO,GAAG,qBAAqB,CACnC,KAAK,CAAC,OAAO,EACb,eAAe,EACf,QAAQ,CAAC,YAAY,EACrB,cAAc,CACf,CAAC;YACF,IAAI,OAAO;gBAAE,MAAM,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO;gBACP,cAAc,EAAE,QAAQ,CAAC,eAAe;gBACxC,cAAc;gBACd,eAAe;gBACf,cAAc;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;YAAS,CAAC;QACT,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAOD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAuB,EACvB,YAAwC,EAAE;IAE1C,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAChD,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;IAC/D,IAAI,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,GAA2D,IAAI,CAAC;YACrE,IAAI,CAAC;gBACH,CAAC,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;gBAAE,SAAS;YACrE,6EAA6E;YAC7E,wDAAwD;YACxD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,KAAK;gBAAE,SAAS;YAC7D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,MAAM,GAA6B,IAAI,CAAC;YAC5C,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;YAC9E,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;gBAAE,SAAS,CAAC,+CAA+C;YACrF,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACzD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,SAAS;YAC1F,kEAAkE;YAClE,oEAAoE;YACpE,4DAA4D;YAC5D,MAAM,cAAc,GAClB,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC7C,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,aAAa;gBAC1C,IAAI,CAAC;YACP,kEAAkE;YAClE,kEAAkE;YAClE,yDAAyD;YACzD,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,aAAa,CACzB,cAAc,EACd,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU;oBAClC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvF,CAAC,CAAC,qBAAqB,CACnB,CAAC,CAAC,YAAY,CAAC,YAAY,EAC3B,0BAA0B,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAChE,EACL,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAC1D,CAAC;gBACF,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC1B,MAAM,IAAI,uBAAuB,CAC/B,mCAAmC,OAAO,CAAC,EAAE,oBAAoB,cAAc,MAAM,KAAK,CAAC,OAAO,IAAI;wBACpG,gDAAgD,OAAO,CAAC,EAAE,uDAAuD,OAAO,CAAC,EAAE,IAAI,CAClI,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,wEAAwE;YACxE,qEAAqE;YACrE,0EAA0E;YAC1E,yEAAyE;YACzE,wEAAwE;YACxE,oEAAoE;YACpE,yEAAyE;YACzE,oEAAoE;YACpE,wEAAwE;YACxE,IAAI,eAAe,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;YAC7E,MAAM,OAAO,GAAG,qBAAqB,CACnC,OAAO,CAAC,EAAE,EACV,eAAe,EACf,CAAC,CAAC,YAAY,EACd,cAAc,CACf,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;gBAC/D,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO;gBACP,cAAc,EAAE,CAAC,CAAC,eAAe;gBACjC,cAAc;gBACd,eAAe;gBACf,cAAc;aACf,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM;QAC/B,CAAC;IACH,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;uEAEuE;AACvE,KAAK,UAAU,qBAAqB,CAClC,UAAiD,EACjD,KAMC;IAED,IAAI,SAAS,GAAY,IAAI,CAAC;IAC9B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;gBAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;gBAChB,cAAc,EAAE,KAAK,CAAC,cAAc;aACrC,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,CAAC;YAChB,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;IAC/F,MAAM,IAAI,uBAAuB,CAC/B,qBAAqB,KAAK,CAAC,SAAS,uCAAuC,KAAK,CAAC,cAAc,0DAA0D,MAAM,sCAAsC,KAAK,CAAC,SAAS,IAAI,CACzN,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Revise prompt for a convergence attempt that did not converge.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from the loop body rather than inlined: the repair instruction is
|
|
5
|
+
* a contract (three legitimate moves, a per-finding accounting line, and an
|
|
6
|
+
* order of work), and an inline template literal both hides it from tests and
|
|
7
|
+
* grows the orchestrator god-file. Pure string building — no state.
|
|
8
|
+
*
|
|
9
|
+
* Naming all three moves is what stops a do-nothing resubmit, but only "fix"
|
|
10
|
+
* moves the loop: rebuttals and unreachability declarations are not persisted
|
|
11
|
+
* as a channel and nothing adjudicates them. The contract says so out loud
|
|
12
|
+
* instead of implying an arbiter that does not exist — the accounting rides in
|
|
13
|
+
* the attempt's own output, where a human reading the run artifacts sees it.
|
|
14
|
+
*/
|
|
15
|
+
import type { ReviewFinding } from "@claudexor/schema";
|
|
16
|
+
export declare function buildRevisePrompt(basePrompt: string, findings: ReviewFinding[], runtimeErrors: string): string;
|
|
17
|
+
//# sourceMappingURL=revisePrompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revisePrompt.d.ts","sourceRoot":"","sources":["../src/revisePrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,aAAa,EAAE,EACzB,aAAa,EAAE,MAAM,GACpB,MAAM,CAYR"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { formatFindings } from "./runSupport.js";
|
|
2
|
+
export function buildRevisePrompt(basePrompt, findings, runtimeErrors) {
|
|
3
|
+
const contract = [
|
|
4
|
+
"The previous attempt did not converge. Each finding below has exactly three legitimate moves: fix it, rebut it with evidence showing the finding is wrong, or state that it is unreachable in this environment and name the concrete gap. Re-emitting the same work with none of those three changes nothing and will not converge.",
|
|
5
|
+
"Only a fix changes what the next review sees. There is no rebuttal channel and nothing adjudicates a rebuttal or an unreachability declaration today: both live only in this attempt's own output, preserved in the run artifacts for a human who reads them. Write them for that reader, and expect the next review to look at the changed work rather than at your argument about the last round.",
|
|
6
|
+
"A finding is a hypothesis with an argument attached. Check that argument against the code before you act on it. An argument that does not survive checking must be rebutted, not complied with: complying with a disproved finding introduces a real defect.",
|
|
7
|
+
"Do not patch findings one at a time. Re-read the whole diff first, group the findings by root cause, and only then act.",
|
|
8
|
+
"Before the deliverable, write one short line per finding: which of the three moves you took and the concrete evidence for it, meaning a file and line, a symbol, or a test name. That accounting rides in this attempt's output and goes no further on its own.",
|
|
9
|
+
"",
|
|
10
|
+
"Review findings:",
|
|
11
|
+
formatFindings(findings),
|
|
12
|
+
].join("\n");
|
|
13
|
+
return `${basePrompt}\n\n${contract}${runtimeErrors}`;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=revisePrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revisePrompt.js","sourceRoot":"","sources":["../src/revisePrompt.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,QAAyB,EACzB,aAAqB;IAErB,MAAM,QAAQ,GAAG;QACf,qUAAqU;QACrU,qYAAqY;QACrY,8PAA8P;QAC9P,yHAAyH;QACzH,iQAAiQ;QACjQ,EAAE;QACF,kBAAkB;QAClB,cAAc,CAAC,QAAQ,CAAC;KACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,GAAG,UAAU,OAAO,QAAQ,GAAG,aAAa,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BudgetLedger } from "@claudexor/budget";
|
|
2
|
+
import type { EventLog } from "@claudexor/event-log";
|
|
3
|
+
import type { QuotaSnapshot, TaskContract } from "@claudexor/schema";
|
|
4
|
+
import type { DelegationBudgetAuthority } from "./delegationBudgetAuthority.js";
|
|
5
|
+
import type { RunInput } from "./orchestrator.js";
|
|
6
|
+
export declare function createRootLedger(args: {
|
|
7
|
+
input: RunInput;
|
|
8
|
+
contract: TaskContract;
|
|
9
|
+
log: EventLog;
|
|
10
|
+
authority?: DelegationBudgetAuthority;
|
|
11
|
+
quotaSnapshots: readonly QuotaSnapshot[];
|
|
12
|
+
}): BudgetLedger;
|
|
13
|
+
//# sourceMappingURL=root-ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root-ledger.d.ts","sourceRoot":"","sources":["../src/root-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;IACvB,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C,GAAG,YAAY,CAgCf"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BudgetLedger } from "@claudexor/budget";
|
|
2
|
+
export function createRootLedger(args) {
|
|
3
|
+
const onCashSettled = (cashSpendUsd, valuationUsd, cashEstimated, valuationKnowledge) => args.log.emit("budget.cash", {
|
|
4
|
+
cash_spend_usd: cashSpendUsd,
|
|
5
|
+
valuation_usd: valuationUsd,
|
|
6
|
+
estimated: cashEstimated,
|
|
7
|
+
valuation_knowledge: valuationKnowledge,
|
|
8
|
+
});
|
|
9
|
+
const ledger = args.input.delegatedFromRunId
|
|
10
|
+
? args.authority?.attachChild(args.input.delegatedFromRunId, args.input.delegationAdmissionId ?? "", args.input.runId, args.contract.task_id, onCashSettled)
|
|
11
|
+
: new BudgetLedger(args.contract.budget.paid_budget, undefined, { onCashSettled });
|
|
12
|
+
if (!ledger) {
|
|
13
|
+
throw Object.assign(new Error(`delegated run ${args.contract.task_id} has no daemon-lifetime budget authority for parent ${args.input.delegatedFromRunId}`), { code: "delegation_budget_parent_unavailable", status: 409 });
|
|
14
|
+
}
|
|
15
|
+
for (const snapshot of args.quotaSnapshots)
|
|
16
|
+
ledger.observeQuotaSnapshot(snapshot);
|
|
17
|
+
return ledger;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=root-ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root-ledger.js","sourceRoot":"","sources":["../src/root-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMjD,MAAM,UAAU,gBAAgB,CAAC,IAMhC;IACC,MAAM,aAAa,GAAG,CACpB,YAAoB,EACpB,YAAoB,EACpB,aAAsB,EACtB,kBAAqD,EACrD,EAAE,CACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE;QAC3B,cAAc,EAAE,YAAY;QAC5B,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,aAAa;QACxB,mBAAmB,EAAE,kBAAkB;KACxC,CAAC,CAAC;IACL,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB;QAC1C,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CACzB,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAC7B,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,EACtC,IAAI,CAAC,KAAK,CAAC,KAAM,EACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,EACrB,aAAa,CACd;QACH,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACrF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CACP,iBAAiB,IAAI,CAAC,QAAQ,CAAC,OAAO,uDAAuD,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAC7H,EACD,EAAE,IAAI,EAAE,sCAAsC,EAAE,MAAM,EAAE,GAAG,EAAE,CAC9D,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc;QAAE,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAClF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Classify typed routing refusal separately from provider availability. */
|
|
2
|
+
export declare function routingFailureClassification(err: unknown): {
|
|
3
|
+
category: "config_error" | "harness_unavailable";
|
|
4
|
+
nextActions?: string[];
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=routing-failure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-failure.d.ts","sourceRoot":"","sources":["../src/routing-failure.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG;IAC1D,QAAQ,EAAE,cAAc,GAAG,qBAAqB,CAAC;IACjD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CASA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { harnessFailureNextActions } from "./harnessFailure.js";
|
|
2
|
+
/** Classify typed routing refusal separately from provider availability. */
|
|
3
|
+
export function routingFailureClassification(err) {
|
|
4
|
+
const isPreflightRefusal = !!err &&
|
|
5
|
+
typeof err === "object" &&
|
|
6
|
+
err.code === "routing_preflight_refused";
|
|
7
|
+
if (isPreflightRefusal) {
|
|
8
|
+
return { category: "config_error", nextActions: harnessFailureNextActions("config_error") };
|
|
9
|
+
}
|
|
10
|
+
return { category: "harness_unavailable" };
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=routing-failure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-failure.js","sourceRoot":"","sources":["../src/routing-failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,4EAA4E;AAC5E,MAAM,UAAU,4BAA4B,CAAC,GAAY;IAIvD,MAAM,kBAAkB,GACtB,CAAC,CAAC,GAAG;QACL,OAAO,GAAG,KAAK,QAAQ;QACtB,GAA0B,CAAC,IAAI,KAAK,2BAA2B,CAAC;IACnE,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,yBAAyB,CAAC,cAAc,CAAC,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-bounded.d.ts","sourceRoot":"","sources":["../src/run-bounded.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,wBAAsB,UAAU,CAAC,CAAC,EAChC,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Run work with bounded concurrency while preserving each item's source index. */
|
|
2
|
+
export async function runBounded(items, limit, work) {
|
|
3
|
+
if (items.length === 0)
|
|
4
|
+
return;
|
|
5
|
+
const concurrency = Math.max(1, Math.min(limit, items.length));
|
|
6
|
+
let next = 0;
|
|
7
|
+
const workers = Array.from({ length: concurrency }, async () => {
|
|
8
|
+
for (;;) {
|
|
9
|
+
const idx = next++;
|
|
10
|
+
if (idx >= items.length)
|
|
11
|
+
return;
|
|
12
|
+
await work(items[idx], idx);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
await Promise.all(workers);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=run-bounded.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-bounded.js","sourceRoot":"","sources":["../src/run-bounded.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAU,EACV,KAAa,EACb,IAA+C;IAE/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7D,SAAS,CAAC;YACR,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC;YACnB,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM;gBAAE,OAAO;YAChC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ResolvedConfig, RoutingGoal } from "@claudexor/schema";
|
|
2
|
+
import type { RunInput } from "./orchestrator.js";
|
|
3
|
+
export interface RunInputResolutionDeps {
|
|
4
|
+
config: ResolvedConfig;
|
|
5
|
+
registryIds: Iterable<string>;
|
|
6
|
+
routingGoal?: RoutingGoal;
|
|
7
|
+
}
|
|
8
|
+
/** Resolve stable pool, primary, model, web, and routing defaults once per run. */
|
|
9
|
+
export declare function resolveRunInputDefaults(input: RunInput, deps: RunInputResolutionDeps): RunInput;
|
|
10
|
+
//# sourceMappingURL=run-input-resolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-input-resolution.d.ts","sourceRoot":"","sources":["../src/run-input-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,GAAG,QAAQ,CA8E/F"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { HarnessUnavailableError } from "@claudexor/core";
|
|
2
|
+
import { noProjectRepoRoot } from "@claudexor/util";
|
|
3
|
+
/** Resolve stable pool, primary, model, web, and routing defaults once per run. */
|
|
4
|
+
export function resolveRunInputDefaults(input, deps) {
|
|
5
|
+
if (input.contextMode === "off" &&
|
|
6
|
+
!(input.mode === "ask" && input.repoRoot === noProjectRepoRoot())) {
|
|
7
|
+
throw new Error("contextMode 'off' is only supported for Ask without a repoRoot");
|
|
8
|
+
}
|
|
9
|
+
const cfg = deps.config;
|
|
10
|
+
const configuredPool = cfg.global.routing.eligible_harnesses;
|
|
11
|
+
const harnesses = input.harnesses ?? (configuredPool.length > 0 ? configuredPool : undefined);
|
|
12
|
+
const explicitPrimary = input.primaryHarness;
|
|
13
|
+
const configPrimary = cfg.global.routing.primary_harness;
|
|
14
|
+
const primaryHarness = explicitPrimary ??
|
|
15
|
+
(input.harnesses?.length === 1 ? input.harnesses[0] : undefined) ??
|
|
16
|
+
configPrimary ??
|
|
17
|
+
undefined;
|
|
18
|
+
if (primaryHarness && harnesses?.length && !harnesses.includes(primaryHarness)) {
|
|
19
|
+
if (explicitPrimary) {
|
|
20
|
+
throw new Error(`primary harness '${explicitPrimary}' is not in the eligible harness pool (${harnesses.join(", ")}); ` +
|
|
21
|
+
`pass --primary-harness as one of [${harnesses.join(", ")}], or add '${explicitPrimary}' to --harness`);
|
|
22
|
+
}
|
|
23
|
+
throw new HarnessUnavailableError(`ambiguous primary harness: the configured default primary '${primaryHarness}' is not in the selected pool [${harnesses.join(", ")}], ` +
|
|
24
|
+
`and no --primary-harness was given. Pin one explicitly, e.g. \`--primary-harness ${harnesses[0]}\` ` +
|
|
25
|
+
`(or another of [${harnesses.join(", ")}]).`);
|
|
26
|
+
}
|
|
27
|
+
if (input.web && input.externalContextPolicy && input.web !== input.externalContextPolicy) {
|
|
28
|
+
throw new Error(`contradictory web policy: web='${input.web}' vs externalContextPolicy='${input.externalContextPolicy}' (pass one, or equal values)`);
|
|
29
|
+
}
|
|
30
|
+
const web = input.web ?? input.externalContextPolicy ?? "auto";
|
|
31
|
+
const knownHarnessIds = new Set(deps.registryIds);
|
|
32
|
+
for (const key of Object.keys(input.models ?? {})) {
|
|
33
|
+
if (!knownHarnessIds.has(key)) {
|
|
34
|
+
throw new Error(`models map names unknown harness '${key}' (registered: ${[...knownHarnessIds].sort().join(", ")}); ` +
|
|
35
|
+
`run \`claudexor harness list --all\``);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const models = { ...input.models };
|
|
39
|
+
if (input.model) {
|
|
40
|
+
const scalarTarget = primaryHarness ?? (harnesses?.length === 1 ? harnesses[0] : undefined);
|
|
41
|
+
if (!scalarTarget) {
|
|
42
|
+
throw new Error(`a scalar model ('${input.model}') is ambiguous without a primary harness: ` +
|
|
43
|
+
`the pool is ${harnesses?.length ? `[${harnesses.join(", ")}]` : "auto-resolved"} — ` +
|
|
44
|
+
`set a primary harness, pass exactly one --harness, or use a harness-scoped model map`);
|
|
45
|
+
}
|
|
46
|
+
models[scalarTarget] ??= input.model;
|
|
47
|
+
}
|
|
48
|
+
const harnessCfg = cfg.global.harnesses;
|
|
49
|
+
for (const harnessId of harnesses ?? []) {
|
|
50
|
+
const defaultModel = harnessCfg[harnessId]?.default_model;
|
|
51
|
+
if (defaultModel)
|
|
52
|
+
models[harnessId] ??= defaultModel;
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
...input,
|
|
56
|
+
harnesses,
|
|
57
|
+
primaryHarness,
|
|
58
|
+
primaryHarnessExplicit: explicitPrimary !== undefined,
|
|
59
|
+
model: undefined,
|
|
60
|
+
models,
|
|
61
|
+
routingGoal: input.routingGoal ??
|
|
62
|
+
deps.routingGoal ??
|
|
63
|
+
cfg.project.budget?.routing_goal ??
|
|
64
|
+
cfg.global.routing.goal ??
|
|
65
|
+
"auto",
|
|
66
|
+
web,
|
|
67
|
+
externalContextPolicy: web,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=run-input-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-input-resolution.js","sourceRoot":"","sources":["../src/run-input-resolution.ts"],"names":[],"mappings":"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"}
|