@heyditto/cli 2.0.1 → 2.1.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.js CHANGED
@@ -7,6 +7,9 @@ import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/
7
7
  import { Command, Option } from "commander";
8
8
  import { agentSignupURL, apiBaseURL, authFilePath, mcpServerURL, newKeyURL, packageName, packageVersion, resolveApiKey, } from "./config.js";
9
9
  import { clearStoredKey, readStoredAuth, writeStoredAuth, writeStoredKey } from "./store.js";
10
+ import { cmdAgents, cmdEndpoints, cmdSessions, cmdSessionsRm, registerHarnessCommands, registerSessionCommands, } from "./commands.js";
11
+ import { markSessionUsed, resolveActiveSession, sessionHeaders } from "./mcp-session.js";
12
+ import { deviceLogin } from "./device-login.js";
10
13
  const OUTPUT_FORMATS = ["json", "text", "markdown", "raw"];
11
14
  const MEMORY_FORMATS = ["full", "outline", "blocks"];
12
15
  function outputOption() {
@@ -104,14 +107,25 @@ async function getClient() {
104
107
  ` Human-owned keys are available at ${newKeyURL()}.\n`);
105
108
  process.exit(1);
106
109
  }
110
+ // An explicit session (heyditto session new / DITTO_SESSION_ID) tags every
111
+ // request so the server groups this run's saves and searches into one thread.
112
+ let session;
113
+ try {
114
+ session = await resolveActiveSession();
115
+ }
116
+ catch (err) {
117
+ process.stderr.write(`error: ${err instanceof Error ? err.message : String(err)}\n`);
118
+ process.exit(1);
119
+ }
107
120
  const client = new Client({ name: packageName, version: packageVersion });
108
121
  const transport = new StreamableHTTPClientTransport(new URL(mcpServerURL()), {
109
122
  requestInit: {
110
- headers: { Authorization: `Bearer ${key}` },
123
+ headers: { Authorization: `Bearer ${key}`, ...sessionHeaders(session) },
111
124
  },
112
125
  });
113
126
  try {
114
127
  await client.connect(transport);
128
+ await markSessionUsed(session);
115
129
  }
116
130
  catch (err) {
117
131
  process.stderr.write(`error: failed to connect to ${mcpServerURL()} (key source: ${source}).\n` +
@@ -160,9 +174,21 @@ function openInBrowser(url) {
160
174
  async function cmdLogin(keyArg, options) {
161
175
  parseOutputFormat(options.output); // validate but ignored: login is interactive
162
176
  let key = keyArg?.trim();
177
+ let viaDevice = false;
163
178
  if (!key && options.stdin) {
164
179
  key = (await readKeyFromStdin()).trim();
165
180
  }
181
+ else if (!key && !options.paste && process.stdin.isTTY) {
182
+ // Browser device flow: no key to copy around.
183
+ key = await deviceLogin({
184
+ onCode: (userCode, url) => {
185
+ process.stderr.write(`\nOpen ${url}\nand confirm the code: ${userCode}\n\n`);
186
+ openInBrowser(url);
187
+ process.stderr.write("Waiting for approval in the browser (Ctrl+C to cancel)…\n");
188
+ },
189
+ });
190
+ viaDevice = true;
191
+ }
166
192
  else if (!key) {
167
193
  if (options.paste) {
168
194
  process.stderr.write(`Opening ${newKeyURL()} in your browser...\n`);
@@ -179,7 +205,7 @@ async function cmdLogin(keyArg, options) {
179
205
  process.stderr.write(`warning: key does not start with "ditto_mcp_" - proceeding anyway\n`);
180
206
  }
181
207
  await writeStoredKey(key);
182
- process.stdout.write(`Saved key to ${authFilePath()}\n`);
208
+ process.stdout.write(`${viaDevice ? "Logged in. " : ""}Saved key to ${authFilePath()}\n`);
183
209
  if (process.env.DITTO_API_KEY) {
184
210
  process.stderr.write(`note: DITTO_API_KEY is set in your environment and will override the saved key for this session.\n`);
185
211
  }
@@ -496,13 +522,19 @@ async function cmdDelete(memoryId, options) {
496
522
  }
497
523
  async function cmdStatus(options) {
498
524
  const format = parseOutputFormat(options.output);
499
- const [{ key, source }, stored] = await Promise.all([resolveApiKey(), readStoredAuth()]);
525
+ const [{ key, source }, stored, session] = await Promise.all([
526
+ resolveApiKey(),
527
+ readStoredAuth(),
528
+ resolveActiveSession(),
529
+ ]);
500
530
  const report = {
501
531
  package: packageName,
502
532
  version: packageVersion,
503
533
  endpoint: mcpServerURL(),
504
534
  apiKey: { present: !!key, source },
505
535
  };
536
+ if (session)
537
+ report.session = { id: session.id, name: session.name, source: session.source };
506
538
  if (source === "config" && stored?.agentMode) {
507
539
  report.agent = {
508
540
  enabled: true,
@@ -564,6 +596,10 @@ async function cmdStatus(options) {
564
596
  if (report.agent?.claimURL) {
565
597
  lines.push(`agent: unclaimed (${report.agent.caller || "agent"})`, `claim: ${report.agent.claimURL}`);
566
598
  }
599
+ if (report.session) {
600
+ const pinned = report.session.source === "env" ? " [DITTO_SESSION_ID]" : "";
601
+ lines.push(`session: ${report.session.id}${report.session.name ? ` (${report.session.name})` : ""}${pinned}`);
602
+ }
567
603
  process.stdout.write(`${lines.join("\n")}\n`);
568
604
  }
569
605
  function cmdConfig(options) {
@@ -611,6 +647,7 @@ function buildProgram() {
611
647
  .description("Save, search, fetch, and traverse Ditto memories from the shell.")
612
648
  .version(packageVersion, "-v, --version", "print the CLI version")
613
649
  .helpCommand("help [command]", "show help for a command")
650
+ .enablePositionalOptions()
614
651
  .showHelpAfterError()
615
652
  .addHelpText("after", `
616
653
  Notes:
@@ -621,8 +658,14 @@ Notes:
621
658
  Environment:
622
659
  DITTO_API_KEY Optional override, taking precedence over the saved key.
623
660
  DITTO_API_BASE Optional API base URL. Defaults to https://api.heyditto.ai.
661
+ DITTO_SESSION_ID Optional explicit MCP session id sent as X-Ditto-Session-Id (see 'session').
624
662
  DITTO_CONFIG_DIR Optional config directory. Defaults to $XDG_CONFIG_HOME/heyditto/cli
625
663
  or ~/.config/heyditto/cli.
664
+
665
+ Coding agents:
666
+ heyditto claude / heyditto codex launch the agent through one of your Ditto
667
+ inference endpoints with a temporary key that is revoked when it exits, so
668
+ every session becomes its own thread with full traces in the Ditto app.
626
669
  `);
627
670
  addExamples(program
628
671
  .command("save")
@@ -845,12 +888,43 @@ your own graph or an app graph.`);
845
888
  .action(cmdInit);
846
889
  program
847
890
  .command("login")
848
- .description("save an API key")
849
- .argument("[key]", "Ditto API key")
850
- .option("--paste", "open the key creation page before prompting")
891
+ .description("sign in (browser device flow) or save an API key")
892
+ .argument("[key]", "Ditto API key (omit to sign in through the browser)")
893
+ .option("--paste", "open the key creation page and paste a key instead of the device flow")
851
894
  .option("--stdin", "read the API key from stdin")
852
895
  .addOption(hiddenOutputOption())
853
896
  .action(cmdLogin);
897
+ addExamples(program
898
+ .command("endpoints")
899
+ .description("list your inference endpoints (used by heyditto claude / codex)")
900
+ .summary("list inference endpoints")
901
+ .option("--set-default <slug>", "endpoint to use when --endpoint is omitted")
902
+ .option("--clear-default", "forget the default endpoint")
903
+ .addOption(outputOption())
904
+ .action(cmdEndpoints), ` heyditto endpoints
905
+ heyditto endpoints --set-default my-endpoint
906
+ heyditto endpoints --output json`);
907
+ registerHarnessCommands(program, addExamples);
908
+ registerSessionCommands(program, addExamples);
909
+ addExamples(program
910
+ .command("agents")
911
+ .description("list your Ditto agents (threads, activity, connections)")
912
+ .summary("list Ditto agents")
913
+ .addOption(outputOption())
914
+ .action(cmdAgents), ` heyditto agents
915
+ heyditto agents --output json`);
916
+ const sessions = program
917
+ .command("sessions")
918
+ .description("list coding-agent sessions launched by this CLI")
919
+ .summary("list coding-agent sessions")
920
+ .option("--json", "print machine-readable output")
921
+ .option("--all", "show every record, not just the latest 20")
922
+ .action(cmdSessions);
923
+ sessions
924
+ .command("rm")
925
+ .description("forget a local session record (threads and traces are kept)")
926
+ .argument("<id>", "Ditto session id")
927
+ .action(cmdSessionsRm);
854
928
  program
855
929
  .command("logout")
856
930
  .description("delete the saved API key")
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { Command } from "commander";
2
+ interface EndpointsOptions {
3
+ output?: string;
4
+ setDefault?: string;
5
+ clearDefault?: boolean;
6
+ }
7
+ export declare function cmdEndpoints(options: EndpointsOptions): Promise<void>;
8
+ interface SessionsOptions {
9
+ json?: boolean;
10
+ all?: boolean;
11
+ }
12
+ export declare function cmdSessions(options: SessionsOptions): Promise<void>;
13
+ export declare function cmdSessionsRm(id: string): Promise<void>;
14
+ /** Registers `claude` and `codex` on the program (which must have enablePositionalOptions()). */
15
+ export declare function registerHarnessCommands(program: Command, addExamples: (c: Command, ex: string) => Command): void;
16
+ interface SessionOutputOptions {
17
+ output?: string;
18
+ }
19
+ export declare function cmdSessionNew(nameParts: string[], options: SessionOutputOptions & {
20
+ id?: string;
21
+ }): Promise<void>;
22
+ export declare function cmdSessionList(options: SessionOutputOptions & {
23
+ all?: boolean;
24
+ }): Promise<void>;
25
+ export declare function cmdSessionUse(id: string, options: SessionOutputOptions): Promise<void>;
26
+ export declare function cmdSessionCurrent(options: SessionOutputOptions): Promise<void>;
27
+ export declare function cmdSessionEnd(options: SessionOutputOptions): Promise<void>;
28
+ export declare function registerSessionCommands(program: Command, addExamples: (c: Command, ex: string) => Command): void;
29
+ export declare function cmdAgents(options: SessionOutputOptions): Promise<void>;
30
+ export {};
@@ -0,0 +1,293 @@
1
+ import { Option } from "commander";
2
+ import { launchHarness } from "./agents/launch.js";
3
+ import { listSessions, removeSession } from "./agents/sessions.js";
4
+ import { HARNESSES, KEY_EXPIRIES } from "./agents/types.js";
5
+ import { listChatAgents, listEndpoints } from "./api.js";
6
+ import { SESSION_ENV, SESSION_ID_HEADER, endSession, readSessionHistory, resolveActiveSession, startSession, useSession, } from "./mcp-session.js";
7
+ import { readStoredAuth, updateStoredAuth } from "./store.js";
8
+ function pad(s, n) {
9
+ return s.length >= n ? s : s + " ".repeat(n - s.length);
10
+ }
11
+ function spendColumn(e) {
12
+ const used = (e.spentTokens ?? 0).toLocaleString();
13
+ if (e.spendLimitTokens == null || e.spendLimitTokens < 0)
14
+ return `${used} / ∞`;
15
+ return `${used} / ${e.spendLimitTokens.toLocaleString()}${e.spendPeriod && e.spendPeriod !== "never" ? ` ${e.spendPeriod}` : ""}`;
16
+ }
17
+ export async function cmdEndpoints(options) {
18
+ if (options.setDefault && options.clearDefault)
19
+ throw new Error("use either --set-default or --clear-default");
20
+ const catalog = await listEndpoints();
21
+ if (options.clearDefault) {
22
+ await updateStoredAuth({ defaultEndpoint: undefined });
23
+ process.stderr.write("Cleared the default endpoint.\n");
24
+ }
25
+ if (options.setDefault) {
26
+ const wanted = options.setDefault.trim();
27
+ const match = catalog.endpoints.find((e) => e.slug === wanted || e.id === wanted);
28
+ if (!match) {
29
+ throw new Error(`no endpoint named "${wanted}". Available: ${catalog.endpoints.map((e) => e.slug).join(", ") || "(none)"}`);
30
+ }
31
+ await updateStoredAuth({ defaultEndpoint: match.slug });
32
+ process.stderr.write(`Default endpoint set to ${match.slug}.\n`);
33
+ }
34
+ const defaultSlug = (await readStoredAuth())?.defaultEndpoint;
35
+ if (options.output === "json") {
36
+ process.stdout.write(`${JSON.stringify({ ...catalog, defaultEndpoint: defaultSlug ?? null }, null, 2)}\n`);
37
+ return;
38
+ }
39
+ if (catalog.endpoints.length === 0) {
40
+ process.stdout.write("No inference endpoints yet. Create one in the Ditto app: Settings → Developer → Inference endpoints.\n");
41
+ return;
42
+ }
43
+ const rows = catalog.endpoints.map((e) => [
44
+ e.slug === defaultSlug ? "*" : " ",
45
+ e.slug,
46
+ e.model,
47
+ spendColumn(e),
48
+ e.recordTrace ? "traces" : "",
49
+ ]);
50
+ const widths = [1, 0, 0, 0];
51
+ for (const r of rows)
52
+ for (let i = 1; i < 4; i++)
53
+ widths[i] = Math.max(widths[i], r[i].length);
54
+ process.stdout.write(` ${pad("SLUG", widths[1])} ${pad("MODEL", widths[2])} ${pad("SPEND (tokens)", widths[3])}\n`);
55
+ for (const r of rows) {
56
+ process.stdout.write(`${r[0]} ${pad(r[1], widths[1])} ${pad(r[2], widths[2])} ${pad(r[3], widths[3])} ${r[4]}\n`);
57
+ }
58
+ process.stdout.write(`\nGateway: ${catalog.baseUrl}${defaultSlug ? ` (* = default)` : ""}\n`);
59
+ }
60
+ export async function cmdSessions(options) {
61
+ const records = await listSessions();
62
+ const shown = options.all ? records : records.slice(0, 20);
63
+ if (options.json) {
64
+ process.stdout.write(`${JSON.stringify(shown, null, 2)}\n`);
65
+ return;
66
+ }
67
+ if (shown.length === 0) {
68
+ process.stdout.write("No coding-agent sessions yet. Start one with `heyditto claude` or `heyditto codex`.\n");
69
+ return;
70
+ }
71
+ for (const s of shown) {
72
+ const state = s.endedAt ? `exited ${s.exitCode ?? "?"}` : "running/unknown";
73
+ process.stdout.write(`${s.id} ${pad(s.harness, 6)} ${pad(s.endpointSlug, 16)} ${s.lastLaunchedAt.slice(0, 16).replace("T", " ")} ${state}\n`);
74
+ process.stdout.write(` ${s.worktree ?? s.cwd}${s.launches > 1 ? ` (${s.launches} launches)` : ""}\n`);
75
+ }
76
+ if (!options.all && records.length > shown.length) {
77
+ process.stdout.write(`\n…and ${records.length - shown.length} more (use --all)\n`);
78
+ }
79
+ process.stdout.write(`\nResume: heyditto <claude|codex> --resume <id>\n`);
80
+ }
81
+ export async function cmdSessionsRm(id) {
82
+ const removed = await removeSession(id);
83
+ if (!removed)
84
+ throw new Error(`no local session "${id}"`);
85
+ process.stdout.write(`Removed local session record ${id} (the Ditto thread and traces are kept).\n`);
86
+ }
87
+ /** Registers `claude` and `codex` on the program (which must have enablePositionalOptions()). */
88
+ export function registerHarnessCommands(program, addExamples) {
89
+ for (const harness of HARNESSES) {
90
+ const other = harness === "claude" ? "codex" : "claude";
91
+ const cmd = program
92
+ .command(`${harness} [args...]`)
93
+ .description(`launch ${harness === "claude" ? "Claude Code" : "Codex"} through a Ditto inference endpoint with a temporary key`)
94
+ .summary(`launch ${harness === "claude" ? "Claude Code" : "Codex"} through a Ditto endpoint`)
95
+ .option("-e, --endpoint <slug>", "inference endpoint slug or id (default: saved default, or a picker)")
96
+ .option("--budget <tokens>", "spend cap for this session's key, in Ditto tokens")
97
+ .addOption(new Option("--expires <duration>", "server-side safety expiry for the key")
98
+ .choices([...KEY_EXPIRIES])
99
+ .default("1d"))
100
+ .option("--keep-key", "do not revoke the key when the agent exits")
101
+ .option("--session <id>", "reuse a Ditto session id (X-Ditto-Session-Id) for the traces thread")
102
+ .option("--resume [id]", "resume a local session (default: the most recent one); mints a fresh key")
103
+ .option("-c, --continue", `continue the most recent ${harness} conversation in this directory`)
104
+ .option("--yolo", `bypass all permission prompts (${harness === "claude" ? "--dangerously-skip-permissions" : "--dangerously-bypass-approvals-and-sandbox"})`)
105
+ .option("--yellow", `auto-accept edits (${harness === "claude" ? "--permission-mode acceptEdits" : "-a on-request -s workspace-write"})`)
106
+ .option("-p, --prompt <text>", `headless run (${harness === "claude" ? "claude -p" : "codex exec"}); pair with --output-format etc.`)
107
+ .option("-m, --model <id>", harness === "codex" ? "model id (default: the endpoint slug)" : "model id (default: let the endpoint route Claude's ids)")
108
+ .option("-w, --worktree [name]", "run inside <repo>/.worktrees/<name> (created on a branch of the same name)")
109
+ .option("--name <label>", "key name shown in the Ditto app (default: cli:<harness>:<hostname>)")
110
+ .option("--dry-run", "print the command, args and env (key masked) without minting a key")
111
+ .allowUnknownOption()
112
+ .passThroughOptions();
113
+ if (harness === "claude")
114
+ cmd.option("--plan", "start in plan mode (--permission-mode plan)");
115
+ cmd.action(async (args, options) => {
116
+ await launchHarness(harness, args, options);
117
+ });
118
+ addExamples(cmd, ` heyditto ${harness} pick an endpoint, mint a key, launch
119
+ heyditto ${harness} --endpoint my-endpoint --budget 500000
120
+ heyditto ${harness} --yellow --worktree feature-x
121
+ heyditto ${harness} -p "summarize this repo" --output-format json
122
+ heyditto ${harness} --resume reopen the last session in its thread
123
+ heyditto ${harness} -- --verbose forward flags to ${harness}
124
+ (see also: heyditto ${other})`);
125
+ }
126
+ }
127
+ function jsonOut(options) {
128
+ return options.output === "json" || options.output === "raw";
129
+ }
130
+ function sessionOutputOption() {
131
+ return new Option("--output <format>", "output format").choices(["text", "json"]).default("text");
132
+ }
133
+ function relativeAge(iso) {
134
+ if (!iso)
135
+ return "";
136
+ const ms = Date.now() - new Date(iso).getTime();
137
+ if (!Number.isFinite(ms) || ms < 0)
138
+ return "just now";
139
+ const m = Math.round(ms / 60000);
140
+ if (m < 1)
141
+ return "just now";
142
+ if (m < 60)
143
+ return `${m}m ago`;
144
+ const h = Math.round(m / 60);
145
+ if (h < 48)
146
+ return `${h}h ago`;
147
+ return `${Math.round(h / 24)}d ago`;
148
+ }
149
+ export async function cmdSessionNew(nameParts, options) {
150
+ const name = nameParts.join(" ").trim() || undefined;
151
+ const record = await startSession(name, options.id);
152
+ if (jsonOut(options)) {
153
+ process.stdout.write(`${JSON.stringify({ active: true, ...record }, null, 2)}\n`);
154
+ return;
155
+ }
156
+ process.stderr.write(`Started session ${record.id}${record.name ? ` (${record.name})` : ""}.\n` +
157
+ `Memory commands now send ${SESSION_ID_HEADER}; end it with \`heyditto session end\`.\n`);
158
+ process.stdout.write(`${record.id}\n`);
159
+ }
160
+ export async function cmdSessionList(options) {
161
+ const [history, active] = await Promise.all([readSessionHistory(), resolveActiveSession()]);
162
+ const rows = options.all ? history : history.slice(0, 20);
163
+ if (jsonOut(options)) {
164
+ process.stdout.write(`${JSON.stringify({ active: active ?? null, sessions: rows }, null, 2)}\n`);
165
+ return;
166
+ }
167
+ if (rows.length === 0) {
168
+ process.stdout.write("No MCP sessions yet. Start one with `heyditto session new [name]`.\n");
169
+ return;
170
+ }
171
+ for (const r of rows) {
172
+ const mark = active?.id === r.id ? "*" : " ";
173
+ const state = r.endedAt ? "ended" : active?.id === r.id ? "active" : "idle";
174
+ process.stdout.write(`${mark} ${r.id} ${pad(state, 6)} ${pad(relativeAge(r.lastUsedAt ?? r.createdAt), 9)} ${r.name ?? ""}\n`);
175
+ }
176
+ if (active?.source === "env")
177
+ process.stdout.write(`\n${SESSION_ENV} pins session ${active.id} for this shell.\n`);
178
+ }
179
+ export async function cmdSessionUse(id, options) {
180
+ const record = await useSession(id);
181
+ if (jsonOut(options)) {
182
+ process.stdout.write(`${JSON.stringify({ active: true, ...record }, null, 2)}\n`);
183
+ return;
184
+ }
185
+ process.stderr.write(`Using session ${record.id}${record.name ? ` (${record.name})` : ""}.\n`);
186
+ process.stdout.write(`${record.id}\n`);
187
+ }
188
+ export async function cmdSessionCurrent(options) {
189
+ const active = await resolveActiveSession();
190
+ if (jsonOut(options)) {
191
+ process.stdout.write(`${JSON.stringify(active ?? null, null, 2)}\n`);
192
+ if (!active)
193
+ process.exitCode = 1;
194
+ return;
195
+ }
196
+ if (!active) {
197
+ process.stderr.write("No active session. Start one with `heyditto session new [name]`.\n");
198
+ process.exitCode = 1;
199
+ return;
200
+ }
201
+ process.stdout.write(`${active.id}\n`);
202
+ if (active.name)
203
+ process.stderr.write(`name: ${active.name}\n`);
204
+ if (active.source === "env")
205
+ process.stderr.write(`(pinned by ${SESSION_ENV})\n`);
206
+ }
207
+ export async function cmdSessionEnd(options) {
208
+ const ended = await endSession();
209
+ if (jsonOut(options)) {
210
+ process.stdout.write(`${JSON.stringify(ended ?? null, null, 2)}\n`);
211
+ return;
212
+ }
213
+ if (!ended) {
214
+ process.stderr.write("No active session.\n");
215
+ return;
216
+ }
217
+ process.stderr.write(`Ended session ${ended.id}. Memory commands go back to the implicit session.\n`);
218
+ }
219
+ export function registerSessionCommands(program, addExamples) {
220
+ const session = program
221
+ .command("session")
222
+ .description("explicit MCP sessions: group saves and searches into one thread")
223
+ .summary("manage the explicit MCP session")
224
+ .showHelpAfterError()
225
+ .addHelpText("after", `
226
+ Without a session, MCP saves fall into a time-based implicit session on the
227
+ server. 'session new' pins an explicit one: every request carries
228
+ ${SESSION_ID_HEADER} (and the name once, as X-Ditto-Session-Name). Set
229
+ ${SESSION_ENV} to pin a session for one shell or script.`);
230
+ addExamples(session
231
+ .command("new")
232
+ .description("start a new session and make it active")
233
+ .argument("[name...]", "optional name; becomes the thread title")
234
+ .option("--id <id>", "use this session id instead of a random uuid")
235
+ .addOption(sessionOutputOption())
236
+ .action(cmdSessionNew), ` heyditto session new "refactor auth module"
237
+ heyditto session new --output json | jq -r .id`);
238
+ session
239
+ .command("list")
240
+ .description("list local sessions (newest first; * = active)")
241
+ .option("--all", "show every record, not just the latest 20")
242
+ .addOption(sessionOutputOption())
243
+ .action(cmdSessionList);
244
+ session
245
+ .command("use")
246
+ .description("make an existing session active")
247
+ .argument("<id>", "session id (a unique prefix of at least 6 chars works)")
248
+ .addOption(sessionOutputOption())
249
+ .action(cmdSessionUse);
250
+ session
251
+ .command("current")
252
+ .description("print the active session id (exit 1 when none)")
253
+ .addOption(sessionOutputOption())
254
+ .action(cmdSessionCurrent);
255
+ session
256
+ .command("end")
257
+ .description("end the active session (history is kept)")
258
+ .addOption(sessionOutputOption())
259
+ .action(cmdSessionEnd);
260
+ }
261
+ // ---------------------------------------------------------------------------
262
+ // Chat agents: `heyditto agents`
263
+ // ---------------------------------------------------------------------------
264
+ function connectionsColumn(a) {
265
+ const live = (a.connections ?? []).filter((c) => !c.revokedAt);
266
+ return live.map((c) => `${c.kind}${c.name ? `:${c.name}` : ""}`).join(", ");
267
+ }
268
+ export async function cmdAgents(options) {
269
+ const agents = await listChatAgents();
270
+ if (jsonOut(options)) {
271
+ process.stdout.write(`${JSON.stringify({ agents }, null, 2)}\n`);
272
+ return;
273
+ }
274
+ if (agents.length === 0) {
275
+ process.stdout.write("No agents yet.\n");
276
+ return;
277
+ }
278
+ const rows = agents.map((a) => [
279
+ a.id,
280
+ a.kind,
281
+ a.name,
282
+ String(a.threadCount ?? ""),
283
+ relativeAge(a.lastActivityAt ?? a.updatedAt),
284
+ connectionsColumn(a),
285
+ ]);
286
+ const header = ["ID", "KIND", "NAME", "THREADS", "LAST ACTIVITY", "CONNECTIONS"];
287
+ const widths = header.map((h, i) => Math.max(h.length, ...rows.map((r) => r[i].length)));
288
+ const line = (r) => r.map((c, i) => (i === r.length - 1 ? c : pad(c, widths[i]))).join(" ");
289
+ process.stdout.write(`${line(header)}\n`);
290
+ for (const r of rows)
291
+ process.stdout.write(`${line(r)}\n`);
292
+ }
293
+ //# sourceMappingURL=commands.js.map