@christopherlittle51/postclaw 1.3.1 → 1.3.2
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 +69 -695
- package/dashboard/README.md +89 -0
- package/dashboard/public/app.js +903 -542
- package/dashboard/public/index.html +184 -73
- package/dashboard/public/styles.css +583 -126
- package/dist/dashboard/routes/graph.d.ts +2 -2
- package/dist/dashboard/routes/graph.d.ts.map +1 -1
- package/dist/dashboard/routes/graph.js +61 -23
- package/dist/dashboard/routes/graph.js.map +1 -1
- package/dist/dashboard/routes/memories.d.ts.map +1 -1
- package/dist/dashboard/routes/memories.js +66 -0
- package/dist/dashboard/routes/memories.js.map +1 -1
- package/dist/dashboard/routes/workspace.d.ts +4 -3
- package/dist/dashboard/routes/workspace.d.ts.map +1 -1
- package/dist/dashboard/routes/workspace.js +119 -7
- package/dist/dashboard/routes/workspace.js.map +1 -1
- package/dist/dashboard/server.js +1 -1
- package/dist/dashboard/server.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +84 -27
- package/dist/index.js.map +1 -1
- package/dist/schemas/validation.d.ts +32 -3
- package/dist/schemas/validation.d.ts.map +1 -1
- package/dist/schemas/validation.js +22 -4
- package/dist/schemas/validation.js.map +1 -1
- package/dist/scripts/setup-db.d.ts.map +1 -1
- package/dist/scripts/setup-db.js +28 -30
- package/dist/scripts/setup-db.js.map +1 -1
- package/dist/scripts/sleep_cycle.d.ts +1 -0
- package/dist/scripts/sleep_cycle.d.ts.map +1 -1
- package/dist/scripts/sleep_cycle.js +114 -21
- package/dist/scripts/sleep_cycle.js.map +1 -1
- package/dist/services/config.d.ts +1 -0
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +4 -22
- package/dist/services/config.js.map +1 -1
- package/dist/services/memoryService.d.ts +2 -1
- package/dist/services/memoryService.d.ts.map +1 -1
- package/dist/services/memoryService.js +90 -24
- package/dist/services/memoryService.js.map +1 -1
- package/dist/services/personaService.d.ts +25 -0
- package/dist/services/personaService.d.ts.map +1 -1
- package/dist/services/personaService.js +79 -0
- package/dist/services/personaService.js.map +1 -1
- package/dist/tests/dashboard-schemas.test.js +71 -1
- package/dist/tests/dashboard-schemas.test.js.map +1 -1
- package/package.json +1 -1
- package/schemas/README.md +64 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Dashboard API Routes — Knowledge graph endpoints.
|
|
3
3
|
*
|
|
4
|
-
* GET /api/graph — Full graph data for D3 visualization
|
|
4
|
+
* GET /api/graph — Full graph data for D3 visualization (memories + personas)
|
|
5
5
|
* GET /api/edges — List edges
|
|
6
|
-
* POST /api/edges — Create edge
|
|
6
|
+
* POST /api/edges — Create edge (memory↔memory or persona↔memory)
|
|
7
7
|
* DELETE /api/edges/:id — Delete edge
|
|
8
8
|
*/
|
|
9
9
|
import { Router } from "../router.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../dashboard/routes/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAStC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../dashboard/routes/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAStC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAqKxD"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Dashboard API Routes — Knowledge graph endpoints.
|
|
4
4
|
*
|
|
5
|
-
* GET /api/graph — Full graph data for D3 visualization
|
|
5
|
+
* GET /api/graph — Full graph data for D3 visualization (memories + personas)
|
|
6
6
|
* GET /api/edges — List edges
|
|
7
|
-
* POST /api/edges — Create edge
|
|
7
|
+
* POST /api/edges — Create edge (memory↔memory or persona↔memory)
|
|
8
8
|
* DELETE /api/edges/:id — Delete edge
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -16,46 +16,76 @@ const validation_js_1 = require("../../schemas/validation.js");
|
|
|
16
16
|
// REGISTER ROUTES
|
|
17
17
|
// =============================================================================
|
|
18
18
|
function registerGraphRoutes(router) {
|
|
19
|
-
// FULL GRAPH — nodes + edges for D3 force graph
|
|
19
|
+
// FULL GRAPH — nodes + edges for D3 force graph (includes persona nodes)
|
|
20
20
|
router.get("/api/graph", async (_req, res, ctx) => {
|
|
21
21
|
const agentId = ctx.query.agentId || "main";
|
|
22
22
|
const sql = (0, db_js_1.getSql)();
|
|
23
23
|
const result = await sql.begin(async (tx) => {
|
|
24
24
|
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
25
|
-
const
|
|
25
|
+
const memoryNodes = await tx `
|
|
26
26
|
SELECT id, content, category, tier, access_count, usefulness_score, is_archived
|
|
27
27
|
FROM memory_semantic
|
|
28
28
|
WHERE agent_id = ${agentId} AND is_archived = false
|
|
29
29
|
ORDER BY created_at DESC
|
|
30
30
|
LIMIT 200
|
|
31
|
+
`;
|
|
32
|
+
const personaNodes = await tx `
|
|
33
|
+
SELECT id, category, content, is_always_active
|
|
34
|
+
FROM agent_persona
|
|
35
|
+
WHERE agent_id = ${agentId}
|
|
31
36
|
`;
|
|
32
37
|
const edges = await tx `
|
|
33
|
-
SELECT id, source_memory_id, target_memory_id,
|
|
38
|
+
SELECT id, source_memory_id, target_memory_id,
|
|
39
|
+
source_persona_id, target_persona_id,
|
|
40
|
+
relationship_type, weight
|
|
34
41
|
FROM entity_edges
|
|
35
42
|
WHERE agent_id = ${agentId}
|
|
36
43
|
`;
|
|
37
|
-
return {
|
|
44
|
+
return { memoryNodes, personaNodes, edges };
|
|
38
45
|
});
|
|
46
|
+
// Build node ID set for edge filtering
|
|
47
|
+
const nodeIds = new Set([
|
|
48
|
+
...result.memoryNodes.map((n) => n.id),
|
|
49
|
+
...result.personaNodes.map((n) => n.id),
|
|
50
|
+
]);
|
|
39
51
|
// Filter to only include edges where both source and target exist in nodes
|
|
40
|
-
const
|
|
41
|
-
|
|
52
|
+
const validEdges = result.edges.filter((e) => {
|
|
53
|
+
const src = e.source_memory_id || e.source_persona_id;
|
|
54
|
+
const tgt = e.target_memory_id || e.target_persona_id;
|
|
55
|
+
return nodeIds.has(src) && nodeIds.has(tgt);
|
|
56
|
+
});
|
|
42
57
|
(0, helpers_js_1.sendJson)(res, 200, {
|
|
43
58
|
ok: true,
|
|
44
59
|
data: {
|
|
45
|
-
nodes:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
60
|
+
nodes: [
|
|
61
|
+
...result.memoryNodes.map((n) => ({
|
|
62
|
+
id: n.id,
|
|
63
|
+
type: "memory",
|
|
64
|
+
label: n.content.substring(0, 80),
|
|
65
|
+
category: n.category,
|
|
66
|
+
tier: n.tier,
|
|
67
|
+
accessCount: n.access_count,
|
|
68
|
+
score: n.usefulness_score,
|
|
69
|
+
})),
|
|
70
|
+
...result.personaNodes.map((n) => ({
|
|
71
|
+
id: n.id,
|
|
72
|
+
type: "persona",
|
|
73
|
+
label: n.content.substring(0, 80),
|
|
74
|
+
category: n.category,
|
|
75
|
+
tier: n.is_always_active ? "permanent" : "stable",
|
|
76
|
+
accessCount: 0,
|
|
77
|
+
score: 0,
|
|
78
|
+
isAlwaysActive: n.is_always_active,
|
|
79
|
+
})),
|
|
80
|
+
],
|
|
53
81
|
edges: validEdges.map((e) => ({
|
|
54
82
|
id: e.id,
|
|
55
|
-
source: e.source_memory_id,
|
|
56
|
-
target: e.target_memory_id,
|
|
83
|
+
source: e.source_memory_id || e.source_persona_id,
|
|
84
|
+
target: e.target_memory_id || e.target_persona_id,
|
|
57
85
|
relationship: e.relationship_type,
|
|
58
86
|
weight: e.weight,
|
|
87
|
+
sourceType: e.source_persona_id ? "persona" : "memory",
|
|
88
|
+
targetType: e.target_persona_id ? "persona" : "memory",
|
|
59
89
|
})),
|
|
60
90
|
},
|
|
61
91
|
});
|
|
@@ -68,11 +98,15 @@ function registerGraphRoutes(router) {
|
|
|
68
98
|
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
69
99
|
return await tx `
|
|
70
100
|
SELECT e.id, e.source_memory_id, e.target_memory_id,
|
|
101
|
+
e.source_persona_id, e.target_persona_id,
|
|
71
102
|
e.relationship_type, e.weight, e.created_at,
|
|
72
|
-
s.content AS source_content, t.content AS target_content
|
|
103
|
+
s.content AS source_content, t.content AS target_content,
|
|
104
|
+
sp.category AS source_persona_category, tp.category AS target_persona_category
|
|
73
105
|
FROM entity_edges e
|
|
74
106
|
LEFT JOIN memory_semantic s ON e.source_memory_id = s.id
|
|
75
107
|
LEFT JOIN memory_semantic t ON e.target_memory_id = t.id
|
|
108
|
+
LEFT JOIN agent_persona sp ON e.source_persona_id = sp.id
|
|
109
|
+
LEFT JOIN agent_persona tp ON e.target_persona_id = tp.id
|
|
76
110
|
WHERE e.agent_id = ${agentId}
|
|
77
111
|
ORDER BY e.created_at DESC
|
|
78
112
|
LIMIT 200
|
|
@@ -80,7 +114,7 @@ function registerGraphRoutes(router) {
|
|
|
80
114
|
});
|
|
81
115
|
(0, helpers_js_1.sendJson)(res, 200, { ok: true, data: rows });
|
|
82
116
|
});
|
|
83
|
-
// CREATE EDGE
|
|
117
|
+
// CREATE EDGE (supports memory↔memory and persona↔memory)
|
|
84
118
|
router.post("/api/edges", async (req, res, ctx) => {
|
|
85
119
|
const agentId = ctx.query.agentId || "main";
|
|
86
120
|
const body = await (0, helpers_js_1.parseBody)(req);
|
|
@@ -93,12 +127,16 @@ function registerGraphRoutes(router) {
|
|
|
93
127
|
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
94
128
|
return await tx `
|
|
95
129
|
INSERT INTO entity_edges (
|
|
96
|
-
agent_id, source_memory_id, target_memory_id,
|
|
130
|
+
agent_id, source_memory_id, target_memory_id,
|
|
131
|
+
source_persona_id, target_persona_id,
|
|
132
|
+
relationship_type, weight
|
|
97
133
|
) VALUES (
|
|
98
|
-
${agentId},
|
|
134
|
+
${agentId},
|
|
135
|
+
${data.source_memory_id || null}, ${data.target_memory_id || null},
|
|
136
|
+
${data.source_persona_id || null}, ${data.target_persona_id || null},
|
|
99
137
|
${data.relationship_type}, ${data.weight}
|
|
100
138
|
)
|
|
101
|
-
ON CONFLICT
|
|
139
|
+
ON CONFLICT DO NOTHING
|
|
102
140
|
RETURNING id
|
|
103
141
|
`;
|
|
104
142
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../dashboard/routes/graph.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAWH,
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../dashboard/routes/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memories.d.ts","sourceRoot":"","sources":["../../../dashboard/routes/memories.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAetC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"memories.d.ts","sourceRoot":"","sources":["../../../dashboard/routes/memories.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAetC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAqQzD"}
|
|
@@ -18,6 +18,47 @@ const validation_js_1 = require("../../schemas/validation.js");
|
|
|
18
18
|
// REGISTER ROUTES
|
|
19
19
|
// =============================================================================
|
|
20
20
|
function registerMemoryRoutes(router) {
|
|
21
|
+
// SEARCH — Combined text + semantic search for both memories and personas
|
|
22
|
+
router.get("/api/memories/search", async (req, res, ctx) => {
|
|
23
|
+
const agentId = ctx.query.agentId || "main";
|
|
24
|
+
const q = ctx.query.search || "";
|
|
25
|
+
if (q.length < 2)
|
|
26
|
+
return (0, helpers_js_1.sendJson)(res, 200, { ok: true, data: [] });
|
|
27
|
+
const sql = (0, db_js_1.getSql)();
|
|
28
|
+
try {
|
|
29
|
+
const embedding = await (0, db_js_1.getEmbedding)(q);
|
|
30
|
+
const rows = await sql.begin(async (tx) => {
|
|
31
|
+
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
32
|
+
// Search both memories and personas by cosine distance
|
|
33
|
+
return await tx `
|
|
34
|
+
WITH memory_matches AS (
|
|
35
|
+
SELECT id, content, 'memory' as type,
|
|
36
|
+
1 - (embedding <=> ${JSON.stringify(embedding)}) AS similarity
|
|
37
|
+
FROM memory_semantic
|
|
38
|
+
WHERE agent_id = ${agentId} AND is_archived = false
|
|
39
|
+
),
|
|
40
|
+
persona_matches AS (
|
|
41
|
+
SELECT id, ('[' || category || '] ' || content)::text as content, 'persona' as type,
|
|
42
|
+
1 - (embedding <=> ${JSON.stringify(embedding)}) AS similarity
|
|
43
|
+
FROM agent_persona
|
|
44
|
+
WHERE agent_id = ${agentId}
|
|
45
|
+
)
|
|
46
|
+
SELECT id, content, type, similarity
|
|
47
|
+
FROM (
|
|
48
|
+
SELECT * FROM memory_matches
|
|
49
|
+
UNION ALL
|
|
50
|
+
SELECT * FROM persona_matches
|
|
51
|
+
) combined
|
|
52
|
+
ORDER BY similarity DESC
|
|
53
|
+
LIMIT 15
|
|
54
|
+
`;
|
|
55
|
+
});
|
|
56
|
+
(0, helpers_js_1.sendJson)(res, 200, { ok: true, data: rows });
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
(0, helpers_js_1.sendError)(res, 500, err instanceof Error ? err.message : "Search failed");
|
|
60
|
+
}
|
|
61
|
+
});
|
|
21
62
|
// LIST — paginated, filterable
|
|
22
63
|
router.get("/api/memories", async (_req, res, ctx) => {
|
|
23
64
|
const q = validation_js_1.MemoryListQuerySchema.parse(ctx.query);
|
|
@@ -146,6 +187,31 @@ function registerMemoryRoutes(router) {
|
|
|
146
187
|
return (0, helpers_js_1.sendError)(res, 404, "Memory not found");
|
|
147
188
|
(0, helpers_js_1.sendJson)(res, 200, { ok: true, data: rows[0] });
|
|
148
189
|
});
|
|
190
|
+
// EDGES for a specific memory
|
|
191
|
+
router.get("/api/memories/:id/edges", async (_req, res, ctx) => {
|
|
192
|
+
const agentId = ctx.query.agentId || "main";
|
|
193
|
+
const memoryId = ctx.params.id;
|
|
194
|
+
const sql = (0, db_js_1.getSql)();
|
|
195
|
+
const rows = await sql.begin(async (tx) => {
|
|
196
|
+
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
197
|
+
return await tx `
|
|
198
|
+
SELECT e.id, e.source_memory_id, e.target_memory_id,
|
|
199
|
+
e.source_persona_id, e.target_persona_id,
|
|
200
|
+
e.relationship_type, e.weight, e.created_at,
|
|
201
|
+
s.content AS source_content, t.content AS target_content,
|
|
202
|
+
sp.category AS source_persona_category, tp.category AS target_persona_category
|
|
203
|
+
FROM entity_edges e
|
|
204
|
+
LEFT JOIN memory_semantic s ON e.source_memory_id = s.id
|
|
205
|
+
LEFT JOIN memory_semantic t ON e.target_memory_id = t.id
|
|
206
|
+
LEFT JOIN agent_persona sp ON e.source_persona_id = sp.id
|
|
207
|
+
LEFT JOIN agent_persona tp ON e.target_persona_id = tp.id
|
|
208
|
+
WHERE e.agent_id = ${agentId}
|
|
209
|
+
AND (e.source_memory_id = ${memoryId} OR e.target_memory_id = ${memoryId})
|
|
210
|
+
ORDER BY e.created_at DESC
|
|
211
|
+
`;
|
|
212
|
+
});
|
|
213
|
+
(0, helpers_js_1.sendJson)(res, 200, { ok: true, data: rows });
|
|
214
|
+
});
|
|
149
215
|
// DELETE (archive)
|
|
150
216
|
router.delete("/api/memories/:id", async (_req, res, ctx) => {
|
|
151
217
|
const agentId = ctx.query.agentId || "main";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memories.js","sourceRoot":"","sources":["../../../dashboard/routes/memories.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAiBH,
|
|
1
|
+
{"version":3,"file":"memories.js","sourceRoot":"","sources":["../../../dashboard/routes/memories.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Dashboard API Routes — Workspace & agent endpoints.
|
|
3
3
|
*
|
|
4
|
-
* GET
|
|
5
|
-
* GET
|
|
6
|
-
* GET
|
|
4
|
+
* GET /api/agents — List agents
|
|
5
|
+
* GET /api/workspace-files — List .md files from workspace dir
|
|
6
|
+
* GET /api/workspace-files/:filename — Read workspace .md file content
|
|
7
|
+
* POST /api/workspace-import — LLM-powered import of .md file as persona or memory
|
|
7
8
|
*/
|
|
8
9
|
import { Router } from "../router.js";
|
|
9
10
|
export declare function registerWorkspaceRoutes(router: Router): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../dashboard/routes/workspace.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../dashboard/routes/workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAiBtC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAyL5D"}
|
|
@@ -2,20 +2,21 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Dashboard API Routes — Workspace & agent endpoints.
|
|
4
4
|
*
|
|
5
|
-
* GET
|
|
6
|
-
* GET
|
|
7
|
-
* GET
|
|
5
|
+
* GET /api/agents — List agents
|
|
6
|
+
* GET /api/workspace-files — List .md files from workspace dir
|
|
7
|
+
* GET /api/workspace-files/:filename — Read workspace .md file content
|
|
8
|
+
* POST /api/workspace-import — LLM-powered import of .md file as persona or memory
|
|
8
9
|
*/
|
|
9
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
11
|
exports.registerWorkspaceRoutes = registerWorkspaceRoutes;
|
|
11
12
|
const helpers_js_1 = require("../helpers.js");
|
|
12
13
|
const db_js_1 = require("../../services/db.js");
|
|
14
|
+
const memoryService_js_1 = require("../../services/memoryService.js");
|
|
15
|
+
const llm_js_1 = require("../../services/llm.js");
|
|
13
16
|
const promises_1 = require("node:fs/promises");
|
|
14
17
|
const node_path_1 = require("node:path");
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
// =============================================================================
|
|
18
|
-
// Workspace directory is now stored in the database per agent.
|
|
18
|
+
const zod_1 = require("zod");
|
|
19
|
+
const validation_js_1 = require("../../schemas/validation.js");
|
|
19
20
|
// =============================================================================
|
|
20
21
|
// REGISTER ROUTES
|
|
21
22
|
// =============================================================================
|
|
@@ -78,5 +79,116 @@ function registerWorkspaceRoutes(router) {
|
|
|
78
79
|
(0, helpers_js_1.sendError)(res, 404, `File not found in workspace`);
|
|
79
80
|
}
|
|
80
81
|
});
|
|
82
|
+
// WORKSPACE IMPORT — LLM-powered import of .md file as persona entries or memory chunks
|
|
83
|
+
router.post("/api/workspace-import", async (req, res, ctx) => {
|
|
84
|
+
const agentId = ctx.query.agentId || "main";
|
|
85
|
+
const body = await (0, helpers_js_1.parseBody)(req);
|
|
86
|
+
if (!body)
|
|
87
|
+
return (0, helpers_js_1.sendError)(res, 400, "Invalid JSON body");
|
|
88
|
+
try {
|
|
89
|
+
const data = validation_js_1.WorkspaceImportSchema.parse(body);
|
|
90
|
+
const sql = (0, db_js_1.getSql)();
|
|
91
|
+
// Read the workspace file
|
|
92
|
+
const agents = await sql `SELECT workspace_dir FROM agents WHERE id = ${agentId}`;
|
|
93
|
+
const workspaceDir = agents[0]?.workspace_dir;
|
|
94
|
+
if (!workspaceDir) {
|
|
95
|
+
return (0, helpers_js_1.sendError)(res, 400, "Workspace directory not configured for this agent");
|
|
96
|
+
}
|
|
97
|
+
// Security check
|
|
98
|
+
if (data.filename.includes("..") || data.filename.includes("/")) {
|
|
99
|
+
return (0, helpers_js_1.sendError)(res, 400, "No path traversal allowed");
|
|
100
|
+
}
|
|
101
|
+
const markdownText = await (0, promises_1.readFile)((0, node_path_1.join)(workspaceDir, data.filename), "utf-8");
|
|
102
|
+
await (0, memoryService_js_1.ensureAgent)(agentId);
|
|
103
|
+
if (data.target === "persona") {
|
|
104
|
+
// Use LLM to semantically chunk into persona entries (same as bootstrap_persona.ts)
|
|
105
|
+
const systemPrompt = `You are an expert data architect. Break down this Markdown file into discrete, atomic semantic chunks.
|
|
106
|
+
Extract the core rules, behaviors, and instructions.
|
|
107
|
+
|
|
108
|
+
Output your response EXCLUSIVELY as a raw JSON array of objects. Do not use markdown blocks.
|
|
109
|
+
Each object must have:
|
|
110
|
+
- "category": A short, unique identifier for this rule (max 50 chars, e.g., "communication_style", "discord_rules").
|
|
111
|
+
- "content": The actual text of the rule or instruction.
|
|
112
|
+
- "is_always_active": Boolean. Set to true ONLY for core identity traits that must be injected into every prompt. Set to false if situational.`;
|
|
113
|
+
const combined = `${systemPrompt}\n\nHere is the file to chunk:\n\n${markdownText}`;
|
|
114
|
+
const jsonString = await (0, llm_js_1.callLLMviaAgent)(combined);
|
|
115
|
+
let chunks;
|
|
116
|
+
try {
|
|
117
|
+
chunks = zod_1.z.array(validation_js_1.PersonaChunkSchema).parse(JSON.parse(jsonString));
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return (0, helpers_js_1.sendError)(res, 500, "LLM returned invalid persona chunks");
|
|
121
|
+
}
|
|
122
|
+
let stored = 0;
|
|
123
|
+
for (const chunk of chunks) {
|
|
124
|
+
try {
|
|
125
|
+
const embedding = await (0, db_js_1.getEmbedding)(chunk.content);
|
|
126
|
+
await sql.begin(async (tx) => {
|
|
127
|
+
await tx `SELECT set_config('app.current_agent_id', ${agentId}, true)`;
|
|
128
|
+
await tx `
|
|
129
|
+
INSERT INTO agent_persona (
|
|
130
|
+
agent_id, access_scope, category, content, is_always_active, embedding
|
|
131
|
+
) VALUES (
|
|
132
|
+
${agentId}, 'private', ${chunk.category}, ${chunk.content},
|
|
133
|
+
${chunk.is_always_active}, ${JSON.stringify(embedding)}
|
|
134
|
+
)
|
|
135
|
+
ON CONFLICT (agent_id, category)
|
|
136
|
+
DO UPDATE SET
|
|
137
|
+
content = EXCLUDED.content,
|
|
138
|
+
embedding = EXCLUDED.embedding,
|
|
139
|
+
is_always_active = EXCLUDED.is_always_active
|
|
140
|
+
`;
|
|
141
|
+
});
|
|
142
|
+
stored++;
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
console.error(`[IMPORT] Failed to store persona "${chunk.category}":`, err);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
(0, helpers_js_1.sendJson)(res, 201, {
|
|
149
|
+
ok: true,
|
|
150
|
+
data: { target: "persona", imported: stored, total: chunks.length, filename: data.filename },
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
// Memory target: use LLM to extract durable facts
|
|
155
|
+
const systemPrompt = `You are a knowledge extraction expert. Extract discrete, atomic facts from this Markdown file.
|
|
156
|
+
Each fact should be a standalone piece of knowledge that is worth remembering.
|
|
157
|
+
|
|
158
|
+
Output your response EXCLUSIVELY as a raw JSON array of strings. Do not use markdown blocks.
|
|
159
|
+
Each string should be a single fact or piece of knowledge.`;
|
|
160
|
+
const combined = `${systemPrompt}\n\nHere is the file:\n\n${markdownText}`;
|
|
161
|
+
const jsonString = await (0, llm_js_1.callLLMviaAgent)(combined);
|
|
162
|
+
let facts;
|
|
163
|
+
try {
|
|
164
|
+
facts = zod_1.z.array(zod_1.z.string().min(1)).parse(JSON.parse(jsonString));
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return (0, helpers_js_1.sendError)(res, 500, "LLM returned invalid memory facts");
|
|
168
|
+
}
|
|
169
|
+
const results = [];
|
|
170
|
+
for (const fact of facts) {
|
|
171
|
+
const result = await (0, memoryService_js_1.storeMemory)(agentId, fact, "private", {
|
|
172
|
+
tier: data.tier,
|
|
173
|
+
source_uri: data.filename,
|
|
174
|
+
category: "imported",
|
|
175
|
+
});
|
|
176
|
+
results.push(result);
|
|
177
|
+
}
|
|
178
|
+
(0, helpers_js_1.sendJson)(res, 201, {
|
|
179
|
+
ok: true,
|
|
180
|
+
data: {
|
|
181
|
+
target: "memory",
|
|
182
|
+
imported: results.filter((r) => r.status === "stored").length,
|
|
183
|
+
total: facts.length,
|
|
184
|
+
filename: data.filename,
|
|
185
|
+
},
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
(0, helpers_js_1.sendError)(res, 500, err instanceof Error ? err.message : "Import failed");
|
|
191
|
+
}
|
|
192
|
+
});
|
|
81
193
|
}
|
|
82
194
|
//# sourceMappingURL=workspace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../dashboard/routes/workspace.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../dashboard/routes/workspace.ts"],"names":[],"mappings":"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"}
|
package/dist/dashboard/server.js
CHANGED
|
@@ -48,7 +48,7 @@ function startDashboard(opts = {}) {
|
|
|
48
48
|
// Static files are NOT compiled by tsc — they live in dashboard/public/
|
|
49
49
|
const projectRoot = (0, node_path_1.join)((0, node_path_1.dirname)(__filename), "..", "..");
|
|
50
50
|
const publicDir = (0, node_path_1.join)(projectRoot, "dashboard", "public");
|
|
51
|
-
const ambientDir = (0, node_path_1.join)(projectRoot, "node_modules", "@ambientcss", "css");
|
|
51
|
+
const ambientDir = (0, node_path_1.join)(projectRoot, "node_modules", "@ambientcss", "css", "dist");
|
|
52
52
|
_server = (0, node_http_1.createServer)(async (req, res) => {
|
|
53
53
|
const url = req.url || "/";
|
|
54
54
|
const pathname = url.split("?")[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../dashboard/server.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+BH,wCAiEC;AAMD,sCAOC;AA3GD,yCAAiD;AACjD,yCAA0C;AAC1C,2CAAqC;AACrC,6CAAsD;AACtD,sDAA6D;AAC7D,sDAA4D;AAC5D,gDAAwD;AACxD,oDAA2D;AAC3D,wDAAgE;AAChE,kDAA0D;AAE1D,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,IAAI,OAAO,GAAkB,IAAI,CAAC;AAClC,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,YAAY,GAAG,WAAW,CAAC;AAYjC,SAAgB,cAAc,CAAC,OAAyB,EAAE;IACxD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC;IAE9C,2CAA2C;IAC3C,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,uCAAuC,IAAI,wCAAwC,CAAC,CAAC;QAClG,OAAO,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,kBAAM,EAAE,CAAC;IAC5B,IAAA,mCAAqB,EAAC,MAAM,CAAC,CAAC;IAC9B,IAAA,kCAAoB,EAAC,MAAM,CAAC,CAAC;IAC7B,IAAA,8BAAmB,EAAC,MAAM,CAAC,CAAC;IAC5B,IAAA,iCAAoB,EAAC,MAAM,CAAC,CAAC;IAC7B,IAAA,sCAAuB,EAAC,MAAM,CAAC,CAAC;IAChC,IAAA,gCAAoB,EAAC,MAAM,CAAC,CAAC;IAE7B,kCAAkC;IAClC,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,IAAA,mBAAO,EAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../dashboard/server.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+BH,wCAiEC;AAMD,sCAOC;AA3GD,yCAAiD;AACjD,yCAA0C;AAC1C,2CAAqC;AACrC,6CAAsD;AACtD,sDAA6D;AAC7D,sDAA4D;AAC5D,gDAAwD;AACxD,oDAA2D;AAC3D,wDAAgE;AAChE,kDAA0D;AAE1D,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,IAAI,OAAO,GAAkB,IAAI,CAAC;AAClC,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,YAAY,GAAG,WAAW,CAAC;AAYjC,SAAgB,cAAc,CAAC,OAAyB,EAAE;IACxD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC;IAE9C,2CAA2C;IAC3C,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,uCAAuC,IAAI,wCAAwC,CAAC,CAAC;QAClG,OAAO,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,kBAAM,EAAE,CAAC;IAC5B,IAAA,mCAAqB,EAAC,MAAM,CAAC,CAAC;IAC9B,IAAA,kCAAoB,EAAC,MAAM,CAAC,CAAC;IAC7B,IAAA,8BAAmB,EAAC,MAAM,CAAC,CAAC;IAC5B,IAAA,iCAAoB,EAAC,MAAM,CAAC,CAAC;IAC7B,IAAA,sCAAuB,EAAC,MAAM,CAAC,CAAC;IAChC,IAAA,gCAAoB,EAAC,MAAM,CAAC,CAAC;IAE7B,kCAAkC;IAClC,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,IAAA,mBAAO,EAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAEnF,OAAO,GAAG,IAAA,wBAAY,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;QAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnC,aAAa;QACb,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO;gBAAE,IAAA,sBAAS,EAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,yCAAyC;QACzC,IAAI,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAW,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,UAAU,IAAI,cAAc,CAAC,CAAC;YAClF,IAAI,CAAC,MAAM;gBAAE,IAAA,sBAAS,EAAC,GAAG,EAAE,GAAG,EAAE,uBAAuB,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,eAAe;QACf,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAW,EAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,yDAAyD;YACzD,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAW,EAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ;gBAAE,IAAA,sBAAS,EAAC,GAAG,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,gDAAgD,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,SAAgB,aAAa;IAC3B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;YACjB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpJ,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChL,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAoBrH,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAgDxF,QAAA,MAAM,sBAAsB;;;;kBAKZ,GAAG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpJ,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChL,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAoBrH,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAgDxF,QAAA,MAAM,sBAAsB;;;;kBAKZ,GAAG;CAupBlB,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|