somtum 2.2.0 → 3.0.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.
Files changed (81) hide show
  1. package/README.md +66 -78
  2. package/dist/agents/claude_code.d.ts +3 -0
  3. package/dist/agents/claude_code.d.ts.map +1 -0
  4. package/dist/agents/claude_code.js +112 -0
  5. package/dist/agents/claude_code.js.map +1 -0
  6. package/dist/agents/codex.d.ts +3 -0
  7. package/dist/agents/codex.d.ts.map +1 -0
  8. package/dist/agents/codex.js +173 -0
  9. package/dist/agents/codex.js.map +1 -0
  10. package/dist/agents/index.d.ts +7 -0
  11. package/dist/agents/index.d.ts.map +1 -0
  12. package/dist/agents/index.js +24 -0
  13. package/dist/agents/index.js.map +1 -0
  14. package/dist/agents/shared.d.ts +3 -0
  15. package/dist/agents/shared.d.ts.map +1 -0
  16. package/dist/agents/shared.js +18 -0
  17. package/dist/agents/shared.js.map +1 -0
  18. package/dist/agents/types.d.ts +11 -0
  19. package/dist/agents/types.d.ts.map +1 -0
  20. package/dist/agents/types.js +2 -0
  21. package/dist/agents/types.js.map +1 -0
  22. package/dist/cli/doctor.d.ts.map +1 -1
  23. package/dist/cli/doctor.js +41 -56
  24. package/dist/cli/doctor.js.map +1 -1
  25. package/dist/cli/hook.d.ts.map +1 -1
  26. package/dist/cli/hook.js +2 -5
  27. package/dist/cli/hook.js.map +1 -1
  28. package/dist/cli/index.js +3 -1
  29. package/dist/cli/index.js.map +1 -1
  30. package/dist/cli/init.d.ts +19 -0
  31. package/dist/cli/init.d.ts.map +1 -1
  32. package/dist/cli/init.js +40 -31
  33. package/dist/cli/init.js.map +1 -1
  34. package/dist/cli/init_codex.d.ts +12 -0
  35. package/dist/cli/init_codex.d.ts.map +1 -0
  36. package/dist/cli/init_codex.js +53 -0
  37. package/dist/cli/init_codex.js.map +1 -0
  38. package/dist/cli/suggest_claude_md.js.map +1 -1
  39. package/dist/cli/ui.d.ts +1 -1
  40. package/dist/cli/ui.d.ts.map +1 -1
  41. package/dist/cli/ui.js +1 -1
  42. package/dist/cli/ui.js.map +1 -1
  43. package/dist/core/cache.d.ts +5 -0
  44. package/dist/core/cache.d.ts.map +1 -1
  45. package/dist/core/cache.js +17 -0
  46. package/dist/core/cache.js.map +1 -1
  47. package/dist/core/db.d.ts.map +1 -1
  48. package/dist/core/db.js +9 -0
  49. package/dist/core/db.js.map +1 -1
  50. package/dist/core/extractor.d.ts +1 -0
  51. package/dist/core/extractor.d.ts.map +1 -1
  52. package/dist/core/extractor.js +93 -47
  53. package/dist/core/extractor.js.map +1 -1
  54. package/dist/core/llm_backend.d.ts +7 -0
  55. package/dist/core/llm_backend.d.ts.map +1 -0
  56. package/dist/core/llm_backend.js +44 -0
  57. package/dist/core/llm_backend.js.map +1 -0
  58. package/dist/core/memory_files.d.ts.map +1 -1
  59. package/dist/core/memory_files.js +2 -3
  60. package/dist/core/memory_files.js.map +1 -1
  61. package/dist/core/schema.d.ts +14 -4
  62. package/dist/core/schema.d.ts.map +1 -1
  63. package/dist/core/schema.js +4 -0
  64. package/dist/core/schema.js.map +1 -1
  65. package/dist/core/transcript.d.ts.map +1 -1
  66. package/dist/core/transcript.js +14 -77
  67. package/dist/core/transcript.js.map +1 -1
  68. package/dist/dashboard/index.html +1 -1
  69. package/dist/hooks/post_session.d.ts +5 -5
  70. package/dist/hooks/post_session.d.ts.map +1 -1
  71. package/dist/hooks/post_session.js +48 -38
  72. package/dist/hooks/post_session.js.map +1 -1
  73. package/dist/hooks/pre_prompt.d.ts +5 -0
  74. package/dist/hooks/pre_prompt.d.ts.map +1 -1
  75. package/dist/hooks/pre_prompt.js +60 -8
  76. package/dist/hooks/pre_prompt.js.map +1 -1
  77. package/dist/index.d.ts +1 -1
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +1 -1
  80. package/dist/index.js.map +1 -1
  81. package/package.json +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface CodexInitOptions {
2
+ cwd: string;
3
+ force?: boolean;
4
+ withMcp?: boolean;
5
+ }
6
+ export interface CodexInitResult {
7
+ hooksPath: string;
8
+ configPath: string | null;
9
+ hooksInstalled: string[];
10
+ }
11
+ export declare function runCodexInit({ cwd, force, withMcp, }: CodexInitOptions): CodexInitResult;
12
+ //# sourceMappingURL=init_codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init_codex.d.ts","sourceRoot":"","sources":["../../src/cli/init_codex.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EACH,KAAa,EACb,OAAc,GACf,EAAE,gBAAgB,GAAG,eAAe,CA8BpC"}
@@ -0,0 +1,53 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { absoluteBin, addHook, hookCommand, readSettings, somtumOnPath } from './init.js';
4
+ // Codex reads hooks from <repo>/.codex/hooks.json in the same shape Claude
5
+ // Code uses in settings.json, with the same event names and stdin payloads,
6
+ // so the existing hook handlers serve both agents.
7
+ const SOMTUM_EVENTS = ['SessionEnd', 'PreCompact', 'UserPromptSubmit'];
8
+ export function runCodexInit({ cwd, force = false, withMcp = true, }) {
9
+ const codexDir = join(cwd, '.codex');
10
+ if (!existsSync(codexDir))
11
+ mkdirSync(codexDir, { recursive: true });
12
+ const hooksPath = join(codexDir, 'hooks.json');
13
+ const settings = readSettings(hooksPath);
14
+ if (force && settings.hooks) {
15
+ for (const event of SOMTUM_EVENTS) {
16
+ const matchers = settings.hooks[event];
17
+ if (!matchers)
18
+ continue;
19
+ settings.hooks[event] = matchers.filter((m) => !m.hooks.some((h) => h.command.includes('somtum')));
20
+ }
21
+ }
22
+ const postSession = hookCommand('hook post_session');
23
+ const added = [];
24
+ if (addHook(settings, 'SessionEnd', postSession))
25
+ added.push('SessionEnd');
26
+ if (addHook(settings, 'PreCompact', postSession))
27
+ added.push('PreCompact');
28
+ // Unlike the Claude Code install, injection is on by default: recalling
29
+ // memories on each prompt is what makes the captured ones useful.
30
+ if (addHook(settings, 'UserPromptSubmit', hookCommand('hook pre_prompt'))) {
31
+ added.push('UserPromptSubmit');
32
+ }
33
+ writeFileSync(hooksPath, `${JSON.stringify(settings, null, 2)}\n`, 'utf8');
34
+ const configPath = withMcp ? registerMcpServer(join(codexDir, 'config.toml')) : null;
35
+ return { hooksPath, configPath, hooksInstalled: added };
36
+ }
37
+ // Appends an [mcp_servers.somtum] table unless one exists. No TOML parser:
38
+ // we only ever add a whole table, never edit someone else's.
39
+ function registerMcpServer(configPath) {
40
+ const existing = existsSync(configPath) ? readFileSync(configPath, 'utf8') : '';
41
+ if (/^\[mcp_servers\.somtum\]/m.test(existing))
42
+ return configPath;
43
+ const [command, args] = somtumOnPath() ? ['somtum', ['mcp']] : ['node', [absoluteBin(), 'mcp']];
44
+ const table = [
45
+ '[mcp_servers.somtum]',
46
+ `command = ${JSON.stringify(command)}`,
47
+ `args = [${args.map((a) => JSON.stringify(a)).join(', ')}]`,
48
+ ].join('\n');
49
+ const sep = existing.length === 0 ? '' : existing.endsWith('\n') ? '\n' : '\n\n';
50
+ writeFileSync(configPath, `${existing}${sep}${table}\n`, 'utf8');
51
+ return configPath;
52
+ }
53
+ //# sourceMappingURL=init_codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init_codex.js","sourceRoot":"","sources":["../../src/cli/init_codex.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"suggest_claude_md.js","sourceRoot":"","sources":["../../src/cli/suggest_claude_md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"suggest_claude_md.js","sourceRoot":"","sources":["../../src/cli/suggest_claude_md.ts"],"names":[],"mappings":"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"}
package/dist/cli/ui.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export declare const SOMTUM_LOGO = "\n \u001B[32m\u001B[1m_____ \u001B[31m____ \u001B[33m__ \u001B[32m__________ \u001B[31m__ \u001B[33m___\n \u001B[32m/ ___/ \u001B[31m/ __ \\\u001B[33m/ |/ \u001B[32m/_ __/ / / \u001B[31m/ |/ \u001B[33m/\n \u001B[32m\\__ \\ \u001B[31m/ / / /\u001B[33m /|_/ / \u001B[32m/ / / / / \u001B[31m/ /|_/ / \u001B[33m\n \u001B[32m___/ / \u001B[31m/_/ / \u001B[33m/ / / \u001B[32m/ / / /_/ / \u001B[31m/ / / \u001B[33m\n\u001B[32m/____/ \u001B[31m\\____/ \u001B[33m/_/ /_/ \u001B[32m/_/ \\____/ \u001B[31m/_/ /_/ \u001B[0m\n \n \u001B[1m\u001B[32mLocal-first memory for Claude Code\u001B[0m\n";
1
+ export declare const SOMTUM_LOGO = "\n \u001B[32m\u001B[1m_____ \u001B[31m____ \u001B[33m__ \u001B[32m__________ \u001B[31m__ \u001B[33m___\n \u001B[32m/ ___/ \u001B[31m/ __ \\\u001B[33m/ |/ \u001B[32m/_ __/ / / \u001B[31m/ |/ \u001B[33m/\n \u001B[32m\\__ \\ \u001B[31m/ / / /\u001B[33m /|_/ / \u001B[32m/ / / / / \u001B[31m/ /|_/ / \u001B[33m\n \u001B[32m___/ / \u001B[31m/_/ / \u001B[33m/ / / \u001B[32m/ / / /_/ / \u001B[31m/ / / \u001B[33m\n\u001B[32m/____/ \u001B[31m\\____/ \u001B[33m/_/ /_/ \u001B[32m/_/ \\____/ \u001B[31m/_/ /_/ \u001B[0m\n \n \u001B[1m\u001B[32mLocal-first memory for coding agents\u001B[0m\n";
2
2
  export declare function printLogo(): void;
3
3
  //# sourceMappingURL=ui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW,0oBAQvB,CAAC;AAEF,wBAAgB,SAAS,IAAI,IAAI,CAKhC"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW,4oBAQvB,CAAC;AAEF,wBAAgB,SAAS,IAAI,IAAI,CAKhC"}
package/dist/cli/ui.js CHANGED
@@ -10,7 +10,7 @@ export const SOMTUM_LOGO = `
10
10
  ${GREEN}___/ / ${RED}/_/ / ${YELLOW}/ / / ${GREEN}/ / / /_/ / ${RED}/ / / ${YELLOW}
11
11
  ${GREEN}/____/ ${RED}\\____/ ${YELLOW}/_/ /_/ ${GREEN}/_/ \\____/ ${RED}/_/ /_/ ${RESET}
12
12
 
13
- ${BOLD}${GREEN}Local-first memory for Claude Code${RESET}
13
+ ${BOLD}${GREEN}Local-first memory for coding agents${RESET}
14
14
  `;
15
15
  export function printLogo() {
16
16
  // Only print if we're in a TTY to avoid messing up pipes/logs
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,MAAM,GAAG,UAAU,CAAC;AAE1B,MAAM,CAAC,MAAM,WAAW,GAAG;KACtB,KAAK,GAAG,IAAI,SAAS,GAAG,SAAS,MAAM,OAAO,KAAK,eAAe,GAAG,OAAO,MAAM;IACnF,KAAK,UAAU,GAAG,UAAU,MAAM,UAAU,KAAK,eAAe,GAAG,UAAU,MAAM;IACnF,KAAK,WAAW,GAAG,UAAU,MAAM,WAAW,KAAK,aAAa,GAAG,YAAY,MAAM;GACtF,KAAK,UAAU,GAAG,SAAS,MAAM,UAAU,KAAK,eAAe,GAAG,WAAW,MAAM;EACpF,KAAK,UAAU,GAAG,WAAW,MAAM,YAAY,KAAK,gBAAgB,GAAG,cAAc,KAAK;;KAEvF,IAAI,GAAG,KAAK,qCAAqC,KAAK;CAC1D,CAAC;AAEF,MAAM,UAAU,SAAS;IACvB,8DAA8D;IAC9D,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,MAAM,GAAG,UAAU,CAAC;AAE1B,MAAM,CAAC,MAAM,WAAW,GAAG;KACtB,KAAK,GAAG,IAAI,SAAS,GAAG,SAAS,MAAM,OAAO,KAAK,eAAe,GAAG,OAAO,MAAM;IACnF,KAAK,UAAU,GAAG,UAAU,MAAM,UAAU,KAAK,eAAe,GAAG,UAAU,MAAM;IACnF,KAAK,WAAW,GAAG,UAAU,MAAM,WAAW,KAAK,aAAa,GAAG,YAAY,MAAM;GACtF,KAAK,UAAU,GAAG,SAAS,MAAM,UAAU,KAAK,eAAe,GAAG,WAAW,MAAM;EACpF,KAAK,UAAU,GAAG,WAAW,MAAM,YAAY,KAAK,gBAAgB,GAAG,cAAc,KAAK;;KAEvF,IAAI,GAAG,KAAK,uCAAuC,KAAK;CAC5D,CAAC;AAEF,MAAM,UAAU,SAAS;IACvB,8DAA8D;IAC9D,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -24,6 +24,11 @@ export declare class PromptCache {
24
24
  recordFalseHit(id: string): void;
25
25
  touch(id: string): void;
26
26
  invalidate(id: string): void;
27
+ prune(opts: {
28
+ ttlDays: number;
29
+ maxEntries: number;
30
+ now?: number;
31
+ }): number;
27
32
  count(): number;
28
33
  }
29
34
  //# sourceMappingURL=cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAoB,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AAIzB,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAsC3C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAEnC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAUnD,GAAG,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU;IA2CjE,WAAW,CACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IA4B5D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAOtC,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI;IAMrD,2BAA2B,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE;IASpE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAMhC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQvB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI5B,KAAK,IAAI,MAAM;CAMhB"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAoB,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AAIzB,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAsC3C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAEnC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAUnD,GAAG,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU;IA2CjE,WAAW,CACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IA4B5D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAOtC,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI;IAMrD,2BAA2B,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE;IASpE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAMhC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQvB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAO5B,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAiB1E,KAAK,IAAI,MAAM;CAMhB"}
@@ -129,6 +129,23 @@ export class PromptCache {
129
129
  invalidate(id) {
130
130
  this.db.prepare(`UPDATE cache_entries SET invalidated = 1 WHERE id = ?`).run(id);
131
131
  }
132
+ // Enforce the retention policy from config (cache.ttl_days, cache.max_entries).
133
+ // Drops invalidated entries, entries not hit within the TTL, and — if the
134
+ // cache is still over capacity — the least-recently-hit overflow.
135
+ prune(opts) {
136
+ const now = opts.now ?? Date.now();
137
+ const cutoff = now - opts.ttlDays * 24 * 60 * 60 * 1000;
138
+ let removed = this.db
139
+ .prepare(`DELETE FROM cache_entries WHERE invalidated = 1 OR last_hit_at < ?`)
140
+ .run(cutoff).changes;
141
+ removed += this.db
142
+ .prepare(`DELETE FROM cache_entries WHERE id IN (
143
+ SELECT id FROM cache_entries
144
+ ORDER BY last_hit_at DESC
145
+ LIMIT -1 OFFSET ?)`)
146
+ .run(opts.maxEntries).changes;
147
+ return removed;
148
+ }
132
149
  count() {
133
150
  const row = this.db.prepare(`SELECT COUNT(*) AS n FROM cache_entries`).get();
134
151
  return row.n;
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAKtC,MAAM,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAWnC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,EAAE,CAgB/C;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAE,MAAuB,GAAG,MAAM,CAmD1E;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,CAKhD;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAQvC"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAKtC,MAAM,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAWnC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,EAAE,CAgB/C;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAE,MAAuB,GAAG,MAAM,CA4D1E;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,CAKhD;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAQvC"}
package/dist/core/db.js CHANGED
@@ -49,6 +49,15 @@ export function runMigrations(db, dir = MIGRATIONS_DIR) {
49
49
  // BEGIN IMMEDIATE fails fast under writer contention instead of hanging.
50
50
  db.exec('BEGIN IMMEDIATE');
51
51
  try {
52
+ // Re-check under the write lock: another process may have applied this
53
+ // migration between our initial read and acquiring the transaction.
54
+ const raced = db
55
+ .prepare(`SELECT 1 FROM schema_migrations WHERE version = ?`)
56
+ .get(version);
57
+ if (raced) {
58
+ db.exec('ROLLBACK');
59
+ continue;
60
+ }
52
61
  db.exec(sql);
53
62
  insert.run(version, file, Date.now());
54
63
  db.exec('COMMIT');
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export interface LlmCaller {
12
12
  }>;
13
13
  }
14
14
  export declare function claudeCodeCaller(): LlmCaller;
15
+ export declare function codexCliCaller(codexModel?: string): LlmCaller;
15
16
  export declare function anthropicCaller(client: Anthropic): LlmCaller;
16
17
  export interface ExtractOptions {
17
18
  model: string;
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/core/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAGL,KAAK,oBAAoB,EAE1B,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1E;AAED,wBAAgB,gBAAgB,IAAI,SAAS,CA6D5C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAiB5D;AAyDD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,OAAO,CAC3B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,iBAAiB,CAAC,CA2D5B;AAMD,wBAAgB,mBAAmB,CACjC,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,oBAAoB,EACjC,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAKR"}
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/core/extractor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAGL,KAAK,oBAAoB,EAE1B,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1E;AAsDD,wBAAgB,gBAAgB,IAAI,SAAS,CAyB5C;AAKD,wBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAW7D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAiB5D;AAwED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,OAAO,CAC3B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,iBAAiB,CAAC,CA8D5B;AAMD,wBAAgB,mBAAmB,CACjC,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,oBAAoB,EACjC,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAKR"}
@@ -1,53 +1,84 @@
1
+ import { tmpdir } from 'node:os';
1
2
  import { ExtractorResponseSchema, ObservationKind, } from './schema.js';
2
3
  import { countTokens } from './tokens.js';
4
+ // Runs an agent CLI in one-shot mode and resolves with its stdout.
5
+ // SOMTUM_IN_HOOK tells nested somtum hooks (fired when the child agent's own
6
+ // session ends) to exit immediately; without it, post_session → agent CLI →
7
+ // post_session → ... deadlocks.
8
+ async function runCli({ command, args, input, cwd }) {
9
+ const { spawn } = await import('node:child_process');
10
+ const TIMEOUT_MS = 60_000;
11
+ return new Promise((resolve, reject) => {
12
+ const child = spawn(command, args, {
13
+ cwd,
14
+ stdio: ['pipe', 'pipe', 'pipe'],
15
+ env: { ...process.env, SOMTUM_IN_HOOK: '1' },
16
+ });
17
+ const stdoutChunks = [];
18
+ const stderrChunks = [];
19
+ child.stdout.on('data', (chunk) => stdoutChunks.push(chunk));
20
+ child.stderr.on('data', (chunk) => stderrChunks.push(chunk));
21
+ const timer = setTimeout(() => {
22
+ child.kill();
23
+ reject(new Error(`${command} CLI timed out after ${TIMEOUT_MS / 1000}s`));
24
+ }, TIMEOUT_MS);
25
+ child.on('error', (err) => {
26
+ clearTimeout(timer);
27
+ reject(err.code === 'ENOENT' ? new Error(`${command} CLI not found on PATH`) : err);
28
+ });
29
+ child.on('close', (code) => {
30
+ clearTimeout(timer);
31
+ if (code !== 0) {
32
+ const errText = Buffer.concat(stderrChunks).toString('utf8').trim();
33
+ reject(new Error(`${command} exited ${code}: ${errText || '(no stderr)'}`));
34
+ return;
35
+ }
36
+ resolve(Buffer.concat(stdoutChunks).toString('utf8').trim());
37
+ });
38
+ child.stdin.write(input, 'utf8');
39
+ child.stdin.end();
40
+ });
41
+ }
3
42
  export function claudeCodeCaller() {
43
+ return {
44
+ async complete({ model, system, user }) {
45
+ // Pass the extraction model through — otherwise the CLI falls back to
46
+ // the user's default model (often Opus), making extraction ~10× pricier.
47
+ // The remaining flags strip Claude Code's own system prompt, tool schemas,
48
+ // MCP servers and CLAUDE.md: ~37k tokens of overhead on every call otherwise.
49
+ const args = [
50
+ '-p',
51
+ '--output-format',
52
+ 'text',
53
+ '--system-prompt',
54
+ system,
55
+ '--tools',
56
+ '',
57
+ '--strict-mcp-config',
58
+ '--setting-sources',
59
+ '',
60
+ '--no-session-persistence',
61
+ ];
62
+ if (model && model.trim().length > 0)
63
+ args.push('--model', model);
64
+ const text = await runCli({ command: 'claude', args, input: user });
65
+ return { text, inputTokens: countTokens(system + user), outputTokens: countTokens(text) };
66
+ },
67
+ };
68
+ }
69
+ // `codex exec` has no system-prompt flag, so the instructions travel inline.
70
+ // It runs from the OS temp dir so the project's AGENTS.md is not loaded, and
71
+ // uses its own model setting: extraction.model names a Claude model.
72
+ export function codexCliCaller(codexModel) {
4
73
  return {
5
74
  async complete({ system, user }) {
6
- const { spawn } = await import('node:child_process');
7
- // Combine system + user since the claude CLI doesn't expose a --system flag.
8
- // Claude handles <system>…</system> XML delimiters correctly.
9
- const fullPrompt = `<system>\n${system}\n</system>\n\n${user}`;
10
- return new Promise((resolve, reject) => {
11
- // SOMTUM_IN_HOOK tells any nested somtum hook invocations (triggered when
12
- // the child claude process fires SessionEnd after completing) to exit
13
- // immediately. Without this, the child's SessionEnd hook would call
14
- // somtum hook post_session → claude -p → ... causing a deadlock.
15
- const child = spawn('claude', ['-p', '--output-format', 'text'], {
16
- stdio: ['pipe', 'pipe', 'pipe'],
17
- env: { ...process.env, SOMTUM_IN_HOOK: '1' },
18
- });
19
- const stdoutChunks = [];
20
- const stderrChunks = [];
21
- child.stdout.on('data', (chunk) => stdoutChunks.push(chunk));
22
- child.stderr.on('data', (chunk) => stderrChunks.push(chunk));
23
- const timer = setTimeout(() => {
24
- child.kill();
25
- reject(new Error('claude CLI timed out after 60s'));
26
- }, 60_000);
27
- child.on('error', (err) => {
28
- clearTimeout(timer);
29
- reject(err.code === 'ENOENT'
30
- ? new Error('Neither ANTHROPIC_API_KEY nor the claude CLI is available. ' +
31
- 'Set ANTHROPIC_API_KEY in your shell profile or install Claude Code.')
32
- : err);
33
- });
34
- child.on('close', (code) => {
35
- clearTimeout(timer);
36
- if (code !== 0) {
37
- const errText = Buffer.concat(stderrChunks).toString('utf8').trim();
38
- reject(new Error(`claude exited ${code}: ${errText || '(no stderr)'}`));
39
- return;
40
- }
41
- const text = Buffer.concat(stdoutChunks).toString('utf8').trim();
42
- resolve({
43
- text,
44
- inputTokens: countTokens(system + user),
45
- outputTokens: countTokens(text),
46
- });
47
- });
48
- child.stdin.write(fullPrompt, 'utf8');
49
- child.stdin.end();
50
- });
75
+ const args = ['exec', '--ephemeral', '--skip-git-repo-check', '--sandbox', 'read-only'];
76
+ if (codexModel && codexModel.trim().length > 0)
77
+ args.push('--model', codexModel);
78
+ args.push('-');
79
+ const input = `<instructions>\n${system}\n</instructions>\n\n${user}`;
80
+ const text = await runCli({ command: 'codex', args, input, cwd: tmpdir() });
81
+ return { text, inputTokens: countTokens(input), outputTokens: countTokens(text) };
51
82
  },
52
83
  };
53
84
  }
@@ -91,7 +122,7 @@ const JSON_SCHEMA_HINT = {
91
122
  };
92
123
  const SYSTEM_PROMPT = `You are Somtum's session extractor.
93
124
 
94
- Read the provided Claude Code session transcript and return durable observations:
125
+ Read the provided coding-agent session transcript and return durable observations:
95
126
 
96
127
  EXTRACT:
97
128
  - Decisions with rationale ("we use pnpm because X")
@@ -122,6 +153,20 @@ function extractJsonBlob(text) {
122
153
  return fence[1].trim();
123
154
  return trimmed;
124
155
  }
156
+ // Without delimiters and a closing instruction, a transcript that ends
157
+ // mid-task gets continued: the model role-plays the agent and emits tool calls
158
+ // instead of JSON. Stating the cap also stops it writing observations we drop.
159
+ function transcriptPrompt(transcript, maxObservations) {
160
+ return [
161
+ '<transcript>',
162
+ transcript,
163
+ '</transcript>',
164
+ '',
165
+ 'The transcript above is a finished session to analyze, not a conversation to continue.',
166
+ 'Do not act as the assistant in it.',
167
+ `Return only the JSON object described in the system prompt, with at most ${maxObservations} observations: the most durable ones.`,
168
+ ].join('\n');
169
+ }
125
170
  export async function extract(transcript, caller, options) {
126
171
  let attempt = 0;
127
172
  let lastError;
@@ -132,7 +177,7 @@ export async function extract(transcript, caller, options) {
132
177
  // On retry: send only the bad output + error, not the full transcript again.
133
178
  // Re-sending the transcript would double the token cost of every retry.
134
179
  const userPrompt = attempt === 0
135
- ? `Transcript:\n\n${transcript}`
180
+ ? transcriptPrompt(transcript, options.maxObservations)
136
181
  : `Your previous response failed schema validation.\n\nError: ${lastError}\n\nYour previous output:\n${lastRawOutput}\n\nReturn valid JSON only, matching the schema in the system prompt.`;
137
182
  const { text, inputTokens, outputTokens } = await caller.complete({
138
183
  model: options.model,
@@ -149,6 +194,7 @@ export async function extract(transcript, caller, options) {
149
194
  }
150
195
  catch (err) {
151
196
  lastError = `JSON.parse failed: ${err.message}`;
197
+ console.warn(`[somtum] extraction attempt ${attempt + 1} returned non-JSON: ${text.slice(0, 120)}`);
152
198
  attempt += 1;
153
199
  continue;
154
200
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/core/extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/core/extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type LlmCaller } from './extractor.js';
2
+ import type { Config } from './schema.js';
3
+ export type Backend = 'anthropic' | 'claude-cli' | 'codex-cli';
4
+ export declare function pickBackend(config: Config, env?: NodeJS.ProcessEnv, has?: (bin: string) => boolean): Backend | null;
5
+ export declare function callerFor(backend: Backend, config: Config): LlmCaller;
6
+ export declare const NO_BACKEND_MESSAGE: string;
7
+ //# sourceMappingURL=llm_backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm_backend.d.ts","sourceRoot":"","sources":["../../src/core/llm_backend.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;AAiB/D,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,GAAG,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAgB,GACrC,OAAO,GAAG,IAAI,CAOhB;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAWrE;AAED,eAAO,MAAM,kBAAkB,QAEQ,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import Anthropic from '@anthropic-ai/sdk';
3
+ import { anthropicCaller, claudeCodeCaller, codexCliCaller } from './extractor.js';
4
+ function onPath(bin) {
5
+ try {
6
+ execFileSync('which', [bin], { stdio: 'ignore' });
7
+ return true;
8
+ }
9
+ catch {
10
+ return false;
11
+ }
12
+ }
13
+ // ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL is how Anthropic-compatible
14
+ // providers (GLM, proxies) are configured; the SDK reads both itself.
15
+ function hasAnthropicCredentials(env) {
16
+ return Boolean(env['ANTHROPIC_API_KEY']?.trim() || env['ANTHROPIC_AUTH_TOKEN']?.trim());
17
+ }
18
+ export function pickBackend(config, env = process.env, has = onPath) {
19
+ const wanted = config.extraction.backend;
20
+ if (wanted !== 'auto')
21
+ return wanted;
22
+ if (hasAnthropicCredentials(env))
23
+ return 'anthropic';
24
+ if (has('claude'))
25
+ return 'claude-cli';
26
+ if (has('codex'))
27
+ return 'codex-cli';
28
+ return null;
29
+ }
30
+ export function callerFor(backend, config) {
31
+ switch (backend) {
32
+ case 'anthropic':
33
+ // 25s per call: the SDK default of 600s lets one slow request hold the
34
+ // hook open for 10 minutes.
35
+ return anthropicCaller(new Anthropic({ timeout: 25_000 }));
36
+ case 'claude-cli':
37
+ return claudeCodeCaller();
38
+ case 'codex-cli':
39
+ return codexCliCaller(config.extraction.codex_model);
40
+ }
41
+ }
42
+ export const NO_BACKEND_MESSAGE = 'No extraction backend: set ANTHROPIC_API_KEY (or ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL), ' +
43
+ 'or install the claude or codex CLI.';
44
+ //# sourceMappingURL=llm_backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm_backend.js","sourceRoot":"","sources":["../../src/core/llm_backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAKnG,SAAS,MAAM,CAAC,GAAW;IACzB,IAAI,CAAC;QACH,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,sEAAsE;AACtE,SAAS,uBAAuB,CAAC,GAAsB;IACrD,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,MAAc,EACd,MAAyB,OAAO,CAAC,GAAG,EACpC,MAAgC,MAAM;IAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;IACzC,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,uBAAuB,CAAC,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IACrD,IAAI,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,YAAY,CAAC;IACvC,IAAI,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,WAAW,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAgB,EAAE,MAAc;IACxD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,WAAW;YACd,uEAAuE;YACvE,4BAA4B;YAC5B,OAAO,eAAe,CAAC,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7D,KAAK,YAAY;YACf,OAAO,gBAAgB,EAAE,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAC7B,+FAA+F;IAC/F,qCAAqC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"memory_files.d.ts","sourceRoot":"","sources":["../../src/core/memory_files.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAmB/C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CASjF;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtD"}
1
+ {"version":3,"file":"memory_files.d.ts","sourceRoot":"","sources":["../../src/core/memory_files.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAmB/C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CASjF;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtD"}
@@ -1,6 +1,5 @@
1
- // Writes individual per-observation markdown files as the human-readable mirror
2
- // described in SPEC.md §5.2: memories/<YYYY-MM>/<ulid>.md
3
- // SQLite is the source of truth; these files are derived and regenerated on import.
1
+ // Human-readable mirror: memories/<YYYY-MM>/<ulid>.md
2
+ // SQLite is the source of truth; these are derived and regenerated on import.
4
3
  import { writeFileSync, mkdirSync, existsSync } from 'node:fs';
5
4
  import { join } from 'node:path';
6
5
  function isoMonth(ms) {
@@ -1 +1 @@
1
- {"version":3,"file":"memory_files.js","sourceRoot":"","sources":["../../src/core/memory_files.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,0DAA0D;AAC1D,oFAAoF;AACpF,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,SAAS,QAAQ,CAAC,EAAU;IAC1B,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY;AAC7D,CAAC;AAED,SAAS,WAAW,CAAC,GAAgB;IACnC,MAAM,KAAK,GAAa,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACjE,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9F,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3F,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAgB,EAAE,WAAmB;IACvE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,KAAK,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC;IACzE,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,OAAO,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"memory_files.js","sourceRoot":"","sources":["../../src/core/memory_files.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,8EAA8E;AAC9E,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,SAAS,QAAQ,CAAC,EAAU;IAC1B,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY;AAC7D,CAAC;AAED,SAAS,WAAW,CAAC,GAAgB;IACnC,MAAM,KAAK,GAAa,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACjE,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9F,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3F,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAgB,EAAE,WAAmB;IACvE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,KAAK,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC;IACzE,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,OAAO,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACtC,CAAC"}