@plurnk/plurnk 0.3.1 → 0.4.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.map +1 -1
- package/dist/cli.js +8 -0
- package/dist/cli.js.map +1 -1
- package/dist/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +49 -26
- package/dist/dispatcher.js.map +1 -1
- package/dist/subcommands.d.ts.map +1 -1
- package/dist/subcommands.js +3 -2
- package/dist/subcommands.js.map +1 -1
- package/dist/telemetry.d.ts +45 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +196 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +8 -0
- package/dist/tui.js.map +1 -1
- package/package.json +2 -1
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAchD,UAAU,aAAa;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAEpD,eAAO,MAAM,WAAW,GAAI,OAAO,YAAY,KAAG,MAWjD,CAAC;AAMF,eAAO,MAAM,mBAAmB,GAAI,OAAO,YAAY,KAAG,OAKL,CAAC;AAEtD,eAAO,MAAM,eAAe,GAAI,WAAW,OAAO,KAAG,MAOpD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,KAAK,GAAG,EAAE,QAAQ,MAAM,EAAE,SAAS,aAAa,EAAE,MAAM;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,KAAG,OAAO,CAAC,MAAM,CA4D5K,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// body lands on stdout (§5.4). Suitable for piping to grep / awk / head / jq.
|
|
5
5
|
import { extractSendBody } from "./render.js";
|
|
6
6
|
import { reviewProposal } from "./proposal.js";
|
|
7
|
+
import { report, clientProposalNoTtyReview } from "./telemetry.js";
|
|
7
8
|
export const formatPlain = (entry) => {
|
|
8
9
|
// Render what the wire says — no synthesis. Bare pathname when scheme
|
|
9
10
|
// is null; full URI when scheme is present.
|
|
@@ -50,6 +51,12 @@ export const runCli = async (rpc, prompt, session, opts) => {
|
|
|
50
51
|
if (out.length > 0)
|
|
51
52
|
process.stdout.write(`${out}\n`);
|
|
52
53
|
});
|
|
54
|
+
// telemetry/event — parse errors, engine rail signals, scheme/provider
|
|
55
|
+
// failures. Routed through the unified renderer per SPEC.md §8.
|
|
56
|
+
rpc.onNotification("telemetry/event", (params) => {
|
|
57
|
+
const p = params;
|
|
58
|
+
report(p.event);
|
|
59
|
+
});
|
|
53
60
|
// Proposal lifecycle (plurnk-service #42): pause-and-review for side-effecting
|
|
54
61
|
// ops. Three paths:
|
|
55
62
|
// - --yolo: auto-accept locally without prompting (server still sends the notification).
|
|
@@ -63,6 +70,7 @@ export const runCli = async (rpc, prompt, session, opts) => {
|
|
|
63
70
|
return;
|
|
64
71
|
}
|
|
65
72
|
if (process.stdin.isTTY !== true) {
|
|
73
|
+
report(clientProposalNoTtyReview(p.logEntryId));
|
|
66
74
|
await rpc.call("loop.resolve", {
|
|
67
75
|
logEntryId: p.logEntryId,
|
|
68
76
|
decision: "reject",
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,8EAA8E;AAI9E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
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":"AAsCA,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;AAiLF,eAAO,MAAM,IAAI,GAAU,MAAM,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAoHvD,CAAC"}
|
package/dist/dispatcher.js
CHANGED
|
@@ -8,6 +8,7 @@ import Rpc from "./rpc.js";
|
|
|
8
8
|
import { runCli } from "./cli.js";
|
|
9
9
|
import { runTui } from "./tui.js";
|
|
10
10
|
import { runModels, runSessionList, runSessionRuns, runLogRead } from "./subcommands.js";
|
|
11
|
+
import { TelemetryError, report, clientConnectionRefused, clientFlagInvalid, clientFlagMissingDependency, clientIoPersonaReadFailed, clientRuntimeError, clientSubcommandMissingArgument, clientSubcommandSessionNotFound, clientSubcommandSessionAmbiguous, clientSubcommandUnknownVerb, } from "./telemetry.js";
|
|
11
12
|
// Read all of stdin to EOF. Called when stdin is piped (not a TTY) — never
|
|
12
13
|
// blocks an interactive session because we gate on isTTY upstream.
|
|
13
14
|
const readStdin = async () => {
|
|
@@ -33,7 +34,7 @@ export const resolveProjectRoot = (raw) => {
|
|
|
33
34
|
if (raw.length === 0)
|
|
34
35
|
return null;
|
|
35
36
|
if (!isAbsolute(raw))
|
|
36
|
-
throw new
|
|
37
|
+
throw new TelemetryError(clientFlagInvalid("--project-root", raw, "must be an absolute path"));
|
|
37
38
|
return raw;
|
|
38
39
|
};
|
|
39
40
|
const USAGE = `usage: plurnk [--json] [--session <name>] [--run <name>] [--model <alias>] [prompt...]
|
|
@@ -97,8 +98,10 @@ subcommands:
|
|
|
97
98
|
session runs <name> list runs in the named session (session.runs)
|
|
98
99
|
log read --session ... read log entries from the named session's run
|
|
99
100
|
`;
|
|
100
|
-
|
|
101
|
-
|
|
101
|
+
// Render a telemetry event to stderr and exit. Single egress point so every
|
|
102
|
+
// fatal client signal uses the unified shape from telemetry.ts.
|
|
103
|
+
const dieWith = (code, event) => {
|
|
104
|
+
report(event);
|
|
102
105
|
process.exit(code);
|
|
103
106
|
};
|
|
104
107
|
// Resolve the session by name (via session.list filter) or create a fresh one.
|
|
@@ -111,10 +114,12 @@ const attachOrCreateSession = async (rpc, opts) => {
|
|
|
111
114
|
const { sessions } = await rpc.call("session.list");
|
|
112
115
|
const matches = sessions.filter((s) => s.name === opts.sessionName);
|
|
113
116
|
if (matches.length === 0) {
|
|
114
|
-
|
|
117
|
+
const ev = clientSubcommandSessionNotFound(opts.sessionName);
|
|
118
|
+
ev.hints = ["run without --session to create a fresh session"];
|
|
119
|
+
throw new TelemetryError(ev);
|
|
115
120
|
}
|
|
116
121
|
if (matches.length > 1) {
|
|
117
|
-
throw new
|
|
122
|
+
throw new TelemetryError(clientSubcommandSessionAmbiguous(opts.sessionName, matches.length));
|
|
118
123
|
}
|
|
119
124
|
const attachParams = { id: matches[0].id };
|
|
120
125
|
if (opts.runName !== undefined)
|
|
@@ -129,7 +134,7 @@ const parseIntFlag = (raw, name) => {
|
|
|
129
134
|
return undefined;
|
|
130
135
|
const n = Number(raw);
|
|
131
136
|
if (!Number.isInteger(n) || n < 0)
|
|
132
|
-
throw new
|
|
137
|
+
throw new TelemetryError(clientFlagInvalid(name, raw, "must be a non-negative integer"));
|
|
133
138
|
return n;
|
|
134
139
|
};
|
|
135
140
|
// Dispatch a positional-driven subcommand. Caller has already connected the
|
|
@@ -138,32 +143,36 @@ const runSubcommand = async (rpc, positionals, opts) => {
|
|
|
138
143
|
const verb = positionals[0];
|
|
139
144
|
const sub = positionals[1];
|
|
140
145
|
if (verb === "models") {
|
|
141
|
-
if (positionals.length > 1)
|
|
142
|
-
|
|
146
|
+
if (positionals.length > 1) {
|
|
147
|
+
throw new TelemetryError(clientSubcommandUnknownVerb(`models ${positionals.slice(1).join(" ")}`));
|
|
148
|
+
}
|
|
143
149
|
return await runModels(rpc, { json: opts.json });
|
|
144
150
|
}
|
|
145
151
|
if (verb === "session") {
|
|
146
152
|
if (sub === "list") {
|
|
147
|
-
if (positionals.length > 2)
|
|
148
|
-
|
|
153
|
+
if (positionals.length > 2) {
|
|
154
|
+
throw new TelemetryError(clientSubcommandUnknownVerb(`session list ${positionals.slice(2).join(" ")}`));
|
|
155
|
+
}
|
|
149
156
|
return await runSessionList(rpc, { json: opts.json });
|
|
150
157
|
}
|
|
151
158
|
if (sub === "runs") {
|
|
152
159
|
const name = positionals[2];
|
|
153
|
-
if (name === undefined)
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
160
|
+
if (name === undefined) {
|
|
161
|
+
throw new TelemetryError(clientSubcommandMissingArgument("plurnk session runs", "<name>"));
|
|
162
|
+
}
|
|
163
|
+
if (positionals.length > 3) {
|
|
164
|
+
throw new TelemetryError(clientSubcommandUnknownVerb(`session runs ${positionals.slice(3).join(" ")}`));
|
|
165
|
+
}
|
|
157
166
|
return await runSessionRuns(rpc, name, { json: opts.json });
|
|
158
167
|
}
|
|
159
|
-
|
|
168
|
+
throw new TelemetryError(clientSubcommandUnknownVerb(`session ${sub ?? "(missing)"}`, ["list", "runs"]));
|
|
160
169
|
}
|
|
161
170
|
if (verb === "log") {
|
|
162
171
|
if (sub !== "read") {
|
|
163
|
-
|
|
172
|
+
throw new TelemetryError(clientSubcommandUnknownVerb(`log ${sub ?? "(missing)"}`, ["read"]));
|
|
164
173
|
}
|
|
165
174
|
if (opts.sessionName === undefined) {
|
|
166
|
-
|
|
175
|
+
throw new TelemetryError(clientFlagMissingDependency("plurnk log read", "--session (or PLURNK_SESSION)"));
|
|
167
176
|
}
|
|
168
177
|
// log.read requires an attached session — same resolution as the loop flows.
|
|
169
178
|
await attachOrCreateSession(rpc, {
|
|
@@ -186,7 +195,7 @@ const runSubcommand = async (rpc, positionals, opts) => {
|
|
|
186
195
|
filters.limit = limit;
|
|
187
196
|
return await runLogRead(rpc, { json: opts.json, filters });
|
|
188
197
|
}
|
|
189
|
-
|
|
198
|
+
throw new TelemetryError(clientSubcommandUnknownVerb(verb ?? "(missing)"));
|
|
190
199
|
};
|
|
191
200
|
export const main = async (argv) => {
|
|
192
201
|
try {
|
|
@@ -231,7 +240,7 @@ export const main = async (argv) => {
|
|
|
231
240
|
? `${positionalPrompt}\n\n${stdinPrompt}`
|
|
232
241
|
: positionalPrompt || stdinPrompt;
|
|
233
242
|
if (values.json === true && prompt.length === 0) {
|
|
234
|
-
|
|
243
|
+
dieWith(64, clientFlagMissingDependency("--json", "a prompt (CLI mode only)"));
|
|
235
244
|
}
|
|
236
245
|
}
|
|
237
246
|
// CLI flag overrides env; env overrides nothing.
|
|
@@ -240,7 +249,7 @@ export const main = async (argv) => {
|
|
|
240
249
|
const modelAlias = values.model ?? process.env.PLURNK_MODEL;
|
|
241
250
|
const yolo = values.yolo === true || ["1", "true", "yes", "on"].includes((process.env.PLURNK_YOLO ?? "").toLowerCase());
|
|
242
251
|
if (runName !== undefined && sessionName === undefined) {
|
|
243
|
-
|
|
252
|
+
dieWith(64, clientFlagMissingDependency("--run (or PLURNK_RUN)", "--session (or PLURNK_SESSION)"));
|
|
244
253
|
}
|
|
245
254
|
const projectRootRaw = values["project-root"] ?? process.env.PLURNK_PROJECT_ROOT;
|
|
246
255
|
const projectRoot = (() => {
|
|
@@ -248,7 +257,9 @@ export const main = async (argv) => {
|
|
|
248
257
|
return resolveProjectRoot(projectRootRaw);
|
|
249
258
|
}
|
|
250
259
|
catch (cause) {
|
|
251
|
-
|
|
260
|
+
if (cause instanceof TelemetryError)
|
|
261
|
+
return dieWith(cause.exitCode, cause.event);
|
|
262
|
+
return dieWith(64, clientRuntimeError(cause));
|
|
252
263
|
}
|
|
253
264
|
})();
|
|
254
265
|
const persona = await (async () => {
|
|
@@ -256,7 +267,8 @@ export const main = async (argv) => {
|
|
|
256
267
|
return await resolvePersona(values.persona ?? process.env.PLURNK_PERSONA);
|
|
257
268
|
}
|
|
258
269
|
catch (cause) {
|
|
259
|
-
|
|
270
|
+
const personaPath = values.persona ?? process.env.PLURNK_PERSONA ?? "(unknown)";
|
|
271
|
+
return dieWith(1, clientIoPersonaReadFailed(personaPath, cause));
|
|
260
272
|
}
|
|
261
273
|
})();
|
|
262
274
|
const url = process.env.PLURNK_URL ?? "ws://127.0.0.1:3044";
|
|
@@ -265,7 +277,7 @@ export const main = async (argv) => {
|
|
|
265
277
|
await rpc.connect();
|
|
266
278
|
}
|
|
267
279
|
catch (cause) {
|
|
268
|
-
|
|
280
|
+
dieWith(1, clientConnectionRefused(url, cause));
|
|
269
281
|
}
|
|
270
282
|
try {
|
|
271
283
|
const json = values.json === true;
|
|
@@ -284,13 +296,24 @@ export const main = async (argv) => {
|
|
|
284
296
|
process.exit(exitCode);
|
|
285
297
|
}
|
|
286
298
|
catch (cause) {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
299
|
+
if (cause instanceof TelemetryError) {
|
|
300
|
+
report(cause.event);
|
|
301
|
+
await rpc.close();
|
|
302
|
+
process.exit(cause.exitCode);
|
|
290
303
|
}
|
|
304
|
+
// RPC errors arrive as Error("rpc error N: msg") from rpc.ts; the
|
|
305
|
+
// method that failed is unknown at this catch boundary, so we tag it
|
|
306
|
+
// with the synthetic "rpc.call" — daemon already supplied the
|
|
307
|
+
// specific code/message via cause.message, which is what users care
|
|
308
|
+
// about.
|
|
309
|
+
report(clientRuntimeError(cause));
|
|
310
|
+
await rpc.close();
|
|
291
311
|
process.exit(1);
|
|
292
312
|
}
|
|
293
313
|
finally {
|
|
314
|
+
// Idempotent close — the catch paths already closed; this finally
|
|
315
|
+
// covers the success paths where we returned via process.exit() but
|
|
316
|
+
// the await on the runX call already completed.
|
|
294
317
|
await rpc.close();
|
|
295
318
|
}
|
|
296
319
|
};
|
package/dist/dispatcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subcommands.d.ts","sourceRoot":"","sources":["../src/subcommands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"subcommands.d.ts","sourceRoot":"","sources":["../src/subcommands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAyBhC,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"}
|
package/dist/subcommands.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// goes to stdout (the product), trace/errors to stderr — same posture as CLI
|
|
4
4
|
// mode per SPEC.md §2.1.
|
|
5
5
|
import { formatPlain } from "./cli.js";
|
|
6
|
+
import { report, clientSubcommandSessionNotFound, clientSubcommandSessionAmbiguous } from "./telemetry.js";
|
|
6
7
|
// ─── Shared rendering helpers ─────────────────────────────────────────
|
|
7
8
|
// Simple column-aligned table. Renders header + rows; no header borders.
|
|
8
9
|
const renderTable = (headers, rows) => {
|
|
@@ -62,11 +63,11 @@ export const runSessionRuns = async (rpc, sessionName, opts) => {
|
|
|
62
63
|
const { sessions } = await rpc.call("session.list");
|
|
63
64
|
const matches = sessions.filter((s) => s.name === sessionName);
|
|
64
65
|
if (matches.length === 0) {
|
|
65
|
-
|
|
66
|
+
report(clientSubcommandSessionNotFound(sessionName));
|
|
66
67
|
return 1;
|
|
67
68
|
}
|
|
68
69
|
if (matches.length > 1) {
|
|
69
|
-
|
|
70
|
+
report(clientSubcommandSessionAmbiguous(sessionName, matches.length));
|
|
70
71
|
return 1;
|
|
71
72
|
}
|
|
72
73
|
const { runs } = await rpc.call("session.runs", { id: matches[0].id });
|
package/dist/subcommands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subcommands.js","sourceRoot":"","sources":["../src/subcommands.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,2EAA2E;AAC3E,6EAA6E;AAC7E,yBAAyB;AAGzB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"subcommands.js","sourceRoot":"","sources":["../src/subcommands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export interface ContentOffset {
|
|
2
|
+
type: "content-offset";
|
|
3
|
+
line: number;
|
|
4
|
+
column: number;
|
|
5
|
+
}
|
|
6
|
+
export interface LogCoordinate {
|
|
7
|
+
type: "log-coordinate";
|
|
8
|
+
coordinate: string;
|
|
9
|
+
op?: string;
|
|
10
|
+
}
|
|
11
|
+
export type Position = ContentOffset | LogCoordinate;
|
|
12
|
+
export interface TelemetryEvent {
|
|
13
|
+
source: string;
|
|
14
|
+
kind: string;
|
|
15
|
+
message?: string | null;
|
|
16
|
+
position?: Position | null;
|
|
17
|
+
hints?: string[];
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
}
|
|
20
|
+
export declare class TelemetryError extends Error {
|
|
21
|
+
readonly event: TelemetryEvent;
|
|
22
|
+
readonly exitCode: number;
|
|
23
|
+
constructor(event: TelemetryEvent, exitCode?: number);
|
|
24
|
+
}
|
|
25
|
+
export declare const renderTelemetryEvent: (event: TelemetryEvent) => string;
|
|
26
|
+
export declare const report: (event: TelemetryEvent) => void;
|
|
27
|
+
export declare const clientConnectionRefused: (url: string, cause: unknown) => TelemetryEvent;
|
|
28
|
+
export declare const clientRuntimeError: (cause: unknown) => TelemetryEvent;
|
|
29
|
+
export declare const clientConnectionClosed: (cause: unknown) => TelemetryEvent;
|
|
30
|
+
export declare const clientFlagInvalid: (flag: string, value: string, reason: string) => TelemetryEvent;
|
|
31
|
+
export declare const clientFlagMissingDependency: (flag: string, requires: string) => TelemetryEvent;
|
|
32
|
+
export declare const clientSubcommandSessionNotFound: (name: string) => TelemetryEvent;
|
|
33
|
+
export declare const clientSubcommandSessionAmbiguous: (name: string, count: number) => TelemetryEvent;
|
|
34
|
+
export declare const clientSubcommandUnknownVerb: (path: string, available?: string[]) => TelemetryEvent;
|
|
35
|
+
export declare const clientSubcommandMissingArgument: (path: string, argument: string) => TelemetryEvent;
|
|
36
|
+
export declare const clientProposalNoTtyReview: (logEntryId: number) => TelemetryEvent;
|
|
37
|
+
export declare const clientIoPersonaReadFailed: (path: string, cause: unknown) => TelemetryEvent;
|
|
38
|
+
export declare const clientRpcError: (method: string, cause: unknown) => TelemetryEvent;
|
|
39
|
+
export declare const colors: {
|
|
40
|
+
RESET: string;
|
|
41
|
+
DIM: string;
|
|
42
|
+
RED: string;
|
|
43
|
+
YELLOW: string;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,aAAa,CAAC;AAUrD,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAIjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAUD,qBAAa,cAAe,SAAQ,KAAK;IACrC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACd,KAAK,EAAE,cAAc,EAAE,QAAQ,GAAE,MAAW;CAM3D;AAsDD,eAAO,MAAM,oBAAoB,GAAI,OAAO,cAAc,KAAG,MAO5D,CAAC;AAKF,eAAO,MAAM,MAAM,GAAI,OAAO,cAAc,KAAG,IAE9C,CAAC;AAKF,eAAO,MAAM,uBAAuB,GAAI,KAAK,MAAM,EAAE,OAAO,OAAO,KAAG,cASpE,CAAC;AAIH,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,cAIlD,CAAC;AAGH,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,cAItD,CAAC;AAGH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,cAM9E,CAAC;AAGH,eAAO,MAAM,2BAA2B,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,cAM3E,CAAC;AAGH,eAAO,MAAM,+BAA+B,GAAI,MAAM,MAAM,KAAG,cAK7D,CAAC;AAGH,eAAO,MAAM,gCAAgC,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,cAM7E,CAAC;AAGH,eAAO,MAAM,2BAA2B,GAAI,MAAM,MAAM,EAAE,YAAY,MAAM,EAAE,KAAG,cAQ/E,CAAC;AAGH,eAAO,MAAM,+BAA+B,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,cAM/E,CAAC;AAGH,eAAO,MAAM,yBAAyB,GAAI,YAAY,MAAM,KAAG,cAK7D,CAAC;AAGH,eAAO,MAAM,yBAAyB,GAAI,MAAM,MAAM,EAAE,OAAO,OAAO,KAAG,cAKvE,CAAC;AAGH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,OAAO,OAAO,KAAG,cAK9D,CAAC;AAIH,eAAO,MAAM,MAAM;;;;;CAA8B,CAAC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
// Unified error/telemetry shape across the plurnk stack.
|
|
2
|
+
//
|
|
3
|
+
// The grammar 0.17.0 TelemetryEvent schema (`source / kind / message? /
|
|
4
|
+
// position? / additional kind-specific fields`) is the vocabulary every
|
|
5
|
+
// producer in the ecosystem emits into — `grammar`, `engine:rail`,
|
|
6
|
+
// `scheme:*`, `provider:*` from the daemon side; `client:*` from us.
|
|
7
|
+
// This module owns the shape, the renderer, and the client-side emission
|
|
8
|
+
// helpers; everything user-facing routes through `report(event)`.
|
|
9
|
+
//
|
|
10
|
+
// Per SPEC.md §8.
|
|
11
|
+
import process from "node:process";
|
|
12
|
+
// Thrown across boundaries to carry a structured event through normal
|
|
13
|
+
// async error propagation. The global catch in main() unwraps these and
|
|
14
|
+
// renders the carried event verbatim; non-TelemetryError throws collapse
|
|
15
|
+
// to a generic `client:runtime:error` event.
|
|
16
|
+
//
|
|
17
|
+
// `exitCode` is the process exit code the global catch should propagate.
|
|
18
|
+
// Defaults to 64 (usage error) since most TelemetryError throws are flag/
|
|
19
|
+
// argument / subcommand validation. Runtime failures pass 1 explicitly.
|
|
20
|
+
export class TelemetryError extends Error {
|
|
21
|
+
event;
|
|
22
|
+
exitCode;
|
|
23
|
+
constructor(event, exitCode = 64) {
|
|
24
|
+
super(event.message ?? `${event.source}:${event.kind}`);
|
|
25
|
+
this.event = event;
|
|
26
|
+
this.exitCode = exitCode;
|
|
27
|
+
this.name = "TelemetryError";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// ─── Rendering ────────────────────────────────────────────────────────
|
|
31
|
+
const useColor = process.env.NO_COLOR !== "1" && process.env.NO_COLOR !== "true";
|
|
32
|
+
const code = (n) => useColor ? `\x1b[${n}m` : "";
|
|
33
|
+
const RESET = code("0");
|
|
34
|
+
const DIM = code("2");
|
|
35
|
+
const RED = code("31");
|
|
36
|
+
const YELLOW = code("33");
|
|
37
|
+
const TELEMETRY_GLYPH = "📡";
|
|
38
|
+
// Format a Position inline as a compact suffix on the headline. ContentOffset
|
|
39
|
+
// becomes `L<line> col<column>`; LogCoordinate becomes `<coordinate>` (with op
|
|
40
|
+
// in parens when present).
|
|
41
|
+
const formatPosition = (pos) => {
|
|
42
|
+
if (pos === null || pos === undefined)
|
|
43
|
+
return "";
|
|
44
|
+
if (pos.type === "content-offset")
|
|
45
|
+
return `L${pos.line} col${pos.column}`;
|
|
46
|
+
if (pos.type === "log-coordinate")
|
|
47
|
+
return pos.op !== undefined ? `${pos.coordinate} (${pos.op})` : pos.coordinate;
|
|
48
|
+
return "";
|
|
49
|
+
};
|
|
50
|
+
// Format the headline: `<glyph> <source>:<kind> <position?> <message?>`. The
|
|
51
|
+
// caller is responsible for trailing newlines.
|
|
52
|
+
const renderHeadline = (event) => {
|
|
53
|
+
const discriminator = `${event.source}:${event.kind}`;
|
|
54
|
+
const position = formatPosition(event.position);
|
|
55
|
+
const message = typeof event.message === "string" && event.message.length > 0
|
|
56
|
+
? `"${event.message}"`
|
|
57
|
+
: "";
|
|
58
|
+
const parts = [TELEMETRY_GLYPH, discriminator];
|
|
59
|
+
if (position.length > 0)
|
|
60
|
+
parts.push(position);
|
|
61
|
+
if (message.length > 0)
|
|
62
|
+
parts.push(`${DIM}${message}${RESET}`);
|
|
63
|
+
return ` ${parts.join(" ")}`;
|
|
64
|
+
};
|
|
65
|
+
// Some kinds carry a rendered snippet (grammar:parse_error has `snippet`
|
|
66
|
+
// with `N:\t`-prefixed offending content). Render it as an indented block.
|
|
67
|
+
const renderSnippet = (event) => {
|
|
68
|
+
const snippet = typeof event.snippet === "string" ? event.snippet : "";
|
|
69
|
+
if (snippet.length === 0)
|
|
70
|
+
return "";
|
|
71
|
+
return snippet.split("\n").map((line) => ` ${line}`).join("\n");
|
|
72
|
+
};
|
|
73
|
+
// Render hints as indented continuation lines after the headline.
|
|
74
|
+
const renderHints = (event) => {
|
|
75
|
+
if (!Array.isArray(event.hints) || event.hints.length === 0)
|
|
76
|
+
return "";
|
|
77
|
+
return event.hints.map((hint) => ` ${DIM}${hint}${RESET}`).join("\n");
|
|
78
|
+
};
|
|
79
|
+
// Full rendering: headline + optional snippet block + optional hints block.
|
|
80
|
+
// Used by `report` and by any other surface (TUI waterfall) that wants the
|
|
81
|
+
// same vocabulary.
|
|
82
|
+
export const renderTelemetryEvent = (event) => {
|
|
83
|
+
const parts = [renderHeadline(event)];
|
|
84
|
+
const snippet = renderSnippet(event);
|
|
85
|
+
if (snippet.length > 0)
|
|
86
|
+
parts.push(snippet);
|
|
87
|
+
const hints = renderHints(event);
|
|
88
|
+
if (hints.length > 0)
|
|
89
|
+
parts.push(hints);
|
|
90
|
+
return parts.join("\n");
|
|
91
|
+
};
|
|
92
|
+
// Write a rendered event to stderr. Single point of egress so the channel
|
|
93
|
+
// posture (stderr in CLI mode; same in TUI to keep the waterfall on stdout
|
|
94
|
+
// stream) stays consistent across emission sites.
|
|
95
|
+
export const report = (event) => {
|
|
96
|
+
process.stderr.write(`${renderTelemetryEvent(event)}\n`);
|
|
97
|
+
};
|
|
98
|
+
// ─── Client-side emitters ────────────────────────────────────────────
|
|
99
|
+
// `client:connection:refused` — WebSocket connection couldn't be established.
|
|
100
|
+
export const clientConnectionRefused = (url, cause) => ({
|
|
101
|
+
source: "client:connection",
|
|
102
|
+
kind: "refused",
|
|
103
|
+
message: cause instanceof Error ? cause.message : String(cause),
|
|
104
|
+
url,
|
|
105
|
+
hints: [
|
|
106
|
+
"Is the daemon running?",
|
|
107
|
+
"Start it from plurnk-service with: node bin/plurnk-service.js start",
|
|
108
|
+
],
|
|
109
|
+
});
|
|
110
|
+
// `client:runtime:error` — generic catch-all for thrown errors we don't have
|
|
111
|
+
// a more specific shape for. Used as a fallback in the global catch.
|
|
112
|
+
export const clientRuntimeError = (cause) => ({
|
|
113
|
+
source: "client:runtime",
|
|
114
|
+
kind: "error",
|
|
115
|
+
message: cause instanceof Error ? cause.message : String(cause),
|
|
116
|
+
});
|
|
117
|
+
// `client:connection:closed` — connection dropped while a call was in flight.
|
|
118
|
+
export const clientConnectionClosed = (cause) => ({
|
|
119
|
+
source: "client:connection",
|
|
120
|
+
kind: "closed",
|
|
121
|
+
message: cause instanceof Error ? cause.message : String(cause),
|
|
122
|
+
});
|
|
123
|
+
// `client:flag:invalid` — flag value didn't parse or violated a contract.
|
|
124
|
+
export const clientFlagInvalid = (flag, value, reason) => ({
|
|
125
|
+
source: "client:flag",
|
|
126
|
+
kind: "invalid",
|
|
127
|
+
message: reason,
|
|
128
|
+
flag,
|
|
129
|
+
value,
|
|
130
|
+
});
|
|
131
|
+
// `client:flag:missing_dependency` — flag X requires flag Y also be set.
|
|
132
|
+
export const clientFlagMissingDependency = (flag, requires) => ({
|
|
133
|
+
source: "client:flag",
|
|
134
|
+
kind: "missing_dependency",
|
|
135
|
+
message: `${flag} requires ${requires}`,
|
|
136
|
+
flag,
|
|
137
|
+
requires,
|
|
138
|
+
});
|
|
139
|
+
// `client:subcommand:session_not_found` — name resolution failed.
|
|
140
|
+
export const clientSubcommandSessionNotFound = (name) => ({
|
|
141
|
+
source: "client:subcommand",
|
|
142
|
+
kind: "session_not_found",
|
|
143
|
+
message: `no session named ${JSON.stringify(name)}`,
|
|
144
|
+
name,
|
|
145
|
+
});
|
|
146
|
+
// `client:subcommand:session_ambiguous` — multiple sessions match.
|
|
147
|
+
export const clientSubcommandSessionAmbiguous = (name, count) => ({
|
|
148
|
+
source: "client:subcommand",
|
|
149
|
+
kind: "session_ambiguous",
|
|
150
|
+
message: `${count} sessions named ${JSON.stringify(name)}; pick a unique name`,
|
|
151
|
+
name,
|
|
152
|
+
count,
|
|
153
|
+
});
|
|
154
|
+
// `client:subcommand:unknown_verb` — unrecognized subcommand verb.
|
|
155
|
+
export const clientSubcommandUnknownVerb = (path, available) => ({
|
|
156
|
+
source: "client:subcommand",
|
|
157
|
+
kind: "unknown_verb",
|
|
158
|
+
message: available !== undefined && available.length > 0
|
|
159
|
+
? `unknown subcommand '${path}'. Available: ${available.join(", ")}`
|
|
160
|
+
: `unknown subcommand '${path}'`,
|
|
161
|
+
path,
|
|
162
|
+
available,
|
|
163
|
+
});
|
|
164
|
+
// `client:subcommand:missing_argument` — required positional or flag absent.
|
|
165
|
+
export const clientSubcommandMissingArgument = (path, argument) => ({
|
|
166
|
+
source: "client:subcommand",
|
|
167
|
+
kind: "missing_argument",
|
|
168
|
+
message: `${path}: missing ${argument}`,
|
|
169
|
+
path,
|
|
170
|
+
argument,
|
|
171
|
+
});
|
|
172
|
+
// `client:proposal:no_tty_review` — fail-closed in CLI without --yolo.
|
|
173
|
+
export const clientProposalNoTtyReview = (logEntryId) => ({
|
|
174
|
+
source: "client:proposal",
|
|
175
|
+
kind: "no_tty_review",
|
|
176
|
+
message: "no TTY for review, no --yolo — rejecting proposal",
|
|
177
|
+
logEntryId,
|
|
178
|
+
});
|
|
179
|
+
// `client:io:persona_read_failed` — couldn't read the --persona file.
|
|
180
|
+
export const clientIoPersonaReadFailed = (path, cause) => ({
|
|
181
|
+
source: "client:io",
|
|
182
|
+
kind: "persona_read_failed",
|
|
183
|
+
message: cause instanceof Error ? cause.message : String(cause),
|
|
184
|
+
path,
|
|
185
|
+
});
|
|
186
|
+
// `client:rpc:error` — RPC call rejected with a daemon-supplied error.
|
|
187
|
+
export const clientRpcError = (method, cause) => ({
|
|
188
|
+
source: "client:rpc",
|
|
189
|
+
kind: "error",
|
|
190
|
+
message: cause instanceof Error ? cause.message : String(cause),
|
|
191
|
+
method,
|
|
192
|
+
});
|
|
193
|
+
// Color helpers exported for callers that want a colored marker without
|
|
194
|
+
// reimplementing the NO_COLOR check (e.g. the TUI's existing waterfall).
|
|
195
|
+
export const colors = { RESET, DIM, RED, YELLOW };
|
|
196
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
|
package/dist/tui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAehC,UAAU,aAAa;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAEpD,eAAO,MAAM,MAAM,GAAU,KAAK,GAAG,EAAE,SAAS,aAAa,EAAE,MAAM;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,KAAG,OAAO,CAAC,IAAI,CA2G3I,CAAC"}
|
package/dist/tui.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import readline from "node:readline";
|
|
4
4
|
import { renderLogEntry, renderSummary } from "./render.js";
|
|
5
5
|
import { reviewProposal } from "./proposal.js";
|
|
6
|
+
import { renderTelemetryEvent } from "./telemetry.js";
|
|
6
7
|
export const runTui = async (rpc, session, opts) => {
|
|
7
8
|
// Subscribe to log/entry notifications — render each as a waterfall line.
|
|
8
9
|
// `\r\x1b[2K` wipes any readline-redrawn prompt sitting on the current line
|
|
@@ -11,6 +12,13 @@ export const runTui = async (rpc, session, opts) => {
|
|
|
11
12
|
const p = params;
|
|
12
13
|
process.stdout.write(`\r\x1b[2K${renderLogEntry(p.entry)}\n`);
|
|
13
14
|
});
|
|
15
|
+
// telemetry/event — interleaved with the trace waterfall. Same line-wipe
|
|
16
|
+
// dance as log/entry so the rendered event doesn't collide with the
|
|
17
|
+
// readline prompt.
|
|
18
|
+
rpc.onNotification("telemetry/event", (params) => {
|
|
19
|
+
const p = params;
|
|
20
|
+
process.stdout.write(`\r\x1b[2K${renderTelemetryEvent(p.event)}\n`);
|
|
21
|
+
});
|
|
14
22
|
process.stdout.write(`\x1b[2mplurnk v0.1.0 · ctrl-c to quit · session: ${session.name}\x1b[0m\n\n`);
|
|
15
23
|
const rl = readline.createInterface({
|
|
16
24
|
input: process.stdin,
|
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;
|
|
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.4.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",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"test:unit": "node --test 'src/**/*.test.ts'",
|
|
24
24
|
"test:intg": "node --test --env-file-if-exists=.env 'test/intg/**/*.test.ts'",
|
|
25
25
|
"test": "npm run test:lint && npm run test:unit",
|
|
26
|
+
"test:all": "npm run test:lint && npm run test:unit && npm run test:intg",
|
|
26
27
|
"build:dist": "tsc -p tsconfig.build.json",
|
|
27
28
|
"build": "npm run build:dist",
|
|
28
29
|
"prepare": "npm run build"
|