squish-memory 1.1.5 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +32 -16
- package/CHANGELOG.md +147 -0
- package/README.md +120 -78
- package/{scripts → bin}/dependency-manager.mjs +217 -217
- package/{scripts → bin}/detect-clients.mjs +78 -78
- package/bin/install-interactive.mjs +321 -0
- package/bin/squish-mcp.mjs +44 -0
- package/bin/squish.mjs +33 -0
- package/config/mcp-migration-map.json +1 -6
- package/config/mcp-mode-semantics.json +19 -23
- package/config/mcp-remote-auth.json +3 -26
- package/config/mcp-universal.schema.json +5 -35
- package/config/settings.json +107 -52
- package/config.js +5 -0
- package/config.ts +218 -0
- package/core/adapters/config/claude-code.ts +133 -0
- package/core/adapters/config/cursor.ts +90 -0
- package/core/adapters/config/opencode.ts +89 -0
- package/core/adapters/config/windsurf.ts +90 -0
- package/core/adapters/index.ts +102 -0
- package/core/adapters/timeline.ts +116 -0
- package/core/adapters/types.ts +166 -0
- package/core/agent-preferences.ts +140 -0
- package/core/algorithms/analytics/token-estimator.ts +216 -0
- package/core/algorithms/detection/hash-filters.ts +260 -0
- package/core/algorithms/detection/semantic-ranker.ts +194 -0
- package/core/algorithms/detection/two-stage-detector.ts +421 -0
- package/core/algorithms/handlers/approve-merge.ts +215 -0
- package/core/algorithms/handlers/detect-duplicates.ts +192 -0
- package/core/algorithms/handlers/get-stats.ts +132 -0
- package/core/algorithms/handlers/list-proposals.ts +130 -0
- package/core/algorithms/handlers/preview-merge.ts +139 -0
- package/core/algorithms/handlers/reject-merge.ts +93 -0
- package/core/algorithms/handlers/reverse-merge.ts +155 -0
- package/{dist/core/algorithms/index.js → core/algorithms/index.ts} +39 -26
- package/core/algorithms/operations/cache-maintenance.ts +182 -0
- package/core/algorithms/safety/safety-checks.ts +256 -0
- package/core/algorithms/strategies/merge-strategies.ts +381 -0
- package/core/algorithms/types.ts +140 -0
- package/core/algorithms/utils/response-builder.ts +61 -0
- package/core/associations.ts +363 -0
- package/core/beliefs/decay.ts +289 -0
- package/core/beliefs/extractor.ts +131 -0
- package/core/beliefs/store.ts +557 -0
- package/core/beliefs/types.ts +38 -0
- package/core/commands/mcp-server.ts +5 -0
- package/core/compression.ts +177 -0
- package/core/config.js +2 -0
- package/core/consolidation.ts +330 -0
- package/core/context/agent-context.ts +388 -0
- package/core/context/context-paging.ts +449 -0
- package/core/context/context-window.ts +234 -0
- package/core/context/context.ts +35 -0
- package/core/embeddings/embeddings.ts +616 -0
- package/core/embeddings/google-multimodal.ts +200 -0
- package/{dist/core/local-embeddings.js → core/embeddings/local-embeddings.ts} +12 -11
- package/core/embeddings/qmd-client.ts +495 -0
- package/core/embeddings/transformers-local.ts +261 -0
- package/core/embeddings.js +4 -0
- package/core/error-handling.ts +206 -0
- package/core/external +219 -0
- package/core/graph/entity-deduplicator.ts +232 -0
- package/core/graph/graph-builder.ts +257 -0
- package/core/graph/graph-traversal.ts +490 -0
- package/core/graph/index.ts +24 -0
- package/core/graph/llm-entity-extractor.ts +402 -0
- package/core/graph/multi-hop-retrieval.ts +317 -0
- package/core/graph/relationship-extractor.ts +465 -0
- package/core/hooks/agent-hooks.ts +653 -0
- package/core/hooks/auto-tagger.ts +149 -0
- package/core/hooks/capture-filter.ts +169 -0
- package/core/hot-cache.ts +388 -0
- package/core/index.ts +10 -0
- package/core/ingestion/agent-memory.ts +167 -0
- package/core/ingestion/core-memory.ts +326 -0
- package/core/ingestion/learnings.ts +260 -0
- package/core/ingestion/signal-engine.ts +266 -0
- package/core/integrations/obsidian-vault.ts +197 -0
- package/core/layers/generator.ts +115 -0
- package/{dist/core/lib/db-client.d.ts → core/lib/db-client.ts} +168 -114
- package/core/lib/parse-embedding.ts +59 -0
- package/{dist/core/lib/schemas.js → core/lib/schemas.ts} +102 -87
- package/core/lib/types.ts +49 -0
- package/core/lib/utils.ts +151 -0
- package/core/lib/validation.ts +180 -0
- package/core/lifecycle.ts +353 -0
- package/core/logger.ts +59 -0
- package/core/memory/bridge-discovery.ts +395 -0
- package/core/memory/categorizer.ts +390 -0
- package/core/memory/conflict-detector.ts +62 -0
- package/core/memory/consolidation.ts +372 -0
- package/core/memory/context-collector.ts +75 -0
- package/core/memory/contradiction-resolver.ts +494 -0
- package/core/memory/edit-workflow.ts +174 -0
- package/core/memory/entity-extractor.ts +426 -0
- package/core/memory/entity-resolver.ts +89 -0
- package/core/memory/explain.ts +112 -0
- package/core/memory/fact-deriver.ts +300 -0
- package/core/memory/fact-extractor.ts +120 -0
- package/core/memory/feedback-tracker.ts +200 -0
- package/core/memory/hooks.ts +230 -0
- package/core/memory/hybrid-retrieval.ts +65 -0
- package/core/memory/hybrid-scorer.ts +325 -0
- package/core/memory/hybrid-search.ts +748 -0
- package/core/memory/importance.ts +319 -0
- package/{dist/core/memory/index.js → core/memory/index.ts} +11 -10
- package/core/memory/loader.ts +178 -0
- package/core/memory/markdown/markdown-storage.ts +318 -0
- package/core/memory/memories.ts +565 -0
- package/core/memory/memory-lifecycle.ts +51 -0
- package/core/memory/memory-manager.ts +53 -0
- package/core/memory/migrate.ts +173 -0
- package/core/memory/normalization.ts +30 -0
- package/core/memory/path-strengthener.ts +211 -0
- package/core/memory/progressive-disclosure.ts +392 -0
- package/core/memory/query-processor.ts +130 -0
- package/core/memory/query-rewriter.ts +153 -0
- package/core/memory/response-analyzer.ts +81 -0
- package/core/memory/retrieval-feedback.ts +276 -0
- package/core/memory/serialization.ts +83 -0
- package/core/memory/stale-cleaner.ts +147 -0
- package/core/memory/stats.ts +181 -0
- package/core/memory/telemetry.ts +392 -0
- package/core/memory/temporal-facts.ts +356 -0
- package/core/memory/temporal-parser.ts +477 -0
- package/core/memory/trigger-detector.ts +104 -0
- package/core/memory/write-gate.ts +288 -0
- package/{dist/core/places/index.js → core/places/index.ts} +12 -12
- package/core/places/memory-places.ts +339 -0
- package/core/places/places.ts +406 -0
- package/core/places/rules.ts +308 -0
- package/core/places/walking.ts +192 -0
- package/core/projects +89 -0
- package/core/projects.ts +131 -0
- package/core/redis.ts +82 -0
- package/core/responses.ts +187 -0
- package/core/runtime/trust-report.ts +195 -0
- package/core/runtime/trust-state.ts +360 -0
- package/core/scheduler/cron-scheduler.ts +590 -0
- package/core/scheduler/heartbeat.ts +91 -0
- package/{dist/core/scheduler/index.js → core/scheduler/index.ts} +8 -8
- package/core/scheduler/job-runner.ts +197 -0
- package/core/search/conversations.ts +166 -0
- package/core/search/entities.ts +46 -0
- package/core/search/folder-context.ts +154 -0
- package/core/search/graph-boost.ts +22 -0
- package/{dist/core/search/index.js → core/search/index.ts} +4 -5
- package/core/search/qmd-wrapper.ts +84 -0
- package/core/security/encrypt.ts +51 -0
- package/core/security/governance.ts +102 -0
- package/core/security/privacy.ts +108 -0
- package/core/security/secret-detector.ts +122 -0
- package/core/session/auto-load.ts +160 -0
- package/core/session/entity-tracker.ts +363 -0
- package/{dist/core/session/index.js → core/session/index.ts} +7 -7
- package/core/session/reference-resolver.ts +158 -0
- package/core/session/self-iteration-job.ts +478 -0
- package/core/session/session-hooks.ts +69 -0
- package/core/session/types.ts +36 -0
- package/core/session/working-set.ts +275 -0
- package/{dist/core/snapshots/cleanup.js → core/snapshots/cleanup.ts} +13 -12
- package/core/snapshots/comparison.ts +59 -0
- package/core/snapshots/creation.ts +139 -0
- package/core/snapshots/retrieval.ts +44 -0
- package/core/snapshots/stats.ts +63 -0
- package/core/storage/cache.ts +241 -0
- package/core/storage/database.ts +23 -0
- package/{dist/core/summarization/cleanup.js → core/summarization/cleanup.ts} +13 -12
- package/core/summarization/queries.ts +32 -0
- package/core/summarization/stats.ts +64 -0
- package/core/summarization/strategies.ts +52 -0
- package/core/summarization.ts +248 -0
- package/core/temporal-facts.ts +244 -0
- package/core/tracing/collector.ts +470 -0
- package/core/tracing/visualizer.ts +195 -0
- package/core/utils/cleanup-operations.ts +50 -0
- package/core/utils/content-extraction.ts +95 -0
- package/core/utils/filter-builder.ts +56 -0
- package/core/utils/history-traversal.ts +63 -0
- package/core/utils/memory-operations.ts +56 -0
- package/core/utils/query-operations.ts +83 -0
- package/core/utils/summarization-helpers.ts +45 -0
- package/core/utils/temporal-queries.ts +39 -0
- package/{dist/core/utils/vector-operations.js → core/utils/vector-operations.ts} +135 -129
- package/core/utils/version-management.ts +74 -0
- package/core/worker.ts +333 -0
- package/db/adapter.ts +215 -0
- package/{dist/db/bootstrap.js → db/bootstrap.ts} +388 -418
- package/db/drizzle/migrations/0000_needy_cerebro.sql +402 -0
- package/db/drizzle/migrations/meta/0000_snapshot.json +3451 -0
- package/db/drizzle/migrations/meta/_journal.json +13 -0
- package/db/drizzle/schema-sqlite.ts +1032 -0
- package/db/drizzle/schema.ts +1128 -0
- package/db/drizzle.config.ts +12 -0
- package/db/index.ts +83 -0
- package/db/init.sql +5 -0
- package/db/migrations/associations.ts +35 -0
- package/db/migrations/beliefs.ts +89 -0
- package/db/migrations/core-memory.ts +35 -0
- package/db/migrations/fts.ts +59 -0
- package/db/migrations/index.ts +54 -0
- package/db/migrations/indexes.ts +36 -0
- package/db/migrations/learnings.ts +34 -0
- package/db/migrations/maintenance.ts +68 -0
- package/db/migrations/memories.ts +22 -0
- package/db/migrations/memory-places.ts +35 -0
- package/db/migrations/places.ts +49 -0
- package/db/migrations/projects.ts +21 -0
- package/db/migrations/tier-conversion.ts +24 -0
- package/db/neon.ts +22 -0
- package/db/schema/beliefs.ts +50 -0
- package/db/schema/generator.ts +159 -0
- package/db/schema/index.ts +58 -0
- package/db/schema/learnings.ts +32 -0
- package/db/schema/memories.ts +83 -0
- package/db/schema/projects.ts +33 -0
- package/db/schema.ts +13 -0
- package/db/supabase.ts +27 -0
- package/mcp.json.example +8 -11
- package/package.json +140 -159
- package/packages/cli/package.json +22 -0
- package/packages/cli/src/commands/clean.ts +68 -0
- package/packages/cli/src/commands/context.ts +79 -0
- package/packages/cli/src/commands/doctor.ts +357 -0
- package/packages/cli/src/commands/forget.ts +72 -0
- package/packages/cli/src/commands/health.ts +36 -0
- package/packages/cli/src/commands/inspect.ts +41 -0
- package/packages/cli/src/commands/link.ts +50 -0
- package/packages/cli/src/commands/migrate.ts +93 -0
- package/packages/cli/src/commands/recall.ts +99 -0
- package/packages/cli/src/commands/recent.ts +57 -0
- package/packages/cli/src/commands/remember.ts +139 -0
- package/packages/cli/src/commands/run.ts +58 -0
- package/packages/cli/src/commands/stale.ts +43 -0
- package/packages/cli/src/commands/stats.ts +42 -0
- package/packages/cli/src/index.ts +57 -0
- package/packages/cli/tsconfig.json +24 -0
- package/packages/mcp/package.json +26 -0
- package/packages/mcp/src/index.ts +940 -0
- package/packages/mcp/tsconfig.json +20 -0
- package/skills/squish-memory/SKILL.md +38 -35
- package/skills/squish-memory/{scripts/install.sh → install.sh} +1 -1
- package/skills/squish-memory/references/claude-desktop.json +12 -0
- package/skills/squish-memory/references/openclaw.json +13 -0
- package/skills/squish-memory/references/opencode.json +14 -0
- package/config/hooks/claude-code-hooks.json +0 -39
- package/config/hooks/cursor-hooks.json +0 -30
- package/config/hooks/opencode-hooks.json +0 -30
- package/config/hooks/windsurf-hooks.json +0 -30
- package/config/mcp-cli-fallback-policy.json +0 -22
- package/config/mcp.json +0 -38
- package/config/plugin-manifest.json +0 -101
- package/config/plugin-manifest.schema.json +0 -244
- package/config/plugin.json +0 -32
- package/config/remote-memory-policy.json +0 -32
- package/core/commands/context-paging.md +0 -51
- package/core/commands/context-status.md +0 -22
- package/core/commands/context.md +0 -5
- package/core/commands/core-memory.md +0 -56
- package/core/commands/health.md +0 -5
- package/core/commands/init.md +0 -39
- package/core/commands/merge.md +0 -113
- package/core/commands/recall.md +0 -5
- package/core/commands/remember.md +0 -11
- package/core/commands/search.md +0 -10
- package/dist/config.d.ts +0 -83
- package/dist/config.js +0 -242
- package/dist/core/adapters/config/claude-code.d.ts +0 -45
- package/dist/core/adapters/config/claude-code.js +0 -113
- package/dist/core/adapters/config/cursor.d.ts +0 -26
- package/dist/core/adapters/config/cursor.js +0 -74
- package/dist/core/adapters/config/opencode.d.ts +0 -23
- package/dist/core/adapters/config/opencode.js +0 -73
- package/dist/core/adapters/config/windsurf.d.ts +0 -26
- package/dist/core/adapters/config/windsurf.js +0 -74
- package/dist/core/adapters/index.d.ts +0 -45
- package/dist/core/adapters/index.js +0 -84
- package/dist/core/adapters/scripts/install-adapter.d.ts +0 -19
- package/dist/core/adapters/scripts/install-adapter.js +0 -149
- package/dist/core/adapters/timeline.d.ts +0 -23
- package/dist/core/adapters/timeline.js +0 -88
- package/dist/core/adapters/types.d.ts +0 -157
- package/dist/core/adapters/types.js +0 -50
- package/dist/core/algorithms/analytics/token-estimator.d.ts +0 -50
- package/dist/core/algorithms/analytics/token-estimator.js +0 -154
- package/dist/core/algorithms/detection/hash-filters.d.ts +0 -47
- package/dist/core/algorithms/detection/hash-filters.js +0 -190
- package/dist/core/algorithms/detection/semantic-ranker.d.ts +0 -32
- package/dist/core/algorithms/detection/semantic-ranker.js +0 -118
- package/dist/core/algorithms/detection/two-stage-detector.d.ts +0 -52
- package/dist/core/algorithms/detection/two-stage-detector.js +0 -299
- package/dist/core/algorithms/handlers/approve-merge.d.ts +0 -22
- package/dist/core/algorithms/handlers/approve-merge.js +0 -179
- package/dist/core/algorithms/handlers/detect-duplicates.d.ts +0 -47
- package/dist/core/algorithms/handlers/detect-duplicates.js +0 -145
- package/dist/core/algorithms/handlers/get-stats.d.ts +0 -39
- package/dist/core/algorithms/handlers/get-stats.js +0 -88
- package/dist/core/algorithms/handlers/list-proposals.d.ts +0 -45
- package/dist/core/algorithms/handlers/list-proposals.js +0 -83
- package/dist/core/algorithms/handlers/preview-merge.d.ts +0 -39
- package/dist/core/algorithms/handlers/preview-merge.js +0 -93
- package/dist/core/algorithms/handlers/reject-merge.d.ts +0 -28
- package/dist/core/algorithms/handlers/reject-merge.js +0 -69
- package/dist/core/algorithms/handlers/reverse-merge.d.ts +0 -21
- package/dist/core/algorithms/handlers/reverse-merge.js +0 -121
- package/dist/core/algorithms/index.d.ts +0 -21
- package/dist/core/algorithms/operations/cache-maintenance.d.ts +0 -12
- package/dist/core/algorithms/operations/cache-maintenance.js +0 -157
- package/dist/core/algorithms/safety/safety-checks.d.ts +0 -22
- package/dist/core/algorithms/safety/safety-checks.js +0 -179
- package/dist/core/algorithms/strategies/merge-strategies.d.ts +0 -50
- package/dist/core/algorithms/strategies/merge-strategies.js +0 -288
- package/dist/core/algorithms/types.d.ts +0 -133
- package/dist/core/algorithms/types.js +0 -5
- package/dist/core/algorithms/utils/response-builder.d.ts +0 -28
- package/dist/core/algorithms/utils/response-builder.js +0 -37
- package/dist/core/associations.d.ts +0 -31
- package/dist/core/associations.js +0 -248
- package/dist/core/autosave.d.ts +0 -19
- package/dist/core/autosave.js +0 -16
- package/dist/core/commands/managed-sync.d.ts +0 -10
- package/dist/core/commands/managed-sync.js +0 -64
- package/dist/core/commands/mcp-server.d.ts +0 -3
- package/dist/core/commands/mcp-server.js +0 -739
- package/dist/core/consolidation.d.ts +0 -37
- package/dist/core/consolidation.js +0 -248
- package/dist/core/context/agent-context.d.ts +0 -106
- package/dist/core/context/agent-context.js +0 -274
- package/dist/core/context/context-paging.d.ts +0 -80
- package/dist/core/context/context-paging.js +0 -328
- package/dist/core/context/context-window.d.ts +0 -40
- package/dist/core/context/context-window.js +0 -177
- package/dist/core/context/context.d.ts +0 -7
- package/dist/core/context/context.js +0 -22
- package/dist/core/embeddings/google-multimodal.d.ts +0 -14
- package/dist/core/embeddings/google-multimodal.js +0 -142
- package/dist/core/embeddings/qmd-client.d.ts +0 -136
- package/dist/core/embeddings/qmd-client.js +0 -403
- package/dist/core/embeddings.d.ts +0 -29
- package/dist/core/embeddings.js +0 -454
- package/dist/core/error-handling.d.ts +0 -63
- package/dist/core/error-handling.js +0 -173
- package/dist/core/external-folder/index.d.ts +0 -102
- package/dist/core/external-folder/index.js +0 -294
- package/dist/core/hooks/agent-hooks.d.ts +0 -74
- package/dist/core/hooks/agent-hooks.js +0 -244
- package/dist/core/hooks/auto-tagger.d.ts +0 -19
- package/dist/core/hooks/auto-tagger.js +0 -155
- package/dist/core/hooks/capture-filter.d.ts +0 -41
- package/dist/core/hooks/capture-filter.js +0 -128
- package/dist/core/index.d.ts +0 -10
- package/dist/core/index.js +0 -14
- package/dist/core/ingestion/agent-memory.d.ts +0 -22
- package/dist/core/ingestion/agent-memory.js +0 -109
- package/dist/core/ingestion/core-memory.d.ts +0 -78
- package/dist/core/ingestion/core-memory.js +0 -226
- package/dist/core/ingestion/learnings.d.ts +0 -57
- package/dist/core/ingestion/learnings.js +0 -202
- package/dist/core/layers/generator.d.ts +0 -25
- package/dist/core/layers/generator.js +0 -76
- package/dist/core/lib/db-client.js +0 -130
- package/dist/core/lib/schemas.d.ts +0 -129
- package/dist/core/lib/utils.d.ts +0 -14
- package/dist/core/lib/utils.js +0 -90
- package/dist/core/lib/validation.d.ts +0 -38
- package/dist/core/lib/validation.js +0 -151
- package/dist/core/lifecycle.d.ts +0 -26
- package/dist/core/lifecycle.js +0 -302
- package/dist/core/local-embeddings.d.ts +0 -11
- package/dist/core/logger.d.ts +0 -16
- package/dist/core/logger.js +0 -40
- package/dist/core/mcp/client.d.ts +0 -17
- package/dist/core/mcp/client.js +0 -101
- package/dist/core/mcp/index.d.ts +0 -6
- package/dist/core/mcp/index.js +0 -6
- package/dist/core/mcp/server.d.ts +0 -18
- package/dist/core/mcp/server.js +0 -157
- package/dist/core/mcp/standalone-server.d.ts +0 -13
- package/dist/core/mcp/standalone-server.js +0 -46
- package/dist/core/mcp/tools.d.ts +0 -9
- package/dist/core/mcp/tools.js +0 -365
- package/dist/core/mcp/types.d.ts +0 -315
- package/dist/core/mcp/types.js +0 -48
- package/dist/core/memory/bridge-discovery.d.ts +0 -50
- package/dist/core/memory/bridge-discovery.js +0 -291
- package/dist/core/memory/categorizer.d.ts +0 -27
- package/dist/core/memory/categorizer.js +0 -305
- package/dist/core/memory/conflict-detector.d.ts +0 -7
- package/dist/core/memory/conflict-detector.js +0 -43
- package/dist/core/memory/consolidation.d.ts +0 -42
- package/dist/core/memory/consolidation.js +0 -303
- package/dist/core/memory/context-collector.d.ts +0 -10
- package/dist/core/memory/context-collector.js +0 -56
- package/dist/core/memory/contradiction-resolver.d.ts +0 -40
- package/dist/core/memory/contradiction-resolver.js +0 -368
- package/dist/core/memory/edit-workflow.d.ts +0 -19
- package/dist/core/memory/edit-workflow.js +0 -120
- package/dist/core/memory/entity-extractor.d.ts +0 -33
- package/dist/core/memory/entity-extractor.js +0 -336
- package/dist/core/memory/entity-resolver.d.ts +0 -23
- package/dist/core/memory/entity-resolver.js +0 -64
- package/dist/core/memory/fact-extractor.d.ts +0 -24
- package/dist/core/memory/fact-extractor.js +0 -89
- package/dist/core/memory/feedback-tracker.d.ts +0 -12
- package/dist/core/memory/feedback-tracker.js +0 -155
- package/dist/core/memory/hooks.d.ts +0 -88
- package/dist/core/memory/hooks.js +0 -174
- package/dist/core/memory/hybrid-retrieval.d.ts +0 -29
- package/dist/core/memory/hybrid-retrieval.js +0 -139
- package/dist/core/memory/hybrid-scorer.d.ts +0 -40
- package/dist/core/memory/hybrid-scorer.js +0 -284
- package/dist/core/memory/hybrid-search.d.ts +0 -20
- package/dist/core/memory/hybrid-search.js +0 -359
- package/dist/core/memory/importance.d.ts +0 -63
- package/dist/core/memory/importance.js +0 -298
- package/dist/core/memory/index.d.ts +0 -8
- package/dist/core/memory/loader.d.ts +0 -31
- package/dist/core/memory/loader.js +0 -141
- package/dist/core/memory/markdown/markdown-storage.d.ts +0 -72
- package/dist/core/memory/markdown/markdown-storage.js +0 -243
- package/dist/core/memory/memories.d.ts +0 -47
- package/dist/core/memory/memories.js +0 -449
- package/dist/core/memory/memory-lifecycle.d.ts +0 -8
- package/dist/core/memory/memory-lifecycle.js +0 -55
- package/dist/core/memory/memory-manager.d.ts +0 -15
- package/dist/core/memory/memory-manager.js +0 -46
- package/dist/core/memory/migrate.d.ts +0 -21
- package/dist/core/memory/migrate.js +0 -134
- package/dist/core/memory/normalization.d.ts +0 -22
- package/dist/core/memory/normalization.js +0 -26
- package/dist/core/memory/progressive-disclosure.d.ts +0 -43
- package/dist/core/memory/progressive-disclosure.js +0 -280
- package/dist/core/memory/query-processor.d.ts +0 -21
- package/dist/core/memory/query-processor.js +0 -72
- package/dist/core/memory/query-rewriter.d.ts +0 -13
- package/dist/core/memory/query-rewriter.js +0 -118
- package/dist/core/memory/response-analyzer.d.ts +0 -9
- package/dist/core/memory/response-analyzer.js +0 -61
- package/dist/core/memory/serialization.d.ts +0 -10
- package/dist/core/memory/serialization.js +0 -84
- package/dist/core/memory/stats.d.ts +0 -22
- package/dist/core/memory/stats.js +0 -138
- package/dist/core/memory/telemetry.d.ts +0 -69
- package/dist/core/memory/telemetry.js +0 -313
- package/dist/core/memory/temporal-facts.d.ts +0 -41
- package/dist/core/memory/temporal-facts.js +0 -283
- package/dist/core/memory/temporal-parser.d.ts +0 -32
- package/dist/core/memory/temporal-parser.js +0 -385
- package/dist/core/memory/trigger-detector.d.ts +0 -14
- package/dist/core/memory/trigger-detector.js +0 -42
- package/dist/core/memory/write-gate.d.ts +0 -54
- package/dist/core/memory/write-gate.js +0 -210
- package/dist/core/namespaces/index.d.ts +0 -71
- package/dist/core/namespaces/index.js +0 -305
- package/dist/core/namespaces/uri-parser.d.ts +0 -31
- package/dist/core/namespaces/uri-parser.js +0 -74
- package/dist/core/obsidian-vault.d.ts +0 -30
- package/dist/core/obsidian-vault.js +0 -94
- package/dist/core/places/index.d.ts +0 -14
- package/dist/core/places/memory-places.d.ts +0 -68
- package/dist/core/places/memory-places.js +0 -261
- package/dist/core/places/places.d.ts +0 -88
- package/dist/core/places/places.js +0 -314
- package/dist/core/places/rules.d.ts +0 -74
- package/dist/core/places/rules.js +0 -240
- package/dist/core/places/walking.d.ts +0 -56
- package/dist/core/places/walking.js +0 -121
- package/dist/core/projects.d.ts +0 -17
- package/dist/core/projects.js +0 -108
- package/dist/core/redis.d.ts +0 -11
- package/dist/core/redis.js +0 -69
- package/dist/core/responses.d.ts +0 -96
- package/dist/core/responses.js +0 -122
- package/dist/core/scheduler/cron-scheduler.d.ts +0 -32
- package/dist/core/scheduler/cron-scheduler.js +0 -332
- package/dist/core/scheduler/heartbeat.d.ts +0 -11
- package/dist/core/scheduler/heartbeat.js +0 -73
- package/dist/core/scheduler/index.d.ts +0 -8
- package/dist/core/scheduler/job-runner.d.ts +0 -11
- package/dist/core/scheduler/job-runner.js +0 -164
- package/dist/core/search/conversations.d.ts +0 -25
- package/dist/core/search/conversations.js +0 -110
- package/dist/core/search/entities.d.ts +0 -12
- package/dist/core/search/entities.js +0 -31
- package/dist/core/search/folder-context.d.ts +0 -25
- package/dist/core/search/folder-context.js +0 -119
- package/dist/core/search/graph-boost.d.ts +0 -7
- package/dist/core/search/graph-boost.js +0 -23
- package/dist/core/search/index.d.ts +0 -4
- package/dist/core/search/qmd-search.d.ts +0 -61
- package/dist/core/search/qmd-search.js +0 -178
- package/dist/core/security/encrypt.d.ts +0 -6
- package/dist/core/security/encrypt.js +0 -47
- package/dist/core/security/governance.d.ts +0 -26
- package/dist/core/security/governance.js +0 -79
- package/dist/core/security/privacy.d.ts +0 -23
- package/dist/core/security/privacy.js +0 -82
- package/dist/core/security/secret-detector.d.ts +0 -32
- package/dist/core/security/secret-detector.js +0 -88
- package/dist/core/session/auto-load.d.ts +0 -6
- package/dist/core/session/auto-load.js +0 -119
- package/dist/core/session/index.d.ts +0 -7
- package/dist/core/session/self-iteration-job.d.ts +0 -20
- package/dist/core/session/self-iteration-job.js +0 -282
- package/dist/core/session/session-hooks.d.ts +0 -18
- package/dist/core/session/session-hooks.js +0 -58
- package/dist/core/session/types.d.ts +0 -26
- package/dist/core/session/types.js +0 -10
- package/dist/core/session-hooks/self-iteration-job.d.ts +0 -20
- package/dist/core/session-hooks/self-iteration-job.js +0 -282
- package/dist/core/session-hooks/session-hooks.d.ts +0 -18
- package/dist/core/session-hooks/session-hooks.js +0 -58
- package/dist/core/snapshots/cleanup.d.ts +0 -9
- package/dist/core/snapshots/comparison.d.ts +0 -19
- package/dist/core/snapshots/comparison.js +0 -43
- package/dist/core/snapshots/creation.d.ts +0 -19
- package/dist/core/snapshots/creation.js +0 -126
- package/dist/core/snapshots/retrieval.d.ts +0 -7
- package/dist/core/snapshots/retrieval.js +0 -41
- package/dist/core/snapshots/stats.d.ts +0 -11
- package/dist/core/snapshots/stats.js +0 -52
- package/dist/core/snapshots.d.ts +0 -29
- package/dist/core/snapshots.js +0 -220
- package/dist/core/storage/cache.d.ts +0 -13
- package/dist/core/storage/cache.js +0 -202
- package/dist/core/storage/database.d.ts +0 -12
- package/dist/core/storage/database.js +0 -12
- package/dist/core/summarization/cleanup.d.ts +0 -9
- package/dist/core/summarization/queries.d.ts +0 -9
- package/dist/core/summarization/queries.js +0 -28
- package/dist/core/summarization/stats.d.ts +0 -14
- package/dist/core/summarization/stats.js +0 -52
- package/dist/core/summarization/strategies.d.ts +0 -24
- package/dist/core/summarization/strategies.js +0 -28
- package/dist/core/summarization.d.ts +0 -37
- package/dist/core/summarization.js +0 -188
- package/dist/core/sync/qmd-sync.d.ts +0 -94
- package/dist/core/sync/qmd-sync.js +0 -201
- package/dist/core/temporal-facts.d.ts +0 -54
- package/dist/core/temporal-facts.js +0 -193
- package/dist/core/toon.d.ts +0 -43
- package/dist/core/toon.js +0 -160
- package/dist/core/tracing/collector.d.ts +0 -111
- package/dist/core/tracing/collector.js +0 -350
- package/dist/core/tracing/visualizer.d.ts +0 -32
- package/dist/core/tracing/visualizer.js +0 -165
- package/dist/core/utils/cleanup-operations.d.ts +0 -13
- package/dist/core/utils/cleanup-operations.js +0 -44
- package/dist/core/utils/content-extraction.d.ts +0 -19
- package/dist/core/utils/content-extraction.js +0 -75
- package/dist/core/utils/filter-builder.d.ts +0 -13
- package/dist/core/utils/filter-builder.js +0 -44
- package/dist/core/utils/history-traversal.d.ts +0 -13
- package/dist/core/utils/history-traversal.js +0 -50
- package/dist/core/utils/memory-operations.d.ts +0 -17
- package/dist/core/utils/memory-operations.js +0 -43
- package/dist/core/utils/query-operations.d.ts +0 -18
- package/dist/core/utils/query-operations.js +0 -65
- package/dist/core/utils/summarization-helpers.d.ts +0 -21
- package/dist/core/utils/summarization-helpers.js +0 -38
- package/dist/core/utils/temporal-queries.d.ts +0 -13
- package/dist/core/utils/temporal-queries.js +0 -27
- package/dist/core/utils/vector-operations.d.ts +0 -71
- package/dist/core/utils/version-management.d.ts +0 -9
- package/dist/core/utils/version-management.js +0 -61
- package/dist/core/worker.d.ts +0 -82
- package/dist/core/worker.js +0 -272
- package/dist/db/adapter.d.ts +0 -7
- package/dist/db/adapter.js +0 -175
- package/dist/db/bootstrap.d.ts +0 -9
- package/dist/db/drizzle/schema-sqlite.d.ts +0 -4837
- package/dist/db/drizzle/schema-sqlite.js +0 -684
- package/dist/db/drizzle/schema.d.ts +0 -4082
- package/dist/db/drizzle/schema.js +0 -770
- package/dist/db/drizzle.config.d.ts +0 -3
- package/dist/db/drizzle.config.js +0 -12
- package/dist/db/index.d.ts +0 -7
- package/dist/db/index.js +0 -89
- package/dist/db/neon.d.ts +0 -8
- package/dist/db/neon.js +0 -20
- package/dist/db/schema/index.d.ts +0 -40
- package/dist/db/schema/index.js +0 -105
- package/dist/db/schema/tables/context-sessions.d.ts +0 -9
- package/dist/db/schema/tables/context-sessions.js +0 -37
- package/dist/db/schema/tables/conversations.d.ts +0 -9
- package/dist/db/schema/tables/conversations.js +0 -47
- package/dist/db/schema/tables/core-memory.d.ts +0 -9
- package/dist/db/schema/tables/core-memory.js +0 -41
- package/dist/db/schema/tables/entities.d.ts +0 -9
- package/dist/db/schema/tables/entities.js +0 -39
- package/dist/db/schema/tables/entity-relations.d.ts +0 -9
- package/dist/db/schema/tables/entity-relations.js +0 -31
- package/dist/db/schema/tables/learnings.d.ts +0 -9
- package/dist/db/schema/tables/learnings.js +0 -66
- package/dist/db/schema/tables/memories.d.ts +0 -9
- package/dist/db/schema/tables/memories.js +0 -161
- package/dist/db/schema/tables/memory-associations.d.ts +0 -9
- package/dist/db/schema/tables/memory-associations.js +0 -39
- package/dist/db/schema/tables/memory-hash-cache.d.ts +0 -9
- package/dist/db/schema/tables/memory-hash-cache.js +0 -29
- package/dist/db/schema/tables/memory-merge-history.d.ts +0 -9
- package/dist/db/schema/tables/memory-merge-history.js +0 -33
- package/dist/db/schema/tables/memory-merge-proposals.d.ts +0 -9
- package/dist/db/schema/tables/memory-merge-proposals.js +0 -39
- package/dist/db/schema/tables/messages.d.ts +0 -9
- package/dist/db/schema/tables/messages.js +0 -41
- package/dist/db/schema/tables/namespaces.d.ts +0 -9
- package/dist/db/schema/tables/namespaces.js +0 -37
- package/dist/db/schema/tables/projects.d.ts +0 -9
- package/dist/db/schema/tables/projects.js +0 -31
- package/dist/db/schema/tables/users.d.ts +0 -9
- package/dist/db/schema/tables/users.js +0 -27
- package/dist/db/schema.d.ts +0 -3
- package/dist/db/schema.js +0 -11
- package/dist/db/supabase.d.ts +0 -9
- package/dist/db/supabase.js +0 -24
- package/dist/index.d.ts +0 -7
- package/dist/index.js +0 -1677
- package/dist/vendor/sql.js/sql-wasm.wasm +0 -0
- package/dist/webui/server.d.ts +0 -5
- package/dist/webui/server.js +0 -642
- package/generated/mcp/manifest.json +0 -23
- package/generated/mcp/mcp-servers.json +0 -25
- package/generated/mcp/mcporter.json +0 -34
- package/generated/mcp/openclaw-memory-qmd.json +0 -17
- package/generated/mcp/runtime.json +0 -12
- package/scripts/README.md +0 -60
- package/scripts/build-release.sh +0 -36
- package/scripts/check-secrets.js +0 -132
- package/scripts/copy-runtime-assets.mjs +0 -26
- package/scripts/generate-mcp.mjs +0 -264
- package/scripts/github-release.sh +0 -77
- package/scripts/init-dirs.mjs +0 -13
- package/scripts/install-claude-code.sh +0 -85
- package/scripts/install-cursor.sh +0 -56
- package/scripts/install-hooks.sh +0 -73
- package/scripts/install-interactive.mjs +0 -357
- package/scripts/install-opencode.sh +0 -75
- package/scripts/install-plugin.mjs +0 -415
- package/scripts/install-windsurf.sh +0 -67
- package/scripts/remote-preflight.mjs +0 -62
- package/scripts/squish-fallback.mjs +0 -132
- package/scripts/test-interactive.mjs +0 -131
- package/scripts/verify-mcp.mjs +0 -214
- package/skills/squish-memory/scripts/install.mjs +0 -335
- package/skills/squish-memory/write_skill.js +0 -2
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* QMD Memory Synchronization
|
|
3
|
-
* Syncs Squish memories to QMD collections for hybrid search
|
|
4
|
-
*/
|
|
5
|
-
import type { MemoryRecord } from '../memory/memories.js';
|
|
6
|
-
export interface CollectionMapping {
|
|
7
|
-
[memoryType: string]: string;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* QMD Memory Sync class
|
|
11
|
-
*
|
|
12
|
-
* Manages synchronization of Squish memories to QMD collections.
|
|
13
|
-
*/
|
|
14
|
-
export declare class QMDMemorySync {
|
|
15
|
-
private collectionsPath;
|
|
16
|
-
private client;
|
|
17
|
-
private initialized;
|
|
18
|
-
constructor();
|
|
19
|
-
/**
|
|
20
|
-
* Initialize the sync layer
|
|
21
|
-
*
|
|
22
|
-
* Creates collection directories and verifies QMD connection.
|
|
23
|
-
*/
|
|
24
|
-
initialize(): Promise<void>;
|
|
25
|
-
/**
|
|
26
|
-
* Sync a memory to QMD
|
|
27
|
-
*
|
|
28
|
-
* Writes memory as markdown to the appropriate collection directory.
|
|
29
|
-
* QMD will automatically index the file on its next update cycle.
|
|
30
|
-
*
|
|
31
|
-
* @param memory - Memory record to sync
|
|
32
|
-
*/
|
|
33
|
-
syncMemory(memory: MemoryRecord): Promise<void>;
|
|
34
|
-
/**
|
|
35
|
-
* Batch sync multiple memories
|
|
36
|
-
*
|
|
37
|
-
* @param memories - Array of memory records to sync
|
|
38
|
-
*/
|
|
39
|
-
syncMemories(memories: MemoryRecord[]): Promise<void>;
|
|
40
|
-
/**
|
|
41
|
-
* Trigger QMD re-index
|
|
42
|
-
*
|
|
43
|
-
* Note: This would typically call `qmd update` or `qmd embed`.
|
|
44
|
-
* For now, we just log that documents are ready for indexing.
|
|
45
|
-
*/
|
|
46
|
-
reindex(): Promise<void>;
|
|
47
|
-
/**
|
|
48
|
-
* Get collection name for a memory
|
|
49
|
-
*
|
|
50
|
-
* @param memory - Memory record
|
|
51
|
-
* @returns QMD collection name
|
|
52
|
-
*/
|
|
53
|
-
private getCollectionForMemory;
|
|
54
|
-
/**
|
|
55
|
-
* Generate filename for memory
|
|
56
|
-
*
|
|
57
|
-
* Uses a docid-like format (6-char hash) for consistent naming.
|
|
58
|
-
*
|
|
59
|
-
* @param memory - Memory record
|
|
60
|
-
* @returns Filename for the memory
|
|
61
|
-
*/
|
|
62
|
-
private getFilenameForMemory;
|
|
63
|
-
/**
|
|
64
|
-
* Format memory as markdown for QMD indexing
|
|
65
|
-
*
|
|
66
|
-
* Uses frontmatter for metadata and standard markdown for content.
|
|
67
|
-
*
|
|
68
|
-
* @param memory - Memory record
|
|
69
|
-
* @returns Markdown formatted string
|
|
70
|
-
*/
|
|
71
|
-
private formatMemoryAsMarkdown;
|
|
72
|
-
/**
|
|
73
|
-
* Capitalize first letter of a string
|
|
74
|
-
*/
|
|
75
|
-
private capitalize;
|
|
76
|
-
/**
|
|
77
|
-
* Create a QMD collection directory
|
|
78
|
-
*
|
|
79
|
-
* @param name - Collection name
|
|
80
|
-
*/
|
|
81
|
-
private createCollection;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Get the singleton QMD memory sync instance
|
|
85
|
-
*
|
|
86
|
-
* @returns QMDMemorySync instance
|
|
87
|
-
*/
|
|
88
|
-
export declare function getQMDMemorySync(): Promise<QMDMemorySync>;
|
|
89
|
-
/**
|
|
90
|
-
* Reset the singleton sync instance
|
|
91
|
-
* Useful for testing or when configuration changes.
|
|
92
|
-
*/
|
|
93
|
-
export declare function resetQMDMemorySync(): void;
|
|
94
|
-
//# sourceMappingURL=qmd-sync.d.ts.map
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* QMD Memory Synchronization
|
|
3
|
-
* Syncs Squish memories to QMD collections for hybrid search
|
|
4
|
-
*/
|
|
5
|
-
import { mkdir, writeFile } from 'fs/promises';
|
|
6
|
-
import { join } from 'path';
|
|
7
|
-
import { getQMDClient } from '../embeddings/qmd-client.js';
|
|
8
|
-
import { config } from '../../config.js';
|
|
9
|
-
import { logger } from '../logger.js';
|
|
10
|
-
/**
|
|
11
|
-
* QMD Memory Sync class
|
|
12
|
-
*
|
|
13
|
-
* Manages synchronization of Squish memories to QMD collections.
|
|
14
|
-
*/
|
|
15
|
-
export class QMDMemorySync {
|
|
16
|
-
collectionsPath;
|
|
17
|
-
client;
|
|
18
|
-
initialized = false;
|
|
19
|
-
constructor() {
|
|
20
|
-
this.collectionsPath = config.qmdCollectionsPath;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Initialize the sync layer
|
|
24
|
-
*
|
|
25
|
-
* Creates collection directories and verifies QMD connection.
|
|
26
|
-
*/
|
|
27
|
-
async initialize() {
|
|
28
|
-
if (this.initialized) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
this.initialized = true;
|
|
32
|
-
try {
|
|
33
|
-
// Ensure collections directory exists
|
|
34
|
-
await mkdir(this.collectionsPath, { recursive: true });
|
|
35
|
-
// Initialize QMD client (but don't fail if QMD isn't installed)
|
|
36
|
-
try {
|
|
37
|
-
this.client = await getQMDClient();
|
|
38
|
-
const available = await this.client.isAvailable();
|
|
39
|
-
if (available) {
|
|
40
|
-
logger.info('QMD sync initialized with available QMD server');
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
logger.info('QMD sync initialized (QMD server not available)');
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
logger.debug('QMD client unavailable, sync will be deferred');
|
|
48
|
-
}
|
|
49
|
-
// Create collection directories for each memory type
|
|
50
|
-
for (const [memoryType, collectionName] of Object.entries(config.qmdCollectionMapping)) {
|
|
51
|
-
await this.createCollection(String(collectionName));
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
logger.error(`Failed to initialize QMD sync: ${error}`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Sync a memory to QMD
|
|
60
|
-
*
|
|
61
|
-
* Writes memory as markdown to the appropriate collection directory.
|
|
62
|
-
* QMD will automatically index the file on its next update cycle.
|
|
63
|
-
*
|
|
64
|
-
* @param memory - Memory record to sync
|
|
65
|
-
*/
|
|
66
|
-
async syncMemory(memory) {
|
|
67
|
-
// Lazy initialization
|
|
68
|
-
if (!this.initialized) {
|
|
69
|
-
await this.initialize();
|
|
70
|
-
}
|
|
71
|
-
// Check if QMD is available
|
|
72
|
-
if (this.client && !(await this.client.isAvailable())) {
|
|
73
|
-
logger.debug('QMD unavailable, skipping sync');
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
const collection = this.getCollectionForMemory(memory);
|
|
77
|
-
const filename = this.getFilenameForMemory(memory);
|
|
78
|
-
const content = this.formatMemoryAsMarkdown(memory);
|
|
79
|
-
const filepath = join(this.collectionsPath, collection, filename);
|
|
80
|
-
try {
|
|
81
|
-
await mkdir(join(this.collectionsPath, collection), { recursive: true });
|
|
82
|
-
await writeFile(filepath, content, 'utf-8');
|
|
83
|
-
logger.debug(`Synced memory ${memory.id} to QMD collection ${collection}`);
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
logger.error(`Failed to sync memory to QMD: ${error}`);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Batch sync multiple memories
|
|
91
|
-
*
|
|
92
|
-
* @param memories - Array of memory records to sync
|
|
93
|
-
*/
|
|
94
|
-
async syncMemories(memories) {
|
|
95
|
-
for (const memory of memories) {
|
|
96
|
-
await this.syncMemory(memory);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Trigger QMD re-index
|
|
101
|
-
*
|
|
102
|
-
* Note: This would typically call `qmd update` or `qmd embed`.
|
|
103
|
-
* For now, we just log that documents are ready for indexing.
|
|
104
|
-
*/
|
|
105
|
-
async reindex() {
|
|
106
|
-
if (!this.client || !(await this.client.isAvailable())) {
|
|
107
|
-
logger.debug('QMD unavailable, skipping reindex');
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
// In a full implementation, this would spawn a qmd process
|
|
111
|
-
// to update the index. For now, we rely on QMD's background indexing.
|
|
112
|
-
logger.info('QMD collections updated, ready for indexing');
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Get collection name for a memory
|
|
116
|
-
*
|
|
117
|
-
* @param memory - Memory record
|
|
118
|
-
* @returns QMD collection name
|
|
119
|
-
*/
|
|
120
|
-
getCollectionForMemory(memory) {
|
|
121
|
-
const mapping = config.qmdCollectionMapping || {};
|
|
122
|
-
return mapping[memory.type] || 'squish-default';
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Generate filename for memory
|
|
126
|
-
*
|
|
127
|
-
* Uses a docid-like format (6-char hash) for consistent naming.
|
|
128
|
-
*
|
|
129
|
-
* @param memory - Memory record
|
|
130
|
-
* @returns Filename for the memory
|
|
131
|
-
*/
|
|
132
|
-
getFilenameForMemory(memory) {
|
|
133
|
-
// Create a short hash from the memory ID (like QMD's docid)
|
|
134
|
-
const hash = Buffer.from(memory.id.replace(/-/g, '')).toString('base64')
|
|
135
|
-
.replace(/[+/=]/g, '')
|
|
136
|
-
.substring(0, 6);
|
|
137
|
-
// Format: type-hash.md
|
|
138
|
-
return `${memory.type}-${hash}.md`;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Format memory as markdown for QMD indexing
|
|
142
|
-
*
|
|
143
|
-
* Uses frontmatter for metadata and standard markdown for content.
|
|
144
|
-
*
|
|
145
|
-
* @param memory - Memory record
|
|
146
|
-
* @returns Markdown formatted string
|
|
147
|
-
*/
|
|
148
|
-
formatMemoryAsMarkdown(memory) {
|
|
149
|
-
const frontmatter = [
|
|
150
|
-
'---',
|
|
151
|
-
`id: ${memory.id}`,
|
|
152
|
-
`type: ${memory.type}`,
|
|
153
|
-
memory.tags && memory.tags.length > 0 ? `tags: ${memory.tags.join(', ')}` : '',
|
|
154
|
-
memory.createdAt ? `created: ${memory.createdAt}` : '',
|
|
155
|
-
memory.metadata ? `metadata: ${JSON.stringify(memory.metadata)}` : '',
|
|
156
|
-
'---',
|
|
157
|
-
'',
|
|
158
|
-
`# ${this.capitalize(memory.type)}`,
|
|
159
|
-
''
|
|
160
|
-
].filter(line => line !== '').join('\n');
|
|
161
|
-
return frontmatter + memory.content;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Capitalize first letter of a string
|
|
165
|
-
*/
|
|
166
|
-
capitalize(str) {
|
|
167
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Create a QMD collection directory
|
|
171
|
-
*
|
|
172
|
-
* @param name - Collection name
|
|
173
|
-
*/
|
|
174
|
-
async createCollection(name) {
|
|
175
|
-
const collectionPath = join(this.collectionsPath, name);
|
|
176
|
-
await mkdir(collectionPath, { recursive: true });
|
|
177
|
-
logger.debug(`QMD collection prepared: ${name}`);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
// Singleton instance
|
|
181
|
-
let syncInstance = null;
|
|
182
|
-
/**
|
|
183
|
-
* Get the singleton QMD memory sync instance
|
|
184
|
-
*
|
|
185
|
-
* @returns QMDMemorySync instance
|
|
186
|
-
*/
|
|
187
|
-
export async function getQMDMemorySync() {
|
|
188
|
-
if (!syncInstance) {
|
|
189
|
-
syncInstance = new QMDMemorySync();
|
|
190
|
-
await syncInstance.initialize();
|
|
191
|
-
}
|
|
192
|
-
return syncInstance;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Reset the singleton sync instance
|
|
196
|
-
* Useful for testing or when configuration changes.
|
|
197
|
-
*/
|
|
198
|
-
export function resetQMDMemorySync() {
|
|
199
|
-
syncInstance = null;
|
|
200
|
-
}
|
|
201
|
-
//# sourceMappingURL=qmd-sync.js.map
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Temporal Facts System
|
|
3
|
-
* Manages versioned facts with validity windows
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Store a new fact with temporal validity
|
|
7
|
-
*/
|
|
8
|
-
export declare function storeFact(content: string, options?: {
|
|
9
|
-
validFrom?: Date;
|
|
10
|
-
validTo?: Date;
|
|
11
|
-
confidence?: number;
|
|
12
|
-
tags?: string[];
|
|
13
|
-
projectId?: string;
|
|
14
|
-
}): Promise<string>;
|
|
15
|
-
/**
|
|
16
|
-
* Update a fact by creating a new version
|
|
17
|
-
*/
|
|
18
|
-
export declare function updateFact(previousFactId: string, newContent: string, reason: string): Promise<string>;
|
|
19
|
-
/**
|
|
20
|
-
* Query facts valid at a specific point in time
|
|
21
|
-
*/
|
|
22
|
-
export declare function queryFactsAtTime(timestamp?: Date, options?: {
|
|
23
|
-
minConfidence?: number;
|
|
24
|
-
tags?: string[];
|
|
25
|
-
projectId?: string;
|
|
26
|
-
limit?: number;
|
|
27
|
-
}): Promise<any[]>;
|
|
28
|
-
/**
|
|
29
|
-
* Get the complete version history of a fact
|
|
30
|
-
*/
|
|
31
|
-
export declare function getFactHistory(factId: string): Promise<any[]>;
|
|
32
|
-
/**
|
|
33
|
-
* Apply confidence decay based on temporal distance
|
|
34
|
-
*/
|
|
35
|
-
export declare function applyConfidenceDecay(factId: string, ageDays: number): Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* Invalidate a fact (mark as no longer valid)
|
|
38
|
-
*/
|
|
39
|
-
export declare function invalidateFact(factId: string, reason: string): Promise<void>;
|
|
40
|
-
/**
|
|
41
|
-
* Check if a fact is currently valid
|
|
42
|
-
*/
|
|
43
|
-
export declare function isFactValid(factId: string, atTime?: Date): Promise<boolean>;
|
|
44
|
-
/**
|
|
45
|
-
* Get statistics about facts
|
|
46
|
-
*/
|
|
47
|
-
export declare function getFactStats(projectId?: string): Promise<{
|
|
48
|
-
totalFacts: number;
|
|
49
|
-
activeFacts: number;
|
|
50
|
-
expiredFacts: number;
|
|
51
|
-
avgConfidence: number;
|
|
52
|
-
avgAge: number;
|
|
53
|
-
}>;
|
|
54
|
-
//# sourceMappingURL=temporal-facts.d.ts.map
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Temporal Facts System
|
|
3
|
-
* Manages versioned facts with validity windows
|
|
4
|
-
*/
|
|
5
|
-
import { and, eq, gte, desc } from 'drizzle-orm';
|
|
6
|
-
import { randomUUID } from 'crypto';
|
|
7
|
-
import { getDb } from '../db/index.js';
|
|
8
|
-
import { getSchema } from '../db/schema.js';
|
|
9
|
-
import { traverseSupersededChain } from './utils/history-traversal.js';
|
|
10
|
-
import { createNewFactVersion } from './utils/version-management.js';
|
|
11
|
-
import { buildFactAtTimeQuery } from './utils/temporal-queries.js';
|
|
12
|
-
import { logger } from './logger.js';
|
|
13
|
-
/**
|
|
14
|
-
* Store a new fact with temporal validity
|
|
15
|
-
*/
|
|
16
|
-
export async function storeFact(content, options = {}) {
|
|
17
|
-
try {
|
|
18
|
-
const db = await getDb();
|
|
19
|
-
const schema = await getSchema();
|
|
20
|
-
const factId = randomUUID();
|
|
21
|
-
await db.insert(schema.memories).values({
|
|
22
|
-
id: factId,
|
|
23
|
-
type: 'fact',
|
|
24
|
-
sector: 'semantic',
|
|
25
|
-
content,
|
|
26
|
-
confidence: options.confidence || 100,
|
|
27
|
-
validFrom: options.validFrom || new Date(),
|
|
28
|
-
validTo: options.validTo || null,
|
|
29
|
-
version: 1,
|
|
30
|
-
tags: options.tags || [],
|
|
31
|
-
projectId: options.projectId || null,
|
|
32
|
-
createdAt: new Date(),
|
|
33
|
-
updatedAt: new Date(),
|
|
34
|
-
});
|
|
35
|
-
return factId;
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
logger.error('Error storing fact', error);
|
|
39
|
-
throw error;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Update a fact by creating a new version
|
|
44
|
-
*/
|
|
45
|
-
export async function updateFact(previousFactId, newContent, reason) {
|
|
46
|
-
return createNewFactVersion(previousFactId, newContent, {}, reason);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Query facts valid at a specific point in time
|
|
50
|
-
*/
|
|
51
|
-
export async function queryFactsAtTime(timestamp = new Date(), options = {}) {
|
|
52
|
-
try {
|
|
53
|
-
const db = await getDb();
|
|
54
|
-
const schema = await getSchema();
|
|
55
|
-
const minConfidence = options.minConfidence || 0;
|
|
56
|
-
const limit = options.limit || 100;
|
|
57
|
-
const additionalFilters = [gte(schema.memories.confidence, minConfidence)];
|
|
58
|
-
if (options.projectId) {
|
|
59
|
-
additionalFilters.push(eq(schema.memories.projectId, options.projectId));
|
|
60
|
-
}
|
|
61
|
-
const where = buildFactAtTimeQuery(schema, timestamp, additionalFilters);
|
|
62
|
-
const results = await db
|
|
63
|
-
.select()
|
|
64
|
-
.from(schema.memories)
|
|
65
|
-
.where(where)
|
|
66
|
-
.orderBy(desc(schema.memories.confidence))
|
|
67
|
-
.limit(limit);
|
|
68
|
-
return results;
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
logger.error('Error querying facts at time', error);
|
|
72
|
-
return [];
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Get the complete version history of a fact
|
|
77
|
-
*/
|
|
78
|
-
export async function getFactHistory(factId) {
|
|
79
|
-
return traverseSupersededChain(factId);
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Apply confidence decay based on temporal distance
|
|
83
|
-
*/
|
|
84
|
-
export async function applyConfidenceDecay(factId, ageDays) {
|
|
85
|
-
try {
|
|
86
|
-
const db = await getDb();
|
|
87
|
-
const schema = await getSchema();
|
|
88
|
-
// Confidence decays exponentially: newConfidence = originalConfidence * e^(-lambda * ageDays)
|
|
89
|
-
// Using lambda = 0.01 for moderate decay
|
|
90
|
-
const decayFactor = Math.exp(-0.01 * ageDays);
|
|
91
|
-
const fact = await db
|
|
92
|
-
.select()
|
|
93
|
-
.from(schema.memories)
|
|
94
|
-
.where(eq(schema.memories.id, factId))
|
|
95
|
-
.limit(1);
|
|
96
|
-
if (fact.length === 0)
|
|
97
|
-
return;
|
|
98
|
-
const newConfidence = Math.max(0, Math.floor(fact[0].confidence * decayFactor));
|
|
99
|
-
await db
|
|
100
|
-
.update(schema.memories)
|
|
101
|
-
.set({ confidence: newConfidence })
|
|
102
|
-
.where(eq(schema.memories.id, factId));
|
|
103
|
-
}
|
|
104
|
-
catch (error) {
|
|
105
|
-
logger.error('Error applying confidence decay', error);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Invalidate a fact (mark as no longer valid)
|
|
110
|
-
*/
|
|
111
|
-
export async function invalidateFact(factId, reason) {
|
|
112
|
-
try {
|
|
113
|
-
const db = await getDb();
|
|
114
|
-
const schema = await getSchema();
|
|
115
|
-
await db
|
|
116
|
-
.update(schema.memories)
|
|
117
|
-
.set({
|
|
118
|
-
validTo: new Date(),
|
|
119
|
-
metadata: { invalidationReason: reason, invalidatedAt: new Date().toISOString() },
|
|
120
|
-
})
|
|
121
|
-
.where(eq(schema.memories.id, factId));
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
logger.error('Error invalidating fact', error);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Check if a fact is currently valid
|
|
129
|
-
*/
|
|
130
|
-
export async function isFactValid(factId, atTime = new Date()) {
|
|
131
|
-
try {
|
|
132
|
-
const db = await getDb();
|
|
133
|
-
const schema = await getSchema();
|
|
134
|
-
const additionalFilters = [eq(schema.memories.id, factId)];
|
|
135
|
-
const where = buildFactAtTimeQuery(schema, atTime, additionalFilters);
|
|
136
|
-
const fact = await db
|
|
137
|
-
.select()
|
|
138
|
-
.from(schema.memories)
|
|
139
|
-
.where(where)
|
|
140
|
-
.limit(1);
|
|
141
|
-
return fact.length > 0;
|
|
142
|
-
}
|
|
143
|
-
catch (error) {
|
|
144
|
-
logger.error('Error checking fact validity', error);
|
|
145
|
-
return false;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Get statistics about facts
|
|
150
|
-
*/
|
|
151
|
-
export async function getFactStats(projectId) {
|
|
152
|
-
try {
|
|
153
|
-
const db = await getDb();
|
|
154
|
-
const schema = await getSchema();
|
|
155
|
-
const now = new Date();
|
|
156
|
-
const where = projectId
|
|
157
|
-
? and(eq(schema.memories.type, 'fact'), eq(schema.memories.projectId, projectId))
|
|
158
|
-
: eq(schema.memories.type, 'fact');
|
|
159
|
-
const facts = await db.select().from(schema.memories).where(where);
|
|
160
|
-
let active = 0;
|
|
161
|
-
let expired = 0;
|
|
162
|
-
let totalConfidence = 0;
|
|
163
|
-
let totalAge = 0;
|
|
164
|
-
for (const fact of facts) {
|
|
165
|
-
totalConfidence += fact.confidence || 0;
|
|
166
|
-
if (fact.validTo && new Date(fact.validTo) < now) {
|
|
167
|
-
expired++;
|
|
168
|
-
}
|
|
169
|
-
else if (!fact.validTo || new Date(fact.validTo) >= now) {
|
|
170
|
-
active++;
|
|
171
|
-
}
|
|
172
|
-
totalAge += (now.getTime() - new Date(fact.createdAt).getTime()) / (1000 * 60 * 60 * 24);
|
|
173
|
-
}
|
|
174
|
-
return {
|
|
175
|
-
totalFacts: facts.length,
|
|
176
|
-
activeFacts: active,
|
|
177
|
-
expiredFacts: expired,
|
|
178
|
-
avgConfidence: facts.length > 0 ? totalConfidence / facts.length : 0,
|
|
179
|
-
avgAge: facts.length > 0 ? totalAge / facts.length : 0,
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
catch (error) {
|
|
183
|
-
logger.error('Error getting fact stats', error);
|
|
184
|
-
return {
|
|
185
|
-
totalFacts: 0,
|
|
186
|
-
activeFacts: 0,
|
|
187
|
-
expiredFacts: 0,
|
|
188
|
-
avgConfidence: 0,
|
|
189
|
-
avgAge: 0,
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
//# sourceMappingURL=temporal-facts.js.map
|
package/dist/core/toon.d.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TOON Compression - Token-efficient memory format
|
|
3
|
-
*
|
|
4
|
-
* Compact format for memory context using abbreviated notation.
|
|
5
|
-
* Achieves efficient token usage for context injection.
|
|
6
|
-
*
|
|
7
|
-
* Format:
|
|
8
|
-
* {
|
|
9
|
-
* m:[type], // memory type (1-2 chars)
|
|
10
|
-
* c:"...", // content (truncated)
|
|
11
|
-
* t:[], // tags (array)
|
|
12
|
-
* d:123 // days ago
|
|
13
|
-
* }
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Compress a memory to TOON format
|
|
17
|
-
*/
|
|
18
|
-
export declare function compressForContext(content: string): string;
|
|
19
|
-
/**
|
|
20
|
-
* Decompress TOON back to readable format
|
|
21
|
-
*/
|
|
22
|
-
export declare function decompressFromContext(toonString: string): string;
|
|
23
|
-
/**
|
|
24
|
-
* Estimate compression ratio
|
|
25
|
-
*/
|
|
26
|
-
export declare function estimateCompressionRatio(content: string): number;
|
|
27
|
-
/**
|
|
28
|
-
* Check if content is JSON
|
|
29
|
-
*/
|
|
30
|
-
export declare function isJson(content: string): boolean;
|
|
31
|
-
/**
|
|
32
|
-
* Check if content is TOON format
|
|
33
|
-
*/
|
|
34
|
-
export declare function isToon(content: string): boolean;
|
|
35
|
-
/**
|
|
36
|
-
* Count tokens (rough estimate)
|
|
37
|
-
*/
|
|
38
|
-
export declare function estimateTokens(text: string): number;
|
|
39
|
-
/**
|
|
40
|
-
* Truncate to token budget
|
|
41
|
-
*/
|
|
42
|
-
export declare function truncateToTokenBudget(content: string, maxTokens: number): string;
|
|
43
|
-
//# sourceMappingURL=toon.d.ts.map
|