@plurnk/plurnk 0.2.0 → 0.3.1
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/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +115 -12
- package/dist/dispatcher.js.map +1 -1
- package/dist/subcommands.d.ts +21 -0
- package/dist/subcommands.d.ts.map +1 -0
- package/dist/subcommands.js +109 -0
- package/dist/subcommands.js.map +1 -0
- package/package.json +1 -1
package/dist/dispatcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,cAAc,GAAU,KAAK,MAAM,GAAG,SAAS,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAIxF,CAAC;AAIF,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,IAKrE,CAAC;AAqKF,eAAO,MAAM,IAAI,GAAU,MAAM,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAmGvD,CAAC"}
|
package/dist/dispatcher.js
CHANGED
|
@@ -7,6 +7,7 @@ import { isAbsolute, resolve } from "node:path";
|
|
|
7
7
|
import Rpc from "./rpc.js";
|
|
8
8
|
import { runCli } from "./cli.js";
|
|
9
9
|
import { runTui } from "./tui.js";
|
|
10
|
+
import { runModels, runSessionList, runSessionRuns, runLogRead } from "./subcommands.js";
|
|
10
11
|
// Read all of stdin to EOF. Called when stdin is piped (not a TTY) — never
|
|
11
12
|
// blocks an interactive session because we gate on isTTY upstream.
|
|
12
13
|
const readStdin = async () => {
|
|
@@ -37,11 +38,17 @@ export const resolveProjectRoot = (raw) => {
|
|
|
37
38
|
};
|
|
38
39
|
const USAGE = `usage: plurnk [--json] [--session <name>] [--run <name>] [--model <alias>] [prompt...]
|
|
39
40
|
<piped stdin> | plurnk [options] [prompt...]
|
|
41
|
+
plurnk models [--json]
|
|
42
|
+
plurnk session list [--json]
|
|
43
|
+
plurnk session runs <name> [--json]
|
|
44
|
+
plurnk log read --session <name> [--run <name>]
|
|
45
|
+
[--loop <id>] [--turn <id>] [--since <id>] [--limit <n>] [--json]
|
|
40
46
|
|
|
41
47
|
Connects to the plurnk-service daemon. Run a single prompt one-shot
|
|
42
48
|
(positional args, piped stdin, or both — positionals come first, stdin
|
|
43
49
|
is appended after a blank line). With no positionals and a TTY stdin,
|
|
44
|
-
enters the interactive REPL.
|
|
50
|
+
enters the interactive REPL. Read-only subcommands (models / session list /
|
|
51
|
+
log read) inspect daemon state without running a loop.
|
|
45
52
|
|
|
46
53
|
env:
|
|
47
54
|
PLURNK_URL daemon WebSocket URL (default ws://127.0.0.1:3044)
|
|
@@ -79,6 +86,16 @@ options:
|
|
|
79
86
|
passed on every loop.run. Overrides PLURNK_PERSONA.
|
|
80
87
|
--yolo auto-accept every proposal locally without prompting.
|
|
81
88
|
Overrides PLURNK_YOLO.
|
|
89
|
+
--loop <id> (log read) filter to a single loop id
|
|
90
|
+
--turn <id> (log read) filter to a single turn id
|
|
91
|
+
--since <id> (log read) return entries with id > <id>
|
|
92
|
+
--limit <n> (log read) max entries to return (default 100)
|
|
93
|
+
|
|
94
|
+
subcommands:
|
|
95
|
+
models list configured model aliases (providers.list)
|
|
96
|
+
session list list sessions on the daemon (session.list)
|
|
97
|
+
session runs <name> list runs in the named session (session.runs)
|
|
98
|
+
log read --session ... read log entries from the named session's run
|
|
82
99
|
`;
|
|
83
100
|
const die = (code, message) => {
|
|
84
101
|
process.stderr.write(`${message}\n`);
|
|
@@ -104,6 +121,73 @@ const attachOrCreateSession = async (rpc, opts) => {
|
|
|
104
121
|
attachParams.runName = opts.runName;
|
|
105
122
|
return await rpc.call("session.attach", attachParams);
|
|
106
123
|
};
|
|
124
|
+
// Parse a string-valued integer flag, throwing if non-numeric. Used for
|
|
125
|
+
// log.read filter flags (--loop / --turn / --since / --limit) since
|
|
126
|
+
// parseArgs stores their raw string values regardless of intent.
|
|
127
|
+
const parseIntFlag = (raw, name) => {
|
|
128
|
+
if (raw === undefined)
|
|
129
|
+
return undefined;
|
|
130
|
+
const n = Number(raw);
|
|
131
|
+
if (!Number.isInteger(n) || n < 0)
|
|
132
|
+
throw new Error(`${name} must be a non-negative integer, got ${JSON.stringify(raw)}`);
|
|
133
|
+
return n;
|
|
134
|
+
};
|
|
135
|
+
// Dispatch a positional-driven subcommand. Caller has already connected the
|
|
136
|
+
// Rpc. Returns the exit code the dispatcher should propagate.
|
|
137
|
+
const runSubcommand = async (rpc, positionals, opts) => {
|
|
138
|
+
const verb = positionals[0];
|
|
139
|
+
const sub = positionals[1];
|
|
140
|
+
if (verb === "models") {
|
|
141
|
+
if (positionals.length > 1)
|
|
142
|
+
die(64, `plurnk models: unexpected arguments after 'models': ${positionals.slice(1).join(" ")}`);
|
|
143
|
+
return await runModels(rpc, { json: opts.json });
|
|
144
|
+
}
|
|
145
|
+
if (verb === "session") {
|
|
146
|
+
if (sub === "list") {
|
|
147
|
+
if (positionals.length > 2)
|
|
148
|
+
die(64, `plurnk session list: unexpected arguments: ${positionals.slice(2).join(" ")}`);
|
|
149
|
+
return await runSessionList(rpc, { json: opts.json });
|
|
150
|
+
}
|
|
151
|
+
if (sub === "runs") {
|
|
152
|
+
const name = positionals[2];
|
|
153
|
+
if (name === undefined)
|
|
154
|
+
die(64, "plurnk session runs: missing session name. Usage: plurnk session runs <name>");
|
|
155
|
+
if (positionals.length > 3)
|
|
156
|
+
die(64, `plurnk session runs: unexpected arguments: ${positionals.slice(3).join(" ")}`);
|
|
157
|
+
return await runSessionRuns(rpc, name, { json: opts.json });
|
|
158
|
+
}
|
|
159
|
+
die(64, `plurnk session: unknown subcommand '${sub ?? "(missing)"}'. Available: list, runs`);
|
|
160
|
+
}
|
|
161
|
+
if (verb === "log") {
|
|
162
|
+
if (sub !== "read") {
|
|
163
|
+
die(64, `plurnk log: unknown subcommand '${sub ?? "(missing)"}'. Available: read`);
|
|
164
|
+
}
|
|
165
|
+
if (opts.sessionName === undefined) {
|
|
166
|
+
die(64, "plurnk log read: requires --session / PLURNK_SESSION (the log lives on a specific session's run)");
|
|
167
|
+
}
|
|
168
|
+
// log.read requires an attached session — same resolution as the loop flows.
|
|
169
|
+
await attachOrCreateSession(rpc, {
|
|
170
|
+
sessionName: opts.sessionName,
|
|
171
|
+
runName: opts.runName,
|
|
172
|
+
projectRoot: opts.projectRoot,
|
|
173
|
+
});
|
|
174
|
+
const filters = {};
|
|
175
|
+
const loopId = parseIntFlag(opts.values.loop, "--loop");
|
|
176
|
+
const turnId = parseIntFlag(opts.values.turn, "--turn");
|
|
177
|
+
const sinceId = parseIntFlag(opts.values.since, "--since");
|
|
178
|
+
const limit = parseIntFlag(opts.values.limit, "--limit");
|
|
179
|
+
if (loopId !== undefined)
|
|
180
|
+
filters.loopId = loopId;
|
|
181
|
+
if (turnId !== undefined)
|
|
182
|
+
filters.turnId = turnId;
|
|
183
|
+
if (sinceId !== undefined)
|
|
184
|
+
filters.sinceId = sinceId;
|
|
185
|
+
if (limit !== undefined)
|
|
186
|
+
filters.limit = limit;
|
|
187
|
+
return await runLogRead(rpc, { json: opts.json, filters });
|
|
188
|
+
}
|
|
189
|
+
return die(64, `plurnk: unknown subcommand '${verb ?? "(missing)"}'`);
|
|
190
|
+
};
|
|
107
191
|
export const main = async (argv) => {
|
|
108
192
|
try {
|
|
109
193
|
process.loadEnvFile(".env");
|
|
@@ -121,22 +205,34 @@ export const main = async (argv) => {
|
|
|
121
205
|
"project-root": { type: "string" },
|
|
122
206
|
persona: { type: "string" },
|
|
123
207
|
yolo: { type: "boolean" },
|
|
208
|
+
// log read filters
|
|
209
|
+
loop: { type: "string" },
|
|
210
|
+
turn: { type: "string" },
|
|
211
|
+
since: { type: "string" },
|
|
212
|
+
limit: { type: "string" },
|
|
124
213
|
},
|
|
125
214
|
});
|
|
126
215
|
if (values.help) {
|
|
127
216
|
process.stdout.write(USAGE);
|
|
128
217
|
process.exit(0);
|
|
129
218
|
}
|
|
130
|
-
//
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
const
|
|
134
|
-
const
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
if (
|
|
139
|
-
|
|
219
|
+
// Subcommand routing happens BEFORE prompt assembly: if positionals[0] is
|
|
220
|
+
// a known read-only subcommand (models / session / log), we skip stdin
|
|
221
|
+
// reading and prompt construction entirely.
|
|
222
|
+
const SUBCOMMANDS = ["models", "session", "log"];
|
|
223
|
+
const subcommand = positionals[0];
|
|
224
|
+
const isSubcommand = subcommand !== undefined && SUBCOMMANDS.includes(subcommand);
|
|
225
|
+
// Assemble the prompt only if we're NOT running a subcommand.
|
|
226
|
+
let prompt = "";
|
|
227
|
+
if (!isSubcommand) {
|
|
228
|
+
const positionalPrompt = positionals.join(" ");
|
|
229
|
+
const stdinPrompt = process.stdin.isTTY === true ? "" : (await readStdin()).trim();
|
|
230
|
+
prompt = positionalPrompt.length > 0 && stdinPrompt.length > 0
|
|
231
|
+
? `${positionalPrompt}\n\n${stdinPrompt}`
|
|
232
|
+
: positionalPrompt || stdinPrompt;
|
|
233
|
+
if (values.json === true && prompt.length === 0) {
|
|
234
|
+
die(64, "plurnk: --json requires a prompt (CLI mode only)");
|
|
235
|
+
}
|
|
140
236
|
}
|
|
141
237
|
// CLI flag overrides env; env overrides nothing.
|
|
142
238
|
const sessionName = values.session ?? process.env.PLURNK_SESSION;
|
|
@@ -172,12 +268,19 @@ export const main = async (argv) => {
|
|
|
172
268
|
die(1, `plurnk: cannot connect to daemon at ${url}\n ${cause instanceof Error ? cause.message : String(cause)}\n\nIs the daemon running? Start it from plurnk-service with:\n node bin/plurnk-service.js start`);
|
|
173
269
|
}
|
|
174
270
|
try {
|
|
271
|
+
const json = values.json === true;
|
|
272
|
+
if (isSubcommand) {
|
|
273
|
+
const exitCode = await runSubcommand(rpc, positionals, {
|
|
274
|
+
json, sessionName, runName, projectRoot, values,
|
|
275
|
+
});
|
|
276
|
+
process.exit(exitCode);
|
|
277
|
+
}
|
|
175
278
|
const session = await attachOrCreateSession(rpc, { sessionName, runName, projectRoot });
|
|
176
279
|
if (prompt.length === 0) {
|
|
177
280
|
await runTui(rpc, session, { modelAlias, persona, yolo });
|
|
178
281
|
process.exit(0);
|
|
179
282
|
}
|
|
180
|
-
const exitCode = await runCli(rpc, prompt, session, { json
|
|
283
|
+
const exitCode = await runCli(rpc, prompt, session, { json, modelAlias, persona, yolo });
|
|
181
284
|
process.exit(exitCode);
|
|
182
285
|
}
|
|
183
286
|
catch (cause) {
|
package/dist/dispatcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,mCAAmC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type Rpc from "./rpc.ts";
|
|
2
|
+
export declare const runModels: (rpc: Rpc, opts: {
|
|
3
|
+
json: boolean;
|
|
4
|
+
}) => Promise<number>;
|
|
5
|
+
export declare const runSessionList: (rpc: Rpc, opts: {
|
|
6
|
+
json: boolean;
|
|
7
|
+
}) => Promise<number>;
|
|
8
|
+
export declare const runSessionRuns: (rpc: Rpc, sessionName: string, opts: {
|
|
9
|
+
json: boolean;
|
|
10
|
+
}) => Promise<number>;
|
|
11
|
+
export interface LogReadFilters {
|
|
12
|
+
loopId?: number;
|
|
13
|
+
turnId?: number;
|
|
14
|
+
sinceId?: number;
|
|
15
|
+
limit?: number;
|
|
16
|
+
}
|
|
17
|
+
export declare const runLogRead: (rpc: Rpc, opts: {
|
|
18
|
+
json: boolean;
|
|
19
|
+
filters: LogReadFilters;
|
|
20
|
+
}) => Promise<number>;
|
|
21
|
+
//# sourceMappingURL=subcommands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subcommands.d.ts","sourceRoot":"","sources":["../src/subcommands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAwBhC,eAAO,MAAM,SAAS,GAAU,KAAK,GAAG,EAAE,MAAM;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,KAAG,OAAO,CAAC,MAAM,CAkBjF,CAAC;AAmBF,eAAO,MAAM,cAAc,GAAU,KAAK,GAAG,EAAE,MAAM;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,KAAG,OAAO,CAAC,MAAM,CAkBtF,CAAC;AAWF,eAAO,MAAM,cAAc,GACvB,KAAK,GAAG,EACR,aAAa,MAAM,EACnB,MAAM;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,KACxB,OAAO,CAAC,MAAM,CAyBhB,CAAC;AAYF,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,UAAU,GACnB,KAAK,GAAG,EACR,MAAM;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,KACjD,OAAO,CAAC,MAAM,CAmBhB,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// Read-only subcommands: `plurnk models`, `plurnk session list`, `plurnk log read`.
|
|
2
|
+
// Each is a thin wrapper around a daemon RPC plus a small renderer; output
|
|
3
|
+
// goes to stdout (the product), trace/errors to stderr — same posture as CLI
|
|
4
|
+
// mode per SPEC.md §2.1.
|
|
5
|
+
import { formatPlain } from "./cli.js";
|
|
6
|
+
// ─── Shared rendering helpers ─────────────────────────────────────────
|
|
7
|
+
// Simple column-aligned table. Renders header + rows; no header borders.
|
|
8
|
+
const renderTable = (headers, rows) => {
|
|
9
|
+
const widths = headers.map((h, i) => Math.max(h.length, ...rows.map((r) => (r[i] ?? "").length)));
|
|
10
|
+
const fmt = (cells) => cells.map((c, i) => c.padEnd(widths[i] ?? 0)).join(" ").trimEnd();
|
|
11
|
+
return [fmt(headers), ...rows.map(fmt)].join("\n");
|
|
12
|
+
};
|
|
13
|
+
export const runModels = async (rpc, opts) => {
|
|
14
|
+
const { aliases } = await rpc.call("providers.list");
|
|
15
|
+
if (opts.json) {
|
|
16
|
+
process.stdout.write(`${JSON.stringify(aliases)}\n`);
|
|
17
|
+
return 0;
|
|
18
|
+
}
|
|
19
|
+
if (aliases.length === 0) {
|
|
20
|
+
process.stdout.write("(no model aliases configured; set PLURNK_MODEL_<alias>=<provider>/<model> on the daemon)\n");
|
|
21
|
+
return 0;
|
|
22
|
+
}
|
|
23
|
+
const rows = aliases.map((a) => [
|
|
24
|
+
a.alias,
|
|
25
|
+
a.provider,
|
|
26
|
+
a.model,
|
|
27
|
+
a.active ? "*" : "",
|
|
28
|
+
]);
|
|
29
|
+
process.stdout.write(`${renderTable(["alias", "provider", "model", "active"], rows)}\n`);
|
|
30
|
+
return 0;
|
|
31
|
+
};
|
|
32
|
+
const formatCost = (picoUsd) => {
|
|
33
|
+
if (picoUsd === 0)
|
|
34
|
+
return "0";
|
|
35
|
+
const usd = picoUsd / 1e12;
|
|
36
|
+
if (usd < 0.01)
|
|
37
|
+
return `$${(usd * 100).toFixed(4)}¢`;
|
|
38
|
+
return `$${usd.toFixed(4)}`;
|
|
39
|
+
};
|
|
40
|
+
export const runSessionList = async (rpc, opts) => {
|
|
41
|
+
const { sessions } = await rpc.call("session.list");
|
|
42
|
+
if (opts.json) {
|
|
43
|
+
process.stdout.write(`${JSON.stringify(sessions)}\n`);
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
if (sessions.length === 0) {
|
|
47
|
+
process.stdout.write("(no sessions; run `plurnk` to create one)\n");
|
|
48
|
+
return 0;
|
|
49
|
+
}
|
|
50
|
+
const rows = sessions.map((s) => [
|
|
51
|
+
s.name,
|
|
52
|
+
s.project_root ?? "(headless)",
|
|
53
|
+
s.created_at,
|
|
54
|
+
formatCost(s.cost_pico),
|
|
55
|
+
]);
|
|
56
|
+
process.stdout.write(`${renderTable(["name", "project_root", "created", "cost"], rows)}\n`);
|
|
57
|
+
return 0;
|
|
58
|
+
};
|
|
59
|
+
export const runSessionRuns = async (rpc, sessionName, opts) => {
|
|
60
|
+
// Look up the session id by name without attaching — session.runs accepts
|
|
61
|
+
// an explicit id, so we don't need to spend an attach on a read-only call.
|
|
62
|
+
const { sessions } = await rpc.call("session.list");
|
|
63
|
+
const matches = sessions.filter((s) => s.name === sessionName);
|
|
64
|
+
if (matches.length === 0) {
|
|
65
|
+
process.stderr.write(`plurnk session runs: no session named ${JSON.stringify(sessionName)}\n`);
|
|
66
|
+
return 1;
|
|
67
|
+
}
|
|
68
|
+
if (matches.length > 1) {
|
|
69
|
+
process.stderr.write(`plurnk session runs: ${matches.length} sessions named ${JSON.stringify(sessionName)}; pick a unique name\n`);
|
|
70
|
+
return 1;
|
|
71
|
+
}
|
|
72
|
+
const { runs } = await rpc.call("session.runs", { id: matches[0].id });
|
|
73
|
+
if (opts.json) {
|
|
74
|
+
process.stdout.write(`${JSON.stringify(runs)}\n`);
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
if (runs.length === 0) {
|
|
78
|
+
process.stdout.write(`(session ${JSON.stringify(sessionName)} has no runs)\n`);
|
|
79
|
+
return 0;
|
|
80
|
+
}
|
|
81
|
+
const rows = runs.map((r) => [r.name, r.created_at, formatCost(r.cost_pico)]);
|
|
82
|
+
process.stdout.write(`${renderTable(["name", "created", "cost"], rows)}\n`);
|
|
83
|
+
return 0;
|
|
84
|
+
};
|
|
85
|
+
export const runLogRead = async (rpc, opts) => {
|
|
86
|
+
const params = {};
|
|
87
|
+
if (opts.filters.loopId !== undefined)
|
|
88
|
+
params.loopId = opts.filters.loopId;
|
|
89
|
+
if (opts.filters.turnId !== undefined)
|
|
90
|
+
params.turnId = opts.filters.turnId;
|
|
91
|
+
if (opts.filters.sinceId !== undefined)
|
|
92
|
+
params.sinceId = opts.filters.sinceId;
|
|
93
|
+
if (opts.filters.limit !== undefined)
|
|
94
|
+
params.limit = opts.filters.limit;
|
|
95
|
+
const { entries } = await rpc.call("log.read", params);
|
|
96
|
+
if (opts.json) {
|
|
97
|
+
process.stdout.write(`${JSON.stringify(entries)}\n`);
|
|
98
|
+
return 0;
|
|
99
|
+
}
|
|
100
|
+
if (entries.length === 0) {
|
|
101
|
+
process.stdout.write("(no entries match)\n");
|
|
102
|
+
return 0;
|
|
103
|
+
}
|
|
104
|
+
for (const entry of entries) {
|
|
105
|
+
process.stdout.write(`${formatPlain(entry)}\n`);
|
|
106
|
+
}
|
|
107
|
+
return 0;
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=subcommands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subcommands.js","sourceRoot":"","sources":["../src/subcommands.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED