code-session-memory 0.10.0 → 0.11.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/README.md CHANGED
@@ -214,9 +214,23 @@ npx code-session-memory sessions # interactive browser (source → dat
214
214
 
215
215
  The interactive browser lists all sessions with their title, date, source tool, and chunk count. Select a session to:
216
216
  - **Print** — dump all chunks to stdout (useful for piping or inspection)
217
+ - **Compact for restart** — summarize the session with OpenAI and copy the result to your clipboard, ready to paste into a new session of any tool
217
218
  - **Delete** — remove the session from the DB (with confirmation)
218
219
  - **Back** — return to the session list
219
220
 
221
+ #### Compact for restart
222
+
223
+ The "Compact for restart" action generates a structured restart document containing:
224
+ - **Context** — what was being built or fixed
225
+ - **Key Decisions** — architectural and implementation choices
226
+ - **Current State** — what is completed and what is in progress
227
+ - **Unresolved Issues** — blockers and open questions
228
+
229
+ For long sessions the compactor uses a map-reduce strategy: it splits the transcript into windows, summarizes each independently, then merges the partial summaries into a final digest.
230
+
231
+ Requires `OPENAI_API_KEY`. Uses `gpt-5-nano` by default (override with `OPENAI_SUMMARY_MODEL`).
232
+ After compaction, the CLI prints total token usage (`input`, `output`, `total`).
233
+
220
234
  You can also `print` or `delete` directly. Without an ID, an interactive picker opens:
221
235
 
222
236
  ```bash
@@ -265,7 +279,7 @@ Show me how we solved the TypeScript config issue.
265
279
 
266
280
  | Variable | Default | Description |
267
281
  |---|---|---|
268
- | `OPENAI_API_KEY` | — | **Required.** Used for embedding generation. |
282
+ | `OPENAI_API_KEY` | — | **Required.** Used for embedding generation and session compaction. |
269
283
  | `OPENCODE_MEMORY_DB_PATH` | `~/.local/share/code-session-memory/sessions.db` | Override the database path. |
270
284
  | `OPENCODE_CONFIG_DIR` | `~/.config/opencode` | Override the OpenCode config directory. |
271
285
  | `CLAUDE_CONFIG_DIR` | `~/.claude` | Override the Claude Code config directory. |
@@ -273,6 +287,8 @@ Show me how we solved the TypeScript config issue.
273
287
  | `VSCODE_CONFIG_DIR` | `~/.config/Code/User` (Linux) / `~/Library/Application Support/Code/User` (macOS) | Override the VS Code config directory. |
274
288
  | `CODEX_HOME` | `~/.codex` | Override the Codex home directory. |
275
289
  | `OPENAI_MODEL` | `text-embedding-3-large` | Override the embedding model. |
290
+ | `OPENAI_SUMMARY_MODEL` | `gpt-5-nano` | Override the model used for session compaction (Compact for restart). |
291
+ | `CSM_SUMMARY_MAX_OUTPUT_TOKENS` | `5000` | Override the max output token budget for session compaction. |
276
292
 
277
293
  ### Database path
278
294
 
@@ -1 +1 @@
1
- {"version":3,"file":"cli-sessions.d.ts","sourceRoot":"","sources":["../../src/cli-sessions.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AA6RH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBrD;AAqBD,wBAAsB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcxE;AAqDD,wBAAsB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDzE;AAMD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFpE;AAoCD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC/D"}
1
+ {"version":3,"file":"cli-sessions.d.ts","sourceRoot":"","sources":["../../src/cli-sessions.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAwWH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBrD;AAqBD,wBAAsB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcxE;AAqDD,wBAAsB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDzE;AAMD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFpE;AA6CD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC/D"}
@@ -50,6 +50,8 @@ exports.cmdSessions = cmdSessions;
50
50
  const clack = __importStar(require("@clack/prompts"));
51
51
  const database_1 = require("./database");
52
52
  const database_2 = require("./database");
53
+ const session_compactor_1 = require("./session-compactor");
54
+ const clipboard_1 = require("./clipboard");
53
55
  // ---------------------------------------------------------------------------
54
56
  // Formatting helpers
55
57
  // ---------------------------------------------------------------------------
@@ -249,6 +251,7 @@ async function sessionActionLoop(session) {
249
251
  message: "What would you like to do?",
250
252
  options: [
251
253
  { value: "print", label: "Print session", hint: "output all chunks to stdout" },
254
+ { value: "compact", label: "Compact for restart", hint: "summarize and copy to clipboard" },
252
255
  { value: "delete", label: "Delete session", hint: "remove from DB" },
253
256
  { value: "back", label: "Back to list" },
254
257
  ],
@@ -260,6 +263,12 @@ async function sessionActionLoop(session) {
260
263
  printSession(session.session_id);
261
264
  return "exit";
262
265
  }
266
+ if (action === "compact") {
267
+ const result = await runCompact(session);
268
+ if (result === "exit")
269
+ return "exit";
270
+ continue;
271
+ }
263
272
  if (action === "delete") {
264
273
  const confirmed = await clack.confirm({
265
274
  message: `Delete "${fmtTitle(session.session_title)}" (${fmtChunks(session.chunk_count)})?`,
@@ -277,6 +286,53 @@ async function sessionActionLoop(session) {
277
286
  }
278
287
  }
279
288
  // ---------------------------------------------------------------------------
289
+ // Compact flow
290
+ // ---------------------------------------------------------------------------
291
+ /**
292
+ * Runs the compact-for-restart flow for a session.
293
+ * Summarizes the session with OpenAI and copies the result to the clipboard.
294
+ * Returns "continue" (stay in action loop) or "exit" (done).
295
+ */
296
+ async function runCompact(session) {
297
+ // Guard: OPENAI_API_KEY must be set.
298
+ if (!process.env.OPENAI_API_KEY) {
299
+ clack.log.error("OPENAI_API_KEY is not set. Please export it and try again.");
300
+ return "continue";
301
+ }
302
+ // Load chunks from DB.
303
+ const chunks = withDb((db) => (0, database_2.getSessionChunksOrdered)(db, session.session_id));
304
+ if (chunks.length === 0) {
305
+ clack.log.warn("Session has no indexed chunks to compact.");
306
+ return "continue";
307
+ }
308
+ // Summarize.
309
+ const spinner = clack.spinner();
310
+ spinner.start(`Compacting ${fmtChunks(chunks.length)} with OpenAI…`);
311
+ let compactResult;
312
+ try {
313
+ compactResult = await (0, session_compactor_1.compactSession)(chunks);
314
+ spinner.stop(`Compacted in ${compactResult.passes} pass${compactResult.passes !== 1 ? "es" : ""} (${compactResult.model}).`);
315
+ clack.log.info(`Token usage: input ${compactResult.usage.inputTokens}, output ${compactResult.usage.outputTokens}, total ${compactResult.usage.totalTokens}.`);
316
+ }
317
+ catch (err) {
318
+ spinner.stop("Compaction failed.");
319
+ const msg = err instanceof Error ? err.message : String(err);
320
+ clack.log.error(`OpenAI error: ${msg}`);
321
+ return "continue";
322
+ }
323
+ // Copy to clipboard.
324
+ const clipResult = (0, clipboard_1.copyToClipboard)(compactResult.summary);
325
+ if (clipResult.ok) {
326
+ clack.log.success("Compact summary copied to clipboard.");
327
+ }
328
+ else {
329
+ clack.log.warn(`Could not copy to clipboard (${clipResult.error}).\nPrinting summary to stdout instead:\n`);
330
+ console.log(compactResult.summary);
331
+ clack.log.info("Copy the output above and paste it into a new session.");
332
+ }
333
+ return "continue";
334
+ }
335
+ // ---------------------------------------------------------------------------
280
336
  // sessions list
281
337
  // ---------------------------------------------------------------------------
282
338
  async function cmdSessionsList() {
@@ -504,6 +560,15 @@ ${b("Usage:")}
504
560
  npx code-session-memory sessions purge --days <n> Non-interactive, prompts for confirmation
505
561
  npx code-session-memory sessions purge --days <n> --yes Fully non-interactive (no confirmation)
506
562
 
563
+ ${b("Interactive actions (available after selecting a session):")}
564
+ Compact for restart Summarize the session with OpenAI and copy the result
565
+ to the clipboard, ready to paste into a new session.
566
+
567
+ ${b("Environment variables (compact):")}
568
+ OPENAI_API_KEY Required for compaction.
569
+ OPENAI_SUMMARY_MODEL Override the summarizer model (default: gpt-5-nano).
570
+ CSM_SUMMARY_MAX_OUTPUT_TOKENS Override max output tokens (default: 5000).
571
+
507
572
  ${b("Notes:")}
508
573
  - Deleting a session only removes it from the DB. If the source files still
509
574
  exist, the session will be re-indexed on the next agent turn.
@@ -1 +1 @@
1
- {"version":3,"file":"cli-sessions.js","sourceRoot":"","sources":["../../src/cli-sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-sessions.js","sourceRoot":"","sources":["../../src/cli-sessions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * clipboard.ts — cross-platform clipboard copy utility
3
+ *
4
+ * Platform priority:
5
+ * macOS → pbcopy
6
+ * Linux → wl-copy (Wayland), then xclip fallback
7
+ * Windows → clip
8
+ *
9
+ * Returns `{ ok: true }` on success or `{ ok: false, error }` on failure.
10
+ * Never throws — callers print the content and give manual-copy instructions
11
+ * if clipboard is unavailable.
12
+ */
13
+ export type ClipboardResult = {
14
+ ok: true;
15
+ } | {
16
+ ok: false;
17
+ error: string;
18
+ };
19
+ /**
20
+ * Copies `text` to the system clipboard.
21
+ * Returns `{ ok: true }` on success, or `{ ok: false, error }` on failure.
22
+ */
23
+ export declare function copyToClipboard(text: string): ClipboardResult;
24
+ //# sourceMappingURL=clipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/clipboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,MAAM,eAAe,GACvB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAmB7D"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * clipboard.ts — cross-platform clipboard copy utility
4
+ *
5
+ * Platform priority:
6
+ * macOS → pbcopy
7
+ * Linux → wl-copy (Wayland), then xclip fallback
8
+ * Windows → clip
9
+ *
10
+ * Returns `{ ok: true }` on success or `{ ok: false, error }` on failure.
11
+ * Never throws — callers print the content and give manual-copy instructions
12
+ * if clipboard is unavailable.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.copyToClipboard = copyToClipboard;
16
+ const child_process_1 = require("child_process");
17
+ /**
18
+ * Copies `text` to the system clipboard.
19
+ * Returns `{ ok: true }` on success, or `{ ok: false, error }` on failure.
20
+ */
21
+ function copyToClipboard(text) {
22
+ const platform = process.platform;
23
+ if (platform === "darwin") {
24
+ return runClipboard("pbcopy", [], text);
25
+ }
26
+ if (platform === "linux") {
27
+ // Try Wayland first, then X11 fallback
28
+ const wayland = runClipboard("wl-copy", [], text);
29
+ if (wayland.ok)
30
+ return wayland;
31
+ return runClipboard("xclip", ["-selection", "clipboard"], text);
32
+ }
33
+ if (platform === "win32") {
34
+ return runClipboard("clip", [], text);
35
+ }
36
+ return { ok: false, error: `Unsupported platform: ${platform}` };
37
+ }
38
+ function runClipboard(cmd, args, text) {
39
+ try {
40
+ (0, child_process_1.execFileSync)(cmd, args, { input: text, encoding: "utf8" });
41
+ return { ok: true };
42
+ }
43
+ catch (err) {
44
+ const msg = err instanceof Error ? err.message : String(err);
45
+ return { ok: false, error: `${cmd}: ${msg}` };
46
+ }
47
+ }
48
+ //# sourceMappingURL=clipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/clipboard.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAYH,0CAmBC;AA7BD,iDAA6C;AAM7C;;;GAGG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,uCAAuC;QACvC,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,EAAE;YAAE,OAAO,OAAO,CAAC;QAC/B,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,QAAQ,EAAE,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,IAAc,EAAE,IAAY;IAC7D,IAAI,CAAC;QACH,IAAA,4BAAY,EAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,GAAG,EAAE,EAAE,CAAC;IAChD,CAAC;AACH,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * restart-launchers.ts — per-tool CLI launch adapters for "Restart from..."
3
+ *
4
+ * Supported tools and their CLI arguments:
5
+ * codex → codex "<prompt>"
6
+ * claude-code → claude "<prompt>"
7
+ * cursor → cursor agent "<prompt>"
8
+ * opencode → opencode run "<prompt>"
9
+ * vscode → fallback-only (no reliable session-create CLI)
10
+ *
11
+ * Contract: if compaction succeeded, the operation is still considered a
12
+ * success even if the launch fails — the compact summary is already on the
13
+ * clipboard for manual use.
14
+ */
15
+ import type { CompactTarget } from "./session-compactor";
16
+ export interface LaunchResult {
17
+ ok: boolean;
18
+ /** Human-readable error message when ok === false. */
19
+ error?: string;
20
+ /** True when the target has no supported launch path (e.g. vscode). */
21
+ isUnsupported?: boolean;
22
+ }
23
+ /**
24
+ * Spawns the target tool's CLI with the compact prompt as an argument.
25
+ *
26
+ * The child process inherits stdio so the user sees its output.
27
+ * The process is detached so the CLI can exit without waiting.
28
+ *
29
+ * Returns immediately after spawning (does not wait for the child to exit).
30
+ */
31
+ export declare function launchTool(target: CompactTarget, prompt: string): LaunchResult;
32
+ /**
33
+ * Returns [command, args] for the given target.
34
+ * Exported for unit testing without spawning a process.
35
+ */
36
+ export declare function resolveCommand(target: Exclude<CompactTarget, "vscode">, prompt: string): [string, string[]];
37
+ //# sourceMappingURL=restart-launchers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restart-launchers.d.ts","sourceRoot":"","sources":["../../src/restart-launchers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,GACb,YAAY,CAyBd;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,EACxC,MAAM,EAAE,MAAM,GACb,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAWpB"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ /**
3
+ * restart-launchers.ts — per-tool CLI launch adapters for "Restart from..."
4
+ *
5
+ * Supported tools and their CLI arguments:
6
+ * codex → codex "<prompt>"
7
+ * claude-code → claude "<prompt>"
8
+ * cursor → cursor agent "<prompt>"
9
+ * opencode → opencode run "<prompt>"
10
+ * vscode → fallback-only (no reliable session-create CLI)
11
+ *
12
+ * Contract: if compaction succeeded, the operation is still considered a
13
+ * success even if the launch fails — the compact summary is already on the
14
+ * clipboard for manual use.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.launchTool = launchTool;
18
+ exports.resolveCommand = resolveCommand;
19
+ const child_process_1 = require("child_process");
20
+ /**
21
+ * Spawns the target tool's CLI with the compact prompt as an argument.
22
+ *
23
+ * The child process inherits stdio so the user sees its output.
24
+ * The process is detached so the CLI can exit without waiting.
25
+ *
26
+ * Returns immediately after spawning (does not wait for the child to exit).
27
+ */
28
+ function launchTool(target, prompt) {
29
+ if (target === "vscode") {
30
+ return {
31
+ ok: false,
32
+ isUnsupported: true,
33
+ error: "VS Code has no reliable session-create CLI path. " +
34
+ "Paste the continuation prompt into a new Copilot Chat window manually.",
35
+ };
36
+ }
37
+ const [cmd, args] = resolveCommand(target, prompt);
38
+ try {
39
+ const child = (0, child_process_1.spawn)(cmd, args, {
40
+ stdio: "inherit",
41
+ detached: true,
42
+ shell: false,
43
+ });
44
+ child.unref();
45
+ return { ok: true };
46
+ }
47
+ catch (err) {
48
+ const msg = err instanceof Error ? err.message : String(err);
49
+ return { ok: false, error: `Failed to launch ${cmd}: ${msg}` };
50
+ }
51
+ }
52
+ /**
53
+ * Returns [command, args] for the given target.
54
+ * Exported for unit testing without spawning a process.
55
+ */
56
+ function resolveCommand(target, prompt) {
57
+ switch (target) {
58
+ case "codex":
59
+ return ["codex", [prompt]];
60
+ case "claude-code":
61
+ return ["claude", [prompt]];
62
+ case "cursor":
63
+ return ["cursor", ["agent", prompt]];
64
+ case "opencode":
65
+ return ["opencode", ["run", prompt]];
66
+ }
67
+ }
68
+ //# sourceMappingURL=restart-launchers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restart-launchers.js","sourceRoot":"","sources":["../../src/restart-launchers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAqBH,gCA4BC;AAMD,wCAcC;AAnED,iDAAsC;AAWtC;;;;;;;GAOG;AACH,SAAgB,UAAU,CACxB,MAAqB,EACrB,MAAc;IAEd,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,aAAa,EAAE,IAAI;YACnB,KAAK,EACH,mDAAmD;gBACnD,wEAAwE;SAC3E,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,GAAG,EAAE,IAAI,EAAE;YAC7B,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,GAAG,KAAK,GAAG,EAAE,EAAE,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,MAAwC,EACxC,MAAc;IAEd,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7B,KAAK,aAAa;YAChB,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9B,KAAK,QAAQ;YACX,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACvC,KAAK,UAAU;YACb,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * session-compactor.ts — summarize a session's chunks into a compact restart document.
3
+ *
4
+ * Uses OpenAI chat completions with a map-reduce strategy for long sessions:
5
+ * 1. Single-pass for sessions whose estimated token count fits within the limit.
6
+ * 2. Multi-pass for longer sessions: map each window → reduce all partials → final format.
7
+ *
8
+ * Environment variables:
9
+ * OPENAI_API_KEY Required. Passed to the OpenAI client.
10
+ * OPENAI_SUMMARY_MODEL Override model (default: "gpt-5-nano").
11
+ * CSM_SUMMARY_MAX_OUTPUT_TOKENS Override max output tokens (default: 5000).
12
+ */
13
+ import type { ChunkRow } from "./database";
14
+ export interface CompactOptions {
15
+ /** Override the summarizer model. Default: OPENAI_SUMMARY_MODEL env var or "gpt-5-nano". */
16
+ model?: string;
17
+ /** Override the max output token budget. Default: CSM_SUMMARY_MAX_OUTPUT_TOKENS env var or 5000. */
18
+ maxOutputTokens?: number;
19
+ }
20
+ export interface CompactResult {
21
+ summary: string;
22
+ model: string;
23
+ /** Total number of LLM passes performed (map passes + reduce + final format). */
24
+ passes: number;
25
+ usage: {
26
+ inputTokens: number;
27
+ outputTokens: number;
28
+ totalTokens: number;
29
+ };
30
+ }
31
+ /**
32
+ * Summarizes the given ordered chunks into a restart document ready to paste
33
+ * into a new AI coding session.
34
+ *
35
+ * @throws Error if OPENAI_API_KEY is missing or any OpenAI call fails.
36
+ */
37
+ export declare function compactSession(chunks: ChunkRow[], options?: CompactOptions): Promise<CompactResult>;
38
+ /**
39
+ * Builds a human-readable transcript from ordered chunk rows.
40
+ * Groups consecutive chunks with the same section label under a single header.
41
+ */
42
+ export declare function buildTranscript(chunks: ChunkRow[]): string;
43
+ /**
44
+ * Splits `text` into windows of at most `windowChars` characters.
45
+ * Splits on newline boundaries when possible.
46
+ */
47
+ export declare function splitIntoWindows(text: string, windowChars: number): string[];
48
+ //# sourceMappingURL=session-compactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-compactor.d.ts","sourceRoot":"","sources":["../../src/session-compactor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3C,MAAM,WAAW,cAAc;IAC7B,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oGAAoG;IACpG,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,QAAQ,EAAE,EAClB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CA6GxB;AAgED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAgB1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAoB5E"}
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ /**
3
+ * session-compactor.ts — summarize a session's chunks into a compact restart document.
4
+ *
5
+ * Uses OpenAI chat completions with a map-reduce strategy for long sessions:
6
+ * 1. Single-pass for sessions whose estimated token count fits within the limit.
7
+ * 2. Multi-pass for longer sessions: map each window → reduce all partials → final format.
8
+ *
9
+ * Environment variables:
10
+ * OPENAI_API_KEY Required. Passed to the OpenAI client.
11
+ * OPENAI_SUMMARY_MODEL Override model (default: "gpt-5-nano").
12
+ * CSM_SUMMARY_MAX_OUTPUT_TOKENS Override max output tokens (default: 5000).
13
+ */
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.compactSession = compactSession;
19
+ exports.buildTranscript = buildTranscript;
20
+ exports.splitIntoWindows = splitIntoWindows;
21
+ const openai_1 = __importDefault(require("openai"));
22
+ /**
23
+ * Summarizes the given ordered chunks into a restart document ready to paste
24
+ * into a new AI coding session.
25
+ *
26
+ * @throws Error if OPENAI_API_KEY is missing or any OpenAI call fails.
27
+ */
28
+ async function compactSession(chunks, options = {}) {
29
+ const model = options.model ??
30
+ process.env.OPENAI_SUMMARY_MODEL ??
31
+ "gpt-5-nano";
32
+ const maxOutputTokens = options.maxOutputTokens ??
33
+ Number(process.env.CSM_SUMMARY_MAX_OUTPUT_TOKENS ?? "5000");
34
+ const apiKey = process.env.OPENAI_API_KEY;
35
+ if (!apiKey) {
36
+ throw new Error("OPENAI_API_KEY environment variable is required for session compaction.");
37
+ }
38
+ const client = new openai_1.default({ apiKey });
39
+ const useLowReasoningEffort = supportsLowReasoningEffort(model);
40
+ const usageTotals = {
41
+ inputTokens: 0,
42
+ outputTokens: 0,
43
+ totalTokens: 0,
44
+ };
45
+ async function runCompletion(messages, maxCompletionTokens) {
46
+ const response = await client.chat.completions.create({
47
+ model,
48
+ max_completion_tokens: maxCompletionTokens,
49
+ ...(useLowReasoningEffort ? { reasoning_effort: "low" } : {}),
50
+ messages,
51
+ });
52
+ const promptTokens = response.usage?.prompt_tokens ?? 0;
53
+ const completionTokens = response.usage?.completion_tokens ?? 0;
54
+ const totalTokens = response.usage?.total_tokens ?? (promptTokens + completionTokens);
55
+ usageTotals.inputTokens += promptTokens;
56
+ usageTotals.outputTokens += completionTokens;
57
+ usageTotals.totalTokens += totalTokens;
58
+ return response.choices[0]?.message?.content ?? "";
59
+ }
60
+ const transcript = buildTranscript(chunks);
61
+ // Single-pass threshold: ~100k tokens (≈ 400k chars).
62
+ const SINGLE_PASS_CHAR_LIMIT = 400000;
63
+ let digest;
64
+ let passes;
65
+ if (transcript.length <= SINGLE_PASS_CHAR_LIMIT) {
66
+ // Single pass: summarize the whole transcript at once.
67
+ digest = await runCompletion([
68
+ { role: "system", content: MAP_SYSTEM_PROMPT },
69
+ { role: "user", content: transcript },
70
+ ], maxOutputTokens);
71
+ passes = 1;
72
+ }
73
+ else {
74
+ // Multi-pass: split into ~80k-token windows (~320k chars), map then reduce.
75
+ const WINDOW_CHARS = 320000;
76
+ const windows = splitIntoWindows(transcript, WINDOW_CHARS);
77
+ // Map phase: summarize each window independently.
78
+ const partials = [];
79
+ const perWindowTokens = Math.max(500, Math.ceil(maxOutputTokens / windows.length));
80
+ for (const window of windows) {
81
+ const partial = await runCompletion([
82
+ { role: "system", content: MAP_SYSTEM_PROMPT },
83
+ { role: "user", content: window },
84
+ ], perWindowTokens);
85
+ partials.push(partial);
86
+ }
87
+ // Reduce phase: merge all partial summaries.
88
+ const combined = partials.join("\n\n---\n\n");
89
+ digest = await runCompletion([
90
+ { role: "system", content: REDUCE_SYSTEM_PROMPT },
91
+ { role: "user", content: combined },
92
+ ], maxOutputTokens);
93
+ passes = windows.length + 1; // N map passes + 1 reduce pass
94
+ }
95
+ // Final formatting pass: structure the digest into a restart document.
96
+ const summary = await runCompletion([
97
+ {
98
+ role: "system",
99
+ content: finalSystemPrompt(maxOutputTokens),
100
+ },
101
+ { role: "user", content: digest },
102
+ ], maxOutputTokens);
103
+ passes += 1;
104
+ return { summary, model, passes, usage: usageTotals };
105
+ }
106
+ // ---------------------------------------------------------------------------
107
+ // Prompts
108
+ // ---------------------------------------------------------------------------
109
+ const MAP_SYSTEM_PROMPT = `\
110
+ You are summarizing a segment of an AI coding session transcript.
111
+
112
+ Extract a concise faithful digest that preserves, in chronological order:
113
+ - Key decisions made and their rationale
114
+ - Failed attempts and why they failed
115
+ - Constraints and requirements discovered during the session
116
+ - Code file paths, function names, and data structures mentioned
117
+ - Unresolved issues or open questions
118
+
119
+ Be concise and structured. Use bullet points. Preserve technical specifics.
120
+ Do NOT add opinions or filler. Only what's in the transcript.`;
121
+ const REDUCE_SYSTEM_PROMPT = `\
122
+ You are merging partial summaries of an AI coding session into a single coherent digest.
123
+
124
+ Combine the summaries into one continuous narrative that:
125
+ - Preserves chronological order
126
+ - Includes all unique key decisions and rationale
127
+ - Includes all failed attempts and lessons learned
128
+ - Includes all constraints and requirements
129
+ - Includes all code file paths, function names, and data structures
130
+ - Includes all unresolved issues and remaining work
131
+
132
+ Remove redundancy. Preserve all unique technical details.
133
+ Output bullet-point lists, not prose paragraphs.`;
134
+ function finalSystemPrompt(maxOutputTokens) {
135
+ return `\
136
+ You are creating a "session restart document" for an AI coding session.
137
+
138
+ Transform the session digest into a structured document with these sections:
139
+
140
+ ## Context
141
+ What was being built or fixed, and why.
142
+
143
+ ## Key Decisions
144
+ Architectural and implementation choices made during the session.
145
+
146
+ ## Current State
147
+ What was completed, what is in progress, and what files/code exist now.
148
+
149
+ ## Unresolved Issues
150
+ Blockers, open questions, or known bugs not yet fixed.
151
+
152
+ Keep the total output under ${maxOutputTokens} tokens. Be precise and actionable.
153
+ Preserve every technical detail (file paths, function names, error messages).`;
154
+ }
155
+ function supportsLowReasoningEffort(model) {
156
+ const normalized = model.toLowerCase();
157
+ return normalized.startsWith("gpt-5") || normalized.startsWith("o1") || normalized.startsWith("o3") || normalized.startsWith("o4");
158
+ }
159
+ // ---------------------------------------------------------------------------
160
+ // Helpers
161
+ // ---------------------------------------------------------------------------
162
+ /**
163
+ * Builds a human-readable transcript from ordered chunk rows.
164
+ * Groups consecutive chunks with the same section label under a single header.
165
+ */
166
+ function buildTranscript(chunks) {
167
+ if (chunks.length === 0)
168
+ return "";
169
+ const lines = [];
170
+ let lastSection = "";
171
+ for (const chunk of chunks) {
172
+ const section = chunk.section || "Unknown";
173
+ if (section !== lastSection) {
174
+ lines.push(`\n### ${section}`);
175
+ lastSection = section;
176
+ }
177
+ lines.push(chunk.content);
178
+ }
179
+ return lines.join("\n").trimStart();
180
+ }
181
+ /**
182
+ * Splits `text` into windows of at most `windowChars` characters.
183
+ * Splits on newline boundaries when possible.
184
+ */
185
+ function splitIntoWindows(text, windowChars) {
186
+ if (text.length <= windowChars)
187
+ return [text];
188
+ const windows = [];
189
+ let offset = 0;
190
+ while (offset < text.length) {
191
+ let end = Math.min(offset + windowChars, text.length);
192
+ // Try to find the last newline before the hard boundary.
193
+ if (end < text.length) {
194
+ const lastNl = text.lastIndexOf("\n", end);
195
+ if (lastNl > offset)
196
+ end = lastNl + 1;
197
+ }
198
+ windows.push(text.slice(offset, end));
199
+ offset = end;
200
+ }
201
+ return windows;
202
+ }
203
+ //# sourceMappingURL=session-compactor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-compactor.js","sourceRoot":"","sources":["../../src/session-compactor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-session-memory",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Automatically index OpenCode, Claude Code, Cursor, VS Code, and Codex sessions into a shared sqlite-vec vector database for semantic search across your AI coding history",
5
5
  "type": "commonjs",
6
6
  "main": "dist/src/indexer.js",