@chendpoc/pi-memory 0.1.13 → 0.2.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 -258
- package/UBIQUITOUS_LANGUAGE.md +81 -0
- package/dist/adapters/embed/factory.d.ts +7 -0
- package/dist/adapters/embed/factory.d.ts.map +1 -0
- package/dist/adapters/embed/factory.js +44 -0
- package/dist/adapters/embed/factory.js.map +1 -0
- package/dist/adapters/embed/hash.d.ts +3 -0
- package/dist/adapters/embed/hash.d.ts.map +1 -0
- package/dist/adapters/embed/hash.js +26 -0
- package/dist/adapters/embed/hash.js.map +1 -0
- package/dist/adapters/embed/normalize.d.ts +3 -0
- package/dist/adapters/embed/normalize.d.ts.map +1 -0
- package/dist/adapters/embed/normalize.js +15 -0
- package/dist/adapters/embed/normalize.js.map +1 -0
- package/dist/adapters/embed/ollama.d.ts +8 -0
- package/dist/adapters/embed/ollama.d.ts.map +1 -0
- package/dist/adapters/embed/ollama.js +31 -0
- package/dist/adapters/embed/ollama.js.map +1 -0
- package/dist/adapters/embed/openai.d.ts +8 -0
- package/dist/adapters/embed/openai.d.ts.map +1 -0
- package/dist/adapters/embed/openai.js +30 -0
- package/dist/adapters/embed/openai.js.map +1 -0
- package/dist/adapters/embed/types.d.ts +9 -0
- package/dist/adapters/embed/types.d.ts.map +1 -0
- package/dist/adapters/embed/types.js.map +1 -0
- package/dist/adapters/http.d.ts +13 -0
- package/dist/adapters/http.d.ts.map +1 -0
- package/dist/adapters/http.js +31 -0
- package/dist/adapters/http.js.map +1 -0
- package/dist/adapters/index.d.ts +4 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +4 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/llm/extractText.d.ts +5 -0
- package/dist/adapters/llm/extractText.d.ts.map +1 -0
- package/dist/adapters/llm/extractText.js +7 -0
- package/dist/adapters/llm/extractText.js.map +1 -0
- package/dist/adapters/llm/factory.d.ts +11 -0
- package/dist/adapters/llm/factory.d.ts.map +1 -0
- package/dist/adapters/llm/factory.js +48 -0
- package/dist/adapters/llm/factory.js.map +1 -0
- package/dist/adapters/llm/index.d.ts +8 -0
- package/dist/adapters/llm/index.d.ts.map +1 -0
- package/dist/adapters/llm/index.js +7 -0
- package/dist/adapters/llm/index.js.map +1 -0
- package/dist/adapters/llm/modelSpec.d.ts +10 -0
- package/dist/adapters/llm/modelSpec.d.ts.map +1 -0
- package/dist/adapters/llm/modelSpec.js +21 -0
- package/dist/adapters/llm/modelSpec.js.map +1 -0
- package/dist/adapters/llm/ollama.d.ts +4 -0
- package/dist/adapters/llm/ollama.d.ts.map +1 -0
- package/dist/adapters/llm/ollama.js +32 -0
- package/dist/adapters/llm/ollama.js.map +1 -0
- package/dist/adapters/llm/openai-compat.d.ts +4 -0
- package/dist/adapters/llm/openai-compat.d.ts.map +1 -0
- package/dist/adapters/llm/openai-compat.js +36 -0
- package/dist/adapters/llm/openai-compat.js.map +1 -0
- package/dist/adapters/llm/pi-ai.d.ts +5 -0
- package/dist/adapters/llm/pi-ai.d.ts.map +1 -0
- package/dist/adapters/llm/pi-ai.js +60 -0
- package/dist/adapters/llm/pi-ai.js.map +1 -0
- package/dist/adapters/llm/standalone.d.ts +6 -0
- package/dist/adapters/llm/standalone.d.ts.map +1 -0
- package/dist/adapters/llm/standalone.js +44 -0
- package/dist/adapters/llm/standalone.js.map +1 -0
- package/dist/adapters/llm/types.d.ts +15 -0
- package/dist/adapters/llm/types.d.ts.map +1 -0
- package/dist/adapters/llm/types.js.map +1 -0
- package/dist/cli/init.d.ts +3 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +13 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/jobs.d.ts +32 -0
- package/dist/cli/jobs.d.ts.map +1 -0
- package/dist/cli/jobs.js +100 -0
- package/dist/cli/jobs.js.map +1 -0
- package/dist/cli/log.d.ts +14 -0
- package/dist/cli/log.d.ts.map +1 -0
- package/dist/cli/log.js +32 -0
- package/dist/cli/log.js.map +1 -0
- package/dist/cli/parseArgs.d.ts +35 -0
- package/dist/cli/parseArgs.d.ts.map +1 -0
- package/dist/cli/parseArgs.js +127 -0
- package/dist/cli/parseArgs.js.map +1 -0
- package/dist/cli/status.d.ts +44 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +238 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/theme.d.ts +14 -0
- package/dist/cli/theme.d.ts.map +1 -0
- package/dist/cli/theme.js +20 -0
- package/dist/cli/theme.js.map +1 -0
- package/dist/cli.js +70 -356
- package/dist/cli.js.map +1 -1
- package/dist/commands/index.d.ts +6 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +14 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/parseMemoryStatusArgs.d.ts +3 -0
- package/dist/commands/parseMemoryStatusArgs.d.ts.map +1 -0
- package/dist/commands/parseMemoryStatusArgs.js +15 -0
- package/dist/commands/parseMemoryStatusArgs.js.map +1 -0
- package/dist/commands/parseRememberArgs.d.ts +10 -0
- package/dist/commands/parseRememberArgs.d.ts.map +1 -0
- package/dist/commands/parseRememberArgs.js +46 -0
- package/dist/commands/parseRememberArgs.js.map +1 -0
- package/dist/commands/remember.d.ts +8 -0
- package/dist/commands/remember.d.ts.map +1 -0
- package/dist/commands/remember.js +30 -0
- package/dist/commands/remember.js.map +1 -0
- package/dist/commands/status.d.ts +10 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +81 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/types.d.ts +10 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +2 -0
- package/dist/{consolidation → commands}/types.js.map +1 -1
- package/dist/compact/index.d.ts +5 -0
- package/dist/compact/index.d.ts.map +1 -0
- package/dist/compact/index.js +5 -0
- package/dist/compact/index.js.map +1 -0
- package/dist/compact/parseMemoryExport.d.ts +6 -0
- package/dist/compact/parseMemoryExport.d.ts.map +1 -0
- package/dist/compact/parseMemoryExport.js +62 -0
- package/dist/compact/parseMemoryExport.js.map +1 -0
- package/dist/compact/register.d.ts +10 -0
- package/dist/compact/register.d.ts.map +1 -0
- package/dist/compact/register.js +47 -0
- package/dist/compact/register.js.map +1 -0
- package/dist/compact/runSummary.d.ts +6 -0
- package/dist/compact/runSummary.d.ts.map +1 -0
- package/dist/compact/runSummary.js +29 -0
- package/dist/compact/runSummary.js.map +1 -0
- package/dist/compact/subagentDelta.d.ts +6 -0
- package/dist/compact/subagentDelta.d.ts.map +1 -0
- package/dist/compact/subagentDelta.js +13 -0
- package/dist/compact/subagentDelta.js.map +1 -0
- package/dist/compact/summaryPrompt.d.ts +3 -0
- package/dist/compact/summaryPrompt.d.ts.map +1 -0
- package/dist/compact/summaryPrompt.js +41 -0
- package/dist/compact/summaryPrompt.js.map +1 -0
- package/dist/config/agentDir.d.ts +11 -0
- package/dist/config/agentDir.d.ts.map +1 -0
- package/dist/config/agentDir.js +21 -0
- package/dist/config/agentDir.js.map +1 -0
- package/dist/config/chunking.d.ts +7 -0
- package/dist/config/chunking.d.ts.map +1 -0
- package/dist/config/chunking.js +20 -0
- package/dist/config/chunking.js.map +1 -0
- package/dist/config/env.d.ts +28 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +43 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loadEnv.d.ts +10 -0
- package/dist/config/loadEnv.d.ts.map +1 -0
- package/dist/config/loadEnv.js +25 -0
- package/dist/config/loadEnv.js.map +1 -0
- package/dist/config/preflightBudget.d.ts +9 -0
- package/dist/config/preflightBudget.d.ts.map +1 -0
- package/dist/config/preflightBudget.js +16 -0
- package/dist/config/preflightBudget.js.map +1 -0
- package/dist/config/retrieval.d.ts +10 -0
- package/dist/config/retrieval.d.ts.map +1 -0
- package/dist/config/retrieval.js +31 -0
- package/dist/config/retrieval.js.map +1 -0
- package/dist/consolidate/entryKey.d.ts +6 -0
- package/dist/consolidate/entryKey.d.ts.map +1 -0
- package/dist/consolidate/entryKey.js +5 -0
- package/dist/consolidate/entryKey.js.map +1 -0
- package/dist/consolidate/index.d.ts +5 -0
- package/dist/consolidate/index.d.ts.map +1 -0
- package/dist/consolidate/index.js +5 -0
- package/dist/consolidate/index.js.map +1 -0
- package/dist/consolidate/mergeEntries.d.ts +4 -0
- package/dist/consolidate/mergeEntries.d.ts.map +1 -0
- package/dist/consolidate/mergeEntries.js +17 -0
- package/dist/consolidate/mergeEntries.js.map +1 -0
- package/dist/consolidate/mergePrompt.d.ts +4 -0
- package/dist/consolidate/mergePrompt.d.ts.map +1 -0
- package/dist/consolidate/mergePrompt.js +40 -0
- package/dist/consolidate/mergePrompt.js.map +1 -0
- package/dist/consolidate/mergeWithLlm.d.ts +4 -0
- package/dist/consolidate/mergeWithLlm.d.ts.map +1 -0
- package/dist/consolidate/mergeWithLlm.js +27 -0
- package/dist/consolidate/mergeWithLlm.js.map +1 -0
- package/dist/consolidate/runJob.d.ts +29 -0
- package/dist/consolidate/runJob.d.ts.map +1 -0
- package/dist/consolidate/runJob.js +48 -0
- package/dist/consolidate/runJob.js.map +1 -0
- package/dist/consolidate/scheduler.d.ts +18 -0
- package/dist/consolidate/scheduler.d.ts.map +1 -0
- package/dist/consolidate/scheduler.js +32 -0
- package/dist/consolidate/scheduler.js.map +1 -0
- package/dist/constants/chunking.d.ts +7 -0
- package/dist/constants/chunking.d.ts.map +1 -0
- package/dist/constants/chunking.js +7 -0
- package/dist/constants/chunking.js.map +1 -0
- package/dist/constants/env.d.ts +44 -0
- package/dist/constants/env.d.ts.map +1 -0
- package/dist/constants/env.js +49 -0
- package/dist/constants/env.js.map +1 -0
- package/dist/constants/index.d.ts +8 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +8 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/memory.d.ts +17 -0
- package/dist/constants/memory.d.ts.map +1 -0
- package/dist/constants/memory.js +16 -0
- package/dist/constants/memory.js.map +1 -0
- package/dist/constants/paths.d.ts +23 -0
- package/dist/constants/paths.d.ts.map +1 -0
- package/dist/constants/paths.js +23 -0
- package/dist/constants/paths.js.map +1 -0
- package/dist/constants/preflight.d.ts +10 -0
- package/dist/constants/preflight.d.ts.map +1 -0
- package/dist/constants/preflight.js +10 -0
- package/dist/constants/preflight.js.map +1 -0
- package/dist/constants/retrieval.d.ts +10 -0
- package/dist/constants/retrieval.d.ts.map +1 -0
- package/dist/constants/retrieval.js +10 -0
- package/dist/constants/retrieval.js.map +1 -0
- package/dist/constants/security.d.ts +5 -0
- package/dist/constants/security.d.ts.map +1 -0
- package/dist/constants/security.js +5 -0
- package/dist/constants/security.js.map +1 -0
- package/dist/constants/timing.d.ts +36 -0
- package/dist/constants/timing.d.ts.map +1 -0
- package/dist/constants/timing.js +36 -0
- package/dist/constants/timing.js.map +1 -0
- package/dist/index.d.ts +11 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -28
- package/dist/index.js.map +1 -1
- package/dist/init/workspace.d.ts +15 -0
- package/dist/init/workspace.d.ts.map +1 -0
- package/dist/init/workspace.js +32 -0
- package/dist/init/workspace.js.map +1 -0
- package/dist/ipc/jsonlFramer.d.ts +9 -0
- package/dist/ipc/jsonlFramer.d.ts.map +1 -0
- package/dist/ipc/jsonlFramer.js +26 -0
- package/dist/ipc/jsonlFramer.js.map +1 -0
- package/dist/pi-extension.d.ts +0 -2
- package/dist/pi-extension.d.ts.map +1 -1
- package/dist/pi-extension.js +161 -520
- package/dist/pi-extension.js.map +1 -1
- package/dist/preflight/episodic.d.ts +20 -0
- package/dist/preflight/episodic.d.ts.map +1 -0
- package/dist/preflight/episodic.js +109 -0
- package/dist/preflight/episodic.js.map +1 -0
- package/dist/preflight/queryCache.d.ts +15 -0
- package/dist/preflight/queryCache.d.ts.map +1 -0
- package/dist/preflight/queryCache.js +46 -0
- package/dist/preflight/queryCache.js.map +1 -0
- package/dist/preflight/queryIntent.d.ts +20 -0
- package/dist/preflight/queryIntent.d.ts.map +1 -0
- package/dist/preflight/queryIntent.js +75 -0
- package/dist/preflight/queryIntent.js.map +1 -0
- package/dist/preflight/render.d.ts +8 -33
- package/dist/preflight/render.d.ts.map +1 -1
- package/dist/preflight/render.js +29 -126
- package/dist/preflight/render.js.map +1 -1
- package/dist/preflight/session.d.ts +3 -0
- package/dist/preflight/session.d.ts.map +1 -0
- package/dist/preflight/session.js +6 -0
- package/dist/preflight/session.js.map +1 -0
- package/dist/preflight/strip.d.ts +0 -8
- package/dist/preflight/strip.d.ts.map +1 -1
- package/dist/preflight/strip.js +2 -11
- package/dist/preflight/strip.js.map +1 -1
- package/dist/shutdown/enqueue.d.ts +12 -0
- package/dist/shutdown/enqueue.d.ts.map +1 -0
- package/dist/shutdown/enqueue.js +14 -0
- package/dist/shutdown/enqueue.js.map +1 -0
- package/dist/shutdown/extractPrompt.d.ts +4 -0
- package/dist/shutdown/extractPrompt.d.ts.map +1 -0
- package/dist/shutdown/extractPrompt.js +29 -0
- package/dist/shutdown/extractPrompt.js.map +1 -0
- package/dist/shutdown/processed.d.ts +9 -0
- package/dist/shutdown/processed.d.ts.map +1 -0
- package/dist/shutdown/processed.js +28 -0
- package/dist/shutdown/processed.js.map +1 -0
- package/dist/shutdown/readQueue.d.ts +4 -0
- package/dist/shutdown/readQueue.d.ts.map +1 -0
- package/dist/shutdown/readQueue.js +26 -0
- package/dist/shutdown/readQueue.js.map +1 -0
- package/dist/shutdown/runDrainJob.d.ts +26 -0
- package/dist/shutdown/runDrainJob.d.ts.map +1 -0
- package/dist/shutdown/runDrainJob.js +143 -0
- package/dist/shutdown/runDrainJob.js.map +1 -0
- package/dist/shutdown/sessionReader.d.ts +6 -0
- package/dist/shutdown/sessionReader.d.ts.map +1 -0
- package/dist/shutdown/sessionReader.js +44 -0
- package/dist/shutdown/sessionReader.js.map +1 -0
- package/dist/sidecar/client.d.ts +17 -16
- package/dist/sidecar/client.d.ts.map +1 -1
- package/dist/sidecar/client.js +64 -100
- package/dist/sidecar/client.js.map +1 -1
- package/dist/sidecar/paths.d.ts +8 -0
- package/dist/sidecar/paths.d.ts.map +1 -0
- package/dist/sidecar/paths.js +23 -0
- package/dist/sidecar/paths.js.map +1 -0
- package/dist/sidecar/protocol.d.ts +54 -0
- package/dist/sidecar/protocol.d.ts.map +1 -0
- package/dist/sidecar/protocol.js +4 -0
- package/dist/sidecar/protocol.js.map +1 -0
- package/dist/sidecar/reindexBridge.d.ts +13 -0
- package/dist/sidecar/reindexBridge.d.ts.map +1 -0
- package/dist/sidecar/reindexBridge.js +37 -0
- package/dist/sidecar/reindexBridge.js.map +1 -0
- package/dist/sidecar/server/process.d.ts +2 -0
- package/dist/sidecar/server/process.d.ts.map +1 -0
- package/dist/sidecar/server/process.js +22 -0
- package/dist/sidecar/server/process.js.map +1 -0
- package/dist/sidecar/server/query.d.ts +8 -0
- package/dist/sidecar/server/query.d.ts.map +1 -0
- package/dist/sidecar/server/query.js +7 -0
- package/dist/sidecar/server/query.js.map +1 -0
- package/dist/sidecar/server/reindex.d.ts +8 -0
- package/dist/sidecar/server/reindex.d.ts.map +1 -0
- package/dist/sidecar/server/reindex.js +12 -0
- package/dist/sidecar/server/reindex.js.map +1 -0
- package/dist/sidecar/server/server.d.ts +11 -0
- package/dist/sidecar/server/server.d.ts.map +1 -0
- package/dist/sidecar/server/server.js +76 -0
- package/dist/sidecar/server/server.js.map +1 -0
- package/dist/sidecar/server/stats.d.ts +8 -0
- package/dist/sidecar/server/stats.d.ts.map +1 -0
- package/dist/sidecar/server/stats.js +18 -0
- package/dist/sidecar/server/stats.js.map +1 -0
- package/dist/sidecar/server/vec/embedder.d.ts +2 -0
- package/dist/sidecar/server/vec/embedder.d.ts.map +1 -0
- package/dist/sidecar/server/vec/embedder.js +2 -0
- package/dist/sidecar/server/vec/embedder.js.map +1 -0
- package/dist/sidecar/server/vec/mmr.d.ts +13 -0
- package/dist/sidecar/server/vec/mmr.d.ts.map +1 -0
- package/dist/sidecar/server/vec/mmr.js +36 -0
- package/dist/sidecar/server/vec/mmr.js.map +1 -0
- package/dist/sidecar/server/vec/store.d.ts +30 -0
- package/dist/sidecar/server/vec/store.d.ts.map +1 -0
- package/dist/sidecar/server/vec/store.js +179 -0
- package/dist/sidecar/server/vec/store.js.map +1 -0
- package/dist/sidecar/sidecarManager.d.ts +10 -0
- package/dist/sidecar/sidecarManager.d.ts.map +1 -0
- package/dist/sidecar/sidecarManager.js +111 -0
- package/dist/sidecar/sidecarManager.js.map +1 -0
- package/dist/sidecar/utils.d.ts +3 -0
- package/dist/sidecar/utils.d.ts.map +1 -0
- package/dist/sidecar/utils.js +27 -0
- package/dist/sidecar/utils.js.map +1 -0
- package/dist/store/backend.d.ts +12 -0
- package/dist/store/backend.d.ts.map +1 -0
- package/dist/store/backend.js +47 -0
- package/dist/store/backend.js.map +1 -0
- package/dist/store/index.d.ts +6 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +6 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/indexChunks.d.ts +9 -0
- package/dist/store/indexChunks.d.ts.map +1 -0
- package/dist/store/indexChunks.js +78 -0
- package/dist/store/indexChunks.js.map +1 -0
- package/dist/store/markdown/format.d.ts +5 -0
- package/dist/store/markdown/format.d.ts.map +1 -0
- package/dist/store/markdown/format.js +14 -0
- package/dist/store/markdown/format.js.map +1 -0
- package/dist/store/markdown/parse.d.ts +5 -0
- package/dist/store/markdown/parse.d.ts.map +1 -0
- package/dist/store/markdown/parse.js +57 -0
- package/dist/store/markdown/parse.js.map +1 -0
- package/dist/store/markdown/template.d.ts +3 -0
- package/dist/store/markdown/template.d.ts.map +1 -0
- package/dist/store/markdown/template.js +22 -0
- package/dist/store/markdown/template.js.map +1 -0
- package/dist/store/memoryStore.d.ts +69 -0
- package/dist/store/memoryStore.d.ts.map +1 -0
- package/dist/store/memoryStore.js +421 -0
- package/dist/store/memoryStore.js.map +1 -0
- package/dist/store/paths.d.ts +10 -0
- package/dist/store/paths.d.ts.map +1 -0
- package/dist/store/paths.js +19 -0
- package/dist/store/paths.js.map +1 -0
- package/dist/store/types.d.ts +38 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js +3 -0
- package/dist/store/types.js.map +1 -0
- package/dist/ui/memoryStatusWidget.d.ts +20 -0
- package/dist/ui/memoryStatusWidget.d.ts.map +1 -0
- package/dist/ui/memoryStatusWidget.js +51 -0
- package/dist/ui/memoryStatusWidget.js.map +1 -0
- package/dist/utils/debugLog.d.ts +4 -0
- package/dist/utils/debugLog.d.ts.map +1 -0
- package/dist/utils/debugLog.js +14 -0
- package/dist/utils/debugLog.js.map +1 -0
- package/dist/utils/fs.d.ts +26 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +101 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/paths.d.ts +22 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +51 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/platform.d.ts +7 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +18 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/utils/scheduler.d.ts +33 -0
- package/dist/utils/scheduler.d.ts.map +1 -0
- package/dist/utils/scheduler.js +63 -0
- package/dist/utils/scheduler.js.map +1 -0
- package/dist/utils/socket.d.ts +7 -0
- package/dist/utils/socket.d.ts.map +1 -0
- package/dist/utils/socket.js +35 -0
- package/dist/utils/socket.js.map +1 -0
- package/dist/utils/time.d.ts +22 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +42 -0
- package/dist/utils/time.js.map +1 -0
- package/package.json +28 -10
- package/scripts/init-memory-workspace.mjs +62 -0
- package/scripts/path-utils.mjs +12 -0
- package/scripts/platform-fs.mjs +65 -0
- package/scripts/postinstall.mjs +17 -0
- package/src/adapters/embed/factory.ts +50 -0
- package/src/adapters/embed/hash.ts +29 -0
- package/src/adapters/embed/normalize.ts +13 -0
- package/src/adapters/embed/ollama.ts +49 -0
- package/src/adapters/embed/openai.ts +46 -0
- package/src/adapters/embed/types.ts +9 -0
- package/src/adapters/http.ts +42 -0
- package/src/adapters/index.ts +16 -0
- package/src/adapters/llm/extractText.ts +6 -0
- package/src/adapters/llm/factory.ts +60 -0
- package/src/adapters/llm/index.ts +7 -0
- package/src/adapters/llm/modelSpec.ts +39 -0
- package/src/adapters/llm/ollama.ts +42 -0
- package/src/adapters/llm/openai-compat.ts +46 -0
- package/src/adapters/llm/pi-ai.ts +75 -0
- package/src/adapters/llm/standalone.ts +60 -0
- package/src/adapters/llm/types.ts +16 -0
- package/src/cli/init.ts +18 -0
- package/src/cli/jobs.ts +144 -0
- package/src/cli/log.ts +46 -0
- package/src/cli/parseArgs.ts +175 -0
- package/src/cli/status.ts +323 -0
- package/src/cli/theme.ts +26 -0
- package/src/cli.ts +80 -374
- package/src/commands/index.ts +20 -0
- package/src/commands/parseMemoryStatusArgs.ts +11 -0
- package/src/commands/parseRememberArgs.ts +55 -0
- package/src/commands/remember.ts +43 -0
- package/src/commands/status.ts +112 -0
- package/src/commands/types.ts +12 -0
- package/src/compact/index.ts +4 -0
- package/src/compact/parseMemoryExport.ts +71 -0
- package/src/compact/register.ts +57 -0
- package/src/compact/runSummary.ts +42 -0
- package/src/compact/subagentDelta.ts +22 -0
- package/src/compact/summaryPrompt.ts +45 -0
- package/src/config/agentDir.ts +24 -0
- package/src/config/chunking.ts +36 -0
- package/src/config/env.ts +97 -0
- package/src/config/index.ts +6 -0
- package/src/config/loadEnv.ts +26 -0
- package/src/config/preflightBudget.ts +33 -0
- package/src/config/retrieval.ts +50 -0
- package/src/consolidate/entryKey.ts +4 -0
- package/src/consolidate/index.ts +4 -0
- package/src/consolidate/mergeEntries.ts +22 -0
- package/src/consolidate/mergePrompt.ts +46 -0
- package/src/consolidate/mergeWithLlm.ts +39 -0
- package/src/consolidate/runJob.ts +81 -0
- package/src/consolidate/scheduler.ts +54 -0
- package/src/constants/chunking.ts +8 -0
- package/src/constants/env.ts +56 -0
- package/src/constants/index.ts +7 -0
- package/src/constants/memory.ts +22 -0
- package/src/constants/paths.ts +26 -0
- package/src/constants/preflight.ts +13 -0
- package/src/constants/retrieval.ts +10 -0
- package/src/constants/security.ts +5 -0
- package/src/constants/timing.ts +46 -0
- package/src/index.ts +11 -247
- package/src/init/workspace.ts +44 -0
- package/src/ipc/jsonlFramer.ts +29 -0
- package/src/pi-extension.ts +177 -606
- package/src/preflight/episodic.ts +159 -0
- package/src/preflight/queryCache.ts +59 -0
- package/src/preflight/queryIntent.ts +92 -0
- package/src/preflight/render.ts +34 -180
- package/src/preflight/session.ts +7 -0
- package/src/preflight/strip.ts +4 -11
- package/src/shutdown/enqueue.ts +29 -0
- package/src/shutdown/extractPrompt.ts +27 -0
- package/src/shutdown/processed.ts +45 -0
- package/src/shutdown/readQueue.ts +26 -0
- package/src/shutdown/runDrainJob.ts +202 -0
- package/src/shutdown/sessionReader.ts +61 -0
- package/src/sidecar/client.ts +98 -150
- package/src/sidecar/paths.ts +31 -0
- package/src/sidecar/protocol.ts +38 -0
- package/src/sidecar/reindexBridge.ts +52 -0
- package/src/sidecar/server/process.ts +27 -0
- package/src/sidecar/server/query.ts +16 -0
- package/src/sidecar/server/reindex.ts +21 -0
- package/src/sidecar/server/server.ts +105 -0
- package/src/sidecar/server/stats.ts +23 -0
- package/src/sidecar/server/vec/embedder.ts +1 -0
- package/src/sidecar/server/vec/mmr.ts +55 -0
- package/src/sidecar/server/vec/store.ts +232 -0
- package/src/sidecar/sidecarManager.ts +134 -0
- package/src/sidecar/utils.ts +28 -0
- package/src/store/backend.ts +66 -0
- package/src/store/index.ts +5 -0
- package/src/store/indexChunks.ts +89 -0
- package/src/store/markdown/format.ts +16 -0
- package/src/store/markdown/parse.ts +63 -0
- package/src/store/markdown/template.ts +24 -0
- package/src/store/memoryStore.ts +518 -0
- package/src/store/paths.ts +33 -0
- package/src/store/proper-lockfile.d.ts +3 -0
- package/src/store/types.ts +46 -0
- package/src/ui/memoryStatusWidget.ts +80 -0
- package/src/utils/debugLog.ts +22 -0
- package/src/utils/fs.ts +115 -0
- package/src/utils/index.ts +68 -0
- package/src/utils/paths.ts +67 -0
- package/src/utils/platform.ts +20 -0
- package/src/utils/scheduler.ts +98 -0
- package/src/utils/socket.ts +33 -0
- package/src/utils/time.ts +51 -0
- package/templates/MEMORY.md.example +22 -0
- package/dist/adapters/ollamaClient.d.ts +0 -11
- package/dist/adapters/ollamaClient.d.ts.map +0 -1
- package/dist/adapters/ollamaClient.js +0 -122
- package/dist/adapters/ollamaClient.js.map +0 -1
- package/dist/adapters/openaiCompatClient.d.ts +0 -11
- package/dist/adapters/openaiCompatClient.d.ts.map +0 -1
- package/dist/adapters/openaiCompatClient.js +0 -118
- package/dist/adapters/openaiCompatClient.js.map +0 -1
- package/dist/adapters/piComplete.d.ts +0 -17
- package/dist/adapters/piComplete.d.ts.map +0 -1
- package/dist/adapters/piComplete.js +0 -169
- package/dist/adapters/piComplete.js.map +0 -1
- package/dist/bundle/install.d.ts +0 -34
- package/dist/bundle/install.d.ts.map +0 -1
- package/dist/bundle/install.js +0 -183
- package/dist/bundle/install.js.map +0 -1
- package/dist/cache/memoryCaches.d.ts +0 -32
- package/dist/cache/memoryCaches.d.ts.map +0 -1
- package/dist/cache/memoryCaches.js +0 -59
- package/dist/cache/memoryCaches.js.map +0 -1
- package/dist/config.d.ts +0 -55
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -85
- package/dist/config.js.map +0 -1
- package/dist/consolidation/enqueue.d.ts +0 -33
- package/dist/consolidation/enqueue.d.ts.map +0 -1
- package/dist/consolidation/enqueue.js +0 -145
- package/dist/consolidation/enqueue.js.map +0 -1
- package/dist/consolidation/index.d.ts +0 -19
- package/dist/consolidation/index.d.ts.map +0 -1
- package/dist/consolidation/index.js +0 -15
- package/dist/consolidation/index.js.map +0 -1
- package/dist/consolidation/lock.d.ts +0 -5
- package/dist/consolidation/lock.d.ts.map +0 -1
- package/dist/consolidation/lock.js +0 -33
- package/dist/consolidation/lock.js.map +0 -1
- package/dist/consolidation/log.d.ts +0 -8
- package/dist/consolidation/log.d.ts.map +0 -1
- package/dist/consolidation/log.js +0 -32
- package/dist/consolidation/log.js.map +0 -1
- package/dist/consolidation/memoryIndex.d.ts +0 -18
- package/dist/consolidation/memoryIndex.d.ts.map +0 -1
- package/dist/consolidation/memoryIndex.js +0 -100
- package/dist/consolidation/memoryIndex.js.map +0 -1
- package/dist/consolidation/phase2/runPhase2.d.ts +0 -23
- package/dist/consolidation/phase2/runPhase2.d.ts.map +0 -1
- package/dist/consolidation/phase2/runPhase2.js +0 -196
- package/dist/consolidation/phase2/runPhase2.js.map +0 -1
- package/dist/consolidation/scheduler/launchd.d.ts +0 -5
- package/dist/consolidation/scheduler/launchd.d.ts.map +0 -1
- package/dist/consolidation/scheduler/launchd.js +0 -54
- package/dist/consolidation/scheduler/launchd.js.map +0 -1
- package/dist/consolidation/scheduler/runConsolidate.d.ts +0 -26
- package/dist/consolidation/scheduler/runConsolidate.d.ts.map +0 -1
- package/dist/consolidation/scheduler/runConsolidate.js +0 -83
- package/dist/consolidation/scheduler/runConsolidate.js.map +0 -1
- package/dist/consolidation/scheduler/setupSchedule.d.ts +0 -3
- package/dist/consolidation/scheduler/setupSchedule.d.ts.map +0 -1
- package/dist/consolidation/scheduler/setupSchedule.js +0 -79
- package/dist/consolidation/scheduler/setupSchedule.js.map +0 -1
- package/dist/consolidation/scheduler/systemd.d.ts +0 -9
- package/dist/consolidation/scheduler/systemd.d.ts.map +0 -1
- package/dist/consolidation/scheduler/systemd.js +0 -57
- package/dist/consolidation/scheduler/systemd.js.map +0 -1
- package/dist/consolidation/scheduler/types.d.ts +0 -24
- package/dist/consolidation/scheduler/types.d.ts.map +0 -1
- package/dist/consolidation/scheduler/types.js.map +0 -1
- package/dist/consolidation/scope.d.ts +0 -12
- package/dist/consolidation/scope.d.ts.map +0 -1
- package/dist/consolidation/scope.js +0 -51
- package/dist/consolidation/scope.js.map +0 -1
- package/dist/consolidation/stage1/deltaExtract.d.ts +0 -3
- package/dist/consolidation/stage1/deltaExtract.d.ts.map +0 -1
- package/dist/consolidation/stage1/deltaExtract.js +0 -19
- package/dist/consolidation/stage1/deltaExtract.js.map +0 -1
- package/dist/consolidation/stage1/drainQueue.d.ts +0 -21
- package/dist/consolidation/stage1/drainQueue.d.ts.map +0 -1
- package/dist/consolidation/stage1/drainQueue.js +0 -113
- package/dist/consolidation/stage1/drainQueue.js.map +0 -1
- package/dist/consolidation/stage1/extractSession.d.ts +0 -6
- package/dist/consolidation/stage1/extractSession.d.ts.map +0 -1
- package/dist/consolidation/stage1/extractSession.js +0 -47
- package/dist/consolidation/stage1/extractSession.js.map +0 -1
- package/dist/consolidation/stage1/store.d.ts +0 -45
- package/dist/consolidation/stage1/store.d.ts.map +0 -1
- package/dist/consolidation/stage1/store.js +0 -297
- package/dist/consolidation/stage1/store.js.map +0 -1
- package/dist/consolidation/types.d.ts +0 -49
- package/dist/consolidation/types.d.ts.map +0 -1
- package/dist/errclass.d.ts +0 -7
- package/dist/errclass.d.ts.map +0 -1
- package/dist/errclass.js +0 -32
- package/dist/errclass.js.map +0 -1
- package/dist/extension.d.ts +0 -24
- package/dist/extension.d.ts.map +0 -1
- package/dist/extension.js +0 -7
- package/dist/extension.js.map +0 -1
- package/dist/fallback/index.d.ts +0 -11
- package/dist/fallback/index.d.ts.map +0 -1
- package/dist/fallback/index.js +0 -16
- package/dist/fallback/index.js.map +0 -1
- package/dist/fallback/llmRerank.d.ts +0 -19
- package/dist/fallback/llmRerank.d.ts.map +0 -1
- package/dist/fallback/llmRerank.js +0 -68
- package/dist/fallback/llmRerank.js.map +0 -1
- package/dist/fallback/memoryMd.d.ts +0 -6
- package/dist/fallback/memoryMd.d.ts.map +0 -1
- package/dist/fallback/memoryMd.js +0 -35
- package/dist/fallback/memoryMd.js.map +0 -1
- package/dist/fallback/sessionIndex.d.ts +0 -35
- package/dist/fallback/sessionIndex.d.ts.map +0 -1
- package/dist/fallback/sessionIndex.js +0 -239
- package/dist/fallback/sessionIndex.js.map +0 -1
- package/dist/fallback/sessionSearch.d.ts +0 -18
- package/dist/fallback/sessionSearch.d.ts.map +0 -1
- package/dist/fallback/sessionSearch.js +0 -234
- package/dist/fallback/sessionSearch.js.map +0 -1
- package/dist/local/graphQuery.d.ts +0 -31
- package/dist/local/graphQuery.d.ts.map +0 -1
- package/dist/local/graphQuery.js +0 -195
- package/dist/local/graphQuery.js.map +0 -1
- package/dist/paths.d.ts +0 -7
- package/dist/paths.d.ts.map +0 -1
- package/dist/paths.js +0 -26
- package/dist/paths.js.map +0 -1
- package/dist/preflight/detectIntents.d.ts +0 -102
- package/dist/preflight/detectIntents.d.ts.map +0 -1
- package/dist/preflight/detectIntents.js +0 -631
- package/dist/preflight/detectIntents.js.map +0 -1
- package/dist/preflight/hook.d.ts +0 -76
- package/dist/preflight/hook.d.ts.map +0 -1
- package/dist/preflight/hook.js +0 -122
- package/dist/preflight/hook.js.map +0 -1
- package/dist/service.d.ts +0 -72
- package/dist/service.d.ts.map +0 -1
- package/dist/service.js +0 -257
- package/dist/service.js.map +0 -1
- package/dist/session/activeBranch.d.ts +0 -17
- package/dist/session/activeBranch.d.ts.map +0 -1
- package/dist/session/activeBranch.js +0 -251
- package/dist/session/activeBranch.js.map +0 -1
- package/dist/settings.d.ts +0 -41
- package/dist/settings.d.ts.map +0 -1
- package/dist/settings.js +0 -85
- package/dist/settings.js.map +0 -1
- package/dist/sidecar/bundle.d.ts +0 -19
- package/dist/sidecar/bundle.d.ts.map +0 -1
- package/dist/sidecar/bundle.js +0 -39
- package/dist/sidecar/bundle.js.map +0 -1
- package/dist/sidecar/process.d.ts +0 -14
- package/dist/sidecar/process.d.ts.map +0 -1
- package/dist/sidecar/process.js +0 -138
- package/dist/sidecar/process.js.map +0 -1
- package/dist/tools/memoryAppend.d.ts +0 -47
- package/dist/tools/memoryAppend.d.ts.map +0 -1
- package/dist/tools/memoryAppend.js +0 -138
- package/dist/tools/memoryAppend.js.map +0 -1
- package/dist/tools/memoryRecall.d.ts +0 -113
- package/dist/tools/memoryRecall.d.ts.map +0 -1
- package/dist/tools/memoryRecall.js +0 -351
- package/dist/tools/memoryRecall.js.map +0 -1
- package/dist/trainer/bundleBuilder.d.ts +0 -30
- package/dist/trainer/bundleBuilder.d.ts.map +0 -1
- package/dist/trainer/bundleBuilder.js +0 -106
- package/dist/trainer/bundleBuilder.js.map +0 -1
- package/dist/trainer/bundleLoader.d.ts +0 -12
- package/dist/trainer/bundleLoader.d.ts.map +0 -1
- package/dist/trainer/bundleLoader.js +0 -59
- package/dist/trainer/bundleLoader.js.map +0 -1
- package/dist/trainer/deltaMerge.d.ts +0 -38
- package/dist/trainer/deltaMerge.d.ts.map +0 -1
- package/dist/trainer/deltaMerge.js +0 -183
- package/dist/trainer/deltaMerge.js.map +0 -1
- package/dist/trainer/entityResolver.d.ts +0 -27
- package/dist/trainer/entityResolver.d.ts.map +0 -1
- package/dist/trainer/entityResolver.js +0 -92
- package/dist/trainer/entityResolver.js.map +0 -1
- package/dist/trainer/extractFacts.d.ts +0 -67
- package/dist/trainer/extractFacts.d.ts.map +0 -1
- package/dist/trainer/extractFacts.js +0 -213
- package/dist/trainer/extractFacts.js.map +0 -1
- package/dist/trainer/index.d.ts +0 -54
- package/dist/trainer/index.d.ts.map +0 -1
- package/dist/trainer/index.js +0 -82
- package/dist/trainer/index.js.map +0 -1
- package/dist/trainer/llmExtractor.d.ts +0 -16
- package/dist/trainer/llmExtractor.d.ts.map +0 -1
- package/dist/trainer/llmExtractor.js +0 -146
- package/dist/trainer/llmExtractor.js.map +0 -1
- package/dist/trainer/marker.d.ts +0 -10
- package/dist/trainer/marker.d.ts.map +0 -1
- package/dist/trainer/marker.js +0 -28
- package/dist/trainer/marker.js.map +0 -1
- package/dist/trainer/scheduler.d.ts +0 -33
- package/dist/trainer/scheduler.d.ts.map +0 -1
- package/dist/trainer/scheduler.js +0 -73
- package/dist/trainer/scheduler.js.map +0 -1
- package/dist/trainer/sessionLoader.d.ts +0 -26
- package/dist/trainer/sessionLoader.d.ts.map +0 -1
- package/dist/trainer/sessionLoader.js +0 -145
- package/dist/trainer/sessionLoader.js.map +0 -1
- package/dist/types.d.ts +0 -135
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -8
- package/dist/types.js.map +0 -1
- package/src/adapters/ollamaClient.ts +0 -179
- package/src/adapters/openaiCompatClient.ts +0 -155
- package/src/adapters/piComplete.ts +0 -233
- package/src/bundle/install.ts +0 -206
- package/src/cache/memoryCaches.ts +0 -72
- package/src/config.ts +0 -180
- package/src/consolidation/enqueue.ts +0 -205
- package/src/consolidation/index.ts +0 -90
- package/src/consolidation/lock.ts +0 -41
- package/src/consolidation/log.ts +0 -43
- package/src/consolidation/memoryIndex.ts +0 -127
- package/src/consolidation/phase2/runPhase2.ts +0 -255
- package/src/consolidation/scheduler/launchd.ts +0 -62
- package/src/consolidation/scheduler/runConsolidate.ts +0 -115
- package/src/consolidation/scheduler/setupSchedule.ts +0 -106
- package/src/consolidation/scheduler/systemd.ts +0 -78
- package/src/consolidation/scheduler/types.ts +0 -27
- package/src/consolidation/scope.ts +0 -58
- package/src/consolidation/stage1/deltaExtract.ts +0 -29
- package/src/consolidation/stage1/drainQueue.ts +0 -143
- package/src/consolidation/stage1/extractSession.ts +0 -58
- package/src/consolidation/stage1/store.ts +0 -411
- package/src/consolidation/types.ts +0 -52
- package/src/errclass.ts +0 -37
- package/src/extension.ts +0 -23
- package/src/fallback/index.ts +0 -24
- package/src/fallback/llmRerank.ts +0 -97
- package/src/fallback/memoryMd.ts +0 -36
- package/src/fallback/sessionIndex.ts +0 -290
- package/src/fallback/sessionSearch.ts +0 -261
- package/src/local/graphQuery.ts +0 -252
- package/src/paths.ts +0 -28
- package/src/preflight/detectIntents.ts +0 -660
- package/src/preflight/hook.ts +0 -213
- package/src/service.ts +0 -306
- package/src/session/activeBranch.ts +0 -294
- package/src/settings.ts +0 -161
- package/src/sidecar/bundle.ts +0 -52
- package/src/sidecar/process.ts +0 -160
- package/src/tools/memoryAppend.ts +0 -166
- package/src/tools/memoryRecall.ts +0 -388
- package/src/trainer/bundleBuilder.ts +0 -192
- package/src/trainer/bundleLoader.ts +0 -105
- package/src/trainer/deltaMerge.ts +0 -221
- package/src/trainer/entityResolver.ts +0 -140
- package/src/trainer/extractFacts.ts +0 -312
- package/src/trainer/index.ts +0 -147
- package/src/trainer/llmExtractor.ts +0 -206
- package/src/trainer/marker.ts +0 -30
- package/src/trainer/scheduler.ts +0 -107
- package/src/trainer/sessionLoader.ts +0 -176
- package/src/types.ts +0 -168
- /package/dist/{consolidation/scheduler → adapters/embed}/types.js +0 -0
- /package/dist/{consolidation → adapters/llm}/types.js +0 -0
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { MemoryScope } from "../consolidation/scope.js";
|
|
2
|
-
import type { ToolResult } from "../types.js";
|
|
3
|
-
export declare const MEMORY_APPEND_NAME = "memory_append";
|
|
4
|
-
export declare const MEMORY_APPEND_DESCRIPTION: string;
|
|
5
|
-
export declare const MEMORY_APPEND_PROMPT_SNIPPET = "Persist explicit user memory";
|
|
6
|
-
export declare const MEMORY_APPEND_PROMPT_GUIDELINES: readonly ["Use memory_append only when the user explicitly asks to remember a preference or durable fact — not for transient task state."];
|
|
7
|
-
export declare const MEMORY_APPEND_PARAMETERS: {
|
|
8
|
-
readonly type: "object";
|
|
9
|
-
readonly properties: {
|
|
10
|
-
readonly content: {
|
|
11
|
-
readonly type: "string";
|
|
12
|
-
readonly description: "New entries to append (markdown bullet points). Write in English by default.";
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
readonly required: readonly ["content"];
|
|
16
|
-
};
|
|
17
|
-
export declare function appendToMemoryMd(memoryMdPath: string, content: string): Promise<void>;
|
|
18
|
-
export interface Stage1AppendOptions {
|
|
19
|
-
dbPath: string;
|
|
20
|
-
sessionId?: string;
|
|
21
|
-
sessionFile?: string;
|
|
22
|
-
scope?: MemoryScope;
|
|
23
|
-
now?: string;
|
|
24
|
-
}
|
|
25
|
-
export declare function appendToStage1(content: string, opts: Stage1AppendOptions): Promise<string>;
|
|
26
|
-
export declare class MemoryAppendTool {
|
|
27
|
-
private readonly memoryMdPath;
|
|
28
|
-
private readonly stage1?;
|
|
29
|
-
constructor(memoryMdPath: string, stage1?: Stage1AppendOptions | undefined);
|
|
30
|
-
info(): {
|
|
31
|
-
name: string;
|
|
32
|
-
description: string;
|
|
33
|
-
parameters: {
|
|
34
|
-
readonly type: "object";
|
|
35
|
-
readonly properties: {
|
|
36
|
-
readonly content: {
|
|
37
|
-
readonly type: "string";
|
|
38
|
-
readonly description: "New entries to append (markdown bullet points). Write in English by default.";
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
readonly required: readonly ["content"];
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
run(argsJson: string): Promise<ToolResult>;
|
|
45
|
-
}
|
|
46
|
-
export declare function createMemoryAppendTool(memoryMdPath: string, stage1?: Stage1AppendOptions): MemoryAppendTool;
|
|
47
|
-
//# sourceMappingURL=memoryAppend.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memoryAppend.d.ts","sourceRoot":"","sources":["../../src/tools/memoryAppend.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD,eAAO,MAAM,yBAAyB,QAE+D,CAAC;AAEtG,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E,eAAO,MAAM,+BAA+B,4IAElC,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;;;;CAU3B,CAAC;AA6BX,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,MAAM,CAAC,CA4BjB;AAED,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBADP,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,mBAAmB,YAAA;IAG/C,IAAI;;;;;;;;;;;;;;IAQE,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CA4BjD;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,mBAAmB,GAC3B,gBAAgB,CAElB"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs/promises";
|
|
2
|
-
import { open } from "node:fs/promises";
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
import { openConsolidationStore } from "../consolidation/stage1/store.js";
|
|
5
|
-
export const MEMORY_APPEND_NAME = "memory_append";
|
|
6
|
-
export const MEMORY_APPEND_DESCRIPTION = "Persist durable memory only when the user explicitly asks to remember something. " +
|
|
7
|
-
"Writes go through the pi-memory consolidation stage instead of direct file edits when configured.";
|
|
8
|
-
export const MEMORY_APPEND_PROMPT_SNIPPET = "Persist explicit user memory";
|
|
9
|
-
export const MEMORY_APPEND_PROMPT_GUIDELINES = [
|
|
10
|
-
"Use memory_append only when the user explicitly asks to remember a preference or durable fact — not for transient task state.",
|
|
11
|
-
];
|
|
12
|
-
export const MEMORY_APPEND_PARAMETERS = {
|
|
13
|
-
type: "object",
|
|
14
|
-
properties: {
|
|
15
|
-
content: {
|
|
16
|
-
type: "string",
|
|
17
|
-
description: "New entries to append (markdown bullet points). Write in English by default.",
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
required: ["content"],
|
|
21
|
-
};
|
|
22
|
-
const LOCK_RETRIES = 50;
|
|
23
|
-
const LOCK_DELAY_MS = 20;
|
|
24
|
-
async function withAppendLock(lockPath, fn) {
|
|
25
|
-
let handle;
|
|
26
|
-
for (let i = 0; i < LOCK_RETRIES; i++) {
|
|
27
|
-
try {
|
|
28
|
-
handle = await open(lockPath, "wx");
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
await new Promise((r) => setTimeout(r, LOCK_DELAY_MS));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
if (!handle) {
|
|
36
|
-
throw new Error("could not acquire MEMORY.md append lock");
|
|
37
|
-
}
|
|
38
|
-
try {
|
|
39
|
-
return await fn();
|
|
40
|
-
}
|
|
41
|
-
finally {
|
|
42
|
-
await handle.close();
|
|
43
|
-
await fs.unlink(lockPath).catch(() => { });
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
export async function appendToMemoryMd(memoryMdPath, content) {
|
|
47
|
-
const trimmed = content.trim();
|
|
48
|
-
if (!trimmed) {
|
|
49
|
-
throw new Error("content must not be empty");
|
|
50
|
-
}
|
|
51
|
-
await fs.mkdir(path.dirname(memoryMdPath), { recursive: true, mode: 0o700 });
|
|
52
|
-
const lockPath = `${memoryMdPath}.append.lock`;
|
|
53
|
-
const block = content.endsWith("\n") ? content : `${content}\n`;
|
|
54
|
-
await withAppendLock(lockPath, async () => {
|
|
55
|
-
await fs.appendFile(memoryMdPath, block, { encoding: "utf8", mode: 0o600 });
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
export async function appendToStage1(content, opts) {
|
|
59
|
-
const trimmed = content.trim();
|
|
60
|
-
if (!trimmed)
|
|
61
|
-
throw new Error("content must not be empty");
|
|
62
|
-
const store = openConsolidationStore(opts.dbPath);
|
|
63
|
-
if (!store)
|
|
64
|
-
throw new Error("could not open consolidation store");
|
|
65
|
-
const now = opts.now ?? new Date().toISOString();
|
|
66
|
-
const sessionId = opts.sessionId
|
|
67
|
-
? `manual_${opts.sessionId}_${Date.now()}`
|
|
68
|
-
: `manual_${Date.now()}`;
|
|
69
|
-
try {
|
|
70
|
-
store.upsertStage1Output({
|
|
71
|
-
session_id: sessionId,
|
|
72
|
-
session_file: opts.sessionFile ?? "manual-memory-append",
|
|
73
|
-
source_mtime_ms: Date.now(),
|
|
74
|
-
generated_at: now,
|
|
75
|
-
raw_memory: trimmed,
|
|
76
|
-
rollout_summary: trimmed,
|
|
77
|
-
scope: opts.scope ?? "global",
|
|
78
|
-
status: "done",
|
|
79
|
-
selected_for_phase2: false,
|
|
80
|
-
usage_count: 0,
|
|
81
|
-
last_usage: now,
|
|
82
|
-
error_message: null,
|
|
83
|
-
});
|
|
84
|
-
return sessionId;
|
|
85
|
-
}
|
|
86
|
-
finally {
|
|
87
|
-
store.close();
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
export class MemoryAppendTool {
|
|
91
|
-
memoryMdPath;
|
|
92
|
-
stage1;
|
|
93
|
-
constructor(memoryMdPath, stage1) {
|
|
94
|
-
this.memoryMdPath = memoryMdPath;
|
|
95
|
-
this.stage1 = stage1;
|
|
96
|
-
}
|
|
97
|
-
info() {
|
|
98
|
-
return {
|
|
99
|
-
name: MEMORY_APPEND_NAME,
|
|
100
|
-
description: MEMORY_APPEND_DESCRIPTION,
|
|
101
|
-
parameters: MEMORY_APPEND_PARAMETERS,
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
async run(argsJson) {
|
|
105
|
-
let raw;
|
|
106
|
-
try {
|
|
107
|
-
raw = JSON.parse(argsJson);
|
|
108
|
-
}
|
|
109
|
-
catch (e) {
|
|
110
|
-
return {
|
|
111
|
-
content: `invalid arguments: ${e instanceof Error ? e.message : e}`,
|
|
112
|
-
isError: true,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
const content = typeof raw.content === "string" ? raw.content : "";
|
|
116
|
-
if (!content.trim()) {
|
|
117
|
-
return { content: "content must not be empty", isError: true };
|
|
118
|
-
}
|
|
119
|
-
try {
|
|
120
|
-
if (this.stage1) {
|
|
121
|
-
const id = await appendToStage1(content, this.stage1);
|
|
122
|
-
return { content: `queued memory for consolidation: ${id}` };
|
|
123
|
-
}
|
|
124
|
-
await appendToMemoryMd(this.memoryMdPath, content);
|
|
125
|
-
return { content: `appended to ${this.memoryMdPath}` };
|
|
126
|
-
}
|
|
127
|
-
catch (e) {
|
|
128
|
-
return {
|
|
129
|
-
content: `error appending: ${e instanceof Error ? e.message : e}`,
|
|
130
|
-
isError: true,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
export function createMemoryAppendTool(memoryMdPath, stage1) {
|
|
136
|
-
return new MemoryAppendTool(memoryMdPath, stage1);
|
|
137
|
-
}
|
|
138
|
-
//# sourceMappingURL=memoryAppend.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memoryAppend.js","sourceRoot":"","sources":["../../src/tools/memoryAppend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAI1E,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD,MAAM,CAAC,MAAM,yBAAyB,GACpC,mFAAmF;IACnF,mGAAmG,CAAC;AAEtG,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AAE3E,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,+HAA+H;CACvH,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,8EAA8E;SACjF;KACF;IACD,QAAQ,EAAE,CAAC,SAAS,CAAC;CACb,CAAC;AAEX,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,KAAK,UAAU,cAAc,CAC3B,QAAgB,EAChB,EAAoB;IAEpB,IAAI,MAAM,CAAC;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM;QACR,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAAoB,EACpB,OAAe;IAEf,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,GAAG,YAAY,cAAc,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC;IAChE,MAAM,cAAc,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,IAAyB;IAEzB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QAC1C,CAAC,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC3B,IAAI,CAAC;QACH,KAAK,CAAC,kBAAkB,CAAC;YACvB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,IAAI,CAAC,WAAW,IAAI,sBAAsB;YACxD,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE;YAC3B,YAAY,EAAE,GAAG;YACjB,UAAU,EAAE,OAAO;YACnB,eAAe,EAAE,OAAO;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ;YAC7B,MAAM,EAAE,MAAM;YACd,mBAAmB,EAAE,KAAK;YAC1B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,GAAG;YACf,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,gBAAgB;IAER;IACA;IAFnB,YACmB,YAAoB,EACpB,MAA4B;QAD5B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,WAAM,GAAN,MAAM,CAAsB;IAC5C,CAAC;IAEJ,IAAI;QACF,OAAO;YACL,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,yBAAyB;YACtC,UAAU,EAAE,wBAAwB;SACrC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,QAAgB;QACxB,IAAI,GAA4B,CAAC;QACjC,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA4B,CAAC;QACxD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;gBACL,OAAO,EAAE,sBAAsB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACjE,CAAC;QACD,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtD,OAAO,EAAE,OAAO,EAAE,oCAAoC,EAAE,EAAE,EAAE,CAAC;YAC/D,CAAC;YACD,MAAM,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,eAAe,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACzD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;gBACL,OAAO,EAAE,oBAAoB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,sBAAsB,CACpC,YAAoB,EACpB,MAA4B;IAE5B,OAAO,IAAI,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { createFallbackQuery } from "../fallback/index.js";
|
|
2
|
-
import { type RerankOptions } from "../fallback/llmRerank.js";
|
|
3
|
-
import type { FallbackQuery, MemoryQuerier, QueryIntent, ToolResult } from "../types.js";
|
|
4
|
-
export declare const MEMORY_RECALL_NAME = "memory_recall";
|
|
5
|
-
export declare const MEMORY_RECALL_DESCRIPTION: string;
|
|
6
|
-
export declare const MEMORY_RECALL_PROMPT_SNIPPET = "Query local episodic memory by entity or relationship";
|
|
7
|
-
export declare const MEMORY_RECALL_PROMPT_GUIDELINES: readonly ["Use memory_recall when the user asks about past sessions, people, projects, or decisions stored in long-term memory.", "Use memory_recall for relationship questions (e.g. who is X to me) when implicit preflight did not already answer."];
|
|
8
|
-
export declare const MEMORY_RECALL_PARAMETERS: {
|
|
9
|
-
readonly type: "object";
|
|
10
|
-
readonly properties: {
|
|
11
|
-
readonly mode: {
|
|
12
|
-
readonly type: "string";
|
|
13
|
-
readonly enum: readonly ["direct_relation", "path_query", "typed_neighborhood"];
|
|
14
|
-
};
|
|
15
|
-
readonly anchor_mentions: {
|
|
16
|
-
readonly type: "array";
|
|
17
|
-
readonly items: {
|
|
18
|
-
readonly type: "string";
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
readonly relation_constraints: {
|
|
22
|
-
readonly type: "array";
|
|
23
|
-
readonly items: {
|
|
24
|
-
readonly type: "string";
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
readonly candidate_type: {
|
|
28
|
-
readonly type: "string";
|
|
29
|
-
};
|
|
30
|
-
readonly scope_filter: {
|
|
31
|
-
readonly type: "array";
|
|
32
|
-
readonly items: {
|
|
33
|
-
readonly type: "string";
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
readonly target_slot: {
|
|
37
|
-
readonly type: "string";
|
|
38
|
-
readonly enum: readonly ["head", "tail"];
|
|
39
|
-
};
|
|
40
|
-
readonly time_window: {
|
|
41
|
-
readonly type: "string";
|
|
42
|
-
};
|
|
43
|
-
readonly evidence_budget: {
|
|
44
|
-
readonly type: "integer";
|
|
45
|
-
};
|
|
46
|
-
readonly result_limit: {
|
|
47
|
-
readonly type: "integer";
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
readonly required: readonly ["anchor_mentions"];
|
|
51
|
-
};
|
|
52
|
-
export declare class MemoryRecallTool {
|
|
53
|
-
private readonly service;
|
|
54
|
-
private readonly fallback;
|
|
55
|
-
private readonly rerankOpts;
|
|
56
|
-
constructor(service: MemoryQuerier, fallback?: FallbackQuery | null, rerankOpts?: RerankOptions | null);
|
|
57
|
-
info(): {
|
|
58
|
-
name: string;
|
|
59
|
-
description: string;
|
|
60
|
-
parameters: {
|
|
61
|
-
readonly type: "object";
|
|
62
|
-
readonly properties: {
|
|
63
|
-
readonly mode: {
|
|
64
|
-
readonly type: "string";
|
|
65
|
-
readonly enum: readonly ["direct_relation", "path_query", "typed_neighborhood"];
|
|
66
|
-
};
|
|
67
|
-
readonly anchor_mentions: {
|
|
68
|
-
readonly type: "array";
|
|
69
|
-
readonly items: {
|
|
70
|
-
readonly type: "string";
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
readonly relation_constraints: {
|
|
74
|
-
readonly type: "array";
|
|
75
|
-
readonly items: {
|
|
76
|
-
readonly type: "string";
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
readonly candidate_type: {
|
|
80
|
-
readonly type: "string";
|
|
81
|
-
};
|
|
82
|
-
readonly scope_filter: {
|
|
83
|
-
readonly type: "array";
|
|
84
|
-
readonly items: {
|
|
85
|
-
readonly type: "string";
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
readonly target_slot: {
|
|
89
|
-
readonly type: "string";
|
|
90
|
-
readonly enum: readonly ["head", "tail"];
|
|
91
|
-
};
|
|
92
|
-
readonly time_window: {
|
|
93
|
-
readonly type: "string";
|
|
94
|
-
};
|
|
95
|
-
readonly evidence_budget: {
|
|
96
|
-
readonly type: "integer";
|
|
97
|
-
};
|
|
98
|
-
readonly result_limit: {
|
|
99
|
-
readonly type: "integer";
|
|
100
|
-
};
|
|
101
|
-
};
|
|
102
|
-
readonly required: readonly ["anchor_mentions"];
|
|
103
|
-
};
|
|
104
|
-
};
|
|
105
|
-
run(argsJson: string, signal?: AbortSignal, onProgress?: (msg: string) => void): Promise<ToolResult>;
|
|
106
|
-
runIntent(intent: QueryIntent, signal?: AbortSignal, onProgress?: (msg: string) => void): Promise<ToolResult>;
|
|
107
|
-
private fallbackResult;
|
|
108
|
-
}
|
|
109
|
-
/** @deprecated Use createFallbackQuery — kept for backward-compatible imports. */
|
|
110
|
-
export declare function createStubFallback(memoryMdPaths: string[], sessionsDir?: string): FallbackQuery;
|
|
111
|
-
export { createFallbackQuery };
|
|
112
|
-
export declare function createMemoryRecallTool(service: MemoryQuerier, fallback: FallbackQuery | null, rerankOpts?: RerankOptions | null): MemoryRecallTool;
|
|
113
|
-
//# sourceMappingURL=memoryRecall.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memoryRecall.d.ts","sourceRoot":"","sources":["../../src/tools/memoryRecall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAiB,KAAK,aAAa,EAAqB,MAAM,0BAA0B,CAAC;AAEhG,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAoB,WAAW,EAA+B,UAAU,EAAE,MAAM,aAAa,CAAC;AAExI,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD,eAAO,MAAM,yBAAyB,QAM8E,CAAC;AAErH,eAAO,MAAM,4BAA4B,0DACgB,CAAC;AAE1D,eAAO,MAAM,+BAA+B,yPAGlC,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiB3B,CAAC;AAEX,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,OAAO,EAAE,aAAa,EACtB,QAAQ,GAAE,aAAa,GAAG,IAAW,EACrC,UAAU,GAAE,aAAa,GAAG,IAAW;IAG1D,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IAepG,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;YAqDrG,cAAc;CAmF7B;AAmKD,kFAAkF;AAClF,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EAAE,EACvB,WAAW,SAAK,GACf,aAAa,CAEf;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,aAAa,GAAG,IAAI,EAC9B,UAAU,CAAC,EAAE,aAAa,GAAG,IAAI,GAChC,gBAAgB,CAElB"}
|
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
import { createFallbackQuery } from "../fallback/index.js";
|
|
2
|
-
import { rerankWithLLM } from "../fallback/llmRerank.js";
|
|
3
|
-
export const MEMORY_RECALL_NAME = "memory_recall";
|
|
4
|
-
export const MEMORY_RECALL_DESCRIPTION = "Read structured episodic memory from the local TLM sidecar — past sessions consolidated into long-term records.\n" +
|
|
5
|
-
"Modes:\n" +
|
|
6
|
-
"- direct_relation: one-hop predicate (e.g. \"what did X create?\"). Read groups[].via_relations.\n" +
|
|
7
|
-
"- path_query: multi-hop / possessive. relation_constraints is the ordered path; inverse hops use ^-1.\n" +
|
|
8
|
-
"- typed_neighborhood: typed target with exactly one relation. Requires candidate_type.\n\n" +
|
|
9
|
-
"Ground answers in supporting evidence internally; tell the user \"past records\" / \"以前的记录\", not raw event IDs.";
|
|
10
|
-
export const MEMORY_RECALL_PROMPT_SNIPPET = "Query local episodic memory by entity or relationship";
|
|
11
|
-
export const MEMORY_RECALL_PROMPT_GUIDELINES = [
|
|
12
|
-
"Use memory_recall when the user asks about past sessions, people, projects, or decisions stored in long-term memory.",
|
|
13
|
-
"Use memory_recall for relationship questions (e.g. who is X to me) when implicit preflight did not already answer.",
|
|
14
|
-
];
|
|
15
|
-
export const MEMORY_RECALL_PARAMETERS = {
|
|
16
|
-
type: "object",
|
|
17
|
-
properties: {
|
|
18
|
-
mode: {
|
|
19
|
-
type: "string",
|
|
20
|
-
enum: ["direct_relation", "path_query", "typed_neighborhood"],
|
|
21
|
-
},
|
|
22
|
-
anchor_mentions: { type: "array", items: { type: "string" } },
|
|
23
|
-
relation_constraints: { type: "array", items: { type: "string" } },
|
|
24
|
-
candidate_type: { type: "string" },
|
|
25
|
-
scope_filter: { type: "array", items: { type: "string" } },
|
|
26
|
-
target_slot: { type: "string", enum: ["head", "tail"] },
|
|
27
|
-
time_window: { type: "string" },
|
|
28
|
-
evidence_budget: { type: "integer" },
|
|
29
|
-
result_limit: { type: "integer" },
|
|
30
|
-
},
|
|
31
|
-
required: ["anchor_mentions"],
|
|
32
|
-
};
|
|
33
|
-
export class MemoryRecallTool {
|
|
34
|
-
service;
|
|
35
|
-
fallback;
|
|
36
|
-
rerankOpts;
|
|
37
|
-
constructor(service, fallback = null, rerankOpts = null) {
|
|
38
|
-
this.service = service;
|
|
39
|
-
this.fallback = fallback;
|
|
40
|
-
this.rerankOpts = rerankOpts;
|
|
41
|
-
}
|
|
42
|
-
info() {
|
|
43
|
-
return {
|
|
44
|
-
name: MEMORY_RECALL_NAME,
|
|
45
|
-
description: MEMORY_RECALL_DESCRIPTION,
|
|
46
|
-
parameters: MEMORY_RECALL_PARAMETERS,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
async run(argsJson, signal, onProgress) {
|
|
50
|
-
const args = parseArgs(argsJson);
|
|
51
|
-
if ("error" in args) {
|
|
52
|
-
return { content: args.error, isError: true };
|
|
53
|
-
}
|
|
54
|
-
const intent = argsToIntent(args);
|
|
55
|
-
const validation = validateArgs(args);
|
|
56
|
-
if (validation) {
|
|
57
|
-
return { content: validation, isError: true };
|
|
58
|
-
}
|
|
59
|
-
return this.runIntent(intent, signal, onProgress);
|
|
60
|
-
}
|
|
61
|
-
async runIntent(intent, signal, onProgress) {
|
|
62
|
-
if (this.service.status() !== "ready") {
|
|
63
|
-
return this.fallbackResult(intent, "service_unavailable", "fallback");
|
|
64
|
-
}
|
|
65
|
-
// Emit a progress message if the sidecar takes longer than 500 ms.
|
|
66
|
-
let progressTimer = null;
|
|
67
|
-
if (onProgress) {
|
|
68
|
-
progressTimer = setTimeout(() => {
|
|
69
|
-
onProgress("Querying episodic memory…");
|
|
70
|
-
}, 500);
|
|
71
|
-
}
|
|
72
|
-
let result;
|
|
73
|
-
try {
|
|
74
|
-
result = await this.service.query(intent, signal);
|
|
75
|
-
}
|
|
76
|
-
finally {
|
|
77
|
-
if (progressTimer != null)
|
|
78
|
-
clearTimeout(progressTimer);
|
|
79
|
-
}
|
|
80
|
-
if (result.transportError || result.errorClass === "unavailable") {
|
|
81
|
-
return this.fallbackResult(intent, "service_unavailable", "fallback");
|
|
82
|
-
}
|
|
83
|
-
if (result.errorClass === "retryable") {
|
|
84
|
-
let retryTimer = null;
|
|
85
|
-
if (onProgress) {
|
|
86
|
-
retryTimer = setTimeout(() => onProgress("Retrying memory query…"), 500);
|
|
87
|
-
}
|
|
88
|
-
let retryResult;
|
|
89
|
-
try {
|
|
90
|
-
await sleep(500, signal);
|
|
91
|
-
retryResult = await this.service.query(intent, signal);
|
|
92
|
-
}
|
|
93
|
-
finally {
|
|
94
|
-
if (retryTimer != null)
|
|
95
|
-
clearTimeout(retryTimer);
|
|
96
|
-
}
|
|
97
|
-
if (retryResult.transportError ||
|
|
98
|
-
retryResult.errorClass === "unavailable" ||
|
|
99
|
-
retryResult.errorClass === "retryable") {
|
|
100
|
-
return this.fallbackResult(intent, "retryable_failed", "fallback_after_retry");
|
|
101
|
-
}
|
|
102
|
-
result = retryResult;
|
|
103
|
-
}
|
|
104
|
-
if (result.errorClass === "permanent") {
|
|
105
|
-
return permanentResult(result.env);
|
|
106
|
-
}
|
|
107
|
-
return shapeResult(result.env);
|
|
108
|
-
}
|
|
109
|
-
async fallbackResult(intent, reason, source) {
|
|
110
|
-
const candidates = [];
|
|
111
|
-
const warnings = [];
|
|
112
|
-
if (this.fallback) {
|
|
113
|
-
const query = intent.anchor_mentions.map((s) => s.trim()).filter(Boolean).join(" ");
|
|
114
|
-
const limit = intent.result_limit && intent.result_limit > 0 ? intent.result_limit : 10;
|
|
115
|
-
try {
|
|
116
|
-
const hits = await this.fallback.sessionKeyword(query, limit);
|
|
117
|
-
let reranked = null;
|
|
118
|
-
if (this.rerankOpts && hits.length > 0) {
|
|
119
|
-
try {
|
|
120
|
-
reranked = await rerankWithLLM(query, hits, this.rerankOpts);
|
|
121
|
-
}
|
|
122
|
-
catch {
|
|
123
|
-
/* silent fallback to original order */
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
if (reranked) {
|
|
127
|
-
for (const r of reranked) {
|
|
128
|
-
const original = hits[r.index];
|
|
129
|
-
candidates.push({
|
|
130
|
-
value: r.summary,
|
|
131
|
-
score: r.score,
|
|
132
|
-
evidence: "llm_rerank",
|
|
133
|
-
...(typeof original === "object" && original !== null &&
|
|
134
|
-
"session_id" in original
|
|
135
|
-
? { scope: "session_search", session_id: original.session_id }
|
|
136
|
-
: {}),
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
for (const h of hits) {
|
|
142
|
-
candidates.push({
|
|
143
|
-
value: typeof h === "string" ? h : JSON.stringify(h),
|
|
144
|
-
evidence: "text_search",
|
|
145
|
-
...(typeof h === "object" &&
|
|
146
|
-
h !== null &&
|
|
147
|
-
"session_id" in h
|
|
148
|
-
? { scope: "session_search" }
|
|
149
|
-
: {}),
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
catch (err) {
|
|
155
|
-
warnings.push({
|
|
156
|
-
code: "fallback_session_search_failed",
|
|
157
|
-
message: err instanceof Error ? err.message : String(err),
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
try {
|
|
161
|
-
const snippet = await this.fallback.memoryFileSnippet(query);
|
|
162
|
-
if (snippet) {
|
|
163
|
-
candidates.push({
|
|
164
|
-
value: snippet,
|
|
165
|
-
evidence: "text_search",
|
|
166
|
-
scope: "memory_md",
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
catch {
|
|
171
|
-
/* optional */
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
const out = {
|
|
175
|
-
source,
|
|
176
|
-
evidence_quality: "text_search",
|
|
177
|
-
bundle_version: null,
|
|
178
|
-
candidates,
|
|
179
|
-
warnings,
|
|
180
|
-
fallback_reason: reason,
|
|
181
|
-
};
|
|
182
|
-
return { content: JSON.stringify(out) };
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
function parseArgs(argsJson) {
|
|
186
|
-
let raw;
|
|
187
|
-
try {
|
|
188
|
-
raw = JSON.parse(coerceArgs(argsJson));
|
|
189
|
-
}
|
|
190
|
-
catch (e) {
|
|
191
|
-
return { error: `invalid input: ${e instanceof Error ? e.message : e}` };
|
|
192
|
-
}
|
|
193
|
-
const anchor = raw.anchor_mentions;
|
|
194
|
-
if (!Array.isArray(anchor) || anchor.length === 0) {
|
|
195
|
-
return { error: "anchor_mentions is required and must be non-empty" };
|
|
196
|
-
}
|
|
197
|
-
return raw;
|
|
198
|
-
}
|
|
199
|
-
function argsToIntent(a) {
|
|
200
|
-
return {
|
|
201
|
-
mode: a.mode || "direct_relation",
|
|
202
|
-
anchor_mentions: a.anchor_mentions,
|
|
203
|
-
relation_constraints: a.relation_constraints,
|
|
204
|
-
candidate_type: a.candidate_type,
|
|
205
|
-
scope_filter: a.scope_filter,
|
|
206
|
-
target_slot: a.target_slot ?? "",
|
|
207
|
-
time_window: a.time_window,
|
|
208
|
-
evidence_budget: a.evidence_budget && a.evidence_budget > 0 ? a.evidence_budget : 5,
|
|
209
|
-
result_limit: a.result_limit && a.result_limit > 0 ? a.result_limit : 10,
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
function validateArgs(a) {
|
|
213
|
-
for (const rel of a.relation_constraints ?? []) {
|
|
214
|
-
if (isBroadRelation(rel)) {
|
|
215
|
-
return "memory_recall requires concrete relation_constraints. Broad relations like related_to are not valid for structured lookup.";
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
if (a.mode === "typed_neighborhood") {
|
|
219
|
-
if (!a.candidate_type?.trim()) {
|
|
220
|
-
return "typed_neighborhood requires candidate_type.";
|
|
221
|
-
}
|
|
222
|
-
if ((a.relation_constraints?.length ?? 0) !== 1) {
|
|
223
|
-
return "typed_neighborhood requires exactly one relation_constraints value.";
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
return null;
|
|
227
|
-
}
|
|
228
|
-
function isBroadRelation(rel) {
|
|
229
|
-
let r = rel.trim().toLowerCase();
|
|
230
|
-
r = r.replace(/^\^/, "").replace(/\^-1$/, "");
|
|
231
|
-
return ["related_to", "relates_to", "associated_with", "about", "mentions", "other"].includes(r);
|
|
232
|
-
}
|
|
233
|
-
function coerceArgs(argsJson) {
|
|
234
|
-
let raw;
|
|
235
|
-
try {
|
|
236
|
-
raw = JSON.parse(argsJson);
|
|
237
|
-
}
|
|
238
|
-
catch {
|
|
239
|
-
return argsJson;
|
|
240
|
-
}
|
|
241
|
-
let changed = false;
|
|
242
|
-
for (const field of ["anchor_mentions", "relation_constraints", "scope_filter"]) {
|
|
243
|
-
const v = raw[field];
|
|
244
|
-
if (typeof v === "string") {
|
|
245
|
-
try {
|
|
246
|
-
raw[field] = JSON.parse(v);
|
|
247
|
-
changed = true;
|
|
248
|
-
}
|
|
249
|
-
catch {
|
|
250
|
-
/* keep */
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
for (const field of ["result_limit", "evidence_budget"]) {
|
|
255
|
-
const v = raw[field];
|
|
256
|
-
if (typeof v === "string") {
|
|
257
|
-
const n = Number(v);
|
|
258
|
-
if (!Number.isNaN(n)) {
|
|
259
|
-
raw[field] = n;
|
|
260
|
-
changed = true;
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
return changed ? JSON.stringify(raw) : argsJson;
|
|
265
|
-
}
|
|
266
|
-
function shapeResult(env) {
|
|
267
|
-
let quality = "structured";
|
|
268
|
-
const warnings = envelopeWarnings(env);
|
|
269
|
-
if (env.reason === "degraded") {
|
|
270
|
-
quality = "structured_degraded";
|
|
271
|
-
warnings.unshift({
|
|
272
|
-
code: "bundle_degraded",
|
|
273
|
-
message: "memory bundle degraded — results may be incomplete",
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
const cands = env.candidates.map((c) => {
|
|
277
|
-
const m = {
|
|
278
|
-
value: c.value,
|
|
279
|
-
score: c.score,
|
|
280
|
-
evidence: c.evidence,
|
|
281
|
-
supporting_event_ids: c.supporting_event_ids,
|
|
282
|
-
};
|
|
283
|
-
if (c.scope != null)
|
|
284
|
-
m.scope = c.scope;
|
|
285
|
-
if (c.support_count != null)
|
|
286
|
-
m.support_count = c.support_count;
|
|
287
|
-
if (c.distinct_session_count != null) {
|
|
288
|
-
m.distinct_session_count = c.distinct_session_count;
|
|
289
|
-
}
|
|
290
|
-
return m;
|
|
291
|
-
});
|
|
292
|
-
const out = {
|
|
293
|
-
source: "memory_sidecar",
|
|
294
|
-
evidence_quality: quality,
|
|
295
|
-
bundle_version: env.bundle_version ?? null,
|
|
296
|
-
memory_block: env.memory_block ?? null,
|
|
297
|
-
candidates: cands,
|
|
298
|
-
warnings,
|
|
299
|
-
fallback_reason: null,
|
|
300
|
-
};
|
|
301
|
-
return { content: JSON.stringify(out) };
|
|
302
|
-
}
|
|
303
|
-
function permanentResult(env) {
|
|
304
|
-
const out = {
|
|
305
|
-
source: "memory_sidecar",
|
|
306
|
-
evidence_quality: "structured",
|
|
307
|
-
bundle_version: env?.bundle_version ?? null,
|
|
308
|
-
candidates: [],
|
|
309
|
-
warnings: envelopeWarnings(env),
|
|
310
|
-
fallback_reason: null,
|
|
311
|
-
};
|
|
312
|
-
return { content: JSON.stringify(out), isError: true };
|
|
313
|
-
}
|
|
314
|
-
function envelopeWarnings(env) {
|
|
315
|
-
const out = [];
|
|
316
|
-
if (!env)
|
|
317
|
-
return out;
|
|
318
|
-
for (const w of env.warnings ?? []) {
|
|
319
|
-
out.push({ code: w.code, message: w.message });
|
|
320
|
-
}
|
|
321
|
-
if (env.error) {
|
|
322
|
-
out.push({
|
|
323
|
-
code: env.error.code,
|
|
324
|
-
message: env.error.message,
|
|
325
|
-
sub_code: env.error.details?.sub_code,
|
|
326
|
-
});
|
|
327
|
-
}
|
|
328
|
-
return out;
|
|
329
|
-
}
|
|
330
|
-
function sleep(ms, signal) {
|
|
331
|
-
return new Promise((resolve, reject) => {
|
|
332
|
-
if (signal?.aborted) {
|
|
333
|
-
reject(new Error("aborted"));
|
|
334
|
-
return;
|
|
335
|
-
}
|
|
336
|
-
const t = setTimeout(resolve, ms);
|
|
337
|
-
signal?.addEventListener("abort", () => {
|
|
338
|
-
clearTimeout(t);
|
|
339
|
-
reject(new Error("aborted"));
|
|
340
|
-
}, { once: true });
|
|
341
|
-
});
|
|
342
|
-
}
|
|
343
|
-
/** @deprecated Use createFallbackQuery — kept for backward-compatible imports. */
|
|
344
|
-
export function createStubFallback(memoryMdPaths, sessionsDir = "") {
|
|
345
|
-
return createFallbackQuery({ sessionsDir, memoryMdPaths });
|
|
346
|
-
}
|
|
347
|
-
export { createFallbackQuery };
|
|
348
|
-
export function createMemoryRecallTool(service, fallback, rerankOpts) {
|
|
349
|
-
return new MemoryRecallTool(service, fallback, rerankOpts ?? null);
|
|
350
|
-
}
|
|
351
|
-
//# sourceMappingURL=memoryRecall.js.map
|