squish-memory 1.1.5 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +32 -16
- package/CHANGELOG.md +147 -0
- package/README.md +120 -78
- package/{scripts → bin}/dependency-manager.mjs +217 -217
- package/{scripts → bin}/detect-clients.mjs +78 -78
- package/bin/install-interactive.mjs +321 -0
- package/bin/squish-mcp.mjs +44 -0
- package/bin/squish.mjs +33 -0
- package/config/mcp-migration-map.json +1 -6
- package/config/mcp-mode-semantics.json +19 -23
- package/config/mcp-remote-auth.json +3 -26
- package/config/mcp-universal.schema.json +5 -35
- package/config/settings.json +107 -52
- package/config.js +5 -0
- package/config.ts +218 -0
- package/core/adapters/config/claude-code.ts +133 -0
- package/core/adapters/config/cursor.ts +90 -0
- package/core/adapters/config/opencode.ts +89 -0
- package/core/adapters/config/windsurf.ts +90 -0
- package/core/adapters/index.ts +102 -0
- package/core/adapters/timeline.ts +116 -0
- package/core/adapters/types.ts +166 -0
- package/core/agent-preferences.ts +140 -0
- package/core/algorithms/analytics/token-estimator.ts +216 -0
- package/core/algorithms/detection/hash-filters.ts +260 -0
- package/core/algorithms/detection/semantic-ranker.ts +194 -0
- package/core/algorithms/detection/two-stage-detector.ts +421 -0
- package/core/algorithms/handlers/approve-merge.ts +215 -0
- package/core/algorithms/handlers/detect-duplicates.ts +192 -0
- package/core/algorithms/handlers/get-stats.ts +132 -0
- package/core/algorithms/handlers/list-proposals.ts +130 -0
- package/core/algorithms/handlers/preview-merge.ts +139 -0
- package/core/algorithms/handlers/reject-merge.ts +93 -0
- package/core/algorithms/handlers/reverse-merge.ts +155 -0
- package/{dist/core/algorithms/index.js → core/algorithms/index.ts} +39 -26
- package/core/algorithms/operations/cache-maintenance.ts +182 -0
- package/core/algorithms/safety/safety-checks.ts +256 -0
- package/core/algorithms/strategies/merge-strategies.ts +381 -0
- package/core/algorithms/types.ts +140 -0
- package/core/algorithms/utils/response-builder.ts +61 -0
- package/core/associations.ts +363 -0
- package/core/beliefs/decay.ts +289 -0
- package/core/beliefs/extractor.ts +131 -0
- package/core/beliefs/store.ts +557 -0
- package/core/beliefs/types.ts +38 -0
- package/core/commands/mcp-server.ts +5 -0
- package/core/compression.ts +177 -0
- package/core/config.js +2 -0
- package/core/consolidation.ts +330 -0
- package/core/context/agent-context.ts +388 -0
- package/core/context/context-paging.ts +449 -0
- package/core/context/context-window.ts +234 -0
- package/core/context/context.ts +35 -0
- package/core/embeddings/embeddings.ts +616 -0
- package/core/embeddings/google-multimodal.ts +200 -0
- package/{dist/core/local-embeddings.js → core/embeddings/local-embeddings.ts} +12 -11
- package/core/embeddings/qmd-client.ts +495 -0
- package/core/embeddings/transformers-local.ts +261 -0
- package/core/embeddings.js +4 -0
- package/core/error-handling.ts +206 -0
- package/core/external +219 -0
- package/core/graph/entity-deduplicator.ts +232 -0
- package/core/graph/graph-builder.ts +257 -0
- package/core/graph/graph-traversal.ts +490 -0
- package/core/graph/index.ts +24 -0
- package/core/graph/llm-entity-extractor.ts +402 -0
- package/core/graph/multi-hop-retrieval.ts +317 -0
- package/core/graph/relationship-extractor.ts +465 -0
- package/core/hooks/agent-hooks.ts +653 -0
- package/core/hooks/auto-tagger.ts +149 -0
- package/core/hooks/capture-filter.ts +169 -0
- package/core/hot-cache.ts +388 -0
- package/core/index.ts +10 -0
- package/core/ingestion/agent-memory.ts +167 -0
- package/core/ingestion/core-memory.ts +326 -0
- package/core/ingestion/learnings.ts +260 -0
- package/core/ingestion/signal-engine.ts +266 -0
- package/core/integrations/obsidian-vault.ts +197 -0
- package/core/layers/generator.ts +115 -0
- package/{dist/core/lib/db-client.d.ts → core/lib/db-client.ts} +168 -114
- package/core/lib/parse-embedding.ts +59 -0
- package/{dist/core/lib/schemas.js → core/lib/schemas.ts} +102 -87
- package/core/lib/types.ts +49 -0
- package/core/lib/utils.ts +151 -0
- package/core/lib/validation.ts +180 -0
- package/core/lifecycle.ts +353 -0
- package/core/logger.ts +59 -0
- package/core/memory/bridge-discovery.ts +395 -0
- package/core/memory/categorizer.ts +390 -0
- package/core/memory/conflict-detector.ts +62 -0
- package/core/memory/consolidation.ts +372 -0
- package/core/memory/context-collector.ts +75 -0
- package/core/memory/contradiction-resolver.ts +494 -0
- package/core/memory/edit-workflow.ts +174 -0
- package/core/memory/entity-extractor.ts +426 -0
- package/core/memory/entity-resolver.ts +89 -0
- package/core/memory/explain.ts +112 -0
- package/core/memory/fact-deriver.ts +300 -0
- package/core/memory/fact-extractor.ts +120 -0
- package/core/memory/feedback-tracker.ts +200 -0
- package/core/memory/hooks.ts +230 -0
- package/core/memory/hybrid-retrieval.ts +65 -0
- package/core/memory/hybrid-scorer.ts +325 -0
- package/core/memory/hybrid-search.ts +748 -0
- package/core/memory/importance.ts +319 -0
- package/{dist/core/memory/index.js → core/memory/index.ts} +11 -10
- package/core/memory/loader.ts +178 -0
- package/core/memory/markdown/markdown-storage.ts +318 -0
- package/core/memory/memories.ts +565 -0
- package/core/memory/memory-lifecycle.ts +51 -0
- package/core/memory/memory-manager.ts +53 -0
- package/core/memory/migrate.ts +173 -0
- package/core/memory/normalization.ts +30 -0
- package/core/memory/path-strengthener.ts +211 -0
- package/core/memory/progressive-disclosure.ts +392 -0
- package/core/memory/query-processor.ts +130 -0
- package/core/memory/query-rewriter.ts +153 -0
- package/core/memory/response-analyzer.ts +81 -0
- package/core/memory/retrieval-feedback.ts +276 -0
- package/core/memory/serialization.ts +83 -0
- package/core/memory/stale-cleaner.ts +147 -0
- package/core/memory/stats.ts +181 -0
- package/core/memory/telemetry.ts +392 -0
- package/core/memory/temporal-facts.ts +356 -0
- package/core/memory/temporal-parser.ts +477 -0
- package/core/memory/trigger-detector.ts +104 -0
- package/core/memory/write-gate.ts +288 -0
- package/{dist/core/places/index.js → core/places/index.ts} +12 -12
- package/core/places/memory-places.ts +339 -0
- package/core/places/places.ts +406 -0
- package/core/places/rules.ts +308 -0
- package/core/places/walking.ts +192 -0
- package/core/projects +89 -0
- package/core/projects.ts +131 -0
- package/core/redis.ts +82 -0
- package/core/responses.ts +187 -0
- package/core/runtime/trust-report.ts +195 -0
- package/core/runtime/trust-state.ts +360 -0
- package/core/scheduler/cron-scheduler.ts +590 -0
- package/core/scheduler/heartbeat.ts +91 -0
- package/{dist/core/scheduler/index.js → core/scheduler/index.ts} +8 -8
- package/core/scheduler/job-runner.ts +197 -0
- package/core/search/conversations.ts +166 -0
- package/core/search/entities.ts +46 -0
- package/core/search/folder-context.ts +154 -0
- package/core/search/graph-boost.ts +22 -0
- package/{dist/core/search/index.js → core/search/index.ts} +4 -5
- package/core/search/qmd-wrapper.ts +84 -0
- package/core/security/encrypt.ts +51 -0
- package/core/security/governance.ts +102 -0
- package/core/security/privacy.ts +108 -0
- package/core/security/secret-detector.ts +122 -0
- package/core/session/auto-load.ts +160 -0
- package/core/session/entity-tracker.ts +363 -0
- package/{dist/core/session/index.js → core/session/index.ts} +7 -7
- package/core/session/reference-resolver.ts +158 -0
- package/core/session/self-iteration-job.ts +478 -0
- package/core/session/session-hooks.ts +69 -0
- package/core/session/types.ts +36 -0
- package/core/session/working-set.ts +275 -0
- package/{dist/core/snapshots/cleanup.js → core/snapshots/cleanup.ts} +13 -12
- package/core/snapshots/comparison.ts +59 -0
- package/core/snapshots/creation.ts +139 -0
- package/core/snapshots/retrieval.ts +44 -0
- package/core/snapshots/stats.ts +63 -0
- package/core/storage/cache.ts +241 -0
- package/core/storage/database.ts +23 -0
- package/{dist/core/summarization/cleanup.js → core/summarization/cleanup.ts} +13 -12
- package/core/summarization/queries.ts +32 -0
- package/core/summarization/stats.ts +64 -0
- package/core/summarization/strategies.ts +52 -0
- package/core/summarization.ts +248 -0
- package/core/temporal-facts.ts +244 -0
- package/core/tracing/collector.ts +470 -0
- package/core/tracing/visualizer.ts +195 -0
- package/core/utils/cleanup-operations.ts +50 -0
- package/core/utils/content-extraction.ts +95 -0
- package/core/utils/filter-builder.ts +56 -0
- package/core/utils/history-traversal.ts +63 -0
- package/core/utils/memory-operations.ts +56 -0
- package/core/utils/query-operations.ts +83 -0
- package/core/utils/summarization-helpers.ts +45 -0
- package/core/utils/temporal-queries.ts +39 -0
- package/{dist/core/utils/vector-operations.js → core/utils/vector-operations.ts} +135 -129
- package/core/utils/version-management.ts +74 -0
- package/core/worker.ts +333 -0
- package/db/adapter.ts +215 -0
- package/{dist/db/bootstrap.js → db/bootstrap.ts} +388 -418
- package/db/drizzle/migrations/0000_needy_cerebro.sql +402 -0
- package/db/drizzle/migrations/meta/0000_snapshot.json +3451 -0
- package/db/drizzle/migrations/meta/_journal.json +13 -0
- package/db/drizzle/schema-sqlite.ts +1032 -0
- package/db/drizzle/schema.ts +1128 -0
- package/db/drizzle.config.ts +12 -0
- package/db/index.ts +83 -0
- package/db/init.sql +5 -0
- package/db/migrations/associations.ts +35 -0
- package/db/migrations/beliefs.ts +89 -0
- package/db/migrations/core-memory.ts +35 -0
- package/db/migrations/fts.ts +59 -0
- package/db/migrations/index.ts +54 -0
- package/db/migrations/indexes.ts +36 -0
- package/db/migrations/learnings.ts +34 -0
- package/db/migrations/maintenance.ts +68 -0
- package/db/migrations/memories.ts +22 -0
- package/db/migrations/memory-places.ts +35 -0
- package/db/migrations/places.ts +49 -0
- package/db/migrations/projects.ts +21 -0
- package/db/migrations/tier-conversion.ts +24 -0
- package/db/neon.ts +22 -0
- package/db/schema/beliefs.ts +50 -0
- package/db/schema/generator.ts +159 -0
- package/db/schema/index.ts +58 -0
- package/db/schema/learnings.ts +32 -0
- package/db/schema/memories.ts +83 -0
- package/db/schema/projects.ts +33 -0
- package/db/schema.ts +13 -0
- package/db/supabase.ts +27 -0
- package/mcp.json.example +8 -11
- package/package.json +140 -159
- package/packages/cli/package.json +22 -0
- package/packages/cli/src/commands/clean.ts +68 -0
- package/packages/cli/src/commands/context.ts +79 -0
- package/packages/cli/src/commands/doctor.ts +357 -0
- package/packages/cli/src/commands/forget.ts +72 -0
- package/packages/cli/src/commands/health.ts +36 -0
- package/packages/cli/src/commands/inspect.ts +41 -0
- package/packages/cli/src/commands/link.ts +50 -0
- package/packages/cli/src/commands/migrate.ts +93 -0
- package/packages/cli/src/commands/recall.ts +99 -0
- package/packages/cli/src/commands/recent.ts +57 -0
- package/packages/cli/src/commands/remember.ts +139 -0
- package/packages/cli/src/commands/run.ts +58 -0
- package/packages/cli/src/commands/stale.ts +43 -0
- package/packages/cli/src/commands/stats.ts +42 -0
- package/packages/cli/src/index.ts +57 -0
- package/packages/cli/tsconfig.json +24 -0
- package/packages/mcp/package.json +26 -0
- package/packages/mcp/src/index.ts +940 -0
- package/packages/mcp/tsconfig.json +20 -0
- package/skills/squish-memory/SKILL.md +38 -35
- package/skills/squish-memory/{scripts/install.sh → install.sh} +1 -1
- package/skills/squish-memory/references/claude-desktop.json +12 -0
- package/skills/squish-memory/references/openclaw.json +13 -0
- package/skills/squish-memory/references/opencode.json +14 -0
- package/config/hooks/claude-code-hooks.json +0 -39
- package/config/hooks/cursor-hooks.json +0 -30
- package/config/hooks/opencode-hooks.json +0 -30
- package/config/hooks/windsurf-hooks.json +0 -30
- package/config/mcp-cli-fallback-policy.json +0 -22
- package/config/mcp.json +0 -38
- package/config/plugin-manifest.json +0 -101
- package/config/plugin-manifest.schema.json +0 -244
- package/config/plugin.json +0 -32
- package/config/remote-memory-policy.json +0 -32
- package/core/commands/context-paging.md +0 -51
- package/core/commands/context-status.md +0 -22
- package/core/commands/context.md +0 -5
- package/core/commands/core-memory.md +0 -56
- package/core/commands/health.md +0 -5
- package/core/commands/init.md +0 -39
- package/core/commands/merge.md +0 -113
- package/core/commands/recall.md +0 -5
- package/core/commands/remember.md +0 -11
- package/core/commands/search.md +0 -10
- package/dist/config.d.ts +0 -83
- package/dist/config.js +0 -242
- package/dist/core/adapters/config/claude-code.d.ts +0 -45
- package/dist/core/adapters/config/claude-code.js +0 -113
- package/dist/core/adapters/config/cursor.d.ts +0 -26
- package/dist/core/adapters/config/cursor.js +0 -74
- package/dist/core/adapters/config/opencode.d.ts +0 -23
- package/dist/core/adapters/config/opencode.js +0 -73
- package/dist/core/adapters/config/windsurf.d.ts +0 -26
- package/dist/core/adapters/config/windsurf.js +0 -74
- package/dist/core/adapters/index.d.ts +0 -45
- package/dist/core/adapters/index.js +0 -84
- package/dist/core/adapters/scripts/install-adapter.d.ts +0 -19
- package/dist/core/adapters/scripts/install-adapter.js +0 -149
- package/dist/core/adapters/timeline.d.ts +0 -23
- package/dist/core/adapters/timeline.js +0 -88
- package/dist/core/adapters/types.d.ts +0 -157
- package/dist/core/adapters/types.js +0 -50
- package/dist/core/algorithms/analytics/token-estimator.d.ts +0 -50
- package/dist/core/algorithms/analytics/token-estimator.js +0 -154
- package/dist/core/algorithms/detection/hash-filters.d.ts +0 -47
- package/dist/core/algorithms/detection/hash-filters.js +0 -190
- package/dist/core/algorithms/detection/semantic-ranker.d.ts +0 -32
- package/dist/core/algorithms/detection/semantic-ranker.js +0 -118
- package/dist/core/algorithms/detection/two-stage-detector.d.ts +0 -52
- package/dist/core/algorithms/detection/two-stage-detector.js +0 -299
- package/dist/core/algorithms/handlers/approve-merge.d.ts +0 -22
- package/dist/core/algorithms/handlers/approve-merge.js +0 -179
- package/dist/core/algorithms/handlers/detect-duplicates.d.ts +0 -47
- package/dist/core/algorithms/handlers/detect-duplicates.js +0 -145
- package/dist/core/algorithms/handlers/get-stats.d.ts +0 -39
- package/dist/core/algorithms/handlers/get-stats.js +0 -88
- package/dist/core/algorithms/handlers/list-proposals.d.ts +0 -45
- package/dist/core/algorithms/handlers/list-proposals.js +0 -83
- package/dist/core/algorithms/handlers/preview-merge.d.ts +0 -39
- package/dist/core/algorithms/handlers/preview-merge.js +0 -93
- package/dist/core/algorithms/handlers/reject-merge.d.ts +0 -28
- package/dist/core/algorithms/handlers/reject-merge.js +0 -69
- package/dist/core/algorithms/handlers/reverse-merge.d.ts +0 -21
- package/dist/core/algorithms/handlers/reverse-merge.js +0 -121
- package/dist/core/algorithms/index.d.ts +0 -21
- package/dist/core/algorithms/operations/cache-maintenance.d.ts +0 -12
- package/dist/core/algorithms/operations/cache-maintenance.js +0 -157
- package/dist/core/algorithms/safety/safety-checks.d.ts +0 -22
- package/dist/core/algorithms/safety/safety-checks.js +0 -179
- package/dist/core/algorithms/strategies/merge-strategies.d.ts +0 -50
- package/dist/core/algorithms/strategies/merge-strategies.js +0 -288
- package/dist/core/algorithms/types.d.ts +0 -133
- package/dist/core/algorithms/types.js +0 -5
- package/dist/core/algorithms/utils/response-builder.d.ts +0 -28
- package/dist/core/algorithms/utils/response-builder.js +0 -37
- package/dist/core/associations.d.ts +0 -31
- package/dist/core/associations.js +0 -248
- package/dist/core/autosave.d.ts +0 -19
- package/dist/core/autosave.js +0 -16
- package/dist/core/commands/managed-sync.d.ts +0 -10
- package/dist/core/commands/managed-sync.js +0 -64
- package/dist/core/commands/mcp-server.d.ts +0 -3
- package/dist/core/commands/mcp-server.js +0 -739
- package/dist/core/consolidation.d.ts +0 -37
- package/dist/core/consolidation.js +0 -248
- package/dist/core/context/agent-context.d.ts +0 -106
- package/dist/core/context/agent-context.js +0 -274
- package/dist/core/context/context-paging.d.ts +0 -80
- package/dist/core/context/context-paging.js +0 -328
- package/dist/core/context/context-window.d.ts +0 -40
- package/dist/core/context/context-window.js +0 -177
- package/dist/core/context/context.d.ts +0 -7
- package/dist/core/context/context.js +0 -22
- package/dist/core/embeddings/google-multimodal.d.ts +0 -14
- package/dist/core/embeddings/google-multimodal.js +0 -142
- package/dist/core/embeddings/qmd-client.d.ts +0 -136
- package/dist/core/embeddings/qmd-client.js +0 -403
- package/dist/core/embeddings.d.ts +0 -29
- package/dist/core/embeddings.js +0 -454
- package/dist/core/error-handling.d.ts +0 -63
- package/dist/core/error-handling.js +0 -173
- package/dist/core/external-folder/index.d.ts +0 -102
- package/dist/core/external-folder/index.js +0 -294
- package/dist/core/hooks/agent-hooks.d.ts +0 -74
- package/dist/core/hooks/agent-hooks.js +0 -244
- package/dist/core/hooks/auto-tagger.d.ts +0 -19
- package/dist/core/hooks/auto-tagger.js +0 -155
- package/dist/core/hooks/capture-filter.d.ts +0 -41
- package/dist/core/hooks/capture-filter.js +0 -128
- package/dist/core/index.d.ts +0 -10
- package/dist/core/index.js +0 -14
- package/dist/core/ingestion/agent-memory.d.ts +0 -22
- package/dist/core/ingestion/agent-memory.js +0 -109
- package/dist/core/ingestion/core-memory.d.ts +0 -78
- package/dist/core/ingestion/core-memory.js +0 -226
- package/dist/core/ingestion/learnings.d.ts +0 -57
- package/dist/core/ingestion/learnings.js +0 -202
- package/dist/core/layers/generator.d.ts +0 -25
- package/dist/core/layers/generator.js +0 -76
- package/dist/core/lib/db-client.js +0 -130
- package/dist/core/lib/schemas.d.ts +0 -129
- package/dist/core/lib/utils.d.ts +0 -14
- package/dist/core/lib/utils.js +0 -90
- package/dist/core/lib/validation.d.ts +0 -38
- package/dist/core/lib/validation.js +0 -151
- package/dist/core/lifecycle.d.ts +0 -26
- package/dist/core/lifecycle.js +0 -302
- package/dist/core/local-embeddings.d.ts +0 -11
- package/dist/core/logger.d.ts +0 -16
- package/dist/core/logger.js +0 -40
- package/dist/core/mcp/client.d.ts +0 -17
- package/dist/core/mcp/client.js +0 -101
- package/dist/core/mcp/index.d.ts +0 -6
- package/dist/core/mcp/index.js +0 -6
- package/dist/core/mcp/server.d.ts +0 -18
- package/dist/core/mcp/server.js +0 -157
- package/dist/core/mcp/standalone-server.d.ts +0 -13
- package/dist/core/mcp/standalone-server.js +0 -46
- package/dist/core/mcp/tools.d.ts +0 -9
- package/dist/core/mcp/tools.js +0 -365
- package/dist/core/mcp/types.d.ts +0 -315
- package/dist/core/mcp/types.js +0 -48
- package/dist/core/memory/bridge-discovery.d.ts +0 -50
- package/dist/core/memory/bridge-discovery.js +0 -291
- package/dist/core/memory/categorizer.d.ts +0 -27
- package/dist/core/memory/categorizer.js +0 -305
- package/dist/core/memory/conflict-detector.d.ts +0 -7
- package/dist/core/memory/conflict-detector.js +0 -43
- package/dist/core/memory/consolidation.d.ts +0 -42
- package/dist/core/memory/consolidation.js +0 -303
- package/dist/core/memory/context-collector.d.ts +0 -10
- package/dist/core/memory/context-collector.js +0 -56
- package/dist/core/memory/contradiction-resolver.d.ts +0 -40
- package/dist/core/memory/contradiction-resolver.js +0 -368
- package/dist/core/memory/edit-workflow.d.ts +0 -19
- package/dist/core/memory/edit-workflow.js +0 -120
- package/dist/core/memory/entity-extractor.d.ts +0 -33
- package/dist/core/memory/entity-extractor.js +0 -336
- package/dist/core/memory/entity-resolver.d.ts +0 -23
- package/dist/core/memory/entity-resolver.js +0 -64
- package/dist/core/memory/fact-extractor.d.ts +0 -24
- package/dist/core/memory/fact-extractor.js +0 -89
- package/dist/core/memory/feedback-tracker.d.ts +0 -12
- package/dist/core/memory/feedback-tracker.js +0 -155
- package/dist/core/memory/hooks.d.ts +0 -88
- package/dist/core/memory/hooks.js +0 -174
- package/dist/core/memory/hybrid-retrieval.d.ts +0 -29
- package/dist/core/memory/hybrid-retrieval.js +0 -139
- package/dist/core/memory/hybrid-scorer.d.ts +0 -40
- package/dist/core/memory/hybrid-scorer.js +0 -284
- package/dist/core/memory/hybrid-search.d.ts +0 -20
- package/dist/core/memory/hybrid-search.js +0 -359
- package/dist/core/memory/importance.d.ts +0 -63
- package/dist/core/memory/importance.js +0 -298
- package/dist/core/memory/index.d.ts +0 -8
- package/dist/core/memory/loader.d.ts +0 -31
- package/dist/core/memory/loader.js +0 -141
- package/dist/core/memory/markdown/markdown-storage.d.ts +0 -72
- package/dist/core/memory/markdown/markdown-storage.js +0 -243
- package/dist/core/memory/memories.d.ts +0 -47
- package/dist/core/memory/memories.js +0 -449
- package/dist/core/memory/memory-lifecycle.d.ts +0 -8
- package/dist/core/memory/memory-lifecycle.js +0 -55
- package/dist/core/memory/memory-manager.d.ts +0 -15
- package/dist/core/memory/memory-manager.js +0 -46
- package/dist/core/memory/migrate.d.ts +0 -21
- package/dist/core/memory/migrate.js +0 -134
- package/dist/core/memory/normalization.d.ts +0 -22
- package/dist/core/memory/normalization.js +0 -26
- package/dist/core/memory/progressive-disclosure.d.ts +0 -43
- package/dist/core/memory/progressive-disclosure.js +0 -280
- package/dist/core/memory/query-processor.d.ts +0 -21
- package/dist/core/memory/query-processor.js +0 -72
- package/dist/core/memory/query-rewriter.d.ts +0 -13
- package/dist/core/memory/query-rewriter.js +0 -118
- package/dist/core/memory/response-analyzer.d.ts +0 -9
- package/dist/core/memory/response-analyzer.js +0 -61
- package/dist/core/memory/serialization.d.ts +0 -10
- package/dist/core/memory/serialization.js +0 -84
- package/dist/core/memory/stats.d.ts +0 -22
- package/dist/core/memory/stats.js +0 -138
- package/dist/core/memory/telemetry.d.ts +0 -69
- package/dist/core/memory/telemetry.js +0 -313
- package/dist/core/memory/temporal-facts.d.ts +0 -41
- package/dist/core/memory/temporal-facts.js +0 -283
- package/dist/core/memory/temporal-parser.d.ts +0 -32
- package/dist/core/memory/temporal-parser.js +0 -385
- package/dist/core/memory/trigger-detector.d.ts +0 -14
- package/dist/core/memory/trigger-detector.js +0 -42
- package/dist/core/memory/write-gate.d.ts +0 -54
- package/dist/core/memory/write-gate.js +0 -210
- package/dist/core/namespaces/index.d.ts +0 -71
- package/dist/core/namespaces/index.js +0 -305
- package/dist/core/namespaces/uri-parser.d.ts +0 -31
- package/dist/core/namespaces/uri-parser.js +0 -74
- package/dist/core/obsidian-vault.d.ts +0 -30
- package/dist/core/obsidian-vault.js +0 -94
- package/dist/core/places/index.d.ts +0 -14
- package/dist/core/places/memory-places.d.ts +0 -68
- package/dist/core/places/memory-places.js +0 -261
- package/dist/core/places/places.d.ts +0 -88
- package/dist/core/places/places.js +0 -314
- package/dist/core/places/rules.d.ts +0 -74
- package/dist/core/places/rules.js +0 -240
- package/dist/core/places/walking.d.ts +0 -56
- package/dist/core/places/walking.js +0 -121
- package/dist/core/projects.d.ts +0 -17
- package/dist/core/projects.js +0 -108
- package/dist/core/redis.d.ts +0 -11
- package/dist/core/redis.js +0 -69
- package/dist/core/responses.d.ts +0 -96
- package/dist/core/responses.js +0 -122
- package/dist/core/scheduler/cron-scheduler.d.ts +0 -32
- package/dist/core/scheduler/cron-scheduler.js +0 -332
- package/dist/core/scheduler/heartbeat.d.ts +0 -11
- package/dist/core/scheduler/heartbeat.js +0 -73
- package/dist/core/scheduler/index.d.ts +0 -8
- package/dist/core/scheduler/job-runner.d.ts +0 -11
- package/dist/core/scheduler/job-runner.js +0 -164
- package/dist/core/search/conversations.d.ts +0 -25
- package/dist/core/search/conversations.js +0 -110
- package/dist/core/search/entities.d.ts +0 -12
- package/dist/core/search/entities.js +0 -31
- package/dist/core/search/folder-context.d.ts +0 -25
- package/dist/core/search/folder-context.js +0 -119
- package/dist/core/search/graph-boost.d.ts +0 -7
- package/dist/core/search/graph-boost.js +0 -23
- package/dist/core/search/index.d.ts +0 -4
- package/dist/core/search/qmd-search.d.ts +0 -61
- package/dist/core/search/qmd-search.js +0 -178
- package/dist/core/security/encrypt.d.ts +0 -6
- package/dist/core/security/encrypt.js +0 -47
- package/dist/core/security/governance.d.ts +0 -26
- package/dist/core/security/governance.js +0 -79
- package/dist/core/security/privacy.d.ts +0 -23
- package/dist/core/security/privacy.js +0 -82
- package/dist/core/security/secret-detector.d.ts +0 -32
- package/dist/core/security/secret-detector.js +0 -88
- package/dist/core/session/auto-load.d.ts +0 -6
- package/dist/core/session/auto-load.js +0 -119
- package/dist/core/session/index.d.ts +0 -7
- package/dist/core/session/self-iteration-job.d.ts +0 -20
- package/dist/core/session/self-iteration-job.js +0 -282
- package/dist/core/session/session-hooks.d.ts +0 -18
- package/dist/core/session/session-hooks.js +0 -58
- package/dist/core/session/types.d.ts +0 -26
- package/dist/core/session/types.js +0 -10
- package/dist/core/session-hooks/self-iteration-job.d.ts +0 -20
- package/dist/core/session-hooks/self-iteration-job.js +0 -282
- package/dist/core/session-hooks/session-hooks.d.ts +0 -18
- package/dist/core/session-hooks/session-hooks.js +0 -58
- package/dist/core/snapshots/cleanup.d.ts +0 -9
- package/dist/core/snapshots/comparison.d.ts +0 -19
- package/dist/core/snapshots/comparison.js +0 -43
- package/dist/core/snapshots/creation.d.ts +0 -19
- package/dist/core/snapshots/creation.js +0 -126
- package/dist/core/snapshots/retrieval.d.ts +0 -7
- package/dist/core/snapshots/retrieval.js +0 -41
- package/dist/core/snapshots/stats.d.ts +0 -11
- package/dist/core/snapshots/stats.js +0 -52
- package/dist/core/snapshots.d.ts +0 -29
- package/dist/core/snapshots.js +0 -220
- package/dist/core/storage/cache.d.ts +0 -13
- package/dist/core/storage/cache.js +0 -202
- package/dist/core/storage/database.d.ts +0 -12
- package/dist/core/storage/database.js +0 -12
- package/dist/core/summarization/cleanup.d.ts +0 -9
- package/dist/core/summarization/queries.d.ts +0 -9
- package/dist/core/summarization/queries.js +0 -28
- package/dist/core/summarization/stats.d.ts +0 -14
- package/dist/core/summarization/stats.js +0 -52
- package/dist/core/summarization/strategies.d.ts +0 -24
- package/dist/core/summarization/strategies.js +0 -28
- package/dist/core/summarization.d.ts +0 -37
- package/dist/core/summarization.js +0 -188
- package/dist/core/sync/qmd-sync.d.ts +0 -94
- package/dist/core/sync/qmd-sync.js +0 -201
- package/dist/core/temporal-facts.d.ts +0 -54
- package/dist/core/temporal-facts.js +0 -193
- package/dist/core/toon.d.ts +0 -43
- package/dist/core/toon.js +0 -160
- package/dist/core/tracing/collector.d.ts +0 -111
- package/dist/core/tracing/collector.js +0 -350
- package/dist/core/tracing/visualizer.d.ts +0 -32
- package/dist/core/tracing/visualizer.js +0 -165
- package/dist/core/utils/cleanup-operations.d.ts +0 -13
- package/dist/core/utils/cleanup-operations.js +0 -44
- package/dist/core/utils/content-extraction.d.ts +0 -19
- package/dist/core/utils/content-extraction.js +0 -75
- package/dist/core/utils/filter-builder.d.ts +0 -13
- package/dist/core/utils/filter-builder.js +0 -44
- package/dist/core/utils/history-traversal.d.ts +0 -13
- package/dist/core/utils/history-traversal.js +0 -50
- package/dist/core/utils/memory-operations.d.ts +0 -17
- package/dist/core/utils/memory-operations.js +0 -43
- package/dist/core/utils/query-operations.d.ts +0 -18
- package/dist/core/utils/query-operations.js +0 -65
- package/dist/core/utils/summarization-helpers.d.ts +0 -21
- package/dist/core/utils/summarization-helpers.js +0 -38
- package/dist/core/utils/temporal-queries.d.ts +0 -13
- package/dist/core/utils/temporal-queries.js +0 -27
- package/dist/core/utils/vector-operations.d.ts +0 -71
- package/dist/core/utils/version-management.d.ts +0 -9
- package/dist/core/utils/version-management.js +0 -61
- package/dist/core/worker.d.ts +0 -82
- package/dist/core/worker.js +0 -272
- package/dist/db/adapter.d.ts +0 -7
- package/dist/db/adapter.js +0 -175
- package/dist/db/bootstrap.d.ts +0 -9
- package/dist/db/drizzle/schema-sqlite.d.ts +0 -4837
- package/dist/db/drizzle/schema-sqlite.js +0 -684
- package/dist/db/drizzle/schema.d.ts +0 -4082
- package/dist/db/drizzle/schema.js +0 -770
- package/dist/db/drizzle.config.d.ts +0 -3
- package/dist/db/drizzle.config.js +0 -12
- package/dist/db/index.d.ts +0 -7
- package/dist/db/index.js +0 -89
- package/dist/db/neon.d.ts +0 -8
- package/dist/db/neon.js +0 -20
- package/dist/db/schema/index.d.ts +0 -40
- package/dist/db/schema/index.js +0 -105
- package/dist/db/schema/tables/context-sessions.d.ts +0 -9
- package/dist/db/schema/tables/context-sessions.js +0 -37
- package/dist/db/schema/tables/conversations.d.ts +0 -9
- package/dist/db/schema/tables/conversations.js +0 -47
- package/dist/db/schema/tables/core-memory.d.ts +0 -9
- package/dist/db/schema/tables/core-memory.js +0 -41
- package/dist/db/schema/tables/entities.d.ts +0 -9
- package/dist/db/schema/tables/entities.js +0 -39
- package/dist/db/schema/tables/entity-relations.d.ts +0 -9
- package/dist/db/schema/tables/entity-relations.js +0 -31
- package/dist/db/schema/tables/learnings.d.ts +0 -9
- package/dist/db/schema/tables/learnings.js +0 -66
- package/dist/db/schema/tables/memories.d.ts +0 -9
- package/dist/db/schema/tables/memories.js +0 -161
- package/dist/db/schema/tables/memory-associations.d.ts +0 -9
- package/dist/db/schema/tables/memory-associations.js +0 -39
- package/dist/db/schema/tables/memory-hash-cache.d.ts +0 -9
- package/dist/db/schema/tables/memory-hash-cache.js +0 -29
- package/dist/db/schema/tables/memory-merge-history.d.ts +0 -9
- package/dist/db/schema/tables/memory-merge-history.js +0 -33
- package/dist/db/schema/tables/memory-merge-proposals.d.ts +0 -9
- package/dist/db/schema/tables/memory-merge-proposals.js +0 -39
- package/dist/db/schema/tables/messages.d.ts +0 -9
- package/dist/db/schema/tables/messages.js +0 -41
- package/dist/db/schema/tables/namespaces.d.ts +0 -9
- package/dist/db/schema/tables/namespaces.js +0 -37
- package/dist/db/schema/tables/projects.d.ts +0 -9
- package/dist/db/schema/tables/projects.js +0 -31
- package/dist/db/schema/tables/users.d.ts +0 -9
- package/dist/db/schema/tables/users.js +0 -27
- package/dist/db/schema.d.ts +0 -3
- package/dist/db/schema.js +0 -11
- package/dist/db/supabase.d.ts +0 -9
- package/dist/db/supabase.js +0 -24
- package/dist/index.d.ts +0 -7
- package/dist/index.js +0 -1677
- package/dist/vendor/sql.js/sql-wasm.wasm +0 -0
- package/dist/webui/server.d.ts +0 -5
- package/dist/webui/server.js +0 -642
- package/generated/mcp/manifest.json +0 -23
- package/generated/mcp/mcp-servers.json +0 -25
- package/generated/mcp/mcporter.json +0 -34
- package/generated/mcp/openclaw-memory-qmd.json +0 -17
- package/generated/mcp/runtime.json +0 -12
- package/scripts/README.md +0 -60
- package/scripts/build-release.sh +0 -36
- package/scripts/check-secrets.js +0 -132
- package/scripts/copy-runtime-assets.mjs +0 -26
- package/scripts/generate-mcp.mjs +0 -264
- package/scripts/github-release.sh +0 -77
- package/scripts/init-dirs.mjs +0 -13
- package/scripts/install-claude-code.sh +0 -85
- package/scripts/install-cursor.sh +0 -56
- package/scripts/install-hooks.sh +0 -73
- package/scripts/install-interactive.mjs +0 -357
- package/scripts/install-opencode.sh +0 -75
- package/scripts/install-plugin.mjs +0 -415
- package/scripts/install-windsurf.sh +0 -67
- package/scripts/remote-preflight.mjs +0 -62
- package/scripts/squish-fallback.mjs +0 -132
- package/scripts/test-interactive.mjs +0 -131
- package/scripts/verify-mcp.mjs +0 -214
- package/skills/squish-memory/scripts/install.mjs +0 -335
- package/skills/squish-memory/write_skill.js +0 -2
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/** Layer Extractor - Creates L0/L1 truncated layers for token-efficient hierarchical retrieval */
|
|
2
|
-
const DEFAULT_CONFIG = {
|
|
3
|
-
l0MaxLength: 50,
|
|
4
|
-
l1MaxLength: 300,
|
|
5
|
-
autoGenerate: true,
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* Extract L0/L1/L2 layers for content via truncation
|
|
9
|
-
*/
|
|
10
|
-
export async function extractLayers(content, config = {}) {
|
|
11
|
-
const l0MaxLength = config.l0MaxLength ?? DEFAULT_CONFIG.l0MaxLength;
|
|
12
|
-
const l1MaxLength = config.l1MaxLength ?? DEFAULT_CONFIG.l1MaxLength;
|
|
13
|
-
// Extract L0 and L1 in parallel
|
|
14
|
-
const [l0, l1] = await Promise.all([
|
|
15
|
-
extractL0Truncation(content, l0MaxLength),
|
|
16
|
-
extractL1Truncation(content, l1MaxLength),
|
|
17
|
-
]);
|
|
18
|
-
const l2Tokens = countTokens(content);
|
|
19
|
-
const l0Tokens = countTokens(l0 || '');
|
|
20
|
-
const l1Tokens = countTokens(l1 || '');
|
|
21
|
-
return {
|
|
22
|
-
l0: l0 ?? '',
|
|
23
|
-
l1: l1 ?? '',
|
|
24
|
-
l2: content,
|
|
25
|
-
tokenCounts: {
|
|
26
|
-
l0: l0Tokens,
|
|
27
|
-
l1: l1Tokens,
|
|
28
|
-
l2: l2Tokens,
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Extract L0: Ultra-short truncated preview (first sentence or chars)
|
|
34
|
-
*/
|
|
35
|
-
async function extractL0Truncation(content, maxLength) {
|
|
36
|
-
// Simple truncation for L0 (first sentence or chars)
|
|
37
|
-
const trimmed = content.trim();
|
|
38
|
-
const sentences = trimmed.split(/[.!?]/).filter(s => s.trim().length > 0);
|
|
39
|
-
// Take first non-empty sentence and truncate if needed
|
|
40
|
-
let result = sentences.length > 0 ? sentences[0] : trimmed.substring(0, maxLength);
|
|
41
|
-
if (result.length > maxLength) {
|
|
42
|
-
result = result.substring(0, maxLength - 3) + '...';
|
|
43
|
-
}
|
|
44
|
-
return result.trim();
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Extract L1: Short truncated preview (first 2 meaningful sentences)
|
|
48
|
-
*/
|
|
49
|
-
async function extractL1Truncation(content, maxLength) {
|
|
50
|
-
// Simple truncation for L1 (first 2 meaningful sentences)
|
|
51
|
-
const trimmed = content.trim();
|
|
52
|
-
const sentences = trimmed.split(/[.!?]/).filter(s => s.trim().length > 10);
|
|
53
|
-
// Take first meaningful sentences and truncate if needed
|
|
54
|
-
let result = sentences.length > 0
|
|
55
|
-
? sentences.slice(0, 2).join(' ').trim()
|
|
56
|
-
: trimmed.substring(0, maxLength);
|
|
57
|
-
if (result.length > maxLength) {
|
|
58
|
-
result = result.substring(0, maxLength - 3) + '...';
|
|
59
|
-
}
|
|
60
|
-
return result.trim();
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Count tokens (approximate, 4 chars = 1 token for English)
|
|
64
|
-
*/
|
|
65
|
-
function countTokens(text) {
|
|
66
|
-
// Simple approximation: 4 chars per token
|
|
67
|
-
return Math.ceil(text.length / 4);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Check if content should have layers auto-extracted
|
|
71
|
-
*/
|
|
72
|
-
export function shouldAutoGenerate(contentLength) {
|
|
73
|
-
const threshold = 500;
|
|
74
|
-
return contentLength > threshold;
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=generator.js.map
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Database Client & Schema Loading Abstraction
|
|
3
|
-
*
|
|
4
|
-
* Provides a unified interface for accessing both the database client and schema
|
|
5
|
-
* in a single call, eliminating repetitive patterns of:
|
|
6
|
-
* `const db = createDatabaseClient(await getDb()); const schema = await getSchema();`
|
|
7
|
-
*
|
|
8
|
-
* Features:
|
|
9
|
-
* - Single async call to get both db and schema
|
|
10
|
-
* - Consistent error handling with clear messages
|
|
11
|
-
* - Preserves schema caching
|
|
12
|
-
* - Provides raw connection for special cases
|
|
13
|
-
* - Helper `withDbClient` for functional programming patterns
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* // Old pattern (repetitive)
|
|
18
|
-
* const db = createDatabaseClient(await getDb());
|
|
19
|
-
* const schema = await getSchema();
|
|
20
|
-
*
|
|
21
|
-
* // New pattern (unified)
|
|
22
|
-
* const { db, schema } = await getDbClient();
|
|
23
|
-
*
|
|
24
|
-
* // With helper
|
|
25
|
-
* const result = await withDbClient(async (client) => {
|
|
26
|
-
* return await client.db.select().from(client.schema.memories);
|
|
27
|
-
* });
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
import { getDb } from '../../db/index.js';
|
|
31
|
-
import { getSchema } from '../../db/schema.js';
|
|
32
|
-
import { createDatabaseClient } from '../storage/database.js';
|
|
33
|
-
/**
|
|
34
|
-
* Internal cached schema to preserve getSchema() caching behavior
|
|
35
|
-
*/
|
|
36
|
-
let cachedSchema = null;
|
|
37
|
-
/**
|
|
38
|
-
* Get a unified database client with both db and schema.
|
|
39
|
-
*
|
|
40
|
-
* This function:
|
|
41
|
-
* 1. Calls getDb() to initialize/retrieve the database connection
|
|
42
|
-
* 2. Calls getSchema() to get the appropriate schema (with caching)
|
|
43
|
-
* 3. Wraps the db with createDatabaseClient() for unified API
|
|
44
|
-
* 4. Returns all three as a single DbClient object
|
|
45
|
-
*
|
|
46
|
-
* Error handling:
|
|
47
|
-
* - Wraps any database initialization errors with a clear message
|
|
48
|
-
* - Preserves the original error as `cause` property
|
|
49
|
-
*
|
|
50
|
-
* Schema caching:
|
|
51
|
-
* - Uses the same caching mechanism as getSchema()
|
|
52
|
-
* - Multiple calls to getDbClient() will return the same schema reference
|
|
53
|
-
*
|
|
54
|
-
* @returns Promise<DbClient> Unified client with db, schema, and raw
|
|
55
|
-
* @throws {Error} When database initialization fails, with cause attached
|
|
56
|
-
*
|
|
57
|
-
* @example
|
|
58
|
-
* ```typescript
|
|
59
|
-
* const { db, schema, raw } = await getDbClient();
|
|
60
|
-
*
|
|
61
|
-
* // Use db for queries
|
|
62
|
-
* const memories = await db.select().from(schema.memories).limit(10);
|
|
63
|
-
*
|
|
64
|
-
* // Use raw for special cases
|
|
65
|
-
* const client = (raw as any).$client;
|
|
66
|
-
* if (client && typeof client.exec === 'function') {
|
|
67
|
-
* client.exec('VACUUM');
|
|
68
|
-
* }
|
|
69
|
-
* ```
|
|
70
|
-
*/
|
|
71
|
-
export async function getDbClient() {
|
|
72
|
-
try {
|
|
73
|
-
// Get raw database connection
|
|
74
|
-
const rawDb = await getDb();
|
|
75
|
-
// Get schema (with caching)
|
|
76
|
-
if (!cachedSchema) {
|
|
77
|
-
cachedSchema = await getSchema();
|
|
78
|
-
}
|
|
79
|
-
// Create wrapped database client
|
|
80
|
-
const db = createDatabaseClient(rawDb);
|
|
81
|
-
return {
|
|
82
|
-
db,
|
|
83
|
-
schema: cachedSchema,
|
|
84
|
-
raw: rawDb,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
const message = error instanceof Error
|
|
89
|
-
? `Database initialization failed: ${error.message}`
|
|
90
|
-
: 'Database initialization failed';
|
|
91
|
-
// Wrap error with clear message while preserving cause
|
|
92
|
-
const wrappedError = new Error(message);
|
|
93
|
-
// @ts-ignore - TypeScript doesn't allow 'cause' on Error, but it's valid
|
|
94
|
-
wrappedError.cause = error;
|
|
95
|
-
throw wrappedError;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Execute an operation with a unified database client.
|
|
100
|
-
*
|
|
101
|
-
* Convenience wrapper that:
|
|
102
|
-
* 1. Calls getDbClient() to obtain client
|
|
103
|
-
* 2. Executes the provided operation
|
|
104
|
-
* 3. Ensures proper cleanup if needed (no-op currently, for future extension)
|
|
105
|
-
*
|
|
106
|
-
* @param operation - Async function that receives the DbClient and returns a result
|
|
107
|
-
* @returns Promise<T> The result returned by the operation
|
|
108
|
-
* @throws {Error} When database initialization or operation fails
|
|
109
|
-
*
|
|
110
|
-
* @example
|
|
111
|
-
* ```typescript
|
|
112
|
-
* const count = await withDbClient(async (client) => {
|
|
113
|
-
* const result = await client.db
|
|
114
|
-
* .select({ count: sql`count(*)` })
|
|
115
|
-
* .from(client.schema.memories);
|
|
116
|
-
* return result[0].count;
|
|
117
|
-
* });
|
|
118
|
-
* ```
|
|
119
|
-
*/
|
|
120
|
-
export async function withDbClient(operation) {
|
|
121
|
-
const client = await getDbClient();
|
|
122
|
-
try {
|
|
123
|
-
return await operation(client);
|
|
124
|
-
}
|
|
125
|
-
finally {
|
|
126
|
-
// Future: Add cleanup logic if needed (connection pooling, etc.)
|
|
127
|
-
// Currently getDb() handles connection pooling and reuse
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=db-client.js.map
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Zod schemas for input validation across Squish
|
|
3
|
-
* Provides consistent validation for common input types
|
|
4
|
-
*/
|
|
5
|
-
import { z } from 'zod';
|
|
6
|
-
/**
|
|
7
|
-
* Limit schema: integer between 1 and 100, default 20
|
|
8
|
-
*/
|
|
9
|
-
export declare const limitSchema: z.ZodDefault<z.ZodNumber>;
|
|
10
|
-
/**
|
|
11
|
-
* Offset schema: integer >= 0, default 0
|
|
12
|
-
*/
|
|
13
|
-
export declare const offsetSchema: z.ZodDefault<z.ZodNumber>;
|
|
14
|
-
/**
|
|
15
|
-
* Project ID/path schema: non-empty string
|
|
16
|
-
*/
|
|
17
|
-
export declare const projectIdSchema: z.ZodString;
|
|
18
|
-
/**
|
|
19
|
-
* Memory ID schema: valid UUID
|
|
20
|
-
*/
|
|
21
|
-
export declare const memoryIdSchema: z.ZodString;
|
|
22
|
-
/**
|
|
23
|
-
* Pagination schema combining limit and offset
|
|
24
|
-
*/
|
|
25
|
-
export declare const paginationSchema: z.ZodObject<{
|
|
26
|
-
limit: z.ZodDefault<z.ZodNumber>;
|
|
27
|
-
offset: z.ZodDefault<z.ZodNumber>;
|
|
28
|
-
}, "strip", z.ZodTypeAny, {
|
|
29
|
-
limit: number;
|
|
30
|
-
offset: number;
|
|
31
|
-
}, {
|
|
32
|
-
limit?: number | undefined;
|
|
33
|
-
offset?: number | undefined;
|
|
34
|
-
}>;
|
|
35
|
-
/**
|
|
36
|
-
* Search query schema: non-empty string
|
|
37
|
-
*/
|
|
38
|
-
export declare const searchQuerySchema: z.ZodString;
|
|
39
|
-
/**
|
|
40
|
-
* Memory type schema
|
|
41
|
-
*/
|
|
42
|
-
export declare const memoryTypeSchema: z.ZodEnum<["observation", "fact", "decision", "context", "preference", "note"]>;
|
|
43
|
-
/**
|
|
44
|
-
* Association type schema
|
|
45
|
-
*/
|
|
46
|
-
export declare const associationTypeSchema: z.ZodEnum<["relates_to", "supports", "contradicts", "supersedes", "duplicate"]>;
|
|
47
|
-
/**
|
|
48
|
-
* Weight schema: number between 0 and 1
|
|
49
|
-
*/
|
|
50
|
-
export declare const weightSchema: z.ZodNumber;
|
|
51
|
-
/**
|
|
52
|
-
* Learning type schema
|
|
53
|
-
*/
|
|
54
|
-
export declare const learningTypeSchema: z.ZodEnum<["success", "failure", "fix", "observation"]>;
|
|
55
|
-
/**
|
|
56
|
-
* Observation type schema
|
|
57
|
-
*/
|
|
58
|
-
export declare const observationTypeSchema: z.ZodEnum<["tool_use", "file_change", "error", "pattern", "insight"]>;
|
|
59
|
-
/**
|
|
60
|
-
* Confidence level schema
|
|
61
|
-
*/
|
|
62
|
-
export declare const confidenceLevelSchema: z.ZodEnum<["certain", "speculative", "outdated"]>;
|
|
63
|
-
/**
|
|
64
|
-
* Search input schema (common for search operations)
|
|
65
|
-
*/
|
|
66
|
-
export declare const searchInputSchema: z.ZodObject<{
|
|
67
|
-
query: z.ZodString;
|
|
68
|
-
limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
69
|
-
offset: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
70
|
-
project: z.ZodOptional<z.ZodString>;
|
|
71
|
-
type: z.ZodOptional<z.ZodEnum<["observation", "fact", "decision", "context", "preference", "note"]>>;
|
|
72
|
-
}, "strip", z.ZodTypeAny, {
|
|
73
|
-
query: string;
|
|
74
|
-
project?: string | undefined;
|
|
75
|
-
type?: "observation" | "fact" | "decision" | "context" | "preference" | "note" | undefined;
|
|
76
|
-
limit?: number | undefined;
|
|
77
|
-
offset?: number | undefined;
|
|
78
|
-
}, {
|
|
79
|
-
query: string;
|
|
80
|
-
project?: string | undefined;
|
|
81
|
-
type?: "observation" | "fact" | "decision" | "context" | "preference" | "note" | undefined;
|
|
82
|
-
limit?: number | undefined;
|
|
83
|
-
offset?: number | undefined;
|
|
84
|
-
}>;
|
|
85
|
-
/**
|
|
86
|
-
* Memory recall schema
|
|
87
|
-
*/
|
|
88
|
-
export declare const recallInputSchema: z.ZodObject<{
|
|
89
|
-
memoryId: z.ZodString;
|
|
90
|
-
limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
91
|
-
project: z.ZodOptional<z.ZodString>;
|
|
92
|
-
}, "strip", z.ZodTypeAny, {
|
|
93
|
-
memoryId: string;
|
|
94
|
-
project?: string | undefined;
|
|
95
|
-
limit?: number | undefined;
|
|
96
|
-
}, {
|
|
97
|
-
memoryId: string;
|
|
98
|
-
project?: string | undefined;
|
|
99
|
-
limit?: number | undefined;
|
|
100
|
-
}>;
|
|
101
|
-
/**
|
|
102
|
-
* Tag operation schema
|
|
103
|
-
*/
|
|
104
|
-
export declare const tagOperationSchema: z.ZodObject<{
|
|
105
|
-
action: z.ZodEnum<["add", "remove"]>;
|
|
106
|
-
tag: z.ZodString;
|
|
107
|
-
search: z.ZodOptional<z.ZodString>;
|
|
108
|
-
olderThan: z.ZodOptional<z.ZodString>;
|
|
109
|
-
type: z.ZodOptional<z.ZodEnum<["observation", "fact", "decision", "context", "preference", "note"]>>;
|
|
110
|
-
limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
111
|
-
project: z.ZodOptional<z.ZodString>;
|
|
112
|
-
}, "strip", z.ZodTypeAny, {
|
|
113
|
-
action: "add" | "remove";
|
|
114
|
-
tag: string;
|
|
115
|
-
search?: string | undefined;
|
|
116
|
-
project?: string | undefined;
|
|
117
|
-
type?: "observation" | "fact" | "decision" | "context" | "preference" | "note" | undefined;
|
|
118
|
-
limit?: number | undefined;
|
|
119
|
-
olderThan?: string | undefined;
|
|
120
|
-
}, {
|
|
121
|
-
action: "add" | "remove";
|
|
122
|
-
tag: string;
|
|
123
|
-
search?: string | undefined;
|
|
124
|
-
project?: string | undefined;
|
|
125
|
-
type?: "observation" | "fact" | "decision" | "context" | "preference" | "note" | undefined;
|
|
126
|
-
limit?: number | undefined;
|
|
127
|
-
olderThan?: string | undefined;
|
|
128
|
-
}>;
|
|
129
|
-
//# sourceMappingURL=schemas.d.ts.map
|
package/dist/core/lib/utils.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared utility functions for the squish codebase
|
|
3
|
-
*/
|
|
4
|
-
export declare function normalizeTimestamp(value: any): string | null;
|
|
5
|
-
export declare function now(): string;
|
|
6
|
-
export declare function isDatabaseUnavailableError(error: any): boolean;
|
|
7
|
-
export declare function withDatabaseErrorHandling<T>(operation: () => Promise<T>, errorMessage: string): Promise<T>;
|
|
8
|
-
export declare function clampLimit(value: number | undefined, defaultValue: number, min?: number, max?: number): number;
|
|
9
|
-
export declare function prepareEmbedding(embedding: number[] | null): {
|
|
10
|
-
embedding?: number[] | null;
|
|
11
|
-
embeddingJson?: string | null;
|
|
12
|
-
};
|
|
13
|
-
export declare function determineOverallStatus(dbStatus: string, redisOk: boolean): string;
|
|
14
|
-
//# sourceMappingURL=utils.d.ts.map
|
package/dist/core/lib/utils.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared utility functions for the squish codebase
|
|
3
|
-
*/
|
|
4
|
-
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
-
import { config } from '../../config.js';
|
|
6
|
-
import { toSqliteJson } from '../memory/serialization.js';
|
|
7
|
-
export function normalizeTimestamp(value) {
|
|
8
|
-
if (!value)
|
|
9
|
-
return null;
|
|
10
|
-
if (value instanceof Date)
|
|
11
|
-
return value.toISOString();
|
|
12
|
-
if (typeof value === 'number') {
|
|
13
|
-
try {
|
|
14
|
-
// Handle different timestamp formats using magnitude thresholds
|
|
15
|
-
// Microseconds: > 100000000000000 (e.g., 1700000000000000)
|
|
16
|
-
// Milliseconds: > 1000000000000 (e.g., 1700000000000)
|
|
17
|
-
// Seconds: <= 1000000000000 (e.g., 1700000000)
|
|
18
|
-
if (value > 100000000000000) {
|
|
19
|
-
return new Date(value / 1000).toISOString();
|
|
20
|
-
}
|
|
21
|
-
else if (value > 1000000000000) {
|
|
22
|
-
return new Date(value).toISOString();
|
|
23
|
-
}
|
|
24
|
-
else if (value >= 0) {
|
|
25
|
-
return new Date(value * 1000).toISOString();
|
|
26
|
-
}
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
catch {
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
if (typeof value === 'string') {
|
|
34
|
-
try {
|
|
35
|
-
const parsed = new Date(value);
|
|
36
|
-
if (!isNaN(parsed.getTime()))
|
|
37
|
-
return parsed.toISOString();
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
export function now() {
|
|
47
|
-
return new Date().toISOString();
|
|
48
|
-
}
|
|
49
|
-
export function isDatabaseUnavailableError(error) {
|
|
50
|
-
const message = error?.message || '';
|
|
51
|
-
return [
|
|
52
|
-
'Database unavailable',
|
|
53
|
-
'not a valid Win32 application',
|
|
54
|
-
'invalid ELF header',
|
|
55
|
-
'bun:',
|
|
56
|
-
'sql.js wasm asset not found',
|
|
57
|
-
'SQLite database initialization failed',
|
|
58
|
-
'working local SQLite driver',
|
|
59
|
-
].some((pattern) => message.includes(pattern));
|
|
60
|
-
}
|
|
61
|
-
export async function withDatabaseErrorHandling(operation, errorMessage) {
|
|
62
|
-
try {
|
|
63
|
-
return await operation();
|
|
64
|
-
}
|
|
65
|
-
catch (dbError) {
|
|
66
|
-
if (isDatabaseUnavailableError(dbError)) {
|
|
67
|
-
throw new McpError(ErrorCode.InternalError, errorMessage);
|
|
68
|
-
}
|
|
69
|
-
throw dbError;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
export function clampLimit(value, defaultValue, min = 1, max = 100) {
|
|
73
|
-
return Math.min(Math.max(value ?? defaultValue, min), max);
|
|
74
|
-
}
|
|
75
|
-
export function prepareEmbedding(embedding) {
|
|
76
|
-
if (config.isTeamMode) {
|
|
77
|
-
return { embedding: embedding ?? null };
|
|
78
|
-
}
|
|
79
|
-
return { embeddingJson: toSqliteJson(embedding ?? null) };
|
|
80
|
-
}
|
|
81
|
-
export function determineOverallStatus(dbStatus, redisOk) {
|
|
82
|
-
if ((dbStatus === 'ok' || dbStatus === 'unavailable') && redisOk) {
|
|
83
|
-
return 'ok';
|
|
84
|
-
}
|
|
85
|
-
if (dbStatus === 'unavailable') {
|
|
86
|
-
return 'degraded';
|
|
87
|
-
}
|
|
88
|
-
return 'error';
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Input validation utilities for Squish
|
|
3
|
-
* Consolidates scattered validation patterns into a unified module
|
|
4
|
-
*/
|
|
5
|
-
import { normalizeTags } from '../memory/serialization.js';
|
|
6
|
-
/**
|
|
7
|
-
* Validate and normalize a limit value with bounds checking
|
|
8
|
-
*/
|
|
9
|
-
export declare function validateLimit(value: number | string | undefined, defaultValue?: number, min?: number, max?: number): number;
|
|
10
|
-
/**
|
|
11
|
-
* Parse an integer with bounds checking
|
|
12
|
-
*/
|
|
13
|
-
export declare function parseIntBounded(value: number | string | undefined, defaultValue: number, min: number, max: number): number;
|
|
14
|
-
/**
|
|
15
|
-
* Validate a project path
|
|
16
|
-
*/
|
|
17
|
-
export declare function validateProjectPath(path: string | undefined, options?: {
|
|
18
|
-
createIfMissing?: boolean;
|
|
19
|
-
require?: boolean;
|
|
20
|
-
}): Promise<string>;
|
|
21
|
-
/**
|
|
22
|
-
* Validate a UUID
|
|
23
|
-
*/
|
|
24
|
-
export declare function validateUuid(id: string): boolean;
|
|
25
|
-
/**
|
|
26
|
-
* Require a valid UUID, throws if invalid
|
|
27
|
-
*/
|
|
28
|
-
export declare function requireUuid(id: string): string;
|
|
29
|
-
/**
|
|
30
|
-
* Validate a date value
|
|
31
|
-
*
|
|
32
|
-
* @param value - The date to validate (string, Date, number, or undefined)
|
|
33
|
-
* @returns Date object if valid, null otherwise
|
|
34
|
-
*/
|
|
35
|
-
export declare function validateDate(value: string | Date | number | undefined): Date | null;
|
|
36
|
-
export { normalizeTags };
|
|
37
|
-
export { clampLimit } from './utils.js';
|
|
38
|
-
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Input validation utilities for Squish
|
|
3
|
-
* Consolidates scattered validation patterns into a unified module
|
|
4
|
-
*/
|
|
5
|
-
import { normalizeTags } from '../memory/serialization.js';
|
|
6
|
-
/**
|
|
7
|
-
* Validate and normalize a limit value with bounds checking
|
|
8
|
-
*/
|
|
9
|
-
export function validateLimit(value, defaultValue = 20, min = 1, max = 100) {
|
|
10
|
-
// Handle undefined, null, empty string
|
|
11
|
-
if (value === undefined || value === null || value === '') {
|
|
12
|
-
return defaultValue;
|
|
13
|
-
}
|
|
14
|
-
// Convert string to number, truncate decimals
|
|
15
|
-
let num;
|
|
16
|
-
if (typeof value === 'string') {
|
|
17
|
-
const parsed = parseInt(value, 10);
|
|
18
|
-
if (isNaN(parsed)) {
|
|
19
|
-
return NaN;
|
|
20
|
-
}
|
|
21
|
-
num = parsed;
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
// Truncate decimals for numbers
|
|
25
|
-
num = Math.trunc(value);
|
|
26
|
-
}
|
|
27
|
-
// Handle NaN
|
|
28
|
-
if (isNaN(num)) {
|
|
29
|
-
return NaN;
|
|
30
|
-
}
|
|
31
|
-
// Clamp to bounds
|
|
32
|
-
return Math.min(Math.max(num, min), max);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Parse an integer with bounds checking
|
|
36
|
-
*/
|
|
37
|
-
export function parseIntBounded(value, defaultValue, min, max) {
|
|
38
|
-
return validateLimit(value, defaultValue, min, max);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Validate a project path
|
|
42
|
-
*/
|
|
43
|
-
export async function validateProjectPath(path, options) {
|
|
44
|
-
const { createIfMissing = false, require: requireProject = false } = options || {};
|
|
45
|
-
// If path is undefined, throw if required or return current directory
|
|
46
|
-
if (path === undefined || path === '') {
|
|
47
|
-
if (requireProject) {
|
|
48
|
-
throw new Error('Project path is required');
|
|
49
|
-
}
|
|
50
|
-
return process.cwd();
|
|
51
|
-
}
|
|
52
|
-
// Resolve to absolute path
|
|
53
|
-
const absolutePath = path.startsWith('/') || /^[a-zA-Z]:\\/.test(path)
|
|
54
|
-
? path
|
|
55
|
-
: path.startsWith('~')
|
|
56
|
-
? path.replace(/^~/, process.env.HOME || process.env.USERPROFILE || '')
|
|
57
|
-
: path.startsWith('.')
|
|
58
|
-
? path
|
|
59
|
-
: path;
|
|
60
|
-
// Check if project exists in database
|
|
61
|
-
const { getProjectByPath } = await import('../projects.js');
|
|
62
|
-
const existingProject = await getProjectByPath(absolutePath);
|
|
63
|
-
if (existingProject) {
|
|
64
|
-
return absolutePath;
|
|
65
|
-
}
|
|
66
|
-
// Project doesn't exist
|
|
67
|
-
if (requireProject) {
|
|
68
|
-
throw new Error(`Project not found: ${absolutePath}`);
|
|
69
|
-
}
|
|
70
|
-
if (createIfMissing) {
|
|
71
|
-
const { ensureProject } = await import('../projects.js');
|
|
72
|
-
await ensureProject(absolutePath);
|
|
73
|
-
return absolutePath;
|
|
74
|
-
}
|
|
75
|
-
// Return the path even if it doesn't exist in database (for non-db validation)
|
|
76
|
-
return absolutePath;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Validate a UUID
|
|
80
|
-
*/
|
|
81
|
-
export function validateUuid(id) {
|
|
82
|
-
if (typeof id !== 'string' || !id) {
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
|
-
// UUID v4/v5 regex pattern (8-4-4-4-12 hex digits)
|
|
86
|
-
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
87
|
-
return uuidRegex.test(id);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Require a valid UUID, throws if invalid
|
|
91
|
-
*/
|
|
92
|
-
export function requireUuid(id) {
|
|
93
|
-
if (!validateUuid(id)) {
|
|
94
|
-
throw new Error('Invalid UUID');
|
|
95
|
-
}
|
|
96
|
-
return id;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Validate a date value
|
|
100
|
-
*
|
|
101
|
-
* @param value - The date to validate (string, Date, number, or undefined)
|
|
102
|
-
* @returns Date object if valid, null otherwise
|
|
103
|
-
*/
|
|
104
|
-
export function validateDate(value) {
|
|
105
|
-
if (!value) {
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
try {
|
|
109
|
-
let date;
|
|
110
|
-
if (value instanceof Date) {
|
|
111
|
-
date = value;
|
|
112
|
-
}
|
|
113
|
-
else if (typeof value === 'number') {
|
|
114
|
-
// Handle both milliseconds and seconds timestamps
|
|
115
|
-
if (value > 100000000000000) {
|
|
116
|
-
// Microseconds, convert to milliseconds
|
|
117
|
-
date = new Date(value / 1000);
|
|
118
|
-
}
|
|
119
|
-
else if (value > 1000000000000) {
|
|
120
|
-
// Milliseconds
|
|
121
|
-
date = new Date(value);
|
|
122
|
-
}
|
|
123
|
-
else if (value >= 0) {
|
|
124
|
-
// Seconds
|
|
125
|
-
date = new Date(value * 1000);
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
return null;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
else if (typeof value === 'string') {
|
|
132
|
-
date = new Date(value);
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
return null;
|
|
136
|
-
}
|
|
137
|
-
// Check if date is valid
|
|
138
|
-
if (isNaN(date.getTime())) {
|
|
139
|
-
return null;
|
|
140
|
-
}
|
|
141
|
-
return date;
|
|
142
|
-
}
|
|
143
|
-
catch {
|
|
144
|
-
return null;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
// Re-export normalizeTags for tag validation
|
|
148
|
-
export { normalizeTags };
|
|
149
|
-
// Re-export clampLimit for backward compatibility
|
|
150
|
-
export { clampLimit } from './utils.js';
|
|
151
|
-
//# sourceMappingURL=validation.js.map
|
package/dist/core/lifecycle.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Memory Lifecycle Management
|
|
3
|
-
* Implements sector-based decay, tier classification, and eviction policies
|
|
4
|
-
*
|
|
5
|
-
* Decay Formula: newScore = importanceScore * (1 - decayRate/100)^days
|
|
6
|
-
* - decayRate: per-memory integer (e.g., 30 = 30% decay per decay cycle)
|
|
7
|
-
* - days: days since lastDecayAt
|
|
8
|
-
* - Tier demotion occurs when score drops below decayThreshold
|
|
9
|
-
* - Cold memories below threshold get status = 'expired'
|
|
10
|
-
*/
|
|
11
|
-
export interface LifecycleStats {
|
|
12
|
-
decayed: number;
|
|
13
|
-
evicted: number;
|
|
14
|
-
promoted: number;
|
|
15
|
-
tierChanges: {
|
|
16
|
-
hot: number;
|
|
17
|
-
warm: number;
|
|
18
|
-
cold: number;
|
|
19
|
-
};
|
|
20
|
-
expired: number;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Run full lifecycle maintenance on all memories
|
|
24
|
-
*/
|
|
25
|
-
export declare function runLifecycleMaintenance(projectId?: string): Promise<LifecycleStats>;
|
|
26
|
-
//# sourceMappingURL=lifecycle.d.ts.map
|