kitty-hive 0.5.5 → 0.5.7
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 +28 -27
- package/README.zh.md +28 -27
- package/channel.ts +13 -11
- package/dist/auth.js +2 -2
- package/dist/federation-http.js +4 -1
- package/dist/federation-http.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/interactive.js +2 -2
- package/dist/mcp/agent-tools.js +5 -5
- package/dist/mcp/dm-tools.js +5 -5
- package/dist/mcp/federation-tools.js +2 -2
- package/dist/mcp/server.js +7 -7
- package/dist/mcp/task-tools.js +50 -13
- package/dist/mcp/task-tools.js.map +1 -1
- package/dist/mcp/team-tools.js +8 -8
- package/dist/models.d.ts +5 -2
- package/dist/models.js +1 -1
- package/dist/models.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/state-machine.js +6 -0
- package/dist/state-machine.js.map +1 -1
- package/dist/tools/task.d.ts +5 -1
- package/dist/tools/task.js +46 -1
- package/dist/tools/task.js.map +1 -1
- package/dist/tools/team.js +6 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -87,58 +87,59 @@ Each machine runs its **own** `kitty-hive serve` — there is no central hub. Lo
|
|
|
87
87
|
|
|
88
88
|
## Tools
|
|
89
89
|
|
|
90
|
-
Every HTTP tool `
|
|
90
|
+
Every HTTP tool `hive_foo_bar` is re-exposed by the channel plugin as kebab-case `hive-foo-bar`. Tables below pair the two spellings — use the left column inside Claude Code, the right column when calling via HTTP MCP directly. (Tool names use `_` because most MCP clients enforce `^[a-zA-Z0-9_-]{1,64}$` and reject `.`)
|
|
91
91
|
|
|
92
92
|
### Identity
|
|
93
93
|
|
|
94
94
|
| Channel | HTTP | Description |
|
|
95
95
|
|---------|------|-------------|
|
|
96
|
-
| `hive-whoami` | `
|
|
97
|
-
| — | `
|
|
98
|
-
| `hive-rename` | `
|
|
99
|
-
| `hive-agents` | `
|
|
96
|
+
| `hive-whoami` | `hive_whoami` | Show your agent id. **First use:** pass `name` to register (channel plugin transparently calls `hive_start` under the hood). |
|
|
97
|
+
| — | `hive_start` | Underlying registration RPC. HTTP/IDE users call this directly (channel users go via `hive-whoami`). |
|
|
98
|
+
| `hive-rename` | `hive_rename` | Change your global display_name |
|
|
99
|
+
| `hive-agents` | `hive_agents` | List all agents on the hive |
|
|
100
100
|
|
|
101
101
|
### DM & Inbox
|
|
102
102
|
|
|
103
103
|
| Channel | HTTP | Description |
|
|
104
104
|
|---------|------|-------------|
|
|
105
|
-
| `hive-dm` | `
|
|
106
|
-
| `hive-inbox` | `
|
|
107
|
-
| `hive-dm-read` | `
|
|
108
|
-
| `hive-file-fetch` | `
|
|
105
|
+
| `hive-dm` | `hive_dm` | Send a direct message. Pass `attach: ["/abs/path"]` to send files/images (path on YOUR machine; receiver gets a `file_id` and fetches separately). |
|
|
106
|
+
| `hive-inbox` | `hive_inbox` | Check unread DMs / team / task events. Each DM entry carries `message_id` + `attachments` inline. |
|
|
107
|
+
| `hive-dm-read` | `hive_dm_read` | Fetch a single DM in full by `message_id` (use when a preview ends with `…(truncated; hive-dm-read message_id=N)`). |
|
|
108
|
+
| `hive-file-fetch` | `hive_file_fetch` | Fetch an attachment by `file_id`; optional `save_to` copies to a local path. |
|
|
109
109
|
|
|
110
110
|
### Teams
|
|
111
111
|
|
|
112
112
|
| Channel | HTTP | Description |
|
|
113
113
|
|---------|------|-------------|
|
|
114
|
-
| `hive-team-create` | `
|
|
115
|
-
| `hive-team-join` | `
|
|
116
|
-
| `hive-team-list` | `
|
|
117
|
-
| `hive-teams` | `
|
|
118
|
-
| `hive-team-info` | `
|
|
119
|
-
| `hive-team-events` | `
|
|
120
|
-
| `hive-team-message` | `
|
|
121
|
-
| `hive-team-nickname` | `
|
|
114
|
+
| `hive-team-create` | `hive_team_create` | Create a team (optional nickname) |
|
|
115
|
+
| `hive-team-join` | `hive_team_join` | Join a team by name or id |
|
|
116
|
+
| `hive-team-list` | `hive_team_list` | List all open teams |
|
|
117
|
+
| `hive-teams` | `hive_teams` | List teams you are in |
|
|
118
|
+
| `hive-team-info` | `hive_team_info` | Members + recent events |
|
|
119
|
+
| `hive-team-events` | `hive_team_events` | Fetch events with `since` |
|
|
120
|
+
| `hive-team-message` | `hive_team_message` | Broadcast to team |
|
|
121
|
+
| `hive-team-nickname` | `hive_team_nickname` | Set/clear nickname in a team |
|
|
122
122
|
|
|
123
123
|
### Tasks & Workflow
|
|
124
124
|
|
|
125
125
|
| Channel | HTTP | Description |
|
|
126
126
|
|---------|------|-------------|
|
|
127
|
-
| `hive-task` | `
|
|
128
|
-
| `hive-task-claim` | `
|
|
129
|
-
| `hive-tasks` | `
|
|
130
|
-
| `hive-check` | `
|
|
131
|
-
| `hive-workflow-propose` | `
|
|
132
|
-
| `hive-workflow-approve` | `
|
|
133
|
-
| `hive-workflow-step-complete` | `
|
|
134
|
-
| `hive-workflow-
|
|
127
|
+
| `hive-task` | `hive_task` | Create & delegate (`to` accepts id, nickname, `role:xxx`, `id@node`) |
|
|
128
|
+
| `hive-task-claim` | `hive_task_claim` | Claim an unassigned task |
|
|
129
|
+
| `hive-tasks` | `hive_tasks` | List your tasks |
|
|
130
|
+
| `hive-check` | `hive_check` | Check task status |
|
|
131
|
+
| `hive-workflow-propose` | `hive_workflow_propose` | Propose workflow steps; set `gate: true` per step to pause for creator review |
|
|
132
|
+
| `hive-workflow-approve` | `hive_workflow_approve` | Approve the proposed workflow (creator only) |
|
|
133
|
+
| `hive-workflow-step-complete` | `hive_workflow_step_complete` | Complete a step (gated step → enters `awaiting_approval`) |
|
|
134
|
+
| `hive-workflow-step-approve` | `hive_workflow_step_approve` | Release a gated step's pause (creator only) |
|
|
135
|
+
| `hive-workflow-reject` | `hive_workflow_reject` | Reject & rollback (works in `in_progress` and `awaiting_approval`) |
|
|
135
136
|
|
|
136
137
|
### Federation
|
|
137
138
|
|
|
138
139
|
| Channel | HTTP | Description |
|
|
139
140
|
|---------|------|-------------|
|
|
140
|
-
| `hive-peers` | `
|
|
141
|
-
| `hive-remote-agents` | `
|
|
141
|
+
| `hive-peers` | `hive_peers` | List federation peers |
|
|
142
|
+
| `hive-remote-agents` | `hive_remote_agents` | List agents on a peer |
|
|
142
143
|
|
|
143
144
|
<details>
|
|
144
145
|
<summary>Manual MCP configuration for each IDE</summary>
|
package/README.zh.md
CHANGED
|
@@ -87,58 +87,59 @@ npx kitty-hive init cursor
|
|
|
87
87
|
|
|
88
88
|
## 工具
|
|
89
89
|
|
|
90
|
-
每个 HTTP 工具 `
|
|
90
|
+
每个 HTTP 工具 `hive_foo_bar` 都被 channel plugin 镜像成 kebab-case `hive-foo-bar`。下表两列同一组工具,在 Claude Code 里用左列(channel),直接调 HTTP MCP 用右列。(工具名用 `_` 是因为多数 MCP 客户端要求 `^[a-zA-Z0-9_-]{1,64}$`,不接受 `.`)
|
|
91
91
|
|
|
92
92
|
### 身份
|
|
93
93
|
|
|
94
94
|
| Channel | HTTP | 说明 |
|
|
95
95
|
|---------|------|------|
|
|
96
|
-
| `hive-whoami` | `
|
|
97
|
-
| — | `
|
|
98
|
-
| `hive-rename` | `
|
|
99
|
-
| `hive-agents` | `
|
|
96
|
+
| `hive-whoami` | `hive_whoami` | 查看自己 agent_id。**首次使用:** 传 `name` 注册(channel plugin 会透明地代理到 `hive_start`) |
|
|
97
|
+
| — | `hive_start` | 底层注册 RPC。HTTP/IDE 用户直接调用(channel 用户走 `hive-whoami`) |
|
|
98
|
+
| `hive-rename` | `hive_rename` | 改全局 display_name |
|
|
99
|
+
| `hive-agents` | `hive_agents` | 列出所有 agent |
|
|
100
100
|
|
|
101
101
|
### 私信 & 收件箱
|
|
102
102
|
|
|
103
103
|
| Channel | HTTP | 说明 |
|
|
104
104
|
|---------|------|------|
|
|
105
|
-
| `hive-dm` | `
|
|
106
|
-
| `hive-inbox` | `
|
|
107
|
-
| `hive-dm-read` | `
|
|
108
|
-
| `hive-file-fetch` | `
|
|
105
|
+
| `hive-dm` | `hive_dm` | 发私信。传 `attach: ["/abs/path"]` 发文件/图片(路径是**你**这台机器的;对方拿到 `file_id` 另取) |
|
|
106
|
+
| `hive-inbox` | `hive_inbox` | 查看未读 DM / team / task 事件。每条 DM 带 `message_id` + `attachments` |
|
|
107
|
+
| `hive-dm-read` | `hive_dm_read` | 按 `message_id` 拉单条 DM 全文(preview 结尾 `…(truncated; hive-dm-read message_id=N)` 时用) |
|
|
108
|
+
| `hive-file-fetch` | `hive_file_fetch` | 按 `file_id` 取附件;`save_to` 可复制到指定位置 |
|
|
109
109
|
|
|
110
110
|
### 团队
|
|
111
111
|
|
|
112
112
|
| Channel | HTTP | 说明 |
|
|
113
113
|
|---------|------|------|
|
|
114
|
-
| `hive-team-create` | `
|
|
115
|
-
| `hive-team-join` | `
|
|
116
|
-
| `hive-team-list` | `
|
|
117
|
-
| `hive-teams` | `
|
|
118
|
-
| `hive-team-info` | `
|
|
119
|
-
| `hive-team-events` | `
|
|
120
|
-
| `hive-team-message` | `
|
|
121
|
-
| `hive-team-nickname` | `
|
|
114
|
+
| `hive-team-create` | `hive_team_create` | 创建团队(可设昵称) |
|
|
115
|
+
| `hive-team-join` | `hive_team_join` | 按名字或 id 加入团队 |
|
|
116
|
+
| `hive-team-list` | `hive_team_list` | 列出 hive 上所有团队 |
|
|
117
|
+
| `hive-teams` | `hive_teams` | 列出我所在的团队 |
|
|
118
|
+
| `hive-team-info` | `hive_team_info` | 团队成员 + 最近事件 |
|
|
119
|
+
| `hive-team-events` | `hive_team_events` | 增量拉取事件(`since`) |
|
|
120
|
+
| `hive-team-message` | `hive_team_message` | 向团队广播 |
|
|
121
|
+
| `hive-team-nickname` | `hive_team_nickname` | 设置/清除团队内昵称 |
|
|
122
122
|
|
|
123
123
|
### 任务 & 工作流
|
|
124
124
|
|
|
125
125
|
| Channel | HTTP | 说明 |
|
|
126
126
|
|---------|------|------|
|
|
127
|
-
| `hive-task` | `
|
|
128
|
-
| `hive-task-claim` | `
|
|
129
|
-
| `hive-tasks` | `
|
|
130
|
-
| `hive-check` | `
|
|
131
|
-
| `hive-workflow-propose` | `
|
|
132
|
-
| `hive-workflow-approve` | `
|
|
133
|
-
| `hive-workflow-step-complete` | `
|
|
134
|
-
| `hive-workflow-
|
|
127
|
+
| `hive-task` | `hive_task` | 创建并委派(`to` 接 id / nickname / `role:xxx` / `id@node`) |
|
|
128
|
+
| `hive-task-claim` | `hive_task_claim` | 认领未分配任务 |
|
|
129
|
+
| `hive-tasks` | `hive_tasks` | 任务看板 |
|
|
130
|
+
| `hive-check` | `hive_check` | 查看任务状态 |
|
|
131
|
+
| `hive-workflow-propose` | `hive_workflow_propose` | 提出工作流方案;每步可设 `gate: true` → 完成后停在 `awaiting_approval` 等创建者放行 |
|
|
132
|
+
| `hive-workflow-approve` | `hive_workflow_approve` | 批准提案(仅创建者) |
|
|
133
|
+
| `hive-workflow-step-complete` | `hive_workflow_step_complete` | 完成步骤(gated 步骤会进入 `awaiting_approval`) |
|
|
134
|
+
| `hive-workflow-step-approve` | `hive_workflow_step_approve` | 放行 gated 步骤的暂停(仅创建者) |
|
|
135
|
+
| `hive-workflow-reject` | `hive_workflow_reject` | 拒绝并回退(在 `in_progress` 和 `awaiting_approval` 都可调用) |
|
|
135
136
|
|
|
136
137
|
### 联邦
|
|
137
138
|
|
|
138
139
|
| Channel | HTTP | 说明 |
|
|
139
140
|
|---------|------|------|
|
|
140
|
-
| `hive-peers` | `
|
|
141
|
-
| `hive-remote-agents` | `
|
|
141
|
+
| `hive-peers` | `hive_peers` | 列出 peer |
|
|
142
|
+
| `hive-remote-agents` | `hive_remote_agents` | 列出 peer 上的 agent |
|
|
142
143
|
|
|
143
144
|
<details>
|
|
144
145
|
<summary>各 IDE 手动配置方式</summary>
|
package/channel.ts
CHANGED
|
@@ -43,7 +43,7 @@ async function hivePost(method: string, params: any = {}, _retried = false): Pro
|
|
|
43
43
|
console.error(`[hive-channel] server returned 404 (stale session); re-initializing...`)
|
|
44
44
|
sessionId = null
|
|
45
45
|
await initHiveSession()
|
|
46
|
-
if (agentId) await hiveCallTool('
|
|
46
|
+
if (agentId) await hiveCallTool('hive_start', { id: agentId, tool: 'claude', roles: 'channel' }, true)
|
|
47
47
|
return hivePost(method, params, true)
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -92,7 +92,7 @@ async function registerAgent(opts: { id?: string; name?: string }) {
|
|
|
92
92
|
const args: any = { tool: 'claude', roles: 'channel' }
|
|
93
93
|
if (opts.id) args.id = opts.id
|
|
94
94
|
if (opts.name) args.name = opts.name
|
|
95
|
-
const result = await hiveCallTool('
|
|
95
|
+
const result = await hiveCallTool('hive_start', args)
|
|
96
96
|
agentId = result.agent_id
|
|
97
97
|
agentName = result.display_name
|
|
98
98
|
if (!sseStarted) {
|
|
@@ -129,12 +129,14 @@ const mcp = new Server(
|
|
|
129
129
|
'- DM & files: hive-dm (pass attach: ["/local/path"] to send files), hive-inbox, hive-dm-read (full content when preview has a [hive note] block), hive-file-fetch (get attachment by file_id)',
|
|
130
130
|
'- Teams: hive-team-create, hive-team-join, hive-team-list, hive-teams (mine), hive-team-info, hive-team-events, hive-team-message, hive-team-nickname',
|
|
131
131
|
'- Tasks: hive-task, hive-task-claim, hive-tasks, hive-check',
|
|
132
|
-
'- Workflow: hive-workflow-propose, hive-workflow-approve, hive-workflow-step-complete, hive-workflow-reject',
|
|
132
|
+
'- Workflow: hive-workflow-propose (set gate:true per step for review pauses), hive-workflow-approve, hive-workflow-step-complete, hive-workflow-step-approve (release gate, creator only), hive-workflow-reject',
|
|
133
133
|
'- Federation: hive-peers, hive-remote-agents (then DM/task with id@<peer-name>)',
|
|
134
134
|
'',
|
|
135
135
|
'## Workflow rules',
|
|
136
136
|
'- When you receive a task, propose a workflow (hive-workflow-propose) before starting.',
|
|
137
|
+
'- For multi-phase workflows where the creator will want to review output between phases, set `gate: true` on each reviewable step. The task then pauses in status `awaiting_approval` after each gated step until the creator calls hive-workflow-step-approve. Without `gate`, the system auto-advances and the creator loses the chance to gate execution.',
|
|
137
138
|
'- NEVER auto-approve a workflow — show the proposal to the user and wait for explicit confirmation. Then call hive-workflow-approve.',
|
|
139
|
+
'- Same rule for hive-workflow-step-approve: only the creator (via the user) decides when a gated phase is released.',
|
|
138
140
|
'- Mark each step with hive-workflow-step-complete.',
|
|
139
141
|
'- Claim unassigned tasks with hive-task-claim.',
|
|
140
142
|
'',
|
|
@@ -155,7 +157,7 @@ const mcp = new Server(
|
|
|
155
157
|
)
|
|
156
158
|
|
|
157
159
|
// --- Dynamic tool proxy ---
|
|
158
|
-
// Channel discovers
|
|
160
|
+
// Channel discovers hive_* tools from the HTTP server at startup, then exposes
|
|
159
161
|
// them as kebab-case `hive-*` tools. Calls are forwarded with `as: agentId`
|
|
160
162
|
// injected. Only `hive-whoami` is implemented locally (manages session state).
|
|
161
163
|
|
|
@@ -168,11 +170,11 @@ interface MCPTool {
|
|
|
168
170
|
let cachedHiveTools: MCPTool[] = []
|
|
169
171
|
|
|
170
172
|
function hiveToKebab(name: string): string {
|
|
171
|
-
return name.replace(
|
|
173
|
+
return name.replace(/_/g, '-')
|
|
172
174
|
}
|
|
173
175
|
|
|
174
176
|
function kebabToHive(name: string): string {
|
|
175
|
-
return name.replace(/-/g, '
|
|
177
|
+
return name.replace(/-/g, '_')
|
|
176
178
|
}
|
|
177
179
|
|
|
178
180
|
function stripAsParam(schema: any): any {
|
|
@@ -188,7 +190,7 @@ function stripAsParam(schema: any): any {
|
|
|
188
190
|
async function refreshHiveTools(): Promise<void> {
|
|
189
191
|
try {
|
|
190
192
|
const result = await hivePost('tools/list', {})
|
|
191
|
-
cachedHiveTools = (result.tools || []).filter((t: MCPTool) => t.name.startsWith('
|
|
193
|
+
cachedHiveTools = (result.tools || []).filter((t: MCPTool) => t.name.startsWith('hive_'))
|
|
192
194
|
} catch (err) {
|
|
193
195
|
console.error('[hive-channel] failed to fetch tool list:', err)
|
|
194
196
|
}
|
|
@@ -207,8 +209,8 @@ mcp.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
207
209
|
if (cachedHiveTools.length === 0) await refreshHiveTools()
|
|
208
210
|
const tools: MCPTool[] = [WHOAMI_TOOL]
|
|
209
211
|
for (const t of cachedHiveTools) {
|
|
210
|
-
//
|
|
211
|
-
if (t.name === '
|
|
212
|
+
// hive_whoami is served locally (manages registration state)
|
|
213
|
+
if (t.name === 'hive_whoami') continue
|
|
212
214
|
tools.push({
|
|
213
215
|
name: hiveToKebab(t.name),
|
|
214
216
|
description: t.description,
|
|
@@ -247,7 +249,7 @@ mcp.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
247
249
|
}
|
|
248
250
|
}
|
|
249
251
|
|
|
250
|
-
// Proxy all other hive-* tools to
|
|
252
|
+
// Proxy all other hive-* tools to hive_* with `as: agentId` injected
|
|
251
253
|
if (!name.startsWith('hive-')) throw new Error(`Unknown tool: ${name}`)
|
|
252
254
|
const hiveName = kebabToHive(name)
|
|
253
255
|
const result = await hiveCallTool(hiveName, { as: agentId, ...args })
|
|
@@ -283,7 +285,7 @@ async function listenSSE() {
|
|
|
283
285
|
console.error(`[hive-channel] SSE connect failed: ${res.status}, re-registering...`)
|
|
284
286
|
try {
|
|
285
287
|
await initHiveSession()
|
|
286
|
-
if (agentId) await hiveCallTool('
|
|
288
|
+
if (agentId) await hiveCallTool('hive_start', { id: agentId, tool: 'claude', roles: 'channel' })
|
|
287
289
|
} catch (e) {
|
|
288
290
|
console.error(`[hive-channel] re-register failed:`, e)
|
|
289
291
|
}
|
package/dist/auth.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { getAgentById, touchAgent } from './db.js';
|
|
3
3
|
import { sessionAgents } from './sessions.js';
|
|
4
|
-
export const asParam = z.string().optional().describe('Your agent id (from
|
|
4
|
+
export const asParam = z.string().optional().describe('Your agent id (from hive_start). Optional — session binding takes precedence.');
|
|
5
5
|
export function resolveAgent(extra, asValue) {
|
|
6
6
|
// 1) Session binding (preferred)
|
|
7
7
|
const sessionId = extra?.sessionId;
|
|
@@ -27,7 +27,7 @@ export function resolveAgent(extra, asValue) {
|
|
|
27
27
|
}
|
|
28
28
|
export function authError() {
|
|
29
29
|
return {
|
|
30
|
-
content: [{ type: 'text', text: 'Error: Not authenticated. Call
|
|
30
|
+
content: [{ type: 'text', text: 'Error: Not authenticated. Call hive_start first.' }],
|
|
31
31
|
isError: true,
|
|
32
32
|
};
|
|
33
33
|
}
|
package/dist/federation-http.js
CHANGED
|
@@ -5,7 +5,7 @@ import { hostname } from 'node:os';
|
|
|
5
5
|
import { log } from './log.js';
|
|
6
6
|
import * as db from './db.js';
|
|
7
7
|
import { storeFileFromBuffer } from './files.js';
|
|
8
|
-
import { handleWorkflowPropose, handleWorkflowApprove, handleStepComplete, handleWorkflowReject, handleTaskClaim, } from './tools/task.js';
|
|
8
|
+
import { handleWorkflowPropose, handleWorkflowApprove, handleStepComplete, handleStepApprove, handleWorkflowReject, handleTaskClaim, } from './tools/task.js';
|
|
9
9
|
import { notifyAgents, notifyTaskParticipants } from './sessions.js';
|
|
10
10
|
function authenticatePeer(req) {
|
|
11
11
|
const authHeader = req.headers.authorization;
|
|
@@ -306,6 +306,9 @@ export async function handleFederation(req, res, url) {
|
|
|
306
306
|
case 'step-complete':
|
|
307
307
|
action = handleStepComplete(task_id, remoteAgent.id, step, stepResult);
|
|
308
308
|
break;
|
|
309
|
+
case 'step-approve':
|
|
310
|
+
action = handleStepApprove(task_id, remoteAgent.id);
|
|
311
|
+
break;
|
|
309
312
|
case 'task-reject':
|
|
310
313
|
action = handleWorkflowReject(task_id, remoteAgent.id, step, reason);
|
|
311
314
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federation-http.js","sourceRoot":"","sources":["../src/federation-http.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"federation-http.js","sourceRoot":"","sources":["../src/federation-http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -186,7 +186,7 @@ async function cmdInit() {
|
|
|
186
186
|
console.log(` ${t.padEnd(12)} ${path}`);
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
-
console.log(`\n Agent registers via
|
|
189
|
+
console.log(`\n Agent registers via hive_start when first used.`);
|
|
190
190
|
}
|
|
191
191
|
function relativeTime(iso) {
|
|
192
192
|
if (!iso)
|
package/dist/interactive.js
CHANGED
|
@@ -34,7 +34,7 @@ function listLocalAgents(db) {
|
|
|
34
34
|
export async function pickLocalAgent(db, message) {
|
|
35
35
|
const agents = listLocalAgents(db);
|
|
36
36
|
if (agents.length === 0) {
|
|
37
|
-
console.log('No local agents registered yet. (Agents register on first
|
|
37
|
+
console.log('No local agents registered yet. (Agents register on first hive_start.)');
|
|
38
38
|
process.exit(1);
|
|
39
39
|
}
|
|
40
40
|
if (agents.length === 1)
|
|
@@ -51,7 +51,7 @@ export async function pickLocalAgent(db, message) {
|
|
|
51
51
|
export async function pickLocalAgents(db, message, initial = []) {
|
|
52
52
|
const agents = listLocalAgents(db);
|
|
53
53
|
if (agents.length === 0) {
|
|
54
|
-
console.log('No local agents to expose. Register one first via
|
|
54
|
+
console.log('No local agents to expose. Register one first via hive_start.');
|
|
55
55
|
return [];
|
|
56
56
|
}
|
|
57
57
|
return askMultiselect({
|
package/dist/mcp/agent-tools.js
CHANGED
|
@@ -4,7 +4,7 @@ import { renameAgent, listAllAgents, getAgentsByName } from '../db.js';
|
|
|
4
4
|
import { asParam, authError, resolveAgent } from '../auth.js';
|
|
5
5
|
import { bindSession } from '../sessions.js';
|
|
6
6
|
export function registerAgentTools(mcp) {
|
|
7
|
-
mcp.tool('
|
|
7
|
+
mcp.tool('hive_start', 'Register or reconnect as an agent. Returns your agent_id (used for cross-team addressing). The MCP session is automatically bound to the returned agent so push notifications target the right session. (Channel-plugin users: prefer hive-whoami for first-time registration; this is the underlying server tool.)', {
|
|
8
8
|
id: z.string().optional().describe('Agent id to reconnect to (exact match). Errors if not found.'),
|
|
9
9
|
name: z.string().optional().describe('Display name (random if omitted). Reuses latest existing agent with this name.'),
|
|
10
10
|
roles: z.string().optional().describe('Comma-separated roles: ux,frontend,backend'),
|
|
@@ -16,11 +16,11 @@ export function registerAgentTools(mcp) {
|
|
|
16
16
|
bindSession(extra.sessionId, result.agent_id);
|
|
17
17
|
}
|
|
18
18
|
else {
|
|
19
|
-
console.warn(`[
|
|
19
|
+
console.warn(`[hive_start] WARNING: no sessionId in extra (stateless?). agent=${result.agent_id} will NOT receive push.`);
|
|
20
20
|
}
|
|
21
21
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
22
22
|
});
|
|
23
|
-
mcp.tool('
|
|
23
|
+
mcp.tool('hive_whoami', 'Show the agent currently bound to this session (or via `as`).', { as: asParam }, async (params, extra) => {
|
|
24
24
|
const agent = resolveAgent(extra, params.as);
|
|
25
25
|
if (!agent)
|
|
26
26
|
return authError();
|
|
@@ -38,7 +38,7 @@ export function registerAgentTools(mcp) {
|
|
|
38
38
|
}],
|
|
39
39
|
};
|
|
40
40
|
});
|
|
41
|
-
mcp.tool('
|
|
41
|
+
mcp.tool('hive_rename', 'Change your global display_name (display only — addressing uses id).', {
|
|
42
42
|
as: asParam,
|
|
43
43
|
name: z.string().describe('New display name'),
|
|
44
44
|
}, async (params, extra) => {
|
|
@@ -49,7 +49,7 @@ export function registerAgentTools(mcp) {
|
|
|
49
49
|
renameAgent(agent.id, params.name);
|
|
50
50
|
return { content: [{ type: 'text', text: JSON.stringify({ agent_id: agent.id, old_name: oldName, new_name: params.name }) }] };
|
|
51
51
|
});
|
|
52
|
-
mcp.tool('
|
|
52
|
+
mcp.tool('hive_agents', 'List all known agents on this hive. Use this to find agent ids for cross-team DM/task.', {
|
|
53
53
|
active_only: z.boolean().optional().describe('Only show active agents (default false)'),
|
|
54
54
|
name: z.string().optional().describe('Filter by display_name (may match multiple)'),
|
|
55
55
|
}, async (params) => {
|
package/dist/mcp/dm-tools.js
CHANGED
|
@@ -9,9 +9,9 @@ import { getFilePath, getFileMeta } from '../files.js';
|
|
|
9
9
|
import { buildDMPreview, CHANNEL_PREVIEW_LEN } from '../preview.js';
|
|
10
10
|
import * as db from '../db.js';
|
|
11
11
|
export function registerDMTools(mcp) {
|
|
12
|
-
mcp.tool('
|
|
12
|
+
mcp.tool('hive_dm', 'Send a direct message to another agent. `to` accepts agent id, team-nickname (within your teams), display_name (only if unambiguous), or "id@node" for federation. ' +
|
|
13
13
|
'IMPORTANT: any file path you mention in `content` is local-to-YOUR-machine ONLY — the receiver cannot read it (they may be on a different OS). ' +
|
|
14
|
-
'To actually share a file, pass `attach: [absolute path on YOUR disk]`; hive copies the bytes into storage (replicating across federation if needed) and the receiver gets a `file_id` they fetch via `
|
|
14
|
+
'To actually share a file, pass `attach: [absolute path on YOUR disk]`; hive copies the bytes into storage (replicating across federation if needed) and the receiver gets a `file_id` they fetch via `hive_file_fetch`. ' +
|
|
15
15
|
'Use `attach` for screenshots, PDFs, CSVs, logs, pasted-image temp files, anything binary.', {
|
|
16
16
|
as: asParam,
|
|
17
17
|
to: z.string().describe('Target: agent id, team-nickname, display_name, or "id@node"'),
|
|
@@ -37,7 +37,7 @@ export function registerDMTools(mcp) {
|
|
|
37
37
|
}
|
|
38
38
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
39
39
|
});
|
|
40
|
-
mcp.tool('
|
|
40
|
+
mcp.tool('hive_dm_read', 'Fetch a single DM in full by message_id. Use whenever a preview contains a `[hive note]` paragraph mentioning hive-dm-read — the visible text is only the first 200/2000 characters. Returns the full content, attachments, sender, and timestamp.', { message_id: z.number().describe('Message id — the integer N from the truncation hint, from `message_id` in hive-inbox latest entries, or from the `message_id` meta field on channel notifications') }, async (params) => {
|
|
41
41
|
const msg = db.getDMById(params.message_id);
|
|
42
42
|
if (!msg)
|
|
43
43
|
return { content: [{ type: 'text', text: JSON.stringify({ error: `Message not found: ${params.message_id}` }) }], isError: true };
|
|
@@ -62,7 +62,7 @@ export function registerDMTools(mcp) {
|
|
|
62
62
|
}],
|
|
63
63
|
};
|
|
64
64
|
});
|
|
65
|
-
mcp.tool('
|
|
65
|
+
mcp.tool('hive_file_fetch', 'Fetch an attachment by file_id (from a DM you received). Returns a `path` on the hive node serving you (your local hive when running locally; the receiver\'s hive in federated setups — already replicated). Pass `save_to` to copy it to a path of your choice (a trailing "/" treats it as a directory and keeps the original filename).', {
|
|
66
66
|
file_id: z.string().describe('Attachment file_id (from hive-inbox latest entry attachments, or from a channel notification)'),
|
|
67
67
|
save_to: z.string().optional().describe('Optional destination path; pass a trailing "/" to copy into a directory keeping the original filename.'),
|
|
68
68
|
}, async (params) => {
|
|
@@ -82,7 +82,7 @@ export function registerDMTools(mcp) {
|
|
|
82
82
|
}
|
|
83
83
|
return { content: [{ type: 'text', text: JSON.stringify({ ...meta, path: sourcePath, saved_to: saved }) }] };
|
|
84
84
|
});
|
|
85
|
-
mcp.tool('
|
|
85
|
+
mcp.tool('hive_inbox', 'Check unread DMs, team events, and task events. Marks returned items as read.', { as: asParam }, async (params, extra) => {
|
|
86
86
|
const agent = resolveAgent(extra, params.as);
|
|
87
87
|
if (!agent)
|
|
88
88
|
return authError();
|
|
@@ -16,7 +16,7 @@ async function fetchRemoteAgents(peer) {
|
|
|
16
16
|
return res.json();
|
|
17
17
|
}
|
|
18
18
|
export function registerFederationTools(mcp) {
|
|
19
|
-
mcp.tool('
|
|
19
|
+
mcp.tool('hive_peers', 'List all known federation peers (each entry includes name, status active/inactive, exposed agents, last_seen).', {}, async () => {
|
|
20
20
|
const peers = db.listPeers();
|
|
21
21
|
const result = peers.map(p => ({
|
|
22
22
|
name: p.name, node: p.node_name, url: p.url, status: p.status,
|
|
@@ -24,7 +24,7 @@ export function registerFederationTools(mcp) {
|
|
|
24
24
|
}));
|
|
25
25
|
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
26
26
|
});
|
|
27
|
-
mcp.tool('
|
|
27
|
+
mcp.tool('hive_remote_agents', 'List agents that a remote peer has exposed to us. Cached 5 minutes; pass fresh=true to bypass. After getting an agent id from here, address them in DM/task as "<agent_id>@<peer-name>".', {
|
|
28
28
|
peer: z.string().describe('Peer name (as shown by hive-peers)'),
|
|
29
29
|
fresh: z.boolean().optional().describe('Bypass the 5-minute cache and re-query the peer'),
|
|
30
30
|
}, async (params) => {
|
package/dist/mcp/server.js
CHANGED
|
@@ -19,19 +19,19 @@ export function createMcpServer() {
|
|
|
19
19
|
'kitty-hive is a multi-agent collaboration server.',
|
|
20
20
|
'',
|
|
21
21
|
'## Identity',
|
|
22
|
-
'- agent_id (ULID) is your stable cross-team handle. Get it from
|
|
22
|
+
'- agent_id (ULID) is your stable cross-team handle. Get it from hive_start.',
|
|
23
23
|
'- display_name is for display only, not unique.',
|
|
24
|
-
'- Inside a team, members can have unique nicknames (set with
|
|
24
|
+
'- Inside a team, members can have unique nicknames (set with hive_team_nickname).',
|
|
25
25
|
'',
|
|
26
26
|
'## Addressing',
|
|
27
27
|
'- DM and task `to`: prefer agent_id. team-nickname or display_name also accepted if unambiguous.',
|
|
28
28
|
'- Federation: use "id@node" or "nickname@node".',
|
|
29
29
|
'',
|
|
30
30
|
'## Workflow rules',
|
|
31
|
-
'- When you receive a task, propose a workflow (
|
|
32
|
-
'- The creator approves (
|
|
33
|
-
'- Mark each step with
|
|
34
|
-
'- Claim unassigned tasks with
|
|
31
|
+
'- When you receive a task, propose a workflow (hive_workflow_propose) before starting.',
|
|
32
|
+
'- The creator approves (hive_workflow_approve). NEVER auto-approve — show the proposal to the user.',
|
|
33
|
+
'- Mark each step with hive_workflow_step_complete.',
|
|
34
|
+
'- Claim unassigned tasks with hive_task_claim.',
|
|
35
35
|
'',
|
|
36
36
|
'## Artifacts',
|
|
37
37
|
'Use ~/.kitty-hive/artifacts/<task_id>/ for cross-agent file exchange.',
|
|
@@ -47,7 +47,7 @@ export function createMcpServer() {
|
|
|
47
47
|
const sessionId = extra?.sessionId;
|
|
48
48
|
const agentId = sessionId ? sessionAgents.get(sessionId) : undefined;
|
|
49
49
|
if (!agentId) {
|
|
50
|
-
return { contents: [{ uri: uri.href, text: '{"error":"Not authenticated. Call
|
|
50
|
+
return { contents: [{ uri: uri.href, text: '{"error":"Not authenticated. Call hive_start first."}' }] };
|
|
51
51
|
}
|
|
52
52
|
const unread = getUnreadForAgent(agentId);
|
|
53
53
|
return {
|
package/dist/mcp/task-tools.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { handleTaskCreateAsync, handleCheck, handleTaskClaimAsync, handleWorkflowProposeAsync, handleWorkflowApproveAsync, handleStepCompleteAsync, handleWorkflowRejectAsync, } from '../tools/task.js';
|
|
2
|
+
import { handleTaskCreateAsync, handleCheck, handleTaskClaimAsync, handleWorkflowProposeAsync, handleWorkflowApproveAsync, handleStepCompleteAsync, handleStepApproveAsync, handleWorkflowRejectAsync, } from '../tools/task.js';
|
|
3
3
|
import { asParam, authError, resolveAgent } from '../auth.js';
|
|
4
4
|
import { notifyAgents, notifyTaskParticipants } from '../sessions.js';
|
|
5
5
|
import * as db from '../db.js';
|
|
6
6
|
export function registerTaskTools(mcp) {
|
|
7
|
-
mcp.tool('
|
|
7
|
+
mcp.tool('hive_task', 'Create a task and (optionally) delegate. Omit `to` to create an unassigned task that anyone can claim.', {
|
|
8
8
|
as: asParam,
|
|
9
9
|
to: z.string().optional().describe('Target. Accepts: agent id (always works) · team-nickname (only resolved within teams you both belong to) · display_name (only if globally unambiguous) · "role:xxx" (picks an active agent with that role) · "id@<peer-name>" for federation.'),
|
|
10
10
|
title: z.string().describe('Task title'),
|
|
@@ -22,7 +22,7 @@ export function registerTaskTools(mcp) {
|
|
|
22
22
|
}
|
|
23
23
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
24
24
|
});
|
|
25
|
-
mcp.tool('
|
|
25
|
+
mcp.tool('hive_task_claim', 'Claim an unassigned task (status "created", no assignee).', { as: asParam, task_id: z.string().describe('Task id') }, async (params, extra) => {
|
|
26
26
|
const agent = resolveAgent(extra, params.as);
|
|
27
27
|
if (!agent)
|
|
28
28
|
return authError();
|
|
@@ -33,9 +33,9 @@ export function registerTaskTools(mcp) {
|
|
|
33
33
|
}));
|
|
34
34
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
35
35
|
});
|
|
36
|
-
mcp.tool('
|
|
36
|
+
mcp.tool('hive_tasks', 'List tasks you created or are assigned to.', {
|
|
37
37
|
as: asParam,
|
|
38
|
-
status: z.string().optional().describe('Filter by status. Valid values: created, proposing, approved, in_progress, completed, failed, canceled.'),
|
|
38
|
+
status: z.string().optional().describe('Filter by status. Valid values: created, proposing, approved, in_progress, awaiting_approval, completed, failed, canceled.'),
|
|
39
39
|
}, async (params, extra) => {
|
|
40
40
|
const agent = resolveAgent(extra, params.as);
|
|
41
41
|
if (!agent)
|
|
@@ -51,11 +51,14 @@ export function registerTaskTools(mcp) {
|
|
|
51
51
|
}));
|
|
52
52
|
return { content: [{ type: 'text', text: JSON.stringify(board, null, 2) }] };
|
|
53
53
|
});
|
|
54
|
-
mcp.tool('
|
|
54
|
+
mcp.tool('hive_check', 'Check the current state of a task by id.', { task_id: z.string().describe('Task id') }, async (params) => {
|
|
55
55
|
const result = handleCheck(params);
|
|
56
56
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
57
57
|
});
|
|
58
|
-
mcp.tool('
|
|
58
|
+
mcp.tool('hive_workflow_propose', 'Propose a workflow for a task. Creator must approve before steps start. ' +
|
|
59
|
+
'For multi-phase workflows where the user (creator) will want to review the output between phases, ' +
|
|
60
|
+
'set `gate: true` on each phase — the task then pauses in status `awaiting_approval` after each gated step ' +
|
|
61
|
+
'until the creator calls hive-workflow-step-approve. Default (no gate) auto-advances to the next step.', {
|
|
59
62
|
as: asParam,
|
|
60
63
|
task_id: z.string().describe('Task id'),
|
|
61
64
|
workflow: z.array(z.object({
|
|
@@ -65,6 +68,7 @@ export function registerTaskTools(mcp) {
|
|
|
65
68
|
action: z.string(),
|
|
66
69
|
completion: z.enum(['all', 'any']).default('all'),
|
|
67
70
|
on_reject: z.string().optional().describe('What happens if THIS step is rejected. "revise" → re-do the same step (default). "back:N" → roll all the way back to step N (e.g. "back:1").'),
|
|
71
|
+
gate: z.boolean().optional().describe('When true, after this step\'s assignees all finish the task pauses in `awaiting_approval` until the creator calls hive-workflow-step-approve. Use this for phases the creator will review before letting the next step start.'),
|
|
68
72
|
})).describe('Workflow steps'),
|
|
69
73
|
}, async (params, extra) => {
|
|
70
74
|
const agent = resolveAgent(extra, params.as);
|
|
@@ -77,7 +81,7 @@ export function registerTaskTools(mcp) {
|
|
|
77
81
|
}));
|
|
78
82
|
return { content: [{ type: 'text', text: JSON.stringify({ task_id: params.task_id, status: 'proposing', steps: params.workflow.length }) }] };
|
|
79
83
|
});
|
|
80
|
-
mcp.tool('
|
|
84
|
+
mcp.tool('hive_workflow_approve', 'Approve a proposed workflow (creator only). Starts step 1.', { as: asParam, task_id: z.string().describe('Task id') }, async (params, extra) => {
|
|
81
85
|
const agent = resolveAgent(extra, params.as);
|
|
82
86
|
if (!agent)
|
|
83
87
|
return authError();
|
|
@@ -88,7 +92,7 @@ export function registerTaskTools(mcp) {
|
|
|
88
92
|
}));
|
|
89
93
|
return { content: [{ type: 'text', text: JSON.stringify({ task_id: params.task_id, status: 'approved', action }) }] };
|
|
90
94
|
});
|
|
91
|
-
mcp.tool('
|
|
95
|
+
mcp.tool('hive_workflow_step_complete', 'Mark your part of the current step as complete. If the step has `gate: true` and you were the last assignee, the task enters `awaiting_approval` instead of auto-advancing — the creator must call hive-workflow-step-approve to release the gate.', {
|
|
92
96
|
as: asParam,
|
|
93
97
|
task_id: z.string().describe('Task id'),
|
|
94
98
|
step: z.number().describe('Step number'),
|
|
@@ -99,16 +103,49 @@ export function registerTaskTools(mcp) {
|
|
|
99
103
|
return authError();
|
|
100
104
|
const action = await handleStepCompleteAsync(params.task_id, agent.id, params.step, params.result);
|
|
101
105
|
const resultPreview = params.result && params.result.length > 200 ? params.result.slice(0, 200) + ' [summary]' : params.result;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
106
|
+
let msg;
|
|
107
|
+
if (action?.type === 'task-complete') {
|
|
108
|
+
msg = 'Task completed!';
|
|
109
|
+
}
|
|
110
|
+
else if (action?.type === 'step-start') {
|
|
111
|
+
msg = `Step ${action.step} started. Previous result: ${resultPreview || 'none'}`;
|
|
112
|
+
}
|
|
113
|
+
else if (action?.type === 'awaiting_approval') {
|
|
114
|
+
const approver = action.approver ? db.getAgentById(action.approver)?.display_name ?? action.approver : 'creator';
|
|
115
|
+
msg = `[hive note] Step ${action.step} complete — awaiting approval from ${approver}.\n` +
|
|
116
|
+
`- Continue: hive-workflow-step-approve({ task_id: "${params.task_id}" })\n` +
|
|
117
|
+
`- Rework: hive-workflow-reject({ task_id: "${params.task_id}", step: ${action.step}, reason: "..." })\n` +
|
|
118
|
+
`Do not start the next step until the gate is released.`;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
msg = `Step ${params.step} progress recorded`;
|
|
122
|
+
}
|
|
105
123
|
await notifyTaskParticipants(params.task_id, agent.id, JSON.stringify({
|
|
106
124
|
type: action?.type || 'step-complete', from_agent_id: agent.id, from: agent.display_name,
|
|
107
125
|
task_id: params.task_id, preview: msg,
|
|
108
126
|
}));
|
|
109
127
|
return { content: [{ type: 'text', text: JSON.stringify({ task_id: params.task_id, action: action || 'waiting' }) }] };
|
|
110
128
|
});
|
|
111
|
-
mcp.tool('
|
|
129
|
+
mcp.tool('hive_workflow_step_approve', 'Release a gated step\'s `awaiting_approval` pause. Creator-only. ' +
|
|
130
|
+
'Call this after reviewing the output of a step that was proposed with `gate: true`. ' +
|
|
131
|
+
'Advances to the next step (or completes the task if it was the last step).', {
|
|
132
|
+
as: asParam,
|
|
133
|
+
task_id: z.string().describe('Task id'),
|
|
134
|
+
}, async (params, extra) => {
|
|
135
|
+
const agent = resolveAgent(extra, params.as);
|
|
136
|
+
if (!agent)
|
|
137
|
+
return authError();
|
|
138
|
+
const action = await handleStepApproveAsync(params.task_id, agent.id);
|
|
139
|
+
const msg = action.type === 'task-complete'
|
|
140
|
+
? 'Task completed (final gated step approved)!'
|
|
141
|
+
: `Step ${action.step} started (gate released by ${agent.display_name}).`;
|
|
142
|
+
await notifyTaskParticipants(params.task_id, agent.id, JSON.stringify({
|
|
143
|
+
type: action.type, from_agent_id: agent.id, from: agent.display_name,
|
|
144
|
+
task_id: params.task_id, preview: msg,
|
|
145
|
+
}));
|
|
146
|
+
return { content: [{ type: 'text', text: JSON.stringify({ task_id: params.task_id, action }) }] };
|
|
147
|
+
});
|
|
148
|
+
mcp.tool('hive_workflow_reject', 'Reject the current step. Sends task back to a previous step.', {
|
|
112
149
|
as: asParam,
|
|
113
150
|
task_id: z.string().describe('Task id'),
|
|
114
151
|
step: z.number().describe('Step being rejected'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-tools.js","sourceRoot":"","sources":["../../src/mcp/task-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,EAAE,WAAW,EAClC,oBAAoB,EACpB,0BAA0B,EAAE,0BAA0B,EACtD,uBAAuB,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"task-tools.js","sourceRoot":"","sources":["../../src/mcp/task-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,EAAE,WAAW,EAClC,oBAAoB,EACpB,0BAA0B,EAAE,0BAA0B,EACtD,uBAAuB,EAAE,sBAAsB,EAAE,yBAAyB,GAC3E,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,UAAU,iBAAiB,CAAC,GAAc;IAC9C,GAAG,CAAC,IAAI,CACN,WAAW,EACX,wGAAwG,EACxG;QACE,EAAE,EAAE,OAAO;QACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+OAA+O,CAAC;QACnR,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KACtF,EACD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAe,EAAE,CAAC,CAAC;QAC5H,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,YAAY,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;gBAChE,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY;gBACxE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK;aAC7C,CAAC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACvE,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,iBAAiB,EACjB,2DAA2D,EAC3D,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EACxD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,sBAAsB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;YACpE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY;YACvE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,YAAY,aAAa,MAAM,CAAC,KAAK,EAAE;SACnF,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACvE,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,YAAY,EACZ,4CAA4C,EAC5C;QACE,EAAE,EAAE,OAAO;QACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4HAA4H,CAAC;KACrK,EACD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM;YAC/C,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,YAAY,IAAI,SAAS;YACvE,QAAQ,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY;YAChH,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa;YAC/B,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/E,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,YAAY,EACZ,0CAA0C,EAC1C,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAC3C,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACvE,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,uBAAuB,EACvB,0EAA0E;QAC1E,oGAAoG;QACpG,4GAA4G;QAC5G,uGAAuG,EACvG;QACE,EAAE,EAAE,OAAO;QACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QACvC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAClE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8IAA8I,CAAC;YACzL,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+NAA+N,CAAC;SACvQ,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAC/B,EACD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,EAAE,CAAC;QAC/B,MAAM,0BAA0B,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,QAAe,CAAC,CAAC;QACnF,MAAM,sBAAsB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;YACpE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY;YACvE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,sBAAsB,MAAM,CAAC,QAAQ,CAAC,MAAM,QAAQ;SACvF,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAChJ,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,uBAAuB,EACvB,4DAA4D,EAC5D,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EACxD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,sBAAsB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;YACpE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY;YACrE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,8BAA8B,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;SAC/F,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACxH,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,6BAA6B,EAC7B,oPAAoP,EACpP;QACE,EAAE,EAAE,OAAO;QACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KAC7D,EACD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACnG,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/H,IAAI,GAAW,CAAC;QAChB,IAAI,MAAM,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;YACrC,GAAG,GAAG,iBAAiB,CAAC;QAC1B,CAAC;aAAM,IAAI,MAAM,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YACzC,GAAG,GAAG,QAAQ,MAAM,CAAC,IAAI,8BAA8B,aAAa,IAAI,MAAM,EAAE,CAAC;QACnF,CAAC;aAAM,IAAI,MAAM,EAAE,IAAI,KAAK,mBAAmB,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACjH,GAAG,GAAG,oBAAoB,MAAM,CAAC,IAAI,sCAAsC,QAAQ,KAAK;gBAClF,sDAAsD,MAAM,CAAC,OAAO,QAAQ;gBAC5E,gDAAgD,MAAM,CAAC,OAAO,YAAY,MAAM,CAAC,IAAI,sBAAsB;gBAC3G,wDAAwD,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,QAAQ,MAAM,CAAC,IAAI,oBAAoB,CAAC;QAChD,CAAC;QACD,MAAM,sBAAsB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;YACpE,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,eAAe,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY;YACxF,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG;SACtC,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACzH,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,4BAA4B,EAC5B,mEAAmE;QACnE,sFAAsF;QACtF,4EAA4E,EAC5E;QACE,EAAE,EAAE,OAAO;QACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;KACxC,EACD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,KAAK,eAAe;YACzC,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,QAAQ,MAAM,CAAC,IAAI,8BAA8B,KAAK,CAAC,YAAY,IAAI,CAAC;QAC5E,MAAM,sBAAsB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;YACpE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY;YACpE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG;SACtC,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACpG,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,sBAAsB,EACtB,8DAA8D,EAC9D;QACE,EAAE,EAAE,OAAO;QACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAC3D,EACD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACrG,MAAM,sBAAsB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;YACpE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY;YACtE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,MAAM,CAAC,IAAI,4BAA4B,MAAM,CAAC,IAAI,EAAE;SAC/F,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACpG,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/mcp/team-tools.js
CHANGED
|
@@ -3,7 +3,7 @@ import { handleTeamCreate, handleTeamJoin, handleTeamList, handleTeamInfo, handl
|
|
|
3
3
|
import { asParam, authError, resolveAgent } from '../auth.js';
|
|
4
4
|
import { notifyTeamMembers } from '../sessions.js';
|
|
5
5
|
export function registerTeamTools(mcp) {
|
|
6
|
-
mcp.tool('
|
|
6
|
+
mcp.tool('hive_team_create', 'Create a new team. Optionally set your nickname in this team.', {
|
|
7
7
|
as: asParam,
|
|
8
8
|
name: z.string().describe('Team name (must be globally unique)'),
|
|
9
9
|
nickname: z.string().optional().describe('Your nickname in this team (must be unique within team)'),
|
|
@@ -14,7 +14,7 @@ export function registerTeamTools(mcp) {
|
|
|
14
14
|
const result = handleTeamCreate(agent.id, { name: params.name, nickname: params.nickname });
|
|
15
15
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
16
16
|
});
|
|
17
|
-
mcp.tool('
|
|
17
|
+
mcp.tool('hive_team_join', 'Join an existing team by name or id.', {
|
|
18
18
|
as: asParam,
|
|
19
19
|
team_id: z.string().optional().describe('Team id'),
|
|
20
20
|
name: z.string().optional().describe('Team name'),
|
|
@@ -31,11 +31,11 @@ export function registerTeamTools(mcp) {
|
|
|
31
31
|
}));
|
|
32
32
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
33
33
|
});
|
|
34
|
-
mcp.tool('
|
|
34
|
+
mcp.tool('hive_team_list', 'List all teams on this hive (with their members).', {}, async () => {
|
|
35
35
|
const result = handleTeamList();
|
|
36
36
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
37
37
|
});
|
|
38
|
-
mcp.tool('
|
|
38
|
+
mcp.tool('hive_team_info', 'Get detailed info about a team you are in (members with nicknames + recent events).', {
|
|
39
39
|
as: asParam,
|
|
40
40
|
team_id: z.string().describe('Team id'),
|
|
41
41
|
}, async (params, extra) => {
|
|
@@ -45,7 +45,7 @@ export function registerTeamTools(mcp) {
|
|
|
45
45
|
const result = handleTeamInfo(agent.id, { team_id: params.team_id });
|
|
46
46
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
47
47
|
});
|
|
48
|
-
mcp.tool('
|
|
48
|
+
mcp.tool('hive_team_events', 'Fetch events from a team. Use "since" for incremental polling.', {
|
|
49
49
|
as: asParam,
|
|
50
50
|
team_id: z.string().describe('Team id'),
|
|
51
51
|
since: z.number().optional().describe('Return events after this seq number'),
|
|
@@ -57,7 +57,7 @@ export function registerTeamTools(mcp) {
|
|
|
57
57
|
const result = handleTeamEvents(agent.id, { team_id: params.team_id, since: params.since, limit: params.limit });
|
|
58
58
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
59
59
|
});
|
|
60
|
-
mcp.tool('
|
|
60
|
+
mcp.tool('hive_team_message', 'Post a message to a team (broadcasts to all members).', {
|
|
61
61
|
as: asParam,
|
|
62
62
|
team_id: z.string().describe('Team id'),
|
|
63
63
|
content: z.string().describe('Message content'),
|
|
@@ -73,7 +73,7 @@ export function registerTeamTools(mcp) {
|
|
|
73
73
|
}));
|
|
74
74
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
75
75
|
});
|
|
76
|
-
mcp.tool('
|
|
76
|
+
mcp.tool('hive_team_nickname', 'Set or change your nickname within a team. Pass null to clear.', {
|
|
77
77
|
as: asParam,
|
|
78
78
|
team_id: z.string().describe('Team id'),
|
|
79
79
|
nickname: z.string().nullable().describe('New nickname (or null to clear)'),
|
|
@@ -84,7 +84,7 @@ export function registerTeamTools(mcp) {
|
|
|
84
84
|
const result = handleTeamNickname(agent.id, { team_id: params.team_id, nickname: params.nickname });
|
|
85
85
|
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
86
86
|
});
|
|
87
|
-
mcp.tool('
|
|
87
|
+
mcp.tool('hive_teams', 'List teams you are a member of (with your nickname in each).', { as: asParam }, async (params, extra) => {
|
|
88
88
|
const agent = resolveAgent(extra, params.as);
|
|
89
89
|
if (!agent)
|
|
90
90
|
return authError();
|
package/dist/models.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export interface DMMessage {
|
|
|
50
50
|
ts: string;
|
|
51
51
|
attachments: string;
|
|
52
52
|
}
|
|
53
|
-
export type TaskStatus = 'created' | 'proposing' | 'approved' | 'in_progress' | 'completed' | 'failed' | 'canceled';
|
|
53
|
+
export type TaskStatus = 'created' | 'proposing' | 'approved' | 'in_progress' | 'awaiting_approval' | 'completed' | 'failed' | 'canceled';
|
|
54
54
|
export interface Task {
|
|
55
55
|
id: string;
|
|
56
56
|
title: string;
|
|
@@ -68,7 +68,7 @@ export interface Task {
|
|
|
68
68
|
delegated_peer: string;
|
|
69
69
|
delegated_task_id: string;
|
|
70
70
|
}
|
|
71
|
-
export declare const TASK_EVENT_TYPES: readonly ["task-start", "task-claim", "task-update", "task-propose", "task-approve", "task-reject", "step-start", "step-complete", "task-complete", "task-fail", "task-cancel"];
|
|
71
|
+
export declare const TASK_EVENT_TYPES: readonly ["task-start", "task-claim", "task-update", "task-propose", "task-approve", "task-reject", "step-start", "step-complete", "step-approve", "task-complete", "task-fail", "task-cancel"];
|
|
72
72
|
export type TaskEventType = typeof TASK_EVENT_TYPES[number];
|
|
73
73
|
export interface TaskEvent {
|
|
74
74
|
id: number;
|
|
@@ -86,5 +86,8 @@ export interface WorkflowStep {
|
|
|
86
86
|
action: string;
|
|
87
87
|
completion: 'all' | 'any';
|
|
88
88
|
on_reject?: 'revise' | `back:${number}`;
|
|
89
|
+
/** When true, after this step's assignees all finish the task pauses in
|
|
90
|
+
* status `awaiting_approval` until the creator calls hive-workflow-step-approve. */
|
|
91
|
+
gate?: boolean;
|
|
89
92
|
completed_by: string[];
|
|
90
93
|
}
|
package/dist/models.js
CHANGED
|
@@ -2,7 +2,7 @@ export const TEAM_EVENT_TYPES = ['join', 'leave', 'message', 'rename'];
|
|
|
2
2
|
export const TASK_EVENT_TYPES = [
|
|
3
3
|
'task-start', 'task-claim', 'task-update',
|
|
4
4
|
'task-propose', 'task-approve', 'task-reject',
|
|
5
|
-
'step-start', 'step-complete',
|
|
5
|
+
'step-start', 'step-complete', 'step-approve',
|
|
6
6
|
'task-complete', 'task-fail', 'task-cancel',
|
|
7
7
|
];
|
|
8
8
|
//# sourceMappingURL=models.js.map
|
package/dist/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC;AA2DhF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAE,YAAY,EAAE,aAAa;IACzC,cAAc,EAAE,cAAc,EAAE,aAAa;IAC7C,YAAY,EAAE,eAAe,EAAE,cAAc;IAC7C,eAAe,EAAE,WAAW,EAAE,aAAa;CACnC,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -68,7 +68,7 @@ export async function startServer(port, dbPath) {
|
|
|
68
68
|
const sid = req.headers['mcp-session-id'];
|
|
69
69
|
const method = body?.method || (Array.isArray(body) ? `batch[${body.length}]` : 'unknown');
|
|
70
70
|
const tool = body?.params?.name || '';
|
|
71
|
-
const isHeartbeat = tool === '
|
|
71
|
+
const isHeartbeat = tool === 'hive_inbox' || method === 'notifications/initialized';
|
|
72
72
|
if (!isHeartbeat) {
|
|
73
73
|
log('info', `[rpc] method=${method} sid=${sid || 'none'} tool=${tool || '-'}`);
|
|
74
74
|
}
|
package/dist/state-machine.js
CHANGED
|
@@ -33,6 +33,12 @@ const WORKFLOW_TRANSITIONS = {
|
|
|
33
33
|
'proposing:task-cancel': 'canceled',
|
|
34
34
|
'approved:task-cancel': 'canceled',
|
|
35
35
|
'in_progress:task-cancel': 'canceled',
|
|
36
|
+
// Gate flow
|
|
37
|
+
'awaiting_approval:step-approve': 'in_progress',
|
|
38
|
+
'awaiting_approval:step-start': 'in_progress',
|
|
39
|
+
'awaiting_approval:task-complete': 'completed',
|
|
40
|
+
'awaiting_approval:task-reject': 'in_progress',
|
|
41
|
+
'awaiting_approval:task-cancel': 'canceled',
|
|
36
42
|
};
|
|
37
43
|
export function validateWorkflowTransition(current, event) {
|
|
38
44
|
const next = WORKFLOW_TRANSITIONS[`${current}:${event}`];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"AAEA,0BAA0B;AAE1B,MAAM,WAAW,GAA+B;IAC9C,oBAAoB,EAAE,SAAS;IAC/B,oBAAoB,EAAE,aAAa;IACnC,yBAAyB,EAAE,aAAa;IACxC,2BAA2B,EAAE,WAAW;IACxC,uBAAuB,EAAE,QAAQ;IACjC,qBAAqB,EAAE,UAAU;IACjC,yBAAyB,EAAE,UAAU;CACtC,CAAC;AAEF,MAAM,QAAQ,GAAoB,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAE/E,MAAM,UAAU,kBAAkB,CAAC,OAAmB,EAAE,KAAoB;IAC1E,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,uBAAuB;AAEvB,MAAM,oBAAoB,GAA+B;IACvD,oBAAoB,EAAE,WAAW;IACjC,wBAAwB,EAAE,WAAW;IACrC,wBAAwB,EAAE,UAAU;IACpC,uBAAuB,EAAE,WAAW;IACpC,qBAAqB,EAAE,aAAa;IACpC,2BAA2B,EAAE,aAAa;IAC1C,wBAAwB,EAAE,aAAa;IACvC,yBAAyB,EAAE,aAAa;IACxC,2BAA2B,EAAE,WAAW;IACxC,uBAAuB,EAAE,QAAQ;IACjC,uBAAuB,EAAE,UAAU;IACnC,sBAAsB,EAAE,UAAU;IAClC,yBAAyB,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"AAEA,0BAA0B;AAE1B,MAAM,WAAW,GAA+B;IAC9C,oBAAoB,EAAE,SAAS;IAC/B,oBAAoB,EAAE,aAAa;IACnC,yBAAyB,EAAE,aAAa;IACxC,2BAA2B,EAAE,WAAW;IACxC,uBAAuB,EAAE,QAAQ;IACjC,qBAAqB,EAAE,UAAU;IACjC,yBAAyB,EAAE,UAAU;CACtC,CAAC;AAEF,MAAM,QAAQ,GAAoB,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAE/E,MAAM,UAAU,kBAAkB,CAAC,OAAmB,EAAE,KAAoB;IAC1E,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,uBAAuB;AAEvB,MAAM,oBAAoB,GAA+B;IACvD,oBAAoB,EAAE,WAAW;IACjC,wBAAwB,EAAE,WAAW;IACrC,wBAAwB,EAAE,UAAU;IACpC,uBAAuB,EAAE,WAAW;IACpC,qBAAqB,EAAE,aAAa;IACpC,2BAA2B,EAAE,aAAa;IAC1C,wBAAwB,EAAE,aAAa;IACvC,yBAAyB,EAAE,aAAa;IACxC,2BAA2B,EAAE,WAAW;IACxC,uBAAuB,EAAE,QAAQ;IACjC,uBAAuB,EAAE,UAAU;IACnC,sBAAsB,EAAE,UAAU;IAClC,yBAAyB,EAAE,UAAU;IACrC,YAAY;IACZ,gCAAgC,EAAE,aAAa;IAC/C,8BAA8B,EAAE,aAAa;IAC7C,iCAAiC,EAAE,WAAW;IAC9C,+BAA+B,EAAE,aAAa;IAC9C,+BAA+B,EAAE,UAAU;CAC5C,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,OAAmB,EAAE,KAAoB;IAClF,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8BAA8B;AAE9B,MAAM,UAAU,iBAAiB,CAAC,IAAkB;IAClD,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAkB;IAChD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,CAAC"}
|
package/dist/tools/task.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export declare function sendFederatedTaskEvent(taskId: string, peerNode: string,
|
|
|
20
20
|
export declare function handleWorkflowProposeAsync(taskId: string, agentId: string, workflow: WorkflowStep[]): Promise<void>;
|
|
21
21
|
export declare function handleWorkflowApproveAsync(taskId: string, agentId: string): Promise<WorkflowAction>;
|
|
22
22
|
export declare function handleStepCompleteAsync(taskId: string, agentId: string, stepNum: number, result?: string): Promise<WorkflowAction | null>;
|
|
23
|
+
export declare function handleStepApproveAsync(taskId: string, agentId: string): Promise<WorkflowAction>;
|
|
23
24
|
export declare function handleWorkflowRejectAsync(taskId: string, agentId: string, stepNum: number, reason?: string): Promise<WorkflowAction>;
|
|
24
25
|
export declare function handleTaskClaimAsync(taskId: string, agentId: string): Promise<TaskOutput>;
|
|
25
26
|
export declare function handleTaskClaim(taskId: string, agentId: string): TaskOutput;
|
|
@@ -42,11 +43,14 @@ export declare function handleCheck(input: {
|
|
|
42
43
|
}): CheckOutput;
|
|
43
44
|
export declare function handleWorkflowPropose(taskId: string, agentId: string, workflow: WorkflowStep[]): void;
|
|
44
45
|
export interface WorkflowAction {
|
|
45
|
-
type: 'step-start' | 'task-complete';
|
|
46
|
+
type: 'step-start' | 'task-complete' | 'awaiting_approval';
|
|
46
47
|
step?: number;
|
|
47
48
|
assignees?: string[];
|
|
49
|
+
/** When type === 'awaiting_approval', the agent id that must call hive-workflow-step-approve. */
|
|
50
|
+
approver?: string;
|
|
48
51
|
}
|
|
49
52
|
export declare function handleWorkflowApprove(taskId: string, agentId: string): WorkflowAction;
|
|
50
53
|
export declare function handleStepComplete(taskId: string, agentId: string, stepNum: number, result?: string): WorkflowAction | null;
|
|
54
|
+
export declare function handleStepApprove(taskId: string, agentId: string): WorkflowAction;
|
|
51
55
|
export declare function handleWorkflowReject(taskId: string, agentId: string, stepNum: number, reason?: string): WorkflowAction;
|
|
52
56
|
export {};
|
package/dist/tools/task.js
CHANGED
|
@@ -167,6 +167,13 @@ export async function handleStepCompleteAsync(taskId, agentId, stepNum, result)
|
|
|
167
167
|
await forwardTaskEvent(task, agentId, 'step-complete', { step: stepNum, result });
|
|
168
168
|
return action;
|
|
169
169
|
}
|
|
170
|
+
export async function handleStepApproveAsync(taskId, agentId) {
|
|
171
|
+
const action = handleStepApprove(taskId, agentId);
|
|
172
|
+
const task = getTaskById(taskId);
|
|
173
|
+
if (task)
|
|
174
|
+
await forwardTaskEvent(task, agentId, 'step-approve', { step: task.current_step });
|
|
175
|
+
return action;
|
|
176
|
+
}
|
|
170
177
|
export async function handleWorkflowRejectAsync(taskId, agentId, stepNum, reason) {
|
|
171
178
|
const action = handleWorkflowReject(taskId, agentId, stepNum, reason);
|
|
172
179
|
const task = getTaskById(taskId);
|
|
@@ -181,7 +188,7 @@ export async function handleTaskClaimAsync(taskId, agentId) {
|
|
|
181
188
|
await forwardTaskEvent(task, agentId, 'task-claim', {});
|
|
182
189
|
return out;
|
|
183
190
|
}
|
|
184
|
-
// ---
|
|
191
|
+
// --- hive_task_claim ---
|
|
185
192
|
export function handleTaskClaim(taskId, agentId) {
|
|
186
193
|
const task = getTaskById(taskId);
|
|
187
194
|
if (!task)
|
|
@@ -275,6 +282,13 @@ export function handleStepComplete(taskId, agentId, stepNum, result) {
|
|
|
275
282
|
appendTaskEvent(taskId, 'step-complete', agentId, { step: stepNum, result });
|
|
276
283
|
updateTaskStatus(taskId, task.status, { workflow_json: JSON.stringify(steps) });
|
|
277
284
|
if (shouldAdvanceStep(step)) {
|
|
285
|
+
// Gated step: pause for the creator's hive-workflow-step-approve.
|
|
286
|
+
// current_step stays on the gated step so the creator can target it
|
|
287
|
+
// unambiguously; status flips to awaiting_approval.
|
|
288
|
+
if (step.gate) {
|
|
289
|
+
updateTaskStatus(taskId, 'awaiting_approval');
|
|
290
|
+
return { type: 'awaiting_approval', step: stepNum, approver: task.creator_agent_id };
|
|
291
|
+
}
|
|
278
292
|
const nextStepNum = stepNum + 1;
|
|
279
293
|
if (nextStepNum > steps.length) {
|
|
280
294
|
validateWorkflowTransition(task.status, 'task-complete');
|
|
@@ -294,6 +308,37 @@ export function handleStepComplete(taskId, agentId, stepNum, result) {
|
|
|
294
308
|
}
|
|
295
309
|
return null;
|
|
296
310
|
}
|
|
311
|
+
// --- Workflow: step approve (gate release) ---
|
|
312
|
+
export function handleStepApprove(taskId, agentId) {
|
|
313
|
+
const task = getTaskById(taskId);
|
|
314
|
+
if (!task)
|
|
315
|
+
throw new Error(`Task not found: ${taskId}`);
|
|
316
|
+
if (!task.workflow_json)
|
|
317
|
+
throw new Error('No workflow defined');
|
|
318
|
+
if (task.creator_agent_id !== agentId)
|
|
319
|
+
throw new Error('Only the task creator can approve a gated step');
|
|
320
|
+
if (task.status !== 'awaiting_approval')
|
|
321
|
+
throw new Error(`Task is not awaiting approval (status: ${task.status})`);
|
|
322
|
+
validateWorkflowTransition(task.status, 'step-approve');
|
|
323
|
+
const steps = JSON.parse(task.workflow_json);
|
|
324
|
+
const completedStepNum = task.current_step;
|
|
325
|
+
const completedStep = steps.find(s => s.step === completedStepNum);
|
|
326
|
+
if (!completedStep)
|
|
327
|
+
throw new Error(`Step ${completedStepNum} not found`);
|
|
328
|
+
appendTaskEvent(taskId, 'step-approve', agentId, { step: completedStepNum });
|
|
329
|
+
const nextStepNum = completedStepNum + 1;
|
|
330
|
+
if (nextStepNum > steps.length) {
|
|
331
|
+
// Last step was gated → completion was deferred to here.
|
|
332
|
+
validateWorkflowTransition(task.status, 'task-complete');
|
|
333
|
+
updateTaskStatus(taskId, 'completed', { completed_at: new Date().toISOString() });
|
|
334
|
+
appendTaskEvent(taskId, 'task-complete', null, {});
|
|
335
|
+
return { type: 'task-complete' };
|
|
336
|
+
}
|
|
337
|
+
const nextStep = steps[nextStepNum - 1];
|
|
338
|
+
updateTaskStatus(taskId, 'in_progress', { current_step: nextStepNum });
|
|
339
|
+
appendTaskEvent(taskId, 'step-start', null, { step: nextStepNum, assignees: nextStep.assignees });
|
|
340
|
+
return { type: 'step-start', step: nextStepNum, assignees: nextStep.assignees };
|
|
341
|
+
}
|
|
297
342
|
// --- Workflow: reject ---
|
|
298
343
|
export function handleWorkflowReject(taskId, agentId, stepNum, reason) {
|
|
299
344
|
const task = getTaskById(taskId);
|
package/dist/tools/task.js.map
CHANGED
|
@@ -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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"}
|
package/dist/tools/team.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createTeam, getTeamById, getTeamByName, listTeams, getAgentTeams, addTeamMember, isTeamMember, getTeamMembers, getTeamMember, setTeamNickname, appendTeamEvent, getTeamEvents, getLatestTeamEvents, getAgentById, } from '../db.js';
|
|
2
|
-
// ---
|
|
2
|
+
// --- hive_team_create ---
|
|
3
3
|
export function handleTeamCreate(actorId, input) {
|
|
4
4
|
const existing = getTeamByName(input.name);
|
|
5
5
|
if (existing)
|
|
@@ -9,7 +9,7 @@ export function handleTeamCreate(actorId, input) {
|
|
|
9
9
|
appendTeamEvent(team.id, 'join', actorId, { nickname: input.nickname ?? null });
|
|
10
10
|
return { team_id: team.id, name: team.name };
|
|
11
11
|
}
|
|
12
|
-
// ---
|
|
12
|
+
// --- hive_team_join ---
|
|
13
13
|
export function handleTeamJoin(actorId, input) {
|
|
14
14
|
let team;
|
|
15
15
|
if (input.team_id)
|
|
@@ -64,7 +64,7 @@ export function handleTeamInfo(actorId, input) {
|
|
|
64
64
|
latest_events: getLatestTeamEvents(input.team_id, 10),
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
|
-
// ---
|
|
67
|
+
// --- hive_team_events ---
|
|
68
68
|
export function handleTeamEvents(actorId, input) {
|
|
69
69
|
if (!isTeamMember(input.team_id, actorId))
|
|
70
70
|
throw new Error('Not a member of this team');
|
|
@@ -75,14 +75,14 @@ export function handleTeamEvents(actorId, input) {
|
|
|
75
75
|
events.pop();
|
|
76
76
|
return { events, has_more: hasMore };
|
|
77
77
|
}
|
|
78
|
-
// ---
|
|
78
|
+
// --- hive_team_message ---
|
|
79
79
|
export function handleTeamMessage(actorId, input) {
|
|
80
80
|
if (!isTeamMember(input.team_id, actorId))
|
|
81
81
|
throw new Error('Not a member of this team');
|
|
82
82
|
const event = appendTeamEvent(input.team_id, 'message', actorId, { content: input.content });
|
|
83
83
|
return { team_id: input.team_id, event_id: event.id, seq: event.seq };
|
|
84
84
|
}
|
|
85
|
-
// ---
|
|
85
|
+
// --- hive_team_nickname ---
|
|
86
86
|
export function handleTeamNickname(actorId, input) {
|
|
87
87
|
if (!isTeamMember(input.team_id, actorId))
|
|
88
88
|
throw new Error('Not a member of this team');
|
|
@@ -98,7 +98,7 @@ export function handleTeamNickname(actorId, input) {
|
|
|
98
98
|
});
|
|
99
99
|
return { team_id: input.team_id, nickname: input.nickname, old_nickname: member.nickname };
|
|
100
100
|
}
|
|
101
|
-
// ---
|
|
101
|
+
// --- hive_team_list (mine) ---
|
|
102
102
|
export function handleMyTeams(actorId) {
|
|
103
103
|
const teams = getAgentTeams(actorId, true);
|
|
104
104
|
return {
|