@plurnk/plurnk 0.31.0 → 0.38.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/README.md +20 -6
- package/dist/cli.d.ts +19 -9
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +104 -40
- package/dist/cli.js.map +1 -1
- package/dist/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +115 -27
- package/dist/dispatcher.js.map +1 -1
- package/dist/proposal.d.ts +4 -1
- package/dist/proposal.d.ts.map +1 -1
- package/dist/proposal.js +35 -16
- package/dist/proposal.js.map +1 -1
- package/dist/render.js +1 -1
- package/dist/render.js.map +1 -1
- package/dist/subcommands.d.ts +4 -0
- package/dist/subcommands.d.ts.map +1 -1
- package/dist/subcommands.js +58 -1
- package/dist/subcommands.js.map +1 -1
- package/dist/telemetry.js +4 -4
- package/dist/telemetry.js.map +1 -1
- package/dist/tui.d.ts +5 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +237 -58
- package/dist/tui.js.map +1 -1
- package/package.json +44 -40
package/dist/tui.js
CHANGED
|
@@ -18,24 +18,29 @@ import { isAbsolute, resolve } from "node:path";
|
|
|
18
18
|
import PasteFilter from "./paste.js";
|
|
19
19
|
import { pathPartial, completePath, dslOpPartial, completeOps } from "./completion.js";
|
|
20
20
|
import { renderLogEntry, renderSummary, isPromptEntry, coordLabel } from "./render.js";
|
|
21
|
-
import {
|
|
21
|
+
import { renderProposalMenu, keyToResolution, isServerResolved, isBroadcastProposal } from "./proposal.js";
|
|
22
22
|
import { renderTelemetryEvent, report, clientSubcommandUnknownVerb } from "./telemetry.js";
|
|
23
23
|
import StreamTrace, { inlineable, renderInline } from "./stream.js";
|
|
24
24
|
import { runModels, runSessionList, runSessionRuns, runLogRead } from "./subcommands.js";
|
|
25
25
|
// One verb vocabulary across nvim's :AI/, the TUI, and (where they exist)
|
|
26
26
|
// the argv subcommands. Convergence is policy: divergence needs a reason.
|
|
27
|
+
// Singular = CREATE, plural = LIST: /session makes a new session, /sessions
|
|
28
|
+
// lists them; /run forks a new run, /runs lists them. The old /new was
|
|
29
|
+
// ambiguous (session or run?) and is gone. /rename retargets the current
|
|
30
|
+
// session's mutable handle (a run's name is immutable — no /rename for runs).
|
|
27
31
|
export const VERBS = [
|
|
28
32
|
"help", "models", "sessions", "runs", "log", "model",
|
|
29
|
-
"yolo", "
|
|
33
|
+
"yolo", "session", "rename", "run", "stop", "quit",
|
|
30
34
|
"pick", "hide", "view", "repo", "drop", "members", "import",
|
|
35
|
+
"accept", "reject", "cancel", "edit",
|
|
31
36
|
];
|
|
32
37
|
export const TUI_HELP = [
|
|
33
38
|
" /models /sessions /runs /log [n] inspect (same tables as the CLI)",
|
|
34
39
|
" /model <alias> model for subsequent loops",
|
|
35
40
|
" /yolo toggle local auto-accept",
|
|
36
|
-
" /
|
|
41
|
+
" /session [name] new session (a fresh world)",
|
|
37
42
|
" /rename <name> rename this session (a mutable handle)",
|
|
38
|
-
" /
|
|
43
|
+
" /run [name] new run (branch this conversation)",
|
|
39
44
|
" /pick <glob> membership: admit files git misses",
|
|
40
45
|
" /hide <glob> membership: drop a tracked match",
|
|
41
46
|
" /view <glob> membership: admit read-only",
|
|
@@ -43,10 +48,13 @@ export const TUI_HELP = [
|
|
|
43
48
|
" /drop <glob> membership: remove a constraint",
|
|
44
49
|
" /members the model's resolved file universe (+ rules)",
|
|
45
50
|
" /import <path> dump a local file's content into the prompt",
|
|
51
|
+
" /accept /reject /cancel /edit resolve a pending proposal (or keys a/e/r/c)",
|
|
46
52
|
" /stop cancel the running loop",
|
|
47
53
|
" /quit exit",
|
|
48
54
|
" << raw DSL ! cmd (exec) ... inject ? ask : act",
|
|
49
55
|
" Ctrl-J / Alt-Enter insert a ↵ newline (editable); Enter submits",
|
|
56
|
+
" Alt-m/s · Alt-R/L/Y/N/M · Alt-x quick verbs (nvim case): models sessions runs",
|
|
57
|
+
" log yolo session members stop · Alt-h help",
|
|
50
58
|
].join("\n") + "\n";
|
|
51
59
|
// The non-submitting newline keys, by their raw byte sequence (post paste
|
|
52
60
|
// filter): Ctrl-J is LF (`\n`, a distinct byte from Enter's CR — works on every
|
|
@@ -62,6 +70,24 @@ export const isNewlineKey = (forward) => forward === "\n" || forward === "\x1b\r
|
|
|
62
70
|
// untouched.
|
|
63
71
|
export const NL_MARK = "↵";
|
|
64
72
|
export const expandNewlines = (line) => line.replaceAll(NL_MARK, "\n");
|
|
73
|
+
// Muscle-memory quick-keys, converged with plurnk.nvim's `<leader>a<letter>`
|
|
74
|
+
// mnemonics — SAME CASE as nvim (lowercase m/s/x, capital R/L/Y/N/M), which
|
|
75
|
+
// Alt-<letter> can carry (Alt-m = `ESC m`, Alt-M = `ESC M` — distinct bytes).
|
|
76
|
+
// Delivered as Alt not Ctrl because Ctrl-<letter> collides with terminal/
|
|
77
|
+
// readline control codes: Ctrl-m IS Enter, Ctrl-Shift-m is ALSO Enter (Shift
|
|
78
|
+
// doesn't change a control code), Ctrl-s is XOFF, Ctrl-i is Tab, and readline
|
|
79
|
+
// owns a/e/n/p/u/w/k/l. Alt-b/f/d are skipped (readline word-ops).
|
|
80
|
+
export const ALT_SHORTCUTS = Object.freeze({
|
|
81
|
+
m: "/models", s: "/sessions", R: "/runs", L: "/log",
|
|
82
|
+
Y: "/yolo", N: "/session", M: "/members", x: "/stop", h: "/help",
|
|
83
|
+
});
|
|
84
|
+
// An Alt-<letter> keypress (ESC then a single letter, no `[`/`O` → not an arrow
|
|
85
|
+
// or function key) mapped to its verb, or null. Case-sensitive (mirrors nvim).
|
|
86
|
+
// Reassembled by the paste filter whether it arrives in one chunk or split.
|
|
87
|
+
export const altShortcut = (forward) => {
|
|
88
|
+
const m = forward.match(/^\x1b([a-zA-Z])$/);
|
|
89
|
+
return m ? (ALT_SHORTCUTS[m[1]] ?? null) : null;
|
|
90
|
+
};
|
|
65
91
|
export const parseSlash = (line) => {
|
|
66
92
|
const m = line.match(/^\/(\S*)\s*(.*)$/);
|
|
67
93
|
return { verb: m?.[1] ?? "", rest: (m?.[2] ?? "").trim() };
|
|
@@ -112,7 +138,8 @@ export const seedPromptHistory = async (rpc, sessionId, rl) => {
|
|
|
112
138
|
export const buildHeader = (opts) => {
|
|
113
139
|
const head = opts.versionNotice ?? "plurnk";
|
|
114
140
|
const modelLabel = opts.modelAlias ?? opts.activeAlias ?? "(daemon default)";
|
|
115
|
-
|
|
141
|
+
const yolo = opts.yolo ? " · yolo: on" : "";
|
|
142
|
+
return `${head} · session: ${opts.sessionName} · model: ${modelLabel}${yolo} · /help`;
|
|
116
143
|
};
|
|
117
144
|
export const handleVerb = async (line, ctx) => {
|
|
118
145
|
const { verb, rest } = parseSlash(line);
|
|
@@ -149,15 +176,17 @@ export const handleVerb = async (line, ctx) => {
|
|
|
149
176
|
opts.yolo = !opts.yolo;
|
|
150
177
|
write(` yolo: ${opts.yolo ? "ON" : "OFF"}\n`);
|
|
151
178
|
return;
|
|
152
|
-
case "
|
|
153
|
-
// Rebind in place (service
|
|
179
|
+
case "session": {
|
|
180
|
+
// New session — a fresh world. Rebind in place (service
|
|
181
|
+
// §13.5-rebind), no reconnect. Name is optional (auto-named if
|
|
182
|
+
// omitted) and is a mutable handle (/rename retargets it later).
|
|
154
183
|
const params = {};
|
|
155
184
|
if (rest.length > 0)
|
|
156
185
|
params.name = rest;
|
|
157
186
|
if (opts.projectRoot !== undefined)
|
|
158
187
|
params.projectRoot = opts.projectRoot;
|
|
159
188
|
ctx.setSession(await rpc.call("session.create", params));
|
|
160
|
-
write(` session: ${ctx.getSession().name}\n`);
|
|
189
|
+
write(` session: ${ctx.getSession().name} (new)\n`);
|
|
161
190
|
return;
|
|
162
191
|
}
|
|
163
192
|
case "rename": {
|
|
@@ -172,13 +201,13 @@ export const handleVerb = async (line, ctx) => {
|
|
|
172
201
|
write(` session: ${renamed.name}\n`);
|
|
173
202
|
return;
|
|
174
203
|
}
|
|
175
|
-
case "
|
|
176
|
-
// run.fork (svc#248)
|
|
177
|
-
//
|
|
178
|
-
//
|
|
204
|
+
case "run": {
|
|
205
|
+
// New run — run.fork (svc#248) branches this conversation, optionally
|
|
206
|
+
// named at instantiation (immutable after). Bind to the fork so the
|
|
207
|
+
// next prompt speaks there. The session (the world) is unchanged.
|
|
179
208
|
const forked = await rpc.call("run.fork", rest.length > 0 ? { name: rest } : {});
|
|
180
209
|
await rpc.call("session.attach", { id: ctx.getSession().id, runId: forked.runId });
|
|
181
|
-
write(`
|
|
210
|
+
write(` run: ${forked.runName} (new)\n`);
|
|
182
211
|
return;
|
|
183
212
|
}
|
|
184
213
|
case "pick":
|
|
@@ -252,6 +281,13 @@ export const handleVerb = async (line, ctx) => {
|
|
|
252
281
|
}
|
|
253
282
|
await ctx.importFile(rest);
|
|
254
283
|
return;
|
|
284
|
+
case "accept":
|
|
285
|
+
case "reject":
|
|
286
|
+
case "cancel":
|
|
287
|
+
case "edit":
|
|
288
|
+
// Typed no-modifier fallback for the a/e/r/c proposal review keys.
|
|
289
|
+
await ctx.resolveProposal(verb);
|
|
290
|
+
return;
|
|
255
291
|
case "stop":
|
|
256
292
|
await rpc.call("loop.cancel", { reason: "user_stop" });
|
|
257
293
|
return;
|
|
@@ -266,9 +302,20 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
266
302
|
let current = session;
|
|
267
303
|
// Highest loop_seq the waterfall has shown — the next prompt is one beyond.
|
|
268
304
|
let lastLoopSeq = 0;
|
|
269
|
-
//
|
|
270
|
-
//
|
|
271
|
-
|
|
305
|
+
// Loop state, hoisted so buildPrompt can show a steer prompt while a loop
|
|
306
|
+
// runs and the line handler / SIGINT can share it.
|
|
307
|
+
let inFlight = false;
|
|
308
|
+
let cancelRequested = false;
|
|
309
|
+
// Print a line ABOVE the live readline prompt without eating the user's
|
|
310
|
+
// in-progress input. The canonical "log while prompting" idiom: wipe the
|
|
311
|
+
// prompt row, write the line, then re-render the prompt + current buffer on
|
|
312
|
+
// the row below (rl.prompt(true) preserves what's typed). This is what lets a
|
|
313
|
+
// loop stream traces AND keep a steer prompt the user can inject into — no
|
|
314
|
+
// cursor/width math, readline owns the redraw. Reassigned to the real impl
|
|
315
|
+
// once rl exists; until then (no loop can be running yet) it just appends.
|
|
316
|
+
let printAbove = (text) => { process.stdout.write(`${text}\n`); };
|
|
317
|
+
// Subscribe to log/entry notifications — render each as a waterfall line,
|
|
318
|
+
// printed above the prompt so a running loop's trace never clobbers it.
|
|
272
319
|
rpc.onNotification("log/entry", (params) => {
|
|
273
320
|
const p = params;
|
|
274
321
|
if (p.entry.loop_seq > lastLoopSeq)
|
|
@@ -277,12 +324,12 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
277
324
|
// prompt broadcast too would duplicate it (see isPromptEntry).
|
|
278
325
|
if (isPromptEntry(p.entry))
|
|
279
326
|
return;
|
|
280
|
-
|
|
327
|
+
printAbove(renderLogEntry(p.entry));
|
|
281
328
|
});
|
|
282
329
|
// telemetry/event — interleaved with the trace waterfall.
|
|
283
330
|
rpc.onNotification("telemetry/event", (params) => {
|
|
284
331
|
const p = params;
|
|
285
|
-
|
|
332
|
+
printAbove(renderTelemetryEvent(p.event));
|
|
286
333
|
});
|
|
287
334
|
// Streams, coalesced: one start line, one conclusion line, and tiny
|
|
288
335
|
// concluded outputs inlined (the single bounded content fetch the TUI
|
|
@@ -291,17 +338,17 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
291
338
|
rpc.onNotification("stream/event", (params) => {
|
|
292
339
|
const line = streams.event(params);
|
|
293
340
|
if (line !== null)
|
|
294
|
-
|
|
341
|
+
printAbove(line);
|
|
295
342
|
});
|
|
296
343
|
rpc.onNotification("stream/concluded", (params) => {
|
|
297
344
|
const p = params;
|
|
298
|
-
|
|
345
|
+
printAbove(streams.concluded(p));
|
|
299
346
|
void rpc.call("entry.read", { target: p.target }).then((r) => {
|
|
300
347
|
const channels = r.entry?.channels ?? {};
|
|
301
348
|
for (const name of ["stdout", "stderr"]) {
|
|
302
349
|
const content = channels[name]?.content;
|
|
303
350
|
if (typeof content === "string" && inlineable(content)) {
|
|
304
|
-
|
|
351
|
+
printAbove(renderInline(name, content));
|
|
305
352
|
}
|
|
306
353
|
}
|
|
307
354
|
}).catch(() => { });
|
|
@@ -324,7 +371,7 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
324
371
|
// One header line: version · session · model · help (see buildHeader).
|
|
325
372
|
const header = buildHeader({
|
|
326
373
|
versionNotice: opts.versionNotice, sessionName: current.name,
|
|
327
|
-
modelAlias: opts.modelAlias, activeAlias,
|
|
374
|
+
modelAlias: opts.modelAlias, activeAlias, yolo: opts.yolo,
|
|
328
375
|
});
|
|
329
376
|
process.stdout.write(`\x1b[2m${header}\x1b[0m\n\n`);
|
|
330
377
|
// The prompt is the user's row, restricted to WIDTH-STABLE glyphs —
|
|
@@ -334,8 +381,9 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
334
381
|
// repositions the cursor at its own computed width on every
|
|
335
382
|
// history-nav/backspace/completion refresh, so the disagreement shows
|
|
336
383
|
// as text shift. Round 2 (bare ` : `) fixed the drift but destroyed
|
|
337
|
-
// the row identity.
|
|
338
|
-
//
|
|
384
|
+
// the row identity. 🐹 (U+1F439, the brand head — was the generic 👤
|
|
385
|
+
// U+1F464) and ✅ (U+2705) are plain East-Asian-Wide single code points —
|
|
386
|
+
// width 2 in node AND every major terminal, no VS16 — so they stay; the
|
|
339
387
|
// 201 is the contract constant (the prompt row is always a 201 EDIT);
|
|
340
388
|
// 💬 (U+1F4AC, stable-wide) fills the op slot the toxic ✉️ vacated.
|
|
341
389
|
// Policy: VS16/ambiguous glyphs are banned from the ENTIRE palette
|
|
@@ -345,7 +393,17 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
345
393
|
// get: the prompt becomes the next loop's foist EDIT at <next>/01/01.
|
|
346
394
|
// lastLoopSeq tracks the highest loop the waterfall has shown; the next
|
|
347
395
|
// prompt is one beyond it. Plain-ASCII coordinate — width-safe.
|
|
348
|
-
|
|
396
|
+
// While a loop runs, the prompt becomes a dim steer line: a stable row the
|
|
397
|
+
// user can type into to inject (loop.inject, #193) — kept alive above the
|
|
398
|
+
// streaming traces by printAbove. Idle, it's the user's 201 EDIT row, with a
|
|
399
|
+
// `yolo` badge when local auto-accept is on (plain ASCII — width-deterministic,
|
|
400
|
+
// unlike the VS16 glyphs banned from this row).
|
|
401
|
+
const buildPrompt = () => {
|
|
402
|
+
if (inFlight)
|
|
403
|
+
return ` \x1b[2m… steer (loop running; Enter injects):\x1b[0m `;
|
|
404
|
+
const yolo = opts.yolo ? "\x1b[1;33myolo\x1b[0m " : "";
|
|
405
|
+
return ` ${yolo}${coordLabel(lastLoopSeq + 1, 1, 1)}🐹 💬 ✅ \x1b[32m201\x1b[0m \x1b[1m: \x1b[0m`;
|
|
406
|
+
};
|
|
349
407
|
// Bracketed-paste buffering (paste.ts): a multi-line paste must become ONE
|
|
350
408
|
// prompt, not one loop.run per line. readline reads a PassThrough we feed
|
|
351
409
|
// filtered stdin into; since the input is no longer the TTY directly, raw
|
|
@@ -362,7 +420,19 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
362
420
|
prompt: buildPrompt(),
|
|
363
421
|
completer: makeCompleter(() => aliasCache, process.cwd()),
|
|
364
422
|
});
|
|
365
|
-
const reprompt = () => {
|
|
423
|
+
const reprompt = () => {
|
|
424
|
+
readline.cursorTo(process.stdout, 0);
|
|
425
|
+
readline.clearLine(process.stdout, 0);
|
|
426
|
+
rl.setPrompt(buildPrompt());
|
|
427
|
+
rl.prompt();
|
|
428
|
+
};
|
|
429
|
+
// Now that rl exists, printAbove can re-render the prompt after each line.
|
|
430
|
+
printAbove = (text) => {
|
|
431
|
+
readline.cursorTo(process.stdout, 0);
|
|
432
|
+
readline.clearLine(process.stdout, 0);
|
|
433
|
+
process.stdout.write(`${text}\n`);
|
|
434
|
+
rl.prompt(true);
|
|
435
|
+
};
|
|
366
436
|
// Multi-line composition. The non-submitting newline keys insert a single ↵
|
|
367
437
|
// marker into readline's ONE line; Enter submits, expanding ↵→\n. Keeping it
|
|
368
438
|
// one readline line means backspace/arrows/history edit across newlines
|
|
@@ -373,41 +443,117 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
373
443
|
// (paste.ts feeds readline a PassThrough) is where we catch the keys, so the
|
|
374
444
|
// suppressed bytes never reach readline — which would otherwise submit on
|
|
375
445
|
// `\n`. Each interactive keypress is its own chunk, so an exact match holds.
|
|
446
|
+
// onStdin is the single keyboard dispatcher: pending-proposal key, paste,
|
|
447
|
+
// the newline keys, the Alt-shortcuts, else readline. The proposal/shortcut
|
|
448
|
+
// handlers are forward-declared (assigned once verbCtx exists).
|
|
449
|
+
let pendingProposal = null;
|
|
450
|
+
let onProposalKey = () => { };
|
|
451
|
+
let dispatchShortcut = () => { };
|
|
376
452
|
const onStdin = (chunk) => {
|
|
377
453
|
const forward = paste.feed(chunk.toString("utf8"));
|
|
378
454
|
if (forward.length === 0)
|
|
379
455
|
return;
|
|
456
|
+
// A pending proposal + an EMPTY prompt line: a single review key
|
|
457
|
+
// (a/e/r/c) resolves it. Anything else — including typing `/accept` —
|
|
458
|
+
// falls through to readline, so the no-modifier verb fallback works.
|
|
459
|
+
if (pendingProposal !== null && rl.line.length === 0 && /^[aerc]$/i.test(forward)) {
|
|
460
|
+
onProposalKey(forward);
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
380
463
|
if (isNewlineKey(forward)) {
|
|
381
464
|
rl.write(NL_MARK);
|
|
382
465
|
return;
|
|
383
466
|
}
|
|
467
|
+
const verb = altShortcut(forward);
|
|
468
|
+
if (verb !== null) {
|
|
469
|
+
dispatchShortcut(verb);
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
384
472
|
input.write(forward);
|
|
385
473
|
};
|
|
386
474
|
process.stdin.on("data", onStdin);
|
|
387
475
|
// Cross-restart up/down history from the daemon (svc#238) — non-blocking.
|
|
388
476
|
void seedPromptHistory(rpc, current.id, rl);
|
|
389
|
-
// Proposal lifecycle
|
|
390
|
-
// settle in-process
|
|
391
|
-
//
|
|
477
|
+
// Proposal lifecycle — NON-BLOCKING. Server-resolved (flags.yolo/noProposals)
|
|
478
|
+
// settle in-process → skip. --yolo auto-accepts. A broadcast SEND (model
|
|
479
|
+
// speech/park — no target) is not reviewable → auto-accept (svc#255). A real
|
|
480
|
+
// proposal renders its menu and parks as `pendingProposal` (queue beyond),
|
|
481
|
+
// WITHOUT pausing readline or grabbing stdin: resolve via a single key
|
|
482
|
+
// (onStdin, above) OR the typed `/accept`/`/reject`/`/cancel`/`/edit` verbs.
|
|
483
|
+
// Only the `$EDITOR` path hands the terminal off — and only for its spawn.
|
|
484
|
+
const proposalQueue = [];
|
|
485
|
+
const showNextProposal = () => {
|
|
486
|
+
if (pendingProposal !== null || proposalQueue.length === 0)
|
|
487
|
+
return;
|
|
488
|
+
pendingProposal = proposalQueue.shift();
|
|
489
|
+
process.stdout.write(`\r\x1b[2K${renderProposalMenu(pendingProposal)}\n`
|
|
490
|
+
+ `\x1b[2m resolve: a/e/r/c or /accept /reject /cancel /edit\x1b[0m\n`);
|
|
491
|
+
reprompt();
|
|
492
|
+
};
|
|
493
|
+
const resolvePending = async (resolution) => {
|
|
494
|
+
const p = pendingProposal;
|
|
495
|
+
if (p === null)
|
|
496
|
+
return;
|
|
497
|
+
pendingProposal = null;
|
|
498
|
+
try {
|
|
499
|
+
await rpc.call("loop.resolve", { logEntryId: p.logEntryId, ...resolution });
|
|
500
|
+
}
|
|
501
|
+
catch (cause) {
|
|
502
|
+
process.stdout.write(` \x1b[31mresolve failed: ${cause instanceof Error ? cause.message : String(cause)}\x1b[0m\n`);
|
|
503
|
+
}
|
|
504
|
+
showNextProposal();
|
|
505
|
+
reprompt();
|
|
506
|
+
};
|
|
507
|
+
// `e`/`/edit` → $EDITOR. It needs the terminal: detach onStdin + raw-off for
|
|
508
|
+
// the spawn, restore after. The ONE place the non-blocking design still hands
|
|
509
|
+
// off — bounded to the editor's lifetime.
|
|
510
|
+
const editAndResolve = async () => {
|
|
511
|
+
const p = pendingProposal;
|
|
512
|
+
if (p === null)
|
|
513
|
+
return;
|
|
514
|
+
process.stdin.off("data", onStdin);
|
|
515
|
+
process.stdin.setRawMode?.(false);
|
|
516
|
+
let resolution;
|
|
517
|
+
try {
|
|
518
|
+
resolution = (await keyToResolution("e", p)) ?? { decision: "cancel", outcome: "edit_failed" };
|
|
519
|
+
}
|
|
520
|
+
catch (cause) {
|
|
521
|
+
process.stdout.write(` \x1b[31medit failed: ${cause instanceof Error ? cause.message : String(cause)}\x1b[0m\n`);
|
|
522
|
+
resolution = { decision: "cancel", outcome: "edit_error" };
|
|
523
|
+
}
|
|
524
|
+
finally {
|
|
525
|
+
process.stdin.setRawMode?.(true);
|
|
526
|
+
process.stdin.resume();
|
|
527
|
+
process.stdin.on("data", onStdin);
|
|
528
|
+
}
|
|
529
|
+
await resolvePending(resolution);
|
|
530
|
+
};
|
|
531
|
+
// Single review key (from onStdin): a/r/c resolve directly, e edits.
|
|
532
|
+
onProposalKey = (key) => {
|
|
533
|
+
if (key.toLowerCase() === "e") {
|
|
534
|
+
void editAndResolve();
|
|
535
|
+
return;
|
|
536
|
+
}
|
|
537
|
+
void keyToResolution(key, pendingProposal)
|
|
538
|
+
.then((r) => { if (r !== null)
|
|
539
|
+
return resolvePending(r); });
|
|
540
|
+
};
|
|
392
541
|
rpc.onNotification("loop/proposal", (params) => {
|
|
393
542
|
const p = params;
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
rl.prompt(true);
|
|
409
|
-
}
|
|
410
|
-
})();
|
|
543
|
+
if (isServerResolved(p))
|
|
544
|
+
return;
|
|
545
|
+
if (isBroadcastProposal(p)) {
|
|
546
|
+
void rpc.call("loop.resolve", { logEntryId: p.logEntryId, decision: "accept", outcome: "broadcast" })
|
|
547
|
+
.catch(() => { });
|
|
548
|
+
return;
|
|
549
|
+
}
|
|
550
|
+
if (opts.yolo) {
|
|
551
|
+
void rpc.call("loop.resolve", { logEntryId: p.logEntryId, decision: "accept", outcome: "client_yolo" })
|
|
552
|
+
.catch(() => { });
|
|
553
|
+
return;
|
|
554
|
+
}
|
|
555
|
+
proposalQueue.push(p);
|
|
556
|
+
showNextProposal();
|
|
411
557
|
});
|
|
412
558
|
// Verb dispatch runs through the testable module-level handleVerb; this
|
|
413
559
|
// context injects the live session / opts / stdout / import glue.
|
|
@@ -428,11 +574,38 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
428
574
|
}
|
|
429
575
|
rl.write(paste.stash(content));
|
|
430
576
|
},
|
|
577
|
+
resolveProposal: async (action) => {
|
|
578
|
+
if (pendingProposal === null) {
|
|
579
|
+
process.stdout.write(" (no pending proposal)\n");
|
|
580
|
+
return;
|
|
581
|
+
}
|
|
582
|
+
if (action === "edit") {
|
|
583
|
+
await editAndResolve();
|
|
584
|
+
return;
|
|
585
|
+
}
|
|
586
|
+
await resolvePending({ decision: action });
|
|
587
|
+
},
|
|
588
|
+
};
|
|
589
|
+
// Alt-<letter> shortcut → run the verb. Wipe the prompt line, dispatch
|
|
590
|
+
// through the same handleVerb the typed `/verb` uses (the partial prompt in
|
|
591
|
+
// readline's buffer survives), then reprompt. Print-above pattern; no math.
|
|
592
|
+
dispatchShortcut = (verb) => {
|
|
593
|
+
process.stdout.write("\r\x1b[2K");
|
|
594
|
+
void (async () => {
|
|
595
|
+
try {
|
|
596
|
+
if (await handleVerb(verb, verbCtx) === "quit") {
|
|
597
|
+
rl.close();
|
|
598
|
+
return;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
catch (cause) {
|
|
602
|
+
process.stdout.write(` \x1b[31merror: ${cause instanceof Error ? cause.message : String(cause)}\x1b[0m\n`);
|
|
603
|
+
}
|
|
604
|
+
reprompt();
|
|
605
|
+
})();
|
|
431
606
|
};
|
|
432
607
|
reprompt();
|
|
433
608
|
return new Promise((resolve) => {
|
|
434
|
-
let inFlight = false;
|
|
435
|
-
let cancelRequested = false;
|
|
436
609
|
rl.on("line", async (line) => {
|
|
437
610
|
// Expand typed ↵ markers (Ctrl-J / Alt-Enter newlines) FIRST, then
|
|
438
611
|
// paste markers — so a pasted literal ↵ stays literal.
|
|
@@ -445,9 +618,11 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
445
618
|
// flight — /stop is precisely the mid-loop verb.
|
|
446
619
|
if (trimmed.startsWith("/")) {
|
|
447
620
|
const { verb } = parseSlash(trimmed);
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
621
|
+
// /stop, /help, and the proposal verbs stay reachable mid-loop —
|
|
622
|
+
// a proposal pauses the loop and must be resolvable by typing.
|
|
623
|
+
const PASS = new Set(["stop", "help", "", "accept", "reject", "cancel", "edit"]);
|
|
624
|
+
if (inFlight && !PASS.has(verb)) {
|
|
625
|
+
printAbove(" \x1b[2m(busy; /stop to cancel, /help for the language)\x1b[0m");
|
|
451
626
|
return;
|
|
452
627
|
}
|
|
453
628
|
try {
|
|
@@ -469,18 +644,21 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
469
644
|
// into the live loop. (Raw DSL / exec are separate client-run
|
|
470
645
|
// ops; keep them out of a running conversation for now.)
|
|
471
646
|
if (trimmed.startsWith("<<") || trimmed.startsWith("!")) {
|
|
472
|
-
|
|
473
|
-
reprompt();
|
|
647
|
+
printAbove(" \x1b[2m(loop running — /stop before a client op)\x1b[0m");
|
|
474
648
|
return;
|
|
475
649
|
}
|
|
476
650
|
const inject = trimmed.replace(/^(\.\.\.|[?:])\s*/, "");
|
|
477
651
|
void rpc.call("loop.inject", { prompt: inject })
|
|
478
|
-
.then(() =>
|
|
479
|
-
.catch((cause) =>
|
|
652
|
+
.then(() => printAbove(" \x1b[2m↳ injected\x1b[0m"))
|
|
653
|
+
.catch((cause) => printAbove(` \x1b[31minject failed: ${cause instanceof Error ? cause.message : String(cause)}\x1b[0m`));
|
|
480
654
|
reprompt();
|
|
481
655
|
return;
|
|
482
656
|
}
|
|
483
657
|
inFlight = true;
|
|
658
|
+
// Surface a live steer prompt for the duration of the loop, so the
|
|
659
|
+
// user has a stable row to type an inject into (the traces print
|
|
660
|
+
// above it). buildPrompt switches to its steer form while inFlight.
|
|
661
|
+
reprompt();
|
|
484
662
|
const start = Date.now();
|
|
485
663
|
let turnCount = 0;
|
|
486
664
|
let finalStatus = 0;
|
|
@@ -522,11 +700,11 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
522
700
|
usage = result.usage;
|
|
523
701
|
}
|
|
524
702
|
const wallMs = Date.now() - start;
|
|
525
|
-
|
|
703
|
+
printAbove(renderSummary(turnCount, wallMs, finalStatus, hitMaxTurns, usage));
|
|
526
704
|
}
|
|
527
705
|
catch (cause) {
|
|
528
706
|
const msg = cause instanceof Error ? cause.message : String(cause);
|
|
529
|
-
|
|
707
|
+
printAbove(` \x1b[31merror: ${msg}\x1b[0m`);
|
|
530
708
|
}
|
|
531
709
|
finally {
|
|
532
710
|
inFlight = false;
|
|
@@ -538,7 +716,8 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
538
716
|
process.stdout.write("\x1b[?2004l");
|
|
539
717
|
process.stdin.off("data", onStdin);
|
|
540
718
|
process.stdin.setRawMode?.(false);
|
|
541
|
-
|
|
719
|
+
// Steal pi's nicety: hand back the one-liner to pick this session up.
|
|
720
|
+
process.stdout.write(`\n \x1b[2mresume this session: plurnk --session ${current.name}\x1b[0m\n`);
|
|
542
721
|
resolve();
|
|
543
722
|
});
|
|
544
723
|
rl.on("SIGINT", () => {
|
package/dist/tui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,iBAAiB;AACjB,EAAE;AACF,6EAA6E;AAC7E,kEAAkE;AAClE,4BAA4B;AAC5B,0CAA0C;AAC1C,oEAAoE;AACpE,wDAAwD;AACxD,qCAAqC;AACrC,0BAA0B;AAC1B,uEAAuE;AACvE,yEAAyE;AAEzE,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,WAAW,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEvF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGvF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE3F,OAAO,WAAW,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAYzF,0EAA0E;AAC1E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,KAAK,GAAG;IACjB,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IACpD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC/C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ;CACrD,CAAC;AAEX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,uEAAuE;IACvE,iEAAiE;IACjE,+DAA+D;IAC/D,+DAA+D;IAC/D,6EAA6E;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,uEAAuE;IACvE,kEAAkE;IAClE,4EAA4E;IAC5E,sEAAsE;IACtE,mFAAmF;IACnF,kFAAkF;IAClF,8DAA8D;IAC9D,2CAA2C;IAC3C,8DAA8D;IAC9D,mFAAmF;CACtF,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEpB,0EAA0E;AAC1E,gFAAgF;AAChF,2EAA2E;AAC3E,gFAAgF;AAChF,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAW,EAAE,CACrD,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,CAAC;AAErE,gFAAgF;AAChF,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,aAAa;AACb,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC;AAC3B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAkC,EAAE;IACvE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AAC/D,CAAC,CAAC;AAEF,uEAAuE;AACvE,uEAAuE;AACvE,2EAA2E;AAC3E,4EAA4E;AAC5E,oCAAoC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAA0B,EAAE,GAAW,EAAE,EAAE,CACrE,CAAC,IAAY,EAAE,QAAyD,EAAQ,EAAE;IAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,QAAQ,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACpF,OAAO;IACX,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAClD,IAAI,SAAS,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,OAAO;IACX,CAAC;IACD,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,OAAO;IACX,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACnB,KAAK,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACzE,OAAO;IACX,CAAC;IACD,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEN,8EAA8E;AAC9E,2EAA2E;AAC3E,gFAAgF;AAChF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAQ,EAAE,SAAiB,EAAE,EAAsB,EAAiB,EAAE;IAC1G,IAAI,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAA2B,CAAC;QAC/G,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAG,EAAuC,CAAC,OAAO,GAAG,OAAO,CAAC;IACjH,CAAC;IAAC,MAAM,CAAC,CAAC,oDAAoD,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,6EAA6E;AAC7E,qEAAqE;AACrE,kEAAkE;AAClE,sDAAsD;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAE3B,EAAU,EAAE;IACT,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,IAAI,kBAAkB,CAAC;IAC7E,OAAO,GAAG,IAAI,eAAe,IAAI,CAAC,WAAW,aAAa,UAAU,UAAU,CAAC;AACnF,CAAC,CAAC;AAcF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,GAAgB,EAA+B,EAAE;IAC5F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACjC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,KAAK,MAAM;YACP,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChB,OAAO;QACX,KAAK,QAAQ;YAAE,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,OAAO;QAC7D,KAAK,UAAU;YAAE,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,OAAO;QACpE,KAAK,MAAM;YAAE,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,OAAO;QACvF,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAK,KAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnG,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAChD,OAAO;QACX,CAAC;QACD,KAAK,OAAO;YACR,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,KAAK,CAAC,YAAY,IAAI,CAAC,UAAU,IAAI,kBAAkB,IAAI,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAChG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;YAC5B,OAAO;QACX,KAAK,MAAM;YACP,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACvB,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAC/C,OAAO;QACX,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,yDAAyD;YACzD,MAAM,MAAM,GAAmD,EAAE,CAAC;YAClE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACxC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1E,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAkB,CAAC,CAAC;YAC1E,KAAK,CAAC,cAAc,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;YAC/C,OAAO;QACX,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,qEAAqE;YACrE,oEAAoE;YACpE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACtE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAkB,CAAC;YAClF,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACxB,KAAK,CAAC,cAAc,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;YACtC,OAAO;QACX,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,gEAAgE;YAChE,mEAAmE;YACnE,kEAAkE;YAClE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAuC,CAAC;YACvH,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACnF,KAAK,CAAC,cAAc,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;YACxC,OAAO;QACX,CAAC;QACD,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,mEAAmE;YACnE,+DAA+D;YAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,KAAK,CAAC,aAAa,IAAI,WAAW,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACvE,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,KAAK,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC;YAC9B,OAAO;QACX,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACpE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAA6D,CAAC;YAC1H,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAClG,KAAK,MAAM,CAAC,IAAI,OAAO;gBAAE,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;YAClE,KAAK,CAAC,aAAa,OAAO,CAAC,MAAM,cAAc,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC;YAC9F,OAAO;QACX,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACb,4DAA4D;YAC5D,mEAAmE;YACnE,kEAAkE;YAClE,kEAAkE;YAClE,gEAAgE;YAChE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAE3D,CAAC;YACF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9C,KAAK,CAAC,iFAAiF,CAAC,CAAC;YAC7F,CAAC;iBAAM,CAAC;gBACJ,KAAK,CAAC,2BAA2B,OAAO,CAAC,MAAM,QAAQ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;sBAClF,MAAM,QAAQ,CAAC,MAAM,cAAc,IAAI,CAAC,MAAM,YAAY;sBAC1D,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC/D,KAAK,MAAM,CAAC,IAAI,IAAI;oBAAE,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;gBACrD,KAAK,MAAM,CAAC,IAAI,MAAM;oBAAE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE;oBAAE,KAAK,MAAM,CAAC,IAAI,QAAQ;wBAAE,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;;oBAC/E,KAAK,CAAC,cAAc,QAAQ,CAAC,MAAM,qDAAqD,CAAC,CAAC;YACnG,CAAC;YACD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAA6D,CAAC;YAC1H,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;gBAC1B,CAAC,CAAC,0CAA0C;gBAC5C,CAAC,CAAC,YAAY,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClF,OAAO;QACX,CAAC;QACD,KAAK,QAAQ;YACT,iEAAiE;YACjE,sEAAsE;YACtE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACtE,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO;QACX,KAAK,MAAM;YACP,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACvD,OAAO;QACX,KAAK,MAAM;YACP,OAAO,MAAM,CAAC;QAClB;YACI,MAAM,CAAC,2BAA2B,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,OAAO;IACf,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,GAAQ,EAAE,OAAsB,EAAE,IAI9D,EAAiB,EAAE;IAChB,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,4EAA4E;IAC5E,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,0EAA0E;IAC1E,4EAA4E;IAC5E,6EAA6E;IAC7E,GAAG,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,MAAiC,CAAC;QAC5C,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,WAAW;YAAE,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QACnE,oEAAoE;QACpE,+DAA+D;QAC/D,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,0DAA0D;IAC1D,GAAG,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC7C,MAAM,CAAC,GAAG,MAAmD,CAAC;QAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,oEAAoE;IACpE,sEAAsE;IACtE,8DAA8D;IAC9D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAA4B,CAAC,CAAC;QACzD,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC9C,MAAM,CAAC,GAAG,MAAgC,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3D,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACzD,MAAM,QAAQ,GAAI,CAA4E,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;YACrH,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;gBACxC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBACtE,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAA6B,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,yCAAyC;IACzC,IAAI,UAAU,GAAa,EAAE,CAAC;IAC9B,IAAI,WAA+B,CAAC;IACpC,IAAI,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAA6D,CAAC;QACvG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3C,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;QACzD,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,mEAAmE,CAAC,CAAC;IAE/E,uEAAuE;IACvE,MAAM,MAAM,GAAG,WAAW,CAAC;QACvB,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI;QAC5D,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW;KAC3C,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,aAAa,CAAC,CAAC;IAEpD,oEAAoE;IACpE,mEAAmE;IACnE,mEAAmE;IACnE,sEAAsE;IACtE,4DAA4D;IAC5D,sEAAsE;IACtE,qEAAqE;IACrE,sEAAsE;IACtE,sEAAsE;IACtE,sEAAsE;IACtE,oEAAoE;IACpE,mEAAmE;IACnE,gEAAgE;IAChE,qEAAqE;IACrE,uEAAuE;IACvE,sEAAsE;IACtE,wEAAwE;IACxE,gEAAgE;IAChE,MAAM,WAAW,GAAG,GAAW,EAAE,CAC7B,KAAK,UAAU,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,6CAA6C,CAAC;IACxF,2EAA2E;IAC3E,0EAA0E;IAC1E,0EAA0E;IAC1E,oEAAoE;IACpE,mEAAmE;IACnE,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAChC,KAAK;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,WAAW,EAAE;QACrB,SAAS,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC5D,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,GAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3E,4EAA4E;IAC5E,6EAA6E;IAC7E,wEAAwE;IACxE,uEAAuE;IACvE,yEAAyE;IACzE,4EAA4E;IAC5E,oEAAoE;IACpE,6EAA6E;IAC7E,0EAA0E;IAC1E,6EAA6E;IAC7E,MAAM,OAAO,GAAG,CAAC,KAAa,EAAQ,EAAE;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACzD,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,0EAA0E;IAC1E,KAAK,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAE5C,yEAAyE;IACzE,yEAAyE;IACzE,qCAAqC;IACrC,GAAG,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE;QAC3C,MAAM,CAAC,GAAG,MAAwB,CAAC;QACnC,KAAK,CAAC,KAAK,IAAI,EAAE;YACb,IAAI,gBAAgB,CAAC,CAAC,CAAC;gBAAE,OAAO;YAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;gBACzG,OAAO;YACX,CAAC;YACD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC;gBACD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;YAChF,CAAC;oBAAS,CAAC;gBACP,EAAE,CAAC,MAAM,EAAE,CAAC;gBACZ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,kEAAkE;IAClE,MAAM,OAAO,GAAgB;QACzB,GAAG,EAAE,IAAI;QACT,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO;QACzB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QACnC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChD,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;YACnE,IAAI,OAAe,CAAC;YACpB,IAAI,CAAC;gBAAC,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAAC,CAAC;YAC9C,OAAO,KAAK,EAAE,CAAC;gBAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC9H,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACnC,CAAC;KACJ,CAAC;IAEF,QAAQ,EAAE,CAAC;IAEX,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACjC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACzB,mEAAmE;YACnE,uDAAuD;YACvD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,QAAQ,EAAE,CAAC;gBACX,OAAO;YACX,CAAC;YAED,2DAA2D;YAC3D,iDAAiD;YACjD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBACrC,IAAI,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;oBAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;oBAC1F,QAAQ,EAAE,CAAC;oBACX,OAAO;gBACX,CAAC;gBACD,IAAI,CAAC;oBACD,IAAI,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;wBAAC,EAAE,CAAC,KAAK,EAAE,CAAC;wBAAC,OAAO;oBAAC,CAAC;gBAC9E,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,WAAW,CAAC,CAAC;gBAC7D,CAAC;gBACD,QAAQ,EAAE,CAAC;gBACX,OAAO;YACX,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACX,2DAA2D;gBAC3D,gEAAgE;gBAChE,8DAA8D;gBAC9D,yDAAyD;gBACzD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;oBACpF,QAAQ,EAAE,CAAC;oBACX,OAAO;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;gBACxD,KAAK,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;qBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;qBAChE,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC3I,QAAQ,EAAE,CAAC;gBACX,OAAO;YACX,CAAC;YAED,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,KAA6B,CAAC;YAElC,IAAI,CAAC;gBACD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3B,4BAA4B;oBAC5B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAA2C,CAAC;oBACvG,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;gBACzE,CAAC;qBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjC,yDAAyD;oBACzD,uDAAuD;oBACvD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAC9C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAuB,CAAC;oBAC5E,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACJ,yDAAyD;oBACzD,sDAAsD;oBACtD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;wBACnC,SAAS,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;oBACpF,CAAC;oBACD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;oBAC7D,MAAM,UAAU,GAA2F,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;oBAClI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;wBAAE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;oBACtE,IAAI,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;wBAAE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;oBAC/F,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;wBAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAkB,CAAC;oBACvE,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;oBACjC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;oBACjC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;oBAClC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBACzB,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;gBAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACnG,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,WAAW,CAAC,CAAC;YAC7D,CAAC;oBAAS,CAAC;gBACP,QAAQ,GAAG,KAAK,CAAC;gBACjB,eAAe,GAAG,KAAK,CAAC;gBACxB,QAAQ,EAAE,CAAC;YACf,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACjB,kEAAkE;YAClE,4DAA4D;YAC5D,iEAAiE;YACjE,0DAA0D;YAC1D,sDAAsD;YACtD,IAAI,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC/B,eAAe,GAAG,IAAI,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;gBACtF,KAAK,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;gBACxD,OAAO;YACX,CAAC;YACD,EAAE,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
|