loopforge 3.7.1 → 3.8.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/README.md +84 -130
- package/dist/audit.d.ts +53 -1
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +106 -22
- package/dist/audit.js.map +1 -1
- package/dist/canonical-state.d.ts +52 -67
- package/dist/canonical-state.d.ts.map +1 -1
- package/dist/canonical-state.js +134 -147
- package/dist/canonical-state.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +103 -4
- package/dist/cli.js.map +1 -1
- package/dist/cognitive-facts.d.ts +13 -0
- package/dist/cognitive-facts.d.ts.map +1 -1
- package/dist/cognitive-facts.js +28 -13
- package/dist/cognitive-facts.js.map +1 -1
- package/dist/committed-round.d.ts +103 -21
- package/dist/committed-round.d.ts.map +1 -1
- package/dist/committed-round.js +188 -45
- package/dist/committed-round.js.map +1 -1
- package/dist/contract-items.d.ts +55 -0
- package/dist/contract-items.d.ts.map +1 -0
- package/dist/contract-items.js +180 -0
- package/dist/contract-items.js.map +1 -0
- package/dist/enforcement-gate.d.ts +20 -2
- package/dist/enforcement-gate.d.ts.map +1 -1
- package/dist/enforcement-gate.js +197 -386
- package/dist/enforcement-gate.js.map +1 -1
- package/dist/engine.d.ts +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +53 -38
- package/dist/engine.js.map +1 -1
- package/dist/evidence-claims.d.ts +4 -4
- package/dist/evidence-claims.d.ts.map +1 -1
- package/dist/evidence-claims.js +16 -14
- package/dist/evidence-claims.js.map +1 -1
- package/dist/evidence-provider.d.ts +85 -89
- package/dist/evidence-provider.d.ts.map +1 -1
- package/dist/evidence-provider.js +328 -184
- package/dist/evidence-provider.js.map +1 -1
- package/dist/explain.d.ts +76 -0
- package/dist/explain.d.ts.map +1 -0
- package/dist/explain.js +127 -0
- package/dist/explain.js.map +1 -0
- package/dist/generate-schema.js +152 -16
- package/dist/generate-schema.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/loop-compiler.d.ts +40 -53
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +229 -553
- package/dist/loop-compiler.js.map +1 -1
- package/dist/loop-extras-parser.d.ts +0 -1
- package/dist/loop-extras-parser.d.ts.map +1 -1
- package/dist/loop-extras-parser.js +0 -4
- package/dist/loop-extras-parser.js.map +1 -1
- package/dist/loop-projection.d.ts.map +1 -1
- package/dist/loop-projection.js +3 -1
- package/dist/loop-projection.js.map +1 -1
- package/dist/mcp/round-lifecycle.d.ts +30 -21
- package/dist/mcp/round-lifecycle.d.ts.map +1 -1
- package/dist/mcp/round-lifecycle.js +47 -103
- package/dist/mcp/round-lifecycle.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +51 -7
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session.d.ts +39 -23
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +148 -163
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/submission-boundary.d.ts +89 -0
- package/dist/mcp/submission-boundary.d.ts.map +1 -0
- package/dist/mcp/submission-boundary.js +203 -0
- package/dist/mcp/submission-boundary.js.map +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +249 -128
- package/dist/mcp/tools.js.map +1 -1
- package/dist/policy-metrics.js +2 -2
- package/dist/policy-metrics.js.map +1 -1
- package/dist/policy.d.ts +55 -93
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +149 -38
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts +1 -32
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +282 -435
- package/dist/prompt-assembler.js.map +1 -1
- package/dist/prompt-policy.d.ts +1 -4
- package/dist/prompt-policy.d.ts.map +1 -1
- package/dist/prompt-policy.js +6 -7
- package/dist/prompt-policy.js.map +1 -1
- package/dist/protocol.d.ts +365 -142
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +21 -66
- package/dist/protocol.js.map +1 -1
- package/dist/replay.js +2 -2
- package/dist/replay.js.map +1 -1
- package/dist/round-contract.d.ts +69 -57
- package/dist/round-contract.d.ts.map +1 -1
- package/dist/round-contract.js +104 -64
- package/dist/round-contract.js.map +1 -1
- package/dist/round-coordinator.d.ts +36 -16
- package/dist/round-coordinator.d.ts.map +1 -1
- package/dist/round-coordinator.js +166 -102
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-driver.d.ts +3 -5
- package/dist/round-driver.d.ts.map +1 -1
- package/dist/round-driver.js +0 -1
- package/dist/round-driver.js.map +1 -1
- package/dist/round-facts.d.ts +96 -0
- package/dist/round-facts.d.ts.map +1 -0
- package/dist/round-facts.js +216 -0
- package/dist/round-facts.js.map +1 -0
- package/dist/round-transaction.d.ts +19 -9
- package/dist/round-transaction.d.ts.map +1 -1
- package/dist/round-transaction.js +90 -22
- package/dist/round-transaction.js.map +1 -1
- package/dist/self-eval.d.ts +87 -9
- package/dist/self-eval.d.ts.map +1 -1
- package/dist/self-eval.js +396 -27
- package/dist/self-eval.js.map +1 -1
- package/dist/subgoal-state.d.ts +77 -0
- package/dist/subgoal-state.d.ts.map +1 -0
- package/dist/subgoal-state.js +198 -0
- package/dist/subgoal-state.js.map +1 -0
- package/dist/token-utils.d.ts +52 -19
- package/dist/token-utils.d.ts.map +1 -1
- package/dist/token-utils.js +83 -72
- package/dist/token-utils.js.map +1 -1
- package/dist/verification-gate.d.ts +14 -31
- package/dist/verification-gate.d.ts.map +1 -1
- package/dist/verification-gate.js +178 -496
- package/dist/verification-gate.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/workspace.d.ts +9 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +17 -0
- package/dist/workspace.js.map +1 -1
- package/loop_policy.json +59 -83
- package/package.json +67 -67
- package/skills/perception/SKILL.md +218 -204
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/** v3.8.1: THE contract-fact derivation.
|
|
2
|
+
*
|
|
3
|
+
* The contract walker, the item reducer, the verified sub-goal facts and the
|
|
4
|
+
* verification debt are one pass over one history window. Before this module
|
|
5
|
+
* the compile path and the projection each ran the same reducers over their
|
|
6
|
+
* own window, so the prompt and the projection could tell different stories
|
|
7
|
+
* about what the machine had verified — and nothing stopped a third caller
|
|
8
|
+
* from picking a third window.
|
|
9
|
+
*
|
|
10
|
+
* Every caller passes `derivationRounds(entries, currentRound)` (the shared
|
|
11
|
+
* window from committed-round.ts) and receives the same bundle, so "one fact,
|
|
12
|
+
* one derivation" is a property of the types rather than a convention.
|
|
13
|
+
*/
|
|
14
|
+
import { deriveContractItemStatuses } from "./contract-items.js";
|
|
15
|
+
import { deriveActiveRoundContract, deriveRoundContractView } from "./round-contract.js";
|
|
16
|
+
import { deriveCriterionId, isCriterionId } from "./token-utils.js";
|
|
17
|
+
export const NO_IN_FLIGHT_ROUND = {
|
|
18
|
+
currentReport: null,
|
|
19
|
+
currentObservations: [],
|
|
20
|
+
currentOutcome: null,
|
|
21
|
+
};
|
|
22
|
+
export function deriveRoundFacts(input) {
|
|
23
|
+
const activeContract = deriveActiveRoundContract(input.rounds, input.commands);
|
|
24
|
+
const itemStatuses = deriveContractItemStatuses({
|
|
25
|
+
contract: activeContract,
|
|
26
|
+
rounds: input.rounds,
|
|
27
|
+
currentRound: input.currentRound,
|
|
28
|
+
currentReport: input.inFlight.currentReport,
|
|
29
|
+
currentObservations: input.inFlight.currentObservations,
|
|
30
|
+
currentOutcome: input.inFlight.currentOutcome ?? null,
|
|
31
|
+
commands: input.commands,
|
|
32
|
+
});
|
|
33
|
+
const verifiedSubGoals = deriveVerifiedSubGoals({
|
|
34
|
+
subGoals: input.subGoals,
|
|
35
|
+
rounds: input.rounds,
|
|
36
|
+
commands: input.commands,
|
|
37
|
+
});
|
|
38
|
+
return {
|
|
39
|
+
activeContract,
|
|
40
|
+
itemStatuses,
|
|
41
|
+
verifiedSubGoals,
|
|
42
|
+
verificationDebt: deriveVerificationDebt(input.subGoals, verifiedSubGoals, itemStatuses),
|
|
43
|
+
criterionFacts: deriveCriterionFacts({
|
|
44
|
+
activeContract,
|
|
45
|
+
rounds: input.rounds,
|
|
46
|
+
commands: input.commands,
|
|
47
|
+
}),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/** v3.8.1: criterion → machine status + explicit sub-goal links, derived over
|
|
51
|
+
* the WHOLE committed history, exactly like `deriveVerifiedSubGoals` below
|
|
52
|
+
* and for the same reason: a verified item is machine history that survives
|
|
53
|
+
* its contract closing. Reading only the ACTIVE contract made the criterion's
|
|
54
|
+
* machine status vanish at the moment the contract became fully true — the
|
|
55
|
+
* state file's Goal → Criteria row fell from ✅ back to 🟡 and its
|
|
56
|
+
* `(related: sg-…)` links disappeared, while the sub-goal side of the same
|
|
57
|
+
* fact correctly survived.
|
|
58
|
+
*
|
|
59
|
+
* Statuses fold by STRENGTH across the items that reference a criterion (a
|
|
60
|
+
* machine denial outranks a verification, which outranks insufficient), and a
|
|
61
|
+
* `pending` item contributes links but no status. */
|
|
62
|
+
function deriveCriterionFacts(input) {
|
|
63
|
+
const byCriterion = new Map();
|
|
64
|
+
// Seed with the active contract's items: links are declarations, so they do
|
|
65
|
+
// not need a round to have executed under the contract. Statuses are only
|
|
66
|
+
// ever machine facts from the history walk below (`pending` says nothing).
|
|
67
|
+
for (const item of input.activeContract?.items ?? []) {
|
|
68
|
+
for (const ref of item.criterion_refs) {
|
|
69
|
+
const criterionId = isCriterionId(ref) ? ref : deriveCriterionId(ref);
|
|
70
|
+
const existing = byCriterion.get(criterionId);
|
|
71
|
+
const links = existing?.related_subgoal_ids ?? [];
|
|
72
|
+
for (const subgoalId of item.subgoal_refs) {
|
|
73
|
+
if (!links.includes(subgoalId))
|
|
74
|
+
links.push(subgoalId);
|
|
75
|
+
}
|
|
76
|
+
byCriterion.set(criterionId, {
|
|
77
|
+
criterion_id: criterionId,
|
|
78
|
+
...(existing?.status ? { status: existing.status } : {}),
|
|
79
|
+
related_subgoal_ids: links,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
for (const round of input.rounds) {
|
|
84
|
+
const { contract, statuses } = deriveRoundContractView({
|
|
85
|
+
rounds: input.rounds,
|
|
86
|
+
round: round.round,
|
|
87
|
+
report: round.executionReport,
|
|
88
|
+
observations: round.observationDelta,
|
|
89
|
+
outcome: round.outcome,
|
|
90
|
+
commands: input.commands,
|
|
91
|
+
});
|
|
92
|
+
if (!contract)
|
|
93
|
+
continue;
|
|
94
|
+
const statusByItem = new Map(statuses.items.map((item) => [item.itemId, item.status]));
|
|
95
|
+
for (const item of contract.items) {
|
|
96
|
+
const itemStatus = statusByItem.get(item.id);
|
|
97
|
+
for (const ref of item.criterion_refs) {
|
|
98
|
+
const criterionId = isCriterionId(ref) ? ref : deriveCriterionId(ref);
|
|
99
|
+
const existing = byCriterion.get(criterionId);
|
|
100
|
+
const links = existing?.related_subgoal_ids ?? [];
|
|
101
|
+
for (const subgoalId of item.subgoal_refs) {
|
|
102
|
+
if (!links.includes(subgoalId))
|
|
103
|
+
links.push(subgoalId);
|
|
104
|
+
}
|
|
105
|
+
const machineStatus = itemStatus && itemStatus !== "pending"
|
|
106
|
+
? strongestStatus(existing?.status, itemStatus)
|
|
107
|
+
: existing?.status;
|
|
108
|
+
byCriterion.set(criterionId, {
|
|
109
|
+
criterion_id: criterionId,
|
|
110
|
+
...(machineStatus ? { status: machineStatus } : {}),
|
|
111
|
+
related_subgoal_ids: links,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return [...byCriterion.values()];
|
|
117
|
+
}
|
|
118
|
+
/** Rank item statuses so the strongest machine fact wins when several items
|
|
119
|
+
* reference the same criterion. */
|
|
120
|
+
function strongestStatus(left, right) {
|
|
121
|
+
const rank = {
|
|
122
|
+
contradicted: 3,
|
|
123
|
+
verified: 2,
|
|
124
|
+
insufficient: 1,
|
|
125
|
+
};
|
|
126
|
+
if (!left)
|
|
127
|
+
return right;
|
|
128
|
+
return rank[right] > rank[left] ? right : left;
|
|
129
|
+
}
|
|
130
|
+
/** v3.8: Machine-verified sub-goal facts. DERIVED, never persisted. It never
|
|
131
|
+
* writes `SubGoal.status`: `done` stays the agent's declaration, and the fact
|
|
132
|
+
* is the machine's separate statement about it.
|
|
133
|
+
*
|
|
134
|
+
* Derived from the WHOLE committed history, not from the currently-open
|
|
135
|
+
* contract. A verified item is machine history — once proven, it stays
|
|
136
|
+
* proven — while the active contract necessarily disappears the moment its
|
|
137
|
+
* last item verifies. Deriving from the active contract alone made the fact
|
|
138
|
+
* vanish at exactly the moment it became fully true, and turned the
|
|
139
|
+
* verification-debt view into a false accusation ("agent reported done,
|
|
140
|
+
* machine verification absent") against a sub-goal the machine had just
|
|
141
|
+
* verified. Each round is read through `deriveRoundContractView`, the same
|
|
142
|
+
* derivation the coordinator, explain and audit use — one history
|
|
143
|
+
* interpretation, no second read model. That re-derivation is quadratic in the
|
|
144
|
+
* round count (≈40ms at 120 rounds) and is deliberately bought: an incremental
|
|
145
|
+
* walker would be a second implementation of the closure rule, which is the
|
|
146
|
+
* one thing this module must never grow.
|
|
147
|
+
*
|
|
148
|
+
* Attribution is per ITEM (`ContractItemProposal.subgoal_refs`), not per
|
|
149
|
+
* contract: an item backs exactly the sub-goals it references, so a contract
|
|
150
|
+
* whose item A verifies SubGoal 1 and whose item B verifies SubGoal 2 yields
|
|
151
|
+
* two facts with disjoint `contract_item_ids` instead of both sub-goals
|
|
152
|
+
* claiming every verified item. */
|
|
153
|
+
export function deriveVerifiedSubGoals(input) {
|
|
154
|
+
const known = new Set(input.subGoals.map((subGoal) => subGoal.id));
|
|
155
|
+
if (known.size === 0)
|
|
156
|
+
return [];
|
|
157
|
+
// First-reference order across the history — deterministic, and independent
|
|
158
|
+
// of which item happened to verify first.
|
|
159
|
+
const order = [];
|
|
160
|
+
const itemIdsBySubGoal = new Map();
|
|
161
|
+
const verifiedAt = new Map();
|
|
162
|
+
for (const round of input.rounds) {
|
|
163
|
+
const { contract, statuses } = deriveRoundContractView({
|
|
164
|
+
rounds: input.rounds,
|
|
165
|
+
round: round.round,
|
|
166
|
+
report: round.executionReport,
|
|
167
|
+
observations: round.observationDelta,
|
|
168
|
+
outcome: round.outcome,
|
|
169
|
+
commands: input.commands,
|
|
170
|
+
});
|
|
171
|
+
if (!contract)
|
|
172
|
+
continue;
|
|
173
|
+
const statusAt = new Map(statuses.items.map((item) => [item.itemId, item]));
|
|
174
|
+
for (const item of contract.items) {
|
|
175
|
+
if (statusAt.get(item.id)?.status !== "verified")
|
|
176
|
+
continue;
|
|
177
|
+
for (const ref of item.subgoal_refs) {
|
|
178
|
+
if (!known.has(ref))
|
|
179
|
+
continue;
|
|
180
|
+
const itemIds = itemIdsBySubGoal.get(ref) ?? [];
|
|
181
|
+
if (!itemIds.includes(item.id))
|
|
182
|
+
itemIds.push(item.id);
|
|
183
|
+
itemIdsBySubGoal.set(ref, itemIds);
|
|
184
|
+
if (!order.includes(ref))
|
|
185
|
+
order.push(ref);
|
|
186
|
+
const at = statusAt.get(item.id)?.status_at_round ?? round.round;
|
|
187
|
+
verifiedAt.set(ref, Math.max(verifiedAt.get(ref) ?? 0, at));
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return order.map((subgoalId) => ({
|
|
192
|
+
subgoal_id: subgoalId,
|
|
193
|
+
contract_item_ids: itemIdsBySubGoal.get(subgoalId) ?? [],
|
|
194
|
+
verified_at_round: verifiedAt.get(subgoalId) ?? 0,
|
|
195
|
+
}));
|
|
196
|
+
}
|
|
197
|
+
/** v3.8: Sub-goals the agent declared `done` that no verified contract item
|
|
198
|
+
* backs — verification debt, surfaced in the handoff's open risks. */
|
|
199
|
+
export function deriveVerificationDebt(subGoals, verified, statuses) {
|
|
200
|
+
const debt = [];
|
|
201
|
+
const verifiedIds = new Set(verified.map((fact) => fact.subgoal_id));
|
|
202
|
+
for (const subGoal of subGoals) {
|
|
203
|
+
if (subGoal.status !== "done" || verifiedIds.has(subGoal.id))
|
|
204
|
+
continue;
|
|
205
|
+
debt.push(`sub-goal ${subGoal.id} "${subGoal.description.slice(0, 120)}": ` +
|
|
206
|
+
"agent reported done, machine verification absent");
|
|
207
|
+
}
|
|
208
|
+
for (const item of statuses.items) {
|
|
209
|
+
if (item.status !== "insufficient")
|
|
210
|
+
continue;
|
|
211
|
+
debt.push(`contract item ${item.itemId}: claimed met but not machine-verified` +
|
|
212
|
+
(item.reasons.length > 0 ? ` (${item.reasons[0]})` : ""));
|
|
213
|
+
}
|
|
214
|
+
return debt;
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=round-facts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"round-facts.js","sourceRoot":"","sources":["../src/round-facts.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { LoopStore } from "./loop-store.js";
|
|
9
9
|
import { LoopForgeEngine } from "./engine.js";
|
|
10
|
-
import type {
|
|
10
|
+
import type { ContractBinding, MachineObservation } from "./protocol.js";
|
|
11
11
|
import type { SelfEvaluation } from "./protocol.js";
|
|
12
12
|
import type { PromptArtifact } from "./protocol.js";
|
|
13
13
|
import { type RoundProcessResult } from "./round-coordinator.js";
|
|
14
14
|
import type { RoundCommitStore } from "./storage.js";
|
|
15
|
-
export declare const ROUND_TRANSACTION_SCHEMA_VERSION:
|
|
15
|
+
export declare const ROUND_TRANSACTION_SCHEMA_VERSION: 2;
|
|
16
16
|
export type RoundTransactionPhase = "prepared" | "prompted" | "evaluated" | "rejected" | "committed" | "terminated";
|
|
17
17
|
export interface RoundTransactionSnapshot {
|
|
18
18
|
schemaVersion: typeof ROUND_TRANSACTION_SCHEMA_VERSION;
|
|
@@ -21,11 +21,13 @@ export interface RoundTransactionSnapshot {
|
|
|
21
21
|
round: number;
|
|
22
22
|
attempt: number;
|
|
23
23
|
phase: RoundTransactionPhase;
|
|
24
|
-
beforeEvidence:
|
|
25
|
-
afterEvidence?:
|
|
26
|
-
roundEvidence?: ProviderSnapshot[];
|
|
24
|
+
beforeEvidence: MachineObservation[];
|
|
25
|
+
afterEvidence?: MachineObservation[];
|
|
27
26
|
evaluation?: SelfEvaluation;
|
|
28
27
|
result?: RoundProcessResult;
|
|
28
|
+
/** v3.8: the contract binding resolved at commit time (see ContractBinding).
|
|
29
|
+
* Absent when the committing round declared no contract. */
|
|
30
|
+
contractBinding?: ContractBinding;
|
|
29
31
|
createdAt: number;
|
|
30
32
|
updatedAt: number;
|
|
31
33
|
/** Exact prompt delivered for the current attempt. */
|
|
@@ -41,8 +43,6 @@ export interface RoundTransactionInput {
|
|
|
41
43
|
/** L4 (v3.7.x): previous round's rejection check (own-streak basis). */
|
|
42
44
|
lastRejectionCheck?: string;
|
|
43
45
|
successTrajectory: boolean[];
|
|
44
|
-
/** v2.12: Current clarification streak for R7 escalation. */
|
|
45
|
-
driftClarificationStreak?: number;
|
|
46
46
|
/** v2.13: Files from skipped backtrack rounds for restore check. */
|
|
47
47
|
backtrackSkippedFiles?: string[];
|
|
48
48
|
/** M3 (v3.7.x): skipped-file git fingerprints at their failed rounds. */
|
|
@@ -50,7 +50,7 @@ export interface RoundTransactionInput {
|
|
|
50
50
|
/** v2.12: Git HEAD of the backtrack restore point. The verification gate
|
|
51
51
|
* checks the workspace returns to this commit before accepting work. */
|
|
52
52
|
backtrackTargetGitHead?: string;
|
|
53
|
-
actualEvidence:
|
|
53
|
+
actualEvidence: MachineObservation[];
|
|
54
54
|
}
|
|
55
55
|
export interface RoundTransactionOutcome {
|
|
56
56
|
snapshot: RoundTransactionSnapshot;
|
|
@@ -58,8 +58,18 @@ export interface RoundTransactionOutcome {
|
|
|
58
58
|
/** true when a prior committed decision was replayed from the vault. */
|
|
59
59
|
replayed: boolean;
|
|
60
60
|
}
|
|
61
|
+
/** v3.8: The round's observation delta (before → after) — files that
|
|
62
|
+
* appeared, disappeared, or changed content. DERIVED, never persisted: the
|
|
63
|
+
* transaction stores only the two factual observation collections, and every
|
|
64
|
+
* reader (gates, metrics, git-motion series, replay, audit) consumes this one
|
|
65
|
+
* derivation. */
|
|
66
|
+
export declare function deriveRoundObservationDelta(before: MachineObservation[], after: MachineObservation[]): MachineObservation[];
|
|
67
|
+
/** v3.8: The schema version stamped on a persisted transaction envelope, or
|
|
68
|
+
* null when the value is not a transaction envelope at all. Used to surface
|
|
69
|
+
* legacy documents explicitly instead of letting them vanish from history. */
|
|
70
|
+
export declare function transactionSchemaVersionOf(value: unknown): number | null;
|
|
61
71
|
export declare function makeRoundId(loopId: string, round: number): string;
|
|
62
|
-
export declare function prepareRoundTransaction(loopId: string, round: number, beforeEvidence:
|
|
72
|
+
export declare function prepareRoundTransaction(loopId: string, round: number, beforeEvidence: MachineObservation[], promptArtifact?: PromptArtifact): RoundTransactionSnapshot;
|
|
63
73
|
/** Attach the next prompt attempt to a rejected logical round without changing
|
|
64
74
|
* its identity or evidence baseline. Evaluation fields belong to the previous
|
|
65
75
|
* attempt and are cleared before the Agent receives the retry prompt. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"round-transaction.d.ts","sourceRoot":"","sources":["../src/round-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"round-transaction.d.ts","sourceRoot":"","sources":["../src/round-transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,10 +8,53 @@
|
|
|
8
8
|
import { diffSnapshotCollections } from "./evidence-provider.js";
|
|
9
9
|
import { RoundCoordinator, } from "./round-coordinator.js";
|
|
10
10
|
import { logEvent } from "./observability.js";
|
|
11
|
-
import { isRecord } from "./token-utils.js";
|
|
11
|
+
import { deriveContractId, deriveContractItemIds, isRecord } from "./token-utils.js";
|
|
12
|
+
import { PROMPT_ARTIFACT_SCHEMA_VERSION } from "./protocol.js";
|
|
13
|
+
import { commandConfigHash, getPolicy } from "./policy.js";
|
|
12
14
|
import { policyMetrics } from "./policy-metrics.js";
|
|
13
15
|
import { VaultRoundCommitStore } from "./storage.js";
|
|
14
|
-
export const ROUND_TRANSACTION_SCHEMA_VERSION =
|
|
16
|
+
export const ROUND_TRANSACTION_SCHEMA_VERSION = 2;
|
|
17
|
+
/** v3.8: the closed set of machine-observation statuses. */
|
|
18
|
+
const OBSERVATION_STATUSES = [
|
|
19
|
+
"observed", "passed", "failed", "timeout", "unavailable", "error", "aborted",
|
|
20
|
+
];
|
|
21
|
+
/** v3.8: The round's observation delta (before → after) — files that
|
|
22
|
+
* appeared, disappeared, or changed content. DERIVED, never persisted: the
|
|
23
|
+
* transaction stores only the two factual observation collections, and every
|
|
24
|
+
* reader (gates, metrics, git-motion series, replay, audit) consumes this one
|
|
25
|
+
* derivation. */
|
|
26
|
+
export function deriveRoundObservationDelta(before, after) {
|
|
27
|
+
return diffSnapshotCollections(before, after);
|
|
28
|
+
}
|
|
29
|
+
/** v3.8: The schema version stamped on a persisted transaction envelope, or
|
|
30
|
+
* null when the value is not a transaction envelope at all. Used to surface
|
|
31
|
+
* legacy documents explicitly instead of letting them vanish from history. */
|
|
32
|
+
export function transactionSchemaVersionOf(value) {
|
|
33
|
+
if (!isRecord(value))
|
|
34
|
+
return null;
|
|
35
|
+
return typeof value.schemaVersion === "number" ? value.schemaVersion : null;
|
|
36
|
+
}
|
|
37
|
+
/** v3.8: Resolve the machine binding a contract proposal carries at commit. */
|
|
38
|
+
function resolveContractBinding(proposal, loopId) {
|
|
39
|
+
if (!proposal || !Array.isArray(proposal.items) || proposal.items.length === 0) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
const commands = getPolicy().evidence.commands ?? [];
|
|
43
|
+
const byName = new Map(commands.map((command) => [command.name, command]));
|
|
44
|
+
const configHashByCommand = {};
|
|
45
|
+
for (const item of proposal.items) {
|
|
46
|
+
for (const commandId of item.verify_with ?? []) {
|
|
47
|
+
const command = byName.get(commandId);
|
|
48
|
+
if (command)
|
|
49
|
+
configHashByCommand[commandId] = commandConfigHash(command);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
rc_id: deriveContractId(loopId, proposal),
|
|
54
|
+
item_ids: deriveContractItemIds(proposal.items),
|
|
55
|
+
config_hash_by_command: configHashByCommand,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
15
58
|
export function makeRoundId(loopId, round) {
|
|
16
59
|
if (!Number.isInteger(round) || round < 1) {
|
|
17
60
|
throw new Error(`Invalid round number: ${round}`);
|
|
@@ -51,34 +94,48 @@ export function prepareRejectedAttempt(rejected, promptArtifact) {
|
|
|
51
94
|
attempt: promptArtifact.attempt,
|
|
52
95
|
phase: "prompted",
|
|
53
96
|
afterEvidence: undefined,
|
|
54
|
-
roundEvidence: undefined,
|
|
55
97
|
evaluation: undefined,
|
|
56
98
|
result: undefined,
|
|
57
99
|
promptArtifact,
|
|
58
100
|
updatedAt: Date.now(),
|
|
59
101
|
};
|
|
60
102
|
}
|
|
103
|
+
/** v3.8: Shape check for a persisted contract binding. */
|
|
104
|
+
function isContractBinding(value) {
|
|
105
|
+
if (!isRecord(value))
|
|
106
|
+
return false;
|
|
107
|
+
if (typeof value.rc_id !== "string" || !Array.isArray(value.item_ids))
|
|
108
|
+
return false;
|
|
109
|
+
if (!value.item_ids.every((id) => typeof id === "string"))
|
|
110
|
+
return false;
|
|
111
|
+
return isRecord(value.config_hash_by_command);
|
|
112
|
+
}
|
|
61
113
|
export function isProcessResult(value) {
|
|
62
114
|
if (!isRecord(value))
|
|
63
115
|
return false;
|
|
64
116
|
return ["continue", "stop", "reject", "terminate", "backtrack"].includes(String(value.action)) && Array.isArray(value.verificationFlags);
|
|
65
117
|
}
|
|
66
|
-
function
|
|
118
|
+
function parseMachineObservations(value) {
|
|
67
119
|
if (!Array.isArray(value))
|
|
68
120
|
return null;
|
|
69
|
-
const
|
|
121
|
+
const observations = [];
|
|
70
122
|
for (const item of value) {
|
|
71
123
|
if (!isRecord(item))
|
|
72
124
|
return null;
|
|
73
|
-
if (
|
|
74
|
-
typeof item.
|
|
125
|
+
if (item.schemaVersion !== 1 ||
|
|
126
|
+
typeof item.providerId !== "string" ||
|
|
127
|
+
(item.kind !== "git" && item.kind !== "command" && item.kind !== "custom") ||
|
|
128
|
+
(item.phase !== "before" && item.phase !== "after") ||
|
|
129
|
+
typeof item.startedAt !== "number" ||
|
|
130
|
+
typeof item.finishedAt !== "number" ||
|
|
131
|
+
!OBSERVATION_STATUSES.includes(String(item.status)) ||
|
|
75
132
|
!Array.isArray(item.files) ||
|
|
76
133
|
!item.files.every((file) => typeof file === "string") ||
|
|
77
134
|
!isRecord(item.data))
|
|
78
135
|
return null;
|
|
79
|
-
|
|
136
|
+
observations.push(item);
|
|
80
137
|
}
|
|
81
|
-
return
|
|
138
|
+
return observations;
|
|
82
139
|
}
|
|
83
140
|
/** Parse a persisted snapshot without trusting arbitrary vault data. */
|
|
84
141
|
export function parseRoundTransactionSnapshot(value) {
|
|
@@ -96,26 +153,29 @@ export function parseRoundTransactionSnapshot(value) {
|
|
|
96
153
|
if (!["prepared", "prompted", "evaluated", "rejected", "committed", "terminated"]
|
|
97
154
|
.includes(String(value.phase)))
|
|
98
155
|
return null;
|
|
99
|
-
const beforeEvidence =
|
|
156
|
+
const beforeEvidence = parseMachineObservations(value.beforeEvidence);
|
|
100
157
|
if (!beforeEvidence)
|
|
101
158
|
return null;
|
|
102
159
|
const afterEvidence = value.afterEvidence === undefined
|
|
103
160
|
? undefined
|
|
104
|
-
:
|
|
161
|
+
: parseMachineObservations(value.afterEvidence);
|
|
105
162
|
if (value.afterEvidence !== undefined && !afterEvidence)
|
|
106
163
|
return null;
|
|
107
|
-
const roundEvidence = value.roundEvidence === undefined
|
|
108
|
-
? undefined
|
|
109
|
-
: parseProviderSnapshots(value.roundEvidence);
|
|
110
|
-
if (value.roundEvidence !== undefined && !roundEvidence)
|
|
111
|
-
return null;
|
|
112
164
|
if (value.result !== undefined && !isProcessResult(value.result))
|
|
113
165
|
return null;
|
|
166
|
+
if (value.contractBinding !== undefined && !isContractBinding(value.contractBinding))
|
|
167
|
+
return null;
|
|
114
168
|
if (value.promptArtifact !== undefined) {
|
|
115
169
|
if (!isRecord(value.promptArtifact))
|
|
116
170
|
return null;
|
|
117
171
|
const artifact = value.promptArtifact;
|
|
118
|
-
|
|
172
|
+
// v3.8.1: schema 2 fixed the artifact's field set (it now records the
|
|
173
|
+
// sections rendered, the ones the budget rule dropped, and whether the
|
|
174
|
+
// protected set overflowed). Version 1 is a HARD break: a round whose
|
|
175
|
+
// envelope does not parse is not committed history, and
|
|
176
|
+
// `artifactVersionOf` lets the audit report the loss explicitly instead
|
|
177
|
+
// of the loop looking complete while rounds are missing.
|
|
178
|
+
if (artifact.schemaVersion !== PROMPT_ARTIFACT_SCHEMA_VERSION ||
|
|
119
179
|
typeof artifact.roundId !== "string" ||
|
|
120
180
|
typeof artifact.renderedPrompt !== "string" ||
|
|
121
181
|
typeof artifact.promptHash !== "string" ||
|
|
@@ -127,7 +187,6 @@ export function parseRoundTransactionSnapshot(value) {
|
|
|
127
187
|
...value,
|
|
128
188
|
beforeEvidence,
|
|
129
189
|
afterEvidence,
|
|
130
|
-
roundEvidence,
|
|
131
190
|
};
|
|
132
191
|
if (snapshot.roundId !== makeRoundId(snapshot.loopId, snapshot.round)) {
|
|
133
192
|
return null;
|
|
@@ -169,7 +228,10 @@ export class RoundTransactionCoordinator {
|
|
|
169
228
|
const attempt = snapshot.phase === "rejected"
|
|
170
229
|
? snapshot.attempt + 1
|
|
171
230
|
: snapshot.attempt;
|
|
172
|
-
|
|
231
|
+
// v3.8: the round delta is DERIVED, never persisted — the transaction
|
|
232
|
+
// stores the two factual observation collections and this pure function
|
|
233
|
+
// is the single derivation every reader shares.
|
|
234
|
+
const roundDelta = deriveRoundObservationDelta(snapshot.beforeEvidence, input.actualEvidence);
|
|
173
235
|
const coordinator = new RoundCoordinator(this.store);
|
|
174
236
|
const result = coordinator.processRound({
|
|
175
237
|
loopId: snapshot.loopId,
|
|
@@ -180,18 +242,17 @@ export class RoundTransactionCoordinator {
|
|
|
180
242
|
lastSelfEval: input.lastSelfEval,
|
|
181
243
|
consecutiveRejections: input.consecutiveRejections,
|
|
182
244
|
lastRejectionCheck: input.lastRejectionCheck,
|
|
183
|
-
evidenceSnapshots:
|
|
245
|
+
evidenceSnapshots: roundDelta,
|
|
184
246
|
successTrajectory: input.successTrajectory,
|
|
185
247
|
backtrackSkippedFiles: input.backtrackSkippedFiles,
|
|
186
248
|
backtrackSkippedFingerprints: input.backtrackSkippedFingerprints,
|
|
187
249
|
backtrackTargetGitHead: input.backtrackTargetGitHead,
|
|
188
|
-
}
|
|
250
|
+
});
|
|
189
251
|
const evaluated = {
|
|
190
252
|
...snapshot,
|
|
191
253
|
attempt,
|
|
192
254
|
phase: "evaluated",
|
|
193
255
|
afterEvidence: input.actualEvidence,
|
|
194
|
-
roundEvidence,
|
|
195
256
|
evaluation: input.selfEval,
|
|
196
257
|
result,
|
|
197
258
|
updatedAt: Date.now(),
|
|
@@ -207,6 +268,13 @@ export class RoundTransactionCoordinator {
|
|
|
207
268
|
const committedSnapshot = {
|
|
208
269
|
...evaluated,
|
|
209
270
|
phase: "committed",
|
|
271
|
+
// v3.8: the contract binding is resolved HERE, at commit time, because
|
|
272
|
+
// the command configuration in force at declaration is not recoverable
|
|
273
|
+
// from the Vault afterwards. Machine-recomputed — never agent-supplied.
|
|
274
|
+
...(() => {
|
|
275
|
+
const binding = resolveContractBinding(input.selfEval.round_contract, snapshot.loopId);
|
|
276
|
+
return binding ? { contractBinding: binding } : {};
|
|
277
|
+
})(),
|
|
210
278
|
updatedAt: Date.now(),
|
|
211
279
|
};
|
|
212
280
|
const metadata = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"round-transaction.js","sourceRoot":"","sources":["../src/round-transaction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"round-transaction.js","sourceRoot":"","sources":["../src/round-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAIjE,OAAO,EACL,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGrD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAU,CAAC;AAE3D,4DAA4D;AAC5D,MAAM,oBAAoB,GAAG;IAC3B,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS;CACpE,CAAC;AAyDX;;;;kBAIkB;AAClB,MAAM,UAAU,2BAA2B,CACzC,MAA4B,EAC5B,KAA2B;IAE3B,OAAO,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED;;+EAE+E;AAC/E,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC;AAED,+EAA+E;AAC/E,SAAS,sBAAsB,CAC7B,QAA2C,EAC3C,MAAc;IAEd,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/E,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,mBAAmB,GAA2B,EAAE,CAAC;IACvD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,OAAO;gBAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO;QACL,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC;QACzC,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC/C,sBAAsB,EAAE,mBAAmB;KAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,KAAa;IACvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,QAAQ,MAAM,UAAU,KAAK,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAc,EACd,KAAa,EACb,cAAoC,EACpC,cAA+B;IAE/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,OAAO;QACL,aAAa,EAAE,gCAAgC;QAC/C,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;QACnC,MAAM;QACN,KAAK;QACL,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;QAC/C,cAAc;QACd,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;QACd,cAAc;KACf,CAAC;AACJ,CAAC;AAED;;yEAEyE;AACzE,MAAM,UAAU,sBAAsB,CACpC,QAAkC,EAClC,cAA8B;IAE9B,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,cAAc,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CACb,mCAAmC,cAAc,CAAC,OAAO,QAAQ,QAAQ,CAAC,OAAO,EAAE,CACpF,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,kCAAkC,cAAc,CAAC,OAAO,QAAQ,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,CACvF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,QAAQ;QACX,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,KAAK,EAAE,UAAU;QACjB,aAAa,EAAE,SAAS;QACxB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;QACjB,cAAc;QACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AAGD,0DAA0D;AAC1D,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACpF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACxE,OAAO,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CACtE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CACrB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,YAAY,GAAyB,EAAE,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,IACE,IAAI,CAAC,aAAa,KAAK,CAAC;YACxB,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;YACnC,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;YAC1E,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC;YACnD,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAClC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;YACnC,CAAE,oBAA0C,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1E,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;YACrD,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,YAAY,CAAC,IAAI,CAAC,IAAqC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,6BAA6B,CAC3C,KAAc;IAEd,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,CAAC,aAAa,KAAK,gCAAgC;QAAE,OAAO,IAAI,CAAC;IAC1E,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAK,KAAK,CAAC,KAAgB,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAK,KAAK,CAAC,OAAkB,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACnF,IACE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC;SAC1E,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,MAAM,cAAc,GAAG,wBAAwB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACtE,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,KAAK,SAAS;QACrD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,eAAe,CAAC;QAAE,OAAO,IAAI,CAAC;IAClG,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;YAAE,OAAO,IAAI,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;QACtC,sEAAsE;QACtE,uEAAuE;QACvE,sEAAsE;QACtE,wDAAwD;QACxD,wEAAwE;QACxE,yDAAyD;QACzD,IACE,QAAQ,CAAC,aAAa,KAAK,8BAA8B;YACzD,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;YACpC,OAAO,QAAQ,CAAC,cAAc,KAAK,QAAQ;YAC3C,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;YACvC,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ;YACtC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG;QACf,GAAG,KAAK;QACR,cAAc;QACd,aAAa;KACyB,CAAC;IACzC,IAAI,QAAQ,CAAC,OAAO,KAAK,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,2BAA2B;IAKnB;IAJF,KAAK,CAAY;IACjB,WAAW,CAAmB;IAE/C,YACmB,MAAuB,EACxC,KAAiB,EACjB,WAA8B;QAFb,WAAM,GAAN,MAAM,CAAiB;QAIxC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,CAAC,KAA4B;QAClC,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,OAAgC,EAA2B,EAAE;YAC3E,aAAa,CAAC,WAAW,CACvB,QAAQ,CAAC,MAAM,EACf,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,QAAQ,CACjB,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,QAAQ,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,qCAAqC,QAAQ,CAAC,OAAO,QAAQ,eAAe,EAAE,CAC/E,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,yEAAyE;QACzE,kEAAkE;QAClE,qEAAqE;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,0BAA0B,EAAE;gBACnC,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,KAAK,UAAU;YAC3C,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC;YACtB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrB,sEAAsE;QACtE,wEAAwE;QACxE,gDAAgD;QAChD,MAAM,UAAU,GAAG,2BAA2B,CAC5C,QAAQ,CAAC,cAAc,EACvB,KAAK,CAAC,cAAc,CACrB,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC;YACtC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,YAAY,EAAE,QAAQ,CAAC,KAAK;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;YAClD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,iBAAiB,EAAE,UAAU;YAC7B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;YAClD,4BAA4B,EAAE,KAAK,CAAC,4BAA4B;YAChE,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;SACrD,CAAC,CAAC;QAEH,MAAM,SAAS,GAA6B;YAC1C,GAAG,QAAQ;YACX,OAAO;YACP,KAAK,EAAE,WAAW;YAClB,aAAa,EAAE,KAAK,CAAC,cAAc;YACnC,UAAU,EAAE,KAAK,CAAC,QAAQ;YAC1B,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAChE,MAAM,aAAa,GACjB,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;YACzD,OAAO,MAAM,CAAC;gBACZ,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;gBACvE,MAAM;gBACN,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,iBAAiB,GAA6B;YAClD,GAAG,SAAS;YACZ,KAAK,EAAE,WAAW;YAClB,uEAAuE;YACvE,uEAAuE;YACvE,wEAAwE;YACxE,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,OAAO,GAAG,sBAAsB,CACpC,KAAK,CAAC,QAAQ,CAAC,cAAc,EAC7B,QAAQ,CAAC,MAAM,CAChB,CAAC;gBACF,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,CAAC,CAAC,EAAE;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,MAAM,QAAQ,GAA4B;YACxC,cAAc,EAAE,gCAAgC;YAChD,QAAQ,EAAE,QAAQ,CAAC,OAAO;YAC1B,QAAQ,EAAE,iBAAiB;YAC3B,MAAM;SACP,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,YAAY,CACtB,KAAK,CAAC,QAAQ,EACd,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,KAAK,EACd,KAAK,CAAC,IAAI,EACV,QAAQ,CACT,CAAC;QACF,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,8DAA8D;QAC9D,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,QAAQ,CAAC,0BAA0B,EAAE;YACnC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,2EAA2E;IAC3E,OAAO,CAAC,QAAkC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,aAAa,CACnB,QAAkC,EAClC,IAAkC;QAElC,MAAM,MAAM,GAAG,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,WAAW,CAAC;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM;gBAAE,SAAS;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CACnC,KAAK,EACL,QAAQ,CAAC,OAAO,EAChB,IAAI,EAAE,aAAa,KAAK,IAAI,CAC7B,CAAC;YACF,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,gBAAgB,CACtB,KAAiB,EACjB,eAAuB,EACvB,aAAa,GAAG,KAAK;QAErB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,MAAM,WAAW,GAAG,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAChE,CAAC,CAAC,OAAO,CAAC,iBAAiB;YAC3B,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,QAAQ,KAAK,eAAe;YAAE,OAAO,IAAI,CAAC;QAC1E,MAAM,QAAQ,GAAG,6BAA6B,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACvD,yEAAyE;QACzE,wEAAwE;QACxE,qEAAqE;QACrE,wEAAwE;QACxE,2EAA2E;QAC3E,+EAA+E;QAC/E,0EAA0E;QAC1E,qDAAqD;QACrD,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9C,CAAC;CACF"}
|