abmind 0.0.1 → 0.1.1
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/CHANGELOG.md +34 -0
- package/LICENSE +190 -0
- package/README.md +191 -0
- package/dist/cli/abmind-backfill.d.ts +3 -0
- package/dist/cli/abmind-backfill.d.ts.map +1 -0
- package/dist/cli/abmind-backfill.js +64 -0
- package/dist/cli/abmind-backfill.js.map +1 -0
- package/dist/cli/abmind-backup.d.ts +5 -0
- package/dist/cli/abmind-backup.d.ts.map +1 -0
- package/dist/cli/abmind-backup.js +44 -0
- package/dist/cli/abmind-backup.js.map +1 -0
- package/dist/cli/abmind-bundle.d.ts +7 -0
- package/dist/cli/abmind-bundle.d.ts.map +1 -0
- package/dist/cli/abmind-bundle.js +17 -0
- package/dist/cli/abmind-bundle.js.map +1 -0
- package/dist/cli/abmind-edit.d.ts +10 -0
- package/dist/cli/abmind-edit.d.ts.map +1 -0
- package/dist/cli/abmind-edit.js +160 -0
- package/dist/cli/abmind-edit.js.map +1 -0
- package/dist/cli/abmind-embed.d.ts +3 -0
- package/dist/cli/abmind-embed.d.ts.map +1 -0
- package/dist/cli/abmind-embed.js +83 -0
- package/dist/cli/abmind-embed.js.map +1 -0
- package/dist/cli/abmind-expand.d.ts +6 -0
- package/dist/cli/abmind-expand.d.ts.map +1 -0
- package/dist/cli/abmind-expand.js +100 -0
- package/dist/cli/abmind-expand.js.map +1 -0
- package/dist/cli/abmind-hook-doctor.d.ts +8 -0
- package/dist/cli/abmind-hook-doctor.d.ts.map +1 -0
- package/dist/cli/abmind-hook-doctor.js +73 -0
- package/dist/cli/abmind-hook-doctor.js.map +1 -0
- package/dist/cli/abmind-hook-recall.d.ts +16 -0
- package/dist/cli/abmind-hook-recall.d.ts.map +1 -0
- package/dist/cli/abmind-hook-recall.js +123 -0
- package/dist/cli/abmind-hook-recall.js.map +1 -0
- package/dist/cli/abmind-hook-store.d.ts +17 -0
- package/dist/cli/abmind-hook-store.d.ts.map +1 -0
- package/dist/cli/abmind-hook-store.js +115 -0
- package/dist/cli/abmind-hook-store.js.map +1 -0
- package/dist/cli/abmind-hook-wakeup.d.ts +12 -0
- package/dist/cli/abmind-hook-wakeup.d.ts.map +1 -0
- package/dist/cli/abmind-hook-wakeup.js +143 -0
- package/dist/cli/abmind-hook-wakeup.js.map +1 -0
- package/dist/cli/abmind-ingest.d.ts +7 -0
- package/dist/cli/abmind-ingest.d.ts.map +1 -0
- package/dist/cli/abmind-ingest.js +96 -0
- package/dist/cli/abmind-ingest.js.map +1 -0
- package/dist/cli/abmind-install.d.ts +10 -0
- package/dist/cli/abmind-install.d.ts.map +1 -0
- package/dist/cli/abmind-install.js +240 -0
- package/dist/cli/abmind-install.js.map +1 -0
- package/dist/cli/abmind-mcp.d.ts +3 -0
- package/dist/cli/abmind-mcp.d.ts.map +1 -0
- package/dist/cli/abmind-mcp.js +26 -0
- package/dist/cli/abmind-mcp.js.map +1 -0
- package/dist/cli/abmind-memory-stats.d.ts +3 -0
- package/dist/cli/abmind-memory-stats.d.ts.map +1 -0
- package/dist/cli/abmind-memory-stats.js +45 -0
- package/dist/cli/abmind-memory-stats.js.map +1 -0
- package/dist/cli/abmind-migrate-openclaw.d.ts +12 -0
- package/dist/cli/abmind-migrate-openclaw.d.ts.map +1 -0
- package/dist/cli/abmind-migrate-openclaw.js +247 -0
- package/dist/cli/abmind-migrate-openclaw.js.map +1 -0
- package/dist/cli/abmind-recall.d.ts +8 -0
- package/dist/cli/abmind-recall.d.ts.map +1 -0
- package/dist/cli/abmind-recall.js +94 -0
- package/dist/cli/abmind-recall.js.map +1 -0
- package/dist/cli/abmind-reset.d.ts +11 -0
- package/dist/cli/abmind-reset.d.ts.map +1 -0
- package/dist/cli/abmind-reset.js +143 -0
- package/dist/cli/abmind-reset.js.map +1 -0
- package/dist/cli/abmind-restore.d.ts +5 -0
- package/dist/cli/abmind-restore.d.ts.map +1 -0
- package/dist/cli/abmind-restore.js +64 -0
- package/dist/cli/abmind-restore.js.map +1 -0
- package/dist/cli/abmind-retro-extract.d.ts +15 -0
- package/dist/cli/abmind-retro-extract.d.ts.map +1 -0
- package/dist/cli/abmind-retro-extract.js +113 -0
- package/dist/cli/abmind-retro-extract.js.map +1 -0
- package/dist/cli/abmind-rollback.d.ts +8 -0
- package/dist/cli/abmind-rollback.d.ts.map +1 -0
- package/dist/cli/abmind-rollback.js +76 -0
- package/dist/cli/abmind-rollback.js.map +1 -0
- package/dist/cli/abmind-secrets.d.ts +12 -0
- package/dist/cli/abmind-secrets.d.ts.map +1 -0
- package/dist/cli/abmind-secrets.js +83 -0
- package/dist/cli/abmind-secrets.js.map +1 -0
- package/dist/cli/abmind-sleep-apply.d.ts +3 -0
- package/dist/cli/abmind-sleep-apply.d.ts.map +1 -0
- package/dist/cli/abmind-sleep-apply.js +50 -0
- package/dist/cli/abmind-sleep-apply.js.map +1 -0
- package/dist/cli/abmind-sleep-report.d.ts +3 -0
- package/dist/cli/abmind-sleep-report.d.ts.map +1 -0
- package/dist/cli/abmind-sleep-report.js +40 -0
- package/dist/cli/abmind-sleep-report.js.map +1 -0
- package/dist/cli/abmind-sleep-state.d.ts +3 -0
- package/dist/cli/abmind-sleep-state.d.ts.map +1 -0
- package/dist/cli/abmind-sleep-state.js +33 -0
- package/dist/cli/abmind-sleep-state.js.map +1 -0
- package/dist/cli/abmind-sleep.d.ts +14 -0
- package/dist/cli/abmind-sleep.d.ts.map +1 -0
- package/dist/cli/abmind-sleep.js +186 -0
- package/dist/cli/abmind-sleep.js.map +1 -0
- package/dist/cli/abmind-status-runtime.d.ts +9 -0
- package/dist/cli/abmind-status-runtime.d.ts.map +1 -0
- package/dist/cli/abmind-status-runtime.js +132 -0
- package/dist/cli/abmind-status-runtime.js.map +1 -0
- package/dist/cli/abmind-status.d.ts +3 -0
- package/dist/cli/abmind-status.d.ts.map +1 -0
- package/dist/cli/abmind-status.js +45 -0
- package/dist/cli/abmind-status.js.map +1 -0
- package/dist/cli/abmind-store.d.ts +54 -0
- package/dist/cli/abmind-store.d.ts.map +1 -0
- package/dist/cli/abmind-store.js +251 -0
- package/dist/cli/abmind-store.js.map +1 -0
- package/dist/cli/abmind-update.d.ts +11 -0
- package/dist/cli/abmind-update.d.ts.map +1 -0
- package/dist/cli/abmind-update.js +160 -0
- package/dist/cli/abmind-update.js.map +1 -0
- package/dist/cli/abmind-wakeup.d.ts +3 -0
- package/dist/cli/abmind-wakeup.d.ts.map +1 -0
- package/dist/cli/abmind-wakeup.js +36 -0
- package/dist/cli/abmind-wakeup.js.map +1 -0
- package/dist/cli/abmind.d.ts +10 -0
- package/dist/cli/abmind.d.ts.map +1 -0
- package/dist/cli/abmind.js +100 -0
- package/dist/cli/abmind.js.map +1 -0
- package/dist/src/abm-v2-vocab.d.ts +10 -0
- package/dist/src/abm-v2-vocab.d.ts.map +1 -0
- package/dist/src/abm-v2-vocab.js +66 -0
- package/dist/src/abm-v2-vocab.js.map +1 -0
- package/dist/src/adapters/openclaw.d.ts +66 -0
- package/dist/src/adapters/openclaw.d.ts.map +1 -0
- package/dist/src/adapters/openclaw.js +97 -0
- package/dist/src/adapters/openclaw.js.map +1 -0
- package/dist/src/backend-factory.d.ts +9 -0
- package/dist/src/backend-factory.d.ts.map +1 -0
- package/dist/src/backend-factory.js +23 -0
- package/dist/src/backend-factory.js.map +1 -0
- package/dist/src/backup.d.ts +19 -0
- package/dist/src/backup.d.ts.map +1 -0
- package/dist/src/backup.js +191 -0
- package/dist/src/backup.js.map +1 -0
- package/dist/src/brain-patterns.d.ts +20 -0
- package/dist/src/brain-patterns.d.ts.map +1 -0
- package/dist/src/brain-patterns.js +72 -0
- package/dist/src/brain-patterns.js.map +1 -0
- package/dist/src/cli-entry.d.ts +10 -0
- package/dist/src/cli-entry.d.ts.map +1 -0
- package/dist/src/cli-entry.js +29 -0
- package/dist/src/cli-entry.js.map +1 -0
- package/dist/src/cli-flags.d.ts +29 -0
- package/dist/src/cli-flags.d.ts.map +1 -0
- package/dist/src/cli-flags.js +72 -0
- package/dist/src/cli-flags.js.map +1 -0
- package/dist/src/cli-runner-raw.d.ts +21 -0
- package/dist/src/cli-runner-raw.d.ts.map +1 -0
- package/dist/src/cli-runner-raw.js +41 -0
- package/dist/src/cli-runner-raw.js.map +1 -0
- package/dist/src/cli-runner.d.ts +26 -0
- package/dist/src/cli-runner.d.ts.map +1 -0
- package/dist/src/cli-runner.js +51 -0
- package/dist/src/cli-runner.js.map +1 -0
- package/dist/src/consolidation-search.d.ts +17 -0
- package/dist/src/consolidation-search.d.ts.map +1 -0
- package/dist/src/consolidation-search.js +83 -0
- package/dist/src/consolidation-search.js.map +1 -0
- package/dist/src/context-engine.d.ts +89 -0
- package/dist/src/context-engine.d.ts.map +1 -0
- package/dist/src/context-engine.js +216 -0
- package/dist/src/context-engine.js.map +1 -0
- package/dist/src/context-tier-renderer.d.ts +79 -0
- package/dist/src/context-tier-renderer.d.ts.map +1 -0
- package/dist/src/context-tier-renderer.js +223 -0
- package/dist/src/context-tier-renderer.js.map +1 -0
- package/dist/src/contradiction-checker.d.ts +16 -0
- package/dist/src/contradiction-checker.d.ts.map +1 -0
- package/dist/src/contradiction-checker.js +40 -0
- package/dist/src/contradiction-checker.js.map +1 -0
- package/dist/src/crypto.d.ts +15 -0
- package/dist/src/crypto.d.ts.map +1 -0
- package/dist/src/crypto.js +86 -0
- package/dist/src/crypto.js.map +1 -0
- package/dist/src/deploy-lib/cleanup.d.ts +38 -0
- package/dist/src/deploy-lib/cleanup.d.ts.map +1 -0
- package/dist/src/deploy-lib/cleanup.js +71 -0
- package/dist/src/deploy-lib/cleanup.js.map +1 -0
- package/dist/src/deploy-lib/index.d.ts +20 -0
- package/dist/src/deploy-lib/index.d.ts.map +1 -0
- package/dist/src/deploy-lib/index.js +20 -0
- package/dist/src/deploy-lib/index.js.map +1 -0
- package/dist/src/deploy-lib/lock.d.ts +37 -0
- package/dist/src/deploy-lib/lock.d.ts.map +1 -0
- package/dist/src/deploy-lib/lock.js +107 -0
- package/dist/src/deploy-lib/lock.js.map +1 -0
- package/dist/src/deploy-lib/manifest.d.ts +42 -0
- package/dist/src/deploy-lib/manifest.d.ts.map +1 -0
- package/dist/src/deploy-lib/manifest.js +38 -0
- package/dist/src/deploy-lib/manifest.js.map +1 -0
- package/dist/src/deploy-lib/paths.d.ts +29 -0
- package/dist/src/deploy-lib/paths.d.ts.map +1 -0
- package/dist/src/deploy-lib/paths.js +40 -0
- package/dist/src/deploy-lib/paths.js.map +1 -0
- package/dist/src/deploy-lib/releases.d.ts +52 -0
- package/dist/src/deploy-lib/releases.d.ts.map +1 -0
- package/dist/src/deploy-lib/releases.js +119 -0
- package/dist/src/deploy-lib/releases.js.map +1 -0
- package/dist/src/deploy-lib/safe-copy.d.ts +16 -0
- package/dist/src/deploy-lib/safe-copy.d.ts.map +1 -0
- package/dist/src/deploy-lib/safe-copy.js +32 -0
- package/dist/src/deploy-lib/safe-copy.js.map +1 -0
- package/dist/src/embedding-health.d.ts +12 -0
- package/dist/src/embedding-health.d.ts.map +1 -0
- package/dist/src/embedding-health.js +18 -0
- package/dist/src/embedding-health.js.map +1 -0
- package/dist/src/embedding-provider.d.ts +48 -0
- package/dist/src/embedding-provider.d.ts.map +1 -0
- package/dist/src/embedding-provider.js +145 -0
- package/dist/src/embedding-provider.js.map +1 -0
- package/dist/src/embedding-quantize.d.ts +11 -0
- package/dist/src/embedding-quantize.d.ts.map +1 -0
- package/dist/src/embedding-quantize.js +38 -0
- package/dist/src/embedding-quantize.js.map +1 -0
- package/dist/src/emotion-arc.d.ts +17 -0
- package/dist/src/emotion-arc.d.ts.map +1 -0
- package/dist/src/emotion-arc.js +62 -0
- package/dist/src/emotion-arc.js.map +1 -0
- package/dist/src/emotion-tagger.d.ts +8 -0
- package/dist/src/emotion-tagger.d.ts.map +1 -0
- package/dist/src/emotion-tagger.js +45 -0
- package/dist/src/emotion-tagger.js.map +1 -0
- package/dist/src/emotion-utils.d.ts +13 -0
- package/dist/src/emotion-utils.d.ts.map +1 -0
- package/dist/src/emotion-utils.js +76 -0
- package/dist/src/emotion-utils.js.map +1 -0
- package/dist/src/entity-graph.d.ts +33 -0
- package/dist/src/entity-graph.d.ts.map +1 -0
- package/dist/src/entity-graph.js +42 -0
- package/dist/src/entity-graph.js.map +1 -0
- package/dist/src/env-schema.d.ts +46 -0
- package/dist/src/env-schema.d.ts.map +1 -0
- package/dist/src/env-schema.js +93 -0
- package/dist/src/env-schema.js.map +1 -0
- package/dist/src/hook-helpers.d.ts +16 -0
- package/dist/src/hook-helpers.d.ts.map +1 -0
- package/dist/src/hook-helpers.js +64 -0
- package/dist/src/hook-helpers.js.map +1 -0
- package/dist/src/imemory-system.d.ts +138 -0
- package/dist/src/imemory-system.d.ts.map +1 -0
- package/dist/src/imemory-system.js +40 -0
- package/dist/src/imemory-system.js.map +1 -0
- package/dist/src/importance-flagger.d.ts +8 -0
- package/dist/src/importance-flagger.d.ts.map +1 -0
- package/dist/src/importance-flagger.js +24 -0
- package/dist/src/importance-flagger.js.map +1 -0
- package/dist/src/index.d.ts +79 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +79 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/ingest-pipeline.d.ts +32 -0
- package/dist/src/ingest-pipeline.d.ts.map +1 -0
- package/dist/src/ingest-pipeline.js +58 -0
- package/dist/src/ingest-pipeline.js.map +1 -0
- package/dist/src/injection-scanner.d.ts +16 -0
- package/dist/src/injection-scanner.d.ts.map +1 -0
- package/dist/src/injection-scanner.js +182 -0
- package/dist/src/injection-scanner.js.map +1 -0
- package/dist/src/local-time.d.ts +12 -0
- package/dist/src/local-time.d.ts.map +1 -0
- package/dist/src/local-time.js +23 -0
- package/dist/src/local-time.js.map +1 -0
- package/dist/src/maintenance-service.d.ts +46 -0
- package/dist/src/maintenance-service.d.ts.map +1 -0
- package/dist/src/maintenance-service.js +280 -0
- package/dist/src/maintenance-service.js.map +1 -0
- package/dist/src/mcp-server.d.ts +6 -0
- package/dist/src/mcp-server.d.ts.map +1 -0
- package/dist/src/mcp-server.js +50 -0
- package/dist/src/mcp-server.js.map +1 -0
- package/dist/src/media-sanitizer.d.ts +11 -0
- package/dist/src/media-sanitizer.d.ts.map +1 -0
- package/dist/src/media-sanitizer.js +56 -0
- package/dist/src/media-sanitizer.js.map +1 -0
- package/dist/src/mem-config-env.d.ts +18 -0
- package/dist/src/mem-config-env.d.ts.map +1 -0
- package/dist/src/mem-config-env.js +43 -0
- package/dist/src/mem-config-env.js.map +1 -0
- package/dist/src/mem-env.d.ts +5 -0
- package/dist/src/mem-env.d.ts.map +1 -0
- package/dist/src/mem-env.js +19 -0
- package/dist/src/mem-env.js.map +1 -0
- package/dist/src/mem-logger.d.ts +20 -0
- package/dist/src/mem-logger.d.ts.map +1 -0
- package/dist/src/mem-logger.js +24 -0
- package/dist/src/mem-logger.js.map +1 -0
- package/dist/src/mem-paths.d.ts +20 -0
- package/dist/src/mem-paths.d.ts.map +1 -0
- package/dist/src/mem-paths.js +43 -0
- package/dist/src/mem-paths.js.map +1 -0
- package/dist/src/mem-types.d.ts +157 -0
- package/dist/src/mem-types.d.ts.map +1 -0
- package/dist/src/mem-types.js +2 -0
- package/dist/src/mem-types.js.map +1 -0
- package/dist/src/memory-backend.d.ts +65 -0
- package/dist/src/memory-backend.d.ts.map +1 -0
- package/dist/src/memory-backend.js +43 -0
- package/dist/src/memory-backend.js.map +1 -0
- package/dist/src/memory-compressor.d.ts +17 -0
- package/dist/src/memory-compressor.d.ts.map +1 -0
- package/dist/src/memory-compressor.js +147 -0
- package/dist/src/memory-compressor.js.map +1 -0
- package/dist/src/memory-config.d.ts +30 -0
- package/dist/src/memory-config.d.ts.map +1 -0
- package/dist/src/memory-config.js +62 -0
- package/dist/src/memory-config.js.map +1 -0
- package/dist/src/memory-db.d.ts +7 -0
- package/dist/src/memory-db.d.ts.map +1 -0
- package/dist/src/memory-db.js +173 -0
- package/dist/src/memory-db.js.map +1 -0
- package/dist/src/memory-editor.d.ts +32 -0
- package/dist/src/memory-editor.d.ts.map +1 -0
- package/dist/src/memory-editor.js +339 -0
- package/dist/src/memory-editor.js.map +1 -0
- package/dist/src/memory-index.d.ts +91 -0
- package/dist/src/memory-index.d.ts.map +1 -0
- package/dist/src/memory-index.js +310 -0
- package/dist/src/memory-index.js.map +1 -0
- package/dist/src/memory-ipc-client.d.ts +22 -0
- package/dist/src/memory-ipc-client.d.ts.map +1 -0
- package/dist/src/memory-ipc-client.js +75 -0
- package/dist/src/memory-ipc-client.js.map +1 -0
- package/dist/src/memory-ipc-server.d.ts +17 -0
- package/dist/src/memory-ipc-server.d.ts.map +1 -0
- package/dist/src/memory-ipc-server.js +86 -0
- package/dist/src/memory-ipc-server.js.map +1 -0
- package/dist/src/memory-manager.d.ts +155 -0
- package/dist/src/memory-manager.d.ts.map +1 -0
- package/dist/src/memory-manager.js +463 -0
- package/dist/src/memory-manager.js.map +1 -0
- package/dist/src/memory-renderer.d.ts +15 -0
- package/dist/src/memory-renderer.d.ts.map +1 -0
- package/dist/src/memory-renderer.js +126 -0
- package/dist/src/memory-renderer.js.map +1 -0
- package/dist/src/message-store.d.ts +42 -0
- package/dist/src/message-store.d.ts.map +1 -0
- package/dist/src/message-store.js +145 -0
- package/dist/src/message-store.js.map +1 -0
- package/dist/src/mmr.d.ts +17 -0
- package/dist/src/mmr.d.ts.map +1 -0
- package/dist/src/mmr.js +48 -0
- package/dist/src/mmr.js.map +1 -0
- package/dist/src/ollama-embed.d.ts +46 -0
- package/dist/src/ollama-embed.d.ts.map +1 -0
- package/dist/src/ollama-embed.js +139 -0
- package/dist/src/ollama-embed.js.map +1 -0
- package/dist/src/openclaw-plugin/engine.d.ts +87 -0
- package/dist/src/openclaw-plugin/engine.d.ts.map +1 -0
- package/dist/src/openclaw-plugin/engine.js +121 -0
- package/dist/src/openclaw-plugin/engine.js.map +1 -0
- package/dist/src/openclaw-plugin/hooks.d.ts +41 -0
- package/dist/src/openclaw-plugin/hooks.d.ts.map +1 -0
- package/dist/src/openclaw-plugin/hooks.js +155 -0
- package/dist/src/openclaw-plugin/hooks.js.map +1 -0
- package/dist/src/openclaw-plugin/index.d.ts +20 -0
- package/dist/src/openclaw-plugin/index.d.ts.map +1 -0
- package/dist/src/openclaw-plugin/index.js +151 -0
- package/dist/src/openclaw-plugin/index.js.map +1 -0
- package/dist/src/openclaw-plugin/message-adapter.d.ts +13 -0
- package/dist/src/openclaw-plugin/message-adapter.d.ts.map +1 -0
- package/dist/src/openclaw-plugin/message-adapter.js +49 -0
- package/dist/src/openclaw-plugin/message-adapter.js.map +1 -0
- package/dist/src/openclaw-plugin/prompt-builder.d.ts +17 -0
- package/dist/src/openclaw-plugin/prompt-builder.d.ts.map +1 -0
- package/dist/src/openclaw-plugin/prompt-builder.js +22 -0
- package/dist/src/openclaw-plugin/prompt-builder.js.map +1 -0
- package/dist/src/openclaw-plugin/public-artifacts.d.ts +20 -0
- package/dist/src/openclaw-plugin/public-artifacts.d.ts.map +1 -0
- package/dist/src/openclaw-plugin/public-artifacts.js +59 -0
- package/dist/src/openclaw-plugin/public-artifacts.js.map +1 -0
- package/dist/src/openclaw-plugin/runtime-adapter.d.ts +26 -0
- package/dist/src/openclaw-plugin/runtime-adapter.d.ts.map +1 -0
- package/dist/src/openclaw-plugin/runtime-adapter.js +161 -0
- package/dist/src/openclaw-plugin/runtime-adapter.js.map +1 -0
- package/dist/src/openclaw-plugin/session-mapper.d.ts +11 -0
- package/dist/src/openclaw-plugin/session-mapper.d.ts.map +1 -0
- package/dist/src/openclaw-plugin/session-mapper.js +17 -0
- package/dist/src/openclaw-plugin/session-mapper.js.map +1 -0
- package/dist/src/openclaw-plugin/tools.d.ts +32 -0
- package/dist/src/openclaw-plugin/tools.d.ts.map +1 -0
- package/dist/src/openclaw-plugin/tools.js +131 -0
- package/dist/src/openclaw-plugin/tools.js.map +1 -0
- package/dist/src/openclaw-plugin/types.d.ts +35 -0
- package/dist/src/openclaw-plugin/types.d.ts.map +1 -0
- package/dist/src/openclaw-plugin/types.js +2 -0
- package/dist/src/openclaw-plugin/types.js.map +1 -0
- package/dist/src/query-tokenizer.d.ts +33 -0
- package/dist/src/query-tokenizer.d.ts.map +1 -0
- package/dist/src/query-tokenizer.js +84 -0
- package/dist/src/query-tokenizer.js.map +1 -0
- package/dist/src/recall-benchmark.d.ts +13 -0
- package/dist/src/recall-benchmark.d.ts.map +1 -0
- package/dist/src/recall-benchmark.js +256 -0
- package/dist/src/recall-benchmark.js.map +1 -0
- package/dist/src/recall-engine.d.ts +81 -0
- package/dist/src/recall-engine.d.ts.map +1 -0
- package/dist/src/recall-engine.js +387 -0
- package/dist/src/recall-engine.js.map +1 -0
- package/dist/src/redact-secrets.d.ts +20 -0
- package/dist/src/redact-secrets.d.ts.map +1 -0
- package/dist/src/redact-secrets.js +42 -0
- package/dist/src/redact-secrets.js.map +1 -0
- package/dist/src/runtime-store.d.ts +47 -0
- package/dist/src/runtime-store.d.ts.map +1 -0
- package/dist/src/runtime-store.js +78 -0
- package/dist/src/runtime-store.js.map +1 -0
- package/dist/src/session-context.d.ts +10 -0
- package/dist/src/session-context.d.ts.map +1 -0
- package/dist/src/session-context.js +83 -0
- package/dist/src/session-context.js.map +1 -0
- package/dist/src/session-memory.d.ts +8 -0
- package/dist/src/session-memory.d.ts.map +1 -0
- package/dist/src/session-memory.js +45 -0
- package/dist/src/session-memory.js.map +1 -0
- package/dist/src/signature-generator.d.ts +15 -0
- package/dist/src/signature-generator.d.ts.map +1 -0
- package/dist/src/signature-generator.js +78 -0
- package/dist/src/signature-generator.js.map +1 -0
- package/dist/src/sleep/basic.d.ts +48 -0
- package/dist/src/sleep/basic.d.ts.map +1 -0
- package/dist/src/sleep/basic.js +147 -0
- package/dist/src/sleep/basic.js.map +1 -0
- package/dist/src/sleep/levels.d.ts +20 -0
- package/dist/src/sleep/levels.d.ts.map +1 -0
- package/dist/src/sleep/levels.js +11 -0
- package/dist/src/sleep/levels.js.map +1 -0
- package/dist/src/sleep/native.d.ts +41 -0
- package/dist/src/sleep/native.d.ts.map +1 -0
- package/dist/src/sleep/native.js +112 -0
- package/dist/src/sleep/native.js.map +1 -0
- package/dist/src/sleep/orchestrator.d.ts +64 -0
- package/dist/src/sleep/orchestrator.d.ts.map +1 -0
- package/dist/src/sleep/orchestrator.js +960 -0
- package/dist/src/sleep/orchestrator.js.map +1 -0
- package/dist/src/sleep/runtime.d.ts +15 -0
- package/dist/src/sleep/runtime.d.ts.map +1 -0
- package/dist/src/sleep/runtime.js +2 -0
- package/dist/src/sleep/runtime.js.map +1 -0
- package/dist/src/sleep/sleep-daily-summary.d.ts +64 -0
- package/dist/src/sleep/sleep-daily-summary.d.ts.map +1 -0
- package/dist/src/sleep/sleep-daily-summary.js +273 -0
- package/dist/src/sleep/sleep-daily-summary.js.map +1 -0
- package/dist/src/sleep/sleep-extract-daily.d.ts +12 -0
- package/dist/src/sleep/sleep-extract-daily.d.ts.map +1 -0
- package/dist/src/sleep/sleep-extract-daily.js +55 -0
- package/dist/src/sleep/sleep-extract-daily.js.map +1 -0
- package/dist/src/sleep/sleep-prompt-loader.d.ts +27 -0
- package/dist/src/sleep/sleep-prompt-loader.d.ts.map +1 -0
- package/dist/src/sleep/sleep-prompt-loader.js +116 -0
- package/dist/src/sleep/sleep-prompt-loader.js.map +1 -0
- package/dist/src/sleep/test-harness.d.ts +67 -0
- package/dist/src/sleep/test-harness.d.ts.map +1 -0
- package/dist/src/sleep/test-harness.js +121 -0
- package/dist/src/sleep/test-harness.js.map +1 -0
- package/dist/src/sleep/trigger.d.ts +3 -0
- package/dist/src/sleep/trigger.d.ts.map +1 -0
- package/dist/src/sleep/trigger.js +66 -0
- package/dist/src/sleep/trigger.js.map +1 -0
- package/dist/src/sleep-data-access.d.ts +54 -0
- package/dist/src/sleep-data-access.d.ts.map +1 -0
- package/dist/src/sleep-data-access.js +176 -0
- package/dist/src/sleep-data-access.js.map +1 -0
- package/dist/src/sleep-pipeline.d.ts +9 -0
- package/dist/src/sleep-pipeline.d.ts.map +1 -0
- package/dist/src/sleep-pipeline.js +8 -0
- package/dist/src/sleep-pipeline.js.map +1 -0
- package/dist/src/sleep-state-gatherer.d.ts +74 -0
- package/dist/src/sleep-state-gatherer.d.ts.map +1 -0
- package/dist/src/sleep-state-gatherer.js +275 -0
- package/dist/src/sleep-state-gatherer.js.map +1 -0
- package/dist/src/sqlite-backend.d.ts +23 -0
- package/dist/src/sqlite-backend.d.ts.map +1 -0
- package/dist/src/sqlite-backend.js +48 -0
- package/dist/src/sqlite-backend.js.map +1 -0
- package/dist/src/test-helpers.d.ts +3 -0
- package/dist/src/test-helpers.d.ts.map +1 -0
- package/dist/src/test-helpers.js +5 -0
- package/dist/src/test-helpers.js.map +1 -0
- package/dist/src/tier-llm-refinement.d.ts +35 -0
- package/dist/src/tier-llm-refinement.d.ts.map +1 -0
- package/dist/src/tier-llm-refinement.js +131 -0
- package/dist/src/tier-llm-refinement.js.map +1 -0
- package/dist/src/timeline-builder.d.ts +45 -0
- package/dist/src/timeline-builder.d.ts.map +1 -0
- package/dist/src/timeline-builder.js +147 -0
- package/dist/src/timeline-builder.js.map +1 -0
- package/dist/src/trigram-search.d.ts +28 -0
- package/dist/src/trigram-search.d.ts.map +1 -0
- package/dist/src/trigram-search.js +192 -0
- package/dist/src/trigram-search.js.map +1 -0
- package/dist/src/turn-classifier.d.ts +29 -0
- package/dist/src/turn-classifier.d.ts.map +1 -0
- package/dist/src/turn-classifier.js +186 -0
- package/dist/src/turn-classifier.js.map +1 -0
- package/dist/src/user-utils.d.ts +6 -0
- package/dist/src/user-utils.d.ts.map +1 -0
- package/dist/src/user-utils.js +27 -0
- package/dist/src/user-utils.js.map +1 -0
- package/dist/src/wake-up-builder.d.ts +12 -0
- package/dist/src/wake-up-builder.d.ts.map +1 -0
- package/dist/src/wake-up-builder.js +45 -0
- package/dist/src/wake-up-builder.js.map +1 -0
- package/dist/src/wake-up-renderer.d.ts +29 -0
- package/dist/src/wake-up-renderer.d.ts.map +1 -0
- package/dist/src/wake-up-renderer.js +182 -0
- package/dist/src/wake-up-renderer.js.map +1 -0
- package/openclaw.plugin.json +72 -0
- package/package.json +92 -5
- package/prompts/sleep/01-gc-noise.md +28 -0
- package/prompts/sleep/02-daily-summary.md +3 -0
- package/prompts/sleep/03-extract-from-daily.md +3 -0
- package/prompts/sleep/04-retrospective.md +30 -0
- package/prompts/sleep/06-feedback.md +17 -0
- package/prompts/sleep/07-topic-assignment.md +23 -0
- package/prompts/sleep/08-core-promotion.md +26 -0
- package/prompts/sleep/09-merge.md +19 -0
- package/prompts/sleep/10-translation.md +17 -0
- package/prompts/sleep/11-skill-review.md +12 -0
- package/prompts/sleep/12-core-knowledge.md +14 -0
- package/prompts/sleep/13-consolidation.md +11 -0
- package/prompts/sleep/14-emotion-context.md +17 -0
- package/prompts/sleep/15-contradiction-and-graph.md +48 -0
- package/prompts/sleep/16-rem-synthesis.md +31 -0
- package/prompts/sleep/basic.md +12 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* abmind MCP server — exposes memory as MCP tools over stdio.
|
|
3
|
+
* Usage: abmind mcp
|
|
4
|
+
*/
|
|
5
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { loadMemoryConfig } from "./memory-config.js";
|
|
9
|
+
import { MemoryManager } from "./memory-manager.js";
|
|
10
|
+
import { createMemoryBackend } from "./backend-factory.js";
|
|
11
|
+
import { loadMasterUserId } from "./user-utils.js";
|
|
12
|
+
export async function startMcpServer() {
|
|
13
|
+
const config = loadMemoryConfig();
|
|
14
|
+
const memory = new MemoryManager(config);
|
|
15
|
+
await memory.initialize();
|
|
16
|
+
const backend = await createMemoryBackend(config);
|
|
17
|
+
const defaultUserId = loadMasterUserId();
|
|
18
|
+
const server = new McpServer({ name: "abmind", version: "0.5.0" });
|
|
19
|
+
server.tool("memory_recall", "Search persistent memory using full 4-layer recall (FTS5, trigram, semantic, consolidated)", { query: z.string(), userId: z.string().optional() }, async ({ query, userId }) => {
|
|
20
|
+
const uid = userId ?? defaultUserId;
|
|
21
|
+
const result = await backend.recall({ translated: [query], userId: uid, limit: 10 });
|
|
22
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
23
|
+
});
|
|
24
|
+
server.tool("memory_store", "Store a new memory — facts, preferences, decisions, or events", { text: z.string(), memoryType: z.enum(["fact", "preference", "decision", "event"]), userId: z.string().optional() }, async ({ text, memoryType, userId }) => {
|
|
25
|
+
const uid = userId ?? defaultUserId;
|
|
26
|
+
const result = await backend.instantStore({ userId: uid, contentEn: text, contentOriginal: text, memoryType, emotionScore: 0 });
|
|
27
|
+
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
28
|
+
});
|
|
29
|
+
server.tool("memory_edit", "Boost or demote a memory's importance (v1: boost/demote only)", { memoryId: z.number(), action: z.enum(["boost", "demote"]) }, async ({ memoryId, action }) => {
|
|
30
|
+
const delta = action === "boost" ? 10 : -10;
|
|
31
|
+
await backend.adjustRelevance(memoryId, delta);
|
|
32
|
+
return { content: [{ type: "text", text: JSON.stringify({ ok: true, memoryId, action }) }] };
|
|
33
|
+
});
|
|
34
|
+
server.tool("memory_status", "Get memory system statistics", { userId: z.string().optional() }, async ({ userId }) => {
|
|
35
|
+
const stats = memory.getStats();
|
|
36
|
+
return { content: [{ type: "text", text: JSON.stringify(stats, null, 2) }] };
|
|
37
|
+
});
|
|
38
|
+
server.tool("memory_wakeup", "Get wake-up context for session start — recent memories, core knowledge, emotional state", { maxChars: z.number().optional() }, async ({ maxChars }) => {
|
|
39
|
+
const wakeup = memory.buildWakeUp(maxChars);
|
|
40
|
+
return { content: [{ type: "text", text: wakeup }] };
|
|
41
|
+
});
|
|
42
|
+
server.tool("memory_bundle", "Get session bundle — SOUL identity, user profile, agent notes, memory tool instructions", {}, async () => {
|
|
43
|
+
const b = memory.getSessionBundle();
|
|
44
|
+
const parts = [b.soul, b.memoryTools, b.profile, b.notes].filter(Boolean);
|
|
45
|
+
return { content: [{ type: "text", text: parts.join("\n\n---\n\n") }] };
|
|
46
|
+
});
|
|
47
|
+
const transport = new StdioServerTransport();
|
|
48
|
+
await server.connect(transport);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=mcp-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media sanitizer — strips binary/media payloads from message content
|
|
3
|
+
* before summarization. Prevents images/files from consuming token budget.
|
|
4
|
+
*
|
|
5
|
+
* Patterns from Lossless-claw's compaction.ts.
|
|
6
|
+
*/
|
|
7
|
+
/** Strip media payloads from message content. Returns clean text for summarization. */
|
|
8
|
+
export declare function stripMediaPayloads(content: string): string;
|
|
9
|
+
/** Annotate content: if media was stripped, add marker. */
|
|
10
|
+
export declare function sanitizeForSummary(content: string): string;
|
|
11
|
+
//# sourceMappingURL=media-sanitizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-sanitizer.d.ts","sourceRoot":"","sources":["../../src/media-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkB1D;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAK1D"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media sanitizer — strips binary/media payloads from message content
|
|
3
|
+
* before summarization. Prevents images/files from consuming token budget.
|
|
4
|
+
*
|
|
5
|
+
* Patterns from Lossless-claw's compaction.ts.
|
|
6
|
+
*/
|
|
7
|
+
const BASE64_DATA_URL_RE = /data:[^;\s"'`]+;base64,[A-Za-z0-9+/=\s]+/gi;
|
|
8
|
+
const MEDIA_PATH_RE = /^MEDIA:\/.+$/;
|
|
9
|
+
/** Detect whether a string is mostly binary/base64 payload. */
|
|
10
|
+
function looksLikeBinary(value) {
|
|
11
|
+
const trimmed = value.trim();
|
|
12
|
+
if (!trimmed || trimmed.length < 256)
|
|
13
|
+
return false;
|
|
14
|
+
if (/^data:[^;\s"'`]+;base64,/i.test(trimmed))
|
|
15
|
+
return true;
|
|
16
|
+
const compact = trimmed.replace(/\s+/g, "");
|
|
17
|
+
if (compact.length % 4 !== 0)
|
|
18
|
+
return false;
|
|
19
|
+
if (!/^[A-Za-z0-9+/=]+$/.test(compact))
|
|
20
|
+
return false;
|
|
21
|
+
return !/[ .,:;!?()[\]{}]/.test(trimmed);
|
|
22
|
+
}
|
|
23
|
+
/** Strip media payloads from message content. Returns clean text for summarization. */
|
|
24
|
+
export function stripMediaPayloads(content) {
|
|
25
|
+
if (!content)
|
|
26
|
+
return "";
|
|
27
|
+
// Remove data URLs
|
|
28
|
+
let result = content.replace(BASE64_DATA_URL_RE, "[embedded media omitted]");
|
|
29
|
+
// Filter lines
|
|
30
|
+
result = result
|
|
31
|
+
.split("\n")
|
|
32
|
+
.filter(line => {
|
|
33
|
+
const trimmed = line.trim();
|
|
34
|
+
if (!trimmed)
|
|
35
|
+
return false;
|
|
36
|
+
if (MEDIA_PATH_RE.test(trimmed))
|
|
37
|
+
return false;
|
|
38
|
+
if (looksLikeBinary(trimmed))
|
|
39
|
+
return false;
|
|
40
|
+
return true;
|
|
41
|
+
})
|
|
42
|
+
.join("\n")
|
|
43
|
+
.trim();
|
|
44
|
+
// If nothing left, it was a media-only message
|
|
45
|
+
return result || "[Media attachment]";
|
|
46
|
+
}
|
|
47
|
+
/** Annotate content: if media was stripped, add marker. */
|
|
48
|
+
export function sanitizeForSummary(content) {
|
|
49
|
+
const stripped = stripMediaPayloads(content);
|
|
50
|
+
if (stripped === "[Media attachment]")
|
|
51
|
+
return stripped;
|
|
52
|
+
if (stripped.length < content.length * 0.5)
|
|
53
|
+
return `${stripped} [with media attachment]`;
|
|
54
|
+
return stripped;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=media-sanitizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-sanitizer.js","sourceRoot":"","sources":["../../src/media-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,kBAAkB,GAAG,4CAA4C,CAAC;AACxE,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC,+DAA+D;AAC/D,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,mBAAmB;IACnB,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;IAC7E,eAAe;IACf,MAAM,GAAG,MAAM;SACZ,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,IAAI,CAAC,EAAE;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,eAAe,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;IACV,+CAA+C;IAC/C,OAAO,MAAM,IAAI,oBAAoB,CAAC;AACxC,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,oBAAoB;QAAE,OAAO,QAAQ,CAAC;IACvD,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,GAAG,QAAQ,0BAA0B,CAAC;IACzF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mem-config-env.ts — Load .env.memory into process.env before schema reads it.
|
|
3
|
+
* Must be called before initAbmindEnv() / getAbmindEnv().
|
|
4
|
+
*/
|
|
5
|
+
export type SearchMode = "hybrid" | "embedding" | "signature";
|
|
6
|
+
export interface MemoryEnvConfig {
|
|
7
|
+
searchMode: SearchMode;
|
|
8
|
+
maxDbSizeMb: number;
|
|
9
|
+
originalTtlDays: number;
|
|
10
|
+
englishTtlDays: number;
|
|
11
|
+
agingEnabled: boolean;
|
|
12
|
+
signatureBits: number;
|
|
13
|
+
}
|
|
14
|
+
/** Load .env.memory from ~/.abmind/config/.env.memory into process.env. */
|
|
15
|
+
export declare function loadMemoryEnvFile(): void;
|
|
16
|
+
/** Get memory config from schema. Kept for backward compat with callers. */
|
|
17
|
+
export declare function loadMemoryEnv(): MemoryEnvConfig;
|
|
18
|
+
//# sourceMappingURL=mem-config-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem-config-env.d.ts","sourceRoot":"","sources":["../../src/mem-config-env.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AAE9D,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,IAAI,IAAI,CAaxC;AAID,4EAA4E;AAC5E,wBAAgB,aAAa,IAAI,eAAe,CAa/C"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mem-config-env.ts — Load .env.memory into process.env before schema reads it.
|
|
3
|
+
* Must be called before initAbmindEnv() / getAbmindEnv().
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
import { abmindHome } from "./mem-paths.js";
|
|
8
|
+
/** Load .env.memory from ~/.abmind/config/.env.memory into process.env. */
|
|
9
|
+
export function loadMemoryEnvFile() {
|
|
10
|
+
const envPath = join(abmindHome(), "config", ".env.memory");
|
|
11
|
+
if (!existsSync(envPath))
|
|
12
|
+
return;
|
|
13
|
+
const lines = readFileSync(envPath, "utf-8").split("\n");
|
|
14
|
+
for (const line of lines) {
|
|
15
|
+
const trimmed = line.trim();
|
|
16
|
+
if (!trimmed || trimmed.startsWith("#"))
|
|
17
|
+
continue;
|
|
18
|
+
const eq = trimmed.indexOf("=");
|
|
19
|
+
if (eq < 0)
|
|
20
|
+
continue;
|
|
21
|
+
const key = trimmed.slice(0, eq).trim();
|
|
22
|
+
const val = trimmed.slice(eq + 1).trim();
|
|
23
|
+
if (key && val)
|
|
24
|
+
process.env[key] = process.env[key] ?? val;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
import { getAbmindEnv, _resetAbmindEnv } from "./env-schema.js";
|
|
28
|
+
/** Get memory config from schema. Kept for backward compat with callers. */
|
|
29
|
+
export function loadMemoryEnv() {
|
|
30
|
+
loadMemoryEnvFile();
|
|
31
|
+
_resetAbmindEnv(); // re-read after loading .env.memory
|
|
32
|
+
const env = getAbmindEnv();
|
|
33
|
+
const mode = env.memorySearchMode;
|
|
34
|
+
return {
|
|
35
|
+
searchMode: (mode === "hybrid" || mode === "embedding" || mode === "signature") ? mode : "hybrid",
|
|
36
|
+
maxDbSizeMb: env.memoryMaxDbSizeMb,
|
|
37
|
+
originalTtlDays: env.memoryOriginalTtlDays,
|
|
38
|
+
englishTtlDays: env.memoryEnglishTtlDays,
|
|
39
|
+
agingEnabled: env.memoryAgingEnabled,
|
|
40
|
+
signatureBits: env.signatureBits,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=mem-config-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem-config-env.js","sourceRoot":"","sources":["../../src/mem-config-env.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAa5C,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,EAAE,GAAG,CAAC;YAAE,SAAS;QACrB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,GAAG,IAAI,GAAG;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEhE,4EAA4E;AAC5E,MAAM,UAAU,aAAa;IAC3B,iBAAiB,EAAE,CAAC;IACpB,eAAe,EAAE,CAAC,CAAC,oCAAoC;IACvD,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC;IAClC,OAAO;QACL,UAAU,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;QACjG,WAAW,EAAE,GAAG,CAAC,iBAAiB;QAClC,eAAe,EAAE,GAAG,CAAC,qBAAqB;QAC1C,cAAc,EAAE,GAAG,CAAC,oBAAoB;QACxC,YAAY,EAAE,GAAG,CAAC,kBAAkB;QACpC,aAAa,EAAE,GAAG,CAAC,aAAa;KACjC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Standalone env/date utils for abmind. */
|
|
2
|
+
export declare function parseBoolEnv(key: string, fallback: boolean): boolean;
|
|
3
|
+
export declare function parseNumberEnv(key: string, fallback: number): number;
|
|
4
|
+
export declare function localDate(): string;
|
|
5
|
+
//# sourceMappingURL=mem-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem-env.d.ts","sourceRoot":"","sources":["../../src/mem-env.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAIpE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED,wBAAgB,SAAS,IAAI,MAAM,CAGlC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Standalone env/date utils for abmind. */
|
|
2
|
+
export function parseBoolEnv(key, fallback) {
|
|
3
|
+
const raw = process.env[key];
|
|
4
|
+
if (raw === undefined || raw === "")
|
|
5
|
+
return fallback;
|
|
6
|
+
return raw === "true" || raw === "1";
|
|
7
|
+
}
|
|
8
|
+
export function parseNumberEnv(key, fallback) {
|
|
9
|
+
const raw = process.env[key];
|
|
10
|
+
if (raw === undefined || raw === "")
|
|
11
|
+
return fallback;
|
|
12
|
+
const n = Number(raw);
|
|
13
|
+
return Number.isFinite(n) ? n : fallback;
|
|
14
|
+
}
|
|
15
|
+
export function localDate() {
|
|
16
|
+
const d = new Date();
|
|
17
|
+
return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(d.getDate()).padStart(2, "0")}`;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=mem-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem-env.js","sourceRoot":"","sources":["../../src/mem-env.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,QAAiB;IACzD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IACrD,OAAO,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,QAAgB;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACnH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standalone logger for abmind.
|
|
3
|
+
* Re-exports bridge logger when running inside the bridge,
|
|
4
|
+
* falls back to minimal console logger when standalone.
|
|
5
|
+
*/
|
|
6
|
+
declare let _logInfo: (tag: string, msg: string) => void;
|
|
7
|
+
declare let _logWarn: (tag: string, msg: string) => void;
|
|
8
|
+
declare let _logError: (tag: string, msg: string, err?: unknown) => void;
|
|
9
|
+
/** Allow the host (bridge) to inject its own logger. */
|
|
10
|
+
export declare function setLogger(fns: {
|
|
11
|
+
logInfo: typeof _logInfo;
|
|
12
|
+
logWarn: typeof _logWarn;
|
|
13
|
+
logError: typeof _logError;
|
|
14
|
+
}): void;
|
|
15
|
+
export declare function logInfo(tag: string, msg: string): void;
|
|
16
|
+
export declare function logWarn(tag: string, msg: string): void;
|
|
17
|
+
export declare function logError(tag: string, msg: string, err?: unknown): void;
|
|
18
|
+
export declare function logDebug(tag: string, msg: string): void;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=mem-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem-logger.d.ts","sourceRoot":"","sources":["../../src/mem-logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,QAAA,IAAI,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAmD,CAAC;AAChG,QAAA,IAAI,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAoD,CAAC;AACjG,QAAA,IAAI,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,IAG3D,CAAC;AAEF,wDAAwD;AACxD,wBAAgB,SAAS,CAAC,GAAG,EAAE;IAAE,OAAO,EAAE,OAAO,QAAQ,CAAC;IAAC,OAAO,EAAE,OAAO,QAAQ,CAAC;IAAC,QAAQ,EAAE,OAAO,SAAS,CAAA;CAAE,GAAG,IAAI,CAIvH;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAwB;AAC/E,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAwB;AAC/E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAA8B;AACrG,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAwB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standalone logger for abmind.
|
|
3
|
+
* Re-exports bridge logger when running inside the bridge,
|
|
4
|
+
* falls back to minimal console logger when standalone.
|
|
5
|
+
*/
|
|
6
|
+
let _logInfo = (tag, msg) => console.log(`[${tag}] ${msg}`);
|
|
7
|
+
let _logWarn = (tag, msg) => console.warn(`[${tag}] ${msg}`);
|
|
8
|
+
let _logError = (tag, msg, err) => {
|
|
9
|
+
if (err)
|
|
10
|
+
console.error(`[${tag}] ${msg}`, err);
|
|
11
|
+
else
|
|
12
|
+
console.error(`[${tag}] ${msg}`);
|
|
13
|
+
};
|
|
14
|
+
/** Allow the host (bridge) to inject its own logger. */
|
|
15
|
+
export function setLogger(fns) {
|
|
16
|
+
_logInfo = fns.logInfo;
|
|
17
|
+
_logWarn = fns.logWarn;
|
|
18
|
+
_logError = fns.logError;
|
|
19
|
+
}
|
|
20
|
+
export function logInfo(tag, msg) { _logInfo(tag, msg); }
|
|
21
|
+
export function logWarn(tag, msg) { _logWarn(tag, msg); }
|
|
22
|
+
export function logError(tag, msg, err) { _logError(tag, msg, err); }
|
|
23
|
+
export function logDebug(tag, msg) { _logInfo(tag, msg); }
|
|
24
|
+
//# sourceMappingURL=mem-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem-logger.js","sourceRoot":"","sources":["../../src/mem-logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,IAAI,QAAQ,GAAuC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;AAChG,IAAI,QAAQ,GAAuC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;AACjG,IAAI,SAAS,GAAsD,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACnF,IAAI,GAAG;QAAE,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;;QAC1C,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,wDAAwD;AACxD,MAAM,UAAU,SAAS,CAAC,GAAuF;IAC/G,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;IACvB,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;IACvB,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,GAAW,IAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/E,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,GAAW,IAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/E,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,GAAW,EAAE,GAAa,IAAU,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACrG,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,GAAW,IAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Standalone paths for abmind. */
|
|
2
|
+
export declare function abmindHome(): string;
|
|
3
|
+
/** Directory for Kiro hook sidecar files + error logs (#344). */
|
|
4
|
+
export declare function abmindHooksDir(): string;
|
|
5
|
+
/** Path for extraction pending marker (#366). */
|
|
6
|
+
export declare function extractionPendingPath(): string;
|
|
7
|
+
/** Path for extraction failure counter (#366). */
|
|
8
|
+
export declare function extractionFailuresPath(): string;
|
|
9
|
+
/** Path for the hook error log (errors from wakeup/recall/store hooks). */
|
|
10
|
+
export declare function hookErrorLogPath(): string;
|
|
11
|
+
/**
|
|
12
|
+
* Derive a stable sidecar key for the current Kiro session.
|
|
13
|
+
* Preferred: KIRO_SESSION_ID env var (set by Kiro CLI, stable across all hooks
|
|
14
|
+
* in one session). Fallback: hash of cwd+date (coarse; collides only on same
|
|
15
|
+
* directory + same day + missing env var). Last resort: constant string.
|
|
16
|
+
*/
|
|
17
|
+
export declare function hookSidecarKey(): string;
|
|
18
|
+
/** Path to the sidecar file holding the most recent user prompt for this session. */
|
|
19
|
+
export declare function hookSidecarPath(): string;
|
|
20
|
+
//# sourceMappingURL=mem-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem-paths.d.ts","sourceRoot":"","sources":["../../src/mem-paths.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAMnC,wBAAgB,UAAU,IAAI,MAAM,CAGnC;AAED,iEAAiE;AACjE,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,iDAAiD;AACjD,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,kDAAkD;AAClD,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAED,qFAAqF;AACrF,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** Standalone paths for abmind. */
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { createHash } from "node:crypto";
|
|
5
|
+
export function abmindHome() {
|
|
6
|
+
const raw = process.env.ABMIND_HOME ?? resolve(homedir(), ".abmind");
|
|
7
|
+
return raw.startsWith("~") ? resolve(homedir(), raw.slice(1).replace(/^[/\\]/, "")) : raw;
|
|
8
|
+
}
|
|
9
|
+
/** Directory for Kiro hook sidecar files + error logs (#344). */
|
|
10
|
+
export function abmindHooksDir() {
|
|
11
|
+
return resolve(abmindHome(), "hooks");
|
|
12
|
+
}
|
|
13
|
+
/** Path for extraction pending marker (#366). */
|
|
14
|
+
export function extractionPendingPath() {
|
|
15
|
+
return resolve(abmindHooksDir(), "extraction-pending.marker");
|
|
16
|
+
}
|
|
17
|
+
/** Path for extraction failure counter (#366). */
|
|
18
|
+
export function extractionFailuresPath() {
|
|
19
|
+
return resolve(abmindHooksDir(), "extraction-failures.json");
|
|
20
|
+
}
|
|
21
|
+
/** Path for the hook error log (errors from wakeup/recall/store hooks). */
|
|
22
|
+
export function hookErrorLogPath() {
|
|
23
|
+
return resolve(abmindHooksDir(), "errors.log");
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Derive a stable sidecar key for the current Kiro session.
|
|
27
|
+
* Preferred: KIRO_SESSION_ID env var (set by Kiro CLI, stable across all hooks
|
|
28
|
+
* in one session). Fallback: hash of cwd+date (coarse; collides only on same
|
|
29
|
+
* directory + same day + missing env var). Last resort: constant string.
|
|
30
|
+
*/
|
|
31
|
+
export function hookSidecarKey() {
|
|
32
|
+
const kiroId = process.env.KIRO_SESSION_ID?.trim();
|
|
33
|
+
if (kiroId)
|
|
34
|
+
return kiroId;
|
|
35
|
+
const cwd = process.cwd();
|
|
36
|
+
const date = new Date().toISOString().slice(0, 10);
|
|
37
|
+
return "fallback-" + createHash("sha256").update(cwd + date).digest("hex").slice(0, 16);
|
|
38
|
+
}
|
|
39
|
+
/** Path to the sidecar file holding the most recent user prompt for this session. */
|
|
40
|
+
export function hookSidecarPath() {
|
|
41
|
+
return resolve(abmindHooksDir(), `last-prompt-${hookSidecarKey()}.txt`);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=mem-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem-paths.js","sourceRoot":"","sources":["../../src/mem-paths.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACrE,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5F,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,qBAAqB;IACnC,OAAO,OAAO,CAAC,cAAc,EAAE,EAAE,2BAA2B,CAAC,CAAC;AAChE,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,sBAAsB;IACpC,OAAO,OAAO,CAAC,cAAc,EAAE,EAAE,0BAA0B,CAAC,CAAC;AAC/D,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,cAAc,EAAE,EAAE,YAAY,CAAC,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IACnD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,eAAe;IAC7B,OAAO,OAAO,CAAC,cAAc,EAAE,EAAE,eAAe,cAAc,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/** A single conversation turn stored in a transcript and indexed for search. */
|
|
2
|
+
export type MessageRecord = {
|
|
3
|
+
role: "user" | "assistant" | "compaction";
|
|
4
|
+
content: string;
|
|
5
|
+
/** Unix timestamp in milliseconds */
|
|
6
|
+
timestamp: number;
|
|
7
|
+
userId: string;
|
|
8
|
+
sessionId: string;
|
|
9
|
+
/** Platform-specific message ID (e.g. Telegram message_id) for reaction tracking */
|
|
10
|
+
platformMessageId?: number;
|
|
11
|
+
};
|
|
12
|
+
/** Hierarchical memory consolidation tier. Quarterly added for new 3-tier compaction; monthly/yearly kept for backward compat. */
|
|
13
|
+
export type MemoryTier = "daily" | "weekly" | "quarterly" | "monthly" | "yearly";
|
|
14
|
+
/** A search result from the FTS5 index. */
|
|
15
|
+
export type SearchResult = {
|
|
16
|
+
record: MessageRecord;
|
|
17
|
+
/** BM25 relevance score */
|
|
18
|
+
score: number;
|
|
19
|
+
};
|
|
20
|
+
/** A search result from the vector index. */
|
|
21
|
+
export type VectorSearchResult = {
|
|
22
|
+
messageId: number;
|
|
23
|
+
/** Cosine similarity score */
|
|
24
|
+
score: number;
|
|
25
|
+
};
|
|
26
|
+
/** Options for filtering search results. */
|
|
27
|
+
export type SearchOptions = {
|
|
28
|
+
userId?: string;
|
|
29
|
+
startTime?: number;
|
|
30
|
+
endTime?: number;
|
|
31
|
+
limit?: number;
|
|
32
|
+
topic?: string;
|
|
33
|
+
tier?: "core" | "general";
|
|
34
|
+
includeExpired?: boolean;
|
|
35
|
+
};
|
|
36
|
+
/** Assembled LLM context with per-tier token usage breakdown. */
|
|
37
|
+
/** Result of a forget/cascade-delete operation (Phase 2). */
|
|
38
|
+
export type ForgetResult = {
|
|
39
|
+
messagesRemoved: number;
|
|
40
|
+
embeddingsRemoved: number;
|
|
41
|
+
transcriptEntriesRemoved: number;
|
|
42
|
+
};
|
|
43
|
+
/** A structured memory extracted from conversation transcripts by the MemoryExtractor. */
|
|
44
|
+
export type ExtractedMemory = {
|
|
45
|
+
id?: number;
|
|
46
|
+
user_id: string;
|
|
47
|
+
content_original: string;
|
|
48
|
+
content_en: string;
|
|
49
|
+
memory_type: "fact" | "decision" | "preference" | "event" | "lesson" | "feedback" | "story" | "observation";
|
|
50
|
+
created_at: number;
|
|
51
|
+
preserve_original: boolean;
|
|
52
|
+
preserved_keyword?: string;
|
|
53
|
+
emotion_score: number;
|
|
54
|
+
entities?: string[];
|
|
55
|
+
topic?: string;
|
|
56
|
+
tier?: "core" | "general";
|
|
57
|
+
valid_from?: string;
|
|
58
|
+
valid_to?: string | null;
|
|
59
|
+
};
|
|
60
|
+
/** Parameters for the agent-initiated memory search tool. */
|
|
61
|
+
export type MemorySearchParams = {
|
|
62
|
+
keywords: string[];
|
|
63
|
+
original_keyword?: string;
|
|
64
|
+
time_range?: {
|
|
65
|
+
start: number;
|
|
66
|
+
end: number;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
/** A single result from the memory search tool. */
|
|
70
|
+
export type MemorySearchResult = {
|
|
71
|
+
id?: number;
|
|
72
|
+
content: string;
|
|
73
|
+
content_original?: string;
|
|
74
|
+
memory_type?: string;
|
|
75
|
+
created_at: number;
|
|
76
|
+
source_message_ids?: string;
|
|
77
|
+
tier: "extracted" | "daily" | "weekly" | "quarterly";
|
|
78
|
+
score: number;
|
|
79
|
+
trust?: number;
|
|
80
|
+
integrity?: number;
|
|
81
|
+
credibility?: number;
|
|
82
|
+
classification?: number;
|
|
83
|
+
};
|
|
84
|
+
/** Heartbeat task definition. */
|
|
85
|
+
export type HeartbeatTask = {
|
|
86
|
+
name: string;
|
|
87
|
+
heavy?: boolean;
|
|
88
|
+
execute: () => Promise<boolean | void>;
|
|
89
|
+
};
|
|
90
|
+
/** Parameters for the agent-initiated instant memory store tool. */
|
|
91
|
+
export type InstantStoreParams = {
|
|
92
|
+
userId: string;
|
|
93
|
+
contentEn: string;
|
|
94
|
+
contentOriginal: string;
|
|
95
|
+
memoryType: "fact" | "decision" | "preference" | "event" | "lesson" | "feedback" | "story";
|
|
96
|
+
emotionScore: number;
|
|
97
|
+
emotionTags?: string;
|
|
98
|
+
emotionContext?: string;
|
|
99
|
+
keyword?: string;
|
|
100
|
+
confidence?: number;
|
|
101
|
+
sourceMessageIds?: string;
|
|
102
|
+
classification?: number;
|
|
103
|
+
trust?: number;
|
|
104
|
+
integrity?: number;
|
|
105
|
+
credibility?: number;
|
|
106
|
+
topic?: string;
|
|
107
|
+
};
|
|
108
|
+
/** Result of an instant memory store operation. */
|
|
109
|
+
export type InstantStoreResult = {
|
|
110
|
+
stored: boolean;
|
|
111
|
+
memoriesCount: number;
|
|
112
|
+
error?: string;
|
|
113
|
+
};
|
|
114
|
+
/** Parameters for the memory edit tool. */
|
|
115
|
+
export type EditMemoryParams = {
|
|
116
|
+
/** Lookup by memory ID (direct). */
|
|
117
|
+
memoryId?: number;
|
|
118
|
+
/** Lookup by platform message ID (finds linked memories). Requires userId. */
|
|
119
|
+
messageId?: number;
|
|
120
|
+
userId?: string;
|
|
121
|
+
/** Editable fields — only provided fields are updated. */
|
|
122
|
+
contentEn?: string;
|
|
123
|
+
contentOriginal?: string;
|
|
124
|
+
keyword?: string;
|
|
125
|
+
memoryType?: "fact" | "decision" | "preference" | "event";
|
|
126
|
+
emotionScore?: number;
|
|
127
|
+
emotionTags?: string;
|
|
128
|
+
emotionContext?: string;
|
|
129
|
+
confidence?: number;
|
|
130
|
+
trust?: number;
|
|
131
|
+
integrity?: number;
|
|
132
|
+
credibility?: number;
|
|
133
|
+
classification?: number;
|
|
134
|
+
/** Relevance: absolute number or string "+N"/"-N" for relative delta. */
|
|
135
|
+
relevanceScore?: number | string;
|
|
136
|
+
/** Caller for audit trail. */
|
|
137
|
+
caller?: string;
|
|
138
|
+
/** Declassify SECRET requires this. */
|
|
139
|
+
userOverride?: boolean;
|
|
140
|
+
/** Preview changes without committing. */
|
|
141
|
+
dryRun?: boolean;
|
|
142
|
+
/** ABM v1: topic assignment. */
|
|
143
|
+
topic?: string;
|
|
144
|
+
/** ABM v1: tier promotion/demotion. */
|
|
145
|
+
tier?: "core" | "general";
|
|
146
|
+
/** ABM v1: temporal invalidation (ISO date or empty string to clear). */
|
|
147
|
+
validTo?: string | null;
|
|
148
|
+
};
|
|
149
|
+
/** Result of a memory edit operation. */
|
|
150
|
+
export type EditMemoryResult = {
|
|
151
|
+
ok: boolean;
|
|
152
|
+
memoriesUpdated?: number;
|
|
153
|
+
ids?: number[];
|
|
154
|
+
fieldsUpdated?: string[];
|
|
155
|
+
error?: string;
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=mem-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem-types.d.ts","sourceRoot":"","sources":["../../src/mem-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem-types.js","sourceRoot":"","sources":["../../src/mem-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MemoryBackend — transport-agnostic memory API for CLI tools + tool-registry.
|
|
3
|
+
*
|
|
4
|
+
* ┌────────────────────────────────────────────────────────────────────────────┐
|
|
5
|
+
* │ When to use │
|
|
6
|
+
* ├────────────────────────────────────────────────────────────────────────────┤
|
|
7
|
+
* │ Consumers that may run in-process OR talk to a separate abmind process │
|
|
8
|
+
* │ over an IPC socket. The interface hides the transport — the caller just │
|
|
9
|
+
* │ awaits a Promise and doesn't care whether storage is local SQLite or │
|
|
10
|
+
* │ remote-over-socket. │
|
|
11
|
+
* │ │
|
|
12
|
+
* │ Use when: │
|
|
13
|
+
* │ - CLI tools (abmind store/edit/merge/recall — they use createMemoryBackend) │
|
|
14
|
+
* │ - Direct-API tool-registry (abtars's memory_store / memory_recall / │
|
|
15
|
+
* │ memory_edit tools register a MemoryBackend once at boot) │
|
|
16
|
+
* │ - MCP server adapter │
|
|
17
|
+
* │ - Ecosystem plugins (openclaw, future hosts) that don't own the process │
|
|
18
|
+
* └────────────────────────────────────────────────────────────────────────────┘
|
|
19
|
+
*
|
|
20
|
+
* Implementations:
|
|
21
|
+
* SqliteBackend in-process (sqlite-backend.ts) — wraps MemoryManager
|
|
22
|
+
* IpcBackend over Unix socket (memory-ipc-client.ts) — talks to a
|
|
23
|
+
* long-running abmind process via memory-ipc-server.ts
|
|
24
|
+
*
|
|
25
|
+
* Factory: `createMemoryBackend(config)` in backend-factory.ts picks the
|
|
26
|
+
* right one (tries IPC socket first, falls back to SQLite).
|
|
27
|
+
*
|
|
28
|
+
* Relationship to IMemoryCore/IMemorySystem (see imemory-system.ts):
|
|
29
|
+
* IMemoryCore/IMemorySystem = in-process, direct object reference,
|
|
30
|
+
* includes read + context-building methods
|
|
31
|
+
* MemoryBackend = transport-agnostic, async-only, focused on
|
|
32
|
+
* the write + recall paths callers need from
|
|
33
|
+
* outside the host's process
|
|
34
|
+
*
|
|
35
|
+
* Rule of thumb:
|
|
36
|
+
* - Running inside the host process? → IMemoryCore (read) or IMemorySystem (full)
|
|
37
|
+
* - Shelled-out CLI / tool call / IPC boundary? → MemoryBackend
|
|
38
|
+
*
|
|
39
|
+
* All methods are async — even local SQLite calls return Promises — so swap
|
|
40
|
+
* of transport is source-compatible.
|
|
41
|
+
*/
|
|
42
|
+
import type { InstantStoreParams, InstantStoreResult, EditMemoryParams, EditMemoryResult, ForgetResult } from "./mem-types.js";
|
|
43
|
+
import type { RecallParams, RecallResult } from "./recall-engine.js";
|
|
44
|
+
/** Merge result from combining two memories. */
|
|
45
|
+
export type MergeResult = {
|
|
46
|
+
merged: true;
|
|
47
|
+
keptId: number;
|
|
48
|
+
deletedId: number;
|
|
49
|
+
} | {
|
|
50
|
+
merged: false;
|
|
51
|
+
error: string;
|
|
52
|
+
};
|
|
53
|
+
/** Abstract memory backend — all CLI tools go through this. */
|
|
54
|
+
export interface MemoryBackend {
|
|
55
|
+
initialize(): Promise<void>;
|
|
56
|
+
close(): void;
|
|
57
|
+
instantStore(params: InstantStoreParams): Promise<InstantStoreResult>;
|
|
58
|
+
editMemory(params: EditMemoryParams): Promise<EditMemoryResult>;
|
|
59
|
+
reclassifyMemory(id: number, level: number, userOverride: boolean): Promise<void>;
|
|
60
|
+
adjustRelevance(id: number, delta: number): Promise<void>;
|
|
61
|
+
mergeMemories(idA: number, idB: number): Promise<MergeResult>;
|
|
62
|
+
cascadeDelete(messageIds: number[], userId: string): Promise<ForgetResult>;
|
|
63
|
+
recall(params: RecallParams): Promise<RecallResult>;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=memory-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-backend.d.ts","sourceRoot":"","sources":["../../src/memory-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/H,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAErE,gDAAgD;AAChD,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjH,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,IAAI,IAAI,CAAC;IAGd,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAGtE,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChE,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9D,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAG3E,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACrD"}
|