@plurnk/plurnk 0.12.0 → 0.22.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 +28 -29
- package/dist/cli.d.ts +2 -8
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +22 -31
- package/dist/cli.js.map +1 -1
- package/dist/completion.d.ts +5 -0
- package/dist/completion.d.ts.map +1 -0
- package/dist/completion.js +63 -0
- package/dist/completion.js.map +1 -0
- package/dist/dispatcher.d.ts +36 -1
- package/dist/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +135 -39
- package/dist/dispatcher.js.map +1 -1
- package/dist/paste.d.ts +7 -0
- package/dist/paste.d.ts.map +1 -0
- package/dist/paste.js +98 -0
- package/dist/paste.js.map +1 -0
- package/dist/render.d.ts +8 -7
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +26 -23
- package/dist/render.js.map +1 -1
- package/dist/rpc.d.ts +5 -0
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +16 -2
- package/dist/rpc.js.map +1 -1
- package/dist/stream.d.ts +8 -2
- package/dist/stream.d.ts.map +1 -1
- package/dist/stream.js +8 -2
- package/dist/stream.js.map +1 -1
- package/dist/subcommands.d.ts.map +1 -1
- package/dist/subcommands.js +5 -2
- package/dist/subcommands.js.map +1 -1
- package/dist/telemetry.d.ts +1 -2
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +12 -13
- package/dist/telemetry.js.map +1 -1
- package/dist/tui.d.ts +18 -3
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +225 -103
- package/dist/tui.js.map +1 -1
- package/package.json +4 -1
package/dist/tui.js
CHANGED
|
@@ -5,15 +5,19 @@
|
|
|
5
5
|
// /verb [args] command verbs (see VERBS); never call loop.run
|
|
6
6
|
// << raw DSL op.parse
|
|
7
7
|
// ! cmd op.exec via the daemon
|
|
8
|
+
// ... msg loop.inject — speak into the running model loop
|
|
8
9
|
// ? text ask — loop.run with flags.mode="ask"
|
|
9
10
|
// : text act (the default)
|
|
10
11
|
// text prompt
|
|
11
12
|
// The readline prompt is `: ` — it rhymes with nvim's cmdline; when an
|
|
12
13
|
// ask-default toggle exists (nvim first), the prompt char flips to `? `.
|
|
13
14
|
import readline from "node:readline";
|
|
15
|
+
import { PassThrough } from "node:stream";
|
|
14
16
|
import { readFile } from "node:fs/promises";
|
|
15
17
|
import { isAbsolute, resolve } from "node:path";
|
|
16
|
-
import
|
|
18
|
+
import PasteFilter from "./paste.js";
|
|
19
|
+
import { pathPartial, completePath, dslOpPartial, completeOps } from "./completion.js";
|
|
20
|
+
import { renderLogEntry, renderSummary, isPromptEntry, coordLabel } from "./render.js";
|
|
17
21
|
import { reviewProposal, isServerResolved } from "./proposal.js";
|
|
18
22
|
import { renderTelemetryEvent, report, clientSubcommandUnknownVerb } from "./telemetry.js";
|
|
19
23
|
import StreamTrace, { inlineable, renderInline } from "./stream.js";
|
|
@@ -22,17 +26,23 @@ import { runModels, runSessionList, runSessionRuns, runLogRead } from "./subcomm
|
|
|
22
26
|
// the argv subcommands. Convergence is policy: divergence needs a reason.
|
|
23
27
|
export const VERBS = [
|
|
24
28
|
"help", "models", "sessions", "runs", "log", "model",
|
|
25
|
-
"
|
|
29
|
+
"yolo", "new", "stop", "quit",
|
|
30
|
+
"pick", "hide", "view", "drop", "members", "import",
|
|
26
31
|
];
|
|
27
32
|
export const TUI_HELP = [
|
|
28
33
|
" /models /sessions /runs /log [n] inspect (same tables as the CLI)",
|
|
29
34
|
" /model <alias> model for subsequent loops",
|
|
30
|
-
" /persona <path> persona file for subsequent loops",
|
|
31
35
|
" /yolo toggle local auto-accept",
|
|
32
36
|
" /new [name] new session (reconnects)",
|
|
37
|
+
" /pick <glob> membership: admit files git misses",
|
|
38
|
+
" /hide <glob> membership: drop a tracked match",
|
|
39
|
+
" /view <glob> membership: admit read-only",
|
|
40
|
+
" /drop <glob> membership: remove a constraint",
|
|
41
|
+
" /members list membership constraints",
|
|
42
|
+
" /import <path> dump a local file's content into the prompt",
|
|
33
43
|
" /stop cancel the running loop",
|
|
34
44
|
" /quit exit",
|
|
35
|
-
" << raw DSL ! cmd (exec) ?
|
|
45
|
+
" << raw DSL ! cmd (exec) ... inject ? ask : act",
|
|
36
46
|
].join("\n") + "\n";
|
|
37
47
|
export const parseSlash = (line) => {
|
|
38
48
|
const m = line.match(/^\/(\S*)\s*(.*)$/);
|
|
@@ -40,31 +50,158 @@ export const parseSlash = (line) => {
|
|
|
40
50
|
};
|
|
41
51
|
// readline completer — verbs after `/`, model aliases after `/model `.
|
|
42
52
|
// Plain readline machinery only; no screen takeover, no terminal hell.
|
|
43
|
-
|
|
53
|
+
// readline's async completer form (arity 2 → async). Verb/alias completion
|
|
54
|
+
// answers synchronously; path positions read the local fs (co-location law)
|
|
55
|
+
// and answer once readdir resolves.
|
|
56
|
+
export const makeCompleter = (getAliases, cwd) => (line, callback) => {
|
|
44
57
|
const verbFrag = line.match(/^\/(\w*)$/);
|
|
45
58
|
if (verbFrag) {
|
|
46
|
-
|
|
47
|
-
return
|
|
59
|
+
callback(null, [VERBS.map((v) => `/${v}`).filter((v) => v.startsWith(line)), line]);
|
|
60
|
+
return;
|
|
48
61
|
}
|
|
49
62
|
const aliasFrag = line.match(/^\/model\s+(\S*)$/);
|
|
50
63
|
if (aliasFrag) {
|
|
51
|
-
|
|
52
|
-
return
|
|
64
|
+
callback(null, [getAliases().filter((a) => a.startsWith(aliasFrag[1])), aliasFrag[1]]);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const op = dslOpPartial(line);
|
|
68
|
+
if (op !== null) {
|
|
69
|
+
callback(null, completeOps(op));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const partial = pathPartial(line);
|
|
73
|
+
if (partial !== null) {
|
|
74
|
+
void completePath(partial, cwd).then((result) => callback(null, result));
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
callback(null, [[], line]);
|
|
78
|
+
};
|
|
79
|
+
// Seed readline history from the session's prior prompts (svc#238) so up/down
|
|
80
|
+
// recalls them across restarts. One clean RPC — newest-first, exactly what
|
|
81
|
+
// rl.history wants. Best-effort: a fresh session has none, failures are silent.
|
|
82
|
+
export const seedPromptHistory = async (rpc, sessionId, rl) => {
|
|
83
|
+
try {
|
|
84
|
+
const { prompts } = await rpc.call("session.prompts", { id: sessionId, limit: 100 });
|
|
85
|
+
if (Array.isArray(prompts) && prompts.length > 0)
|
|
86
|
+
rl.history = prompts;
|
|
87
|
+
}
|
|
88
|
+
catch { /* history is a convenience; never block the REPL */ }
|
|
89
|
+
};
|
|
90
|
+
export const handleVerb = async (line, ctx) => {
|
|
91
|
+
const { verb, rest } = parseSlash(line);
|
|
92
|
+
const { rpc, opts, write } = ctx;
|
|
93
|
+
switch (verb) {
|
|
94
|
+
case "":
|
|
95
|
+
case "help":
|
|
96
|
+
write(TUI_HELP);
|
|
97
|
+
return;
|
|
98
|
+
case "models":
|
|
99
|
+
await runModels(rpc, { json: false });
|
|
100
|
+
return;
|
|
101
|
+
case "sessions":
|
|
102
|
+
await runSessionList(rpc, { json: false });
|
|
103
|
+
return;
|
|
104
|
+
case "runs":
|
|
105
|
+
await runSessionRuns(rpc, ctx.getSession().name, { json: false });
|
|
106
|
+
return;
|
|
107
|
+
case "log": {
|
|
108
|
+
const limit = rest.length > 0 ? Number(rest) : undefined;
|
|
109
|
+
const filters = Number.isInteger(limit) && limit > 0 ? { limit: limit } : {};
|
|
110
|
+
await runLogRead(rpc, { json: false, filters });
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
case "model":
|
|
114
|
+
if (rest.length === 0) {
|
|
115
|
+
write(` model: ${opts.modelAlias ?? "(daemon default)"}\n`);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
opts.modelAlias = rest;
|
|
119
|
+
write(` model: ${rest}\n`);
|
|
120
|
+
return;
|
|
121
|
+
case "yolo":
|
|
122
|
+
opts.yolo = !opts.yolo;
|
|
123
|
+
write(` yolo: ${opts.yolo ? "ON" : "OFF"}\n`);
|
|
124
|
+
return;
|
|
125
|
+
case "new": {
|
|
126
|
+
// Rebind in place (service §13.5-rebind) — no reconnect.
|
|
127
|
+
const params = {};
|
|
128
|
+
if (rest.length > 0)
|
|
129
|
+
params.name = rest;
|
|
130
|
+
if (opts.projectRoot !== undefined)
|
|
131
|
+
params.projectRoot = opts.projectRoot;
|
|
132
|
+
ctx.setSession(await rpc.call("session.create", params));
|
|
133
|
+
write(` session: ${ctx.getSession().name}\n`);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
case "pick":
|
|
137
|
+
case "hide":
|
|
138
|
+
case "view": {
|
|
139
|
+
// Membership overlay (svc#200) — service vocabulary, live via
|
|
140
|
+
// session.constrain (session-scoped, re-resolved immediately).
|
|
141
|
+
if (rest.length === 0) {
|
|
142
|
+
write(` usage: /${verb} <glob>\n`);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
await rpc.call("session.constrain", { effect: verb, glob: rest });
|
|
146
|
+
write(` ${verb}: ${rest}\n`);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
case "drop": {
|
|
150
|
+
if (rest.length === 0) {
|
|
151
|
+
write(" usage: /drop <glob>\n");
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
const { constraints } = await rpc.call("session.constraints");
|
|
155
|
+
const matches = constraints.filter((c) => c.glob === rest);
|
|
156
|
+
if (matches.length === 0) {
|
|
157
|
+
write(` no constraint matching ${JSON.stringify(rest)}\n`);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
for (const c of matches)
|
|
161
|
+
await rpc.call("session.unconstrain", c);
|
|
162
|
+
write(` dropped ${matches.length} constraint${matches.length === 1 ? "" : "s"} (${rest})\n`);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
case "members": {
|
|
166
|
+
const { constraints } = await rpc.call("session.constraints");
|
|
167
|
+
if (constraints.length === 0) {
|
|
168
|
+
write(" (no membership constraints)\n");
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
for (const c of constraints)
|
|
172
|
+
write(` ${c.effect.padEnd(5)} ${c.glob}\n`);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
case "import":
|
|
176
|
+
// Dump a LOCAL file's content into the prompt (co-location law),
|
|
177
|
+
// via the paste machinery. The rl/paste glue lives in ctx.importFile.
|
|
178
|
+
if (rest.length === 0) {
|
|
179
|
+
write(" usage: /import <path>\n");
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
await ctx.importFile(rest);
|
|
183
|
+
return;
|
|
184
|
+
case "stop":
|
|
185
|
+
await rpc.call("loop.cancel", { reason: "user_stop" });
|
|
186
|
+
return;
|
|
187
|
+
case "quit":
|
|
188
|
+
return "quit";
|
|
189
|
+
default:
|
|
190
|
+
report(clientSubcommandUnknownVerb(`/${verb}`, [...VERBS]));
|
|
191
|
+
return;
|
|
53
192
|
}
|
|
54
|
-
return [[], line];
|
|
55
193
|
};
|
|
56
194
|
export const runTui = async (rpc, session, opts) => {
|
|
57
195
|
let current = session;
|
|
58
|
-
//
|
|
59
|
-
|
|
60
|
-
let dispatchTokens = 0;
|
|
196
|
+
// Highest loop_seq the waterfall has shown — the next prompt is one beyond.
|
|
197
|
+
let lastLoopSeq = 0;
|
|
61
198
|
// Subscribe to log/entry notifications — render each as a waterfall line.
|
|
62
199
|
// `\r\x1b[2K` wipes any readline-redrawn prompt sitting on the current line
|
|
63
200
|
// before our output, otherwise the first trace line lands beside the prompt.
|
|
64
201
|
rpc.onNotification("log/entry", (params) => {
|
|
65
202
|
const p = params;
|
|
66
|
-
if (
|
|
67
|
-
|
|
203
|
+
if (p.entry.loop_seq > lastLoopSeq)
|
|
204
|
+
lastLoopSeq = p.entry.loop_seq;
|
|
68
205
|
// The typed line at the prompt is the user's record — rendering the
|
|
69
206
|
// prompt broadcast too would duplicate it (see isPromptEntry).
|
|
70
207
|
if (isPromptEntry(p.entry))
|
|
@@ -98,6 +235,8 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
98
235
|
}
|
|
99
236
|
}).catch(() => { });
|
|
100
237
|
});
|
|
238
|
+
if (opts.versionNotice !== undefined)
|
|
239
|
+
process.stdout.write(`\x1b[2m${opts.versionNotice}\x1b[0m\n`);
|
|
101
240
|
process.stdout.write(`\x1b[2mplurnk · /help for the language · ctrl-c to quit · session: ${current.name}\x1b[0m\n\n`);
|
|
102
241
|
// Alias cache for /model completion — one cheap RPC, refreshed never
|
|
103
242
|
// (aliases are daemon-boot-time config).
|
|
@@ -120,12 +259,37 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
120
259
|
// 💬 (U+1F4AC, stable-wide) fills the op slot the toxic ✉️ vacated.
|
|
121
260
|
// Policy: VS16/ambiguous glyphs are banned from the ENTIRE palette
|
|
122
261
|
// (render.ts) — stable widths are also what make columns align.
|
|
262
|
+
// The prompt is the user's row, coordinate-prefixed like every other
|
|
263
|
+
// waterfall line (§5.1). The coordinate is the one the typed line will
|
|
264
|
+
// get: the prompt becomes the next loop's foist EDIT at <next>/01/01.
|
|
265
|
+
// lastLoopSeq tracks the highest loop the waterfall has shown; the next
|
|
266
|
+
// prompt is one beyond it. Plain-ASCII coordinate — width-safe.
|
|
267
|
+
const buildPrompt = () => ` ${coordLabel(lastLoopSeq + 1, 1, 1)}👤 💬 ✅ \x1b[32m201\x1b[0m \x1b[1m: \x1b[0m`;
|
|
268
|
+
// Bracketed-paste buffering (paste.ts): a multi-line paste must become ONE
|
|
269
|
+
// prompt, not one loop.run per line. readline reads a PassThrough we feed
|
|
270
|
+
// filtered stdin into; since the input is no longer the TTY directly, raw
|
|
271
|
+
// mode and ?2004 are ours to manage (terminal:true keeps readline's
|
|
272
|
+
// keypress decoding). Stream plumbing only — no cursor/width math.
|
|
273
|
+
const paste = new PasteFilter();
|
|
274
|
+
const input = new PassThrough();
|
|
275
|
+
const onStdin = (chunk) => {
|
|
276
|
+
const forward = paste.feed(chunk.toString("utf8"));
|
|
277
|
+
if (forward.length > 0)
|
|
278
|
+
input.write(forward);
|
|
279
|
+
};
|
|
280
|
+
process.stdin.setRawMode?.(true);
|
|
281
|
+
process.stdin.on("data", onStdin);
|
|
282
|
+
process.stdout.write("\x1b[?2004h");
|
|
123
283
|
const rl = readline.createInterface({
|
|
124
|
-
input
|
|
284
|
+
input,
|
|
125
285
|
output: process.stdout,
|
|
126
|
-
|
|
127
|
-
|
|
286
|
+
terminal: true,
|
|
287
|
+
prompt: buildPrompt(),
|
|
288
|
+
completer: makeCompleter(() => aliasCache, process.cwd()),
|
|
128
289
|
});
|
|
290
|
+
const reprompt = () => { rl.setPrompt(buildPrompt()); rl.prompt(); };
|
|
291
|
+
// Cross-restart up/down history from the daemon (svc#238) — non-blocking.
|
|
292
|
+
void seedPromptHistory(rpc, current.id, rl);
|
|
129
293
|
// Proposal lifecycle: server-resolved proposals (flags.yolo/noProposals)
|
|
130
294
|
// settle in-process — skip; --yolo auto-accepts locally; otherwise pause
|
|
131
295
|
// readline, review, resolve, resume.
|
|
@@ -149,89 +313,35 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
149
313
|
}
|
|
150
314
|
})();
|
|
151
315
|
});
|
|
152
|
-
//
|
|
153
|
-
//
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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;
|
|
316
|
+
// Verb dispatch runs through the testable module-level handleVerb; this
|
|
317
|
+
// context injects the live session / opts / stdout / import glue.
|
|
318
|
+
const verbCtx = {
|
|
319
|
+
rpc, opts,
|
|
320
|
+
getSession: () => current,
|
|
321
|
+
setSession: (s) => { current = s; },
|
|
322
|
+
write: (text) => { process.stdout.write(text); },
|
|
323
|
+
importFile: async (rest) => {
|
|
324
|
+
const abs = isAbsolute(rest) ? rest : resolve(process.cwd(), rest);
|
|
325
|
+
let content;
|
|
326
|
+
try {
|
|
327
|
+
content = await readFile(abs, "utf8");
|
|
198
328
|
}
|
|
199
|
-
|
|
200
|
-
|
|
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`);
|
|
329
|
+
catch (cause) {
|
|
330
|
+
process.stdout.write(` not readable: ${cause instanceof Error ? cause.message : String(cause)}\n`);
|
|
215
331
|
return;
|
|
216
332
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
return;
|
|
220
|
-
case "quit":
|
|
221
|
-
return "quit";
|
|
222
|
-
default:
|
|
223
|
-
report(clientSubcommandUnknownVerb(`/${verb}`, [...VERBS]));
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
333
|
+
rl.write(paste.stash(content));
|
|
334
|
+
},
|
|
226
335
|
};
|
|
227
|
-
|
|
336
|
+
reprompt();
|
|
228
337
|
return new Promise((resolve) => {
|
|
229
338
|
let inFlight = false;
|
|
230
339
|
let cancelRequested = false;
|
|
231
340
|
rl.on("line", async (line) => {
|
|
232
|
-
|
|
341
|
+
// Expand any paste markers back to the raw multi-line text.
|
|
342
|
+
const trimmed = paste.expand(line).trim();
|
|
233
343
|
if (trimmed.length === 0) {
|
|
234
|
-
|
|
344
|
+
reprompt();
|
|
235
345
|
return;
|
|
236
346
|
}
|
|
237
347
|
// Verbs: /stop and /help stay reachable while a loop is in
|
|
@@ -240,11 +350,11 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
240
350
|
const { verb } = parseSlash(trimmed);
|
|
241
351
|
if (inFlight && verb !== "stop" && verb !== "help" && verb !== "") {
|
|
242
352
|
process.stdout.write(" \x1b[2m(busy; /stop to cancel, /help for the language)\x1b[0m\n");
|
|
243
|
-
|
|
353
|
+
reprompt();
|
|
244
354
|
return;
|
|
245
355
|
}
|
|
246
356
|
try {
|
|
247
|
-
if (await handleVerb(trimmed) === "quit") {
|
|
357
|
+
if (await handleVerb(trimmed, verbCtx) === "quit") {
|
|
248
358
|
rl.close();
|
|
249
359
|
return;
|
|
250
360
|
}
|
|
@@ -253,17 +363,28 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
253
363
|
const msg = cause instanceof Error ? cause.message : String(cause);
|
|
254
364
|
process.stdout.write(` \x1b[31merror: ${msg}\x1b[0m\n`);
|
|
255
365
|
}
|
|
256
|
-
|
|
366
|
+
reprompt();
|
|
257
367
|
return;
|
|
258
368
|
}
|
|
259
369
|
if (inFlight) {
|
|
260
|
-
|
|
261
|
-
|
|
370
|
+
// A model loop is running. A prompt typed now is the "btw"
|
|
371
|
+
// steering case (loop.inject, #193), NOT a conflict — inject it
|
|
372
|
+
// into the live loop. (Raw DSL / exec are separate client-run
|
|
373
|
+
// ops; keep them out of a running conversation for now.)
|
|
374
|
+
if (trimmed.startsWith("<<") || trimmed.startsWith("!")) {
|
|
375
|
+
process.stdout.write(" \x1b[2m(loop running — /stop before a client op)\x1b[0m\n");
|
|
376
|
+
reprompt();
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
const inject = trimmed.replace(/^(\.\.\.|[?:])\s*/, "");
|
|
380
|
+
void rpc.call("loop.inject", { prompt: inject })
|
|
381
|
+
.then(() => process.stdout.write(" \x1b[2m↳ injected\x1b[0m\n"))
|
|
382
|
+
.catch((cause) => process.stdout.write(` \x1b[31minject failed: ${cause instanceof Error ? cause.message : String(cause)}\x1b[0m\n`));
|
|
383
|
+
reprompt();
|
|
262
384
|
return;
|
|
263
385
|
}
|
|
264
386
|
inFlight = true;
|
|
265
387
|
const start = Date.now();
|
|
266
|
-
dispatchTokens = 0;
|
|
267
388
|
let turnCount = 0;
|
|
268
389
|
let finalStatus = 0;
|
|
269
390
|
let hitMaxTurns = false;
|
|
@@ -289,12 +410,10 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
289
410
|
if (prefix === "?" || prefix === ":") {
|
|
290
411
|
lineFlags = { ...(opts.loopFlags ?? {}), mode: prefix === "?" ? "ask" : "act" };
|
|
291
412
|
}
|
|
292
|
-
const promptText = trimmed.replace(/^[?:]
|
|
413
|
+
const promptText = trimmed.replace(/^(\.\.\.|[?:]+)\s*/, "");
|
|
293
414
|
const loopParams = { prompt: promptText };
|
|
294
415
|
if (opts.modelAlias !== undefined)
|
|
295
416
|
loopParams.alias = opts.modelAlias;
|
|
296
|
-
if (opts.persona !== undefined)
|
|
297
|
-
loopParams.persona = opts.persona;
|
|
298
417
|
if (lineFlags !== undefined && Object.keys(lineFlags).length > 0)
|
|
299
418
|
loopParams.flags = lineFlags;
|
|
300
419
|
if (opts.maxTurns !== undefined)
|
|
@@ -306,7 +425,7 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
306
425
|
usage = result.usage;
|
|
307
426
|
}
|
|
308
427
|
const wallMs = Date.now() - start;
|
|
309
|
-
process.stdout.write(`${renderSummary(turnCount, wallMs,
|
|
428
|
+
process.stdout.write(`${renderSummary(turnCount, wallMs, finalStatus, hitMaxTurns, usage)}\n`);
|
|
310
429
|
}
|
|
311
430
|
catch (cause) {
|
|
312
431
|
const msg = cause instanceof Error ? cause.message : String(cause);
|
|
@@ -315,10 +434,13 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
315
434
|
finally {
|
|
316
435
|
inFlight = false;
|
|
317
436
|
cancelRequested = false;
|
|
318
|
-
|
|
437
|
+
reprompt();
|
|
319
438
|
}
|
|
320
439
|
});
|
|
321
440
|
rl.on("close", () => {
|
|
441
|
+
process.stdout.write("\x1b[?2004l");
|
|
442
|
+
process.stdin.off("data", onStdin);
|
|
443
|
+
process.stdin.setRawMode?.(false);
|
|
322
444
|
process.stdout.write("\n");
|
|
323
445
|
resolve();
|
|
324
446
|
});
|
package/dist/tui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
|
|
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,MAAM,EAAE,MAAM;IAC7B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ;CAC7C,CAAC;AAEX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,uEAAuE;IACvE,iEAAiE;IACjE,+DAA+D;IAC/D,+DAA+D;IAC/D,yEAAyE;IACzE,uEAAuE;IACvE,kEAAkE;IAClE,sEAAsE;IACtE,kEAAkE;IAClE,kFAAkF;IAClF,8DAA8D;IAC9D,2CAA2C;IAC3C,8DAA8D;CACjE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEpB,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;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,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,8DAA8D;YAC9D,+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,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAA6D,CAAC;YAC1H,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACnF,KAAK,MAAM,CAAC,IAAI,WAAW;gBAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YAC3E,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,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,aAAa,WAAW,CAAC,CAAC;IACpG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sEAAsE,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC;IAEtH,qEAAqE;IACrE,yCAAyC;IACzC,IAAI,UAAU,GAAa,EAAE,CAAC;IAC9B,KAAK,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACvC,MAAM,OAAO,GAAI,CAA4C,CAAC,OAAO,CAAC;QACtE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAqC,CAAC,CAAC,CAAC;IAEtD,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,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,GAAG,CAAC;YAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,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;IAC3E,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,4DAA4D;YAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Plurnk client app — CLI/TUI consuming plurnk-service. Type prompts at a terminal, drive real model loops through the protocol.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -35,5 +35,8 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"ws": "^8.20.1"
|
|
38
|
+
},
|
|
39
|
+
"optionalDependencies": {
|
|
40
|
+
"@plurnk/plurnk-service": "*"
|
|
38
41
|
}
|
|
39
42
|
}
|