abmind 0.0.1 → 0.1.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/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 +145 -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 +31 -0
- package/dist/src/openclaw-plugin/tools.d.ts.map +1 -0
- package/dist/src/openclaw-plugin/tools.js +127 -0
- package/dist/src/openclaw-plugin/tools.js.map +1 -0
- package/dist/src/openclaw-plugin/types.d.ts +34 -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/package.json +87 -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,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* message-adapter.ts — Translate between OpenClaw AgentMessage and abmind MessageRecord.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Convert an OpenClaw AgentMessage to abmind MessageRecord.
|
|
6
|
+
*/
|
|
7
|
+
export function toMessage(agentMessage, chatId) {
|
|
8
|
+
const role = agentMessage.role === "toolResult" ? "tool" : (agentMessage.role ?? "user");
|
|
9
|
+
let content;
|
|
10
|
+
if (typeof agentMessage.content === "string") {
|
|
11
|
+
content = agentMessage.content;
|
|
12
|
+
}
|
|
13
|
+
else if (Array.isArray(agentMessage.content)) {
|
|
14
|
+
// Extract text from content blocks
|
|
15
|
+
content = agentMessage.content
|
|
16
|
+
.map((block) => {
|
|
17
|
+
if (typeof block === "string")
|
|
18
|
+
return block;
|
|
19
|
+
if (block?.type === "text")
|
|
20
|
+
return block.text ?? "";
|
|
21
|
+
if (block?.type === "toolCall")
|
|
22
|
+
return `[tool_call: ${block.name ?? "?"}]`;
|
|
23
|
+
return "";
|
|
24
|
+
})
|
|
25
|
+
.filter(Boolean)
|
|
26
|
+
.join("\n");
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
content = String(agentMessage.content ?? "");
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
role,
|
|
33
|
+
content,
|
|
34
|
+
userId: "openclaw",
|
|
35
|
+
sessionId: chatId,
|
|
36
|
+
timestamp: Date.now(),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Map abmind role to OpenClaw AgentMessage role.
|
|
41
|
+
*/
|
|
42
|
+
export function toAssistantRole(role) {
|
|
43
|
+
if (role === "tool")
|
|
44
|
+
return "toolResult";
|
|
45
|
+
if (role === "assistant")
|
|
46
|
+
return "assistant";
|
|
47
|
+
return "user";
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=message-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-adapter.js","sourceRoot":"","sources":["../../../src/openclaw-plugin/message-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,YAAiB,EAAE,MAAc;IACzD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;IACzF,IAAI,OAAe,CAAC;IAEpB,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;IACjC,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,mCAAmC;QACnC,OAAO,GAAG,YAAY,CAAC,OAAO;aAC3B,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE;YAClB,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC5C,IAAI,KAAK,EAAE,IAAI,KAAK,MAAM;gBAAE,OAAO,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YACpD,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU;gBAAE,OAAO,eAAe,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC;YAC3E,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO;QACL,IAAI;QACJ,OAAO;QACP,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,YAAY,CAAC;IACzC,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* prompt-builder.ts — contributes static prompt lines to the agent's system
|
|
3
|
+
* prompt when abmind is the registered memory plugin.
|
|
4
|
+
*
|
|
5
|
+
* Called by OpenClaw on every turn via MemoryPluginCapability.promptBuilder.
|
|
6
|
+
* Return value: an array of prompt lines (joined by the host into the
|
|
7
|
+
* broader memory section of the system prompt).
|
|
8
|
+
*
|
|
9
|
+
* Note: runtime capabilities (search, store) are surfaced to the agent via
|
|
10
|
+
* the tool surface (see tools.ts) — this builder only writes descriptive
|
|
11
|
+
* guidance, not tool schemas.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildPromptSection(_params: {
|
|
14
|
+
availableTools?: Set<string>;
|
|
15
|
+
citationsMode?: unknown;
|
|
16
|
+
}): string[];
|
|
17
|
+
//# sourceMappingURL=prompt-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/openclaw-plugin/prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAAE,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,EAAE,CAO/G"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* prompt-builder.ts — contributes static prompt lines to the agent's system
|
|
3
|
+
* prompt when abmind is the registered memory plugin.
|
|
4
|
+
*
|
|
5
|
+
* Called by OpenClaw on every turn via MemoryPluginCapability.promptBuilder.
|
|
6
|
+
* Return value: an array of prompt lines (joined by the host into the
|
|
7
|
+
* broader memory section of the system prompt).
|
|
8
|
+
*
|
|
9
|
+
* Note: runtime capabilities (search, store) are surfaced to the agent via
|
|
10
|
+
* the tool surface (see tools.ts) — this builder only writes descriptive
|
|
11
|
+
* guidance, not tool schemas.
|
|
12
|
+
*/
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
+
export function buildPromptSection(_params) {
|
|
15
|
+
return [
|
|
16
|
+
"You have persistent long-term memory via abmind (SQLite + FTS5 + trigram + optional embeddings).",
|
|
17
|
+
"Use abmind_recall to search past conversations, decisions, preferences, and facts before responding to anything that references prior context.",
|
|
18
|
+
"Memories are classification-aware: SECRET items never surface; CONFIDENTIAL items only on direct request.",
|
|
19
|
+
"When you store a memory, include a short, factual summary in English — not a transcript. Note WHY for decisions.",
|
|
20
|
+
];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=prompt-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/openclaw-plugin/prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB,CAAC,OAAkE;IACnG,OAAO;QACL,kGAAkG;QAClG,gJAAgJ;QAChJ,2GAA2G;QAC3G,kHAAkH;KACnH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* public-artifacts.ts — enumerate abmind's human-readable output files for
|
|
3
|
+
* OpenClaw's MemoryPluginCapability.publicArtifacts.listArtifacts.
|
|
4
|
+
*
|
|
5
|
+
* abmind writes prose files under $ABMIND_HOME/memory/:
|
|
6
|
+
* daily/*.md — nightly daily summaries
|
|
7
|
+
* consolidation/*.md — weekly / quarterly consolidations
|
|
8
|
+
* sleep/*.md — sleep audit logs
|
|
9
|
+
*
|
|
10
|
+
* OpenClaw's UI / CLI can surface these to users as "memory artifacts"
|
|
11
|
+
* alongside any native ones it knows about.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* List all abmind public artifacts (daily + consolidation + sleep markdown
|
|
15
|
+
* files). Returned as a flat array; caller can group or filter.
|
|
16
|
+
*
|
|
17
|
+
* OpenClaw's MemoryPluginPublicArtifact shape is `any` at our boundary.
|
|
18
|
+
*/
|
|
19
|
+
export declare function buildListArtifacts(pluginId: string): (cfg?: any) => Promise<any[]>;
|
|
20
|
+
//# sourceMappingURL=public-artifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-artifacts.d.ts","sourceRoot":"","sources":["../../../src/openclaw-plugin/public-artifacts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAqCH;;;;;GAKG;AAEH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAalF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* public-artifacts.ts — enumerate abmind's human-readable output files for
|
|
3
|
+
* OpenClaw's MemoryPluginCapability.publicArtifacts.listArtifacts.
|
|
4
|
+
*
|
|
5
|
+
* abmind writes prose files under $ABMIND_HOME/memory/:
|
|
6
|
+
* daily/*.md — nightly daily summaries
|
|
7
|
+
* consolidation/*.md — weekly / quarterly consolidations
|
|
8
|
+
* sleep/*.md — sleep audit logs
|
|
9
|
+
*
|
|
10
|
+
* OpenClaw's UI / CLI can surface these to users as "memory artifacts"
|
|
11
|
+
* alongside any native ones it knows about.
|
|
12
|
+
*/
|
|
13
|
+
import { readdirSync, statSync } from "node:fs";
|
|
14
|
+
import { join } from "node:path";
|
|
15
|
+
import { getRuntime } from "../runtime-store.js";
|
|
16
|
+
function listMarkdownFiles(root, category) {
|
|
17
|
+
const dir = join(root, category);
|
|
18
|
+
try {
|
|
19
|
+
const entries = readdirSync(dir).filter((e) => e.endsWith(".md"));
|
|
20
|
+
return entries.map((name) => {
|
|
21
|
+
const full = join(dir, name);
|
|
22
|
+
const stat = statSync(full);
|
|
23
|
+
return {
|
|
24
|
+
path: full,
|
|
25
|
+
relPath: `${category}/${name}`,
|
|
26
|
+
category,
|
|
27
|
+
sizeBytes: stat.size,
|
|
28
|
+
modifiedMs: stat.mtimeMs,
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// Directory missing / unreadable — return empty, not an error. Fresh
|
|
34
|
+
// installs won't have any artifacts yet.
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* List all abmind public artifacts (daily + consolidation + sleep markdown
|
|
40
|
+
* files). Returned as a flat array; caller can group or filter.
|
|
41
|
+
*
|
|
42
|
+
* OpenClaw's MemoryPluginPublicArtifact shape is `any` at our boundary.
|
|
43
|
+
*/
|
|
44
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
45
|
+
export function buildListArtifacts(pluginId) {
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
47
|
+
return async function listArtifacts(_cfg) {
|
|
48
|
+
const runtime = getRuntime(pluginId);
|
|
49
|
+
const root = runtime.memoryConfig.memoryDir;
|
|
50
|
+
const all = [
|
|
51
|
+
...listMarkdownFiles(root, "daily"),
|
|
52
|
+
...listMarkdownFiles(root, "consolidation"),
|
|
53
|
+
...listMarkdownFiles(root, "sleep"),
|
|
54
|
+
];
|
|
55
|
+
all.sort((a, b) => b.modifiedMs - a.modifiedMs);
|
|
56
|
+
return all;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=public-artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-artifacts.js","sourceRoot":"","sources":["../../../src/openclaw-plugin/public-artifacts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAWjD,SAAS,iBAAiB,CAAC,IAAY,EAAE,QAAmC;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,GAAG,QAAQ,IAAI,IAAI,EAAE;gBAC9B,QAAQ;gBACR,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,UAAU,EAAE,IAAI,CAAC,OAAO;aACzB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;QACrE,yCAAyC;QACzC,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,8DAA8D;IAC9D,OAAO,KAAK,UAAU,aAAa,CAAC,IAAU;QAC5C,MAAM,OAAO,GAAG,UAAU,CAAsB,QAAQ,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;QAC5C,MAAM,GAAG,GAAoB;YAC3B,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;YACnC,GAAG,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC;YAC3C,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;SACpC,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* runtime-adapter.ts — bridges abmind's MemoryManager + recallSearch onto
|
|
3
|
+
* OpenClaw's MemoryPluginRuntime / MemorySearchManager surface.
|
|
4
|
+
*
|
|
5
|
+
* Boundaries: all OpenClaw SDK types are `any` (option b.1). Shape drift is
|
|
6
|
+
* caught by the integration smoke test against a real openclaw dev install,
|
|
7
|
+
* not at compile time.
|
|
8
|
+
*
|
|
9
|
+
* Path convention: abmind is SQLite-backed, so "files" are synthesized from
|
|
10
|
+
* memory rows on demand. Search results return relPaths in the form
|
|
11
|
+
* "abmind://memory/<id>"
|
|
12
|
+
* and readFile detects the scheme and routes to DB synthesis. No filesystem
|
|
13
|
+
* interop — any plain `fs.readFile` path on a synthetic relPath fails loudly.
|
|
14
|
+
*/
|
|
15
|
+
/** Build the canonical relPath for a memory row. */
|
|
16
|
+
export declare function abmindUri(memoryId: number): string;
|
|
17
|
+
/** Parse an abmind:// URI back to the memory id. Returns null if the scheme doesn't match. */
|
|
18
|
+
export declare function parseAbmindUri(uri: string): {
|
|
19
|
+
memoryId: number;
|
|
20
|
+
} | null;
|
|
21
|
+
/**
|
|
22
|
+
* Build a MemoryPluginRuntime for this plugin. Single-instance: every agent
|
|
23
|
+
* shares one MemorySearchManager backed by the plugin's AbmindPluginRuntime.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createMemoryPluginRuntime(pluginId: string): any;
|
|
26
|
+
//# sourceMappingURL=runtime-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-adapter.d.ts","sourceRoot":"","sources":["../../../src/openclaw-plugin/runtime-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMvE;AA4HD;;;GAGG;AAEH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAgB/D"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* runtime-adapter.ts — bridges abmind's MemoryManager + recallSearch onto
|
|
3
|
+
* OpenClaw's MemoryPluginRuntime / MemorySearchManager surface.
|
|
4
|
+
*
|
|
5
|
+
* Boundaries: all OpenClaw SDK types are `any` (option b.1). Shape drift is
|
|
6
|
+
* caught by the integration smoke test against a real openclaw dev install,
|
|
7
|
+
* not at compile time.
|
|
8
|
+
*
|
|
9
|
+
* Path convention: abmind is SQLite-backed, so "files" are synthesized from
|
|
10
|
+
* memory rows on demand. Search results return relPaths in the form
|
|
11
|
+
* "abmind://memory/<id>"
|
|
12
|
+
* and readFile detects the scheme and routes to DB synthesis. No filesystem
|
|
13
|
+
* interop — any plain `fs.readFile` path on a synthetic relPath fails loudly.
|
|
14
|
+
*/
|
|
15
|
+
import { getRuntime } from "../runtime-store.js";
|
|
16
|
+
import { loadEmbedConfig } from "../ollama-embed.js";
|
|
17
|
+
// ── Synthetic URI helpers ─────────────────────────────────────────────────
|
|
18
|
+
const ABMIND_URI_SCHEME = "abmind://";
|
|
19
|
+
const ABMIND_MEMORY_PREFIX = `${ABMIND_URI_SCHEME}memory/`;
|
|
20
|
+
/** Build the canonical relPath for a memory row. */
|
|
21
|
+
export function abmindUri(memoryId) {
|
|
22
|
+
return `${ABMIND_MEMORY_PREFIX}${memoryId}`;
|
|
23
|
+
}
|
|
24
|
+
/** Parse an abmind:// URI back to the memory id. Returns null if the scheme doesn't match. */
|
|
25
|
+
export function parseAbmindUri(uri) {
|
|
26
|
+
if (typeof uri !== "string" || !uri.startsWith(ABMIND_MEMORY_PREFIX))
|
|
27
|
+
return null;
|
|
28
|
+
const idStr = uri.slice(ABMIND_MEMORY_PREFIX.length);
|
|
29
|
+
const memoryId = Number.parseInt(idStr, 10);
|
|
30
|
+
if (!Number.isFinite(memoryId) || memoryId <= 0)
|
|
31
|
+
return null;
|
|
32
|
+
return { memoryId };
|
|
33
|
+
}
|
|
34
|
+
// ── MemorySearchManager ────────────────────────────────────────────────────
|
|
35
|
+
/**
|
|
36
|
+
* Build a MemorySearchManager bound to a specific plugin runtime.
|
|
37
|
+
* Each agent in OpenClaw gets its own manager via
|
|
38
|
+
* MemoryPluginRuntime.getMemorySearchManager — but since our plugin is
|
|
39
|
+
* single-instance-per-process (one abmind DB per plugin registration),
|
|
40
|
+
* every agent shares the SAME manager. That's fine for our deployment
|
|
41
|
+
* model; revisit if OpenClaw ever needs per-agent isolation.
|
|
42
|
+
*/
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
44
|
+
function createMemorySearchManager(pluginId) {
|
|
45
|
+
const runtime = getRuntime(pluginId);
|
|
46
|
+
return {
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
+
async search(query, opts) {
|
|
49
|
+
const limit = Math.min(Math.max(opts?.limit ?? 10, 1), 50);
|
|
50
|
+
const result = await runtime.memory.recallSearch({
|
|
51
|
+
translated: [query],
|
|
52
|
+
userId: opts?.userId ?? "default",
|
|
53
|
+
limit,
|
|
54
|
+
maxClassification: opts?.maxClassification ?? 2,
|
|
55
|
+
topic: opts?.topic,
|
|
56
|
+
});
|
|
57
|
+
return result.results.map((h) => ({
|
|
58
|
+
// OpenClaw MemorySearchResult shape — keep familiar fields, let the
|
|
59
|
+
// host runtime project whatever it needs. Type is `any`.
|
|
60
|
+
relPath: h.id !== undefined ? abmindUri(h.id) : undefined,
|
|
61
|
+
content: h.content,
|
|
62
|
+
score: h.score,
|
|
63
|
+
memoryId: h.id,
|
|
64
|
+
memoryType: h.memoryType,
|
|
65
|
+
topic: h.topic,
|
|
66
|
+
date: h.date,
|
|
67
|
+
source: h.source,
|
|
68
|
+
}));
|
|
69
|
+
},
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
71
|
+
async readFile(params) {
|
|
72
|
+
const parsed = parseAbmindUri(params.relPath);
|
|
73
|
+
if (!parsed) {
|
|
74
|
+
throw new Error(`abmind readFile: relPath "${params.relPath}" is not an abmind:// URI. ` +
|
|
75
|
+
`Only search-returned relPaths are readable; filesystem paths are not supported.`);
|
|
76
|
+
}
|
|
77
|
+
const row = runtime.db
|
|
78
|
+
.prepare("SELECT id, content_en, content_original, memory_type, topic, created_at FROM extracted_memories WHERE id = ?")
|
|
79
|
+
.get(parsed.memoryId);
|
|
80
|
+
if (!row) {
|
|
81
|
+
throw new Error(`abmind readFile: memory ${parsed.memoryId} not found`);
|
|
82
|
+
}
|
|
83
|
+
const body = row.content_en ?? row.content_original ?? "";
|
|
84
|
+
const dateStr = new Date(row.created_at).toISOString().slice(0, 10);
|
|
85
|
+
const header = `# Memory ${row.id}\n\n- Type: ${row.memory_type ?? "unknown"}\n- Topic: ${row.topic ?? "general"}\n- Date: ${dateStr}\n\n`;
|
|
86
|
+
const full = header + body;
|
|
87
|
+
// Apply line slicing if requested
|
|
88
|
+
if (params.from !== undefined || params.lines !== undefined) {
|
|
89
|
+
const all = full.split("\n");
|
|
90
|
+
const from = Math.max(params.from ?? 0, 0);
|
|
91
|
+
const count = params.lines ?? all.length - from;
|
|
92
|
+
return { text: all.slice(from, from + count).join("\n"), path: params.relPath };
|
|
93
|
+
}
|
|
94
|
+
return { text: full, path: params.relPath };
|
|
95
|
+
},
|
|
96
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
97
|
+
status() {
|
|
98
|
+
const embed = loadEmbedConfig();
|
|
99
|
+
return {
|
|
100
|
+
backend: "abmind-sqlite",
|
|
101
|
+
embeddingAvailable: embed.enabled,
|
|
102
|
+
embeddingModel: embed.enabled ? embed.model : null,
|
|
103
|
+
embeddingUrl: embed.enabled ? embed.url : null,
|
|
104
|
+
vectorAvailable: embed.enabled, // vector search = embedding search in abmind
|
|
105
|
+
};
|
|
106
|
+
},
|
|
107
|
+
async probeEmbeddingAvailability() {
|
|
108
|
+
const embed = loadEmbedConfig();
|
|
109
|
+
if (!embed.enabled)
|
|
110
|
+
return false;
|
|
111
|
+
try {
|
|
112
|
+
const res = await fetch(`${embed.url}/api/tags`, { method: "GET" });
|
|
113
|
+
return res.ok;
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
async probeVectorAvailability() {
|
|
120
|
+
// In abmind, vector availability == embedding availability (FTS5 alone
|
|
121
|
+
// doesn't count as vector). Delegate to the same probe.
|
|
122
|
+
const embed = loadEmbedConfig();
|
|
123
|
+
if (!embed.enabled)
|
|
124
|
+
return false;
|
|
125
|
+
try {
|
|
126
|
+
const res = await fetch(`${embed.url}/api/tags`, { method: "GET" });
|
|
127
|
+
return res.ok;
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
close() {
|
|
134
|
+
// abmind lifecycle is owned by the plugin registration, not individual
|
|
135
|
+
// MemorySearchManagers. Close is a no-op here; dispose() on the engine
|
|
136
|
+
// handles DB teardown.
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
// ── MemoryPluginRuntime ────────────────────────────────────────────────────
|
|
141
|
+
/**
|
|
142
|
+
* Build a MemoryPluginRuntime for this plugin. Single-instance: every agent
|
|
143
|
+
* shares one MemorySearchManager backed by the plugin's AbmindPluginRuntime.
|
|
144
|
+
*/
|
|
145
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
146
|
+
export function createMemoryPluginRuntime(pluginId) {
|
|
147
|
+
return {
|
|
148
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
149
|
+
getMemorySearchManager(_params) {
|
|
150
|
+
return { manager: createMemorySearchManager(pluginId) };
|
|
151
|
+
},
|
|
152
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
153
|
+
resolveMemoryBackendConfig(_params) {
|
|
154
|
+
return { backend: "builtin" };
|
|
155
|
+
},
|
|
156
|
+
closeAllMemorySearchManagers() {
|
|
157
|
+
// Managers share the plugin's DB, which is closed via dispose(). No-op.
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=runtime-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-adapter.js","sourceRoot":"","sources":["../../../src/openclaw-plugin/runtime-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* session-mapper.ts — Map OpenClaw session keys to abmind chatIds.
|
|
3
|
+
* Format: "agent:<agentId>:<rest>" → chatId = rest
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Extract chatId from OpenClaw session key.
|
|
7
|
+
* "agent:main:telegram:12345" → "telegram:12345"
|
|
8
|
+
* Falls back to full key if not in agent: format.
|
|
9
|
+
*/
|
|
10
|
+
export declare function toChatId(sessionKey: string): string;
|
|
11
|
+
//# sourceMappingURL=session-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-mapper.d.ts","sourceRoot":"","sources":["../../../src/openclaw-plugin/session-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMnD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* session-mapper.ts — Map OpenClaw session keys to abmind chatIds.
|
|
3
|
+
* Format: "agent:<agentId>:<rest>" → chatId = rest
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Extract chatId from OpenClaw session key.
|
|
7
|
+
* "agent:main:telegram:12345" → "telegram:12345"
|
|
8
|
+
* Falls back to full key if not in agent: format.
|
|
9
|
+
*/
|
|
10
|
+
export function toChatId(sessionKey) {
|
|
11
|
+
const parts = sessionKey.split(":");
|
|
12
|
+
if (parts.length >= 3 && parts[0] === "agent") {
|
|
13
|
+
return parts.slice(2).join(":");
|
|
14
|
+
}
|
|
15
|
+
return sessionKey;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=session-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-mapper.js","sourceRoot":"","sources":["../../../src/openclaw-plugin/session-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,UAAkB;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenClaw agent tools for abmind.
|
|
3
|
+
*
|
|
4
|
+
* Registered via api.registerTool() in openclaw-plugin/index.ts.
|
|
5
|
+
*
|
|
6
|
+
* Type strategy: we type pi-agent-core boundaries as `any` (option b.1 from
|
|
7
|
+
* the #347 plan discussion). Rationale: pi-agent-core isn't a peer dep — we
|
|
8
|
+
* accept runtime-only validation of the AgentTool contract. OpenClaw's tool
|
|
9
|
+
* runner catches shape errors at registration time; integration tests catch
|
|
10
|
+
* them in CI. This keeps abmind's dep graph clean for standalone users.
|
|
11
|
+
*
|
|
12
|
+
* We DO peer-dep @sinclair/typebox because the schema builder is needed at
|
|
13
|
+
* runtime to construct the parameter schema in the shape pi-agent-core
|
|
14
|
+
* expects. Optional peer — not installed for standalone users who don't
|
|
15
|
+
* load this plugin.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Create the abmind_recall tool bound to a plugin instance and session.
|
|
19
|
+
*
|
|
20
|
+
* @param pluginId Matches the id the runtime was registered under in runtime-store
|
|
21
|
+
* @param sessionKey OpenClaw session key (from ctx.sessionKey in the registerTool factory).
|
|
22
|
+
* When present, recall is scoped to that session's chatId.
|
|
23
|
+
* When absent, recall falls back to the runtime's default user.
|
|
24
|
+
*
|
|
25
|
+
* Return type is `any` intentionally — we don't peer-dep pi-agent-core, so the
|
|
26
|
+
* AgentTool type isn't in scope here. OpenClaw validates the shape at
|
|
27
|
+
* registration time; an integration test catches contract drift.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createAbmindRecallTool(pluginId: string, sessionKey: string | undefined): any;
|
|
30
|
+
export declare function createAbmindStoreTool(pluginId: string, sessionKey: string | undefined): any;
|
|
31
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/openclaw-plugin/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAkEH;;;;;;;;;;;GAWG;AAEH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAqC5F;AAgBD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAuB3F"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenClaw agent tools for abmind.
|
|
3
|
+
*
|
|
4
|
+
* Registered via api.registerTool() in openclaw-plugin/index.ts.
|
|
5
|
+
*
|
|
6
|
+
* Type strategy: we type pi-agent-core boundaries as `any` (option b.1 from
|
|
7
|
+
* the #347 plan discussion). Rationale: pi-agent-core isn't a peer dep — we
|
|
8
|
+
* accept runtime-only validation of the AgentTool contract. OpenClaw's tool
|
|
9
|
+
* runner catches shape errors at registration time; integration tests catch
|
|
10
|
+
* them in CI. This keeps abmind's dep graph clean for standalone users.
|
|
11
|
+
*
|
|
12
|
+
* We DO peer-dep @sinclair/typebox because the schema builder is needed at
|
|
13
|
+
* runtime to construct the parameter schema in the shape pi-agent-core
|
|
14
|
+
* expects. Optional peer — not installed for standalone users who don't
|
|
15
|
+
* load this plugin.
|
|
16
|
+
*/
|
|
17
|
+
import { Type } from "@sinclair/typebox";
|
|
18
|
+
import { getRuntime } from "../runtime-store.js";
|
|
19
|
+
import { toChatId } from "./session-mapper.js";
|
|
20
|
+
// ── Schema ────────────────────────────────────────────────────────────────
|
|
21
|
+
const AbmindRecallSchema = Type.Object({
|
|
22
|
+
query: Type.String({
|
|
23
|
+
description: "The search query. English keywords work best. For multilingual content, try both the original language and English translation.",
|
|
24
|
+
}),
|
|
25
|
+
limit: Type.Optional(Type.Number({
|
|
26
|
+
description: "Max results to return. Default 10, range 1-50.",
|
|
27
|
+
minimum: 1,
|
|
28
|
+
maximum: 50,
|
|
29
|
+
})),
|
|
30
|
+
topic: Type.Optional(Type.String({
|
|
31
|
+
description: "Optional topic filter (e.g. 'work', 'relationships', 'health').",
|
|
32
|
+
})),
|
|
33
|
+
emotion: Type.Optional(Type.String({
|
|
34
|
+
description: "Optional emotion filter — tag (joy, frust, convict) or group (positive, negative, high-energy).",
|
|
35
|
+
})),
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* Render a payload as an AgentToolResult. Matches lossless-claw's jsonResult
|
|
39
|
+
* convention: JSON-as-pretty-text in content[0].text, raw object in details.
|
|
40
|
+
*/
|
|
41
|
+
function jsonResult(payload) {
|
|
42
|
+
return {
|
|
43
|
+
content: [{ type: "text", text: JSON.stringify(payload, null, 2) }],
|
|
44
|
+
details: payload,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// ── Tool factory ──────────────────────────────────────────────────────────
|
|
48
|
+
/**
|
|
49
|
+
* Create the abmind_recall tool bound to a plugin instance and session.
|
|
50
|
+
*
|
|
51
|
+
* @param pluginId Matches the id the runtime was registered under in runtime-store
|
|
52
|
+
* @param sessionKey OpenClaw session key (from ctx.sessionKey in the registerTool factory).
|
|
53
|
+
* When present, recall is scoped to that session's chatId.
|
|
54
|
+
* When absent, recall falls back to the runtime's default user.
|
|
55
|
+
*
|
|
56
|
+
* Return type is `any` intentionally — we don't peer-dep pi-agent-core, so the
|
|
57
|
+
* AgentTool type isn't in scope here. OpenClaw validates the shape at
|
|
58
|
+
* registration time; an integration test catches contract drift.
|
|
59
|
+
*/
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
61
|
+
export function createAbmindRecallTool(pluginId, sessionKey) {
|
|
62
|
+
return {
|
|
63
|
+
name: "abmind_recall",
|
|
64
|
+
label: "Abmind Recall",
|
|
65
|
+
description: "Search long-term memory for past conversations, facts, decisions. Use when user references earlier sessions or asks you to remember something. Optional filters: topic, emotion.",
|
|
66
|
+
parameters: AbmindRecallSchema,
|
|
67
|
+
async execute(_toolCallId, params, _signal) {
|
|
68
|
+
const runtime = getRuntime(pluginId);
|
|
69
|
+
const chatId = sessionKey ? toChatId(sessionKey) : undefined;
|
|
70
|
+
const limit = Math.min(Math.max(params.limit ?? 10, 1), 50);
|
|
71
|
+
const result = await runtime.memory.recallSearch({
|
|
72
|
+
translated: [params.query],
|
|
73
|
+
userId: chatId ?? "default",
|
|
74
|
+
limit,
|
|
75
|
+
maxClassification: 2, // hardcoded — tool callers never see SECRET (class 3)
|
|
76
|
+
topic: params.topic,
|
|
77
|
+
emotion: params.emotion,
|
|
78
|
+
});
|
|
79
|
+
const hits = result.results.map((h) => ({
|
|
80
|
+
id: h.id,
|
|
81
|
+
content: h.content,
|
|
82
|
+
date: h.date,
|
|
83
|
+
source: h.source,
|
|
84
|
+
score: h.score,
|
|
85
|
+
memoryType: h.memoryType,
|
|
86
|
+
topic: h.topic,
|
|
87
|
+
}));
|
|
88
|
+
return jsonResult({
|
|
89
|
+
count: hits.length,
|
|
90
|
+
hits,
|
|
91
|
+
});
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
// ── Store tool ────────────────────────────────────────────────────────────
|
|
96
|
+
const AbmindStoreSchema = Type.Object({
|
|
97
|
+
content: Type.String({ description: "Memory content (English). For credentials, store the exact string." }),
|
|
98
|
+
original: Type.Optional(Type.String({ description: "Original language content (if not English)" })),
|
|
99
|
+
type: Type.String({ description: "Memory type", enum: ["fact", "decision", "preference", "event", "lesson", "feedback", "story"] }),
|
|
100
|
+
topic: Type.Optional(Type.String({ description: "Topic tag (coding, personal, finance, health, work, etc.)" })),
|
|
101
|
+
classification: Type.Optional(Type.Integer({ description: "0=public, 1=internal, 2=confidential, 3=secret (credentials — store IMMEDIATELY with exact string)", minimum: 0, maximum: 3 })),
|
|
102
|
+
emotion: Type.Optional(Type.Integer({ description: "Emotion score -5 to +5 (0=neutral)", minimum: -5, maximum: 5 })),
|
|
103
|
+
});
|
|
104
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
105
|
+
export function createAbmindStoreTool(pluginId, sessionKey) {
|
|
106
|
+
return {
|
|
107
|
+
name: "abmind_store",
|
|
108
|
+
label: "Abmind Store",
|
|
109
|
+
description: "Store a memory. Use after learning facts, preferences, decisions. API keys/tokens/passwords → classification=3 with exact string, immediately.",
|
|
110
|
+
parameters: AbmindStoreSchema,
|
|
111
|
+
async execute(_toolCallId, params, _signal) {
|
|
112
|
+
const runtime = getRuntime(pluginId);
|
|
113
|
+
const userId = sessionKey ? toChatId(sessionKey) : "default";
|
|
114
|
+
const result = await runtime.memory.editor.instantStore({
|
|
115
|
+
userId,
|
|
116
|
+
contentEn: params.content,
|
|
117
|
+
contentOriginal: params.original ?? params.content,
|
|
118
|
+
memoryType: params.type,
|
|
119
|
+
topic: params.topic ?? "general",
|
|
120
|
+
classification: params.classification ?? 1,
|
|
121
|
+
emotionScore: params.emotion ?? 0,
|
|
122
|
+
});
|
|
123
|
+
return jsonResult(result);
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/openclaw-plugin/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type Database from "better-sqlite3";
|
|
2
|
+
import type { ContextEngine as AbmindCtxEngine } from "../context-engine.js";
|
|
3
|
+
import type { MemoryManager } from "../memory-manager.js";
|
|
4
|
+
import type { MemoryConfig } from "../memory-config.js";
|
|
5
|
+
export interface AbmindPluginConfig {
|
|
6
|
+
abmlVersion: string;
|
|
7
|
+
compactionThreshold: number;
|
|
8
|
+
sleepEnabled: boolean;
|
|
9
|
+
stateDir?: string;
|
|
10
|
+
/** Inject top-relevant memories into context before every agent turn. Default false. */
|
|
11
|
+
autoRecall: boolean;
|
|
12
|
+
/** Capture user messages for later memory extraction. Default false. */
|
|
13
|
+
autoCapture: boolean;
|
|
14
|
+
/** Max memories injected per turn when autoRecall is enabled. Default 3, range 1-10. */
|
|
15
|
+
autoRecallMaxResults: number;
|
|
16
|
+
/** Minimum relevance score for a memory to be injected. Default 0.3. */
|
|
17
|
+
autoRecallMinScore: number;
|
|
18
|
+
}
|
|
19
|
+
export type CompleteFn = (system: string, user: string, maxTokens: number) => Promise<string>;
|
|
20
|
+
/**
|
|
21
|
+
* All per-instance state for one abmind plugin registration.
|
|
22
|
+
* Stored in runtime-store.ts under the plugin's id so multiple instances
|
|
23
|
+
* coexist without shared mutable state.
|
|
24
|
+
*/
|
|
25
|
+
export interface AbmindPluginRuntime {
|
|
26
|
+
readonly pluginId: string;
|
|
27
|
+
readonly contextEngine: AbmindCtxEngine;
|
|
28
|
+
readonly memory: MemoryManager;
|
|
29
|
+
readonly db: Database.Database;
|
|
30
|
+
readonly completeFn: CompleteFn;
|
|
31
|
+
readonly config: AbmindPluginConfig;
|
|
32
|
+
readonly memoryConfig: MemoryConfig;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|