@supersession/sup 0.1.2 → 0.1.4

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/README.md CHANGED
@@ -45,9 +45,12 @@ never silently.
45
45
 
46
46
  ## Status
47
47
 
48
- v0.1 — local handoff engine. Source parser: Claude Code (verified). Targets:
49
- Codex, Gemini, Claude Code. Cloud vault, web-chat import, teams, and more
50
- parsers are on the roadmap (see `SPEC.md`).
48
+ v0.1 — local handoff engine + cloud vault. Source parsers (verified): Claude
49
+ Code, Codex CLI, Cursor `sup` reads whichever you worked in last. Targets:
50
+ Claude Code, Codex, Cursor, Gemini, Antigravity. Sessions carry a title +
51
+ summary and version on re-push (v1, v2, …), browsable in the web dashboard.
52
+ `sup facts` surfaces the credentials/URLs a session generated, locally.
53
+ Web-chat import and teams are on the roadmap (see `SPEC.md`).
51
54
 
52
55
  ## Develop
53
56
 
package/dist/cli.js CHANGED
@@ -14,17 +14,22 @@
14
14
  import { writeFileSync, existsSync } from "node:fs";
15
15
  import { join } from "node:path";
16
16
  import pc from "picocolors";
17
- import { findClaudeCodeSession } from "./discover.js";
18
- import { parseClaudeCode } from "./parsers/claude-code.js";
17
+ import { findAllSessions } from "./discover.js";
19
18
  import { redactSession } from "./redact.js";
19
+ import { sessionHeadline } from "./distill/template.js";
20
20
  import { requireSession, distillSession } from "./engine.js";
21
21
  import { resolveTool, TOOLS } from "./tools.js";
22
22
  import { loadConfig, saveConfig, consoleUrl } from "./config.js";
23
23
  import { whoami, pushSession, listSessions, pullSession, claimHandle, handoffTo, listInbox } from "./cloud.js";
24
24
  import { importFromUrl, importFromFile, ImportError } from "./import.js";
25
25
  import { loginViaBrowser } from "./login-browser.js";
26
+ import { printLoginSuccess } from "./greeting.js";
26
27
  import { assessSession } from "./health.js";
27
- const SOURCE_LABEL = "Claude Code";
28
+ import { extractFacts } from "./facts.js";
29
+ /** Human label for a session's source tool ("claude-code" -> "Claude Code"). */
30
+ function sourceLabel(nsf) {
31
+ return resolveTool(nsf.provenance.tool)?.label ?? nsf.provenance.tool;
32
+ }
28
33
  function die(msg) {
29
34
  console.error(pc.red(`✗ ${msg}`));
30
35
  process.exit(1);
@@ -72,7 +77,8 @@ function currentSession() {
72
77
  }
73
78
  }
74
79
  async function buildBrief(forceTemplate) {
75
- return { brief: await distillFrom(currentSession(), forceTemplate) };
80
+ const parsed = currentSession();
81
+ return { brief: await distillFrom(parsed, forceTemplate), source: sourceLabel(parsed) };
76
82
  }
77
83
  async function cmdHandoff(toolId, opts) {
78
84
  const tool = resolveTool(toolId);
@@ -86,8 +92,8 @@ async function cmdHandoff(toolId, opts) {
86
92
  console.log(pc.yellow(`⚠ ${tool.label}'s session format is not yet verified — receiving a handoff works, ` +
87
93
  `but reading FROM it is not supported yet.`));
88
94
  }
89
- const { brief } = await buildBrief(opts.template);
90
- const target = tool.writeTarget(brief, SOURCE_LABEL);
95
+ const { brief, source } = await buildBrief(opts.template);
96
+ const target = tool.writeTarget(brief, source);
91
97
  if (opts.preview) {
92
98
  console.log(pc.dim(`# Would write to ${target.file}:\n`));
93
99
  console.log(target.body);
@@ -104,18 +110,26 @@ async function cmdHandoff(toolId, opts) {
104
110
  }
105
111
  function cmdList() {
106
112
  const cwd = process.cwd();
107
- const found = findClaudeCodeSession(cwd);
108
- if (!found) {
109
- console.log(pc.dim(`No sessions found for ${cwd}`));
113
+ const found = findAllSessions(cwd);
114
+ if (found.length === 0) {
115
+ console.log(pc.dim(`No sessions found for ${cwd} (Claude Code, Codex, Cursor)`));
110
116
  return;
111
117
  }
112
- const parsed = parseClaudeCode(found.filePath);
113
- console.log(pc.bold(`Latest session for this directory:`));
114
- console.log(` tool: ${found.tool}`);
115
- console.log(` file: ${found.filePath}`);
116
- console.log(` turns: ${parsed.turns.length}`);
117
- console.log(` files: ${parsed.filesTouched.length} touched`);
118
- console.log(` branch: ${parsed.provenance.gitBranch ?? "—"}`);
118
+ console.log(pc.bold(`Sessions for this directory (newest first):`));
119
+ found.forEach((f, i) => {
120
+ const mark = i === 0 ? pc.cyan("→") : " ";
121
+ try {
122
+ const parsed = f.parse();
123
+ const title = parsed.provenance.title ? ` ${pc.bold(parsed.provenance.title)}` : "";
124
+ console.log(` ${mark} ${f.tool.padEnd(12)} ${parsed.turns.length} turns, ${parsed.filesTouched.length} files, branch ${parsed.provenance.gitBranch ?? "—"}${title}`);
125
+ console.log(pc.dim(` ${f.filePath}`));
126
+ }
127
+ catch (e) {
128
+ console.log(` ${mark} ${f.tool.padEnd(12)} ${pc.dim(`(unreadable: ${e instanceof Error ? e.message : e})`)}`);
129
+ }
130
+ });
131
+ if (found.length > 1)
132
+ console.log(pc.dim(`\n sup uses the newest (→) for handoffs.`));
119
133
  }
120
134
  /** Distill an NSF and write the target tool's kickoff file. Shared by pull/import. */
121
135
  async function writeHandoff(nsf, toolId, sourceLabel) {
@@ -186,6 +200,34 @@ function printHealth(session) {
186
200
  function cmdStatus() {
187
201
  printHealth(currentSession());
188
202
  }
203
+ /**
204
+ * `sup facts` — the anti-scroll command. Surfaces credentials, URLs, and
205
+ * credential mentions from the local transcript. Never uploads anything;
206
+ * push-side redaction is untouched.
207
+ */
208
+ function cmdFacts() {
209
+ const session = currentSession();
210
+ const facts = extractFacts(session);
211
+ const printGroup = (heading, items, color) => {
212
+ if (items.length === 0)
213
+ return;
214
+ console.log(pc.bold(`\n ${heading}`));
215
+ for (const f of items) {
216
+ console.log(` ${color(f.value)} ${pc.dim(`(${f.label}, turn ${f.turn})`)}`);
217
+ }
218
+ };
219
+ console.log(pc.bold("Session facts") + pc.dim(" — local only, never uploaded"));
220
+ printGroup("Secrets & keys the session touched", facts.secrets, pc.yellow);
221
+ printGroup("URLs & ports", facts.urls, pc.cyan);
222
+ printGroup("Credential mentions (verbatim lines)", facts.credentialLines, (s) => s);
223
+ const total = facts.secrets.length + facts.urls.length + facts.credentialLines.length;
224
+ if (total === 0) {
225
+ console.log(pc.dim("\n Nothing found — no secrets, URLs, or credential mentions in this session."));
226
+ }
227
+ else {
228
+ console.log(pc.dim(`\n ${total} fact(s). These stay on this machine — \`sup push\` still redacts secrets.`));
229
+ }
230
+ }
189
231
  /**
190
232
  * Refresh: continue THIS tool's work in a brand-new session. Same engine as a
191
233
  * handoff, but the target is the source tool — and the distill reads the full
@@ -223,7 +265,7 @@ async function cmdHandoffTo(handle) {
223
265
  // Push the current session, then hand it to the teammate.
224
266
  const parsed = currentSession();
225
267
  const { session } = redactSession(parsed);
226
- const { id } = await pushSession(session);
268
+ const { id } = await pushSession(session, sessionHeadline(session));
227
269
  const { to } = await handoffTo(handle, id);
228
270
  console.log(pc.green(`✓ Handed off your session to ${pc.bold(to)}`));
229
271
  console.log(pc.dim(` They'll see it with: sup inbox → sup accept <tool>`));
@@ -239,6 +281,8 @@ async function cmdInbox() {
239
281
  const from = s.from_handle ? `@${s.from_handle}` : "someone";
240
282
  const mark = i === 0 ? pc.cyan("→") : " ";
241
283
  console.log(` ${mark} ${from.padEnd(14)} ${s.source_tool}, ${s.turns} turns ${pc.dim(s.id)}`);
284
+ if (s.title)
285
+ console.log(` ${pc.bold(s.title)}${s.summary ? pc.dim(` — ${s.summary}`) : ""}`);
242
286
  });
243
287
  console.log(pc.dim(`\n Accept the newest with: sup accept <tool>`));
244
288
  }
@@ -266,14 +310,10 @@ async function cmdLogin(token) {
266
310
  console.log(pc.dim("Opening browser to sign in…"));
267
311
  try {
268
312
  const { token: minted } = await loginViaBrowser(url);
269
- saveConfig({ ...cfg, token: minted });
313
+ saveConfig({ ...cfg, token: minted, gatewayUrl: cfg.gatewayUrl, consoleUrl: url });
270
314
  const acct = await whoami();
271
315
  const who = acct.handle ? `@${acct.handle}` : acct.email ?? acct.id;
272
- console.log(pc.green(`✓ Signed in as ${who}`));
273
- console.log(pc.dim(" Token saved to ~/.supersession/config.json"));
274
- if (!acct.handle) {
275
- console.log(pc.dim(` Pick a handle: ${url.replace(/\/$/, "")}/welcome`));
276
- }
316
+ printLoginSuccess(who);
277
317
  }
278
318
  catch (e) {
279
319
  die(e instanceof Error ? e.message : String(e));
@@ -291,25 +331,38 @@ async function cmdPush() {
291
331
  const parsed = currentSession();
292
332
  // Redact before it ever leaves the machine.
293
333
  const { session, hits } = redactSession(parsed);
294
- const { id, bytes } = await pushSession(session);
295
- console.log(pc.green(`✓ Pushed session ${pc.bold(id)} (${session.turns.length} turns, ${bytes} bytes)`));
334
+ const headline = sessionHeadline(session);
335
+ const { id, bytes, version } = await pushSession(session, headline);
336
+ const vLabel = version > 1 ? pc.cyan(` v${version}`) : "";
337
+ console.log(pc.green(`✓ Pushed session ${pc.bold(id)}${vLabel} (${session.turns.length} turns, ${bytes} bytes)`));
338
+ console.log(` ${pc.bold(headline.title)}`);
339
+ if (version > 1)
340
+ console.log(pc.dim(` new checkpoint of this session — earlier versions kept`));
296
341
  if (hits > 0)
297
342
  console.log(pc.dim(` ${hits} secret(s) redacted before upload`));
298
343
  console.log(pc.dim(` Pull it on another machine with: sup pull <tool>`));
299
344
  }
300
- async function cmdPull(toolId) {
345
+ async function cmdPull(toolId, sessionId) {
301
346
  if (!toolId)
302
- die("Usage: sup pull <tool> (e.g. sup pull codex)");
347
+ die("Usage: sup pull <tool> [session-id] (e.g. sup pull codex)");
303
348
  const tool = resolveTool(toolId);
304
349
  if (!tool?.writeTarget)
305
350
  die(`Unknown or unsupported tool "${toolId}".`);
306
- const sessions = await listSessions();
307
- if (sessions.length === 0)
308
- die("No sessions in your cloud vault yet. Run `sup push` first.");
309
- const latest = sessions[0];
310
- const nsf = await pullSession(latest.id);
311
- console.log(pc.green(`✓ Pulled ${latest.id} and handed off to ${tool.label}`));
312
- await writeHandoff(nsf, toolId, SOURCE_LABEL);
351
+ let picked;
352
+ if (sessionId) {
353
+ picked = { id: sessionId };
354
+ }
355
+ else {
356
+ const sessions = await listSessions();
357
+ if (sessions.length === 0)
358
+ die("No sessions in your cloud vault yet. Run `sup push` first.");
359
+ picked = sessions[0];
360
+ }
361
+ const nsf = await pullSession(picked.id);
362
+ const label = picked.title ? ` — ${picked.title}` : "";
363
+ const v = picked.version && picked.version > 1 ? ` v${picked.version}` : "";
364
+ console.log(pc.green(`✓ Pulled ${picked.id}${v}${label} and handed off to ${tool.label}`));
365
+ await writeHandoff(nsf, toolId, sourceLabel(nsf));
313
366
  }
314
367
  function cmdHelp() {
315
368
  console.log(`${pc.bold("supersession")} — hand off your AI coding session to any tool.
@@ -319,11 +372,13 @@ ${pc.bold("Usage")}
319
372
  clean context window (beats /compact: distills the
320
373
  complete on-disk transcript, not the degraded window)
321
374
  sup status Session health: size + context-rot signals
375
+ sup facts Credentials, URLs & ports from this session — local
376
+ only, never uploaded (stop scrolling for that password)
322
377
  sup <tool> Hand off this directory's latest session to <tool>
323
378
  sup preview <tool> Show the brief that would be written (writes nothing)
324
379
  sup import <src> <tool> Import a ChatGPT/Claude chat (link or export.json)
325
380
  and hand it off to a coding tool
326
- sup list Show the session found for this directory
381
+ sup list Show sessions found here (Claude Code, Codex, Cursor)
327
382
  sup --help This help
328
383
 
329
384
  ${pc.bold("Cloud (Pro)")}
@@ -331,7 +386,8 @@ ${pc.bold("Cloud (Pro)")}
331
386
  sup login <token> Save a token manually (CI/scripts)
332
387
  sup whoami Show account + credits
333
388
  sup push Upload this directory's session to your vault
334
- sup pull <tool> Fetch your latest vault session, hand off to <tool>
389
+ sup pull <tool> [id] Fetch a vault session (latest, or a specific id/version)
390
+ and hand it off to <tool>
335
391
 
336
392
  ${pc.bold("Team handoff (Pro)")}
337
393
  sup handle <name> Claim your @handle
@@ -369,6 +425,8 @@ async function main(argv) {
369
425
  return cmdList();
370
426
  case "status":
371
427
  return cmdStatus();
428
+ case "facts":
429
+ return cmdFacts();
372
430
  case "refresh":
373
431
  return cmdRefresh({ template });
374
432
  case "login":
@@ -378,7 +436,7 @@ async function main(argv) {
378
436
  case "push":
379
437
  return cmdPush();
380
438
  case "pull":
381
- return cmdPull(rest[0]);
439
+ return cmdPull(rest[0], rest[1]);
382
440
  case "import":
383
441
  return cmdImport(rest[0], rest[1]);
384
442
  case "handle":
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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"}
package/dist/cloud.d.ts CHANGED
@@ -18,11 +18,21 @@ export interface SessionRef {
18
18
  turns: number;
19
19
  from_handle?: string | null;
20
20
  created_at: number;
21
+ title?: string | null;
22
+ summary?: string | null;
23
+ /** Groups re-pushes of the same local session into one thread. */
24
+ client_key?: string | null;
25
+ /** 1, 2, 3… within a thread. Highest = latest. */
26
+ version?: number;
21
27
  }
22
28
  export declare function whoami(): Promise<Account>;
23
- export declare function pushSession(nsf: NsfSession): Promise<{
29
+ export declare function pushSession(nsf: NsfSession, meta: {
30
+ title: string;
31
+ summary: string;
32
+ }): Promise<{
24
33
  id: string;
25
34
  bytes: number;
35
+ version: number;
26
36
  }>;
27
37
  export declare function listSessions(): Promise<SessionRef[]>;
28
38
  export declare function pullSession(id: string): Promise<NsfSession>;
package/dist/cloud.js CHANGED
@@ -32,7 +32,7 @@ export async function whoami() {
32
32
  const { user } = await req("/v1/me");
33
33
  return user;
34
34
  }
35
- export async function pushSession(nsf) {
35
+ export async function pushSession(nsf, meta) {
36
36
  return req("/v1/sessions", {
37
37
  method: "POST",
38
38
  body: JSON.stringify({
@@ -41,6 +41,11 @@ export async function pushSession(nsf) {
41
41
  cwd: nsf.provenance.cwd,
42
42
  git_branch: nsf.provenance.gitBranch,
43
43
  turns: nsf.turns.length,
44
+ title: meta.title,
45
+ summary: meta.summary,
46
+ // The tool's own session id: stable across re-pushes of the same work,
47
+ // so the server can version instead of duplicating.
48
+ client_key: nsf.provenance.sessionId ?? null,
44
49
  }),
45
50
  });
46
51
  }
package/dist/cloud.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -5,9 +5,23 @@
5
5
  import { readFileSync, writeFileSync, mkdirSync, chmodSync } from "node:fs";
6
6
  import { homedir } from "node:os";
7
7
  import { join } from "node:path";
8
- // ponytail: live workers.dev URL until the supersession.app custom domain is wired.
9
- const DEFAULT_GATEWAY = "https://supersession.gozeroing.workers.dev";
10
- const DEFAULT_CONSOLE = "https://supersession-web.gozeroing.workers.dev";
8
+ // Live workers.dev URLs update if the account subdomain changes.
9
+ const DEFAULT_GATEWAY = "https://supersession.supersession.workers.dev";
10
+ const DEFAULT_CONSOLE = "https://supersession-web.supersession.workers.dev";
11
+ function migrateUrl(url, fallback) {
12
+ if (!url)
13
+ return fallback;
14
+ if (url.includes("gozeroing.workers.dev"))
15
+ return fallback;
16
+ return url;
17
+ }
18
+ function normalizeConfig(parsed) {
19
+ return {
20
+ gatewayUrl: migrateUrl(process.env.SUPERSESSION_GATEWAY_URL ?? parsed.gatewayUrl, DEFAULT_GATEWAY),
21
+ consoleUrl: migrateUrl(process.env.SUPERSESSION_CONSOLE_URL ?? parsed.consoleUrl, DEFAULT_CONSOLE),
22
+ token: process.env.SUPERSESSION_TOKEN ?? parsed.token,
23
+ };
24
+ }
11
25
  export function consoleUrl(cfg) {
12
26
  return process.env.SUPERSESSION_CONSOLE_URL ?? cfg.consoleUrl ?? DEFAULT_CONSOLE;
13
27
  }
@@ -18,18 +32,16 @@ export function loadConfig() {
18
32
  try {
19
33
  const raw = readFileSync(configPath(), "utf8");
20
34
  const parsed = JSON.parse(raw);
21
- return {
22
- gatewayUrl: process.env.SUPERSESSION_GATEWAY_URL ?? parsed.gatewayUrl ?? DEFAULT_GATEWAY,
23
- consoleUrl: process.env.SUPERSESSION_CONSOLE_URL ?? parsed.consoleUrl ?? DEFAULT_CONSOLE,
24
- token: process.env.SUPERSESSION_TOKEN ?? parsed.token,
25
- };
35
+ const cfg = normalizeConfig(parsed);
36
+ // Rewrite stale workers.dev hostnames (e.g. after a subdomain rename).
37
+ if (parsed.gatewayUrl?.includes("gozeroing.workers.dev") ||
38
+ parsed.consoleUrl?.includes("gozeroing.workers.dev")) {
39
+ saveConfig(cfg);
40
+ }
41
+ return cfg;
26
42
  }
27
43
  catch {
28
- return {
29
- gatewayUrl: process.env.SUPERSESSION_GATEWAY_URL ?? DEFAULT_GATEWAY,
30
- consoleUrl: process.env.SUPERSESSION_CONSOLE_URL ?? DEFAULT_CONSOLE,
31
- token: process.env.SUPERSESSION_TOKEN,
32
- };
44
+ return normalizeConfig({});
33
45
  }
34
46
  }
35
47
  export function saveConfig(cfg) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,oFAAoF;AACpF,MAAM,eAAe,GAAG,4CAA4C,CAAC;AACrE,MAAM,eAAe,GAAG,gDAAgD,CAAC;AAEzE,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC,UAAU,IAAI,eAAe,CAAC;AACnF,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAC;QAClD,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,MAAM,CAAC,UAAU,IAAI,eAAe;YACxF,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,MAAM,CAAC,UAAU,IAAI,eAAe;YACxF,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,KAAK;SACtD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,eAAe;YACnE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,eAAe;YACnE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;SACtC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;IAC7C,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,mEAAmE;AACnE,MAAM,eAAe,GAAG,+CAA+C,CAAC;AACxE,MAAM,eAAe,GAAG,mDAAmD,CAAC;AAE5E,SAAS,UAAU,CAAC,GAAuB,EAAE,QAAgB;IAC3D,IAAI,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,MAAuB;IAC9C,OAAO;QACL,UAAU,EAAE,UAAU,CACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,MAAM,CAAC,UAAU,EACzD,eAAe,CAChB;QACD,UAAU,EAAE,UAAU,CACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,MAAM,CAAC,UAAU,EACzD,eAAe,CAChB;QACD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,KAAK;KACtD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC,UAAU,IAAI,eAAe,CAAC;AACnF,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAC;QAClD,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACpC,uEAAuE;QACvE,IACE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,uBAAuB,CAAC;YACpD,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EACpD,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;IAC7C,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC"}
@@ -1,14 +1,32 @@
1
1
  /**
2
2
  * Session discovery: given the current working directory, find the source
3
- * session to hand off. v1 supports Claude Code (the one verified format).
3
+ * session to hand off. Sources: Claude Code (JSONL), Codex CLI (rollout
4
+ * JSONL), Cursor (global SQLite). Newest across all sources wins, so `sup`
5
+ * picks up whatever tool you actually worked in last.
4
6
  */
7
+ import type { NsfSession } from "./nsf.js";
5
8
  export interface FoundSession {
6
9
  tool: string;
10
+ /** Where the session lives (file path, or db path for Cursor). */
7
11
  filePath: string;
8
12
  mtimeMs: number;
13
+ /** Parse this specific session into NSF. */
14
+ parse: () => NsfSession;
9
15
  }
10
16
  /**
11
17
  * Find the latest Claude Code session for a given working directory.
12
18
  * @param cwd absolute working directory of the project
13
19
  */
14
20
  export declare function findClaudeCodeSession(cwd: string): FoundSession | undefined;
21
+ /**
22
+ * Find the latest Codex CLI session for a working directory. Codex stores all
23
+ * projects together under ~/.codex/sessions/YYYY/MM/DD/, so we match each
24
+ * candidate's session_meta.cwd — newest files first, stop at first match.
25
+ */
26
+ export declare function findCodexSession(cwd: string): FoundSession | undefined;
27
+ /** Find the latest Cursor conversation for a working directory. */
28
+ export declare function findCursorSession(cwd: string): FoundSession | undefined;
29
+ /** Every source that has a session for this directory, newest first. */
30
+ export declare function findAllSessions(cwd: string): FoundSession[];
31
+ /** The single newest session across all supported tools, or undefined. */
32
+ export declare function findLatestSession(cwd: string): FoundSession | undefined;
package/dist/discover.js CHANGED
@@ -1,10 +1,16 @@
1
1
  /**
2
2
  * Session discovery: given the current working directory, find the source
3
- * session to hand off. v1 supports Claude Code (the one verified format).
3
+ * session to hand off. Sources: Claude Code (JSONL), Codex CLI (rollout
4
+ * JSONL), Cursor (global SQLite). Newest across all sources wins, so `sup`
5
+ * picks up whatever tool you actually worked in last.
4
6
  */
5
- import { readdirSync, statSync } from "node:fs";
7
+ import { readdirSync, statSync, openSync, readSync, closeSync } from "node:fs";
8
+ import { homedir } from "node:os";
6
9
  import { join } from "node:path";
7
10
  import { claudeCodeProjectDir } from "./tools.js";
11
+ import { parseClaudeCode } from "./parsers/claude-code.js";
12
+ import { parseCodex } from "./parsers/codex.js";
13
+ import { parseCursor, findCursorComposer, cursorDbPath } from "./parsers/cursor.js";
8
14
  /** Most-recently-modified `.jsonl` in a directory, or undefined. */
9
15
  function latestJsonl(dir) {
10
16
  let best;
@@ -39,6 +45,87 @@ export function findClaudeCodeSession(cwd) {
39
45
  const latest = latestJsonl(dir);
40
46
  if (!latest)
41
47
  return undefined;
42
- return { tool: "claude-code", filePath: latest.path, mtimeMs: latest.mtimeMs };
48
+ return {
49
+ tool: "claude-code",
50
+ filePath: latest.path,
51
+ mtimeMs: latest.mtimeMs,
52
+ parse: () => parseClaudeCode(latest.path),
53
+ };
54
+ }
55
+ /** First ~8KB of a file — enough for a rollout's session_meta first line. */
56
+ function headOf(path) {
57
+ const fd = openSync(path, "r");
58
+ try {
59
+ const buf = Buffer.alloc(8192);
60
+ const n = readSync(fd, buf, 0, buf.length, 0);
61
+ return buf.toString("utf8", 0, n);
62
+ }
63
+ finally {
64
+ closeSync(fd);
65
+ }
66
+ }
67
+ /**
68
+ * Find the latest Codex CLI session for a working directory. Codex stores all
69
+ * projects together under ~/.codex/sessions/YYYY/MM/DD/, so we match each
70
+ * candidate's session_meta.cwd — newest files first, stop at first match.
71
+ */
72
+ export function findCodexSession(cwd) {
73
+ const root = join(homedir(), ".codex", "sessions");
74
+ let names;
75
+ try {
76
+ names = readdirSync(root, { recursive: true });
77
+ }
78
+ catch {
79
+ return undefined;
80
+ }
81
+ const candidates = [];
82
+ for (const name of names) {
83
+ if (!name.endsWith(".jsonl"))
84
+ continue;
85
+ const path = join(root, name);
86
+ try {
87
+ candidates.push({ path, mtimeMs: statSync(path).mtimeMs });
88
+ }
89
+ catch {
90
+ // skip unreadable
91
+ }
92
+ }
93
+ candidates.sort((a, b) => b.mtimeMs - a.mtimeMs);
94
+ for (const c of candidates) {
95
+ try {
96
+ const firstLine = headOf(c.path).split("\n")[0] ?? "";
97
+ const rec = JSON.parse(firstLine);
98
+ if (rec.type === "session_meta" && rec.payload?.cwd === cwd) {
99
+ return { tool: "codex", filePath: c.path, mtimeMs: c.mtimeMs, parse: () => parseCodex(c.path) };
100
+ }
101
+ }
102
+ catch {
103
+ // malformed first line — not a rollout we can use
104
+ }
105
+ }
106
+ return undefined;
107
+ }
108
+ /** Find the latest Cursor conversation for a working directory. */
109
+ export function findCursorSession(cwd) {
110
+ const found = findCursorComposer(cwd);
111
+ if (!found)
112
+ return undefined;
113
+ const db = cursorDbPath();
114
+ return {
115
+ tool: "cursor",
116
+ filePath: db,
117
+ mtimeMs: found.mtimeMs,
118
+ parse: () => parseCursor(db, found.composerId),
119
+ };
120
+ }
121
+ /** Every source that has a session for this directory, newest first. */
122
+ export function findAllSessions(cwd) {
123
+ return [findClaudeCodeSession(cwd), findCodexSession(cwd), findCursorSession(cwd)]
124
+ .filter((s) => s !== undefined)
125
+ .sort((a, b) => b.mtimeMs - a.mtimeMs);
126
+ }
127
+ /** The single newest session across all supported tools, or undefined. */
128
+ export function findLatestSession(cwd) {
129
+ return findAllSessions(cwd)[0];
43
130
  }
44
131
  //# sourceMappingURL=discover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAQlD,oEAAoE;AACpE,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,IAAmD,CAAC;IACxD,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,SAAS;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACjC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO;gBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"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"}