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
package/dist/db/neon.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { config } from '../config.js';
|
|
2
|
+
import { neon } from '@neondatabase/serverless';
|
|
3
|
+
import { drizzle } from 'drizzle-orm/neon-http';
|
|
4
|
+
/**
|
|
5
|
+
* Neon client wrapper that returns a Drizzle HTTP client.
|
|
6
|
+
* Neon HTTP driver is faster for single non-interactive transactions.
|
|
7
|
+
*/
|
|
8
|
+
export async function createNeonClient() {
|
|
9
|
+
if (!config.neonProjectId || !config.neonServiceKey) {
|
|
10
|
+
throw new Error('Neon configuration missing (NEON_PROJECT_ID or NEON_SERVICE_KEY)');
|
|
11
|
+
}
|
|
12
|
+
// Neon HTTP driver - use DATABASE_URL with Neon connection string
|
|
13
|
+
const connectionString = process.env.DATABASE_URL;
|
|
14
|
+
if (!connectionString) {
|
|
15
|
+
throw new Error('DATABASE_URL required for Neon connection');
|
|
16
|
+
}
|
|
17
|
+
const sql = neon(connectionString);
|
|
18
|
+
return drizzle(sql);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=neon.js.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Index - Aggregates all table definitions
|
|
3
|
+
*
|
|
4
|
+
* This module exports all table schemas for both SQLite and PostgreSQL.
|
|
5
|
+
* Used by bootstrap.ts to generate database schemas.
|
|
6
|
+
*/
|
|
7
|
+
export { usersTable } from './tables/users.js';
|
|
8
|
+
export { projectsTable } from './tables/projects.js';
|
|
9
|
+
export { memoriesTable } from './tables/memories.js';
|
|
10
|
+
export { memoryAssociationsTable } from './tables/memory-associations.js';
|
|
11
|
+
export { conversationsTable } from './tables/conversations.js';
|
|
12
|
+
export { messagesTable } from './tables/messages.js';
|
|
13
|
+
export { learningsTable } from './tables/learnings.js';
|
|
14
|
+
export { entitiesTable } from './tables/entities.js';
|
|
15
|
+
export { entityRelationsTable } from './tables/entity-relations.js';
|
|
16
|
+
export { contextSessionsTable } from './tables/context-sessions.js';
|
|
17
|
+
export { coreMemoryTable } from './tables/core-memory.js';
|
|
18
|
+
export { memoryHashCacheTable } from './tables/memory-hash-cache.js';
|
|
19
|
+
export { memoryMergeProposalsTable } from './tables/memory-merge-proposals.js';
|
|
20
|
+
export { memoryMergeHistoryTable } from './tables/memory-merge-history.js';
|
|
21
|
+
export { namespacesTable } from './tables/namespaces.js';
|
|
22
|
+
/**
|
|
23
|
+
* Generate complete SQLite schema SQL
|
|
24
|
+
*/
|
|
25
|
+
export declare function generateSqliteSchema(): string;
|
|
26
|
+
/**
|
|
27
|
+
* Generate complete PostgreSQL schema SQL
|
|
28
|
+
*/
|
|
29
|
+
export declare function generatePostgresSchema(): string;
|
|
30
|
+
/**
|
|
31
|
+
* Get all SQLite table definitions in order
|
|
32
|
+
* @deprecated Use generateSqliteSchema() instead
|
|
33
|
+
*/
|
|
34
|
+
export declare function getAllSqliteTables(): string[];
|
|
35
|
+
/**
|
|
36
|
+
* Get all PostgreSQL table definitions in order
|
|
37
|
+
* @deprecated Use generatePostgresSchema() instead
|
|
38
|
+
*/
|
|
39
|
+
export declare function getAllPostgresTables(): string[];
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Index - Aggregates all table definitions
|
|
3
|
+
*
|
|
4
|
+
* This module exports all table schemas for both SQLite and PostgreSQL.
|
|
5
|
+
* Used by bootstrap.ts to generate database schemas.
|
|
6
|
+
*/
|
|
7
|
+
export { usersTable } from './tables/users.js';
|
|
8
|
+
export { projectsTable } from './tables/projects.js';
|
|
9
|
+
export { memoriesTable } from './tables/memories.js';
|
|
10
|
+
export { memoryAssociationsTable } from './tables/memory-associations.js';
|
|
11
|
+
export { conversationsTable } from './tables/conversations.js';
|
|
12
|
+
export { messagesTable } from './tables/messages.js';
|
|
13
|
+
export { learningsTable } from './tables/learnings.js';
|
|
14
|
+
export { entitiesTable } from './tables/entities.js';
|
|
15
|
+
export { entityRelationsTable } from './tables/entity-relations.js';
|
|
16
|
+
export { contextSessionsTable } from './tables/context-sessions.js';
|
|
17
|
+
export { coreMemoryTable } from './tables/core-memory.js';
|
|
18
|
+
export { memoryHashCacheTable } from './tables/memory-hash-cache.js';
|
|
19
|
+
export { memoryMergeProposalsTable } from './tables/memory-merge-proposals.js';
|
|
20
|
+
export { memoryMergeHistoryTable } from './tables/memory-merge-history.js';
|
|
21
|
+
export { namespacesTable } from './tables/namespaces.js';
|
|
22
|
+
import { usersTable } from './tables/users.js';
|
|
23
|
+
import { projectsTable } from './tables/projects.js';
|
|
24
|
+
import { memoriesTable } from './tables/memories.js';
|
|
25
|
+
import { memoryAssociationsTable } from './tables/memory-associations.js';
|
|
26
|
+
import { conversationsTable } from './tables/conversations.js';
|
|
27
|
+
import { messagesTable } from './tables/messages.js';
|
|
28
|
+
import { learningsTable } from './tables/learnings.js';
|
|
29
|
+
import { entitiesTable } from './tables/entities.js';
|
|
30
|
+
import { entityRelationsTable } from './tables/entity-relations.js';
|
|
31
|
+
import { contextSessionsTable } from './tables/context-sessions.js';
|
|
32
|
+
import { coreMemoryTable } from './tables/core-memory.js';
|
|
33
|
+
import { memoryHashCacheTable } from './tables/memory-hash-cache.js';
|
|
34
|
+
import { memoryMergeProposalsTable } from './tables/memory-merge-proposals.js';
|
|
35
|
+
import { memoryMergeHistoryTable } from './tables/memory-merge-history.js';
|
|
36
|
+
import { namespacesTable } from './tables/namespaces.js';
|
|
37
|
+
/**
|
|
38
|
+
* Table order matters for foreign key constraints
|
|
39
|
+
*/
|
|
40
|
+
const SQLITE_TABLE_ORDER = [
|
|
41
|
+
usersTable,
|
|
42
|
+
projectsTable,
|
|
43
|
+
conversationsTable,
|
|
44
|
+
memoriesTable,
|
|
45
|
+
memoryAssociationsTable,
|
|
46
|
+
messagesTable,
|
|
47
|
+
learningsTable,
|
|
48
|
+
entitiesTable,
|
|
49
|
+
entityRelationsTable,
|
|
50
|
+
contextSessionsTable,
|
|
51
|
+
coreMemoryTable,
|
|
52
|
+
memoryHashCacheTable,
|
|
53
|
+
memoryMergeProposalsTable,
|
|
54
|
+
memoryMergeHistoryTable,
|
|
55
|
+
namespacesTable,
|
|
56
|
+
];
|
|
57
|
+
const POSTGRES_TABLE_ORDER = [
|
|
58
|
+
usersTable,
|
|
59
|
+
projectsTable,
|
|
60
|
+
conversationsTable,
|
|
61
|
+
memoriesTable,
|
|
62
|
+
memoryAssociationsTable,
|
|
63
|
+
messagesTable,
|
|
64
|
+
learningsTable,
|
|
65
|
+
entitiesTable,
|
|
66
|
+
entityRelationsTable,
|
|
67
|
+
contextSessionsTable,
|
|
68
|
+
coreMemoryTable,
|
|
69
|
+
memoryHashCacheTable,
|
|
70
|
+
memoryMergeProposalsTable,
|
|
71
|
+
memoryMergeHistoryTable,
|
|
72
|
+
namespacesTable,
|
|
73
|
+
];
|
|
74
|
+
/**
|
|
75
|
+
* Generate complete SQLite schema SQL
|
|
76
|
+
*/
|
|
77
|
+
export function generateSqliteSchema() {
|
|
78
|
+
const statements = SQLITE_TABLE_ORDER.map(t => t.sqlite).join('\n\n');
|
|
79
|
+
return `PRAGMA foreign_keys = ON;\n\n${statements}`;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Generate complete PostgreSQL schema SQL
|
|
83
|
+
*/
|
|
84
|
+
export function generatePostgresSchema() {
|
|
85
|
+
const extensionStmt = `CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
|
86
|
+
CREATE EXTENSION IF NOT EXISTS vector;
|
|
87
|
+
CREATE EXTENSION IF NOT EXISTS pg_trgm;`;
|
|
88
|
+
const statements = POSTGRES_TABLE_ORDER.map(t => t.postgres).join('\n\n');
|
|
89
|
+
return `${extensionStmt}\n\n${statements}`;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get all SQLite table definitions in order
|
|
93
|
+
* @deprecated Use generateSqliteSchema() instead
|
|
94
|
+
*/
|
|
95
|
+
export function getAllSqliteTables() {
|
|
96
|
+
return SQLITE_TABLE_ORDER.map(t => t.sqlite);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get all PostgreSQL table definitions in order
|
|
100
|
+
* @deprecated Use generatePostgresSchema() instead
|
|
101
|
+
*/
|
|
102
|
+
export function getAllPostgresTables() {
|
|
103
|
+
return POSTGRES_TABLE_ORDER.map(t => t.postgres);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Sessions Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const contextSessionsTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS context_sessions (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
|
|
10
|
+
session_id TEXT NOT NULL,
|
|
11
|
+
status TEXT DEFAULT 'active',
|
|
12
|
+
memory_ids TEXT,
|
|
13
|
+
token_count INTEGER DEFAULT 0,
|
|
14
|
+
started_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
|
|
15
|
+
ended_at INTEGER,
|
|
16
|
+
metadata TEXT
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
CREATE INDEX IF NOT EXISTS context_sessions_project_idx ON context_sessions(project_id);
|
|
20
|
+
CREATE INDEX IF NOT EXISTS context_sessions_session_idx ON context_sessions(session_id);`,
|
|
21
|
+
postgres: `
|
|
22
|
+
CREATE TABLE IF NOT EXISTS context_sessions (
|
|
23
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
24
|
+
project_id UUID REFERENCES projects(id) ON DELETE CASCADE,
|
|
25
|
+
session_id TEXT NOT NULL,
|
|
26
|
+
status TEXT DEFAULT 'active',
|
|
27
|
+
memory_ids TEXT[],
|
|
28
|
+
token_count INTEGER DEFAULT 0,
|
|
29
|
+
started_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
|
|
30
|
+
ended_at TIMESTAMPTZ,
|
|
31
|
+
metadata JSONB
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
CREATE INDEX IF NOT EXISTS context_sessions_project_idx ON context_sessions(project_id);
|
|
35
|
+
CREATE INDEX IF NOT EXISTS context_sessions_session_idx ON context_sessions(session_id);`,
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=context-sessions.js.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversations Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const conversationsTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS conversations (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
|
|
10
|
+
user_id TEXT REFERENCES users(id) ON DELETE SET NULL,
|
|
11
|
+
session_id TEXT NOT NULL,
|
|
12
|
+
title TEXT,
|
|
13
|
+
summary TEXT,
|
|
14
|
+
message_count INTEGER DEFAULT 0,
|
|
15
|
+
token_count INTEGER DEFAULT 0,
|
|
16
|
+
started_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
|
|
17
|
+
ended_at INTEGER,
|
|
18
|
+
metadata TEXT,
|
|
19
|
+
created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
|
|
20
|
+
updated_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
CREATE INDEX IF NOT EXISTS conversations_project_idx ON conversations(project_id);
|
|
24
|
+
CREATE INDEX IF NOT EXISTS conversations_session_idx ON conversations(session_id);
|
|
25
|
+
CREATE INDEX IF NOT EXISTS conversations_started_idx ON conversations(started_at);`,
|
|
26
|
+
postgres: `
|
|
27
|
+
CREATE TABLE IF NOT EXISTS conversations (
|
|
28
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
29
|
+
project_id UUID REFERENCES projects(id) ON DELETE CASCADE,
|
|
30
|
+
user_id UUID REFERENCES users(id) ON DELETE SET NULL,
|
|
31
|
+
session_id TEXT NOT NULL,
|
|
32
|
+
title TEXT,
|
|
33
|
+
summary TEXT,
|
|
34
|
+
message_count INTEGER DEFAULT 0,
|
|
35
|
+
token_count INTEGER DEFAULT 0,
|
|
36
|
+
started_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
|
|
37
|
+
ended_at TIMESTAMPTZ,
|
|
38
|
+
metadata JSONB,
|
|
39
|
+
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
|
|
40
|
+
updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
CREATE INDEX IF NOT EXISTS conversations_project_idx ON conversations(project_id);
|
|
44
|
+
CREATE INDEX IF NOT EXISTS conversations_session_idx ON conversations(session_id);
|
|
45
|
+
CREATE INDEX IF NOT EXISTS conversations_started_idx ON conversations(started_at);`,
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=conversations.js.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Memory Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const coreMemoryTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS core_memory (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
|
|
10
|
+
memory_type TEXT NOT NULL,
|
|
11
|
+
content TEXT NOT NULL,
|
|
12
|
+
embedding_json TEXT,
|
|
13
|
+
embedding BLOB,
|
|
14
|
+
importance INTEGER DEFAULT 50,
|
|
15
|
+
metadata TEXT,
|
|
16
|
+
tokens_estimate INTEGER DEFAULT 0,
|
|
17
|
+
created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
|
|
18
|
+
updated_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
CREATE INDEX IF NOT EXISTS core_memory_project_idx ON core_memory(project_id);
|
|
22
|
+
CREATE INDEX IF NOT EXISTS core_memory_type_idx ON core_memory(memory_type);`,
|
|
23
|
+
postgres: `
|
|
24
|
+
CREATE TABLE IF NOT EXISTS core_memory (
|
|
25
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
26
|
+
project_id UUID REFERENCES projects(id) ON DELETE CASCADE,
|
|
27
|
+
memory_type TEXT NOT NULL,
|
|
28
|
+
content TEXT NOT NULL,
|
|
29
|
+
embedding_json TEXT,
|
|
30
|
+
embedding vector(1536),
|
|
31
|
+
importance INTEGER DEFAULT 50,
|
|
32
|
+
metadata JSONB,
|
|
33
|
+
tokens_estimate INTEGER DEFAULT 0,
|
|
34
|
+
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
|
|
35
|
+
updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
CREATE INDEX IF NOT EXISTS core_memory_project_idx ON core_memory(project_id);
|
|
39
|
+
CREATE INDEX IF NOT EXISTS core_memory_type_idx ON core_memory(memory_type);`,
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=core-memory.js.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entities Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const entitiesTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS entities (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
|
|
10
|
+
name TEXT NOT NULL,
|
|
11
|
+
entity_type TEXT,
|
|
12
|
+
aliases TEXT,
|
|
13
|
+
metadata TEXT,
|
|
14
|
+
last_mentioned_at INTEGER,
|
|
15
|
+
mention_count INTEGER DEFAULT 0,
|
|
16
|
+
created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
|
|
17
|
+
updated_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
CREATE INDEX IF NOT EXISTS entities_project_idx ON entities(project_id);
|
|
21
|
+
CREATE INDEX IF NOT EXISTS entities_name_idx ON entities(name);`,
|
|
22
|
+
postgres: `
|
|
23
|
+
CREATE TABLE IF NOT EXISTS entities (
|
|
24
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
25
|
+
project_id UUID REFERENCES projects(id) ON DELETE CASCADE,
|
|
26
|
+
name TEXT NOT NULL,
|
|
27
|
+
entity_type TEXT,
|
|
28
|
+
aliases TEXT[],
|
|
29
|
+
metadata JSONB,
|
|
30
|
+
last_mentioned_at TIMESTAMPTZ,
|
|
31
|
+
mention_count INTEGER DEFAULT 0,
|
|
32
|
+
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
|
|
33
|
+
updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
CREATE INDEX IF NOT EXISTS entities_project_idx ON entities(project_id);
|
|
37
|
+
CREATE INDEX IF NOT EXISTS entities_name_idx ON entities(name);`,
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=entities.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Relations Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const entityRelationsTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS entity_relations (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
entity_id TEXT NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
|
|
10
|
+
related_entity_id TEXT NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
|
|
11
|
+
relation_type TEXT,
|
|
12
|
+
strength REAL DEFAULT 0.5,
|
|
13
|
+
created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
CREATE INDEX IF NOT EXISTS entity_relations_entity_idx ON entity_relations(entity_id);
|
|
17
|
+
CREATE INDEX IF NOT EXISTS entity_relations_related_idx ON entity_relations(related_entity_id);`,
|
|
18
|
+
postgres: `
|
|
19
|
+
CREATE TABLE IF NOT EXISTS entity_relations (
|
|
20
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
21
|
+
entity_id UUID NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
|
|
22
|
+
related_entity_id UUID NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
|
|
23
|
+
relation_type TEXT,
|
|
24
|
+
strength REAL DEFAULT 0.5,
|
|
25
|
+
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
CREATE INDEX IF NOT EXISTS entity_relations_entity_idx ON entity_relations(entity_id);
|
|
29
|
+
CREATE INDEX IF NOT EXISTS entity_relations_related_idx ON entity_relations(related_entity_id);`,
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=entity-relations.js.map
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Learnings Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const learningsTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS learnings (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
|
|
10
|
+
conversation_id TEXT REFERENCES conversations(id) ON DELETE SET NULL,
|
|
11
|
+
type TEXT NOT NULL,
|
|
12
|
+
action TEXT NOT NULL,
|
|
13
|
+
target TEXT,
|
|
14
|
+
summary TEXT NOT NULL,
|
|
15
|
+
details TEXT,
|
|
16
|
+
embedding_json TEXT,
|
|
17
|
+
embedding BLOB,
|
|
18
|
+
memory_id TEXT REFERENCES memories(id) ON DELETE SET NULL,
|
|
19
|
+
folder_path TEXT,
|
|
20
|
+
project_path TEXT,
|
|
21
|
+
is_private INTEGER DEFAULT 0,
|
|
22
|
+
has_secrets INTEGER DEFAULT 0,
|
|
23
|
+
relevance_score INTEGER DEFAULT 50,
|
|
24
|
+
category TEXT,
|
|
25
|
+
importance INTEGER DEFAULT 50,
|
|
26
|
+
metadata TEXT,
|
|
27
|
+
is_imported INTEGER DEFAULT 0,
|
|
28
|
+
created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
CREATE INDEX IF NOT EXISTS learnings_project_idx ON learnings(project_id);
|
|
32
|
+
CREATE INDEX IF NOT EXISTS learnings_type_idx ON learnings(type);
|
|
33
|
+
CREATE INDEX IF NOT EXISTS learnings_action_idx ON learnings(action);
|
|
34
|
+
CREATE INDEX IF NOT EXISTS learnings_created_idx ON learnings(created_at);
|
|
35
|
+
CREATE INDEX IF NOT EXISTS learnings_memory_idx ON learnings(memory_id);`,
|
|
36
|
+
postgres: `
|
|
37
|
+
CREATE TABLE IF NOT EXISTS learnings (
|
|
38
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
39
|
+
project_id UUID REFERENCES projects(id) ON DELETE CASCADE,
|
|
40
|
+
conversation_id UUID REFERENCES conversations(id) ON DELETE SET NULL,
|
|
41
|
+
type TEXT NOT NULL,
|
|
42
|
+
action TEXT NOT NULL,
|
|
43
|
+
target TEXT,
|
|
44
|
+
summary TEXT NOT NULL,
|
|
45
|
+
details JSONB,
|
|
46
|
+
embedding vector(1536),
|
|
47
|
+
memory_id UUID REFERENCES memories(id) ON DELETE SET NULL,
|
|
48
|
+
folder_path TEXT,
|
|
49
|
+
project_path TEXT,
|
|
50
|
+
is_private BOOLEAN DEFAULT FALSE,
|
|
51
|
+
has_secrets BOOLEAN DEFAULT FALSE,
|
|
52
|
+
relevance_score INTEGER DEFAULT 50,
|
|
53
|
+
category TEXT,
|
|
54
|
+
importance INTEGER DEFAULT 50,
|
|
55
|
+
metadata JSONB,
|
|
56
|
+
is_imported BOOLEAN DEFAULT FALSE,
|
|
57
|
+
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
CREATE INDEX IF NOT EXISTS learnings_project_idx ON learnings(project_id);
|
|
61
|
+
CREATE INDEX IF NOT EXISTS learnings_type_idx ON learnings(type);
|
|
62
|
+
CREATE INDEX IF NOT EXISTS learnings_action_idx ON learnings(action);
|
|
63
|
+
CREATE INDEX IF NOT EXISTS learnings_created_idx ON learnings(created_at);
|
|
64
|
+
CREATE INDEX IF NOT EXISTS learnings_memory_idx ON learnings(memory_id);`,
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=learnings.js.map
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memories Table Schema
|
|
3
|
+
* SQLite and PostgreSQL definitions
|
|
4
|
+
*/
|
|
5
|
+
export const memoriesTable = {
|
|
6
|
+
sqlite: `
|
|
7
|
+
CREATE TABLE IF NOT EXISTS memories (
|
|
8
|
+
id TEXT PRIMARY KEY,
|
|
9
|
+
project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
|
|
10
|
+
user_id TEXT REFERENCES users(id) ON DELETE SET NULL,
|
|
11
|
+
type TEXT NOT NULL,
|
|
12
|
+
content TEXT NOT NULL,
|
|
13
|
+
summary TEXT,
|
|
14
|
+
embedding_json TEXT,
|
|
15
|
+
embedding BLOB,
|
|
16
|
+
source TEXT,
|
|
17
|
+
confidence INTEGER DEFAULT 100,
|
|
18
|
+
confidence_level TEXT DEFAULT 'certain',
|
|
19
|
+
tags TEXT,
|
|
20
|
+
metadata TEXT,
|
|
21
|
+
is_private INTEGER DEFAULT 0,
|
|
22
|
+
has_secrets INTEGER DEFAULT 0,
|
|
23
|
+
relevance_score INTEGER DEFAULT 50,
|
|
24
|
+
is_active INTEGER DEFAULT 1,
|
|
25
|
+
expires_at INTEGER,
|
|
26
|
+
access_count INTEGER DEFAULT 0,
|
|
27
|
+
last_accessed_at INTEGER,
|
|
28
|
+
is_merged INTEGER DEFAULT 0,
|
|
29
|
+
merged_into_id TEXT,
|
|
30
|
+
merged_at INTEGER,
|
|
31
|
+
is_canonical INTEGER DEFAULT 0,
|
|
32
|
+
merge_source_ids TEXT,
|
|
33
|
+
is_mergeable INTEGER DEFAULT 1,
|
|
34
|
+
merge_version INTEGER DEFAULT 1,
|
|
35
|
+
importance_score INTEGER DEFAULT 50,
|
|
36
|
+
importance_decay_rate INTEGER DEFAULT 30,
|
|
37
|
+
last_importance_recalc INTEGER,
|
|
38
|
+
consolidated_into TEXT,
|
|
39
|
+
consolidated_at INTEGER,
|
|
40
|
+
is_consolidated INTEGER DEFAULT 0,
|
|
41
|
+
sector TEXT DEFAULT 'episodic',
|
|
42
|
+
tier TEXT DEFAULT 'hot',
|
|
43
|
+
status TEXT DEFAULT 'active',
|
|
44
|
+
context_status TEXT DEFAULT 'out-of-context',
|
|
45
|
+
decay_rate INTEGER DEFAULT 30,
|
|
46
|
+
coactivation_score INTEGER DEFAULT 0,
|
|
47
|
+
last_decay_at INTEGER DEFAULT (strftime('%s','now')),
|
|
48
|
+
agent_id TEXT,
|
|
49
|
+
agent_role TEXT,
|
|
50
|
+
visibility_scope TEXT DEFAULT 'private',
|
|
51
|
+
is_protected INTEGER DEFAULT 0,
|
|
52
|
+
is_pinned INTEGER DEFAULT 0,
|
|
53
|
+
is_immutable INTEGER DEFAULT 0,
|
|
54
|
+
write_scope TEXT,
|
|
55
|
+
read_scope TEXT,
|
|
56
|
+
triggered_by TEXT,
|
|
57
|
+
capture_reason TEXT,
|
|
58
|
+
last_used_at INTEGER,
|
|
59
|
+
usage_count INTEGER DEFAULT 0,
|
|
60
|
+
tokens_estimate INTEGER DEFAULT 0,
|
|
61
|
+
valid_from INTEGER,
|
|
62
|
+
valid_to INTEGER,
|
|
63
|
+
recorded_at INTEGER,
|
|
64
|
+
superseded_by TEXT,
|
|
65
|
+
version INTEGER DEFAULT 1,
|
|
66
|
+
created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
|
|
67
|
+
updated_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
CREATE INDEX IF NOT EXISTS memories_project_idx ON memories(project_id);
|
|
71
|
+
CREATE INDEX IF NOT EXISTS memories_type_idx ON memories(type);
|
|
72
|
+
CREATE INDEX IF NOT EXISTS memories_created_idx ON memories(created_at);
|
|
73
|
+
CREATE INDEX IF NOT EXISTS memories_tags_idx ON memories(tags);
|
|
74
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS memories_fts USING fts5(
|
|
75
|
+
content, tags, summary, content='memories', content_rowid='rowid'
|
|
76
|
+
);
|
|
77
|
+
CREATE TRIGGER IF NOT EXISTS memories_ai AFTER INSERT ON memories BEGIN
|
|
78
|
+
INSERT INTO memories_fts(rowid, content, tags, summary)
|
|
79
|
+
VALUES (NEW.rowid, NEW.content, NEW.tags, NEW.summary);
|
|
80
|
+
END;
|
|
81
|
+
CREATE TRIGGER IF NOT EXISTS memories_ad AFTER DELETE ON memories BEGIN
|
|
82
|
+
INSERT INTO memories_fts(memories_fts, rowid, content, tags, summary)
|
|
83
|
+
VALUES ('delete', OLD.rowid, OLD.content, OLD.tags, OLD.summary);
|
|
84
|
+
END;
|
|
85
|
+
CREATE TRIGGER IF NOT EXISTS memories_au AFTER UPDATE ON memories BEGIN
|
|
86
|
+
INSERT INTO memories_fts(memories_fts, rowid, content, tags, summary)
|
|
87
|
+
VALUES ('delete', OLD.rowid, OLD.content, OLD.tags, OLD.summary);
|
|
88
|
+
INSERT INTO memories_fts(rowid, content, tags, summary)
|
|
89
|
+
VALUES (NEW.rowid, NEW.content, NEW.tags, NEW.summary);
|
|
90
|
+
END;`,
|
|
91
|
+
postgres: `
|
|
92
|
+
CREATE TABLE IF NOT EXISTS memories (
|
|
93
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
94
|
+
project_id UUID REFERENCES projects(id) ON DELETE CASCADE,
|
|
95
|
+
user_id UUID REFERENCES users(id) ON DELETE SET NULL,
|
|
96
|
+
type TEXT NOT NULL,
|
|
97
|
+
content TEXT NOT NULL,
|
|
98
|
+
summary TEXT,
|
|
99
|
+
embedding_json TEXT,
|
|
100
|
+
embedding vector(1536),
|
|
101
|
+
source TEXT,
|
|
102
|
+
confidence INTEGER DEFAULT 100,
|
|
103
|
+
confidence_level TEXT DEFAULT 'certain',
|
|
104
|
+
tags TEXT[],
|
|
105
|
+
metadata JSONB,
|
|
106
|
+
is_private BOOLEAN DEFAULT FALSE,
|
|
107
|
+
has_secrets BOOLEAN DEFAULT FALSE,
|
|
108
|
+
relevance_score INTEGER DEFAULT 50,
|
|
109
|
+
is_active BOOLEAN DEFAULT TRUE,
|
|
110
|
+
is_merged BOOLEAN DEFAULT FALSE,
|
|
111
|
+
merged_into_id UUID,
|
|
112
|
+
merged_at TIMESTAMPTZ,
|
|
113
|
+
is_canonical BOOLEAN DEFAULT TRUE,
|
|
114
|
+
merge_source_ids TEXT[],
|
|
115
|
+
is_mergeable BOOLEAN DEFAULT TRUE,
|
|
116
|
+
merge_version INTEGER DEFAULT 1,
|
|
117
|
+
importance_score INTEGER DEFAULT 50,
|
|
118
|
+
importance_decay_rate INTEGER DEFAULT 30,
|
|
119
|
+
last_importance_recalc TIMESTAMPTZ,
|
|
120
|
+
consolidated_into UUID,
|
|
121
|
+
consolidated_at TIMESTAMPTZ,
|
|
122
|
+
is_consolidated BOOLEAN DEFAULT FALSE,
|
|
123
|
+
sector TEXT DEFAULT 'episodic',
|
|
124
|
+
tier TEXT DEFAULT 'hot',
|
|
125
|
+
status TEXT DEFAULT 'active',
|
|
126
|
+
context_status TEXT DEFAULT 'out-of-context',
|
|
127
|
+
decay_rate INTEGER DEFAULT 30,
|
|
128
|
+
coactivation_score INTEGER DEFAULT 0,
|
|
129
|
+
last_decay_at TIMESTAMPTZ,
|
|
130
|
+
agent_id TEXT,
|
|
131
|
+
agent_role TEXT,
|
|
132
|
+
visibility_scope TEXT DEFAULT 'private',
|
|
133
|
+
is_protected BOOLEAN DEFAULT FALSE,
|
|
134
|
+
is_pinned BOOLEAN DEFAULT FALSE,
|
|
135
|
+
is_immutable BOOLEAN DEFAULT FALSE,
|
|
136
|
+
write_scope TEXT[],
|
|
137
|
+
read_scope TEXT[],
|
|
138
|
+
triggered_by TEXT,
|
|
139
|
+
capture_reason TEXT,
|
|
140
|
+
last_used_at TIMESTAMPTZ,
|
|
141
|
+
usage_count INTEGER DEFAULT 0,
|
|
142
|
+
tokens_estimate INTEGER DEFAULT 0,
|
|
143
|
+
valid_from TIMESTAMPTZ,
|
|
144
|
+
valid_to TIMESTAMPTZ,
|
|
145
|
+
recorded_at TIMESTAMPTZ DEFAULT NOW(),
|
|
146
|
+
superseded_by UUID,
|
|
147
|
+
version INTEGER DEFAULT 1,
|
|
148
|
+
expires_at TIMESTAMPTZ,
|
|
149
|
+
access_count INTEGER DEFAULT 0,
|
|
150
|
+
last_accessed_at TIMESTAMPTZ,
|
|
151
|
+
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
|
|
152
|
+
updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
|
|
153
|
+
);
|
|
154
|
+
|
|
155
|
+
CREATE INDEX IF NOT EXISTS memories_project_idx ON memories(project_id);
|
|
156
|
+
CREATE INDEX IF NOT EXISTS memories_type_idx ON memories(type);
|
|
157
|
+
CREATE INDEX IF NOT EXISTS memories_created_idx ON memories(created_at);
|
|
158
|
+
CREATE INDEX IF NOT EXISTS memories_tags_idx ON memories USING GIN(tags);
|
|
159
|
+
CREATE INDEX IF NOT EXISTS memories_content_trgm_idx ON memories USING GIN (content gin_trgm_ops);`,
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=memories.js.map
|