@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debugLog.js","sourceRoot":"","sources":["../../src/utils/debugLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,UAAU,oBAAoB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACvE,OAAO,GAAG,CAAC,eAAe,KAAK,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC;AACvE,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CACzB,KAAa,EACb,OAAe,EACf,MAAqE,EACrE,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;QAAE,OAAO;IAEvC,MAAM,MAAM,GACV,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QACtC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;QACrF,CAAC,CAAC,EAAE,CAAC;IAET,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Cross-platform path join (`\` on Windows, `/` on POSIX). */
|
|
2
|
+
export declare function joinPath(...segments: string[]): string;
|
|
3
|
+
export declare function pathBasename(filePath: string): string;
|
|
4
|
+
export declare function pathDirname(filePath: string): string;
|
|
5
|
+
export declare function pathExists(filePath: string): boolean;
|
|
6
|
+
/** True when the current process can read the path. */
|
|
7
|
+
export declare function canRead(filePath: string): boolean;
|
|
8
|
+
export declare function isENOENT(error: unknown): boolean;
|
|
9
|
+
/** Create directory tree; Unix applies secure mode, Windows omits mode. */
|
|
10
|
+
export declare function ensureDir(dirPath: string): Promise<void>;
|
|
11
|
+
export declare function ensureDirSync(dirPath: string): void;
|
|
12
|
+
/** Read UTF-8 text; missing file → empty string. */
|
|
13
|
+
export declare function readText(filePath: string): Promise<string>;
|
|
14
|
+
/** Read UTF-8 text; propagates ENOENT. */
|
|
15
|
+
export declare function readTextRequired(filePath: string): Promise<string>;
|
|
16
|
+
/** Write UTF-8 text; creates parent directories. */
|
|
17
|
+
export declare function writeText(filePath: string, content: string): Promise<void>;
|
|
18
|
+
/** Append UTF-8 text; creates parent directories. */
|
|
19
|
+
export declare function appendText(filePath: string, content: string): Promise<void>;
|
|
20
|
+
/** List directory entries; missing dir → empty array. */
|
|
21
|
+
export declare function listDir(dirPath: string): Promise<string[]>;
|
|
22
|
+
/** Delete file; missing file → no-op. */
|
|
23
|
+
export declare function removeFile(filePath: string): Promise<void>;
|
|
24
|
+
/** Ensure file exists (empty) for lockfile targets. */
|
|
25
|
+
export declare function ensureFile(filePath: string): Promise<void>;
|
|
26
|
+
//# sourceMappingURL=fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAcA,+DAA+D;AAC/D,wBAAgB,QAAQ,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEtD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,uDAAuD;AACvD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOjD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEhD;AAED,2EAA2E;AAC3E,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED,oDAAoD;AACpD,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOhE;AAED,0CAA0C;AAC1C,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAExE;AAED,oDAAoD;AACpD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhF;AAED,qDAAqD;AACrD,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjF;AAED,yDAAyD;AACzD,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOhE;AAED,yCAAyC;AACzC,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhE;AAED,uDAAuD;AACvD,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhE"}
|
package/dist/utils/fs.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/** Runtime fs helpers. Pre-build postinstall mirror: scripts/platform-fs.mjs */
|
|
2
|
+
import { accessSync, existsSync, mkdirSync, constants } from "node:fs";
|
|
3
|
+
import { appendFile, mkdir, readFile, readdir, unlink, writeFile, } from "node:fs/promises";
|
|
4
|
+
import { basename, dirname, join } from "node:path";
|
|
5
|
+
import { expandHomePath, mkdirOptions } from "./paths.js";
|
|
6
|
+
/** Cross-platform path join (`\` on Windows, `/` on POSIX). */
|
|
7
|
+
export function joinPath(...segments) {
|
|
8
|
+
return join(...segments);
|
|
9
|
+
}
|
|
10
|
+
export function pathBasename(filePath) {
|
|
11
|
+
return basename(filePath);
|
|
12
|
+
}
|
|
13
|
+
export function pathDirname(filePath) {
|
|
14
|
+
return dirname(filePath);
|
|
15
|
+
}
|
|
16
|
+
export function pathExists(filePath) {
|
|
17
|
+
return existsSync(expandHomePath(filePath));
|
|
18
|
+
}
|
|
19
|
+
/** True when the current process can read the path. */
|
|
20
|
+
export function canRead(filePath) {
|
|
21
|
+
try {
|
|
22
|
+
accessSync(expandHomePath(filePath), constants.R_OK);
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export function isENOENT(error) {
|
|
30
|
+
return error?.code === "ENOENT";
|
|
31
|
+
}
|
|
32
|
+
/** Create directory tree; Unix applies secure mode, Windows omits mode. */
|
|
33
|
+
export async function ensureDir(dirPath) {
|
|
34
|
+
await mkdir(expandHomePath(dirPath), mkdirOptions());
|
|
35
|
+
}
|
|
36
|
+
export function ensureDirSync(dirPath) {
|
|
37
|
+
mkdirSync(expandHomePath(dirPath), mkdirOptions());
|
|
38
|
+
}
|
|
39
|
+
/** Read UTF-8 text; missing file → empty string. */
|
|
40
|
+
export async function readText(filePath) {
|
|
41
|
+
try {
|
|
42
|
+
return await readFile(expandHomePath(filePath), "utf8");
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
if (isENOENT(error))
|
|
46
|
+
return "";
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/** Read UTF-8 text; propagates ENOENT. */
|
|
51
|
+
export async function readTextRequired(filePath) {
|
|
52
|
+
return readFile(expandHomePath(filePath), "utf8");
|
|
53
|
+
}
|
|
54
|
+
/** Write UTF-8 text; creates parent directories. */
|
|
55
|
+
export async function writeText(filePath, content) {
|
|
56
|
+
const resolved = expandHomePath(filePath);
|
|
57
|
+
await ensureDir(dirname(resolved));
|
|
58
|
+
await writeFile(resolved, content, "utf8");
|
|
59
|
+
}
|
|
60
|
+
/** Append UTF-8 text; creates parent directories. */
|
|
61
|
+
export async function appendText(filePath, content) {
|
|
62
|
+
const resolved = expandHomePath(filePath);
|
|
63
|
+
await ensureDir(dirname(resolved));
|
|
64
|
+
await appendFile(resolved, content, "utf8");
|
|
65
|
+
}
|
|
66
|
+
/** List directory entries; missing dir → empty array. */
|
|
67
|
+
export async function listDir(dirPath) {
|
|
68
|
+
try {
|
|
69
|
+
return await readdir(expandHomePath(dirPath));
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
if (isENOENT(error))
|
|
73
|
+
return [];
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Delete file; missing file → no-op. */
|
|
78
|
+
export async function removeFile(filePath) {
|
|
79
|
+
try {
|
|
80
|
+
await unlink(expandHomePath(filePath));
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
if (isENOENT(error))
|
|
84
|
+
return;
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/** Ensure file exists (empty) for lockfile targets. */
|
|
89
|
+
export async function ensureFile(filePath) {
|
|
90
|
+
try {
|
|
91
|
+
await readTextRequired(filePath);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
if (isENOENT(error)) {
|
|
95
|
+
await writeText(filePath, "");
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EACL,UAAU,EACV,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D,+DAA+D;AAC/D,MAAM,UAAU,QAAQ,CAAC,GAAG,QAAkB;IAC5C,OAAO,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,OAAO,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAQ,KAA+B,EAAE,IAAI,KAAK,QAAQ,CAAC;AAC7D,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC/B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IACrD,OAAO,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;IAC/D,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnC,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,qDAAqD;AACrD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,OAAe;IAChE,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnC,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe;IAC3C,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC/B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO;QAC5B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { getPlatform, isMacOS, isUnixLike, isWindows, type PiMemoryPlatform, } from "./platform.js";
|
|
2
|
+
export { CONFIG_DIR_NAME, defaultMemoryAgentDir, defaultPiConfigDir, defaultPiMemoryEnvFile, defaultPiLogsDir, expandHomePath, getAgentDir, mkdirOptions, secureDirMode, secureFileMode, } from "./paths.js";
|
|
3
|
+
export { appendText, canRead, ensureDir, ensureDirSync, ensureFile, isENOENT, joinPath, listDir, pathBasename, pathDirname, pathExists, readText, readTextRequired, removeFile, writeText, } from "./fs.js";
|
|
4
|
+
export { cleanupSocketFiles, removeSocketFile, secureSocketPath } from "./socket.js";
|
|
5
|
+
export { debugMemory, isMemoryDebugEnabled } from "./debugLog.js";
|
|
6
|
+
export { daysSince, epochTimestamp, formatLocalDate, formatTimestamp, now, nowMs, parseTime, remainingMs, type TimeInput, } from "./time.js";
|
|
7
|
+
export { buildConsolidateCliArgs, buildMaintenanceCliArgs, defaultConsolidateSchedulerPaths, formatConsolidateCronLine, formatMaintenanceCronLine, getConsolidateSchedulerKind, getConsolidateTemplateNames, type ConsolidateCliInvocation, type ConsolidateSchedulerKind, type ConsolidateSchedulerPaths, type ConsolidateTemplateName, } from "./scheduler.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,EACT,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EACL,SAAS,EACT,cAAc,EACd,eAAe,EACf,eAAe,EACf,GAAG,EACH,KAAK,EACL,SAAS,EACT,WAAW,EACX,KAAK,SAAS,GACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,GAC7B,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { getPlatform, isMacOS, isUnixLike, isWindows, } from "./platform.js";
|
|
2
|
+
export { CONFIG_DIR_NAME, defaultMemoryAgentDir, defaultPiConfigDir, defaultPiMemoryEnvFile, defaultPiLogsDir, expandHomePath, getAgentDir, mkdirOptions, secureDirMode, secureFileMode, } from "./paths.js";
|
|
3
|
+
export { appendText, canRead, ensureDir, ensureDirSync, ensureFile, isENOENT, joinPath, listDir, pathBasename, pathDirname, pathExists, readText, readTextRequired, removeFile, writeText, } from "./fs.js";
|
|
4
|
+
export { cleanupSocketFiles, removeSocketFile, secureSocketPath } from "./socket.js";
|
|
5
|
+
export { debugMemory, isMemoryDebugEnabled } from "./debugLog.js";
|
|
6
|
+
export { daysSince, epochTimestamp, formatLocalDate, formatTimestamp, now, nowMs, parseTime, remainingMs, } from "./time.js";
|
|
7
|
+
export { buildConsolidateCliArgs, buildMaintenanceCliArgs, defaultConsolidateSchedulerPaths, formatConsolidateCronLine, formatMaintenanceCronLine, getConsolidateSchedulerKind, getConsolidateTemplateNames, } from "./scheduler.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,GAEV,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EACL,SAAS,EACT,cAAc,EACd,eAAe,EACf,eAAe,EACf,GAAG,EACH,KAAK,EACL,SAAS,EACT,WAAW,GAEZ,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,GAK5B,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CONFIG_DIR_NAME, getAgentDir } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
export { CONFIG_DIR_NAME, getAgentDir };
|
|
3
|
+
/** Expand leading `~` or `~/` using the current user's home directory. */
|
|
4
|
+
export declare function expandHomePath(input: string): string;
|
|
5
|
+
/** Pi user config root (~/.pi). Uses Pi's CONFIG_DIR_NAME. */
|
|
6
|
+
export declare function defaultPiConfigDir(): string;
|
|
7
|
+
/** Memory data root: ~/.pi/pi-memory-data */
|
|
8
|
+
export declare function defaultMemoryAgentDir(): string;
|
|
9
|
+
/** pi-memory config: ~/.pi/agent/pi-memory.env */
|
|
10
|
+
export declare function defaultPiMemoryEnvFile(): string;
|
|
11
|
+
export declare function defaultPiLogsDir(): string;
|
|
12
|
+
export declare function defaultConsolidateLogPath(): string;
|
|
13
|
+
export declare function defaultConsolidateErrLogPath(): string;
|
|
14
|
+
/** Directory mode for agent / socket parent dirs (Unix only; ignored on Windows). */
|
|
15
|
+
export declare function secureDirMode(): number | undefined;
|
|
16
|
+
/** File mode for socket files (Unix only; ignored on Windows). */
|
|
17
|
+
export declare function secureFileMode(): number | undefined;
|
|
18
|
+
export declare function mkdirOptions(): {
|
|
19
|
+
recursive: true;
|
|
20
|
+
mode?: number;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAc/E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;AAExC,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,6CAA6C;AAC7C,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,kDAAkD;AAClD,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,qFAAqF;AACrF,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAElD;AAED,kEAAkE;AAClE,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnD;AAED,wBAAgB,YAAY,IAAI;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAGjE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
import { CONSOLIDATE_ERR_LOG_FILE, CONSOLIDATE_LOG_FILE, PI_MEMORY_DATA_SUBDIR, PI_MEMORY_ENV_FILE_NAME, PI_LOGS_SUBDIR, } from "../constants/paths.js";
|
|
5
|
+
import { SECURE_DIR_MODE, SECURE_FILE_MODE } from "../constants/security.js";
|
|
6
|
+
import { isWindows } from "./platform.js";
|
|
7
|
+
export { CONFIG_DIR_NAME, getAgentDir };
|
|
8
|
+
/** Expand leading `~` or `~/` using the current user's home directory. */
|
|
9
|
+
export function expandHomePath(input) {
|
|
10
|
+
const trimmed = input.trim();
|
|
11
|
+
if (trimmed === "~")
|
|
12
|
+
return homedir();
|
|
13
|
+
if (trimmed.startsWith("~/") || trimmed.startsWith("~\\")) {
|
|
14
|
+
return join(homedir(), trimmed.slice(2));
|
|
15
|
+
}
|
|
16
|
+
return trimmed;
|
|
17
|
+
}
|
|
18
|
+
/** Pi user config root (~/.pi). Uses Pi's CONFIG_DIR_NAME. */
|
|
19
|
+
export function defaultPiConfigDir() {
|
|
20
|
+
return join(homedir(), CONFIG_DIR_NAME);
|
|
21
|
+
}
|
|
22
|
+
/** Memory data root: ~/.pi/pi-memory-data */
|
|
23
|
+
export function defaultMemoryAgentDir() {
|
|
24
|
+
return join(defaultPiConfigDir(), PI_MEMORY_DATA_SUBDIR);
|
|
25
|
+
}
|
|
26
|
+
/** pi-memory config: ~/.pi/agent/pi-memory.env */
|
|
27
|
+
export function defaultPiMemoryEnvFile() {
|
|
28
|
+
return join(getAgentDir(), PI_MEMORY_ENV_FILE_NAME);
|
|
29
|
+
}
|
|
30
|
+
export function defaultPiLogsDir() {
|
|
31
|
+
return join(defaultPiConfigDir(), PI_LOGS_SUBDIR);
|
|
32
|
+
}
|
|
33
|
+
export function defaultConsolidateLogPath() {
|
|
34
|
+
return join(defaultPiLogsDir(), CONSOLIDATE_LOG_FILE);
|
|
35
|
+
}
|
|
36
|
+
export function defaultConsolidateErrLogPath() {
|
|
37
|
+
return join(defaultPiLogsDir(), CONSOLIDATE_ERR_LOG_FILE);
|
|
38
|
+
}
|
|
39
|
+
/** Directory mode for agent / socket parent dirs (Unix only; ignored on Windows). */
|
|
40
|
+
export function secureDirMode() {
|
|
41
|
+
return isWindows() ? undefined : SECURE_DIR_MODE;
|
|
42
|
+
}
|
|
43
|
+
/** File mode for socket files (Unix only; ignored on Windows). */
|
|
44
|
+
export function secureFileMode() {
|
|
45
|
+
return isWindows() ? undefined : SECURE_FILE_MODE;
|
|
46
|
+
}
|
|
47
|
+
export function mkdirOptions() {
|
|
48
|
+
const mode = secureDirMode();
|
|
49
|
+
return mode === undefined ? { recursive: true } : { recursive: true, mode };
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;AAExC,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,OAAO,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAC1C,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,CAAC,kBAAkB,EAAE,EAAE,qBAAqB,CAAC,CAAC;AAC3D,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,sBAAsB;IACpC,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,kBAAkB,EAAE,EAAE,cAAc,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE,oBAAoB,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE,wBAAwB,CAAC,CAAC;AAC5D,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,aAAa;IAC3B,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;AACnD,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,cAAc;IAC5B,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type PiMemoryPlatform = "darwin" | "win32" | "other";
|
|
2
|
+
export declare function getPlatform(): PiMemoryPlatform;
|
|
3
|
+
export declare function isWindows(): boolean;
|
|
4
|
+
export declare function isMacOS(): boolean;
|
|
5
|
+
/** Unix-like platforms where chmod / UDS cleanup apply. */
|
|
6
|
+
export declare function isUnixLike(): boolean;
|
|
7
|
+
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5D,wBAAgB,WAAW,IAAI,gBAAgB,CAI9C;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,IAAI,OAAO,CAEpC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function getPlatform() {
|
|
2
|
+
if (process.platform === "darwin")
|
|
3
|
+
return "darwin";
|
|
4
|
+
if (process.platform === "win32")
|
|
5
|
+
return "win32";
|
|
6
|
+
return "other";
|
|
7
|
+
}
|
|
8
|
+
export function isWindows() {
|
|
9
|
+
return process.platform === "win32";
|
|
10
|
+
}
|
|
11
|
+
export function isMacOS() {
|
|
12
|
+
return process.platform === "darwin";
|
|
13
|
+
}
|
|
14
|
+
/** Unix-like platforms where chmod / UDS cleanup apply. */
|
|
15
|
+
export function isUnixLike() {
|
|
16
|
+
return !isWindows();
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW;IACzB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACjD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACvC,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,SAAS,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LAUNCHD_LABEL, SCHEDULER_TEMPLATE_FILES, SCHTASKS_TASK_NAME } from "../constants/paths.js";
|
|
2
|
+
import { isMacOS, isWindows, type PiMemoryPlatform } from "./platform.js";
|
|
3
|
+
export type ConsolidateSchedulerKind = "launchd" | "crontab" | "schtasks";
|
|
4
|
+
/** Recommended OS scheduler for daily consolidate on this platform. */
|
|
5
|
+
export declare function getConsolidateSchedulerKind(platform?: PiMemoryPlatform): ConsolidateSchedulerKind;
|
|
6
|
+
export type ConsolidateSchedulerPaths = {
|
|
7
|
+
agentDir: string;
|
|
8
|
+
envFile: string;
|
|
9
|
+
logsDir: string;
|
|
10
|
+
stdoutLog: string;
|
|
11
|
+
stderrLog: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function defaultConsolidateSchedulerPaths(): ConsolidateSchedulerPaths;
|
|
14
|
+
export type ConsolidateCliInvocation = {
|
|
15
|
+
nodePath: string;
|
|
16
|
+
cliPath: string;
|
|
17
|
+
cron: boolean;
|
|
18
|
+
verbose: boolean;
|
|
19
|
+
agentDir?: string;
|
|
20
|
+
};
|
|
21
|
+
/** argv for `pi-memory maintenance` (OS scheduler / wrapper scripts). */
|
|
22
|
+
export declare function buildMaintenanceCliArgs(opts: Pick<ConsolidateCliInvocation, "cron" | "verbose" | "agentDir">): string[];
|
|
23
|
+
/** @deprecated Prefer buildMaintenanceCliArgs for OS schedulers. */
|
|
24
|
+
export declare function buildConsolidateCliArgs(opts: Pick<ConsolidateCliInvocation, "cron" | "verbose" | "agentDir">): string[];
|
|
25
|
+
/** Single-line shell command (macOS / Linux crontab). */
|
|
26
|
+
export declare function formatMaintenanceCronLine(opts: ConsolidateCliInvocation & ConsolidateSchedulerPaths): string;
|
|
27
|
+
/** @deprecated Prefer formatMaintenanceCronLine. */
|
|
28
|
+
export declare function formatConsolidateCronLine(opts: ConsolidateCliInvocation & ConsolidateSchedulerPaths): string;
|
|
29
|
+
export type ConsolidateTemplateName = (typeof SCHEDULER_TEMPLATE_FILES)[keyof typeof SCHEDULER_TEMPLATE_FILES];
|
|
30
|
+
/** Template file basename shipped under templates/ for this platform. */
|
|
31
|
+
export declare function getConsolidateTemplateNames(platform?: PiMemoryPlatform): ConsolidateTemplateName[];
|
|
32
|
+
export { LAUNCHD_LABEL, SCHEDULER_TEMPLATE_FILES, SCHTASKS_TASK_NAME, isMacOS, isWindows };
|
|
33
|
+
//# sourceMappingURL=scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/utils/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,EAAe,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEvF,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1E,uEAAuE;AACvE,wBAAgB,2BAA2B,CAAC,QAAQ,GAAE,gBAAgC,GAAG,wBAAwB,CAIhH;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,gCAAgC,IAAI,yBAAyB,CAQ5E;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,yEAAyE;AACzE,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC,GACpE,MAAM,EAAE,CAMV;AAED,oEAAoE;AACpE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC,GAAG,MAAM,EAAE,CAEvH;AAED,yDAAyD;AACzD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,wBAAwB,GAAG,yBAAyB,GAAG,MAAM,CAU5G;AAED,oDAAoD;AACpD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,wBAAwB,GAAG,yBAAyB,GAAG,MAAM,CAE5G;AAED,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAE3E,yEAAyE;AACzE,wBAAgB,2BAA2B,CAAC,QAAQ,GAAE,gBAAgC,GAAG,uBAAuB,EAAE,CAQjH;AAED,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { LAUNCHD_LABEL, SCHEDULER_TEMPLATE_FILES, SCHTASKS_TASK_NAME, } from "../constants/paths.js";
|
|
2
|
+
import { defaultConsolidateErrLogPath, defaultConsolidateLogPath, defaultMemoryAgentDir, defaultPiMemoryEnvFile, defaultPiLogsDir, } from "./paths.js";
|
|
3
|
+
import { getPlatform, isMacOS, isWindows } from "./platform.js";
|
|
4
|
+
/** Recommended OS scheduler for daily consolidate on this platform. */
|
|
5
|
+
export function getConsolidateSchedulerKind(platform = getPlatform()) {
|
|
6
|
+
if (platform === "darwin")
|
|
7
|
+
return "launchd";
|
|
8
|
+
if (platform === "win32")
|
|
9
|
+
return "schtasks";
|
|
10
|
+
return "crontab";
|
|
11
|
+
}
|
|
12
|
+
export function defaultConsolidateSchedulerPaths() {
|
|
13
|
+
return {
|
|
14
|
+
agentDir: defaultMemoryAgentDir(),
|
|
15
|
+
envFile: defaultPiMemoryEnvFile(),
|
|
16
|
+
logsDir: defaultPiLogsDir(),
|
|
17
|
+
stdoutLog: defaultConsolidateLogPath(),
|
|
18
|
+
stderrLog: defaultConsolidateErrLogPath(),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** argv for `pi-memory maintenance` (OS scheduler / wrapper scripts). */
|
|
22
|
+
export function buildMaintenanceCliArgs(opts) {
|
|
23
|
+
const args = ["maintenance"];
|
|
24
|
+
if (opts.cron)
|
|
25
|
+
args.push("--cron");
|
|
26
|
+
if (opts.verbose)
|
|
27
|
+
args.push("--verbose");
|
|
28
|
+
if (opts.agentDir)
|
|
29
|
+
args.push("--agent-dir", opts.agentDir);
|
|
30
|
+
return args;
|
|
31
|
+
}
|
|
32
|
+
/** @deprecated Prefer buildMaintenanceCliArgs for OS schedulers. */
|
|
33
|
+
export function buildConsolidateCliArgs(opts) {
|
|
34
|
+
return buildMaintenanceCliArgs(opts);
|
|
35
|
+
}
|
|
36
|
+
/** Single-line shell command (macOS / Linux crontab). */
|
|
37
|
+
export function formatMaintenanceCronLine(opts) {
|
|
38
|
+
const args = buildMaintenanceCliArgs(opts).join(" ");
|
|
39
|
+
return [
|
|
40
|
+
`PI_MEMORY_ENV_FILE=${opts.envFile}`,
|
|
41
|
+
`PI_MEMORY_AGENT_DIR=${opts.agentDir}`,
|
|
42
|
+
opts.nodePath,
|
|
43
|
+
opts.cliPath,
|
|
44
|
+
args,
|
|
45
|
+
`>> ${opts.stdoutLog} 2>&1`,
|
|
46
|
+
].join(" ");
|
|
47
|
+
}
|
|
48
|
+
/** @deprecated Prefer formatMaintenanceCronLine. */
|
|
49
|
+
export function formatConsolidateCronLine(opts) {
|
|
50
|
+
return formatMaintenanceCronLine(opts);
|
|
51
|
+
}
|
|
52
|
+
/** Template file basename shipped under templates/ for this platform. */
|
|
53
|
+
export function getConsolidateTemplateNames(platform = getPlatform()) {
|
|
54
|
+
if (platform === "darwin") {
|
|
55
|
+
return [SCHEDULER_TEMPLATE_FILES.launchd, SCHEDULER_TEMPLATE_FILES.crontab];
|
|
56
|
+
}
|
|
57
|
+
if (platform === "win32") {
|
|
58
|
+
return [SCHEDULER_TEMPLATE_FILES.windowsCmd, SCHEDULER_TEMPLATE_FILES.windowsSchtasks];
|
|
59
|
+
}
|
|
60
|
+
return [SCHEDULER_TEMPLATE_FILES.crontab];
|
|
61
|
+
}
|
|
62
|
+
export { LAUNCHD_LABEL, SCHEDULER_TEMPLATE_FILES, SCHTASKS_TASK_NAME, isMacOS, isWindows };
|
|
63
|
+
//# sourceMappingURL=scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/utils/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAyB,MAAM,eAAe,CAAC;AAIvF,uEAAuE;AACvE,MAAM,UAAU,2BAA2B,CAAC,WAA6B,WAAW,EAAE;IACpF,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,UAAU,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC;AAUD,MAAM,UAAU,gCAAgC;IAC9C,OAAO;QACL,QAAQ,EAAE,qBAAqB,EAAE;QACjC,OAAO,EAAE,sBAAsB,EAAE;QACjC,OAAO,EAAE,gBAAgB,EAAE;QAC3B,SAAS,EAAE,yBAAyB,EAAE;QACtC,SAAS,EAAE,4BAA4B,EAAE;KAC1C,CAAC;AACJ,CAAC;AAUD,yEAAyE;AACzE,MAAM,UAAU,uBAAuB,CACrC,IAAqE;IAErE,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7B,IAAI,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,uBAAuB,CAAC,IAAqE;IAC3G,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,yBAAyB,CAAC,IAA0D;IAClG,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,OAAO;QACL,sBAAsB,IAAI,CAAC,OAAO,EAAE;QACpC,uBAAuB,IAAI,CAAC,QAAQ,EAAE;QACtC,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,OAAO;QACZ,IAAI;QACJ,MAAM,IAAI,CAAC,SAAS,OAAO;KAC5B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,yBAAyB,CAAC,IAA0D;IAClG,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAKD,yEAAyE;AACzE,MAAM,UAAU,2BAA2B,CAAC,WAA6B,WAAW,EAAE;IACpF,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,wBAAwB,CAAC,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,wBAAwB,CAAC,UAAU,EAAE,wBAAwB,CAAC,eAAe,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Remove stale socket file before bind (Unix domain sockets only). */
|
|
2
|
+
export declare function removeSocketFile(socketPath: string): void;
|
|
3
|
+
/** Restrict socket permissions after bind (Unix only). */
|
|
4
|
+
export declare function secureSocketPath(socketPath: string): void;
|
|
5
|
+
/** Remove socket and pid companion files on shutdown. */
|
|
6
|
+
export declare function cleanupSocketFiles(socketPath: string, pidPath?: string): void;
|
|
7
|
+
//# sourceMappingURL=socket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/utils/socket.ts"],"names":[],"mappings":"AAKA,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAOzD;AAED,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAIzD;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAS7E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { chmodSync, unlinkSync } from "node:fs";
|
|
2
|
+
import { secureFileMode } from "./paths.js";
|
|
3
|
+
import { isUnixLike } from "./platform.js";
|
|
4
|
+
/** Remove stale socket file before bind (Unix domain sockets only). */
|
|
5
|
+
export function removeSocketFile(socketPath) {
|
|
6
|
+
if (!isUnixLike())
|
|
7
|
+
return;
|
|
8
|
+
try {
|
|
9
|
+
unlinkSync(socketPath);
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
// ENOENT or in-use; listen() will surface real errors
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/** Restrict socket permissions after bind (Unix only). */
|
|
16
|
+
export function secureSocketPath(socketPath) {
|
|
17
|
+
const mode = secureFileMode();
|
|
18
|
+
if (mode === undefined)
|
|
19
|
+
return;
|
|
20
|
+
chmodSync(socketPath, mode);
|
|
21
|
+
}
|
|
22
|
+
/** Remove socket and pid companion files on shutdown. */
|
|
23
|
+
export function cleanupSocketFiles(socketPath, pidPath) {
|
|
24
|
+
for (const path of [socketPath, pidPath]) {
|
|
25
|
+
if (!path)
|
|
26
|
+
continue;
|
|
27
|
+
try {
|
|
28
|
+
unlinkSync(path);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// already gone
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=socket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/utils/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,IAAI,CAAC,UAAU,EAAE;QAAE,OAAO;IAC1B,IAAI,CAAC;QACH,UAAU,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;IACxD,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO;IAC/B,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,OAAgB;IACrE,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type ConfigType, type Dayjs } from "dayjs";
|
|
2
|
+
export type TimeInput = ConfigType;
|
|
3
|
+
/** Current local time. */
|
|
4
|
+
export declare function now(): Dayjs;
|
|
5
|
+
/** Unix epoch ms (deadlines, lock files, external APIs). */
|
|
6
|
+
export declare function nowMs(): number;
|
|
7
|
+
/** Parse stored or external input; invalid values fall back to epoch. */
|
|
8
|
+
export declare function parseTime(input: TimeInput): Dayjs;
|
|
9
|
+
/**
|
|
10
|
+
* Local timestamp for MEMORY entries, GC markers, shutdown queue.
|
|
11
|
+
* Format: YYYY-MM-DDTHH:mm:ss.SSS (local wall clock, no Z suffix).
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatTimestamp(input?: TimeInput): string;
|
|
14
|
+
/** Local calendar date (e.g. auto-YYYY-MM-DD-*.md). */
|
|
15
|
+
export declare function formatLocalDate(input?: TimeInput): string;
|
|
16
|
+
/** Fallback timestamp when entry metadata is missing. */
|
|
17
|
+
export declare function epochTimestamp(): string;
|
|
18
|
+
/** Whole calendar days from `from` until `to` (local; default `to` = now). */
|
|
19
|
+
export declare function daysSince(from: TimeInput, to?: TimeInput): number;
|
|
20
|
+
/** Milliseconds left until `deadlineMs` (default clock: now). */
|
|
21
|
+
export declare function remainingMs(deadlineMs: number, atMs?: number): number;
|
|
22
|
+
//# sourceMappingURL=time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/utils/time.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAE3D,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC;AAEnC,0BAA0B;AAC1B,wBAAgB,GAAG,IAAI,KAAK,CAE3B;AAED,4DAA4D;AAC5D,wBAAgB,KAAK,IAAI,MAAM,CAE9B;AAED,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAGjD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAGzD;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAGzD;AAED,yDAAyD;AACzD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAIjE;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,MAAgB,GAAG,MAAM,CAE9E"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import dayjs from "dayjs";
|
|
2
|
+
/** Current local time. */
|
|
3
|
+
export function now() {
|
|
4
|
+
return dayjs();
|
|
5
|
+
}
|
|
6
|
+
/** Unix epoch ms (deadlines, lock files, external APIs). */
|
|
7
|
+
export function nowMs() {
|
|
8
|
+
return dayjs().valueOf();
|
|
9
|
+
}
|
|
10
|
+
/** Parse stored or external input; invalid values fall back to epoch. */
|
|
11
|
+
export function parseTime(input) {
|
|
12
|
+
const parsed = dayjs(input);
|
|
13
|
+
return parsed.isValid() ? parsed : dayjs(0);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Local timestamp for MEMORY entries, GC markers, shutdown queue.
|
|
17
|
+
* Format: YYYY-MM-DDTHH:mm:ss.SSS (local wall clock, no Z suffix).
|
|
18
|
+
*/
|
|
19
|
+
export function formatTimestamp(input) {
|
|
20
|
+
const t = input === undefined ? dayjs() : parseTime(input);
|
|
21
|
+
return t.format("YYYY-MM-DDTHH:mm:ss.SSS");
|
|
22
|
+
}
|
|
23
|
+
/** Local calendar date (e.g. auto-YYYY-MM-DD-*.md). */
|
|
24
|
+
export function formatLocalDate(input) {
|
|
25
|
+
const t = input === undefined ? dayjs() : parseTime(input);
|
|
26
|
+
return t.format("YYYY-MM-DD");
|
|
27
|
+
}
|
|
28
|
+
/** Fallback timestamp when entry metadata is missing. */
|
|
29
|
+
export function epochTimestamp() {
|
|
30
|
+
return formatTimestamp(0);
|
|
31
|
+
}
|
|
32
|
+
/** Whole calendar days from `from` until `to` (local; default `to` = now). */
|
|
33
|
+
export function daysSince(from, to) {
|
|
34
|
+
const end = to === undefined ? dayjs() : parseTime(to);
|
|
35
|
+
const start = parseTime(from);
|
|
36
|
+
return end.startOf("day").diff(start.startOf("day"), "day");
|
|
37
|
+
}
|
|
38
|
+
/** Milliseconds left until `deadlineMs` (default clock: now). */
|
|
39
|
+
export function remainingMs(deadlineMs, atMs = nowMs()) {
|
|
40
|
+
return Math.max(0, deadlineMs - atMs);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/utils/time.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,0BAA0B;AAC1B,MAAM,UAAU,GAAG;IACjB,OAAO,KAAK,EAAE,CAAC;AACjB,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,KAAK;IACnB,OAAO,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,SAAS,CAAC,KAAgB;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,MAAM,CAAC,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAC7C,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,MAAM,CAAC,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,cAAc;IAC5B,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,IAAe,EAAE,EAAc;IACvD,MAAM,GAAG,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,WAAW,CAAC,UAAkB,EAAE,OAAe,KAAK,EAAE;IACpE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC;AACxC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chendpoc/pi-memory",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Cross-session episodic memory for Pi agent — MEMORY.md ground truth, JSONL sidecar retrieval, and Preflight injection",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -16,10 +16,13 @@
|
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"bin": {
|
|
19
|
-
"pi-memory": "./dist/cli.js"
|
|
19
|
+
"pi-memory": "./dist/cli.js",
|
|
20
|
+
"pi-memory-sidecar": "./dist/sidecar/server/process.js"
|
|
20
21
|
},
|
|
21
22
|
"scripts": {
|
|
22
|
-
"
|
|
23
|
+
"clean": "rm -rf dist",
|
|
24
|
+
"build": "rm -rf dist && tsc",
|
|
25
|
+
"postinstall": "node ./scripts/postinstall.mjs",
|
|
23
26
|
"test": "vitest run",
|
|
24
27
|
"test:watch": "vitest",
|
|
25
28
|
"typecheck": "tsc --noEmit",
|
|
@@ -36,10 +39,16 @@
|
|
|
36
39
|
"dist",
|
|
37
40
|
"src/**/*.ts",
|
|
38
41
|
"!src/**/*.test.ts",
|
|
39
|
-
"
|
|
42
|
+
"templates/MEMORY.md.example",
|
|
43
|
+
"scripts/path-utils.mjs",
|
|
44
|
+
"scripts/init-memory-workspace.mjs",
|
|
45
|
+
"scripts/platform-fs.mjs",
|
|
46
|
+
"scripts/postinstall.mjs",
|
|
47
|
+
"README.md",
|
|
48
|
+
"UBIQUITOUS_LANGUAGE.md"
|
|
40
49
|
],
|
|
41
50
|
"engines": {
|
|
42
|
-
"node": ">=24"
|
|
51
|
+
"node": ">=24.0.0 <25"
|
|
43
52
|
},
|
|
44
53
|
"packageManager": "pnpm@10.12.1",
|
|
45
54
|
"keywords": [
|
|
@@ -47,7 +56,7 @@
|
|
|
47
56
|
"pi-extension",
|
|
48
57
|
"pi-agent",
|
|
49
58
|
"episodic-memory",
|
|
50
|
-
"
|
|
59
|
+
"recent-memory",
|
|
51
60
|
"memory-recall"
|
|
52
61
|
],
|
|
53
62
|
"license": "MIT",
|
|
@@ -66,7 +75,8 @@
|
|
|
66
75
|
"@earendil-works/pi-agent-core": "*",
|
|
67
76
|
"@earendil-works/pi-ai": "*",
|
|
68
77
|
"@earendil-works/pi-coding-agent": "*",
|
|
69
|
-
"
|
|
78
|
+
"@earendil-works/pi-tui": "*",
|
|
79
|
+
"typebox": "^1.1.38"
|
|
70
80
|
},
|
|
71
81
|
"optionalDependencies": {
|
|
72
82
|
"better-sqlite3": "^12.10.0"
|
|
@@ -77,9 +87,11 @@
|
|
|
77
87
|
"@earendil-works/pi-agent-core": "*",
|
|
78
88
|
"@earendil-works/pi-ai": "*",
|
|
79
89
|
"@earendil-works/pi-coding-agent": "*",
|
|
90
|
+
"@earendil-works/pi-tui": "*",
|
|
80
91
|
"@types/better-sqlite3": "^7.6.0",
|
|
92
|
+
"@types/lodash": "^4.17.24",
|
|
81
93
|
"@types/node": "^24.0.0",
|
|
82
|
-
"typebox": "
|
|
94
|
+
"typebox": "^1.3.3",
|
|
83
95
|
"typescript": "^5.7.2",
|
|
84
96
|
"vitest": "^3.0.0"
|
|
85
97
|
},
|
|
@@ -87,6 +99,12 @@
|
|
|
87
99
|
"better-sqlite3@12.11.1": true
|
|
88
100
|
},
|
|
89
101
|
"dependencies": {
|
|
90
|
-
"
|
|
102
|
+
"chalk": "^5.6.2",
|
|
103
|
+
"dayjs": "^1.11.21",
|
|
104
|
+
"dotenv": "^17.4.2",
|
|
105
|
+
"execa": "^9.6.1",
|
|
106
|
+
"lodash": "^4.18.1",
|
|
107
|
+
"lru-cache": "^11.5.1",
|
|
108
|
+
"proper-lockfile": "^4.1.2"
|
|
91
109
|
}
|
|
92
110
|
}
|