squish-memory 1.0.2 → 1.1.5
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 +130 -0
- package/CHANGELOG.md +55 -0
- package/README.md +150 -287
- package/config/hooks/claude-code-hooks.json +39 -0
- package/config/hooks/cursor-hooks.json +30 -0
- package/config/hooks/opencode-hooks.json +30 -0
- package/config/hooks/windsurf-hooks.json +30 -0
- package/config/mcp-mode-semantics.json +23 -21
- package/config/plugin-manifest.json +101 -152
- package/{plugin.json → config/plugin.json} +2 -2
- package/config/settings.json +52 -51
- package/{commands → core/commands}/init.md +39 -39
- package/dist/config.d.ts +28 -4
- package/dist/config.js +97 -29
- package/dist/core/adapters/config/claude-code.d.ts +45 -0
- package/dist/core/adapters/config/claude-code.js +113 -0
- package/dist/core/adapters/config/cursor.d.ts +26 -0
- package/dist/core/adapters/config/cursor.js +74 -0
- package/dist/core/adapters/config/opencode.d.ts +23 -0
- package/dist/core/adapters/config/opencode.js +73 -0
- package/dist/core/adapters/config/windsurf.d.ts +26 -0
- package/dist/core/adapters/config/windsurf.js +74 -0
- package/dist/core/adapters/index.d.ts +45 -0
- package/dist/core/adapters/index.js +84 -0
- package/dist/core/adapters/scripts/install-adapter.d.ts +19 -0
- package/dist/core/adapters/scripts/install-adapter.js +149 -0
- package/dist/core/adapters/timeline.d.ts +23 -0
- package/dist/core/adapters/timeline.js +88 -0
- package/dist/core/adapters/types.d.ts +157 -0
- package/dist/core/adapters/types.js +50 -0
- package/dist/{algorithms → core/algorithms}/analytics/token-estimator.d.ts +1 -1
- package/dist/{algorithms → core/algorithms}/analytics/token-estimator.js +3 -3
- package/dist/{algorithms → core/algorithms}/detection/semantic-ranker.d.ts +1 -1
- package/dist/{algorithms → core/algorithms}/detection/semantic-ranker.js +1 -1
- package/dist/{algorithms → core/algorithms}/detection/two-stage-detector.d.ts +1 -1
- package/dist/{algorithms → core/algorithms}/detection/two-stage-detector.js +7 -10
- package/dist/{algorithms → core/algorithms}/handlers/approve-merge.js +4 -4
- package/dist/{algorithms → core/algorithms}/handlers/detect-duplicates.js +3 -3
- package/dist/{algorithms → core/algorithms}/handlers/get-stats.js +3 -3
- package/dist/{algorithms → core/algorithms}/handlers/list-proposals.js +3 -3
- package/dist/{algorithms → core/algorithms}/handlers/preview-merge.js +3 -3
- package/dist/{algorithms → core/algorithms}/handlers/reject-merge.js +3 -3
- package/dist/{algorithms → core/algorithms}/handlers/reverse-merge.js +3 -3
- package/dist/core/algorithms/index.d.ts +21 -0
- package/dist/core/algorithms/index.js +26 -0
- package/dist/core/algorithms/operations/cache-maintenance.d.ts +12 -0
- package/dist/core/algorithms/operations/cache-maintenance.js +157 -0
- package/dist/{algorithms → core/algorithms}/safety/safety-checks.d.ts +1 -1
- package/dist/{algorithms → core/algorithms}/strategies/merge-strategies.d.ts +19 -1
- package/dist/{algorithms → core/algorithms}/strategies/merge-strategies.js +74 -123
- package/dist/core/algorithms/types.d.ts +133 -0
- package/dist/core/algorithms/types.js +5 -0
- package/dist/core/associations.d.ts +1 -2
- package/dist/core/associations.js +1 -2
- package/dist/core/autosave.d.ts +19 -0
- package/dist/core/autosave.js +16 -0
- package/dist/{commands → core/commands}/managed-sync.js +5 -5
- package/dist/core/commands/mcp-server.js +739 -0
- package/dist/core/context/agent-context.d.ts +106 -0
- package/dist/core/context/agent-context.js +274 -0
- package/dist/core/{context-paging.d.ts → context/context-paging.d.ts} +2 -12
- package/dist/core/{context-paging.js → context/context-paging.js} +19 -39
- package/dist/core/context/context-window.d.ts +40 -0
- package/dist/core/context/context-window.js +177 -0
- package/dist/core/context/context.js +22 -0
- package/dist/core/embeddings.d.ts +1 -1
- package/dist/core/embeddings.js +54 -2
- package/dist/core/error-handling.d.ts +63 -0
- package/dist/core/error-handling.js +173 -0
- package/dist/core/external-folder/index.d.ts +102 -0
- package/dist/core/external-folder/index.js +294 -0
- package/dist/core/hooks/agent-hooks.d.ts +74 -0
- package/dist/core/hooks/agent-hooks.js +244 -0
- package/dist/core/hooks/auto-tagger.d.ts +19 -0
- package/dist/core/hooks/auto-tagger.js +155 -0
- package/dist/core/hooks/capture-filter.d.ts +41 -0
- package/dist/core/hooks/capture-filter.js +128 -0
- package/dist/core/index.d.ts +6 -6
- package/dist/core/index.js +6 -6
- package/dist/core/{agent-memory.js → ingestion/agent-memory.js} +5 -7
- package/dist/core/{core-memory.js → ingestion/core-memory.js} +4 -4
- package/dist/core/ingestion/learnings.d.ts +57 -0
- package/dist/core/ingestion/learnings.js +202 -0
- package/dist/core/lib/db-client.d.ts +114 -0
- package/dist/core/lib/db-client.js +130 -0
- package/dist/core/lib/schemas.d.ts +129 -0
- package/dist/core/lib/schemas.js +87 -0
- package/dist/core/{utils.d.ts → lib/utils.d.ts} +1 -0
- package/dist/core/{utils.js → lib/utils.js} +31 -15
- package/dist/core/lib/validation.d.ts +38 -0
- package/dist/core/lib/validation.js +151 -0
- package/dist/core/lifecycle.d.ts +7 -0
- package/dist/core/lifecycle.js +140 -20
- package/dist/core/local-embeddings.d.ts +6 -1
- package/dist/core/local-embeddings.js +6 -15
- package/dist/core/logger.js +7 -1
- package/dist/core/mcp/tools.js +35 -3
- package/dist/core/memory/categorizer.js +1 -0
- package/dist/core/memory/conflict-detector.js +1 -1
- package/dist/core/memory/consolidation.d.ts +1 -10
- package/dist/core/memory/consolidation.js +2 -11
- package/dist/core/memory/context-collector.js +1 -1
- package/dist/core/memory/edit-workflow.js +1 -1
- package/dist/core/memory/entity-resolver.js +7 -7
- package/dist/core/memory/fact-extractor.js +12 -12
- package/dist/core/memory/feedback-tracker.js +1 -1
- package/dist/core/memory/hooks.d.ts +88 -0
- package/dist/core/memory/hooks.js +174 -0
- package/dist/core/memory/hybrid-retrieval.js +2 -2
- package/dist/core/memory/hybrid-search.d.ts +1 -6
- package/dist/core/memory/hybrid-search.js +70 -84
- package/dist/core/memory/importance.d.ts +8 -13
- package/dist/core/memory/importance.js +47 -74
- package/dist/core/memory/loader.d.ts +31 -0
- package/dist/core/memory/loader.js +141 -0
- package/dist/core/memory/markdown/markdown-storage.d.ts +72 -0
- package/dist/core/memory/markdown/markdown-storage.js +243 -0
- package/dist/core/memory/memories.d.ts +12 -4
- package/dist/core/memory/memories.js +192 -180
- package/dist/core/memory/memory-lifecycle.d.ts +8 -0
- package/dist/core/memory/memory-lifecycle.js +55 -0
- package/dist/core/memory/migrate.d.ts +21 -0
- package/dist/core/memory/migrate.js +134 -0
- package/dist/core/memory/normalization.d.ts +22 -0
- package/dist/core/memory/normalization.js +26 -0
- package/dist/core/memory/progressive-disclosure.js +1 -1
- package/dist/core/memory/query-rewriter.js +9 -9
- package/dist/core/memory/serialization.d.ts +4 -0
- package/dist/core/memory/serialization.js +49 -0
- package/dist/core/memory/stats.d.ts +5 -0
- package/dist/core/memory/stats.js +63 -12
- package/dist/core/memory/temporal-facts.js +21 -0
- package/dist/core/memory/write-gate.js +1 -1
- package/dist/core/obsidian-vault.d.ts +30 -0
- package/dist/core/obsidian-vault.js +94 -0
- package/dist/core/places/index.d.ts +14 -0
- package/dist/core/places/index.js +14 -0
- package/dist/core/places/memory-places.d.ts +68 -0
- package/dist/core/places/memory-places.js +261 -0
- package/dist/core/places/places.d.ts +88 -0
- package/dist/core/places/places.js +314 -0
- package/dist/core/places/rules.d.ts +74 -0
- package/dist/core/places/rules.js +240 -0
- package/dist/core/places/walking.d.ts +56 -0
- package/dist/core/places/walking.js +121 -0
- package/dist/core/projects.d.ts +5 -0
- package/dist/core/projects.js +39 -18
- package/dist/core/responses.d.ts +96 -0
- package/dist/core/responses.js +122 -0
- package/dist/core/scheduler/cron-scheduler.js +29 -7
- package/dist/core/scheduler/index.d.ts +1 -1
- package/dist/core/scheduler/index.js +1 -1
- package/dist/core/scheduler/job-runner.js +1 -1
- package/dist/core/search/conversations.js +40 -42
- package/dist/core/search/entities.js +6 -9
- package/dist/core/search/graph-boost.d.ts +7 -0
- package/dist/core/search/graph-boost.js +23 -0
- package/dist/core/search/qmd-search.js +4 -4
- package/dist/core/security/encrypt.d.ts +6 -0
- package/dist/core/security/encrypt.js +47 -0
- package/dist/core/{governance.d.ts → security/governance.d.ts} +6 -1
- package/dist/core/security/governance.js +79 -0
- package/dist/core/session/auto-load.js +6 -6
- package/dist/core/session/index.d.ts +1 -1
- package/dist/core/session/index.js +1 -1
- package/dist/core/session/self-iteration-job.d.ts +20 -0
- package/dist/core/session/self-iteration-job.js +282 -0
- package/dist/core/session/session-hooks.d.ts +18 -0
- package/dist/core/session/session-hooks.js +58 -0
- package/dist/core/session-hooks/self-iteration-job.js +35 -35
- package/dist/core/{cache.js → storage/cache.js} +2 -2
- package/dist/core/sync/qmd-sync.d.ts +1 -13
- package/dist/core/sync/qmd-sync.js +1 -13
- package/dist/core/toon.d.ts +43 -0
- package/dist/core/toon.js +160 -0
- package/dist/core/utils/memory-operations.js +1 -1
- package/dist/core/utils/vector-operations.d.ts +71 -0
- package/dist/core/utils/vector-operations.js +129 -0
- package/dist/db/adapter.d.ts +3 -3
- package/dist/db/adapter.js +99 -88
- package/dist/db/bootstrap.js +820 -522
- package/dist/{drizzle → db/drizzle}/schema-sqlite.d.ts +74 -25
- package/dist/{drizzle → db/drizzle}/schema-sqlite.js +91 -24
- package/dist/{drizzle → db/drizzle}/schema.d.ts +79 -32
- package/dist/{drizzle → db/drizzle}/schema.js +106 -35
- package/dist/db/drizzle.config.d.ts +3 -0
- package/dist/db/drizzle.config.js +12 -0
- package/dist/db/index.d.ts +1 -5
- package/dist/db/index.js +51 -8
- package/dist/db/neon.d.ts +8 -0
- package/dist/db/neon.js +20 -0
- package/dist/db/schema/index.d.ts +40 -0
- package/dist/db/schema/index.js +105 -0
- package/dist/db/schema/tables/context-sessions.d.ts +9 -0
- package/dist/db/schema/tables/context-sessions.js +37 -0
- package/dist/db/schema/tables/conversations.d.ts +9 -0
- package/dist/db/schema/tables/conversations.js +47 -0
- package/dist/db/schema/tables/core-memory.d.ts +9 -0
- package/dist/db/schema/tables/core-memory.js +41 -0
- package/dist/db/schema/tables/entities.d.ts +9 -0
- package/dist/db/schema/tables/entities.js +39 -0
- package/dist/db/schema/tables/entity-relations.d.ts +9 -0
- package/dist/db/schema/tables/entity-relations.js +31 -0
- package/dist/db/schema/tables/learnings.d.ts +9 -0
- package/dist/db/schema/tables/learnings.js +66 -0
- package/dist/db/schema/tables/memories.d.ts +9 -0
- package/dist/db/schema/tables/memories.js +161 -0
- package/dist/db/schema/tables/memory-associations.d.ts +9 -0
- package/dist/db/schema/tables/memory-associations.js +39 -0
- package/dist/db/schema/tables/memory-hash-cache.d.ts +9 -0
- package/dist/db/schema/tables/memory-hash-cache.js +29 -0
- package/dist/db/schema/tables/memory-merge-history.d.ts +9 -0
- package/dist/db/schema/tables/memory-merge-history.js +33 -0
- package/dist/db/schema/tables/memory-merge-proposals.d.ts +9 -0
- package/dist/db/schema/tables/memory-merge-proposals.js +39 -0
- package/dist/db/schema/tables/messages.d.ts +9 -0
- package/dist/db/schema/tables/messages.js +41 -0
- package/dist/db/schema/tables/namespaces.d.ts +9 -0
- package/dist/db/schema/tables/namespaces.js +37 -0
- package/dist/db/schema/tables/projects.d.ts +9 -0
- package/dist/db/schema/tables/projects.js +31 -0
- package/dist/db/schema/tables/users.d.ts +9 -0
- package/dist/db/schema/tables/users.js +27 -0
- package/dist/db/schema.d.ts +1 -1
- package/dist/db/schema.js +2 -2
- package/dist/db/supabase.d.ts +9 -0
- package/dist/db/supabase.js +24 -0
- package/dist/index.d.ts +2 -14
- package/dist/index.js +1320 -640
- package/dist/vendor/sql.js/sql-wasm.wasm +0 -0
- package/dist/webui/server.d.ts +5 -0
- package/dist/{api/web/web.js → webui/server.js} +511 -508
- package/generated/mcp/manifest.json +1 -1
- package/{.mcp.json → mcp.json.example} +1 -1
- package/package.json +159 -181
- package/scripts/README.md +60 -0
- package/scripts/copy-runtime-assets.mjs +26 -0
- package/scripts/generate-mcp.mjs +264 -264
- package/scripts/github-release.sh +4 -4
- package/scripts/install-claude-code.sh +85 -0
- package/scripts/install-cursor.sh +56 -0
- package/scripts/install-hooks.sh +73 -0
- package/scripts/install-interactive.mjs +357 -677
- package/scripts/install-opencode.sh +75 -0
- package/scripts/install-windsurf.sh +67 -0
- package/skills/squish-memory/SKILL.md +104 -114
- package/skills/squish-memory/{install.mjs → scripts/install.mjs} +2 -2
- package/skills/squish-memory/{install.sh → scripts/install.sh} +2 -2
- package/skills/squish-memory/write_skill.js +2 -0
- package/.claude-plugin/marketplace.json +0 -20
- package/.claude-plugin/plugin.json +0 -32
- package/.env.mcp.example +0 -60
- package/QUICK-START.md +0 -71
- package/bin/squish-add.mjs +0 -32
- package/bin/squish-rm.mjs +0 -21
- package/commands/observe.md +0 -5
- package/dist/api/web/index.d.ts +0 -3
- package/dist/api/web/index.js +0 -4
- package/dist/api/web/web-server.d.ts +0 -3
- package/dist/api/web/web-server.js +0 -6
- package/dist/api/web/web.d.ts +0 -4
- package/dist/commands/mcp-server.js +0 -393
- package/dist/core/context.js +0 -24
- package/dist/core/governance.js +0 -64
- package/dist/core/observations.d.ts +0 -26
- package/dist/core/observations.js +0 -110
- package/dist/core/requirements.d.ts +0 -20
- package/dist/core/requirements.js +0 -35
- package/hooks/hooks.json +0 -52
- package/hooks/post-tool-use.js +0 -26
- package/hooks/session-end.js +0 -28
- package/hooks/session-start.js +0 -33
- package/hooks/user-prompt-submit.js +0 -26
- package/hooks/utils.js +0 -153
- package/npx-installer.js +0 -208
- package/packages/plugin-claude-code/README.md +0 -73
- package/packages/plugin-claude-code/dist/plugin-wrapper.d.ts +0 -35
- package/packages/plugin-claude-code/dist/plugin-wrapper.js +0 -191
- package/packages/plugin-claude-code/package.json +0 -31
- package/packages/plugin-openclaw/README.md +0 -70
- package/packages/plugin-openclaw/dist/index.d.ts +0 -49
- package/packages/plugin-openclaw/dist/index.js +0 -262
- package/packages/plugin-openclaw/openclaw.plugin.json +0 -94
- package/packages/plugin-openclaw/package.json +0 -31
- package/packages/plugin-opencode/install.mjs +0 -217
- package/packages/plugin-opencode/package.json +0 -21
- package/scripts/db/check-db.mjs +0 -88
- package/scripts/db/fix-all-columns.mjs +0 -52
- package/scripts/db/fix-schema-all.mjs +0 -55
- package/scripts/db/fix-schema-full.mjs +0 -46
- package/scripts/db/fix-schema.mjs +0 -38
- package/scripts/db/init-db.mjs +0 -13
- package/scripts/db/recreate-db.mjs +0 -14
- package/scripts/install-mcp.mjs +0 -116
- package/scripts/install-web.sh +0 -120
- package/scripts/install.mjs +0 -340
- package/scripts/openclaw-bootstrap.mjs +0 -127
- package/scripts/package-release.sh +0 -71
- package/scripts/test/test-all-systems.mjs +0 -139
- package/scripts/test/test-memory-system.mjs +0 -139
- package/scripts/test/test-v0.5.0.mjs +0 -210
- package/skills/memory-guide/SKILL.md +0 -332
- package/skills/squish-cli/SKILL.md +0 -240
- package/skills/squish-mcp/SKILL.md +0 -355
- package/skills/squish-memory/claude-desktop.json +0 -12
- package/skills/squish-memory/openclaw.json +0 -13
- package/skills/squish-memory/opencode.json +0 -14
- package/skills/squish-memory/skill.json +0 -32
- /package/{commands → core/commands}/context-paging.md +0 -0
- /package/{commands → core/commands}/context-status.md +0 -0
- /package/{commands → core/commands}/context.md +0 -0
- /package/{commands → core/commands}/core-memory.md +0 -0
- /package/{commands → core/commands}/health.md +0 -0
- /package/{commands → core/commands}/merge.md +0 -0
- /package/{commands → core/commands}/recall.md +0 -0
- /package/{commands → core/commands}/remember.md +0 -0
- /package/{commands → core/commands}/search.md +0 -0
- /package/dist/{algorithms → core/algorithms}/detection/hash-filters.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/detection/hash-filters.js +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/approve-merge.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/detect-duplicates.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/get-stats.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/list-proposals.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/preview-merge.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/reject-merge.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/handlers/reverse-merge.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/safety/safety-checks.js +0 -0
- /package/dist/{algorithms → core/algorithms}/utils/response-builder.d.ts +0 -0
- /package/dist/{algorithms → core/algorithms}/utils/response-builder.js +0 -0
- /package/dist/{commands → core/commands}/managed-sync.d.ts +0 -0
- /package/dist/{commands → core/commands}/mcp-server.d.ts +0 -0
- /package/dist/core/{context.d.ts → context/context.d.ts} +0 -0
- /package/dist/core/{agent-memory.d.ts → ingestion/agent-memory.d.ts} +0 -0
- /package/dist/core/{core-memory.d.ts → ingestion/core-memory.d.ts} +0 -0
- /package/dist/core/{privacy.d.ts → security/privacy.d.ts} +0 -0
- /package/dist/core/{privacy.js → security/privacy.js} +0 -0
- /package/dist/core/{secret-detector.d.ts → security/secret-detector.d.ts} +0 -0
- /package/dist/core/{secret-detector.js → security/secret-detector.js} +0 -0
- /package/dist/core/{cache.d.ts → storage/cache.d.ts} +0 -0
- /package/dist/core/{database.d.ts → storage/database.d.ts} +0 -0
- /package/dist/core/{database.js → storage/database.js} +0 -0
|
@@ -20,31 +20,31 @@ const DEFAULT_CONFIG = {
|
|
|
20
20
|
*/
|
|
21
21
|
function buildFactExtractionPrompt(messages) {
|
|
22
22
|
const messagesText = messages.map(m => `[${m.role}]: ${m.content}`).join('\n\n');
|
|
23
|
-
return `Extract key facts, decisions, and user preferences from this conversation.
|
|
24
|
-
|
|
25
|
-
Format your response as JSON:
|
|
26
|
-
{
|
|
27
|
-
"extractedFacts": [
|
|
28
|
-
{
|
|
29
|
-
"content": "specific fact text",
|
|
30
|
-
"type": "fact|decision|preference|observation",
|
|
31
|
-
"confidence": 0-100
|
|
32
|
-
}
|
|
33
|
-
]
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
Only extract truly meaningful information that should be remembered:
|
|
37
|
-
- Facts that are useful for future work or decisions
|
|
38
|
-
- User preferences and choices
|
|
39
|
-
- Important decisions made
|
|
40
|
-
- Patterns or behaviors observed
|
|
41
|
-
|
|
42
|
-
Do NOT extract:
|
|
43
|
-
- Temporary conversational details
|
|
44
|
-
- Greetings or pleasantries
|
|
45
|
-
- Unless they indicate something significant
|
|
46
|
-
|
|
47
|
-
Conversation messages:
|
|
23
|
+
return `Extract key facts, decisions, and user preferences from this conversation.
|
|
24
|
+
|
|
25
|
+
Format your response as JSON:
|
|
26
|
+
{
|
|
27
|
+
"extractedFacts": [
|
|
28
|
+
{
|
|
29
|
+
"content": "specific fact text",
|
|
30
|
+
"type": "fact|decision|preference|observation",
|
|
31
|
+
"confidence": 0-100
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
Only extract truly meaningful information that should be remembered:
|
|
37
|
+
- Facts that are useful for future work or decisions
|
|
38
|
+
- User preferences and choices
|
|
39
|
+
- Important decisions made
|
|
40
|
+
- Patterns or behaviors observed
|
|
41
|
+
|
|
42
|
+
Do NOT extract:
|
|
43
|
+
- Temporary conversational details
|
|
44
|
+
- Greetings or pleasantries
|
|
45
|
+
- Unless they indicate something significant
|
|
46
|
+
|
|
47
|
+
Conversation messages:
|
|
48
48
|
${messagesText}`;
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
@@ -52,14 +52,14 @@ ${messagesText}`;
|
|
|
52
52
|
*/
|
|
53
53
|
function buildSummaryPrompt(messages) {
|
|
54
54
|
const messagesText = messages.map(m => `[${m.role}]: ${m.content}`).join('\n\n');
|
|
55
|
-
return `Generate a concise summary of this conversation (2-3 sentences, under 300 characters).
|
|
56
|
-
|
|
57
|
-
Focus on:
|
|
58
|
-
- What was accomplished
|
|
59
|
-
- Key decisions made
|
|
60
|
-
- Important context established
|
|
61
|
-
|
|
62
|
-
Conversation messages:
|
|
55
|
+
return `Generate a concise summary of this conversation (2-3 sentences, under 300 characters).
|
|
56
|
+
|
|
57
|
+
Focus on:
|
|
58
|
+
- What was accomplished
|
|
59
|
+
- Key decisions made
|
|
60
|
+
- Important context established
|
|
61
|
+
|
|
62
|
+
Conversation messages:
|
|
63
63
|
${messagesText}`;
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
@@ -93,8 +93,8 @@ async function getConversationsForIteration(maxMessages) {
|
|
|
93
93
|
// 3. Have enough messages (messageCount >= minMessageCount)
|
|
94
94
|
const conversations = await sqliteDb.select()
|
|
95
95
|
.from(schema.conversations)
|
|
96
|
-
.where(sql `${schema.conversations.endedAt} IS NOT NULL
|
|
97
|
-
AND (${schema.conversations.metadata}->>'selfIterationProcessed') IS NULL
|
|
96
|
+
.where(sql `${schema.conversations.endedAt} IS NOT NULL
|
|
97
|
+
AND (${schema.conversations.metadata}->>'selfIterationProcessed') IS NULL
|
|
98
98
|
AND ${schema.conversations.messageCount} >= ?`)
|
|
99
99
|
.limit(10);
|
|
100
100
|
return conversations;
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* QMD Memory Synchronization
|
|
3
|
-
*
|
|
4
|
-
* Syncs Squish memories to QMD collections for hybrid search.
|
|
5
|
-
* Writes memories as markdown files to QMD collection directories.
|
|
6
|
-
*
|
|
7
|
-
* QMD automatically indexes files in collection directories, so we just
|
|
8
|
-
* need to write files to the right location.
|
|
9
|
-
*
|
|
10
|
-
* Collection Structure:
|
|
11
|
-
* - qmd-collections/squish-observations/ - Observation memories
|
|
12
|
-
* - qmd-collections/squish-facts/ - Fact memories
|
|
13
|
-
* - qmd-collections/squish-decisions/ - Decision memories
|
|
14
|
-
* - qmd-collections/squish-context/ - Context memories
|
|
15
|
-
* - qmd-collections/squish-preferences/ - Preference memories
|
|
3
|
+
* Syncs Squish memories to QMD collections for hybrid search
|
|
16
4
|
*/
|
|
17
5
|
import type { MemoryRecord } from '../memory/memories.js';
|
|
18
6
|
export interface CollectionMapping {
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* QMD Memory Synchronization
|
|
3
|
-
*
|
|
4
|
-
* Syncs Squish memories to QMD collections for hybrid search.
|
|
5
|
-
* Writes memories as markdown files to QMD collection directories.
|
|
6
|
-
*
|
|
7
|
-
* QMD automatically indexes files in collection directories, so we just
|
|
8
|
-
* need to write files to the right location.
|
|
9
|
-
*
|
|
10
|
-
* Collection Structure:
|
|
11
|
-
* - qmd-collections/squish-observations/ - Observation memories
|
|
12
|
-
* - qmd-collections/squish-facts/ - Fact memories
|
|
13
|
-
* - qmd-collections/squish-decisions/ - Decision memories
|
|
14
|
-
* - qmd-collections/squish-context/ - Context memories
|
|
15
|
-
* - qmd-collections/squish-preferences/ - Preference memories
|
|
3
|
+
* Syncs Squish memories to QMD collections for hybrid search
|
|
16
4
|
*/
|
|
17
5
|
import { mkdir, writeFile } from 'fs/promises';
|
|
18
6
|
import { join } from 'path';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TOON Compression - Token-efficient memory format
|
|
3
|
+
*
|
|
4
|
+
* Compact format for memory context using abbreviated notation.
|
|
5
|
+
* Achieves efficient token usage for context injection.
|
|
6
|
+
*
|
|
7
|
+
* Format:
|
|
8
|
+
* {
|
|
9
|
+
* m:[type], // memory type (1-2 chars)
|
|
10
|
+
* c:"...", // content (truncated)
|
|
11
|
+
* t:[], // tags (array)
|
|
12
|
+
* d:123 // days ago
|
|
13
|
+
* }
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Compress a memory to TOON format
|
|
17
|
+
*/
|
|
18
|
+
export declare function compressForContext(content: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Decompress TOON back to readable format
|
|
21
|
+
*/
|
|
22
|
+
export declare function decompressFromContext(toonString: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Estimate compression ratio
|
|
25
|
+
*/
|
|
26
|
+
export declare function estimateCompressionRatio(content: string): number;
|
|
27
|
+
/**
|
|
28
|
+
* Check if content is JSON
|
|
29
|
+
*/
|
|
30
|
+
export declare function isJson(content: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Check if content is TOON format
|
|
33
|
+
*/
|
|
34
|
+
export declare function isToon(content: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Count tokens (rough estimate)
|
|
37
|
+
*/
|
|
38
|
+
export declare function estimateTokens(text: string): number;
|
|
39
|
+
/**
|
|
40
|
+
* Truncate to token budget
|
|
41
|
+
*/
|
|
42
|
+
export declare function truncateToTokenBudget(content: string, maxTokens: number): string;
|
|
43
|
+
//# sourceMappingURL=toon.d.ts.map
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TOON Compression - Token-efficient memory format
|
|
3
|
+
*
|
|
4
|
+
* Compact format for memory context using abbreviated notation.
|
|
5
|
+
* Achieves efficient token usage for context injection.
|
|
6
|
+
*
|
|
7
|
+
* Format:
|
|
8
|
+
* {
|
|
9
|
+
* m:[type], // memory type (1-2 chars)
|
|
10
|
+
* c:"...", // content (truncated)
|
|
11
|
+
* t:[], // tags (array)
|
|
12
|
+
* d:123 // days ago
|
|
13
|
+
* }
|
|
14
|
+
*/
|
|
15
|
+
const MAX_CONTENT_LENGTH = 80; // Max chars per content
|
|
16
|
+
const MAX_TAGS = 3; // Max tags to include
|
|
17
|
+
/**
|
|
18
|
+
* Compress a memory to TOON format
|
|
19
|
+
*/
|
|
20
|
+
export function compressForContext(content) {
|
|
21
|
+
// If not JSON or already short, just return
|
|
22
|
+
if (!isJson(content) || content.length <= MAX_CONTENT_LENGTH) {
|
|
23
|
+
return content;
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const parsed = JSON.parse(content);
|
|
27
|
+
// Build compact TOON object
|
|
28
|
+
const toon = {
|
|
29
|
+
m: parsed.type?.substring(0, 2) || 'ob', // observation -> ob
|
|
30
|
+
};
|
|
31
|
+
// Truncate content
|
|
32
|
+
if (parsed.content) {
|
|
33
|
+
const truncated = parsed.content.substring(0, MAX_CONTENT_LENGTH);
|
|
34
|
+
toon.c = truncated.length < parsed.content.length ? truncated + '..' : truncated;
|
|
35
|
+
}
|
|
36
|
+
// Add tags (limited)
|
|
37
|
+
if (parsed.tags && Array.isArray(parsed.tags)) {
|
|
38
|
+
toon.t = parsed.tags.slice(0, MAX_TAGS);
|
|
39
|
+
}
|
|
40
|
+
// Add days ago if there's a date
|
|
41
|
+
if (parsed.createdAt) {
|
|
42
|
+
const days = Math.floor((Date.now() - new Date(parsed.createdAt).getTime()) / (1000 * 60 * 60 * 24));
|
|
43
|
+
if (days > 0) {
|
|
44
|
+
toon.d = days;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return JSON.stringify(toon);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Not parseable JSON, return truncated content
|
|
51
|
+
return content.substring(0, MAX_CONTENT_LENGTH);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Decompress TOON back to readable format
|
|
56
|
+
*/
|
|
57
|
+
export function decompressFromContext(toonString) {
|
|
58
|
+
// Check if it's TOON format
|
|
59
|
+
if (!isToon(toonString)) {
|
|
60
|
+
return toonString;
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
const parsed = JSON.parse(toonString);
|
|
64
|
+
// If it has TOON markers, expand it
|
|
65
|
+
if (parsed.m || parsed.c || parsed.t) {
|
|
66
|
+
const typeMap = {
|
|
67
|
+
ob: 'observation',
|
|
68
|
+
su: 'success',
|
|
69
|
+
f: 'failure',
|
|
70
|
+
fx: 'fix',
|
|
71
|
+
i: 'insight',
|
|
72
|
+
};
|
|
73
|
+
const type = typeMap[parsed.m] || 'observation';
|
|
74
|
+
const parts = [`[${type}]`];
|
|
75
|
+
if (parsed.c) {
|
|
76
|
+
parts.push(parsed.c);
|
|
77
|
+
}
|
|
78
|
+
if (parsed.t && parsed.t.length > 0) {
|
|
79
|
+
parts.push(`#${parsed.t.join(' #')}`);
|
|
80
|
+
}
|
|
81
|
+
if (parsed.d) {
|
|
82
|
+
parts.push(`(${parsed.d}d ago)`);
|
|
83
|
+
}
|
|
84
|
+
return parts.join(' ');
|
|
85
|
+
}
|
|
86
|
+
return toonString;
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// Not valid TOON, return as-is
|
|
90
|
+
return toonString;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Estimate compression ratio
|
|
95
|
+
*/
|
|
96
|
+
export function estimateCompressionRatio(content) {
|
|
97
|
+
if (!isJson(content) || content.length <= MAX_CONTENT_LENGTH) {
|
|
98
|
+
return 1.0;
|
|
99
|
+
}
|
|
100
|
+
const compressed = compressForContext(content);
|
|
101
|
+
return compressed.length / content.length;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Check if content is JSON
|
|
105
|
+
*/
|
|
106
|
+
export function isJson(content) {
|
|
107
|
+
try {
|
|
108
|
+
JSON.parse(content);
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Check if content is TOON format
|
|
117
|
+
*/
|
|
118
|
+
export function isToon(content) {
|
|
119
|
+
if (!content.startsWith('{') || !content.endsWith('}')) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
const parsed = JSON.parse(content);
|
|
124
|
+
// Has TOON markers
|
|
125
|
+
return parsed.m !== undefined || parsed.c !== undefined;
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Count tokens (rough estimate)
|
|
133
|
+
*/
|
|
134
|
+
export function estimateTokens(text) {
|
|
135
|
+
return Math.ceil(text.length / 4);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Truncate to token budget
|
|
139
|
+
*/
|
|
140
|
+
export function truncateToTokenBudget(content, maxTokens) {
|
|
141
|
+
const tokens = estimateTokens(content);
|
|
142
|
+
if (tokens <= maxTokens) {
|
|
143
|
+
return content;
|
|
144
|
+
}
|
|
145
|
+
// Binary search for the right length
|
|
146
|
+
let low = 0;
|
|
147
|
+
let high = content.length;
|
|
148
|
+
while (low < high) {
|
|
149
|
+
const mid = Math.floor((low + high) / 2);
|
|
150
|
+
const estimated = estimateTokens(content.substring(0, mid));
|
|
151
|
+
if (estimated <= maxTokens) {
|
|
152
|
+
low = mid + 1;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
high = mid;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return content.substring(0, low) + '...';
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=toon.js.map
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { eq } from 'drizzle-orm';
|
|
6
6
|
import { getDb } from '../../db/index.js';
|
|
7
7
|
import { getSchema } from '../../db/schema.js';
|
|
8
|
-
import { createDatabaseClient } from '../database.js';
|
|
8
|
+
import { createDatabaseClient } from '../storage/database.js';
|
|
9
9
|
import { config } from '../../config.js';
|
|
10
10
|
import { logger } from '../logger.js';
|
|
11
11
|
/**
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector Operations Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides mathematical operations for vector computations, primarily focused on
|
|
5
|
+
* cosine similarity calculations for embedding comparisons.
|
|
6
|
+
*
|
|
7
|
+
* All functions handle edge cases gracefully and are optimized for performance.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Calculates the cosine similarity between two vectors.
|
|
11
|
+
*
|
|
12
|
+
* Cosine similarity measures the cosine of the angle between two vectors,
|
|
13
|
+
* providing a normalized measure of similarity that ranges from -1 (opposite)
|
|
14
|
+
* to 1 (identical), with 0 indicating orthogonality (no similarity).
|
|
15
|
+
*
|
|
16
|
+
* The implementation uses the standard formula:
|
|
17
|
+
* cos(θ) = (A · B) / (||A|| * ||B||)
|
|
18
|
+
*
|
|
19
|
+
* Edge case handling:
|
|
20
|
+
* - Returns 0 if either vector is null/undefined
|
|
21
|
+
* - Returns 0 if vectors have different lengths
|
|
22
|
+
* - Returns 0 if either vector has zero magnitude (norm = 0)
|
|
23
|
+
*
|
|
24
|
+
* @param a - First vector as array of numbers
|
|
25
|
+
* @param b - Second vector as array of numbers
|
|
26
|
+
* @returns Cosine similarity value in range [-1, 1], or 0 for invalid inputs
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const vec1 = [1, 2, 3];
|
|
31
|
+
* const vec2 = [4, 5, 6];
|
|
32
|
+
* const similarity = cosineSimilarity(vec1, vec2); // ~0.974
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @performance
|
|
36
|
+
* - Time complexity: O(n) where n is vector length
|
|
37
|
+
* - Space complexity: O(1) - uses only accumulator variables
|
|
38
|
+
* - Optimized with single-pass computation of dot product and norms
|
|
39
|
+
*/
|
|
40
|
+
export declare function cosineSimilarity(a: number[] | null | undefined, b: number[] | null | undefined): number;
|
|
41
|
+
/**
|
|
42
|
+
* Calculates the Euclidean distance between two vectors.
|
|
43
|
+
*
|
|
44
|
+
* @param a - First vector
|
|
45
|
+
* @param b - Second vector
|
|
46
|
+
* @returns Euclidean distance, or Infinity if vectors have different lengths
|
|
47
|
+
*/
|
|
48
|
+
export declare function euclideanDistance(a: number[] | null | undefined, b: number[] | null | undefined): number;
|
|
49
|
+
/**
|
|
50
|
+
* Normalizes a vector to unit length (magnitude = 1).
|
|
51
|
+
*
|
|
52
|
+
* @param vec - Input vector
|
|
53
|
+
* @returns Normalized vector, or null if input is null or zero vector
|
|
54
|
+
*/
|
|
55
|
+
export declare function normalizeVector(vec: number[] | null | undefined): number[] | null;
|
|
56
|
+
/**
|
|
57
|
+
* Computes the dot product of two vectors.
|
|
58
|
+
*
|
|
59
|
+
* @param a - First vector
|
|
60
|
+
* @param b - Second vector
|
|
61
|
+
* @returns Dot product, or 0 if vectors are invalid or different lengths
|
|
62
|
+
*/
|
|
63
|
+
export declare function dotProduct(a: number[] | null | undefined, b: number[] | null | undefined): number;
|
|
64
|
+
/**
|
|
65
|
+
* Calculates the magnitude (L2 norm) of a vector.
|
|
66
|
+
*
|
|
67
|
+
* @param vec - Input vector
|
|
68
|
+
* @returns Magnitude of the vector, or 0 if input is null
|
|
69
|
+
*/
|
|
70
|
+
export declare function magnitude(vec: number[] | null | undefined): number;
|
|
71
|
+
//# sourceMappingURL=vector-operations.d.ts.map
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector Operations Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides mathematical operations for vector computations, primarily focused on
|
|
5
|
+
* cosine similarity calculations for embedding comparisons.
|
|
6
|
+
*
|
|
7
|
+
* All functions handle edge cases gracefully and are optimized for performance.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Calculates the cosine similarity between two vectors.
|
|
11
|
+
*
|
|
12
|
+
* Cosine similarity measures the cosine of the angle between two vectors,
|
|
13
|
+
* providing a normalized measure of similarity that ranges from -1 (opposite)
|
|
14
|
+
* to 1 (identical), with 0 indicating orthogonality (no similarity).
|
|
15
|
+
*
|
|
16
|
+
* The implementation uses the standard formula:
|
|
17
|
+
* cos(θ) = (A · B) / (||A|| * ||B||)
|
|
18
|
+
*
|
|
19
|
+
* Edge case handling:
|
|
20
|
+
* - Returns 0 if either vector is null/undefined
|
|
21
|
+
* - Returns 0 if vectors have different lengths
|
|
22
|
+
* - Returns 0 if either vector has zero magnitude (norm = 0)
|
|
23
|
+
*
|
|
24
|
+
* @param a - First vector as array of numbers
|
|
25
|
+
* @param b - Second vector as array of numbers
|
|
26
|
+
* @returns Cosine similarity value in range [-1, 1], or 0 for invalid inputs
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const vec1 = [1, 2, 3];
|
|
31
|
+
* const vec2 = [4, 5, 6];
|
|
32
|
+
* const similarity = cosineSimilarity(vec1, vec2); // ~0.974
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @performance
|
|
36
|
+
* - Time complexity: O(n) where n is vector length
|
|
37
|
+
* - Space complexity: O(1) - uses only accumulator variables
|
|
38
|
+
* - Optimized with single-pass computation of dot product and norms
|
|
39
|
+
*/
|
|
40
|
+
export function cosineSimilarity(a, b) {
|
|
41
|
+
// Guard against null/undefined inputs
|
|
42
|
+
if (!a || !b)
|
|
43
|
+
return 0;
|
|
44
|
+
// Vectors must have same dimensions
|
|
45
|
+
if (a.length !== b.length)
|
|
46
|
+
return 0;
|
|
47
|
+
let dotProduct = 0;
|
|
48
|
+
let normA = 0;
|
|
49
|
+
let normB = 0;
|
|
50
|
+
// Single pass to compute dot product and norms
|
|
51
|
+
for (let i = 0; i < a.length; i++) {
|
|
52
|
+
dotProduct += a[i] * b[i];
|
|
53
|
+
normA += a[i] * a[i];
|
|
54
|
+
normB += b[i] * b[i];
|
|
55
|
+
}
|
|
56
|
+
// Handle zero vectors (avoid division by zero)
|
|
57
|
+
if (normA === 0 || normB === 0)
|
|
58
|
+
return 0;
|
|
59
|
+
return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Calculates the Euclidean distance between two vectors.
|
|
63
|
+
*
|
|
64
|
+
* @param a - First vector
|
|
65
|
+
* @param b - Second vector
|
|
66
|
+
* @returns Euclidean distance, or Infinity if vectors have different lengths
|
|
67
|
+
*/
|
|
68
|
+
export function euclideanDistance(a, b) {
|
|
69
|
+
if (!a || !b)
|
|
70
|
+
return Infinity;
|
|
71
|
+
if (a.length !== b.length)
|
|
72
|
+
return Infinity;
|
|
73
|
+
let sum = 0;
|
|
74
|
+
for (let i = 0; i < a.length; i++) {
|
|
75
|
+
const diff = a[i] - b[i];
|
|
76
|
+
sum += diff * diff;
|
|
77
|
+
}
|
|
78
|
+
return Math.sqrt(sum);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Normalizes a vector to unit length (magnitude = 1).
|
|
82
|
+
*
|
|
83
|
+
* @param vec - Input vector
|
|
84
|
+
* @returns Normalized vector, or null if input is null or zero vector
|
|
85
|
+
*/
|
|
86
|
+
export function normalizeVector(vec) {
|
|
87
|
+
if (!vec)
|
|
88
|
+
return null;
|
|
89
|
+
let norm = 0;
|
|
90
|
+
for (let i = 0; i < vec.length; i++) {
|
|
91
|
+
norm += vec[i] * vec[i];
|
|
92
|
+
}
|
|
93
|
+
if (norm === 0)
|
|
94
|
+
return null;
|
|
95
|
+
const magnitude = Math.sqrt(norm);
|
|
96
|
+
return vec.map(val => val / magnitude);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Computes the dot product of two vectors.
|
|
100
|
+
*
|
|
101
|
+
* @param a - First vector
|
|
102
|
+
* @param b - Second vector
|
|
103
|
+
* @returns Dot product, or 0 if vectors are invalid or different lengths
|
|
104
|
+
*/
|
|
105
|
+
export function dotProduct(a, b) {
|
|
106
|
+
if (!a || !b || a.length !== b.length)
|
|
107
|
+
return 0;
|
|
108
|
+
let result = 0;
|
|
109
|
+
for (let i = 0; i < a.length; i++) {
|
|
110
|
+
result += a[i] * b[i];
|
|
111
|
+
}
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Calculates the magnitude (L2 norm) of a vector.
|
|
116
|
+
*
|
|
117
|
+
* @param vec - Input vector
|
|
118
|
+
* @returns Magnitude of the vector, or 0 if input is null
|
|
119
|
+
*/
|
|
120
|
+
export function magnitude(vec) {
|
|
121
|
+
if (!vec)
|
|
122
|
+
return 0;
|
|
123
|
+
let sum = 0;
|
|
124
|
+
for (let i = 0; i < vec.length; i++) {
|
|
125
|
+
sum += vec[i] * vec[i];
|
|
126
|
+
}
|
|
127
|
+
return Math.sqrt(sum);
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=vector-operations.js.map
|
package/dist/db/adapter.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export declare function createDb(): Promise<(import("drizzle-orm/node-postgres").NodePgDatabase<typeof import("
|
|
1
|
+
export declare function createDb(): Promise<(import("drizzle-orm/node-postgres").NodePgDatabase<typeof import("./drizzle/schema.js")> & {
|
|
2
2
|
$client: import("pg").Pool;
|
|
3
|
-
}) | (import("drizzle-orm/better-sqlite3").BetterSQLite3Database<typeof import("
|
|
3
|
+
}) | (import("drizzle-orm/better-sqlite3").BetterSQLite3Database<typeof import("./drizzle/schema-sqlite.js")> & {
|
|
4
4
|
$client: import("better-sqlite3").Database;
|
|
5
|
-
}) | import("drizzle-orm/sql-js").SQLJsDatabase<typeof import("
|
|
5
|
+
}) | import("drizzle-orm/sql-js").SQLJsDatabase<typeof import("./drizzle/schema-sqlite.js")>>;
|
|
6
6
|
export default createDb;
|
|
7
7
|
//# sourceMappingURL=adapter.d.ts.map
|