squish-memory 1.0.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +146 -0
- package/CHANGELOG.md +202 -0
- package/README.md +192 -287
- 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 +46 -0
- package/bin/squish.mjs +33 -0
- package/config/mcp-migration-map.json +1 -6
- package/config/mcp-mode-semantics.json +10 -12
- package/config/mcp-remote-auth.json +3 -26
- package/config/mcp-universal.schema.json +5 -35
- package/config/settings.json +78 -22
- 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/core/algorithms/index.ts +39 -0
- 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/core/embeddings/local-embeddings.ts +12 -0
- 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/core/lib/db-client.ts +168 -0
- package/core/lib/parse-embedding.ts +59 -0
- package/core/lib/schemas.ts +102 -0
- 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/core/memory/index.ts +11 -0
- 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/core/places/index.ts +14 -0
- 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 +581 -0
- package/core/scheduler/heartbeat.ts +91 -0
- package/core/scheduler/index.ts +8 -0
- 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/core/search/index.ts +4 -0
- 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/core/session/index.ts +7 -0
- 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/core/snapshots/cleanup.ts +13 -0
- 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/core/summarization/cleanup.ts +13 -0
- 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/core/utils/vector-operations.ts +135 -0
- package/core/utils/version-management.ts +74 -0
- package/core/worker.ts +324 -0
- package/db/adapter.ts +215 -0
- package/db/bootstrap.ts +1055 -0
- 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/dist/config.d.ts +61 -14
- package/dist/config.js +159 -139
- package/dist/core/adapters/config/claude-code.d.ts +45 -0
- package/dist/core/adapters/config/claude-code.js +113 -0
- package/dist/core/adapters/config/cursor.d.ts +26 -0
- package/dist/core/adapters/config/cursor.js +74 -0
- package/dist/core/adapters/config/opencode.d.ts +23 -0
- package/dist/core/adapters/config/opencode.js +73 -0
- package/dist/core/adapters/config/windsurf.d.ts +26 -0
- package/dist/core/adapters/config/windsurf.js +74 -0
- package/dist/core/adapters/index.d.ts +45 -0
- package/dist/core/adapters/index.js +84 -0
- package/dist/core/adapters/scripts/install-adapter.d.ts +19 -0
- package/dist/core/adapters/scripts/install-adapter.js +149 -0
- package/dist/core/adapters/timeline.d.ts +23 -0
- package/dist/core/adapters/timeline.js +88 -0
- package/dist/core/adapters/types.d.ts +137 -0
- package/dist/core/adapters/types.js +50 -0
- package/dist/core/agent-preferences.d.ts +16 -0
- package/dist/core/agent-preferences.js +124 -0
- package/dist/{algorithms → core/algorithms}/analytics/token-estimator.d.ts +1 -1
- package/dist/{algorithms → core/algorithms}/analytics/token-estimator.js +3 -3
- package/dist/{algorithms → core/algorithms}/detection/semantic-ranker.d.ts +1 -1
- package/dist/{algorithms → core/algorithms}/detection/semantic-ranker.js +1 -1
- package/dist/{algorithms → core/algorithms}/detection/two-stage-detector.d.ts +1 -1
- package/dist/{algorithms → core/algorithms}/detection/two-stage-detector.js +7 -10
- package/dist/{algorithms → core/algorithms}/handlers/approve-merge.js +4 -4
- package/dist/{algorithms → core/algorithms}/handlers/detect-duplicates.js +3 -3
- package/dist/{algorithms → core/algorithms}/handlers/get-stats.js +3 -3
- package/dist/{algorithms → core/algorithms}/handlers/list-proposals.js +3 -3
- package/dist/{algorithms → core/algorithms}/handlers/preview-merge.js +3 -3
- package/dist/{algorithms → core/algorithms}/handlers/reject-merge.js +3 -3
- package/dist/{algorithms → core/algorithms}/handlers/reverse-merge.js +3 -3
- package/dist/core/algorithms/index.d.ts +21 -0
- package/dist/core/algorithms/index.js +26 -0
- package/dist/core/algorithms/operations/cache-maintenance.d.ts +12 -0
- package/dist/core/algorithms/operations/cache-maintenance.js +157 -0
- package/dist/{algorithms → core/algorithms}/safety/safety-checks.d.ts +2 -6
- package/dist/{algorithms → core/algorithms}/strategies/merge-strategies.d.ts +19 -1
- package/dist/{algorithms → core/algorithms}/strategies/merge-strategies.js +74 -123
- package/dist/core/algorithms/types.d.ts +125 -0
- package/dist/core/algorithms/types.js +5 -0
- package/dist/core/associations.d.ts +3 -2
- package/dist/core/associations.js +37 -2
- package/dist/core/autosave.d.ts +19 -0
- package/dist/core/autosave.js +16 -0
- package/dist/core/beliefs/decay.d.ts +27 -0
- package/dist/core/beliefs/decay.js +217 -0
- package/dist/core/beliefs/extractor.d.ts +9 -0
- package/dist/core/beliefs/extractor.js +113 -0
- package/dist/core/beliefs/store.d.ts +46 -0
- package/dist/core/beliefs/store.js +466 -0
- package/dist/core/beliefs/types.d.ts +28 -0
- package/dist/core/beliefs/types.js +2 -0
- package/dist/core/commands/mcp-server.d.ts +2 -0
- package/dist/core/commands/mcp-server.js +6 -0
- package/dist/core/commands/remember.d.ts +24 -0
- package/dist/core/commands/remember.js +144 -0
- package/dist/core/compression.d.ts +45 -0
- package/dist/core/compression.js +160 -0
- package/dist/core/context/agent-context.d.ts +106 -0
- package/dist/core/context/agent-context.js +274 -0
- package/dist/core/{context-paging.d.ts → context/context-paging.d.ts} +2 -12
- package/dist/core/{context-paging.js → context/context-paging.js} +19 -39
- package/dist/core/context/context-window.d.ts +40 -0
- package/dist/core/context/context-window.js +177 -0
- package/dist/core/context/context.js +22 -0
- package/dist/core/embeddings/embeddings.d.ts +29 -0
- package/dist/core/embeddings/embeddings.js +546 -0
- package/dist/core/embeddings/google-multimodal.js +6 -2
- package/dist/core/embeddings/local-embeddings.d.ts +11 -0
- package/dist/core/embeddings/local-embeddings.js +11 -0
- package/dist/core/embeddings/qmd-client.js +1 -1
- package/dist/core/embeddings/transformers-local.d.ts +64 -0
- package/dist/core/embeddings/transformers-local.js +213 -0
- package/dist/core/embeddings.d.ts +1 -28
- package/dist/core/embeddings.js +2 -401
- package/dist/core/error-handling.d.ts +63 -0
- package/dist/core/error-handling.js +173 -0
- package/dist/core/graph/entity-deduplicator.d.ts +24 -0
- package/dist/core/graph/entity-deduplicator.js +183 -0
- package/dist/core/graph/graph-builder.d.ts +46 -0
- package/dist/core/graph/graph-builder.js +174 -0
- package/dist/core/graph/graph-traversal.d.ts +80 -0
- package/dist/core/graph/graph-traversal.js +315 -0
- package/dist/core/graph/index.d.ts +19 -0
- package/dist/core/graph/index.js +13 -0
- package/dist/core/graph/llm-entity-extractor.d.ts +49 -0
- package/dist/core/graph/llm-entity-extractor.js +313 -0
- package/dist/core/graph/multi-hop-retrieval.d.ts +48 -0
- package/dist/core/graph/multi-hop-retrieval.js +215 -0
- package/dist/core/graph/relationship-extractor.d.ts +48 -0
- package/dist/core/graph/relationship-extractor.js +351 -0
- package/dist/core/hooks/agent-hooks.d.ts +83 -0
- package/dist/core/hooks/agent-hooks.js +521 -0
- package/dist/core/hooks/auto-tagger.d.ts +19 -0
- package/dist/core/hooks/auto-tagger.js +155 -0
- package/dist/core/hooks/capture-filter.d.ts +41 -0
- package/dist/core/hooks/capture-filter.js +128 -0
- package/dist/core/hot-cache.d.ts +86 -0
- package/dist/core/hot-cache.js +285 -0
- package/dist/core/index.d.ts +9 -9
- package/dist/core/index.js +9 -12
- package/dist/core/{agent-memory.js → ingestion/agent-memory.js} +5 -7
- package/dist/core/{core-memory.d.ts → ingestion/core-memory.d.ts} +2 -2
- package/dist/core/{core-memory.js → ingestion/core-memory.js} +7 -7
- package/dist/core/ingestion/learnings.d.ts +57 -0
- package/dist/core/ingestion/learnings.js +205 -0
- package/dist/core/ingestion/signal-engine.d.ts +41 -0
- package/dist/core/ingestion/signal-engine.js +201 -0
- package/dist/core/integrations/obsidian-vault.d.ts +31 -0
- package/dist/core/integrations/obsidian-vault.js +156 -0
- package/dist/core/lib/db-client.d.ts +114 -0
- package/dist/core/lib/db-client.js +130 -0
- package/dist/core/lib/parse-embedding.d.ts +9 -0
- package/dist/core/lib/parse-embedding.js +58 -0
- package/dist/core/lib/schemas.d.ts +132 -0
- package/dist/core/lib/schemas.js +87 -0
- package/dist/core/lib/types.d.ts +45 -0
- package/dist/core/lib/types.js +6 -0
- package/dist/core/{utils.d.ts → lib/utils.d.ts} +5 -0
- package/dist/core/lib/utils.js +145 -0
- package/dist/core/lib/validation.d.ts +38 -0
- package/dist/core/lib/validation.js +151 -0
- package/dist/core/lifecycle.d.ts +7 -1
- package/dist/core/lifecycle.js +152 -42
- package/dist/core/logger.d.ts +1 -0
- package/dist/core/logger.js +13 -1
- package/dist/core/mcp/tools.d.ts +0 -2
- package/dist/core/mcp/tools.js +35 -90
- package/dist/core/mcp/types.d.ts +25 -253
- package/dist/core/mcp/types.js +2 -2
- package/dist/core/memory/categorizer.js +2 -0
- package/dist/core/memory/conflict-detector.js +1 -1
- package/dist/core/memory/consolidation.d.ts +1 -10
- package/dist/core/memory/consolidation.js +4 -39
- package/dist/core/memory/context-collector.js +1 -1
- package/dist/core/memory/edit-workflow.js +1 -1
- package/dist/core/memory/entity-extractor.d.ts +4 -0
- package/dist/core/memory/entity-extractor.js +30 -16
- package/dist/core/memory/entity-resolver.js +7 -7
- package/dist/core/memory/explain.d.ts +18 -0
- package/dist/core/memory/explain.js +92 -0
- package/dist/core/memory/fact-deriver.d.ts +31 -0
- package/dist/core/memory/fact-deriver.js +236 -0
- package/dist/core/memory/fact-extractor.js +12 -12
- package/dist/core/memory/feedback-tracker.js +1 -1
- package/dist/core/memory/hooks.d.ts +88 -0
- package/dist/core/memory/hooks.js +174 -0
- package/dist/core/memory/hybrid-retrieval.d.ts +14 -16
- package/dist/core/memory/hybrid-retrieval.js +25 -127
- package/dist/core/memory/hybrid-scorer.js +6 -23
- package/dist/core/memory/hybrid-search.d.ts +9 -11
- package/dist/core/memory/hybrid-search.js +496 -273
- package/dist/core/memory/importance.d.ts +2 -24
- package/dist/core/memory/importance.js +7 -91
- package/dist/core/memory/index.d.ts +1 -0
- package/dist/core/memory/index.js +1 -0
- package/dist/core/memory/loader.d.ts +31 -0
- package/dist/core/memory/loader.js +141 -0
- package/dist/core/memory/markdown/markdown-storage.d.ts +72 -0
- package/dist/core/memory/markdown/markdown-storage.js +243 -0
- package/dist/core/memory/memories.d.ts +23 -19
- package/dist/core/memory/memories.js +243 -228
- package/dist/core/memory/memory-lifecycle.d.ts +8 -0
- package/dist/core/memory/memory-lifecycle.js +47 -0
- package/dist/core/memory/migrate.d.ts +21 -0
- package/dist/core/memory/migrate.js +134 -0
- package/dist/core/memory/normalization.d.ts +7 -0
- package/dist/core/memory/normalization.js +26 -0
- package/dist/core/memory/path-strengthener.d.ts +39 -0
- package/dist/core/memory/path-strengthener.js +150 -0
- package/dist/core/memory/progressive-disclosure.js +1 -1
- package/dist/core/memory/query-processor.js +37 -3
- package/dist/core/memory/query-rewriter.js +9 -9
- package/dist/core/memory/retrieval-feedback.d.ts +70 -0
- package/dist/core/memory/retrieval-feedback.js +213 -0
- package/dist/core/memory/serialization.d.ts +4 -0
- package/dist/core/memory/serialization.js +49 -0
- package/dist/core/memory/stale-cleaner.d.ts +26 -0
- package/dist/core/memory/stale-cleaner.js +97 -0
- package/dist/core/memory/stats.d.ts +15 -0
- package/dist/core/memory/stats.js +69 -13
- package/dist/core/memory/temporal-facts.js +21 -0
- package/dist/core/memory/trigger-detector.d.ts +8 -1
- package/dist/core/memory/trigger-detector.js +42 -5
- package/dist/core/memory/write-gate.js +1 -1
- package/dist/core/places/index.d.ts +14 -0
- package/dist/core/places/index.js +14 -0
- package/dist/core/places/memory-places.d.ts +68 -0
- package/dist/core/places/memory-places.js +261 -0
- package/dist/core/places/places.d.ts +88 -0
- package/dist/core/places/places.js +314 -0
- package/dist/core/places/rules.d.ts +74 -0
- package/dist/core/places/rules.js +240 -0
- package/dist/core/places/walking.d.ts +56 -0
- package/dist/core/places/walking.js +121 -0
- package/dist/core/projects.d.ts +5 -0
- package/dist/core/projects.js +47 -18
- package/dist/core/responses.d.ts +96 -0
- package/dist/core/responses.js +122 -0
- package/dist/core/runtime/trust-report.d.ts +102 -0
- package/dist/core/runtime/trust-report.js +107 -0
- package/dist/core/runtime/trust-state.d.ts +12 -0
- package/dist/core/runtime/trust-state.js +309 -0
- package/dist/core/scheduler/cron-scheduler.d.ts +1 -1
- package/dist/core/scheduler/cron-scheduler.js +193 -10
- package/dist/core/scheduler/index.d.ts +1 -1
- package/dist/core/scheduler/index.js +1 -1
- package/dist/core/scheduler/job-runner.js +2 -2
- package/dist/core/search/conversations.js +40 -42
- package/dist/core/search/entities.js +6 -9
- package/dist/core/search/graph-boost.d.ts +7 -0
- package/dist/core/search/graph-boost.js +23 -0
- package/dist/core/search/qmd-wrapper.d.ts +36 -0
- package/dist/core/search/qmd-wrapper.js +58 -0
- package/dist/core/security/encrypt.d.ts +6 -0
- package/dist/core/security/encrypt.js +47 -0
- package/dist/core/{governance.d.ts → security/governance.d.ts} +6 -1
- package/dist/core/security/governance.js +79 -0
- package/dist/core/session/auto-load.js +34 -9
- package/dist/core/session/entity-tracker.d.ts +62 -0
- package/dist/core/session/entity-tracker.js +287 -0
- package/dist/core/session/index.d.ts +1 -1
- package/dist/core/session/index.js +1 -1
- package/dist/core/session/reference-resolver.d.ts +26 -0
- package/dist/core/session/reference-resolver.js +121 -0
- package/dist/core/{session-hooks → session}/self-iteration-job.d.ts +15 -0
- package/dist/core/{session-hooks → session}/self-iteration-job.js +195 -90
- package/dist/core/session/working-set.d.ts +50 -0
- package/dist/core/session/working-set.js +212 -0
- package/dist/core/snapshots/creation.d.ts +2 -8
- package/dist/core/snapshots/creation.js +3 -12
- package/dist/core/{cache.js → storage/cache.js} +2 -2
- package/dist/core/utils/memory-operations.js +1 -1
- package/dist/core/utils/summarization-helpers.d.ts +0 -4
- package/dist/core/utils/summarization-helpers.js +1 -6
- package/dist/core/utils/vector-operations.d.ts +71 -0
- package/dist/core/utils/vector-operations.js +129 -0
- package/dist/db/adapter.d.ts +3 -3
- package/dist/db/adapter.js +99 -88
- package/dist/db/bootstrap.d.ts +2 -0
- package/dist/db/bootstrap.js +921 -674
- package/dist/{drizzle → db/drizzle}/schema-sqlite.d.ts +775 -25
- package/dist/{drizzle → db/drizzle}/schema-sqlite.js +170 -24
- package/dist/{drizzle → db/drizzle}/schema.d.ts +731 -32
- package/dist/{drizzle → db/drizzle}/schema.js +192 -32
- package/dist/db/drizzle.config.d.ts +3 -0
- package/dist/db/drizzle.config.js +12 -0
- package/dist/db/index.d.ts +1 -5
- package/dist/db/index.js +51 -8
- package/dist/db/migrations/associations.d.ts +6 -0
- package/dist/db/migrations/associations.js +29 -0
- package/dist/db/migrations/beliefs.d.ts +10 -0
- package/dist/db/migrations/beliefs.js +76 -0
- package/dist/db/migrations/core-memory.d.ts +6 -0
- package/dist/db/migrations/core-memory.js +29 -0
- package/dist/db/migrations/fts.d.ts +6 -0
- package/dist/db/migrations/fts.js +52 -0
- package/dist/db/migrations/index.d.ts +25 -0
- package/dist/db/migrations/index.js +51 -0
- package/dist/db/migrations/indexes.d.ts +6 -0
- package/dist/db/migrations/indexes.js +30 -0
- package/dist/db/migrations/learnings.d.ts +7 -0
- package/dist/db/migrations/learnings.js +26 -0
- package/dist/db/migrations/maintenance.d.ts +6 -0
- package/dist/db/migrations/maintenance.js +61 -0
- package/dist/db/migrations/memories.d.ts +7 -0
- package/dist/db/migrations/memories.js +16 -0
- package/dist/db/migrations/memory-places.d.ts +6 -0
- package/dist/db/migrations/memory-places.js +29 -0
- package/dist/db/migrations/places.d.ts +6 -0
- package/dist/db/migrations/places.js +43 -0
- package/dist/db/migrations/projects.d.ts +3 -0
- package/dist/db/migrations/projects.js +13 -0
- package/dist/db/migrations/tier-conversion.d.ts +7 -0
- package/dist/db/migrations/tier-conversion.js +20 -0
- package/dist/db/neon.d.ts +8 -0
- package/dist/db/neon.js +20 -0
- package/dist/db/schema/beliefs.d.ts +9 -0
- package/dist/db/schema/beliefs.js +46 -0
- package/dist/db/schema/generator.d.ts +38 -0
- package/dist/db/schema/generator.js +108 -0
- package/dist/db/schema/index.d.ts +39 -0
- package/dist/db/schema/index.js +51 -0
- package/dist/db/schema/learnings.d.ts +7 -0
- package/dist/db/schema/learnings.js +30 -0
- package/dist/db/schema/memories.d.ts +7 -0
- package/dist/db/schema/memories.js +81 -0
- package/dist/db/schema/projects.d.ts +4 -0
- package/dist/db/schema/projects.js +31 -0
- package/dist/db/schema/tables/context-sessions.d.ts +9 -0
- package/dist/db/schema/tables/context-sessions.js +37 -0
- package/dist/db/schema/tables/conversations.d.ts +9 -0
- package/dist/db/schema/tables/conversations.js +47 -0
- package/dist/db/schema/tables/core-memory.d.ts +9 -0
- package/dist/db/schema/tables/core-memory.js +41 -0
- package/dist/db/schema/tables/entities.d.ts +9 -0
- package/dist/db/schema/tables/entities.js +39 -0
- package/dist/db/schema/tables/entity-relations.d.ts +9 -0
- package/dist/db/schema/tables/entity-relations.js +31 -0
- package/dist/db/schema/tables/learnings.d.ts +9 -0
- package/dist/db/schema/tables/learnings.js +66 -0
- package/dist/db/schema/tables/memories.d.ts +9 -0
- package/dist/db/schema/tables/memories.js +161 -0
- package/dist/db/schema/tables/memory-associations.d.ts +9 -0
- package/dist/db/schema/tables/memory-associations.js +39 -0
- package/dist/db/schema/tables/memory-hash-cache.d.ts +9 -0
- package/dist/db/schema/tables/memory-hash-cache.js +29 -0
- package/dist/db/schema/tables/memory-merge-history.d.ts +9 -0
- package/dist/db/schema/tables/memory-merge-history.js +33 -0
- package/dist/db/schema/tables/memory-merge-proposals.d.ts +9 -0
- package/dist/db/schema/tables/memory-merge-proposals.js +39 -0
- package/dist/db/schema/tables/messages.d.ts +9 -0
- package/dist/db/schema/tables/messages.js +41 -0
- package/dist/db/schema/tables/namespaces.d.ts +9 -0
- package/dist/db/schema/tables/namespaces.js +37 -0
- package/dist/db/schema/tables/projects.d.ts +9 -0
- package/dist/db/schema/tables/projects.js +31 -0
- package/dist/db/schema/tables/users.d.ts +9 -0
- package/dist/db/schema/tables/users.js +27 -0
- package/dist/db/schema.d.ts +1 -1
- package/dist/db/schema.js +2 -2
- package/dist/db/supabase.d.ts +9 -0
- package/dist/db/supabase.js +24 -0
- package/dist/packages/mcp/src/index.d.ts +3 -0
- package/dist/packages/mcp/src/index.js +733 -0
- package/mcp.json.example +8 -0
- package/package.json +132 -173
- 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 +877 -0
- package/packages/mcp/tsconfig.json +20 -0
- package/skills/squish-memory/SKILL.md +107 -114
- package/skills/squish-memory/install.sh +3 -3
- package/skills/squish-memory/{claude-desktop.json → references/claude-desktop.json} +12 -12
- package/skills/squish-memory/{openclaw.json → references/openclaw.json} +13 -13
- package/skills/squish-memory/{opencode.json → references/opencode.json} +14 -14
- package/.claude-plugin/marketplace.json +0 -20
- package/.claude-plugin/plugin.json +0 -32
- package/.env.mcp.example +0 -60
- package/.mcp.json +0 -11
- package/QUICK-START.md +0 -71
- package/bin/squish-add.mjs +0 -32
- package/bin/squish-rm.mjs +0 -21
- package/commands/context-paging.md +0 -51
- package/commands/context-status.md +0 -22
- package/commands/context.md +0 -5
- package/commands/core-memory.md +0 -56
- package/commands/health.md +0 -5
- package/commands/init.md +0 -39
- package/commands/merge.md +0 -113
- package/commands/observe.md +0 -5
- package/commands/recall.md +0 -5
- package/commands/remember.md +0 -11
- package/commands/search.md +0 -10
- package/config/mcp-cli-fallback-policy.json +0 -22
- package/config/mcp.json +0 -38
- package/config/plugin-manifest.json +0 -152
- package/config/plugin-manifest.schema.json +0 -244
- package/config/remote-memory-policy.json +0 -32
- package/dist/api/web/index.d.ts +0 -3
- package/dist/api/web/index.js +0 -4
- package/dist/api/web/web-server.d.ts +0 -3
- package/dist/api/web/web-server.js +0 -6
- package/dist/api/web/web.d.ts +0 -4
- package/dist/api/web/web.js +0 -639
- package/dist/commands/managed-sync.d.ts +0 -10
- package/dist/commands/managed-sync.js +0 -64
- package/dist/commands/mcp-server.d.ts +0 -3
- package/dist/commands/mcp-server.js +0 -393
- package/dist/core/context.js +0 -24
- package/dist/core/governance.js +0 -64
- package/dist/core/local-embeddings.d.ts +0 -6
- package/dist/core/local-embeddings.js +0 -20
- 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/observations.d.ts +0 -26
- package/dist/core/observations.js +0 -110
- package/dist/core/requirements.d.ts +0 -20
- package/dist/core/requirements.js +0 -35
- package/dist/core/search/qmd-search.d.ts +0 -61
- package/dist/core/search/qmd-search.js +0 -178
- package/dist/core/snapshots.d.ts +0 -29
- package/dist/core/snapshots.js +0 -220
- package/dist/core/sync/qmd-sync.d.ts +0 -106
- package/dist/core/sync/qmd-sync.js +0 -213
- package/dist/core/utils.js +0 -74
- package/dist/index.d.ts +0 -19
- package/dist/index.js +0 -997
- 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/hooks/hooks.json +0 -52
- package/hooks/post-tool-use.js +0 -26
- package/hooks/session-end.js +0 -28
- package/hooks/session-start.js +0 -33
- package/hooks/user-prompt-submit.js +0 -26
- package/hooks/utils.js +0 -153
- package/npx-installer.js +0 -208
- package/packages/plugin-claude-code/README.md +0 -73
- package/packages/plugin-claude-code/dist/plugin-wrapper.d.ts +0 -35
- package/packages/plugin-claude-code/dist/plugin-wrapper.js +0 -191
- package/packages/plugin-claude-code/package.json +0 -31
- package/packages/plugin-openclaw/README.md +0 -70
- package/packages/plugin-openclaw/dist/index.d.ts +0 -49
- package/packages/plugin-openclaw/dist/index.js +0 -262
- package/packages/plugin-openclaw/openclaw.plugin.json +0 -94
- package/packages/plugin-openclaw/package.json +0 -31
- package/packages/plugin-opencode/install.mjs +0 -217
- package/packages/plugin-opencode/package.json +0 -21
- package/plugin.json +0 -32
- package/scripts/build-release.sh +0 -36
- package/scripts/check-secrets.js +0 -132
- package/scripts/db/check-db.mjs +0 -88
- package/scripts/db/fix-all-columns.mjs +0 -52
- package/scripts/db/fix-schema-all.mjs +0 -55
- package/scripts/db/fix-schema-full.mjs +0 -46
- package/scripts/db/fix-schema.mjs +0 -38
- package/scripts/db/init-db.mjs +0 -13
- package/scripts/db/recreate-db.mjs +0 -14
- package/scripts/generate-mcp.mjs +0 -264
- package/scripts/github-release.sh +0 -77
- package/scripts/init-dirs.mjs +0 -13
- package/scripts/install-interactive.mjs +0 -677
- package/scripts/install-mcp.mjs +0 -116
- package/scripts/install-plugin.mjs +0 -415
- package/scripts/install-web.sh +0 -120
- package/scripts/install.mjs +0 -340
- package/scripts/openclaw-bootstrap.mjs +0 -127
- package/scripts/package-release.sh +0 -71
- package/scripts/remote-preflight.mjs +0 -62
- package/scripts/squish-fallback.mjs +0 -132
- package/scripts/test/test-all-systems.mjs +0 -139
- package/scripts/test/test-memory-system.mjs +0 -139
- package/scripts/test/test-v0.5.0.mjs +0 -210
- package/scripts/test-interactive.mjs +0 -131
- package/scripts/verify-mcp.mjs +0 -214
- package/skills/memory-guide/SKILL.md +0 -332
- package/skills/squish-cli/SKILL.md +0 -240
- package/skills/squish-mcp/SKILL.md +0 -355
- package/skills/squish-memory/install.mjs +0 -335
- package/skills/squish-memory/skill.json +0 -32
- /package/dist/{algorithms → core/algorithms}/detection/hash-filters.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/detection/hash-filters.js +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/approve-merge.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/detect-duplicates.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/get-stats.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/list-proposals.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/preview-merge.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/reject-merge.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/reverse-merge.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/safety/safety-checks.js +0 -0
- /package/dist/{algorithms → core/algorithms}/utils/response-builder.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/utils/response-builder.js +0 -0
- /package/dist/core/{context.d.ts → context/context.d.ts} +0 -0
- /package/dist/core/{agent-memory.d.ts → ingestion/agent-memory.d.ts} +0 -0
- /package/dist/core/{privacy.d.ts → security/privacy.d.ts} +0 -0
- /package/dist/core/{privacy.js → security/privacy.js} +0 -0
- /package/dist/core/{secret-detector.d.ts → security/secret-detector.d.ts} +0 -0
- /package/dist/core/{secret-detector.js → security/secret-detector.js} +0 -0
- /package/dist/core/{session-hooks → session}/session-hooks.d.ts +0 -0
- /package/dist/core/{session-hooks → session}/session-hooks.js +0 -0
- /package/dist/core/{cache.d.ts → storage/cache.d.ts} +0 -0
- /package/dist/core/{database.d.ts → storage/database.d.ts} +0 -0
- /package/dist/core/{database.js → storage/database.js} +0 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UAM Adapter Types
|
|
3
|
+
*
|
|
4
|
+
* Universal Agent Memory - Adapter interfaces for different AI coding agents.
|
|
5
|
+
* Each agent (Claude Code, OpenCode, Cursor, Windsurf, etc.) has its own adapter
|
|
6
|
+
* that defines how to integrate with Squish.
|
|
7
|
+
*
|
|
8
|
+
* Key concepts:
|
|
9
|
+
* - Agent adapters use native config formats where possible
|
|
10
|
+
* - Hooks are explicit (calls squish_learn) not hidden
|
|
11
|
+
* - Uses existing MCP tools (squish_context, squish_learn)
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
/** Agent types supported by UAM */
|
|
15
|
+
export type AgentType = 'claude-code' | 'opencode' | 'cursor' | 'windsurf' | 'codex' | 'generic';
|
|
16
|
+
/** Hook event types */
|
|
17
|
+
export type HookEvent = 'onSessionStart' | 'onSessionEnd' | 'onToolCall' | 'onPreCompact' | 'onPostCompact';
|
|
18
|
+
/** 3-Layer depth for progressive disclosure */
|
|
19
|
+
export type TimelineDepth = 'index' | 'timeline' | 'detail';
|
|
20
|
+
/** Memory context for session start */
|
|
21
|
+
export interface SessionContextInput {
|
|
22
|
+
project: string;
|
|
23
|
+
mode: 'startup' | 'resume' | 'compact';
|
|
24
|
+
sessionId?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SessionContextOutput {
|
|
27
|
+
mode: string;
|
|
28
|
+
project: string;
|
|
29
|
+
memories: string;
|
|
30
|
+
count: number;
|
|
31
|
+
snapshot?: {
|
|
32
|
+
id: string;
|
|
33
|
+
content: string;
|
|
34
|
+
} | null;
|
|
35
|
+
}
|
|
36
|
+
/** Tool call observation */
|
|
37
|
+
export interface ToolObservationInput {
|
|
38
|
+
toolName: string;
|
|
39
|
+
toolInput: Record<string, unknown>;
|
|
40
|
+
toolResult: unknown;
|
|
41
|
+
project: string;
|
|
42
|
+
sessionId?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface ToolObservationOutput {
|
|
45
|
+
memoryId: string;
|
|
46
|
+
category: 'reading' | 'modification' | 'commit' | 'testing' | 'command' | 'search' | 'planning' | 'other';
|
|
47
|
+
content: string;
|
|
48
|
+
}
|
|
49
|
+
/** Agent configuration */
|
|
50
|
+
export interface AgentConfig {
|
|
51
|
+
/** Unique agent identifier */
|
|
52
|
+
agentId: string;
|
|
53
|
+
/** Human-readable name */
|
|
54
|
+
name: string;
|
|
55
|
+
/** Agent type */
|
|
56
|
+
type: AgentType;
|
|
57
|
+
/** MCP server configuration */
|
|
58
|
+
mcp: {
|
|
59
|
+
command: string;
|
|
60
|
+
args: string[];
|
|
61
|
+
env?: Record<string, string>;
|
|
62
|
+
};
|
|
63
|
+
/** Hook patterns (native format for each agent) */
|
|
64
|
+
hooks?: {
|
|
65
|
+
sessionStart?: unknown;
|
|
66
|
+
sessionEnd?: unknown;
|
|
67
|
+
preCompact?: unknown;
|
|
68
|
+
postToolUse?: unknown;
|
|
69
|
+
};
|
|
70
|
+
/** Custom settings */
|
|
71
|
+
settings?: Record<string, unknown>;
|
|
72
|
+
}
|
|
73
|
+
/** Agent adapter interface */
|
|
74
|
+
export interface AgentAdapter {
|
|
75
|
+
/** Unique adapter ID */
|
|
76
|
+
id: string;
|
|
77
|
+
/** Agent type */
|
|
78
|
+
type: AgentType;
|
|
79
|
+
/** Human-readable name */
|
|
80
|
+
name: string;
|
|
81
|
+
/** Agent version (if known) */
|
|
82
|
+
version?: string;
|
|
83
|
+
/** Get session context for injection */
|
|
84
|
+
getSessionContext(input: SessionContextInput): Promise<SessionContextOutput>;
|
|
85
|
+
/** Record a tool observation */
|
|
86
|
+
recordObservation(input: ToolObservationInput): Promise<ToolObservationOutput>;
|
|
87
|
+
/** Get timeline (3-layer progressive disclosure) */
|
|
88
|
+
getTimeline(query: string, depth: TimelineDepth, limit: number): Promise<unknown[]>;
|
|
89
|
+
/** Check if this agent should capture this tool */
|
|
90
|
+
shouldCaptureTool(toolName: string): boolean;
|
|
91
|
+
/** Get raw config for native integration */
|
|
92
|
+
getNativeConfig(): AgentConfig;
|
|
93
|
+
}
|
|
94
|
+
/** Registry for managing adapters */
|
|
95
|
+
export interface AdapterRegistry {
|
|
96
|
+
/** Register a new adapter */
|
|
97
|
+
register(adapter: AgentAdapter): void;
|
|
98
|
+
/** Get adapter by type */
|
|
99
|
+
get(type: AgentType): AgentAdapter | undefined;
|
|
100
|
+
/** List all registered adapters */
|
|
101
|
+
list(): AgentAdapter[];
|
|
102
|
+
/** Load all adapters from config directory */
|
|
103
|
+
loadAll(configDir: string): Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
/** Zod schemas for validation */
|
|
106
|
+
export declare const SessionContextInputSchema: z.ZodObject<{
|
|
107
|
+
project: z.ZodString;
|
|
108
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
109
|
+
startup: "startup";
|
|
110
|
+
resume: "resume";
|
|
111
|
+
compact: "compact";
|
|
112
|
+
}>>;
|
|
113
|
+
sessionId: z.ZodOptional<z.ZodString>;
|
|
114
|
+
}, z.core.$strip>;
|
|
115
|
+
export declare const ToolObservationInputSchema: z.ZodObject<{
|
|
116
|
+
toolName: z.ZodString;
|
|
117
|
+
toolInput: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
118
|
+
toolResult: z.ZodUnknown;
|
|
119
|
+
project: z.ZodString;
|
|
120
|
+
sessionId: z.ZodOptional<z.ZodString>;
|
|
121
|
+
}, z.core.$strip>;
|
|
122
|
+
export declare const TimelineInputSchema: z.ZodObject<{
|
|
123
|
+
query: z.ZodString;
|
|
124
|
+
depth: z.ZodDefault<z.ZodEnum<{
|
|
125
|
+
index: "index";
|
|
126
|
+
timeline: "timeline";
|
|
127
|
+
detail: "detail";
|
|
128
|
+
}>>;
|
|
129
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
130
|
+
}, z.core.$strip>;
|
|
131
|
+
/** Tool category mapping */
|
|
132
|
+
export declare const TOOL_CATEGORIES: Record<string, ToolObservationOutput['category']>;
|
|
133
|
+
/**
|
|
134
|
+
* Categorize a tool call
|
|
135
|
+
*/
|
|
136
|
+
export declare function categorizeTool(toolName: string): ToolObservationOutput['category'];
|
|
137
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UAM Adapter Types
|
|
3
|
+
*
|
|
4
|
+
* Universal Agent Memory - Adapter interfaces for different AI coding agents.
|
|
5
|
+
* Each agent (Claude Code, OpenCode, Cursor, Windsurf, etc.) has its own adapter
|
|
6
|
+
* that defines how to integrate with Squish.
|
|
7
|
+
*
|
|
8
|
+
* Key concepts:
|
|
9
|
+
* - Agent adapters use native config formats where possible
|
|
10
|
+
* - Hooks are explicit (calls squish_learn) not hidden
|
|
11
|
+
* - Uses existing MCP tools (squish_context, squish_learn)
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
/** Zod schemas for validation */
|
|
15
|
+
export const SessionContextInputSchema = z.object({
|
|
16
|
+
project: z.string(),
|
|
17
|
+
mode: z.enum(['startup', 'resume', 'compact']).default('startup'),
|
|
18
|
+
sessionId: z.string().optional(),
|
|
19
|
+
});
|
|
20
|
+
export const ToolObservationInputSchema = z.object({
|
|
21
|
+
toolName: z.string(),
|
|
22
|
+
toolInput: z.record(z.string(), z.unknown()),
|
|
23
|
+
toolResult: z.unknown(),
|
|
24
|
+
project: z.string(),
|
|
25
|
+
sessionId: z.string().optional(),
|
|
26
|
+
});
|
|
27
|
+
export const TimelineInputSchema = z.object({
|
|
28
|
+
query: z.string(),
|
|
29
|
+
depth: z.enum(['index', 'timeline', 'detail']).default('index'),
|
|
30
|
+
limit: z.number().min(1).max(100).default(10),
|
|
31
|
+
});
|
|
32
|
+
/** Tool category mapping */
|
|
33
|
+
export const TOOL_CATEGORIES = {
|
|
34
|
+
'Read': 'reading',
|
|
35
|
+
'Write': 'modification',
|
|
36
|
+
'Edit': 'modification',
|
|
37
|
+
'Bash': 'command',
|
|
38
|
+
'grep': 'search',
|
|
39
|
+
'Glob': 'search',
|
|
40
|
+
'TodoWrite': 'planning',
|
|
41
|
+
'TodoRead': 'planning',
|
|
42
|
+
'Task': 'planning',
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Categorize a tool call
|
|
46
|
+
*/
|
|
47
|
+
export function categorizeTool(toolName) {
|
|
48
|
+
return TOOL_CATEGORIES[toolName] || 'other';
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Preferences - Accumulate and retrieve agent preferences from learnings
|
|
3
|
+
* Enables agents to learn and evolve over time
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Update agent preference from a learning
|
|
7
|
+
*/
|
|
8
|
+
export declare function updateAgentPreference(projectId: string, content: string, sourceMemoryId?: string): Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* Get all agent preferences for a project
|
|
11
|
+
*/
|
|
12
|
+
export declare function getAgentPreferences(projectId: string): Promise<Array<{
|
|
13
|
+
key: string;
|
|
14
|
+
value: string;
|
|
15
|
+
}>>;
|
|
16
|
+
//# sourceMappingURL=agent-preferences.d.ts.map
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Preferences - Accumulate and retrieve agent preferences from learnings
|
|
3
|
+
* Enables agents to learn and evolve over time
|
|
4
|
+
*/
|
|
5
|
+
import { getDb } from '../db/index.js';
|
|
6
|
+
import { eq, and } from 'drizzle-orm';
|
|
7
|
+
import { logger } from './logger.js';
|
|
8
|
+
/**
|
|
9
|
+
* Extract preference from learning content
|
|
10
|
+
* E.g., "Prefer bun over npm" -> key: "prefer_bun", value: "bun"
|
|
11
|
+
*/
|
|
12
|
+
function extractPreference(content) {
|
|
13
|
+
const patterns = [
|
|
14
|
+
// "Prefer X over Y"
|
|
15
|
+
/prefer\s+(\w+)\s+over\s+(\w+)/i,
|
|
16
|
+
// "Always use X"
|
|
17
|
+
/always\s+use\s+(\w+)/i,
|
|
18
|
+
// "Use X instead of Y"
|
|
19
|
+
/use\s+(\w+)\s+instead\s+of\s+(\w+)/i,
|
|
20
|
+
// "X is better than Y"
|
|
21
|
+
/(\w+)\s+is\s+better\s+than\s+(\w+)/i,
|
|
22
|
+
// "Don't use X"
|
|
23
|
+
/(?:don't|do not|never)\s+use\s+(\w+)/i,
|
|
24
|
+
];
|
|
25
|
+
for (const pattern of patterns) {
|
|
26
|
+
const match = content.match(pattern);
|
|
27
|
+
if (match) {
|
|
28
|
+
const key = `prefer_${match[1].toLowerCase()}`;
|
|
29
|
+
const value = match[2]?.toLowerCase() || 'true';
|
|
30
|
+
return { key, value };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Update agent preference from a learning
|
|
37
|
+
*/
|
|
38
|
+
export async function updateAgentPreference(projectId, content, sourceMemoryId) {
|
|
39
|
+
const preference = extractPreference(content);
|
|
40
|
+
if (!preference)
|
|
41
|
+
return;
|
|
42
|
+
try {
|
|
43
|
+
const db = getDb();
|
|
44
|
+
// Check if preference exists
|
|
45
|
+
const existing = await db.query.agentPreferences?.findFirst(and(eq(db.schema.agentPreferences.projectId, projectId), eq(db.schema.agentPreferences.key, preference.key))).catch(() => null);
|
|
46
|
+
if (existing) {
|
|
47
|
+
// Update existing preference
|
|
48
|
+
await db.update(db.schema.agentPreferences)
|
|
49
|
+
.set({
|
|
50
|
+
value: preference.value,
|
|
51
|
+
sourceMemoryId: sourceMemoryId,
|
|
52
|
+
usageCount: (existing.usageCount ?? 0) + 1,
|
|
53
|
+
lastUpdated: Math.floor(Date.now() / 1000)
|
|
54
|
+
})
|
|
55
|
+
.where(eq(db.schema.agentPreferences.id, existing.id))
|
|
56
|
+
.catch(() => {
|
|
57
|
+
// Fallback for SQLite which uses different table name
|
|
58
|
+
const sqlite = db._?.sqlite || db;
|
|
59
|
+
if (sqlite) {
|
|
60
|
+
sqlite.prepare(`
|
|
61
|
+
UPDATE agent_preferences
|
|
62
|
+
SET value = ?, source_memory_id = ?, usage_count = usage_count + 1, last_updated = ?
|
|
63
|
+
WHERE project_id = ? AND key = ?
|
|
64
|
+
`).run(preference.value, sourceMemoryId, Math.floor(Date.now() / 1000), projectId, preference.key);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
logger.info(`[AgentPrefs] Updated preference: ${preference.key} = ${preference.value}`);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// Insert new preference
|
|
71
|
+
const id = `pref_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
|
|
72
|
+
await db.insert(db.schema.agentPreferences)
|
|
73
|
+
.values({
|
|
74
|
+
id,
|
|
75
|
+
projectId,
|
|
76
|
+
key: preference.key,
|
|
77
|
+
value: preference.value,
|
|
78
|
+
sourceMemoryId: sourceMemoryId ?? null,
|
|
79
|
+
confidence: 0.5,
|
|
80
|
+
usageCount: 1
|
|
81
|
+
})
|
|
82
|
+
.catch(() => {
|
|
83
|
+
// Fallback for SQLite
|
|
84
|
+
const sqlite = db._?.sqlite || db;
|
|
85
|
+
if (sqlite) {
|
|
86
|
+
sqlite.prepare(`
|
|
87
|
+
INSERT INTO agent_preferences (id, project_id, key, value, source_memory_id, confidence, usage_count)
|
|
88
|
+
VALUES (?, ?, ?, ?, ?, 0.5, 1)
|
|
89
|
+
`).run(id, projectId, preference.key, preference.value, sourceMemoryId ?? null);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
logger.info(`[AgentPrefs] Created preference: ${preference.key} = ${preference.value}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
logger.warn(`[AgentPrefs] Failed to update preference:`, error);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get all agent preferences for a project
|
|
101
|
+
*/
|
|
102
|
+
export async function getAgentPreferences(projectId) {
|
|
103
|
+
try {
|
|
104
|
+
const db = getDb();
|
|
105
|
+
const results = await db.query.agentPreferences?.findMany({
|
|
106
|
+
where: eq(db.schema.agentPreferences.projectId, projectId)
|
|
107
|
+
}).catch(() => []);
|
|
108
|
+
if (results && results.length > 0) {
|
|
109
|
+
return results.map(p => ({ key: p.key, value: p.value }));
|
|
110
|
+
}
|
|
111
|
+
// Fallback for SQLite
|
|
112
|
+
const sqlite = db._?.sqlite || db;
|
|
113
|
+
if (sqlite) {
|
|
114
|
+
const rows = sqlite.prepare('SELECT key, value FROM agent_preferences WHERE project_id = ?').all(projectId);
|
|
115
|
+
return rows.map(r => ({ key: r.key, value: r.value }));
|
|
116
|
+
}
|
|
117
|
+
return [];
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
logger.warn(`[AgentPrefs] Failed to get preferences:`, error);
|
|
121
|
+
return [];
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=agent-preferences.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Token estimation for calculating context window savings from merges.
|
|
3
3
|
* Uses simple heuristic: 1 token ≈ 4 characters (can be upgraded to tiktoken for accuracy).
|
|
4
4
|
*/
|
|
5
|
-
import type { Memory } from '
|
|
5
|
+
import type { Memory } from '../../../db/drizzle/schema.js';
|
|
6
6
|
import type { MergedMemory } from '../strategies/merge-strategies.js';
|
|
7
7
|
export declare function estimateTokensSaved(sources: Memory[], merged: MergedMemory): number;
|
|
8
8
|
export declare function calculateProjectTokenSavings(projectId: string): Promise<{
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Token estimation for calculating context window savings from merges.
|
|
3
3
|
* Uses simple heuristic: 1 token ≈ 4 characters (can be upgraded to tiktoken for accuracy).
|
|
4
4
|
*/
|
|
5
|
-
import { getDb } from '
|
|
6
|
-
import { getSchema } from '
|
|
7
|
-
import { createDatabaseClient } from '
|
|
5
|
+
import { getDb } from '../../../db/index.js';
|
|
6
|
+
import { getSchema } from '../../../db/schema.js';
|
|
7
|
+
import { createDatabaseClient } from '../../../core/storage/database.js';
|
|
8
8
|
import { eq } from 'drizzle-orm';
|
|
9
9
|
function estimateTokensSimple(text) {
|
|
10
10
|
if (!text)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Semantic ranking using embeddings (Stage 2 of two-stage detection).
|
|
3
3
|
* Ranks candidates from Stage 1 by semantic similarity using cosine distance.
|
|
4
4
|
*/
|
|
5
|
-
import type { Memory } from '
|
|
5
|
+
import type { Memory } from '../../../db/drizzle/schema.js';
|
|
6
6
|
export interface RankedCandidate {
|
|
7
7
|
memoryId1: string;
|
|
8
8
|
memoryId2: string;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Semantic ranking using embeddings (Stage 2 of two-stage detection).
|
|
3
3
|
* Ranks candidates from Stage 1 by semantic similarity using cosine distance.
|
|
4
4
|
*/
|
|
5
|
-
import { cosineSimilarity } from '
|
|
5
|
+
import { cosineSimilarity } from '../../../core/utils/vector-operations.js';
|
|
6
6
|
function calculateConfidence(memory1, memory2, cosineSim) {
|
|
7
7
|
if (cosineSim >= 0.90) {
|
|
8
8
|
const factors = calculateConfidenceFactors(memory1, memory2);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Stage 1: Hash-based prefiltering (SimHash + MinHash)
|
|
5
5
|
* Stage 2: Semantic ranking using embeddings
|
|
6
6
|
*/
|
|
7
|
-
import type { Memory, MemoryType } from '
|
|
7
|
+
import type { Memory, MemoryType } from '../../../db/drizzle/schema.js';
|
|
8
8
|
import { analyzePair } from './semantic-ranker.js';
|
|
9
9
|
export interface MemoryPair {
|
|
10
10
|
memory1: Memory;
|
|
@@ -4,18 +4,15 @@
|
|
|
4
4
|
* Stage 1: Hash-based prefiltering (SimHash + MinHash)
|
|
5
5
|
* Stage 2: Semantic ranking using embeddings
|
|
6
6
|
*/
|
|
7
|
-
import { getEmbedding, getBatchEmbeddings } from '
|
|
7
|
+
import { getEmbedding, getBatchEmbeddings } from '../../../core/embeddings.js';
|
|
8
8
|
import { SimHashFilter, MinHashFilter, findCandidatePairs } from './hash-filters.js';
|
|
9
9
|
import { rankCandidates, analyzePair } from './semantic-ranker.js';
|
|
10
|
-
import { getDb } from '../../db/index.js';
|
|
11
|
-
import { getSchema } from '../../db/schema.js';
|
|
12
|
-
import { createDatabaseClient } from '../../core/database.js';
|
|
13
10
|
import { eq, and } from 'drizzle-orm';
|
|
14
11
|
import * as crypto from 'crypto';
|
|
12
|
+
import { getDbClient } from '../../../core/lib/db-client.js';
|
|
15
13
|
export async function detectDuplicates(options) {
|
|
16
14
|
const startTime = Date.now();
|
|
17
|
-
const db =
|
|
18
|
-
const schema = await getSchema();
|
|
15
|
+
const { db, schema } = await getDbClient();
|
|
19
16
|
let query = db.select().from(schema.memories);
|
|
20
17
|
if (options.projectId) {
|
|
21
18
|
query = query.where(eq(schema.memories.projectId, options.projectId));
|
|
@@ -239,8 +236,7 @@ export async function detectDuplicates(options) {
|
|
|
239
236
|
};
|
|
240
237
|
}
|
|
241
238
|
export async function analyzeMergePair(memoryId1, memoryId2) {
|
|
242
|
-
const db =
|
|
243
|
-
const schema = await getSchema();
|
|
239
|
+
const { db, schema } = await getDbClient();
|
|
244
240
|
const [memory1] = await db
|
|
245
241
|
.select()
|
|
246
242
|
.from(schema.memories)
|
|
@@ -271,6 +267,8 @@ function countByType(memories) {
|
|
|
271
267
|
decision: 0,
|
|
272
268
|
context: 0,
|
|
273
269
|
preference: 0,
|
|
270
|
+
reflection: 0,
|
|
271
|
+
note: 0,
|
|
274
272
|
};
|
|
275
273
|
for (const memory of memories) {
|
|
276
274
|
const type = memory.type;
|
|
@@ -281,8 +279,7 @@ function countByType(memories) {
|
|
|
281
279
|
return counts;
|
|
282
280
|
}
|
|
283
281
|
export async function getDetectionStats(projectId) {
|
|
284
|
-
const db =
|
|
285
|
-
const schema = await getSchema();
|
|
282
|
+
const { db, schema } = await getDbClient();
|
|
286
283
|
const memories = await db
|
|
287
284
|
.select()
|
|
288
285
|
.from(schema.memories)
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* Executes the approved merge in a single atomic transaction.
|
|
3
3
|
*/
|
|
4
4
|
import { randomUUID } from 'crypto';
|
|
5
|
-
import { getDb } from '
|
|
6
|
-
import { getSchema } from '
|
|
7
|
-
import { createDatabaseClient } from '
|
|
5
|
+
import { getDb } from '../../../db/index.js';
|
|
6
|
+
import { getSchema } from '../../../db/schema.js';
|
|
7
|
+
import { createDatabaseClient } from '../../../core/storage/database.js';
|
|
8
8
|
import { eq, inArray } from 'drizzle-orm';
|
|
9
9
|
import { mergeMemories } from '../strategies/merge-strategies.js';
|
|
10
10
|
import { estimateTokensSaved } from '../analytics/token-estimator.js';
|
|
11
|
-
import { getEmbedding } from '
|
|
11
|
+
import { getEmbedding } from '../../../core/embeddings.js';
|
|
12
12
|
export async function handleApproveMerge(input) {
|
|
13
13
|
try {
|
|
14
14
|
const { proposalId, reviewNotes } = input;
|
|
@@ -9,9 +9,9 @@ import { detectDuplicates } from '../detection/two-stage-detector.js';
|
|
|
9
9
|
import { runSafetyChecks } from '../safety/safety-checks.js';
|
|
10
10
|
import { mergeMemories } from '../strategies/merge-strategies.js';
|
|
11
11
|
import { estimateTokensSaved } from '../analytics/token-estimator.js';
|
|
12
|
-
import { getDb } from '
|
|
13
|
-
import { getSchema } from '
|
|
14
|
-
import { createDatabaseClient } from '
|
|
12
|
+
import { getDb } from '../../../db/index.js';
|
|
13
|
+
import { getSchema } from '../../../db/schema.js';
|
|
14
|
+
import { createDatabaseClient } from '../../../core/storage/database.js';
|
|
15
15
|
import { buildSuccessResponse, buildErrorResponse } from '../utils/response-builder.js';
|
|
16
16
|
/**
|
|
17
17
|
* Handle detect_duplicate_memories tool call
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Returns statistics about memory merges for a project
|
|
5
5
|
*/
|
|
6
|
-
import { getDb } from '
|
|
7
|
-
import { getSchema } from '
|
|
8
|
-
import { createDatabaseClient } from '
|
|
6
|
+
import { getDb } from '../../../db/index.js';
|
|
7
|
+
import { getSchema } from '../../../db/schema.js';
|
|
8
|
+
import { createDatabaseClient } from '../../../core/storage/database.js';
|
|
9
9
|
import { eq } from 'drizzle-orm';
|
|
10
10
|
import { calculateProjectTokenSavings, formatTokenCount } from '../analytics/token-estimator.js';
|
|
11
11
|
/**
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Lists pending merge proposals for user review
|
|
5
5
|
*/
|
|
6
|
-
import { getDb } from '
|
|
7
|
-
import { getSchema } from '
|
|
8
|
-
import { createDatabaseClient } from '
|
|
6
|
+
import { getDb } from '../../../db/index.js';
|
|
7
|
+
import { getSchema } from '../../../db/schema.js';
|
|
8
|
+
import { createDatabaseClient } from '../../../core/storage/database.js';
|
|
9
9
|
import { eq, desc } from 'drizzle-orm';
|
|
10
10
|
/**
|
|
11
11
|
* Handle list_merge_proposals tool call
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shows a preview of the merged result without executing the merge.
|
|
3
3
|
*/
|
|
4
|
-
import { getDb } from '
|
|
5
|
-
import { getSchema } from '
|
|
6
|
-
import { createDatabaseClient } from '
|
|
4
|
+
import { getDb } from '../../../db/index.js';
|
|
5
|
+
import { getSchema } from '../../../db/schema.js';
|
|
6
|
+
import { createDatabaseClient } from '../../../core/storage/database.js';
|
|
7
7
|
import { eq } from 'drizzle-orm';
|
|
8
8
|
import { estimateMergeSavingsPreview } from '../analytics/token-estimator.js';
|
|
9
9
|
import { mergeMemories } from '../strategies/merge-strategies.js';
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Rejects a merge proposal without executing it
|
|
5
5
|
*/
|
|
6
|
-
import { getDb } from '
|
|
7
|
-
import { getSchema } from '
|
|
8
|
-
import { createDatabaseClient } from '
|
|
6
|
+
import { getDb } from '../../../db/index.js';
|
|
7
|
+
import { getSchema } from '../../../db/schema.js';
|
|
8
|
+
import { createDatabaseClient } from '../../../core/storage/database.js';
|
|
9
9
|
import { eq } from 'drizzle-orm';
|
|
10
10
|
/**
|
|
11
11
|
* Handle reject_merge tool call
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Reverses/undoes a completed merge and restores original memories.
|
|
3
3
|
*/
|
|
4
|
-
import { getDb } from '
|
|
5
|
-
import { getSchema } from '
|
|
6
|
-
import { createDatabaseClient } from '
|
|
4
|
+
import { getDb } from '../../../db/index.js';
|
|
5
|
+
import { getSchema } from '../../../db/schema.js';
|
|
6
|
+
import { createDatabaseClient } from '../../../core/storage/database.js';
|
|
7
7
|
import { eq } from 'drizzle-orm';
|
|
8
8
|
export async function handleReverseMerge(input) {
|
|
9
9
|
try {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Merging Feature - Barrel Exports
|
|
3
|
+
*
|
|
4
|
+
* Provides a clean public API for memory merging functionality
|
|
5
|
+
*/
|
|
6
|
+
export * from './types.js';
|
|
7
|
+
export { detectDuplicates, analyzeMergePair, getDetectionStats } from './detection/two-stage-detector.js';
|
|
8
|
+
export { SimHashFilter, MinHashFilter, findCandidatePairs } from './detection/hash-filters.js';
|
|
9
|
+
export { rankCandidates, analyzePair } from './detection/semantic-ranker.js';
|
|
10
|
+
export { getMergeStrategy, mergeMemories, MERGE_STRATEGIES } from './strategies/merge-strategies.js';
|
|
11
|
+
export type { MergeStrategy, MergedMemory } from './strategies/merge-strategies.js';
|
|
12
|
+
export { runSafetyChecks, checkBlockers, formatSafetyResults, describeSafetyChecks } from './safety/safety-checks.js';
|
|
13
|
+
export { estimateTokensSaved, calculateProjectTokenSavings, estimateMergeSavingsPreview, getTokenStatistics, formatTokenCount, formatSavingsReport, } from './analytics/token-estimator.js';
|
|
14
|
+
export { handleDetectDuplicates } from './handlers/detect-duplicates.js';
|
|
15
|
+
export { handleListProposals } from './handlers/list-proposals.js';
|
|
16
|
+
export { handlePreviewMerge } from './handlers/preview-merge.js';
|
|
17
|
+
export { handleApproveMerge } from './handlers/approve-merge.js';
|
|
18
|
+
export { handleRejectMerge } from './handlers/reject-merge.js';
|
|
19
|
+
export { handleReverseMerge } from './handlers/reverse-merge.js';
|
|
20
|
+
export { handleGetMergeStats } from './handlers/get-stats.js';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Merging Feature - Barrel Exports
|
|
3
|
+
*
|
|
4
|
+
* Provides a clean public API for memory merging functionality
|
|
5
|
+
*/
|
|
6
|
+
// Types
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
// Detection
|
|
9
|
+
export { detectDuplicates, analyzeMergePair, getDetectionStats } from './detection/two-stage-detector.js';
|
|
10
|
+
export { SimHashFilter, MinHashFilter, findCandidatePairs } from './detection/hash-filters.js';
|
|
11
|
+
export { rankCandidates, analyzePair } from './detection/semantic-ranker.js';
|
|
12
|
+
// Merge Strategies
|
|
13
|
+
export { getMergeStrategy, mergeMemories, MERGE_STRATEGIES } from './strategies/merge-strategies.js';
|
|
14
|
+
// Safety
|
|
15
|
+
export { runSafetyChecks, checkBlockers, formatSafetyResults, describeSafetyChecks } from './safety/safety-checks.js';
|
|
16
|
+
// Analytics & Tokens
|
|
17
|
+
export { estimateTokensSaved, calculateProjectTokenSavings, estimateMergeSavingsPreview, getTokenStatistics, formatTokenCount, formatSavingsReport, } from './analytics/token-estimator.js';
|
|
18
|
+
// Handlers (MCP Tools)
|
|
19
|
+
export { handleDetectDuplicates } from './handlers/detect-duplicates.js';
|
|
20
|
+
export { handleListProposals } from './handlers/list-proposals.js';
|
|
21
|
+
export { handlePreviewMerge } from './handlers/preview-merge.js';
|
|
22
|
+
export { handleApproveMerge } from './handlers/approve-merge.js';
|
|
23
|
+
export { handleRejectMerge } from './handlers/reject-merge.js';
|
|
24
|
+
export { handleReverseMerge } from './handlers/reverse-merge.js';
|
|
25
|
+
export { handleGetMergeStats } from './handlers/get-stats.js';
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hash cache maintenance - SimHash/MinHash signatures for duplicate detection
|
|
3
|
+
*/
|
|
4
|
+
export declare function updateCache(memoryId: string): Promise<boolean>;
|
|
5
|
+
export declare function rebuildCache(projectId: string): Promise<{
|
|
6
|
+
processed: number;
|
|
7
|
+
succeeded: number;
|
|
8
|
+
failed: number;
|
|
9
|
+
}>;
|
|
10
|
+
export declare function isStale(memoryId: string): Promise<boolean>;
|
|
11
|
+
export declare function cleanupOrphaned(projectId: string): Promise<number>;
|
|
12
|
+
//# sourceMappingURL=cache-maintenance.d.ts.map
|