@claudexor/orchestrator 1.0.1 → 2.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/attemptTelemetry.d.ts +38 -2
- package/dist/attemptTelemetry.d.ts.map +1 -1
- package/dist/attemptTelemetry.js +75 -2
- package/dist/attemptTelemetry.js.map +1 -1
- package/dist/contract-gates.d.ts +21 -0
- package/dist/contract-gates.d.ts.map +1 -0
- package/dist/contract-gates.js +93 -0
- package/dist/contract-gates.js.map +1 -0
- package/dist/credential-profiles.d.ts +152 -0
- package/dist/credential-profiles.d.ts.map +1 -0
- package/dist/credential-profiles.js +270 -0
- package/dist/credential-profiles.js.map +1 -0
- package/dist/diffReview.d.ts +9 -1
- package/dist/diffReview.d.ts.map +1 -1
- package/dist/diffReview.js +114 -18
- package/dist/diffReview.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/modelGovernance.d.ts +6 -1
- package/dist/modelGovernance.d.ts.map +1 -1
- package/dist/modelGovernance.js +8 -2
- package/dist/modelGovernance.js.map +1 -1
- package/dist/orchestrateExecutor.d.ts +43 -0
- package/dist/orchestrateExecutor.d.ts.map +1 -0
- package/dist/orchestrateExecutor.js +207 -0
- package/dist/orchestrateExecutor.js.map +1 -0
- package/dist/orchestratePlanner.d.ts.map +1 -1
- package/dist/orchestratePlanner.js.map +1 -1
- package/dist/orchestrator.d.ts +100 -83
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +1008 -993
- package/dist/orchestrator.js.map +1 -1
- package/dist/outcomeReducer.d.ts +25 -0
- package/dist/outcomeReducer.d.ts.map +1 -0
- package/dist/outcomeReducer.js +121 -0
- package/dist/outcomeReducer.js.map +1 -0
- package/dist/policyFindings.d.ts +18 -0
- package/dist/policyFindings.d.ts.map +1 -0
- package/dist/policyFindings.js +166 -0
- package/dist/policyFindings.js.map +1 -0
- package/dist/requestRequirements.d.ts +38 -0
- package/dist/requestRequirements.d.ts.map +1 -0
- package/dist/requestRequirements.js +127 -0
- package/dist/requestRequirements.js.map +1 -0
- package/dist/reviewerPanel.d.ts +15 -1
- package/dist/reviewerPanel.d.ts.map +1 -1
- package/dist/reviewerPanel.js +85 -2
- package/dist/reviewerPanel.js.map +1 -1
- package/dist/routeContext.d.ts +37 -0
- package/dist/routeContext.d.ts.map +1 -0
- package/dist/routeContext.js +38 -0
- package/dist/routeContext.js.map +1 -0
- package/dist/runSupport.d.ts +37 -21
- package/dist/runSupport.d.ts.map +1 -1
- package/dist/runSupport.js +102 -78
- package/dist/runSupport.js.map +1 -1
- package/dist/runTelemetryWriter.d.ts +20 -0
- package/dist/runTelemetryWriter.d.ts.map +1 -0
- package/dist/runTelemetryWriter.js +68 -0
- package/dist/runTelemetryWriter.js.map +1 -0
- package/dist/runTerminals.d.ts +7 -1
- package/dist/runTerminals.d.ts.map +1 -1
- package/dist/runTerminals.js +42 -4
- package/dist/runTerminals.js.map +1 -1
- package/dist/structuredOutput.d.ts +33 -0
- package/dist/structuredOutput.d.ts.map +1 -0
- package/dist/structuredOutput.js +106 -0
- package/dist/structuredOutput.js.map +1 -0
- package/package.json +19 -18
- package/dist/finalVerifier.d.ts +0 -25
- package/dist/finalVerifier.d.ts.map +0 -1
- package/dist/finalVerifier.js +0 -110
- package/dist/finalVerifier.js.map +0 -1
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { toolRisk, } from "@claudexor/schema";
|
|
3
|
+
import { deliveryReceiptMutated, isSuccessfulOrchestrateTerminal, reduceOrchestrateOutcome, } from "./outcomeReducer.js";
|
|
4
|
+
/** Ordered executor; terminal truth is delegated to the exhaustive outcome reducer. */
|
|
5
|
+
export async function executeOrchestratePlan(input) {
|
|
6
|
+
const steps = input.plan.tool_calls.map((call, index) => ({
|
|
7
|
+
index,
|
|
8
|
+
tool: call.tool,
|
|
9
|
+
risk: toolRisk(call.tool),
|
|
10
|
+
status: "pending",
|
|
11
|
+
required: call.required,
|
|
12
|
+
terminal_status: null,
|
|
13
|
+
terminal_source: null,
|
|
14
|
+
evidence_refs: [],
|
|
15
|
+
run_id: null,
|
|
16
|
+
detail: null,
|
|
17
|
+
}));
|
|
18
|
+
let stoppedReason = null;
|
|
19
|
+
let forcedTerminal = null;
|
|
20
|
+
let readOnly = true;
|
|
21
|
+
const receiptRefs = [];
|
|
22
|
+
const persist = () => {
|
|
23
|
+
input.store.writeYaml(join(input.paths.finalDir, "orchestration_progress.yaml"), {
|
|
24
|
+
steps,
|
|
25
|
+
autonomy: input.autonomy,
|
|
26
|
+
stopped_reason: stoppedReason,
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
persist();
|
|
30
|
+
input.log.emit("output.ready", { kind: "report", path: "final/orchestration_progress.yaml" });
|
|
31
|
+
let executed = 0;
|
|
32
|
+
for (let i = 0; i < input.plan.tool_calls.length; i++) {
|
|
33
|
+
const call = input.plan.tool_calls[i];
|
|
34
|
+
const step = steps[i];
|
|
35
|
+
if (input.signal?.aborted) {
|
|
36
|
+
Object.assign(step, {
|
|
37
|
+
status: "skipped",
|
|
38
|
+
terminal_status: "cancelled",
|
|
39
|
+
terminal_source: "executor",
|
|
40
|
+
detail: "run cancelled before this step",
|
|
41
|
+
});
|
|
42
|
+
stoppedReason = "cancelled";
|
|
43
|
+
forcedTerminal = "cancelled";
|
|
44
|
+
persist();
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
const budgetTerminal = input.ledger.terminal();
|
|
48
|
+
if (budgetTerminal) {
|
|
49
|
+
Object.assign(step, {
|
|
50
|
+
status: "skipped",
|
|
51
|
+
terminal_status: budgetTerminal,
|
|
52
|
+
terminal_source: "budget",
|
|
53
|
+
detail: `root paid budget stopped execution (${budgetTerminal})`,
|
|
54
|
+
});
|
|
55
|
+
stoppedReason = `root paid budget stopped after ${executed} step(s)`;
|
|
56
|
+
forcedTerminal = budgetTerminal;
|
|
57
|
+
persist();
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
if (input.maxToolCalls !== null && executed >= input.maxToolCalls) {
|
|
61
|
+
Object.assign(step, {
|
|
62
|
+
status: "skipped",
|
|
63
|
+
terminal_status: "exhausted",
|
|
64
|
+
terminal_source: "budget",
|
|
65
|
+
detail: `budget max_tool_calls=${input.maxToolCalls} reached`,
|
|
66
|
+
});
|
|
67
|
+
stoppedReason = `budget max_tool_calls=${input.maxToolCalls} reached after ${executed} step(s)`;
|
|
68
|
+
forcedTerminal = "exhausted";
|
|
69
|
+
persist();
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
if (toolRisk(call.tool) === "risky") {
|
|
73
|
+
if (input.autonomy === "auto_safe") {
|
|
74
|
+
step.status = step.required ? "blocked" : "skipped";
|
|
75
|
+
step.terminal_status = step.required ? "blocked" : null;
|
|
76
|
+
step.terminal_source = "policy";
|
|
77
|
+
step.detail = "risky step requires human approval (auto_safe)";
|
|
78
|
+
if (step.required)
|
|
79
|
+
stoppedReason = `blocked at risky step #${i} (${call.tool}) under auto_safe`;
|
|
80
|
+
input.log.emit("orchestrate.step.blocked", {
|
|
81
|
+
index: i,
|
|
82
|
+
tool: call.tool,
|
|
83
|
+
autonomy: input.autonomy,
|
|
84
|
+
});
|
|
85
|
+
persist();
|
|
86
|
+
if (step.required)
|
|
87
|
+
break;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
step.status = "running";
|
|
91
|
+
persist();
|
|
92
|
+
executed++;
|
|
93
|
+
try {
|
|
94
|
+
const result = await input.executeApplyStep(call);
|
|
95
|
+
step.status = result.ok ? "done" : "failed";
|
|
96
|
+
step.terminal_status = result.ok ? "success" : "failed";
|
|
97
|
+
step.terminal_source = "delivery";
|
|
98
|
+
step.run_id = result.runId;
|
|
99
|
+
step.detail = result.detail;
|
|
100
|
+
if (result.receipt) {
|
|
101
|
+
const receiptRef = `final/orchestration_delivery_receipt_${i}.yaml`;
|
|
102
|
+
input.store.writeYaml(join(input.paths.root, receiptRef), result.receipt);
|
|
103
|
+
step.evidence_refs = [receiptRef];
|
|
104
|
+
receiptRefs.push(receiptRef);
|
|
105
|
+
readOnly = readOnly && !deliveryReceiptMutated(result.receipt);
|
|
106
|
+
}
|
|
107
|
+
input.log.emit("orchestrate.step.done", {
|
|
108
|
+
index: i,
|
|
109
|
+
tool: call.tool,
|
|
110
|
+
ok: result.ok,
|
|
111
|
+
run_id: result.runId,
|
|
112
|
+
});
|
|
113
|
+
if (!result.ok) {
|
|
114
|
+
if (step.required)
|
|
115
|
+
stoppedReason = `apply step #${i} failed: ${result.detail}`;
|
|
116
|
+
persist();
|
|
117
|
+
if (step.required)
|
|
118
|
+
break;
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
step.status = "failed";
|
|
124
|
+
step.terminal_status = "failed";
|
|
125
|
+
step.terminal_source = "delivery";
|
|
126
|
+
step.detail = error instanceof Error ? error.message : String(error);
|
|
127
|
+
if (step.required)
|
|
128
|
+
stoppedReason = `apply step #${i} threw: ${step.detail}`;
|
|
129
|
+
persist();
|
|
130
|
+
if (step.required)
|
|
131
|
+
break;
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
persist();
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
step.status = "running";
|
|
138
|
+
persist();
|
|
139
|
+
executed++;
|
|
140
|
+
try {
|
|
141
|
+
const result = await input.executeSafeStep(call);
|
|
142
|
+
step.status = result.status;
|
|
143
|
+
step.terminal_status = result.terminalStatus;
|
|
144
|
+
step.terminal_source = result.terminalSource;
|
|
145
|
+
step.evidence_refs = result.evidenceRefs;
|
|
146
|
+
step.run_id = result.runId;
|
|
147
|
+
step.detail = result.detail;
|
|
148
|
+
input.log.emit("orchestrate.step.done", {
|
|
149
|
+
index: i,
|
|
150
|
+
tool: call.tool,
|
|
151
|
+
status: result.status,
|
|
152
|
+
run_id: result.runId,
|
|
153
|
+
});
|
|
154
|
+
if (step.required &&
|
|
155
|
+
(result.status !== "done" || !isSuccessfulOrchestrateTerminal(result.terminalStatus))) {
|
|
156
|
+
stoppedReason = `required safe step #${i} (${call.tool}) did not succeed: ${result.detail}`;
|
|
157
|
+
persist();
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
step.status = "failed";
|
|
163
|
+
step.terminal_status = "failed";
|
|
164
|
+
step.terminal_source = "executor";
|
|
165
|
+
step.detail = error instanceof Error ? error.message : String(error);
|
|
166
|
+
if (step.required)
|
|
167
|
+
stoppedReason = `safe step #${i} (${call.tool}) threw: ${step.detail}`;
|
|
168
|
+
persist();
|
|
169
|
+
if (step.required)
|
|
170
|
+
break;
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
persist();
|
|
174
|
+
}
|
|
175
|
+
const finalBudgetTerminal = input.ledger.terminal();
|
|
176
|
+
if (!forcedTerminal && finalBudgetTerminal) {
|
|
177
|
+
forcedTerminal = finalBudgetTerminal;
|
|
178
|
+
for (const step of steps) {
|
|
179
|
+
if (step.status !== "pending")
|
|
180
|
+
continue;
|
|
181
|
+
Object.assign(step, {
|
|
182
|
+
status: "skipped",
|
|
183
|
+
terminal_status: finalBudgetTerminal,
|
|
184
|
+
terminal_source: "budget",
|
|
185
|
+
detail: `root paid budget stopped execution (${finalBudgetTerminal})`,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
stoppedReason = `root paid budget stopped after ${executed} step(s)`;
|
|
189
|
+
}
|
|
190
|
+
persist();
|
|
191
|
+
const terminal = reduceOrchestrateOutcome([
|
|
192
|
+
...steps
|
|
193
|
+
.filter((step) => !forcedTerminal || step.status !== "pending")
|
|
194
|
+
.map((step) => ({
|
|
195
|
+
required: step.required,
|
|
196
|
+
executionStatus: step.status,
|
|
197
|
+
terminalStatus: step.terminal_status,
|
|
198
|
+
})),
|
|
199
|
+
...(forcedTerminal
|
|
200
|
+
? [{ required: true, executionStatus: "done", terminalStatus: forcedTerminal }]
|
|
201
|
+
: []),
|
|
202
|
+
]);
|
|
203
|
+
const done = steps.filter((step) => step.status === "done").length;
|
|
204
|
+
const note = `${terminal} (${done}/${steps.length} steps done${stoppedReason ? `; ${stoppedReason}` : ""})`;
|
|
205
|
+
return { terminal, note, readOnly, receiptRefs };
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=orchestrateExecutor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrateExecutor.js","sourceRoot":"","sources":["../src/orchestrateExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestratePlanner.d.ts","sourceRoot":"","sources":["../src/orchestratePlanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"orchestratePlanner.d.ts","sourceRoot":"","sources":["../src/orchestratePlanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,mBAAmB,IAAI,oBAAoB,EAC3C,eAAe,IAAI,gBAAgB,EACpC,MAAM,mBAAmB,CAAC;AAQ3B,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,oBAAoB,GAC7B,MAAM,CA4BR;AAuBD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;IACtD,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf,CA2BA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestratePlanner.js","sourceRoot":"","sources":["../src/orchestratePlanner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestratePlanner.js","sourceRoot":"","sources":["../src/orchestratePlanner.ts"],"names":[],"mappings":"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"}
|
package/dist/orchestrator.d.ts
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
import type { AccessProfile, Attachment, ControlReviewerPanelEntry, EffortHint, ExternalContextPolicy, HarnessEvent, InteractionAnswerSet, InteractionRequest, ModeKind,
|
|
1
|
+
import type { AccessProfile, Attachment, ControlReviewerPanelEntry, EffortHint, ExternalContextPolicy, HarnessEvent, InteractionAnswerSet, InteractionRequest, ModeKind, PaidBudget, QuotaSnapshot, RoutingGoal, ProtectedPathApproval, RunEvent, RunStatus, TestCommandInvocation, ProviderFamily } from "@claudexor/schema";
|
|
2
2
|
import { type OrchestrateAutonomy } from "@claudexor/schema";
|
|
3
3
|
import type { AdapterRegistry } from "@claudexor/core";
|
|
4
4
|
import { type DiffReviewInput, type DiffReviewResult } from "./diffReview.js";
|
|
5
5
|
import { type ReviewerSpec } from "@claudexor/review";
|
|
6
6
|
import { type SynthesisMode } from "@claudexor/synthesis";
|
|
7
|
+
import { BudgetLedger } from "@claudexor/budget";
|
|
7
8
|
export interface OrchestratorDeps {
|
|
8
9
|
registry: AdapterRegistry;
|
|
9
10
|
reviewers?: ReviewerSpec[];
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
paidBudget?: PaidBudget;
|
|
12
|
+
routingGoal?: RoutingGoal;
|
|
13
|
+
/** Durable global quota projection, injected by the daemon boundary. */
|
|
14
|
+
quotaSnapshots?: () => readonly QuotaSnapshot[];
|
|
15
|
+
/** Persist typed live quota/cooldown events into that same projection. */
|
|
16
|
+
quotaEventSink?: (harnessId: string, event: HarnessEvent) => void;
|
|
12
17
|
/** Ordered explicit reviewer panel. Unlike legacy per-family overrides this
|
|
13
18
|
* preserves duplicate harness entries, so one provider can review through
|
|
14
19
|
* multiple requested models in a single panel pass. */
|
|
@@ -32,19 +37,22 @@ export interface RunInput {
|
|
|
32
37
|
*/
|
|
33
38
|
executionRoot?: string;
|
|
34
39
|
prompt: string;
|
|
40
|
+
/** Caller-supplied system-level instructions layered onto every task-producing
|
|
41
|
+
* lane (primary, candidate, planner, explorer, orchestrate-planner) — never
|
|
42
|
+
* reviewers, synthesis, or the auth smoke. */
|
|
43
|
+
instructions?: string;
|
|
35
44
|
/** Files/images attached to this turn, resolved to scoped on-disk paths. */
|
|
36
45
|
attachments?: Attachment[];
|
|
37
46
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* resolves it to a per-harness `HarnessRunSpec.browser`.
|
|
47
|
+
* Request the agent-driven browser. Preflight resolves it per selected lane;
|
|
48
|
+
* a zero-effective pool refuses and a mixed pool carries explicit receipts.
|
|
41
49
|
*/
|
|
42
50
|
browser?: boolean;
|
|
43
51
|
mode?: ModeKind;
|
|
44
52
|
contextMode?: "off" | "auto";
|
|
45
53
|
harnesses?: string[];
|
|
46
54
|
primaryHarness?: string;
|
|
47
|
-
|
|
55
|
+
routingGoal?: RoutingGoal;
|
|
48
56
|
n?: number;
|
|
49
57
|
baseRef?: string;
|
|
50
58
|
attempts?: number | null;
|
|
@@ -55,12 +63,12 @@ export interface RunInput {
|
|
|
55
63
|
/** agent flag: create-from-scratch intent (the old `create` mode). */
|
|
56
64
|
create?: boolean;
|
|
57
65
|
synthesis?: SynthesisMode;
|
|
58
|
-
/** Explicit deterministic
|
|
59
|
-
tests?:
|
|
66
|
+
/** Explicit typed-argv deterministic gates from caller-provided run configuration. */
|
|
67
|
+
tests?: TestCommandInvocation[];
|
|
60
68
|
/** Typed per-run approval for changing auto-protected gate/test paths. */
|
|
61
69
|
protectedPathApprovals?: ProtectedPathApproval[];
|
|
62
|
-
|
|
63
|
-
|
|
70
|
+
paidBudget?: PaidBudget;
|
|
71
|
+
budgetLedger?: BudgetLedger;
|
|
64
72
|
/** Orchestrate executor: cap on plan tool calls. */
|
|
65
73
|
maxToolCalls?: number | null;
|
|
66
74
|
/** Access profile; e.g. `full` for autonomous terminal tasks (agent and in-place convergence). */
|
|
@@ -90,14 +98,22 @@ export interface RunInput {
|
|
|
90
98
|
threadId?: string;
|
|
91
99
|
/** Preferred auth route for harness attempts (subscription/api_key/auto). */
|
|
92
100
|
authPreference?: "subscription" | "api_key" | "auto";
|
|
101
|
+
/** Explicit credential profile for this turn (INV-135): resolved once per
|
|
102
|
+
* routed harness; unknown/disabled/mismatched ids refuse, never default. */
|
|
103
|
+
credentialProfileId?: string | null;
|
|
93
104
|
/**
|
|
94
105
|
* Native CLI session ids to resume, keyed by harness id (the thread's vendor
|
|
95
106
|
* session cache). A routed harness with an entry continues its own native
|
|
96
107
|
* conversation (`codex exec resume` / `claude --resume`) instead of starting fresh.
|
|
97
108
|
*/
|
|
98
|
-
resumeSessions?: Record<string,
|
|
109
|
+
resumeSessions?: Record<string, {
|
|
110
|
+
sessionId: string;
|
|
111
|
+
profileId: string | null;
|
|
112
|
+
}>;
|
|
99
113
|
/** Called when a harness emits its native session id (recorded for future resume). */
|
|
100
|
-
|
|
114
|
+
/** profileId = the EFFECTIVE profile the session was created under
|
|
115
|
+
* (adapter-stamped; rotation makes it differ from the requested id). */
|
|
116
|
+
onSessionObserved?: (harnessId: string, nativeSessionId: string, observedModel?: string | null, profileId?: string | null) => void;
|
|
101
117
|
/** In-process sink for every RunEvent (mirrors events.jsonl) for live observers. */
|
|
102
118
|
onEvent?: (event: RunEvent) => void;
|
|
103
119
|
/** In-process sink for the full per-harness event stream (richer than RunEvent). */
|
|
@@ -126,6 +142,31 @@ export interface RunInput {
|
|
|
126
142
|
* is the deliverable. Only honored by convergence modes.
|
|
127
143
|
*/
|
|
128
144
|
inPlace?: boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Per-run globs no candidate may touch at all (create/modify/delete) —
|
|
147
|
+
* stricter than protected paths, which gate only tampering with existing
|
|
148
|
+
* files. Envelope/isolated runs only: the engine's post-diff policy gate is
|
|
149
|
+
* the authoritative enforcement (violation → blocking finding → blocked,
|
|
150
|
+
* patch undelivered). An in-place run with denyPaths is refused at preflight:
|
|
151
|
+
* a live tree offers no pre-delivery containment, and silent non-enforcement
|
|
152
|
+
* is never acceptable. accept_risk MAY still deliver (INV-111).
|
|
153
|
+
*/
|
|
154
|
+
denyPaths?: string[];
|
|
155
|
+
/**
|
|
156
|
+
* JSON Schema the run's final ANSWER must conform to (normalized at the
|
|
157
|
+
* engine boundary). MANDATORY when present: every answer-producing lane is
|
|
158
|
+
* constrained natively, an incapable lane is a typed preflight refusal, and
|
|
159
|
+
* ONE engine validator writes final/output.json + a conformance receipt. A
|
|
160
|
+
* non-conformant answer ends success-with-warnings, never a hard fail.
|
|
161
|
+
* Applies to agent race/ask answers; other strategies refuse loudly.
|
|
162
|
+
*/
|
|
163
|
+
outputSchema?: Record<string, unknown> | null;
|
|
164
|
+
/**
|
|
165
|
+
* Per-run turn cap. Run-level beats per-harness settings (specific beats
|
|
166
|
+
* general); a lane whose manifest lacks max_turns support discloses the
|
|
167
|
+
* ignored knob instead of silently dropping it.
|
|
168
|
+
*/
|
|
169
|
+
maxTurns?: number | null;
|
|
129
170
|
/**
|
|
130
171
|
* How much the orchestrate planner may act without confirmation
|
|
131
172
|
* (suggest/auto_safe/auto_full). Honored ONLY by mode=orchestrate; the
|
|
@@ -178,10 +219,19 @@ export interface OrchestratorResult {
|
|
|
178
219
|
/** Settled ledger spend for this run (USD); null when no ledger tracked it.
|
|
179
220
|
* Consumer: the orchestrate executor's aggregate budget across sub-runs. */
|
|
180
221
|
spendUsd?: number | null;
|
|
222
|
+
/** Why a `cancelled` run was cancelled, when it was NOT a plain user cancel —
|
|
223
|
+
* today only `wall_clock_exceeded` (the maxSeconds deadline). Absent for a
|
|
224
|
+
* user-initiated cancel. */
|
|
225
|
+
cancelReason?: string;
|
|
181
226
|
}
|
|
182
227
|
export declare class Orchestrator {
|
|
183
228
|
private readonly deps;
|
|
184
229
|
private readonly gateway;
|
|
230
|
+
private readonly requestRequirements;
|
|
231
|
+
/** Per-attempt cap on forwarded live delta chunks (W-C4 flood guard, sol
|
|
232
|
+
* #10): past this the deltas are dropped and the cutoff is disclosed once;
|
|
233
|
+
* the complete message always still lands. */
|
|
234
|
+
static readonly MAX_DELTAS_PER_ATTEMPT = 4000;
|
|
185
235
|
constructor(deps: OrchestratorDeps);
|
|
186
236
|
/** Scoped DIFF review — thin delegate; mechanics live in diffReview.ts. */
|
|
187
237
|
reviewDiff(input: DiffReviewInput): Promise<DiffReviewResult>;
|
|
@@ -200,16 +250,6 @@ export declare class Orchestrator {
|
|
|
200
250
|
private artifactStore;
|
|
201
251
|
/** The producing intent a candidate plays (create flag switches it; not hardcoded to implement). */
|
|
202
252
|
private candidateIntent;
|
|
203
|
-
/**
|
|
204
|
-
* Resolve the per-harness browser-tool wiring for a run spec. Returns null
|
|
205
|
-
* (no browser) unless: the run opted in (`input.browser`), the harness has the
|
|
206
|
-
* `browser_tool` capability, AND web policy is not `off` (the browser is live
|
|
207
|
-
* egress and must ride `external_context_policy`). Screenshots/PDFs are written
|
|
208
|
-
* into the run's artifact tree so they surface in the Canvas gallery. Headed by
|
|
209
|
-
* default so the user can watch; `cdp_endpoint` is filled by the headed-Chromium
|
|
210
|
-
* launcher (7B) for the shared, mirrored window.
|
|
211
|
-
*/
|
|
212
|
-
private browserSpecFor;
|
|
213
253
|
/**
|
|
214
254
|
* Session fields for a route's run spec: auth route preference + native
|
|
215
255
|
* resume id. Preference precedence: explicit per-run > per-harness
|
|
@@ -221,8 +261,18 @@ export declare class Orchestrator {
|
|
|
221
261
|
private estimateUsdFloor;
|
|
222
262
|
private execRootOf;
|
|
223
263
|
private sessionSpecFields;
|
|
224
|
-
|
|
225
|
-
|
|
264
|
+
private resolveCredentialProfile;
|
|
265
|
+
/** The typed effective auth route for a SELECTED credential profile
|
|
266
|
+
* (round-18 #2): adapters execute strictly by credential_kind, so routing,
|
|
267
|
+
* billing classification, model truth, and quota lookup must share this
|
|
268
|
+
* one fact — never the default store's sources or a previous default-route
|
|
269
|
+
* metric. null = no profile selected or it does not resolve here. */
|
|
270
|
+
private profileAuthRoute;
|
|
271
|
+
private profilePolicy;
|
|
272
|
+
/** null = no profile selected (default verdict stands); "available" = the
|
|
273
|
+
* profile's own probe admits the route; any other string = typed refusal. */
|
|
274
|
+
private profileAvailabilityOverride;
|
|
275
|
+
private preflightProfile;
|
|
226
276
|
/**
|
|
227
277
|
* Lift an adapter's auth-route override marker into the typed
|
|
228
278
|
* `route.fallback.auth_switched` run event (validated payload). An explicit
|
|
@@ -233,13 +283,13 @@ export declare class Orchestrator {
|
|
|
233
283
|
/**
|
|
234
284
|
* Resolve candidate adapters: explicit `--harness`, else available real harnesses, then
|
|
235
285
|
* **capability-gate** to those that can actually produce work for `intent` (e.g. a
|
|
236
|
-
*
|
|
286
|
+
* a planner-only adapter with `implement: false` is dropped from an implement race), and
|
|
237
287
|
* expand to n. Fails loudly if nothing can perform the intent.
|
|
238
288
|
*/
|
|
239
289
|
private resolveRunInput;
|
|
240
290
|
private resolveCandidateAdapters;
|
|
241
291
|
/**
|
|
242
|
-
* Order the eligible pool by
|
|
292
|
+
* Order the eligible pool by the selected routing goal (budget router): an
|
|
243
293
|
* explicit user pool keeps the user's order; an explicit primary harness is
|
|
244
294
|
* always pinned first. Cross-family diversity is encouraged for later slots.
|
|
245
295
|
*/
|
|
@@ -252,12 +302,6 @@ export declare class Orchestrator {
|
|
|
252
302
|
* candidates explore the live tree inside their own envelopes.
|
|
253
303
|
*/
|
|
254
304
|
private lazyContextSection;
|
|
255
|
-
/**
|
|
256
|
-
* Ledger a routed harness reserves from: harnesses with a configured
|
|
257
|
-
* `max_usd` get a child sub-ledger (spend rolls up to the run cap), so one
|
|
258
|
-
* harness exhausting its own budget cannot drain the whole run.
|
|
259
|
-
*/
|
|
260
|
-
private harnessLedger;
|
|
261
305
|
/**
|
|
262
306
|
* The web mode a routed harness actually executes for a requested policy.
|
|
263
307
|
* Tools-permissioned web (e.g. claude) has no cached index: `cached` upgrades
|
|
@@ -270,14 +314,22 @@ export declare class Orchestrator {
|
|
|
270
314
|
private config;
|
|
271
315
|
private projectConfig;
|
|
272
316
|
private buildContract;
|
|
273
|
-
private gateSpecs;
|
|
274
|
-
private testsEvidence;
|
|
275
|
-
private writeTestsEvidence;
|
|
276
317
|
/**
|
|
277
318
|
* Per-harness settings applied to one route's run spec (model/effort/web
|
|
278
319
|
* defaults, max_turns, tool lists). Knobs the manifest does not support are
|
|
279
320
|
* RETURNED as ignored reasons (disclosed by the caller), never silently sent.
|
|
280
321
|
*/
|
|
322
|
+
/**
|
|
323
|
+
* The HarnessRunSpec fields every TASK-PRODUCING lane shares (primary,
|
|
324
|
+
* candidate, planner, explorer, orchestrate-planner). Extracting the identical
|
|
325
|
+
* block into ONE owner means a new task-producing field lands here once —
|
|
326
|
+
* never forgotten in one of the HarnessRunSpec.parse sites (the multi-path
|
|
327
|
+
* trap). Per-run `instructions` ride every task-producing lane but are withheld
|
|
328
|
+
* from `synthesize` (a merge of existing candidates, not a fresh task
|
|
329
|
+
* execution — owner Quiz-5a); reviewers and the auth smoke build their own
|
|
330
|
+
* specs and never call this.
|
|
331
|
+
*/
|
|
332
|
+
private harnessSpecKnobs;
|
|
281
333
|
private routeSpecKnobs;
|
|
282
334
|
/** Run one candidate inside an already-created envelope. Never creates/disposes the envelope. */
|
|
283
335
|
private runCandidateInEnvelope;
|
|
@@ -285,8 +337,8 @@ export declare class Orchestrator {
|
|
|
285
337
|
private interactionChannelFor;
|
|
286
338
|
/**
|
|
287
339
|
* Guarantee a git boundary for write-mode runs. Non-git project folders are
|
|
288
|
-
* initialized in place (
|
|
289
|
-
*
|
|
340
|
+
* initialized in place (`git init`, deterministic baseline commit) without
|
|
341
|
+
* creating or editing `.gitignore`, and the action is announced via a
|
|
290
342
|
* `project.git.initialized` event. Returns the failure message when the
|
|
291
343
|
* boundary cannot be established (the terminal failure events are already
|
|
292
344
|
* emitted); null on success.
|
|
@@ -296,21 +348,14 @@ export declare class Orchestrator {
|
|
|
296
348
|
/** Single-owner telemetry artifact (final/telemetry.yaml); surfaces project it, never recompute. */
|
|
297
349
|
private writeRunTelemetry;
|
|
298
350
|
/** Review a set of runs and return their evidence (with finalReviewClean + review_verified caveat). */
|
|
299
|
-
/**
|
|
300
|
-
* Deterministic policy findings from the typed diff (no LLM, no regex over
|
|
301
|
-
* prose): protected-path changes and critical-risk diffs escalate NEEDS_HUMAN;
|
|
302
|
-
* a high-risk diff without a cross-family panel escalates as well. Each
|
|
303
|
-
* finding cites the matched files as evidence (BIBLE: evidence beats summaries).
|
|
304
|
-
*/
|
|
305
|
-
private policyFindings;
|
|
306
351
|
/**
|
|
307
352
|
* SINGLE funnel for every reviewer-panel invocation: run it inside a per-review
|
|
308
|
-
* scoped harness HOME (Bible §6) so reviewer
|
|
309
|
-
*
|
|
310
|
-
*
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
* settles (resolve OR reject).
|
|
353
|
+
* scoped harness HOME (Bible §6) so reviewer scratch state and injected auth
|
|
354
|
+
* routes do not enter the project or ordinary operator HOME. Native
|
|
355
|
+
* Codex/Claude routes deliberately keep their vendor-owned host-user stores;
|
|
356
|
+
* no credential file is copied into the scoped home. Every call site MUST go
|
|
357
|
+
* through here so the non-native scoping cannot drift. Disposed once the
|
|
358
|
+
* panel settles (resolve OR reject).
|
|
314
359
|
*/
|
|
315
360
|
private reviewScoped;
|
|
316
361
|
private reviewRuns;
|
|
@@ -335,46 +380,18 @@ export declare class Orchestrator {
|
|
|
335
380
|
private runExplore;
|
|
336
381
|
/** audit: single read-only audit/map report. */
|
|
337
382
|
private runAudit;
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
* and runs READ-ONLY. With default `suggest` autonomy its work product is a
|
|
342
|
-
* typed orchestration plan over the 6-tool belt (start_run / race / status /
|
|
343
|
-
* answer_question / apply / review); execution happens as subsequent thread
|
|
344
|
-
* turns. Degradation contract: any 1 harness works (single-route plan); 2+
|
|
345
|
-
* harnesses unlock cross-family race/review in the plan space.
|
|
346
|
-
*/
|
|
347
|
-
/** ONE owner of the per-run USD cap precedence: explicit input -> embedder deps -> operator config. */
|
|
348
|
-
private resolveMaxUsdCap;
|
|
383
|
+
private resolvePaidBudget;
|
|
384
|
+
private rootLedger;
|
|
385
|
+
private routeBillingKnowledge;
|
|
349
386
|
private runOrchestrate;
|
|
350
387
|
private runReadOnlyReport;
|
|
351
|
-
/**
|
|
352
|
-
* Execute a typed orchestration plan under auto_safe / auto_full. Runs the
|
|
353
|
-
* tool_calls IN ORDER, classifying each via toolRisk (FAIL-CLOSED). Persists
|
|
354
|
-
* final/orchestration_progress.yaml and emits progress events. Returns the
|
|
355
|
-
* executor's terminal status (success / blocked / failed) and a short note.
|
|
356
|
-
*
|
|
357
|
-
* SAFETY INVARIANTS (see CLAUDEXOR doctrine):
|
|
358
|
-
* 1. A SAFE step NEVER mutates the live tree: start_run/race run as isolated
|
|
359
|
-
* ENVELOPE sub-runs (inPlace=false, asserted), review/status/answer are reads.
|
|
360
|
-
* 2. Risk is fail-closed (toolRisk): any unknown/undeclared tool is risky.
|
|
361
|
-
* 3. auto_safe STOPS at the first risky step (apply) without executing it; the
|
|
362
|
-
* run ends `blocked` awaiting a human decision.
|
|
363
|
-
* 4. answer_question / status / review are read-only w.r.t. the tree.
|
|
364
|
-
*/
|
|
365
|
-
private executeOrchestratePlan;
|
|
366
388
|
/**
|
|
367
389
|
* Run one SAFE plan step. start_run/race spawn ISOLATED ENVELOPE sub-runs
|
|
368
390
|
* (inPlace=false, ASSERTED); review/status/answer_question are pure reads /
|
|
369
391
|
* answer delivery that never mutate the live tree.
|
|
370
392
|
*/
|
|
371
393
|
private executeSafeStep;
|
|
372
|
-
/**
|
|
373
|
-
* Execute a RISKY `apply` step (auto_full only) through the SINGLE existing
|
|
374
|
-
* apply gate (`validateApplyGate`) + `deliver` — the same path
|
|
375
|
-
* accept_clean_patch uses. Reads the referenced run's patch + work_product +
|
|
376
|
-
* decision artifacts; refuses unless the gate passes.
|
|
377
|
-
*/
|
|
394
|
+
/** Execute an auto_full apply through the shared fresh-verification gate. */
|
|
378
395
|
private executeApplyStep;
|
|
379
396
|
}
|
|
380
397
|
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,UAAU,EAEV,qBAAqB,EAErB,YAAY,EAEZ,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,aAAa,EACb,WAAW,EACX,qBAAqB,EAIrB,QAAQ,EACR,SAAS,EAET,qBAAqB,EACrB,cAAc,EAOf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,KAAK,mBAAmB,EAiBzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,eAAe,EAAsC,MAAM,iBAAiB,CAAC;AAqD3F,OAAO,EAAiB,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AA4C7F,OAAO,EAEL,KAAK,YAAY,EAOlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,KAAK,aAAa,EAAuC,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAGL,YAAY,EAQb,MAAM,mBAAmB,CAAC;AAgB3B,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IAChD,0EAA0E;IAC1E,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAClE;;2DAEuD;IACvD,aAAa,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC5C;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,2FAA2F;IAC3F,eAAe,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf;;mDAE+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,sFAAsF;IACtF,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAChC,0EAA0E;IAC1E,sBAAsB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACjD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kGAAkG;IAClG,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,2EAA2E;IAC3E,GAAG,CAAC,EAAE,qBAAqB,CAAC;IAC5B,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;qFACiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,CAAC;IACrD;gFAC4E;IAC5E,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACjF,sFAAsF;IACtF;4EACwE;IACxE,iBAAiB,CAAC,EAAE,CAClB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,KACtB,IAAI,CAAC;IACV,oFAAoF;IACpF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,oFAAoF;IACpF,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C,iFAAiF;IACjF,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/E;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,yBAAyB,KAAK,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACzF,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uEAAuE;IACvE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,oBAAoB,KAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAED,yEAAyE;AACzE,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;gFAC4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;gCAE4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAuHD,qBAAa,YAAY;IAQX,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqC;IACzE;;kDAE8C;IAC9C,MAAM,CAAC,QAAQ,CAAC,sBAAsB,QAAQ;gBAEjB,IAAI,EAAE,gBAAgB;IAInD,2EAA2E;IACrE,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAS7D,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC;YA2HzC,gBAAgB;IAsB9B;;;;;;OAMG;YACW,6BAA6B;YAiD7B,4BAA4B;IAgB1C,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,aAAa;IAOrB,oGAAoG;IACpG,OAAO,CAAC,eAAe;IAIvB;;;;OAIG;IACH;wFACoF;IACpF,wDAAwD;IACxD,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,wBAAwB;IAMhC;;;;yEAIqE;IACrE,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,aAAa;IAKrB;iFAC6E;YAC/D,2BAA2B;IAqBzC,OAAO,CAAC,gBAAgB;IAgBxB;;;;;;OAMG;IACH;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YAiFT,wBAAwB;IAgTtC;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAsFjB;;;;;;OAMG;YACW,kBAAkB;IA0ChC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,kBAAkB;IAmB1B,gGAAgG;IAChG,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,aAAa;IAkKrB;;;;OAIG;IACH;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,cAAc;IAoEtB,iGAAiG;YACnF,sBAAsB;IAoapC,OAAO,CAAC,UAAU;IAsDlB,OAAO,CAAC,qBAAqB;IAwB7B;;;;;;;OAOG;YACW,0BAA0B;YAiD1B,OAAO;IAyoCrB,oGAAoG;IACpG,OAAO,CAAC,iBAAiB;IAwBzB,uGAAuG;IAEvG;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;YAaN,UAAU;IAuJxB,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,2BAA2B;YAoBrB,cAAc;IA81B5B,uGAAuG;IACvG;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;YAgBJ,OAAO;IAgnBrB,sFAAsF;YACxE,MAAM;IAkBpB,gFAAgF;YAClE,UAAU;IAmBxB,gDAAgD;YAClC,QAAQ;IAkBtB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,qBAAqB;YAWf,cAAc;YAsDd,iBAAiB;IA+9B/B;;;;OAIG;YACW,eAAe;IA8K7B,6EAA6E;YAC/D,gBAAgB;CAuE/B"}
|