@suzuke/agend 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +50 -528
  2. package/README.zh-TW.md +49 -474
  3. package/dist/channel/adapters/discord.js +1 -1
  4. package/dist/channel/adapters/discord.js.map +1 -1
  5. package/dist/channel/factory.js +2 -2
  6. package/dist/channel/factory.js.map +1 -1
  7. package/dist/channel/mcp-tools.js +3 -3
  8. package/dist/channel/mcp-tools.js.map +1 -1
  9. package/dist/cli.js +1 -1
  10. package/dist/cli.js.map +1 -1
  11. package/dist/daemon.js +37 -36
  12. package/dist/daemon.js.map +1 -1
  13. package/dist/export-import.js +2 -2
  14. package/dist/export-import.js.map +1 -1
  15. package/dist/fleet-manager.js +5 -8
  16. package/dist/fleet-manager.js.map +1 -1
  17. package/dist/setup-wizard.js +2 -2
  18. package/dist/setup-wizard.js.map +1 -1
  19. package/dist/tmux-manager.js +3 -2
  20. package/dist/tmux-manager.js.map +1 -1
  21. package/package.json +3 -5
  22. package/dist/approval/approval-server.d.ts +0 -30
  23. package/dist/approval/approval-server.js +0 -156
  24. package/dist/approval/approval-server.js.map +0 -1
  25. package/dist/approval/tmux-prompt-detector.d.ts +0 -34
  26. package/dist/approval/tmux-prompt-detector.js +0 -264
  27. package/dist/approval/tmux-prompt-detector.js.map +0 -1
  28. package/dist/backend/approval-strategy.d.ts +0 -14
  29. package/dist/backend/approval-strategy.js +0 -2
  30. package/dist/backend/approval-strategy.js.map +0 -1
  31. package/dist/backend/hook-based-approval.d.ts +0 -20
  32. package/dist/backend/hook-based-approval.js +0 -41
  33. package/dist/backend/hook-based-approval.js.map +0 -1
  34. package/dist/container-manager.d.ts +0 -24
  35. package/dist/container-manager.js +0 -148
  36. package/dist/container-manager.js.map +0 -1
  37. package/dist/db.d.ts +0 -10
  38. package/dist/db.js +0 -43
  39. package/dist/db.js.map +0 -1
  40. package/dist/install-recorder.d.ts +0 -30
  41. package/dist/install-recorder.js +0 -159
  42. package/dist/install-recorder.js.map +0 -1
  43. package/dist/meeting/orchestrator.d.ts +0 -30
  44. package/dist/meeting/orchestrator.js +0 -355
  45. package/dist/meeting/orchestrator.js.map +0 -1
  46. package/dist/meeting/prompt-builder.d.ts +0 -12
  47. package/dist/meeting/prompt-builder.js +0 -96
  48. package/dist/meeting/prompt-builder.js.map +0 -1
  49. package/dist/meeting/role-assigner.d.ts +0 -2
  50. package/dist/meeting/role-assigner.js +0 -25
  51. package/dist/meeting/role-assigner.js.map +0 -1
  52. package/dist/meeting/types.d.ts +0 -21
  53. package/dist/meeting/types.js +0 -2
  54. package/dist/meeting/types.js.map +0 -1
  55. package/dist/meeting-manager.d.ts +0 -10
  56. package/dist/meeting-manager.js +0 -38
  57. package/dist/meeting-manager.js.map +0 -1
  58. package/dist/memory-layer.d.ts +0 -13
  59. package/dist/memory-layer.js +0 -44
  60. package/dist/memory-layer.js.map +0 -1
  61. package/dist/plugin/agend/.mcp.json +0 -9
  62. package/dist/plugin/ccd-channel/.claude-plugin/plugin.json +0 -5
  63. package/dist/plugin/ccd-channel/.mcp.json +0 -9
  64. package/dist/process-manager.d.ts +0 -31
  65. package/dist/process-manager.js +0 -264
  66. package/dist/process-manager.js.map +0 -1
package/README.zh-TW.md CHANGED
@@ -1,459 +1,58 @@
1
- # claude-channel-daemon
1
+ # AgEnD
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/@suzuke/agend)](https://www.npmjs.com/package/@suzuke/agend)
3
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
4
5
  [![Node.js >= 20](https://img.shields.io/badge/Node.js-%3E%3D%2020-green.svg)](https://nodejs.org)
5
- [![Claude Code](https://img.shields.io/badge/Claude%20Code-compatible-blueviolet.svg)](https://docs.anthropic.com/en/docs/claude-code)
6
6
 
7
- **用手機管理一整個 Claude Code agent 團隊。** 一個 Telegram bot、無限專案——每個 Forum Topic 就是一個獨立的 Claude session,crash 自動恢復,不用顧。
7
+ **Agent Engineering Daemon** 用手機管理一整個 AI coding agent 團隊。
8
8
 
9
- [English](README.md)
10
-
11
- > **⚠️ 注意:** daemon 使用 Claude Code 原生的 permission relay——權限請求會以 Telegram inline 按鈕(允許/拒絕)轉發給你。詳見[權限系統](#權限系統)。
12
-
13
- ## 為什麼要做這個
14
-
15
- Claude Code 的官方 Telegram plugin 是 **1 bot = 1 session**。終端機關掉,bot 就斷了。沒有排程、不支援多專案。
16
-
17
- **claude-channel-daemon** 把 Claude Code 變成一個 always-on 的多專案 AI 工程團隊,全從 Telegram 操控:
18
-
19
- | 功能 | 官方 Plugin | claude-channel-daemon |
20
- |------|:-:|:-:|
21
- | 同時跑多個專案 | — | **N 個 session,1 個 bot** |
22
- | 關掉終端機 / SSH 斷線也不怕 | — | **tmux 持久化** |
23
- | Cron 排程任務 | Session 級(3 天到期) | **持久化(SQLite)** |
24
- | 自動 context 輪替(避免 session 老化)| — | **內建** |
25
- | 權限請求 Telegram 確認 | 文字回覆 | **Inline 按鈕** |
26
- | 語音訊息 → Claude | — | **Groq Whisper** |
27
- | 透過 General topic 動態建立 Instance | — | **內建** |
28
- | 裝成系統服務(launchd/systemd)| — | **一行指令** |
29
- | Crash 自動恢復 | — | **自動重啟** |
30
- | 花費上限(每日限額)| 平台級(`--max-budget-usd`) | **每 Instance 每日限額** |
31
- | 從 Telegram 看 Fleet 狀態 | — | **/status 指令** |
32
- | 每日 Fleet 摘要 | — | **排程報告** |
33
- | 卡住偵測 | — | **自動偵測 + 通知** |
34
- | 點對點 Agent 協作 | — | **內建** |
35
-
36
- ## 適合誰
37
-
38
- - **獨立開發者**——讓 Claude 全天候同時處理多個 repo
39
- - **小型團隊**——共用一個 bot,每個人各自的 Forum Topic
40
- - **CI/CD 重度使用者**——用 cron 排程讓 Claude 做每日 PR review、deploy 檢查
41
- - **安全意識強的人**——需要工具使用的明確權限審批
42
- - 受夠了為了跟 Claude 說話得一直開著終端機的人
43
-
44
- ## 跟其他方案比較
45
-
46
- | | claude-channel-daemon | Claude Code Telegram Plugin | Cursor | Cline (VS Code) |
47
- |---|:-:|:-:|:-:|:-:|
48
- | 無頭執行(不需要 IDE/終端機)| **有** | 需要終端機 | 沒有 | 沒有 |
49
- | 多專案 Fleet | **有** | 1 個 session | 1 個視窗 | 1 個視窗 |
50
- | 多頻道(Telegram、Discord)| **有** | 只有 Telegram | N/A | N/A |
51
- | 排程任務 | **持久化** | Session 級 | 沒有 | 沒有 |
52
- | Context 自動輪替 | **有** | 沒有 | N/A | 沒有 |
53
- | 權限審批流程 | **Inline 按鈕** | 文字回覆 | N/A | 有限 |
54
- | 手機優先(Telegram)| **有** | 有 | 沒有 | 沒有 |
55
- | 語音輸入 | **有** | 沒有 | 沒有 | 沒有 |
56
- | 系統服務 | **有** | 沒有 | N/A | N/A |
57
- | 花費控管 | **每 Instance** | 平台級 | N/A | N/A |
58
- | Model Failover | **自動切換** | 沒有 | 沒有 | 沒有 |
59
- | Crash 自動恢復 | **有** | 沒有 | N/A | N/A |
60
-
61
- ## 架構
62
-
63
- ```
64
- ┌──────────────────────────────────────────────────────────────┐
65
- │ Fleet Manager │
66
- │ │
67
- Telegram ◄──long-poll──► │ ChannelAdapter Scheduler (croner) │
68
- Discord ◄──gateway────► │ (Telegram/Discord) │ │
69
- │ │ │ cron 觸發 │
70
- │ threadId 路由表 │ │
71
- │ #277→proj-a #672→proj-b │ │
72
- │ │ │ CostGuard HangDetector │
73
- │ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐ WebhookEmitter │
74
- │ │Daemon A │ │Daemon B │ │Daemon C │ │
75
- │ │Permission│ │Permission│ │Permission│ │
76
- │ │Relay │ │Relay │ │Relay │ │
77
- │ │Context │ │Context │ │Context │ │
78
- │ │Guardian │ │Guardian │ │Guardian │ │
79
- │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
80
- │ │ │ │ │
81
- │ ┌────┴─────┐ ┌────┴─────┐ ┌────┴─────┐ │
82
- │ │tmux win │ │tmux win │ │tmux win │ │
83
- │ │Claude │ │Claude │ │Claude │ │
84
- │ │+MCP srv │ │+MCP srv │ │+MCP srv │ │
85
- │ └──────────┘ └──────────┘ └──────────┘ │
86
- └──────────────────────────────────────────────────────────────┘
87
- ```
88
-
89
- ## 核心功能
90
-
91
- ### Fleet 模式——一個 bot,多個專案
92
-
93
- 每個 Telegram Forum Topic 對應一個獨立的 Claude Code session。開個 topic、選專案目錄,Claude 就開始工作。刪除 topic,instance 自動停止。你的機器能撐多少個專案就開多少個。
94
-
95
- ### 排程任務
96
-
97
- Claude 可以透過 MCP tools 建立 cron 排程。排程存在 SQLite 裡,daemon 重啟後會自動恢復。
98
-
99
- ```
100
- 使用者:「每天早上 9 點,幫我檢查有沒有需要 review 的 PR」
101
- Claude → create_schedule(cron: "0 9 * * *", message: "檢查需要 review 的 PR")
102
- ```
103
-
104
- MCP tools:`create_schedule`、`list_schedules`、`update_schedule`、`delete_schedule`
105
-
106
- 協作 MCP tools:`list_instances`、`send_to_instance`、`start_instance`、`create_instance`、`delete_instance`
107
-
108
- 排程可以指定目標 instance,或是在建立排程的同一個 instance 上觸發。觸發時,daemon 會像使用者發訊息一樣把內容推送給 Claude。
109
-
110
- ### Context 輪替
111
-
112
- 監控 Claude 的 status line JSON。當 context 使用率超過門檻或 session 達到最大壽命時,daemon 會執行簡單的重啟:
113
-
114
- ```
115
- NORMAL → RESTARTING → GRACE
116
- ```
117
-
118
- 1. **觸發** — context 超過門檻(預設 80%)或 `max_age_hours` 到期(預設 8h)
119
- 2. **Idle 屏障** — 等最多 5 秒讓當前活動沉靜(best-effort,不是 handover)
120
- 3. **Snapshot** — daemon 收集最近的 user messages、tool 活動、statusline 資料,寫入 `rotation-state.json`
121
- 4. **重啟** — 砍 tmux window,開新 session 並把 snapshot 注入 system prompt
122
- 5. **Grace** — 10 分鐘冷卻期,防止快速重複重啟
123
-
124
- 不會送 handover prompt 給 Claude。恢復上下文完全來自 daemon 端的 snapshot。
125
-
126
- ### 點對點 Agent 協作
127
-
128
- 每個 instance 都是對等的 peer,可以發現、喚醒、建立和傳訊給其他 instance。不需要 Dispatcher——協作能力來自每個 agent 都有的 MCP tools。
129
-
130
- 協作 MCP tools:
131
-
132
- - `list_instances` — 查看所有已設定的 instance(執行中或已停止),包含狀態和工作目錄
133
- - `send_to_instance` — 傳訊息給另一個 instance 或外部 session
134
- - `start_instance` — 喚醒已停止的 instance
135
- - `create_instance` — 從專案目錄建立新 instance 和 topic(支援 `--branch` 用 git worktree 隔離 feature branch)
136
- - `delete_instance` — 移除 instance 和其 topic
137
-
138
- 訊息會顯示在接收者的 Telegram topic 裡。只有 instance 對 instance 的訊息才會在發送者 topic 顯示通知。
139
-
140
- 對已停止的 instance 發 `send_to_instance` 時,錯誤訊息會提示使用 `start_instance()`——agent 可自行修正,無需人工介入。
9
+ 一個 Telegram bot,多種 CLI 後端(Claude Code、Gemini CLI、Codex、OpenCode),無限專案。每個 Forum Topic 就是一個獨立的 agent session,crash 自動恢復,不用顧。
141
10
 
142
- ### General Topic Instance
143
-
144
- 一個綁定到 Telegram General Topic 的普通 instance。Fleet 啟動時自動建立,作為自然語言入口,處理不屬於特定專案的任務。行為完全由其專案的 `CLAUDE.md` 定義:
145
-
146
- - 簡單任務(網頁搜尋、翻譯、一般問題)——直接處理
147
- - 專案相關任務——用 `list_instances()` 找到對的 agent,需要時 `start_instance()`,再用 `send_to_instance()` 委派
148
- - 建新專案——用 `create_instance()` 建立新 agent
149
-
150
- 在 General topic 用 `/status` 可看 fleet 概覽。其他專案管理都由 General instance 透過自然語言處理。
151
-
152
- ### 外部 Session 支援
153
-
154
- 你可以把本地的 Claude Code session 連到 daemon 的 channel tools(reply、send_to_instance 等),只要在 `.mcp.json` 指向 instance 的 IPC socket:
155
-
156
- ```json
157
- {
158
- "mcpServers": {
159
- "ccd-channel": {
160
- "command": "node",
161
- "args": ["path/to/dist/channel/mcp-server.js"],
162
- "env": {
163
- "CCD_SOCKET_PATH": "~/.claude-channel-daemon/instances/<name>/channel.sock"
164
- }
165
- }
166
- }
167
- }
168
- ```
169
-
170
- Daemon 透過 env var 分層自動隔離外部和內部 session:
171
-
172
- | Session 類型 | 身份來源 | 範例 |
173
- |---|---|---|
174
- | 內部(daemon 管理)| `CCD_INSTANCE_NAME`(tmux 環境)| `ccplugin` |
175
- | 外部(自訂名稱)| `.mcp.json` 的 `CCD_SESSION_NAME` | `dev` |
176
- | 外部(零設定)| `external-<basename(cwd)>` fallback | `external-myproject` |
177
-
178
- 內部 session 由 daemon 在 tmux shell 環境注入 `CCD_INSTANCE_NAME`。外部 session 沒有這個變數,所以 fallback 到 `CCD_SESSION_NAME`(有設定時)或用工作目錄自動產生名稱。同一份 `.mcp.json`,內外身份不同,零衝突。
179
-
180
- 外部 session 會出現在 `list_instances` 中,可被 `send_to_instance` 定向投遞。
181
-
182
- ### 優雅重啟
183
-
184
- `ccd fleet restart` 發送 SIGUSR2 給 fleet manager。它會等所有 instance 空閒(10 秒無 transcript 活動)後逐一重啟。5 分鐘超時防止卡住。
185
-
186
- ### Telegram 指令
187
-
188
- Topic 模式下,bot 在 General topic 回應以下指令:
189
-
190
- - `/status` — 查看 Fleet 狀態和花費
191
-
192
- 專案管理指令(`/open`、`/new`、`/meets`、`/debate`、`/collab`)已在 v0.3.4 移除。現在由 General instance 透過自然語言處理——直接告訴它你需要什麼,它會自動使用 `create_instance`、`start_instance` 或 `send_to_instance`。
193
-
194
- ### 權限系統
195
-
196
- 使用 Claude Code 原生的 permission relay——權限請求會以 Telegram inline 按鈕(允許/拒絕)轉發給你。當 Claude 要求使用敏感工具時,daemon 會在 Telegram 上提示你,並等待你的回應後才繼續執行。
197
-
198
- ### 語音轉文字
199
-
200
- Telegram 語音訊息透過 Groq Whisper API 轉文字後送給 Claude。Topic 模式和 DM 模式都支援。需要在 `.env` 設定 `GROQ_API_KEY`。
201
-
202
- ### 動態 Instance 管理
203
-
204
- Instance 透過 General instance 使用 `create_instance` 建立。告訴 General instance 你想處理什麼專案——它會自動建立 Telegram topic、綁定專案目錄、啟動 Claude。也可以用 `--branch` 建立 git worktree 來隔離 feature branch。刪除 topic 會自動解除綁定並停止 instance。用 `delete_instance` 可完全移除 instance 和其 topic。
205
-
206
- ### 花費上限
207
-
208
- 防止無人看管時帳單暴增。在 `fleet.yaml` 設定每日花費上限:
209
-
210
- ```yaml
211
- defaults:
212
- cost_guard:
213
- daily_limit_usd: 50
214
- warn_at_percentage: 80
215
- timezone: "Asia/Taipei"
216
- ```
217
-
218
- 當 instance 接近上限時,會在其 Telegram topic 發出警告。達到上限時,instance 自動暫停並發送通知。暫停的 instance 隔天自動恢復,或手動重啟。
219
-
220
- ### Fleet 狀態
221
-
222
- 在 General topic 用 `/status` 查看即時概覽:
223
-
224
- ```
225
- 🟢 proj-a — ctx 42%, $3.20 today
226
- 🟢 proj-b — ctx 67%, $8.50 today
227
- ⏸ proj-c — paused (cost limit)
228
-
229
- Fleet: $11.70 / $50.00 daily
230
- ```
231
-
232
- ### 每日摘要
233
-
234
- 每天在可設定的時間(預設 21:00)在 General topic 發送每日報告:
235
-
236
- ```
237
- 📊 Daily Report — 2026-03-26
238
-
239
- proj-a: $8.20, 2 restarts
240
- proj-b: $2.10
241
- proj-c: $0.00 ⚠️ 1 hang
242
-
243
- Total: $10.30
244
- ```
245
-
246
- ### 卡住偵測
247
-
248
- 如果 instance 超過 15 分鐘(可設定)沒有活動,daemon 會發出通知並附帶 inline 按鈕:
249
-
250
- - **強制重啟** — 停止並重啟 instance
251
- - **繼續等待** — 取消警報
252
-
253
- 使用多訊號偵測:同時檢查 transcript 活動和 statusline 更新時間,避免在長時間 tool call 時誤判。
254
-
255
- ### 速率限制感知排程
256
-
257
- 當 5 小時 API 速率限制超過 85% 時,排程觸發會自動延遲而非直接執行。延遲時會在 instance 的 topic 發出通知。延遲的排程不會遺失——下次 cron tick 時如果速率限制低於門檻就會觸發。
258
-
259
- ### Model Failover
260
-
261
- 當主要 model 遇到速率限制時,daemon 會在下次 context rotation 自動切換到備用 model。在 `fleet.yaml` 設定 failover 鏈:
262
-
263
- ```yaml
264
- instances:
265
- my-project:
266
- model_failover: ["opus", "sonnet"]
267
- ```
268
-
269
- 切換時 daemon 會在 Telegram 通知你,速率限制恢復後會自動切回主要 model。
270
-
271
- ### Topic Icon + 閒置歸檔
272
-
273
- 執行中的 instance 會在 Telegram 顯示圖示。停止或 crash 時圖示會改變。閒置的 instance 會自動歸檔——發訊息到已歸檔的 topic 會自動重新開啟。
274
-
275
- ### 權限倒數 + Always Allow
276
-
277
- 權限提示現在會顯示倒數計時器,每 30 秒更新一次。「Always Allow」按鈕可以允許當前 session 中同一工具的所有後續使用。決定後會在訊息上顯示結果(「✅ 已允許」/「❌ 已拒絕」)。
278
-
279
- ### Daemon 端重啟 Snapshot
280
-
281
- 每次 context 重啟前,daemon 會儲存 `rotation-state.json`,包含最近的 user messages、tool 活動、context 使用率和 statusline 資料。新 session 會在 system prompt 中收到這份 snapshot,不依賴 Claude 寫交接報告就能保持上下文延續。
282
-
283
- ### Service Message 過濾
284
-
285
- Telegram 系統事件(topic 重新命名、釘選、成員加入等)會在到達 Claude 之前被過濾掉,節省 context window token。
286
-
287
- ### Health Endpoint
288
-
289
- 輕量 HTTP endpoint 供外部監控工具使用:
290
-
291
- ```
292
- GET /health → { status: "ok", instances: 3, uptime: 86400 }
293
- GET /status → { instances: [{ name, status, context_pct, cost_today }] }
294
- ```
295
-
296
- 在 `fleet.yaml` 設定:
297
-
298
- ```yaml
299
- health_port: 19280 # top-level,預設 19280,綁定 127.0.0.1
300
- ```
301
-
302
- ### Webhook 通知
303
-
304
- 推送 fleet 事件到外部 endpoint(Slack、自訂儀表板等):
305
-
306
- ```yaml
307
- defaults:
308
- webhooks:
309
- - url: https://hooks.slack.com/...
310
- events: ["rotation", "hang", "cost_warn"]
311
- - url: https://custom.endpoint/ccd
312
- events: ["*"]
313
- ```
314
-
315
- ### Discord Adapter(MVP)
316
-
317
- 把 fleet 連到 Discord 而不是(或同時)Telegram。在 `fleet.yaml` 設定:
318
-
319
- ```yaml
320
- channel:
321
- type: discord
322
- bot_token_env: CCD_DISCORD_TOKEN
323
- guild_id: "123456789"
324
- ```
11
+ [English](README.md)
325
12
 
326
- ### 外部 Adapter Plugin 系統
13
+ > **⚠️** 所有 CLI 後端都以 `--dangerously-skip-permissions`(或等效參數)執行。詳見 [Security](SECURITY.md)。
327
14
 
328
- 社群 adapter 可透過 npm 安裝並自動載入:
15
+ ## agend 解決什麼問題
329
16
 
330
- ```bash
331
- npm install ccd-adapter-slack
332
- ```
333
-
334
- Daemon 會自動發現 `ccd-adapter-*` 命名慣例的 adapter。Channel type package entry point 匯出,供 adapter 作者使用。
17
+ | 沒有 agend | 有 agend |
18
+ |---|---|
19
+ | 關掉終端機,agent 就斷線 | 系統服務常駐,重開機也不怕 |
20
+ | 一個終端機 = 一個專案 | 一個 bot,無限專案同時跑 |
21
+ | 長時間 session 累積過時 context | max age 自動輪替 session,保持新鮮 |
22
+ | 不知道 agent 半夜在幹嘛 | 每日花費報告 + 卡住偵測通知 |
23
+ | 排程任務隨 session 結束消失 | 持久化排程,SQLite 儲存 |
24
+ | 某個 model 被限速,全部停擺 | 自動切換備用 model |
25
+ | 沒辦法從手機核准工具使用 | Telegram inline 按鈕,倒數計時 + Always Allow |
26
+ | Agent 各做各的,無法協作 | 點對點協作,透過 MCP tools |
27
+ | 無人看管時帳單暴增 | 每個 instance 每日花費上限,自動暫停 |
335
28
 
336
29
  ## 開始用
337
30
 
338
31
  ```bash
339
- # 前置需求
340
- brew install tmux # macOS
341
-
342
- # 安裝
343
- npm install -g claude-channel-daemon
344
-
345
- # 互動式設定
346
- ccd init
347
-
348
- # 啟動 fleet
349
- ccd fleet start
350
- ```
351
-
352
- ## 指令
353
-
354
- ```
355
- ccd init 互動式設定精靈
356
- ccd fleet start 啟動所有 instance
357
- ccd fleet stop 停止所有 instance
358
- ccd fleet restart 優雅重啟(等空閒後重啟)
359
- ccd fleet status 看 instance 狀態
360
- ccd fleet logs <name> 看 instance log
361
- ccd fleet history 看事件記錄(花費、輪替、卡住)
362
- ccd fleet start <name> 啟動特定 instance
363
- ccd fleet stop <name> 停止特定 instance
364
- ccd schedule list 列出所有排程
365
- ccd schedule add 從 CLI 新增排程
366
- ccd schedule delete <id> 刪除排程
367
- ccd schedule enable <id> 啟用排程
368
- ccd schedule disable <id> 停用排程
369
- ccd schedule history <id> 看排程執行記錄
370
- ccd topic list 列出 topic 綁定
371
- ccd topic bind <n> <tid> 綁定 instance 到 topic
372
- ccd topic unbind <n> 解除 topic 綁定
373
- ccd access lock <n> 鎖定 instance 存取
374
- ccd access unlock <n> 開放 instance 存取
375
- ccd access list <n> 列出允許的使用者
376
- ccd access remove <n> <uid> 移除使用者
377
- ccd access pair <n> <uid> 產生配對碼
378
- ccd export [path] 匯出設定(裝置遷移用)
379
- ccd export --full [path] 匯出設定 + 所有 instance 資料
380
- ccd import <file> 匯入設定檔
381
- ccd install 裝成系統服務
382
- ccd uninstall 移除系統服務
383
- ```
384
-
385
- ## 設定
386
-
387
- Fleet 設定檔在 `~/.claude-channel-daemon/fleet.yaml`:
388
-
389
- ```yaml
390
- project_roots:
391
- - ~/Projects
392
-
393
- channel:
394
- type: telegram # telegram 或 discord
395
- mode: topic # topic(推薦)或 dm
396
- bot_token_env: CCD_BOT_TOKEN
397
- group_id: -100xxxxxxxxxx
398
- access:
399
- mode: locked # locked 或 pairing
400
- allowed_users:
401
- - 123456789
402
-
403
- defaults:
404
- cost_guard:
405
- daily_limit_usd: 50
406
- warn_at_percentage: 80
407
- timezone: "Asia/Taipei"
408
- daily_summary:
409
- enabled: true
410
- hour: 21
411
- minute: 0
412
- context_guardian:
413
- restart_threshold_pct: 80
414
- max_age_hours: 8
415
- model_failover: ["opus", "sonnet"]
416
- webhooks:
417
- - url: https://hooks.slack.com/...
418
- events: ["rotation", "hang", "cost_warn"]
419
- log_level: info
420
-
421
- instances:
422
- my-project:
423
- working_directory: /path/to/project
424
- topic_id: 277
425
- description: "主要後端服務"
426
- cost_guard:
427
- daily_limit_usd: 30
428
- model: opus
429
- ```
430
-
431
- 密鑰放在 `~/.claude-channel-daemon/.env`:
432
- ```
433
- CCD_BOT_TOKEN=123456789:AAH...
434
- GROQ_API_KEY=gsk_... # 選用,語音轉文字用
435
- ```
436
-
437
- ## 資料目錄
438
-
439
- `~/.claude-channel-daemon/`:
440
-
441
- | 路徑 | 用途 |
442
- |------|------|
443
- | `fleet.yaml` | Fleet 設定 |
444
- | `.env` | Bot token + API keys |
445
- | `fleet.log` | Fleet log(JSON)|
446
- | `fleet.pid` | Fleet manager PID |
447
- | `scheduler.db` | 排程資料庫(SQLite)|
448
- | `events.db` | 事件記錄(花費快照、輪替、卡住)|
449
- | `instances/<name>/` | 每個 instance 的資料 |
450
- | `instances/<name>/daemon.log` | Instance log |
451
- | `instances/<name>/session-id` | Session UUID,給 `--resume` 用 |
452
- | `instances/<name>/statusline.json` | Claude 最新狀態資料 |
453
- | `instances/<name>/channel.sock` | IPC Unix socket |
454
- | `instances/<name>/claude-settings.json` | 每個 instance 的 Claude 設定 |
455
- | `instances/<name>/rotation-state.json` | Context 重啟 snapshot |
456
- | `instances/<name>/output.log` | Claude tmux 輸出擷取 |
32
+ brew install tmux # macOS(前置需求)
33
+ npm install -g @suzuke/agend # 安裝
34
+ agend init # 互動式設定
35
+ agend fleet start # 啟動 fleet
36
+ ```
37
+
38
+ ## 功能
39
+
40
+ - **Fleet 模式** — 一個 bot、N 個專案,各自獨立的 Telegram Forum Topic
41
+ - **持久化排程** — cron 排程任務,重啟不遺失(SQLite 儲存)
42
+ - **Context 輪替** — 長時間 session 依 max age 自動重啟,保持 context 新鮮
43
+ - **點對點協作** — agent 之間透過 MCP tools 互相發現、喚醒、傳訊
44
+ - **General Topic** — 自然語言調度器,把任務路由到對的 agent
45
+ - **權限轉發** — Telegram inline 按鈕 Allow/Deny,倒數計時 + Always Allow
46
+ - **語音訊息** — Groq Whisper 轉文字,用說的跟 agent 溝通
47
+ - **花費上限** — 每個 instance 每日限額,超過自動暫停
48
+ - **卡住偵測** — 自動偵測無回應的 session,通知並提供重啟按鈕
49
+ - **Model Failover** — 被限速時自動切換備用 model
50
+ - **每日摘要** Fleet 花費報告,發到 Telegram
51
+ - **外部 Session** — 本地 Claude Code 透過 IPC 連入 fleet
52
+ - **Discord Adapter** 用 Discord 取代(或同時使用)Telegram
53
+ - **Health Endpoint** HTTP API 供外部監控
54
+ - **Webhook 通知** — 推送事件到 Slack 或自訂 endpoint
55
+ - **系統服務** 一行指令裝成 launchd/systemd 服務
457
56
 
458
57
  ## 系統需求
459
58
 
@@ -463,41 +62,17 @@ GROQ_API_KEY=gsk_... # 選用,語音轉文字用
463
62
  - Telegram bot token([@BotFather](https://t.me/BotFather))
464
63
  - Groq API key(選用,語音轉文字用)
465
64
 
466
- ## 安全注意事項
467
-
468
- 透過 Telegram 遠端操作 Claude Code,與坐在終端機前操作有不同的信任模型。請注意以下風險:
469
-
470
- ### Telegram 帳號 = Shell 存取權
471
-
472
- `allowed_users` 中的任何用戶都能指示 Claude 在主機上執行任意 shell 指令。如果你的 Telegram 帳號被入侵(session 被盜、社交工程、手機借人),攻擊者等同取得 shell 存取權。建議:
473
-
474
- - 啟用 Telegram 兩步驟驗證
475
- - `allowed_users` 只放必要的人
476
- - 盡量用 `pairing` 模式取代預設 user ID
477
- - 檢查 `claude-settings.json` 裡的權限 allow/deny list
478
-
479
- ### 權限繞過(`skipPermissions`)
480
-
481
- `skipPermissions` 設定會傳遞 `--dangerously-skip-permissions` 給 Claude Code,停用所有工具使用的權限提示。這代表 Claude 可以讀寫任意檔案、執行任何指令、發送網路請求,完全不需要詢問。這是 Claude Code 官方的自動化旗標,但在遠端 Telegram 情境下代表**所有操作零人工審核**。只有在你完全信任部署環境時才啟用。
482
-
483
- ### Allow list 中的 `Bash(*)`
484
-
485
- 預設情況下(`skipPermissions` 關閉時),ccd 在 Claude Code 的權限 allow list 中設定了 `Bash(*)`,使 shell 指令不需要逐一核准。deny list 會阻擋少數破壞性指令(`rm -rf /`、`dd`、`mkfs`),但這是黑名單策略——無法涵蓋所有危險指令。這與 Claude Code 自身的權限模型一致,`Bash(*)` 是官方支援的進階用戶設定。
486
-
487
- 如果需要更嚴格的控制,可以編輯 `claude-settings.json`(每個 instance 產生在 `~/.claude-channel-daemon/instances/<name>/`),將 `Bash(*)` 改為特定模式如 `Bash(npm test)`、`Bash(git *)`。
488
-
489
- ### IPC Socket
490
-
491
- Daemon 與 Claude 的 MCP server 透過 Unix socket(`~/.claude-channel-daemon/instances/<name>/channel.sock`)通訊。Socket 限制為擁有者唯讀(`0600`)並要求 shared secret 握手認證。這些措施防止其他本地程序注入訊息,但無法防禦同機器上被入侵的用戶帳號。
492
-
493
- ### 密鑰儲存
65
+ ## 文件
494
66
 
495
- Bot token API key 以明文存放在 `~/.claude-channel-daemon/.env`。`ccd export` 會包含此檔案並警告安全傳輸。如果主機為共用環境,建議使用檔案系統加密。
67
+ - [Features](docs/features.md) 功能詳細說明
68
+ - [CLI Reference](docs/cli.md) — 所有指令與選項
69
+ - [Configuration](docs/configuration.md) — fleet.yaml、.env、資料目錄
70
+ - [Security](SECURITY.md) — 信任模型與安全強化
496
71
 
497
72
  ## 已知限制
498
73
 
499
- - 目前只在 macOS 測過
500
- - 全域 `enabledPlugins` 裡有官方 telegram plugin 會造成 409 polling 衝突(daemon 會自動重試)
74
+ - 支援 macOS(launchd)和 Linux(systemd),不支援 Windows
75
+ - 全域 `enabledPlugins` 裡有官方 Telegram plugin 會造成 409 polling 衝突
501
76
 
502
77
  ## 授權
503
78
 
@@ -24,7 +24,7 @@ export class DiscordAdapter extends EventEmitter {
24
24
  this.accessManager = opts.accessManager;
25
25
  this.inboxDir = opts.inboxDir;
26
26
  this.guildId = opts.guildId;
27
- this.categoryName = opts.categoryName ?? "CCD Agents";
27
+ this.categoryName = opts.categoryName ?? "AgEnD Agents";
28
28
  this.generalChannelId = opts.generalChannelId;
29
29
  mkdirSync(this.inboxDir, { recursive: true });
30
30
  this.client = new Client({
@@ -1 +1 @@
1
- {"version":3,"file":"discord.js","sourceRoot":"","sources":["../../../src/channel/adapters/discord.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discord.js","sourceRoot":"","sources":["../../../src/channel/adapters/discord.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export async function createAdapter(config, opts) {
15
15
  }
16
16
  default: {
17
17
  // External adapter — try canonical name, then bare name
18
- const candidates = [`ccd-adapter-${config.type}`, config.type];
18
+ const candidates = [`agend-adapter-${config.type}`, config.type];
19
19
  let factory;
20
20
  for (const pkg of candidates) {
21
21
  try {
@@ -29,7 +29,7 @@ export async function createAdapter(config, opts) {
29
29
  }
30
30
  if (!factory) {
31
31
  throw new Error(`Channel adapter "${config.type}" not found. ` +
32
- `Install it: npm install ccd-adapter-${config.type}`);
32
+ `Install it: npm install agend-adapter-${config.type}`);
33
33
  }
34
34
  return factory(config, opts);
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/channel/factory.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAqB,EAAE,IAAiB;IAC1E,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YACnE,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACjE,OAAO,IAAI,cAAc,CAAC;gBACxB,GAAG,IAAI;gBACP,OAAO,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC/D,YAAY,EAAG,MAAM,CAAC,OAAO,EAAE,aAAwB,IAAI,SAAS;gBACpE,gBAAgB,EAAG,MAAM,CAAC,OAAO,EAAE,kBAA6B,IAAI,SAAS;aAC9E,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,wDAAwD;YACxD,MAAM,UAAU,GAAG,CAAC,eAAe,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,OAAmC,CAAC;YAExC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC9B,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;oBACtB,MAAM;gBACR,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,oBAAoB,MAAM,CAAC,IAAI,eAAe;oBAC9C,uCAAuC,MAAM,CAAC,IAAI,EAAE,CACrD,CAAC;YACJ,CAAC;YAED,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/channel/factory.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAqB,EAAE,IAAiB;IAC1E,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YACnE,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACjE,OAAO,IAAI,cAAc,CAAC;gBACxB,GAAG,IAAI;gBACP,OAAO,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC/D,YAAY,EAAG,MAAM,CAAC,OAAO,EAAE,aAAwB,IAAI,SAAS;gBACpE,gBAAgB,EAAG,MAAM,CAAC,OAAO,EAAE,kBAA6B,IAAI,SAAS;aAC9E,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,wDAAwD;YACxD,MAAM,UAAU,GAAG,CAAC,iBAAiB,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,OAAmC,CAAC;YAExC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC9B,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;oBACtB,MAAM;gBACR,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,oBAAoB,MAAM,CAAC,IAAI,eAAe;oBAC9C,yCAAyC,MAAM,CAAC,IAAI,EAAE,CACvD,CAAC;YACJ,CAAC;YAED,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC"}