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,109 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent-Aware Memory Management
|
|
3
|
-
* Provides agent isolation and visibility rules
|
|
4
|
-
*/
|
|
5
|
-
import { and, eq } from 'drizzle-orm';
|
|
6
|
-
import { randomUUID } from 'crypto';
|
|
7
|
-
import { getDb } from '../../db/index.js';
|
|
8
|
-
import { getSchema } from '../../db/schema.js';
|
|
9
|
-
import { config } from '../../config.js';
|
|
10
|
-
import { getEmbedding } from '../embeddings.js';
|
|
11
|
-
import { logger } from '../logger.js';
|
|
12
|
-
/**
|
|
13
|
-
* Store a memory with agent context
|
|
14
|
-
*/
|
|
15
|
-
export async function storeAgentMemory(content, context, options = {}) {
|
|
16
|
-
if (!config.agentIsolationEnabled) {
|
|
17
|
-
// Fall back to standard memory storage
|
|
18
|
-
return await storeStandardMemory(content, options);
|
|
19
|
-
}
|
|
20
|
-
try {
|
|
21
|
-
const db = await getDb();
|
|
22
|
-
const schema = await getSchema();
|
|
23
|
-
const memoryId = randomUUID();
|
|
24
|
-
const embedding = await getEmbedding(content);
|
|
25
|
-
const visibilityScope = options.visibilityScope || config.defaultVisibilityScope;
|
|
26
|
-
// Determine scopes based on visibility
|
|
27
|
-
const readScope = calculateReadScope(context, visibilityScope);
|
|
28
|
-
const writeScope = [`agent:${context.agentId}`];
|
|
29
|
-
await db.insert(schema.memories).values({
|
|
30
|
-
id: memoryId,
|
|
31
|
-
content,
|
|
32
|
-
type: options.type || 'observation',
|
|
33
|
-
sector: options.sector || 'episodic',
|
|
34
|
-
agentId: context.agentId,
|
|
35
|
-
agentRole: context.agentRole || 'general',
|
|
36
|
-
userId: context.userId || null,
|
|
37
|
-
projectId: context.projectId || null,
|
|
38
|
-
visibilityScope,
|
|
39
|
-
writeScope,
|
|
40
|
-
readScope,
|
|
41
|
-
tags: options.tags || [],
|
|
42
|
-
metadata: options.metadata || null,
|
|
43
|
-
embedding: embedding || null,
|
|
44
|
-
confidence: 100,
|
|
45
|
-
relevanceScore: 50,
|
|
46
|
-
createdAt: new Date(),
|
|
47
|
-
updatedAt: new Date(),
|
|
48
|
-
});
|
|
49
|
-
return memoryId;
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
logger.error('Error storing agent memory', error);
|
|
53
|
-
throw error;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
// Helper Functions
|
|
57
|
-
function calculateReadScope(context, visibility) {
|
|
58
|
-
switch (visibility) {
|
|
59
|
-
case 'private':
|
|
60
|
-
return [`agent:${context.agentId}`];
|
|
61
|
-
case 'project':
|
|
62
|
-
return [`agent:${context.agentId}`, `project:${context.projectId || '*'}`];
|
|
63
|
-
case 'team':
|
|
64
|
-
return [`agent:${context.agentId}`, 'team:*'];
|
|
65
|
-
case 'global':
|
|
66
|
-
return ['*'];
|
|
67
|
-
default:
|
|
68
|
-
return [`agent:${context.agentId}`];
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
async function storeStandardMemory(content, options = {}) {
|
|
72
|
-
// Fallback to standard memory storage if agent isolation is disabled
|
|
73
|
-
const db = await getDb();
|
|
74
|
-
const schema = await getSchema();
|
|
75
|
-
const memoryId = randomUUID();
|
|
76
|
-
const embedding = await getEmbedding(content);
|
|
77
|
-
await db.insert(schema.memories).values({
|
|
78
|
-
id: memoryId,
|
|
79
|
-
content,
|
|
80
|
-
type: options.type || 'observation',
|
|
81
|
-
sector: options.sector || 'episodic',
|
|
82
|
-
tags: options.tags || [],
|
|
83
|
-
metadata: options.metadata || null,
|
|
84
|
-
embedding: embedding || null,
|
|
85
|
-
confidence: 100,
|
|
86
|
-
relevanceScore: 50,
|
|
87
|
-
createdAt: new Date(),
|
|
88
|
-
updatedAt: new Date(),
|
|
89
|
-
});
|
|
90
|
-
return memoryId;
|
|
91
|
-
}
|
|
92
|
-
async function searchStandardMemories(query, options = {}) {
|
|
93
|
-
// Fallback to standard memory search if agent isolation is disabled
|
|
94
|
-
const db = await getDb();
|
|
95
|
-
const schema = await getSchema();
|
|
96
|
-
const limit = Math.min(options.limit || 10, 100);
|
|
97
|
-
let where = undefined;
|
|
98
|
-
if (options.type) {
|
|
99
|
-
where = eq(schema.memories.type, options.type);
|
|
100
|
-
}
|
|
101
|
-
return await db
|
|
102
|
-
.select()
|
|
103
|
-
.from(schema.memories)
|
|
104
|
-
.where(where
|
|
105
|
-
? and(where, schema.memories.content.ilike(`%${query}%`))
|
|
106
|
-
: schema.memories.content.ilike(`%${query}%`))
|
|
107
|
-
.limit(limit);
|
|
108
|
-
}
|
|
109
|
-
//# sourceMappingURL=agent-memory.js.map
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core Memory Service - Always-in-context memory (Tier 1)
|
|
3
|
-
*
|
|
4
|
-
* Small, persistent, always-visible memory block (< 2KB total).
|
|
5
|
-
* This memory is automatically injected into every agent interaction.
|
|
6
|
-
*/
|
|
7
|
-
type CoreMemorySection = 'persona' | 'user_info' | 'project_context' | 'working_notes';
|
|
8
|
-
interface CoreMemoryContent {
|
|
9
|
-
persona: string;
|
|
10
|
-
user_info: string;
|
|
11
|
-
project_context: string;
|
|
12
|
-
working_notes: string;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Initialize core memory for a project
|
|
16
|
-
*/
|
|
17
|
-
export declare function initializeCoreMemory(projectId: string, userId?: string): Promise<void>;
|
|
18
|
-
/**
|
|
19
|
-
* Get all core memory sections for a project
|
|
20
|
-
*/
|
|
21
|
-
export declare function getCoreMemory(projectId: string): Promise<CoreMemoryContent>;
|
|
22
|
-
/**
|
|
23
|
-
* Get a specific core memory section
|
|
24
|
-
*/
|
|
25
|
-
export declare function getCoreMemorySection(projectId: string, section: CoreMemorySection): Promise<string>;
|
|
26
|
-
/**
|
|
27
|
-
* Update (replace) a core memory section
|
|
28
|
-
*/
|
|
29
|
-
export declare function editCoreMemorySection(projectId: string, section: CoreMemorySection, content: string): Promise<{
|
|
30
|
-
success: boolean;
|
|
31
|
-
message?: string;
|
|
32
|
-
sizeBytes?: number;
|
|
33
|
-
tokensEstimate?: number;
|
|
34
|
-
}>;
|
|
35
|
-
/**
|
|
36
|
-
* Append content to a core memory section
|
|
37
|
-
*/
|
|
38
|
-
export declare function appendCoreMemorySection(projectId: string, section: CoreMemorySection, text: string): Promise<{
|
|
39
|
-
success: boolean;
|
|
40
|
-
message?: string;
|
|
41
|
-
sizeBytes?: number;
|
|
42
|
-
}>;
|
|
43
|
-
/**
|
|
44
|
-
* Replace text within a core memory section
|
|
45
|
-
*/
|
|
46
|
-
export declare function replaceCoreMemoryText(projectId: string, section: CoreMemorySection, oldText: string, newText: string): Promise<{
|
|
47
|
-
success: boolean;
|
|
48
|
-
message?: string;
|
|
49
|
-
sizeBytes?: number;
|
|
50
|
-
}>;
|
|
51
|
-
/**
|
|
52
|
-
* Get core memory stats
|
|
53
|
-
*/
|
|
54
|
-
export declare function getCoreMemoryStats(projectId: string): Promise<{
|
|
55
|
-
totalBytes: number;
|
|
56
|
-
totalTokens: number;
|
|
57
|
-
maxBytes: number;
|
|
58
|
-
maxTokens: number;
|
|
59
|
-
usagePercent: number;
|
|
60
|
-
tokenUsagePercent: number;
|
|
61
|
-
sections: Array<{
|
|
62
|
-
section: string;
|
|
63
|
-
sizeBytes: number;
|
|
64
|
-
tokensEstimate: number;
|
|
65
|
-
version: number;
|
|
66
|
-
updatedAt: Date;
|
|
67
|
-
}>;
|
|
68
|
-
}>;
|
|
69
|
-
/**
|
|
70
|
-
* Estimate token count from text (rough approximation: 1 token ≈ 4 chars)
|
|
71
|
-
*/
|
|
72
|
-
export declare function estimateTokens(text: string): number;
|
|
73
|
-
/**
|
|
74
|
-
* Get core memory formatted for context injection
|
|
75
|
-
*/
|
|
76
|
-
export declare function formatCoreMemoryForInjection(projectId: string): Promise<string>;
|
|
77
|
-
export {};
|
|
78
|
-
//# sourceMappingURL=core-memory.d.ts.map
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core Memory Service - Always-in-context memory (Tier 1)
|
|
3
|
-
*
|
|
4
|
-
* Small, persistent, always-visible memory block (< 2KB total).
|
|
5
|
-
* This memory is automatically injected into every agent interaction.
|
|
6
|
-
*/
|
|
7
|
-
import { eq, and, sql } from 'drizzle-orm';
|
|
8
|
-
import { getDb } from '../../db/index.js';
|
|
9
|
-
import { getSchema } from '../../db/schema.js';
|
|
10
|
-
import { createDatabaseClient } from '../storage/database.js';
|
|
11
|
-
import config from '../../config.js';
|
|
12
|
-
// Use configurable limits from environment
|
|
13
|
-
const MAX_TOTAL_SIZE_BYTES = config.coreMemoryTotalBytes;
|
|
14
|
-
const MAX_SECTION_SIZE_BYTES = config.coreMemorySectionBytes;
|
|
15
|
-
/**
|
|
16
|
-
* Initialize core memory for a project
|
|
17
|
-
*/
|
|
18
|
-
export async function initializeCoreMemory(projectId, userId) {
|
|
19
|
-
const db = createDatabaseClient(await getDb());
|
|
20
|
-
const schema = await getSchema();
|
|
21
|
-
const { coreMemory } = schema;
|
|
22
|
-
const sections = ['persona', 'user_info', 'project_context', 'working_notes'];
|
|
23
|
-
for (const section of sections) {
|
|
24
|
-
const existing = await db
|
|
25
|
-
.select()
|
|
26
|
-
.from(coreMemory)
|
|
27
|
-
.where(and(eq(coreMemory.projectId, projectId), eq(coreMemory.section, section)))
|
|
28
|
-
.limit(1);
|
|
29
|
-
if (existing.length === 0) {
|
|
30
|
-
await db.insert(coreMemory).values({
|
|
31
|
-
projectId: projectId,
|
|
32
|
-
userId: userId,
|
|
33
|
-
section,
|
|
34
|
-
content: '',
|
|
35
|
-
sizeBytes: 0,
|
|
36
|
-
version: 1,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Get all core memory sections for a project
|
|
43
|
-
*/
|
|
44
|
-
export async function getCoreMemory(projectId) {
|
|
45
|
-
const db = createDatabaseClient(await getDb());
|
|
46
|
-
const schema = await getSchema();
|
|
47
|
-
const { coreMemory } = schema;
|
|
48
|
-
const sections = await db
|
|
49
|
-
.select()
|
|
50
|
-
.from(coreMemory)
|
|
51
|
-
.where(eq(coreMemory.projectId, projectId));
|
|
52
|
-
const content = {
|
|
53
|
-
persona: '',
|
|
54
|
-
user_info: '',
|
|
55
|
-
project_context: '',
|
|
56
|
-
working_notes: '',
|
|
57
|
-
};
|
|
58
|
-
for (const section of sections) {
|
|
59
|
-
const key = section.section;
|
|
60
|
-
content[key] = section.content || '';
|
|
61
|
-
}
|
|
62
|
-
return content;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Get a specific core memory section
|
|
66
|
-
*/
|
|
67
|
-
export async function getCoreMemorySection(projectId, section) {
|
|
68
|
-
const db = createDatabaseClient(await getDb());
|
|
69
|
-
const schema = await getSchema();
|
|
70
|
-
const { coreMemory } = schema;
|
|
71
|
-
const result = await db
|
|
72
|
-
.select()
|
|
73
|
-
.from(coreMemory)
|
|
74
|
-
.where(and(eq(coreMemory.projectId, projectId), eq(coreMemory.section, section)))
|
|
75
|
-
.limit(1);
|
|
76
|
-
return result[0]?.content || '';
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Update (replace) a core memory section
|
|
80
|
-
*/
|
|
81
|
-
export async function editCoreMemorySection(projectId, section, content) {
|
|
82
|
-
const sizeBytes = Buffer.byteLength(content, 'utf8');
|
|
83
|
-
const tokensEstimate = estimateTokens(content);
|
|
84
|
-
// Check section size limit
|
|
85
|
-
if (sizeBytes > MAX_SECTION_SIZE_BYTES) {
|
|
86
|
-
return {
|
|
87
|
-
success: false,
|
|
88
|
-
message: `Content exceeds section limit of ${MAX_SECTION_SIZE_BYTES} bytes (got ${sizeBytes} bytes)`,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
// Check total size limit
|
|
92
|
-
const totalSize = await getTotalCoreMemorySize(projectId, section, sizeBytes);
|
|
93
|
-
if (totalSize > MAX_TOTAL_SIZE_BYTES) {
|
|
94
|
-
return {
|
|
95
|
-
success: false,
|
|
96
|
-
message: `Total core memory would exceed ${MAX_TOTAL_SIZE_BYTES} bytes (would be ${totalSize} bytes)`,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
const db = createDatabaseClient(await getDb());
|
|
100
|
-
const schema = await getSchema();
|
|
101
|
-
const { coreMemory } = schema;
|
|
102
|
-
await db
|
|
103
|
-
.update(coreMemory)
|
|
104
|
-
.set({
|
|
105
|
-
content,
|
|
106
|
-
sizeBytes,
|
|
107
|
-
tokensEstimate,
|
|
108
|
-
version: sql `${coreMemory.version} + 1`,
|
|
109
|
-
updatedAt: new Date(),
|
|
110
|
-
})
|
|
111
|
-
.where(and(eq(coreMemory.projectId, projectId), eq(coreMemory.section, section)));
|
|
112
|
-
return { success: true, sizeBytes, tokensEstimate };
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Append content to a core memory section
|
|
116
|
-
*/
|
|
117
|
-
export async function appendCoreMemorySection(projectId, section, text) {
|
|
118
|
-
const currentContent = await getCoreMemorySection(projectId, section);
|
|
119
|
-
const newContent = currentContent ? `${currentContent}\n${text}` : text;
|
|
120
|
-
return editCoreMemorySection(projectId, section, newContent);
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Replace text within a core memory section
|
|
124
|
-
*/
|
|
125
|
-
export async function replaceCoreMemoryText(projectId, section, oldText, newText) {
|
|
126
|
-
const currentContent = await getCoreMemorySection(projectId, section);
|
|
127
|
-
if (!currentContent.includes(oldText)) {
|
|
128
|
-
return {
|
|
129
|
-
success: false,
|
|
130
|
-
message: `Text "${oldText}" not found in section "${section}"`,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
const newContent = currentContent.replace(oldText, newText);
|
|
134
|
-
return editCoreMemorySection(projectId, section, newContent);
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Get total size of core memory (excluding one section if calculating new size)
|
|
138
|
-
*/
|
|
139
|
-
async function getTotalCoreMemorySize(projectId, excludeSection, newSectionSize) {
|
|
140
|
-
const db = createDatabaseClient(await getDb());
|
|
141
|
-
const schema = await getSchema();
|
|
142
|
-
const { coreMemory } = schema;
|
|
143
|
-
const sections = await db
|
|
144
|
-
.select()
|
|
145
|
-
.from(coreMemory)
|
|
146
|
-
.where(eq(coreMemory.projectId, projectId));
|
|
147
|
-
let total = 0;
|
|
148
|
-
for (const section of sections) {
|
|
149
|
-
if (section.section === excludeSection) {
|
|
150
|
-
total += newSectionSize || 0;
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
total += section.sizeBytes || 0;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
return total;
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Get core memory stats
|
|
160
|
-
*/
|
|
161
|
-
export async function getCoreMemoryStats(projectId) {
|
|
162
|
-
const db = createDatabaseClient(await getDb());
|
|
163
|
-
const schema = await getSchema();
|
|
164
|
-
const { coreMemory } = schema;
|
|
165
|
-
const sections = await db
|
|
166
|
-
.select()
|
|
167
|
-
.from(coreMemory)
|
|
168
|
-
.where(eq(coreMemory.projectId, projectId));
|
|
169
|
-
const totalBytes = sections.reduce((sum, s) => sum + (s.sizeBytes || 0), 0);
|
|
170
|
-
const totalTokens = sections.reduce((sum, s) => sum + (s.tokensEstimate || 0), 0);
|
|
171
|
-
// Estimate max tokens from max bytes (rough approximation: 1 token ≈ 4 chars)
|
|
172
|
-
const maxTokens = Math.floor(MAX_TOTAL_SIZE_BYTES / 4);
|
|
173
|
-
return {
|
|
174
|
-
totalBytes,
|
|
175
|
-
totalTokens,
|
|
176
|
-
maxBytes: MAX_TOTAL_SIZE_BYTES,
|
|
177
|
-
maxTokens,
|
|
178
|
-
usagePercent: (totalBytes / MAX_TOTAL_SIZE_BYTES) * 100,
|
|
179
|
-
tokenUsagePercent: (totalTokens / maxTokens) * 100,
|
|
180
|
-
sections: sections.map((s) => ({
|
|
181
|
-
section: s.section,
|
|
182
|
-
sizeBytes: s.sizeBytes || 0,
|
|
183
|
-
tokensEstimate: s.tokensEstimate || 0,
|
|
184
|
-
version: s.version || 1,
|
|
185
|
-
updatedAt: s.updatedAt,
|
|
186
|
-
})),
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Estimate token count from text (rough approximation: 1 token ≈ 4 chars)
|
|
191
|
-
*/
|
|
192
|
-
export function estimateTokens(text) {
|
|
193
|
-
return Math.ceil(text.length / 4);
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Get core memory formatted for context injection
|
|
197
|
-
*/
|
|
198
|
-
export async function formatCoreMemoryForInjection(projectId) {
|
|
199
|
-
const content = await getCoreMemory(projectId);
|
|
200
|
-
const stats = await getCoreMemoryStats(projectId);
|
|
201
|
-
let formatted = `# Core Memory (Always-In-Context)\n\n`;
|
|
202
|
-
if (content.persona) {
|
|
203
|
-
formatted += `## Agent Persona\n${content.persona}\n\n`;
|
|
204
|
-
}
|
|
205
|
-
if (content.user_info) {
|
|
206
|
-
formatted += `## User Information\n${content.user_info}\n\n`;
|
|
207
|
-
}
|
|
208
|
-
if (content.project_context) {
|
|
209
|
-
formatted += `## Project Context\n${content.project_context}\n\n`;
|
|
210
|
-
}
|
|
211
|
-
if (content.working_notes) {
|
|
212
|
-
formatted += `## Working Notes\n${content.working_notes}\n\n`;
|
|
213
|
-
}
|
|
214
|
-
formatted += `---\n`;
|
|
215
|
-
formatted += `Core Memory Usage:\n`;
|
|
216
|
-
formatted += `- Bytes: ${stats.totalBytes}/${stats.maxBytes} (${stats.usagePercent.toFixed(1)}%)\n`;
|
|
217
|
-
formatted += `- Tokens: ~${stats.totalTokens}/${stats.maxTokens} (${stats.tokenUsagePercent.toFixed(1)}%)\n\n`;
|
|
218
|
-
// Add tool usage hints for agent-driven retrieval
|
|
219
|
-
formatted += `### Memory Tools Available\n`;
|
|
220
|
-
formatted += `When you need to recall information or store something important, use these tools:\n`;
|
|
221
|
-
formatted += `- **Search**: Use \`/squish:search\` to find stored memories matching a query\n`;
|
|
222
|
-
formatted += `- **Store**: Use \`/squish:remember\` to save new information for future use\n`;
|
|
223
|
-
formatted += `- **Update Core Memory**: Use \`/squish:core-memory\` to edit this always-visible memory\n`;
|
|
224
|
-
return formatted;
|
|
225
|
-
}
|
|
226
|
-
//# sourceMappingURL=core-memory.js.map
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Learnings Module
|
|
3
|
-
* Agent learnings: success, failure, fix, insight
|
|
4
|
-
* With auto-linking to similar memories and learnings
|
|
5
|
-
*/
|
|
6
|
-
export type LearningType = 'success' | 'failure' | 'fix' | 'insight';
|
|
7
|
-
export interface LearningInput {
|
|
8
|
-
type: LearningType;
|
|
9
|
-
content: string;
|
|
10
|
-
context?: string;
|
|
11
|
-
action?: string;
|
|
12
|
-
target?: string;
|
|
13
|
-
project?: string;
|
|
14
|
-
memoryId?: string;
|
|
15
|
-
autoLink?: boolean;
|
|
16
|
-
}
|
|
17
|
-
export interface LearningRecord {
|
|
18
|
-
id: string;
|
|
19
|
-
projectId?: string | null;
|
|
20
|
-
conversationId?: string | null;
|
|
21
|
-
type: LearningType;
|
|
22
|
-
action: string;
|
|
23
|
-
target?: string | null;
|
|
24
|
-
summary: string;
|
|
25
|
-
details?: Record<string, unknown> | null;
|
|
26
|
-
memoryId?: string | null;
|
|
27
|
-
isImported?: boolean;
|
|
28
|
-
createdAt?: string | null;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Create a learning and optionally auto-link to similar memories/learnings
|
|
32
|
-
*/
|
|
33
|
-
export declare function createLearning(input: LearningInput): Promise<LearningRecord>;
|
|
34
|
-
/**
|
|
35
|
-
* Get learnings for a project
|
|
36
|
-
*/
|
|
37
|
-
export declare function getLearnings(projectPath: string, limit: number): Promise<LearningRecord[]>;
|
|
38
|
-
/**
|
|
39
|
-
* Get recent learnings
|
|
40
|
-
*/
|
|
41
|
-
export declare function getRecentLearnings(projectPath: string, limit?: number): Promise<LearningRecord[]>;
|
|
42
|
-
/**
|
|
43
|
-
* Get learning by ID
|
|
44
|
-
*/
|
|
45
|
-
export declare function getLearningById(learningId: string): Promise<LearningRecord | null>;
|
|
46
|
-
/**
|
|
47
|
-
* Get learnings linked to a specific memory
|
|
48
|
-
*/
|
|
49
|
-
export declare function getLearningsForMemory(memoryId: string): Promise<LearningRecord[]>;
|
|
50
|
-
/**
|
|
51
|
-
* Delete a learning
|
|
52
|
-
*/
|
|
53
|
-
export declare function deleteLearning(learningId: string): Promise<boolean>;
|
|
54
|
-
export declare const getObservations: typeof getLearnings;
|
|
55
|
-
export declare const getRecentObservations: typeof getRecentLearnings;
|
|
56
|
-
export declare const getObservationById: typeof getLearningById;
|
|
57
|
-
//# sourceMappingURL=learnings.d.ts.map
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Learnings Module
|
|
3
|
-
* Agent learnings: success, failure, fix, insight
|
|
4
|
-
* With auto-linking to similar memories and learnings
|
|
5
|
-
*/
|
|
6
|
-
import { randomUUID } from 'crypto';
|
|
7
|
-
import { desc, eq } from 'drizzle-orm';
|
|
8
|
-
import { getEmbedding } from '../embeddings.js';
|
|
9
|
-
import { getOrCreateProject, requireProject } from '../projects.js';
|
|
10
|
-
import { serializeMetadata, deserializeMetadata } from '../memory/serialization.js';
|
|
11
|
-
import { normalizeTimestamp, prepareEmbedding } from '../lib/utils.js';
|
|
12
|
-
import { logger } from '../logger.js';
|
|
13
|
-
import { getDbClient } from '../lib/db-client.js';
|
|
14
|
-
import { createAssociation } from '../associations.js';
|
|
15
|
-
import { search } from '../memory/memories.js';
|
|
16
|
-
/**
|
|
17
|
-
* Create a learning and optionally auto-link to similar memories/learnings
|
|
18
|
-
*/
|
|
19
|
-
export async function createLearning(input) {
|
|
20
|
-
const { db, schema } = await getDbClient();
|
|
21
|
-
const project = await getOrCreateProject(input.project);
|
|
22
|
-
const embedding = await getEmbedding(input.content);
|
|
23
|
-
const id = randomUUID();
|
|
24
|
-
const learningType = input.type;
|
|
25
|
-
const autoLink = input.autoLink !== false; // default true
|
|
26
|
-
// Build details with learning metadata
|
|
27
|
-
const details = serializeMetadata({
|
|
28
|
-
learningType: learningType,
|
|
29
|
-
learningContent: input.content,
|
|
30
|
-
learningContext: input.context,
|
|
31
|
-
});
|
|
32
|
-
const embeddingValues = prepareEmbedding(embedding);
|
|
33
|
-
// Insert the learning
|
|
34
|
-
await db.insert(schema.learnings).values({
|
|
35
|
-
id,
|
|
36
|
-
projectId: project?.id ?? null,
|
|
37
|
-
type: learningType,
|
|
38
|
-
action: input.action ?? input.content,
|
|
39
|
-
summary: input.context || input.content,
|
|
40
|
-
target: input.target ?? null,
|
|
41
|
-
details,
|
|
42
|
-
memoryId: input.memoryId ?? null,
|
|
43
|
-
...embeddingValues,
|
|
44
|
-
createdAt: new Date(),
|
|
45
|
-
});
|
|
46
|
-
// If memoryId provided, create bidirectional link
|
|
47
|
-
if (input.memoryId) {
|
|
48
|
-
await createAssociation(input.memoryId, // from memory
|
|
49
|
-
id, // to learning
|
|
50
|
-
'relates_to', 1);
|
|
51
|
-
}
|
|
52
|
-
// Auto-link to similar memories and learnings (if enabled)
|
|
53
|
-
if (autoLink) {
|
|
54
|
-
await autoLinkLearning(id, input.content, project?.id ?? null);
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
id,
|
|
58
|
-
projectId: project?.id ?? null,
|
|
59
|
-
conversationId: null,
|
|
60
|
-
type: learningType,
|
|
61
|
-
action: input.action ?? input.content,
|
|
62
|
-
target: input.target ?? null,
|
|
63
|
-
summary: input.context || input.content,
|
|
64
|
-
details: { learningType: learningType, learningContent: input.content, learningContext: input.context },
|
|
65
|
-
memoryId: input.memoryId ?? null,
|
|
66
|
-
createdAt: new Date().toISOString(),
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Auto-link a learning to similar memories above threshold
|
|
71
|
-
*/
|
|
72
|
-
async function autoLinkLearning(learningId, content, projectId) {
|
|
73
|
-
const SIMILARITY_THRESHOLD = 0.85;
|
|
74
|
-
const MAX_LINKS = 5;
|
|
75
|
-
if (!projectId)
|
|
76
|
-
return;
|
|
77
|
-
try {
|
|
78
|
-
// Search for similar memories using the search function
|
|
79
|
-
const similarMemories = await search({
|
|
80
|
-
query: content,
|
|
81
|
-
limit: MAX_LINKS,
|
|
82
|
-
});
|
|
83
|
-
// Filter by similarity threshold
|
|
84
|
-
const relevantMemories = similarMemories.filter((m) => (m.similarity ?? 0) >= SIMILARITY_THRESHOLD);
|
|
85
|
-
// Create associations with memories
|
|
86
|
-
for (const mem of relevantMemories) {
|
|
87
|
-
await createAssociation(learningId, // from learning
|
|
88
|
-
mem.id, // to memory
|
|
89
|
-
'relates_to', mem.similarity ?? 0.9);
|
|
90
|
-
}
|
|
91
|
-
logger.info(`Auto-linked learning ${learningId} to ${relevantMemories.length} memories`);
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
logger.error('Error in auto-linking:', error);
|
|
95
|
-
// Don't fail learning creation if auto-link fails
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Get learnings for a project
|
|
100
|
-
*/
|
|
101
|
-
export async function getLearnings(projectPath, limit) {
|
|
102
|
-
try {
|
|
103
|
-
const { db, schema } = await getDbClient();
|
|
104
|
-
const project = await requireProject(projectPath);
|
|
105
|
-
const rows = await db.select().from(schema.learnings)
|
|
106
|
-
.where(eq(schema.learnings.projectId, project.id))
|
|
107
|
-
.orderBy(desc(schema.learnings.createdAt))
|
|
108
|
-
.limit(limit);
|
|
109
|
-
return rows.map((row) => normalizeLearning(row));
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
throw error;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Get recent learnings
|
|
117
|
-
*/
|
|
118
|
-
export async function getRecentLearnings(projectPath, limit = 10) {
|
|
119
|
-
try {
|
|
120
|
-
const { db, schema } = await getDbClient();
|
|
121
|
-
const project = await requireProject(projectPath);
|
|
122
|
-
const rows = await db.select().from(schema.learnings)
|
|
123
|
-
.where(eq(schema.learnings.projectId, project.id))
|
|
124
|
-
.orderBy(desc(schema.learnings.createdAt))
|
|
125
|
-
.limit(limit);
|
|
126
|
-
return rows.map((row) => normalizeLearning(row));
|
|
127
|
-
}
|
|
128
|
-
catch (error) {
|
|
129
|
-
logger.error('Error getting recent learnings', error);
|
|
130
|
-
throw error;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Get learning by ID
|
|
135
|
-
*/
|
|
136
|
-
export async function getLearningById(learningId) {
|
|
137
|
-
try {
|
|
138
|
-
const { db, schema } = await getDbClient();
|
|
139
|
-
const rows = await db.select().from(schema.learnings)
|
|
140
|
-
.where(eq(schema.learnings.id, learningId))
|
|
141
|
-
.limit(1);
|
|
142
|
-
if (rows.length === 0)
|
|
143
|
-
return null;
|
|
144
|
-
return normalizeLearning(rows[0]);
|
|
145
|
-
}
|
|
146
|
-
catch (error) {
|
|
147
|
-
logger.error('Error getting learning', error);
|
|
148
|
-
throw error;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Get learnings linked to a specific memory
|
|
153
|
-
*/
|
|
154
|
-
export async function getLearningsForMemory(memoryId) {
|
|
155
|
-
try {
|
|
156
|
-
const { db, schema } = await getDbClient();
|
|
157
|
-
const rows = await db.select().from(schema.learnings)
|
|
158
|
-
.where(eq(schema.learnings.memoryId, memoryId))
|
|
159
|
-
.orderBy(desc(schema.learnings.createdAt));
|
|
160
|
-
return rows.map((row) => normalizeLearning(row));
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
logger.error('Error getting learnings for memory', error);
|
|
164
|
-
throw error;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Delete a learning
|
|
169
|
-
*/
|
|
170
|
-
export async function deleteLearning(learningId) {
|
|
171
|
-
try {
|
|
172
|
-
const { db, schema } = await getDbClient();
|
|
173
|
-
await db.delete(schema.learnings)
|
|
174
|
-
.where(eq(schema.learnings.id, learningId));
|
|
175
|
-
return true;
|
|
176
|
-
}
|
|
177
|
-
catch (error) {
|
|
178
|
-
logger.error('Error deleting learning', error);
|
|
179
|
-
return false;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
function normalizeLearning(row) {
|
|
183
|
-
const details = deserializeMetadata(row.details ?? null);
|
|
184
|
-
return {
|
|
185
|
-
id: row.id,
|
|
186
|
-
projectId: row.projectId ?? row.project_id ?? null,
|
|
187
|
-
conversationId: row.conversationId ?? row.conversation_id ?? null,
|
|
188
|
-
type: row.type,
|
|
189
|
-
action: row.action,
|
|
190
|
-
target: row.target ?? null,
|
|
191
|
-
summary: row.summary,
|
|
192
|
-
details,
|
|
193
|
-
memoryId: row.memoryId ?? row.memory_id ?? null,
|
|
194
|
-
isImported: row.isImported ?? row.is_imported ?? false,
|
|
195
|
-
createdAt: normalizeTimestamp(row.createdAt ?? row.created_at),
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
// Backwards compatibility aliases
|
|
199
|
-
export const getObservations = getLearnings;
|
|
200
|
-
export const getRecentObservations = getRecentLearnings;
|
|
201
|
-
export const getObservationById = getLearningById;
|
|
202
|
-
//# sourceMappingURL=learnings.js.map
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/** Layer Extractor - Creates L0/L1 truncated layers for token-efficient hierarchical retrieval */
|
|
2
|
-
export interface LayerGenerationConfig {
|
|
3
|
-
l0MaxLength?: number;
|
|
4
|
-
l1MaxLength?: number;
|
|
5
|
-
autoGenerate?: boolean;
|
|
6
|
-
}
|
|
7
|
-
export interface LayerGenerationResult {
|
|
8
|
-
l0?: string;
|
|
9
|
-
l1?: string;
|
|
10
|
-
l2?: string;
|
|
11
|
-
tokenCounts: {
|
|
12
|
-
l0: number;
|
|
13
|
-
l1: number;
|
|
14
|
-
l2: number;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Extract L0/L1/L2 layers for content via truncation
|
|
19
|
-
*/
|
|
20
|
-
export declare function extractLayers(content: string, config?: LayerGenerationConfig): Promise<LayerGenerationResult>;
|
|
21
|
-
/**
|
|
22
|
-
* Check if content should have layers auto-extracted
|
|
23
|
-
*/
|
|
24
|
-
export declare function shouldAutoGenerate(contentLength: number): boolean;
|
|
25
|
-
//# sourceMappingURL=generator.d.ts.map
|