@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.
@@ -3,12 +3,14 @@
3
3
  // §2 (CLI mode) and §3 (TUI mode).
4
4
  import { parseArgs } from "node:util";
5
5
  import { readFile } from "node:fs/promises";
6
- import { isAbsolute, resolve } from "node:path";
7
- import Rpc from "./rpc.js";
6
+ import { isAbsolute, join, resolve } from "node:path";
7
+ import { homedir } from "node:os";
8
+ import { createRequire } from "node:module";
9
+ import Rpc, { RpcError } from "./rpc.js";
8
10
  import { runCli } from "./cli.js";
9
11
  import { runTui } from "./tui.js";
10
12
  import { runModels, runSessionList, runSessionRuns, runLogRead } from "./subcommands.js";
11
- import { TelemetryError, report, clientConnectionRefused, clientFlagInvalid, clientFlagMissingDependency, clientIoPersonaReadFailed, clientRuntimeError, clientSubcommandMissingArgument, clientSubcommandSessionNotFound, clientSubcommandSessionAmbiguous, clientSubcommandUnknownVerb, } from "./telemetry.js";
13
+ import { TelemetryError, report, clientConnectionRefused, clientDaemonStale, clientFlagInvalid, clientFlagMissingDependency, clientRpcError, clientRuntimeError, clientSubcommandMissingArgument, clientSubcommandSessionNotFound, clientSubcommandSessionAmbiguous, clientSubcommandUnknownVerb, } from "./telemetry.js";
12
14
  // Read all of stdin to EOF. Called when stdin is piped (not a TTY) — never
13
15
  // blocks an interactive session because we gate on isTTY upstream.
14
16
  const readStdin = async () => {
@@ -17,14 +19,24 @@ const readStdin = async () => {
17
19
  buf += chunk;
18
20
  return buf;
19
21
  };
20
- // Persona resolution: the flag/env value is a path to a markdown file.
21
- // Personas are typically long; quoting multiline markdown on the command
22
- // line is hostile. Path-only keeps the contract obvious.
23
- export const resolvePersona = async (raw) => {
24
- if (raw === undefined)
22
+ // LoopFlags resolution: --flags takes raw JSON (the generic passthrough
23
+ // any flag the daemon wires lands without a client release). Mode is NOT a
24
+ // flag here: ask/act ride the prompt-prefix habit (`? text` / `: text`),
25
+ // converged across nvim, TUI, and the one-shot CLI.
26
+ export const resolveLoopFlags = (rawJson) => {
27
+ if (rawJson === undefined)
25
28
  return undefined;
26
- const abs = isAbsolute(raw) ? raw : resolve(process.cwd(), raw);
27
- return await readFile(abs, "utf8");
29
+ let parsed;
30
+ try {
31
+ parsed = JSON.parse(rawJson);
32
+ }
33
+ catch {
34
+ throw new TelemetryError(clientFlagInvalid("--flags", rawJson, "must be valid JSON"));
35
+ }
36
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
37
+ throw new TelemetryError(clientFlagInvalid("--flags", rawJson, "must be a JSON object"));
38
+ }
39
+ return parsed;
28
40
  };
29
41
  // projectRoot resolution: empty string = explicit headless (null on wire);
30
42
  // otherwise must be an absolute path. Caller passes cwd as default.
@@ -61,8 +73,6 @@ env:
61
73
  PLURNK_PROJECT_ROOT absolute path passed to session.create as the session's
62
74
  project_root (workspace for file ops). Default: cwd.
63
75
  Empty string = headless (no project_root, file ops 400).
64
- PLURNK_PERSONA path to a persona file (text/markdown); contents are
65
- passed on every loop.run.
66
76
  PLURNK_YOLO when truthy, auto-accept every proposal without prompting.
67
77
  Client-side only — proposals still go through the wire.
68
78
 
@@ -83,10 +93,26 @@ options:
83
93
  on --session attach (daemon preserves stored value).
84
94
  Default: cwd. Empty string = headless. Overrides
85
95
  PLURNK_PROJECT_ROOT.
86
- --persona <path> path to a persona file (text/markdown); contents are
87
- passed on every loop.run. Overrides PLURNK_PERSONA.
88
96
  --yolo auto-accept every proposal locally without prompting.
89
97
  Overrides PLURNK_YOLO.
98
+ --flags <json> raw LoopFlags JSON passthrough on every loop.run
99
+ (e.g. '{"yolo":true}' for server-side YOLO in
100
+ benchmark/automation runs).
101
+ --max-turns <n> per-loop turn cap (daemon default PLURNK_MAX_TURNS).
102
+ --timeout <s> CLI mode: cancel the loop (loop.cancel) after <s>
103
+ seconds; exits 3 with "timedOut":true in the result.
104
+ --pick <glob> membership overlay: admit files git misses (the sole
105
+ source when headless). Repeatable.
106
+ --hide <glob> membership overlay: drop a tracked match. Repeatable.
107
+ --view <glob> membership overlay: admit a member read-only. Repeatable.
108
+ --manifest-items <n> session-open preview: -1 full / 0 off / N first-N
109
+ items of plurnk://manifest.json at turn 0. Create-time.
110
+ --md <name=path> pin a markdown doc into the session (read at turn 0);
111
+ merges with operator PLURNK_MD_*. Repeatable. Create-time.
112
+ --max-commands <n> ceiling on ops per emission for the session (min with the
113
+ daemon's PLURNK_MAX_COMMANDS — can only tighten). Create-time.
114
+ --no-git deny git membership + telemetry for the session (never
115
+ re-enables past the operator lockout). Create-time.
90
116
  --loop <id> (log read) filter to a single loop id
91
117
  --turn <id> (log read) filter to a single turn id
92
118
  --since <id> (log read) return entries with id > <id>
@@ -104,12 +130,93 @@ const dieWith = (code, event) => {
104
130
  report(event);
105
131
  process.exit(code);
106
132
  };
107
- // Resolve the session by name (via session.list filter) or create a fresh one.
108
- // Names are the user-facing handle — ids are internals, not exposed via flags.
109
- // projectRoot is sent on creation only; attach inherits the daemon-stored value.
133
+ // Map the repeatable membership flags (--pick/--hide/--view) to constraints.
134
+ export const buildConstraints = (values) => [
135
+ ...(values.pick ?? []).map((glob) => ({ effect: "pick", glob })),
136
+ ...(values.hide ?? []).map((glob) => ({ effect: "hide", glob })),
137
+ ...(values.view ?? []).map((glob) => ({ effect: "view", glob })),
138
+ ];
139
+ export const buildSettings = async (values, cwd) => {
140
+ const settings = {};
141
+ const mc = values["max-commands"];
142
+ if (mc !== undefined) {
143
+ const n = Number(mc);
144
+ if (!Number.isInteger(n) || n < 1) {
145
+ throw new TelemetryError(clientFlagInvalid("--max-commands", mc, "must be a positive integer"));
146
+ }
147
+ settings.maxCommands = n;
148
+ }
149
+ if (values["no-git"] === true)
150
+ settings.git = false;
151
+ const mi = values["manifest-items"];
152
+ if (mi !== undefined) {
153
+ const n = Number(mi);
154
+ if (!Number.isInteger(n) || n < -1) {
155
+ throw new TelemetryError(clientFlagInvalid("--manifest-items", mi, "must be -1 (full), 0 (off), or a positive integer"));
156
+ }
157
+ settings.manifestItems = n;
158
+ }
159
+ const mdSpecs = values.md ?? [];
160
+ if (mdSpecs.length > 0) {
161
+ const mdDocs = [];
162
+ for (const spec of mdSpecs) {
163
+ const eq = spec.indexOf("=");
164
+ if (eq <= 0)
165
+ throw new TelemetryError(clientFlagInvalid("--md", spec, "must be NAME=path"));
166
+ const alias = spec.slice(0, eq);
167
+ const raw = spec.slice(eq + 1);
168
+ const abs = isAbsolute(raw) ? raw : resolve(cwd, raw);
169
+ try {
170
+ mdDocs.push({ alias, content: await readFile(abs, "utf8") });
171
+ }
172
+ catch (cause) {
173
+ throw new TelemetryError(clientFlagInvalid("--md", spec, `file not readable: ${cause instanceof Error ? cause.message : String(cause)}`));
174
+ }
175
+ }
176
+ settings.mdDocs = mdDocs;
177
+ }
178
+ return settings;
179
+ };
180
+ // svc#235: discover.versions { service:{installed, latest?}, client:{latest?} }.
181
+ // The daemon polls npm; the client compares its OWN installed version against
182
+ // the advertised latest and renders both lines + an "(update available)"
183
+ // marker. The client never does registry IO — it just reads what discover says.
184
+ export const CLIENT_VERSION = createRequire(import.meta.url)("../package.json").version;
185
+ const isOlder = (a, b) => {
186
+ const pa = a.split(".").map(Number);
187
+ const pb = b.split(".").map(Number);
188
+ for (let i = 0; i < 3; i++) {
189
+ const x = pa[i] ?? 0, y = pb[i] ?? 0;
190
+ if (x < y)
191
+ return true;
192
+ if (x > y)
193
+ return false;
194
+ }
195
+ return false;
196
+ };
197
+ export const buildVersionNotice = (versions, clientInstalled) => {
198
+ if (versions === undefined)
199
+ return undefined;
200
+ const svc = versions.service?.installed;
201
+ const parts = [`plurnk client v${clientInstalled}`];
202
+ if (svc !== undefined)
203
+ parts.push(`plurnk-service v${svc}`);
204
+ const stale = (versions.client?.latest !== undefined && isOlder(clientInstalled, versions.client.latest))
205
+ || (svc !== undefined && versions.service?.latest !== undefined && isOlder(svc, versions.service.latest));
206
+ return parts.join(", ") + (stale ? " (update available)" : "");
207
+ };
110
208
  const attachOrCreateSession = async (rpc, opts) => {
209
+ const constraints = opts.constraints ?? [];
210
+ const settings = opts.settings ?? {};
111
211
  if (opts.sessionName === undefined) {
112
- return await rpc.call("session.create", { projectRoot: opts.projectRoot });
212
+ // Seed overlay + open-context settings atomically at creation so turn-1's
213
+ // manifest/preview/docs are right with no follow-up RPC.
214
+ const params = { projectRoot: opts.projectRoot };
215
+ if (constraints.length > 0)
216
+ params.constraints = constraints;
217
+ if (Object.keys(settings).length > 0)
218
+ params.settings = settings;
219
+ return await rpc.call("session.create", params);
113
220
  }
114
221
  const { sessions } = await rpc.call("session.list");
115
222
  const matches = sessions.filter((s) => s.name === opts.sessionName);
@@ -124,7 +231,16 @@ const attachOrCreateSession = async (rpc, opts) => {
124
231
  const attachParams = { id: matches[0].id };
125
232
  if (opts.runName !== undefined)
126
233
  attachParams.runName = opts.runName;
127
- return await rpc.call("session.attach", attachParams);
234
+ const session = await rpc.call("session.attach", attachParams);
235
+ // An existing session takes the overlay flags live (session.create only
236
+ // seeds at birth). Settings (--manifest-items/--md) are session-create-only
237
+ // per svc#231 — there's no live setter, so flag-and-skip on attach.
238
+ for (const c of constraints)
239
+ await rpc.call("session.constrain", c);
240
+ if (Object.keys(settings).length > 0) {
241
+ process.stderr.write(" \x1b[2m--manifest-items/--md apply at session creation only; ignored on --session attach\x1b[0m\n");
242
+ }
243
+ return session;
128
244
  };
129
245
  // Parse a string-valued integer flag, throwing if non-numeric. Used for
130
246
  // log.read filter flags (--loop / --turn / --since / --limit) since
@@ -198,10 +314,19 @@ const runSubcommand = async (rpc, positionals, opts) => {
198
314
  throw new TelemetryError(clientSubcommandUnknownVerb(verb ?? "(missing)"));
199
315
  };
200
316
  export const main = async (argv) => {
317
+ // Cascading env. loadEnvFile never overrides variables that are
318
+ // already set, so load order produces the precedence:
319
+ // shell exports > project ./.env > $XDG_CONFIG_HOME/plurnk/env
320
+ // (user-level file falls back to ~/.config/plurnk/env). Both optional.
201
321
  try {
202
322
  process.loadEnvFile(".env");
203
323
  }
204
- catch { /* .env is optional */ }
324
+ catch { /* optional */ }
325
+ const userEnvDir = process.env.XDG_CONFIG_HOME ?? join(homedir(), ".config");
326
+ try {
327
+ process.loadEnvFile(join(userEnvDir, "plurnk", "env"));
328
+ }
329
+ catch { /* optional */ }
205
330
  const { positionals, values } = parseArgs({
206
331
  args: argv.slice(2),
207
332
  allowPositionals: true,
@@ -212,8 +337,19 @@ export const main = async (argv) => {
212
337
  run: { type: "string" },
213
338
  model: { type: "string" },
214
339
  "project-root": { type: "string" },
215
- persona: { type: "string" },
216
340
  yolo: { type: "boolean" },
341
+ flags: { type: "string" },
342
+ "max-turns": { type: "string" },
343
+ timeout: { type: "string" },
344
+ // membership overlay (svc#200) — repeatable globs; service vocabulary
345
+ pick: { type: "string", multiple: true },
346
+ hide: { type: "string", multiple: true },
347
+ view: { type: "string", multiple: true },
348
+ // session-open settings (svc#231) + tighten-only ceilings (svc#232)
349
+ "manifest-items": { type: "string" },
350
+ md: { type: "string", multiple: true },
351
+ "max-commands": { type: "string" },
352
+ "no-git": { type: "boolean" },
217
353
  // log read filters
218
354
  loop: { type: "string" },
219
355
  turn: { type: "string" },
@@ -251,6 +387,21 @@ export const main = async (argv) => {
251
387
  if (runName !== undefined && sessionName === undefined) {
252
388
  dieWith(64, clientFlagMissingDependency("--run (or PLURNK_RUN)", "--session (or PLURNK_SESSION)"));
253
389
  }
390
+ // Loop knobs (benchmark surface): --flags JSON passthrough, --ask sugar,
391
+ // --max-turns, --timeout. All validated up front, usage errors exit 64.
392
+ let loopFlags;
393
+ let maxTurns;
394
+ let timeoutSec;
395
+ try {
396
+ loopFlags = resolveLoopFlags(values.flags);
397
+ maxTurns = parseIntFlag(values["max-turns"], "--max-turns");
398
+ timeoutSec = parseIntFlag(values.timeout, "--timeout");
399
+ }
400
+ catch (cause) {
401
+ if (cause instanceof TelemetryError)
402
+ dieWith(cause.exitCode, cause.event);
403
+ dieWith(64, clientRuntimeError(cause));
404
+ }
254
405
  const projectRootRaw = values["project-root"] ?? process.env.PLURNK_PROJECT_ROOT;
255
406
  const projectRoot = (() => {
256
407
  try {
@@ -262,15 +413,6 @@ export const main = async (argv) => {
262
413
  return dieWith(64, clientRuntimeError(cause));
263
414
  }
264
415
  })();
265
- const persona = await (async () => {
266
- try {
267
- return await resolvePersona(values.persona ?? process.env.PLURNK_PERSONA);
268
- }
269
- catch (cause) {
270
- const personaPath = values.persona ?? process.env.PLURNK_PERSONA ?? "(unknown)";
271
- return dieWith(1, clientIoPersonaReadFailed(personaPath, cause));
272
- }
273
- })();
274
416
  const url = process.env.PLURNK_URL ?? "ws://127.0.0.1:3044";
275
417
  const rpc = new Rpc({ url });
276
418
  try {
@@ -279,6 +421,24 @@ export const main = async (argv) => {
279
421
  catch (cause) {
280
422
  dieWith(1, clientConnectionRefused(url, cause));
281
423
  }
424
+ // Daemon staleness check (clients track HEAD, service SPEC §13.9): probe
425
+ // discover for wire markers this client depends on; warn bluntly when
426
+ // missing. One local round-trip; never fatal.
427
+ let versionNotice;
428
+ try {
429
+ const catalog = await rpc.call("discover");
430
+ const missing = [];
431
+ for (const m of ["loop.cancel", "op.exec"]) {
432
+ if (catalog.methods?.[m] === undefined)
433
+ missing.push(m);
434
+ }
435
+ if (catalog.notifications?.["stream/concluded"] === undefined)
436
+ missing.push("stream/concluded");
437
+ if (missing.length > 0)
438
+ report(clientDaemonStale(missing));
439
+ versionNotice = buildVersionNotice(catalog.versions, CLIENT_VERSION); // svc#235
440
+ }
441
+ catch { /* discover failing will surface on the real call anyway */ }
282
442
  try {
283
443
  const json = values.json === true;
284
444
  if (isSubcommand) {
@@ -287,12 +447,19 @@ export const main = async (argv) => {
287
447
  });
288
448
  process.exit(exitCode);
289
449
  }
290
- const session = await attachOrCreateSession(rpc, { sessionName, runName, projectRoot });
450
+ const session = await attachOrCreateSession(rpc, {
451
+ sessionName, runName, projectRoot,
452
+ constraints: buildConstraints(values),
453
+ settings: await buildSettings(values, process.cwd()),
454
+ });
291
455
  if (prompt.length === 0) {
292
- await runTui(rpc, session, { modelAlias, persona, yolo });
456
+ await runTui(rpc, session, { modelAlias, yolo, loopFlags, maxTurns, projectRoot, versionNotice });
293
457
  process.exit(0);
294
458
  }
295
- const exitCode = await runCli(rpc, prompt, session, { json, modelAlias, persona, yolo });
459
+ // CLI: the version notice is narration stderr (never pollutes stdout/--json).
460
+ if (versionNotice !== undefined && json === false)
461
+ process.stderr.write(`\x1b[2m${versionNotice}\x1b[0m\n`);
462
+ const exitCode = await runCli(rpc, prompt, session, { json, modelAlias, yolo, loopFlags, maxTurns, timeoutSec });
296
463
  process.exit(exitCode);
297
464
  }
298
465
  catch (cause) {
@@ -301,12 +468,10 @@ export const main = async (argv) => {
301
468
  await rpc.close();
302
469
  process.exit(cause.exitCode);
303
470
  }
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));
471
+ // A daemon-rejected RPC arrives as a typed RpcError carrying the failed
472
+ // method and the daemon's code/message surface it as client:rpc:error.
473
+ // Anything else is a genuine non-RPC throw: the generic runtime fallback.
474
+ report(cause instanceof RpcError ? clientRpcError(cause.method, cause) : clientRuntimeError(cause));
310
475
  await rpc.close();
311
476
  process.exit(1);
312
477
  }
@@ -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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"}
@@ -0,0 +1,7 @@
1
+ export default class PasteFilter {
2
+ #private;
3
+ feed(chunk: string): string;
4
+ stash(content: string): string;
5
+ expand(line: string): string;
6
+ }
7
+ //# sourceMappingURL=paste.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paste.d.ts","sourceRoot":"","sources":["../src/paste.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,OAAO,OAAO,WAAW;;IAS5B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAiD3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAM9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAS/B"}
package/dist/paste.js ADDED
@@ -0,0 +1,98 @@
1
+ // Bracketed-paste buffering for the readline TUI.
2
+ //
3
+ // Terminals wrap pasted text in ESC[200~ … ESC[201~ when ?2004 is enabled.
4
+ // Node readline doesn't understand this, so a multi-line paste fires one
5
+ // 'line' event (one loop.run) per pasted line — the bug. We interpose on
6
+ // stdin and collapse a multi-line paste into a single short marker
7
+ // (`[paste #N +K lines]`) so readline stays on one line (NO cursor/width
8
+ // math — the marker is a normal short token); on submit the marker expands
9
+ // back to the raw text. Single-line pastes pass straight through.
10
+ //
11
+ // We don't heuristically test paste size (pi does); the terminal's markers
12
+ // tell us exactly where a paste is — "always catch as []".
13
+ const START = "\x1b[200~";
14
+ const END = "\x1b[201~";
15
+ const MARKER = /\[paste #(\d+) \+\d+ lines\]/g;
16
+ // Longest suffix of `s` that is a proper prefix of `marker` — bytes to hold
17
+ // back in case a marker is split across reads.
18
+ const partialTail = (s, marker) => {
19
+ const max = Math.min(s.length, marker.length - 1);
20
+ for (let n = max; n > 0; n--) {
21
+ if (marker.startsWith(s.slice(s.length - n)))
22
+ return n;
23
+ }
24
+ return 0;
25
+ };
26
+ export default class PasteFilter {
27
+ #state = "normal";
28
+ #paste = "";
29
+ #carry = "";
30
+ #store = new Map();
31
+ #nextId = 1;
32
+ // Process a stdin chunk; return the bytes readline should see (multi-line
33
+ // pastes collapsed to markers). Completed pastes are stored for expand().
34
+ feed(chunk) {
35
+ let input = this.#carry + chunk;
36
+ this.#carry = "";
37
+ let out = "";
38
+ for (;;) {
39
+ if (this.#state === "normal") {
40
+ const i = input.indexOf(START);
41
+ if (i >= 0) {
42
+ out += input.slice(0, i);
43
+ input = input.slice(i + START.length);
44
+ this.#state = "pasting";
45
+ this.#paste = "";
46
+ continue;
47
+ }
48
+ const hold = partialTail(input, START);
49
+ out += input.slice(0, input.length - hold);
50
+ this.#carry = input.slice(input.length - hold);
51
+ return out;
52
+ }
53
+ const j = input.indexOf(END);
54
+ if (j >= 0) {
55
+ this.#paste += input.slice(0, j);
56
+ input = input.slice(j + END.length);
57
+ this.#state = "normal";
58
+ out += this.#emit(this.#paste);
59
+ this.#paste = "";
60
+ continue;
61
+ }
62
+ const hold = partialTail(input, END);
63
+ this.#paste += input.slice(0, input.length - hold);
64
+ this.#carry = input.slice(input.length - hold);
65
+ return out;
66
+ }
67
+ }
68
+ // Single-line paste passes through verbatim (readline handles it). A
69
+ // multi-line paste becomes a one-line marker expand() restores. CR/CRLF
70
+ // are normalized to LF so a lone CR can't sneak a submit past readline.
71
+ #emit(raw) {
72
+ const paste = raw.replace(/\r\n?/g, "\n");
73
+ if (!paste.includes("\n"))
74
+ return paste;
75
+ const id = this.#nextId++;
76
+ this.#store.set(id, paste);
77
+ return `[paste #${id} +${paste.split("\n").length} lines]`;
78
+ }
79
+ // Stash externally-supplied content (e.g. /import <path>) as if it were
80
+ // pasted; returns the marker to insert into the line. Single-line content
81
+ // comes back verbatim (no marker needed).
82
+ stash(content) {
83
+ return this.#emit(content);
84
+ }
85
+ // Replace paste markers in a submitted line with their stored text.
86
+ // Unknown ids (user edited the marker) are left literal.
87
+ expand(line) {
88
+ return line.replace(MARKER, (m, idStr) => {
89
+ const id = Number(idStr);
90
+ const stored = this.#store.get(id);
91
+ if (stored === undefined)
92
+ return m;
93
+ this.#store.delete(id);
94
+ return stored;
95
+ });
96
+ }
97
+ }
98
+ //# sourceMappingURL=paste.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paste.js","sourceRoot":"","sources":["../src/paste.ts"],"names":[],"mappings":"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"}
package/dist/render.d.ts CHANGED
@@ -14,8 +14,18 @@ export interface LogEntryWire {
14
14
  status_rx: number;
15
15
  tx: unknown;
16
16
  rx: unknown;
17
+ loop_seq: number;
18
+ turn_seq: number;
19
+ sequence: number;
17
20
  }
21
+ export declare const coordLabel: (loopSeq: number, turnSeq: number, sequence: number) => string;
18
22
  export declare const extractSendBody: (txUnknown: unknown, prettify: boolean) => string;
23
+ export declare const isPromptEntry: (entry: LogEntryWire) => boolean;
19
24
  export declare const renderLogEntry: (entry: LogEntryWire) => string;
20
- export declare const renderSummary: (turns: number, wallMs: number, tokens: number, finalStatus: number, hitMaxTurns: boolean) => string;
25
+ export interface LoopUsage {
26
+ promptTokens: number;
27
+ completionTokens: number;
28
+ costPico: number;
29
+ }
30
+ export declare const renderSummary: (turns: number, wallMs: number, finalStatus: number, hitMaxTurns: boolean, usage?: LoopUsage) => string;
21
31
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAU5C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKhD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAQ7C,CAAC;AAkEF,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;CACf;AAgCD,eAAO,MAAM,eAAe,GAAI,WAAW,OAAO,EAAE,UAAU,OAAO,KAAG,MAWvE,CAAC;AA4BF,eAAO,MAAM,cAAc,GAAI,OAAO,YAAY,KAAG,MAiCpD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,EAAE,QAAQ,MAAM,EAAE,aAAa,MAAM,EAAE,aAAa,OAAO,KAAG,MAIxH,CAAC"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAY5C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKhD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAS7C,CAAC;AAkEF,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAMD,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,EAAE,SAAS,MAAM,EAAE,UAAU,MAAM,KAAG,MAG/E,CAAC;AAkCF,eAAO,MAAM,eAAe,GAAI,WAAW,OAAO,EAAE,UAAU,OAAO,KAAG,MAWvE,CAAC;AA+DF,eAAO,MAAM,aAAa,GAAI,OAAO,YAAY,KAAG,OACgD,CAAC;AAOrG,eAAO,MAAM,cAAc,GAAI,OAAO,YAAY,KAAG,MAuCpD,CAAC;AAEF,MAAM,WAAW,SAAS;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAKD,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,EAAE,aAAa,MAAM,EAAE,aAAa,OAAO,EAAE,QAAQ,SAAS,KAAG,MAS3H,CAAC"}