dorfl 0.11.2 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/harness.d.ts +15 -0
- package/dist/harness.d.ts.map +1 -1
- package/dist/harness.js.map +1 -1
- package/dist/integration-core.d.ts.map +1 -1
- package/dist/integration-core.js +69 -0
- package/dist/integration-core.js.map +1 -1
- package/dist/item-lock.d.ts.map +1 -1
- package/dist/item-lock.js +89 -15
- package/dist/item-lock.js.map +1 -1
- package/dist/pi-harness.d.ts.map +1 -1
- package/dist/pi-harness.js +26 -15
- package/dist/pi-harness.js.map +1 -1
- package/dist/protocol/CLAIM-PROTOCOL.md +22 -13
- package/dist/protocol/REVIEW-PROTOCOL.md +1 -1
- package/dist/protocol/TASKING-PROTOCOL.md +1 -0
- package/dist/protocol/WORK-CONTRACT.md +6 -0
- package/dist/protocol/task-template.md +1 -1
- package/dist/repo-mirror.d.ts.map +1 -1
- package/dist/repo-mirror.js +17 -0
- package/dist/repo-mirror.js.map +1 -1
- package/dist/review-gate.d.ts.map +1 -1
- package/dist/review-gate.js +9 -3
- package/dist/review-gate.js.map +1 -1
- package/dist/review-verdict.d.ts +46 -2
- package/dist/review-verdict.d.ts.map +1 -1
- package/dist/review-verdict.js +49 -3
- package/dist/review-verdict.js.map +1 -1
- package/dist/skills/setup/protocol/CLAIM-PROTOCOL.md +22 -13
- package/dist/skills/setup/protocol/REVIEW-PROTOCOL.md +1 -1
- package/dist/skills/setup/protocol/TASKING-PROTOCOL.md +1 -0
- package/dist/skills/setup/protocol/WORK-CONTRACT.md +6 -0
- package/dist/skills/setup/protocol/task-template.md +1 -1
- package/dist/tasker-review-loop.d.ts +13 -0
- package/dist/tasker-review-loop.d.ts.map +1 -1
- package/dist/tasker-review-loop.js +120 -8
- package/dist/tasker-review-loop.js.map +1 -1
- package/dist/tasking.d.ts.map +1 -1
- package/dist/tasking.js +161 -17
- package/dist/tasking.js.map +1 -1
- package/dist/watch-session.d.ts +35 -4
- package/dist/watch-session.d.ts.map +1 -1
- package/dist/watch-session.js +54 -7
- package/dist/watch-session.js.map +1 -1
- package/package.json +1 -1
- package/src/harness.ts +15 -0
- package/src/integration-core.ts +77 -0
- package/src/item-lock.ts +93 -19
- package/src/pi-harness.ts +29 -15
- package/src/repo-mirror.ts +22 -0
- package/src/review-gate.ts +9 -3
- package/src/review-verdict.ts +73 -5
- package/src/tasker-review-loop.ts +129 -7
- package/src/tasking.ts +198 -16
- package/src/watch-session.ts +83 -7
package/dist/review-verdict.d.ts
CHANGED
|
@@ -35,8 +35,27 @@ export interface ReviewFinding {
|
|
|
35
35
|
export interface TaskEdit {
|
|
36
36
|
/** Repo-relative path of the candidate task file to write. */
|
|
37
37
|
path: string;
|
|
38
|
-
/**
|
|
39
|
-
|
|
38
|
+
/**
|
|
39
|
+
* The full replacement content for that file, emitted INLINE. LEGACY / small-edit
|
|
40
|
+
* form. UNBOUNDED: a large decomposition's worth of full-file bodies in ONE JSON
|
|
41
|
+
* object shares the model's capped response with the verdict, so a rich spec can
|
|
42
|
+
* cap-truncate the response before the verdict closes (observation
|
|
43
|
+
* `tasker-review-edits-payload-caps-the-verdict-response`). The tasker improver loop
|
|
44
|
+
* now asks the agent to WRITE each edited body to a scratch file and reference it by
|
|
45
|
+
* `src` instead (see {@link src}) so the verdict is obtainable independent of edit
|
|
46
|
+
* size. Kept (optional) so a small inline edit + the existing tests still work.
|
|
47
|
+
*/
|
|
48
|
+
content?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Repo-relative path to a SCRATCH file the agent WROTE the full replacement body
|
|
51
|
+
* to (the runner reads it, applies it through the SAME scope fence, then deletes
|
|
52
|
+
* it). The DECOUPLED form: the verdict JSON carries only PATHS, so its size is
|
|
53
|
+
* bounded by the NUMBER of edits, not the total body size — a large decomposition
|
|
54
|
+
* can no longer cap-truncate the verdict. The agent writes the scratch file itself
|
|
55
|
+
* (it runs in the job worktree and has the `write` tool); the runner applies /
|
|
56
|
+
* commits. Exactly one of {@link content} / {@link src} carries the body.
|
|
57
|
+
*/
|
|
58
|
+
src?: string;
|
|
40
59
|
}
|
|
41
60
|
/**
|
|
42
61
|
* A task the review judged UNCERTAIN — emit it `needsAnswers: true` with the
|
|
@@ -85,6 +104,31 @@ export interface ReviewVerdict {
|
|
|
85
104
|
/** Raised when the review agent ran but produced no parseable verdict. */
|
|
86
105
|
export declare class ReviewParseError extends Error {
|
|
87
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Raised when the review agent's output was TRUNCATED at the model's output cap
|
|
109
|
+
* before it could emit a complete verdict — a DISTINCT, named failure class so it is
|
|
110
|
+
* never mis-reported as a generic "produced no parseable result" (which reads as a
|
|
111
|
+
* flake and invites a blind retry, burning a second full tasking run).
|
|
112
|
+
*
|
|
113
|
+
* It is a SUBCLASS of {@link ReviewParseError} so every existing
|
|
114
|
+
* `catch (ReviewParseError)` site (the tasker-review loop's bounce routing) still
|
|
115
|
+
* catches it UNIFORMLY and routes to needs-attention — NEVER a silent approve. The
|
|
116
|
+
* only thing that changes is the MESSAGE: it names the cap and the token count so
|
|
117
|
+
* an operator knows the structural cause (the edits payload is unbounded and
|
|
118
|
+
* shared the capped response with the verdict) rather than chasing a model flake.
|
|
119
|
+
*
|
|
120
|
+
* Detected at the harness seam: the adapter surfaces the last assistant turn's
|
|
121
|
+
* `stop_reason` (null / `None` / `max_tokens` — the turn did not end naturally) and
|
|
122
|
+
* its `usage.output` token count; the gate throws this when a parse fails AND that
|
|
123
|
+
* cap signal is present. When the adapter CANNOT see the signal (the null/shell
|
|
124
|
+
* adapter, or a future adapter without usage telemetry), the parse still fails as a
|
|
125
|
+
* generic {@link ReviewParseError} — still needs-attention, never a silent approve.
|
|
126
|
+
*/
|
|
127
|
+
export declare class ReviewOutputCappedError extends ReviewParseError {
|
|
128
|
+
/** The output token count the agent reached when the cap hit (the observed `usage.output`). */
|
|
129
|
+
readonly outputTokens: number;
|
|
130
|
+
constructor(outputTokens: number);
|
|
131
|
+
}
|
|
88
132
|
/**
|
|
89
133
|
* Parse the unified review verdict out of the review agent's textual output.
|
|
90
134
|
* The agent may wrap the JSON object in prose / a fenced block, so the first
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-verdict.d.ts","sourceRoot":"","sources":["../src/review-verdict.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC7B,+EAA+E;IAC/E,QAAQ,EAAE,UAAU,GAAG,cAAc,CAAC;IACtC,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACxB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb
|
|
1
|
+
{"version":3,"file":"review-verdict.d.ts","sourceRoot":"","sources":["../src/review-verdict.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC7B,+EAA+E;IAC/E,QAAQ,EAAE,UAAU,GAAG,cAAc,CAAC;IACtC,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACxB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,SAAS,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC7B,8EAA8E;IAC9E,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,iFAAiF;IACjF,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,6EAA6E;IAC7E,oBAAoB,CAAC,EAAE;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAC,CAAC;CAC7C;AAED,0EAA0E;AAC1E,qBAAa,gBAAiB,SAAQ,KAAK;CAAG;AAE9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC5D,+FAA+F;IAC/F,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAClB,YAAY,EAAE,MAAM;CAQhC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAqChE;AAiKD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAwC9C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CAC1C,QAAQ,SAAY,EACpB,YAAY,CAAC,EAAE,MAAM,GACnB,MAAM,CAsBR;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAc/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACxC,GAAG,CAAC,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GACf,MAAM,CAER"}
|
package/dist/review-verdict.js
CHANGED
|
@@ -23,6 +23,36 @@ import { resolveProtocolDoc } from './prompt.js';
|
|
|
23
23
|
/** Raised when the review agent ran but produced no parseable verdict. */
|
|
24
24
|
export class ReviewParseError extends Error {
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Raised when the review agent's output was TRUNCATED at the model's output cap
|
|
28
|
+
* before it could emit a complete verdict — a DISTINCT, named failure class so it is
|
|
29
|
+
* never mis-reported as a generic "produced no parseable result" (which reads as a
|
|
30
|
+
* flake and invites a blind retry, burning a second full tasking run).
|
|
31
|
+
*
|
|
32
|
+
* It is a SUBCLASS of {@link ReviewParseError} so every existing
|
|
33
|
+
* `catch (ReviewParseError)` site (the tasker-review loop's bounce routing) still
|
|
34
|
+
* catches it UNIFORMLY and routes to needs-attention — NEVER a silent approve. The
|
|
35
|
+
* only thing that changes is the MESSAGE: it names the cap and the token count so
|
|
36
|
+
* an operator knows the structural cause (the edits payload is unbounded and
|
|
37
|
+
* shared the capped response with the verdict) rather than chasing a model flake.
|
|
38
|
+
*
|
|
39
|
+
* Detected at the harness seam: the adapter surfaces the last assistant turn's
|
|
40
|
+
* `stop_reason` (null / `None` / `max_tokens` — the turn did not end naturally) and
|
|
41
|
+
* its `usage.output` token count; the gate throws this when a parse fails AND that
|
|
42
|
+
* cap signal is present. When the adapter CANNOT see the signal (the null/shell
|
|
43
|
+
* adapter, or a future adapter without usage telemetry), the parse still fails as a
|
|
44
|
+
* generic {@link ReviewParseError} — still needs-attention, never a silent approve.
|
|
45
|
+
*/
|
|
46
|
+
export class ReviewOutputCappedError extends ReviewParseError {
|
|
47
|
+
/** The output token count the agent reached when the cap hit (the observed `usage.output`). */
|
|
48
|
+
outputTokens;
|
|
49
|
+
constructor(outputTokens) {
|
|
50
|
+
super(`review agent output hit the model output cap (${outputTokens} tokens) ` +
|
|
51
|
+
'and was truncated before emitting its verdict');
|
|
52
|
+
this.name = 'ReviewOutputCappedError';
|
|
53
|
+
this.outputTokens = outputTokens;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
26
56
|
/**
|
|
27
57
|
* Parse the unified review verdict out of the review agent's textual output.
|
|
28
58
|
* The agent may wrap the JSON object in prose / a fenced block, so the first
|
|
@@ -170,9 +200,22 @@ function parseEdits(raw) {
|
|
|
170
200
|
continue;
|
|
171
201
|
}
|
|
172
202
|
const item = e;
|
|
173
|
-
if (typeof item.path
|
|
174
|
-
|
|
203
|
+
if (typeof item.path !== 'string') {
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
// The body is either inline `content` (legacy / small edits) OR a `src` scratch
|
|
207
|
+
// path the agent wrote (the decoupled form — see TaskEdit). Carry whichever
|
|
208
|
+
// is present; the runner resolves it. An edit with NEITHER is dropped (no body
|
|
209
|
+
// to apply) — but a path-only edit is also tolerated as a no-op marker so a
|
|
210
|
+
// verdict that names a path it did not actually rewrite does not crash the loop.
|
|
211
|
+
const edit = { path: item.path };
|
|
212
|
+
if (typeof item.content === 'string') {
|
|
213
|
+
edit.content = item.content;
|
|
214
|
+
}
|
|
215
|
+
if (typeof item.src === 'string') {
|
|
216
|
+
edit.src = item.src;
|
|
175
217
|
}
|
|
218
|
+
out.push(edit);
|
|
176
219
|
}
|
|
177
220
|
return out;
|
|
178
221
|
}
|
|
@@ -233,7 +276,10 @@ export function verdictContractPrompt() {
|
|
|
233
276
|
' {"severity": "blocking" | "non-blocking", "question": "\u2026", "context": "\u2026"}',
|
|
234
277
|
' ],',
|
|
235
278
|
' "review": "<the human-readable PR-comment prose, when the caller asks for it>",',
|
|
236
|
-
' "edits": [ {"path": "work/tasks/backlog/<slug>.md", "
|
|
279
|
+
' "edits": [ {"path": "work/tasks/backlog/<slug>.md", "src": "<scratch path you wrote the full body to>"} ],',
|
|
280
|
+
' // (inline "content": "<full replacement>" is the legacy small-edit form —',
|
|
281
|
+
' // the tasker loop writes the body to a scratch file + references it by',
|
|
282
|
+
' // "src" so the edits payload cannot cap-truncate this verdict)',
|
|
237
283
|
' "edit": "<single in-memory replacement body, for the lone-task review>",',
|
|
238
284
|
' "questions": ["<open question for the human>"],',
|
|
239
285
|
' "uncertainTasks": [ {"path": "work/tasks/backlog/<slug>.md", "questions": ["\u2026"]} ],',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-verdict.js","sourceRoot":"","sources":["../src/review-verdict.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAC,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAC,kBAAkB,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"review-verdict.js","sourceRoot":"","sources":["../src/review-verdict.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAC,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAC,kBAAkB,EAAC,MAAM,aAAa,CAAC;AAuF/C,0EAA0E;AAC1E,MAAM,OAAO,gBAAiB,SAAQ,KAAK;CAAG;AAE9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,uBAAwB,SAAQ,gBAAgB;IAC5D,+FAA+F;IACtF,YAAY,CAAS;IAC9B,YAAY,YAAoB;QAC/B,KAAK,CACJ,iDAAiD,YAAY,WAAW;YACvE,+CAA+C,CAChD,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IAClC,CAAC;CACD;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAChD,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,gBAAgB,CACzB,+DAA+D,CAC/D,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,2EAA2E;QAC3E,4EAA4E;QAC5E,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACpB,+EAA+E;QAC/E,8EAA8E;QAC9E,6EAA6E;QAC7E,8EAA8E;QAC9E,6EAA6E;QAC7E,gFAAgF;QAChF,8EAA8E;QAC9E,gFAAgF;QAChF,8EAA8E;QAC9E,gFAAgF;QAChF,mEAAmE;QACnE,IAAI,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACR,MAAM,IAAI,gBAAgB,CACzB,sCAAuC,SAAmB,CAAC,OAAO,EAAE,CACpE,CAAC;QACH,CAAC;IACF,CAAC;IACD,iEAAiE;IACjE,4EAA4E;IAC5E,qEAAqE;IACrE,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,sBAAsB,CAAC,IAAY;IAC3C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,OAAO,EAAE,CAAC;gBACb,GAAG,IAAI,EAAE,CAAC;gBACV,OAAO,GAAG,KAAK,CAAC;gBAChB,SAAS;YACV,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBACjB,GAAG,IAAI,EAAE,CAAC;gBACV,OAAO,GAAG,IAAI,CAAC;gBACf,SAAS;YACV,CAAC;YACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAChB,GAAG,IAAI,EAAE,CAAC;gBACV,QAAQ,GAAG,KAAK,CAAC;gBACjB,SAAS;YACV,CAAC;YACD,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;gBACjB,IAAI,EAAE,KAAK,IAAI;oBAAE,GAAG,IAAI,KAAK,CAAC;qBACzB,IAAI,EAAE,KAAK,IAAI;oBAAE,GAAG,IAAI,KAAK,CAAC;qBAC9B,IAAI,EAAE,KAAK,IAAI;oBAAE,GAAG,IAAI,KAAK,CAAC;;oBAC9B,GAAG,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACvD,SAAS;YACV,CAAC;YACD,GAAG,IAAI,EAAE,CAAC;YACV,SAAS;QACV,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,GAAG,IAAI,EAAE,CAAC;IACX,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,eAAe,CAAC,MAAe;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACnD,MAAM,IAAI,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAClD,MAAM,IAAI,gBAAgB,CACzB,oDAAoD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAC9E,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAoB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAGzD,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;QAC5E,OAAO;YACN,QAAQ;YACR,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChE,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACpE,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,oBAAoB,GAAG,yBAAyB,CACrD,GAAG,CAAC,oBAAoB,CACxB,CAAC;IACF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QAC7C,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QACjE,CAAC,CAAC,EAAE,CAAC;IACN,OAAO;QACN,OAAO;QACP,QAAQ;QACR,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,SAAS,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,cAAc,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAC,oBAAoB,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAY;IAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,SAAS;QACV,CAAC;QACD,MAAM,IAAI,GAAG,CAA4B,CAAC;QAC1C,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnC,SAAS;QACV,CAAC;QACD,gFAAgF;QAChF,4EAA4E;QAC5E,+EAA+E;QAC/E,4EAA4E;QAC5E,iFAAiF;QACjF,MAAM,IAAI,GAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC;QACzC,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,SAAS;QACV,CAAC;QACD,MAAM,IAAI,GAAG,CAA4B,CAAC;QAC1C,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnC,SAAS;QACV,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YAClE,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,yBAAyB,CACjC,GAAY;IAEZ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,GAA8B,CAAC;IAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAC9C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAClE,CAAC,CAAC,EAAE,CAAC;IACN,OAAO,EAAC,SAAS,EAAC,CAAC;AACpB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB;IACpC,OAAO;QACN,oEAAoE;QACpE,EAAE;QACF,oDAAoD;QACpD,iFAAiF;QACjF,8EAA8E;QAC9E,gFAAgF;QAChF,mBAAmB;QACnB,EAAE;QACF,SAAS;QACT,kCAAkC;QAClC,gBAAgB;QAChB,yFAAyF;QACzF,KAAK;QACL,kFAAkF;QAClF,6GAA6G;QAC7G,mFAAmF;QACnF,iFAAiF;QACjF,yEAAyE;QACzE,2EAA2E;QAC3E,kDAAkD;QAClD,2FAA2F;QAC3F,qDAAqD;QACrD,KAAK;QACL,EAAE;QACF,6EAA6E;QAC7E,4EAA4E;QAC5E,8DAA8D;QAC9D,uEAAuE;QACvE,yEAAyE;QACzE,2EAA2E;QAC3E,sEAAsE;QACtE,cAAc;QACd,kEAAkE;QAClE,4EAA4E;QAC5E,4DAA4D;QAC5D,EAAE;QACF,2BAA2B,CAAC,SAAS,EAAE,QAAQ,CAAC;KAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,2BAA2B,CAC1C,QAAQ,GAAG,SAAS,EACpB,YAAqB;IAErB,MAAM,SAAS,GACd,YAAY,KAAK,SAAS;QACzB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACA,+BAA+B,YAAY,iCAAiC;YAC5E,0EAA0E;YAC1E,aAAa;SACb,CAAC;IACL,OAAO;QACN,8DAA8D;QAC9D,EAAE;QACF,eAAe,QAAQ,yCAAyC;QAChE,0EAA0E;QAC1E,4EAA4E;QAC5E,8EAA8E;QAC9E,wEAAwE,QAAQ,GAAG;QACnF,8EAA8E;QAC9E,gFAAgF;QAChF,wEAAwE;QACxE,GAAG,SAAS;KACZ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB;IACrC,OAAO;QACN,0BAA0B;QAC1B,EAAE;QACF,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,qEAAqE;QACrE,gEAAgE;QAChE,wEAAwE;QACxE,4EAA4E;QAC5E,yEAAyE;QACzE,uDAAuD;KACvD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CACxC,GAAY,EACZ,QAAiB;IAEjB,OAAO,kBAAkB,CAAC,oBAAoB,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -147,14 +147,23 @@ code itself (it affects nothing outside this task), resolve and proceed silently
|
|
|
147
147
|
But a choice that touches ANOTHER command/flag/task, introduces a new
|
|
148
148
|
ERROR/REFUSAL, or sets a USER-VISIBLE DEFAULT is a DESIGN decision, NOT a small
|
|
149
149
|
factual gap — do NOT bury it in code. If it is load-bearing AND hard to reverse,
|
|
150
|
-
STOP (above). Otherwise PROCEED but RECORD it
|
|
151
|
-
|
|
152
|
-
considered + what it touches (which other flag/command/task).
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
150
|
+
STOP (above). Otherwise PROCEED but RECORD it in a "## Decisions"
|
|
151
|
+
block in your FINAL REPORT, one entry per decision: what you chose + why + the
|
|
152
|
+
alternative(s) you considered + what it touches (which other flag/command/task).
|
|
153
|
+
|
|
154
|
+
That block is the ONE sanctioned channel for build-time rationale, and the runner
|
|
155
|
+
TRANSCRIBES it verbatim into the done record (work/tasks/done/<slug>.md) in the
|
|
156
|
+
SAME commit as the done-move. Emit it as a plain "## Decisions" heading in the
|
|
157
|
+
report you end with; everything under it up to the next "## " heading is captured.
|
|
158
|
+
Do NOT try to write the rationale into the done record yourself: you must not
|
|
159
|
+
edit the task body and you do no git, so the report is the only surface you own.
|
|
160
|
+
Do NOT open a work/notes/observations/decisions-<slug>.md note for it either: an
|
|
161
|
+
observation is a SPOTTED, UNVERIFIED signal, not a decision you made (WORK-CONTRACT,
|
|
162
|
+
"Where a BUILDER's RATIONALE lives"). If a decision meets the ADR gate (hard to
|
|
163
|
+
reverse + surprising without context + a real trade-off), ALSO write it as an ADR
|
|
164
|
+
in docs/adr/ (creating that file is ordinary work, not git) and name it in the
|
|
165
|
+
block. A short JSDoc at the choice site is welcome as the code-adjacent copy, but
|
|
166
|
+
it does not replace the block. This does NOT stop the build; it
|
|
158
167
|
makes the choice visible so the reviewer + the human can ratify or reverse it.
|
|
159
168
|
The bar is "would another task / a user / a reviewer be surprised this was
|
|
160
169
|
decided here?" — if yes, record it. A real ambiguity or stale premise, STOP.
|
|
@@ -169,8 +178,7 @@ step vs the explicit verb a human typed)? (3) does it DUPLICATE/overlap an exist
|
|
|
169
178
|
concept you should reuse or rename instead of forking? If a new concept conflicts
|
|
170
179
|
with, re-means, or duplicates an existing one — or sits at the wrong layer — that is
|
|
171
180
|
NOT a "small factual gap": STOP if it is load-bearing/hard-to-reverse, else RECORD
|
|
172
|
-
it
|
|
173
|
-
in the done record, or an observation note — linked from the done record), noting
|
|
181
|
+
it in your `## Decisions` block per the rule above, noting
|
|
174
182
|
what concept, what it overlaps, why your placement. This is
|
|
175
183
|
the prevention half of the review's conceptual-coherence lens — a muddled concept
|
|
176
184
|
that compiles is far more expensive than the question, because every later artifact
|
|
@@ -212,9 +220,10 @@ The classic case: a change that touched a package but added no changeset entry
|
|
|
212
220
|
conventions doc; it is the repo's source of truth for these standing rules.
|
|
213
221
|
|
|
214
222
|
When the acceptance criteria are met and the repo's build/test/format checks are
|
|
215
|
-
green, STOP and report what you did
|
|
216
|
-
|
|
217
|
-
|
|
223
|
+
green, STOP and report what you did, ending with your "## Decisions" block if you
|
|
224
|
+
made any in-scope decisions (above). The runner handles the durable `git mv` of the
|
|
225
|
+
body tasks/ready/ -> work/tasks/done/, transcribing your "## Decisions" block into
|
|
226
|
+
that done record, the completion commit, the lock release, and integration.
|
|
218
227
|
```
|
|
219
228
|
|
|
220
229
|
The "no git" line is **in-band** in the prompt (not delegated to a host config like a global `AGENTS.md`): a portable runner cannot assume the target machine has any such rule, so the boundary travels with the prompt. This keeps the acceptance-test gate authoritative (the agent can't commit/merge around it) and the runner the single owner of git state.
|
|
@@ -102,7 +102,7 @@ The verdict is a single JSON object with this shape (the **emitted-shape contrac
|
|
|
102
102
|
Several caller-specific optional channels MAY ride on the same JSON object. They are OPT-IN: each caller's prompt names which ones to fill. The shape they take when present:
|
|
103
103
|
|
|
104
104
|
- `review` — a single deliberately-authored, human-readable REVIEW string the caller posts as a comment on the PR (leads with Approved/Blocked, then the lenses + the destination-check reasoning). Plain text inside the JSON string. Advisory only — never gates the verdict.
|
|
105
|
-
- `edits` — full-content edits to apply between passes in an improver loop: an array of `{path, content}
|
|
105
|
+
- `edits` — full-content edits to apply between passes in an improver loop: an array of `{path, content | src}`. `path` is a repo-relative target (typically `work/tasks/backlog/<slug>.md`). The body is EITHER inline `content` (the FULL replacement file body — the legacy small-edit form) OR `src` (a repo-relative scratch path the agent WROTE the full body to — the DECOUPLED form the tasker improver loop uses, so the edits payload cannot cap-truncate the verdict response). The runner reads the body, applies it to `path` through its scope fence, and reaps the scratch; the agent does no git.
|
|
106
106
|
- `edit` — for the lone-task review only: a single in-memory full-replacement task BODY (the markdown AFTER the frontmatter), applied before the next round. No path — the task has not been emitted yet.
|
|
107
107
|
- `questions` — an array of strings carrying open questions for a human to answer (the non-converge sink in the lone-task review).
|
|
108
108
|
- `uncertainTasks` — for the tasker improver loop: specific tasks to emit `needsAnswers: true` with the questions in their bodies. Each is `{path, questions: string[]}`.
|
|
@@ -132,6 +132,7 @@ Each emitted task file is a markdown document with YAML frontmatter, BORN STAGED
|
|
|
132
132
|
|
|
133
133
|
- **`## What to build`** — a concise description of the vertical task — the end-to-end behaviour (a thin path through every layer: schema → logic → API/UI → tests), NOT a layer-by-layer implementation plan. Avoid specific file paths / code snippets (they go stale).
|
|
134
134
|
- **`## Acceptance criteria`** — a bullet list of verifiable / demoable criteria, ending with the test-coverage line and (where applicable) the shared-write isolation rule from `WORK-CONTRACT.md`.
|
|
135
|
+
- **NEVER write a criterion that asks the BUILDER to write the done record, the commit message, or the PR body** ("rationale recorded in the done record", "document the trade-off in the commit body"). The builder does no git and must not edit the task body, and the done-move plus the commit are the RUNNER's, so such a criterion is UNSATISFIABLE as written: the builder scatters the rationale somewhere reachable instead (a JSDoc, a changeset, an invented `decisions-*` note) and every review re-raises the same "no Decisions block" finding. Rationale already has ONE channel, guaranteed by the protocol for EVERY task: the builder's `## Decisions` block, which the runner transcribes into the done record (`WORK-CONTRACT.md`, "Where a BUILDER's RATIONALE lives"). So do not restate it as an acceptance criterion at all; write criteria about the BEHAVIOUR the task must exhibit. If a specific decision genuinely must be durable in its own right, make the criterion name the artifact the builder CAN create ("an ADR in `docs/adr/` records why X was chosen over Y"), not the record it cannot reach.
|
|
135
136
|
- **`## Blocked by`** — prose mirror of the frontmatter `blockedBy:`; `None — can start immediately.` when `blockedBy: []`.
|
|
136
137
|
- **`## Prompt`** — self-contained instructions to paste into a fresh agent context: an agent must be able to start from THIS FILE ALONE. State the goal, the relevant domain vocabulary, where to look (by module/concept, not brittle paths), the seams to test at, and what "done" means. Reference any constraining ADRs / findings.
|
|
137
138
|
- **`## Open questions`** — present iff `needsAnswers: true`; lists the unresolved questions blocking autonomous build. Stripped by the apply rung on full resolution.
|
|
@@ -93,6 +93,12 @@ work/
|
|
|
93
93
|
> - `"told by maintainer @<name>, 2026-06"` / `"inferred from the test asserting it at <path>"` — whatever it actually was; write it plainly.
|
|
94
94
|
>
|
|
95
95
|
> Put `source:` in the finding's frontmatter (see below) and, when the provenance is non-obvious, expand on it in the body. A finding without a source is a `notes/observations/` signal, not a finding.
|
|
96
|
+
>
|
|
97
|
+
> **A MEASUREMENT we made is a legitimate finding, and a COMMITTED SCRIPT is legitimate provenance.** Probing a runtime / an API / a tool to establish how it REALLY behaves produces exactly what a finding is for (external ground truth), so it does not matter that the `source:` names one of OUR files instead of someone else's URL; what matters is that the source is nameable and RE-RUNNABLE. Keep the two halves in their own homes: the EVIDENCE (the probe script, its raw output) is a durable task asset and lives at **`docs/spikes/<slug>/`** (the stable home of conflict-safety rule 8, never a `work/` sidecar), while the KNOWLEDGE lives in `work/notes/findings/<slug>.md` with a `source:` naming the script, its commit, WHAT it ran against (runtime + version) and WHEN, e.g. `source: 'measured by docs/spikes/<slug>/probe.mjs @ <commit>, against node 22.4 on 2026-08-11'`. **When a measurement is LOAD-BEARING, meaning some capability is withheld or enabled BECAUSE of it, the finding is REQUIRED, not optional.** A spike folder alone leaves the reason undiscoverable (nobody greps `docs/spikes/` when asking "why is this capability withheld?"), so the next agent re-litigates the measurement or silently reverses the behaviour it justifies. `docs/spikes/` is an EVIDENCE store, never the knowledge home. (Still bounded by the external/domain rule above: measuring OUR OWN code's internals is not a finding.)
|
|
98
|
+
|
|
99
|
+
> **Where a BUILDER's RATIONALE lives: the `## Decisions` block, transcribed into the done record. There is NO pending-ratification note kind.** A builder who makes a non-obvious in-scope choice the task did not specify (a new error/refusal, a user-visible default, a cross-task interaction) MUST surface it for ratification, and has exactly ONE channel: it emits a **`## Decisions`** block in its FINAL REPORT, and the runner transcribes that block VERBATIM into the done record (`work/tasks/done/<slug>.md`) in the SAME commit as the `tasks/ready → tasks/done` move. It is the only sanctioned route BECAUSE of the claim boundary: the builder does no git and MUST NOT edit the task body (`CLAIM-PROTOCOL.md`), and the done-move belongs to the runner. "Write your rationale into the done record" is therefore an instruction the builder CANNOT obey, and any contract phrasing that asks it to is a defect in the contract, not in the agent. The report is the one surface the builder owns, so that is where the channel is. Escalation: a decision meeting the ADR gate (hard to reverse + surprising without context + a real trade-off, see `ADR-FORMAT.md`) is written by the builder as an ADR in `docs/adr/` (creating a file is ordinary WORK, not git) and NAMED in the block. A short JSDoc at the choice site is welcome as the code-adjacent copy, but NEVER a substitute for the block: rationale reachable only by reading the diff is not reviewable.
|
|
100
|
+
>
|
|
101
|
+
> **A decision is NOT an observation, so never open a `decisions-<task-slug>.md` / `decision-<...>.md` note.** `notes/observations/` holds a _spotted, unverified_ signal that something may be WRONG; a choice you made deliberately and verified is neither spotted nor unverified, so it fails the bucket's definition on both axes. Worse, such a note is a BACKWARD artifact (it narrates work already COMPLETED) parked in a LIVE, FORWARD bucket, so it can never be discharged: no future event makes it stop being true, and they silently accumulate forever. That is the DIRECTION-and-LIVENESS rule above applied to rationale: completed work is recorded by the done record plus its commit, never by a note back-filled to narrate it. If you are holding rationale and reaching for a note, you are looking for the `## Decisions` block.
|
|
96
102
|
|
|
97
103
|
**For work items, DURABLE status is the folder a file lives in — never a frontmatter field.** Finishing / dropping / tasking-complete = moving the file between durable folders with `git mv` on `main`. This is what makes concurrent durable updates safe: two agents moving _different_ files never conflict. (Transient status — claimed/stuck/being-tasked — is NOT a folder move; it is a per-item lock ref, see above. Capture buckets are exempt too.)
|
|
98
104
|
|
|
@@ -49,7 +49,7 @@ Exception: if a prototype produced a snippet that encodes a decision more precis
|
|
|
49
49
|
>
|
|
50
50
|
> FIRST, check this task against current reality (it is a launch snapshot and may have DRIFTED): does it still match the code in `tasks/done/`, the relevant ADRs, and the tasks it depends on? If a dependency landed differently than this task assumes, or an ADR superseded an assumption here, do NOT build on the stale premise — route the task to needs-attention with the discrepancy as the reason (WORK-CONTRACT.md "Drift is a needs-attention signal"). Building on a stale task produces wrong-but-compiling work.
|
|
51
51
|
>
|
|
52
|
-
> RECORD non-obvious in-scope decisions you make while building,
|
|
52
|
+
> RECORD non-obvious in-scope decisions you make while building, in a `## Decisions` block at the end of your FINAL REPORT. When the task did not specify some behaviour and you have to CHOOSE (a new refusal/exit code, a clamp that reaches a second code path, a fail-loud-vs-fail-safe asymmetry, keeping vs collapsing a now-redundant distinction), do not leave the choice silent for a reviewer to reverse-engineer. That block is the ONE sanctioned channel for build-time rationale, and the runner transcribes it verbatim into the done record in the same commit as the done-move. So do NOT try to write the done record, the commit message, or the PR body yourself (you do no git and must not edit the task body), and do NOT open a `work/notes/observations/decisions-<slug>.md` note (an observation is a SPOTTED, UNVERIFIED signal, not a decision you made). If the choice meets the ADR gate (hard to reverse + surprising without context + a real trade-off, see `ADR-FORMAT.md`), ALSO write the durable WHY as an ADR in `docs/adr/` and name it in the block. An un-recorded in-scope decision is a review FINDING, not a silent default.
|
|
53
53
|
|
|
54
54
|
---
|
|
55
55
|
|
|
@@ -2,6 +2,19 @@ import { type Harness } from './harness.js';
|
|
|
2
2
|
import { ReviewParseError, type ReviewFinding, type ReviewVerdict, type UncertainTask } from './review-verdict.js';
|
|
3
3
|
export type { TaskEdit, UncertainTask } from './review-verdict.js';
|
|
4
4
|
export { parseReviewVerdict as parseTaskReviewVerdict } from './review-verdict.js';
|
|
5
|
+
export { ReviewOutputCappedError as TaskReviewOutputCappedError } from './review-verdict.js';
|
|
6
|
+
/**
|
|
7
|
+
* The SCRATCH directory the review agent writes full-replacement task bodies to
|
|
8
|
+
* (the DECOUPLED edits channel — see {@link TaskEdit.src}). Sibling of `backlog/`
|
|
9
|
+
* under `work/tasks/`; NOT a {@link WorkFolderKey}, so it is never scanned by
|
|
10
|
+
* {@link newOrChangedBacklog} (which reads `work/tasks/backlog/` only) and never
|
|
11
|
+
* appears as a candidate task. The runner reads each `src` file, applies it to the
|
|
12
|
+
* target `work/tasks/backlog/<name>.md` through the SAME scope fence, then DELETES
|
|
13
|
+
* it — so the integrate's `git add -A` never sweeps the scratch into the commit. A
|
|
14
|
+
* start-of-loop clean (see {@link cleanReviewEditsScratch}) reaps any stragglers a
|
|
15
|
+
* crashed prior run left behind.
|
|
16
|
+
*/
|
|
17
|
+
export declare const REVIEW_EDITS_SCRATCH_DIR = "work/tasks/.review-edits";
|
|
5
18
|
/**
|
|
6
19
|
* **The tasker review→edit→re-review→converge LOOP** (`slicer-review-edit-loop`,
|
|
7
20
|
* GATES spec `work/specs/ready/review.md` RESOLVED DESIGN — Shape 2 / insertion point A).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasker-review-loop.d.ts","sourceRoot":"","sources":["../src/tasker-review-loop.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,OAAO,EAAC,MAAM,cAAc,CAAC;AAEvD,OAAO,EAEN,gBAAgB,
|
|
1
|
+
{"version":3,"file":"tasker-review-loop.d.ts","sourceRoot":"","sources":["../src/tasker-review-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
|
-
import { readFileSync, readdirSync, writeFileSync } from 'node:fs';
|
|
1
|
+
import { readFileSync, readdirSync, writeFileSync, rmSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { workFolderPrefix, workFolderPath, workItemRel, stripWorkFolderPrefix, isWorkItemFile, } from './work-layout.js';
|
|
4
4
|
import { NullHarness } from './harness.js';
|
|
5
5
|
import { launchWithOptionalWatch } from './agent-launch.js';
|
|
6
|
-
import { parseReviewVerdict, ReviewParseError, reviewDisciplinePrompt, verdictContractPrompt, } from './review-verdict.js';
|
|
6
|
+
import { parseReviewVerdict, ReviewParseError, ReviewOutputCappedError, reviewDisciplinePrompt, verdictContractPrompt, } from './review-verdict.js';
|
|
7
7
|
export { parseReviewVerdict as parseTaskReviewVerdict } from './review-verdict.js';
|
|
8
|
+
export { ReviewOutputCappedError as TaskReviewOutputCappedError } from './review-verdict.js';
|
|
9
|
+
/**
|
|
10
|
+
* The SCRATCH directory the review agent writes full-replacement task bodies to
|
|
11
|
+
* (the DECOUPLED edits channel — see {@link TaskEdit.src}). Sibling of `backlog/`
|
|
12
|
+
* under `work/tasks/`; NOT a {@link WorkFolderKey}, so it is never scanned by
|
|
13
|
+
* {@link newOrChangedBacklog} (which reads `work/tasks/backlog/` only) and never
|
|
14
|
+
* appears as a candidate task. The runner reads each `src` file, applies it to the
|
|
15
|
+
* target `work/tasks/backlog/<name>.md` through the SAME scope fence, then DELETES
|
|
16
|
+
* it — so the integrate's `git add -A` never sweeps the scratch into the commit. A
|
|
17
|
+
* start-of-loop clean (see {@link cleanReviewEditsScratch}) reaps any stragglers a
|
|
18
|
+
* crashed prior run left behind.
|
|
19
|
+
*/
|
|
20
|
+
export const REVIEW_EDITS_SCRATCH_DIR = 'work/tasks/.review-edits';
|
|
8
21
|
/**
|
|
9
22
|
* Run the tasker review→edit→converge loop over the candidate tasks currently on
|
|
10
23
|
* disk under `work/tasks/backlog/`. Implements the loop ONCE; M (fresh-context
|
|
@@ -32,6 +45,10 @@ export async function runTaskReviewLoop(options) {
|
|
|
32
45
|
// tasks, never pre-existing landed ones (the requeue fix). No snapshot ⇒ an
|
|
33
46
|
// empty one (the legacy whole-directory behaviour for the empty-backlog case).
|
|
34
47
|
const before = options.before ?? new Map();
|
|
48
|
+
// Reap any review-edits SCRATCH a crashed prior run left behind, so the
|
|
49
|
+
// integrate's `git add -A` never sweeps stragglers into this run's commit. The
|
|
50
|
+
// loop deletes each `src` it applies too; this is the crash-recovery backstop.
|
|
51
|
+
cleanReviewEditsScratch(options.cwd);
|
|
35
52
|
let totalPasses = 0;
|
|
36
53
|
let last;
|
|
37
54
|
for (let m = 1; m <= executions; m++) {
|
|
@@ -192,6 +209,15 @@ function applyEdits(cwd, edits, before, note) {
|
|
|
192
209
|
'loop only improves candidate tasks.');
|
|
193
210
|
continue;
|
|
194
211
|
}
|
|
212
|
+
// Resolve the edit BODY: inline `content` (legacy / small edits) OR a `src`
|
|
213
|
+
// scratch file the agent wrote (the decoupled form — see TaskEdit.src). The
|
|
214
|
+
// `src` form keeps the verdict JSON bounded by the NUMBER of edits, not the
|
|
215
|
+
// total body size, so a large decomposition can no longer cap-truncate the
|
|
216
|
+
// verdict. A path-only edit with no resolvable body is a no-op marker.
|
|
217
|
+
const body = resolveEditBody(cwd, edit, note);
|
|
218
|
+
if (body === undefined) {
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
195
221
|
// A pre-existing task this run did NOT touch must not be overwritten: it is
|
|
196
222
|
// in `before` and the current on-disk content still equals the snapshot.
|
|
197
223
|
if (before.has(filename)) {
|
|
@@ -210,7 +236,63 @@ function applyEdits(cwd, edits, before, note) {
|
|
|
210
236
|
}
|
|
211
237
|
}
|
|
212
238
|
const abs = join(cwd, normalized);
|
|
213
|
-
writeFileSync(abs,
|
|
239
|
+
writeFileSync(abs, body);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Resolve an edit's full-replacement BODY: inline `content` (legacy) takes
|
|
244
|
+
* precedence, else read the `src` scratch file the agent wrote. Returns
|
|
245
|
+
* `undefined` when there is no body to apply (neither channel present, or `src`
|
|
246
|
+
* missing / outside the scratch fence / unreadable). The `src` is fenced to
|
|
247
|
+
* {@link REVIEW_EDITS_SCRATCH_DIR} (no `..`) so the agent cannot pull an arbitrary
|
|
248
|
+
* repo file in as the edit body. A read `src` is DELETED after reading so the
|
|
249
|
+
* integrate's `git add -A` never sweeps the scratch into the commit.
|
|
250
|
+
*/
|
|
251
|
+
function resolveEditBody(cwd, edit, note) {
|
|
252
|
+
if (edit.content !== undefined) {
|
|
253
|
+
return edit.content;
|
|
254
|
+
}
|
|
255
|
+
if (edit.src === undefined) {
|
|
256
|
+
return undefined;
|
|
257
|
+
}
|
|
258
|
+
const src = edit.src.replace(/\\/g, '/');
|
|
259
|
+
if (src.includes('..') || !src.startsWith(REVIEW_EDITS_SCRATCH_DIR + '/')) {
|
|
260
|
+
note(`Skipped a review edit whose src is outside ${REVIEW_EDITS_SCRATCH_DIR}/ (${edit.src}) — ` +
|
|
261
|
+
'the scratch body must live under the review-edits scratch dir.');
|
|
262
|
+
return undefined;
|
|
263
|
+
}
|
|
264
|
+
const srcAbs = join(cwd, src);
|
|
265
|
+
let body;
|
|
266
|
+
try {
|
|
267
|
+
body = readFileSync(srcAbs, 'utf8');
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
note(`Skipped a review edit whose src scratch file is missing/unreadable (${edit.src}) — ` +
|
|
271
|
+
'the agent did not write it before emitting the verdict.');
|
|
272
|
+
return undefined;
|
|
273
|
+
}
|
|
274
|
+
// Reap the scratch file now the body is in hand — never let it survive to the
|
|
275
|
+
// integrate's `git add -A` (best-effort; a missing file is already gone).
|
|
276
|
+
try {
|
|
277
|
+
rmSync(srcAbs, { force: true });
|
|
278
|
+
}
|
|
279
|
+
catch {
|
|
280
|
+
// Best-effort: a failure to delete does not block the apply.
|
|
281
|
+
}
|
|
282
|
+
return body;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Best-effort reap of the {@link REVIEW_EDITS_SCRATCH_DIR} (a crashed prior run may
|
|
286
|
+
* have left scratch bodies behind; the integrate's `git add -A` would otherwise
|
|
287
|
+
* sweep them into the next tasking commit). Called at the START of a loop run.
|
|
288
|
+
* Never throws — a missing/unreadable dir is the normal steady state.
|
|
289
|
+
*/
|
|
290
|
+
function cleanReviewEditsScratch(cwd) {
|
|
291
|
+
try {
|
|
292
|
+
rmSync(join(cwd, REVIEW_EDITS_SCRATCH_DIR), { recursive: true, force: true });
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
// Best-effort.
|
|
214
296
|
}
|
|
215
297
|
}
|
|
216
298
|
/**
|
|
@@ -298,7 +380,27 @@ export function harnessTaskReviewGate(options = {}) {
|
|
|
298
380
|
if (!launched.ok) {
|
|
299
381
|
throw new ReviewParseError(`task review agent launch failed${launched.detail ? `: ${launched.detail}` : ''}`);
|
|
300
382
|
}
|
|
301
|
-
|
|
383
|
+
// CAP-TRUNCATION NAMING (observation
|
|
384
|
+
// `tasker-review-edits-payload-caps-the-verdict-response`): attempt the parse
|
|
385
|
+
// FIRST so a verdict that DID complete (even on a capped turn — e.g. the cap
|
|
386
|
+
// hit trailing prose after the JSON closed) is HONORED, not discarded. Only
|
|
387
|
+
// when the parse FAILS AND the adapter surfaced an output-cap signal do we
|
|
388
|
+
// re-throw the NAMED {@link ReviewOutputCappedError} (a subclass of
|
|
389
|
+
// ReviewParseError, so the bounce routing still catches it — NEVER a silent
|
|
390
|
+
// approve). A parse failure with no cap signal stays the generic
|
|
391
|
+
// ReviewParseError (the adapter could not see the signal — still
|
|
392
|
+
// needs-attention, still never a silent approve).
|
|
393
|
+
try {
|
|
394
|
+
return parseReviewVerdict(readOutput(launched.output));
|
|
395
|
+
}
|
|
396
|
+
catch (err) {
|
|
397
|
+
if (launched.outputCapped !== undefined &&
|
|
398
|
+
(err instanceof ReviewParseError ||
|
|
399
|
+
err instanceof ReviewOutputCappedError)) {
|
|
400
|
+
throw new ReviewOutputCappedError(launched.outputCapped);
|
|
401
|
+
}
|
|
402
|
+
throw err;
|
|
403
|
+
}
|
|
302
404
|
};
|
|
303
405
|
}
|
|
304
406
|
/**
|
|
@@ -331,16 +433,26 @@ export function buildTaskReviewPrompt(input) {
|
|
|
331
433
|
`loop, not a one-shot gate.`,
|
|
332
434
|
``,
|
|
333
435
|
`This is review pass ${input.pass} (fresh context ${input.execution}). You`,
|
|
334
|
-
`do NOT
|
|
335
|
-
`
|
|
436
|
+
`do NOT run git. For the EDITS, WRITE each full-replacement task body to a`,
|
|
437
|
+
`SCRATCH file under ${REVIEW_EDITS_SCRATCH_DIR}/ and reference it by path in the`,
|
|
438
|
+
`"edits" channel — do NOT inline the body in the JSON, and do NOT edit the`,
|
|
439
|
+
`candidate task files directly (the runner applies your scratch body to the`,
|
|
440
|
+
`candidate task through its scope fence + deletes the scratch; on a review`,
|
|
441
|
+
`failure the tasker's original candidates stay pristine for recovery). This`,
|
|
442
|
+
`keeps the verdict JSON bounded by the NUMBER of edits, not the total body size,`,
|
|
443
|
+
`so a large decomposition cannot cap-truncate the verdict. Tasks`,
|
|
336
444
|
`measurably keep improving when reviewed, so propose edits that fix the`,
|
|
337
445
|
`findings; converge when a pass finds NO NEW blocking issue.`,
|
|
338
446
|
``,
|
|
339
447
|
verdictContractPrompt(),
|
|
340
448
|
``,
|
|
341
449
|
`Fill the channels appropriate to THIS caller (the tasker improver loop):`,
|
|
342
|
-
` - "edits" —
|
|
343
|
-
`
|
|
450
|
+
` - "edits" — for each candidate task file you want to rewrite, WRITE the full`,
|
|
451
|
+
` replacement body to ${REVIEW_EDITS_SCRATCH_DIR}/<name>.md (the runner reads`,
|
|
452
|
+
` it, applies it to work/tasks/backlog/<name>.md, then deletes the scratch),`,
|
|
453
|
+
` and emit {"path": "work/tasks/backlog/<name>.md", "src": "${REVIEW_EDITS_SCRATCH_DIR}/<name>.md"}.`,
|
|
454
|
+
` Do NOT put the body in "content" — that shares the capped response with`,
|
|
455
|
+
` the verdict and cap-truncates it on a large set.`,
|
|
344
456
|
` - "uncertainTasks" — specific tasks you cannot make buildable (each gets`,
|
|
345
457
|
` \`needsAnswers: true\` with the questions in its body).`,
|
|
346
458
|
` - "decompositionUnclear" — the WHOLE decomposition is unsound (the spec is`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasker-review-loop.js","sourceRoot":"","sources":["../src/tasker-review-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tasker-review-loop.js","sourceRoot":"","sources":["../src/tasker-review-loop.ts"],"names":[],"mappings":"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"}
|
package/dist/tasking.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasking.d.ts","sourceRoot":"","sources":["../src/tasking.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAKpD,OAAO,EAGN,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAc,KAAK,OAAO,EAAC,MAAM,cAAc,CAAC;AAKvD,OAAO,EAEN,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"tasking.d.ts","sourceRoot":"","sources":["../src/tasking.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAKpD,OAAO,EAGN,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAc,KAAK,OAAO,EAAC,MAAM,cAAc,CAAC;AAKvD,OAAO,EAEN,KAAK,cAAc,EAGnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,+DAA+D;AAC/D,MAAM,MAAM,WAAW,GACpB,QAAQ,GACR,cAAc,GACd,WAAW,GACX,cAAc,GACd,OAAO,GACP,iBAAiB,GACjB,aAAa,CAAC;AAEjB,MAAM,WAAW,UAAU;IAC1B,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC;IACvC,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB,KAAK;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AAErC,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC/B,OAAO,CACN,OAAO,EAAE,yBAAyB,GAChC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACrC,OAAO,CACN,OAAO,EAAE,yBAAyB,GAChC,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACrC;AAOD,MAAM,WAAW,kBAAkB;IAClC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAClC;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oFAAoF;IACpF,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAClC;;;;;;;;;;;;;;;;;OAiBG;IACH,oBAAoB,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3C;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1C;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC7B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAID;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,QAAiC,CAAC;AAa/D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC5B,OAAO,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GACtC,SAAS,GAAG,MAAM,GAAG,SAAS,CAIhC;AAOD;;;;;GAKG;AACH,wBAAsB,WAAW,CAChC,OAAO,EAAE,kBAAkB,GACzB,OAAO,CAAC,UAAU,CAAC,CA6hBrB;AAw0BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,yBAAyB,CACxC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,GAAG,SAAS,CAyEpB"}
|