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
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Associations Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const memoryAssociationsTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS memory_associations (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
memory_id TEXT NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
10
|
+
associated_memory_id TEXT NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
11
|
+
association_type TEXT NOT NULL,
|
|
12
|
+
strength REAL DEFAULT 0.5,
|
|
13
|
+
created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
|
|
14
|
+
coactivation_count INTEGER DEFAULT 0,
|
|
15
|
+
last_coactivated_at INTEGER,
|
|
16
|
+
metadata TEXT
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
CREATE INDEX IF NOT EXISTS associations_memory_idx ON memory_associations(memory_id);
|
|
20
|
+
CREATE INDEX IF NOT EXISTS associations_associated_idx ON memory_associations(associated_memory_id);
|
|
21
|
+
CREATE INDEX IF NOT EXISTS associations_type_idx ON memory_associations(association_type);`,
|
|
22
|
+
postgres: `
|
|
23
|
+
CREATE TABLE IF NOT EXISTS memory_associations (
|
|
24
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
25
|
+
memory_id UUID NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
26
|
+
associated_memory_id UUID NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
27
|
+
association_type TEXT NOT NULL,
|
|
28
|
+
strength REAL DEFAULT 0.5,
|
|
29
|
+
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
|
|
30
|
+
coactivation_count INTEGER DEFAULT 0,
|
|
31
|
+
last_coactivated_at TIMESTAMPTZ,
|
|
32
|
+
metadata JSONB
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
CREATE INDEX IF NOT EXISTS associations_memory_idx ON memory_associations(memory_id);
|
|
36
|
+
CREATE INDEX IF NOT EXISTS associations_associated_idx ON memory_associations(associated_memory_id);
|
|
37
|
+
CREATE INDEX IF NOT EXISTS associations_type_idx ON memory_associations(association_type);`,
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=memory-associations.js.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Hash Cache Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const memoryHashCacheTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS memory_hash_cache (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
memory_id TEXT NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
10
|
+
content_hash TEXT NOT NULL,
|
|
11
|
+
content_preview TEXT,
|
|
12
|
+
last_validated_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
CREATE INDEX IF NOT EXISTS hash_cache_memory_idx ON memory_hash_cache(memory_id);
|
|
16
|
+
CREATE INDEX IF NOT EXISTS hash_cache_hash_idx ON memory_hash_cache(content_hash);`,
|
|
17
|
+
postgres: `
|
|
18
|
+
CREATE TABLE IF NOT EXISTS memory_hash_cache (
|
|
19
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
20
|
+
memory_id UUID NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
21
|
+
content_hash TEXT NOT NULL,
|
|
22
|
+
content_preview TEXT,
|
|
23
|
+
last_validated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
CREATE INDEX IF NOT EXISTS hash_cache_memory_idx ON memory_hash_cache(memory_id);
|
|
27
|
+
CREATE INDEX IF NOT EXISTS hash_cache_hash_idx ON memory_hash_cache(content_hash);`,
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=memory-hash-cache.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Merge History Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const memoryMergeHistoryTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS memory_merge_history (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
source_memory_id TEXT REFERENCES memories(id) ON DELETE SET NULL,
|
|
10
|
+
target_memory_id TEXT NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
11
|
+
merge_timestamp INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
|
|
12
|
+
merge_reason TEXT,
|
|
13
|
+
tokens_saved INTEGER DEFAULT 0,
|
|
14
|
+
created_by TEXT
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
CREATE INDEX IF NOT EXISTS merge_history_target_idx ON memory_merge_history(target_memory_id);
|
|
18
|
+
CREATE INDEX IF NOT EXISTS merge_history_timestamp_idx ON memory_merge_history(merge_timestamp);`,
|
|
19
|
+
postgres: `
|
|
20
|
+
CREATE TABLE IF NOT EXISTS memory_merge_history (
|
|
21
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
22
|
+
source_memory_id UUID REFERENCES memories(id) ON DELETE SET NULL,
|
|
23
|
+
target_memory_id UUID NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
24
|
+
merge_timestamp TIMESTAMPTZ DEFAULT NOW() NOT NULL,
|
|
25
|
+
merge_reason TEXT,
|
|
26
|
+
tokens_saved INTEGER DEFAULT 0,
|
|
27
|
+
created_by TEXT
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
CREATE INDEX IF NOT EXISTS merge_history_target_idx ON memory_merge_history(target_memory_id);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS merge_history_timestamp_idx ON memory_merge_history(merge_timestamp);`,
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=memory-merge-history.js.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Merge Proposals Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const memoryMergeProposalsTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS memory_merge_proposals (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
source_memory_id TEXT NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
10
|
+
target_memory_id TEXT NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
11
|
+
status TEXT DEFAULT 'pending',
|
|
12
|
+
similarity REAL,
|
|
13
|
+
merge_strategy TEXT,
|
|
14
|
+
created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
|
|
15
|
+
resolved_at INTEGER,
|
|
16
|
+
created_by TEXT
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
CREATE INDEX IF NOT EXISTS merge_proposals_source_idx ON memory_merge_proposals(source_memory_id);
|
|
20
|
+
CREATE INDEX IF NOT EXISTS merge_proposals_target_idx ON memory_merge_proposals(target_memory_id);
|
|
21
|
+
CREATE INDEX IF NOT EXISTS merge_proposals_status_idx ON memory_merge_proposals(status);`,
|
|
22
|
+
postgres: `
|
|
23
|
+
CREATE TABLE IF NOT EXISTS memory_merge_proposals (
|
|
24
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
25
|
+
source_memory_id UUID NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
26
|
+
target_memory_id UUID NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
27
|
+
status TEXT DEFAULT 'pending',
|
|
28
|
+
similarity REAL,
|
|
29
|
+
merge_strategy TEXT,
|
|
30
|
+
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
|
|
31
|
+
resolved_at TIMESTAMPTZ,
|
|
32
|
+
created_by TEXT
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
CREATE INDEX IF NOT EXISTS merge_proposals_source_idx ON memory_merge_proposals(source_memory_id);
|
|
36
|
+
CREATE INDEX IF NOT EXISTS merge_proposals_target_idx ON memory_merge_proposals(target_memory_id);
|
|
37
|
+
CREATE INDEX IF NOT EXISTS merge_proposals_status_idx ON memory_merge_proposals(status);`,
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=memory-merge-proposals.js.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Messages Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const messagesTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS messages (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
conversation_id TEXT NOT NULL REFERENCES conversations(id) ON DELETE CASCADE,
|
|
10
|
+
role TEXT NOT NULL,
|
|
11
|
+
content TEXT NOT NULL,
|
|
12
|
+
embedding_json TEXT,
|
|
13
|
+
embedding BLOB,
|
|
14
|
+
token_count INTEGER,
|
|
15
|
+
tool_calls TEXT,
|
|
16
|
+
metadata TEXT,
|
|
17
|
+
created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
CREATE INDEX IF NOT EXISTS messages_conversation_idx ON messages(conversation_id);
|
|
21
|
+
CREATE INDEX IF NOT EXISTS messages_role_idx ON messages(role);
|
|
22
|
+
CREATE INDEX IF NOT EXISTS messages_created_idx ON messages(created_at);`,
|
|
23
|
+
postgres: `
|
|
24
|
+
CREATE TABLE IF NOT EXISTS messages (
|
|
25
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
26
|
+
conversation_id UUID NOT NULL REFERENCES conversations(id) ON DELETE CASCADE,
|
|
27
|
+
role TEXT NOT NULL,
|
|
28
|
+
content TEXT NOT NULL,
|
|
29
|
+
embedding_json TEXT,
|
|
30
|
+
embedding vector(1536),
|
|
31
|
+
token_count INTEGER,
|
|
32
|
+
tool_calls JSONB,
|
|
33
|
+
metadata JSONB,
|
|
34
|
+
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
CREATE INDEX IF NOT EXISTS messages_conversation_idx ON messages(conversation_id);
|
|
38
|
+
CREATE INDEX IF NOT EXISTS messages_role_idx ON messages(role);
|
|
39
|
+
CREATE INDEX IF NOT EXISTS messages_created_idx ON messages(created_at);`,
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Namespaces Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const namespacesTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS namespaces (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
|
|
10
|
+
name TEXT NOT NULL,
|
|
11
|
+
namespace_path TEXT,
|
|
12
|
+
description TEXT,
|
|
13
|
+
metadata TEXT,
|
|
14
|
+
parent_id TEXT,
|
|
15
|
+
created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
|
|
16
|
+
updated_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
CREATE INDEX IF NOT EXISTS namespaces_project_idx ON namespaces(project_id);
|
|
20
|
+
CREATE INDEX IF NOT EXISTS namespaces_path_idx ON namespaces(namespace_path);`,
|
|
21
|
+
postgres: `
|
|
22
|
+
CREATE TABLE IF NOT EXISTS namespaces (
|
|
23
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
24
|
+
project_id UUID REFERENCES projects(id) ON DELETE CASCADE,
|
|
25
|
+
name TEXT NOT NULL,
|
|
26
|
+
namespace_path TEXT,
|
|
27
|
+
description TEXT,
|
|
28
|
+
metadata JSONB,
|
|
29
|
+
parent_id UUID,
|
|
30
|
+
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
|
|
31
|
+
updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
CREATE INDEX IF NOT EXISTS namespaces_project_idx ON namespaces(project_id);
|
|
35
|
+
CREATE INDEX IF NOT EXISTS namespaces_path_idx ON namespaces(namespace_path);`,
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=namespaces.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Projects Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const projectsTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
name TEXT NOT NULL,
|
|
10
|
+
path TEXT NOT NULL,
|
|
11
|
+
description TEXT,
|
|
12
|
+
metadata TEXT,
|
|
13
|
+
created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
|
|
14
|
+
updated_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
CREATE INDEX IF NOT EXISTS projects_path_idx ON projects(path);`,
|
|
18
|
+
postgres: `
|
|
19
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
20
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
21
|
+
name TEXT NOT NULL,
|
|
22
|
+
path TEXT NOT NULL,
|
|
23
|
+
description TEXT,
|
|
24
|
+
metadata JSONB,
|
|
25
|
+
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
|
|
26
|
+
updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
CREATE INDEX IF NOT EXISTS projects_path_idx ON projects(path);`,
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Users Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const usersTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS users (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
external_id TEXT UNIQUE,
|
|
10
|
+
name TEXT,
|
|
11
|
+
email TEXT,
|
|
12
|
+
preferences TEXT,
|
|
13
|
+
created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
|
|
14
|
+
updated_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL
|
|
15
|
+
);`,
|
|
16
|
+
postgres: `
|
|
17
|
+
CREATE TABLE IF NOT EXISTS users (
|
|
18
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
19
|
+
external_id TEXT UNIQUE,
|
|
20
|
+
name TEXT,
|
|
21
|
+
email TEXT,
|
|
22
|
+
preferences JSONB,
|
|
23
|
+
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
|
|
24
|
+
updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
|
|
25
|
+
);`,
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=users.js.map
|
package/dist/db/schema.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type SchemaModule = typeof import('
|
|
1
|
+
export type SchemaModule = typeof import('./drizzle/schema.js') | typeof import('./drizzle/schema-sqlite.js');
|
|
2
2
|
export declare function getSchema(): Promise<SchemaModule>;
|
|
3
3
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/db/schema.js
CHANGED
|
@@ -4,8 +4,8 @@ export async function getSchema() {
|
|
|
4
4
|
if (cachedSchema)
|
|
5
5
|
return cachedSchema;
|
|
6
6
|
cachedSchema = config.isTeamMode
|
|
7
|
-
? await import('
|
|
8
|
-
: await import('
|
|
7
|
+
? await import('./drizzle/schema.js')
|
|
8
|
+
: await import('./drizzle/schema-sqlite.js');
|
|
9
9
|
return cachedSchema;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supabase client wrapper that returns a Drizzle PostgreSQL client.
|
|
3
|
+
* Supabase uses the standard Postgres wire protocol, so we can reuse the same
|
|
4
|
+
* drizzle-node-postgres driver as the regular Postgres backend.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createSupabaseClient(): Promise<import("drizzle-orm/node-postgres").NodePgDatabase<typeof import("./drizzle/schema.js")> & {
|
|
7
|
+
$client: import("pg").Pool;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=supabase.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { config } from '../config.js';
|
|
2
|
+
import { drizzle } from 'drizzle-orm/node-postgres';
|
|
3
|
+
/**
|
|
4
|
+
* Supabase client wrapper that returns a Drizzle PostgreSQL client.
|
|
5
|
+
* Supabase uses the standard Postgres wire protocol, so we can reuse the same
|
|
6
|
+
* drizzle-node-postgres driver as the regular Postgres backend.
|
|
7
|
+
*/
|
|
8
|
+
export async function createSupabaseClient() {
|
|
9
|
+
if (!config.supabaseUrl || !config.supabaseKey) {
|
|
10
|
+
throw new Error('Supabase configuration missing (SUPABASE_URL or SUPABASE_SERVICE_KEY)');
|
|
11
|
+
}
|
|
12
|
+
if (!process.env.DATABASE_URL) {
|
|
13
|
+
throw new Error('DATABASE_URL is required for Supabase connection');
|
|
14
|
+
}
|
|
15
|
+
const { Pool } = await import('pg');
|
|
16
|
+
const pool = new Pool({
|
|
17
|
+
connectionString: process.env.DATABASE_URL,
|
|
18
|
+
max: 20,
|
|
19
|
+
});
|
|
20
|
+
// Dynamically import the schema module to avoid circular dependencies.
|
|
21
|
+
const schemaModule = await import('./drizzle/schema.js');
|
|
22
|
+
return drizzle(pool, { schema: schemaModule });
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=supabase.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Squish
|
|
4
|
-
*
|
|
5
|
-
* Modes:
|
|
6
|
-
* - CLI Mode: For any MCP client bash execution (e.g., `squish remember "text"`)
|
|
7
|
-
* - MCP Mode: For AI assistants (Claude Code, OpenClaw, OpenCode, Codex, etc.)
|
|
8
|
-
*
|
|
9
|
-
* Features:
|
|
10
|
-
* - Hybrid Search: BM25 + vector search with RRF
|
|
11
|
-
* - Importance Scoring: Auto-score memories with temporal decay
|
|
12
|
-
* - Consolidation: Summarize old, low-importance memory clusters
|
|
13
|
-
* - 16 MCP tools
|
|
14
|
-
* - Local mode: SQLite with FTS5
|
|
15
|
-
* - Team mode: PostgreSQL + pgvector
|
|
16
|
-
* - Universal Plugin: Works with 7+ AI assistants
|
|
3
|
+
* Squish - Universal Memory Plugin System
|
|
4
|
+
* CLI + MCP server for persistent memory with hybrid search and encryption
|
|
17
5
|
*/
|
|
18
6
|
import 'dotenv/config';
|
|
19
7
|
//# sourceMappingURL=index.d.ts.map
|