diff --git a/README.md b/README.md index 40e7d05..bb6b0de 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,11 @@ export EPISODIC_MEMORY_API_TOKEN=your-token # Increase timeout for slow endpoints (milliseconds) export EPISODIC_MEMORY_API_TIMEOUT_MS=3000000 + +# Save SDK session logs for debugging (default: false) +# When enabled, creates .jsonl files in ~/.claude/projects// +# where is based on where the CLI/agent runs from +export EPISODIC_MEMORY_SAVE_SDK_LOGS=true ``` These settings only affect episodic-memory's summarization calls, not your interactive Claude sessions. @@ -153,6 +158,7 @@ These settings only affect episodic-memory's summarization calls, not your inter | Component | Uses custom config? | |-----------|---------------------| | Summarization | Yes (up to 10 calls/sync) | +| SDK session logs | Yes (SAVE_SDK_LOGS only) | | Embeddings | No (local Transformers.js) | | Search | No (local SQLite) | | MCP tools | No | diff --git a/dist/summarizer.js b/dist/summarizer.js index f24cb83..0ec7ff5 100644 --- a/dist/summarizer.js +++ b/dist/summarizer.js @@ -10,6 +10,7 @@ import { SUMMARIZER_CONTEXT_MARKER } from './constants.js'; * - EPISODIC_MEMORY_API_BASE_URL: Custom API endpoint * - EPISODIC_MEMORY_API_TOKEN: Auth token for custom endpoint * - EPISODIC_MEMORY_API_TIMEOUT_MS: Timeout for API calls (default: SDK default) + * - EPISODIC_MEMORY_SAVE_SDK_LOGS: Save SDK session files for debugging (default: false) */ function getApiEnv() { const baseUrl = process.env.EPISODIC_MEMORY_API_BASE_URL; @@ -48,6 +49,7 @@ async function callClaude(prompt, sessionId, useFallback = false) { options: { model, max_tokens: 4096, + persistSession: process.env.EPISODIC_MEMORY_SAVE_SDK_LOGS === 'true', env: getApiEnv(), resume: sessionId, // Don't override systemPrompt when resuming - it uses the original session's prompt diff --git a/src/summarizer.ts b/src/summarizer.ts index 85ba8d0..e4c73c6 100644 --- a/src/summarizer.ts +++ b/src/summarizer.ts @@ -12,6 +12,7 @@ import { SUMMARIZER_CONTEXT_MARKER } from './constants.js'; * - EPISODIC_MEMORY_API_BASE_URL: Custom API endpoint * - EPISODIC_MEMORY_API_TOKEN: Auth token for custom endpoint * - EPISODIC_MEMORY_API_TIMEOUT_MS: Timeout for API calls (default: SDK default) + * - EPISODIC_MEMORY_SAVE_SDK_LOGS: Save SDK session files for debugging (default: false) */ function getApiEnv(): Record | undefined { const baseUrl = process.env.EPISODIC_MEMORY_API_BASE_URL; @@ -56,6 +57,7 @@ async function callClaude(prompt: string, sessionId?: string, useFallback = fals options: { model, max_tokens: 4096, + persistSession: process.env.EPISODIC_MEMORY_SAVE_SDK_LOGS === 'true', env: getApiEnv(), resume: sessionId, // Don't override systemPrompt when resuming - it uses the original session's prompt