@aui.io/apollo 0.1.91 → 0.1.93

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.
Files changed (47) hide show
  1. package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.js +2 -2
  2. package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.js.map +1 -1
  3. package/node_modules/@aui.io/apollo-cli/dist/src/commands/confirm.d.ts +5 -5
  4. package/node_modules/@aui.io/apollo-cli/dist/src/commands/confirm.js +8 -8
  5. package/node_modules/@aui.io/apollo-cli/dist/src/commands/confirm.js.map +1 -1
  6. package/node_modules/@aui.io/apollo-cli/dist/src/commands/operate.d.ts +2 -0
  7. package/node_modules/@aui.io/apollo-cli/dist/src/commands/operate.js +460 -40
  8. package/node_modules/@aui.io/apollo-cli/dist/src/commands/operate.js.map +1 -1
  9. package/node_modules/@aui.io/apollo-cli/dist/src/index.js +3 -0
  10. package/node_modules/@aui.io/apollo-cli/dist/src/index.js.map +1 -1
  11. package/node_modules/@aui.io/apollo-cli/dist/src/output/broken-pipe.d.ts +8 -0
  12. package/node_modules/@aui.io/apollo-cli/dist/src/output/broken-pipe.js +20 -0
  13. package/node_modules/@aui.io/apollo-cli/dist/src/output/broken-pipe.js.map +1 -0
  14. package/node_modules/@aui.io/apollo-cli/dist/src/output/live-chat.d.ts +57 -0
  15. package/node_modules/@aui.io/apollo-cli/dist/src/output/live-chat.js +178 -0
  16. package/node_modules/@aui.io/apollo-cli/dist/src/output/live-chat.js.map +1 -0
  17. package/node_modules/@aui.io/apollo-cli/package.json +3 -3
  18. package/node_modules/@aui.io/apollo-core/dist/src/api/client-types.d.ts +15 -1
  19. package/node_modules/@aui.io/apollo-core/dist/src/api/jwt.d.ts +6 -0
  20. package/node_modules/@aui.io/apollo-core/dist/src/api/jwt.js +18 -0
  21. package/node_modules/@aui.io/apollo-core/dist/src/api/jwt.js.map +1 -0
  22. package/node_modules/@aui.io/apollo-core/dist/src/api/runtime-api.d.ts +116 -10
  23. package/node_modules/@aui.io/apollo-core/dist/src/api/runtime-api.js +47 -4
  24. package/node_modules/@aui.io/apollo-core/dist/src/api/runtime-api.js.map +1 -1
  25. package/node_modules/@aui.io/apollo-core/dist/src/api/transport.d.ts +33 -1
  26. package/node_modules/@aui.io/apollo-core/dist/src/api/transport.js +246 -22
  27. package/node_modules/@aui.io/apollo-core/dist/src/api/transport.js.map +1 -1
  28. package/node_modules/@aui.io/apollo-core/dist/src/errors/index.d.ts +4 -0
  29. package/node_modules/@aui.io/apollo-core/dist/src/errors/index.js +4 -0
  30. package/node_modules/@aui.io/apollo-core/dist/src/errors/index.js.map +1 -1
  31. package/node_modules/@aui.io/apollo-core/dist/src/output/index.d.ts +11 -2
  32. package/node_modules/@aui.io/apollo-core/dist/src/output/index.js +8 -4
  33. package/node_modules/@aui.io/apollo-core/dist/src/output/index.js.map +1 -1
  34. package/node_modules/@aui.io/apollo-core/dist/src/output/trace-lines.d.ts +28 -0
  35. package/node_modules/@aui.io/apollo-core/dist/src/output/trace-lines.js +140 -0
  36. package/node_modules/@aui.io/apollo-core/dist/src/output/trace-lines.js.map +1 -0
  37. package/node_modules/@aui.io/apollo-core/dist/src/services/chat-script.d.ts +39 -0
  38. package/node_modules/@aui.io/apollo-core/dist/src/services/chat-script.js +150 -0
  39. package/node_modules/@aui.io/apollo-core/dist/src/services/chat-script.js.map +1 -0
  40. package/node_modules/@aui.io/apollo-core/dist/src/services/clients.js +3 -10
  41. package/node_modules/@aui.io/apollo-core/dist/src/services/clients.js.map +1 -1
  42. package/node_modules/@aui.io/apollo-core/dist/src/services/messaging.d.ts +39 -3
  43. package/node_modules/@aui.io/apollo-core/dist/src/services/messaging.js +159 -23
  44. package/node_modules/@aui.io/apollo-core/dist/src/services/messaging.js.map +1 -1
  45. package/node_modules/@aui.io/apollo-core/package.json +1 -1
  46. package/node_modules/@aui.io/apollo-tui/package.json +2 -2
  47. package/package.json +4 -4
@@ -1,8 +1,13 @@
1
1
  import { createInterface } from "node:readline/promises";
2
- import { ConfigError } from "@aui.io/apollo-core/errors/index.js";
2
+ import pc from "picocolors";
3
+ import { ConfigError, ExitCode, toCliError } from "@aui.io/apollo-core/errors/index.js";
4
+ import { describeTraceEntry, short, traceSectionLabel } from "@aui.io/apollo-core/output/trace-lines.js";
3
5
  import { assertRuntimeAvailable } from "@aui.io/apollo-core/runtime-version/availability.js";
6
+ import { checkTurn, loadChatScript, MAX_SCRIPT_TURNS, } from "@aui.io/apollo-core/services/chat-script.js";
4
7
  import { createClients } from "@aui.io/apollo-core/services/clients.js";
5
- import { createThread, getThread, listMessages, listThreads, resolveSendVersion, resolveThreadVersion, sendMessage, trace, } from "@aui.io/apollo-core/services/messaging.js";
8
+ import { chatTurn, createThread, getThread, listMessages, resolveSendVersion, resolveThreadVersion, SUGGESTIONS_WAIT_MS, threadPage, trace, } from "@aui.io/apollo-core/services/messaging.js";
9
+ import { LiveTurnView } from "../output/live-chat.js";
10
+ import { readStdin } from "./prompts.js";
6
11
  /** `--version` is the CLI's own flag at every depth, so the commit a chat runs is `--at`. */
7
12
  const AT_OPTION = [
8
13
  "--at <ref>",
@@ -13,42 +18,79 @@ export function registerOperate(program, runtime) {
13
18
  program
14
19
  .command("chat")
15
20
  .alias("send")
16
- .description("Chat with an agent, or start an interactive session")
17
- .argument("[text...]")
21
+ .description("Chat with an agent: each reply comes with what the agent did and whether its checks passed")
22
+ .argument("[text...]", "the message; `-` reads a whole conversation from stdin, one message per line")
18
23
  .option("--thread <id>", "continue a thread, on the commit it started on")
19
24
  .option("--local <directory>", "send a local program bundle")
20
25
  .option(...AT_OPTION)
21
26
  .option("--var <key=value>", "agent variable", collect, [])
22
- .option("--trace", "include the reply trace")
27
+ .option("--trace", "also how the agent got there, as a short story (with --json: the whole trace, often 10 KB a turn)")
28
+ .option("--no-stream", "send the turn as one request at a terminal too (piped or run by a coding agent, it already is)")
29
+ .option("--events", "with --json: one JSON line per stream frame as it arrives, then the result")
30
+ .option("--script <file>", "run a conversation from a YAML or JSON file of turns, each with optional expectations; exits 2 when one is not met")
31
+ .addHelpText("after", "\nWhat you get:\n" +
32
+ " Each reply comes with one line per step on stderr (the intent it took, the capabilities it ran,\n" +
33
+ ' what it looked up) and its checks verdict, e.g. "checked all 41 checks passed". That answers\n' +
34
+ ' "what did the agent do, and did its checks pass" in a few lines, so a coding agent rarely needs more.\n' +
35
+ " When a policy refuses, a capability is blocked, a change waits for the caller's go-ahead or the engine\n" +
36
+ " fails, the summary says so on its own line.\n" +
37
+ " --json returns the result as data for a script; --json --trace adds the whole trace, which is large.\n" +
38
+ "\nScript file (--script), YAML or JSON:\n" +
39
+ " turns:\n" +
40
+ " - message: When are you open?\n" +
41
+ ' expect: { did: answer-hours, says: "7:00", checks: pass }\n' +
42
+ " - message: Can you book me a flight?\n" +
43
+ " expect: { did: none, refused_by: unrelated-topic }\n" +
44
+ " Every expect key is optional; each one given must hold:\n" +
45
+ " did the capabilities that ran (a name or a list), or none\n" +
46
+ " intent the capabilities taken as the caller's intent\n" +
47
+ " refused_by the policy that refused the turn, or none\n" +
48
+ " checks pass: every check on the turn passed\n" +
49
+ " says phrases the reply contains, ignoring case (not_says: phrases it never contains)\n" +
50
+ "\nExamples:\n" +
51
+ ' apollo chat "What are your opening hours?" the reply, with what the agent did and its checks verdict\n' +
52
+ ' apollo chat --thread <id> "And on Sunday?" the next turn, on the same thread\n' +
53
+ " cat script.txt | apollo chat - a whole test conversation in one call, one thread\n" +
54
+ " apollo chat --script turns.yaml --local . the same, with expectations per turn; exits 2 when one is not met\n" +
55
+ ' apollo --json chat "Hi" the result as JSON data, for a script\n' +
56
+ ' apollo --json chat --events "Hi" every stream frame as a JSON line, for a program showing progress\n' +
57
+ " apollo chat at a terminal: an interactive session (/help inside)")
23
58
  .action(async (words, options) => {
24
59
  const run = runtime();
60
+ if (options.events === true && !run.output.options.json) {
61
+ throw new ConfigError("--events prints JSON lines; pass --json too.", 'apollo --json chat --events "…"');
62
+ }
63
+ if (options.events === true && !options.stream) {
64
+ throw new ConfigError("--events needs the stream; drop --no-stream.");
65
+ }
66
+ if (options.script !== undefined) {
67
+ if (words.length > 0) {
68
+ throw new ConfigError("--script reads the conversation from its file; pass no message with it.", `apollo chat --script ${options.script}`);
69
+ }
70
+ await scriptedTurns(run, options, await loadChatScript(options.script));
71
+ return;
72
+ }
25
73
  const text = words.join(" ").trim();
74
+ if (text === "-") {
75
+ await scriptedTurns(run, options, await stdinTurns());
76
+ return;
77
+ }
26
78
  if (text) {
27
- const clients = createClients(run.context);
28
- await assertRuntimeAvailable(run.context, clients);
29
- const version = await resolveVersion(run, clients, options);
30
- const result = await sendMessage(run.context, clients.runtime, {
31
- text,
32
- ...(version ? { version } : {}),
33
- ...(options.thread ? { threadId: options.thread } : {}),
34
- ...(options.local ? { localDir: options.local } : {}),
35
- variables: options.var,
36
- includeTrace: options.trace === true,
37
- });
38
- run.output.result(result, () => `${result.message.text ?? ""}\nThread: ${result.thread_id}`);
79
+ await oneTurn(run, options, text);
39
80
  return;
40
81
  }
41
82
  if (!process.stdin.isTTY ||
42
83
  !process.stdout.isTTY ||
43
84
  run.output.options.json ||
44
85
  !program.opts().input) {
45
- throw new ConfigError("Message text is required in non-interactive mode.");
86
+ throw new ConfigError("Message text is required in non-interactive mode.", "Pass the message, or pipe one message per line: `cat script.txt | apollo chat -`.");
46
87
  }
47
88
  await repl(run, options);
48
89
  });
49
90
  const thread = program.command("thread").description("Inspect Apollo threads");
50
91
  thread
51
92
  .command("create")
93
+ .description("Open a new thread on a commit")
52
94
  .option(...AT_OPTION)
53
95
  .action(async (options) => {
54
96
  const run = runtime();
@@ -59,6 +101,7 @@ export function registerOperate(program, runtime) {
59
101
  });
60
102
  thread
61
103
  .command("get")
104
+ .description("Show one thread")
62
105
  .argument("<thread-id>")
63
106
  .action(async (threadId) => {
64
107
  const run = runtime();
@@ -67,20 +110,46 @@ export function registerOperate(program, runtime) {
67
110
  });
68
111
  thread
69
112
  .command("list")
70
- .option("--size <number>", "page size", Number, 25)
71
- .option("--after <cursor>", "keyset cursor from the previous page")
113
+ .description("List conversations: this checkout's agent (yours, newest first), or all of yours outside a checkout")
114
+ .option("--size <number>", "how many per page (1 to 100)", "25")
115
+ .option("--after <cursor>", "continue from the page before (its `More:` line names the cursor)")
116
+ .option("--commit <tag>", "only threads on this commit (inside a checkout)")
117
+ .option("--title <text>", "only threads whose title contains this (inside a checkout)")
118
+ .option("--origin <type>", "only threads started from here: cli, playground, web-widget, whatsapp, … (repeatable; inside a checkout)", collect, [])
119
+ .option("--since <when>", "only threads started at or after this: a date (2026-10-01, UTC), a local time (2026-10-01T09:00; end it with Z for UTC) or a span back from now (30m, 2h, 7d)")
120
+ .option("--until <when>", "only threads started before this (the same forms as --since)")
121
+ .option("--simulated", "only simulated conversations (inside a checkout)")
122
+ .option("--no-simulated", "only real conversations (inside a checkout)")
123
+ .option("--everyone", "every user's threads with this agent, not only yours")
124
+ .option("--all-agents", "your threads with every agent, even inside a checkout")
72
125
  .action(async (options) => {
73
126
  const run = runtime();
74
- const result = await listThreads(run.context, createClients(run.context).runtime, { size: options.size, after: options.after });
75
- run.output.result(result, (value) => value
76
- .map((item) => {
77
- const turns = typeof item.turns === "number" ? item.turns : 0;
78
- return `${item.id}\t${item.title ?? ""}\t${turns}`;
79
- })
80
- .join("\n") || "No threads.");
127
+ const size = Number(options.size);
128
+ if (!Number.isInteger(size) || size < 1 || size > 100) {
129
+ throw new ConfigError(`--size takes 1 to 100 (got ${options.size}).`);
130
+ }
131
+ const startTime = options.since ? moment(options.since, "--since") : undefined;
132
+ const endTime = options.until ? moment(options.until, "--until") : undefined;
133
+ const page = await threadPage(run.context, createClients(run.context).runtime, {
134
+ size,
135
+ ...(options.after ? { after: options.after } : {}),
136
+ ...(options.commit ? { versionTag: options.commit } : {}),
137
+ ...(options.title ? { title: options.title } : {}),
138
+ ...(options.origin.length > 0 ? { origins: options.origin } : {}),
139
+ ...(startTime ? { startTime } : {}),
140
+ ...(endTime ? { endTime } : {}),
141
+ ...(options.simulated === undefined ? {} : { simulated: options.simulated }),
142
+ ...(options.everyone === true ? { everyone: true } : {}),
143
+ ...(options.allAgents === true ? { allAgents: true } : {}),
144
+ });
145
+ const more = page.has_next === true && page.next_cursor ? page.next_cursor : undefined;
146
+ run.output.result(page.items, () => page.items.map(threadRow).join("\n") || "No threads.", { page: { has_next: page.has_next === true, ...(more ? { next_cursor: more } : {}) } });
147
+ if (more)
148
+ run.output.notice(`More: ${nextThreadPage(options, more, startTime, endTime)}`);
81
149
  });
82
150
  thread
83
151
  .command("messages")
152
+ .description("Print a thread's transcript")
84
153
  .argument("<thread-id>")
85
154
  .action(async (threadId) => {
86
155
  const run = runtime();
@@ -91,6 +160,7 @@ export function registerOperate(program, runtime) {
91
160
  });
92
161
  thread
93
162
  .command("trace")
163
+ .description("Print a thread's runtime traces, oldest first")
94
164
  .argument("<thread-id>")
95
165
  .option("--interaction <id>", "return one interaction trace")
96
166
  .action(async (threadId, options) => {
@@ -102,33 +172,383 @@ export function registerOperate(program, runtime) {
102
172
  function collect(value, previous) {
103
173
  return [...previous, value];
104
174
  }
175
+ /** One message, one reply: what the agent did on stderr, the reply on stdout. */
176
+ async function oneTurn(run, options, text) {
177
+ const clients = createClients(run.context);
178
+ await assertRuntimeAvailable(run.context, clients);
179
+ const version = await resolveVersion(run, clients, options);
180
+ const view = liveView(run);
181
+ const controller = new AbortController();
182
+ const release = cancelOnInterrupt(controller);
183
+ const showTrace = options.trace === true;
184
+ try {
185
+ const { result, rest } = await runTurn(run, clients, view, options, sendInput(text, version, options, options.thread, wantsTrace(run, showTrace)), controller.signal, showTrace);
186
+ run.output.result(result, () => [...rest, `Thread: ${result.thread_id}`].join("\n"));
187
+ }
188
+ finally {
189
+ release();
190
+ }
191
+ }
192
+ /** `chat -`: one message per stdin line. */
193
+ async function stdinTurns() {
194
+ const lines = (await readStdin())
195
+ .split(/\r?\n/)
196
+ .map((line) => line.trim())
197
+ .filter(Boolean);
198
+ if (lines.length === 0) {
199
+ throw new ConfigError("No messages on stdin.", "Pipe one message per line: `cat script.txt | apollo chat -`.");
200
+ }
201
+ if (lines.length > MAX_SCRIPT_TURNS) {
202
+ throw new ConfigError(`The script has ${lines.length} messages; one run sends at most ${MAX_SCRIPT_TURNS}.`, "Split it, and continue the conversation with --thread <id>.");
203
+ }
204
+ return lines.map((message) => ({ message }));
205
+ }
206
+ /**
207
+ * A scripted conversation — `chat -` (one message per stdin line) or
208
+ * `chat --script` (a file of turns) — all on one thread, in order. A turn with
209
+ * an `expect` is checked against its reply and sealed trace; once every turn
210
+ * has run, a script whose expectations are not all met exits 2.
211
+ */
212
+ async function scriptedTurns(run, options, script) {
213
+ const clients = createClients(run.context);
214
+ await assertRuntimeAvailable(run.context, clients);
215
+ const version = await resolveVersion(run, clients, options);
216
+ const human = !run.output.options.json;
217
+ const colors = pc.createColors(Boolean(process.stdout.isTTY) && pc.isColorSupported);
218
+ const view = liveView(run);
219
+ const controller = new AbortController();
220
+ const release = cancelOnInterrupt(controller);
221
+ const showTrace = options.trace === true;
222
+ let threadId = options.thread;
223
+ const turns = [];
224
+ const missed = [];
225
+ let checked = 0;
226
+ try {
227
+ for (const [index, turn] of script.entries()) {
228
+ if (human)
229
+ process.stdout.write(`${colors.bold(`› ${turn.message}`)}\n`);
230
+ // Expectations are read off the sealed trace, so a turn that has them always asks for it.
231
+ const includeTrace = wantsTrace(run, showTrace) || turn.expect !== undefined;
232
+ const { result, rest } = await runTurn(run, clients, view, options, sendInput(turn.message, version, options, threadId, includeTrace), controller.signal, showTrace);
233
+ threadId = result.thread_id;
234
+ const expectations = turn.expect ? checkTurn(turn.expect, result.message) : undefined;
235
+ turns.push({ text: turn.message, message: result.message, ...(expectations ? { expectations } : {}) });
236
+ for (const expectation of expectations ?? []) {
237
+ checked += 1;
238
+ if (!expectation.met)
239
+ missed.push(`turn ${index + 1}: ${expectation.expect}`);
240
+ }
241
+ if (human) {
242
+ const verdicts = (expectations ?? []).map((expectation) => expectation.met
243
+ ? colors.green(` ✓ ${expectation.expect}`)
244
+ : colors.red(` ✗ ${expectation.expect}${expectation.got ? ` — ${expectation.got}` : ""}`));
245
+ process.stdout.write(`${[...rest, ...verdicts, ""].join("\n")}\n`);
246
+ }
247
+ }
248
+ }
249
+ finally {
250
+ release();
251
+ }
252
+ const expectations = checked > 0 ? { met: checked - missed.length, total: checked, passed: missed.length === 0 } : undefined;
253
+ run.output.result({ thread_id: threadId, turns, ...(expectations ? { expectations } : {}) }, () => [
254
+ ...(expectations === undefined
255
+ ? []
256
+ : [expectations.passed ? `Expectations: all ${checked} met.` : `Expectations: ${expectations.met} of ${checked} met. Not met — ${missed.join("; ")}.`]),
257
+ `Thread: ${threadId ?? ""}`,
258
+ ].join("\n"));
259
+ if (missed.length > 0)
260
+ process.exitCode = ExitCode.validation;
261
+ }
105
262
  async function repl(run, options) {
106
263
  const clients = createClients(run.context);
107
264
  await assertRuntimeAvailable(run.context, clients);
108
- const readline = createInterface({ input: process.stdin, output: process.stderr });
109
265
  const version = await resolveVersion(run, clients, options);
266
+ const colors = pc.createColors(Boolean(process.stdout.isTTY) && pc.isColorSupported);
267
+ const say = (line) => {
268
+ process.stderr.write(`${colors.dim(line)}\n`);
269
+ };
270
+ const readline = createInterface({ input: process.stdin, output: process.stderr });
271
+ const view = liveView(run);
110
272
  let threadId = options.thread;
273
+ let showTrace = options.trace === true;
274
+ let turn;
275
+ // Ctrl+C cancels the turn in flight; at the prompt it leaves.
276
+ readline.on("SIGINT", () => {
277
+ if (turn)
278
+ turn.abort();
279
+ else
280
+ readline.close();
281
+ });
282
+ say(`Chatting with ${run.context.agentId ? "this checkout's agent" : "a local program"}${version ? ` at ${version.tag}` : ""}` +
283
+ `${threadId ? ` on thread ${threadId}` : ""}. /help lists commands; Ctrl+C cancels a turn, Ctrl+D leaves.`);
111
284
  try {
112
285
  for (;;) {
113
- const text = (await readline.question("apollo> ")).trim();
114
- if (!text || text === "/exit" || text === "/quit")
286
+ const line = await ask(readline, colors.bold("you › "));
287
+ if (line === undefined)
115
288
  return;
116
- const result = await sendMessage(run.context, clients.runtime, {
117
- text,
118
- ...(version ? { version } : {}),
119
- ...(threadId ? { threadId } : {}),
120
- ...(options.local ? { localDir: options.local } : {}),
121
- variables: options.var,
122
- includeTrace: options.trace === true,
123
- });
124
- threadId = result.thread_id;
125
- process.stdout.write(`${result.message.text ?? ""}\n`);
289
+ const text = line.trim();
290
+ if (!text)
291
+ continue;
292
+ if (text.startsWith("/")) {
293
+ const command = text.split(/\s+/)[0];
294
+ if (command === "/exit" || command === "/quit")
295
+ return;
296
+ if (command === "/help")
297
+ say("/new start a new thread · /thread show this thread's id · /trace show how the agent got each reply (toggle) · /exit leave");
298
+ else if (command === "/new") {
299
+ threadId = undefined;
300
+ say("The next message starts a new thread.");
301
+ }
302
+ else if (command === "/thread")
303
+ say(threadId ? `Thread ${threadId}` : "No thread yet — send a message.");
304
+ else if (command === "/trace") {
305
+ showTrace = !showTrace;
306
+ say(`Trace ${showTrace ? "on" : "off"}.`);
307
+ }
308
+ else
309
+ say(`Unknown command ${command}; /help lists them.`);
310
+ continue;
311
+ }
312
+ turn = new AbortController();
313
+ try {
314
+ const { result, rest } = await runTurn(run, clients, view, options, sendInput(text, version, options, threadId, wantsTrace(run, showTrace)), turn.signal, showTrace, true);
315
+ const first = threadId === undefined;
316
+ threadId = result.thread_id;
317
+ if (rest.length)
318
+ process.stdout.write(`${rest.join("\n")}\n`);
319
+ if (first)
320
+ say(`Thread ${threadId} — /thread shows it again, /new starts another.`);
321
+ }
322
+ catch (error) {
323
+ // A failed turn is a message, never the end of the session.
324
+ run.output.error(toCliError(error));
325
+ }
326
+ finally {
327
+ turn = undefined;
328
+ }
126
329
  }
127
330
  }
128
331
  finally {
129
332
  readline.close();
130
333
  }
131
334
  }
335
+ /** One prompt; `undefined` once the session closed (Ctrl+D, or Ctrl+C at the prompt). */
336
+ function ask(readline, prompt) {
337
+ return new Promise((resolve) => {
338
+ const closed = () => resolve(undefined);
339
+ readline.once("close", closed);
340
+ readline.question(prompt).then((answer) => {
341
+ readline.off("close", closed);
342
+ resolve(answer);
343
+ }, () => {
344
+ readline.off("close", closed);
345
+ resolve(undefined);
346
+ });
347
+ });
348
+ }
349
+ function sendInput(text, version, options, threadId, includeTrace) {
350
+ return {
351
+ text,
352
+ ...(version ? { version } : {}),
353
+ ...(threadId ? { threadId } : {}),
354
+ ...(options.local ? { localDir: options.local } : {}),
355
+ variables: options.var,
356
+ includeTrace,
357
+ };
358
+ }
359
+ /**
360
+ * Whether the turn asks for its sealed trace: when the caller wants it shown,
361
+ * and whenever what the agent did is drawn — a streamed turn takes its checks
362
+ * verdict from it, a one-request turn every step. The server builds the trace
363
+ * on every turn either way; this only ships it. A JSON result carries it only
364
+ * when asked for (`--trace`).
365
+ */
366
+ function wantsTrace(run, shown) {
367
+ return shown || (!run.output.options.json && !run.output.options.quiet);
368
+ }
369
+ /**
370
+ * Whether the turn streams: when a person reads the live view at a terminal,
371
+ * or `--events` asks for every frame. Piped, under a coding agent, or with
372
+ * `--json`, it is one request — the reply lands as soon, the run ends the
373
+ * moment it does, and no follow-ups are written for a reader who never sees
374
+ * them; the same steps are then read off the reply's sealed trace.
375
+ */
376
+ function streams(run, options) {
377
+ if (!options.stream)
378
+ return false;
379
+ if (options.events === true)
380
+ return true;
381
+ return Boolean(process.stderr.isTTY) && !run.output.options.json && !run.output.options.quiet;
382
+ }
383
+ /**
384
+ * One turn, as this run shows it: what the agent did on stderr — live when the
385
+ * turn streams, read off its sealed trace when it was one request — the reply
386
+ * on stdout the moment it lands, and `--events` frames as JSON lines. Returns
387
+ * the result and what is left to print after the reply (its follow-ups, and
388
+ * the reply itself when it was not shown as it landed).
389
+ */
390
+ async function runTurn(run, clients, view, options, input, signal, showTrace, session = false) {
391
+ const human = !run.output.options.json;
392
+ // Set from the frames as they arrive: whether the turn streamed, and whether its reply is already out.
393
+ const seen = { streamed: false, shown: false };
394
+ view.begin();
395
+ try {
396
+ const result = await chatTurn(run.context, clients.runtime, input, {
397
+ stream: streams(run, options),
398
+ signal,
399
+ suggestionsWaitMs: suggestionsWait(options, session),
400
+ onEvent: (event) => {
401
+ seen.streamed = true;
402
+ view.onEvent(event);
403
+ if (options.events === true)
404
+ run.output.jsonLine(event);
405
+ else if (human && event.type === "message") {
406
+ // The reply as it lands; follow-ups the stream writes after it come below.
407
+ process.stdout.write(`${replyBody(event.data, showTrace)}\n`);
408
+ seen.shown = true;
409
+ }
410
+ },
411
+ onFallback: (reason) => run.output.debug(`The turn was sent as one request (${reason}).`),
412
+ });
413
+ if (!seen.streamed)
414
+ view.summarize(result.message.trace_info);
415
+ return { result, rest: [...(seen.shown ? [] : [replyBody(result.message, showTrace)]), ...suggestionLines(result)] };
416
+ }
417
+ finally {
418
+ view.end();
419
+ }
420
+ }
421
+ /**
422
+ * How long a streamed turn waits, after its reply, for the follow-ups the
423
+ * stream route writes late (a model round trip a one-request turn never
424
+ * makes): in the interactive session, where they help pick the next message,
425
+ * and when `--events` asks for every frame. A single `chat` ends with its reply.
426
+ */
427
+ function suggestionsWait(options, session) {
428
+ return session || options.events === true ? SUGGESTIONS_WAIT_MS : 0;
429
+ }
430
+ /** What the agent did, for this run: on stderr, drawn only when read as text. */
431
+ function liveView(run) {
432
+ return new LiveTurnView({
433
+ out: process.stderr,
434
+ tty: Boolean(process.stderr.isTTY),
435
+ enabled: !run.output.options.json && !run.output.options.quiet,
436
+ });
437
+ }
438
+ /** Ctrl+C aborts the turn; a second one leaves at once. Returns the undo. */
439
+ function cancelOnInterrupt(controller) {
440
+ let pressed = 0;
441
+ const onInterrupt = () => {
442
+ pressed += 1;
443
+ if (pressed > 1)
444
+ process.exit(ExitCode.interrupted);
445
+ controller.abort();
446
+ };
447
+ process.on("SIGINT", onInterrupt);
448
+ return () => {
449
+ process.off("SIGINT", onInterrupt);
450
+ };
451
+ }
452
+ /** The reply as a person reads it: the text (or why there was none), its cards, and how the agent got there (`--trace`). */
453
+ function replyBody(message, showTrace) {
454
+ const colors = pc.createColors(Boolean(process.stdout.isTTY) && pc.isColorSupported);
455
+ const silent = !message.text && message.disposition ? colors.dim(`(no reply: ${dispositionText(message.disposition)})`) : undefined;
456
+ const lines = [silent ?? message.text ?? ""];
457
+ lines.push(...(message.cards ?? []).map((card) => colors.dim(` ${cardText(card)}`)));
458
+ if (showTrace)
459
+ lines.push(...traceLines(message.trace_info).map((line) => colors.dim(line)));
460
+ return lines.join("\n");
461
+ }
462
+ /** Why a turn sent no words: the intake verb, and the rule's reason when it gives one. */
463
+ function dispositionText(disposition) {
464
+ const kind = disposition.kind ? disposition.kind : "disposed of";
465
+ if (disposition.reason)
466
+ return `${kind} — ${short(disposition.reason)}`;
467
+ return disposition.rule ? `${kind} (rule ${disposition.rule})` : kind;
468
+ }
469
+ /** One card on one line: its title (or the capability that made it), the record it is about, and its first fields. */
470
+ function cardText(card) {
471
+ const name = card.title ? card.title : card.capability ? card.capability : "card";
472
+ const about = card.instance ? ` [${card.instance}]` : "";
473
+ const fields = Object.entries(card.json_data?.entity ?? {})
474
+ .slice(0, 4)
475
+ .map(([key, value]) => `${key}: ${short(value)}`);
476
+ return `card: ${name}${about}${fields.length ? ` — ${fields.join(" · ")}` : ""}`;
477
+ }
478
+ /** The follow-ups offered after the reply, as one line — none when there are none. */
479
+ function suggestionLines(result) {
480
+ const colors = pc.createColors(Boolean(process.stdout.isTTY) && pc.isColorSupported);
481
+ const suggestions = result.message.followup_suggestions ?? [];
482
+ return suggestions.length ? [colors.dim(`Suggestions: ${suggestions.map((s) => `“${s}”`).join(" · ")}`)] : [];
483
+ }
484
+ /** The sealed trace, for a person: its own narrative, else one line per entry. */
485
+ function traceLines(traceInfo) {
486
+ if (!traceInfo)
487
+ return [" (no trace came back for this turn)"];
488
+ const narrative = traceInfo.narrative;
489
+ if (typeof narrative === "string" && narrative.trim()) {
490
+ return ["", " How it went:", ...narrative.trim().split("\n").map((line) => ` ${line}`)];
491
+ }
492
+ const lines = [];
493
+ for (const [section, value] of Object.entries(traceInfo)) {
494
+ if (!Array.isArray(value) || value.length === 0)
495
+ continue;
496
+ for (const entry of value)
497
+ lines.push(` ${traceSectionLabel(section).padEnd(11)} ${describeTraceEntry(section, entry)}`);
498
+ }
499
+ return lines.length ? ["", " How it went:", ...lines] : [" (the trace has no steps to show)"];
500
+ }
501
+ const SPAN_MS = { m: 60_000, h: 3_600_000, d: 86_400_000 };
502
+ /** A moment for --since / --until: an ISO date or time, or a span back from now (30m, 2h, 7d). */
503
+ export function moment(value, flag, now = Date.now()) {
504
+ const span = /^(\d+)([mhd])$/.exec(value.trim());
505
+ if (span)
506
+ return new Date(now - Number(span[1]) * SPAN_MS[span[2]]).toISOString();
507
+ const parsed = Date.parse(value);
508
+ if (Number.isNaN(parsed)) {
509
+ throw new ConfigError(`${flag} takes a date (2026-10-01, UTC), a local time (2026-10-01T09:00; end it with Z for UTC) or a span back from now (30m, 2h, 7d); got ${value}.`);
510
+ }
511
+ return new Date(parsed).toISOString();
512
+ }
513
+ /**
514
+ * The command for the next page: the cursor alone is only a position, so it
515
+ * repeats every filter — with `--since` and `--until` as the exact times this
516
+ * page used, so a span such as `2h` does not move on between pages.
517
+ */
518
+ function nextThreadPage(options, cursor, startTime, endTime) {
519
+ const words = ["apollo thread list"];
520
+ if (Number(options.size) !== 25)
521
+ words.push(`--size ${options.size}`);
522
+ if (options.commit)
523
+ words.push(`--commit ${shellWord(options.commit)}`);
524
+ if (options.title)
525
+ words.push(`--title ${shellWord(options.title)}`);
526
+ for (const origin of options.origin)
527
+ words.push(`--origin ${shellWord(origin)}`);
528
+ if (startTime)
529
+ words.push(`--since ${startTime}`);
530
+ if (endTime)
531
+ words.push(`--until ${endTime}`);
532
+ if (options.simulated !== undefined)
533
+ words.push(options.simulated ? "--simulated" : "--no-simulated");
534
+ if (options.everyone === true)
535
+ words.push("--everyone");
536
+ if (options.allAgents === true)
537
+ words.push("--all-agents");
538
+ words.push(`--after ${cursor}`);
539
+ return words.join(" ");
540
+ }
541
+ /** A word the shell reads back as written. */
542
+ function shellWord(value) {
543
+ return /^[\w@%+=:,./-]+$/.test(value) ? value : `'${value.replaceAll("'", `'\\''`)}'`;
544
+ }
545
+ /** One `thread list` row: id, last activity, commit, where it started, title. */
546
+ function threadRow(item) {
547
+ const when = item.updated_at.slice(0, 16).replace("T", " ");
548
+ const commit = item.agent?.version_tag ?? "-";
549
+ const origin = item.task_origin?.type;
550
+ return [item.id, when || "-", commit, typeof origin === "string" ? origin : "-", item.title || "(untitled)"].join(" ");
551
+ }
132
552
  async function resolveVersion(run, clients, options) {
133
553
  if (options.local) {
134
554
  if (options.at !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"operate.js","sourceRoot":"","sources":["../../../src/commands/operate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operate.js","sourceRoot":"","sources":["../../../src/commands/operate.ts"],"names":[],"mappings":"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"}