stellar-memory 0.8.4 → 1.0.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/api/routes/memories.js +5 -4
- package/dist/api/routes/memories.js.map +1 -1
- package/dist/api/websocket.d.ts +0 -6
- package/dist/api/websocket.js +1 -1
- package/dist/api/websocket.js.map +1 -1
- package/dist/engine/analytics.js +4 -33
- package/dist/engine/analytics.js.map +1 -1
- package/dist/engine/conflict.js +2 -4
- package/dist/engine/conflict.js.map +1 -1
- package/dist/engine/consolidation.js +3 -21
- package/dist/engine/consolidation.js.map +1 -1
- package/dist/engine/constellation.js +6 -14
- package/dist/engine/constellation.js.map +1 -1
- package/dist/engine/corona.js +3 -1
- package/dist/engine/corona.js.map +1 -1
- package/dist/engine/multiproject.js +6 -73
- package/dist/engine/multiproject.js.map +1 -1
- package/dist/engine/observation.d.ts +1 -42
- package/dist/engine/observation.js +4 -23
- package/dist/engine/observation.js.map +1 -1
- package/dist/engine/orbit.js +50 -11
- package/dist/engine/orbit.js.map +1 -1
- package/dist/engine/planet.d.ts +3 -0
- package/dist/engine/planet.js +16 -11
- package/dist/engine/planet.js.map +1 -1
- package/dist/engine/procedural.d.ts +0 -13
- package/dist/engine/procedural.js +2 -47
- package/dist/engine/procedural.js.map +1 -1
- package/dist/engine/services/commit-service.d.ts +29 -0
- package/dist/engine/services/commit-service.js +35 -0
- package/dist/engine/services/commit-service.js.map +1 -0
- package/dist/engine/services/index.d.ts +4 -0
- package/dist/engine/services/index.js +4 -0
- package/dist/engine/services/index.js.map +1 -0
- package/dist/engine/services/memory-service.d.ts +48 -0
- package/dist/engine/services/memory-service.js +85 -0
- package/dist/engine/services/memory-service.js.map +1 -0
- package/dist/engine/services/recall-service.d.ts +31 -0
- package/dist/engine/services/recall-service.js +35 -0
- package/dist/engine/services/recall-service.js.map +1 -0
- package/dist/engine/sun.d.ts +9 -5
- package/dist/engine/sun.js +111 -12
- package/dist/engine/sun.js.map +1 -1
- package/dist/engine/temporal.js +8 -67
- package/dist/engine/temporal.js.map +1 -1
- package/dist/engine/types.d.ts +0 -15
- package/dist/engine/types.js +0 -7
- package/dist/engine/types.js.map +1 -1
- package/dist/mcp/server.js +88 -123
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/analytics-handlers.d.ts +20 -0
- package/dist/mcp/tools/analytics-handlers.js +292 -0
- package/dist/mcp/tools/analytics-handlers.js.map +1 -0
- package/dist/mcp/tools/graph-handlers.d.ts +20 -0
- package/dist/mcp/tools/graph-handlers.js +126 -0
- package/dist/mcp/tools/graph-handlers.js.map +1 -0
- package/dist/mcp/tools/memory-handlers.d.ts +27 -0
- package/dist/mcp/tools/memory-handlers.js +177 -0
- package/dist/mcp/tools/memory-handlers.js.map +1 -0
- package/dist/mcp/tools/memory-tools.d.ts +19 -117
- package/dist/mcp/tools/memory-tools.js +19 -1049
- package/dist/mcp/tools/memory-tools.js.map +1 -1
- package/dist/mcp/tools/observation-handlers.d.ts +15 -0
- package/dist/mcp/tools/observation-handlers.js +74 -0
- package/dist/mcp/tools/observation-handlers.js.map +1 -0
- package/dist/mcp/tools/shared.d.ts +36 -0
- package/dist/mcp/tools/shared.js +71 -0
- package/dist/mcp/tools/shared.js.map +1 -0
- package/dist/mcp/tools/sun-handler.d.ts +12 -0
- package/dist/mcp/tools/sun-handler.js +35 -0
- package/dist/mcp/tools/sun-handler.js.map +1 -0
- package/dist/mcp/tools/system-handlers.d.ts +27 -0
- package/dist/mcp/tools/system-handlers.js +259 -0
- package/dist/mcp/tools/system-handlers.js.map +1 -0
- package/dist/mcp/tools/temporal-handlers.d.ts +15 -0
- package/dist/mcp/tools/temporal-handlers.js +82 -0
- package/dist/mcp/tools/temporal-handlers.js.map +1 -0
- package/dist/scanner/local/filesystem.d.ts +0 -2
- package/dist/scanner/local/filesystem.js +1 -5
- package/dist/scanner/local/filesystem.js.map +1 -1
- package/dist/scanner/local/git.d.ts +0 -5
- package/dist/scanner/local/git.js +1 -1
- package/dist/scanner/local/git.js.map +1 -1
- package/dist/scanner/metadata-scanner.d.ts +3 -14
- package/dist/scanner/metadata-scanner.js +10 -10
- package/dist/scanner/metadata-scanner.js.map +1 -1
- package/dist/service/scheduler.js +32 -13
- package/dist/service/scheduler.js.map +1 -1
- package/dist/storage/database.js +81 -2
- package/dist/storage/database.js.map +1 -1
- package/dist/storage/queries/analytics-queries.d.ts +59 -0
- package/dist/storage/queries/analytics-queries.js +265 -0
- package/dist/storage/queries/analytics-queries.js.map +1 -0
- package/dist/storage/queries/conflict-queries.d.ts +16 -0
- package/dist/storage/queries/conflict-queries.js +56 -0
- package/dist/storage/queries/conflict-queries.js.map +1 -0
- package/dist/storage/queries/constellation-queries.d.ts +18 -0
- package/dist/storage/queries/constellation-queries.js +101 -0
- package/dist/storage/queries/constellation-queries.js.map +1 -0
- package/dist/storage/queries/datasource-queries.d.ts +9 -0
- package/dist/storage/queries/datasource-queries.js +53 -0
- package/dist/storage/queries/datasource-queries.js.map +1 -0
- package/dist/storage/queries/memory-queries.d.ts +53 -0
- package/dist/storage/queries/memory-queries.js +415 -0
- package/dist/storage/queries/memory-queries.js.map +1 -0
- package/dist/storage/queries/observation-queries.d.ts +7 -0
- package/dist/storage/queries/observation-queries.js +23 -0
- package/dist/storage/queries/observation-queries.js.map +1 -0
- package/dist/storage/queries/orbit-queries.d.ts +7 -0
- package/dist/storage/queries/orbit-queries.js +23 -0
- package/dist/storage/queries/orbit-queries.js.map +1 -0
- package/dist/storage/queries/shared.d.ts +106 -0
- package/dist/storage/queries/shared.js +120 -0
- package/dist/storage/queries/shared.js.map +1 -0
- package/dist/storage/queries/sun-queries.d.ts +9 -0
- package/dist/storage/queries/sun-queries.js +43 -0
- package/dist/storage/queries/sun-queries.js.map +1 -0
- package/dist/storage/queries/temporal-queries.d.ts +32 -0
- package/dist/storage/queries/temporal-queries.js +112 -0
- package/dist/storage/queries/temporal-queries.js.map +1 -0
- package/dist/storage/queries.d.ts +15 -84
- package/dist/storage/queries.js +15 -896
- package/dist/storage/queries.js.map +1 -1
- package/dist/storage/vec.d.ts +5 -1
- package/dist/storage/vec.js +48 -24
- package/dist/storage/vec.js.map +1 -1
- package/dist/utils/config.d.ts +0 -1
- package/dist/utils/config.js +1 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/logger.d.ts +0 -2
- package/dist/utils/logger.js +0 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/stopwords.d.ts +6 -0
- package/dist/utils/stopwords.js +22 -0
- package/dist/utils/stopwords.js.map +1 -0
- package/dist/utils/tokenizer.d.ts +2 -1
- package/dist/utils/tokenizer.js +7 -5
- package/dist/utils/tokenizer.js.map +1 -1
- package/package.json +78 -78
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* storage/queries/conflict-queries.ts — Conflict management
|
|
3
|
+
*/
|
|
4
|
+
import { getDatabase } from '../database.js';
|
|
5
|
+
import { deserializeConflict } from './shared.js';
|
|
6
|
+
export function createConflict(conflict) {
|
|
7
|
+
const db = getDatabase();
|
|
8
|
+
db.prepare(`
|
|
9
|
+
INSERT INTO memory_conflicts (
|
|
10
|
+
id, memory_id, conflicting_memory_id, severity,
|
|
11
|
+
description, status, resolution, project, created_at, resolved_at
|
|
12
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
13
|
+
`).run(conflict.id, conflict.memory_id, conflict.conflicting_memory_id, conflict.severity, conflict.description, conflict.status, conflict.resolution ?? null, conflict.project, conflict.created_at, conflict.resolved_at ?? null);
|
|
14
|
+
}
|
|
15
|
+
export function getConflicts(project, status) {
|
|
16
|
+
const db = getDatabase();
|
|
17
|
+
const rows = status
|
|
18
|
+
? db.prepare(`
|
|
19
|
+
SELECT * FROM memory_conflicts
|
|
20
|
+
WHERE project = ? AND status = ?
|
|
21
|
+
ORDER BY created_at DESC
|
|
22
|
+
`).all(project, status)
|
|
23
|
+
: db.prepare(`
|
|
24
|
+
SELECT * FROM memory_conflicts
|
|
25
|
+
WHERE project = ?
|
|
26
|
+
ORDER BY created_at DESC
|
|
27
|
+
`).all(project);
|
|
28
|
+
return rows.map((r) => deserializeConflict(r));
|
|
29
|
+
}
|
|
30
|
+
export function getConflictsForMemory(memoryId) {
|
|
31
|
+
const db = getDatabase();
|
|
32
|
+
const rows = db.prepare(`
|
|
33
|
+
SELECT * FROM memory_conflicts
|
|
34
|
+
WHERE memory_id = ? OR conflicting_memory_id = ?
|
|
35
|
+
ORDER BY created_at DESC
|
|
36
|
+
`).all(memoryId, memoryId);
|
|
37
|
+
return rows.map((r) => deserializeConflict(r));
|
|
38
|
+
}
|
|
39
|
+
export function resolveConflict(id, resolution) {
|
|
40
|
+
const db = getDatabase();
|
|
41
|
+
const now = new Date().toISOString();
|
|
42
|
+
db.prepare(`
|
|
43
|
+
UPDATE memory_conflicts
|
|
44
|
+
SET status = 'resolved', resolution = ?, resolved_at = ?
|
|
45
|
+
WHERE id = ?
|
|
46
|
+
`).run(resolution, now, id);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get conflict row for a given conflict ID (used by conflict.ts resolveConflict action=supersede).
|
|
50
|
+
*/
|
|
51
|
+
export function getConflictById(id) {
|
|
52
|
+
const db = getDatabase();
|
|
53
|
+
const row = db.prepare(`SELECT memory_id, conflicting_memory_id FROM memory_conflicts WHERE id = ?`).get(id);
|
|
54
|
+
return row ?? null;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=conflict-queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflict-queries.js","sourceRoot":"","sources":["../../../src/storage/queries/conflict-queries.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,UAAU,cAAc,CAAC,QAAwB;IACrD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,EAAE,CAAC,OAAO,CAAC;;;;;GAKV,CAAC,CAAC,GAAG,CACJ,QAAQ,CAAC,EAAE,EACX,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,qBAAqB,EAC9B,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,IAAI,IAAI,EAC3B,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,WAAW,IAAI,IAAI,CAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,MAAe;IAC3D,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM;QACjB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAIV,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAc;QACtC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAIV,CAAC,CAAC,GAAG,CAAC,OAAO,CAAc,CAAC;IACjC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAmB,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;GAIvB,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAc,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAmB,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAU,EAAE,UAAkB;IAC5D,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,EAAE,CAAC,OAAO,CAAC;;;;GAIV,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,4EAA4E,CAC7E,CAAC,GAAG,CAAC,EAAE,CAAqE,CAAC;IAC9E,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* storage/queries/constellation-queries.ts — Knowledge graph (constellation edges)
|
|
3
|
+
*/
|
|
4
|
+
import type { Memory, ConstellationEdge } from '../../engine/types.js';
|
|
5
|
+
export declare function createEdge(edge: ConstellationEdge): void;
|
|
6
|
+
export declare function getEdges(memoryId: string, project: string): ConstellationEdge[];
|
|
7
|
+
export declare function getConstellation(memoryId: string, project: string, depth?: number): {
|
|
8
|
+
nodes: Memory[];
|
|
9
|
+
edges: ConstellationEdge[];
|
|
10
|
+
};
|
|
11
|
+
export declare function getEdgesForBatch(memoryIds: string[], project: string): Map<string, Set<string>>;
|
|
12
|
+
export declare function deleteEdge(id: string): void;
|
|
13
|
+
export declare function getEdgeCountForMemory(memoryId: string): number;
|
|
14
|
+
/**
|
|
15
|
+
* Get all edge IDs for a memory (no project filter needed — used for cleanup).
|
|
16
|
+
*/
|
|
17
|
+
export declare function getEdgeIdsForMemory(memoryId: string): string[];
|
|
18
|
+
//# sourceMappingURL=constellation-queries.d.ts.map
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* storage/queries/constellation-queries.ts — Knowledge graph (constellation edges)
|
|
3
|
+
*/
|
|
4
|
+
import { getDatabase } from '../database.js';
|
|
5
|
+
import { deserializeConstellationEdge, } from './shared.js';
|
|
6
|
+
import { getMemoryByIds } from './memory-queries.js';
|
|
7
|
+
export function createEdge(edge) {
|
|
8
|
+
const db = getDatabase();
|
|
9
|
+
db.prepare(`
|
|
10
|
+
INSERT INTO constellation_edges (id, source_id, target_id, relation, weight, project, metadata, created_at)
|
|
11
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
12
|
+
ON CONFLICT(source_id, target_id, relation) DO UPDATE SET
|
|
13
|
+
weight = excluded.weight,
|
|
14
|
+
metadata = excluded.metadata
|
|
15
|
+
`).run(edge.id, edge.source_id, edge.target_id, edge.relation, edge.weight, edge.project, JSON.stringify(edge.metadata ?? {}), edge.created_at);
|
|
16
|
+
}
|
|
17
|
+
export function getEdges(memoryId, project) {
|
|
18
|
+
const db = getDatabase();
|
|
19
|
+
const rows = db.prepare(`
|
|
20
|
+
SELECT * FROM constellation_edges
|
|
21
|
+
WHERE (source_id = ? OR target_id = ?) AND project = ?
|
|
22
|
+
ORDER BY weight DESC
|
|
23
|
+
`).all(memoryId, memoryId, project);
|
|
24
|
+
return rows.map((r) => deserializeConstellationEdge(r));
|
|
25
|
+
}
|
|
26
|
+
export function getConstellation(memoryId, project, depth = 1) {
|
|
27
|
+
const db = getDatabase();
|
|
28
|
+
const visitedNodeIds = new Set([memoryId]);
|
|
29
|
+
const allEdges = [];
|
|
30
|
+
let frontier = [memoryId];
|
|
31
|
+
for (let d = 0; d < depth; d++) {
|
|
32
|
+
if (frontier.length === 0)
|
|
33
|
+
break;
|
|
34
|
+
const placeholders = frontier.map(() => '?').join(', ');
|
|
35
|
+
const edgeRows = db.prepare(`
|
|
36
|
+
SELECT * FROM constellation_edges
|
|
37
|
+
WHERE (source_id IN (${placeholders}) OR target_id IN (${placeholders}))
|
|
38
|
+
AND project = ?
|
|
39
|
+
`).all(...frontier, ...frontier, project);
|
|
40
|
+
for (const r of edgeRows) {
|
|
41
|
+
const edge = deserializeConstellationEdge(r);
|
|
42
|
+
allEdges.push(edge);
|
|
43
|
+
visitedNodeIds.add(edge.source_id);
|
|
44
|
+
visitedNodeIds.add(edge.target_id);
|
|
45
|
+
}
|
|
46
|
+
frontier = [...visitedNodeIds].filter((id) => !frontier.includes(id) && id !== memoryId);
|
|
47
|
+
}
|
|
48
|
+
const nodes = getMemoryByIds([...visitedNodeIds]);
|
|
49
|
+
return { nodes, edges: allEdges };
|
|
50
|
+
}
|
|
51
|
+
export function getEdgesForBatch(memoryIds, project) {
|
|
52
|
+
if (memoryIds.length === 0)
|
|
53
|
+
return new Map();
|
|
54
|
+
const db = getDatabase();
|
|
55
|
+
const placeholders = memoryIds.map(() => '?').join(', ');
|
|
56
|
+
const rows = db.prepare(`
|
|
57
|
+
SELECT source_id, target_id FROM constellation_edges
|
|
58
|
+
WHERE (source_id IN (${placeholders}) OR target_id IN (${placeholders}))
|
|
59
|
+
AND project = ?
|
|
60
|
+
`).all(...memoryIds, ...memoryIds, project);
|
|
61
|
+
const idSet = new Set(memoryIds);
|
|
62
|
+
const result = new Map();
|
|
63
|
+
for (const r of rows) {
|
|
64
|
+
const row = r;
|
|
65
|
+
if (idSet.has(row.source_id)) {
|
|
66
|
+
const neighbors = result.get(row.source_id) ?? new Set();
|
|
67
|
+
neighbors.add(row.target_id);
|
|
68
|
+
result.set(row.source_id, neighbors);
|
|
69
|
+
}
|
|
70
|
+
if (idSet.has(row.target_id)) {
|
|
71
|
+
const neighbors = result.get(row.target_id) ?? new Set();
|
|
72
|
+
neighbors.add(row.source_id);
|
|
73
|
+
result.set(row.target_id, neighbors);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
export function deleteEdge(id) {
|
|
79
|
+
const db = getDatabase();
|
|
80
|
+
db.prepare(`DELETE FROM constellation_edges WHERE id = ?`).run(id);
|
|
81
|
+
}
|
|
82
|
+
export function getEdgeCountForMemory(memoryId) {
|
|
83
|
+
const db = getDatabase();
|
|
84
|
+
const row = db.prepare(`
|
|
85
|
+
SELECT COUNT(*) as count FROM constellation_edges
|
|
86
|
+
WHERE source_id = ? OR target_id = ?
|
|
87
|
+
`).get(memoryId, memoryId);
|
|
88
|
+
return row?.count ?? 0;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get all edge IDs for a memory (no project filter needed — used for cleanup).
|
|
92
|
+
*/
|
|
93
|
+
export function getEdgeIdsForMemory(memoryId) {
|
|
94
|
+
const db = getDatabase();
|
|
95
|
+
const rows = db.prepare(`
|
|
96
|
+
SELECT id FROM constellation_edges
|
|
97
|
+
WHERE source_id = ? OR target_id = ?
|
|
98
|
+
`).all(memoryId, memoryId);
|
|
99
|
+
return rows.map(r => r.id);
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=constellation-queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constellation-queries.js","sourceRoot":"","sources":["../../../src/storage/queries/constellation-queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* storage/queries/datasource-queries.ts — Data source management
|
|
3
|
+
*/
|
|
4
|
+
import type { DataSource } from '../../scanner/types.js';
|
|
5
|
+
export declare function insertDataSource(ds: Omit<DataSource, 'created_at' | 'updated_at'>): DataSource;
|
|
6
|
+
export declare function updateDataSource(id: string, patch: Partial<Pick<DataSource, 'status' | 'last_scanned_at' | 'file_count' | 'total_size' | 'config'>>): void;
|
|
7
|
+
export declare function getAllDataSources(): DataSource[];
|
|
8
|
+
export declare function getDataSourceByPath(path: string): DataSource | null;
|
|
9
|
+
//# sourceMappingURL=datasource-queries.d.ts.map
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* storage/queries/datasource-queries.ts — Data source management
|
|
3
|
+
*/
|
|
4
|
+
import { getDatabase } from '../database.js';
|
|
5
|
+
import { asRawDataSource, deserializeDataSource } from './shared.js';
|
|
6
|
+
export function insertDataSource(ds) {
|
|
7
|
+
const db = getDatabase();
|
|
8
|
+
const now = new Date().toISOString();
|
|
9
|
+
db.prepare(`
|
|
10
|
+
INSERT INTO data_sources (id, path, type, status, last_scanned_at, file_count, total_size, config, created_at, updated_at)
|
|
11
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
12
|
+
`).run(ds.id, ds.path, ds.type, ds.status, ds.last_scanned_at ?? null, ds.file_count ?? 0, ds.total_size ?? 0, JSON.stringify(ds.config ?? {}), now, now);
|
|
13
|
+
return { ...ds, config: ds.config ?? {}, created_at: now, updated_at: now };
|
|
14
|
+
}
|
|
15
|
+
export function updateDataSource(id, patch) {
|
|
16
|
+
const db = getDatabase();
|
|
17
|
+
const now = new Date().toISOString();
|
|
18
|
+
const sets = ['updated_at = ?'];
|
|
19
|
+
const values = [now];
|
|
20
|
+
if (patch.status !== undefined) {
|
|
21
|
+
sets.push('status = ?');
|
|
22
|
+
values.push(patch.status);
|
|
23
|
+
}
|
|
24
|
+
if (patch.last_scanned_at !== undefined) {
|
|
25
|
+
sets.push('last_scanned_at = ?');
|
|
26
|
+
values.push(patch.last_scanned_at);
|
|
27
|
+
}
|
|
28
|
+
if (patch.file_count !== undefined) {
|
|
29
|
+
sets.push('file_count = ?');
|
|
30
|
+
values.push(patch.file_count);
|
|
31
|
+
}
|
|
32
|
+
if (patch.total_size !== undefined) {
|
|
33
|
+
sets.push('total_size = ?');
|
|
34
|
+
values.push(patch.total_size);
|
|
35
|
+
}
|
|
36
|
+
if (patch.config !== undefined) {
|
|
37
|
+
sets.push('config = ?');
|
|
38
|
+
values.push(JSON.stringify(patch.config));
|
|
39
|
+
}
|
|
40
|
+
values.push(id);
|
|
41
|
+
db.prepare(`UPDATE data_sources SET ${sets.join(', ')} WHERE id = ?`).run(...values);
|
|
42
|
+
}
|
|
43
|
+
export function getAllDataSources() {
|
|
44
|
+
const db = getDatabase();
|
|
45
|
+
const rows = db.prepare(`SELECT * FROM data_sources ORDER BY created_at DESC`).all();
|
|
46
|
+
return rows.map((r) => deserializeDataSource(asRawDataSource(r)));
|
|
47
|
+
}
|
|
48
|
+
export function getDataSourceByPath(path) {
|
|
49
|
+
const db = getDatabase();
|
|
50
|
+
const row = db.prepare(`SELECT * FROM data_sources WHERE path = ? LIMIT 1`).get(path);
|
|
51
|
+
return row ? deserializeDataSource(asRawDataSource(row)) : null;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=datasource-queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasource-queries.js","sourceRoot":"","sources":["../../../src/storage/queries/datasource-queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* storage/queries/memory-queries.ts — Memory CRUD and search operations
|
|
3
|
+
*/
|
|
4
|
+
import type { Memory, OrbitZone } from '../../engine/types.js';
|
|
5
|
+
export declare function insertMemory(memory: Partial<Memory>): Memory;
|
|
6
|
+
export declare function getMemoryById(id: string): Memory | null;
|
|
7
|
+
export declare function getMemoryByIds(ids: string[]): Memory[];
|
|
8
|
+
export declare function getMemoriesByProject(project: string, includeDeleted?: boolean): Memory[];
|
|
9
|
+
export declare function getRecentMemories(project: string, hoursAgo?: number): Memory[];
|
|
10
|
+
export declare function getMemoriesInZone(project: string, zone: OrbitZone): Memory[];
|
|
11
|
+
export declare function getNearestMemories(project: string, limit: number): Memory[];
|
|
12
|
+
export declare function updateMemoryOrbit(id: string, distance: number, importance: number, velocity: number): void;
|
|
13
|
+
export declare function updateMemoryAccess(id: string): void;
|
|
14
|
+
export declare function softDeleteMemory(id: string): void;
|
|
15
|
+
export declare function updateMemoryContent(id: string, content: string): void;
|
|
16
|
+
export declare function updateQualityScore(memoryId: string, score: number): void;
|
|
17
|
+
export declare function memoryExistsForSource(sourcePath: string, sourceHash: string): boolean;
|
|
18
|
+
export declare function getMemoryBySourcePath(sourcePath: string): Memory | null;
|
|
19
|
+
export declare function getMemoryByContentHash(project: string, contentHash: string): Memory | null;
|
|
20
|
+
export declare function searchMemories(project: string, query: string, limit?: number): Memory[];
|
|
21
|
+
export declare function searchMemoriesInRange(project: string, query: string, minDistance: number, maxDistance: number, limit: number): Memory[];
|
|
22
|
+
export declare function consolidateMemories(sourceIds: string[], targetId: string): void;
|
|
23
|
+
export declare function getConsolidationHistory(memoryId: string): Memory[];
|
|
24
|
+
export declare function getUniversalMemories(limit?: number): Memory[];
|
|
25
|
+
export declare function setUniversal(memoryId: string, isUniversal: boolean): void;
|
|
26
|
+
export declare function listProjects(): Array<{
|
|
27
|
+
project: string;
|
|
28
|
+
count: number;
|
|
29
|
+
}>;
|
|
30
|
+
export declare function getStoredEmbeddingForMemory(memoryId: string): Float32Array | null;
|
|
31
|
+
/**
|
|
32
|
+
* Get the embedding of the highest-importance memory in a project.
|
|
33
|
+
* Used by orbit.ts to compute sun-context relevance via hybridRelevance.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getTopProjectEmbedding(project: string): Float32Array | null;
|
|
36
|
+
/**
|
|
37
|
+
* Return the list of distinct project names that have at least one non-deleted memory.
|
|
38
|
+
*/
|
|
39
|
+
export declare function getAllProjects(): string[];
|
|
40
|
+
/**
|
|
41
|
+
* Permanently remove soft-deleted memories older than the given number of days.
|
|
42
|
+
* Also cleans up related embeddings, constellation edges, and orbit log entries.
|
|
43
|
+
*/
|
|
44
|
+
export declare function purgeDeletedMemories(project: string, olderThanDays?: number): number;
|
|
45
|
+
/**
|
|
46
|
+
* Soft-delete noisy or superseded memories.
|
|
47
|
+
* Returns count and breakdown by reason.
|
|
48
|
+
*/
|
|
49
|
+
export declare function curateMemories(project: string): {
|
|
50
|
+
deleted: number;
|
|
51
|
+
reasons: Record<string, number>;
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=memory-queries.d.ts.map
|