@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
package/src/utils/fs.ts
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/** Runtime fs helpers. Pre-build postinstall mirror: scripts/platform-fs.mjs */
|
|
2
|
+
import { accessSync, existsSync, mkdirSync, constants } from "node:fs";
|
|
3
|
+
import {
|
|
4
|
+
appendFile,
|
|
5
|
+
mkdir,
|
|
6
|
+
readFile,
|
|
7
|
+
readdir,
|
|
8
|
+
unlink,
|
|
9
|
+
writeFile,
|
|
10
|
+
} from "node:fs/promises";
|
|
11
|
+
import { basename, dirname, join } from "node:path";
|
|
12
|
+
|
|
13
|
+
import { expandHomePath, mkdirOptions } from "./paths.js";
|
|
14
|
+
|
|
15
|
+
/** Cross-platform path join (`\` on Windows, `/` on POSIX). */
|
|
16
|
+
export function joinPath(...segments: string[]): string {
|
|
17
|
+
return join(...segments);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function pathBasename(filePath: string): string {
|
|
21
|
+
return basename(filePath);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function pathDirname(filePath: string): string {
|
|
25
|
+
return dirname(filePath);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function pathExists(filePath: string): boolean {
|
|
29
|
+
return existsSync(expandHomePath(filePath));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** True when the current process can read the path. */
|
|
33
|
+
export function canRead(filePath: string): boolean {
|
|
34
|
+
try {
|
|
35
|
+
accessSync(expandHomePath(filePath), constants.R_OK);
|
|
36
|
+
return true;
|
|
37
|
+
} catch {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function isENOENT(error: unknown): boolean {
|
|
43
|
+
return (error as NodeJS.ErrnoException)?.code === "ENOENT";
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Create directory tree; Unix applies secure mode, Windows omits mode. */
|
|
47
|
+
export async function ensureDir(dirPath: string): Promise<void> {
|
|
48
|
+
await mkdir(expandHomePath(dirPath), mkdirOptions());
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function ensureDirSync(dirPath: string): void {
|
|
52
|
+
mkdirSync(expandHomePath(dirPath), mkdirOptions());
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** Read UTF-8 text; missing file → empty string. */
|
|
56
|
+
export async function readText(filePath: string): Promise<string> {
|
|
57
|
+
try {
|
|
58
|
+
return await readFile(expandHomePath(filePath), "utf8");
|
|
59
|
+
} catch (error) {
|
|
60
|
+
if (isENOENT(error)) return "";
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/** Read UTF-8 text; propagates ENOENT. */
|
|
66
|
+
export async function readTextRequired(filePath: string): Promise<string> {
|
|
67
|
+
return readFile(expandHomePath(filePath), "utf8");
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** Write UTF-8 text; creates parent directories. */
|
|
71
|
+
export async function writeText(filePath: string, content: string): Promise<void> {
|
|
72
|
+
const resolved = expandHomePath(filePath);
|
|
73
|
+
await ensureDir(dirname(resolved));
|
|
74
|
+
await writeFile(resolved, content, "utf8");
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/** Append UTF-8 text; creates parent directories. */
|
|
78
|
+
export async function appendText(filePath: string, content: string): Promise<void> {
|
|
79
|
+
const resolved = expandHomePath(filePath);
|
|
80
|
+
await ensureDir(dirname(resolved));
|
|
81
|
+
await appendFile(resolved, content, "utf8");
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** List directory entries; missing dir → empty array. */
|
|
85
|
+
export async function listDir(dirPath: string): Promise<string[]> {
|
|
86
|
+
try {
|
|
87
|
+
return await readdir(expandHomePath(dirPath));
|
|
88
|
+
} catch (error) {
|
|
89
|
+
if (isENOENT(error)) return [];
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** Delete file; missing file → no-op. */
|
|
95
|
+
export async function removeFile(filePath: string): Promise<void> {
|
|
96
|
+
try {
|
|
97
|
+
await unlink(expandHomePath(filePath));
|
|
98
|
+
} catch (error) {
|
|
99
|
+
if (isENOENT(error)) return;
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/** Ensure file exists (empty) for lockfile targets. */
|
|
105
|
+
export async function ensureFile(filePath: string): Promise<void> {
|
|
106
|
+
try {
|
|
107
|
+
await readTextRequired(filePath);
|
|
108
|
+
} catch (error) {
|
|
109
|
+
if (isENOENT(error)) {
|
|
110
|
+
await writeText(filePath, "");
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
throw error;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export {
|
|
2
|
+
getPlatform,
|
|
3
|
+
isMacOS,
|
|
4
|
+
isUnixLike,
|
|
5
|
+
isWindows,
|
|
6
|
+
type PiMemoryPlatform,
|
|
7
|
+
} from "./platform.js";
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
CONFIG_DIR_NAME,
|
|
11
|
+
defaultMemoryAgentDir,
|
|
12
|
+
defaultPiConfigDir,
|
|
13
|
+
defaultPiMemoryEnvFile,
|
|
14
|
+
defaultPiLogsDir,
|
|
15
|
+
expandHomePath,
|
|
16
|
+
getAgentDir,
|
|
17
|
+
mkdirOptions,
|
|
18
|
+
secureDirMode,
|
|
19
|
+
secureFileMode,
|
|
20
|
+
} from "./paths.js";
|
|
21
|
+
|
|
22
|
+
export {
|
|
23
|
+
appendText,
|
|
24
|
+
canRead,
|
|
25
|
+
ensureDir,
|
|
26
|
+
ensureDirSync,
|
|
27
|
+
ensureFile,
|
|
28
|
+
isENOENT,
|
|
29
|
+
joinPath,
|
|
30
|
+
listDir,
|
|
31
|
+
pathBasename,
|
|
32
|
+
pathDirname,
|
|
33
|
+
pathExists,
|
|
34
|
+
readText,
|
|
35
|
+
readTextRequired,
|
|
36
|
+
removeFile,
|
|
37
|
+
writeText,
|
|
38
|
+
} from "./fs.js";
|
|
39
|
+
|
|
40
|
+
export { cleanupSocketFiles, removeSocketFile, secureSocketPath } from "./socket.js";
|
|
41
|
+
|
|
42
|
+
export { debugMemory, isMemoryDebugEnabled } from "./debugLog.js";
|
|
43
|
+
|
|
44
|
+
export {
|
|
45
|
+
daysSince,
|
|
46
|
+
epochTimestamp,
|
|
47
|
+
formatLocalDate,
|
|
48
|
+
formatTimestamp,
|
|
49
|
+
now,
|
|
50
|
+
nowMs,
|
|
51
|
+
parseTime,
|
|
52
|
+
remainingMs,
|
|
53
|
+
type TimeInput,
|
|
54
|
+
} from "./time.js";
|
|
55
|
+
|
|
56
|
+
export {
|
|
57
|
+
buildConsolidateCliArgs,
|
|
58
|
+
buildMaintenanceCliArgs,
|
|
59
|
+
defaultConsolidateSchedulerPaths,
|
|
60
|
+
formatConsolidateCronLine,
|
|
61
|
+
formatMaintenanceCronLine,
|
|
62
|
+
getConsolidateSchedulerKind,
|
|
63
|
+
getConsolidateTemplateNames,
|
|
64
|
+
type ConsolidateCliInvocation,
|
|
65
|
+
type ConsolidateSchedulerKind,
|
|
66
|
+
type ConsolidateSchedulerPaths,
|
|
67
|
+
type ConsolidateTemplateName,
|
|
68
|
+
} from "./scheduler.js";
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { CONFIG_DIR_NAME, getAgentDir } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
CONSOLIDATE_ERR_LOG_FILE,
|
|
7
|
+
CONSOLIDATE_LOG_FILE,
|
|
8
|
+
PI_MEMORY_DATA_SUBDIR,
|
|
9
|
+
PI_MEMORY_ENV_FILE_NAME,
|
|
10
|
+
PI_LOGS_SUBDIR,
|
|
11
|
+
} from "../constants/paths.js";
|
|
12
|
+
import { SECURE_DIR_MODE, SECURE_FILE_MODE } from "../constants/security.js";
|
|
13
|
+
import { isWindows } from "./platform.js";
|
|
14
|
+
|
|
15
|
+
export { CONFIG_DIR_NAME, getAgentDir };
|
|
16
|
+
|
|
17
|
+
/** Expand leading `~` or `~/` using the current user's home directory. */
|
|
18
|
+
export function expandHomePath(input: string): string {
|
|
19
|
+
const trimmed = input.trim();
|
|
20
|
+
if (trimmed === "~") return homedir();
|
|
21
|
+
if (trimmed.startsWith("~/") || trimmed.startsWith("~\\")) {
|
|
22
|
+
return join(homedir(), trimmed.slice(2));
|
|
23
|
+
}
|
|
24
|
+
return trimmed;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** Pi user config root (~/.pi). Uses Pi's CONFIG_DIR_NAME. */
|
|
28
|
+
export function defaultPiConfigDir(): string {
|
|
29
|
+
return join(homedir(), CONFIG_DIR_NAME);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** Memory data root: ~/.pi/pi-memory-data */
|
|
33
|
+
export function defaultMemoryAgentDir(): string {
|
|
34
|
+
return join(defaultPiConfigDir(), PI_MEMORY_DATA_SUBDIR);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** pi-memory config: ~/.pi/agent/pi-memory.env */
|
|
38
|
+
export function defaultPiMemoryEnvFile(): string {
|
|
39
|
+
return join(getAgentDir(), PI_MEMORY_ENV_FILE_NAME);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function defaultPiLogsDir(): string {
|
|
43
|
+
return join(defaultPiConfigDir(), PI_LOGS_SUBDIR);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function defaultConsolidateLogPath(): string {
|
|
47
|
+
return join(defaultPiLogsDir(), CONSOLIDATE_LOG_FILE);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function defaultConsolidateErrLogPath(): string {
|
|
51
|
+
return join(defaultPiLogsDir(), CONSOLIDATE_ERR_LOG_FILE);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** Directory mode for agent / socket parent dirs (Unix only; ignored on Windows). */
|
|
55
|
+
export function secureDirMode(): number | undefined {
|
|
56
|
+
return isWindows() ? undefined : SECURE_DIR_MODE;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** File mode for socket files (Unix only; ignored on Windows). */
|
|
60
|
+
export function secureFileMode(): number | undefined {
|
|
61
|
+
return isWindows() ? undefined : SECURE_FILE_MODE;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function mkdirOptions(): { recursive: true; mode?: number } {
|
|
65
|
+
const mode = secureDirMode();
|
|
66
|
+
return mode === undefined ? { recursive: true } : { recursive: true, mode };
|
|
67
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type PiMemoryPlatform = "darwin" | "win32" | "other";
|
|
2
|
+
|
|
3
|
+
export function getPlatform(): PiMemoryPlatform {
|
|
4
|
+
if (process.platform === "darwin") return "darwin";
|
|
5
|
+
if (process.platform === "win32") return "win32";
|
|
6
|
+
return "other";
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function isWindows(): boolean {
|
|
10
|
+
return process.platform === "win32";
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function isMacOS(): boolean {
|
|
14
|
+
return process.platform === "darwin";
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Unix-like platforms where chmod / UDS cleanup apply. */
|
|
18
|
+
export function isUnixLike(): boolean {
|
|
19
|
+
return !isWindows();
|
|
20
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import {
|
|
2
|
+
LAUNCHD_LABEL,
|
|
3
|
+
SCHEDULER_TEMPLATE_FILES,
|
|
4
|
+
SCHTASKS_TASK_NAME,
|
|
5
|
+
} from "../constants/paths.js";
|
|
6
|
+
import {
|
|
7
|
+
defaultConsolidateErrLogPath,
|
|
8
|
+
defaultConsolidateLogPath,
|
|
9
|
+
defaultMemoryAgentDir,
|
|
10
|
+
defaultPiMemoryEnvFile,
|
|
11
|
+
defaultPiLogsDir,
|
|
12
|
+
} from "./paths.js";
|
|
13
|
+
import { getPlatform, isMacOS, isWindows, type PiMemoryPlatform } from "./platform.js";
|
|
14
|
+
|
|
15
|
+
export type ConsolidateSchedulerKind = "launchd" | "crontab" | "schtasks";
|
|
16
|
+
|
|
17
|
+
/** Recommended OS scheduler for daily consolidate on this platform. */
|
|
18
|
+
export function getConsolidateSchedulerKind(platform: PiMemoryPlatform = getPlatform()): ConsolidateSchedulerKind {
|
|
19
|
+
if (platform === "darwin") return "launchd";
|
|
20
|
+
if (platform === "win32") return "schtasks";
|
|
21
|
+
return "crontab";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type ConsolidateSchedulerPaths = {
|
|
25
|
+
agentDir: string;
|
|
26
|
+
envFile: string;
|
|
27
|
+
logsDir: string;
|
|
28
|
+
stdoutLog: string;
|
|
29
|
+
stderrLog: string;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export function defaultConsolidateSchedulerPaths(): ConsolidateSchedulerPaths {
|
|
33
|
+
return {
|
|
34
|
+
agentDir: defaultMemoryAgentDir(),
|
|
35
|
+
envFile: defaultPiMemoryEnvFile(),
|
|
36
|
+
logsDir: defaultPiLogsDir(),
|
|
37
|
+
stdoutLog: defaultConsolidateLogPath(),
|
|
38
|
+
stderrLog: defaultConsolidateErrLogPath(),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export type ConsolidateCliInvocation = {
|
|
43
|
+
nodePath: string;
|
|
44
|
+
cliPath: string;
|
|
45
|
+
cron: boolean;
|
|
46
|
+
verbose: boolean;
|
|
47
|
+
agentDir?: string;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/** argv for `pi-memory maintenance` (OS scheduler / wrapper scripts). */
|
|
51
|
+
export function buildMaintenanceCliArgs(
|
|
52
|
+
opts: Pick<ConsolidateCliInvocation, "cron" | "verbose" | "agentDir">,
|
|
53
|
+
): string[] {
|
|
54
|
+
const args = ["maintenance"];
|
|
55
|
+
if (opts.cron) args.push("--cron");
|
|
56
|
+
if (opts.verbose) args.push("--verbose");
|
|
57
|
+
if (opts.agentDir) args.push("--agent-dir", opts.agentDir);
|
|
58
|
+
return args;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** @deprecated Prefer buildMaintenanceCliArgs for OS schedulers. */
|
|
62
|
+
export function buildConsolidateCliArgs(opts: Pick<ConsolidateCliInvocation, "cron" | "verbose" | "agentDir">): string[] {
|
|
63
|
+
return buildMaintenanceCliArgs(opts);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** Single-line shell command (macOS / Linux crontab). */
|
|
67
|
+
export function formatMaintenanceCronLine(opts: ConsolidateCliInvocation & ConsolidateSchedulerPaths): string {
|
|
68
|
+
const args = buildMaintenanceCliArgs(opts).join(" ");
|
|
69
|
+
return [
|
|
70
|
+
`PI_MEMORY_ENV_FILE=${opts.envFile}`,
|
|
71
|
+
`PI_MEMORY_AGENT_DIR=${opts.agentDir}`,
|
|
72
|
+
opts.nodePath,
|
|
73
|
+
opts.cliPath,
|
|
74
|
+
args,
|
|
75
|
+
`>> ${opts.stdoutLog} 2>&1`,
|
|
76
|
+
].join(" ");
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/** @deprecated Prefer formatMaintenanceCronLine. */
|
|
80
|
+
export function formatConsolidateCronLine(opts: ConsolidateCliInvocation & ConsolidateSchedulerPaths): string {
|
|
81
|
+
return formatMaintenanceCronLine(opts);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export type ConsolidateTemplateName =
|
|
85
|
+
(typeof SCHEDULER_TEMPLATE_FILES)[keyof typeof SCHEDULER_TEMPLATE_FILES];
|
|
86
|
+
|
|
87
|
+
/** Template file basename shipped under templates/ for this platform. */
|
|
88
|
+
export function getConsolidateTemplateNames(platform: PiMemoryPlatform = getPlatform()): ConsolidateTemplateName[] {
|
|
89
|
+
if (platform === "darwin") {
|
|
90
|
+
return [SCHEDULER_TEMPLATE_FILES.launchd, SCHEDULER_TEMPLATE_FILES.crontab];
|
|
91
|
+
}
|
|
92
|
+
if (platform === "win32") {
|
|
93
|
+
return [SCHEDULER_TEMPLATE_FILES.windowsCmd, SCHEDULER_TEMPLATE_FILES.windowsSchtasks];
|
|
94
|
+
}
|
|
95
|
+
return [SCHEDULER_TEMPLATE_FILES.crontab];
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export { LAUNCHD_LABEL, SCHEDULER_TEMPLATE_FILES, SCHTASKS_TASK_NAME, isMacOS, isWindows };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { chmodSync, unlinkSync } from "node:fs";
|
|
2
|
+
|
|
3
|
+
import { secureFileMode } from "./paths.js";
|
|
4
|
+
import { isUnixLike } from "./platform.js";
|
|
5
|
+
|
|
6
|
+
/** Remove stale socket file before bind (Unix domain sockets only). */
|
|
7
|
+
export function removeSocketFile(socketPath: string): void {
|
|
8
|
+
if (!isUnixLike()) return;
|
|
9
|
+
try {
|
|
10
|
+
unlinkSync(socketPath);
|
|
11
|
+
} catch {
|
|
12
|
+
// ENOENT or in-use; listen() will surface real errors
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** Restrict socket permissions after bind (Unix only). */
|
|
17
|
+
export function secureSocketPath(socketPath: string): void {
|
|
18
|
+
const mode = secureFileMode();
|
|
19
|
+
if (mode === undefined) return;
|
|
20
|
+
chmodSync(socketPath, mode);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** Remove socket and pid companion files on shutdown. */
|
|
24
|
+
export function cleanupSocketFiles(socketPath: string, pidPath?: string): void {
|
|
25
|
+
for (const path of [socketPath, pidPath]) {
|
|
26
|
+
if (!path) continue;
|
|
27
|
+
try {
|
|
28
|
+
unlinkSync(path);
|
|
29
|
+
} catch {
|
|
30
|
+
// already gone
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import dayjs, { type ConfigType, type Dayjs } from "dayjs";
|
|
2
|
+
|
|
3
|
+
export type TimeInput = ConfigType;
|
|
4
|
+
|
|
5
|
+
/** Current local time. */
|
|
6
|
+
export function now(): Dayjs {
|
|
7
|
+
return dayjs();
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** Unix epoch ms (deadlines, lock files, external APIs). */
|
|
11
|
+
export function nowMs(): number {
|
|
12
|
+
return dayjs().valueOf();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** Parse stored or external input; invalid values fall back to epoch. */
|
|
16
|
+
export function parseTime(input: TimeInput): Dayjs {
|
|
17
|
+
const parsed = dayjs(input);
|
|
18
|
+
return parsed.isValid() ? parsed : dayjs(0);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Local timestamp for MEMORY entries, GC markers, shutdown queue.
|
|
23
|
+
* Format: YYYY-MM-DDTHH:mm:ss.SSS (local wall clock, no Z suffix).
|
|
24
|
+
*/
|
|
25
|
+
export function formatTimestamp(input?: TimeInput): string {
|
|
26
|
+
const t = input === undefined ? dayjs() : parseTime(input);
|
|
27
|
+
return t.format("YYYY-MM-DDTHH:mm:ss.SSS");
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** Local calendar date (e.g. auto-YYYY-MM-DD-*.md). */
|
|
31
|
+
export function formatLocalDate(input?: TimeInput): string {
|
|
32
|
+
const t = input === undefined ? dayjs() : parseTime(input);
|
|
33
|
+
return t.format("YYYY-MM-DD");
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Fallback timestamp when entry metadata is missing. */
|
|
37
|
+
export function epochTimestamp(): string {
|
|
38
|
+
return formatTimestamp(0);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** Whole calendar days from `from` until `to` (local; default `to` = now). */
|
|
42
|
+
export function daysSince(from: TimeInput, to?: TimeInput): number {
|
|
43
|
+
const end = to === undefined ? dayjs() : parseTime(to);
|
|
44
|
+
const start = parseTime(from);
|
|
45
|
+
return end.startOf("day").diff(start.startOf("day"), "day");
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** Milliseconds left until `deadlineMs` (default clock: now). */
|
|
49
|
+
export function remainingMs(deadlineMs: number, atMs: number = nowMs()): number {
|
|
50
|
+
return Math.max(0, deadlineMs - atMs);
|
|
51
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Memory
|
|
2
|
+
|
|
3
|
+
<!-- pi-memory ground truth — cross-session durable notes for the Pi agent.
|
|
4
|
+
Sections: Preferences | Conventions | Findings | Todos
|
|
5
|
+
User entries: /remember → - [user] text <!-- id:... user ts:... -->
|
|
6
|
+
Line cap: 150; overflow spills to auto-*.md in this directory. -->
|
|
7
|
+
|
|
8
|
+
## Preferences
|
|
9
|
+
|
|
10
|
+
<!-- User preferences and defaults. -->
|
|
11
|
+
|
|
12
|
+
## Conventions
|
|
13
|
+
|
|
14
|
+
<!-- Project or workflow conventions. -->
|
|
15
|
+
|
|
16
|
+
## Findings
|
|
17
|
+
|
|
18
|
+
<!-- Durable conclusions, decisions, and facts. -->
|
|
19
|
+
|
|
20
|
+
## Todos
|
|
21
|
+
|
|
22
|
+
<!-- Items to carry forward across sessions. -->
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { LLMClient } from "../trainer/llmExtractor.js";
|
|
2
|
-
import type { MemoryHelperLLM } from "../preflight/detectIntents.js";
|
|
3
|
-
export interface OllamaConfig {
|
|
4
|
-
baseUrl: string;
|
|
5
|
-
model: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const DEFAULT_OLLAMA_CONFIG: OllamaConfig;
|
|
8
|
-
export declare function ollamaHealthCheck(baseUrl: string): Promise<boolean>;
|
|
9
|
-
export declare function createOllamaLLMClient(cfg: OllamaConfig): LLMClient;
|
|
10
|
-
export declare function createOllamaMemoryHelper(cfg: OllamaConfig): MemoryHelperLLM;
|
|
11
|
-
//# sourceMappingURL=ollamaClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ollamaClient.d.ts","sourceRoot":"","sources":["../../src/adapters/ollamaClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAOrE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,qBAAqB,EAAE,YAGnC,CAAC;AAiFF,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAezE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,CAgBlE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,YAAY,GAAG,eAAe,CA2C3E"}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import http from "node:http";
|
|
2
|
-
import https from "node:https";
|
|
3
|
-
import { COMPILE_MEMORY_INTENTS_PARAMETERS, MEMORY_HELPER_TOOL_NAME, } from "../preflight/detectIntents.js";
|
|
4
|
-
export const DEFAULT_OLLAMA_CONFIG = {
|
|
5
|
-
baseUrl: "http://localhost:11434",
|
|
6
|
-
model: "qwen3:8b",
|
|
7
|
-
};
|
|
8
|
-
async function ollamaRequest(baseUrl, path, body) {
|
|
9
|
-
const url = new URL(path, baseUrl);
|
|
10
|
-
const mod = url.protocol === "https:" ? https : http;
|
|
11
|
-
const payload = JSON.stringify(body);
|
|
12
|
-
return new Promise((resolve, reject) => {
|
|
13
|
-
const req = mod.request(url, {
|
|
14
|
-
method: "POST",
|
|
15
|
-
headers: {
|
|
16
|
-
"Content-Type": "application/json",
|
|
17
|
-
"Content-Length": Buffer.byteLength(payload),
|
|
18
|
-
},
|
|
19
|
-
timeout: 60_000,
|
|
20
|
-
}, (res) => {
|
|
21
|
-
const chunks = [];
|
|
22
|
-
res.on("data", (c) => chunks.push(c));
|
|
23
|
-
res.on("end", () => {
|
|
24
|
-
const text = Buffer.concat(chunks).toString("utf8");
|
|
25
|
-
try {
|
|
26
|
-
resolve(JSON.parse(text));
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
reject(new Error(`Ollama: invalid JSON response: ${text.slice(0, 200)}`));
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
req.on("error", (err) => reject(new Error(`Ollama: ${err.message}`)));
|
|
34
|
-
req.on("timeout", () => {
|
|
35
|
-
req.destroy();
|
|
36
|
-
reject(new Error("Ollama: request timeout"));
|
|
37
|
-
});
|
|
38
|
-
req.write(payload);
|
|
39
|
-
req.end();
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
export async function ollamaHealthCheck(baseUrl) {
|
|
43
|
-
try {
|
|
44
|
-
const url = new URL("/api/tags", baseUrl);
|
|
45
|
-
const mod = url.protocol === "https:" ? https : http;
|
|
46
|
-
return new Promise((resolve) => {
|
|
47
|
-
const req = mod.get(url, { timeout: 3_000 }, (res) => {
|
|
48
|
-
res.resume();
|
|
49
|
-
resolve(res.statusCode === 200);
|
|
50
|
-
});
|
|
51
|
-
req.on("error", () => resolve(false));
|
|
52
|
-
req.on("timeout", () => { req.destroy(); resolve(false); });
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
catch {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
export function createOllamaLLMClient(cfg) {
|
|
60
|
-
return {
|
|
61
|
-
async complete(prompt) {
|
|
62
|
-
const body = {
|
|
63
|
-
model: cfg.model,
|
|
64
|
-
messages: [{ role: "user", content: prompt }],
|
|
65
|
-
stream: false,
|
|
66
|
-
options: { num_predict: 8192 },
|
|
67
|
-
};
|
|
68
|
-
const resp = await ollamaRequest(cfg.baseUrl, "/api/chat", body);
|
|
69
|
-
if (resp.error)
|
|
70
|
-
throw new Error(`Ollama: ${resp.error}`);
|
|
71
|
-
const text = resp.message?.content?.trim();
|
|
72
|
-
if (!text)
|
|
73
|
-
throw new Error("Ollama: empty response");
|
|
74
|
-
return text;
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
export function createOllamaMemoryHelper(cfg) {
|
|
79
|
-
return {
|
|
80
|
-
async compileIntents(text) {
|
|
81
|
-
const body = {
|
|
82
|
-
model: cfg.model,
|
|
83
|
-
messages: [
|
|
84
|
-
{
|
|
85
|
-
role: "user",
|
|
86
|
-
content: `Analyze whether the user message requires recalling private episodic memory.\n\n<message>\n${text}\n</message>`,
|
|
87
|
-
},
|
|
88
|
-
],
|
|
89
|
-
stream: false,
|
|
90
|
-
tools: [
|
|
91
|
-
{
|
|
92
|
-
type: "function",
|
|
93
|
-
function: {
|
|
94
|
-
name: MEMORY_HELPER_TOOL_NAME,
|
|
95
|
-
description: "Decide whether to recall private episodic memory and compile structured query intents.",
|
|
96
|
-
parameters: COMPILE_MEMORY_INTENTS_PARAMETERS,
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
],
|
|
100
|
-
options: { num_predict: 2048 },
|
|
101
|
-
};
|
|
102
|
-
const resp = await ollamaRequest(cfg.baseUrl, "/api/chat", body);
|
|
103
|
-
if (resp.error)
|
|
104
|
-
throw new Error(`Ollama: ${resp.error}`);
|
|
105
|
-
const toolCall = resp.message?.tool_calls?.[0]?.function;
|
|
106
|
-
if (toolCall?.name === MEMORY_HELPER_TOOL_NAME && toolCall.arguments) {
|
|
107
|
-
return toolCall.arguments;
|
|
108
|
-
}
|
|
109
|
-
const raw = resp.message?.content?.trim();
|
|
110
|
-
if (!raw)
|
|
111
|
-
return { should_recall: false, intents: [] };
|
|
112
|
-
try {
|
|
113
|
-
const cleaned = raw.replace(/^```(?:json)?\s*/m, "").replace(/\s*```\s*$/m, "").trim();
|
|
114
|
-
return JSON.parse(cleaned);
|
|
115
|
-
}
|
|
116
|
-
catch {
|
|
117
|
-
return { should_recall: false, intents: [] };
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=ollamaClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ollamaClient.js","sourceRoot":"","sources":["../../src/adapters/ollamaClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { LLMClient } from "../trainer/llmExtractor.js";
|
|
2
|
-
import type { MemoryHelperLLM } from "../preflight/detectIntents.js";
|
|
3
|
-
export interface OpenAICompatConfig {
|
|
4
|
-
baseUrl: string;
|
|
5
|
-
model: string;
|
|
6
|
-
apiKey?: string;
|
|
7
|
-
}
|
|
8
|
-
export declare function openaiCompatHealthCheck(baseUrl: string): Promise<boolean>;
|
|
9
|
-
export declare function createOpenAICompatLLMClient(cfg: OpenAICompatConfig): LLMClient;
|
|
10
|
-
export declare function createOpenAICompatMemoryHelper(cfg: OpenAICompatConfig): MemoryHelperLLM;
|
|
11
|
-
//# sourceMappingURL=openaiCompatClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openaiCompatClient.d.ts","sourceRoot":"","sources":["../../src/adapters/openaiCompatClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAOrE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyDD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAe/E;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,kBAAkB,GAAG,SAAS,CAgB9E;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,kBAAkB,GAAG,eAAe,CA+CvF"}
|