@plurnk/plurnk 0.6.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 +15 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +136 -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 +37 -1
- package/dist/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +204 -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 +11 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +91 -20
- 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 +15 -4
- package/dist/stream.d.ts.map +1 -1
- package/dist/stream.js +70 -31
- 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 +2 -2
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +22 -13
- package/dist/telemetry.js.map +1 -1
- package/dist/tui.d.ts +26 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +357 -27
- package/dist/tui.js.map +1 -1
- package/package.json +4 -1
package/dist/telemetry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
|
package/dist/tui.d.ts
CHANGED
|
@@ -1,12 +1,37 @@
|
|
|
1
|
+
import readline from "node:readline";
|
|
1
2
|
import type Rpc from "./rpc.ts";
|
|
2
3
|
interface SessionResult {
|
|
3
4
|
id: number;
|
|
4
5
|
name: string;
|
|
5
6
|
}
|
|
7
|
+
export declare const VERBS: readonly ["help", "models", "sessions", "runs", "log", "model", "yolo", "new", "stop", "quit", "pick", "hide", "view", "drop", "members", "import"];
|
|
8
|
+
export declare const TUI_HELP: string;
|
|
9
|
+
export declare const parseSlash: (line: string) => {
|
|
10
|
+
verb: string;
|
|
11
|
+
rest: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const makeCompleter: (getAliases: () => string[], cwd: string) => (line: string, callback: (err: null, result: [string[], string]) => void) => void;
|
|
14
|
+
export declare const seedPromptHistory: (rpc: Rpc, sessionId: number, rl: readline.Interface) => Promise<void>;
|
|
15
|
+
export interface VerbContext {
|
|
16
|
+
rpc: Rpc;
|
|
17
|
+
opts: {
|
|
18
|
+
modelAlias?: string;
|
|
19
|
+
yolo: boolean;
|
|
20
|
+
projectRoot?: string | null;
|
|
21
|
+
};
|
|
22
|
+
getSession: () => SessionResult;
|
|
23
|
+
setSession: (s: SessionResult) => void;
|
|
24
|
+
write: (s: string) => void;
|
|
25
|
+
importFile: (path: string) => Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
export declare const handleVerb: (line: string, ctx: VerbContext) => Promise<"quit" | undefined>;
|
|
6
28
|
export declare const runTui: (rpc: Rpc, session: SessionResult, opts: {
|
|
7
29
|
modelAlias?: string;
|
|
8
|
-
persona?: string;
|
|
9
30
|
yolo: boolean;
|
|
31
|
+
loopFlags?: Record<string, unknown>;
|
|
32
|
+
maxTurns?: number;
|
|
33
|
+
projectRoot?: string | null;
|
|
34
|
+
versionNotice?: string;
|
|
10
35
|
}) => Promise<void>;
|
|
11
36
|
export {};
|
|
12
37
|
//# sourceMappingURL=tui.d.ts.map
|
package/dist/tui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAcA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAMrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAoBhC,UAAU,aAAa;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAIpD,eAAO,MAAM,KAAK,qJAIR,CAAC;AAEX,eAAO,MAAM,QAAQ,QAcF,CAAC;AAEpB,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAGrE,CAAC;AAOF,eAAO,MAAM,aAAa,GAAI,YAAY,MAAM,MAAM,EAAE,EAAE,KAAK,MAAM,MAChE,MAAM,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,KAAK,IAAI,KAAG,IAsB1E,CAAC;AAKN,eAAO,MAAM,iBAAiB,GAAU,KAAK,GAAG,EAAE,WAAW,MAAM,EAAE,IAAI,QAAQ,CAAC,SAAS,KAAG,OAAO,CAAC,IAAI,CAKzG,CAAC;AAKF,MAAM,WAAW,WAAW;IACxB,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC1E,UAAU,EAAE,MAAM,aAAa,CAAC;IAChC,UAAU,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,UAAU,GAAU,MAAM,MAAM,EAAE,KAAK,WAAW,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CA2E3F,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,KAAK,GAAG,EAAE,SAAS,aAAa,EAAE,MAAM;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IACvD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACvD,KAAG,OAAO,CAAC,IAAI,CAsQf,CAAC"}
|
package/dist/tui.js
CHANGED
|
@@ -1,39 +1,295 @@
|
|
|
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
|
+
// ... msg loop.inject — speak into the running model loop
|
|
9
|
+
// ? text ask — loop.run with flags.mode="ask"
|
|
10
|
+
// : text act (the default)
|
|
11
|
+
// text prompt
|
|
12
|
+
// The readline prompt is `: ` — it rhymes with nvim's cmdline; when an
|
|
13
|
+
// ask-default toggle exists (nvim first), the prompt char flips to `? `.
|
|
3
14
|
import readline from "node:readline";
|
|
4
|
-
import {
|
|
15
|
+
import { PassThrough } from "node:stream";
|
|
16
|
+
import { readFile } from "node:fs/promises";
|
|
17
|
+
import { isAbsolute, resolve } from "node:path";
|
|
18
|
+
import PasteFilter from "./paste.js";
|
|
19
|
+
import { pathPartial, completePath, dslOpPartial, completeOps } from "./completion.js";
|
|
20
|
+
import { renderLogEntry, renderSummary, isPromptEntry, coordLabel } from "./render.js";
|
|
5
21
|
import { reviewProposal, isServerResolved } from "./proposal.js";
|
|
6
|
-
import { renderTelemetryEvent } from "./telemetry.js";
|
|
7
|
-
import {
|
|
22
|
+
import { renderTelemetryEvent, report, clientSubcommandUnknownVerb } from "./telemetry.js";
|
|
23
|
+
import StreamTrace, { inlineable, renderInline } from "./stream.js";
|
|
24
|
+
import { runModels, runSessionList, runSessionRuns, runLogRead } from "./subcommands.js";
|
|
25
|
+
// One verb vocabulary across nvim's :AI/, the TUI, and (where they exist)
|
|
26
|
+
// the argv subcommands. Convergence is policy: divergence needs a reason.
|
|
27
|
+
export const VERBS = [
|
|
28
|
+
"help", "models", "sessions", "runs", "log", "model",
|
|
29
|
+
"yolo", "new", "stop", "quit",
|
|
30
|
+
"pick", "hide", "view", "drop", "members", "import",
|
|
31
|
+
];
|
|
32
|
+
export const TUI_HELP = [
|
|
33
|
+
" /models /sessions /runs /log [n] inspect (same tables as the CLI)",
|
|
34
|
+
" /model <alias> model for subsequent loops",
|
|
35
|
+
" /yolo toggle local auto-accept",
|
|
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",
|
|
43
|
+
" /stop cancel the running loop",
|
|
44
|
+
" /quit exit",
|
|
45
|
+
" << raw DSL ! cmd (exec) ... inject ? ask : act",
|
|
46
|
+
].join("\n") + "\n";
|
|
47
|
+
export const parseSlash = (line) => {
|
|
48
|
+
const m = line.match(/^\/(\S*)\s*(.*)$/);
|
|
49
|
+
return { verb: m?.[1] ?? "", rest: (m?.[2] ?? "").trim() };
|
|
50
|
+
};
|
|
51
|
+
// readline completer — verbs after `/`, model aliases after `/model `.
|
|
52
|
+
// Plain readline machinery only; no screen takeover, no terminal hell.
|
|
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) => {
|
|
57
|
+
const verbFrag = line.match(/^\/(\w*)$/);
|
|
58
|
+
if (verbFrag) {
|
|
59
|
+
callback(null, [VERBS.map((v) => `/${v}`).filter((v) => v.startsWith(line)), line]);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const aliasFrag = line.match(/^\/model\s+(\S*)$/);
|
|
63
|
+
if (aliasFrag) {
|
|
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;
|
|
192
|
+
}
|
|
193
|
+
};
|
|
8
194
|
export const runTui = async (rpc, session, opts) => {
|
|
195
|
+
let current = session;
|
|
196
|
+
// Highest loop_seq the waterfall has shown — the next prompt is one beyond.
|
|
197
|
+
let lastLoopSeq = 0;
|
|
9
198
|
// Subscribe to log/entry notifications — render each as a waterfall line.
|
|
10
199
|
// `\r\x1b[2K` wipes any readline-redrawn prompt sitting on the current line
|
|
11
|
-
// before our output, otherwise the first trace line lands beside
|
|
200
|
+
// before our output, otherwise the first trace line lands beside the prompt.
|
|
12
201
|
rpc.onNotification("log/entry", (params) => {
|
|
13
202
|
const p = params;
|
|
203
|
+
if (p.entry.loop_seq > lastLoopSeq)
|
|
204
|
+
lastLoopSeq = p.entry.loop_seq;
|
|
205
|
+
// The typed line at the prompt is the user's record — rendering the
|
|
206
|
+
// prompt broadcast too would duplicate it (see isPromptEntry).
|
|
207
|
+
if (isPromptEntry(p.entry))
|
|
208
|
+
return;
|
|
14
209
|
process.stdout.write(`\r\x1b[2K${renderLogEntry(p.entry)}\n`);
|
|
15
210
|
});
|
|
16
|
-
// telemetry/event — interleaved with the trace waterfall.
|
|
17
|
-
// dance as log/entry so the rendered event doesn't collide with the
|
|
18
|
-
// readline prompt.
|
|
211
|
+
// telemetry/event — interleaved with the trace waterfall.
|
|
19
212
|
rpc.onNotification("telemetry/event", (params) => {
|
|
20
213
|
const p = params;
|
|
21
214
|
process.stdout.write(`\r\x1b[2K${renderTelemetryEvent(p.event)}\n`);
|
|
22
215
|
});
|
|
23
|
-
//
|
|
24
|
-
//
|
|
216
|
+
// Streams, coalesced: one start line, one conclusion line, and tiny
|
|
217
|
+
// concluded outputs inlined (the single bounded content fetch the TUI
|
|
218
|
+
// makes — SPEC §5.3; the content IS the optics at two lines).
|
|
219
|
+
const streams = new StreamTrace();
|
|
25
220
|
rpc.onNotification("stream/event", (params) => {
|
|
26
|
-
|
|
221
|
+
const line = streams.event(params);
|
|
222
|
+
if (line !== null)
|
|
223
|
+
process.stdout.write(`\r\x1b[2K${line}\n`);
|
|
27
224
|
});
|
|
28
225
|
rpc.onNotification("stream/concluded", (params) => {
|
|
29
|
-
|
|
226
|
+
const p = params;
|
|
227
|
+
process.stdout.write(`\r\x1b[2K${streams.concluded(p)}\n`);
|
|
228
|
+
void rpc.call("entry.read", { target: p.target }).then((r) => {
|
|
229
|
+
const channels = r.entry?.channels ?? {};
|
|
230
|
+
for (const name of ["stdout", "stderr"]) {
|
|
231
|
+
const content = channels[name]?.content;
|
|
232
|
+
if (typeof content === "string" && inlineable(content)) {
|
|
233
|
+
process.stdout.write(`\r\x1b[2K${renderInline(name, content)}\n`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}).catch(() => { });
|
|
30
237
|
});
|
|
31
|
-
|
|
238
|
+
if (opts.versionNotice !== undefined)
|
|
239
|
+
process.stdout.write(`\x1b[2m${opts.versionNotice}\x1b[0m\n`);
|
|
240
|
+
process.stdout.write(`\x1b[2mplurnk · /help for the language · ctrl-c to quit · session: ${current.name}\x1b[0m\n\n`);
|
|
241
|
+
// Alias cache for /model completion — one cheap RPC, refreshed never
|
|
242
|
+
// (aliases are daemon-boot-time config).
|
|
243
|
+
let aliasCache = [];
|
|
244
|
+
void rpc.call("providers.list").then((r) => {
|
|
245
|
+
const aliases = r.aliases;
|
|
246
|
+
if (Array.isArray(aliases))
|
|
247
|
+
aliasCache = aliases.map((a) => a.alias);
|
|
248
|
+
}).catch(() => { });
|
|
249
|
+
// The prompt is the user's row, restricted to WIDTH-STABLE glyphs —
|
|
250
|
+
// settled empirically in two rounds. Round 1 (` 👤 ✉️ ✅ 201 : `)
|
|
251
|
+
// drifted by exactly one column: ✉️ is U+2709+VS16, the variation-
|
|
252
|
+
// selector class terminals genuinely cell-count differently; readline
|
|
253
|
+
// repositions the cursor at its own computed width on every
|
|
254
|
+
// history-nav/backspace/completion refresh, so the disagreement shows
|
|
255
|
+
// as text shift. Round 2 (bare ` : `) fixed the drift but destroyed
|
|
256
|
+
// the row identity. 👤 (U+1F464) and ✅ (U+2705) are plain East-Asian-
|
|
257
|
+
// Wide — width 2 in node AND every major terminal — so they stay; the
|
|
258
|
+
// 201 is the contract constant (the prompt row is always a 201 EDIT);
|
|
259
|
+
// 💬 (U+1F4AC, stable-wide) fills the op slot the toxic ✉️ vacated.
|
|
260
|
+
// Policy: VS16/ambiguous glyphs are banned from the ENTIRE palette
|
|
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");
|
|
32
283
|
const rl = readline.createInterface({
|
|
33
|
-
input
|
|
284
|
+
input,
|
|
34
285
|
output: process.stdout,
|
|
35
|
-
|
|
286
|
+
terminal: true,
|
|
287
|
+
prompt: buildPrompt(),
|
|
288
|
+
completer: makeCompleter(() => aliasCache, process.cwd()),
|
|
36
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);
|
|
37
293
|
// Proposal lifecycle: server-resolved proposals (flags.yolo/noProposals)
|
|
38
294
|
// settle in-process — skip; --yolo auto-accepts locally; otherwise pause
|
|
39
295
|
// readline, review, resolve, resume.
|
|
@@ -57,48 +313,119 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
57
313
|
}
|
|
58
314
|
})();
|
|
59
315
|
});
|
|
60
|
-
|
|
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");
|
|
328
|
+
}
|
|
329
|
+
catch (cause) {
|
|
330
|
+
process.stdout.write(` not readable: ${cause instanceof Error ? cause.message : String(cause)}\n`);
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
333
|
+
rl.write(paste.stash(content));
|
|
334
|
+
},
|
|
335
|
+
};
|
|
336
|
+
reprompt();
|
|
61
337
|
return new Promise((resolve) => {
|
|
62
338
|
let inFlight = false;
|
|
63
339
|
let cancelRequested = false;
|
|
64
340
|
rl.on("line", async (line) => {
|
|
65
|
-
|
|
341
|
+
// Expand any paste markers back to the raw multi-line text.
|
|
342
|
+
const trimmed = paste.expand(line).trim();
|
|
66
343
|
if (trimmed.length === 0) {
|
|
67
|
-
|
|
344
|
+
reprompt();
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
// Verbs: /stop and /help stay reachable while a loop is in
|
|
348
|
+
// flight — /stop is precisely the mid-loop verb.
|
|
349
|
+
if (trimmed.startsWith("/")) {
|
|
350
|
+
const { verb } = parseSlash(trimmed);
|
|
351
|
+
if (inFlight && verb !== "stop" && verb !== "help" && verb !== "") {
|
|
352
|
+
process.stdout.write(" \x1b[2m(busy; /stop to cancel, /help for the language)\x1b[0m\n");
|
|
353
|
+
reprompt();
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
try {
|
|
357
|
+
if (await handleVerb(trimmed, verbCtx) === "quit") {
|
|
358
|
+
rl.close();
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
catch (cause) {
|
|
363
|
+
const msg = cause instanceof Error ? cause.message : String(cause);
|
|
364
|
+
process.stdout.write(` \x1b[31merror: ${msg}\x1b[0m\n`);
|
|
365
|
+
}
|
|
366
|
+
reprompt();
|
|
68
367
|
return;
|
|
69
368
|
}
|
|
70
369
|
if (inFlight) {
|
|
71
|
-
|
|
72
|
-
|
|
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();
|
|
73
384
|
return;
|
|
74
385
|
}
|
|
75
386
|
inFlight = true;
|
|
76
387
|
const start = Date.now();
|
|
77
|
-
let tokenCount = 0;
|
|
78
388
|
let turnCount = 0;
|
|
79
389
|
let finalStatus = 0;
|
|
80
390
|
let hitMaxTurns = false;
|
|
391
|
+
let usage;
|
|
81
392
|
try {
|
|
82
393
|
if (trimmed.startsWith("<<")) {
|
|
83
394
|
// Raw DSL: send to op.parse
|
|
84
395
|
const result = await rpc.call("op.parse", { text: trimmed });
|
|
85
396
|
finalStatus = result.results[result.results.length - 1]?.status ?? 0;
|
|
86
397
|
}
|
|
398
|
+
else if (trimmed.startsWith("!")) {
|
|
399
|
+
// `! cmd` — exec via the daemon (proposal-gated like any
|
|
400
|
+
// side effect; output streams as stream/event traces).
|
|
401
|
+
const command = trimmed.replace(/^!+\s*/, "");
|
|
402
|
+
const result = await rpc.call("op.exec", { command });
|
|
403
|
+
finalStatus = result.status;
|
|
404
|
+
}
|
|
87
405
|
else {
|
|
88
|
-
// Prompt
|
|
89
|
-
|
|
406
|
+
// Prompt. `? ` = ask (read-only loop, flags.mode="ask");
|
|
407
|
+
// `: ` = act. Per-line prefix overrides --flags mode.
|
|
408
|
+
let lineFlags = opts.loopFlags;
|
|
409
|
+
const prefix = trimmed[0];
|
|
410
|
+
if (prefix === "?" || prefix === ":") {
|
|
411
|
+
lineFlags = { ...(opts.loopFlags ?? {}), mode: prefix === "?" ? "ask" : "act" };
|
|
412
|
+
}
|
|
413
|
+
const promptText = trimmed.replace(/^(\.\.\.|[?:]+)\s*/, "");
|
|
414
|
+
const loopParams = { prompt: promptText };
|
|
90
415
|
if (opts.modelAlias !== undefined)
|
|
91
416
|
loopParams.alias = opts.modelAlias;
|
|
92
|
-
if (
|
|
93
|
-
loopParams.
|
|
417
|
+
if (lineFlags !== undefined && Object.keys(lineFlags).length > 0)
|
|
418
|
+
loopParams.flags = lineFlags;
|
|
419
|
+
if (opts.maxTurns !== undefined)
|
|
420
|
+
loopParams.maxTurns = opts.maxTurns;
|
|
94
421
|
const result = await rpc.call("loop.run", loopParams);
|
|
95
422
|
finalStatus = result.finalStatus;
|
|
96
423
|
hitMaxTurns = result.hitMaxTurns;
|
|
97
424
|
turnCount = result.turnIds.length;
|
|
98
|
-
|
|
425
|
+
usage = result.usage;
|
|
99
426
|
}
|
|
100
427
|
const wallMs = Date.now() - start;
|
|
101
|
-
process.stdout.write(`${renderSummary(turnCount, wallMs,
|
|
428
|
+
process.stdout.write(`${renderSummary(turnCount, wallMs, finalStatus, hitMaxTurns, usage)}\n`);
|
|
102
429
|
}
|
|
103
430
|
catch (cause) {
|
|
104
431
|
const msg = cause instanceof Error ? cause.message : String(cause);
|
|
@@ -107,10 +434,13 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
107
434
|
finally {
|
|
108
435
|
inFlight = false;
|
|
109
436
|
cancelRequested = false;
|
|
110
|
-
|
|
437
|
+
reprompt();
|
|
111
438
|
}
|
|
112
439
|
});
|
|
113
440
|
rl.on("close", () => {
|
|
441
|
+
process.stdout.write("\x1b[?2004l");
|
|
442
|
+
process.stdin.off("data", onStdin);
|
|
443
|
+
process.stdin.setRawMode?.(false);
|
|
114
444
|
process.stdout.write("\n");
|
|
115
445
|
resolve();
|
|
116
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":"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"}
|
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
|
}
|