agentopia 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/.claude/settings.local.json +28 -0
- package/dist/app.d.ts +10 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +121 -0
- package/dist/app.js.map +1 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -0
- package/dist/db/database.d.ts +5 -0
- package/dist/db/database.d.ts.map +1 -0
- package/dist/db/database.js +39 -0
- package/dist/db/database.js.map +1 -0
- package/dist/db/schema.d.ts +3 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +621 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +4 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +9 -0
- package/dist/logger.js.map +1 -0
- package/dist/middleware/auth.d.ts +13 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +733 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/routes/agents.d.ts +3 -0
- package/dist/routes/agents.d.ts.map +1 -0
- package/dist/routes/agents.js +1058 -0
- package/dist/routes/agents.js.map +1 -0
- package/dist/routes/issues.d.ts +4 -0
- package/dist/routes/issues.d.ts.map +1 -0
- package/dist/routes/issues.js +946 -0
- package/dist/routes/issues.js.map +1 -0
- package/dist/routes/knowledge.d.ts +3 -0
- package/dist/routes/knowledge.d.ts.map +1 -0
- package/dist/routes/knowledge.js +117 -0
- package/dist/routes/knowledge.js.map +1 -0
- package/dist/routes/memories.d.ts +3 -0
- package/dist/routes/memories.d.ts.map +1 -0
- package/dist/routes/memories.js +115 -0
- package/dist/routes/memories.js.map +1 -0
- package/dist/routes/messages.d.ts +3 -0
- package/dist/routes/messages.d.ts.map +1 -0
- package/dist/routes/messages.js +130 -0
- package/dist/routes/messages.js.map +1 -0
- package/dist/routes/projects.d.ts +3 -0
- package/dist/routes/projects.d.ts.map +1 -0
- package/dist/routes/projects.js +754 -0
- package/dist/routes/projects.js.map +1 -0
- package/dist/routes/templates.d.ts +3 -0
- package/dist/routes/templates.d.ts.map +1 -0
- package/dist/routes/templates.js +117 -0
- package/dist/routes/templates.js.map +1 -0
- package/dist/routes/ui.d.ts +3 -0
- package/dist/routes/ui.d.ts.map +1 -0
- package/dist/routes/ui.js +38 -0
- package/dist/routes/ui.js.map +1 -0
- package/dist/services/agent-hierarchy.d.ts +14 -0
- package/dist/services/agent-hierarchy.d.ts.map +1 -0
- package/dist/services/agent-hierarchy.js +58 -0
- package/dist/services/agent-hierarchy.js.map +1 -0
- package/dist/services/agent-issue-batch.d.ts +17 -0
- package/dist/services/agent-issue-batch.d.ts.map +1 -0
- package/dist/services/agent-issue-batch.js +57 -0
- package/dist/services/agent-issue-batch.js.map +1 -0
- package/dist/services/controller.d.ts +4 -0
- package/dist/services/controller.d.ts.map +1 -0
- package/dist/services/controller.js +237 -0
- package/dist/services/controller.js.map +1 -0
- package/dist/services/langgraph-runner.d.ts +33 -0
- package/dist/services/langgraph-runner.d.ts.map +1 -0
- package/dist/services/langgraph-runner.js +478 -0
- package/dist/services/langgraph-runner.js.map +1 -0
- package/dist/services/orchestrator.d.ts +9 -0
- package/dist/services/orchestrator.d.ts.map +1 -0
- package/dist/services/orchestrator.js +116 -0
- package/dist/services/orchestrator.js.map +1 -0
- package/dist/services/pre-controller.d.ts +7 -0
- package/dist/services/pre-controller.d.ts.map +1 -0
- package/dist/services/pre-controller.js +101 -0
- package/dist/services/pre-controller.js.map +1 -0
- package/dist/services/process-manager.d.ts +67 -0
- package/dist/services/process-manager.d.ts.map +1 -0
- package/dist/services/process-manager.js +938 -0
- package/dist/services/process-manager.js.map +1 -0
- package/dist/services/project-permissions.d.ts +84 -0
- package/dist/services/project-permissions.d.ts.map +1 -0
- package/dist/services/project-permissions.js +129 -0
- package/dist/services/project-permissions.js.map +1 -0
- package/dist/services/scheduler.d.ts +6 -0
- package/dist/services/scheduler.d.ts.map +1 -0
- package/dist/services/scheduler.js +300 -0
- package/dist/services/scheduler.js.map +1 -0
- package/dist/services/system-prompt.d.ts +3 -0
- package/dist/services/system-prompt.d.ts.map +1 -0
- package/dist/services/system-prompt.js +285 -0
- package/dist/services/system-prompt.js.map +1 -0
- package/dist/services/terminal.d.ts +18 -0
- package/dist/services/terminal.d.ts.map +1 -0
- package/dist/services/terminal.js +222 -0
- package/dist/services/terminal.js.map +1 -0
- package/dist/services/websocket.d.ts +15 -0
- package/dist/services/websocket.d.ts.map +1 -0
- package/dist/services/websocket.js +204 -0
- package/dist/services/websocket.js.map +1 -0
- package/dist/types.d.ts +108 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/env.ini +18 -0
- package/package.json +38 -0
- package/project_id +0 -0
- package/public/admin-users.html +188 -0
- package/public/agent.html +199 -0
- package/public/css/issues.css +275 -0
- package/public/css/style.css +1299 -0
- package/public/index.html +166 -0
- package/public/issue.html +76 -0
- package/public/js/agent.js +19 -0
- package/public/js/common.js +735 -0
- package/public/js/dashboard.js +772 -0
- package/public/js/files-panel.js +703 -0
- package/public/js/interactive-terminal.js +201 -0
- package/public/js/issue-renderer.js +559 -0
- package/public/js/issue.js +57 -0
- package/public/js/project.js +2425 -0
- package/public/js/terminal.js +564 -0
- package/public/project.html +430 -0
- package/public/terminal.html +67 -0
- package/public/vendor/marked.js +74 -0
- package/public/vendor/xterm-addon-fit.js +2 -0
- package/public/vendor/xterm.css +209 -0
- package/public/vendor/xterm.js +2 -0
- package/send_message_and_update_issue.js +65 -0
- package/tsconfig.json +19 -0
- package/update_round2_and_create_round3.js +284 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/routes/issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/routes/knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAK1C,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAyItE"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerKnowledgeRoutes = registerKnowledgeRoutes;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const database_1 = require("../db/database");
|
|
6
|
+
const project_permissions_1 = require("../services/project-permissions");
|
|
7
|
+
function registerKnowledgeRoutes(fastify) {
|
|
8
|
+
// List knowledge entries for a project (supports FTS5 full-text search via ?q=)
|
|
9
|
+
fastify.get('/api/projects/:pid/knowledge', async (request, reply) => {
|
|
10
|
+
const db = (0, database_1.getDatabase)();
|
|
11
|
+
const { pid } = request.params;
|
|
12
|
+
const { tag, importance, q } = request.query;
|
|
13
|
+
const access = (0, project_permissions_1.ensureProjectAccess)(db, request, reply, pid);
|
|
14
|
+
if (!access)
|
|
15
|
+
return;
|
|
16
|
+
if (q && q.trim()) {
|
|
17
|
+
// FTS5 full-text search
|
|
18
|
+
let sql = `SELECT ke.*, rank
|
|
19
|
+
FROM knowledge_fts fts
|
|
20
|
+
JOIN knowledge_entries ke ON ke.rowid = fts.rowid
|
|
21
|
+
WHERE knowledge_fts MATCH ? AND ke.project_id = ?`;
|
|
22
|
+
const params = [q.trim(), pid];
|
|
23
|
+
if (importance) {
|
|
24
|
+
sql += ' AND ke.importance = ?';
|
|
25
|
+
params.push(importance);
|
|
26
|
+
}
|
|
27
|
+
if (tag) {
|
|
28
|
+
sql += " AND (',' || ke.tags || ',' LIKE ?)";
|
|
29
|
+
params.push(`%,${tag},%`);
|
|
30
|
+
}
|
|
31
|
+
sql += ' ORDER BY rank';
|
|
32
|
+
const entries = db.prepare(sql).all(...params);
|
|
33
|
+
return { entries };
|
|
34
|
+
}
|
|
35
|
+
// Standard LIKE-based listing
|
|
36
|
+
let sql = 'SELECT * FROM knowledge_entries WHERE project_id = ?';
|
|
37
|
+
const params = [pid];
|
|
38
|
+
if (importance) {
|
|
39
|
+
sql += ' AND importance = ?';
|
|
40
|
+
params.push(importance);
|
|
41
|
+
}
|
|
42
|
+
if (tag) {
|
|
43
|
+
sql += " AND (',' || tags || ',' LIKE ?)";
|
|
44
|
+
params.push(`%,${tag},%`);
|
|
45
|
+
}
|
|
46
|
+
sql += ' ORDER BY importance ASC, updated_at DESC';
|
|
47
|
+
const entries = db.prepare(sql).all(...params);
|
|
48
|
+
return { entries };
|
|
49
|
+
});
|
|
50
|
+
// Create knowledge entry
|
|
51
|
+
fastify.post('/api/projects/:pid/knowledge', async (request, reply) => {
|
|
52
|
+
const db = (0, database_1.getDatabase)();
|
|
53
|
+
const { pid } = request.params;
|
|
54
|
+
const { title, content, tags, importance, created_by } = request.body;
|
|
55
|
+
const access = (0, project_permissions_1.ensureProjectAccess)(db, request, reply, pid, true);
|
|
56
|
+
if (!access)
|
|
57
|
+
return;
|
|
58
|
+
if (!title)
|
|
59
|
+
return reply.status(400).send({ error: 'title is required' });
|
|
60
|
+
const validImportance = ['high', 'medium', 'low'];
|
|
61
|
+
if (importance && !validImportance.includes(importance)) {
|
|
62
|
+
return reply.status(400).send({ error: `Invalid importance. Must be one of: ${validImportance.join(', ')}` });
|
|
63
|
+
}
|
|
64
|
+
const id = (0, uuid_1.v4)();
|
|
65
|
+
db.prepare('INSERT INTO knowledge_entries (id, project_id, title, content, tags, importance, created_by) VALUES (?, ?, ?, ?, ?, ?, ?)').run(id, pid, title, content || '', tags || '', importance || 'medium', created_by || 'user');
|
|
66
|
+
const entry = db.prepare('SELECT * FROM knowledge_entries WHERE id = ?').get(id);
|
|
67
|
+
return reply.status(201).send(entry);
|
|
68
|
+
});
|
|
69
|
+
// Get single knowledge entry
|
|
70
|
+
fastify.get('/api/knowledge/:id', async (request, reply) => {
|
|
71
|
+
const db = (0, database_1.getDatabase)();
|
|
72
|
+
const access = (0, project_permissions_1.ensureKnowledgeAccess)(db, request, reply, request.params.id);
|
|
73
|
+
if (!access)
|
|
74
|
+
return;
|
|
75
|
+
const entry = db.prepare('SELECT * FROM knowledge_entries WHERE id = ?').get(request.params.id);
|
|
76
|
+
if (!entry)
|
|
77
|
+
return reply.status(404).send({ error: 'Knowledge entry not found' });
|
|
78
|
+
return entry;
|
|
79
|
+
});
|
|
80
|
+
// Update knowledge entry
|
|
81
|
+
fastify.put('/api/knowledge/:id', async (request, reply) => {
|
|
82
|
+
const db = (0, database_1.getDatabase)();
|
|
83
|
+
const { id } = request.params;
|
|
84
|
+
const body = request.body;
|
|
85
|
+
const access = (0, project_permissions_1.ensureKnowledgeAccess)(db, request, reply, id, true);
|
|
86
|
+
if (!access)
|
|
87
|
+
return;
|
|
88
|
+
const existing = db.prepare('SELECT * FROM knowledge_entries WHERE id = ?').get(id);
|
|
89
|
+
if (!existing)
|
|
90
|
+
return reply.status(404).send({ error: 'Knowledge entry not found' });
|
|
91
|
+
const validImportance = ['high', 'medium', 'low'];
|
|
92
|
+
if (body.importance && !validImportance.includes(body.importance)) {
|
|
93
|
+
return reply.status(400).send({ error: `Invalid importance. Must be one of: ${validImportance.join(', ')}` });
|
|
94
|
+
}
|
|
95
|
+
const title = body.title ?? existing.title;
|
|
96
|
+
const content = body.content ?? existing.content;
|
|
97
|
+
const tags = body.tags ?? existing.tags;
|
|
98
|
+
const importance = body.importance ?? existing.importance;
|
|
99
|
+
db.prepare("UPDATE knowledge_entries SET title = ?, content = ?, tags = ?, importance = ?, updated_at = datetime('now') WHERE id = ?").run(title, content, tags, importance, id);
|
|
100
|
+
const updated = db.prepare('SELECT * FROM knowledge_entries WHERE id = ?').get(id);
|
|
101
|
+
return updated;
|
|
102
|
+
});
|
|
103
|
+
// Delete knowledge entry
|
|
104
|
+
fastify.delete('/api/knowledge/:id', async (request, reply) => {
|
|
105
|
+
const db = (0, database_1.getDatabase)();
|
|
106
|
+
const { id } = request.params;
|
|
107
|
+
const access = (0, project_permissions_1.ensureKnowledgeAccess)(db, request, reply, id, true);
|
|
108
|
+
if (!access)
|
|
109
|
+
return;
|
|
110
|
+
const existing = db.prepare('SELECT * FROM knowledge_entries WHERE id = ?').get(id);
|
|
111
|
+
if (!existing)
|
|
112
|
+
return reply.status(404).send({ error: 'Knowledge entry not found' });
|
|
113
|
+
db.prepare('DELETE FROM knowledge_entries WHERE id = ?').run(id);
|
|
114
|
+
return { success: true };
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=knowledge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/routes/knowledge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memories.d.ts","sourceRoot":"","sources":["../../src/routes/memories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAK1C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAmInE"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerMemoryRoutes = registerMemoryRoutes;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const database_1 = require("../db/database");
|
|
6
|
+
const project_permissions_1 = require("../services/project-permissions");
|
|
7
|
+
function registerMemoryRoutes(fastify) {
|
|
8
|
+
// Save a memory for an agent
|
|
9
|
+
fastify.post('/api/agents/:id/memories', async (request, reply) => {
|
|
10
|
+
const db = (0, database_1.getDatabase)();
|
|
11
|
+
const { id: agentId } = request.params;
|
|
12
|
+
const { content, tags, scope, session_id, expires_at } = request.body;
|
|
13
|
+
const access = (0, project_permissions_1.ensureAgentAccess)(db, request, reply, agentId, true);
|
|
14
|
+
if (!access)
|
|
15
|
+
return;
|
|
16
|
+
if (!content)
|
|
17
|
+
return reply.status(400).send({ error: 'content is required' });
|
|
18
|
+
const validScope = ['private', 'project'];
|
|
19
|
+
if (scope && !validScope.includes(scope)) {
|
|
20
|
+
return reply.status(400).send({ error: `Invalid scope. Must be one of: ${validScope.join(', ')}` });
|
|
21
|
+
}
|
|
22
|
+
const memId = (0, uuid_1.v4)();
|
|
23
|
+
db.prepare('INSERT INTO agent_memories (id, agent_id, project_id, session_id, content, tags, scope, expires_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)').run(memId, agentId, access.entity.project_id, session_id || null, content, tags || '', scope || 'private', expires_at || null);
|
|
24
|
+
const entry = db.prepare('SELECT * FROM agent_memories WHERE id = ?').get(memId);
|
|
25
|
+
return reply.status(201).send(entry);
|
|
26
|
+
});
|
|
27
|
+
// Query memories for an agent (supports FTS via ?q=)
|
|
28
|
+
fastify.get('/api/agents/:id/memories', async (request, reply) => {
|
|
29
|
+
const db = (0, database_1.getDatabase)();
|
|
30
|
+
const { id: agentId } = request.params;
|
|
31
|
+
const { q, scope, limit } = request.query;
|
|
32
|
+
const maxResults = Math.min(parseInt(limit || '50', 10), 200);
|
|
33
|
+
const access = (0, project_permissions_1.ensureAgentAccess)(db, request, reply, agentId);
|
|
34
|
+
if (!access)
|
|
35
|
+
return;
|
|
36
|
+
const projectId = access.entity.project_id;
|
|
37
|
+
if (q && q.trim()) {
|
|
38
|
+
// FTS5 search across agent's own memories + project-scope memories
|
|
39
|
+
const memories = db.prepare(`
|
|
40
|
+
SELECT am.*, rank
|
|
41
|
+
FROM memories_fts fts
|
|
42
|
+
JOIN agent_memories am ON am.rowid = fts.rowid
|
|
43
|
+
WHERE memories_fts MATCH ?
|
|
44
|
+
AND am.project_id = ?
|
|
45
|
+
AND (am.agent_id = ? OR am.scope = 'project')
|
|
46
|
+
AND (am.expires_at IS NULL OR am.expires_at > datetime('now'))
|
|
47
|
+
ORDER BY rank
|
|
48
|
+
LIMIT ?
|
|
49
|
+
`).all(q.trim(), projectId, agentId, maxResults);
|
|
50
|
+
return { memories };
|
|
51
|
+
}
|
|
52
|
+
// List memories (own + project scope)
|
|
53
|
+
let sql = `SELECT * FROM agent_memories
|
|
54
|
+
WHERE project_id = ?
|
|
55
|
+
AND (agent_id = ? OR scope = 'project')
|
|
56
|
+
AND (expires_at IS NULL OR expires_at > datetime('now'))`;
|
|
57
|
+
const params = [projectId, agentId];
|
|
58
|
+
if (scope) {
|
|
59
|
+
sql += ' AND scope = ?';
|
|
60
|
+
params.push(scope);
|
|
61
|
+
}
|
|
62
|
+
sql += ' ORDER BY created_at DESC LIMIT ?';
|
|
63
|
+
params.push(maxResults);
|
|
64
|
+
const memories = db.prepare(sql).all(...params);
|
|
65
|
+
return { memories };
|
|
66
|
+
});
|
|
67
|
+
// Query project-wide memories
|
|
68
|
+
fastify.get('/api/projects/:pid/memories', async (request, reply) => {
|
|
69
|
+
const db = (0, database_1.getDatabase)();
|
|
70
|
+
const { pid } = request.params;
|
|
71
|
+
const { q, limit } = request.query;
|
|
72
|
+
const maxResults = Math.min(parseInt(limit || '50', 10), 200);
|
|
73
|
+
const access = (0, project_permissions_1.ensureProjectAccess)(db, request, reply, pid);
|
|
74
|
+
if (!access)
|
|
75
|
+
return;
|
|
76
|
+
if (q && q.trim()) {
|
|
77
|
+
const memories = db.prepare(`
|
|
78
|
+
SELECT am.*, rank
|
|
79
|
+
FROM memories_fts fts
|
|
80
|
+
JOIN agent_memories am ON am.rowid = fts.rowid
|
|
81
|
+
WHERE memories_fts MATCH ?
|
|
82
|
+
AND am.project_id = ?
|
|
83
|
+
AND am.scope = 'project'
|
|
84
|
+
AND (am.expires_at IS NULL OR am.expires_at > datetime('now'))
|
|
85
|
+
ORDER BY rank
|
|
86
|
+
LIMIT ?
|
|
87
|
+
`).all(q.trim(), pid, maxResults);
|
|
88
|
+
return { memories };
|
|
89
|
+
}
|
|
90
|
+
const memories = db.prepare(`
|
|
91
|
+
SELECT * FROM agent_memories
|
|
92
|
+
WHERE project_id = ? AND scope = 'project'
|
|
93
|
+
AND (expires_at IS NULL OR expires_at > datetime('now'))
|
|
94
|
+
ORDER BY created_at DESC LIMIT ?
|
|
95
|
+
`).all(pid, maxResults);
|
|
96
|
+
return { memories };
|
|
97
|
+
});
|
|
98
|
+
// Delete a memory
|
|
99
|
+
fastify.delete('/api/agents/:id/memories/:memId', async (request, reply) => {
|
|
100
|
+
const db = (0, database_1.getDatabase)();
|
|
101
|
+
const { id: agentId, memId } = request.params;
|
|
102
|
+
const agentAccess = (0, project_permissions_1.ensureAgentAccess)(db, request, reply, agentId, true);
|
|
103
|
+
if (!agentAccess)
|
|
104
|
+
return;
|
|
105
|
+
const memoryAccess = (0, project_permissions_1.ensureMemoryAccess)(db, request, reply, memId, true);
|
|
106
|
+
if (!memoryAccess)
|
|
107
|
+
return;
|
|
108
|
+
if (memoryAccess.entity.agent_id !== agentId) {
|
|
109
|
+
return reply.status(404).send({ error: 'Memory not found' });
|
|
110
|
+
}
|
|
111
|
+
db.prepare('DELETE FROM agent_memories WHERE id = ?').run(memId);
|
|
112
|
+
return { success: true };
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=memories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memories.js","sourceRoot":"","sources":["../../src/routes/memories.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/routes/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAW1C,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAkJpE"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerMessageRoutes = registerMessageRoutes;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const database_1 = require("../db/database");
|
|
6
|
+
const websocket_1 = require("../services/websocket");
|
|
7
|
+
const process_manager_1 = require("../services/process-manager");
|
|
8
|
+
const system_prompt_1 = require("../services/system-prompt");
|
|
9
|
+
const config_1 = require("../config");
|
|
10
|
+
const project_permissions_1 = require("../services/project-permissions");
|
|
11
|
+
const agent_hierarchy_1 = require("../services/agent-hierarchy");
|
|
12
|
+
function registerMessageRoutes(fastify) {
|
|
13
|
+
// Send a message to an agent
|
|
14
|
+
fastify.post('/api/agents/:id/messages/send', async (request, reply) => {
|
|
15
|
+
const db = (0, database_1.getDatabase)();
|
|
16
|
+
const fromAgentId = request.params.id;
|
|
17
|
+
const { to, subject, body, reply_to_id } = request.body;
|
|
18
|
+
if (!to || !body)
|
|
19
|
+
return reply.status(400).send({ error: 'to and body are required' });
|
|
20
|
+
const fromAccess = (0, project_permissions_1.ensureAgentAccess)(db, request, reply, fromAgentId, true);
|
|
21
|
+
if (!fromAccess)
|
|
22
|
+
return;
|
|
23
|
+
const fromAgent = db.prepare('SELECT * FROM agents WHERE id = ?').get(fromAgentId);
|
|
24
|
+
const toAgent = db.prepare('SELECT * FROM agents WHERE id = ?').get(to);
|
|
25
|
+
if (!fromAgent)
|
|
26
|
+
return reply.status(404).send({ error: 'Sender agent not found' });
|
|
27
|
+
if (!toAgent)
|
|
28
|
+
return reply.status(404).send({ error: 'Recipient agent not found' });
|
|
29
|
+
if (toAgent.project_id !== fromAgent.project_id) {
|
|
30
|
+
return reply.status(400).send({ error: 'Recipient agent must belong to the same project' });
|
|
31
|
+
}
|
|
32
|
+
if (!(0, agent_hierarchy_1.canMessageDirectHierarchyOnly)(db, fromAgent, to)) {
|
|
33
|
+
return reply.status(403).send({ error: '只能与直接上级或下属通信' });
|
|
34
|
+
}
|
|
35
|
+
if (reply_to_id) {
|
|
36
|
+
const replyMsg = db.prepare('SELECT id, project_id FROM agent_messages WHERE id = ?').get(reply_to_id);
|
|
37
|
+
if (!replyMsg)
|
|
38
|
+
return reply.status(400).send({ error: 'reply_to message not found' });
|
|
39
|
+
if (replyMsg.project_id !== fromAgent.project_id) {
|
|
40
|
+
return reply.status(400).send({ error: 'reply_to message must belong to the same project' });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const msgId = (0, uuid_1.v4)();
|
|
44
|
+
db.prepare('INSERT INTO agent_messages (id, from_agent_id, to_agent_id, project_id, subject, body, reply_to_id) VALUES (?, ?, ?, ?, ?, ?, ?)').run(msgId, fromAgentId, to, fromAgent.project_id, subject || '', body, reply_to_id || null);
|
|
45
|
+
const message = db.prepare('SELECT * FROM agent_messages WHERE id = ?').get(msgId);
|
|
46
|
+
// WebSocket notification
|
|
47
|
+
(0, websocket_1.broadcastToProject)(fromAgent.project_id, {
|
|
48
|
+
type: 'agent_message',
|
|
49
|
+
projectId: fromAgent.project_id,
|
|
50
|
+
data: { message, from: fromAgent.name, to: toAgent.name },
|
|
51
|
+
});
|
|
52
|
+
// Auto-wake idle agent
|
|
53
|
+
if (!toAgent.paused && toAgent.status !== 'running' && !(0, process_manager_1.isAgentRunning)(toAgent.id)) {
|
|
54
|
+
const project = db.prepare('SELECT * FROM projects WHERE id = ?').get(toAgent.project_id);
|
|
55
|
+
if (project && project.status === 'active') {
|
|
56
|
+
const prompt = `You received a direct message from ${fromAgent.name}.\n\nSubject: ${subject || '(none)'}\nMessage: ${body.slice(0, 500)}`;
|
|
57
|
+
const commandTemplate = toAgent.command_template || project.command_template || config_1.config.defaultCommandTemplate;
|
|
58
|
+
const isRaw = /^\s*(bash|sh|zsh)\s+-c\b/.test(commandTemplate);
|
|
59
|
+
const systemPrompt = isRaw ? undefined : (0, system_prompt_1.buildSystemPrompt)(toAgent, project);
|
|
60
|
+
(0, process_manager_1.startAgentProcess)(toAgent, prompt, commandTemplate, systemPrompt);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return reply.status(201).send(message);
|
|
64
|
+
});
|
|
65
|
+
// Get inbox (messages received by this agent)
|
|
66
|
+
fastify.get('/api/agents/:id/messages', async (request, reply) => {
|
|
67
|
+
const db = (0, database_1.getDatabase)();
|
|
68
|
+
const access = (0, project_permissions_1.ensureAgentAccess)(db, request, reply, request.params.id);
|
|
69
|
+
if (!access)
|
|
70
|
+
return;
|
|
71
|
+
const { id } = request.params;
|
|
72
|
+
const { status, limit } = request.query;
|
|
73
|
+
const maxResults = Math.min(parseInt(limit || '50', 10), 200);
|
|
74
|
+
let sql = `SELECT m.*, a.name as from_name
|
|
75
|
+
FROM agent_messages m
|
|
76
|
+
LEFT JOIN agents a ON a.id = m.from_agent_id
|
|
77
|
+
WHERE m.to_agent_id = ?`;
|
|
78
|
+
const params = [id];
|
|
79
|
+
if (status) {
|
|
80
|
+
sql += ' AND m.status = ?';
|
|
81
|
+
params.push(status);
|
|
82
|
+
}
|
|
83
|
+
sql += ' ORDER BY m.created_at DESC LIMIT ?';
|
|
84
|
+
params.push(maxResults);
|
|
85
|
+
return { messages: db.prepare(sql).all(...params) };
|
|
86
|
+
});
|
|
87
|
+
// Get sent messages
|
|
88
|
+
fastify.get('/api/agents/:id/messages/sent', async (request, reply) => {
|
|
89
|
+
const db = (0, database_1.getDatabase)();
|
|
90
|
+
const access = (0, project_permissions_1.ensureAgentAccess)(db, request, reply, request.params.id);
|
|
91
|
+
if (!access)
|
|
92
|
+
return;
|
|
93
|
+
const { id } = request.params;
|
|
94
|
+
const maxResults = Math.min(parseInt(request.query.limit || '50', 10), 200);
|
|
95
|
+
const messages = db.prepare(`
|
|
96
|
+
SELECT m.*, a.name as to_name
|
|
97
|
+
FROM agent_messages m
|
|
98
|
+
LEFT JOIN agents a ON a.id = m.to_agent_id
|
|
99
|
+
WHERE m.from_agent_id = ?
|
|
100
|
+
ORDER BY m.created_at DESC LIMIT ?
|
|
101
|
+
`).all(id, maxResults);
|
|
102
|
+
return { messages };
|
|
103
|
+
});
|
|
104
|
+
// Mark message as read
|
|
105
|
+
fastify.put('/api/agents/:id/messages/:msgId', async (request, reply) => {
|
|
106
|
+
const db = (0, database_1.getDatabase)();
|
|
107
|
+
const agentAccess = (0, project_permissions_1.ensureAgentAccess)(db, request, reply, request.params.id, true);
|
|
108
|
+
if (!agentAccess)
|
|
109
|
+
return;
|
|
110
|
+
const msgAccess = (0, project_permissions_1.ensureMessageAccess)(db, request, reply, request.params.msgId, true);
|
|
111
|
+
if (!msgAccess)
|
|
112
|
+
return;
|
|
113
|
+
const { msgId } = request.params;
|
|
114
|
+
if (msgAccess.entity.to_agent_id !== request.params.id) {
|
|
115
|
+
return reply.status(404).send({ error: 'Message not found' });
|
|
116
|
+
}
|
|
117
|
+
db.prepare("UPDATE agent_messages SET status = 'read' WHERE id = ?").run(msgId);
|
|
118
|
+
return db.prepare('SELECT * FROM agent_messages WHERE id = ?').get(msgId);
|
|
119
|
+
});
|
|
120
|
+
// Mark all messages as read for an agent
|
|
121
|
+
fastify.post('/api/agents/:id/messages/read-all', async (request, reply) => {
|
|
122
|
+
const db = (0, database_1.getDatabase)();
|
|
123
|
+
const access = (0, project_permissions_1.ensureAgentAccess)(db, request, reply, request.params.id, true);
|
|
124
|
+
if (!access)
|
|
125
|
+
return;
|
|
126
|
+
const result = db.prepare("UPDATE agent_messages SET status = 'read' WHERE to_agent_id = ? AND status = 'unread'").run(request.params.id);
|
|
127
|
+
return { updated: result.changes };
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/routes/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/routes/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA+E1C,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAwwBpE"}
|