mcard-js 2.1.23 → 2.1.24

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 CHANGED
@@ -609,6 +609,16 @@ To run integration tests against a live Ollama instance:
609
609
  npx vitest tests/rag/Integration.test.ts
610
610
  ```
611
611
 
612
+ ## Version 0.1.42 / 2.1.24 Release Notes (January 13, 2026)
613
+ > Single Source of Truth Schema Synchronization
614
+
615
+ ### 🔄 Schema Synchronization
616
+ * **Unified Schema Source**: `mcard-js` now strictly uses the canonical SQL schema files (`mcard_schema.sql`, `mcard_vector_schema.sql`) from the project root.
617
+ * **Distribution Integrity**: The `npm` package now includes the raw SQL schema files, ensuring guaranteed parity with the Python implementation.
618
+ * **Path Resolution**: Robust logic to resolve schema files in both development (monorepo) and production (dependency) contexts.
619
+
620
+ ---
621
+
612
622
  ## Version 0.1.43 / 2.1.23 Release Notes (January 8, 2026)
613
623
  > CLM REPL Architecture, Bridgelet, and Introspection
614
624
 
@@ -21,4 +21,8 @@ export declare function getHandleBuiltinType(builtin: any, operation?: string):
21
21
  * Check if a builtin is a static server operation.
22
22
  */
23
23
  export declare function isStaticServerBuiltin(builtin: any, operation?: string): boolean;
24
+ /**
25
+ * Check if a builtin is a WebSocket server operation.
26
+ */
27
+ export declare function isWebSocketServerBuiltin(builtin: any, operation?: string): boolean;
24
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ptr/node/clm/builtins/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAiB1E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAOzE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAMzE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAOjG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAK/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ptr/node/clm/builtins/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuBH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAiB1E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAOzE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAMzE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAOjG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAK/E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAKlF"}
@@ -15,6 +15,11 @@ const NETWORK_BUILTINS = new Set([
15
15
  'signaling_server',
16
16
  'webrtc_connect', 'webrtc_send', 'webrtc_listen',
17
17
  ]);
18
+ // Server builtins that manage long-running processes
19
+ const SERVER_BUILTINS = new Set([
20
+ 'static_server',
21
+ 'websocket_server',
22
+ ]);
18
23
  /**
19
24
  * Check if a builtin should be handled by network runtime.
20
25
  */
@@ -77,4 +82,13 @@ export function isStaticServerBuiltin(builtin, operation) {
77
82
  const op = (typeof builtin === 'string' ? builtin : operation) || '';
78
83
  return op === 'static_server';
79
84
  }
85
+ /**
86
+ * Check if a builtin is a WebSocket server operation.
87
+ */
88
+ export function isWebSocketServerBuiltin(builtin, operation) {
89
+ if (builtin === false)
90
+ return false;
91
+ const op = (typeof builtin === 'string' ? builtin : operation) || '';
92
+ return op === 'websocket_server';
93
+ }
80
94
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ptr/node/clm/builtins/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2DAA2D;AAC3D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC7B,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY;IAChE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB;IACzD,YAAY,EAAE,eAAe;IAC7B,UAAU;IACV,YAAY,EAAE,YAAY,EAAE,YAAY;IACxC,aAAa,EAAE,aAAa;IAC5B,gBAAgB;IAChB,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB,EAAE,aAAa,EAAE,eAAe;CACnD,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAY,EAAE,SAAkB;IAC7D,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAEpC,2CAA2C;IAC3C,MAAM,EAAE,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACrE,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAEtB,oBAAoB;IACpB,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1C,wBAAwB;IACxB,OAAO,CACH,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QACtB,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;QAC3B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QACvB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAC3B,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAY,EAAE,SAAkB;IAC5D,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAErE,OAAO,EAAE,KAAK,QAAQ;QAClB,EAAE,KAAK,YAAY;QACnB,SAAS,KAAK,QAAQ,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAY,EAAE,SAAkB;IAC5D,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAErE,OAAO,EAAE,KAAK,gBAAgB;QAC1B,EAAE,KAAK,cAAc,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAY,EAAE,SAAkB;IACjE,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,EAAE,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAErE,IAAI,EAAE,KAAK,gBAAgB;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,EAAE,KAAK,cAAc;QAAE,OAAO,OAAO,CAAC;IAC1C,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAY,EAAE,SAAkB;IAClE,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAErE,OAAO,EAAE,KAAK,eAAe,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ptr/node/clm/builtins/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * WebSocket Server builtin for CLM execution.
3
+ *
4
+ * Provides deploy, status, and stop actions for WebSocket servers.
5
+ * Uses Python's asyncio-based WebSocket server internally.
6
+ * Matches the Python implementation for cross-runtime consistency.
7
+ */
8
+ /**
9
+ * Configuration for WebSocket server builtin.
10
+ */
11
+ export interface WebSocketServerConfig {
12
+ action?: 'deploy' | 'status' | 'stop';
13
+ port?: number;
14
+ host?: string;
15
+ }
16
+ /**
17
+ * Result from WebSocket server operations.
18
+ */
19
+ export interface WebSocketServerResult {
20
+ success: boolean;
21
+ message?: string;
22
+ error?: string;
23
+ pid?: number | null;
24
+ saved_pid?: number | null;
25
+ port?: number;
26
+ url?: string | null;
27
+ status?: 'running' | 'stopped' | 'already_running';
28
+ running?: boolean;
29
+ }
30
+ /**
31
+ * Execute WebSocket server builtin.
32
+ */
33
+ export declare function executeWebSocketServer(config: WebSocketServerConfig, context: Record<string, any>, chapterDir: string): Promise<WebSocketServerResult>;
34
+ //# sourceMappingURL=websocket-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-server.d.ts","sourceRoot":"","sources":["../../../../../src/ptr/node/clm/builtins/websocket-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAAC;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AA2BD;;GAEG;AACH,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,CAAC,CA6LhC"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * WebSocket Server builtin for CLM execution.
3
+ *
4
+ * Provides deploy, status, and stop actions for WebSocket servers.
5
+ * Uses Python's asyncio-based WebSocket server internally.
6
+ * Matches the Python implementation for cross-runtime consistency.
7
+ */
8
+ import { execSync, spawn } from 'child_process';
9
+ import * as fs from 'fs';
10
+ import * as path from 'path';
11
+ /**
12
+ * Check if a port is in use using lsof (handles both IPv4 and IPv6).
13
+ */
14
+ function isPortInUse(port) {
15
+ try {
16
+ const result = execSync(`lsof -ti :${port}`, { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] });
17
+ return result.trim().length > 0;
18
+ }
19
+ catch {
20
+ return false;
21
+ }
22
+ }
23
+ /**
24
+ * Get PID of process using a port.
25
+ */
26
+ function getPidOnPort(port) {
27
+ try {
28
+ const result = execSync(`lsof -ti :${port}`, { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] });
29
+ const pid = parseInt(result.trim().split('\n')[0], 10);
30
+ return isNaN(pid) ? null : pid;
31
+ }
32
+ catch {
33
+ return null;
34
+ }
35
+ }
36
+ /**
37
+ * Execute WebSocket server builtin.
38
+ */
39
+ export async function executeWebSocketServer(config, context, chapterDir) {
40
+ const action = context.action || config.action || 'status';
41
+ const port = parseInt(String(context.port || config.port || 8765), 10);
42
+ const host = context.host || config.host || 'localhost';
43
+ // Resolve project root
44
+ let projectRoot = chapterDir;
45
+ while (projectRoot !== path.dirname(projectRoot)) {
46
+ if (fs.existsSync(path.join(projectRoot, 'package.json')) ||
47
+ fs.existsSync(path.join(projectRoot, '.git'))) {
48
+ break;
49
+ }
50
+ projectRoot = path.dirname(projectRoot);
51
+ }
52
+ if (projectRoot === path.dirname(projectRoot)) {
53
+ projectRoot = process.cwd();
54
+ }
55
+ const pidFile = path.join(projectRoot, `.websocket_server_${port}.pid`);
56
+ if (action === 'deploy') {
57
+ // Check if already running
58
+ if (isPortInUse(port)) {
59
+ const pid = getPidOnPort(port);
60
+ return {
61
+ success: true,
62
+ message: 'WebSocket server already running',
63
+ pid,
64
+ port,
65
+ url: `ws://${host}:${port}/`,
66
+ status: 'already_running'
67
+ };
68
+ }
69
+ // Python WebSocket server script
70
+ const wsServerCode = `
71
+ import asyncio
72
+ import json
73
+ import sys
74
+
75
+ try:
76
+ import websockets
77
+ except ImportError:
78
+ print("websockets module not found")
79
+ sys.exit(1)
80
+
81
+ connected_clients = set()
82
+
83
+ async def handler(websocket):
84
+ connected_clients.add(websocket)
85
+ try:
86
+ async for message in websocket:
87
+ response = json.dumps({
88
+ "type": "echo",
89
+ "original": message,
90
+ "clients": len(connected_clients)
91
+ })
92
+ await websocket.send(response)
93
+ except websockets.exceptions.ConnectionClosed:
94
+ pass
95
+ finally:
96
+ connected_clients.discard(websocket)
97
+
98
+ async def main():
99
+ async with websockets.serve(handler, "${host}", ${port}):
100
+ print(f"WebSocket server running on ws://${host}:${port}/")
101
+ await asyncio.Future()
102
+
103
+ if __name__ == "__main__":
104
+ try:
105
+ asyncio.run(main())
106
+ except KeyboardInterrupt:
107
+ pass
108
+ `;
109
+ try {
110
+ // Find Python executable
111
+ let pythonExe = 'python3';
112
+ try {
113
+ execSync('python3 --version', { stdio: 'pipe' });
114
+ }
115
+ catch {
116
+ pythonExe = 'python';
117
+ }
118
+ // Spawn Python WebSocket server as detached background process
119
+ const child = spawn(pythonExe, ['-c', wsServerCode], {
120
+ detached: true,
121
+ stdio: 'ignore'
122
+ });
123
+ child.unref();
124
+ // Save PID
125
+ fs.writeFileSync(pidFile, String(child.pid));
126
+ // Wait for server to start
127
+ await new Promise(resolve => setTimeout(resolve, 1500));
128
+ if (isPortInUse(port)) {
129
+ return {
130
+ success: true,
131
+ message: 'WebSocket server deployed successfully',
132
+ pid: child.pid,
133
+ port,
134
+ url: `ws://${host}:${port}/`,
135
+ status: 'running'
136
+ };
137
+ }
138
+ else {
139
+ return { success: false, error: "Server started but not responding. Ensure 'websockets' package is installed: pip install websockets" };
140
+ }
141
+ }
142
+ catch (error) {
143
+ return { success: false, error: `Failed to start server: ${error}` };
144
+ }
145
+ }
146
+ if (action === 'status') {
147
+ const isRunning = isPortInUse(port);
148
+ const pid = getPidOnPort(port);
149
+ let savedPid = null;
150
+ if (fs.existsSync(pidFile)) {
151
+ try {
152
+ savedPid = parseInt(fs.readFileSync(pidFile, 'utf8').trim(), 10);
153
+ }
154
+ catch { }
155
+ }
156
+ return {
157
+ success: true,
158
+ running: isRunning,
159
+ pid,
160
+ saved_pid: savedPid,
161
+ port,
162
+ url: isRunning ? `ws://${host}:${port}/` : null,
163
+ status: isRunning ? 'running' : 'stopped'
164
+ };
165
+ }
166
+ if (action === 'stop') {
167
+ const pid = getPidOnPort(port);
168
+ if (!pid) {
169
+ if (fs.existsSync(pidFile)) {
170
+ fs.unlinkSync(pidFile);
171
+ }
172
+ return {
173
+ success: true,
174
+ message: 'No WebSocket server running on this port',
175
+ port,
176
+ status: 'stopped'
177
+ };
178
+ }
179
+ try {
180
+ process.kill(pid, 'SIGTERM');
181
+ await new Promise(resolve => setTimeout(resolve, 500));
182
+ if (isPortInUse(port)) {
183
+ process.kill(pid, 'SIGKILL');
184
+ await new Promise(resolve => setTimeout(resolve, 500));
185
+ }
186
+ if (fs.existsSync(pidFile)) {
187
+ fs.unlinkSync(pidFile);
188
+ }
189
+ return {
190
+ success: true,
191
+ message: 'WebSocket server stopped',
192
+ pid,
193
+ port,
194
+ status: 'stopped'
195
+ };
196
+ }
197
+ catch (error) {
198
+ if (error.code === 'ESRCH') {
199
+ if (fs.existsSync(pidFile)) {
200
+ fs.unlinkSync(pidFile);
201
+ }
202
+ return {
203
+ success: true,
204
+ message: 'WebSocket server was not running',
205
+ port,
206
+ status: 'stopped'
207
+ };
208
+ }
209
+ return { success: false, error: `Failed to stop server: ${error}` };
210
+ }
211
+ }
212
+ return { success: false, error: `Unknown action: ${action}` };
213
+ }
214
+ //# sourceMappingURL=websocket-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../../../../../src/ptr/node/clm/builtins/websocket-server.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,10 @@
17
17
  */
18
18
  export type { CLMSpec, RuntimeConfig, CLMExample, ExecutionResult, RuntimeResult, MultiRuntimeResult, VerificationResult, RunExamplesSummary, ExampleRunResult, ExecutionReport, SummaryReport, CLMBannerLines, } from './types.js';
19
19
  export { resultsEqual, asObject, buildBaseContext, buildExecutionResult, isRecursiveCLM, isMultiRuntime, } from './utils.js';
20
- export { isNetworkBuiltin, isLoaderBuiltin, isHandleBuiltin, getHandleBuiltinType, isStaticServerBuiltin, } from './builtins/index.js';
20
+ export { isNetworkBuiltin, isLoaderBuiltin, isHandleBuiltin, getHandleBuiltinType, isStaticServerBuiltin, isWebSocketServerBuiltin, } from './builtins/index.js';
21
21
  export { executeHandleVersion, executeHandlePrune, } from './builtins/handle.js';
22
22
  export { executeStaticServer, type StaticServerConfig, type StaticServerResult, } from './builtins/static-server.js';
23
+ export { executeWebSocketServer, type WebSocketServerConfig, type WebSocketServerResult, } from './builtins/websocket-server.js';
23
24
  export { CLMLoader } from './loader.js';
24
25
  export { CLMRunner } from './runner.js';
25
26
  export { executeMultiRuntime } from './multiruntime.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ptr/node/clm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,YAAY,EACR,OAAO,EACP,aAAa,EACb,UAAU,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACH,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,cAAc,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,qBAAqB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACH,oBAAoB,EACpB,kBAAkB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GAC1B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ptr/node/clm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,YAAY,EACR,OAAO,EACP,aAAa,EACb,UAAU,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACH,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,cAAc,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACH,oBAAoB,EACpB,kBAAkB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GAC1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACH,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC7B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -18,9 +18,10 @@
18
18
  // Utilities
19
19
  export { resultsEqual, asObject, buildBaseContext, buildExecutionResult, isRecursiveCLM, isMultiRuntime, } from './utils.js';
20
20
  // Builtins
21
- export { isNetworkBuiltin, isLoaderBuiltin, isHandleBuiltin, getHandleBuiltinType, isStaticServerBuiltin, } from './builtins/index.js';
21
+ export { isNetworkBuiltin, isLoaderBuiltin, isHandleBuiltin, getHandleBuiltinType, isStaticServerBuiltin, isWebSocketServerBuiltin, } from './builtins/index.js';
22
22
  export { executeHandleVersion, executeHandlePrune, } from './builtins/handle.js';
23
23
  export { executeStaticServer, } from './builtins/static-server.js';
24
+ export { executeWebSocketServer, } from './builtins/websocket-server.js';
24
25
  // Core classes
25
26
  export { CLMLoader } from './loader.js';
26
27
  export { CLMRunner } from './runner.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ptr/node/clm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAkBH,YAAY;AACZ,OAAO,EACH,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,cAAc,GACjB,MAAM,YAAY,CAAC;AAEpB,WAAW;AACX,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,qBAAqB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACH,oBAAoB,EACpB,kBAAkB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,mBAAmB,GAGtB,MAAM,6BAA6B,CAAC;AAErC,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,gBAAgB;AAChB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ptr/node/clm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAkBH,YAAY;AACZ,OAAO,EACH,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,cAAc,GACjB,MAAM,YAAY,CAAC;AAEpB,WAAW;AACX,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACH,oBAAoB,EACpB,kBAAkB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,mBAAmB,GAGtB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACH,sBAAsB,GAGzB,MAAM,gCAAgC,CAAC;AAExC,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,gBAAgB;AAChB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/ptr/node/clm/runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAKlE,OAAO,KAAK,EACR,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,cAAc,EACd,kBAAkB,EAErB,MAAM,YAAY,CAAC;AAyBpB,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAExB,QAAQ,GAAE,MAAsB,EAAE,OAAO,GAAE,MAAa,EAAE,UAAU,CAAC,EAAE,cAAc;IAMjG;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IASzE;;;;;;;;;OASG;IACG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAiI5F;;OAEG;IACG,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIxG;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAIrC;;OAEG;IACG,SAAS,CACX,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,OAAO,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAW9B;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC/D,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,eAAe,CAAC;KAC3B,CAAC,CAAC;IAWH;;OAEG;IACH,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,GAAG,kBAAkB;IAoCjH;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc;IAY5C;;OAEG;IACH,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,GAAG,eAAe;IAU/E;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,GAAG,aAAa;YAoB9D,aAAa;YAeb,cAAc;YAad,eAAe;YA+Cf,gBAAgB;IAsD9B,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,WAAW;CAMtB"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/ptr/node/clm/runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAKlE,OAAO,KAAK,EACR,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,cAAc,EACd,kBAAkB,EAErB,MAAM,YAAY,CAAC;AA2BpB,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAExB,QAAQ,GAAE,MAAsB,EAAE,OAAO,GAAE,MAAa,EAAE,UAAU,CAAC,EAAE,cAAc;IAMjG;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IASzE;;;;;;;;;OASG;IACG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IA4I5F;;OAEG;IACG,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIxG;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAIrC;;OAEG;IACG,SAAS,CACX,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,OAAO,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAW9B;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC/D,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,eAAe,CAAC;KAC3B,CAAC,CAAC;IAWH;;OAEG;IACH,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,GAAG,kBAAkB;IAoCjH;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc;IAY5C;;OAEG;IACH,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,GAAG,eAAe;IAU/E;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,GAAG,aAAa;YAoB9D,aAAa;YAeb,cAAc;YAad,eAAe;YA+Cf,gBAAgB;IAsD9B,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,WAAW;CAMtB"}
@@ -13,9 +13,10 @@ import { VCard } from '../../../model/VCard.js';
13
13
  // Utilities
14
14
  import { asObject, buildBaseContext, buildExecutionResult, isRecursiveCLM, isMultiRuntime, } from './utils.js';
15
15
  // Builtins
16
- import { isNetworkBuiltin, isLoaderBuiltin, getHandleBuiltinType, isStaticServerBuiltin } from './builtins/index.js';
16
+ import { isNetworkBuiltin, isLoaderBuiltin, getHandleBuiltinType, isStaticServerBuiltin, isWebSocketServerBuiltin } from './builtins/index.js';
17
17
  import { executeHandleVersion, executeHandlePrune } from './builtins/handle.js';
18
18
  import { executeStaticServer } from './builtins/static-server.js';
19
+ import { executeWebSocketServer } from './builtins/websocket-server.js';
19
20
  // Other modules
20
21
  import { CLMLoader } from './loader.js';
21
22
  import { executeMultiRuntime } from './multiruntime.js';
@@ -87,18 +88,25 @@ export class CLMRunner {
87
88
  const builtin = config.builtin;
88
89
  const operation = config.process || config.action || config.operation;
89
90
  // Route to appropriate handler
91
+ // NOTE: Check specific builtins BEFORE isNetworkBuiltin (which uses prefix matching)
90
92
  if (isLoaderBuiltin(builtin, operation) || runtimeName === 'loader' || runtimeName === 'collection_loader') {
91
93
  result = await this.executeLoader(runtimeName, config, clm, chapterDir, input, startTime);
92
94
  }
93
- else if (isNetworkBuiltin(builtin, operation)) {
94
- result = await this.executeNetwork(config, clm, chapterDir, input, startTime);
95
- }
96
95
  else if (isStaticServerBuiltin(builtin, operation)) {
97
96
  // Static server builtin - extract inner config object
98
97
  const serverConfig = config.config || {};
99
98
  const serverResult = await executeStaticServer(serverConfig, asObject(input), chapterDir);
100
99
  result = buildExecutionResult(serverResult.success, serverResult, startTime, clm);
101
100
  }
101
+ else if (isWebSocketServerBuiltin(builtin, operation)) {
102
+ // WebSocket server builtin - extract inner config object
103
+ const wsConfig = config.config || {};
104
+ const wsResult = await executeWebSocketServer(wsConfig, asObject(input), chapterDir);
105
+ result = buildExecutionResult(wsResult.success, wsResult, startTime, clm);
106
+ }
107
+ else if (isNetworkBuiltin(builtin, operation)) {
108
+ result = await this.executeNetwork(config, clm, chapterDir, input, startTime);
109
+ }
102
110
  else {
103
111
  const handleType = getHandleBuiltinType(builtin, operation);
104
112
  if (handleType) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/ptr/node/clm/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/ptr/node/clm/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcard-js",
3
- "version": "2.1.23",
3
+ "version": "2.1.24",
4
4
  "description": "MCard - Content-addressable storage with cryptographic hashing, handle resolution, and vector search for Node.js and browsers",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -23,12 +23,13 @@
23
23
  },
24
24
  "files": [
25
25
  "dist",
26
+ "schema",
26
27
  "README.md",
27
28
  "LICENSE"
28
29
  ],
29
30
  "scripts": {
30
31
  "dev": "vite",
31
- "build": "tsc",
32
+ "build": "npm run sync:schema && tsc",
32
33
  "build:check": "tsc --noEmit",
33
34
  "test": "vitest",
34
35
  "test:run": "vitest run",
@@ -37,7 +38,8 @@
37
38
  "demo:lambda": "tsx examples/lambda-demo.ts",
38
39
  "clm:all": "tsx examples/run-all-clms.ts",
39
40
  "clm:chapter": "tsx examples/run-all-clms.ts",
40
- "clm:lambda": "tsx examples/run-lambda-clms.ts"
41
+ "clm:lambda": "tsx examples/run-lambda-clms.ts",
42
+ "sync:schema": "node scripts/sync-schemas.js"
41
43
  },
42
44
  "dependencies": {
43
45
  "@grafana/faro-web-sdk": "^2.0.2",
@@ -0,0 +1,125 @@
1
+ -- ═══════════════════════════════════════════════════════════════════════════════
2
+ -- MCard Unified Database Schema (Monadic Core)
3
+ -- ═══════════════════════════════════════════════════════════════════════════════
4
+ --
5
+ -- STABILITY WARNING: This schema is the invariant "seeding meta-language" for all
6
+ -- Domain Specific Languages (DSLs). It must remain as stable as possible.
7
+ --
8
+ -- THE UNIFICATION THESIS:
9
+ -- This design unites three distinct namespaces into a single relational network
10
+ -- by leveraging the power of cryptographic hash functions:
11
+ -- 1. CONTENT SPACE (Intrinsic Identity): Content-Addressable Storage (CAS).
12
+ -- 2. HANDLE SPACE (Reserved Words): Mapping human logic to content hashes.
13
+ -- 3. VERSION SPACE (Temporal Evolution): Tracking state transitions via hash history.
14
+ --
15
+ -- TURING MACHINE ANALOGY (The Infinitely Long Tape):
16
+ -- The `card` table stores content blobs with unique identities, emulating the
17
+ -- "Infinitely Long Tape" of the Turing Machine formalism. By using relational
18
+ -- queries, this tape can be dynamically constructed and traversed for different
19
+ -- DSLs, providing a flexible substrate for practically all computable languages.
20
+ --
21
+ -- By using hash values as the universal primitives across content, handles, and
22
+ -- time, we create a "Wordless Book" — a minimal substrate capable of seeding any
23
+ -- domain-specific knowledge system without requiring schema changes.
24
+ --
25
+ -- Monadic Mapping (See: Monadic Justification for Schema Design.md):
26
+ -- 1. Card = Monad (Perception/State/Exponent) - Intrinsic Identity
27
+ -- 2. Handle = Registry (Appetition/Reader/Sum) - Mutable Reference
28
+ -- 3. Version = History (Harmony/Writer/Product) - Coordinated Evolution
29
+ --
30
+ -- Version: 3.0.2 (Turing Tape Refinement)
31
+ -- Last Updated: 2025-12-20
32
+ -- ═══════════════════════════════════════════════════════════════════════════════
33
+
34
+
35
+ -- ═══════════════════════════════════════════════════════════════════════════════
36
+ -- LAYER 1: CORE CONTENT-ADDRESSABLE STORAGE (The Monad / Exponent)
37
+ -- ═══════════════════════════════════════════════════════════════════════════════
38
+ -- The fundamental MCard storage: content-addressed by cryptographic hash.
39
+ -- "Each Monad ... mirrors the universe"
40
+
41
+ -- @table card
42
+ -- @description Core content-addressable storage table (Monad/State)
43
+ -- @column hash - SHA-256 hash of content (primary key)
44
+ -- @column content - The actual content (BLOB for binary safety)
45
+ -- @column g_time - Generation timestamp (ISO 8601)
46
+ CREATE TABLE IF NOT EXISTS card (
47
+ hash TEXT PRIMARY KEY,
48
+ content BLOB NOT NULL,
49
+ g_time TEXT NOT NULL
50
+ );
51
+
52
+
53
+ -- ═══════════════════════════════════════════════════════════════════════════════
54
+ -- LAYER 2: HANDLE SYSTEM (Appetition / Sum)
55
+ -- ═══════════════════════════════════════════════════════════════════════════════
56
+ -- The mutable pointer that "desires" to reference new content.
57
+ -- "Appetition: the tendency to move to new states"
58
+
59
+ -- @table handle_registry (Monadic Role: Handle)
60
+ -- @description Maps human-readable handles to current content hashes
61
+ -- @column handle - UTF-8 handle name (primary key)
62
+ -- @column current_hash - FK to card.hash of current version
63
+ -- @column created_at - When handle was first created
64
+ -- @column updated_at - When handle was last updated
65
+ CREATE TABLE IF NOT EXISTS handle_registry (
66
+ handle TEXT PRIMARY KEY,
67
+ current_hash TEXT NOT NULL,
68
+ created_at TEXT NOT NULL,
69
+ updated_at TEXT NOT NULL,
70
+ FOREIGN KEY (current_hash) REFERENCES card(hash)
71
+ );
72
+
73
+ -- @index idx_handle_current_hash
74
+ -- @description Efficient reverse lookup from hash to handles
75
+ CREATE INDEX IF NOT EXISTS idx_handle_current_hash
76
+ ON handle_registry(current_hash);
77
+
78
+ -- @table handle_history (Monadic Role: Version / Product)
79
+ -- @description Audit trail for handle pointer changes (Pre-Established Harmony)
80
+ -- @column id - Auto-increment primary key
81
+ -- @column handle - The handle that was updated
82
+ -- @column previous_hash - Hash it pointed to before update
83
+ -- @column changed_at - When the change occurred
84
+ CREATE TABLE IF NOT EXISTS handle_history (
85
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
86
+ handle TEXT NOT NULL,
87
+ previous_hash TEXT NOT NULL,
88
+ changed_at TEXT NOT NULL,
89
+ FOREIGN KEY (handle) REFERENCES handle_registry(handle),
90
+ FOREIGN KEY (previous_hash) REFERENCES card(hash)
91
+ );
92
+
93
+ -- @index idx_handle_history_handle
94
+ -- @description Efficient lookup of history by handle
95
+ CREATE INDEX IF NOT EXISTS idx_handle_history_handle
96
+ ON handle_history(handle);
97
+
98
+
99
+ -- ═══════════════════════════════════════════════════════════════════════════════
100
+ -- LEGACY SUPPORT: FTS5 Documents Table
101
+ -- ═══════════════════════════════════════════════════════════════════════════════
102
+ -- KEPT FOR BACKWARD COMPATIBILITY with existing codebase.
103
+ -- New implementations should use mcard_vector_schema.sql -> mcard_fts
104
+
105
+ -- @virtual_table documents
106
+ -- @description Legacy FTS table for backward compatibility
107
+ -- @note Synced with card table via triggers
108
+ CREATE VIRTUAL TABLE IF NOT EXISTS documents USING fts5(content);
109
+
110
+
111
+ -- ═══════════════════════════════════════════════════════════════════════════════
112
+ -- SCHEMA METADATA
113
+ -- ═══════════════════════════════════════════════════════════════════════════════
114
+
115
+ -- @table schema_version
116
+ -- @description Tracks schema version for migrations
117
+ CREATE TABLE IF NOT EXISTS schema_version (
118
+ version TEXT PRIMARY KEY,
119
+ applied_at TEXT NOT NULL,
120
+ description TEXT
121
+ );
122
+
123
+ -- Insert current schema version
124
+ INSERT OR IGNORE INTO schema_version (version, applied_at, description)
125
+ VALUES ('3.0.0', datetime('now'), 'Monadic Core Schema (split vectors to mcard_vector_schema.sql)');
@@ -0,0 +1,283 @@
1
+ -- ═══════════════════════════════════════════════════════════════════════════════
2
+ -- MCard Vector Database Schema (mcard_vectors.db)
3
+ -- ═══════════════════════════════════════════════════════════════════════════════
4
+ --
5
+ -- This schema defines the structure for "Secondary Qualities" (Extrinsic Embeddings).
6
+ -- It is separated from the core mcard.db (Monadic Intrinsic Properties) to ensure:
7
+ -- 1. Separation of Concerns (Intrinsic vs Extrinsic)
8
+ -- 2. Linearity (Vectors are observer-dependent and large)
9
+ -- 3. Upgradability (Embedding models change frequently)
10
+ --
11
+ -- See: Monadic Justification for Schema Design.md
12
+ -- ═══════════════════════════════════════════════════════════════════════════════
13
+
14
+ -- ═══════════════════════════════════════════════════════════════════════════════
15
+ -- LAYER 3: VECTOR STORAGE (Semantic Embeddings)
16
+ -- ═══════════════════════════════════════════════════════════════════════════════
17
+ -- Storage for vector embeddings enabling semantic search.
18
+ -- Links to content via hash for content-addressing.
19
+
20
+ -- @table mcard_vector_metadata
21
+ -- @description Metadata for stored embeddings
22
+ -- @column id - Auto-increment primary key
23
+ -- @column hash - FK to card.hash
24
+ -- @column model_name - Embedding model used (e.g., "nomic-embed-text")
25
+ -- @column dimensions - Vector dimensions
26
+ -- @column chunk_index - Index for chunked documents (0 = first/whole)
27
+ -- @column chunk_total - Total chunks for this document
28
+ -- @column chunk_text - Preview text for this chunk
29
+ -- @column created_at - When embedding was created
30
+ CREATE TABLE IF NOT EXISTS mcard_vector_metadata (
31
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
32
+ hash TEXT NOT NULL,
33
+ model_name TEXT NOT NULL,
34
+ dimensions INTEGER NOT NULL,
35
+ chunk_index INTEGER DEFAULT 0,
36
+ chunk_total INTEGER DEFAULT 1,
37
+ chunk_text TEXT,
38
+ created_at TEXT NOT NULL,
39
+ UNIQUE(hash, chunk_index)
40
+ );
41
+
42
+ -- @index idx_vector_metadata_hash
43
+ -- @description Efficient lookup of embeddings by content hash
44
+ CREATE INDEX IF NOT EXISTS idx_vector_metadata_hash
45
+ ON mcard_vector_metadata(hash);
46
+
47
+ -- @table mcard_embeddings
48
+ -- @description Fallback embedding storage when sqlite-vec is unavailable
49
+ -- @column id - Auto-increment primary key
50
+ -- @column metadata_id - FK to mcard_vector_metadata.id
51
+ -- @column embedding - Serialized float32 vector as BLOB
52
+ CREATE TABLE IF NOT EXISTS mcard_embeddings (
53
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
54
+ metadata_id INTEGER NOT NULL,
55
+ embedding BLOB NOT NULL,
56
+ UNIQUE(metadata_id),
57
+ FOREIGN KEY (metadata_id) REFERENCES mcard_vector_metadata(id)
58
+ );
59
+
60
+ -- @virtual_table mcard_fts
61
+ -- @description Full-text search for hybrid retrieval
62
+ -- @note Uses Porter stemming with Unicode support
63
+ CREATE VIRTUAL TABLE IF NOT EXISTS mcard_fts USING fts5(
64
+ hash,
65
+ content,
66
+ tokenize='porter unicode61'
67
+ );
68
+
69
+ -- Note: sqlite-vec virtual table is created dynamically with dimensions:
70
+ -- CREATE VIRTUAL TABLE IF NOT EXISTS mcard_vec USING vec0(
71
+ -- metadata_id INTEGER PRIMARY KEY,
72
+ -- embedding float[${dimensions}]
73
+ -- );
74
+
75
+
76
+ -- ═══════════════════════════════════════════════════════════════════════════════
77
+ -- LAYER 4: SEMANTIC VERSIONING (Handle-Vector Bridge)
78
+ -- ═══════════════════════════════════════════════════════════════════════════════
79
+ -- Bridges handles to vector embeddings for semantic version comparison.
80
+ -- Enables measuring semantic drift between document versions.
81
+
82
+ -- @table handle_version_vectors
83
+ -- @description Links handle versions to their semantic embeddings
84
+ -- @column id - Auto-increment primary key
85
+ -- @column handle - FK to handle_registry.handle
86
+ -- @column hash - FK to card.hash (this version)
87
+ -- @column parent_hash - FK to card.hash (previous version)
88
+ -- @column version_order - 0 = current, 1 = previous, etc.
89
+ -- @column is_current - TRUE if this is the current version
90
+ -- @column embedding_id - FK to mcard_vector_metadata.id
91
+ -- @column semantic_delta_from_parent - Cosine similarity to parent [-1, 1]
92
+ -- @column upgrade_type - Classification: 'trivial' | 'minor' | 'major' | 'breaking'
93
+ -- @column created_at - When this version was linked
94
+ CREATE TABLE IF NOT EXISTS handle_version_vectors (
95
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
96
+ handle TEXT NOT NULL,
97
+ hash TEXT NOT NULL,
98
+ parent_hash TEXT,
99
+ version_order INTEGER NOT NULL,
100
+ is_current BOOLEAN DEFAULT FALSE,
101
+ embedding_id INTEGER,
102
+ semantic_delta_from_parent REAL,
103
+ upgrade_type TEXT,
104
+ created_at TEXT NOT NULL,
105
+ UNIQUE(handle, hash),
106
+ FOREIGN KEY (embedding_id) REFERENCES mcard_vector_metadata(id)
107
+ );
108
+
109
+ -- @index idx_hvv_handle
110
+ -- @description Efficient lookup of versions by handle
111
+ CREATE INDEX IF NOT EXISTS idx_hvv_handle
112
+ ON handle_version_vectors(handle);
113
+
114
+ -- @index idx_hvv_hash
115
+ -- @description Efficient lookup of versions by hash
116
+ CREATE INDEX IF NOT EXISTS idx_hvv_hash
117
+ ON handle_version_vectors(hash);
118
+
119
+ -- @index idx_hvv_current
120
+ -- @description Efficient lookup of current versions
121
+ CREATE INDEX IF NOT EXISTS idx_hvv_current
122
+ ON handle_version_vectors(is_current);
123
+
124
+ -- @index idx_hvv_parent
125
+ -- @description Efficient lookup by parent hash
126
+ CREATE INDEX IF NOT EXISTS idx_hvv_parent
127
+ ON handle_version_vectors(parent_hash);
128
+
129
+ -- @table version_similarity_cache
130
+ -- @description Precomputed pairwise similarities for performance
131
+ -- @column id - Auto-increment primary key
132
+ -- @column handle - Handle these versions belong to
133
+ -- @column hash_a - First version hash
134
+ -- @column hash_b - Second version hash
135
+ -- @column similarity_score - Cosine similarity [-1, 1]
136
+ -- @column distance_euclidean - L2 distance [0, ∞)
137
+ -- @column computed_at - When similarity was computed
138
+ CREATE TABLE IF NOT EXISTS version_similarity_cache (
139
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
140
+ handle TEXT NOT NULL,
141
+ hash_a TEXT NOT NULL,
142
+ hash_b TEXT NOT NULL,
143
+ similarity_score REAL NOT NULL,
144
+ distance_euclidean REAL,
145
+ computed_at TEXT NOT NULL,
146
+ UNIQUE(handle, hash_a, hash_b)
147
+ );
148
+
149
+ -- @index idx_vsc_handle
150
+ -- @description Efficient lookup of cached similarities by handle
151
+ CREATE INDEX IF NOT EXISTS idx_vsc_handle
152
+ ON version_similarity_cache(handle);
153
+
154
+
155
+ -- ═══════════════════════════════════════════════════════════════════════════════
156
+ -- LAYER 5: KNOWLEDGE GRAPH (GraphRAG)
157
+ -- ═══════════════════════════════════════════════════════════════════════════════
158
+ -- Storage for extracted knowledge graph entities and relationships.
159
+
160
+ -- @table graph_entities
161
+ -- @description Nodes in the knowledge graph
162
+ -- @column id - Auto-increment primary key
163
+ -- @column name - Entity name
164
+ -- @column type - Entity type (e.g., "Person", "Organization")
165
+ -- @column description - Optional description
166
+ -- @column source_hash - FK to card.hash where entity was extracted
167
+ -- @column embedding - Optional entity embedding
168
+ -- @column created_at - When entity was created
169
+ CREATE TABLE IF NOT EXISTS graph_entities (
170
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
171
+ name TEXT NOT NULL,
172
+ type TEXT NOT NULL,
173
+ description TEXT,
174
+ source_hash TEXT NOT NULL,
175
+ embedding BLOB,
176
+ created_at TEXT NOT NULL,
177
+ UNIQUE(name, type, source_hash)
178
+ );
179
+
180
+ -- @index idx_entity_name
181
+ -- @description Efficient entity lookup by name
182
+ CREATE INDEX IF NOT EXISTS idx_entity_name
183
+ ON graph_entities(name);
184
+
185
+ -- @index idx_entity_type
186
+ -- @description Efficient entity lookup by type
187
+ CREATE INDEX IF NOT EXISTS idx_entity_type
188
+ ON graph_entities(type);
189
+
190
+ -- @index idx_entity_source
191
+ -- @description Efficient entity lookup by source document
192
+ CREATE INDEX IF NOT EXISTS idx_entity_source
193
+ ON graph_entities(source_hash);
194
+
195
+ -- @table graph_relationships
196
+ -- @description Edges in the knowledge graph
197
+ -- @column id - Auto-increment primary key
198
+ -- @column source_entity_id - FK to graph_entities.id (from)
199
+ -- @column target_entity_id - FK to graph_entities.id (to)
200
+ -- @column relationship - Relationship type/label
201
+ -- @column description - Optional description
202
+ -- @column weight - Relationship strength
203
+ -- @column source_hash - FK to card.hash where relationship was extracted
204
+ -- @column created_at - When relationship was created
205
+ CREATE TABLE IF NOT EXISTS graph_relationships (
206
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
207
+ source_entity_id INTEGER NOT NULL,
208
+ target_entity_id INTEGER NOT NULL,
209
+ relationship TEXT NOT NULL,
210
+ description TEXT,
211
+ weight REAL DEFAULT 1.0,
212
+ source_hash TEXT NOT NULL,
213
+ created_at TEXT NOT NULL,
214
+ UNIQUE(source_entity_id, target_entity_id, relationship, source_hash),
215
+ FOREIGN KEY (source_entity_id) REFERENCES graph_entities(id),
216
+ FOREIGN KEY (target_entity_id) REFERENCES graph_entities(id)
217
+ );
218
+
219
+ -- @index idx_rel_source
220
+ -- @description Efficient lookup of relationships by source entity
221
+ CREATE INDEX IF NOT EXISTS idx_rel_source
222
+ ON graph_relationships(source_entity_id);
223
+
224
+ -- @index idx_rel_target
225
+ -- @description Efficient lookup of relationships by target entity
226
+ CREATE INDEX IF NOT EXISTS idx_rel_target
227
+ ON graph_relationships(target_entity_id);
228
+
229
+ -- @table graph_communities
230
+ -- @description Hierarchical community summaries (GraphRAG)
231
+ -- @column id - Auto-increment primary key
232
+ -- @column level - Hierarchy level (0 = leaf)
233
+ -- @column title - Community title
234
+ -- @column summary - AI-generated summary
235
+ -- @column embedding - Community embedding
236
+ -- @column member_entity_ids - JSON array of entity IDs
237
+ -- @column parent_community_id - FK to parent community
238
+ -- @column created_at - When community was created
239
+ CREATE TABLE IF NOT EXISTS graph_communities (
240
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
241
+ level INTEGER NOT NULL DEFAULT 0,
242
+ title TEXT,
243
+ summary TEXT NOT NULL,
244
+ embedding BLOB,
245
+ member_entity_ids TEXT,
246
+ parent_community_id INTEGER,
247
+ created_at TEXT NOT NULL,
248
+ FOREIGN KEY (parent_community_id) REFERENCES graph_communities(id)
249
+ );
250
+
251
+ -- @index idx_community_level
252
+ -- @description Efficient lookup of communities by level
253
+ CREATE INDEX IF NOT EXISTS idx_community_level
254
+ ON graph_communities(level);
255
+
256
+ -- @table graph_extractions
257
+ -- @description Tracks which documents have been processed for entity extraction
258
+ -- @column hash - FK to card.hash (primary key)
259
+ -- @column entity_count - Number of entities extracted
260
+ -- @column relationship_count - Number of relationships extracted
261
+ -- @column extracted_at - When extraction was performed
262
+ CREATE TABLE IF NOT EXISTS graph_extractions (
263
+ hash TEXT PRIMARY KEY,
264
+ entity_count INTEGER DEFAULT 0,
265
+ relationship_count INTEGER DEFAULT 0,
266
+ extracted_at TEXT NOT NULL
267
+ );
268
+
269
+ -- ═══════════════════════════════════════════════════════════════════════════════
270
+ -- SCHEMA METADATA (Vector DB)
271
+ -- ═══════════════════════════════════════════════════════════════════════════════
272
+
273
+ -- @table schema_version
274
+ -- @description Tracks schema version for migrations
275
+ CREATE TABLE IF NOT EXISTS vector_schema_version (
276
+ version TEXT PRIMARY KEY,
277
+ applied_at TEXT NOT NULL,
278
+ description TEXT
279
+ );
280
+
281
+ -- Insert current schema version
282
+ INSERT OR IGNORE INTO vector_schema_version (version, applied_at, description)
283
+ VALUES ('1.0.0', datetime('now'), 'Initial MCard Vector Schema');