squish-memory 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +20 -0
- package/.claude-plugin/plugin.json +32 -0
- package/.mcp.json +14 -0
- package/LICENSE +21 -0
- package/README.md +556 -0
- package/commands/context-paging.md +51 -0
- package/commands/context-status.md +22 -0
- package/commands/context.md +5 -0
- package/commands/core-memory.md +56 -0
- package/commands/health.md +5 -0
- package/commands/init.md +39 -0
- package/commands/merge.md +113 -0
- package/commands/observe.md +5 -0
- package/commands/recall.md +5 -0
- package/commands/remember.md +11 -0
- package/commands/search.md +10 -0
- package/dist/adapters/claude-code/capture.d.ts +11 -0
- package/dist/adapters/claude-code/capture.d.ts.map +1 -0
- package/dist/adapters/claude-code/capture.js +100 -0
- package/dist/adapters/claude-code/capture.js.map +1 -0
- package/dist/adapters/claude-code/index.d.ts +5 -0
- package/dist/adapters/claude-code/index.d.ts.map +1 -0
- package/dist/adapters/claude-code/index.js +6 -0
- package/dist/adapters/claude-code/index.js.map +1 -0
- package/dist/adapters/claude-code/injection.d.ts +34 -0
- package/dist/adapters/claude-code/injection.d.ts.map +1 -0
- package/dist/adapters/claude-code/injection.js +127 -0
- package/dist/adapters/claude-code/injection.js.map +1 -0
- package/dist/adapters/claude-code/plugin-wrapper.d.ts +21 -0
- package/dist/adapters/claude-code/plugin-wrapper.d.ts.map +1 -0
- package/dist/adapters/claude-code/plugin-wrapper.js +239 -0
- package/dist/adapters/claude-code/plugin-wrapper.js.map +1 -0
- package/dist/adapters/claude-code/types.d.ts +46 -0
- package/dist/adapters/claude-code/types.d.ts.map +1 -0
- package/dist/adapters/claude-code/types.js +6 -0
- package/dist/adapters/claude-code/types.js.map +1 -0
- package/dist/algorithms/merge/analytics/token-estimator.d.ts +50 -0
- package/dist/algorithms/merge/analytics/token-estimator.d.ts.map +1 -0
- package/dist/algorithms/merge/analytics/token-estimator.js +154 -0
- package/dist/algorithms/merge/analytics/token-estimator.js.map +1 -0
- package/dist/algorithms/merge/detection/hash-filters.d.ts +47 -0
- package/dist/algorithms/merge/detection/hash-filters.d.ts.map +1 -0
- package/dist/algorithms/merge/detection/hash-filters.js +190 -0
- package/dist/algorithms/merge/detection/hash-filters.js.map +1 -0
- package/dist/algorithms/merge/detection/semantic-ranker.d.ts +32 -0
- package/dist/algorithms/merge/detection/semantic-ranker.d.ts.map +1 -0
- package/dist/algorithms/merge/detection/semantic-ranker.js +118 -0
- package/dist/algorithms/merge/detection/semantic-ranker.js.map +1 -0
- package/dist/algorithms/merge/detection/two-stage-detector.d.ts +49 -0
- package/dist/algorithms/merge/detection/two-stage-detector.d.ts.map +1 -0
- package/dist/algorithms/merge/detection/two-stage-detector.js +185 -0
- package/dist/algorithms/merge/detection/two-stage-detector.js.map +1 -0
- package/dist/algorithms/merge/handlers/approve-merge.d.ts +22 -0
- package/dist/algorithms/merge/handlers/approve-merge.d.ts.map +1 -0
- package/dist/algorithms/merge/handlers/approve-merge.js +179 -0
- package/dist/algorithms/merge/handlers/approve-merge.js.map +1 -0
- package/dist/algorithms/merge/handlers/detect-duplicates.d.ts +47 -0
- package/dist/algorithms/merge/handlers/detect-duplicates.d.ts.map +1 -0
- package/dist/algorithms/merge/handlers/detect-duplicates.js +165 -0
- package/dist/algorithms/merge/handlers/detect-duplicates.js.map +1 -0
- package/dist/algorithms/merge/handlers/get-stats.d.ts +39 -0
- package/dist/algorithms/merge/handlers/get-stats.d.ts.map +1 -0
- package/dist/algorithms/merge/handlers/get-stats.js +88 -0
- package/dist/algorithms/merge/handlers/get-stats.js.map +1 -0
- package/dist/algorithms/merge/handlers/list-proposals.d.ts +45 -0
- package/dist/algorithms/merge/handlers/list-proposals.d.ts.map +1 -0
- package/dist/algorithms/merge/handlers/list-proposals.js +83 -0
- package/dist/algorithms/merge/handlers/list-proposals.js.map +1 -0
- package/dist/algorithms/merge/handlers/preview-merge.d.ts +39 -0
- package/dist/algorithms/merge/handlers/preview-merge.d.ts.map +1 -0
- package/dist/algorithms/merge/handlers/preview-merge.js +93 -0
- package/dist/algorithms/merge/handlers/preview-merge.js.map +1 -0
- package/dist/algorithms/merge/handlers/reject-merge.d.ts +28 -0
- package/dist/algorithms/merge/handlers/reject-merge.d.ts.map +1 -0
- package/dist/algorithms/merge/handlers/reject-merge.js +69 -0
- package/dist/algorithms/merge/handlers/reject-merge.js.map +1 -0
- package/dist/algorithms/merge/handlers/reverse-merge.d.ts +21 -0
- package/dist/algorithms/merge/handlers/reverse-merge.d.ts.map +1 -0
- package/dist/algorithms/merge/handlers/reverse-merge.js +121 -0
- package/dist/algorithms/merge/handlers/reverse-merge.js.map +1 -0
- package/dist/algorithms/merge/safety/safety-checks.d.ts +22 -0
- package/dist/algorithms/merge/safety/safety-checks.d.ts.map +1 -0
- package/dist/algorithms/merge/safety/safety-checks.js +215 -0
- package/dist/algorithms/merge/safety/safety-checks.js.map +1 -0
- package/dist/algorithms/merge/strategies/merge-strategies.d.ts +32 -0
- package/dist/algorithms/merge/strategies/merge-strategies.d.ts.map +1 -0
- package/dist/algorithms/merge/strategies/merge-strategies.js +337 -0
- package/dist/algorithms/merge/strategies/merge-strategies.js.map +1 -0
- package/dist/api/web/web.d.ts +4 -0
- package/dist/api/web/web.d.ts.map +1 -0
- package/dist/api/web/web.js +484 -0
- package/dist/api/web/web.js.map +1 -0
- package/dist/config.d.ts +28 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +83 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-memory.d.ts +22 -0
- package/dist/core/agent-memory.d.ts.map +1 -0
- package/dist/core/agent-memory.js +111 -0
- package/dist/core/agent-memory.js.map +1 -0
- package/dist/core/associations.d.ts +32 -0
- package/dist/core/associations.d.ts.map +1 -0
- package/dist/core/associations.js +249 -0
- package/dist/core/associations.js.map +1 -0
- package/dist/core/cache.d.ts +13 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +202 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/consolidation.d.ts +6 -0
- package/dist/core/consolidation.d.ts.map +1 -0
- package/dist/core/consolidation.js +40 -0
- package/dist/core/consolidation.js.map +1 -0
- package/dist/core/context-paging.d.ts +90 -0
- package/dist/core/context-paging.d.ts.map +1 -0
- package/dist/core/context-paging.js +348 -0
- package/dist/core/context-paging.js.map +1 -0
- package/dist/core/context.d.ts +7 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +24 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/core-memory.d.ts +73 -0
- package/dist/core/core-memory.d.ts.map +1 -0
- package/dist/core/core-memory.js +214 -0
- package/dist/core/core-memory.js.map +1 -0
- package/dist/core/database.d.ts +12 -0
- package/dist/core/database.d.ts.map +1 -0
- package/dist/core/database.js +12 -0
- package/dist/core/database.js.map +1 -0
- package/dist/core/embeddings/qmd-client.d.ts +136 -0
- package/dist/core/embeddings/qmd-client.d.ts.map +1 -0
- package/dist/core/embeddings/qmd-client.js +403 -0
- package/dist/core/embeddings/qmd-client.js.map +1 -0
- package/dist/core/embeddings/qmd-provider.d.ts +65 -0
- package/dist/core/embeddings/qmd-provider.d.ts.map +1 -0
- package/dist/core/embeddings/qmd-provider.js +133 -0
- package/dist/core/embeddings/qmd-provider.js.map +1 -0
- package/dist/core/embeddings.d.ts +19 -0
- package/dist/core/embeddings.d.ts.map +1 -0
- package/dist/core/embeddings.js +297 -0
- package/dist/core/embeddings.js.map +1 -0
- package/dist/core/governance.d.ts +21 -0
- package/dist/core/governance.d.ts.map +1 -0
- package/dist/core/governance.js +64 -0
- package/dist/core/governance.js.map +1 -0
- package/dist/core/index.d.ts +10 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +14 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/lifecycle.d.ts +19 -0
- package/dist/core/lifecycle.d.ts.map +1 -0
- package/dist/core/lifecycle.js +182 -0
- package/dist/core/lifecycle.js.map +1 -0
- package/dist/core/local-embeddings.d.ts +14 -0
- package/dist/core/local-embeddings.d.ts.map +1 -0
- package/dist/core/local-embeddings.js +94 -0
- package/dist/core/local-embeddings.js.map +1 -0
- package/dist/core/logger.d.ts +16 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +34 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/memory/bridge-discovery.d.ts +50 -0
- package/dist/core/memory/bridge-discovery.d.ts.map +1 -0
- package/dist/core/memory/bridge-discovery.js +291 -0
- package/dist/core/memory/bridge-discovery.js.map +1 -0
- package/dist/core/memory/entity-extractor.d.ts +33 -0
- package/dist/core/memory/entity-extractor.d.ts.map +1 -0
- package/dist/core/memory/entity-extractor.js +336 -0
- package/dist/core/memory/entity-extractor.js.map +1 -0
- package/dist/core/memory/entity-resolver.d.ts +23 -0
- package/dist/core/memory/entity-resolver.d.ts.map +1 -0
- package/dist/core/memory/entity-resolver.js +64 -0
- package/dist/core/memory/entity-resolver.js.map +1 -0
- package/dist/core/memory/fact-extractor.d.ts +24 -0
- package/dist/core/memory/fact-extractor.d.ts.map +1 -0
- package/dist/core/memory/fact-extractor.js +89 -0
- package/dist/core/memory/fact-extractor.js.map +1 -0
- package/dist/core/memory/hybrid-retrieval.d.ts +30 -0
- package/dist/core/memory/hybrid-retrieval.d.ts.map +1 -0
- package/dist/core/memory/hybrid-retrieval.js +63 -0
- package/dist/core/memory/hybrid-retrieval.js.map +1 -0
- package/dist/core/memory/hybrid-scorer.d.ts +51 -0
- package/dist/core/memory/hybrid-scorer.d.ts.map +1 -0
- package/dist/core/memory/hybrid-scorer.js +248 -0
- package/dist/core/memory/hybrid-scorer.js.map +1 -0
- package/dist/core/memory/index.d.ts +8 -0
- package/dist/core/memory/index.d.ts.map +1 -0
- package/dist/core/memory/index.js +10 -0
- package/dist/core/memory/index.js.map +1 -0
- package/dist/core/memory/memories.d.ts +35 -0
- package/dist/core/memory/memories.d.ts.map +1 -0
- package/dist/core/memory/memories.js +338 -0
- package/dist/core/memory/memories.js.map +1 -0
- package/dist/core/memory/memory-manager.d.ts +15 -0
- package/dist/core/memory/memory-manager.d.ts.map +1 -0
- package/dist/core/memory/memory-manager.js +46 -0
- package/dist/core/memory/memory-manager.js.map +1 -0
- package/dist/core/memory/query-processor.d.ts +21 -0
- package/dist/core/memory/query-processor.d.ts.map +1 -0
- package/dist/core/memory/query-processor.js +72 -0
- package/dist/core/memory/query-processor.js.map +1 -0
- package/dist/core/memory/serialization.d.ts +6 -0
- package/dist/core/memory/serialization.d.ts.map +1 -0
- package/dist/core/memory/serialization.js +35 -0
- package/dist/core/memory/serialization.js.map +1 -0
- package/dist/core/memory/temporal-parser.d.ts +32 -0
- package/dist/core/memory/temporal-parser.d.ts.map +1 -0
- package/dist/core/memory/temporal-parser.js +385 -0
- package/dist/core/memory/temporal-parser.js.map +1 -0
- package/dist/core/observations.d.ts +26 -0
- package/dist/core/observations.d.ts.map +1 -0
- package/dist/core/observations.js +118 -0
- package/dist/core/observations.js.map +1 -0
- package/dist/core/privacy.d.ts +23 -0
- package/dist/core/privacy.d.ts.map +1 -0
- package/dist/core/privacy.js +82 -0
- package/dist/core/privacy.js.map +1 -0
- package/dist/core/projects.d.ts +10 -0
- package/dist/core/projects.d.ts.map +1 -0
- package/dist/core/projects.js +66 -0
- package/dist/core/projects.js.map +1 -0
- package/dist/core/redis.d.ts +11 -0
- package/dist/core/redis.d.ts.map +1 -0
- package/dist/core/redis.js +69 -0
- package/dist/core/redis.js.map +1 -0
- package/dist/core/requirements.d.ts +20 -0
- package/dist/core/requirements.d.ts.map +1 -0
- package/dist/core/requirements.js +35 -0
- package/dist/core/requirements.js.map +1 -0
- package/dist/core/search/conversations.d.ts +25 -0
- package/dist/core/search/conversations.d.ts.map +1 -0
- package/dist/core/search/conversations.js +112 -0
- package/dist/core/search/conversations.js.map +1 -0
- package/dist/core/search/entities.d.ts +12 -0
- package/dist/core/search/entities.d.ts.map +1 -0
- package/dist/core/search/entities.js +34 -0
- package/dist/core/search/entities.js.map +1 -0
- package/dist/core/search/folder-context.d.ts +25 -0
- package/dist/core/search/folder-context.d.ts.map +1 -0
- package/dist/core/search/folder-context.js +119 -0
- package/dist/core/search/folder-context.js.map +1 -0
- package/dist/core/search/index.d.ts +4 -0
- package/dist/core/search/index.d.ts.map +1 -0
- package/dist/core/search/index.js +5 -0
- package/dist/core/search/index.js.map +1 -0
- package/dist/core/search/qmd-search.d.ts +61 -0
- package/dist/core/search/qmd-search.d.ts.map +1 -0
- package/dist/core/search/qmd-search.js +178 -0
- package/dist/core/search/qmd-search.js.map +1 -0
- package/dist/core/secret-detector.d.ts +32 -0
- package/dist/core/secret-detector.d.ts.map +1 -0
- package/dist/core/secret-detector.js +88 -0
- package/dist/core/secret-detector.js.map +1 -0
- package/dist/core/snapshots/cleanup.d.ts +9 -0
- package/dist/core/snapshots/cleanup.d.ts.map +1 -0
- package/dist/core/snapshots/cleanup.js +12 -0
- package/dist/core/snapshots/cleanup.js.map +1 -0
- package/dist/core/snapshots/comparison.d.ts +19 -0
- package/dist/core/snapshots/comparison.d.ts.map +1 -0
- package/dist/core/snapshots/comparison.js +37 -0
- package/dist/core/snapshots/comparison.js.map +1 -0
- package/dist/core/snapshots/creation.d.ts +19 -0
- package/dist/core/snapshots/creation.d.ts.map +1 -0
- package/dist/core/snapshots/creation.js +126 -0
- package/dist/core/snapshots/creation.js.map +1 -0
- package/dist/core/snapshots/retrieval.d.ts +7 -0
- package/dist/core/snapshots/retrieval.d.ts.map +1 -0
- package/dist/core/snapshots/retrieval.js +41 -0
- package/dist/core/snapshots/retrieval.js.map +1 -0
- package/dist/core/snapshots/stats.d.ts +11 -0
- package/dist/core/snapshots/stats.d.ts.map +1 -0
- package/dist/core/snapshots/stats.js +52 -0
- package/dist/core/snapshots/stats.js.map +1 -0
- package/dist/core/snapshots.d.ts +29 -0
- package/dist/core/snapshots.d.ts.map +1 -0
- package/dist/core/snapshots.js +220 -0
- package/dist/core/snapshots.js.map +1 -0
- package/dist/core/summarization/cleanup.d.ts +9 -0
- package/dist/core/summarization/cleanup.d.ts.map +1 -0
- package/dist/core/summarization/cleanup.js +12 -0
- package/dist/core/summarization/cleanup.js.map +1 -0
- package/dist/core/summarization/queries.d.ts +9 -0
- package/dist/core/summarization/queries.d.ts.map +1 -0
- package/dist/core/summarization/queries.js +28 -0
- package/dist/core/summarization/queries.js.map +1 -0
- package/dist/core/summarization/stats.d.ts +14 -0
- package/dist/core/summarization/stats.d.ts.map +1 -0
- package/dist/core/summarization/stats.js +52 -0
- package/dist/core/summarization/stats.js.map +1 -0
- package/dist/core/summarization/strategies.d.ts +24 -0
- package/dist/core/summarization/strategies.d.ts.map +1 -0
- package/dist/core/summarization/strategies.js +28 -0
- package/dist/core/summarization/strategies.js.map +1 -0
- package/dist/core/summarization.d.ts +37 -0
- package/dist/core/summarization.d.ts.map +1 -0
- package/dist/core/summarization.js +188 -0
- package/dist/core/summarization.js.map +1 -0
- package/dist/core/sync/qmd-sync.d.ts +106 -0
- package/dist/core/sync/qmd-sync.d.ts.map +1 -0
- package/dist/core/sync/qmd-sync.js +213 -0
- package/dist/core/sync/qmd-sync.js.map +1 -0
- package/dist/core/temporal-facts.d.ts +54 -0
- package/dist/core/temporal-facts.d.ts.map +1 -0
- package/dist/core/temporal-facts.js +193 -0
- package/dist/core/temporal-facts.js.map +1 -0
- package/dist/core/utils/cleanup-operations.d.ts +13 -0
- package/dist/core/utils/cleanup-operations.d.ts.map +1 -0
- package/dist/core/utils/cleanup-operations.js +44 -0
- package/dist/core/utils/cleanup-operations.js.map +1 -0
- package/dist/core/utils/content-extraction.d.ts +19 -0
- package/dist/core/utils/content-extraction.d.ts.map +1 -0
- package/dist/core/utils/content-extraction.js +65 -0
- package/dist/core/utils/content-extraction.js.map +1 -0
- package/dist/core/utils/filter-builder.d.ts +13 -0
- package/dist/core/utils/filter-builder.d.ts.map +1 -0
- package/dist/core/utils/filter-builder.js +44 -0
- package/dist/core/utils/filter-builder.js.map +1 -0
- package/dist/core/utils/history-traversal.d.ts +13 -0
- package/dist/core/utils/history-traversal.d.ts.map +1 -0
- package/dist/core/utils/history-traversal.js +50 -0
- package/dist/core/utils/history-traversal.js.map +1 -0
- package/dist/core/utils/memory-operations.d.ts +17 -0
- package/dist/core/utils/memory-operations.d.ts.map +1 -0
- package/dist/core/utils/memory-operations.js +41 -0
- package/dist/core/utils/memory-operations.js.map +1 -0
- package/dist/core/utils/query-operations.d.ts +18 -0
- package/dist/core/utils/query-operations.d.ts.map +1 -0
- package/dist/core/utils/query-operations.js +65 -0
- package/dist/core/utils/query-operations.js.map +1 -0
- package/dist/core/utils/summarization-helpers.d.ts +21 -0
- package/dist/core/utils/summarization-helpers.d.ts.map +1 -0
- package/dist/core/utils/summarization-helpers.js +35 -0
- package/dist/core/utils/summarization-helpers.js.map +1 -0
- package/dist/core/utils/temporal-queries.d.ts +13 -0
- package/dist/core/utils/temporal-queries.d.ts.map +1 -0
- package/dist/core/utils/temporal-queries.js +27 -0
- package/dist/core/utils/temporal-queries.js.map +1 -0
- package/dist/core/utils/version-management.d.ts +9 -0
- package/dist/core/utils/version-management.d.ts.map +1 -0
- package/dist/core/utils/version-management.js +61 -0
- package/dist/core/utils/version-management.js.map +1 -0
- package/dist/core/utils.d.ts +13 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/core/utils.js +51 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/core/worker.d.ts +62 -0
- package/dist/core/worker.d.ts.map +1 -0
- package/dist/core/worker.js +186 -0
- package/dist/core/worker.js.map +1 -0
- package/dist/db/adapter.d.ts +6 -0
- package/dist/db/adapter.d.ts.map +1 -0
- package/dist/db/adapter.js +43 -0
- package/dist/db/adapter.js.map +1 -0
- package/dist/db/bootstrap.d.ts +9 -0
- package/dist/db/bootstrap.d.ts.map +1 -0
- package/dist/db/bootstrap.js +444 -0
- package/dist/db/bootstrap.js.map +1 -0
- package/dist/db/index.d.ts +11 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +43 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +3 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +11 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/drizzle/schema-sqlite.d.ts +3046 -0
- package/dist/drizzle/schema-sqlite.d.ts.map +1 -0
- package/dist/drizzle/schema-sqlite.js +405 -0
- package/dist/drizzle/schema-sqlite.js.map +1 -0
- package/dist/drizzle/schema.d.ts +2969 -0
- package/dist/drizzle/schema.d.ts.map +1 -0
- package/dist/drizzle/schema.js +555 -0
- package/dist/drizzle/schema.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +784 -0
- package/dist/index.js.map +1 -0
- package/hooks/hooks.json +52 -0
- package/hooks/post-tool-use.js +26 -0
- package/hooks/session-end.js +28 -0
- package/hooks/session-start.js +33 -0
- package/hooks/user-prompt-submit.js +26 -0
- package/hooks/utils.js +153 -0
- package/npx-installer.js +208 -0
- package/package.json +101 -0
- package/plugin.json +32 -0
- package/skills/memory-guide/SKILL.md +198 -0
- package/skills/squish-memory/SKILL.md +87 -0
- package/skills/squish-memory/install.sh +91 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Context Status
|
|
2
|
+
|
|
3
|
+
View working set status and core memory usage.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```
|
|
7
|
+
/context-status
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## What it shows
|
|
11
|
+
- **Core Memory**: Size usage and percentage
|
|
12
|
+
- **Working Set**: How many memories you've loaded
|
|
13
|
+
- **Available**: Total memories and observations in the database
|
|
14
|
+
|
|
15
|
+
**Note**: Claude manages its own context and token limits intelligently. This shows what memories you've loaded into your working set for organization.
|
|
16
|
+
|
|
17
|
+
## Example
|
|
18
|
+
```
|
|
19
|
+
/context-status
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Provides a comprehensive view of your memory system state.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Manage core memory (view, edit, or append to always-in-context sections)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Core Memory Management
|
|
6
|
+
|
|
7
|
+
Manage always-in-context core memory sections: view all sections, edit a specific section, or append text to a section.
|
|
8
|
+
|
|
9
|
+
## Actions
|
|
10
|
+
|
|
11
|
+
### view
|
|
12
|
+
View all core memory sections and statistics.
|
|
13
|
+
- Displays all 4 sections: persona, user_info, project_context, working_notes
|
|
14
|
+
- Shows section sizes and modification timestamps
|
|
15
|
+
- No additional parameters required
|
|
16
|
+
|
|
17
|
+
### edit
|
|
18
|
+
Replace the entire content of a core memory section.
|
|
19
|
+
- Completely replaces the section content
|
|
20
|
+
- Use when you want to rewrite an entire section
|
|
21
|
+
- Includes before/after comparison in response
|
|
22
|
+
|
|
23
|
+
### append
|
|
24
|
+
Append text to an existing core memory section.
|
|
25
|
+
- Adds text to the end of a section
|
|
26
|
+
- Useful for incremental updates
|
|
27
|
+
- Preserves existing content
|
|
28
|
+
|
|
29
|
+
## Usage Examples
|
|
30
|
+
|
|
31
|
+
View all core memory:
|
|
32
|
+
```
|
|
33
|
+
/core-memory action=view projectId=my-project
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Edit the persona section:
|
|
37
|
+
```
|
|
38
|
+
/core-memory action=edit projectId=my-project section=persona content="I am an expert developer who specializes in TypeScript and React..."
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Append to project context:
|
|
42
|
+
```
|
|
43
|
+
/core-memory action=append projectId=my-project section=project_context text="New framework: Next.js 14 with App Router"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Append working notes:
|
|
47
|
+
```
|
|
48
|
+
/core-memory action=append projectId=my-project section=working_notes text="TODO: Implement authentication system"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Core Memory Sections
|
|
52
|
+
|
|
53
|
+
- **persona**: Your personality, communication style, and preferences
|
|
54
|
+
- **user_info**: Information about you (name, experience, goals)
|
|
55
|
+
- **project_context**: Project structure, tech stack, and conventions
|
|
56
|
+
- **working_notes**: Current thoughts, TODOs, and active work items
|
package/commands/init.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Initialize Squish memory system for the current project
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Squish Initialization
|
|
6
|
+
|
|
7
|
+
Initializes the Squish memory system for your current project. This creates the necessary database structure and default settings.
|
|
8
|
+
|
|
9
|
+
## What it does:
|
|
10
|
+
|
|
11
|
+
- Creates the `.squish/` directory in your project
|
|
12
|
+
- Initializes the SQLite database
|
|
13
|
+
- Sets up core memory sections (persona, user_info, project_context, working_notes)
|
|
14
|
+
- Creates project and user records
|
|
15
|
+
|
|
16
|
+
## Usage:
|
|
17
|
+
|
|
18
|
+
Run this command once when starting to use Squish in a new project:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
/squish:init
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
After initialization, Squish will automatically:
|
|
25
|
+
- Capture context during your session
|
|
26
|
+
- Store important information you share
|
|
27
|
+
- Enable memory search across conversations
|
|
28
|
+
|
|
29
|
+
## Requirements:
|
|
30
|
+
|
|
31
|
+
- Node.js 18+ installed
|
|
32
|
+
- Write access to current directory
|
|
33
|
+
- No additional setup needed
|
|
34
|
+
|
|
35
|
+
## Notes:
|
|
36
|
+
|
|
37
|
+
- Safe to run multiple times (checks if already initialized)
|
|
38
|
+
- All data stored locally in `.squish/` directory
|
|
39
|
+
- Can be deleted anytime to reset memory
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Manage memory merges (detect, list, preview, stats, approve, reject, reverse)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Memory Merge Management
|
|
6
|
+
|
|
7
|
+
Manage memory consolidation: detect duplicates, review proposals, preview merges, view statistics, and make decisions on merge proposals.
|
|
8
|
+
|
|
9
|
+
## Actions
|
|
10
|
+
|
|
11
|
+
### detect
|
|
12
|
+
Scan for similar or duplicate memories and create merge proposals.
|
|
13
|
+
- Uses advanced similarity detection (simhash, minhash, semantic embedding)
|
|
14
|
+
- Filters by optional similarity threshold and memory type
|
|
15
|
+
- Automatically creates proposals for similar memories
|
|
16
|
+
- Returns list of detected duplicates with similarity scores
|
|
17
|
+
|
|
18
|
+
### list
|
|
19
|
+
View pending merge proposals for review.
|
|
20
|
+
- Lists all proposals in specified status (pending, approved, rejected, expired)
|
|
21
|
+
- Shows similarity scores and token savings estimates
|
|
22
|
+
- Displays memory pairs and consolidation recommendations
|
|
23
|
+
|
|
24
|
+
### preview
|
|
25
|
+
See exactly what a merged memory will look like before executing.
|
|
26
|
+
- Shows the result of merging two memories
|
|
27
|
+
- Displays token savings
|
|
28
|
+
- Shows similarity analysis and consolidation reasoning
|
|
29
|
+
- Does not modify any memories
|
|
30
|
+
|
|
31
|
+
### stats
|
|
32
|
+
Get merge statistics and analytics.
|
|
33
|
+
- Total tokens saved from merges
|
|
34
|
+
- Number of merges completed
|
|
35
|
+
- Most commonly merged memory types
|
|
36
|
+
- Merge trends over time
|
|
37
|
+
|
|
38
|
+
### approve
|
|
39
|
+
Execute a merge proposal and consolidate similar memories.
|
|
40
|
+
- Combines two memories into one
|
|
41
|
+
- Records token savings
|
|
42
|
+
- Creates audit trail for reversibility
|
|
43
|
+
- Updates memory relationships
|
|
44
|
+
|
|
45
|
+
### reject
|
|
46
|
+
Decline a merge proposal and keep memories separate.
|
|
47
|
+
- Marks proposal as rejected
|
|
48
|
+
- Prevents future suggestions for same memory pair
|
|
49
|
+
- No changes to original memories
|
|
50
|
+
- Useful when memories should remain distinct
|
|
51
|
+
|
|
52
|
+
### reverse
|
|
53
|
+
Undo a previously completed merge and restore original memories.
|
|
54
|
+
- Restores all original memories from before merge
|
|
55
|
+
- Removes the merged memory
|
|
56
|
+
- Preserves complete audit history
|
|
57
|
+
- Can be called multiple times on different merged memories
|
|
58
|
+
|
|
59
|
+
## Usage Examples
|
|
60
|
+
|
|
61
|
+
Detect duplicate memories:
|
|
62
|
+
```
|
|
63
|
+
/merge action=detect projectId=my-project
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Detect with filters:
|
|
67
|
+
```
|
|
68
|
+
/merge action=detect projectId=my-project threshold=0.8 memoryType=fact
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
List pending proposals:
|
|
72
|
+
```
|
|
73
|
+
/merge action=list projectId=my-project status=pending
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Preview a merge:
|
|
77
|
+
```
|
|
78
|
+
/merge action=preview projectId=my-project proposalId=proposal-123
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
View merge statistics:
|
|
82
|
+
```
|
|
83
|
+
/merge action=stats projectId=my-project
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Approve a merge:
|
|
87
|
+
```
|
|
88
|
+
/merge action=approve projectId=my-project proposalId=proposal-123 reviewNotes="Both are about API design patterns"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Reject a proposal:
|
|
92
|
+
```
|
|
93
|
+
/merge action=reject projectId=my-project proposalId=proposal-456 reviewNotes="These are separate concerns"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Reverse a completed merge:
|
|
97
|
+
```
|
|
98
|
+
/merge action=reverse projectId=my-project mergeHistoryId=merge-789
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Similarity Thresholds
|
|
102
|
+
|
|
103
|
+
- **0.5-0.6**: Very similar (recommended for detection)
|
|
104
|
+
- **0.7-0.8**: Highly similar (conservative threshold)
|
|
105
|
+
- **0.9+**: Nearly identical (very safe threshold)
|
|
106
|
+
|
|
107
|
+
## Memory Type Filters
|
|
108
|
+
|
|
109
|
+
- fact
|
|
110
|
+
- preference
|
|
111
|
+
- decision
|
|
112
|
+
- observation
|
|
113
|
+
- context
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Store a memory with optional agent context and semantic embeddings
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Store a new memory with semantic embeddings for later retrieval. Memories are automatically indexed for full-text and semantic search.
|
|
6
|
+
|
|
7
|
+
**Optional agent context:**
|
|
8
|
+
- `agentId`: Store memory in an agent-specific context
|
|
9
|
+
- `agentRole`: Define the agent's role (assistant, analyzer, etc.)
|
|
10
|
+
- `visibilityScope`: Control visibility (private, project, team, or global)
|
|
11
|
+
- `sector`: Classify memory type (episodic, semantic, procedural, etc.)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Search memories, conversations, or get recent items with optional scope selection
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Search across memories, conversations, or retrieve recent items. Use the `scope` parameter to select what to search.
|
|
6
|
+
|
|
7
|
+
**Search scopes:**
|
|
8
|
+
- `memories` (default): Full-text and semantic search across stored memories
|
|
9
|
+
- `conversations`: Search past conversation history by query
|
|
10
|
+
- `recent`: Get recent conversation items without requiring a query
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-Capture System
|
|
3
|
+
* Captures tool usage and user prompts as observations
|
|
4
|
+
*/
|
|
5
|
+
import type { PluginContext, CapturedObservation } from './types.js';
|
|
6
|
+
export declare function captureUserPrompt(projectPath: string, prompt: string, context: PluginContext): Promise<CapturedObservation | null>;
|
|
7
|
+
export declare function captureToolUse(projectPath: string, toolName: string, toolArgs: Record<string, unknown> | undefined, toolResult: string | Record<string, unknown> | undefined, context: PluginContext): Promise<CapturedObservation | null>;
|
|
8
|
+
export declare function queueForSummarization(observationId: string, projectPath?: string): Promise<void>;
|
|
9
|
+
export declare function captureFileChange(projectPath: string, filePath: string, changeType: 'created' | 'modified' | 'deleted', context: PluginContext): Promise<CapturedObservation | null>;
|
|
10
|
+
export declare function captureError(projectPath: string, error: Error, errorContext: string, pluginContext: PluginContext): Promise<CapturedObservation | null>;
|
|
11
|
+
//# sourceMappingURL=capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../adapters/claude-code/capture.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAsDrE,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAarC;AAED,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC7C,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACxD,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAqCrC;AAED,wBAAsB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB1G;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,EAC9C,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAYrC;AAED,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAYrC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-Capture System
|
|
3
|
+
* Captures tool usage and user prompts as observations
|
|
4
|
+
*/
|
|
5
|
+
import { createObservation, getObservationById, getRecentObservations } from '../../core/observations.js';
|
|
6
|
+
import { shouldStore, stripPrivateTags } from '../../core/privacy.js';
|
|
7
|
+
import { summarizeSession } from '../../core/summarization.js';
|
|
8
|
+
import { trackCoactivation } from '../../core/associations.js';
|
|
9
|
+
import { config } from '../../config.js';
|
|
10
|
+
import { logger } from '../../core/logger.js';
|
|
11
|
+
function truncate(text, maxLength) {
|
|
12
|
+
return text.length > maxLength ? text.substring(0, maxLength) + '...' : text;
|
|
13
|
+
}
|
|
14
|
+
function createObservationResult(id, type, action, target, summary, projectPath, details) {
|
|
15
|
+
return { id, type, action, target, summary, timestamp: new Date(), projectPath, details };
|
|
16
|
+
}
|
|
17
|
+
async function captureObservation(projectPath, type, action, target, summary, details, context) {
|
|
18
|
+
if (!(await shouldStore(summary, projectPath))) {
|
|
19
|
+
logger.info(`${type} blocked by privacy filter`);
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const observation = await createObservation({
|
|
23
|
+
type: type === 'user_prompt' ? 'insight' : type,
|
|
24
|
+
action,
|
|
25
|
+
target,
|
|
26
|
+
summary,
|
|
27
|
+
details: { ...details, timestamp: new Date().toISOString() },
|
|
28
|
+
session: context.sessionId,
|
|
29
|
+
project: projectPath
|
|
30
|
+
});
|
|
31
|
+
logger.debug(`Captured ${type}: ${observation.id}`);
|
|
32
|
+
return createObservationResult(observation.id, type, action, target, summary, projectPath, details);
|
|
33
|
+
}
|
|
34
|
+
export async function captureUserPrompt(projectPath, prompt, context) {
|
|
35
|
+
const cleanPrompt = stripPrivateTags(prompt);
|
|
36
|
+
const summary = truncate(cleanPrompt, 500);
|
|
37
|
+
return captureObservation(projectPath, 'user_prompt', 'user_submitted_prompt', projectPath, summary, { fullPrompt: cleanPrompt, length: cleanPrompt.length, tags: ['auto-captured', 'user-prompt'] }, context);
|
|
38
|
+
}
|
|
39
|
+
export async function captureToolUse(projectPath, toolName, toolArgs, toolResult, context) {
|
|
40
|
+
const argsSummary = toolArgs ? truncate(JSON.stringify(toolArgs), 200) : 'none';
|
|
41
|
+
let resultSummary;
|
|
42
|
+
if (typeof toolResult === 'string') {
|
|
43
|
+
resultSummary = truncate(toolResult, 200);
|
|
44
|
+
}
|
|
45
|
+
else if (toolResult) {
|
|
46
|
+
resultSummary = truncate(JSON.stringify(toolResult), 200);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
resultSummary = 'no result';
|
|
50
|
+
}
|
|
51
|
+
const summary = `Tool ${toolName} executed with args: ${argsSummary}`;
|
|
52
|
+
const observation = await captureObservation(projectPath, 'tool_use', toolName, projectPath, summary, { toolName, arguments: toolArgs, result: toolResult, tags: ['auto-captured', 'tool-use', toolName] }, context);
|
|
53
|
+
if (observation) {
|
|
54
|
+
try {
|
|
55
|
+
const recentObservations = await getRecentObservations(projectPath, 5);
|
|
56
|
+
if (recentObservations.length > 1) {
|
|
57
|
+
const observationIds = recentObservations.map(o => o.id);
|
|
58
|
+
await trackCoactivation(observationIds);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
logger.error('Failed to track co-activation', error);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return observation;
|
|
66
|
+
}
|
|
67
|
+
export async function queueForSummarization(observationId, projectPath = '') {
|
|
68
|
+
try {
|
|
69
|
+
if (!config.summarizationEnabled) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const observation = await getObservationById(observationId);
|
|
73
|
+
if (!observation || !observation.conversationId) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
const recentObservations = await getRecentObservations(projectPath, 100);
|
|
78
|
+
const messageCount = recentObservations.length;
|
|
79
|
+
if (messageCount > 0 && messageCount % config.incrementalThreshold === 0) {
|
|
80
|
+
await summarizeSession(observation.conversationId, 'incremental');
|
|
81
|
+
logger.info(`Session summarized (incremental) after ${messageCount} observations`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
logger.error('Failed to queue summarization', error);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
logger.error('Error in queueForSummarization', error);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
export async function captureFileChange(projectPath, filePath, changeType, context) {
|
|
93
|
+
const summary = `File ${changeType}: ${filePath}`;
|
|
94
|
+
return captureObservation(projectPath, 'file_change', changeType, filePath, summary, { filePath, changeType, tags: ['auto-captured', 'file-change', changeType] }, context);
|
|
95
|
+
}
|
|
96
|
+
export async function captureError(projectPath, error, errorContext, pluginContext) {
|
|
97
|
+
const summary = `Error in ${errorContext}: ${error.message}`;
|
|
98
|
+
return captureObservation(projectPath, 'error', 'error_occurred', errorContext, summary, { errorMessage: error.message, errorStack: error.stack, context: errorContext, tags: ['auto-captured', 'error'] }, pluginContext);
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=capture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../adapters/claude-code/capture.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC1G,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,SAAS,QAAQ,CAAC,IAAY,EAAE,SAAiB;IAC/C,OAAO,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/E,CAAC;AAED,SAAS,uBAAuB,CAC9B,EAAU,EACV,IAAqB,EACrB,MAAc,EACd,MAAc,EACd,OAAe,EACf,WAAmB,EACnB,OAAiC;IAEjC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAC5F,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,WAAmB,EACnB,IAAqB,EACrB,MAAc,EACd,MAAc,EACd,OAAe,EACf,OAAgC,EAChC,OAAsB;IAEtB,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,4BAA4B,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC;QAC1C,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QAC/C,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;QAC5D,OAAO,EAAE,OAAO,CAAC,SAAS;QAC1B,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;IACpD,OAAO,uBAAuB,CAAC,WAAW,CAAC,EAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,MAAc,EACd,OAAsB;IAEtB,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAE3C,OAAO,kBAAkB,CACvB,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,WAAW,EACX,OAAO,EACP,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,EAC/F,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAAmB,EACnB,QAAgB,EAChB,QAA6C,EAC7C,UAAwD,EACxD,OAAsB;IAEtB,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEhF,IAAI,aAAqB,CAAC;IAC1B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,aAAa,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,aAAa,GAAG,WAAW,CAAC;IAC9B,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,QAAQ,wBAAwB,WAAW,EAAE,CAAC;IAEtE,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAC1C,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,EACP,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EACpG,OAAO,CACR,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACvE,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACzD,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,aAAqB,EAAE,cAAsB,EAAE;IACzF,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACzE,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC;YAE/C,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,MAAM,CAAC,oBAAoB,KAAK,CAAC,EAAE,CAAC;gBACzE,MAAM,gBAAgB,CAAC,WAAW,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,0CAA0C,YAAY,eAAe,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,QAAgB,EAChB,UAA8C,EAC9C,OAAsB;IAEtB,MAAM,OAAO,GAAG,QAAQ,UAAU,KAAK,QAAQ,EAAE,CAAC;IAElD,OAAO,kBAAkB,CACvB,WAAW,EACX,aAAa,EACb,UAAU,EACV,QAAQ,EACR,OAAO,EACP,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,EAC5E,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,WAAmB,EACnB,KAAY,EACZ,YAAoB,EACpB,aAA4B;IAE5B,MAAM,OAAO,GAAG,YAAY,YAAY,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IAE7D,OAAO,kBAAkB,CACvB,WAAW,EACX,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,EACjH,aAAa,CACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../adapters/claude-code/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../adapters/claude-code/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-Context Injection System
|
|
3
|
+
* Injects relevant context into sessions
|
|
4
|
+
*/
|
|
5
|
+
import type { PluginContext } from './types.js';
|
|
6
|
+
export interface InjectionBudget {
|
|
7
|
+
maxItems: number;
|
|
8
|
+
maxTokens: number;
|
|
9
|
+
relevanceThreshold: number;
|
|
10
|
+
maxAge: number;
|
|
11
|
+
}
|
|
12
|
+
interface ContextItem {
|
|
13
|
+
id: string;
|
|
14
|
+
content: string;
|
|
15
|
+
score: number;
|
|
16
|
+
}
|
|
17
|
+
export interface SelectedContext {
|
|
18
|
+
memories: ContextItem[];
|
|
19
|
+
conversations: ContextItem[];
|
|
20
|
+
totalItems: number;
|
|
21
|
+
estimatedTokens: number;
|
|
22
|
+
injectionText: string;
|
|
23
|
+
}
|
|
24
|
+
export declare function injectContextIntoSession(context: PluginContext, projectPath: string): Promise<void>;
|
|
25
|
+
export declare function selectContextToInject(projectPath: string, budget: InjectionBudget): Promise<SelectedContext>;
|
|
26
|
+
export declare function applyAgeDecay(score: number, createdAt: Date, halfLife?: number): number;
|
|
27
|
+
export declare function rankByRelevance<T extends {
|
|
28
|
+
score: number;
|
|
29
|
+
createdAt?: Date;
|
|
30
|
+
}>(items: T[]): Array<T & {
|
|
31
|
+
rankedScore: number;
|
|
32
|
+
}>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=injection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injection.d.ts","sourceRoot":"","sources":["../../../adapters/claude-code/injection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AA4BD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,eAAe,CAAC,CA+D1B;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,IAAI,EACf,QAAQ,SAA2B,GAClC,MAAM,CAGR;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,EAC3E,KAAK,EAAE,CAAC,EAAE,GACT,KAAK,CAAC,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAOpC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-Context Injection System
|
|
3
|
+
* Injects relevant context into sessions
|
|
4
|
+
*/
|
|
5
|
+
import { searchMemories } from '../../core/memory/memories.js';
|
|
6
|
+
import { searchConversations } from '../../core/search/conversations.js';
|
|
7
|
+
import { logger } from '../../core/logger.js';
|
|
8
|
+
import { formatCoreMemoryForInjection } from '../../core/core-memory.js';
|
|
9
|
+
import { ensureProject } from '../../core/projects.js';
|
|
10
|
+
function estimateTokens(text) {
|
|
11
|
+
return Math.ceil(text.split(/\s+/).length * 1.3);
|
|
12
|
+
}
|
|
13
|
+
function truncateContent(content, maxLength = 100) {
|
|
14
|
+
return content.substring(0, maxLength).replace(/\n/g, ' ') + '...';
|
|
15
|
+
}
|
|
16
|
+
function formatInjectionText(memories, conversations) {
|
|
17
|
+
if (memories.length === 0 && conversations.length === 0)
|
|
18
|
+
return '';
|
|
19
|
+
const parts = [];
|
|
20
|
+
if (memories.length > 0) {
|
|
21
|
+
parts.push('## Recent Memory Context');
|
|
22
|
+
parts.push(...memories.map(m => `- ${truncateContent(m.content)}`));
|
|
23
|
+
}
|
|
24
|
+
if (conversations.length > 0) {
|
|
25
|
+
parts.push('\n## Recent Conversation Context');
|
|
26
|
+
parts.push(...conversations.map(c => `- ${truncateContent(c.content)}`));
|
|
27
|
+
}
|
|
28
|
+
return `\n<squish-context>\n${parts.join('\n')}\n</squish-context>\n`;
|
|
29
|
+
}
|
|
30
|
+
export async function injectContextIntoSession(context, projectPath) {
|
|
31
|
+
const budget = {
|
|
32
|
+
maxItems: context.config?.maxContextItems || 15,
|
|
33
|
+
maxTokens: context.config?.maxContextTokens || 3000,
|
|
34
|
+
relevanceThreshold: 0.5,
|
|
35
|
+
maxAge: 30 * 24 * 60 * 60 * 1000
|
|
36
|
+
};
|
|
37
|
+
// Inject core memory (always-in-context) first
|
|
38
|
+
try {
|
|
39
|
+
const project = await ensureProject(projectPath);
|
|
40
|
+
if (project?.id) {
|
|
41
|
+
const coreMemoryText = await formatCoreMemoryForInjection(project.id);
|
|
42
|
+
if (coreMemoryText) {
|
|
43
|
+
// Core memory is automatically available - Claude sees it
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
logger.error('Failed to inject core memory:', error);
|
|
49
|
+
}
|
|
50
|
+
const selectedContext = await selectContextToInject(projectPath, budget);
|
|
51
|
+
if (selectedContext.totalItems > 0) {
|
|
52
|
+
logger.info(`Injected ${selectedContext.totalItems} items (${selectedContext.estimatedTokens} tokens)`);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
logger.info('No relevant context to inject');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export async function selectContextToInject(projectPath, budget) {
|
|
59
|
+
const memories = [];
|
|
60
|
+
const conversations = [];
|
|
61
|
+
let totalTokens = 0;
|
|
62
|
+
let totalItems = 0;
|
|
63
|
+
const memoriesResult = await searchMemories({
|
|
64
|
+
query: projectPath,
|
|
65
|
+
limit: Math.min(budget.maxItems, 10),
|
|
66
|
+
project: projectPath
|
|
67
|
+
}).catch(() => []);
|
|
68
|
+
for (const memory of memoriesResult || []) {
|
|
69
|
+
if (totalItems >= budget.maxItems || totalTokens >= budget.maxTokens)
|
|
70
|
+
break;
|
|
71
|
+
const m = memory;
|
|
72
|
+
const content = m?.content || '';
|
|
73
|
+
const tokens = estimateTokens(content);
|
|
74
|
+
if (totalTokens + tokens <= budget.maxTokens) {
|
|
75
|
+
memories.push({
|
|
76
|
+
id: m?.id || '',
|
|
77
|
+
content,
|
|
78
|
+
score: m?.relevanceScore || 0.5
|
|
79
|
+
});
|
|
80
|
+
totalTokens += tokens;
|
|
81
|
+
totalItems++;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const remainingItems = budget.maxItems - totalItems;
|
|
85
|
+
if (remainingItems > 0) {
|
|
86
|
+
const conversationsResult = await searchConversations({
|
|
87
|
+
query: projectPath,
|
|
88
|
+
limit: Math.min(remainingItems, 5)
|
|
89
|
+
}).catch(() => []);
|
|
90
|
+
for (const conversation of conversationsResult || []) {
|
|
91
|
+
if (totalItems >= budget.maxItems || totalTokens >= budget.maxTokens)
|
|
92
|
+
break;
|
|
93
|
+
const c = conversation;
|
|
94
|
+
const content = typeof c === 'string' ? c : '';
|
|
95
|
+
const tokens = estimateTokens(content);
|
|
96
|
+
if (totalTokens + tokens <= budget.maxTokens) {
|
|
97
|
+
conversations.push({
|
|
98
|
+
id: c?.id || '',
|
|
99
|
+
content,
|
|
100
|
+
score: 0.5
|
|
101
|
+
});
|
|
102
|
+
totalTokens += tokens;
|
|
103
|
+
totalItems++;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
memories,
|
|
109
|
+
conversations,
|
|
110
|
+
totalItems,
|
|
111
|
+
estimatedTokens: totalTokens,
|
|
112
|
+
injectionText: formatInjectionText(memories, conversations)
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export function applyAgeDecay(score, createdAt, halfLife = 30 * 24 * 60 * 60 * 1000) {
|
|
116
|
+
const ageMs = Date.now() - createdAt.getTime();
|
|
117
|
+
return score * Math.pow(0.5, ageMs / halfLife);
|
|
118
|
+
}
|
|
119
|
+
export function rankByRelevance(items) {
|
|
120
|
+
return items
|
|
121
|
+
.map(item => ({
|
|
122
|
+
...item,
|
|
123
|
+
rankedScore: item.createdAt ? applyAgeDecay(item.score, item.createdAt) : item.score
|
|
124
|
+
}))
|
|
125
|
+
.sort((a, b) => b.rankedScore - a.rankedScore);
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=injection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injection.js","sourceRoot":"","sources":["../../../adapters/claude-code/injection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Squish Plugin Wrapper - Hook handlers for Claude Code integration
|
|
3
|
+
*/
|
|
4
|
+
import 'dotenv/config';
|
|
5
|
+
import type { PluginContext } from './types.js';
|
|
6
|
+
export declare function onInstall(_context: PluginContext): Promise<void>;
|
|
7
|
+
export declare function onSessionStart(context: PluginContext): Promise<string>;
|
|
8
|
+
export declare function onUserPromptSubmit(context: PluginContext): Promise<string>;
|
|
9
|
+
export declare function onPostToolUse(context: PluginContext): Promise<void>;
|
|
10
|
+
export declare function onSessionStop(context: PluginContext): Promise<void>;
|
|
11
|
+
export declare function onUpdate(context: PluginContext): Promise<string>;
|
|
12
|
+
declare const _default: {
|
|
13
|
+
onInstall: typeof onInstall;
|
|
14
|
+
onUpdate: typeof onUpdate;
|
|
15
|
+
onSessionStart: typeof onSessionStart;
|
|
16
|
+
onUserPromptSubmit: typeof onUserPromptSubmit;
|
|
17
|
+
onPostToolUse: typeof onPostToolUse;
|
|
18
|
+
onSessionStop: typeof onSessionStop;
|
|
19
|
+
};
|
|
20
|
+
export default _default;
|
|
21
|
+
//# sourceMappingURL=plugin-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-wrapper.d.ts","sourceRoot":"","sources":["../../../adapters/claude-code/plugin-wrapper.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA+GhD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CActE;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAuD5E;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA8ChF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAczE;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BzE;AAID,wBAAsB,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtE;;;;;;;;;AAED,wBAOE"}
|