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.
- package/README.md +66 -78
- package/dist/agents/claude_code.d.ts +3 -0
- package/dist/agents/claude_code.d.ts.map +1 -0
- package/dist/agents/claude_code.js +112 -0
- package/dist/agents/claude_code.js.map +1 -0
- package/dist/agents/codex.d.ts +3 -0
- package/dist/agents/codex.d.ts.map +1 -0
- package/dist/agents/codex.js +173 -0
- package/dist/agents/codex.js.map +1 -0
- package/dist/agents/index.d.ts +7 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +24 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/shared.d.ts +3 -0
- package/dist/agents/shared.d.ts.map +1 -0
- package/dist/agents/shared.js +18 -0
- package/dist/agents/shared.js.map +1 -0
- package/dist/agents/types.d.ts +11 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +41 -56
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/hook.d.ts.map +1 -1
- package/dist/cli/hook.js +2 -5
- package/dist/cli/hook.js.map +1 -1
- package/dist/cli/index.js +3 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +19 -0
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +40 -31
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/init_codex.d.ts +12 -0
- package/dist/cli/init_codex.d.ts.map +1 -0
- package/dist/cli/init_codex.js +53 -0
- package/dist/cli/init_codex.js.map +1 -0
- package/dist/cli/suggest_claude_md.js.map +1 -1
- package/dist/cli/ui.d.ts +1 -1
- package/dist/cli/ui.d.ts.map +1 -1
- package/dist/cli/ui.js +1 -1
- package/dist/cli/ui.js.map +1 -1
- package/dist/core/cache.d.ts +5 -0
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/cache.js +17 -0
- package/dist/core/cache.js.map +1 -1
- package/dist/core/db.d.ts.map +1 -1
- package/dist/core/db.js +9 -0
- package/dist/core/db.js.map +1 -1
- package/dist/core/extractor.d.ts +1 -0
- package/dist/core/extractor.d.ts.map +1 -1
- package/dist/core/extractor.js +93 -47
- package/dist/core/extractor.js.map +1 -1
- package/dist/core/llm_backend.d.ts +7 -0
- package/dist/core/llm_backend.d.ts.map +1 -0
- package/dist/core/llm_backend.js +44 -0
- package/dist/core/llm_backend.js.map +1 -0
- package/dist/core/memory_files.d.ts.map +1 -1
- package/dist/core/memory_files.js +2 -3
- package/dist/core/memory_files.js.map +1 -1
- package/dist/core/schema.d.ts +14 -4
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +4 -0
- package/dist/core/schema.js.map +1 -1
- package/dist/core/transcript.d.ts.map +1 -1
- package/dist/core/transcript.js +14 -77
- package/dist/core/transcript.js.map +1 -1
- package/dist/dashboard/index.html +1 -1
- package/dist/hooks/post_session.d.ts +5 -5
- package/dist/hooks/post_session.d.ts.map +1 -1
- package/dist/hooks/post_session.js +48 -38
- package/dist/hooks/post_session.js.map +1 -1
- package/dist/hooks/pre_prompt.d.ts +5 -0
- package/dist/hooks/pre_prompt.d.ts.map +1 -1
- package/dist/hooks/pre_prompt.js +60 -8
- package/dist/hooks/pre_prompt.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -2
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
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":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,
|
|
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
|
|
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
|
package/dist/cli/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW,
|
|
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
|
|
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
|
package/dist/cli/ui.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/core/cache.d.ts
CHANGED
|
@@ -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
|
package/dist/core/cache.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/core/cache.js
CHANGED
|
@@ -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;
|
package/dist/core/cache.js.map
CHANGED
|
@@ -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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"}
|
package/dist/core/db.d.ts.map
CHANGED
|
@@ -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,
|
|
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');
|
package/dist/core/db.js.map
CHANGED
|
@@ -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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"}
|
package/dist/core/extractor.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/core/extractor.js
CHANGED
|
@@ -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
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
|
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
|
-
?
|
|
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":"
|
|
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":"
|
|
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
|
-
//
|
|
2
|
-
//
|
|
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,
|
|
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"}
|