kitty-hive 0.1.1 → 0.3.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/README.md +121 -126
- package/README.zh.md +153 -105
- package/channel.ts +194 -431
- package/dist/auth.d.ts +10 -6
- package/dist/auth.js +32 -17
- package/dist/auth.js.map +1 -1
- package/dist/db.d.ts +47 -17
- package/dist/db.js +268 -123
- package/dist/db.js.map +1 -1
- package/dist/federation-heartbeat.d.ts +7 -0
- package/dist/federation-heartbeat.js +45 -0
- package/dist/federation-heartbeat.js.map +1 -0
- package/dist/federation-http.d.ts +7 -0
- package/dist/federation-http.js +287 -0
- package/dist/federation-http.js.map +1 -0
- package/dist/index.js +336 -114
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts +3 -0
- package/dist/log.js +10 -0
- package/dist/log.js.map +1 -0
- package/dist/mcp/agent-tools.d.ts +2 -0
- package/dist/mcp/agent-tools.js +66 -0
- package/dist/mcp/agent-tools.js.map +1 -0
- package/dist/mcp/dm-tools.d.ts +2 -0
- package/dist/mcp/dm-tools.js +54 -0
- package/dist/mcp/dm-tools.js.map +1 -0
- package/dist/mcp/federation-tools.d.ts +2 -0
- package/dist/mcp/federation-tools.js +44 -0
- package/dist/mcp/federation-tools.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.js +62 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/task-tools.d.ts +2 -0
- package/dist/mcp/task-tools.js +128 -0
- package/dist/mcp/task-tools.js.map +1 -0
- package/dist/mcp/team-tools.d.ts +2 -0
- package/dist/mcp/team-tools.js +95 -0
- package/dist/mcp/team-tools.js.map +1 -0
- package/dist/models.d.ts +28 -10
- package/dist/models.js +1 -3
- package/dist/models.js.map +1 -1
- package/dist/server.d.ts +2 -3
- package/dist/server.js +56 -761
- package/dist/server.js.map +1 -1
- package/dist/sessions.d.ts +15 -0
- package/dist/sessions.js +107 -0
- package/dist/sessions.js.map +1 -0
- package/dist/tools/dm.d.ts +3 -2
- package/dist/tools/dm.js +35 -32
- package/dist/tools/dm.js.map +1 -1
- package/dist/tools/start.d.ts +3 -3
- package/dist/tools/start.js +18 -15
- package/dist/tools/start.js.map +1 -1
- package/dist/tools/task.d.ts +7 -2
- package/dist/tools/task.js +113 -15
- package/dist/tools/task.js.map +1 -1
- package/dist/tools/team.d.ts +62 -13
- package/dist/tools/team.js +102 -30
- package/dist/tools/team.js.map +1 -1
- package/package.json +4 -3
- package/dist/tools/room.d.ts +0 -39
- package/dist/tools/room.js +0 -35
- package/dist/tools/room.js.map +0 -1
package/dist/db.js
CHANGED
|
@@ -28,26 +28,45 @@ export function initDB(dbPath) {
|
|
|
28
28
|
CREATE INDEX IF NOT EXISTS idx_agents_token ON agents(token);
|
|
29
29
|
CREATE INDEX IF NOT EXISTS idx_agents_roles ON agents(roles);
|
|
30
30
|
|
|
31
|
-
CREATE TABLE IF NOT EXISTS
|
|
31
|
+
CREATE TABLE IF NOT EXISTS teams (
|
|
32
32
|
id TEXT PRIMARY KEY,
|
|
33
|
-
name TEXT,
|
|
34
|
-
kind TEXT NOT NULL CHECK(kind IN ('lobby','dm','team')),
|
|
33
|
+
name TEXT NOT NULL UNIQUE,
|
|
35
34
|
host_agent_id TEXT REFERENCES agents(id),
|
|
36
35
|
created_at TEXT NOT NULL,
|
|
37
36
|
closed_at TEXT
|
|
38
37
|
);
|
|
39
|
-
CREATE INDEX IF NOT EXISTS idx_rooms_kind ON rooms(kind);
|
|
40
38
|
|
|
41
|
-
CREATE TABLE IF NOT EXISTS
|
|
39
|
+
CREATE TABLE IF NOT EXISTS team_members (
|
|
40
|
+
team_id TEXT NOT NULL REFERENCES teams(id),
|
|
41
|
+
agent_id TEXT NOT NULL REFERENCES agents(id),
|
|
42
|
+
nickname TEXT,
|
|
43
|
+
joined_at TEXT NOT NULL,
|
|
44
|
+
PRIMARY KEY (team_id, agent_id),
|
|
45
|
+
UNIQUE (team_id, nickname)
|
|
46
|
+
);
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_team_members_agent ON team_members(agent_id);
|
|
48
|
+
|
|
49
|
+
CREATE TABLE IF NOT EXISTS team_events (
|
|
42
50
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
43
|
-
|
|
51
|
+
team_id TEXT NOT NULL REFERENCES teams(id),
|
|
44
52
|
seq INTEGER NOT NULL,
|
|
45
|
-
type TEXT NOT NULL CHECK(type IN ('join','leave','message')),
|
|
53
|
+
type TEXT NOT NULL CHECK(type IN ('join','leave','message','rename')),
|
|
46
54
|
actor_agent_id TEXT REFERENCES agents(id),
|
|
47
55
|
payload_json TEXT DEFAULT '{}',
|
|
48
56
|
ts TEXT NOT NULL
|
|
49
57
|
);
|
|
50
|
-
CREATE INDEX IF NOT EXISTS
|
|
58
|
+
CREATE INDEX IF NOT EXISTS idx_team_events_team_seq ON team_events(team_id, seq);
|
|
59
|
+
|
|
60
|
+
CREATE TABLE IF NOT EXISTS dm_messages (
|
|
61
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
62
|
+
seq INTEGER NOT NULL,
|
|
63
|
+
from_agent_id TEXT NOT NULL REFERENCES agents(id),
|
|
64
|
+
to_agent_id TEXT NOT NULL REFERENCES agents(id),
|
|
65
|
+
content TEXT NOT NULL,
|
|
66
|
+
ts TEXT NOT NULL
|
|
67
|
+
);
|
|
68
|
+
CREATE INDEX IF NOT EXISTS idx_dm_to_seq ON dm_messages(to_agent_id, seq);
|
|
69
|
+
CREATE INDEX IF NOT EXISTS idx_dm_from_seq ON dm_messages(from_agent_id, seq);
|
|
51
70
|
|
|
52
71
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
53
72
|
id TEXT PRIMARY KEY,
|
|
@@ -58,7 +77,7 @@ export function initDB(dbPath) {
|
|
|
58
77
|
CHECK(status IN ('created','proposing','approved','in_progress','completed','failed','canceled')),
|
|
59
78
|
workflow_json TEXT,
|
|
60
79
|
current_step INTEGER DEFAULT 0,
|
|
61
|
-
|
|
80
|
+
source_team_id TEXT REFERENCES teams(id),
|
|
62
81
|
input_json TEXT DEFAULT '{}',
|
|
63
82
|
created_at TEXT NOT NULL,
|
|
64
83
|
completed_at TEXT
|
|
@@ -80,7 +99,7 @@ export function initDB(dbPath) {
|
|
|
80
99
|
|
|
81
100
|
CREATE TABLE IF NOT EXISTS read_cursors (
|
|
82
101
|
agent_id TEXT NOT NULL REFERENCES agents(id),
|
|
83
|
-
target_type TEXT NOT NULL CHECK(target_type IN ('
|
|
102
|
+
target_type TEXT NOT NULL CHECK(target_type IN ('team','task','dm')),
|
|
84
103
|
target_id TEXT NOT NULL,
|
|
85
104
|
last_seq INTEGER NOT NULL DEFAULT 0,
|
|
86
105
|
PRIMARY KEY (agent_id, target_type, target_id)
|
|
@@ -96,6 +115,24 @@ export function initDB(dbPath) {
|
|
|
96
115
|
created_at TEXT NOT NULL,
|
|
97
116
|
last_seen TEXT
|
|
98
117
|
);
|
|
118
|
+
`);
|
|
119
|
+
// Idempotent column migrations for federation fields
|
|
120
|
+
function addColumnIfMissing(table, column, decl) {
|
|
121
|
+
const cols = db.prepare(`PRAGMA table_info(${table})`).all().map(c => c.name);
|
|
122
|
+
if (!cols.includes(column))
|
|
123
|
+
db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${decl}`);
|
|
124
|
+
}
|
|
125
|
+
addColumnIfMissing('agents', 'origin_peer', "TEXT NOT NULL DEFAULT ''");
|
|
126
|
+
addColumnIfMissing('agents', 'remote_id', "TEXT NOT NULL DEFAULT ''");
|
|
127
|
+
addColumnIfMissing('tasks', 'originator_peer', "TEXT NOT NULL DEFAULT ''");
|
|
128
|
+
addColumnIfMissing('tasks', 'originator_task_id', "TEXT NOT NULL DEFAULT ''");
|
|
129
|
+
addColumnIfMissing('tasks', 'delegated_peer', "TEXT NOT NULL DEFAULT ''");
|
|
130
|
+
addColumnIfMissing('tasks', 'delegated_task_id', "TEXT NOT NULL DEFAULT ''");
|
|
131
|
+
addColumnIfMissing('peers', 'node_name', "TEXT NOT NULL DEFAULT ''");
|
|
132
|
+
db.exec(`
|
|
133
|
+
CREATE INDEX IF NOT EXISTS idx_agents_remote ON agents(origin_peer, remote_id);
|
|
134
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_delegated ON tasks(delegated_peer, delegated_task_id);
|
|
135
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_originator ON tasks(originator_peer, originator_task_id);
|
|
99
136
|
`);
|
|
100
137
|
return db;
|
|
101
138
|
}
|
|
@@ -105,26 +142,49 @@ export function getDB() {
|
|
|
105
142
|
return db;
|
|
106
143
|
}
|
|
107
144
|
// --- Agent queries ---
|
|
108
|
-
export function createAgent(displayName, tool, roles, expertise) {
|
|
145
|
+
export function createAgent(displayName, tool, roles, expertise, originPeer = '', remoteId = '') {
|
|
109
146
|
const agent = {
|
|
110
147
|
id: ulid(), display_name: displayName, token: generateToken(),
|
|
111
148
|
tool, roles, expertise, status: 'active',
|
|
112
149
|
created_at: nowISO(), last_seen: nowISO(),
|
|
150
|
+
origin_peer: originPeer, remote_id: remoteId,
|
|
113
151
|
};
|
|
114
152
|
getDB().prepare(`
|
|
115
|
-
INSERT INTO agents (id, display_name, token, tool, roles, expertise, status, created_at, last_seen)
|
|
116
|
-
VALUES (@id, @display_name, @token, @tool, @roles, @expertise, @status, @created_at, @last_seen)
|
|
153
|
+
INSERT INTO agents (id, display_name, token, tool, roles, expertise, status, created_at, last_seen, origin_peer, remote_id)
|
|
154
|
+
VALUES (@id, @display_name, @token, @tool, @roles, @expertise, @status, @created_at, @last_seen, @origin_peer, @remote_id)
|
|
117
155
|
`).run(agent);
|
|
118
156
|
return agent;
|
|
119
157
|
}
|
|
158
|
+
// Find or create a placeholder agent representing a remote peer's agent.
|
|
159
|
+
// Looked up by (origin_peer, remote_id) — stable across rename/restart.
|
|
160
|
+
export function ensureRemoteAgentByRemoteId(remoteId, peerName, displayName) {
|
|
161
|
+
const existing = getDB().prepare('SELECT * FROM agents WHERE origin_peer = ? AND remote_id = ?').get(peerName, remoteId);
|
|
162
|
+
if (existing) {
|
|
163
|
+
if (existing.display_name !== displayName) {
|
|
164
|
+
getDB().prepare('UPDATE agents SET display_name = ?, last_seen = ? WHERE id = ?').run(displayName, nowISO(), existing.id);
|
|
165
|
+
existing.display_name = displayName;
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
touchAgent(existing.id);
|
|
169
|
+
}
|
|
170
|
+
return existing;
|
|
171
|
+
}
|
|
172
|
+
return createAgent(displayName, 'remote', `peer:${peerName}`, '', peerName, remoteId);
|
|
173
|
+
}
|
|
120
174
|
export function getAgentByToken(token) {
|
|
121
175
|
return getDB().prepare('SELECT * FROM agents WHERE token = ?').get(token);
|
|
122
176
|
}
|
|
123
177
|
export function getAgentById(id) {
|
|
124
178
|
return getDB().prepare('SELECT * FROM agents WHERE id = ?').get(id);
|
|
125
179
|
}
|
|
126
|
-
export function
|
|
127
|
-
return getDB().prepare('SELECT * FROM agents WHERE display_name = ?').
|
|
180
|
+
export function getAgentsByName(name) {
|
|
181
|
+
return getDB().prepare('SELECT * FROM agents WHERE display_name = ?').all(name);
|
|
182
|
+
}
|
|
183
|
+
export function listAllAgents(activeOnly = false) {
|
|
184
|
+
const sql = activeOnly
|
|
185
|
+
? "SELECT * FROM agents WHERE status = 'active' ORDER BY last_seen DESC"
|
|
186
|
+
: 'SELECT * FROM agents ORDER BY last_seen DESC';
|
|
187
|
+
return getDB().prepare(sql).all();
|
|
128
188
|
}
|
|
129
189
|
export function findAgentByRole(role) {
|
|
130
190
|
return getDB().prepare("SELECT * FROM agents WHERE roles LIKE ? AND status = 'active' ORDER BY last_seen DESC LIMIT 1").get(`%${role}%`);
|
|
@@ -132,109 +192,168 @@ export function findAgentByRole(role) {
|
|
|
132
192
|
export function touchAgent(id) {
|
|
133
193
|
getDB().prepare('UPDATE agents SET last_seen = ? WHERE id = ?').run(nowISO(), id);
|
|
134
194
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
195
|
+
export function renameAgent(id, newName) {
|
|
196
|
+
getDB().prepare('UPDATE agents SET display_name = ? WHERE id = ?').run(newName, id);
|
|
197
|
+
}
|
|
198
|
+
export function resolveAddressee(callerAgentId, target) {
|
|
199
|
+
// 1) direct id
|
|
200
|
+
const byId = getAgentById(target);
|
|
201
|
+
if (byId)
|
|
202
|
+
return { agent: byId, source: 'id' };
|
|
203
|
+
// 2) nickname in caller's teams
|
|
204
|
+
const nickMatches = getDB().prepare(`
|
|
205
|
+
SELECT DISTINCT a.* FROM agents a
|
|
206
|
+
JOIN team_members tm ON tm.agent_id = a.id
|
|
207
|
+
WHERE tm.nickname = ?
|
|
208
|
+
AND tm.team_id IN (SELECT team_id FROM team_members WHERE agent_id = ?)
|
|
209
|
+
`).all(target, callerAgentId);
|
|
210
|
+
if (nickMatches.length === 1)
|
|
211
|
+
return { agent: nickMatches[0], source: 'team-nickname' };
|
|
212
|
+
if (nickMatches.length > 1)
|
|
213
|
+
return { error: `Nickname "${target}" matches multiple agents in your teams. Use agent id instead.` };
|
|
214
|
+
// 3) global display_name
|
|
215
|
+
const nameMatches = getAgentsByName(target);
|
|
216
|
+
if (nameMatches.length === 1)
|
|
217
|
+
return { agent: nameMatches[0], source: 'display-name' };
|
|
218
|
+
if (nameMatches.length > 1)
|
|
219
|
+
return { error: `Display name "${target}" matches multiple agents. Use agent id instead.` };
|
|
220
|
+
return { error: `No agent found matching "${target}".` };
|
|
221
|
+
}
|
|
222
|
+
// --- Team queries ---
|
|
223
|
+
export function createTeam(name, hostAgentId) {
|
|
224
|
+
const team = {
|
|
225
|
+
id: ulid(), name,
|
|
226
|
+
host_agent_id: hostAgentId,
|
|
227
|
+
created_at: nowISO(), closed_at: null,
|
|
140
228
|
};
|
|
141
229
|
getDB().prepare(`
|
|
142
|
-
INSERT INTO
|
|
143
|
-
VALUES (@id, @name, @
|
|
144
|
-
`).run(
|
|
145
|
-
return
|
|
230
|
+
INSERT INTO teams (id, name, host_agent_id, created_at, closed_at)
|
|
231
|
+
VALUES (@id, @name, @host_agent_id, @created_at, @closed_at)
|
|
232
|
+
`).run(team);
|
|
233
|
+
return team;
|
|
234
|
+
}
|
|
235
|
+
export function getTeamById(id) {
|
|
236
|
+
return getDB().prepare('SELECT * FROM teams WHERE id = ?').get(id);
|
|
237
|
+
}
|
|
238
|
+
export function getTeamByName(name) {
|
|
239
|
+
return getDB().prepare('SELECT * FROM teams WHERE name = ?').get(name);
|
|
240
|
+
}
|
|
241
|
+
export function listTeams(activeOnly = true) {
|
|
242
|
+
const sql = activeOnly
|
|
243
|
+
? 'SELECT * FROM teams WHERE closed_at IS NULL ORDER BY created_at DESC'
|
|
244
|
+
: 'SELECT * FROM teams ORDER BY created_at DESC';
|
|
245
|
+
return getDB().prepare(sql).all();
|
|
246
|
+
}
|
|
247
|
+
export function getAgentTeams(agentId, activeOnly = true) {
|
|
248
|
+
const sql = activeOnly
|
|
249
|
+
? `SELECT t.* FROM teams t JOIN team_members tm ON tm.team_id = t.id WHERE tm.agent_id = ? AND t.closed_at IS NULL ORDER BY tm.joined_at DESC`
|
|
250
|
+
: `SELECT t.* FROM teams t JOIN team_members tm ON tm.team_id = t.id WHERE tm.agent_id = ? ORDER BY tm.joined_at DESC`;
|
|
251
|
+
return getDB().prepare(sql).all(agentId);
|
|
252
|
+
}
|
|
253
|
+
// --- Team membership ---
|
|
254
|
+
export function addTeamMember(teamId, agentId, nickname = null) {
|
|
255
|
+
const member = { team_id: teamId, agent_id: agentId, nickname, joined_at: nowISO() };
|
|
256
|
+
getDB().prepare(`
|
|
257
|
+
INSERT INTO team_members (team_id, agent_id, nickname, joined_at)
|
|
258
|
+
VALUES (@team_id, @agent_id, @nickname, @joined_at)
|
|
259
|
+
ON CONFLICT(team_id, agent_id) DO NOTHING
|
|
260
|
+
`).run(member);
|
|
261
|
+
return member;
|
|
146
262
|
}
|
|
147
|
-
export function
|
|
148
|
-
|
|
263
|
+
export function removeTeamMember(teamId, agentId) {
|
|
264
|
+
getDB().prepare('DELETE FROM team_members WHERE team_id = ? AND agent_id = ?').run(teamId, agentId);
|
|
149
265
|
}
|
|
150
|
-
export function
|
|
151
|
-
|
|
266
|
+
export function isTeamMember(teamId, agentId) {
|
|
267
|
+
const row = getDB().prepare('SELECT 1 FROM team_members WHERE team_id = ? AND agent_id = ?').get(teamId, agentId);
|
|
268
|
+
return !!row;
|
|
152
269
|
}
|
|
153
|
-
export function
|
|
154
|
-
return getDB().prepare(
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
export function
|
|
163
|
-
return getDB().prepare(
|
|
164
|
-
}
|
|
165
|
-
//
|
|
166
|
-
export function
|
|
270
|
+
export function getTeamMembers(teamId) {
|
|
271
|
+
return getDB().prepare('SELECT * FROM team_members WHERE team_id = ?').all(teamId);
|
|
272
|
+
}
|
|
273
|
+
export function getTeamMemberAgentIds(teamId) {
|
|
274
|
+
return getDB().prepare('SELECT agent_id FROM team_members WHERE team_id = ?').all(teamId).map(r => r.agent_id);
|
|
275
|
+
}
|
|
276
|
+
export function setTeamNickname(teamId, agentId, nickname) {
|
|
277
|
+
getDB().prepare('UPDATE team_members SET nickname = ? WHERE team_id = ? AND agent_id = ?').run(nickname, teamId, agentId);
|
|
278
|
+
}
|
|
279
|
+
export function getTeamMember(teamId, agentId) {
|
|
280
|
+
return getDB().prepare('SELECT * FROM team_members WHERE team_id = ? AND agent_id = ?').get(teamId, agentId);
|
|
281
|
+
}
|
|
282
|
+
// Display name for an agent in a team context (nickname || display_name)
|
|
283
|
+
export function getTeamDisplayName(teamId, agentId) {
|
|
284
|
+
const member = getTeamMember(teamId, agentId);
|
|
285
|
+
if (member?.nickname)
|
|
286
|
+
return member.nickname;
|
|
287
|
+
const agent = getAgentById(agentId);
|
|
288
|
+
return agent?.display_name ?? 'unknown';
|
|
289
|
+
}
|
|
290
|
+
// --- Team event queries ---
|
|
291
|
+
export function appendTeamEvent(teamId, type, actorAgentId, payload = {}) {
|
|
167
292
|
const d = getDB();
|
|
168
293
|
const ts = nowISO();
|
|
169
294
|
const payloadJson = JSON.stringify(payload);
|
|
170
295
|
const insert = d.transaction(() => {
|
|
171
|
-
const maxSeq = d.prepare('SELECT COALESCE(MAX(seq), 0) as max_seq FROM
|
|
296
|
+
const maxSeq = d.prepare('SELECT COALESCE(MAX(seq), 0) as max_seq FROM team_events WHERE team_id = ?').get(teamId);
|
|
172
297
|
const seq = maxSeq.max_seq + 1;
|
|
173
|
-
const result = d.prepare('INSERT INTO
|
|
298
|
+
const result = d.prepare('INSERT INTO team_events (team_id, seq, type, actor_agent_id, payload_json, ts) VALUES (?, ?, ?, ?, ?, ?)').run(teamId, seq, type, actorAgentId, payloadJson, ts);
|
|
174
299
|
return { id: result.lastInsertRowid, seq };
|
|
175
300
|
});
|
|
176
301
|
const { id, seq } = insert();
|
|
177
|
-
return { id,
|
|
178
|
-
}
|
|
179
|
-
export function
|
|
180
|
-
return getDB().prepare('SELECT * FROM
|
|
181
|
-
}
|
|
182
|
-
export function
|
|
183
|
-
|
|
184
|
-
return row?.ts ?? null;
|
|
185
|
-
}
|
|
186
|
-
export function getLatestRoomEvents(roomId, limit = 10) {
|
|
187
|
-
return getDB().prepare('SELECT * FROM (SELECT * FROM room_events WHERE room_id = ? ORDER BY seq DESC LIMIT ?) ORDER BY seq ASC').all(roomId, limit);
|
|
188
|
-
}
|
|
189
|
-
export function getRoomMembers(roomId) {
|
|
190
|
-
const events = getDB().prepare("SELECT type, actor_agent_id FROM room_events WHERE room_id = ? AND type IN ('join', 'leave') ORDER BY seq ASC").all(roomId);
|
|
191
|
-
const members = new Set();
|
|
192
|
-
for (const e of events) {
|
|
193
|
-
if (e.type === 'join')
|
|
194
|
-
members.add(e.actor_agent_id);
|
|
195
|
-
if (e.type === 'leave')
|
|
196
|
-
members.delete(e.actor_agent_id);
|
|
197
|
-
}
|
|
198
|
-
return [...members];
|
|
199
|
-
}
|
|
200
|
-
export function isMember(roomId, agentId) {
|
|
201
|
-
return getRoomMembers(roomId).includes(agentId);
|
|
202
|
-
}
|
|
203
|
-
export function getAgentRooms(agentId, kind, activeOnly) {
|
|
204
|
-
let sql = `
|
|
205
|
-
SELECT DISTINCT r.* FROM rooms r
|
|
206
|
-
JOIN room_events e ON e.room_id = r.id AND e.type = 'join' AND e.actor_agent_id = ?
|
|
207
|
-
WHERE NOT EXISTS (
|
|
208
|
-
SELECT 1 FROM room_events e2
|
|
209
|
-
WHERE e2.room_id = r.id AND e2.type = 'leave' AND e2.actor_agent_id = ? AND e2.seq > e.seq
|
|
210
|
-
)
|
|
211
|
-
`;
|
|
212
|
-
const params = [agentId, agentId];
|
|
213
|
-
if (kind) {
|
|
214
|
-
sql += ' AND r.kind = ?';
|
|
215
|
-
params.push(kind);
|
|
216
|
-
}
|
|
217
|
-
if (activeOnly) {
|
|
218
|
-
sql += ' AND r.closed_at IS NULL';
|
|
219
|
-
}
|
|
220
|
-
return getDB().prepare(sql).all(...params);
|
|
302
|
+
return { id, team_id: teamId, seq, type, actor_agent_id: actorAgentId, payload_json: payloadJson, ts };
|
|
303
|
+
}
|
|
304
|
+
export function getTeamEvents(teamId, since = 0, limit = 50) {
|
|
305
|
+
return getDB().prepare('SELECT * FROM team_events WHERE team_id = ? AND seq > ? ORDER BY seq ASC LIMIT ?').all(teamId, since, limit);
|
|
306
|
+
}
|
|
307
|
+
export function getLatestTeamEvents(teamId, limit = 10) {
|
|
308
|
+
return getDB().prepare('SELECT * FROM (SELECT * FROM team_events WHERE team_id = ? ORDER BY seq DESC LIMIT ?) ORDER BY seq ASC').all(teamId, limit);
|
|
221
309
|
}
|
|
222
|
-
// ---
|
|
223
|
-
export function
|
|
310
|
+
// --- DM queries ---
|
|
311
|
+
export function appendDM(fromAgentId, toAgentId, content) {
|
|
312
|
+
const d = getDB();
|
|
313
|
+
const ts = nowISO();
|
|
314
|
+
const insert = d.transaction(() => {
|
|
315
|
+
const maxSeq = d.prepare('SELECT COALESCE(MAX(seq), 0) as max_seq FROM dm_messages WHERE to_agent_id = ?').get(toAgentId);
|
|
316
|
+
const seq = maxSeq.max_seq + 1;
|
|
317
|
+
const result = d.prepare('INSERT INTO dm_messages (seq, from_agent_id, to_agent_id, content, ts) VALUES (?, ?, ?, ?, ?)').run(seq, fromAgentId, toAgentId, content, ts);
|
|
318
|
+
return { id: result.lastInsertRowid, seq };
|
|
319
|
+
});
|
|
320
|
+
const { id, seq } = insert();
|
|
321
|
+
return { id, seq, from_agent_id: fromAgentId, to_agent_id: toAgentId, content, ts };
|
|
322
|
+
}
|
|
323
|
+
export function getMaxIncomingDMId(toAgentId, fromAgentId) {
|
|
324
|
+
const row = getDB().prepare('SELECT MAX(id) AS max_id FROM dm_messages WHERE to_agent_id = ? AND from_agent_id = ?').get(toAgentId, fromAgentId);
|
|
325
|
+
return row?.max_id ?? 0;
|
|
326
|
+
}
|
|
327
|
+
export function getDMConversation(agentA, agentB, since = 0, limit = 50) {
|
|
328
|
+
return getDB().prepare(`
|
|
329
|
+
SELECT * FROM dm_messages
|
|
330
|
+
WHERE ((from_agent_id = ? AND to_agent_id = ?) OR (from_agent_id = ? AND to_agent_id = ?))
|
|
331
|
+
AND id > ?
|
|
332
|
+
ORDER BY id ASC LIMIT ?
|
|
333
|
+
`).all(agentA, agentB, agentB, agentA, since, limit);
|
|
334
|
+
}
|
|
335
|
+
export function createTask(title, creatorId, opts = {}) {
|
|
224
336
|
const task = {
|
|
225
337
|
id: ulid(), title, creator_agent_id: creatorId,
|
|
226
|
-
assignee_agent_id: assigneeId ?? null,
|
|
338
|
+
assignee_agent_id: opts.assigneeId ?? null,
|
|
227
339
|
status: 'created', workflow_json: null, current_step: 0,
|
|
228
|
-
|
|
229
|
-
input_json: JSON.stringify(input ?? {}),
|
|
340
|
+
source_team_id: opts.sourceTeamId ?? null,
|
|
341
|
+
input_json: JSON.stringify(opts.input ?? {}),
|
|
230
342
|
created_at: nowISO(), completed_at: null,
|
|
343
|
+
originator_peer: opts.originatorPeer ?? '',
|
|
344
|
+
originator_task_id: opts.originatorTaskId ?? '',
|
|
345
|
+
delegated_peer: opts.delegatedPeer ?? '',
|
|
346
|
+
delegated_task_id: opts.delegatedTaskId ?? '',
|
|
231
347
|
};
|
|
232
348
|
getDB().prepare(`
|
|
233
|
-
INSERT INTO tasks (id, title, creator_agent_id, assignee_agent_id, status, workflow_json, current_step,
|
|
234
|
-
VALUES (@id, @title, @creator_agent_id, @assignee_agent_id, @status, @workflow_json, @current_step, @
|
|
349
|
+
INSERT INTO tasks (id, title, creator_agent_id, assignee_agent_id, status, workflow_json, current_step, source_team_id, input_json, created_at, completed_at, originator_peer, originator_task_id, delegated_peer, delegated_task_id)
|
|
350
|
+
VALUES (@id, @title, @creator_agent_id, @assignee_agent_id, @status, @workflow_json, @current_step, @source_team_id, @input_json, @created_at, @completed_at, @originator_peer, @originator_task_id, @delegated_peer, @delegated_task_id)
|
|
235
351
|
`).run(task);
|
|
236
352
|
return task;
|
|
237
353
|
}
|
|
354
|
+
export function setTaskDelegation(taskId, delegatedPeer, delegatedTaskId) {
|
|
355
|
+
getDB().prepare('UPDATE tasks SET delegated_peer = ?, delegated_task_id = ? WHERE id = ?').run(delegatedPeer, delegatedTaskId, taskId);
|
|
356
|
+
}
|
|
238
357
|
export function getTaskById(id) {
|
|
239
358
|
return getDB().prepare('SELECT * FROM tasks WHERE id = ?').get(id);
|
|
240
359
|
}
|
|
@@ -291,29 +410,38 @@ export function setReadCursor(agentId, targetType, targetId, seq) {
|
|
|
291
410
|
}
|
|
292
411
|
export function getUnreadForAgent(agentId) {
|
|
293
412
|
const result = [];
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
const
|
|
413
|
+
const d = getDB();
|
|
414
|
+
// Team unread
|
|
415
|
+
const teams = getAgentTeams(agentId, true);
|
|
416
|
+
for (const team of teams) {
|
|
417
|
+
const cursor = getReadCursor(agentId, 'team', team.id);
|
|
418
|
+
const unread = d.prepare('SELECT * FROM team_events WHERE team_id = ? AND seq > ? AND actor_agent_id != ? ORDER BY seq ASC LIMIT 10').all(team.id, cursor, agentId);
|
|
299
419
|
if (unread.length === 0)
|
|
300
420
|
continue;
|
|
301
|
-
const totalUnread =
|
|
302
|
-
const latest = unread.slice(-5).map(e => {
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
421
|
+
const totalUnread = d.prepare('SELECT COUNT(*) as cnt FROM team_events WHERE team_id = ? AND seq > ? AND actor_agent_id != ?').get(team.id, cursor, agentId).cnt;
|
|
422
|
+
const latest = unread.slice(-5).map(e => ({
|
|
423
|
+
from: e.actor_agent_id ? getTeamDisplayName(team.id, e.actor_agent_id) : 'system',
|
|
424
|
+
type: e.type,
|
|
425
|
+
preview: previewFromPayload(e.payload_json),
|
|
426
|
+
ts: e.ts,
|
|
427
|
+
}));
|
|
428
|
+
result.push({ type: 'team', id: team.id, name: team.name, kind: 'team', unread_count: totalUnread, latest });
|
|
429
|
+
}
|
|
430
|
+
// DM unread (per-sender cursor: target_id = sender_agent_id)
|
|
431
|
+
const senders = d.prepare('SELECT DISTINCT from_agent_id FROM dm_messages WHERE to_agent_id = ?').all(agentId);
|
|
432
|
+
for (const { from_agent_id: senderId } of senders) {
|
|
433
|
+
const cursor = getReadCursor(agentId, 'dm', senderId);
|
|
434
|
+
const msgs = d.prepare('SELECT * FROM dm_messages WHERE to_agent_id = ? AND from_agent_id = ? AND id > ? ORDER BY id ASC').all(agentId, senderId, cursor);
|
|
435
|
+
if (msgs.length === 0)
|
|
436
|
+
continue;
|
|
437
|
+
const sender = getAgentById(senderId);
|
|
438
|
+
const latest = msgs.slice(-5).map(m => ({
|
|
439
|
+
from: sender?.display_name ?? 'unknown',
|
|
440
|
+
type: 'dm',
|
|
441
|
+
preview: m.content.length > 200 ? m.content.slice(0, 200) + ' [summary]' : m.content,
|
|
442
|
+
ts: m.ts,
|
|
443
|
+
}));
|
|
444
|
+
result.push({ type: 'dm', id: senderId, name: sender?.display_name ?? null, kind: 'dm', unread_count: msgs.length, latest });
|
|
317
445
|
}
|
|
318
446
|
// Task unread
|
|
319
447
|
const tasks = getAgentTasks(agentId);
|
|
@@ -321,12 +449,12 @@ export function getUnreadForAgent(agentId) {
|
|
|
321
449
|
if (['completed', 'failed', 'canceled'].includes(task.status))
|
|
322
450
|
continue;
|
|
323
451
|
const cursor = getReadCursor(agentId, 'task', task.id);
|
|
324
|
-
const unread =
|
|
452
|
+
const unread = d.prepare('SELECT * FROM task_events WHERE task_id = ? AND seq > ? AND actor_agent_id != ? ORDER BY seq ASC LIMIT 10').all(task.id, cursor, agentId);
|
|
325
453
|
if (unread.length === 0)
|
|
326
454
|
continue;
|
|
327
|
-
const totalUnread =
|
|
455
|
+
const totalUnread = d.prepare('SELECT COUNT(*) as cnt FROM task_events WHERE task_id = ? AND seq > ? AND actor_agent_id != ?').get(task.id, cursor, agentId).cnt;
|
|
328
456
|
const latest = unread.slice(-5).map(e => {
|
|
329
|
-
const actor = getAgentById(e.actor_agent_id
|
|
457
|
+
const actor = e.actor_agent_id ? getAgentById(e.actor_agent_id) : null;
|
|
330
458
|
let preview = '';
|
|
331
459
|
try {
|
|
332
460
|
const p = JSON.parse(e.payload_json);
|
|
@@ -343,14 +471,24 @@ export function getUnreadForAgent(agentId) {
|
|
|
343
471
|
}
|
|
344
472
|
return result;
|
|
345
473
|
}
|
|
474
|
+
function previewFromPayload(payloadJson) {
|
|
475
|
+
try {
|
|
476
|
+
const p = JSON.parse(payloadJson);
|
|
477
|
+
const text = p.content || p.message || p.preview || '';
|
|
478
|
+
return text.length > 200 ? text.slice(0, 200) + ' [summary]' : text;
|
|
479
|
+
}
|
|
480
|
+
catch {
|
|
481
|
+
return '';
|
|
482
|
+
}
|
|
483
|
+
}
|
|
346
484
|
export function addPeer(name, url, secret, exposed = '') {
|
|
347
485
|
const peer = {
|
|
348
486
|
id: ulid(), name, url, secret, exposed, status: 'active',
|
|
349
|
-
created_at: nowISO(), last_seen: null,
|
|
487
|
+
created_at: nowISO(), last_seen: null, node_name: '',
|
|
350
488
|
};
|
|
351
489
|
getDB().prepare(`
|
|
352
|
-
INSERT INTO peers (id, name, url, secret, exposed, status, created_at, last_seen)
|
|
353
|
-
VALUES (@id, @name, @url, @secret, @exposed, @status, @created_at, @last_seen)
|
|
490
|
+
INSERT INTO peers (id, name, url, secret, exposed, status, created_at, last_seen, node_name)
|
|
491
|
+
VALUES (@id, @name, @url, @secret, @exposed, @status, @created_at, @last_seen, @node_name)
|
|
354
492
|
`).run(peer);
|
|
355
493
|
return peer;
|
|
356
494
|
}
|
|
@@ -358,7 +496,8 @@ export function getPeerByName(name) {
|
|
|
358
496
|
return getDB().prepare('SELECT * FROM peers WHERE name = ?').get(name);
|
|
359
497
|
}
|
|
360
498
|
export function getPeerBySecret(secret) {
|
|
361
|
-
|
|
499
|
+
// Status is informational (reachability); auth is by secret match only.
|
|
500
|
+
return getDB().prepare('SELECT * FROM peers WHERE secret = ?').get(secret);
|
|
362
501
|
}
|
|
363
502
|
export function listPeers() {
|
|
364
503
|
return getDB().prepare('SELECT * FROM peers ORDER BY created_at DESC').all();
|
|
@@ -373,6 +512,12 @@ export function updatePeerExposed(name, exposed) {
|
|
|
373
512
|
export function touchPeer(name) {
|
|
374
513
|
getDB().prepare('UPDATE peers SET last_seen = ? WHERE name = ?').run(nowISO(), name);
|
|
375
514
|
}
|
|
515
|
+
export function setPeerStatus(name, status) {
|
|
516
|
+
getDB().prepare('UPDATE peers SET status = ? WHERE name = ?').run(status, name);
|
|
517
|
+
}
|
|
518
|
+
export function setPeerNodeName(name, nodeName) {
|
|
519
|
+
getDB().prepare('UPDATE peers SET node_name = ? WHERE name = ?').run(nodeName, name);
|
|
520
|
+
}
|
|
376
521
|
export function isPeerExposed(peerName, agentName) {
|
|
377
522
|
const peer = getPeerByName(peerName);
|
|
378
523
|
if (!peer || !peer.exposed)
|
package/dist/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function pingPeer(name: string, url: string, secret: string, timeoutMs?: number): Promise<{
|
|
2
|
+
ok: boolean;
|
|
3
|
+
node?: string;
|
|
4
|
+
error?: string;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function pingAllPeers(): Promise<void>;
|
|
7
|
+
export declare function startHeartbeat(intervalMs?: number): NodeJS.Timeout;
|