@defai.digital/sqlite-adapter 13.3.0 → 13.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/semantic-store.d.ts +90 -0
- package/dist/semantic-store.d.ts.map +1 -0
- package/dist/semantic-store.js +448 -0
- package/dist/semantic-store.js.map +1 -0
- package/dist/trace-store.d.ts +32 -1
- package/dist/trace-store.d.ts.map +1 -1
- package/dist/trace-store.js +212 -5
- package/dist/trace-store.js.map +1 -1
- package/package.json +7 -6
package/dist/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ export { SqliteTraceStore, SqliteTraceStoreError, SqliteTraceStoreErrorCodes, cr
|
|
|
3
3
|
export { SQLiteFTSStore, FTSStoreError, FTSStoreErrorCodes, createSQLiteFTSStore, type FTSResult, type FTSSearchOptions, type FTSItem, } from './fts-store.js';
|
|
4
4
|
export { SqliteCheckpointStorage, SqliteCheckpointStoreError, SqliteCheckpointStoreErrorCodes, createSqliteCheckpointStorage, } from './checkpoint-store.js';
|
|
5
5
|
export { SqliteDeadLetterStorage, SqliteDeadLetterStoreError, SqliteDeadLetterStoreErrorCodes, createSqliteDeadLetterStorage, } from './dead-letter-store.js';
|
|
6
|
+
export { SqliteSemanticStore, SemanticStoreError, SemanticStoreErrorCodes, createSqliteSemanticStore, } from './semantic-store.js';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,OAAO,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,OAAO,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,4 +3,5 @@ export { SqliteTraceStore, SqliteTraceStoreError, SqliteTraceStoreErrorCodes, cr
|
|
|
3
3
|
export { SQLiteFTSStore, FTSStoreError, FTSStoreErrorCodes, createSQLiteFTSStore, } from './fts-store.js';
|
|
4
4
|
export { SqliteCheckpointStorage, SqliteCheckpointStoreError, SqliteCheckpointStoreErrorCodes, createSqliteCheckpointStorage, } from './checkpoint-store.js';
|
|
5
5
|
export { SqliteDeadLetterStorage, SqliteDeadLetterStoreError, SqliteDeadLetterStoreErrorCodes, createSqliteDeadLetterStorage, } from './dead-letter-store.js';
|
|
6
|
+
export { SqliteSemanticStore, SemanticStoreError, SemanticStoreErrorCodes, createSqliteSemanticStore, } from './semantic-store.js';
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,oBAAoB,GAIrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,oBAAoB,GAIrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite Semantic Store
|
|
3
|
+
*
|
|
4
|
+
* Provides semantic search with vector embeddings using SQLite.
|
|
5
|
+
* Stores embeddings as binary blobs for efficient storage.
|
|
6
|
+
*
|
|
7
|
+
* Invariants:
|
|
8
|
+
* - INV-SEM-001: Embeddings computed on store, cached until content changes
|
|
9
|
+
* - INV-SEM-002: Search returns results sorted by similarity descending
|
|
10
|
+
* - INV-SEM-003: Similarity scores normalized to 0-1 range
|
|
11
|
+
* - INV-SEM-004: Namespace isolation
|
|
12
|
+
*/
|
|
13
|
+
import type Database from 'better-sqlite3';
|
|
14
|
+
import type { SemanticItem, SemanticSearchRequest, SemanticSearchResponse, SemanticStoreRequest, SemanticStoreResponse, SemanticListRequest, SemanticListResponse, SemanticDeleteResponse } from '@defai.digital/contracts';
|
|
15
|
+
import type { SemanticStorePort, SemanticStoreStats } from '@defai.digital/semantic-context';
|
|
16
|
+
/**
|
|
17
|
+
* Error thrown by semantic store operations
|
|
18
|
+
*/
|
|
19
|
+
export declare class SemanticStoreError extends Error {
|
|
20
|
+
readonly code: string;
|
|
21
|
+
readonly details?: Record<string, unknown> | undefined;
|
|
22
|
+
constructor(code: string, message: string, details?: Record<string, unknown> | undefined);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Error codes for semantic store
|
|
26
|
+
*/
|
|
27
|
+
export declare const SemanticStoreErrorCodes: {
|
|
28
|
+
readonly STORE_ERROR: "SEMANTIC_STORE_ERROR";
|
|
29
|
+
readonly SEARCH_ERROR: "SEMANTIC_SEARCH_ERROR";
|
|
30
|
+
readonly DATABASE_ERROR: "SEMANTIC_DATABASE_ERROR";
|
|
31
|
+
readonly INVALID_TABLE_NAME: "SEMANTIC_INVALID_TABLE_NAME";
|
|
32
|
+
readonly DIMENSION_MISMATCH: "SEMANTIC_DIMENSION_MISMATCH";
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* SQLite Semantic Store implementation
|
|
36
|
+
*/
|
|
37
|
+
export declare class SqliteSemanticStore implements SemanticStorePort {
|
|
38
|
+
private readonly db;
|
|
39
|
+
private readonly tableName;
|
|
40
|
+
constructor(db: Database.Database, tableName?: string);
|
|
41
|
+
/**
|
|
42
|
+
* Initialize database schema
|
|
43
|
+
*/
|
|
44
|
+
private initialize;
|
|
45
|
+
/**
|
|
46
|
+
* Store item with embedding
|
|
47
|
+
* INV-SEM-001: Caches embedding until content changes
|
|
48
|
+
*/
|
|
49
|
+
store(request: SemanticStoreRequest): Promise<SemanticStoreResponse>;
|
|
50
|
+
/**
|
|
51
|
+
* Search by semantic similarity
|
|
52
|
+
* INV-SEM-002: Results sorted by similarity descending
|
|
53
|
+
* INV-SEM-003: Scores normalized to [0, 1]
|
|
54
|
+
* INV-SEM-004: Namespace isolation
|
|
55
|
+
*/
|
|
56
|
+
search(request: SemanticSearchRequest): Promise<SemanticSearchResponse>;
|
|
57
|
+
/**
|
|
58
|
+
* Get item by key
|
|
59
|
+
*/
|
|
60
|
+
get(key: string, namespace?: string): Promise<SemanticItem | null>;
|
|
61
|
+
/**
|
|
62
|
+
* List items
|
|
63
|
+
*/
|
|
64
|
+
list(request: SemanticListRequest): Promise<SemanticListResponse>;
|
|
65
|
+
/**
|
|
66
|
+
* Delete item
|
|
67
|
+
*/
|
|
68
|
+
delete(key: string, namespace?: string): Promise<SemanticDeleteResponse>;
|
|
69
|
+
/**
|
|
70
|
+
* Check if item exists
|
|
71
|
+
*/
|
|
72
|
+
exists(key: string, namespace?: string): Promise<boolean>;
|
|
73
|
+
/**
|
|
74
|
+
* Get statistics
|
|
75
|
+
*/
|
|
76
|
+
getStats(namespace?: string): Promise<SemanticStoreStats>;
|
|
77
|
+
/**
|
|
78
|
+
* Clear namespace
|
|
79
|
+
*/
|
|
80
|
+
clear(namespace?: string): Promise<number>;
|
|
81
|
+
/**
|
|
82
|
+
* Convert database row to SemanticItem
|
|
83
|
+
*/
|
|
84
|
+
private rowToItem;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Creates a SQLite semantic store
|
|
88
|
+
*/
|
|
89
|
+
export declare function createSqliteSemanticStore(db: Database.Database, tableName?: string): SqliteSemanticStore;
|
|
90
|
+
//# sourceMappingURL=semantic-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-store.d.ts","sourceRoot":"","sources":["../src/semantic-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAGzC;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAEzB,IAAI,EAAE,MAAM;aAEZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjC,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;CAM1B,CAAC;AAmEX;;GAEG;AACH,qBAAa,mBAAoB,YAAW,iBAAiB;IAC3D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAmB;IAY/D;;OAEG;IACH,OAAO,CAAC,UAAU;IAgClB;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAmE1E;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAwF7E;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAY,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAY3E;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwDvE;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAejF;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlE;;OAEG;IACG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2D/D;;OAEG;IACG,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAehD;;OAEG;IACH,OAAO,CAAC,SAAS;CA8BlB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,CAAC,EAAE,MAAM,GACjB,mBAAmB,CAErB"}
|
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite Semantic Store
|
|
3
|
+
*
|
|
4
|
+
* Provides semantic search with vector embeddings using SQLite.
|
|
5
|
+
* Stores embeddings as binary blobs for efficient storage.
|
|
6
|
+
*
|
|
7
|
+
* Invariants:
|
|
8
|
+
* - INV-SEM-001: Embeddings computed on store, cached until content changes
|
|
9
|
+
* - INV-SEM-002: Search returns results sorted by similarity descending
|
|
10
|
+
* - INV-SEM-003: Similarity scores normalized to 0-1 range
|
|
11
|
+
* - INV-SEM-004: Namespace isolation
|
|
12
|
+
*/
|
|
13
|
+
import { isValidTableName, invalidTableNameMessage } from './validation.js';
|
|
14
|
+
/**
|
|
15
|
+
* Error thrown by semantic store operations
|
|
16
|
+
*/
|
|
17
|
+
export class SemanticStoreError extends Error {
|
|
18
|
+
code;
|
|
19
|
+
details;
|
|
20
|
+
constructor(code, message, details) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.code = code;
|
|
23
|
+
this.details = details;
|
|
24
|
+
this.name = 'SemanticStoreError';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Error codes for semantic store
|
|
29
|
+
*/
|
|
30
|
+
export const SemanticStoreErrorCodes = {
|
|
31
|
+
STORE_ERROR: 'SEMANTIC_STORE_ERROR',
|
|
32
|
+
SEARCH_ERROR: 'SEMANTIC_SEARCH_ERROR',
|
|
33
|
+
DATABASE_ERROR: 'SEMANTIC_DATABASE_ERROR',
|
|
34
|
+
INVALID_TABLE_NAME: 'SEMANTIC_INVALID_TABLE_NAME',
|
|
35
|
+
DIMENSION_MISMATCH: 'SEMANTIC_DIMENSION_MISMATCH',
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Convert embedding array to buffer for storage
|
|
39
|
+
*/
|
|
40
|
+
function embeddingToBuffer(embedding) {
|
|
41
|
+
const buffer = Buffer.alloc(embedding.length * 8);
|
|
42
|
+
for (let i = 0; i < embedding.length; i++) {
|
|
43
|
+
buffer.writeDoubleLE(embedding[i], i * 8);
|
|
44
|
+
}
|
|
45
|
+
return buffer;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Convert buffer back to embedding array
|
|
49
|
+
*/
|
|
50
|
+
function bufferToEmbedding(buffer) {
|
|
51
|
+
const embedding = [];
|
|
52
|
+
for (let i = 0; i < buffer.length; i += 8) {
|
|
53
|
+
embedding.push(buffer.readDoubleLE(i));
|
|
54
|
+
}
|
|
55
|
+
return embedding;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Compute cosine similarity between two embeddings
|
|
59
|
+
* INV-SEM-003: Returns normalized score in [0, 1]
|
|
60
|
+
*/
|
|
61
|
+
function cosineSimilarity(a, b) {
|
|
62
|
+
if (a.length !== b.length)
|
|
63
|
+
return 0;
|
|
64
|
+
if (a.length === 0)
|
|
65
|
+
return 0;
|
|
66
|
+
let dot = 0;
|
|
67
|
+
let normA = 0;
|
|
68
|
+
let normB = 0;
|
|
69
|
+
for (let i = 0; i < a.length; i++) {
|
|
70
|
+
dot += a[i] * b[i];
|
|
71
|
+
normA += a[i] * a[i];
|
|
72
|
+
normB += b[i] * b[i];
|
|
73
|
+
}
|
|
74
|
+
const denom = Math.sqrt(normA) * Math.sqrt(normB);
|
|
75
|
+
if (denom === 0)
|
|
76
|
+
return 0;
|
|
77
|
+
// Normalize from [-1, 1] to [0, 1]
|
|
78
|
+
return (dot / denom + 1) / 2;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* SQLite Semantic Store implementation
|
|
82
|
+
*/
|
|
83
|
+
export class SqliteSemanticStore {
|
|
84
|
+
db;
|
|
85
|
+
tableName;
|
|
86
|
+
constructor(db, tableName = 'semantic_items') {
|
|
87
|
+
if (!isValidTableName(tableName)) {
|
|
88
|
+
throw new SemanticStoreError(SemanticStoreErrorCodes.INVALID_TABLE_NAME, invalidTableNameMessage(tableName));
|
|
89
|
+
}
|
|
90
|
+
this.db = db;
|
|
91
|
+
this.tableName = tableName;
|
|
92
|
+
this.initialize();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Initialize database schema
|
|
96
|
+
*/
|
|
97
|
+
initialize() {
|
|
98
|
+
this.db.exec(`
|
|
99
|
+
CREATE TABLE IF NOT EXISTS ${this.tableName} (
|
|
100
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
101
|
+
key TEXT NOT NULL,
|
|
102
|
+
namespace TEXT NOT NULL DEFAULT 'default',
|
|
103
|
+
content TEXT NOT NULL,
|
|
104
|
+
embedding BLOB,
|
|
105
|
+
embedding_dimension INTEGER,
|
|
106
|
+
embedding_model TEXT,
|
|
107
|
+
content_hash TEXT,
|
|
108
|
+
tags TEXT,
|
|
109
|
+
metadata TEXT,
|
|
110
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
111
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
112
|
+
UNIQUE(key, namespace)
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
CREATE INDEX IF NOT EXISTS idx_${this.tableName}_namespace
|
|
116
|
+
ON ${this.tableName}(namespace);
|
|
117
|
+
|
|
118
|
+
CREATE INDEX IF NOT EXISTS idx_${this.tableName}_content_hash
|
|
119
|
+
ON ${this.tableName}(content_hash);
|
|
120
|
+
|
|
121
|
+
CREATE INDEX IF NOT EXISTS idx_${this.tableName}_created_at
|
|
122
|
+
ON ${this.tableName}(created_at DESC);
|
|
123
|
+
|
|
124
|
+
CREATE INDEX IF NOT EXISTS idx_${this.tableName}_dimension
|
|
125
|
+
ON ${this.tableName}(embedding_dimension);
|
|
126
|
+
`);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Store item with embedding
|
|
130
|
+
* INV-SEM-001: Caches embedding until content changes
|
|
131
|
+
*/
|
|
132
|
+
async store(request) {
|
|
133
|
+
const namespace = request.namespace ?? 'default';
|
|
134
|
+
const tagsStr = request.tags?.join(',') ?? null;
|
|
135
|
+
const metadataStr = request.metadata ? JSON.stringify(request.metadata) : null;
|
|
136
|
+
const embeddingBuffer = request.embedding ? embeddingToBuffer(request.embedding) : null;
|
|
137
|
+
const embeddingDimension = request.embedding?.length ?? null;
|
|
138
|
+
try {
|
|
139
|
+
// Check if item exists
|
|
140
|
+
const existingStmt = this.db.prepare(`
|
|
141
|
+
SELECT id, created_at FROM ${this.tableName}
|
|
142
|
+
WHERE key = ? AND namespace = ?
|
|
143
|
+
`);
|
|
144
|
+
const existing = existingStmt.get(request.key, namespace);
|
|
145
|
+
const stmt = this.db.prepare(`
|
|
146
|
+
INSERT INTO ${this.tableName} (
|
|
147
|
+
key, namespace, content, embedding, embedding_dimension,
|
|
148
|
+
embedding_model, content_hash, tags, metadata
|
|
149
|
+
)
|
|
150
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
151
|
+
ON CONFLICT(key, namespace) DO UPDATE SET
|
|
152
|
+
content = excluded.content,
|
|
153
|
+
embedding = excluded.embedding,
|
|
154
|
+
embedding_dimension = excluded.embedding_dimension,
|
|
155
|
+
embedding_model = excluded.embedding_model,
|
|
156
|
+
content_hash = excluded.content_hash,
|
|
157
|
+
tags = excluded.tags,
|
|
158
|
+
metadata = excluded.metadata,
|
|
159
|
+
updated_at = datetime('now')
|
|
160
|
+
`);
|
|
161
|
+
stmt.run(request.key, namespace, request.content, embeddingBuffer, embeddingDimension, null, // embedding model not tracked in request
|
|
162
|
+
null, // content hash computed elsewhere
|
|
163
|
+
tagsStr, metadataStr);
|
|
164
|
+
// Get the stored item
|
|
165
|
+
const itemStmt = this.db.prepare(`
|
|
166
|
+
SELECT * FROM ${this.tableName}
|
|
167
|
+
WHERE key = ? AND namespace = ?
|
|
168
|
+
`);
|
|
169
|
+
const row = itemStmt.get(request.key, namespace);
|
|
170
|
+
const item = this.rowToItem(row, false);
|
|
171
|
+
return {
|
|
172
|
+
success: true,
|
|
173
|
+
item,
|
|
174
|
+
created: !existing,
|
|
175
|
+
embeddingComputed: false, // SQLite adapter doesn't compute embeddings
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
throw new SemanticStoreError(SemanticStoreErrorCodes.STORE_ERROR, `Failed to store item: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Search by semantic similarity
|
|
184
|
+
* INV-SEM-002: Results sorted by similarity descending
|
|
185
|
+
* INV-SEM-003: Scores normalized to [0, 1]
|
|
186
|
+
* INV-SEM-004: Namespace isolation
|
|
187
|
+
*/
|
|
188
|
+
async search(request) {
|
|
189
|
+
const startTime = Date.now();
|
|
190
|
+
try {
|
|
191
|
+
// Build query
|
|
192
|
+
let sql = `SELECT * FROM ${this.tableName} WHERE embedding IS NOT NULL`;
|
|
193
|
+
const params = [];
|
|
194
|
+
// INV-SEM-004: Namespace isolation
|
|
195
|
+
if (request.namespace) {
|
|
196
|
+
sql += ` AND namespace = ?`;
|
|
197
|
+
params.push(request.namespace);
|
|
198
|
+
}
|
|
199
|
+
// Tag filtering
|
|
200
|
+
if (request.filterTags && request.filterTags.length > 0) {
|
|
201
|
+
for (const tag of request.filterTags) {
|
|
202
|
+
sql += ` AND tags LIKE ?`;
|
|
203
|
+
params.push(`%${tag}%`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const stmt = this.db.prepare(sql);
|
|
207
|
+
const rows = stmt.all(...params);
|
|
208
|
+
// SQLite adapter doesn't compute embeddings, so semantic search requires
|
|
209
|
+
// external embedding computation. For now, we do a simple content-based filter.
|
|
210
|
+
// The request type doesn't include queryEmbedding - that would be computed
|
|
211
|
+
// by a higher-level manager using an embedding service.
|
|
212
|
+
// Return empty results indicating semantic search is not available in this adapter.
|
|
213
|
+
const supportsSemanticSearch = false; // Would need query embedding support
|
|
214
|
+
if (!supportsSemanticSearch) {
|
|
215
|
+
return {
|
|
216
|
+
results: [],
|
|
217
|
+
totalMatches: 0,
|
|
218
|
+
query: request.query,
|
|
219
|
+
namespace: request.namespace,
|
|
220
|
+
durationMs: Date.now() - startTime,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
// Below code is unreachable until semantic search is properly implemented
|
|
224
|
+
// with embedding service integration
|
|
225
|
+
const queryEmbedding = [];
|
|
226
|
+
const minSimilarity = request.minSimilarity;
|
|
227
|
+
const topK = request.topK ?? 10;
|
|
228
|
+
const scored = rows
|
|
229
|
+
.map((row) => {
|
|
230
|
+
const embedding = row.embedding ? bufferToEmbedding(row.embedding) : null;
|
|
231
|
+
if (!embedding)
|
|
232
|
+
return null;
|
|
233
|
+
const similarity = cosineSimilarity(queryEmbedding, embedding);
|
|
234
|
+
return { row, similarity };
|
|
235
|
+
})
|
|
236
|
+
.filter((s) => s !== null && s.similarity >= minSimilarity);
|
|
237
|
+
// INV-SEM-002: Sort by similarity descending
|
|
238
|
+
scored.sort((a, b) => b.similarity - a.similarity);
|
|
239
|
+
// Take top K
|
|
240
|
+
const topResults = scored.slice(0, topK);
|
|
241
|
+
const results = topResults.map((s, index) => ({
|
|
242
|
+
item: this.rowToItem(s.row, request.includeEmbeddings ?? false),
|
|
243
|
+
similarity: s.similarity,
|
|
244
|
+
rank: index + 1,
|
|
245
|
+
snippet: s.row.content.slice(0, 200),
|
|
246
|
+
}));
|
|
247
|
+
return {
|
|
248
|
+
results,
|
|
249
|
+
totalMatches: scored.length,
|
|
250
|
+
query: request.query,
|
|
251
|
+
namespace: request.namespace,
|
|
252
|
+
durationMs: Date.now() - startTime,
|
|
253
|
+
queryEmbedding: request.includeEmbeddings ? queryEmbedding : undefined,
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
throw new SemanticStoreError(SemanticStoreErrorCodes.SEARCH_ERROR, `Search failed: ${error instanceof Error ? error.message : 'Unknown error'}`, { query: request.query });
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Get item by key
|
|
262
|
+
*/
|
|
263
|
+
async get(key, namespace = 'default') {
|
|
264
|
+
const stmt = this.db.prepare(`
|
|
265
|
+
SELECT * FROM ${this.tableName}
|
|
266
|
+
WHERE key = ? AND namespace = ?
|
|
267
|
+
`);
|
|
268
|
+
const row = stmt.get(key, namespace);
|
|
269
|
+
if (!row)
|
|
270
|
+
return null;
|
|
271
|
+
return this.rowToItem(row, true);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* List items
|
|
275
|
+
*/
|
|
276
|
+
async list(request) {
|
|
277
|
+
const namespace = request.namespace ?? 'default';
|
|
278
|
+
const limit = request.limit ?? 10;
|
|
279
|
+
const offset = request.offset ?? 0;
|
|
280
|
+
const orderBy = request.orderBy ?? 'createdAt';
|
|
281
|
+
const orderDir = request.orderDir ?? 'desc';
|
|
282
|
+
// Map orderBy to column name
|
|
283
|
+
const columnMap = {
|
|
284
|
+
createdAt: 'created_at',
|
|
285
|
+
updatedAt: 'updated_at',
|
|
286
|
+
key: 'key',
|
|
287
|
+
};
|
|
288
|
+
const column = columnMap[orderBy] ?? 'created_at';
|
|
289
|
+
const direction = orderDir === 'asc' ? 'ASC' : 'DESC';
|
|
290
|
+
let sql = `SELECT * FROM ${this.tableName} WHERE namespace = ?`;
|
|
291
|
+
const params = [namespace];
|
|
292
|
+
// Key prefix filter
|
|
293
|
+
if (request.keyPrefix) {
|
|
294
|
+
sql += ` AND key LIKE ?`;
|
|
295
|
+
params.push(`${request.keyPrefix}%`);
|
|
296
|
+
}
|
|
297
|
+
// Tag filter
|
|
298
|
+
if (request.filterTags && request.filterTags.length > 0) {
|
|
299
|
+
for (const tag of request.filterTags) {
|
|
300
|
+
sql += ` AND tags LIKE ?`;
|
|
301
|
+
params.push(`%${tag}%`);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
// Get total count
|
|
305
|
+
const countSql = sql.replace('SELECT *', 'SELECT COUNT(*) as count');
|
|
306
|
+
const countStmt = this.db.prepare(countSql);
|
|
307
|
+
const countRow = countStmt.get(...params);
|
|
308
|
+
const total = countRow.count;
|
|
309
|
+
// Add ordering and pagination
|
|
310
|
+
sql += ` ORDER BY ${column} ${direction} LIMIT ? OFFSET ?`;
|
|
311
|
+
params.push(limit, offset);
|
|
312
|
+
const stmt = this.db.prepare(sql);
|
|
313
|
+
const rows = stmt.all(...params);
|
|
314
|
+
const items = rows.map((row) => this.rowToItem(row, false));
|
|
315
|
+
return {
|
|
316
|
+
items,
|
|
317
|
+
total,
|
|
318
|
+
hasMore: offset + limit < total,
|
|
319
|
+
namespace,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Delete item
|
|
324
|
+
*/
|
|
325
|
+
async delete(key, namespace = 'default') {
|
|
326
|
+
const stmt = this.db.prepare(`
|
|
327
|
+
DELETE FROM ${this.tableName}
|
|
328
|
+
WHERE key = ? AND namespace = ?
|
|
329
|
+
`);
|
|
330
|
+
const result = stmt.run(key, namespace);
|
|
331
|
+
return {
|
|
332
|
+
deleted: result.changes > 0,
|
|
333
|
+
key,
|
|
334
|
+
namespace,
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Check if item exists
|
|
339
|
+
*/
|
|
340
|
+
async exists(key, namespace = 'default') {
|
|
341
|
+
const stmt = this.db.prepare(`
|
|
342
|
+
SELECT 1 FROM ${this.tableName}
|
|
343
|
+
WHERE key = ? AND namespace = ?
|
|
344
|
+
`);
|
|
345
|
+
const row = stmt.get(key, namespace);
|
|
346
|
+
return row !== undefined;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Get statistics
|
|
350
|
+
*/
|
|
351
|
+
async getStats(namespace) {
|
|
352
|
+
let sql = `
|
|
353
|
+
SELECT
|
|
354
|
+
COUNT(*) as total_items,
|
|
355
|
+
COUNT(embedding) as items_with_embeddings,
|
|
356
|
+
MIN(embedding_dimension) as min_dim,
|
|
357
|
+
MAX(embedding_dimension) as max_dim
|
|
358
|
+
FROM ${this.tableName}
|
|
359
|
+
`;
|
|
360
|
+
const params = [];
|
|
361
|
+
if (namespace) {
|
|
362
|
+
sql += ` WHERE namespace = ?`;
|
|
363
|
+
params.push(namespace);
|
|
364
|
+
}
|
|
365
|
+
const stmt = this.db.prepare(sql);
|
|
366
|
+
const row = stmt.get(...params);
|
|
367
|
+
// Get embedding model
|
|
368
|
+
const modelStmt = this.db.prepare(`
|
|
369
|
+
SELECT DISTINCT embedding_model FROM ${this.tableName}
|
|
370
|
+
WHERE embedding_model IS NOT NULL
|
|
371
|
+
${namespace ? 'AND namespace = ?' : ''}
|
|
372
|
+
LIMIT 1
|
|
373
|
+
`);
|
|
374
|
+
const modelRow = modelStmt.get(...params);
|
|
375
|
+
// Get namespaces if not filtering
|
|
376
|
+
let namespaces;
|
|
377
|
+
if (!namespace) {
|
|
378
|
+
const nsStmt = this.db.prepare(`
|
|
379
|
+
SELECT DISTINCT namespace FROM ${this.tableName}
|
|
380
|
+
`);
|
|
381
|
+
const nsRows = nsStmt.all();
|
|
382
|
+
namespaces = nsRows.map((r) => r.namespace);
|
|
383
|
+
}
|
|
384
|
+
const result = {
|
|
385
|
+
totalItems: row.total_items,
|
|
386
|
+
itemsWithEmbeddings: row.items_with_embeddings,
|
|
387
|
+
embeddingDimension: row.min_dim ?? null,
|
|
388
|
+
embeddingModel: modelRow?.embedding_model ?? null,
|
|
389
|
+
namespace: namespace ?? null,
|
|
390
|
+
};
|
|
391
|
+
// Only include namespaces if not filtering by specific namespace
|
|
392
|
+
if (!namespace && namespaces) {
|
|
393
|
+
result.namespaces = namespaces;
|
|
394
|
+
}
|
|
395
|
+
return result;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Clear namespace
|
|
399
|
+
*/
|
|
400
|
+
async clear(namespace) {
|
|
401
|
+
let sql = `DELETE FROM ${this.tableName}`;
|
|
402
|
+
const params = [];
|
|
403
|
+
if (namespace) {
|
|
404
|
+
sql += ` WHERE namespace = ?`;
|
|
405
|
+
params.push(namespace);
|
|
406
|
+
}
|
|
407
|
+
const stmt = this.db.prepare(sql);
|
|
408
|
+
const result = stmt.run(...params);
|
|
409
|
+
return result.changes;
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Convert database row to SemanticItem
|
|
413
|
+
*/
|
|
414
|
+
rowToItem(row, includeEmbedding) {
|
|
415
|
+
const item = {
|
|
416
|
+
key: row.key,
|
|
417
|
+
namespace: row.namespace,
|
|
418
|
+
content: row.content,
|
|
419
|
+
embeddingDimension: row.embedding_dimension ?? undefined,
|
|
420
|
+
embeddingModel: row.embedding_model ?? undefined,
|
|
421
|
+
contentHash: row.content_hash ?? undefined,
|
|
422
|
+
createdAt: row.created_at,
|
|
423
|
+
updatedAt: row.updated_at,
|
|
424
|
+
};
|
|
425
|
+
if (includeEmbedding && row.embedding) {
|
|
426
|
+
item.embedding = bufferToEmbedding(row.embedding);
|
|
427
|
+
}
|
|
428
|
+
if (row.tags) {
|
|
429
|
+
item.tags = row.tags.split(',').filter((t) => t.length > 0);
|
|
430
|
+
}
|
|
431
|
+
if (row.metadata) {
|
|
432
|
+
try {
|
|
433
|
+
item.metadata = JSON.parse(row.metadata);
|
|
434
|
+
}
|
|
435
|
+
catch {
|
|
436
|
+
// Ignore parsing errors
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
return item;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Creates a SQLite semantic store
|
|
444
|
+
*/
|
|
445
|
+
export function createSqliteSemanticStore(db, tableName) {
|
|
446
|
+
return new SqliteSemanticStore(db, tableName);
|
|
447
|
+
}
|
|
448
|
+
//# sourceMappingURL=semantic-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-store.js","sourceRoot":"","sources":["../src/semantic-store.ts"],"names":[],"mappings":"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"}
|
package/dist/trace-store.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TraceEvent } from '@defai.digital/contracts';
|
|
2
|
-
import type { TraceStore, TraceSummary } from '@defai.digital/trace-domain';
|
|
2
|
+
import type { TraceStore, TraceSummary, TraceTreeNode } from '@defai.digital/trace-domain';
|
|
3
3
|
import type Database from 'better-sqlite3';
|
|
4
4
|
/**
|
|
5
5
|
* Error thrown by SQLite trace store operations
|
|
@@ -31,6 +31,10 @@ export declare class SqliteTraceStore implements TraceStore {
|
|
|
31
31
|
* Initializes the database schema
|
|
32
32
|
*/
|
|
33
33
|
private initialize;
|
|
34
|
+
/**
|
|
35
|
+
* Adds hierarchy columns to existing tables (migration)
|
|
36
|
+
*/
|
|
37
|
+
private migrateHierarchyColumns;
|
|
34
38
|
/**
|
|
35
39
|
* Writes a trace event
|
|
36
40
|
* INV-TR-002: Events must be strictly ordered
|
|
@@ -58,10 +62,37 @@ export declare class SqliteTraceStore implements TraceStore {
|
|
|
58
62
|
* Updates trace summary based on event
|
|
59
63
|
*/
|
|
60
64
|
private updateSummary;
|
|
65
|
+
/**
|
|
66
|
+
* Gets all traces that share the same root trace ID
|
|
67
|
+
* INV-TR-020: All traces in hierarchy share rootTraceId
|
|
68
|
+
*/
|
|
69
|
+
getTracesByRoot(rootTraceId: string): Promise<TraceSummary[]>;
|
|
70
|
+
/**
|
|
71
|
+
* Gets direct children of a trace
|
|
72
|
+
* INV-TR-021: Child traces reference parentTraceId
|
|
73
|
+
*/
|
|
74
|
+
getChildTraces(parentTraceId: string): Promise<TraceSummary[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Gets all traces in a session
|
|
77
|
+
* INV-TR-023: Session trace correlation
|
|
78
|
+
*/
|
|
79
|
+
getTracesBySession(sessionId: string): Promise<TraceSummary[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Builds a hierarchical tree from a root trace
|
|
82
|
+
* Returns the complete tree structure for visualization
|
|
83
|
+
*/
|
|
84
|
+
getTraceTree(traceId: string): Promise<TraceTreeNode | undefined>;
|
|
61
85
|
/**
|
|
62
86
|
* Clears all traces (for testing only)
|
|
63
87
|
*/
|
|
64
88
|
clear(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Closes stuck traces that have been running longer than maxAgeMs
|
|
91
|
+
* Writes a run.end event marking them as failed
|
|
92
|
+
* @param maxAgeMs Maximum age in milliseconds (default: 1 hour)
|
|
93
|
+
* @returns number of traces that were closed
|
|
94
|
+
*/
|
|
95
|
+
closeStuckTraces(maxAgeMs?: number): Promise<number>;
|
|
65
96
|
/**
|
|
66
97
|
* Deletes a trace and all its events
|
|
67
98
|
* @returns true if trace existed and was deleted
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-store.d.ts","sourceRoot":"","sources":["../src/trace-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,0BAA0B,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"trace-store.d.ts","sourceRoot":"","sources":["../src/trace-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,0BAA0B,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAE5B,IAAI,EAAE,MAAM;aAEZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjC,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAEX;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAGtC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,SAAiB,EAC5B,cAAc,SAAoB;IAqBpC;;OAEG;IACH,OAAO,CAAC,UAAU;IAiElB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCvC;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAahD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAY3E;;OAEG;IACH,UAAU,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAchD;;OAEG;IACH,OAAO,CAAC,aAAa;IA0FrB;;;OAGG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAc7D;;;OAGG;IACH,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAc9D;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAc9D;;;OAGG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAwDvE;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;;;;OAKG;IACG,gBAAgB,CAAC,QAAQ,SAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAsD3D;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAuB/C;AAiHD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,gBAAgB,CAElB"}
|
package/dist/trace-store.js
CHANGED
|
@@ -80,6 +80,12 @@ export class SqliteTraceStore {
|
|
|
80
80
|
event_count INTEGER NOT NULL DEFAULT 0,
|
|
81
81
|
error_count INTEGER NOT NULL DEFAULT 0,
|
|
82
82
|
duration_ms INTEGER,
|
|
83
|
+
-- Hierarchical tracing fields (INV-TR-020 through INV-TR-024)
|
|
84
|
+
parent_trace_id TEXT,
|
|
85
|
+
root_trace_id TEXT,
|
|
86
|
+
trace_depth INTEGER,
|
|
87
|
+
session_id TEXT,
|
|
88
|
+
agent_id TEXT,
|
|
83
89
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
84
90
|
);
|
|
85
91
|
|
|
@@ -88,7 +94,34 @@ export class SqliteTraceStore {
|
|
|
88
94
|
|
|
89
95
|
CREATE INDEX IF NOT EXISTS idx_${this.summariesTable}_status
|
|
90
96
|
ON ${this.summariesTable}(status);
|
|
97
|
+
|
|
98
|
+
-- Indexes for hierarchical tracing queries
|
|
99
|
+
CREATE INDEX IF NOT EXISTS idx_${this.summariesTable}_parent_trace_id
|
|
100
|
+
ON ${this.summariesTable}(parent_trace_id);
|
|
101
|
+
|
|
102
|
+
CREATE INDEX IF NOT EXISTS idx_${this.summariesTable}_root_trace_id
|
|
103
|
+
ON ${this.summariesTable}(root_trace_id);
|
|
104
|
+
|
|
105
|
+
CREATE INDEX IF NOT EXISTS idx_${this.summariesTable}_session_id
|
|
106
|
+
ON ${this.summariesTable}(session_id);
|
|
91
107
|
`);
|
|
108
|
+
// Migrate existing tables to add hierarchy columns if they don't exist
|
|
109
|
+
this.migrateHierarchyColumns();
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Adds hierarchy columns to existing tables (migration)
|
|
113
|
+
*/
|
|
114
|
+
migrateHierarchyColumns() {
|
|
115
|
+
// Check if columns exist and add them if not
|
|
116
|
+
const columns = ['parent_trace_id', 'root_trace_id', 'trace_depth', 'session_id', 'agent_id'];
|
|
117
|
+
for (const column of columns) {
|
|
118
|
+
try {
|
|
119
|
+
this.db.exec(`ALTER TABLE ${this.summariesTable} ADD COLUMN ${column} TEXT`);
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
// Column already exists - ignore
|
|
123
|
+
}
|
|
124
|
+
}
|
|
92
125
|
}
|
|
93
126
|
/**
|
|
94
127
|
* Writes a trace event
|
|
@@ -153,7 +186,8 @@ export class SqliteTraceStore {
|
|
|
153
186
|
listTraces(limit = 100) {
|
|
154
187
|
const stmt = this.db.prepare(`
|
|
155
188
|
SELECT trace_id, start_time, end_time, status,
|
|
156
|
-
event_count, error_count, duration_ms
|
|
189
|
+
event_count, error_count, duration_ms,
|
|
190
|
+
parent_trace_id, root_trace_id, trace_depth, session_id, agent_id
|
|
157
191
|
FROM ${this.summariesTable}
|
|
158
192
|
ORDER BY id DESC
|
|
159
193
|
LIMIT ?
|
|
@@ -165,19 +199,21 @@ export class SqliteTraceStore {
|
|
|
165
199
|
* Updates trace summary based on event
|
|
166
200
|
*/
|
|
167
201
|
updateSummary(event) {
|
|
202
|
+
const context = event.context;
|
|
168
203
|
// Check if summary exists
|
|
169
204
|
const checkStmt = this.db.prepare(`
|
|
170
205
|
SELECT trace_id FROM ${this.summariesTable} WHERE trace_id = ?
|
|
171
206
|
`);
|
|
172
207
|
const existing = checkStmt.get(event.traceId);
|
|
173
208
|
if (existing === undefined) {
|
|
174
|
-
// Insert new summary
|
|
209
|
+
// Insert new summary with hierarchy fields (INV-TR-020 through INV-TR-024)
|
|
175
210
|
const insertStmt = this.db.prepare(`
|
|
176
211
|
INSERT INTO ${this.summariesTable} (
|
|
177
|
-
trace_id, start_time, status, event_count, error_count
|
|
178
|
-
|
|
212
|
+
trace_id, start_time, status, event_count, error_count,
|
|
213
|
+
parent_trace_id, root_trace_id, trace_depth, session_id, agent_id
|
|
214
|
+
) VALUES (?, ?, ?, 1, ?, ?, ?, ?, ?, ?)
|
|
179
215
|
`);
|
|
180
|
-
insertStmt.run(event.traceId, event.timestamp, event.status ?? 'pending', event.type === 'error' ? 1 : 0);
|
|
216
|
+
insertStmt.run(event.traceId, event.timestamp, event.status ?? 'pending', event.type === 'error' ? 1 : 0, context?.parentTraceId ?? null, context?.rootTraceId ?? null, context?.traceDepth ?? null, context?.sessionId ?? null, context?.agentId ?? null);
|
|
181
217
|
}
|
|
182
218
|
else {
|
|
183
219
|
// Update existing summary
|
|
@@ -193,6 +229,27 @@ export class SqliteTraceStore {
|
|
|
193
229
|
if (event.type === 'run.start') {
|
|
194
230
|
updateSql += ', start_time = ?, status = ?';
|
|
195
231
|
params.push(event.timestamp, 'running');
|
|
232
|
+
// Update hierarchy fields on run.start if provided
|
|
233
|
+
if (context?.parentTraceId) {
|
|
234
|
+
updateSql += ', parent_trace_id = COALESCE(parent_trace_id, ?)';
|
|
235
|
+
params.push(context.parentTraceId);
|
|
236
|
+
}
|
|
237
|
+
if (context?.rootTraceId) {
|
|
238
|
+
updateSql += ', root_trace_id = COALESCE(root_trace_id, ?)';
|
|
239
|
+
params.push(context.rootTraceId);
|
|
240
|
+
}
|
|
241
|
+
if (context?.traceDepth !== undefined) {
|
|
242
|
+
updateSql += ', trace_depth = COALESCE(trace_depth, ?)';
|
|
243
|
+
params.push(context.traceDepth);
|
|
244
|
+
}
|
|
245
|
+
if (context?.sessionId) {
|
|
246
|
+
updateSql += ', session_id = COALESCE(session_id, ?)';
|
|
247
|
+
params.push(context.sessionId);
|
|
248
|
+
}
|
|
249
|
+
if (context?.agentId) {
|
|
250
|
+
updateSql += ', agent_id = COALESCE(agent_id, ?)';
|
|
251
|
+
params.push(context.agentId);
|
|
252
|
+
}
|
|
196
253
|
}
|
|
197
254
|
if (event.type === 'run.end') {
|
|
198
255
|
updateSql += ', end_time = ?, status = ?';
|
|
@@ -214,6 +271,100 @@ export class SqliteTraceStore {
|
|
|
214
271
|
updateStmt.run(...params);
|
|
215
272
|
}
|
|
216
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Gets all traces that share the same root trace ID
|
|
276
|
+
* INV-TR-020: All traces in hierarchy share rootTraceId
|
|
277
|
+
*/
|
|
278
|
+
getTracesByRoot(rootTraceId) {
|
|
279
|
+
const stmt = this.db.prepare(`
|
|
280
|
+
SELECT trace_id, start_time, end_time, status,
|
|
281
|
+
event_count, error_count, duration_ms,
|
|
282
|
+
parent_trace_id, root_trace_id, trace_depth, session_id, agent_id
|
|
283
|
+
FROM ${this.summariesTable}
|
|
284
|
+
WHERE root_trace_id = ? OR trace_id = ?
|
|
285
|
+
ORDER BY COALESCE(trace_depth, 0) ASC, start_time ASC
|
|
286
|
+
`);
|
|
287
|
+
const rows = stmt.all(rootTraceId, rootTraceId);
|
|
288
|
+
return Promise.resolve(rows.map(rowToTraceSummary));
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Gets direct children of a trace
|
|
292
|
+
* INV-TR-021: Child traces reference parentTraceId
|
|
293
|
+
*/
|
|
294
|
+
getChildTraces(parentTraceId) {
|
|
295
|
+
const stmt = this.db.prepare(`
|
|
296
|
+
SELECT trace_id, start_time, end_time, status,
|
|
297
|
+
event_count, error_count, duration_ms,
|
|
298
|
+
parent_trace_id, root_trace_id, trace_depth, session_id, agent_id
|
|
299
|
+
FROM ${this.summariesTable}
|
|
300
|
+
WHERE parent_trace_id = ?
|
|
301
|
+
ORDER BY start_time ASC
|
|
302
|
+
`);
|
|
303
|
+
const rows = stmt.all(parentTraceId);
|
|
304
|
+
return Promise.resolve(rows.map(rowToTraceSummary));
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Gets all traces in a session
|
|
308
|
+
* INV-TR-023: Session trace correlation
|
|
309
|
+
*/
|
|
310
|
+
getTracesBySession(sessionId) {
|
|
311
|
+
const stmt = this.db.prepare(`
|
|
312
|
+
SELECT trace_id, start_time, end_time, status,
|
|
313
|
+
event_count, error_count, duration_ms,
|
|
314
|
+
parent_trace_id, root_trace_id, trace_depth, session_id, agent_id
|
|
315
|
+
FROM ${this.summariesTable}
|
|
316
|
+
WHERE session_id = ?
|
|
317
|
+
ORDER BY start_time ASC
|
|
318
|
+
`);
|
|
319
|
+
const rows = stmt.all(sessionId);
|
|
320
|
+
return Promise.resolve(rows.map(rowToTraceSummary));
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Builds a hierarchical tree from a root trace
|
|
324
|
+
* Returns the complete tree structure for visualization
|
|
325
|
+
*/
|
|
326
|
+
async getTraceTree(traceId) {
|
|
327
|
+
// Get the root summary
|
|
328
|
+
const rootStmt = this.db.prepare(`
|
|
329
|
+
SELECT trace_id, start_time, end_time, status,
|
|
330
|
+
event_count, error_count, duration_ms,
|
|
331
|
+
parent_trace_id, root_trace_id, trace_depth, session_id, agent_id
|
|
332
|
+
FROM ${this.summariesTable}
|
|
333
|
+
WHERE trace_id = ?
|
|
334
|
+
`);
|
|
335
|
+
const rootRow = rootStmt.get(traceId);
|
|
336
|
+
if (!rootRow)
|
|
337
|
+
return undefined;
|
|
338
|
+
const rootSummary = rowToTraceSummary(rootRow);
|
|
339
|
+
// Determine the effective root trace ID
|
|
340
|
+
const effectiveRootId = rootSummary.rootTraceId ?? traceId;
|
|
341
|
+
// Get all traces in this hierarchy
|
|
342
|
+
const allTraces = await this.getTracesByRoot(effectiveRootId);
|
|
343
|
+
// Create a map for quick lookup
|
|
344
|
+
const traceMap = new Map();
|
|
345
|
+
for (const trace of allTraces) {
|
|
346
|
+
traceMap.set(trace.traceId, trace);
|
|
347
|
+
}
|
|
348
|
+
// Build tree recursively
|
|
349
|
+
const buildNode = (summary) => {
|
|
350
|
+
const children = allTraces
|
|
351
|
+
.filter((t) => t.parentTraceId === summary.traceId)
|
|
352
|
+
.map((childSummary) => buildNode(childSummary));
|
|
353
|
+
const childDuration = children.reduce((sum, child) => sum + (child.totalDurationMs ?? 0), 0);
|
|
354
|
+
const childEventCount = children.reduce((sum, child) => sum + child.totalEventCount, 0);
|
|
355
|
+
return {
|
|
356
|
+
trace: summary,
|
|
357
|
+
children,
|
|
358
|
+
totalDurationMs: (summary.durationMs ?? 0) + childDuration,
|
|
359
|
+
totalEventCount: summary.eventCount + childEventCount,
|
|
360
|
+
};
|
|
361
|
+
};
|
|
362
|
+
// Build tree starting from the requested trace
|
|
363
|
+
const targetSummary = traceMap.get(traceId);
|
|
364
|
+
if (!targetSummary)
|
|
365
|
+
return undefined;
|
|
366
|
+
return buildNode(targetSummary);
|
|
367
|
+
}
|
|
217
368
|
/**
|
|
218
369
|
* Clears all traces (for testing only)
|
|
219
370
|
*/
|
|
@@ -221,6 +372,56 @@ export class SqliteTraceStore {
|
|
|
221
372
|
this.db.exec(`DELETE FROM ${this.eventsTable}`);
|
|
222
373
|
this.db.exec(`DELETE FROM ${this.summariesTable}`);
|
|
223
374
|
}
|
|
375
|
+
/**
|
|
376
|
+
* Closes stuck traces that have been running longer than maxAgeMs
|
|
377
|
+
* Writes a run.end event marking them as failed
|
|
378
|
+
* @param maxAgeMs Maximum age in milliseconds (default: 1 hour)
|
|
379
|
+
* @returns number of traces that were closed
|
|
380
|
+
*/
|
|
381
|
+
async closeStuckTraces(maxAgeMs = 3600000) {
|
|
382
|
+
// Input validation
|
|
383
|
+
if (maxAgeMs <= 0) {
|
|
384
|
+
throw new Error('maxAgeMs must be a positive number');
|
|
385
|
+
}
|
|
386
|
+
try {
|
|
387
|
+
const currentTime = Date.now();
|
|
388
|
+
const cutoffDate = new Date(currentTime - maxAgeMs).toISOString();
|
|
389
|
+
// Find all stuck traces (running or pending status and started before cutoff)
|
|
390
|
+
// Note: status may be 'pending' if summary update didn't set to 'running'
|
|
391
|
+
const stuckTracesStmt = this.db.prepare(`
|
|
392
|
+
SELECT trace_id, start_time
|
|
393
|
+
FROM ${this.summariesTable}
|
|
394
|
+
WHERE status IN ('running', 'pending') AND start_time < ?
|
|
395
|
+
`);
|
|
396
|
+
const stuckTraces = stuckTracesStmt.all(cutoffDate);
|
|
397
|
+
let closedCount = 0;
|
|
398
|
+
for (const trace of stuckTraces) {
|
|
399
|
+
const startTime = new Date(trace.start_time).getTime();
|
|
400
|
+
const durationMs = currentTime - startTime;
|
|
401
|
+
// Write a run.end event to close the trace
|
|
402
|
+
// Use timestamp in eventId to prevent collisions on repeated cleanup calls
|
|
403
|
+
const endEvent = {
|
|
404
|
+
eventId: `${trace.trace_id}-auto-close-${currentTime}`,
|
|
405
|
+
traceId: trace.trace_id,
|
|
406
|
+
type: 'run.end',
|
|
407
|
+
timestamp: new Date().toISOString(),
|
|
408
|
+
payload: {
|
|
409
|
+
success: false,
|
|
410
|
+
error: 'Trace closed automatically - exceeded maximum running time',
|
|
411
|
+
autoClose: true,
|
|
412
|
+
},
|
|
413
|
+
status: 'failure',
|
|
414
|
+
durationMs,
|
|
415
|
+
};
|
|
416
|
+
await this.write(endEvent);
|
|
417
|
+
closedCount++;
|
|
418
|
+
}
|
|
419
|
+
return closedCount;
|
|
420
|
+
}
|
|
421
|
+
catch (error) {
|
|
422
|
+
throw new SqliteTraceStoreError(SqliteTraceStoreErrorCodes.DATABASE_ERROR, `Failed to close stuck traces: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
224
425
|
/**
|
|
225
426
|
* Deletes a trace and all its events
|
|
226
427
|
* @returns true if trace existed and was deleted
|
|
@@ -296,6 +497,12 @@ function rowToTraceSummary(row) {
|
|
|
296
497
|
status: row.status,
|
|
297
498
|
eventCount: row.event_count,
|
|
298
499
|
errorCount: row.error_count,
|
|
500
|
+
// Hierarchical tracing fields (INV-TR-020 through INV-TR-024)
|
|
501
|
+
parentTraceId: row.parent_trace_id ?? undefined,
|
|
502
|
+
rootTraceId: row.root_trace_id ?? undefined,
|
|
503
|
+
traceDepth: row.trace_depth ?? undefined,
|
|
504
|
+
sessionId: row.session_id ?? undefined,
|
|
505
|
+
agentId: row.agent_id ?? undefined,
|
|
299
506
|
};
|
|
300
507
|
if (row.end_time !== null) {
|
|
301
508
|
summary.endTime = row.end_time;
|
package/dist/trace-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-store.js","sourceRoot":"","sources":["../src/trace-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trace-store.js","sourceRoot":"","sources":["../src/trace-store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defai.digital/sqlite-adapter",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "DEFAI Private Limited",
|
|
@@ -30,11 +30,12 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"better-sqlite3": "^11.6.0",
|
|
33
|
-
"@defai.digital/
|
|
34
|
-
"@defai.digital/
|
|
35
|
-
"@defai.digital/
|
|
36
|
-
"@defai.digital/
|
|
37
|
-
"@defai.digital/trace-domain": "13.
|
|
33
|
+
"@defai.digital/contracts": "13.4.0",
|
|
34
|
+
"@defai.digital/cross-cutting": "13.4.0",
|
|
35
|
+
"@defai.digital/semantic-context": "13.4.0",
|
|
36
|
+
"@defai.digital/memory-domain": "13.4.0",
|
|
37
|
+
"@defai.digital/trace-domain": "13.4.0",
|
|
38
|
+
"@defai.digital/agent-execution": "13.4.0"
|
|
38
39
|
},
|
|
39
40
|
"devDependencies": {
|
|
40
41
|
"@types/better-sqlite3": "^7.6.11",
|