@plurnk/plurnk 0.4.0 → 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/cli.d.ts +19 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +157 -9
- package/dist/cli.js.map +1 -1
- package/dist/dispatcher.d.ts +1 -0
- package/dist/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +74 -5
- package/dist/dispatcher.js.map +1 -1
- package/dist/proposal.d.ts +9 -0
- package/dist/proposal.d.ts.map +1 -1
- package/dist/proposal.js +5 -0
- package/dist/proposal.js.map +1 -1
- package/dist/render.d.ts +10 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +86 -18
- package/dist/render.js.map +1 -1
- package/dist/stream.d.ts +26 -0
- package/dist/stream.d.ts.map +1 -0
- package/dist/stream.js +79 -0
- package/dist/stream.js.map +1 -0
- package/dist/telemetry.d.ts +1 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +10 -0
- package/dist/telemetry.js.map +1 -1
- package/dist/tui.d.ts +10 -0
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +250 -18
- package/dist/tui.js.map +1 -1
- package/package.json +1 -1
package/dist/tui.js
CHANGED
|
@@ -1,35 +1,139 @@
|
|
|
1
1
|
// TUI mode — interactive REPL with glyph waterfall. Vanilla ANSI + readline.
|
|
2
2
|
// Per TUI.md §3.
|
|
3
|
+
//
|
|
4
|
+
// Line language (converged with plurnk.nvim — one vocabulary, two surfaces):
|
|
5
|
+
// /verb [args] command verbs (see VERBS); never call loop.run
|
|
6
|
+
// << raw DSL op.parse
|
|
7
|
+
// ! cmd op.exec via the daemon
|
|
8
|
+
// ? text ask — loop.run with flags.mode="ask"
|
|
9
|
+
// : text act (the default)
|
|
10
|
+
// text prompt
|
|
11
|
+
// The readline prompt is `: ` — it rhymes with nvim's cmdline; when an
|
|
12
|
+
// ask-default toggle exists (nvim first), the prompt char flips to `? `.
|
|
3
13
|
import readline from "node:readline";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
14
|
+
import { readFile } from "node:fs/promises";
|
|
15
|
+
import { isAbsolute, resolve } from "node:path";
|
|
16
|
+
import { renderLogEntry, renderSummary, isPromptEntry } from "./render.js";
|
|
17
|
+
import { reviewProposal, isServerResolved } from "./proposal.js";
|
|
18
|
+
import { renderTelemetryEvent, report, clientSubcommandUnknownVerb } from "./telemetry.js";
|
|
19
|
+
import StreamTrace, { inlineable, renderInline } from "./stream.js";
|
|
20
|
+
import { runModels, runSessionList, runSessionRuns, runLogRead } from "./subcommands.js";
|
|
21
|
+
// One verb vocabulary across nvim's :AI/, the TUI, and (where they exist)
|
|
22
|
+
// the argv subcommands. Convergence is policy: divergence needs a reason.
|
|
23
|
+
export const VERBS = [
|
|
24
|
+
"help", "models", "sessions", "runs", "log", "model",
|
|
25
|
+
"persona", "yolo", "new", "stop", "quit",
|
|
26
|
+
];
|
|
27
|
+
export const TUI_HELP = [
|
|
28
|
+
" /models /sessions /runs /log [n] inspect (same tables as the CLI)",
|
|
29
|
+
" /model <alias> model for subsequent loops",
|
|
30
|
+
" /persona <path> persona file for subsequent loops",
|
|
31
|
+
" /yolo toggle local auto-accept",
|
|
32
|
+
" /new [name] new session (reconnects)",
|
|
33
|
+
" /stop cancel the running loop",
|
|
34
|
+
" /quit exit",
|
|
35
|
+
" << raw DSL ! cmd (exec) ? text (ask) : text (act)",
|
|
36
|
+
].join("\n") + "\n";
|
|
37
|
+
export const parseSlash = (line) => {
|
|
38
|
+
const m = line.match(/^\/(\S*)\s*(.*)$/);
|
|
39
|
+
return { verb: m?.[1] ?? "", rest: (m?.[2] ?? "").trim() };
|
|
40
|
+
};
|
|
41
|
+
// readline completer — verbs after `/`, model aliases after `/model `.
|
|
42
|
+
// Plain readline machinery only; no screen takeover, no terminal hell.
|
|
43
|
+
export const makeCompleter = (getAliases) => (line) => {
|
|
44
|
+
const verbFrag = line.match(/^\/(\w*)$/);
|
|
45
|
+
if (verbFrag) {
|
|
46
|
+
const hits = VERBS.map((v) => `/${v}`).filter((v) => v.startsWith(line));
|
|
47
|
+
return [hits, line];
|
|
48
|
+
}
|
|
49
|
+
const aliasFrag = line.match(/^\/model\s+(\S*)$/);
|
|
50
|
+
if (aliasFrag) {
|
|
51
|
+
const hits = getAliases().filter((a) => a.startsWith(aliasFrag[1]));
|
|
52
|
+
return [hits, aliasFrag[1]];
|
|
53
|
+
}
|
|
54
|
+
return [[], line];
|
|
55
|
+
};
|
|
7
56
|
export const runTui = async (rpc, session, opts) => {
|
|
57
|
+
let current = session;
|
|
58
|
+
// Tokens for the summary line: summed from each dispatch's log/entry
|
|
59
|
+
// rows (log_entries.tokens). Reset per dispatch in the line handler.
|
|
60
|
+
let dispatchTokens = 0;
|
|
8
61
|
// Subscribe to log/entry notifications — render each as a waterfall line.
|
|
9
62
|
// `\r\x1b[2K` wipes any readline-redrawn prompt sitting on the current line
|
|
10
|
-
// before our output, otherwise the first trace line lands beside
|
|
63
|
+
// before our output, otherwise the first trace line lands beside the prompt.
|
|
11
64
|
rpc.onNotification("log/entry", (params) => {
|
|
12
65
|
const p = params;
|
|
66
|
+
if (typeof p.entry.tokens === "number")
|
|
67
|
+
dispatchTokens += p.entry.tokens;
|
|
68
|
+
// The typed line at the prompt is the user's record — rendering the
|
|
69
|
+
// prompt broadcast too would duplicate it (see isPromptEntry).
|
|
70
|
+
if (isPromptEntry(p.entry))
|
|
71
|
+
return;
|
|
13
72
|
process.stdout.write(`\r\x1b[2K${renderLogEntry(p.entry)}\n`);
|
|
14
73
|
});
|
|
15
|
-
// telemetry/event — interleaved with the trace waterfall.
|
|
16
|
-
// dance as log/entry so the rendered event doesn't collide with the
|
|
17
|
-
// readline prompt.
|
|
74
|
+
// telemetry/event — interleaved with the trace waterfall.
|
|
18
75
|
rpc.onNotification("telemetry/event", (params) => {
|
|
19
76
|
const p = params;
|
|
20
77
|
process.stdout.write(`\r\x1b[2K${renderTelemetryEvent(p.event)}\n`);
|
|
21
78
|
});
|
|
22
|
-
|
|
79
|
+
// Streams, coalesced: one start line, one conclusion line, and tiny
|
|
80
|
+
// concluded outputs inlined (the single bounded content fetch the TUI
|
|
81
|
+
// makes — SPEC §5.3; the content IS the optics at two lines).
|
|
82
|
+
const streams = new StreamTrace();
|
|
83
|
+
rpc.onNotification("stream/event", (params) => {
|
|
84
|
+
const line = streams.event(params);
|
|
85
|
+
if (line !== null)
|
|
86
|
+
process.stdout.write(`\r\x1b[2K${line}\n`);
|
|
87
|
+
});
|
|
88
|
+
rpc.onNotification("stream/concluded", (params) => {
|
|
89
|
+
const p = params;
|
|
90
|
+
process.stdout.write(`\r\x1b[2K${streams.concluded(p)}\n`);
|
|
91
|
+
void rpc.call("entry.read", { target: p.target }).then((r) => {
|
|
92
|
+
const channels = r.entry?.channels ?? {};
|
|
93
|
+
for (const name of ["stdout", "stderr"]) {
|
|
94
|
+
const content = channels[name]?.content;
|
|
95
|
+
if (typeof content === "string" && inlineable(content)) {
|
|
96
|
+
process.stdout.write(`\r\x1b[2K${renderInline(name, content)}\n`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}).catch(() => { });
|
|
100
|
+
});
|
|
101
|
+
process.stdout.write(`\x1b[2mplurnk · /help for the language · ctrl-c to quit · session: ${current.name}\x1b[0m\n\n`);
|
|
102
|
+
// Alias cache for /model completion — one cheap RPC, refreshed never
|
|
103
|
+
// (aliases are daemon-boot-time config).
|
|
104
|
+
let aliasCache = [];
|
|
105
|
+
void rpc.call("providers.list").then((r) => {
|
|
106
|
+
const aliases = r.aliases;
|
|
107
|
+
if (Array.isArray(aliases))
|
|
108
|
+
aliasCache = aliases.map((a) => a.alias);
|
|
109
|
+
}).catch(() => { });
|
|
110
|
+
// The prompt is the user's row, restricted to WIDTH-STABLE glyphs —
|
|
111
|
+
// settled empirically in two rounds. Round 1 (` 👤 ✉️ ✅ 201 : `)
|
|
112
|
+
// drifted by exactly one column: ✉️ is U+2709+VS16, the variation-
|
|
113
|
+
// selector class terminals genuinely cell-count differently; readline
|
|
114
|
+
// repositions the cursor at its own computed width on every
|
|
115
|
+
// history-nav/backspace/completion refresh, so the disagreement shows
|
|
116
|
+
// as text shift. Round 2 (bare ` : `) fixed the drift but destroyed
|
|
117
|
+
// the row identity. 👤 (U+1F464) and ✅ (U+2705) are plain East-Asian-
|
|
118
|
+
// Wide — width 2 in node AND every major terminal — so they stay; the
|
|
119
|
+
// 201 is the contract constant (the prompt row is always a 201 EDIT);
|
|
120
|
+
// 💬 (U+1F4AC, stable-wide) fills the op slot the toxic ✉️ vacated.
|
|
121
|
+
// Policy: VS16/ambiguous glyphs are banned from the ENTIRE palette
|
|
122
|
+
// (render.ts) — stable widths are also what make columns align.
|
|
23
123
|
const rl = readline.createInterface({
|
|
24
124
|
input: process.stdin,
|
|
25
125
|
output: process.stdout,
|
|
26
|
-
prompt: "\x1b[1m
|
|
126
|
+
prompt: " 👤 💬 ✅ \x1b[32m201\x1b[0m \x1b[1m: \x1b[0m",
|
|
127
|
+
completer: makeCompleter(() => aliasCache),
|
|
27
128
|
});
|
|
28
|
-
// Proposal lifecycle:
|
|
29
|
-
//
|
|
129
|
+
// Proposal lifecycle: server-resolved proposals (flags.yolo/noProposals)
|
|
130
|
+
// settle in-process — skip; --yolo auto-accepts locally; otherwise pause
|
|
131
|
+
// readline, review, resolve, resume.
|
|
30
132
|
rpc.onNotification("loop/proposal", (params) => {
|
|
31
133
|
const p = params;
|
|
32
134
|
void (async () => {
|
|
135
|
+
if (isServerResolved(p))
|
|
136
|
+
return;
|
|
33
137
|
if (opts.yolo) {
|
|
34
138
|
await rpc.call("loop.resolve", { logEntryId: p.logEntryId, decision: "accept", outcome: "client_yolo" });
|
|
35
139
|
return;
|
|
@@ -45,47 +149,164 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
45
149
|
}
|
|
46
150
|
})();
|
|
47
151
|
});
|
|
152
|
+
// Verbs never call loop.run; they are run-tab furniture, not conversation.
|
|
153
|
+
// Returns once the verb is fully rendered.
|
|
154
|
+
const handleVerb = async (line) => {
|
|
155
|
+
const { verb, rest } = parseSlash(line);
|
|
156
|
+
switch (verb) {
|
|
157
|
+
case "":
|
|
158
|
+
case "help":
|
|
159
|
+
process.stdout.write(TUI_HELP);
|
|
160
|
+
return;
|
|
161
|
+
case "models":
|
|
162
|
+
await runModels(rpc, { json: false });
|
|
163
|
+
return;
|
|
164
|
+
case "sessions":
|
|
165
|
+
await runSessionList(rpc, { json: false });
|
|
166
|
+
return;
|
|
167
|
+
case "runs":
|
|
168
|
+
await runSessionRuns(rpc, current.name, { json: false });
|
|
169
|
+
return;
|
|
170
|
+
case "log": {
|
|
171
|
+
const limit = rest.length > 0 ? Number(rest) : undefined;
|
|
172
|
+
const filters = Number.isInteger(limit) && limit > 0 ? { limit: limit } : {};
|
|
173
|
+
await runLogRead(rpc, { json: false, filters });
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
case "model":
|
|
177
|
+
if (rest.length === 0) {
|
|
178
|
+
process.stdout.write(` model: ${opts.modelAlias ?? "(daemon default)"}\n`);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
opts.modelAlias = rest;
|
|
182
|
+
process.stdout.write(` model: ${rest}\n`);
|
|
183
|
+
return;
|
|
184
|
+
case "persona": {
|
|
185
|
+
if (rest.length === 0) {
|
|
186
|
+
process.stdout.write(" usage: /persona <path>\n");
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const abs = isAbsolute(rest) ? rest : resolve(process.cwd(), rest);
|
|
190
|
+
try {
|
|
191
|
+
opts.persona = await readFile(abs, "utf8");
|
|
192
|
+
process.stdout.write(` persona: ${abs}\n`);
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
process.stdout.write(` persona file not readable: ${abs}\n`);
|
|
196
|
+
}
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
case "yolo":
|
|
200
|
+
opts.yolo = !opts.yolo;
|
|
201
|
+
process.stdout.write(` yolo: ${opts.yolo ? "ON" : "OFF"}\n`);
|
|
202
|
+
return;
|
|
203
|
+
case "new": {
|
|
204
|
+
// One session per connection (service §13.5) — a new session
|
|
205
|
+
// means a fresh socket, same as plurnk.nvim's reconnect dance.
|
|
206
|
+
await rpc.close();
|
|
207
|
+
await rpc.connect();
|
|
208
|
+
const params = {};
|
|
209
|
+
if (rest.length > 0)
|
|
210
|
+
params.name = rest;
|
|
211
|
+
if (opts.projectRoot !== undefined)
|
|
212
|
+
params.projectRoot = opts.projectRoot;
|
|
213
|
+
current = await rpc.call("session.create", params);
|
|
214
|
+
process.stdout.write(` session: ${current.name}\n`);
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
case "stop":
|
|
218
|
+
await rpc.call("loop.cancel", { reason: "user_stop" });
|
|
219
|
+
return;
|
|
220
|
+
case "quit":
|
|
221
|
+
return "quit";
|
|
222
|
+
default:
|
|
223
|
+
report(clientSubcommandUnknownVerb(`/${verb}`, [...VERBS]));
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
};
|
|
48
227
|
rl.prompt();
|
|
49
228
|
return new Promise((resolve) => {
|
|
50
229
|
let inFlight = false;
|
|
230
|
+
let cancelRequested = false;
|
|
51
231
|
rl.on("line", async (line) => {
|
|
52
232
|
const trimmed = line.trim();
|
|
53
233
|
if (trimmed.length === 0) {
|
|
54
234
|
rl.prompt();
|
|
55
235
|
return;
|
|
56
236
|
}
|
|
237
|
+
// Verbs: /stop and /help stay reachable while a loop is in
|
|
238
|
+
// flight — /stop is precisely the mid-loop verb.
|
|
239
|
+
if (trimmed.startsWith("/")) {
|
|
240
|
+
const { verb } = parseSlash(trimmed);
|
|
241
|
+
if (inFlight && verb !== "stop" && verb !== "help" && verb !== "") {
|
|
242
|
+
process.stdout.write(" \x1b[2m(busy; /stop to cancel, /help for the language)\x1b[0m\n");
|
|
243
|
+
rl.prompt();
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
try {
|
|
247
|
+
if (await handleVerb(trimmed) === "quit") {
|
|
248
|
+
rl.close();
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
catch (cause) {
|
|
253
|
+
const msg = cause instanceof Error ? cause.message : String(cause);
|
|
254
|
+
process.stdout.write(` \x1b[31merror: ${msg}\x1b[0m\n`);
|
|
255
|
+
}
|
|
256
|
+
rl.prompt();
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
57
259
|
if (inFlight) {
|
|
58
|
-
process.stdout.write(" \x1b[2m(busy;
|
|
260
|
+
process.stdout.write(" \x1b[2m(busy; /stop to cancel)\x1b[0m\n");
|
|
59
261
|
rl.prompt();
|
|
60
262
|
return;
|
|
61
263
|
}
|
|
62
264
|
inFlight = true;
|
|
63
265
|
const start = Date.now();
|
|
64
|
-
|
|
266
|
+
dispatchTokens = 0;
|
|
65
267
|
let turnCount = 0;
|
|
66
268
|
let finalStatus = 0;
|
|
67
269
|
let hitMaxTurns = false;
|
|
270
|
+
let usage;
|
|
68
271
|
try {
|
|
69
272
|
if (trimmed.startsWith("<<")) {
|
|
70
273
|
// Raw DSL: send to op.parse
|
|
71
274
|
const result = await rpc.call("op.parse", { text: trimmed });
|
|
72
275
|
finalStatus = result.results[result.results.length - 1]?.status ?? 0;
|
|
73
276
|
}
|
|
277
|
+
else if (trimmed.startsWith("!")) {
|
|
278
|
+
// `! cmd` — exec via the daemon (proposal-gated like any
|
|
279
|
+
// side effect; output streams as stream/event traces).
|
|
280
|
+
const command = trimmed.replace(/^!+\s*/, "");
|
|
281
|
+
const result = await rpc.call("op.exec", { command });
|
|
282
|
+
finalStatus = result.status;
|
|
283
|
+
}
|
|
74
284
|
else {
|
|
75
|
-
// Prompt
|
|
76
|
-
|
|
285
|
+
// Prompt. `? ` = ask (read-only loop, flags.mode="ask");
|
|
286
|
+
// `: ` = act. Per-line prefix overrides --flags mode.
|
|
287
|
+
let lineFlags = opts.loopFlags;
|
|
288
|
+
const prefix = trimmed[0];
|
|
289
|
+
if (prefix === "?" || prefix === ":") {
|
|
290
|
+
lineFlags = { ...(opts.loopFlags ?? {}), mode: prefix === "?" ? "ask" : "act" };
|
|
291
|
+
}
|
|
292
|
+
const promptText = trimmed.replace(/^[?:]+\s*/, "");
|
|
293
|
+
const loopParams = { prompt: promptText };
|
|
77
294
|
if (opts.modelAlias !== undefined)
|
|
78
295
|
loopParams.alias = opts.modelAlias;
|
|
79
296
|
if (opts.persona !== undefined)
|
|
80
297
|
loopParams.persona = opts.persona;
|
|
298
|
+
if (lineFlags !== undefined && Object.keys(lineFlags).length > 0)
|
|
299
|
+
loopParams.flags = lineFlags;
|
|
300
|
+
if (opts.maxTurns !== undefined)
|
|
301
|
+
loopParams.maxTurns = opts.maxTurns;
|
|
81
302
|
const result = await rpc.call("loop.run", loopParams);
|
|
82
303
|
finalStatus = result.finalStatus;
|
|
83
304
|
hitMaxTurns = result.hitMaxTurns;
|
|
84
305
|
turnCount = result.turnIds.length;
|
|
85
|
-
|
|
306
|
+
usage = result.usage;
|
|
86
307
|
}
|
|
87
308
|
const wallMs = Date.now() - start;
|
|
88
|
-
process.stdout.write(`${renderSummary(turnCount, wallMs,
|
|
309
|
+
process.stdout.write(`${renderSummary(turnCount, wallMs, dispatchTokens, finalStatus, hitMaxTurns, usage)}\n`);
|
|
89
310
|
}
|
|
90
311
|
catch (cause) {
|
|
91
312
|
const msg = cause instanceof Error ? cause.message : String(cause);
|
|
@@ -93,6 +314,7 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
93
314
|
}
|
|
94
315
|
finally {
|
|
95
316
|
inFlight = false;
|
|
317
|
+
cancelRequested = false;
|
|
96
318
|
rl.prompt();
|
|
97
319
|
}
|
|
98
320
|
});
|
|
@@ -101,7 +323,17 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
101
323
|
resolve();
|
|
102
324
|
});
|
|
103
325
|
rl.on("SIGINT", () => {
|
|
104
|
-
// Ctrl-C
|
|
326
|
+
// First Ctrl-C with a dispatch in flight: cancel the run's active
|
|
327
|
+
// drain via loop.cancel (plurnk-service §13.5); the pending
|
|
328
|
+
// loop.run resolves with finalStatus 499 and the REPL continues.
|
|
329
|
+
// Second Ctrl-C (or idle Ctrl-C) exits — escape hatch for
|
|
330
|
+
// dispatches a drain-cancel can't unblock (op.parse).
|
|
331
|
+
if (inFlight && !cancelRequested) {
|
|
332
|
+
cancelRequested = true;
|
|
333
|
+
process.stdout.write("\r\x1b[2K \x1b[2mcancelling… (ctrl-c again to quit)\x1b[0m\n");
|
|
334
|
+
void rpc.call("loop.cancel", { reason: "user_sigint" });
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
105
337
|
rl.close();
|
|
106
338
|
});
|
|
107
339
|
});
|
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;AAEjB,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAYtD,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,GAAQ,EAAE,OAAsB,EAAE,IAA8D,EAAiB,EAAE;IAC5I,0EAA0E;IAC1E,4EAA4E;IAC5E,uEAAuE;IACvE,GAAG,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,MAAiC,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,oEAAoE;IACpE,mBAAmB;IACnB,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,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC;IAEpG,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,kBAAkB;KAC7B,CAAC,CAAC;IAEH,6EAA6E;IAC7E,2BAA2B;IAC3B,GAAG,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE;QAC3C,MAAM,CAAC,GAAG,MAAwB,CAAC;QACnC,KAAK,CAAC,KAAK,IAAI,EAAE;YACb,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,EAAE,CAAC,MAAM,EAAE,CAAC;IAEZ,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACjC,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,EAAE,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACX,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;gBACtF,EAAE,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACX,CAAC;YAED,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,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,CAAC;oBACJ,2BAA2B;oBAC3B,MAAM,UAAU,GAAyD,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC7F,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;wBAAE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;oBACtE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;wBAAE,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBAClE,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,sEAAsE;gBAC1E,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,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YACxG,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,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAChB,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,oEAAoE;YACpE,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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"}
|
package/package.json
CHANGED