mcard-js 2.0.0 → 2.1.0
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/README.md +91 -3
- package/dist/model/ContentTypeInterpreter.d.ts +16 -0
- package/dist/model/ContentTypeInterpreter.d.ts.map +1 -0
- package/dist/model/ContentTypeInterpreter.js +78 -0
- package/dist/model/ContentTypeInterpreter.js.map +1 -0
- package/dist/model/GTime.d.ts +15 -0
- package/dist/model/GTime.d.ts.map +1 -1
- package/dist/model/GTime.js +44 -2
- package/dist/model/GTime.js.map +1 -1
- package/dist/model/detectors/BaseDetector.d.ts +26 -0
- package/dist/model/detectors/BaseDetector.d.ts.map +1 -0
- package/dist/model/detectors/BaseDetector.js +5 -0
- package/dist/model/detectors/BaseDetector.js.map +1 -0
- package/dist/model/detectors/BinaryDetector.d.ts +12 -0
- package/dist/model/detectors/BinaryDetector.d.ts.map +1 -0
- package/dist/model/detectors/BinaryDetector.js +82 -0
- package/dist/model/detectors/BinaryDetector.js.map +1 -0
- package/dist/model/detectors/DataFormatDetectors.d.ts +29 -0
- package/dist/model/detectors/DataFormatDetectors.d.ts.map +1 -0
- package/dist/model/detectors/DataFormatDetectors.js +223 -0
- package/dist/model/detectors/DataFormatDetectors.js.map +1 -0
- package/dist/model/detectors/LanguageDetector.d.ts +11 -0
- package/dist/model/detectors/LanguageDetector.d.ts.map +1 -0
- package/dist/model/detectors/LanguageDetector.js +148 -0
- package/dist/model/detectors/LanguageDetector.js.map +1 -0
- package/dist/model/detectors/MarkupDetectors.d.ts +22 -0
- package/dist/model/detectors/MarkupDetectors.d.ts.map +1 -0
- package/dist/model/detectors/MarkupDetectors.js +132 -0
- package/dist/model/detectors/MarkupDetectors.js.map +1 -0
- package/dist/model/detectors/OBJDetector.d.ts +8 -0
- package/dist/model/detectors/OBJDetector.d.ts.map +1 -0
- package/dist/model/detectors/OBJDetector.js +48 -0
- package/dist/model/detectors/OBJDetector.js.map +1 -0
- package/dist/model/detectors/registry.d.ts +13 -0
- package/dist/model/detectors/registry.d.ts.map +1 -0
- package/dist/model/detectors/registry.js +67 -0
- package/dist/model/detectors/registry.js.map +1 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts +20 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js +42 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js.map +1 -0
- package/dist/ptr/node/CLMLoader.d.ts.map +1 -1
- package/dist/ptr/node/CLMLoader.js +8 -0
- package/dist/ptr/node/CLMLoader.js.map +1 -1
- package/dist/ptr/node/CLMRunner.d.ts.map +1 -1
- package/dist/ptr/node/CLMRunner.js +4 -3
- package/dist/ptr/node/CLMRunner.js.map +1 -1
- package/dist/ptr/node/Runtimes.d.ts +7 -0
- package/dist/ptr/node/Runtimes.d.ts.map +1 -1
- package/dist/ptr/node/Runtimes.js +94 -3
- package/dist/ptr/node/Runtimes.js.map +1 -1
- package/dist/rag/HandleVectorStore.d.ts +201 -0
- package/dist/rag/HandleVectorStore.d.ts.map +1 -0
- package/dist/rag/HandleVectorStore.js +527 -0
- package/dist/rag/HandleVectorStore.js.map +1 -0
- package/dist/rag/PersistentIndexer.d.ts +144 -0
- package/dist/rag/PersistentIndexer.d.ts.map +1 -0
- package/dist/rag/PersistentIndexer.js +275 -0
- package/dist/rag/PersistentIndexer.js.map +1 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts +87 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts.map +1 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.js +164 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.js.map +1 -0
- package/dist/rag/graph/community.d.ts +56 -0
- package/dist/rag/graph/community.d.ts.map +1 -0
- package/dist/rag/graph/community.js +247 -0
- package/dist/rag/graph/community.js.map +1 -0
- package/dist/rag/graph/extractor.d.ts +99 -0
- package/dist/rag/graph/extractor.d.ts.map +1 -0
- package/dist/rag/graph/extractor.js +210 -0
- package/dist/rag/graph/extractor.js.map +1 -0
- package/dist/rag/graph/store.d.ts +176 -0
- package/dist/rag/graph/store.d.ts.map +1 -0
- package/dist/rag/graph/store.js +504 -0
- package/dist/rag/graph/store.js.map +1 -0
- package/dist/rag/index.d.ts +19 -0
- package/dist/rag/index.d.ts.map +1 -0
- package/dist/rag/index.js +24 -0
- package/dist/rag/index.js.map +1 -0
- package/dist/rag/semanticVersioning.d.ts +187 -0
- package/dist/rag/semanticVersioning.d.ts.map +1 -0
- package/dist/rag/semanticVersioning.js +253 -0
- package/dist/rag/semanticVersioning.js.map +1 -0
- package/dist/storage/IndexedDBEngine.d.ts.map +1 -1
- package/dist/storage/IndexedDBEngine.js +9 -1
- package/dist/storage/IndexedDBEngine.js.map +1 -1
- package/dist/storage/SqliteNodeEngine.d.ts.map +1 -1
- package/dist/storage/SqliteNodeEngine.js +26 -4
- package/dist/storage/SqliteNodeEngine.js.map +1 -1
- package/dist/storage/SqliteWasmEngine.d.ts.map +1 -1
- package/dist/storage/SqliteWasmEngine.js +9 -1
- package/dist/storage/SqliteWasmEngine.js.map +1 -1
- package/dist/storage/StorageAdapter.d.ts +2 -0
- package/dist/storage/StorageAdapter.d.ts.map +1 -1
- package/dist/storage/VectorStore.d.ts +28 -5
- package/dist/storage/VectorStore.d.ts.map +1 -1
- package/dist/storage/VectorStore.js +110 -50
- package/dist/storage/VectorStore.js.map +1 -1
- package/dist/storage/schema.d.ts +123 -80
- package/dist/storage/schema.d.ts.map +1 -1
- package/dist/storage/schema.js +305 -217
- package/dist/storage/schema.js.map +1 -1
- package/package.json +1 -1
package/dist/storage/schema.js
CHANGED
|
@@ -1,216 +1,308 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MCard Database Schema for JavaScript
|
|
2
|
+
* MCard Database Schema Loader for JavaScript/TypeScript
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
8
|
-
// Core MCard Storage (matches mcard/model/schema.py)
|
|
9
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
-
/**
|
|
11
|
-
* Card table for content-addressable storage.
|
|
4
|
+
* Singleton implementation that loads all schemas from:
|
|
5
|
+
* schema/mcard_schema.sql (SINGLE SOURCE OF TRUTH)
|
|
12
6
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
* Handle
|
|
25
|
-
*
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
current_hash TEXT NOT NULL,
|
|
31
|
-
created_at TEXT NOT NULL,
|
|
32
|
-
updated_at TEXT NOT NULL,
|
|
33
|
-
FOREIGN KEY (current_hash) REFERENCES card(hash)
|
|
34
|
-
)
|
|
35
|
-
`;
|
|
36
|
-
/**
|
|
37
|
-
* Handle history tracks version changes for each handle.
|
|
38
|
-
*/
|
|
39
|
-
export const HANDLE_HISTORY_SCHEMA = `
|
|
40
|
-
CREATE TABLE IF NOT EXISTS handle_history (
|
|
41
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
42
|
-
handle TEXT NOT NULL,
|
|
43
|
-
previous_hash TEXT NOT NULL,
|
|
44
|
-
changed_at TEXT NOT NULL,
|
|
45
|
-
FOREIGN KEY (handle) REFERENCES handle_registry(handle),
|
|
46
|
-
FOREIGN KEY (previous_hash) REFERENCES card(hash)
|
|
47
|
-
)
|
|
48
|
-
`;
|
|
49
|
-
/**
|
|
50
|
-
* Index for efficient handle lookups by hash.
|
|
7
|
+
* This ensures schema consistency between Python and JavaScript runtimes.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* import { MCardSchema } from './schema';
|
|
11
|
+
*
|
|
12
|
+
* const schema = MCardSchema.getInstance();
|
|
13
|
+
* const cardSchema = schema.getTable('card');
|
|
14
|
+
* schema.initAllTables(db);
|
|
15
|
+
*
|
|
16
|
+
* Architecture Layers:
|
|
17
|
+
* Layer 1: Core Content Storage (card)
|
|
18
|
+
* Layer 2: Handle System (handle_registry, handle_history)
|
|
19
|
+
* Layer 3: Vector Storage (mcard_vector_metadata, mcard_embeddings)
|
|
20
|
+
* Layer 4: Semantic Versioning (handle_version_vectors, similarity_cache)
|
|
21
|
+
* Layer 5: Knowledge Graph (entities, relationships, communities)
|
|
22
|
+
*
|
|
23
|
+
* See: docs/architecture/Handle_Vector_Similarity_Design.md
|
|
51
24
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
`;
|
|
25
|
+
import { readFileSync, existsSync } from 'fs';
|
|
26
|
+
import { join, resolve } from 'path';
|
|
55
27
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
56
|
-
//
|
|
28
|
+
// Schema File Location
|
|
57
29
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
created_at TEXT NOT NULL,
|
|
72
|
-
UNIQUE(hash, chunk_index)
|
|
73
|
-
)
|
|
74
|
-
`;
|
|
75
|
-
export const VECTOR_METADATA_INDEX = `
|
|
76
|
-
CREATE INDEX IF NOT EXISTS idx_vector_metadata_hash
|
|
77
|
-
ON mcard_vector_metadata(hash)
|
|
78
|
-
`;
|
|
79
|
-
/**
|
|
80
|
-
* Embeddings table for fallback storage when sqlite-vec is unavailable.
|
|
81
|
-
*/
|
|
82
|
-
export const VECTOR_EMBEDDINGS_SCHEMA = `
|
|
83
|
-
CREATE TABLE IF NOT EXISTS mcard_embeddings (
|
|
84
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
85
|
-
metadata_id INTEGER NOT NULL REFERENCES mcard_vector_metadata(id),
|
|
86
|
-
embedding BLOB NOT NULL,
|
|
87
|
-
UNIQUE(metadata_id)
|
|
88
|
-
)
|
|
89
|
-
`;
|
|
90
|
-
/**
|
|
91
|
-
* Full-text search table for hybrid retrieval.
|
|
92
|
-
* Uses Porter stemming with Unicode support.
|
|
93
|
-
*/
|
|
94
|
-
export const VECTOR_FTS_SCHEMA = `
|
|
95
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS mcard_fts USING fts5(
|
|
96
|
-
hash,
|
|
97
|
-
content,
|
|
98
|
-
tokenize='porter unicode61'
|
|
99
|
-
)
|
|
100
|
-
`;
|
|
101
|
-
/**
|
|
102
|
-
* Generate sqlite-vec virtual table schema.
|
|
103
|
-
*/
|
|
104
|
-
export function getVec0Schema(dimensions) {
|
|
105
|
-
return `
|
|
106
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS mcard_vec USING vec0(
|
|
107
|
-
metadata_id INTEGER PRIMARY KEY,
|
|
108
|
-
embedding float[${dimensions}]
|
|
109
|
-
)
|
|
110
|
-
`;
|
|
30
|
+
function findSchemaPath() {
|
|
31
|
+
const pathsToTry = [
|
|
32
|
+
join(__dirname, '..', '..', '..', 'schema', 'mcard_schema.sql'),
|
|
33
|
+
join(__dirname, '..', '..', 'schema', 'mcard_schema.sql'),
|
|
34
|
+
join(process.cwd(), 'schema', 'mcard_schema.sql'),
|
|
35
|
+
];
|
|
36
|
+
for (const path of pathsToTry) {
|
|
37
|
+
const resolved = resolve(path);
|
|
38
|
+
if (existsSync(resolved)) {
|
|
39
|
+
return resolved;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
throw new Error(`Could not find schema/mcard_schema.sql. Tried: ${pathsToTry.join(', ')}`);
|
|
111
43
|
}
|
|
44
|
+
const TABLE_LAYERS = {
|
|
45
|
+
// Layer 1: Core
|
|
46
|
+
'card': 'core',
|
|
47
|
+
// Layer 2: Handle System
|
|
48
|
+
'handle_registry': 'handle',
|
|
49
|
+
'handle_history': 'handle',
|
|
50
|
+
// Layer 3: Vector Storage
|
|
51
|
+
'mcard_vector_metadata': 'vector',
|
|
52
|
+
'mcard_embeddings': 'vector',
|
|
53
|
+
'mcard_fts': 'vector',
|
|
54
|
+
// Layer 4: Semantic Versioning
|
|
55
|
+
'handle_version_vectors': 'semantic',
|
|
56
|
+
'version_similarity_cache': 'semantic',
|
|
57
|
+
// Layer 5: Knowledge Graph
|
|
58
|
+
'graph_entities': 'graph',
|
|
59
|
+
'graph_relationships': 'graph',
|
|
60
|
+
'graph_communities': 'graph',
|
|
61
|
+
'graph_extractions': 'graph',
|
|
62
|
+
// Metadata
|
|
63
|
+
'schema_version': 'metadata',
|
|
64
|
+
};
|
|
112
65
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
113
|
-
//
|
|
66
|
+
// Singleton Schema Manager
|
|
114
67
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
115
68
|
/**
|
|
116
|
-
*
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
121
|
-
name TEXT NOT NULL,
|
|
122
|
-
type TEXT NOT NULL,
|
|
123
|
-
description TEXT,
|
|
124
|
-
source_hash TEXT NOT NULL,
|
|
125
|
-
embedding BLOB,
|
|
126
|
-
created_at TEXT NOT NULL,
|
|
127
|
-
UNIQUE(name, type, source_hash)
|
|
128
|
-
)
|
|
129
|
-
`;
|
|
130
|
-
export const GRAPH_ENTITY_INDEX_NAME = `
|
|
131
|
-
CREATE INDEX IF NOT EXISTS idx_entity_name ON graph_entities(name)
|
|
132
|
-
`;
|
|
133
|
-
export const GRAPH_ENTITY_INDEX_TYPE = `
|
|
134
|
-
CREATE INDEX IF NOT EXISTS idx_entity_type ON graph_entities(type)
|
|
135
|
-
`;
|
|
136
|
-
export const GRAPH_ENTITY_INDEX_SOURCE = `
|
|
137
|
-
CREATE INDEX IF NOT EXISTS idx_entity_source ON graph_entities(source_hash)
|
|
138
|
-
`;
|
|
139
|
-
/**
|
|
140
|
-
* Relationship table for knowledge graph edges.
|
|
141
|
-
*/
|
|
142
|
-
export const GRAPH_RELATIONSHIP_SCHEMA = `
|
|
143
|
-
CREATE TABLE IF NOT EXISTS graph_relationships (
|
|
144
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
145
|
-
source_entity_id INTEGER NOT NULL REFERENCES graph_entities(id),
|
|
146
|
-
target_entity_id INTEGER NOT NULL REFERENCES graph_entities(id),
|
|
147
|
-
relationship TEXT NOT NULL,
|
|
148
|
-
description TEXT,
|
|
149
|
-
weight REAL DEFAULT 1.0,
|
|
150
|
-
source_hash TEXT NOT NULL,
|
|
151
|
-
created_at TEXT NOT NULL,
|
|
152
|
-
UNIQUE(source_entity_id, target_entity_id, relationship, source_hash)
|
|
153
|
-
)
|
|
154
|
-
`;
|
|
155
|
-
export const GRAPH_RELATIONSHIP_INDEX_SOURCE = `
|
|
156
|
-
CREATE INDEX IF NOT EXISTS idx_rel_source ON graph_relationships(source_entity_id)
|
|
157
|
-
`;
|
|
158
|
-
export const GRAPH_RELATIONSHIP_INDEX_TARGET = `
|
|
159
|
-
CREATE INDEX IF NOT EXISTS idx_rel_target ON graph_relationships(target_entity_id)
|
|
160
|
-
`;
|
|
161
|
-
/**
|
|
162
|
-
* Community table for hierarchical summaries (GraphRAG).
|
|
163
|
-
*/
|
|
164
|
-
export const GRAPH_COMMUNITY_SCHEMA = `
|
|
165
|
-
CREATE TABLE IF NOT EXISTS graph_communities (
|
|
166
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
167
|
-
level INTEGER NOT NULL DEFAULT 0,
|
|
168
|
-
title TEXT,
|
|
169
|
-
summary TEXT NOT NULL,
|
|
170
|
-
embedding BLOB,
|
|
171
|
-
member_entity_ids TEXT,
|
|
172
|
-
parent_community_id INTEGER REFERENCES graph_communities(id),
|
|
173
|
-
created_at TEXT NOT NULL
|
|
174
|
-
)
|
|
175
|
-
`;
|
|
176
|
-
export const GRAPH_COMMUNITY_INDEX_LEVEL = `
|
|
177
|
-
CREATE INDEX IF NOT EXISTS idx_community_level ON graph_communities(level)
|
|
178
|
-
`;
|
|
179
|
-
/**
|
|
180
|
-
* Extraction tracking to avoid re-processing documents.
|
|
69
|
+
* Singleton class for MCard database schema management.
|
|
70
|
+
*
|
|
71
|
+
* Ensures all schema definitions come from the single source of truth:
|
|
72
|
+
* schema/mcard_schema.sql
|
|
181
73
|
*/
|
|
182
|
-
export
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
)
|
|
189
|
-
|
|
74
|
+
export class MCardSchema {
|
|
75
|
+
static instance = null;
|
|
76
|
+
schemaPath = '';
|
|
77
|
+
rawSql = '';
|
|
78
|
+
statements = [];
|
|
79
|
+
tables = new Map();
|
|
80
|
+
indexes = new Map();
|
|
81
|
+
loaded = false;
|
|
82
|
+
constructor() { }
|
|
83
|
+
/**
|
|
84
|
+
* Get the singleton instance.
|
|
85
|
+
*/
|
|
86
|
+
static getInstance() {
|
|
87
|
+
if (!MCardSchema.instance) {
|
|
88
|
+
MCardSchema.instance = new MCardSchema();
|
|
89
|
+
MCardSchema.instance.load();
|
|
90
|
+
}
|
|
91
|
+
return MCardSchema.instance;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Reset the singleton (for testing).
|
|
95
|
+
*/
|
|
96
|
+
static resetInstance() {
|
|
97
|
+
MCardSchema.instance = null;
|
|
98
|
+
}
|
|
99
|
+
load() {
|
|
100
|
+
if (this.loaded)
|
|
101
|
+
return;
|
|
102
|
+
this.schemaPath = findSchemaPath();
|
|
103
|
+
this.rawSql = readFileSync(this.schemaPath, 'utf-8');
|
|
104
|
+
this.statements = this.parseStatements(this.rawSql);
|
|
105
|
+
for (const stmt of this.statements) {
|
|
106
|
+
const name = this.extractName(stmt);
|
|
107
|
+
if (name) {
|
|
108
|
+
const upper = stmt.toUpperCase();
|
|
109
|
+
if (upper.includes('CREATE TABLE') || upper.includes('CREATE VIRTUAL TABLE')) {
|
|
110
|
+
this.tables.set(name.toLowerCase(), stmt);
|
|
111
|
+
}
|
|
112
|
+
else if (upper.includes('CREATE INDEX')) {
|
|
113
|
+
this.indexes.set(name.toLowerCase(), stmt);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
this.loaded = true;
|
|
118
|
+
}
|
|
119
|
+
parseStatements(sql) {
|
|
120
|
+
// Remove block comments
|
|
121
|
+
sql = sql.replace(/\/\*[\s\S]*?\*\//g, '');
|
|
122
|
+
const statements = [];
|
|
123
|
+
let current = [];
|
|
124
|
+
for (const line of sql.split('\n')) {
|
|
125
|
+
// Skip line comments
|
|
126
|
+
const stripped = line.split('--')[0].trim();
|
|
127
|
+
if (!stripped)
|
|
128
|
+
continue;
|
|
129
|
+
current.push(stripped);
|
|
130
|
+
if (stripped.endsWith(';')) {
|
|
131
|
+
const statement = current.join(' ');
|
|
132
|
+
// Skip INSERT statements
|
|
133
|
+
if (!statement.trim().toUpperCase().startsWith('INSERT')) {
|
|
134
|
+
statements.push(statement);
|
|
135
|
+
}
|
|
136
|
+
current = [];
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return statements.filter(s => s.trim());
|
|
140
|
+
}
|
|
141
|
+
extractName(statement) {
|
|
142
|
+
// Handle CREATE TABLE
|
|
143
|
+
let match = statement.match(/CREATE\s+(?:VIRTUAL\s+)?TABLE\s+(?:IF\s+NOT\s+EXISTS\s+)?(\w+)/i);
|
|
144
|
+
if (match)
|
|
145
|
+
return match[1];
|
|
146
|
+
// Handle CREATE INDEX
|
|
147
|
+
match = statement.match(/CREATE\s+INDEX\s+(?:IF\s+NOT\s+EXISTS\s+)?(\w+)/i);
|
|
148
|
+
if (match)
|
|
149
|
+
return match[1];
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
153
|
+
// Schema Access
|
|
154
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
155
|
+
getSchemaPath() {
|
|
156
|
+
return this.schemaPath;
|
|
157
|
+
}
|
|
158
|
+
getTable(tableName) {
|
|
159
|
+
return this.tables.get(tableName.toLowerCase());
|
|
160
|
+
}
|
|
161
|
+
getIndex(indexName) {
|
|
162
|
+
return this.indexes.get(indexName.toLowerCase());
|
|
163
|
+
}
|
|
164
|
+
getAllTables() {
|
|
165
|
+
return new Map(this.tables);
|
|
166
|
+
}
|
|
167
|
+
getAllIndexes() {
|
|
168
|
+
return new Map(this.indexes);
|
|
169
|
+
}
|
|
170
|
+
getAllStatements() {
|
|
171
|
+
return [...this.statements];
|
|
172
|
+
}
|
|
173
|
+
getTablesByLayer(layer) {
|
|
174
|
+
return Object.entries(TABLE_LAYERS)
|
|
175
|
+
.filter(([_, l]) => l === layer)
|
|
176
|
+
.map(([name, _]) => name);
|
|
177
|
+
}
|
|
178
|
+
getLayerStatements(layer) {
|
|
179
|
+
const statements = [];
|
|
180
|
+
const tables = this.getTablesByLayer(layer);
|
|
181
|
+
// Add tables
|
|
182
|
+
for (const table of tables) {
|
|
183
|
+
const stmt = this.getTable(table);
|
|
184
|
+
if (stmt)
|
|
185
|
+
statements.push(stmt);
|
|
186
|
+
}
|
|
187
|
+
// Add indexes for these tables
|
|
188
|
+
for (const [_, stmt] of this.indexes) {
|
|
189
|
+
const match = stmt.match(/ON\s+(\w+)/i);
|
|
190
|
+
if (match && tables.includes(match[1].toLowerCase())) {
|
|
191
|
+
statements.push(stmt);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return statements;
|
|
195
|
+
}
|
|
196
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
197
|
+
// Database Initialization
|
|
198
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
199
|
+
execStatements(db, statements) {
|
|
200
|
+
for (const stmt of statements) {
|
|
201
|
+
db.exec(stmt);
|
|
202
|
+
}
|
|
203
|
+
return statements.length;
|
|
204
|
+
}
|
|
205
|
+
initLayer(db, layer) {
|
|
206
|
+
return this.execStatements(db, this.getLayerStatements(layer));
|
|
207
|
+
}
|
|
208
|
+
initCoreTables(db) {
|
|
209
|
+
return this.initLayer(db, 'core');
|
|
210
|
+
}
|
|
211
|
+
initHandleTables(db) {
|
|
212
|
+
return this.initLayer(db, 'handle');
|
|
213
|
+
}
|
|
214
|
+
initVectorTables(db, enableFts = true) {
|
|
215
|
+
const statements = this.getLayerStatements('vector')
|
|
216
|
+
.filter(s => enableFts || !s.toLowerCase().includes('fts'));
|
|
217
|
+
return this.execStatements(db, statements);
|
|
218
|
+
}
|
|
219
|
+
initSemanticTables(db) {
|
|
220
|
+
return this.initLayer(db, 'semantic');
|
|
221
|
+
}
|
|
222
|
+
initGraphTables(db) {
|
|
223
|
+
return this.initLayer(db, 'graph');
|
|
224
|
+
}
|
|
225
|
+
initAllTables(db, options = {}) {
|
|
226
|
+
const { enableFts = true, enableGraph = true, enableSemantic = true } = options;
|
|
227
|
+
let count = 0;
|
|
228
|
+
count += this.initCoreTables(db);
|
|
229
|
+
count += this.initHandleTables(db);
|
|
230
|
+
count += this.initVectorTables(db, enableFts);
|
|
231
|
+
if (enableSemantic) {
|
|
232
|
+
count += this.initSemanticTables(db);
|
|
233
|
+
}
|
|
234
|
+
if (enableGraph) {
|
|
235
|
+
count += this.initGraphTables(db);
|
|
236
|
+
}
|
|
237
|
+
return count;
|
|
238
|
+
}
|
|
239
|
+
initVec0Table(db, dimensions) {
|
|
240
|
+
db.exec(`
|
|
241
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS mcard_vec USING vec0(
|
|
242
|
+
metadata_id INTEGER PRIMARY KEY,
|
|
243
|
+
embedding float[${dimensions}]
|
|
244
|
+
)
|
|
245
|
+
`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
190
248
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
191
|
-
//
|
|
249
|
+
// Convenience Exports (Backward Compatibility)
|
|
192
250
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
251
|
+
// These are lazy-loaded from the singleton
|
|
252
|
+
let _cachedSchemas = {};
|
|
253
|
+
function getSchemaInstance() {
|
|
254
|
+
return MCardSchema.getInstance();
|
|
255
|
+
}
|
|
256
|
+
// Core schemas
|
|
257
|
+
export const CARD_TABLE_SCHEMA = getSchemaInstance().getTable('card') || '';
|
|
258
|
+
export const HANDLE_REGISTRY_SCHEMA = getSchemaInstance().getTable('handle_registry') || '';
|
|
259
|
+
export const HANDLE_HISTORY_SCHEMA = getSchemaInstance().getTable('handle_history') || '';
|
|
260
|
+
export const HANDLE_INDEX_SCHEMA = getSchemaInstance().getIndex('idx_handle_current_hash') || '';
|
|
261
|
+
// Vector schemas
|
|
262
|
+
export const VECTOR_METADATA_SCHEMA = getSchemaInstance().getTable('mcard_vector_metadata') || '';
|
|
263
|
+
export const VECTOR_METADATA_INDEX = getSchemaInstance().getIndex('idx_vector_metadata_hash') || '';
|
|
264
|
+
export const VECTOR_EMBEDDINGS_SCHEMA = getSchemaInstance().getTable('mcard_embeddings') || '';
|
|
265
|
+
export const VECTOR_FTS_SCHEMA = getSchemaInstance().getTable('mcard_fts') || '';
|
|
266
|
+
// Semantic versioning schemas
|
|
267
|
+
export const HANDLE_VERSION_VECTORS_SCHEMA = getSchemaInstance().getTable('handle_version_vectors') || '';
|
|
268
|
+
export const HANDLE_VERSION_VECTORS_INDEXES = [
|
|
269
|
+
getSchemaInstance().getIndex('idx_hvv_handle'),
|
|
270
|
+
getSchemaInstance().getIndex('idx_hvv_hash'),
|
|
271
|
+
getSchemaInstance().getIndex('idx_hvv_current'),
|
|
272
|
+
getSchemaInstance().getIndex('idx_hvv_parent'),
|
|
273
|
+
].filter(Boolean).join('; ');
|
|
274
|
+
export const VERSION_SIMILARITY_CACHE_SCHEMA = getSchemaInstance().getTable('version_similarity_cache') || '';
|
|
275
|
+
export const VERSION_SIMILARITY_CACHE_INDEX = getSchemaInstance().getIndex('idx_vsc_handle') || '';
|
|
276
|
+
// Graph schemas
|
|
277
|
+
export const GRAPH_ENTITY_SCHEMA = getSchemaInstance().getTable('graph_entities') || '';
|
|
278
|
+
export const GRAPH_ENTITY_INDEX_NAME = getSchemaInstance().getIndex('idx_entity_name') || '';
|
|
279
|
+
export const GRAPH_ENTITY_INDEX_TYPE = getSchemaInstance().getIndex('idx_entity_type') || '';
|
|
280
|
+
export const GRAPH_ENTITY_INDEX_SOURCE = getSchemaInstance().getIndex('idx_entity_source') || '';
|
|
281
|
+
export const GRAPH_RELATIONSHIP_SCHEMA = getSchemaInstance().getTable('graph_relationships') || '';
|
|
282
|
+
export const GRAPH_RELATIONSHIP_INDEX_SOURCE = getSchemaInstance().getIndex('idx_rel_source') || '';
|
|
283
|
+
export const GRAPH_RELATIONSHIP_INDEX_TARGET = getSchemaInstance().getIndex('idx_rel_target') || '';
|
|
284
|
+
export const GRAPH_COMMUNITY_SCHEMA = getSchemaInstance().getTable('graph_communities') || '';
|
|
285
|
+
export const GRAPH_COMMUNITY_INDEX_LEVEL = getSchemaInstance().getIndex('idx_community_level') || '';
|
|
286
|
+
export const GRAPH_EXTRACTION_SCHEMA = getSchemaInstance().getTable('graph_extractions') || '';
|
|
287
|
+
// Schema collections
|
|
196
288
|
export const CORE_SCHEMAS = {
|
|
197
289
|
card: CARD_TABLE_SCHEMA,
|
|
198
290
|
handleRegistry: HANDLE_REGISTRY_SCHEMA,
|
|
199
291
|
handleHistory: HANDLE_HISTORY_SCHEMA,
|
|
200
292
|
handleIndex: HANDLE_INDEX_SCHEMA,
|
|
201
293
|
};
|
|
202
|
-
/**
|
|
203
|
-
* Vector storage schemas for semantic search.
|
|
204
|
-
*/
|
|
205
294
|
export const VECTOR_SCHEMAS = {
|
|
206
295
|
metadata: VECTOR_METADATA_SCHEMA,
|
|
207
296
|
metadataIndex: VECTOR_METADATA_INDEX,
|
|
208
297
|
embeddings: VECTOR_EMBEDDINGS_SCHEMA,
|
|
209
298
|
fts: VECTOR_FTS_SCHEMA,
|
|
210
299
|
};
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
300
|
+
export const SEMANTIC_SCHEMAS = {
|
|
301
|
+
handleVersionVectors: HANDLE_VERSION_VECTORS_SCHEMA,
|
|
302
|
+
handleVersionVectorsIndexes: HANDLE_VERSION_VECTORS_INDEXES,
|
|
303
|
+
similarityCache: VERSION_SIMILARITY_CACHE_SCHEMA,
|
|
304
|
+
similarityCacheIndex: VERSION_SIMILARITY_CACHE_INDEX,
|
|
305
|
+
};
|
|
214
306
|
export const GRAPH_SCHEMAS = {
|
|
215
307
|
entities: GRAPH_ENTITY_SCHEMA,
|
|
216
308
|
entityIndexName: GRAPH_ENTITY_INDEX_NAME,
|
|
@@ -223,39 +315,35 @@ export const GRAPH_SCHEMAS = {
|
|
|
223
315
|
communityIndexLevel: GRAPH_COMMUNITY_INDEX_LEVEL,
|
|
224
316
|
extractions: GRAPH_EXTRACTION_SCHEMA,
|
|
225
317
|
};
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
318
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
319
|
+
// Initialization Functions (use singleton internally)
|
|
320
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
229
321
|
export function initCoreSchemas(db) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
322
|
+
const schema = MCardSchema.getInstance();
|
|
323
|
+
// Initialize both core (card) and handle tables (handle_registry, handle_history)
|
|
324
|
+
// because they are fundamental to MCard operation
|
|
325
|
+
schema.initCoreTables(db);
|
|
326
|
+
schema.initHandleTables(db);
|
|
234
327
|
}
|
|
235
|
-
/**
|
|
236
|
-
* Initialize vector schemas on a database.
|
|
237
|
-
*/
|
|
238
328
|
export function initVectorSchemas(db, enableFts = true) {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
db.exec(VECTOR_SCHEMAS.fts);
|
|
244
|
-
}
|
|
329
|
+
MCardSchema.getInstance().initVectorTables(db, enableFts);
|
|
330
|
+
}
|
|
331
|
+
export function initSemanticSchemas(db) {
|
|
332
|
+
MCardSchema.getInstance().initSemanticTables(db);
|
|
245
333
|
}
|
|
246
|
-
/**
|
|
247
|
-
* Initialize graph schemas on a database.
|
|
248
|
-
*/
|
|
249
334
|
export function initGraphSchemas(db) {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
335
|
+
MCardSchema.getInstance().initGraphTables(db);
|
|
336
|
+
}
|
|
337
|
+
export function initAllSchemas(db, options = {}) {
|
|
338
|
+
MCardSchema.getInstance().initAllTables(db, options);
|
|
339
|
+
}
|
|
340
|
+
// Dynamic schema generator (dimensions can't come from SQL file)
|
|
341
|
+
export function getVec0Schema(dimensions) {
|
|
342
|
+
return `
|
|
343
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS mcard_vec USING vec0(
|
|
344
|
+
metadata_id INTEGER PRIMARY KEY,
|
|
345
|
+
embedding float[${dimensions}]
|
|
346
|
+
)
|
|
347
|
+
`;
|
|
260
348
|
}
|
|
261
349
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/storage/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/storage/schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED