squish-memory 1.2.0 → 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/bin/squish-mcp.mjs +40 -42
- package/core/scheduler/cron-scheduler.ts +10 -1
- package/core/worker.ts +10 -1
- package/package.json +119 -119
- package/packages/mcp/src/index.ts +99 -36
- package/dist/config.d.ts +0 -106
- package/dist/config.js +0 -194
- 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 -137
- package/dist/core/adapters/types.js +0 -50
- package/dist/core/agent-preferences.d.ts +0 -16
- package/dist/core/agent-preferences.js +0 -124
- 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/index.js +0 -26
- 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 -18
- 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 -125
- 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 -33
- package/dist/core/associations.js +0 -284
- package/dist/core/autosave.d.ts +0 -19
- package/dist/core/autosave.js +0 -16
- package/dist/core/beliefs/decay.d.ts +0 -27
- package/dist/core/beliefs/decay.js +0 -217
- package/dist/core/beliefs/extractor.d.ts +0 -9
- package/dist/core/beliefs/extractor.js +0 -113
- package/dist/core/beliefs/store.d.ts +0 -46
- package/dist/core/beliefs/store.js +0 -466
- package/dist/core/beliefs/types.d.ts +0 -28
- package/dist/core/beliefs/types.js +0 -2
- package/dist/core/commands/mcp-server.d.ts +0 -2
- package/dist/core/commands/mcp-server.js +0 -6
- package/dist/core/commands/remember.d.ts +0 -24
- package/dist/core/commands/remember.js +0 -144
- package/dist/core/compression.d.ts +0 -45
- package/dist/core/compression.js +0 -160
- 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/embeddings.d.ts +0 -29
- package/dist/core/embeddings/embeddings.js +0 -546
- package/dist/core/embeddings/google-multimodal.d.ts +0 -14
- package/dist/core/embeddings/google-multimodal.js +0 -146
- package/dist/core/embeddings/local-embeddings.d.ts +0 -11
- package/dist/core/embeddings/local-embeddings.js +0 -11
- package/dist/core/embeddings/qmd-client.d.ts +0 -136
- package/dist/core/embeddings/qmd-client.js +0 -403
- package/dist/core/embeddings/transformers-local.d.ts +0 -64
- package/dist/core/embeddings/transformers-local.js +0 -213
- package/dist/core/embeddings.d.ts +0 -2
- package/dist/core/embeddings.js +0 -3
- package/dist/core/error-handling.d.ts +0 -63
- package/dist/core/error-handling.js +0 -173
- package/dist/core/graph/entity-deduplicator.d.ts +0 -24
- package/dist/core/graph/entity-deduplicator.js +0 -183
- package/dist/core/graph/graph-builder.d.ts +0 -46
- package/dist/core/graph/graph-builder.js +0 -174
- package/dist/core/graph/graph-traversal.d.ts +0 -80
- package/dist/core/graph/graph-traversal.js +0 -315
- package/dist/core/graph/index.d.ts +0 -19
- package/dist/core/graph/index.js +0 -13
- package/dist/core/graph/llm-entity-extractor.d.ts +0 -49
- package/dist/core/graph/llm-entity-extractor.js +0 -313
- package/dist/core/graph/multi-hop-retrieval.d.ts +0 -48
- package/dist/core/graph/multi-hop-retrieval.js +0 -215
- package/dist/core/graph/relationship-extractor.d.ts +0 -48
- package/dist/core/graph/relationship-extractor.js +0 -351
- package/dist/core/hooks/agent-hooks.d.ts +0 -83
- package/dist/core/hooks/agent-hooks.js +0 -521
- 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/hot-cache.d.ts +0 -86
- package/dist/core/hot-cache.js +0 -285
- package/dist/core/index.d.ts +0 -10
- package/dist/core/index.js +0 -11
- 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 -205
- package/dist/core/ingestion/signal-engine.d.ts +0 -41
- package/dist/core/ingestion/signal-engine.js +0 -201
- package/dist/core/integrations/obsidian-vault.d.ts +0 -31
- package/dist/core/integrations/obsidian-vault.js +0 -156
- package/dist/core/layers/generator.d.ts +0 -25
- package/dist/core/layers/generator.js +0 -76
- package/dist/core/lib/db-client.d.ts +0 -114
- package/dist/core/lib/db-client.js +0 -130
- package/dist/core/lib/parse-embedding.d.ts +0 -9
- package/dist/core/lib/parse-embedding.js +0 -58
- package/dist/core/lib/schemas.d.ts +0 -132
- package/dist/core/lib/schemas.js +0 -87
- package/dist/core/lib/types.d.ts +0 -45
- package/dist/core/lib/types.js +0 -6
- package/dist/core/lib/utils.d.ts +0 -18
- package/dist/core/lib/utils.js +0 -145
- package/dist/core/lib/validation.d.ts +0 -38
- package/dist/core/lib/validation.js +0 -151
- package/dist/core/lifecycle.d.ts +0 -25
- package/dist/core/lifecycle.js +0 -292
- package/dist/core/logger.d.ts +0 -17
- package/dist/core/logger.js +0 -46
- 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 -7
- package/dist/core/mcp/tools.js +0 -278
- package/dist/core/mcp/types.d.ts +0 -87
- 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 -306
- 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 -277
- 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 -37
- package/dist/core/memory/entity-extractor.js +0 -350
- package/dist/core/memory/entity-resolver.d.ts +0 -23
- package/dist/core/memory/entity-resolver.js +0 -64
- package/dist/core/memory/explain.d.ts +0 -18
- package/dist/core/memory/explain.js +0 -92
- package/dist/core/memory/fact-deriver.d.ts +0 -31
- package/dist/core/memory/fact-deriver.js +0 -236
- 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 -27
- package/dist/core/memory/hybrid-retrieval.js +0 -37
- package/dist/core/memory/hybrid-scorer.d.ts +0 -40
- package/dist/core/memory/hybrid-scorer.js +0 -267
- package/dist/core/memory/hybrid-search.d.ts +0 -23
- package/dist/core/memory/hybrid-search.js +0 -596
- package/dist/core/memory/importance.d.ts +0 -46
- package/dist/core/memory/importance.js +0 -241
- package/dist/core/memory/index.d.ts +0 -9
- package/dist/core/memory/index.js +0 -11
- 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 -43
- package/dist/core/memory/memories.js +0 -452
- package/dist/core/memory/memory-lifecycle.d.ts +0 -8
- package/dist/core/memory/memory-lifecycle.js +0 -47
- 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 -7
- package/dist/core/memory/normalization.js +0 -26
- package/dist/core/memory/path-strengthener.d.ts +0 -39
- package/dist/core/memory/path-strengthener.js +0 -150
- 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 -106
- 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/retrieval-feedback.d.ts +0 -70
- package/dist/core/memory/retrieval-feedback.js +0 -213
- package/dist/core/memory/serialization.d.ts +0 -10
- package/dist/core/memory/serialization.js +0 -84
- package/dist/core/memory/stale-cleaner.d.ts +0 -26
- package/dist/core/memory/stale-cleaner.js +0 -97
- package/dist/core/memory/stats.d.ts +0 -32
- package/dist/core/memory/stats.js +0 -143
- 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 -21
- package/dist/core/memory/trigger-detector.js +0 -79
- package/dist/core/memory/write-gate.d.ts +0 -54
- package/dist/core/memory/write-gate.js +0 -210
- package/dist/core/places/index.d.ts +0 -14
- package/dist/core/places/index.js +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 -116
- 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/runtime/trust-report.d.ts +0 -102
- package/dist/core/runtime/trust-report.js +0 -107
- package/dist/core/runtime/trust-state.d.ts +0 -12
- package/dist/core/runtime/trust-state.js +0 -309
- package/dist/core/scheduler/cron-scheduler.d.ts +0 -32
- package/dist/core/scheduler/cron-scheduler.js +0 -493
- 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/index.js +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/index.js +0 -5
- package/dist/core/search/qmd-wrapper.d.ts +0 -36
- package/dist/core/search/qmd-wrapper.js +0 -58
- 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 -144
- package/dist/core/session/entity-tracker.d.ts +0 -62
- package/dist/core/session/entity-tracker.js +0 -287
- package/dist/core/session/index.d.ts +0 -7
- package/dist/core/session/index.js +0 -7
- package/dist/core/session/reference-resolver.d.ts +0 -26
- package/dist/core/session/reference-resolver.js +0 -121
- package/dist/core/session/self-iteration-job.d.ts +0 -35
- package/dist/core/session/self-iteration-job.js +0 -387
- 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/working-set.d.ts +0 -50
- package/dist/core/session/working-set.js +0 -212
- package/dist/core/snapshots/cleanup.d.ts +0 -9
- package/dist/core/snapshots/cleanup.js +0 -12
- 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 -13
- package/dist/core/snapshots/creation.js +0 -117
- 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/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/cleanup.js +0 -12
- 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/temporal-facts.d.ts +0 -54
- package/dist/core/temporal-facts.js +0 -193
- 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 -17
- package/dist/core/utils/summarization-helpers.js +0 -33
- 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/vector-operations.js +0 -129
- 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 -11
- package/dist/db/bootstrap.js +0 -1034
- package/dist/db/drizzle/schema-sqlite.d.ts +0 -5538
- package/dist/db/drizzle/schema-sqlite.js +0 -763
- package/dist/db/drizzle/schema.d.ts +0 -4734
- package/dist/db/drizzle/schema.js +0 -859
- 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/migrations/associations.d.ts +0 -6
- package/dist/db/migrations/associations.js +0 -29
- package/dist/db/migrations/beliefs.d.ts +0 -10
- package/dist/db/migrations/beliefs.js +0 -76
- package/dist/db/migrations/core-memory.d.ts +0 -6
- package/dist/db/migrations/core-memory.js +0 -29
- package/dist/db/migrations/fts.d.ts +0 -6
- package/dist/db/migrations/fts.js +0 -52
- package/dist/db/migrations/index.d.ts +0 -25
- package/dist/db/migrations/index.js +0 -51
- package/dist/db/migrations/indexes.d.ts +0 -6
- package/dist/db/migrations/indexes.js +0 -30
- package/dist/db/migrations/learnings.d.ts +0 -7
- package/dist/db/migrations/learnings.js +0 -26
- package/dist/db/migrations/maintenance.d.ts +0 -6
- package/dist/db/migrations/maintenance.js +0 -61
- package/dist/db/migrations/memories.d.ts +0 -7
- package/dist/db/migrations/memories.js +0 -16
- package/dist/db/migrations/memory-places.d.ts +0 -6
- package/dist/db/migrations/memory-places.js +0 -29
- package/dist/db/migrations/places.d.ts +0 -6
- package/dist/db/migrations/places.js +0 -43
- package/dist/db/migrations/projects.d.ts +0 -3
- package/dist/db/migrations/projects.js +0 -13
- package/dist/db/migrations/tier-conversion.d.ts +0 -7
- package/dist/db/migrations/tier-conversion.js +0 -20
- package/dist/db/neon.d.ts +0 -8
- package/dist/db/neon.js +0 -20
- package/dist/db/schema/beliefs.d.ts +0 -9
- package/dist/db/schema/beliefs.js +0 -46
- package/dist/db/schema/generator.d.ts +0 -38
- package/dist/db/schema/generator.js +0 -108
- package/dist/db/schema/index.d.ts +0 -39
- package/dist/db/schema/index.js +0 -51
- package/dist/db/schema/learnings.d.ts +0 -7
- package/dist/db/schema/learnings.js +0 -30
- package/dist/db/schema/memories.d.ts +0 -7
- package/dist/db/schema/memories.js +0 -81
- package/dist/db/schema/projects.d.ts +0 -4
- package/dist/db/schema/projects.js +0 -31
- 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/packages/mcp/src/index.d.ts +0 -3
- package/dist/packages/mcp/src/index.js +0 -733
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Temporal Query Utilities
|
|
3
|
-
* Common patterns for temporal database queries
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Build temporal validity filters for queries
|
|
7
|
-
*/
|
|
8
|
-
export declare function buildTemporalFilters(schema: any, timestamp?: Date, additionalFilters?: any[]): any[];
|
|
9
|
-
/**
|
|
10
|
-
* Build temporal query for facts at a specific time
|
|
11
|
-
*/
|
|
12
|
-
export declare function buildFactAtTimeQuery(schema: any, timestamp?: Date, additionalFilters?: any[]): any;
|
|
13
|
-
//# sourceMappingURL=temporal-queries.d.ts.map
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Temporal Query Utilities
|
|
3
|
-
* Common patterns for temporal database queries
|
|
4
|
-
*/
|
|
5
|
-
import { and, eq, lte, gte, or, isNull } from 'drizzle-orm';
|
|
6
|
-
/**
|
|
7
|
-
* Build temporal validity filters for queries
|
|
8
|
-
*/
|
|
9
|
-
export function buildTemporalFilters(schema, timestamp = new Date(), additionalFilters = []) {
|
|
10
|
-
const filters = [
|
|
11
|
-
lte(schema.validFrom, timestamp),
|
|
12
|
-
or(isNull(schema.validTo), gte(schema.validTo, timestamp)),
|
|
13
|
-
...additionalFilters
|
|
14
|
-
];
|
|
15
|
-
return filters;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Build temporal query for facts at a specific time
|
|
19
|
-
*/
|
|
20
|
-
export function buildFactAtTimeQuery(schema, timestamp = new Date(), additionalFilters = []) {
|
|
21
|
-
const filters = buildTemporalFilters(schema, timestamp, [
|
|
22
|
-
eq(schema.type, 'fact'),
|
|
23
|
-
...additionalFilters
|
|
24
|
-
]);
|
|
25
|
-
return and(...filters);
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=temporal-queries.js.map
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vector Operations Utilities
|
|
3
|
-
*
|
|
4
|
-
* Provides mathematical operations for vector computations, primarily focused on
|
|
5
|
-
* cosine similarity calculations for embedding comparisons.
|
|
6
|
-
*
|
|
7
|
-
* All functions handle edge cases gracefully and are optimized for performance.
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Calculates the cosine similarity between two vectors.
|
|
11
|
-
*
|
|
12
|
-
* Cosine similarity measures the cosine of the angle between two vectors,
|
|
13
|
-
* providing a normalized measure of similarity that ranges from -1 (opposite)
|
|
14
|
-
* to 1 (identical), with 0 indicating orthogonality (no similarity).
|
|
15
|
-
*
|
|
16
|
-
* The implementation uses the standard formula:
|
|
17
|
-
* cos(θ) = (A · B) / (||A|| * ||B||)
|
|
18
|
-
*
|
|
19
|
-
* Edge case handling:
|
|
20
|
-
* - Returns 0 if either vector is null/undefined
|
|
21
|
-
* - Returns 0 if vectors have different lengths
|
|
22
|
-
* - Returns 0 if either vector has zero magnitude (norm = 0)
|
|
23
|
-
*
|
|
24
|
-
* @param a - First vector as array of numbers
|
|
25
|
-
* @param b - Second vector as array of numbers
|
|
26
|
-
* @returns Cosine similarity value in range [-1, 1], or 0 for invalid inputs
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* const vec1 = [1, 2, 3];
|
|
31
|
-
* const vec2 = [4, 5, 6];
|
|
32
|
-
* const similarity = cosineSimilarity(vec1, vec2); // ~0.974
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
35
|
-
* @performance
|
|
36
|
-
* - Time complexity: O(n) where n is vector length
|
|
37
|
-
* - Space complexity: O(1) - uses only accumulator variables
|
|
38
|
-
* - Optimized with single-pass computation of dot product and norms
|
|
39
|
-
*/
|
|
40
|
-
export declare function cosineSimilarity(a: number[] | null | undefined, b: number[] | null | undefined): number;
|
|
41
|
-
/**
|
|
42
|
-
* Calculates the Euclidean distance between two vectors.
|
|
43
|
-
*
|
|
44
|
-
* @param a - First vector
|
|
45
|
-
* @param b - Second vector
|
|
46
|
-
* @returns Euclidean distance, or Infinity if vectors have different lengths
|
|
47
|
-
*/
|
|
48
|
-
export declare function euclideanDistance(a: number[] | null | undefined, b: number[] | null | undefined): number;
|
|
49
|
-
/**
|
|
50
|
-
* Normalizes a vector to unit length (magnitude = 1).
|
|
51
|
-
*
|
|
52
|
-
* @param vec - Input vector
|
|
53
|
-
* @returns Normalized vector, or null if input is null or zero vector
|
|
54
|
-
*/
|
|
55
|
-
export declare function normalizeVector(vec: number[] | null | undefined): number[] | null;
|
|
56
|
-
/**
|
|
57
|
-
* Computes the dot product of two vectors.
|
|
58
|
-
*
|
|
59
|
-
* @param a - First vector
|
|
60
|
-
* @param b - Second vector
|
|
61
|
-
* @returns Dot product, or 0 if vectors are invalid or different lengths
|
|
62
|
-
*/
|
|
63
|
-
export declare function dotProduct(a: number[] | null | undefined, b: number[] | null | undefined): number;
|
|
64
|
-
/**
|
|
65
|
-
* Calculates the magnitude (L2 norm) of a vector.
|
|
66
|
-
*
|
|
67
|
-
* @param vec - Input vector
|
|
68
|
-
* @returns Magnitude of the vector, or 0 if input is null
|
|
69
|
-
*/
|
|
70
|
-
export declare function magnitude(vec: number[] | null | undefined): number;
|
|
71
|
-
//# sourceMappingURL=vector-operations.d.ts.map
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vector Operations Utilities
|
|
3
|
-
*
|
|
4
|
-
* Provides mathematical operations for vector computations, primarily focused on
|
|
5
|
-
* cosine similarity calculations for embedding comparisons.
|
|
6
|
-
*
|
|
7
|
-
* All functions handle edge cases gracefully and are optimized for performance.
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Calculates the cosine similarity between two vectors.
|
|
11
|
-
*
|
|
12
|
-
* Cosine similarity measures the cosine of the angle between two vectors,
|
|
13
|
-
* providing a normalized measure of similarity that ranges from -1 (opposite)
|
|
14
|
-
* to 1 (identical), with 0 indicating orthogonality (no similarity).
|
|
15
|
-
*
|
|
16
|
-
* The implementation uses the standard formula:
|
|
17
|
-
* cos(θ) = (A · B) / (||A|| * ||B||)
|
|
18
|
-
*
|
|
19
|
-
* Edge case handling:
|
|
20
|
-
* - Returns 0 if either vector is null/undefined
|
|
21
|
-
* - Returns 0 if vectors have different lengths
|
|
22
|
-
* - Returns 0 if either vector has zero magnitude (norm = 0)
|
|
23
|
-
*
|
|
24
|
-
* @param a - First vector as array of numbers
|
|
25
|
-
* @param b - Second vector as array of numbers
|
|
26
|
-
* @returns Cosine similarity value in range [-1, 1], or 0 for invalid inputs
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* const vec1 = [1, 2, 3];
|
|
31
|
-
* const vec2 = [4, 5, 6];
|
|
32
|
-
* const similarity = cosineSimilarity(vec1, vec2); // ~0.974
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
35
|
-
* @performance
|
|
36
|
-
* - Time complexity: O(n) where n is vector length
|
|
37
|
-
* - Space complexity: O(1) - uses only accumulator variables
|
|
38
|
-
* - Optimized with single-pass computation of dot product and norms
|
|
39
|
-
*/
|
|
40
|
-
export function cosineSimilarity(a, b) {
|
|
41
|
-
// Guard against null/undefined inputs
|
|
42
|
-
if (!a || !b)
|
|
43
|
-
return 0;
|
|
44
|
-
// Vectors must have same dimensions
|
|
45
|
-
if (a.length !== b.length)
|
|
46
|
-
return 0;
|
|
47
|
-
let dotProduct = 0;
|
|
48
|
-
let normA = 0;
|
|
49
|
-
let normB = 0;
|
|
50
|
-
// Single pass to compute dot product and norms
|
|
51
|
-
for (let i = 0; i < a.length; i++) {
|
|
52
|
-
dotProduct += a[i] * b[i];
|
|
53
|
-
normA += a[i] * a[i];
|
|
54
|
-
normB += b[i] * b[i];
|
|
55
|
-
}
|
|
56
|
-
// Handle zero vectors (avoid division by zero)
|
|
57
|
-
if (normA === 0 || normB === 0)
|
|
58
|
-
return 0;
|
|
59
|
-
return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Calculates the Euclidean distance between two vectors.
|
|
63
|
-
*
|
|
64
|
-
* @param a - First vector
|
|
65
|
-
* @param b - Second vector
|
|
66
|
-
* @returns Euclidean distance, or Infinity if vectors have different lengths
|
|
67
|
-
*/
|
|
68
|
-
export function euclideanDistance(a, b) {
|
|
69
|
-
if (!a || !b)
|
|
70
|
-
return Infinity;
|
|
71
|
-
if (a.length !== b.length)
|
|
72
|
-
return Infinity;
|
|
73
|
-
let sum = 0;
|
|
74
|
-
for (let i = 0; i < a.length; i++) {
|
|
75
|
-
const diff = a[i] - b[i];
|
|
76
|
-
sum += diff * diff;
|
|
77
|
-
}
|
|
78
|
-
return Math.sqrt(sum);
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Normalizes a vector to unit length (magnitude = 1).
|
|
82
|
-
*
|
|
83
|
-
* @param vec - Input vector
|
|
84
|
-
* @returns Normalized vector, or null if input is null or zero vector
|
|
85
|
-
*/
|
|
86
|
-
export function normalizeVector(vec) {
|
|
87
|
-
if (!vec)
|
|
88
|
-
return null;
|
|
89
|
-
let norm = 0;
|
|
90
|
-
for (let i = 0; i < vec.length; i++) {
|
|
91
|
-
norm += vec[i] * vec[i];
|
|
92
|
-
}
|
|
93
|
-
if (norm === 0)
|
|
94
|
-
return null;
|
|
95
|
-
const magnitude = Math.sqrt(norm);
|
|
96
|
-
return vec.map(val => val / magnitude);
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Computes the dot product of two vectors.
|
|
100
|
-
*
|
|
101
|
-
* @param a - First vector
|
|
102
|
-
* @param b - Second vector
|
|
103
|
-
* @returns Dot product, or 0 if vectors are invalid or different lengths
|
|
104
|
-
*/
|
|
105
|
-
export function dotProduct(a, b) {
|
|
106
|
-
if (!a || !b || a.length !== b.length)
|
|
107
|
-
return 0;
|
|
108
|
-
let result = 0;
|
|
109
|
-
for (let i = 0; i < a.length; i++) {
|
|
110
|
-
result += a[i] * b[i];
|
|
111
|
-
}
|
|
112
|
-
return result;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Calculates the magnitude (L2 norm) of a vector.
|
|
116
|
-
*
|
|
117
|
-
* @param vec - Input vector
|
|
118
|
-
* @returns Magnitude of the vector, or 0 if input is null
|
|
119
|
-
*/
|
|
120
|
-
export function magnitude(vec) {
|
|
121
|
-
if (!vec)
|
|
122
|
-
return 0;
|
|
123
|
-
let sum = 0;
|
|
124
|
-
for (let i = 0; i < vec.length; i++) {
|
|
125
|
-
sum += vec[i] * vec[i];
|
|
126
|
-
}
|
|
127
|
-
return Math.sqrt(sum);
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=vector-operations.js.map
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Version Management Utilities
|
|
3
|
-
* Common patterns for versioning and updating records
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Create a new version of a fact by expiring the old one
|
|
7
|
-
*/
|
|
8
|
-
export declare function createNewFactVersion(oldFactId: string, newContent: string, additionalFields?: Record<string, any>, reason?: string): Promise<string>;
|
|
9
|
-
//# sourceMappingURL=version-management.d.ts.map
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Version Management Utilities
|
|
3
|
-
* Common patterns for versioning and updating records
|
|
4
|
-
*/
|
|
5
|
-
import { eq } from 'drizzle-orm';
|
|
6
|
-
import { randomUUID } from 'crypto';
|
|
7
|
-
import { getDb } from '../../db/index.js';
|
|
8
|
-
import { getSchema } from '../../db/schema.js';
|
|
9
|
-
import { logger } from '../logger.js';
|
|
10
|
-
/**
|
|
11
|
-
* Create a new version of a fact by expiring the old one
|
|
12
|
-
*/
|
|
13
|
-
export async function createNewFactVersion(oldFactId, newContent, additionalFields = {}, reason) {
|
|
14
|
-
try {
|
|
15
|
-
const db = await getDb();
|
|
16
|
-
const schema = await getSchema();
|
|
17
|
-
// Get the old fact
|
|
18
|
-
const oldFacts = await db
|
|
19
|
-
.select()
|
|
20
|
-
.from(schema.memories)
|
|
21
|
-
.where(eq(schema.memories.id, oldFactId))
|
|
22
|
-
.limit(1);
|
|
23
|
-
if (oldFacts.length === 0) {
|
|
24
|
-
throw new Error('Previous fact not found');
|
|
25
|
-
}
|
|
26
|
-
const oldFact = oldFacts[0];
|
|
27
|
-
const now = new Date();
|
|
28
|
-
const newFactId = randomUUID();
|
|
29
|
-
// Expire the old fact
|
|
30
|
-
await db
|
|
31
|
-
.update(schema.memories)
|
|
32
|
-
.set({ validTo: now, supersededBy: newFactId })
|
|
33
|
-
.where(eq(schema.memories.id, oldFactId));
|
|
34
|
-
// Create new version
|
|
35
|
-
const newFact = {
|
|
36
|
-
id: newFactId,
|
|
37
|
-
type: 'fact',
|
|
38
|
-
sector: 'semantic',
|
|
39
|
-
content: newContent,
|
|
40
|
-
confidence: oldFact.confidence,
|
|
41
|
-
validFrom: now,
|
|
42
|
-
validTo: null,
|
|
43
|
-
version: (oldFact.version || 1) + 1,
|
|
44
|
-
tags: oldFact.tags,
|
|
45
|
-
projectId: oldFact.projectId,
|
|
46
|
-
createdAt: now,
|
|
47
|
-
updatedAt: now,
|
|
48
|
-
...additionalFields,
|
|
49
|
-
};
|
|
50
|
-
if (reason) {
|
|
51
|
-
newFact.metadata = { supersedes: oldFactId, reason };
|
|
52
|
-
}
|
|
53
|
-
await db.insert(schema.memories).values(newFact);
|
|
54
|
-
return newFactId;
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
logger.error('Error creating new fact version', error);
|
|
58
|
-
throw error;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=version-management.js.map
|
package/dist/core/worker.d.ts
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Background Worker
|
|
3
|
-
* Handles lifecycle maintenance, summarization, and other async tasks
|
|
4
|
-
*/
|
|
5
|
-
interface WorkerConfig {
|
|
6
|
-
lifecycleInterval: number;
|
|
7
|
-
pruningInterval: number;
|
|
8
|
-
summarizationCheckInterval: number;
|
|
9
|
-
consolidationInterval: number;
|
|
10
|
-
dedupInterval: number;
|
|
11
|
-
associationPruningThreshold: number;
|
|
12
|
-
summaryPruningAge: number;
|
|
13
|
-
}
|
|
14
|
-
declare class SquishWorker {
|
|
15
|
-
private lifecycleTimer?;
|
|
16
|
-
private pruningTimer?;
|
|
17
|
-
private summarizationTimer?;
|
|
18
|
-
private consolidationTimer?;
|
|
19
|
-
private dedupTimer?;
|
|
20
|
-
private config;
|
|
21
|
-
private isRunning;
|
|
22
|
-
private stats;
|
|
23
|
-
constructor(customConfig?: Partial<WorkerConfig>);
|
|
24
|
-
start(): Promise<void>;
|
|
25
|
-
stop(): Promise<void>;
|
|
26
|
-
private scheduleLifecycleMaintenance;
|
|
27
|
-
private runLifecycleMaintenance;
|
|
28
|
-
private schedulePruning;
|
|
29
|
-
private runPruning;
|
|
30
|
-
private scheduleSummarizationCheck;
|
|
31
|
-
private runSummarizationCheck;
|
|
32
|
-
private scheduleConsolidation;
|
|
33
|
-
private runConsolidation;
|
|
34
|
-
private scheduleDedup;
|
|
35
|
-
private runDedup;
|
|
36
|
-
getStats(): {
|
|
37
|
-
isRunning: boolean;
|
|
38
|
-
stats: {
|
|
39
|
-
lifecycleRuns: number;
|
|
40
|
-
pruningRuns: number;
|
|
41
|
-
summarizationRuns: number;
|
|
42
|
-
consolidationRuns: number;
|
|
43
|
-
dedupRuns: number;
|
|
44
|
-
lastLifecycle: any;
|
|
45
|
-
lastAssociation: any;
|
|
46
|
-
lastSummarization: any;
|
|
47
|
-
lastConsolidation: any;
|
|
48
|
-
lastDedup: any;
|
|
49
|
-
};
|
|
50
|
-
config: WorkerConfig;
|
|
51
|
-
};
|
|
52
|
-
forceLifecycleMaintenance(projectId?: string): Promise<any>;
|
|
53
|
-
forcePruning(): Promise<any>;
|
|
54
|
-
forceConsolidation(projectId?: string): Promise<any>;
|
|
55
|
-
forceDedup(projectId?: string): Promise<any>;
|
|
56
|
-
}
|
|
57
|
-
export declare function getWorker(customConfig?: Partial<WorkerConfig>): SquishWorker;
|
|
58
|
-
export declare function startWorker(): Promise<void>;
|
|
59
|
-
export declare function stopWorker(): Promise<void>;
|
|
60
|
-
export declare function getWorkerStats(): {
|
|
61
|
-
isRunning: boolean;
|
|
62
|
-
stats: {
|
|
63
|
-
lifecycleRuns: number;
|
|
64
|
-
pruningRuns: number;
|
|
65
|
-
summarizationRuns: number;
|
|
66
|
-
consolidationRuns: number;
|
|
67
|
-
dedupRuns: number;
|
|
68
|
-
lastLifecycle: any;
|
|
69
|
-
lastAssociation: any;
|
|
70
|
-
lastSummarization: any;
|
|
71
|
-
lastConsolidation: any;
|
|
72
|
-
lastDedup: any;
|
|
73
|
-
};
|
|
74
|
-
config: WorkerConfig;
|
|
75
|
-
} | null;
|
|
76
|
-
export declare function forceLifecycleMaintenance(projectId?: string): Promise<any>;
|
|
77
|
-
export declare function forcePruning(): Promise<any>;
|
|
78
|
-
export declare function forceConsolidation(projectId?: string): Promise<any>;
|
|
79
|
-
export declare function forceDedup(projectId?: string): Promise<any>;
|
|
80
|
-
export type { WorkerConfig };
|
|
81
|
-
export { SquishWorker };
|
|
82
|
-
//# sourceMappingURL=worker.d.ts.map
|
package/dist/core/worker.js
DELETED
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Background Worker
|
|
3
|
-
* Handles lifecycle maintenance, summarization, and other async tasks
|
|
4
|
-
*/
|
|
5
|
-
import { config } from '../config.js';
|
|
6
|
-
import { runLifecycleMaintenance } from './lifecycle.js';
|
|
7
|
-
import { pruneWeakAssociations, getAssociationStats } from './associations.js';
|
|
8
|
-
import { pruneOldSummaries, getSummarizationStats } from './summarization.js';
|
|
9
|
-
import { runFullConsolidationJob, getDeduplicationStats } from './consolidation.js';
|
|
10
|
-
import { logger } from './logger.js';
|
|
11
|
-
const DEFAULT_WORKER_CONFIG = {
|
|
12
|
-
lifecycleInterval: config.lifecycleInterval || 3600000,
|
|
13
|
-
pruningInterval: 7 * 24 * 60 * 60 * 1000,
|
|
14
|
-
summarizationCheckInterval: 5 * 60 * 1000,
|
|
15
|
-
consolidationInterval: 24 * 60 * 60 * 1000, // Daily
|
|
16
|
-
dedupInterval: 12 * 60 * 60 * 1000, // Twice daily
|
|
17
|
-
associationPruningThreshold: 5,
|
|
18
|
-
summaryPruningAge: 30,
|
|
19
|
-
};
|
|
20
|
-
class SquishWorker {
|
|
21
|
-
lifecycleTimer;
|
|
22
|
-
pruningTimer;
|
|
23
|
-
summarizationTimer;
|
|
24
|
-
consolidationTimer;
|
|
25
|
-
dedupTimer;
|
|
26
|
-
config;
|
|
27
|
-
isRunning = false;
|
|
28
|
-
stats = {
|
|
29
|
-
lifecycleRuns: 0,
|
|
30
|
-
pruningRuns: 0,
|
|
31
|
-
summarizationRuns: 0,
|
|
32
|
-
consolidationRuns: 0,
|
|
33
|
-
dedupRuns: 0,
|
|
34
|
-
lastLifecycle: null,
|
|
35
|
-
lastAssociation: null,
|
|
36
|
-
lastSummarization: null,
|
|
37
|
-
lastConsolidation: null,
|
|
38
|
-
lastDedup: null,
|
|
39
|
-
};
|
|
40
|
-
constructor(customConfig = {}) {
|
|
41
|
-
this.config = { ...DEFAULT_WORKER_CONFIG, ...customConfig };
|
|
42
|
-
}
|
|
43
|
-
async start() {
|
|
44
|
-
if (this.isRunning) {
|
|
45
|
-
logger.warn('Worker already running');
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
this.isRunning = true;
|
|
49
|
-
logger.info('Starting background worker');
|
|
50
|
-
if (config.lifecycleEnabled) {
|
|
51
|
-
this.scheduleLifecycleMaintenance();
|
|
52
|
-
}
|
|
53
|
-
this.schedulePruning();
|
|
54
|
-
if (config.summarizationEnabled) {
|
|
55
|
-
this.scheduleSummarizationCheck();
|
|
56
|
-
}
|
|
57
|
-
// Schedule consolidation and dedup jobs
|
|
58
|
-
this.scheduleConsolidation();
|
|
59
|
-
this.scheduleDedup();
|
|
60
|
-
logger.info('Background worker started');
|
|
61
|
-
}
|
|
62
|
-
async stop() {
|
|
63
|
-
if (!this.isRunning) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
this.isRunning = false;
|
|
67
|
-
if (this.lifecycleTimer)
|
|
68
|
-
clearInterval(this.lifecycleTimer);
|
|
69
|
-
if (this.pruningTimer)
|
|
70
|
-
clearInterval(this.pruningTimer);
|
|
71
|
-
if (this.summarizationTimer)
|
|
72
|
-
clearInterval(this.summarizationTimer);
|
|
73
|
-
if (this.consolidationTimer)
|
|
74
|
-
clearInterval(this.consolidationTimer);
|
|
75
|
-
if (this.dedupTimer)
|
|
76
|
-
clearInterval(this.dedupTimer);
|
|
77
|
-
logger.info('Background worker stopped');
|
|
78
|
-
}
|
|
79
|
-
scheduleLifecycleMaintenance() {
|
|
80
|
-
this.runLifecycleMaintenance().catch((err) => {
|
|
81
|
-
logger.error('Initial lifecycle maintenance failed:', err);
|
|
82
|
-
});
|
|
83
|
-
this.lifecycleTimer = setInterval(() => {
|
|
84
|
-
this.runLifecycleMaintenance().catch((err) => {
|
|
85
|
-
logger.error('Scheduled lifecycle maintenance failed:', err);
|
|
86
|
-
});
|
|
87
|
-
}, this.config.lifecycleInterval);
|
|
88
|
-
}
|
|
89
|
-
async runLifecycleMaintenance() {
|
|
90
|
-
try {
|
|
91
|
-
const stats = await runLifecycleMaintenance();
|
|
92
|
-
this.stats.lifecycleRuns++;
|
|
93
|
-
this.stats.lastLifecycle = {
|
|
94
|
-
timestamp: new Date().toISOString(),
|
|
95
|
-
...stats,
|
|
96
|
-
};
|
|
97
|
-
logger.info('Lifecycle maintenance completed', {
|
|
98
|
-
decayed: stats.decayed,
|
|
99
|
-
evicted: stats.evicted,
|
|
100
|
-
promoted: stats.promoted,
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
catch (error) {
|
|
104
|
-
logger.error('Lifecycle maintenance error:', error);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
schedulePruning() {
|
|
108
|
-
this.runPruning().catch((err) => {
|
|
109
|
-
logger.error('Initial pruning failed:', err);
|
|
110
|
-
});
|
|
111
|
-
this.pruningTimer = setInterval(() => {
|
|
112
|
-
this.runPruning().catch((err) => {
|
|
113
|
-
logger.error('Scheduled pruning failed:', err);
|
|
114
|
-
});
|
|
115
|
-
}, this.config.pruningInterval);
|
|
116
|
-
}
|
|
117
|
-
async runPruning() {
|
|
118
|
-
try {
|
|
119
|
-
this.stats.pruningRuns++;
|
|
120
|
-
const prunedAssociations = await pruneWeakAssociations(this.config.associationPruningThreshold);
|
|
121
|
-
const assocStats = await getAssociationStats();
|
|
122
|
-
this.stats.lastAssociation = {
|
|
123
|
-
timestamp: new Date().toISOString(),
|
|
124
|
-
pruned: prunedAssociations,
|
|
125
|
-
...assocStats,
|
|
126
|
-
};
|
|
127
|
-
const prunedSummaries = await pruneOldSummaries(this.config.summaryPruningAge);
|
|
128
|
-
logger.info('Pruning completed', {
|
|
129
|
-
associationsPruned: prunedAssociations,
|
|
130
|
-
summariesPruned: prunedSummaries,
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
logger.error('Pruning error:', error);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
scheduleSummarizationCheck() {
|
|
138
|
-
this.summarizationTimer = setInterval(() => {
|
|
139
|
-
this.runSummarizationCheck().catch((err) => {
|
|
140
|
-
logger.error('Summarization check failed:', err);
|
|
141
|
-
});
|
|
142
|
-
}, this.config.summarizationCheckInterval);
|
|
143
|
-
}
|
|
144
|
-
async runSummarizationCheck() {
|
|
145
|
-
try {
|
|
146
|
-
this.stats.summarizationRuns++;
|
|
147
|
-
const stats = await getSummarizationStats();
|
|
148
|
-
this.stats.lastSummarization = {
|
|
149
|
-
timestamp: new Date().toISOString(),
|
|
150
|
-
...stats,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
logger.error('Summarization check error:', error);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
scheduleConsolidation() {
|
|
158
|
-
// Run immediately on start
|
|
159
|
-
this.runConsolidation().catch((err) => {
|
|
160
|
-
logger.error('Initial consolidation failed:', err);
|
|
161
|
-
});
|
|
162
|
-
this.consolidationTimer = setInterval(() => {
|
|
163
|
-
this.runConsolidation().catch((err) => {
|
|
164
|
-
logger.error('Scheduled consolidation failed:', err);
|
|
165
|
-
});
|
|
166
|
-
}, this.config.consolidationInterval);
|
|
167
|
-
}
|
|
168
|
-
async runConsolidation() {
|
|
169
|
-
try {
|
|
170
|
-
this.stats.consolidationRuns++;
|
|
171
|
-
const stats = await runFullConsolidationJob();
|
|
172
|
-
this.stats.lastConsolidation = {
|
|
173
|
-
timestamp: new Date().toISOString(),
|
|
174
|
-
...stats,
|
|
175
|
-
};
|
|
176
|
-
logger.info('Consolidation completed', {
|
|
177
|
-
clustered: stats.clustered,
|
|
178
|
-
merged: stats.merged,
|
|
179
|
-
deduped: stats.deduped,
|
|
180
|
-
consolidated: stats.consolidated,
|
|
181
|
-
tokensRecovered: stats.tokensRecovered,
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
catch (error) {
|
|
185
|
-
logger.error('Consolidation error:', error);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
scheduleDedup() {
|
|
189
|
-
// Run immediately on start
|
|
190
|
-
this.runDedup().catch((err) => {
|
|
191
|
-
logger.error('Initial dedup failed:', err);
|
|
192
|
-
});
|
|
193
|
-
this.dedupTimer = setInterval(() => {
|
|
194
|
-
this.runDedup().catch((err) => {
|
|
195
|
-
logger.error('Scheduled dedup failed:', err);
|
|
196
|
-
});
|
|
197
|
-
}, this.config.dedupInterval);
|
|
198
|
-
}
|
|
199
|
-
async runDedup() {
|
|
200
|
-
try {
|
|
201
|
-
this.stats.dedupRuns++;
|
|
202
|
-
const dedupStats = await getDeduplicationStats();
|
|
203
|
-
this.stats.lastDedup = {
|
|
204
|
-
timestamp: new Date().toISOString(),
|
|
205
|
-
...dedupStats,
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
catch (error) {
|
|
209
|
-
logger.error('Dedup check error:', error);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
getStats() {
|
|
213
|
-
return {
|
|
214
|
-
isRunning: this.isRunning,
|
|
215
|
-
stats: this.stats,
|
|
216
|
-
config: this.config,
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
async forceLifecycleMaintenance(projectId) {
|
|
220
|
-
return await runLifecycleMaintenance(projectId);
|
|
221
|
-
}
|
|
222
|
-
async forcePruning() {
|
|
223
|
-
return await this.runPruning();
|
|
224
|
-
}
|
|
225
|
-
async forceConsolidation(projectId) {
|
|
226
|
-
return await runFullConsolidationJob(projectId);
|
|
227
|
-
}
|
|
228
|
-
async forceDedup(projectId) {
|
|
229
|
-
const { runDeduplicationJob } = await import('./consolidation.js');
|
|
230
|
-
return await runDeduplicationJob(projectId);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
let globalWorker = null;
|
|
234
|
-
export function getWorker(customConfig) {
|
|
235
|
-
if (!globalWorker) {
|
|
236
|
-
globalWorker = new SquishWorker(customConfig);
|
|
237
|
-
}
|
|
238
|
-
return globalWorker;
|
|
239
|
-
}
|
|
240
|
-
export async function startWorker() {
|
|
241
|
-
const worker = getWorker();
|
|
242
|
-
await worker.start();
|
|
243
|
-
}
|
|
244
|
-
export async function stopWorker() {
|
|
245
|
-
if (globalWorker) {
|
|
246
|
-
await globalWorker.stop();
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
export function getWorkerStats() {
|
|
250
|
-
if (!globalWorker) {
|
|
251
|
-
return null;
|
|
252
|
-
}
|
|
253
|
-
return globalWorker.getStats();
|
|
254
|
-
}
|
|
255
|
-
export async function forceLifecycleMaintenance(projectId) {
|
|
256
|
-
const worker = getWorker();
|
|
257
|
-
return await worker.forceLifecycleMaintenance(projectId);
|
|
258
|
-
}
|
|
259
|
-
export async function forcePruning() {
|
|
260
|
-
const worker = getWorker();
|
|
261
|
-
return await worker.forcePruning();
|
|
262
|
-
}
|
|
263
|
-
export async function forceConsolidation(projectId) {
|
|
264
|
-
const worker = getWorker();
|
|
265
|
-
return await worker.forceConsolidation(projectId);
|
|
266
|
-
}
|
|
267
|
-
export async function forceDedup(projectId) {
|
|
268
|
-
const worker = getWorker();
|
|
269
|
-
return await worker.forceDedup(projectId);
|
|
270
|
-
}
|
|
271
|
-
export { SquishWorker };
|
|
272
|
-
//# sourceMappingURL=worker.js.map
|
package/dist/db/adapter.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare function createDb(): Promise<(import("drizzle-orm/node-postgres").NodePgDatabase<typeof import("./drizzle/schema.js")> & {
|
|
2
|
-
$client: import("pg").Pool;
|
|
3
|
-
}) | (import("drizzle-orm/better-sqlite3").BetterSQLite3Database<typeof import("./drizzle/schema-sqlite.js")> & {
|
|
4
|
-
$client: import("better-sqlite3").Database;
|
|
5
|
-
}) | import("drizzle-orm/sql-js").SQLJsDatabase<typeof import("./drizzle/schema-sqlite.js")>>;
|
|
6
|
-
export default createDb;
|
|
7
|
-
//# sourceMappingURL=adapter.d.ts.map
|