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 +10 -0
- package/dist/ptr/node/clm/builtins/index.d.ts +4 -0
- package/dist/ptr/node/clm/builtins/index.d.ts.map +1 -1
- package/dist/ptr/node/clm/builtins/index.js +14 -0
- package/dist/ptr/node/clm/builtins/index.js.map +1 -1
- package/dist/ptr/node/clm/builtins/websocket-server.d.ts +34 -0
- package/dist/ptr/node/clm/builtins/websocket-server.d.ts.map +1 -0
- package/dist/ptr/node/clm/builtins/websocket-server.js +214 -0
- package/dist/ptr/node/clm/builtins/websocket-server.js.map +1 -0
- package/dist/ptr/node/clm/index.d.ts +2 -1
- package/dist/ptr/node/clm/index.d.ts.map +1 -1
- package/dist/ptr/node/clm/index.js +2 -1
- package/dist/ptr/node/clm/index.js.map +1 -1
- package/dist/ptr/node/clm/runner.d.ts.map +1 -1
- package/dist/ptr/node/clm/runner.js +12 -4
- package/dist/ptr/node/clm/runner.js.map +1 -1
- package/package.json +5 -3
- package/schema/mcard_schema.sql +125 -0
- package/schema/mcard_vector_schema.sql +283 -0
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;
|
|
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":"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,qDAAqD;AACrD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC5B,eAAe;IACf,kBAAkB;CACrB,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;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAY,EAAE,SAAkB;IACrE,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,kBAAkB,CAAC;AACrC,CAAC"}
|
|
@@ -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":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AA0B7B;;GAEG;AACH,SAAS,WAAW,CAAC,IAAY;IAC7B,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACpG,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,IAAY;IAC9B,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACpG,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,MAA6B,EAC7B,OAA4B,EAC5B,UAAkB;IAElB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC;IAExD,uBAAuB;IACvB,IAAI,WAAW,GAAG,UAAU,CAAC;IAC7B,OAAO,WAAW,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACrD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM;QACV,CAAC;QACD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,WAAW,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,IAAI,MAAM,CAAC,CAAC;IAExE,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtB,2BAA2B;QAC3B,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,kCAAkC;gBAC3C,GAAG;gBACH,IAAI;gBACJ,GAAG,EAAE,QAAQ,IAAI,IAAI,IAAI,GAAG;gBAC5B,MAAM,EAAE,iBAAiB;aAC5B,CAAC;QACN,CAAC;QAED,iCAAiC;QACjC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA6Be,IAAI,MAAM,IAAI;mDACP,IAAI,IAAI,IAAI;;;;;;;;CAQ9D,CAAC;QAEM,IAAI,CAAC;YACD,yBAAyB;YACzB,IAAI,SAAS,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC;gBACD,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS,GAAG,QAAQ,CAAC;YACzB,CAAC;YAED,+DAA+D;YAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,QAAQ;aAClB,CAAC,CAAC;YAEH,KAAK,CAAC,KAAK,EAAE,CAAC;YAEd,WAAW;YACX,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAE7C,2BAA2B;YAC3B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAExD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,wCAAwC;oBACjD,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,IAAI;oBACJ,GAAG,EAAE,QAAQ,IAAI,IAAI,IAAI,GAAG;oBAC5B,MAAM,EAAE,SAAS;iBACpB,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qGAAqG,EAAE,CAAC;YAC5I,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,KAAK,EAAE,EAAE,CAAC;QACzE,CAAC;IACL,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACD,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACrE,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC;QACf,CAAC;QAED,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,SAAS;YAClB,GAAG;YACH,SAAS,EAAE,QAAQ;YACnB,IAAI;YACJ,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI;YAC/C,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SAC5C,CAAC;IACN,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,0CAA0C;gBACnD,IAAI;gBACJ,MAAM,EAAE,SAAS;aACpB,CAAC;QACN,CAAC;QAED,IAAI,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAEvD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YAED,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,0BAA0B;gBACnC,GAAG;gBACH,IAAI;gBACJ,MAAM,EAAE,SAAS;aACpB,CAAC;QACN,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzB,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;gBACD,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,kCAAkC;oBAC3C,IAAI;oBACJ,MAAM,EAAE,SAAS;iBACpB,CAAC;YACN,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,KAAK,EAAE,EAAE,CAAC;QACxE,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,MAAM,EAAE,EAAE,CAAC;AAClE,CAAC"}
|
|
@@ -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,
|
|
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,
|
|
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;
|
|
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.
|
|
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');
|