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.
Files changed (63) hide show
  1. package/README.md +121 -126
  2. package/README.zh.md +153 -105
  3. package/channel.ts +194 -431
  4. package/dist/auth.d.ts +10 -6
  5. package/dist/auth.js +32 -17
  6. package/dist/auth.js.map +1 -1
  7. package/dist/db.d.ts +47 -17
  8. package/dist/db.js +268 -123
  9. package/dist/db.js.map +1 -1
  10. package/dist/federation-heartbeat.d.ts +7 -0
  11. package/dist/federation-heartbeat.js +45 -0
  12. package/dist/federation-heartbeat.js.map +1 -0
  13. package/dist/federation-http.d.ts +7 -0
  14. package/dist/federation-http.js +287 -0
  15. package/dist/federation-http.js.map +1 -0
  16. package/dist/index.js +336 -114
  17. package/dist/index.js.map +1 -1
  18. package/dist/log.d.ts +3 -0
  19. package/dist/log.js +10 -0
  20. package/dist/log.js.map +1 -0
  21. package/dist/mcp/agent-tools.d.ts +2 -0
  22. package/dist/mcp/agent-tools.js +66 -0
  23. package/dist/mcp/agent-tools.js.map +1 -0
  24. package/dist/mcp/dm-tools.d.ts +2 -0
  25. package/dist/mcp/dm-tools.js +54 -0
  26. package/dist/mcp/dm-tools.js.map +1 -0
  27. package/dist/mcp/federation-tools.d.ts +2 -0
  28. package/dist/mcp/federation-tools.js +44 -0
  29. package/dist/mcp/federation-tools.js.map +1 -0
  30. package/dist/mcp/server.d.ts +2 -0
  31. package/dist/mcp/server.js +62 -0
  32. package/dist/mcp/server.js.map +1 -0
  33. package/dist/mcp/task-tools.d.ts +2 -0
  34. package/dist/mcp/task-tools.js +128 -0
  35. package/dist/mcp/task-tools.js.map +1 -0
  36. package/dist/mcp/team-tools.d.ts +2 -0
  37. package/dist/mcp/team-tools.js +95 -0
  38. package/dist/mcp/team-tools.js.map +1 -0
  39. package/dist/models.d.ts +28 -10
  40. package/dist/models.js +1 -3
  41. package/dist/models.js.map +1 -1
  42. package/dist/server.d.ts +2 -3
  43. package/dist/server.js +56 -761
  44. package/dist/server.js.map +1 -1
  45. package/dist/sessions.d.ts +15 -0
  46. package/dist/sessions.js +107 -0
  47. package/dist/sessions.js.map +1 -0
  48. package/dist/tools/dm.d.ts +3 -2
  49. package/dist/tools/dm.js +35 -32
  50. package/dist/tools/dm.js.map +1 -1
  51. package/dist/tools/start.d.ts +3 -3
  52. package/dist/tools/start.js +18 -15
  53. package/dist/tools/start.js.map +1 -1
  54. package/dist/tools/task.d.ts +7 -2
  55. package/dist/tools/task.js +113 -15
  56. package/dist/tools/task.js.map +1 -1
  57. package/dist/tools/team.d.ts +62 -13
  58. package/dist/tools/team.js +102 -30
  59. package/dist/tools/team.js.map +1 -1
  60. package/package.json +4 -3
  61. package/dist/tools/room.d.ts +0 -39
  62. package/dist/tools/room.js +0 -35
  63. package/dist/tools/room.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { getAgentById, getAgentByName, findAgentByRole, createTask, getTaskById, updateTaskStatus, appendTaskEvent, getTaskEvents, getPeerByName, } from '../db.js';
1
+ import { getAgentById, findAgentByRole, resolveAddressee, createTask, getTaskById, updateTaskStatus, setTaskDelegation, appendTaskEvent, getTaskEvents, getPeerByName, ensureRemoteAgentByRemoteId, } from '../db.js';
2
2
  import { validateWorkflowTransition, shouldAdvanceStep, getRejectTarget } from '../state-machine.js';
3
3
  export function handleTaskCreate(actorId, input) {
4
4
  let assignee;
@@ -9,12 +9,17 @@ export function handleTaskCreate(actorId, input) {
9
9
  assignee = { id: agent.id, display_name: agent.display_name };
10
10
  }
11
11
  else {
12
- const agent = getAgentById(input.to) || getAgentByName(input.to);
13
- if (agent)
14
- assignee = { id: agent.id, display_name: agent.display_name };
12
+ const resolved = resolveAddressee(actorId, input.to);
13
+ if ('error' in resolved)
14
+ throw new Error(resolved.error);
15
+ assignee = { id: resolved.agent.id, display_name: resolved.agent.display_name };
15
16
  }
16
17
  }
17
- const task = createTask(input.title, actorId, assignee?.id, input.source_room_id, input.input);
18
+ const task = createTask(input.title, actorId, {
19
+ assigneeId: assignee?.id,
20
+ sourceTeamId: input.source_team_id,
21
+ input: input.input,
22
+ });
18
23
  // task-start → proposing (assignee should propose workflow)
19
24
  validateWorkflowTransition('created', 'task-start');
20
25
  appendTaskEvent(task.id, 'task-start', actorId, {
@@ -34,15 +39,32 @@ function parseTarget(to) {
34
39
  export async function handleTaskCreateAsync(actorId, input) {
35
40
  if (!input.to)
36
41
  return handleTaskCreate(actorId, input);
37
- const { agent: targetName, node } = parseTarget(input.to);
42
+ const { agent: targetId, node } = parseTarget(input.to);
38
43
  if (!node)
39
- return handleTaskCreate(actorId, { ...input, to: targetName });
40
- // Federated task
44
+ return handleTaskCreate(actorId, { ...input, to: targetId });
45
+ // --- Federated task ---
41
46
  const peer = getPeerByName(node);
42
47
  if (!peer)
43
48
  throw new Error(`Peer "${node}" not found`);
44
49
  const actor = getAgentById(actorId);
45
- const fromName = actor?.display_name ?? actorId;
50
+ if (!actor)
51
+ throw new Error('Actor not found');
52
+ // Create local placeholder for the remote assignee (will be the assignee on our shadow task).
53
+ // We don't know the remote display_name yet, so use targetId as a temporary label.
54
+ const remoteAssigneePlaceholder = ensureRemoteAgentByRemoteId(targetId, node, targetId);
55
+ // Local shadow task — represents the delegated work, status starts at proposing
56
+ // (our user can later approve/reject; the real workflow lives on the peer).
57
+ const shadow = createTask(input.title, actorId, {
58
+ assigneeId: remoteAssigneePlaceholder.id,
59
+ sourceTeamId: input.source_team_id,
60
+ input: input.input,
61
+ delegatedPeer: node,
62
+ });
63
+ appendTaskEvent(shadow.id, 'task-start', actorId, {
64
+ title: input.title, input: input.input, assignee_agent_id: remoteAssigneePlaceholder.id, federated_to: `${targetId}@${node}`,
65
+ });
66
+ updateTaskStatus(shadow.id, 'proposing', { assignee_agent_id: remoteAssigneePlaceholder.id });
67
+ // Send to peer
46
68
  const res = await fetch(peer.url.replace('/mcp', '/federation/task'), {
47
69
  method: 'POST',
48
70
  headers: {
@@ -50,21 +72,31 @@ export async function handleTaskCreateAsync(actorId, input) {
50
72
  'Authorization': `Bearer ${peer.secret}`,
51
73
  'X-Hive-Peer': node,
52
74
  },
53
- body: JSON.stringify({ from: fromName, to: targetName, title: input.title, input: input.input }),
75
+ body: JSON.stringify({
76
+ from_agent_id: actor.id,
77
+ from_display_name: actor.display_name,
78
+ to: targetId,
79
+ title: input.title,
80
+ input: input.input,
81
+ originator_task_id: shadow.id,
82
+ }),
54
83
  });
55
84
  if (!res.ok) {
56
85
  const err = await res.json().catch(() => ({ error: res.statusText }));
57
86
  throw new Error(`Federation task failed: ${err.error || res.statusText}`);
58
87
  }
59
88
  const result = await res.json();
89
+ // Record peer's task id on shadow so we can debug / detect duplicates
90
+ setTaskDelegation(shadow.id, node, result.task_id);
60
91
  return {
61
- task_id: result.task_id, title: input.title,
62
- status: result.status,
63
- assignee: { id: targetName, display_name: `${targetName}@${node}` },
92
+ task_id: shadow.id,
93
+ title: input.title,
94
+ status: 'proposing',
95
+ assignee: { id: remoteAssigneePlaceholder.id, display_name: `${targetId}@${node}` },
64
96
  };
65
97
  }
66
98
  // --- Federated task event ---
67
- export async function sendFederatedTaskEvent(taskId, peerNode, fromName, type, extras = {}) {
99
+ export async function sendFederatedTaskEvent(taskId, peerNode, fromAgentId, fromDisplayName, type, extras = {}) {
68
100
  const peer = getPeerByName(peerNode);
69
101
  if (!peer)
70
102
  throw new Error(`Peer "${peerNode}" not found`);
@@ -75,7 +107,11 @@ export async function sendFederatedTaskEvent(taskId, peerNode, fromName, type, e
75
107
  'Authorization': `Bearer ${peer.secret}`,
76
108
  'X-Hive-Peer': peerNode,
77
109
  },
78
- body: JSON.stringify({ from: fromName, task_id: taskId, type, ...extras }),
110
+ body: JSON.stringify({
111
+ from_agent_id: fromAgentId,
112
+ from_display_name: fromDisplayName,
113
+ task_id: taskId, type, ...extras,
114
+ }),
79
115
  });
80
116
  if (!res.ok) {
81
117
  const err = await res.json().catch(() => ({ error: res.statusText }));
@@ -83,6 +119,68 @@ export async function sendFederatedTaskEvent(taskId, peerNode, fromName, type, e
83
119
  }
84
120
  return res.json();
85
121
  }
122
+ // Forward a workflow event to whichever side this task is linked with.
123
+ // On replica (originator_peer set): echo back to originator using originator_task_id.
124
+ // On originator (delegated_peer set): forward to replica using delegated_task_id.
125
+ async function forwardTaskEvent(task, actorId, type, extras = {}) {
126
+ const actor = getAgentById(actorId);
127
+ if (!actor)
128
+ return;
129
+ // Don't echo events whose actor is itself a remote placeholder (those events arrived via federation).
130
+ if (actor.origin_peer)
131
+ return;
132
+ if (task.originator_peer && task.originator_task_id) {
133
+ try {
134
+ await sendFederatedTaskEvent(task.originator_task_id, task.originator_peer, actor.id, actor.display_name, type, extras);
135
+ }
136
+ catch (err) {
137
+ console.warn(`[federation] failed to echo event to originator ${task.originator_peer}: ${err.message ?? err}`);
138
+ }
139
+ }
140
+ if (task.delegated_peer && task.delegated_task_id) {
141
+ try {
142
+ await sendFederatedTaskEvent(task.delegated_task_id, task.delegated_peer, actor.id, actor.display_name, type, extras);
143
+ }
144
+ catch (err) {
145
+ console.warn(`[federation] failed to forward event to replica ${task.delegated_peer}: ${err.message ?? err}`);
146
+ }
147
+ }
148
+ }
149
+ // --- Async wrappers (used by MCP tool layer; auto-forward to peer if task is linked) ---
150
+ export async function handleWorkflowProposeAsync(taskId, agentId, workflow) {
151
+ handleWorkflowPropose(taskId, agentId, workflow);
152
+ const task = getTaskById(taskId);
153
+ if (task)
154
+ await forwardTaskEvent(task, agentId, 'task-propose', { workflow: JSON.parse(task.workflow_json || '[]') });
155
+ }
156
+ export async function handleWorkflowApproveAsync(taskId, agentId) {
157
+ const action = handleWorkflowApprove(taskId, agentId);
158
+ const task = getTaskById(taskId);
159
+ if (task)
160
+ await forwardTaskEvent(task, agentId, 'task-approve', {});
161
+ return action;
162
+ }
163
+ export async function handleStepCompleteAsync(taskId, agentId, stepNum, result) {
164
+ const action = handleStepComplete(taskId, agentId, stepNum, result);
165
+ const task = getTaskById(taskId);
166
+ if (task)
167
+ await forwardTaskEvent(task, agentId, 'step-complete', { step: stepNum, result });
168
+ return action;
169
+ }
170
+ export async function handleWorkflowRejectAsync(taskId, agentId, stepNum, reason) {
171
+ const action = handleWorkflowReject(taskId, agentId, stepNum, reason);
172
+ const task = getTaskById(taskId);
173
+ if (task)
174
+ await forwardTaskEvent(task, agentId, 'task-reject', { step: stepNum, reason });
175
+ return action;
176
+ }
177
+ export async function handleTaskClaimAsync(taskId, agentId) {
178
+ const out = handleTaskClaim(taskId, agentId);
179
+ const task = getTaskById(taskId);
180
+ if (task)
181
+ await forwardTaskEvent(task, agentId, 'task-claim', {});
182
+ return out;
183
+ }
86
184
  // --- hive.task.claim ---
87
185
  export function handleTaskClaim(taskId, agentId) {
88
186
  const task = getTaskById(taskId);
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,74 @@
1
- interface CreateInput {
1
+ import type { Team, TeamEvent } from '../models.js';
2
+ export declare function handleTeamCreate(actorId: string, input: {
2
3
  name: string;
3
- }
4
- export declare function handleTeamCreate(actorId: string, input: CreateInput): {
5
- room_id: string;
4
+ nickname?: string;
5
+ }): {
6
+ team_id: string;
6
7
  name: string;
7
8
  };
8
- interface JoinInput {
9
- room_id?: string;
9
+ export declare function handleTeamJoin(actorId: string, input: {
10
+ team_id?: string;
10
11
  name?: string;
11
- }
12
- export declare function handleTeamJoin(actorId: string, input: JoinInput): {
13
- room_id: string;
14
- name: string | null;
12
+ nickname?: string;
13
+ }): {
14
+ team_id: string;
15
+ name: string;
15
16
  };
16
17
  interface TeamSummary {
17
- room_id: string;
18
- name: string | null;
18
+ team_id: string;
19
+ name: string;
19
20
  member_count: number;
20
- members: string[];
21
+ members: Array<{
22
+ id: string;
23
+ display_name: string;
24
+ }>;
21
25
  }
22
26
  export declare function handleTeamList(): {
23
27
  teams: TeamSummary[];
24
28
  };
29
+ interface InfoOutput {
30
+ team: Team;
31
+ members: Array<{
32
+ id: string;
33
+ nickname: string | null;
34
+ display_name: string;
35
+ status: string;
36
+ }>;
37
+ latest_events: TeamEvent[];
38
+ }
39
+ export declare function handleTeamInfo(actorId: string, input: {
40
+ team_id: string;
41
+ }): InfoOutput;
42
+ export declare function handleTeamEvents(actorId: string, input: {
43
+ team_id: string;
44
+ since?: number;
45
+ limit?: number;
46
+ }): {
47
+ events: TeamEvent[];
48
+ has_more: boolean;
49
+ };
50
+ export declare function handleTeamMessage(actorId: string, input: {
51
+ team_id: string;
52
+ content: string;
53
+ }): {
54
+ team_id: string;
55
+ event_id: number;
56
+ seq: number;
57
+ };
58
+ export declare function handleTeamNickname(actorId: string, input: {
59
+ team_id: string;
60
+ nickname: string | null;
61
+ }): {
62
+ team_id: string;
63
+ nickname: string | null;
64
+ old_nickname: string | null;
65
+ };
66
+ export declare function handleMyTeams(actorId: string): {
67
+ teams: Array<{
68
+ team_id: string;
69
+ name: string;
70
+ nickname: string | null;
71
+ member_count: number;
72
+ }>;
73
+ };
25
74
  export {};
@@ -1,43 +1,115 @@
1
- import { createRoom, appendRoomEvent, getRoomById, isMember, listTeams, getRoomMembers, getAgentById } from '../db.js';
1
+ import { createTeam, getTeamById, getTeamByName, listTeams, getAgentTeams, addTeamMember, isTeamMember, getTeamMembers, getTeamMember, setTeamNickname, appendTeamEvent, getTeamEvents, getLatestTeamEvents, getAgentById, } from '../db.js';
2
+ // --- hive.team.create ---
2
3
  export function handleTeamCreate(actorId, input) {
3
- // Check uniqueness
4
- const existing = listTeams().find(t => t.name === input.name);
4
+ const existing = getTeamByName(input.name);
5
5
  if (existing)
6
- throw new Error(`Team "${input.name}" already exists (room_id: ${existing.id})`);
7
- const room = createRoom('team', actorId, input.name);
8
- appendRoomEvent(room.id, 'join', actorId);
9
- return { room_id: room.id, name: input.name };
6
+ throw new Error(`Team "${input.name}" already exists (team_id: ${existing.id})`);
7
+ const team = createTeam(input.name, actorId);
8
+ addTeamMember(team.id, actorId, input.nickname ?? null);
9
+ appendTeamEvent(team.id, 'join', actorId, { nickname: input.nickname ?? null });
10
+ return { team_id: team.id, name: team.name };
10
11
  }
12
+ // --- hive.team.join ---
11
13
  export function handleTeamJoin(actorId, input) {
12
- let room;
13
- if (input.room_id) {
14
- room = getRoomById(input.room_id);
15
- }
16
- else if (input.name) {
17
- const teams = listTeams();
18
- room = teams.find(t => t.name === input.name);
19
- }
20
- if (!room)
21
- throw new Error(`Team not found: ${input.room_id || input.name}`);
22
- if (room.kind !== 'team')
23
- throw new Error('Not a team room');
24
- if (room.closed_at)
14
+ let team;
15
+ if (input.team_id)
16
+ team = getTeamById(input.team_id);
17
+ else if (input.name)
18
+ team = getTeamByName(input.name);
19
+ if (!team)
20
+ throw new Error(`Team not found: ${input.team_id || input.name}`);
21
+ if (team.closed_at)
25
22
  throw new Error('Team is closed');
26
- if (isMember(room.id, actorId))
23
+ if (isTeamMember(team.id, actorId))
27
24
  throw new Error('Already a member');
28
- appendRoomEvent(room.id, 'join', actorId);
29
- return { room_id: room.id, name: room.name };
25
+ // Check nickname conflict before insert
26
+ if (input.nickname) {
27
+ const conflict = getTeamMembers(team.id).find(m => m.nickname === input.nickname);
28
+ if (conflict)
29
+ throw new Error(`Nickname "${input.nickname}" already taken in this team`);
30
+ }
31
+ addTeamMember(team.id, actorId, input.nickname ?? null);
32
+ appendTeamEvent(team.id, 'join', actorId, { nickname: input.nickname ?? null });
33
+ return { team_id: team.id, name: team.name };
30
34
  }
31
35
  export function handleTeamList() {
32
- const teams = listTeams();
36
+ const teams = listTeams(true);
37
+ return {
38
+ teams: teams.map(t => {
39
+ const members = getTeamMembers(t.id).map(m => ({
40
+ id: m.agent_id,
41
+ display_name: m.nickname ?? (getAgentById(m.agent_id)?.display_name ?? m.agent_id),
42
+ }));
43
+ return { team_id: t.id, name: t.name, member_count: members.length, members };
44
+ }),
45
+ };
46
+ }
47
+ export function handleTeamInfo(actorId, input) {
48
+ const team = getTeamById(input.team_id);
49
+ if (!team)
50
+ throw new Error(`Team not found: ${input.team_id}`);
51
+ if (!isTeamMember(input.team_id, actorId))
52
+ throw new Error('Not a member of this team');
53
+ const members = getTeamMembers(input.team_id).map(m => {
54
+ const agent = getAgentById(m.agent_id);
55
+ return {
56
+ id: m.agent_id,
57
+ nickname: m.nickname,
58
+ display_name: agent?.display_name ?? 'unknown',
59
+ status: agent?.status ?? 'offline',
60
+ };
61
+ });
62
+ return {
63
+ team, members,
64
+ latest_events: getLatestTeamEvents(input.team_id, 10),
65
+ };
66
+ }
67
+ // --- hive.team.events ---
68
+ export function handleTeamEvents(actorId, input) {
69
+ if (!isTeamMember(input.team_id, actorId))
70
+ throw new Error('Not a member of this team');
71
+ const limit = Math.min(input.limit ?? 50, 200);
72
+ const events = getTeamEvents(input.team_id, input.since ?? 0, limit + 1);
73
+ const hasMore = events.length > limit;
74
+ if (hasMore)
75
+ events.pop();
76
+ return { events, has_more: hasMore };
77
+ }
78
+ // --- hive.team.message ---
79
+ export function handleTeamMessage(actorId, input) {
80
+ if (!isTeamMember(input.team_id, actorId))
81
+ throw new Error('Not a member of this team');
82
+ const event = appendTeamEvent(input.team_id, 'message', actorId, { content: input.content });
83
+ return { team_id: input.team_id, event_id: event.id, seq: event.seq };
84
+ }
85
+ // --- hive.team.nickname ---
86
+ export function handleTeamNickname(actorId, input) {
87
+ if (!isTeamMember(input.team_id, actorId))
88
+ throw new Error('Not a member of this team');
89
+ const member = getTeamMember(input.team_id, actorId);
90
+ if (input.nickname) {
91
+ const conflict = getTeamMembers(input.team_id).find(m => m.nickname === input.nickname && m.agent_id !== actorId);
92
+ if (conflict)
93
+ throw new Error(`Nickname "${input.nickname}" already taken in this team`);
94
+ }
95
+ setTeamNickname(input.team_id, actorId, input.nickname);
96
+ appendTeamEvent(input.team_id, 'rename', actorId, {
97
+ old_nickname: member.nickname, new_nickname: input.nickname,
98
+ });
99
+ return { team_id: input.team_id, nickname: input.nickname, old_nickname: member.nickname };
100
+ }
101
+ // --- hive.team.list (mine) ---
102
+ export function handleMyTeams(actorId) {
103
+ const teams = getAgentTeams(actorId, true);
33
104
  return {
34
105
  teams: teams.map(t => {
35
- const memberIds = getRoomMembers(t.id);
36
- const members = memberIds.map(id => {
37
- const agent = getAgentById(id);
38
- return agent?.display_name ?? id;
39
- });
40
- return { room_id: t.id, name: t.name, member_count: memberIds.length, members };
106
+ const me = getTeamMember(t.id, actorId);
107
+ return {
108
+ team_id: t.id,
109
+ name: t.name,
110
+ nickname: me?.nickname ?? null,
111
+ member_count: getTeamMembers(t.id).length,
112
+ };
41
113
  }),
42
114
  };
43
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/tools/team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AASvH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,KAAkB;IAClE,mBAAmB;IACnB,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,8BAA8B,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;IAE/F,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC;AASD,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,KAAgB;IAC9D,IAAI,IAAI,CAAC;IACT,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAEpE,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAC/C,CAAC;AAWD,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACnB,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACjC,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC/B,OAAO,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC;YACnC,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QAClF,CAAC,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/tools/team.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kitty-hive",
3
- "version": "0.1.1",
4
- "description": "Room-first MCP server for multi-agent collaboration",
3
+ "version": "0.3.0",
4
+ "description": "MCP server for multi-agent collaboration — DM, tasks, workflow, federation",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
@@ -18,7 +18,8 @@
18
18
  "dev": "tsc --watch",
19
19
  "start": "node dist/index.js serve",
20
20
  "prepublishOnly": "npm run build",
21
- "test": "node --test dist/**/*.test.js"
21
+ "test": "node --test dist/**/*.test.js",
22
+ "test:federation": "tsx scripts/test-federation.ts"
22
23
  },
23
24
  "keywords": [
24
25
  "mcp",
@@ -1,39 +0,0 @@
1
- import type { Room, RoomEvent } from '../models.js';
2
- interface EventsInput {
3
- room_id: string;
4
- since?: number;
5
- limit?: number;
6
- }
7
- interface EventsOutput {
8
- events: RoomEvent[];
9
- has_more: boolean;
10
- }
11
- export declare function handleEvents(actorId: string, input: EventsInput): EventsOutput;
12
- interface ListInput {
13
- kind?: string;
14
- active_only?: boolean;
15
- }
16
- interface RoomSummary {
17
- id: string;
18
- name: string | null;
19
- kind: string;
20
- member_count: number;
21
- last_event_ts: string | null;
22
- }
23
- export declare function handleList(actorId: string, input: ListInput): {
24
- rooms: RoomSummary[];
25
- };
26
- interface InfoInput {
27
- room_id: string;
28
- }
29
- interface InfoOutput {
30
- room: Room;
31
- members: Array<{
32
- id: string;
33
- display_name: string;
34
- status: string;
35
- }>;
36
- latest_events: RoomEvent[];
37
- }
38
- export declare function handleInfo(actorId: string, input: InfoInput): InfoOutput;
39
- export {};
@@ -1,35 +0,0 @@
1
- import { getRoomById, getRoomEvents, getLastRoomEventTs, getLatestRoomEvents, isMember, getAgentRooms, getRoomMembers, getAgentById, } from '../db.js';
2
- export function handleEvents(actorId, input) {
3
- if (!isMember(input.room_id, actorId))
4
- throw new Error('Not a member of this room');
5
- const limit = Math.min(input.limit ?? 50, 200);
6
- const events = getRoomEvents(input.room_id, input.since ?? 0, limit + 1);
7
- const hasMore = events.length > limit;
8
- if (hasMore)
9
- events.pop();
10
- return { events, has_more: hasMore };
11
- }
12
- export function handleList(actorId, input) {
13
- const rooms = getAgentRooms(actorId, input.kind, input.active_only ?? true);
14
- const summaries = rooms.map(r => {
15
- const members = getRoomMembers(r.id);
16
- const lastTs = getLastRoomEventTs(r.id);
17
- return { id: r.id, name: r.name, kind: r.kind, member_count: members.length, last_event_ts: lastTs };
18
- });
19
- return { rooms: summaries };
20
- }
21
- export function handleInfo(actorId, input) {
22
- const room = getRoomById(input.room_id);
23
- if (!room)
24
- throw new Error(`Room not found: ${input.room_id}`);
25
- if (!isMember(input.room_id, actorId))
26
- throw new Error('Not a member of this room');
27
- const memberIds = getRoomMembers(input.room_id);
28
- const members = memberIds.map(id => {
29
- const agent = getAgentById(id);
30
- return { id, display_name: agent?.display_name ?? 'Unknown', status: agent?.status ?? 'offline' };
31
- });
32
- const latestEvents = getLatestRoomEvents(input.room_id, 10);
33
- return { room, members, latest_events: latestEvents };
34
- }
35
- //# sourceMappingURL=room.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"room.js","sourceRoot":"","sources":["../../src/tools/room.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,QAAQ,EAC7E,aAAa,EAAE,cAAc,EAAE,YAAY,GAC5C,MAAM,UAAU,CAAC;AAgBlB,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,KAAkB;IAC9D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;IACtC,IAAI,OAAO;QAAE,MAAM,CAAC,GAAG,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC;AAiBD,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,KAAgB;IAC1D,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAkB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC7C,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IACvG,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC;AAcD,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,KAAgB;IAC1D,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAEpF,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QACjC,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAC/B,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC;IACpG,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE5D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AACxD,CAAC"}