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,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* turn-classifier.ts — Heuristic classifier for conversation turns.
|
|
3
|
+
*
|
|
4
|
+
* Runs at turn write time. Derives type/topic/emotion hints for later
|
|
5
|
+
* middle-tier rendering (#348). Pure function, no LLM, no I/O.
|
|
6
|
+
*
|
|
7
|
+
* Hint values are nullable on the messages row — missing hints mean
|
|
8
|
+
* "classifier hadn't run for this turn" (historical messages, or
|
|
9
|
+
* classifier disabled). Renderer falls back to defaults.
|
|
10
|
+
*/
|
|
11
|
+
// Memory-type single-letter codes (matches memory-renderer v1 TYPE_CODE)
|
|
12
|
+
const TYPE_FACT = "F";
|
|
13
|
+
const TYPE_DECISION = "D";
|
|
14
|
+
const TYPE_PREFERENCE = "P";
|
|
15
|
+
const TYPE_LESSON = "L";
|
|
16
|
+
const TYPE_EVENT = "E";
|
|
17
|
+
const TYPE_TECHNICAL = "T";
|
|
18
|
+
const TYPE_QUESTION = "Q";
|
|
19
|
+
const TYPE_OBSERVATION = "O";
|
|
20
|
+
// Topic vocabulary — keep in sync with memory extraction topics
|
|
21
|
+
const TOPIC_VOCAB = [
|
|
22
|
+
"coding", "personal", "memory", "security", "relationships",
|
|
23
|
+
"money", "finance", "health", "work", "family", "travel",
|
|
24
|
+
"food", "music", "sports", "politics", "general",
|
|
25
|
+
];
|
|
26
|
+
// Emotion vocabulary — short codes (6 chars max)
|
|
27
|
+
const EMOTION_VOCAB = {
|
|
28
|
+
// joy / positive
|
|
29
|
+
happy: "joy", joy: "joy", great: "joy", awesome: "joy", excellent: "joy",
|
|
30
|
+
love: "love", loving: "love",
|
|
31
|
+
// sad / negative
|
|
32
|
+
sad: "sad", unhappy: "sad", depressed: "sad",
|
|
33
|
+
angry: "anger", furious: "anger", rage: "anger", mad: "anger",
|
|
34
|
+
frustrated: "frust", frustrating: "frust", annoyed: "frust", annoying: "frust",
|
|
35
|
+
anxious: "anx", worried: "anx", anxiety: "anx", stressed: "anx",
|
|
36
|
+
afraid: "fear", fear: "fear", scared: "fear", terrified: "fear",
|
|
37
|
+
// cognitive
|
|
38
|
+
confused: "doubt", doubt: "doubt", uncertain: "doubt", unsure: "doubt",
|
|
39
|
+
convinced: "convict", certain: "convict", sure: "convict",
|
|
40
|
+
// personal
|
|
41
|
+
tired: "exhaust", exhausted: "exhaust", drained: "exhaust",
|
|
42
|
+
excited: "joy", thrilled: "joy",
|
|
43
|
+
grief: "grief", mourning: "grief", lost: "grief",
|
|
44
|
+
hope: "hope", hopeful: "hope",
|
|
45
|
+
proud: "pride", proudly: "pride",
|
|
46
|
+
};
|
|
47
|
+
// Decision markers (verbs/phrases that indicate a choice or commitment)
|
|
48
|
+
const DECISION_MARKERS = [
|
|
49
|
+
/\b(decided|decide|chose|choosing|chosen|will go with|going with|let'?s (go|do|use))\b/i,
|
|
50
|
+
/\b(i'?ll|we'?ll) (use|go|do|try|take)\b/i,
|
|
51
|
+
/\b(plan to|gonna|going to)\b/i,
|
|
52
|
+
];
|
|
53
|
+
// Preference markers
|
|
54
|
+
const PREFERENCE_MARKERS = [
|
|
55
|
+
/\bi (prefer|like|love|hate|dislike|enjoy|avoid|always|never|usually|rarely)\b/i,
|
|
56
|
+
/\bmy (favorite|preference)\b/i,
|
|
57
|
+
];
|
|
58
|
+
// Lesson markers (realization, learning, "issue again")
|
|
59
|
+
const LESSON_MARKERS = [
|
|
60
|
+
/\b(learned|realized|turns out|issue again|keep getting|keeps happening|again\b.*broke)\b/i,
|
|
61
|
+
/\b(note to self|remember to|lesson|takeaway)\b/i,
|
|
62
|
+
];
|
|
63
|
+
// Technical markers (code, file paths, commands)
|
|
64
|
+
const TECHNICAL_MARKERS = [
|
|
65
|
+
/```/, // code block
|
|
66
|
+
/\/[\w-]+\/[\w.-]+/, // path-like
|
|
67
|
+
/\b[A-Z]{2,}\d*\b.*\b(error|bug|fix|issue)\b/i, // ERROR_CODE bug
|
|
68
|
+
/\b(npm|git|curl|sql|fts5?|api|regex)\b/i,
|
|
69
|
+
/\.\w{2,4}\b.*\b(file|module|script)\b/i,
|
|
70
|
+
];
|
|
71
|
+
// Event markers (happened, deadline, date)
|
|
72
|
+
const EVENT_MARKERS = [
|
|
73
|
+
/\b(happened|scheduled|deadline|tomorrow|yesterday|last week|next week)\b/i,
|
|
74
|
+
/\bon (monday|tuesday|wednesday|thursday|friday|saturday|sunday)\b/i,
|
|
75
|
+
];
|
|
76
|
+
// Question interrogatives
|
|
77
|
+
const INTERROGATIVES = /\b(what|how|why|when|where|who|which|can you|could you|would you|should i)\b/i;
|
|
78
|
+
/**
|
|
79
|
+
* Classify a single conversation turn. Pure function.
|
|
80
|
+
*
|
|
81
|
+
* @param role "user" or "assistant"
|
|
82
|
+
* @param content Raw message text
|
|
83
|
+
* @returns Hints (nullable — returns null when no rule matches)
|
|
84
|
+
*/
|
|
85
|
+
export function classifyTurn(role, content) {
|
|
86
|
+
const roleLC = role.toLowerCase();
|
|
87
|
+
const text = content;
|
|
88
|
+
return {
|
|
89
|
+
typeHint: classifyType(roleLC, text),
|
|
90
|
+
topicHint: classifyTopic(text),
|
|
91
|
+
emotionHint: classifyEmotion(text),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function classifyType(role, text) {
|
|
95
|
+
// Question: ends with ? AND has interrogative word (not just rhetorical)
|
|
96
|
+
if (text.trimEnd().endsWith("?") && INTERROGATIVES.test(text)) {
|
|
97
|
+
return TYPE_QUESTION;
|
|
98
|
+
}
|
|
99
|
+
// Lesson / realization — explicit markers are strong signal, check BEFORE technical
|
|
100
|
+
// (e.g. "Note to self: always back up first" is a lesson, not technical)
|
|
101
|
+
for (const re of LESSON_MARKERS) {
|
|
102
|
+
if (re.test(text))
|
|
103
|
+
return TYPE_LESSON;
|
|
104
|
+
}
|
|
105
|
+
// Technical: code blocks, commands, paths
|
|
106
|
+
for (const re of TECHNICAL_MARKERS) {
|
|
107
|
+
if (re.test(text))
|
|
108
|
+
return TYPE_TECHNICAL;
|
|
109
|
+
}
|
|
110
|
+
// Decision markers
|
|
111
|
+
for (const re of DECISION_MARKERS) {
|
|
112
|
+
if (re.test(text))
|
|
113
|
+
return TYPE_DECISION;
|
|
114
|
+
}
|
|
115
|
+
// Preference (user-only; assistant wouldn't normally state user preferences this way)
|
|
116
|
+
if (role === "user") {
|
|
117
|
+
for (const re of PREFERENCE_MARKERS) {
|
|
118
|
+
if (re.test(text))
|
|
119
|
+
return TYPE_PREFERENCE;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Event
|
|
123
|
+
for (const re of EVENT_MARKERS) {
|
|
124
|
+
if (re.test(text))
|
|
125
|
+
return TYPE_EVENT;
|
|
126
|
+
}
|
|
127
|
+
// Defaults: assistant → fact, user → observation
|
|
128
|
+
return role === "assistant" ? TYPE_FACT : TYPE_OBSERVATION;
|
|
129
|
+
}
|
|
130
|
+
function classifyTopic(text) {
|
|
131
|
+
// Simple vocab match — lowercase text, check each known topic keyword
|
|
132
|
+
const lower = text.toLowerCase();
|
|
133
|
+
// Coding indicators (broader than just "coding" word)
|
|
134
|
+
if (/\b(code|bug|fix|api|sql|regex|npm|git|function|variable|typescript|javascript|python|rust|database)\b/.test(lower)) {
|
|
135
|
+
return "coding";
|
|
136
|
+
}
|
|
137
|
+
// Money / finance
|
|
138
|
+
if (/\b(money|salary|price|pricing|cost|budget|expense|invoice|tax|revenue)\b/.test(lower)) {
|
|
139
|
+
return "finance";
|
|
140
|
+
}
|
|
141
|
+
// Health
|
|
142
|
+
if (/\b(health|doctor|sick|illness|medication|exercise|sleep|tired)\b/.test(lower)) {
|
|
143
|
+
return "health";
|
|
144
|
+
}
|
|
145
|
+
// Security
|
|
146
|
+
if (/\b(password|security|auth|encryption|vulnerability|breach|token)\b/.test(lower)) {
|
|
147
|
+
return "security";
|
|
148
|
+
}
|
|
149
|
+
// Personal (family, relationships, feelings)
|
|
150
|
+
if (/\b(family|mom|dad|wife|husband|kid|friend|date|relationship)\b/.test(lower)) {
|
|
151
|
+
return "personal";
|
|
152
|
+
}
|
|
153
|
+
// Memory (meta)
|
|
154
|
+
if (/\b(memory|memories|remember|forget|recall|forgot)\b/.test(lower)) {
|
|
155
|
+
return "memory";
|
|
156
|
+
}
|
|
157
|
+
// Work
|
|
158
|
+
if (/\b(work|meeting|project|deadline|colleague|boss|office)\b/.test(lower)) {
|
|
159
|
+
return "work";
|
|
160
|
+
}
|
|
161
|
+
return null; // renderer will use "general"
|
|
162
|
+
}
|
|
163
|
+
function classifyEmotion(text) {
|
|
164
|
+
const lower = text.toLowerCase();
|
|
165
|
+
// Word-boundary match against vocabulary
|
|
166
|
+
const words = lower.match(/\b\w+\b/g) ?? [];
|
|
167
|
+
for (const word of words) {
|
|
168
|
+
const emo = EMOTION_VOCAB[word];
|
|
169
|
+
if (emo)
|
|
170
|
+
return emo;
|
|
171
|
+
}
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
/** Full type name from single-letter code. Used by renderer. */
|
|
175
|
+
export function typeCodeToFull(code) {
|
|
176
|
+
if (!code)
|
|
177
|
+
return "fact";
|
|
178
|
+
const map = {
|
|
179
|
+
F: "fact", D: "decision", P: "preference", E: "event",
|
|
180
|
+
L: "lesson", T: "technical", Q: "question", O: "observation",
|
|
181
|
+
};
|
|
182
|
+
return map[code] ?? "fact";
|
|
183
|
+
}
|
|
184
|
+
/** Export topic vocabulary for tests / validation. */
|
|
185
|
+
export { TOPIC_VOCAB };
|
|
186
|
+
//# sourceMappingURL=turn-classifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-classifier.js","sourceRoot":"","sources":["../../src/turn-classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-utils.d.ts","sourceRoot":"","sources":["../../src/user-utils.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAe3D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { getAbmindEnv } from "./env-schema.js";
|
|
2
|
+
/** User utilities — resolve master userId from users.json. */
|
|
3
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
/**
|
|
6
|
+
* Load master userId from users.json.
|
|
7
|
+
* Falls back to "master" if file missing or no master found.
|
|
8
|
+
*/
|
|
9
|
+
export function loadMasterUserId(configDir) {
|
|
10
|
+
const paths = [
|
|
11
|
+
configDir ? join(configDir, "users.json") : null,
|
|
12
|
+
join(getAbmindEnv().abmindHome, "config", "users.json"),
|
|
13
|
+
].filter(Boolean);
|
|
14
|
+
for (const p of paths) {
|
|
15
|
+
if (!existsSync(p))
|
|
16
|
+
continue;
|
|
17
|
+
try {
|
|
18
|
+
const data = JSON.parse(readFileSync(p, "utf-8"));
|
|
19
|
+
const master = data.users?.find((u) => u.role === "master");
|
|
20
|
+
if (master?.userId)
|
|
21
|
+
return master.userId;
|
|
22
|
+
}
|
|
23
|
+
catch { /* invalid json */ }
|
|
24
|
+
}
|
|
25
|
+
return "master";
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=user-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-utils.js","sourceRoot":"","sources":["../../src/user-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,8DAA8D;AAE9D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAkB;IACjD,MAAM,KAAK,GAAG;QACZ,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;QAChD,IAAI,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC;KACxD,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;IAE9B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,SAAS;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAC9E,IAAI,MAAM,EAAE,MAAM;gBAAE,OAAO,MAAM,CAAC,MAAM,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wake-up-builder.ts — Build session-start memory context.
|
|
3
|
+
* Lean injection: current time + flashback (random emotional memory).
|
|
4
|
+
* Everything else surfaces through active recall (#203) on demand.
|
|
5
|
+
*/
|
|
6
|
+
import type Database from "better-sqlite3";
|
|
7
|
+
/**
|
|
8
|
+
* Build wake-up context: current time + one flashback.
|
|
9
|
+
* Returns empty string if DB unavailable or no emotional memories exist.
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildWakeUp(db: Database.Database | null): string;
|
|
12
|
+
//# sourceMappingURL=wake-up-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-up-builder.d.ts","sourceRoot":"","sources":["../../src/wake-up-builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAM3C;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM,CAmChE"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wake-up-builder.ts — Build session-start memory context.
|
|
3
|
+
* Lean injection: current time + flashback (random emotional memory).
|
|
4
|
+
* Everything else surfaces through active recall (#203) on demand.
|
|
5
|
+
*/
|
|
6
|
+
import { renderMemory } from "./memory-renderer.js";
|
|
7
|
+
import { localDateTime } from "./local-time.js";
|
|
8
|
+
const DAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
|
|
9
|
+
/**
|
|
10
|
+
* Build wake-up context: current time + one flashback.
|
|
11
|
+
* Returns empty string if DB unavailable or no emotional memories exist.
|
|
12
|
+
*/
|
|
13
|
+
export function buildWakeUp(db) {
|
|
14
|
+
if (!db)
|
|
15
|
+
return "";
|
|
16
|
+
const parts = [];
|
|
17
|
+
// 1. Current time
|
|
18
|
+
const now = new Date();
|
|
19
|
+
parts.push(`[Current time: ${localDateTime(now)} (${DAYS[now.getDay()]})]`);
|
|
20
|
+
// 2. Flashback — random emotional memory weighted by intensity × recency
|
|
21
|
+
try {
|
|
22
|
+
const row = db.prepare(`SELECT content_en, emotion_tags, importance_flags, topic, memory_type, confidence, created_at
|
|
23
|
+
FROM extracted_memories
|
|
24
|
+
WHERE ABS(emotion_score) >= 3
|
|
25
|
+
AND valid_to IS NULL
|
|
26
|
+
AND content_en IS NOT NULL
|
|
27
|
+
ORDER BY RANDOM() * ABS(emotion_score) / sqrt(1.0 + (julianday('now') - julianday(created_at / 1000, 'unixepoch')) / 180.0) DESC
|
|
28
|
+
LIMIT 1`).get();
|
|
29
|
+
if (row) {
|
|
30
|
+
const rendered = renderMemory({
|
|
31
|
+
content_en: row.content_en,
|
|
32
|
+
topic: row.topic ?? undefined,
|
|
33
|
+
emotion_tags: row.emotion_tags ?? undefined,
|
|
34
|
+
importance_flags: row.importance_flags ?? undefined,
|
|
35
|
+
memory_type: row.memory_type ?? undefined,
|
|
36
|
+
confidence: row.confidence ?? undefined,
|
|
37
|
+
createdAt: row.created_at,
|
|
38
|
+
});
|
|
39
|
+
parts.push(`[Flashback] ${rendered}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch { /* no emotional memories or DB error */ }
|
|
43
|
+
return parts.join("\n\n");
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=wake-up-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-up-builder.js","sourceRoot":"","sources":["../../src/wake-up-builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAE5F;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAA4B;IACtD,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACnB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,kBAAkB;IAClB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,KAAK,CAAC,IAAI,CAAC,kBAAkB,aAAa,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;IAE5E,yEAAyE;IACzE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB;;;;;;eAMS,CACV,CAAC,GAAG,EAAuM,CAAC;QAE7M,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,QAAQ,GAAG,YAAY,CAAC;gBAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;gBAC7B,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,SAAS;gBAC3C,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,SAAS;gBACnD,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;gBACzC,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;gBACvC,SAAS,EAAE,GAAG,CAAC,UAAU;aAC1B,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,uCAAuC,CAAC,CAAC;IAEnD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wake-up-renderer.ts — Compression Level 2 rendering for wake-up context.
|
|
3
|
+
* Entity header + topic grouping + elide defaults.
|
|
4
|
+
* Operates on stored ABM-L, produces ultra-compact output.
|
|
5
|
+
*/
|
|
6
|
+
export type CompressionLevel = "signal" | "full" | "compact" | "ultra";
|
|
7
|
+
/** Pick compression level based on token budget. */
|
|
8
|
+
export declare function pickLevel(budgetTokens: number): CompressionLevel;
|
|
9
|
+
interface MemoryEntry {
|
|
10
|
+
content_compressed: string;
|
|
11
|
+
topic: string;
|
|
12
|
+
emotion_arc?: string | null;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Render core memories for wake-up context at the given compression level.
|
|
16
|
+
*/
|
|
17
|
+
export declare function renderWakeUp(entries: ReadonlyArray<MemoryEntry>, level: CompressionLevel): string;
|
|
18
|
+
/**
|
|
19
|
+
* Compress a daily summary to ABM-L bullet points.
|
|
20
|
+
* Input: raw markdown daily. Output: compact ABM-L lines.
|
|
21
|
+
*/
|
|
22
|
+
export declare function compressDailySummary(markdown: string, date: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Generate compressed SOUL for ultra-small context windows (<32K).
|
|
25
|
+
* Extracts only rules and facts from full SOUL.md.
|
|
26
|
+
*/
|
|
27
|
+
export declare function compressSoul(fullSoul: string): string;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=wake-up-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-up-renderer.d.ts","sourceRoot":"","sources":["../../src/wake-up-renderer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvE,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,CAKhE;AAED,UAAU,WAAW;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAwED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAWjG;AA0BD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAsB3E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA4BrD"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wake-up-renderer.ts — Compression Level 2 rendering for wake-up context.
|
|
3
|
+
* Entity header + topic grouping + elide defaults.
|
|
4
|
+
* Operates on stored ABM-L, produces ultra-compact output.
|
|
5
|
+
*/
|
|
6
|
+
/** Pick compression level based on token budget. */
|
|
7
|
+
export function pickLevel(budgetTokens) {
|
|
8
|
+
if (budgetTokens > 5000)
|
|
9
|
+
return "full";
|
|
10
|
+
if (budgetTokens > 500)
|
|
11
|
+
return "compact";
|
|
12
|
+
if (budgetTokens > 100)
|
|
13
|
+
return "ultra";
|
|
14
|
+
return "signal";
|
|
15
|
+
}
|
|
16
|
+
/** Build entity header from recurring @references. */
|
|
17
|
+
function buildEntityHeader(entries) {
|
|
18
|
+
const counts = new Map();
|
|
19
|
+
for (const e of entries) {
|
|
20
|
+
const refs = e.content_compressed.match(/@[\w-]+/g) ?? [];
|
|
21
|
+
for (const ref of refs) {
|
|
22
|
+
counts.set(ref, (counts.get(ref) ?? 0) + 1);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// Only alias entities that appear 3+ times
|
|
26
|
+
const replace = new Map();
|
|
27
|
+
const aliases = [];
|
|
28
|
+
for (const [ref, count] of [...counts.entries()].sort((a, b) => b[1] - a[1])) {
|
|
29
|
+
if (count < 3)
|
|
30
|
+
break;
|
|
31
|
+
const name = ref.slice(1); // remove @
|
|
32
|
+
const code = name.slice(0, 2).toUpperCase();
|
|
33
|
+
replace.set(ref, code);
|
|
34
|
+
aliases.push(`${code}=${name}`);
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
header: aliases.length > 0 ? `@: ${aliases.join(", ")}` : "",
|
|
38
|
+
replace,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/** Extract prefix fields from ABM-L string. */
|
|
42
|
+
function parsePrefix(abml) {
|
|
43
|
+
const m = abml.match(/^\[([^|]*)\|([^|]*)\|([^|]*)\|([^|]*)\|([^\]]*)\]\s*(.*)/s);
|
|
44
|
+
if (!m)
|
|
45
|
+
return { flags: "", topic: "", emotion: "", confidence: "", date: "", body: abml };
|
|
46
|
+
return { flags: m[1], topic: m[2], emotion: m[3], confidence: m[4], date: m[5], body: m[6] };
|
|
47
|
+
}
|
|
48
|
+
/** Render entries at "compact" level: topic grouping, elide defaults, entity codes. */
|
|
49
|
+
function renderCompact(entries, entityReplace) {
|
|
50
|
+
const byTopic = new Map();
|
|
51
|
+
for (const e of entries) {
|
|
52
|
+
const parsed = parsePrefix(e.content_compressed);
|
|
53
|
+
if (!byTopic.has(e.topic))
|
|
54
|
+
byTopic.set(e.topic, { arc: e.emotion_arc ?? "", lines: [] });
|
|
55
|
+
// Elide: date (unless <7d), confidence (unless != 3), neutral emotion
|
|
56
|
+
let prefix = `[${parsed.flags}`;
|
|
57
|
+
if (parsed.emotion && parsed.emotion !== "—")
|
|
58
|
+
prefix += `|${parsed.emotion}`;
|
|
59
|
+
if (parsed.confidence && parsed.confidence !== "3")
|
|
60
|
+
prefix += `|${parsed.confidence}`;
|
|
61
|
+
prefix += "]";
|
|
62
|
+
// Apply entity short codes
|
|
63
|
+
let body = parsed.body;
|
|
64
|
+
for (const [ref, code] of entityReplace) {
|
|
65
|
+
body = body.replace(new RegExp(ref.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), code);
|
|
66
|
+
}
|
|
67
|
+
byTopic.get(e.topic).lines.push(`${prefix} ${body}`);
|
|
68
|
+
}
|
|
69
|
+
const parts = [];
|
|
70
|
+
for (const [topic, { arc, lines }] of byTopic) {
|
|
71
|
+
parts.push(`## ${topic}${arc ? " " + arc : ""}`);
|
|
72
|
+
for (const line of lines)
|
|
73
|
+
parts.push(line);
|
|
74
|
+
}
|
|
75
|
+
return parts.join("\n");
|
|
76
|
+
}
|
|
77
|
+
/** Render entries at "full" level: no compression tricks, just the stored ABM-L. */
|
|
78
|
+
function renderFull(entries) {
|
|
79
|
+
return entries.map(e => e.content_compressed).join("\n");
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Render core memories for wake-up context at the given compression level.
|
|
83
|
+
*/
|
|
84
|
+
export function renderWakeUp(entries, level) {
|
|
85
|
+
if (entries.length === 0)
|
|
86
|
+
return "";
|
|
87
|
+
if (level === "signal")
|
|
88
|
+
return renderSignal(entries);
|
|
89
|
+
if (level === "full")
|
|
90
|
+
return `[CORE MEMORY — ${entries.length} entries]\n${renderFull(entries)}`;
|
|
91
|
+
// compact and ultra both use topic grouping + entity header
|
|
92
|
+
const { header, replace } = buildEntityHeader(entries);
|
|
93
|
+
const body = renderCompact(entries, replace);
|
|
94
|
+
const headerLine = header ? header + "\n" : "";
|
|
95
|
+
return `[CORE MEMORY — ${entries.length} entries]\n${headerLine}${body}`;
|
|
96
|
+
}
|
|
97
|
+
/** Render L0 signal level: structured tag cloud. ~50 tokens for entire memory. */
|
|
98
|
+
function renderSignal(entries) {
|
|
99
|
+
const topics = new Map();
|
|
100
|
+
for (const e of entries) {
|
|
101
|
+
if (!topics.has(e.topic))
|
|
102
|
+
topics.set(e.topic, { types: new Map(), entities: new Set() });
|
|
103
|
+
const t = topics.get(e.topic);
|
|
104
|
+
const parsed = parsePrefix(e.content_compressed);
|
|
105
|
+
const flag = parsed.flags.charAt(0) || "F";
|
|
106
|
+
t.types.set(flag, (t.types.get(flag) ?? 0) + 1);
|
|
107
|
+
const refs = e.content_compressed.match(/@[\w-]+/g) ?? [];
|
|
108
|
+
for (const ref of refs)
|
|
109
|
+
t.entities.add(ref);
|
|
110
|
+
}
|
|
111
|
+
const lines = [`[MEMORY MAP — ${entries.length} entries]`];
|
|
112
|
+
for (const [topic, { types, entities }] of [...topics.entries()].sort((a, b) => b[1].types.size - a[1].types.size)) {
|
|
113
|
+
const count = [...types.values()].reduce((a, b) => a + b, 0);
|
|
114
|
+
const entityStr = [...entities].slice(0, 4).join(" ");
|
|
115
|
+
const typeStr = [...types.entries()].map(([f, c]) => `${f}:${c}`).join(" ");
|
|
116
|
+
lines.push(`${topic}(${count}): ${entityStr} — ${typeStr}`);
|
|
117
|
+
}
|
|
118
|
+
return lines.join("\n");
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Compress a daily summary to ABM-L bullet points.
|
|
122
|
+
* Input: raw markdown daily. Output: compact ABM-L lines.
|
|
123
|
+
*/
|
|
124
|
+
export function compressDailySummary(markdown, date) {
|
|
125
|
+
const lines = markdown.split("\n").filter(l => l.trim() && !l.startsWith("#"));
|
|
126
|
+
const bullets = [];
|
|
127
|
+
for (const line of lines) {
|
|
128
|
+
const trimmed = line.replace(/^[-*]\s*/, "").trim();
|
|
129
|
+
if (trimmed.length < 10)
|
|
130
|
+
continue;
|
|
131
|
+
// Abbreviate
|
|
132
|
+
const compressed = trimmed
|
|
133
|
+
.replace(/\bTelegram\b/g, "TG")
|
|
134
|
+
.replace(/\bDiscord\b/g, "DC")
|
|
135
|
+
.replace(/\bauthentication\b/gi, "auth")
|
|
136
|
+
.replace(/\bconfiguration\b/gi, "config")
|
|
137
|
+
.replace(/\b(the|a|an|was|were|been|being|also|very|really|just|quite|basically|essentially)\b/gi, "")
|
|
138
|
+
.replace(/\s{2,}/g, " ")
|
|
139
|
+
.trim();
|
|
140
|
+
if (compressed.length > 5)
|
|
141
|
+
bullets.push(compressed);
|
|
142
|
+
}
|
|
143
|
+
if (bullets.length === 0)
|
|
144
|
+
return "";
|
|
145
|
+
// Cap at ~10 most important lines
|
|
146
|
+
return `## ${date}\n${bullets.slice(0, 10).map(b => `- ${b}`).join("\n")}`;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Generate compressed SOUL for ultra-small context windows (<32K).
|
|
150
|
+
* Extracts only rules and facts from full SOUL.md.
|
|
151
|
+
*/
|
|
152
|
+
export function compressSoul(fullSoul) {
|
|
153
|
+
const lines = fullSoul.split("\n");
|
|
154
|
+
const sections = [];
|
|
155
|
+
let currentSection = "";
|
|
156
|
+
let collecting = false;
|
|
157
|
+
for (const line of lines) {
|
|
158
|
+
if (line.startsWith("## ")) {
|
|
159
|
+
currentSection = line.replace("## ", "").trim().toLowerCase();
|
|
160
|
+
collecting = true;
|
|
161
|
+
sections.push(`## ${currentSection}`);
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
if (!collecting)
|
|
165
|
+
continue;
|
|
166
|
+
const trimmed = line.trim();
|
|
167
|
+
if (!trimmed)
|
|
168
|
+
continue;
|
|
169
|
+
// Keep only lines that are rules (start with - or contain "must", "never", "always", "don't")
|
|
170
|
+
if (trimmed.startsWith("-") || /\b(must|never|always|don't|do not|MUST)\b/.test(trimmed)) {
|
|
171
|
+
// Compress the line
|
|
172
|
+
const compressed = trimmed
|
|
173
|
+
.replace(/\b(the|a|an|is|are|was|were|been|being|also|very|really|just|quite)\b/gi, "")
|
|
174
|
+
.replace(/\s{2,}/g, " ")
|
|
175
|
+
.trim();
|
|
176
|
+
if (compressed.length > 5)
|
|
177
|
+
sections.push(compressed);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return sections.join("\n");
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=wake-up-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-up-renderer.js","sourceRoot":"","sources":["../../src/wake-up-renderer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,89 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
"name": "abmind",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Standalone AI agent memory system — SQLite, FTS5, embeddings, 4-layer recall, sleep maintenance",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ai",
|
|
7
|
+
"agent",
|
|
8
|
+
"memory",
|
|
9
|
+
"llm",
|
|
10
|
+
"sqlite",
|
|
11
|
+
"fts5",
|
|
12
|
+
"embeddings",
|
|
13
|
+
"recall",
|
|
14
|
+
"sleep",
|
|
15
|
+
"consolidation"
|
|
16
|
+
],
|
|
17
|
+
"homepage": "https://github.com/aksika/abmind",
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/aksika/abmind.git"
|
|
21
|
+
},
|
|
22
|
+
"bugs": {
|
|
23
|
+
"url": "https://github.com/aksika/abmind/issues"
|
|
24
|
+
},
|
|
25
|
+
"author": "aksika <aksikatwo@gmail.com>",
|
|
26
|
+
"license": "Apache-2.0",
|
|
27
|
+
"type": "module",
|
|
28
|
+
"main": "./dist/src/index.js",
|
|
29
|
+
"types": "./dist/src/index.d.ts",
|
|
30
|
+
"exports": {
|
|
31
|
+
".": {
|
|
32
|
+
"types": "./dist/src/index.d.ts",
|
|
33
|
+
"default": "./dist/src/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./deploy-lib": {
|
|
36
|
+
"types": "./dist/src/deploy-lib/index.d.ts",
|
|
37
|
+
"default": "./dist/src/deploy-lib/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./package.json": "./package.json"
|
|
40
|
+
},
|
|
41
|
+
"bin": {
|
|
42
|
+
"abmind": "dist/cli/abmind.js"
|
|
43
|
+
},
|
|
44
|
+
"files": [
|
|
45
|
+
"dist/",
|
|
46
|
+
"prompts/",
|
|
47
|
+
"README.md",
|
|
48
|
+
"LICENSE",
|
|
49
|
+
"CHANGELOG.md"
|
|
50
|
+
],
|
|
51
|
+
"publishConfig": {
|
|
52
|
+
"access": "public"
|
|
53
|
+
},
|
|
54
|
+
"scripts": {
|
|
55
|
+
"build": "tsc",
|
|
56
|
+
"prepare": "tsc",
|
|
57
|
+
"test": "vitest run --dir src",
|
|
58
|
+
"test:watch": "vitest --dir src",
|
|
59
|
+
"typecheck": "tsc --noEmit"
|
|
60
|
+
},
|
|
61
|
+
"dependencies": {
|
|
62
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
63
|
+
"better-sqlite3": "^11.10.0"
|
|
64
|
+
},
|
|
65
|
+
"peerDependencies": {
|
|
66
|
+
"@sinclair/typebox": ">=0.32.0"
|
|
67
|
+
},
|
|
68
|
+
"peerDependenciesMeta": {
|
|
69
|
+
"@sinclair/typebox": {
|
|
70
|
+
"optional": true
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"devDependencies": {
|
|
74
|
+
"@sinclair/typebox": "^0.34.49",
|
|
75
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
76
|
+
"@types/node": "^22.19.17",
|
|
77
|
+
"fast-check": "^3.23.2",
|
|
78
|
+
"typescript": "^5.9.3",
|
|
79
|
+
"vitest": "^3.2.4"
|
|
80
|
+
},
|
|
81
|
+
"openclaw": {
|
|
82
|
+
"extensions": [
|
|
83
|
+
"./dist/src/openclaw-plugin/index.js"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
"optionalDependencies": {
|
|
87
|
+
"sqlite-vec": "0.1.9"
|
|
88
|
+
}
|
|
7
89
|
}
|