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,244 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Hooks - Core Logic
|
|
3
|
-
*
|
|
4
|
-
* Universal hooks for auto-capturing agent activities.
|
|
5
|
-
* Works with Claude Code, OpenCode, Cursor, Windsurf.
|
|
6
|
-
*
|
|
7
|
-
* Hook events:
|
|
8
|
-
* - sessionStart: Inject relevant memories on session start
|
|
9
|
-
* - postToolUse: Record observations after tool execution
|
|
10
|
-
* - sessionEnd: Save snapshot and sync learnings
|
|
11
|
-
* - preCompact: Save state before context compaction
|
|
12
|
-
*/
|
|
13
|
-
import { randomUUID } from 'crypto';
|
|
14
|
-
import { createLearning } from '../ingestion/learnings.js';
|
|
15
|
-
import { getRecent } from '../memory/memories.js';
|
|
16
|
-
import { logger } from '../logger.js';
|
|
17
|
-
import { shouldCaptureTool, categorizeTool } from './capture-filter.js';
|
|
18
|
-
import { inferTags } from './auto-tagger.js';
|
|
19
|
-
import { ensureProject, getProjectByPath } from '../projects.js';
|
|
20
|
-
import { autoAssignMemory, initializeDefaultPlaces } from '../places/index.js';
|
|
21
|
-
/** Session ID for tracking across agents */
|
|
22
|
-
let currentSessionId = null;
|
|
23
|
-
/**
|
|
24
|
-
* Generate a new session ID (universal across agents)
|
|
25
|
-
*/
|
|
26
|
-
export function generateSessionId() {
|
|
27
|
-
currentSessionId = randomUUID();
|
|
28
|
-
return currentSessionId;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Get current session ID
|
|
32
|
-
*/
|
|
33
|
-
export function getCurrentSessionId() {
|
|
34
|
-
return currentSessionId;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Set session ID (for resume/continue)
|
|
38
|
-
*/
|
|
39
|
-
export function setSessionId(sessionId) {
|
|
40
|
-
currentSessionId = sessionId;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Session start hook - inject relevant context
|
|
44
|
-
*/
|
|
45
|
-
export async function handleSessionStart(params) {
|
|
46
|
-
const { projectPath, mode, agentType } = params;
|
|
47
|
-
// Ensure project exists
|
|
48
|
-
await ensureProject(projectPath);
|
|
49
|
-
// Generate or get session ID
|
|
50
|
-
if (!currentSessionId) {
|
|
51
|
-
currentSessionId = generateSessionId();
|
|
52
|
-
}
|
|
53
|
-
logger.info(`[Hooks] Session start: ${mode} (agent: ${agentType}, session: ${currentSessionId})`);
|
|
54
|
-
// Get recent memories based on mode
|
|
55
|
-
const limit = mode === 'compact' ? 3 : 5;
|
|
56
|
-
const memories = await getRecent(projectPath, limit);
|
|
57
|
-
// Get spatial memory context (places) for context injection
|
|
58
|
-
let placesContext = '';
|
|
59
|
-
try {
|
|
60
|
-
const { initializeDefaultPlaces, getProjectPlaces } = await import('../places/index.js');
|
|
61
|
-
const { getProjectByPath } = await import('../projects.js');
|
|
62
|
-
const project = await getProjectByPath(projectPath);
|
|
63
|
-
if (project) {
|
|
64
|
-
await initializeDefaultPlaces(project.id);
|
|
65
|
-
const places = await getProjectPlaces(project.id);
|
|
66
|
-
if (places.length > 0) {
|
|
67
|
-
const populatedPlaces = places.filter(p => p.memoryCount > 0).slice(0, 3);
|
|
68
|
-
if (populatedPlaces.length > 0) {
|
|
69
|
-
placesContext = '\n\nActive places: ' + populatedPlaces.map(p => `${p.name} (${p.memoryCount})`).join(', ');
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
catch (e) {
|
|
75
|
-
// Don't fail if places not available
|
|
76
|
-
logger.debug(`[Hooks] Places context not available: ${e}`);
|
|
77
|
-
}
|
|
78
|
-
// Format for injection
|
|
79
|
-
const formatted = memories.map((m, i) => `${i + 1}. [${m.type}] ${m.content?.substring(0, 100)}...`).join('\n');
|
|
80
|
-
const allContent = formatted + placesContext;
|
|
81
|
-
logger.info(`[Hooks] Injected ${memories.length} memories for session start`);
|
|
82
|
-
return {
|
|
83
|
-
memories: allContent ? allContent.split('\n') : [],
|
|
84
|
-
sessionId: currentSessionId,
|
|
85
|
-
count: memories.length,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Post-tool-use hook - record observations
|
|
90
|
-
*/
|
|
91
|
-
export async function handlePostToolUse(params) {
|
|
92
|
-
const { toolName, toolInput, toolResult, projectPath, agentType } = params;
|
|
93
|
-
// Ensure project exists
|
|
94
|
-
await ensureProject(projectPath);
|
|
95
|
-
// Ensure session ID exists
|
|
96
|
-
if (!currentSessionId) {
|
|
97
|
-
currentSessionId = generateSessionId();
|
|
98
|
-
}
|
|
99
|
-
// Check if we should capture this tool
|
|
100
|
-
if (!shouldCaptureTool(toolName)) {
|
|
101
|
-
return { captured: false, reason: `Tool ${toolName} filtered out` };
|
|
102
|
-
}
|
|
103
|
-
// Extract relevant information
|
|
104
|
-
const category = categorizeTool(toolName);
|
|
105
|
-
const target = extractTarget(toolName, toolInput);
|
|
106
|
-
const content = extractContent(toolName, toolInput, toolResult);
|
|
107
|
-
// Infer tags from context
|
|
108
|
-
const tags = inferTags(toolName, toolInput, content);
|
|
109
|
-
// Create learning/observation
|
|
110
|
-
const learningInput = {
|
|
111
|
-
type: 'insight',
|
|
112
|
-
content: `[${category}] ${content}`,
|
|
113
|
-
action: toolName,
|
|
114
|
-
target,
|
|
115
|
-
project: projectPath,
|
|
116
|
-
autoLink: true,
|
|
117
|
-
};
|
|
118
|
-
try {
|
|
119
|
-
const learning = await createLearning(learningInput);
|
|
120
|
-
logger.info(`[Hooks] Captured ${toolName} → ${learning.id} (session: ${currentSessionId})`);
|
|
121
|
-
// Auto-assign to place (if places are initialized)
|
|
122
|
-
try {
|
|
123
|
-
const project = await getProjectByPath(projectPath);
|
|
124
|
-
if (project) {
|
|
125
|
-
// Initialize default places if they don't exist
|
|
126
|
-
await initializeDefaultPlaces(project.id);
|
|
127
|
-
// Auto-assign the memory to a place
|
|
128
|
-
await autoAssignMemory({
|
|
129
|
-
memoryId: learning.id,
|
|
130
|
-
projectId: project.id,
|
|
131
|
-
toolName,
|
|
132
|
-
content: learningInput.content,
|
|
133
|
-
tags,
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
catch (placeError) {
|
|
138
|
-
// Don't fail the hook if place assignment fails
|
|
139
|
-
logger.warn(`[Hooks] Place assignment failed: ${placeError}`);
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
captured: true,
|
|
143
|
-
memoryId: learning.id,
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
catch (error) {
|
|
147
|
-
logger.error(`[Hooks] Failed to capture:`, error);
|
|
148
|
-
return { captured: false, reason: 'Failed to create learning' };
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Session end hook - save snapshot and sync
|
|
153
|
-
*/
|
|
154
|
-
export async function handleSessionEnd(params) {
|
|
155
|
-
const { projectPath, agentType, workInProgress } = params;
|
|
156
|
-
// Ensure project exists
|
|
157
|
-
await ensureProject(projectPath);
|
|
158
|
-
logger.info(`[Hooks] Session end (agent: ${agentType}, session: ${currentSessionId})`);
|
|
159
|
-
// Save session snapshot as a learning
|
|
160
|
-
if (workInProgress) {
|
|
161
|
-
const snapshot = await createLearning({
|
|
162
|
-
type: 'insight',
|
|
163
|
-
content: `[SESSION SNAPSHOT] ${workInProgress}`,
|
|
164
|
-
action: 'session-end',
|
|
165
|
-
project: projectPath,
|
|
166
|
-
autoLink: false,
|
|
167
|
-
});
|
|
168
|
-
logger.info(`[Hooks] Saved session snapshot: ${snapshot.id}`);
|
|
169
|
-
currentSessionId = null; // Clear session
|
|
170
|
-
return {
|
|
171
|
-
snapshotId: snapshot.id,
|
|
172
|
-
memoriesSaved: 1,
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
currentSessionId = null;
|
|
176
|
-
return {
|
|
177
|
-
memoriesSaved: 0,
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Pre-compact hook - save state for recovery
|
|
182
|
-
*/
|
|
183
|
-
export async function handlePreCompact(params) {
|
|
184
|
-
const { projectPath, agentType } = params;
|
|
185
|
-
// Ensure project exists
|
|
186
|
-
await ensureProject(projectPath);
|
|
187
|
-
logger.info(`[Hooks] Pre-compact (agent: ${agentType})`);
|
|
188
|
-
// Get recent work for recovery
|
|
189
|
-
const recent = await getRecent(projectPath, 3);
|
|
190
|
-
// Save state
|
|
191
|
-
const state = await createLearning({
|
|
192
|
-
type: 'insight',
|
|
193
|
-
content: `[PRE-COMPACT] State saved for recovery. Recent: ${recent.map(r => r.content?.substring(0, 50)).join(' | ')}`,
|
|
194
|
-
action: 'pre-compact',
|
|
195
|
-
project: projectPath,
|
|
196
|
-
autoLink: false,
|
|
197
|
-
});
|
|
198
|
-
return {
|
|
199
|
-
stateSaved: true,
|
|
200
|
-
stateId: state.id,
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Extract target from tool input
|
|
205
|
-
*/
|
|
206
|
-
function extractTarget(toolName, toolInput) {
|
|
207
|
-
switch (toolName) {
|
|
208
|
-
case 'Write':
|
|
209
|
-
case 'Edit':
|
|
210
|
-
return String(toolInput.filePath || toolInput.path || 'unknown');
|
|
211
|
-
case 'Bash':
|
|
212
|
-
return String(toolInput.command || toolInput.cmd || 'unknown');
|
|
213
|
-
case 'Task':
|
|
214
|
-
return String(toolInput.description || toolInput.name || 'unknown');
|
|
215
|
-
default:
|
|
216
|
-
return 'unknown';
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Extract content summary from tool result
|
|
221
|
-
*/
|
|
222
|
-
function extractContent(toolName, toolInput, toolResult) {
|
|
223
|
-
switch (toolName) {
|
|
224
|
-
case 'Write':
|
|
225
|
-
return `Wrote: ${toolInput.filePath || toolInput.path}`;
|
|
226
|
-
case 'Edit':
|
|
227
|
-
return `Edited: ${toolInput.filePath || toolInput.path}`;
|
|
228
|
-
case 'Bash':
|
|
229
|
-
const cmd = String(toolInput.command || toolInput.cmd || '');
|
|
230
|
-
if (cmd.includes('commit'))
|
|
231
|
-
return `Git commit executed`;
|
|
232
|
-
if (cmd.includes('test'))
|
|
233
|
-
return `Tests run`;
|
|
234
|
-
return `Command: ${cmd.substring(0, 50)}`;
|
|
235
|
-
case 'Task':
|
|
236
|
-
return `Task: ${toolInput.description || toolInput.name || 'unknown'}`;
|
|
237
|
-
default:
|
|
238
|
-
return `Used: ${toolName}`;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
// Re-export for convenience
|
|
242
|
-
export { shouldCaptureTool, categorizeTool } from './capture-filter.js';
|
|
243
|
-
export { inferTags } from './auto-tagger.js';
|
|
244
|
-
//# sourceMappingURL=agent-hooks.js.map
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auto-Tagger - Infer tags from context
|
|
3
|
-
*
|
|
4
|
-
* Analyzes tool input/output to automatically infer relevant tags.
|
|
5
|
-
* Uses pattern matching to classify actions.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Infer tags based on tool, input, and content
|
|
9
|
-
*/
|
|
10
|
-
export declare function inferTags(toolName: string, toolInput: Record<string, unknown>, content: string): string[];
|
|
11
|
-
/**
|
|
12
|
-
* Extract tags from commit message
|
|
13
|
-
*/
|
|
14
|
-
export declare function extractCommitTags(commitMessage: string): string[];
|
|
15
|
-
/**
|
|
16
|
-
* Extract tags from file path
|
|
17
|
-
*/
|
|
18
|
-
export declare function extractFileTags(filePath: string): string[];
|
|
19
|
-
//# sourceMappingURL=auto-tagger.d.ts.map
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auto-Tagger - Infer tags from context
|
|
3
|
-
*
|
|
4
|
-
* Analyzes tool input/output to automatically infer relevant tags.
|
|
5
|
-
* Uses pattern matching to classify actions.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Infer tags based on tool, input, and content
|
|
9
|
-
*/
|
|
10
|
-
export function inferTags(toolName, toolInput, content) {
|
|
11
|
-
const tags = ['hook', 'autocapture']; // Always add these
|
|
12
|
-
const tool = toolName.toLowerCase();
|
|
13
|
-
const inputStr = JSON.stringify(toolInput).toLowerCase();
|
|
14
|
-
const contentLower = content.toLowerCase();
|
|
15
|
-
// File type tags
|
|
16
|
-
if (tool === 'write' || tool === 'edit') {
|
|
17
|
-
const filePath = String(toolInput.filePath || toolInput.path || '');
|
|
18
|
-
if (filePath.endsWith('.ts') || filePath.endsWith('.tsx')) {
|
|
19
|
-
tags.push('typescript');
|
|
20
|
-
}
|
|
21
|
-
else if (filePath.endsWith('.js') || filePath.endsWith('.jsx')) {
|
|
22
|
-
tags.push('javascript');
|
|
23
|
-
}
|
|
24
|
-
else if (filePath.endsWith('.json')) {
|
|
25
|
-
tags.push('config');
|
|
26
|
-
}
|
|
27
|
-
else if (filePath.endsWith('.md')) {
|
|
28
|
-
tags.push('documentation');
|
|
29
|
-
}
|
|
30
|
-
else if (filePath.endsWith('.test.ts') || filePath.endsWith('.spec.ts')) {
|
|
31
|
-
tags.push('test');
|
|
32
|
-
}
|
|
33
|
-
// Feature/fix detection
|
|
34
|
-
if (contentLower.includes('fix') || contentLower.includes('bug')) {
|
|
35
|
-
tags.push('bugfix');
|
|
36
|
-
}
|
|
37
|
-
else if (contentLower.includes('refactor')) {
|
|
38
|
-
tags.push('refactor');
|
|
39
|
-
}
|
|
40
|
-
else if (contentLower.includes('feature') || contentLower.includes('add')) {
|
|
41
|
-
tags.push('feature');
|
|
42
|
-
}
|
|
43
|
-
else if (contentLower.includes('test')) {
|
|
44
|
-
tags.push('testing');
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
// Bash command tags
|
|
48
|
-
if (tool === 'bash') {
|
|
49
|
-
const cmd = String(toolInput.command || toolInput.cmd || '');
|
|
50
|
-
if (cmd.includes('git commit')) {
|
|
51
|
-
tags.push('commit', 'version-control');
|
|
52
|
-
}
|
|
53
|
-
else if (cmd.includes('test') || cmd.includes('jest') || cmd.includes('vitest')) {
|
|
54
|
-
tags.push('testing', 'test');
|
|
55
|
-
}
|
|
56
|
-
else if (cmd.includes('build') || cmd.includes('compile')) {
|
|
57
|
-
tags.push('build');
|
|
58
|
-
}
|
|
59
|
-
else if (cmd.includes('install')) {
|
|
60
|
-
tags.push('dependencies');
|
|
61
|
-
}
|
|
62
|
-
else if (cmd.includes('lint') || cmd.includes('format')) {
|
|
63
|
-
tags.push('linting');
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// Task tags
|
|
67
|
-
if (tool === 'task' || tool === 'todowrite') {
|
|
68
|
-
tags.push('task', 'planning');
|
|
69
|
-
if (contentLower.includes('fix') || contentLower.includes('bug')) {
|
|
70
|
-
tags.push('bugfix');
|
|
71
|
-
}
|
|
72
|
-
else if (contentLower.includes('feature')) {
|
|
73
|
-
tags.push('feature');
|
|
74
|
-
}
|
|
75
|
-
else if (contentLower.includes('refactor')) {
|
|
76
|
-
tags.push('refactor');
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// Deduplicate
|
|
80
|
-
return [...new Set(tags)];
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Extract tags from commit message
|
|
84
|
-
*/
|
|
85
|
-
export function extractCommitTags(commitMessage) {
|
|
86
|
-
const tags = ['commit'];
|
|
87
|
-
const msg = commitMessage.toLowerCase();
|
|
88
|
-
// Conventional commits
|
|
89
|
-
if (msg.startsWith('feat:') || msg.includes('feature')) {
|
|
90
|
-
tags.push('feature', 'conventional-commit');
|
|
91
|
-
}
|
|
92
|
-
else if (msg.startsWith('fix:') || msg.includes('bugfix')) {
|
|
93
|
-
tags.push('bugfix', 'conventional-commit');
|
|
94
|
-
}
|
|
95
|
-
else if (msg.startsWith('refactor:')) {
|
|
96
|
-
tags.push('refactor', 'conventional-commit');
|
|
97
|
-
}
|
|
98
|
-
else if (msg.startsWith('docs:')) {
|
|
99
|
-
tags.push('documentation', 'conventional-commit');
|
|
100
|
-
}
|
|
101
|
-
else if (msg.startsWith('test:')) {
|
|
102
|
-
tags.push('testing', 'conventional-commit');
|
|
103
|
-
}
|
|
104
|
-
else if (msg.startsWith('chore:')) {
|
|
105
|
-
tags.push('chore', 'conventional-commit');
|
|
106
|
-
}
|
|
107
|
-
return tags;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Extract tags from file path
|
|
111
|
-
*/
|
|
112
|
-
export function extractFileTags(filePath) {
|
|
113
|
-
const tags = [];
|
|
114
|
-
const path = filePath.toLowerCase();
|
|
115
|
-
// By extension
|
|
116
|
-
if (path.endsWith('.ts') || path.endsWith('.tsx')) {
|
|
117
|
-
tags.push('typescript');
|
|
118
|
-
}
|
|
119
|
-
else if (path.endsWith('.js') || path.endsWith('.jsx')) {
|
|
120
|
-
tags.push('javascript');
|
|
121
|
-
}
|
|
122
|
-
else if (path.endsWith('.py')) {
|
|
123
|
-
tags.push('python');
|
|
124
|
-
}
|
|
125
|
-
else if (path.endsWith('.go')) {
|
|
126
|
-
tags.push('golang');
|
|
127
|
-
}
|
|
128
|
-
else if (path.endsWith('.rs')) {
|
|
129
|
-
tags.push('rust');
|
|
130
|
-
}
|
|
131
|
-
else if (path.endsWith('.java')) {
|
|
132
|
-
tags.push('java');
|
|
133
|
-
}
|
|
134
|
-
else if (path.endsWith('.json')) {
|
|
135
|
-
tags.push('config');
|
|
136
|
-
}
|
|
137
|
-
else if (path.endsWith('.md')) {
|
|
138
|
-
tags.push('documentation');
|
|
139
|
-
}
|
|
140
|
-
// By directory pattern
|
|
141
|
-
if (path.includes('/test') || path.includes('/tests') || path.includes('__tests__')) {
|
|
142
|
-
tags.push('test');
|
|
143
|
-
}
|
|
144
|
-
else if (path.includes('/src/')) {
|
|
145
|
-
tags.push('source');
|
|
146
|
-
}
|
|
147
|
-
else if (path.includes('/lib/') || path.includes('/utils/')) {
|
|
148
|
-
tags.push('library');
|
|
149
|
-
}
|
|
150
|
-
else if (path.includes('/config/') || path.includes('/scripts/')) {
|
|
151
|
-
tags.push('config');
|
|
152
|
-
}
|
|
153
|
-
return tags;
|
|
154
|
-
}
|
|
155
|
-
//# sourceMappingURL=auto-tagger.js.map
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capture Filter - Smart filtering of tool usage
|
|
3
|
-
*
|
|
4
|
-
* Don't capture everything - filter out noise.
|
|
5
|
-
* Only capture meaningful actions that warrant memory.
|
|
6
|
-
*/
|
|
7
|
-
/** Tool categories for capture */
|
|
8
|
-
export type ToolCategory = 'reading' | 'modification' | 'command' | 'commit' | 'testing' | 'search' | 'planning' | 'other';
|
|
9
|
-
/** Capture decision */
|
|
10
|
-
export interface CaptureDecision {
|
|
11
|
-
shouldCapture: boolean;
|
|
12
|
-
reason?: string;
|
|
13
|
-
priority: 'high' | 'medium' | 'low';
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Check if a tool should be captured
|
|
17
|
-
*
|
|
18
|
-
* Rules:
|
|
19
|
-
* - Write, Edit, MultiEdit → capture (modification)
|
|
20
|
-
* - Bash with commit → capture (commit)
|
|
21
|
-
* - Bash with test → capture (testing)
|
|
22
|
-
* - Task → capture (planning)
|
|
23
|
-
* - Read, Glob, grep → skip (reading - too noisy)
|
|
24
|
-
*/
|
|
25
|
-
export declare function shouldCaptureTool(toolName: string): boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Get detailed capture decision
|
|
28
|
-
*/
|
|
29
|
-
export declare function getCaptureDecision(toolName: string): CaptureDecision;
|
|
30
|
-
/**
|
|
31
|
-
* Check if Bash command should be captured based on content
|
|
32
|
-
*/
|
|
33
|
-
export declare function shouldCaptureBashCommand(command: string): {
|
|
34
|
-
capture: boolean;
|
|
35
|
-
reason: string;
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* Categorize tool for tagging
|
|
39
|
-
*/
|
|
40
|
-
export declare function categorizeTool(toolName: string): ToolCategory;
|
|
41
|
-
//# sourceMappingURL=capture-filter.d.ts.map
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capture Filter - Smart filtering of tool usage
|
|
3
|
-
*
|
|
4
|
-
* Don't capture everything - filter out noise.
|
|
5
|
-
* Only capture meaningful actions that warrant memory.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Check if a tool should be captured
|
|
9
|
-
*
|
|
10
|
-
* Rules:
|
|
11
|
-
* - Write, Edit, MultiEdit → capture (modification)
|
|
12
|
-
* - Bash with commit → capture (commit)
|
|
13
|
-
* - Bash with test → capture (testing)
|
|
14
|
-
* - Task → capture (planning)
|
|
15
|
-
* - Read, Glob, grep → skip (reading - too noisy)
|
|
16
|
-
*/
|
|
17
|
-
export function shouldCaptureTool(toolName) {
|
|
18
|
-
const decision = getCaptureDecision(toolName);
|
|
19
|
-
return decision.shouldCapture;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Get detailed capture decision
|
|
23
|
-
*/
|
|
24
|
-
export function getCaptureDecision(toolName) {
|
|
25
|
-
const tool = toolName.toLowerCase();
|
|
26
|
-
// High priority - always capture
|
|
27
|
-
if (['write', 'edit', 'multiedit'].includes(tool)) {
|
|
28
|
-
return {
|
|
29
|
-
shouldCapture: true,
|
|
30
|
-
reason: 'File modification',
|
|
31
|
-
priority: 'high',
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
// Command with specific patterns
|
|
35
|
-
if (tool === 'bash') {
|
|
36
|
-
// Let the caller check the command for commit/test patterns
|
|
37
|
-
return {
|
|
38
|
-
shouldCapture: true, // Will be filtered by content check
|
|
39
|
-
reason: 'Command execution',
|
|
40
|
-
priority: 'medium',
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
// Task operations
|
|
44
|
-
if (['task', 'todowrite'].includes(tool)) {
|
|
45
|
-
return {
|
|
46
|
-
shouldCapture: true,
|
|
47
|
-
reason: 'Task/planning activity',
|
|
48
|
-
priority: 'high',
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
// Skip noisy tools
|
|
52
|
-
if (['read', 'glob', 'grep', 'websearch', 'webfetch', 'codesearch'].includes(tool)) {
|
|
53
|
-
return {
|
|
54
|
-
shouldCapture: false,
|
|
55
|
-
reason: 'Reading/search tool - too noisy',
|
|
56
|
-
priority: 'low',
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
// Skip other common noise
|
|
60
|
-
if (['bash'].includes(tool)) {
|
|
61
|
-
return {
|
|
62
|
-
shouldCapture: false, // Too noisy without filtering
|
|
63
|
-
reason: 'General command - filtered',
|
|
64
|
-
priority: 'low',
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
// Default: don't capture unknown tools
|
|
68
|
-
return {
|
|
69
|
-
shouldCapture: false,
|
|
70
|
-
reason: 'Unknown tool',
|
|
71
|
-
priority: 'low',
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Check if Bash command should be captured based on content
|
|
76
|
-
*/
|
|
77
|
-
export function shouldCaptureBashCommand(command) {
|
|
78
|
-
const cmd = command.toLowerCase();
|
|
79
|
-
// Git commits - HIGH priority
|
|
80
|
-
if (cmd.includes('git commit') || cmd.includes('git add') && cmd.includes('git commit')) {
|
|
81
|
-
return { capture: true, reason: 'Git commit' };
|
|
82
|
-
}
|
|
83
|
-
// Tests - HIGH priority
|
|
84
|
-
if (cmd.includes('test') || cmd.includes('jest') || cmd.includes('vitest') ||
|
|
85
|
-
cmd.includes('pytest') || cmd.includes('bun test')) {
|
|
86
|
-
return { capture: true, reason: 'Test execution' };
|
|
87
|
-
}
|
|
88
|
-
// Build/compile - MEDIUM priority
|
|
89
|
-
if (cmd.includes('build') || cmd.includes('compile') || cmd.includes('tsc') ||
|
|
90
|
-
cmd.includes('bun build') || cmd.includes('npm run build')) {
|
|
91
|
-
return { capture: true, reason: 'Build/compile' };
|
|
92
|
-
}
|
|
93
|
-
// Installation - LOW priority
|
|
94
|
-
if (cmd.includes('npm install') || cmd.includes('bun install') ||
|
|
95
|
-
cmd.includes('pip install') || cmd.includes('yarn add')) {
|
|
96
|
-
return { capture: false, reason: 'Package installation - too noisy' };
|
|
97
|
-
}
|
|
98
|
-
// Git operations (non-commit) - LOW priority
|
|
99
|
-
if (cmd.includes('git') && !cmd.includes('commit')) {
|
|
100
|
-
return { capture: false, reason: 'Git operations - not commits' };
|
|
101
|
-
}
|
|
102
|
-
// File operations - MEDIUM priority
|
|
103
|
-
if (cmd.includes('mkdir') || cmd.includes('touch') || cmd.includes('rm ')) {
|
|
104
|
-
return { capture: true, reason: 'File operation' };
|
|
105
|
-
}
|
|
106
|
-
// Default - don't capture
|
|
107
|
-
return { capture: false, reason: 'General command' };
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Categorize tool for tagging
|
|
111
|
-
*/
|
|
112
|
-
export function categorizeTool(toolName) {
|
|
113
|
-
const tool = toolName.toLowerCase();
|
|
114
|
-
if (['write', 'edit', 'multiedit'].includes(tool)) {
|
|
115
|
-
return 'modification';
|
|
116
|
-
}
|
|
117
|
-
if (tool === 'bash') {
|
|
118
|
-
return 'command';
|
|
119
|
-
}
|
|
120
|
-
if (['read', 'glob', 'grep', 'websearch', 'webfetch'].includes(tool)) {
|
|
121
|
-
return 'reading';
|
|
122
|
-
}
|
|
123
|
-
if (['task', 'todowrite', 'todo-read'].includes(tool)) {
|
|
124
|
-
return 'planning';
|
|
125
|
-
}
|
|
126
|
-
return 'other';
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=capture-filter.js.map
|
package/dist/core/index.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './storage/cache.js';
|
|
2
|
-
export * from './context/context.js';
|
|
3
|
-
export * from './storage/database.js';
|
|
4
|
-
export * from './embeddings.js';
|
|
5
|
-
export * from './ingestion/learnings.js';
|
|
6
|
-
export * from './security/privacy.js';
|
|
7
|
-
export * from './projects.js';
|
|
8
|
-
export * from './security/secret-detector.js';
|
|
9
|
-
export * from './worker.js';
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// Shared services - Core utilities and services
|
|
2
|
-
export * from './storage/cache.js';
|
|
3
|
-
export * from './context/context.js';
|
|
4
|
-
export * from './storage/database.js';
|
|
5
|
-
export * from './embeddings.js';
|
|
6
|
-
// Note: local-embeddings exports duplicate of embeddings, import directly when needed
|
|
7
|
-
// export * from './local-embeddings.js';
|
|
8
|
-
export * from './ingestion/learnings.js';
|
|
9
|
-
export * from './security/privacy.js';
|
|
10
|
-
export * from './projects.js';
|
|
11
|
-
// Note: redis exports duplicates of cache, import directly when needed
|
|
12
|
-
export * from './security/secret-detector.js';
|
|
13
|
-
export * from './worker.js';
|
|
14
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent-Aware Memory Management
|
|
3
|
-
* Provides agent isolation and visibility rules
|
|
4
|
-
*/
|
|
5
|
-
export type VisibilityScope = 'private' | 'project' | 'team' | 'global';
|
|
6
|
-
export interface AgentContext {
|
|
7
|
-
agentId: string;
|
|
8
|
-
agentRole?: string;
|
|
9
|
-
userId?: string;
|
|
10
|
-
projectId?: string;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Store a memory with agent context
|
|
14
|
-
*/
|
|
15
|
-
export declare function storeAgentMemory(content: string, context: AgentContext, options?: {
|
|
16
|
-
type?: string;
|
|
17
|
-
sector?: string;
|
|
18
|
-
visibilityScope?: VisibilityScope;
|
|
19
|
-
tags?: string[];
|
|
20
|
-
metadata?: Record<string, unknown>;
|
|
21
|
-
}): Promise<string>;
|
|
22
|
-
//# sourceMappingURL=agent-memory.d.ts.map
|