poly-weaver 0.4.3 → 0.5.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/agents/implementors/handler.d.ts.map +1 -1
- package/dist/agents/implementors/handler.js +7 -2
- package/dist/agents/implementors/handler.js.map +1 -1
- package/dist/agents/planners/adapter.d.ts.map +1 -1
- package/dist/agents/planners/adapter.js +1 -0
- package/dist/agents/planners/adapter.js.map +1 -1
- package/dist/agents/planners/handler.d.ts.map +1 -1
- package/dist/agents/planners/handler.js +7 -2
- package/dist/agents/planners/handler.js.map +1 -1
- package/dist/agents/planners/types.d.ts +1 -0
- package/dist/agents/planners/types.d.ts.map +1 -1
- package/dist/agents/reviewers/adapter.d.ts +3 -2
- package/dist/agents/reviewers/adapter.d.ts.map +1 -1
- package/dist/agents/reviewers/adapter.js +14 -2
- package/dist/agents/reviewers/adapter.js.map +1 -1
- package/dist/agents/reviewers/dsl.d.ts +11 -1
- package/dist/agents/reviewers/dsl.d.ts.map +1 -1
- package/dist/agents/reviewers/dsl.js.map +1 -1
- package/dist/agents/reviewers/handler.d.ts.map +1 -1
- package/dist/agents/reviewers/handler.js +51 -2
- package/dist/agents/reviewers/handler.js.map +1 -1
- package/dist/agents/reviewers/index.d.ts +3 -3
- package/dist/agents/reviewers/index.d.ts.map +1 -1
- package/dist/agents/reviewers/index.js +9 -5
- package/dist/agents/reviewers/index.js.map +1 -1
- package/dist/agents/reviewers/prompts.d.ts +14 -2
- package/dist/agents/reviewers/prompts.d.ts.map +1 -1
- package/dist/agents/reviewers/prompts.js +106 -2
- package/dist/agents/reviewers/prompts.js.map +1 -1
- package/dist/agents/reviewers/types.d.ts +19 -1
- package/dist/agents/reviewers/types.d.ts.map +1 -1
- package/dist/agents/reviewers/types.js.map +1 -1
- package/dist/agents/runner.d.ts +9 -0
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +2 -1
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/simplifiers/adapter.d.ts.map +1 -1
- package/dist/agents/simplifiers/adapter.js +1 -0
- package/dist/agents/simplifiers/adapter.js.map +1 -1
- package/dist/agents/simplifiers/handler.d.ts.map +1 -1
- package/dist/agents/simplifiers/handler.js +7 -2
- package/dist/agents/simplifiers/handler.js.map +1 -1
- package/dist/cli.js +9 -1
- package/dist/cli.js.map +1 -1
- package/dist/flow/built-in/default.d.ts +1 -0
- package/dist/flow/built-in/default.d.ts.map +1 -1
- package/dist/flow/built-in/default.js +37 -0
- package/dist/flow/built-in/default.js.map +1 -1
- package/dist/flow/built-in/default.ts +43 -0
- package/dist/flow/built-in/why-so-serious.d.ts +1 -0
- package/dist/flow/built-in/why-so-serious.d.ts.map +1 -1
- package/dist/flow/built-in/why-so-serious.js +37 -0
- package/dist/flow/built-in/why-so-serious.js.map +1 -1
- package/dist/flow/diagram.d.ts.map +1 -1
- package/dist/flow/diagram.js +26 -11
- package/dist/flow/diagram.js.map +1 -1
- package/dist/flow/dsl.d.ts +7 -0
- package/dist/flow/dsl.d.ts.map +1 -1
- package/dist/flow/dsl.js +35 -0
- package/dist/flow/dsl.js.map +1 -1
- package/dist/flow/executor.d.ts.map +1 -1
- package/dist/flow/executor.js +17 -0
- package/dist/flow/executor.js.map +1 -1
- package/dist/flow/types.d.ts +17 -0
- package/dist/flow/types.d.ts.map +1 -1
- package/dist/flow/types.js.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +14 -0
- package/dist/orchestrator.js.map +1 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +8 -1
- package/dist/prompts.js.map +1 -1
- package/dist/providers/claude/completion-plan-mode.d.ts +30 -0
- package/dist/providers/claude/completion-plan-mode.d.ts.map +1 -0
- package/dist/providers/claude/completion-plan-mode.js +151 -0
- package/dist/providers/claude/completion-plan-mode.js.map +1 -0
- package/dist/providers/claude/completion.d.ts +9 -48
- package/dist/providers/claude/completion.d.ts.map +1 -1
- package/dist/providers/claude/completion.js +21 -274
- package/dist/providers/claude/completion.js.map +1 -1
- package/dist/providers/claude/session.d.ts +24 -4
- package/dist/providers/claude/session.d.ts.map +1 -1
- package/dist/providers/claude/session.js +90 -15
- package/dist/providers/claude/session.js.map +1 -1
- package/dist/providers/claude/strategy.d.ts +4 -3
- package/dist/providers/claude/strategy.d.ts.map +1 -1
- package/dist/providers/claude/strategy.js +8 -7
- package/dist/providers/claude/strategy.js.map +1 -1
- package/dist/providers/claude/tool-tracking.d.ts +28 -0
- package/dist/providers/claude/tool-tracking.d.ts.map +1 -0
- package/dist/providers/claude/tool-tracking.js +149 -0
- package/dist/providers/claude/tool-tracking.js.map +1 -0
- package/dist/providers/codex/strategy.d.ts +3 -1
- package/dist/providers/codex/strategy.d.ts.map +1 -1
- package/dist/providers/codex/strategy.js +1 -1
- package/dist/providers/codex/strategy.js.map +1 -1
- package/dist/providers/copilot/strategy.d.ts +3 -1
- package/dist/providers/copilot/strategy.d.ts.map +1 -1
- package/dist/providers/copilot/strategy.js +1 -1
- package/dist/providers/copilot/strategy.js.map +1 -1
- package/dist/providers/invoke.js +1 -1
- package/dist/providers/invoke.js.map +1 -1
- package/dist/providers/types.d.ts +3 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/user/curate-handler.d.ts +32 -0
- package/dist/user/curate-handler.d.ts.map +1 -0
- package/dist/user/curate-handler.js +156 -0
- package/dist/user/curate-handler.js.map +1 -0
- package/dist/user/curate-prompt.d.ts +41 -0
- package/dist/user/curate-prompt.d.ts.map +1 -0
- package/dist/user/curate-prompt.js +473 -0
- package/dist/user/curate-prompt.js.map +1 -0
- package/dist/user/dsl.d.ts +1 -0
- package/dist/user/dsl.d.ts.map +1 -1
- package/dist/user/dsl.js +1 -0
- package/dist/user/dsl.js.map +1 -1
- package/dist/user/index.d.ts +3 -0
- package/dist/user/index.d.ts.map +1 -1
- package/dist/user/index.js +2 -0
- package/dist/user/index.js.map +1 -1
- package/dist/user/prompt.d.ts +11 -0
- package/dist/user/prompt.d.ts.map +1 -1
- package/dist/user/prompt.js +40 -7
- package/dist/user/prompt.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
import { RawInputParser } from "./prompt.js";
|
|
2
|
+
import { bold, cyan, dim, green, red, reset, yellow, clearToEol, cursorUp, visibleLength, } from "../ansi.js";
|
|
3
|
+
const DECISION_CYCLE = ["keep", "drop", "revise"];
|
|
4
|
+
function tagFor(decision) {
|
|
5
|
+
switch (decision) {
|
|
6
|
+
case "keep":
|
|
7
|
+
return `${green}[K]${reset}`;
|
|
8
|
+
case "drop":
|
|
9
|
+
return `${red}[D]${reset}`;
|
|
10
|
+
case "revise":
|
|
11
|
+
return `${yellow}[R]${reset}`;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Visible width of a single code point, accounting for wide emoji.
|
|
16
|
+
* Mirrors the per-codepoint logic in `visibleLength` from `../ansi.js`.
|
|
17
|
+
*/
|
|
18
|
+
function codePointWidth(cp) {
|
|
19
|
+
if (cp === 0xfe0f)
|
|
20
|
+
return 0;
|
|
21
|
+
if (cp > 0xffff)
|
|
22
|
+
return 2;
|
|
23
|
+
// Reuse `visibleLength` for BMP wideness; cheap because input is one char.
|
|
24
|
+
return visibleLength(String.fromCodePoint(cp));
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Wrap `text` to fit within `width` visible columns per output line.
|
|
28
|
+
*
|
|
29
|
+
* Splits on `\n` first (paragraph breaks), then word-wraps each paragraph,
|
|
30
|
+
* then hard-breaks any single token that exceeds `width`. Empty input
|
|
31
|
+
* returns `[""]` so callers always emit at least one row. Width measurement
|
|
32
|
+
* uses `visibleLength` so wide emoji and ANSI styling are accounted for.
|
|
33
|
+
*
|
|
34
|
+
* Contract: every returned string satisfies `visibleLength(line) <= width`.
|
|
35
|
+
*/
|
|
36
|
+
export function wrapToWidth(text, width) {
|
|
37
|
+
if (width < 1)
|
|
38
|
+
width = 1;
|
|
39
|
+
if (text.length === 0)
|
|
40
|
+
return [""];
|
|
41
|
+
const paragraphs = text.split("\n");
|
|
42
|
+
const out = [];
|
|
43
|
+
for (const paragraph of paragraphs) {
|
|
44
|
+
const tokens = paragraph.split(/\s+/).filter((t) => t.length > 0);
|
|
45
|
+
if (tokens.length === 0) {
|
|
46
|
+
out.push("");
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
let line = "";
|
|
50
|
+
let lineWidth = 0;
|
|
51
|
+
for (const token of tokens) {
|
|
52
|
+
const tokenWidth = visibleLength(token);
|
|
53
|
+
// Hard-break any single token longer than width into width-sized chunks.
|
|
54
|
+
if (tokenWidth > width) {
|
|
55
|
+
if (line.length > 0) {
|
|
56
|
+
out.push(line);
|
|
57
|
+
line = "";
|
|
58
|
+
lineWidth = 0;
|
|
59
|
+
}
|
|
60
|
+
let chunk = "";
|
|
61
|
+
let chunkWidth = 0;
|
|
62
|
+
for (const ch of token) {
|
|
63
|
+
const cw = codePointWidth(ch.codePointAt(0));
|
|
64
|
+
if (chunkWidth + cw > width) {
|
|
65
|
+
out.push(chunk);
|
|
66
|
+
chunk = ch;
|
|
67
|
+
chunkWidth = cw;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
chunk += ch;
|
|
71
|
+
chunkWidth += cw;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (chunk.length > 0) {
|
|
75
|
+
line = chunk;
|
|
76
|
+
lineWidth = chunkWidth;
|
|
77
|
+
}
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const sepWidth = line.length === 0 ? 0 : 1;
|
|
81
|
+
if (lineWidth + sepWidth + tokenWidth > width) {
|
|
82
|
+
out.push(line);
|
|
83
|
+
line = token;
|
|
84
|
+
lineWidth = tokenWidth;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
line = line.length === 0 ? token : `${line} ${token}`;
|
|
88
|
+
lineWidth += sepWidth + tokenWidth;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (line.length > 0 || tokens.length === 0) {
|
|
92
|
+
out.push(line);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return out;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Clip a single (possibly ANSI-styled) line so its visible width does not
|
|
99
|
+
* exceed `width`. ANSI escape sequences pass through with zero width. If the
|
|
100
|
+
* input contained any ANSI styling and we had to truncate, append `reset`
|
|
101
|
+
* so styling does not bleed past the clipped boundary.
|
|
102
|
+
*
|
|
103
|
+
* Contract: returned string satisfies `visibleLength(line) <= width`.
|
|
104
|
+
*/
|
|
105
|
+
export function clipToWidth(line, width) {
|
|
106
|
+
if (width < 0)
|
|
107
|
+
width = 0;
|
|
108
|
+
if (visibleLength(line) <= width)
|
|
109
|
+
return line;
|
|
110
|
+
// eslint-disable-next-line no-control-regex
|
|
111
|
+
const ansi = /\x1b\[[0-9;]*m/g;
|
|
112
|
+
let hadStyle = false;
|
|
113
|
+
let out = "";
|
|
114
|
+
let visWidth = 0;
|
|
115
|
+
let i = 0;
|
|
116
|
+
while (i < line.length) {
|
|
117
|
+
ansi.lastIndex = i;
|
|
118
|
+
const m = ansi.exec(line);
|
|
119
|
+
if (m && m.index === i) {
|
|
120
|
+
out += m[0];
|
|
121
|
+
hadStyle = true;
|
|
122
|
+
i += m[0].length;
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
const cp = line.codePointAt(i);
|
|
126
|
+
const ch = String.fromCodePoint(cp);
|
|
127
|
+
const w = codePointWidth(cp);
|
|
128
|
+
if (visWidth + w > width)
|
|
129
|
+
break;
|
|
130
|
+
out += ch;
|
|
131
|
+
visWidth += w;
|
|
132
|
+
i += ch.length;
|
|
133
|
+
}
|
|
134
|
+
if (hadStyle)
|
|
135
|
+
out += reset;
|
|
136
|
+
return out;
|
|
137
|
+
}
|
|
138
|
+
export class CurateVerdictPrompt {
|
|
139
|
+
onDumpRequested;
|
|
140
|
+
constructor(onDumpRequested) {
|
|
141
|
+
this.onDumpRequested = onDumpRequested;
|
|
142
|
+
}
|
|
143
|
+
async prompt(verdict) {
|
|
144
|
+
if (!process.stdin.isTTY || verdict.issues.length === 0) {
|
|
145
|
+
return {
|
|
146
|
+
decisions: verdict.issues.map((_, index) => ({ index, decision: "keep" })),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
return this.runChecklist(verdict);
|
|
150
|
+
}
|
|
151
|
+
runChecklist(verdict) {
|
|
152
|
+
const issues = verdict.issues;
|
|
153
|
+
const decisions = issues.map(() => "keep");
|
|
154
|
+
const comments = issues.map(() => undefined);
|
|
155
|
+
let cursor = 0;
|
|
156
|
+
let prevRendered = 0;
|
|
157
|
+
return new Promise((resolve) => {
|
|
158
|
+
process.stdin.setRawMode(true);
|
|
159
|
+
process.stdin.resume();
|
|
160
|
+
const parser = new RawInputParser();
|
|
161
|
+
const renderHeader = (cols) => {
|
|
162
|
+
const n = issues.length;
|
|
163
|
+
const s = n === 1 ? "" : "s";
|
|
164
|
+
const title = clipToWidth(`${bold}${cyan}User Verdict Curation${reset} — ${n} issue${s}`, cols);
|
|
165
|
+
const summaryLines = wrapToWidth(verdict.summary, cols).map((l) => `${dim}${l}${reset}`);
|
|
166
|
+
return [title, ...summaryLines];
|
|
167
|
+
};
|
|
168
|
+
const renderRow = (i, cols) => {
|
|
169
|
+
const isCursor = i === cursor;
|
|
170
|
+
const arrow = isCursor ? `${bold}❯${reset}` : " ";
|
|
171
|
+
const tag = tagFor(decisions[i]);
|
|
172
|
+
const issue = issues[i];
|
|
173
|
+
const meta = [];
|
|
174
|
+
if (issue.severity)
|
|
175
|
+
meta.push(issue.severity);
|
|
176
|
+
if (issue.category)
|
|
177
|
+
meta.push(issue.category);
|
|
178
|
+
const metaStr = meta.length ? `${dim}[${meta.join("/")}]${reset} ` : "";
|
|
179
|
+
const prefix = `${arrow} ${tag} ${metaStr}`;
|
|
180
|
+
const tail = decisions[i] === "revise" && comments[i] ? ` ${dim}— …${reset}` : "";
|
|
181
|
+
const desc = issue.description.replace(/\s+/g, " ");
|
|
182
|
+
const avail = cols - visibleLength(prefix) - visibleLength(tail);
|
|
183
|
+
if (avail <= 0) {
|
|
184
|
+
// Not enough room for any description text; fall back to prefix-only.
|
|
185
|
+
// The detail panel below still shows the full issue body.
|
|
186
|
+
return clipToWidth(prefix, cols);
|
|
187
|
+
}
|
|
188
|
+
// Clip the description alone to the available width, then concat the
|
|
189
|
+
// tail. Composing first and clipping last would silently drop the tail
|
|
190
|
+
// when the description is long — the revise-marker would never render.
|
|
191
|
+
const clippedDesc = clipToWidth(desc, avail);
|
|
192
|
+
return `${prefix}${clippedDesc}${tail}`;
|
|
193
|
+
};
|
|
194
|
+
const renderDetail = (i, cols) => {
|
|
195
|
+
const n = issues.length;
|
|
196
|
+
const issue = issues[i];
|
|
197
|
+
const out = [];
|
|
198
|
+
out.push(clipToWidth(` ${dim}─── Issue ${i + 1} of ${n} — Details ───${reset}`, cols));
|
|
199
|
+
const bodyWidth = Math.max(1, cols - 2);
|
|
200
|
+
for (const l of wrapToWidth(issue.description, bodyWidth)) {
|
|
201
|
+
out.push(` ${l}`);
|
|
202
|
+
}
|
|
203
|
+
if (decisions[i] === "revise" && comments[i]) {
|
|
204
|
+
out.push(clipToWidth(` ${dim}[Revise comment]${reset}`, cols));
|
|
205
|
+
for (const l of wrapToWidth(comments[i], bodyWidth)) {
|
|
206
|
+
out.push(` ${l}`);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return out;
|
|
210
|
+
};
|
|
211
|
+
const renderFooter = (cols) => {
|
|
212
|
+
const plain = "↑/↓ navigate · k/d/r set · Tab cycle · Enter edit comment · Ctrl+D submit · Ctrl+C keep-all";
|
|
213
|
+
return wrapToWidth(plain, cols).map((l) => `${dim}${l}${reset}`);
|
|
214
|
+
};
|
|
215
|
+
const drawAll = () => {
|
|
216
|
+
const cols = Math.max(20, process.stdout.columns ?? 80);
|
|
217
|
+
const lines = [
|
|
218
|
+
...renderHeader(cols),
|
|
219
|
+
...issues.map((_, i) => renderRow(i, cols)),
|
|
220
|
+
"",
|
|
221
|
+
...renderDetail(cursor, cols),
|
|
222
|
+
"",
|
|
223
|
+
...renderFooter(cols),
|
|
224
|
+
];
|
|
225
|
+
for (const line of lines) {
|
|
226
|
+
process.stdout.write(`\r${clearToEol}${line}\n`);
|
|
227
|
+
}
|
|
228
|
+
// Erase any stale trailing rows from a taller previous draw.
|
|
229
|
+
const stale = Math.max(0, prevRendered - lines.length);
|
|
230
|
+
for (let i = 0; i < stale; i++) {
|
|
231
|
+
process.stdout.write(`\r${clearToEol}\n`);
|
|
232
|
+
}
|
|
233
|
+
// Walk cursor back to the top of the rendered region.
|
|
234
|
+
const totalAdvanced = lines.length + stale;
|
|
235
|
+
for (let i = 0; i < totalAdvanced; i++) {
|
|
236
|
+
process.stdout.write(cursorUp);
|
|
237
|
+
}
|
|
238
|
+
prevRendered = lines.length;
|
|
239
|
+
};
|
|
240
|
+
const moveToRow = (rowIdx) => {
|
|
241
|
+
if (rowIdx > 0)
|
|
242
|
+
process.stdout.write(`\x1b[${rowIdx}B`);
|
|
243
|
+
};
|
|
244
|
+
const moveToTop = (rowIdx) => {
|
|
245
|
+
if (rowIdx > 0)
|
|
246
|
+
process.stdout.write(`\x1b[${rowIdx}A`);
|
|
247
|
+
};
|
|
248
|
+
// Active event sink — swapped between the curate-mode and comment-mode
|
|
249
|
+
// handlers. Both stdin chunks AND deferred events (bare ESC after the
|
|
250
|
+
// escape-timeout in legacy VT mode) flow through this sink, so Esc is
|
|
251
|
+
// observable regardless of whether the terminal is in passive kitty mode.
|
|
252
|
+
let activeSink;
|
|
253
|
+
parser.onDeferred((events) => activeSink?.(events));
|
|
254
|
+
const finalize = (result) => {
|
|
255
|
+
process.stdin.removeListener("data", onCurateChunk);
|
|
256
|
+
process.stdin.setRawMode(false);
|
|
257
|
+
process.stdin.resume();
|
|
258
|
+
// Move cursor below all rendered rows
|
|
259
|
+
moveToRow(prevRendered);
|
|
260
|
+
process.stdout.write("\r");
|
|
261
|
+
resolve(result);
|
|
262
|
+
};
|
|
263
|
+
const ensureCommentForRevise = async (prevDecision) => {
|
|
264
|
+
if (decisions[cursor] !== "revise" || comments[cursor])
|
|
265
|
+
return;
|
|
266
|
+
const c = await collectComment(cursor);
|
|
267
|
+
if (c !== undefined) {
|
|
268
|
+
comments[cursor] = c;
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
// User cancelled the comment prompt without typing anything.
|
|
272
|
+
// Revert the decision so a comment-less revise can never be
|
|
273
|
+
// submitted from the checklist.
|
|
274
|
+
decisions[cursor] = prevDecision === "revise" ? "keep" : prevDecision;
|
|
275
|
+
}
|
|
276
|
+
drawAll();
|
|
277
|
+
};
|
|
278
|
+
const handleCurateEvents = async (events) => {
|
|
279
|
+
for (const event of events) {
|
|
280
|
+
if (event.type === "dump") {
|
|
281
|
+
this.onDumpRequested?.();
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
if (event.type === "ctrl-c") {
|
|
285
|
+
const result = {
|
|
286
|
+
decisions: issues.map((_, index) => ({ index, decision: "keep" })),
|
|
287
|
+
};
|
|
288
|
+
finalize(result);
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
if (event.type === "submit") {
|
|
292
|
+
// A `revise` without a non-empty comment is meaningless: the sub-loop
|
|
293
|
+
// only advances when the user provides a revise instruction. Defensively
|
|
294
|
+
// downgrade those rows to "keep" before emitting the result.
|
|
295
|
+
for (let i = 0; i < issues.length; i++) {
|
|
296
|
+
if (decisions[i] === "revise" && !comments[i]) {
|
|
297
|
+
decisions[i] = "keep";
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
const result = {
|
|
301
|
+
decisions: issues.map((_, index) => {
|
|
302
|
+
const dec = decisions[index];
|
|
303
|
+
const rec = { index, decision: dec };
|
|
304
|
+
if (dec === "revise" && comments[index]) {
|
|
305
|
+
rec.comment = comments[index];
|
|
306
|
+
}
|
|
307
|
+
return rec;
|
|
308
|
+
}),
|
|
309
|
+
};
|
|
310
|
+
finalize(result);
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
if (event.type === "arrow") {
|
|
314
|
+
const prev = cursor;
|
|
315
|
+
if (event.direction === "up") {
|
|
316
|
+
cursor = (cursor - 1 + issues.length) % issues.length;
|
|
317
|
+
}
|
|
318
|
+
else if (event.direction === "down") {
|
|
319
|
+
cursor = (cursor + 1) % issues.length;
|
|
320
|
+
}
|
|
321
|
+
if (prev !== cursor)
|
|
322
|
+
drawAll();
|
|
323
|
+
continue;
|
|
324
|
+
}
|
|
325
|
+
if (event.type === "newline") {
|
|
326
|
+
// Enter on a revise row → edit comment. Otherwise, no-op.
|
|
327
|
+
if (decisions[cursor] === "revise") {
|
|
328
|
+
const prevDecision = decisions[cursor];
|
|
329
|
+
const c = await collectComment(cursor);
|
|
330
|
+
if (c !== undefined) {
|
|
331
|
+
comments[cursor] = c;
|
|
332
|
+
drawAll();
|
|
333
|
+
}
|
|
334
|
+
else if (!comments[cursor]) {
|
|
335
|
+
decisions[cursor] = "keep";
|
|
336
|
+
drawAll();
|
|
337
|
+
}
|
|
338
|
+
void prevDecision;
|
|
339
|
+
}
|
|
340
|
+
continue;
|
|
341
|
+
}
|
|
342
|
+
if (event.type === "tab") {
|
|
343
|
+
const prevDecision = decisions[cursor];
|
|
344
|
+
const i = DECISION_CYCLE.indexOf(decisions[cursor]);
|
|
345
|
+
decisions[cursor] = DECISION_CYCLE[(i + 1) % DECISION_CYCLE.length];
|
|
346
|
+
if (decisions[cursor] !== prevDecision) {
|
|
347
|
+
drawAll();
|
|
348
|
+
await ensureCommentForRevise(prevDecision);
|
|
349
|
+
}
|
|
350
|
+
continue;
|
|
351
|
+
}
|
|
352
|
+
if (event.type === "insert") {
|
|
353
|
+
const ch = event.text.toLowerCase();
|
|
354
|
+
const prevDecision = decisions[cursor];
|
|
355
|
+
if (ch === "k")
|
|
356
|
+
decisions[cursor] = "keep";
|
|
357
|
+
else if (ch === "d")
|
|
358
|
+
decisions[cursor] = "drop";
|
|
359
|
+
else if (ch === "r")
|
|
360
|
+
decisions[cursor] = "revise";
|
|
361
|
+
else
|
|
362
|
+
continue;
|
|
363
|
+
if (decisions[cursor] !== prevDecision) {
|
|
364
|
+
drawAll();
|
|
365
|
+
await ensureCommentForRevise(prevDecision);
|
|
366
|
+
}
|
|
367
|
+
continue;
|
|
368
|
+
}
|
|
369
|
+
// esc, backspace — ignored in curate mode
|
|
370
|
+
}
|
|
371
|
+
};
|
|
372
|
+
const onCurateChunk = (chunk) => {
|
|
373
|
+
void handleCurateEvents(parser.parseChunk(chunk));
|
|
374
|
+
};
|
|
375
|
+
const collectComment = (issueIdx) => {
|
|
376
|
+
return new Promise((resolveComment) => {
|
|
377
|
+
// Snapshot the rendered area we need to walk back over after input.
|
|
378
|
+
const baseRows = prevRendered;
|
|
379
|
+
const cols = Math.max(20, process.stdout.columns ?? 80);
|
|
380
|
+
// Move just below the rendered region (single physical line).
|
|
381
|
+
moveToRow(baseRows);
|
|
382
|
+
const rawLabel = `Revise comment for issue ${issueIdx + 1} (Enter submits, Esc cancels): `;
|
|
383
|
+
// Reserve at least 4 cols of input area; clip the label as needed so
|
|
384
|
+
// the prompt + visible buffer always fit on a single physical row.
|
|
385
|
+
const maxLabelWidth = Math.max(0, cols - 4);
|
|
386
|
+
const label = clipToWidth(`${dim}${rawLabel}${reset}`, maxLabelWidth);
|
|
387
|
+
const labelVisible = visibleLength(label);
|
|
388
|
+
const inputCols = Math.max(1, cols - labelVisible);
|
|
389
|
+
let buffer = comments[issueIdx] ?? "";
|
|
390
|
+
const renderPrompt = () => {
|
|
391
|
+
// Single-line render: clear, then write label + tail-of-buffer that
|
|
392
|
+
// fits in `inputCols`. When the buffer is wider than the input
|
|
393
|
+
// area, prepend `…` and slice off the head so the typing cursor
|
|
394
|
+
// stays visible at the right edge. ASCII-only fast path on slice;
|
|
395
|
+
// for wide-glyph content `clipToWidth` is the safety net below.
|
|
396
|
+
let display;
|
|
397
|
+
const bufWidth = visibleLength(buffer);
|
|
398
|
+
if (buffer.length === 0) {
|
|
399
|
+
display = "";
|
|
400
|
+
}
|
|
401
|
+
else if (bufWidth > inputCols) {
|
|
402
|
+
const tail = buffer.slice(-(Math.max(1, inputCols - 1)));
|
|
403
|
+
display = `…${tail}`;
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
display = buffer;
|
|
407
|
+
}
|
|
408
|
+
// Defense in depth: clip the entire composed line. Guarantees the
|
|
409
|
+
// physical row stays within `cols` even if a wide glyph slipped
|
|
410
|
+
// through the slice math.
|
|
411
|
+
const line = clipToWidth(`${label}${display}`, cols);
|
|
412
|
+
process.stdout.write(`\r${clearToEol}${line}`);
|
|
413
|
+
};
|
|
414
|
+
renderPrompt();
|
|
415
|
+
const finishComment = (result) => {
|
|
416
|
+
// Restore curate sink before redrawing so any deferred events that
|
|
417
|
+
// arrive during `drawAll` route to the curate handler.
|
|
418
|
+
process.stdin.removeListener("data", onCommentChunk);
|
|
419
|
+
activeSink = handleCurateEvents;
|
|
420
|
+
process.stdin.on("data", onCurateChunk);
|
|
421
|
+
// Clear prompt line, walk back to top of the rendered region,
|
|
422
|
+
// then redraw (drawAll handles cursor accounting via prevRendered).
|
|
423
|
+
process.stdout.write(`\r${clearToEol}`);
|
|
424
|
+
moveToTop(baseRows);
|
|
425
|
+
drawAll();
|
|
426
|
+
resolveComment(result);
|
|
427
|
+
};
|
|
428
|
+
const handleCommentEvents = (events) => {
|
|
429
|
+
for (const event of events) {
|
|
430
|
+
if (event.type === "dump") {
|
|
431
|
+
this.onDumpRequested?.();
|
|
432
|
+
continue;
|
|
433
|
+
}
|
|
434
|
+
if (event.type === "ctrl-c" || event.type === "esc") {
|
|
435
|
+
finishComment(undefined);
|
|
436
|
+
return;
|
|
437
|
+
}
|
|
438
|
+
if (event.type === "submit" || event.type === "newline") {
|
|
439
|
+
finishComment(buffer.trim() ? buffer.trim() : undefined);
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
if (event.type === "backspace") {
|
|
443
|
+
if (buffer.length > 0) {
|
|
444
|
+
buffer = buffer.slice(0, -1);
|
|
445
|
+
renderPrompt();
|
|
446
|
+
}
|
|
447
|
+
continue;
|
|
448
|
+
}
|
|
449
|
+
if (event.type === "insert") {
|
|
450
|
+
buffer += event.text;
|
|
451
|
+
renderPrompt();
|
|
452
|
+
continue;
|
|
453
|
+
}
|
|
454
|
+
// tab, arrow — ignored while editing the comment
|
|
455
|
+
}
|
|
456
|
+
};
|
|
457
|
+
const onCommentChunk = (chunk) => {
|
|
458
|
+
handleCommentEvents(parser.parseChunk(chunk));
|
|
459
|
+
};
|
|
460
|
+
// Swap from curate to comment handler.
|
|
461
|
+
process.stdin.removeListener("data", onCurateChunk);
|
|
462
|
+
activeSink = handleCommentEvents;
|
|
463
|
+
process.stdin.on("data", onCommentChunk);
|
|
464
|
+
});
|
|
465
|
+
};
|
|
466
|
+
// Initial render and listener wiring.
|
|
467
|
+
drawAll();
|
|
468
|
+
activeSink = handleCurateEvents;
|
|
469
|
+
process.stdin.on("data", onCurateChunk);
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
//# sourceMappingURL=curate-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curate-prompt.js","sourceRoot":"","sources":["../../src/user/curate-prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/user/dsl.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { UserStep } from "../flow/types.js";
|
|
|
2
2
|
import type { WhenCondition, PhaseLabelSpec } from "../flow/dsl.js";
|
|
3
3
|
export declare function user(label: string, opts?: {
|
|
4
4
|
id?: string;
|
|
5
|
+
variant?: string;
|
|
5
6
|
when?: WhenCondition;
|
|
6
7
|
whenLabel?: string;
|
|
7
8
|
reads?: Record<string, string>;
|
package/dist/user/dsl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../src/user/dsl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAEjF,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IACzC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../src/user/dsl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAEjF,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IACzC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B,GAAG,QAAQ,CAkBX"}
|
package/dist/user/dsl.js
CHANGED
package/dist/user/dsl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsl.js","sourceRoot":"","sources":["../../src/user/dsl.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,IAAI,CAAC,KAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"dsl.js","sourceRoot":"","sources":["../../src/user/dsl.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,IAAI,CAAC,KAAa,EAAE,IAUnC;IACC,MAAM,WAAW,GAAG,IAAI,EAAE,UAAU,IAAI,mBAAmB,CAAC;IAC5D,MAAM,GAAG,GAAgB;QACvB,IAAI,EAAE,MAAM;QACZ,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE;QAClB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,IAAI,EAAE,OAAO;QACtB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;QACzC,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE;QAC1B,cAAc,EAAE,IAAI,EAAE,cAAc,IAAI,IAAI;QAC5C,aAAa,EAAE,IAAI,EAAE,aAAa;QAClC,UAAU,EAAE,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QAC9D,SAAS,EAAE,QAAQ,KAAK,EAAE;QAC1B,KAAK,EAAE,IAAI,EAAE,IAAI;QACjB,UAAU,EAAE,IAAI,EAAE,SAAS;QAC3B,WAAW;KACZ,CAAC;IACF,OAAO,GAA0B,CAAC;AACpC,CAAC"}
|
package/dist/user/index.d.ts
CHANGED
|
@@ -2,4 +2,7 @@ export type { UserPromptHandler, UserPromptResult, UserPromptContext } from "./p
|
|
|
2
2
|
export { InteractiveUserPrompt, AutoUserPrompt, RawInputParser } from "./prompt.js";
|
|
3
3
|
export { UserRoleHandler } from "./handler.js";
|
|
4
4
|
export { user } from "./dsl.js";
|
|
5
|
+
export { CurateVerdictRoleHandler, buildCuratedVerdict } from "./curate-handler.js";
|
|
6
|
+
export { CurateVerdictPrompt } from "./curate-prompt.js";
|
|
7
|
+
export type { CuratePromptHandler, CurateDecision, CurateDecisionRecord, CurateResult, } from "./curate-prompt.js";
|
|
5
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/user/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,YAAY,GACb,MAAM,oBAAoB,CAAC"}
|
package/dist/user/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { InteractiveUserPrompt, AutoUserPrompt, RawInputParser } from "./prompt.js";
|
|
2
2
|
export { UserRoleHandler } from "./handler.js";
|
|
3
3
|
export { user } from "./dsl.js";
|
|
4
|
+
export { CurateVerdictRoleHandler, buildCuratedVerdict } from "./curate-handler.js";
|
|
5
|
+
export { CurateVerdictPrompt } from "./curate-prompt.js";
|
|
4
6
|
//# sourceMappingURL=index.js.map
|
package/dist/user/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/user/prompt.d.ts
CHANGED
|
@@ -15,6 +15,10 @@ type RawInputEvent = {
|
|
|
15
15
|
type: "newline";
|
|
16
16
|
} | {
|
|
17
17
|
type: "ctrl-c";
|
|
18
|
+
} | {
|
|
19
|
+
type: "tab";
|
|
20
|
+
} | {
|
|
21
|
+
type: "esc";
|
|
18
22
|
} | {
|
|
19
23
|
type: "arrow";
|
|
20
24
|
direction: "up" | "down";
|
|
@@ -27,7 +31,14 @@ type RawInputEvent = {
|
|
|
27
31
|
*/
|
|
28
32
|
export declare class RawInputParser {
|
|
29
33
|
private parser;
|
|
34
|
+
private deferredHandler;
|
|
35
|
+
constructor();
|
|
30
36
|
parseChunk(chunk: Buffer): RawInputEvent[];
|
|
37
|
+
/**
|
|
38
|
+
* Subscribe to events that arrive after a delay (currently only bare ESC
|
|
39
|
+
* in legacy VT mode, surfaced after the escape timeout fires).
|
|
40
|
+
*/
|
|
41
|
+
onDeferred(cb: (events: RawInputEvent[]) => void): void;
|
|
31
42
|
private mapKey;
|
|
32
43
|
}
|
|
33
44
|
export interface UserPromptContext {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/user/prompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,aAAa,GACd;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA2B;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/user/prompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,aAAa,GACd;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,eAAe,CAAkD;;IAazE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE;IAI1C;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,GAAG,IAAI;IAIvD,OAAO,CAAC,MAAM;CAmDf;AAED,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iFAAiF;IACjF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IAE3D,QAAQ,CAAC,KAAK,EAAE,YAAY;IAC5B,QAAQ,CAAC,eAAe,CAAC,GAAE,MAAM,IAAI;gBAD5B,KAAK,GAAE,YAA4B,EACnC,eAAe,CAAC,GAAE,MAAM,IAAI,aAAA;IAGjC,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IA6B5B,oFAAoF;IACpF,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,SAAS;IAiBjB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;CAkOxB;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,iBAAiB;IAChD,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAG1C"}
|