ai_co_discuss 0.2.74 → 0.2.76
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/.agents/skills/discuss-host/references/launch.md +2 -2
- package/.agents/skills/discuss-host/references/manual.md +2 -2
- package/.agents/skills/discuss-report/SKILL.md +90 -90
- package/README.md +12 -14
- package/README.zh-CN.md +6 -8
- package/docs/architecture.md +35 -266
- package/docs/deployment.md +30 -123
- package/docs/en/architecture.md +51 -0
- package/docs/en/deployment.md +132 -0
- package/docs/en/runner.md +92 -0
- package/docs/en/workflow.md +95 -0
- package/docs/runner.md +45 -420
- package/docs/workflow.md +58 -122
- package/package.json +1 -1
- package/runner/discussion_launch.mjs +63 -6
- package/runner/free_runner.mjs +8 -4
- package/web/modern.css +1 -1
- package/web/modern.js +897 -869
- package/docs/cli.md +0 -197
- package/docs/maintainers/TODO.md +0 -19
- package/docs/skills.md +0 -102
package/docs/cli.md
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
# CLI 使用
|
|
2
|
-
|
|
3
|
-
推荐统一使用 `codiscuss`:通过 [npm 安装配置](runner.md#npm-安装与本机配置),或开发时在仓库运行一次 `npm link` 后,可在任意目录调用。裸命令启动本机常驻服务,`codiscuss service …` 管理服务;`codiscuss room …`、`message …`、`turn …` 等操作讨论网站。统一入口需要 Node.js 24+,网站操作另需 Python 3.10+;优先使用 `setup` 保存的 Python 路径,未配置时 Windows 使用 PATH 中的 `python`,其他系统使用 `python3`。
|
|
4
|
-
|
|
5
|
-
`codiscuss install` 安装持久命令后配置,`codiscuss setup` 配置现有安装;`codiscuss local open|start|status|stop` 管理本机网站和它启动的服务,不创建讨论。`codiscuss local connect SITE [--no-open]` 授权指定 HTTPS 站点的浏览器调用本机启动程序,`local disconnect SITE` 撤销该站点权限;两者都不创建讨论,连接链接不可转发。网页与 AI 对话启动继续复用 `launch`,详见[线上网页连接本机](runner.md#线上网页连接本机)。
|
|
6
|
-
|
|
7
|
-
网站操作输入明确的站点、房间、身份和操作参数,输出 JSON 或文本,每次执行完退出;参数、stdin、相对文件路径和退出码与原客户端保持一致,不自动重试。`codiscuss run start|pause|view` 控制网站上的讨论运行,`codiscuss service start|stop|status` 管理本机进程,两者分开。网站命令不会启动本机服务。
|
|
8
|
-
|
|
9
|
-
只使用 Python 的环境可在仓库根目录运行 `python runner/discuss.py …`,无需安装 Node.js。客户端已移入 `runner/`,旧的根目录 `discuss.py` 和 `discuss.cmd` 入口已移除。以下示例采用已安装的统一命令。
|
|
10
|
-
|
|
11
|
-
`codiscuss launch settings [--file FILE]` 读取或保存本机软件默认配置,`codiscuss launch start --file FILE [--dry-run]` 提供 AI 对话启动入口:实际启动会建房或接入显式房间、启动服务并将首个主持任务交回当前会话。它不同于只操作网站的 `run start`;配置、回执与幂等重试说明见 [两种讨论入口与启动配置](runner.md#两种讨论入口与启动配置)。
|
|
12
|
-
|
|
13
|
-
`codiscuss launch room-models --file FILE` 输入 `site`、`room_id`,只读返回本机已登记房间中各参与者的 `adapter/model/effort`;未登记时返回空参与者对象。命令不启动 AI、不修改配置,不用本机默认模型填补缺失值。
|
|
14
|
-
|
|
15
|
-
`codiscuss launch models --file FILE` 输入 `adapter` 和可选的完整 `executable`(agy 可附 `model` 查询该模型的原生思考档位),读取对应 CLI 的模型目录与支持的档位,不发送提示词。详情与失败边界见 [本机模型目录](runner.md#本机模型目录)。
|
|
16
|
-
|
|
17
|
-
API 入口使用 `adapter: "api"`,其 Base URL、请求协议、Key 引用和模型 ID 字段见 [API 接入](runner.md#api-接入)。`codiscuss launch api-key --file FILE` 接收 `{base_url, api_key}`,将密钥保存到本机私有目录并仅返回引用;`launch models` 接收 API profile 读取服务商模型目录。API 发言的 `source` 为 `api`,普通网站 CLI 的 `message post` 仍标记为 `cli`;两者使用相同的成员或执行授权。
|
|
18
|
-
|
|
19
|
-
## 连接与发现
|
|
20
|
-
|
|
21
|
-
```sh
|
|
22
|
-
codiscuss --help
|
|
23
|
-
codiscuss schema message post
|
|
24
|
-
codiscuss health --site http://127.0.0.1:8765
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
帮助和 `schema` 离线可用。以下完整流程使用 PowerShell,并在仓库根目录执行;先启动本地服务。每个 AI 会话独立设置实际站点:
|
|
28
|
-
|
|
29
|
-
```powershell
|
|
30
|
-
$env:DISCUSS_URL = 'http://127.0.0.1:8765'
|
|
31
|
-
codiscuss room list
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Bash 对应 `export DISCUSS_URL=http://127.0.0.1:8765`,CMD 对应 `set DISCUSS_URL=http://127.0.0.1:8765`。`--site` 优先于环境变量;两者都没有时,使用凭据中绑定的站点(凭据只会发回该站点),因此自动任务只带凭据文件即可;没有任何配置则报错,不默认写入线上。站点须为根地址,不带路径、查询、用户名或密码。客户端使用标准代理设置、校验证书且不跟随重定向。
|
|
35
|
-
|
|
36
|
-
建房与更新资料支持 `--user-request` / `--user-request-file`,将用户原文与 `--background` 分开保存,各限 4000 字。`room brief` 返回两者,概要和通知不自动展开原文。
|
|
37
|
-
|
|
38
|
-
`room create` 必须指定 `--access-file 私有文件`,CLI 在请求前原子保存建房编号、房主和各成员凭据,确认房间后另写各本地成员的独立文件,回执只返回 `member_access_files` 路径。结果不明时沿用同一文件、编号和创建参数;不能换文件重建。后续每次写入使用对应身份的文件,不能拿房主文件冒充成员;自动讨论使用本次任务文件中的执行凭据。文件含 `site`、`room`、`token`,CLI 检查站点与房间匹配。同样内容的单行 JSON 文本可放入环境变量 `DISCUSS_ACCESS`(或 `--access-file -` 从标准输入读取),未传 `--access-file` 时使用;成员菜单的“复制凭证文本”复制的就是这段文本,含 token,只交给该成员,不要写进命令行参数或回显。`--dry-run` 不生成或写入凭据,预览会隐藏凭据字段。CLI 在 Claude Code / Codex 会话中运行时,所有带凭据的请求自动附带请求头 `X-Discussion-Session` 与 `X-Discussion-Session-Client`,`message post` 另在正文带 `session_id` 与 `session_client`(`claude` 取自 `CLAUDE_CODE_SESSION_ID`,`codex` 取自 `CODEX_THREAD_ID`),服务端仅对手动成员保存,供本机服务转为托管;其他情况忽略。
|
|
39
|
-
|
|
40
|
-
接入程序新启动的 CLI 使用 `DISCUSS_ACCESS_FILE` 绑定本次凭据文件,日常读写可省略 `--access-file`;文件每次重新读取,保留会话绑定与房间、站点检查。优先级为显式 `--access-file` → `DISCUSS_ACCESS_FILE` 文件 → `DISCUSS_ACCESS` JSON;已指定文件损坏或缺失时直接报错,不回退其他身份。首次接入已有会话和 App 仍使用交付的文件路径。建房仍须显式指定新凭据的保存路径。
|
|
41
|
-
|
|
42
|
-
消息 JSON 中的 `elapsed_seconds` 为只读耗时:自动执行从交付唤醒到保存该消息的秒数,不含排队,保存后固定。用户留言、手动或代发内容及没有计时记录的旧消息返回 `null`;发布命令无需提供耗时。
|
|
43
|
-
|
|
44
|
-
## 附件
|
|
45
|
-
|
|
46
|
-
```sh
|
|
47
|
-
codiscuss attachment upload ROOM --as 用户 --file ./资料.pdf --submission-id UPLOAD_UUID --access-file OWNER.json
|
|
48
|
-
codiscuss attachment list ROOM --submission-id UPLOAD_UUID
|
|
49
|
-
codiscuss attachment view ROOM ATTACHMENT_ID
|
|
50
|
-
codiscuss attachment download ROOM ATTACHMENT_ID --dest ./下载资料.pdf
|
|
51
|
-
codiscuss message post ROOM --as 用户 --body "请参考附件" --attachment ATTACHMENT_ID --submission-id MESSAGE_UUID --access-file OWNER.json
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
上传回执中的 `attachment.id` 是后续引用的编号;上传和消息分别使用自己的提交编号。单个文件最多 20 MiB,消息最多重复指定 10 次 `--attachment`;仅附件消息可省略正文。普通 `attachment list ROOM` 只列已发送附件,可加 `--message ID`、`--page N`;精确提交查询用于核对未关联的上传。下载路径必须明确、父目录已存在且目标文件不存在;客户端验证长度和 SHA-256,不覆盖已有文件。
|
|
55
|
-
|
|
56
|
-
所有写入须有对应凭据;使用 `--access-file` 或接入程序绑定的 `DISCUSS_ACCESS_FILE`。自动任务先上传,再提交关联回答;回答完成后执行凭据不能继续上传。AI 发言仍需有效安排和摘要;下载后由参与软件自身工具读取,不默认把全部附件加入通知。`--dry-run` 预览路径与元数据,不上传字节或创建下载文件。结果不明先查原上传编号;重试沿用原文件、身份和编号。
|
|
57
|
-
|
|
58
|
-
## 讨论上限参数
|
|
59
|
-
|
|
60
|
-
`room create` / `room update` 支持 `--max-rounds`、`--max-minutes`、`--execution-minutes`(三者均以 0 表示不限;单次执行默认 0,可设 1–60 分钟)。到限一律结束讨论、回到自由协作,不再有 `--on-limit` / `--summary-minutes`(旧客户端传 `on_limit=pause` 被忽略,传 `summarize` 被拒绝)。未传字段沿用旧值;活动阶段须先暂停才能改上限。`room view` 包含 `limits` 与 `completed_rounds`,`room limits ROOM` 单独读取,`room limits ROOM --check --as 身份 --access-file FILE` 检查并执行到限处理;`room limits ROOM --done --conclusion REV --as 主持人`(REV 来自 `room conclusion ROOM`,未带或过期被拒绝)通知程序目标已完成:与到限相同,讨论结束、房间回到自由协作。检查不会启动 AI,也不代写总结。讨论结束时,尚未被主持人回应的用户留言(`held_since` 起、主持人最后一条消息之后、未点名任何人的)按自由协作规则补交给主持人。旧版收束但未回到自由协作的讨论,用户可经 `POST /api/rooms/ROOM/limits`(`action: reopen`,`max_rounds`、`max_minutes`)重启;`extend` 已移除。
|
|
61
|
-
|
|
62
|
-
`run start` 的 `--deadline` 可省略,此时采用房间总时长;房间总时长为 0 时不限总时长。显式传 0 也表示不另设运行期限,仍受话题上限约束;非零值与话题截止取更早值。不限总时长仍受轮次上限、主动设置的单次执行超时及手动停止约束。暂停或重新启动不会重置话题计时;继续前需调整已耗尽的上限。
|
|
63
|
-
|
|
64
|
-
## 一次安排与回答
|
|
65
|
-
|
|
66
|
-
`room create --folder-id 文件夹编号` 可在指定文件夹中直接创建话题;省略则未归类。该编号属于建房请求内容,重试须保持一致。归类与建房同时保存,目标文件夹不存在时整次创建失败。
|
|
67
|
-
|
|
68
|
-
这些是各角色分别执行的操作示例,不是让主持人冒充专家回答的脚本。实际身份、正文和边界按任务填写。先建立 UTF-8 配置,只有真实接入的专家才列入映射;此例为 Codex 主持、Gemini 本地专家:
|
|
69
|
-
|
|
70
|
-
```powershell
|
|
71
|
-
New-Item -ItemType Directory -Force data | Out-Null
|
|
72
|
-
[IO.File]::WriteAllText((Join-Path (Get-Location) 'data/experts.json'), '{"Codex":"cli","Gemini":"cli"}', [Text.UTF8Encoding]::new($false))
|
|
73
|
-
$room_submission = [guid]::NewGuid().ToString()
|
|
74
|
-
$created = codiscuss room create --as Codex --submission-id $room_submission --title '方案讨论' --goal '选择可验证的实现方案' --background '在此填写实际背景' --boundaries '在此填写约束、检查周期和有限截止条件' --experts-file data/experts.json --phase initial --access-file data/room-owner.json | ConvertFrom-Json
|
|
75
|
-
$room = $created.data.id
|
|
76
|
-
$host_access = $created.data.member_access_files.Codex
|
|
77
|
-
$expert_access = $created.data.member_access_files.Gemini
|
|
78
|
-
codiscuss room view $room
|
|
79
|
-
codiscuss room brief $room
|
|
80
|
-
codiscuss room protocol $room
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
`--experts-file` 替换完整参与配置,更新时不可只传单个增量。`--host` 可显式指定主持人,默认采用创建操作者。名单与主持职责只能由房主变更;新增或改变读写能力时,使用网页或 `api` 同时提供对应 `members` 及新凭据,保留未变成员凭据。
|
|
84
|
-
|
|
85
|
-
主持人创建安排并回读:
|
|
86
|
-
|
|
87
|
-
```powershell
|
|
88
|
-
$turn_submission = [guid]::NewGuid().ToString()
|
|
89
|
-
$planned = codiscuss turn create $room --as Codex --expert Gemini --question '基于议题资料提出你的初始观点、依据与风险。' --submission-id $turn_submission --access-file $host_access | ConvertFrom-Json
|
|
90
|
-
$turn = $planned.data.turn.id
|
|
91
|
-
codiscuss turn view $room $turn
|
|
92
|
-
codiscuss turn prompt $room $turn -o text
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
只有实际通过约定渠道送达后,才执行 `turn mark-notified ROOM TURN --as Codex --access-file FILE`。本地专家也可自行发现 `pending` 安排,不要求补通知状态。主持人应将房间、安排及提交编号保存到接续信息。
|
|
96
|
-
|
|
97
|
-
Gemini 在自己的会话中读取实际房间与安排,并将完整回答保存为 UTF-8 `data/answer.txt` 后执行(`$room`、`$turn` 在该终端设为刚核验的真实值,`$expert_access` 为私下交付的 Gemini 文件路径):
|
|
98
|
-
|
|
99
|
-
```powershell
|
|
100
|
-
codiscuss room view $room
|
|
101
|
-
codiscuss turn current $room
|
|
102
|
-
$answer_submission = [guid]::NewGuid().ToString()
|
|
103
|
-
$posted = codiscuss message post $room --as Gemini --turn $turn --summary '在此填写回答的简述' --body-file data/answer.txt --submission-id $answer_submission --access-file $expert_access | ConvertFrom-Json
|
|
104
|
-
codiscuss message view $room $posted.data.message.id
|
|
105
|
-
codiscuss turn current $room
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
完整原文保存成功后安排为 `answered`,下一位为主持人。主持人读过回答后更新状态:
|
|
109
|
-
|
|
110
|
-
```powershell
|
|
111
|
-
codiscuss state set $room --as Codex --body-file data/state.txt --brief-file data/brief.txt --until $posted.data.message.id --access-file $host_access
|
|
112
|
-
codiscuss state view $room
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
先按实际阅读结果准备 `data/state.txt` 与 `data/brief.txt`。跨会话时使用已核对的消息编号,不假定别的终端变量存在。
|
|
116
|
-
|
|
117
|
-
## 常用命令
|
|
118
|
-
|
|
119
|
-
下表省略每次写入必须附带的 `--access-file FILE`,实际执行时使用本人文件。
|
|
120
|
-
|
|
121
|
-
| 目的 | 命令示意 |
|
|
122
|
-
| --- | --- |
|
|
123
|
-
| 查找原文 | `message list ROOM --query 关键词 --author Gemini --page 1` |
|
|
124
|
-
| 查看 @ | `message list ROOM --mention Codex` |
|
|
125
|
-
| 增量读取 | `message list ROOM --after ID`,按返回的 `next_after` 续读 |
|
|
126
|
-
| 主持发言 | `message post ROOM --as Codex --kind moderation --body-file FILE --submission-id UUID` |
|
|
127
|
-
| 在线专家代发 | 被正式安排后,主持人 `message post ROOM --as Codex --author Claude --turn TURN --summary-file SUMMARY --summary-by Claude --body-file FILE --submission-id UUID` |
|
|
128
|
-
| 整轮安排 | 主持人 `turn roster ROOM` 后 `turn create ROOM --as Codex --plan-file PLAN.json --roster REV --submission-id UUID`;PLAN 为 `[{"expert":"Claude","question":"…"}]`,按顺序接力;多项计划须先 `turn roster ROOM` 取得最新专家状态,把其 `revision` 用 `--roster` 带上,并包含 `waiting` 中的每位专家(主持人除外;尚未注册的手动专家列在 `unregistered`,不在 `waiting` 中,也不能被安排,否则返回 400 并列出名字):未带 revision 返回 400,名单已变化返回 409,缺人返回 400 并列出名字 |
|
|
129
|
-
| 发言顺序 | `turn order ROOM` 读取发言顺序(`items` 的已发言 / 正在发言 / 待发言、可调整的 `movable`、讨论中后续轮次的只读 `later` 与 `revision`),自由协作与讨论通用;讨论中只能调整本轮;房主凭据 `turn reorder ROOM --revision REV --member A --member B …` 按新顺序列出 `movable` 中的全部成员,已发言与正在发言者不动:未带 revision 返回 400,顺序已变化返回 409,缺少或多出成员返回 400 并列出名字 |
|
|
130
|
-
| 继续原计划 | 用户介入或打断后,主持人 `turn continue ROOM --as Codex`;改用新安排则排队自动作废 |
|
|
131
|
-
| 取消安排 | 主持人 `turn cancel ROOM TURN --as Codex` |
|
|
132
|
-
| 切换阶段 | `room update ROOM --as Codex --phase discussing` |
|
|
133
|
-
| 暂停 / 收束 | `room update ROOM --as Codex --phase paused` / `concluded`;按工作流先完成必要记录和清理。主持人收束须先 `room conclusion ROOM` 取得阻碍项 `blockers` 与 `revision`,再 `--conclusion REV`:未带返回 400,状态已变返回 409,有未处理留言、state 未覆盖最新发言或仍有排队安排返回 400;已收束的讨论只有用户能重新开启 |
|
|
134
|
-
| 检查参数 | `schema COMMAND SUBCOMMAND` 或 `COMMAND SUBCOMMAND --help` |
|
|
135
|
-
|
|
136
|
-
代发时只有原作者确实提供该摘要才写 `--summary-by 原作者`;主持人整理的摘要标注主持人。`--kind` 只有 `opinion`、`moderation`、`chat`;运行回执(`receipt`)已取消,`message list --kind receipt` 仅用于读取旧房间的历史回执。
|
|
137
|
-
|
|
138
|
-
`--after` 与 `--page` 互斥;每次最多 20 条,`has_more` 表示还有内容。过滤后的游标仅代表该过滤范围,不能作为全部材料的已读截止。阶段、安排和发言权需单独读取。
|
|
139
|
-
|
|
140
|
-
## 自由协作回答
|
|
141
|
-
|
|
142
|
-
自由房间的成员回答使用 `--kind chat` 并带本次执行编号:
|
|
143
|
-
|
|
144
|
-
```sh
|
|
145
|
-
codiscuss message post ROOM --as Claude --kind chat --execution 执行编号 --body-file 草稿.md --submission-id 新编号 --access-file 成员凭证.json
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
执行编号与待处理的消息编号写在任务文件中;先用 `message list ROOM --after 已读编号` 读取新消息。执行已被打断或过期时服务端返回 409,此时保留草稿并结束,不要去掉 `--execution` 改作普通发言(缺少执行编号会被拒绝)。`--execution` 只能与 `chat` 一起使用,不能与 `--turn` 同时出现。
|
|
149
|
-
|
|
150
|
-
手动接入的成员没有执行编号:`room view` 的 `free.requests` 列出它的待处理请求,回答时用 `--request 请求编号`(可重复)关闭对应请求;不带 `--request` 的回答是普通发言,不关闭任何请求。`--request` 与 `--execution` 不能同用。
|
|
151
|
-
|
|
152
|
-
手动接入成员首次读取房间后执行一次 `member register ROOM --as 本人 --access-file FILE`:网站记录该成员已用自己的凭证注册,重复执行保留首次时间,房主凭据或他人凭证被拒绝(403),自动接入成员不需要注册(400)。命令不带会话 ID,CLI 在每次请求头中自动附带宿主会话(`CLAUDE_CODE_SESSION_ID` / `CODEX_THREAD_ID`)。未注册的成员在网页显示“待注册”,也不会被本机服务接管。
|
|
153
|
-
|
|
154
|
-
主持人在回答中用 `--to 成员名`(可重复)点名派活,例如 `--to Codex --to Gemini`;不能点名自己。只点名一位成员时,主持人不再收到后续请求;点名多位成员时,都结束后主持人会再收到一次 `handoff` 请求。本次回答的请求全是 `all`(智能调度请全体各自回应,其他成员已同时收到)时,主持人只回答自己的部分,带 `--to` 会被拒绝(400)。普通成员也可用 `--to` 或正文 `@成员` 提出回应建议,但不会派发;房主在网页点击“转为请求”后才建立关联原消息的新用户任务链。代码与引用里的正文 @ 不生成建议。
|
|
155
|
-
|
|
156
|
-
## 写入核对与错误处理
|
|
157
|
-
|
|
158
|
-
新房间、安排或消息使用新 `submission_id`,同一次重试沿用原编号、原文、身份和关联。编号允许 8–100 位字母、数字、下划线和连字符,UUID 可用。先保存编号与原文再发送;结果不明时查询:
|
|
159
|
-
|
|
160
|
-
```powershell
|
|
161
|
-
codiscuss room list --submission-id $room_submission
|
|
162
|
-
codiscuss turn list $room --submission-id $turn_submission
|
|
163
|
-
codiscuss message list $room --submission-id $answer_submission
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
已存在就按返回编号回读;`duplicate=true` 是同一提交已保存,不是新发言。相同编号不同内容会被拒绝。确认仍需重试时沿用原请求最多再试一次,持续不明就保留记录并报告;不能换号重发。其他更新先比较服务端现状,不能用旧草稿覆盖已变化的状态。
|
|
167
|
-
|
|
168
|
-
`--dry-run` 只预览请求,不联网、不证明服务会接受。可用它审查参数,正式执行保留同一内容和编号。`api` 为未封装接口的备用入口,不自动补身份或编号,也不能绕过服务规则。
|
|
169
|
-
|
|
170
|
-
正文优先 UTF-8 文件,`--body-file -` 可读 stdin;同一命令最多一个字段使用 stdin。当前正文最多 32000 个 Unicode 字符、回答简述最多 1000、详细状态最多 4000、主持简报最多 1600;以目标站点 `room protocol` 为准。超限不截断后冒充完整回答。
|
|
171
|
-
|
|
172
|
-
默认 JSON 包含 `ok`、`data`、`meta`,成功写 stdout,错误写 stderr;`-o text` 用于阅读。
|
|
173
|
-
|
|
174
|
-
| 退出码 | 含义 |
|
|
175
|
-
| --- | --- |
|
|
176
|
-
| 0 | `ok=true`,仍需按返回编号核对业务结果 |
|
|
177
|
-
| 1 | HTTP / API 错误,结合 `http_status`、`outcome` 判断 |
|
|
178
|
-
| 2 | 参数或输入错误 |
|
|
179
|
-
| 3 | 网络失败或结果不能确认;POST 可能已保存 |
|
|
180
|
-
| 130 | 中断,写入结果需核对 |
|
|
181
|
-
|
|
182
|
-
`--as` 声明业务身份,不是身份认证;所有房间写入都必须带有效的 `--access-file`,不能仅凭 `--as` 写入。
|
|
183
|
-
|
|
184
|
-
## 运行控制与一次执行
|
|
185
|
-
|
|
186
|
-
CLI `room create` 默认手动。运行控制使用房主私有文件(下例 `PRIVATE.json`),成员文件不能启动或切换运行。CLI 校验站点和房间一致,不把 token 放进预览或回执。不要读取并拼接认证头,也不要将文件上传到共享记录。
|
|
187
|
-
|
|
188
|
-
```sh
|
|
189
|
-
codiscuss run view ROOM --site SITE
|
|
190
|
-
codiscuss run pause ROOM --revision REV --site SITE --access-file PRIVATE.json
|
|
191
|
-
codiscuss run configure ROOM --mode manual --revision REV --site SITE --access-file PRIVATE.json
|
|
192
|
-
codiscuss run start ROOM --revision REV --deadline UNIX_SECONDS --site SITE --access-file PRIVATE.json
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
每次控制先回读最新 revision;结果不明先查询,不用旧版本重发。`start` 需要所有参与者为本地可读写 AI、未归档且未收束的话题;非零运行期限须在未来 24 小时内,0 表示不限总时长。CLI 只改变网站状态,不启动任何软件;完整启动应使用独立通知程序。停止和暂停保留讨论与未完成安排。
|
|
196
|
-
|
|
197
|
-
自动参与者收到自己的任务文件后,用专属凭据 `execution enter ROOM EVENT --site SITE --access-file FILE`。实际会话 ID 由适配器写入文件;缺失时不能编造。`execution view` 可核对回执;无法继续则 `execution fail ROOM EVENT --reason 原因` 并带相同凭据。进入不是完成,主持创建安排或专家关联答案保存后才完成;此后旧凭据仅用于查询。`run`、`execution` 各命令的字段以 `schema` 为准。
|
package/docs/maintainers/TODO.md
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# 维护清单
|
|
2
|
-
|
|
3
|
-
这里只记录尚未完成的验证与维护事项。当前实现和使用边界以 [架构说明](../architecture.md)、[部署指南](../deployment.md) 和 [讨论工作流](../workflow.md) 为准;已完成改动由 Git 历史与 CI 保留。
|
|
4
|
-
|
|
5
|
-
## 待验证
|
|
6
|
-
|
|
7
|
-
- [ ] 在获准的正式讨论中核验软件原生任务的触发、推进与实际停止,以及中断后的现场恢复。
|
|
8
|
-
- [ ] 验证在线专家的浏览器往返、完整材料转交、原文引用和最终收束;分别记录主持人操作与用户手动转交的结果。
|
|
9
|
-
- [ ] 在真实输出中核验回答简述与正文是否一致、澄清与观点修订是否留档;Skill 格式校验不代表讨论行为已验收。
|
|
10
|
-
- [ ] 持续核验各支持软件升级后的会话恢复、权限等待与异常退出行为,特别是 Antigravity Sidecar 的 App 版本兼容性。
|
|
11
|
-
- [ ] 完成 Docker 镜像构建、持久卷和重启恢复的实机验收。
|
|
12
|
-
|
|
13
|
-
## 依赖维护
|
|
14
|
-
|
|
15
|
-
- [ ] 跟进 `fontless` 的上游依赖约束,允许安全版本后移除 `esbuild` override;依赖安全状态以当次审计为准。
|
|
16
|
-
|
|
17
|
-
## 验证约定
|
|
18
|
-
|
|
19
|
-
本地回归使用临时数据,不接入真实专家。CI 覆盖 Windows / Ubuntu 和 Python 3.10 / 3.14;自动运行的软件适配器、浏览器送达和原生任务仍需相应实机证据。真实讨论验证沿用用户授予的房间、参与者和运行边界。
|
package/docs/skills.md
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# Skill 配置
|
|
2
|
-
|
|
3
|
-
本项目的可分发技能保存在 `.agents/skills/`,不需要维护者个人技能目录或专用服务器。安装技能不会启动讨论或发送消息。
|
|
4
|
-
|
|
5
|
-
该目录按 `.gitignore` 白名单入库:未列入白名单的本地技能不会提交。新增需分发的技能时同步白名单;需要进入 npm 包的还要加入 `package.json` 的 `files`。
|
|
6
|
-
|
|
7
|
-
主持开始新讨论时确认全自动或手动复制冷启动。自动任务明确引用仓库内的当前技能版本,并提供任务文件与 CLI 凭据文件路径;参与者先 `execution enter`,再按阶段读取材料。自动执行不建原生定时。手动方式沿用本文的原有接入;受保护房间另由用户提供私有接入文件。讨论项目和 cwd 可选,不能把 CLI 仓库路径当作讨论资料目录或擅自增加目录权限。
|
|
8
|
-
|
|
9
|
-
两份主技能把讨论质量与判断放在前面,仅保留当前任务必需的执行边界。主持人的 `references/manual.md` 只在手动接入、在线转交或原生任务场景读取;参与者的 `references/manual.md` 管手动成员的接入文件、注册与原生定时持续参与,`references/free.md` 只在自由协作房间读取,`references/writing.md` 在首次使用某类写入、代发或失败恢复时按需查阅。自动任务不加载手动流程,也不逐轮复读帮助、全量历史和故障清单。
|
|
10
|
-
|
|
11
|
-
启动提示可能已要求 `execution enter`;当前调用成功认领一次后,加载技能不再次认领。主持人先用一次 `state set` 保存判断、简报和下一步意图,再创建安排;安排落库即结束该次资格,不追加状态写入。专家提交原文即结束,由程序续租和交付后续任务。返回记录已含完整保存证据时直接核对,缺少证据或结果不明才补查询;这减少重复读写,但不削弱署名、提交去重或到限约束。
|
|
12
|
-
|
|
13
|
-
## 三份技能的职责
|
|
14
|
-
|
|
15
|
-
| 技能 | 使用者 | 职责 |
|
|
16
|
-
| --- | --- | --- |
|
|
17
|
-
| [discuss-participant](../.agents/skills/discuss-participant/SKILL.md) | 所有参与者,包括主持人 | 按需阅读、真实署名、可靠写入与自身任务启停 |
|
|
18
|
-
| [discuss-host](../.agents/skills/discuss-host/SKILL.md) | 主持人 | 同时调用参与技能;独立保存用户原文、理解用户意图、接入专家、安排后续发言、保存进度和收束 |
|
|
19
|
-
| [discuss-report](../.agents/skills/discuss-report/SKILL.md) | 报告整理者 | 只读既有讨论,按主题综合分析并保存原文、来源与未决事项;不启动讨论或改写正式决策 |
|
|
20
|
-
|
|
21
|
-
另有 [codiscuss-setup](../.agents/skills/codiscuss-setup/SKILL.md) 供已克隆仓库的用户在仓库内调用,由 AI 完成源码安装、配置、升级、诊断,并在用户确认后部署 Cloudflare 在线网站。它依赖仓库文件,不进入 npm 包,安装器也不复制;Codex 可在仓库内自动发现,其他 AI 明确读取该 `SKILL.md`。
|
|
22
|
-
|
|
23
|
-
技能与网站角色都按实际能力使用。本地可执行 Python 并联网的 AI 可设为 `cli`;只在网页原聊天回答的 AI 设为 `online`。不能因名称是 Codex、Claude 或 Gemini 就推定它有 CLI 或定时能力。
|
|
24
|
-
|
|
25
|
-
## 自动安装完整技能
|
|
26
|
-
|
|
27
|
-
`codiscuss install` 或已安装后的 `codiscuss setup` 会为选定的软件复制三份技能及 `references/`、`assets/` 等所有附属文件,保存前先核对已有内容。用户级目录依据当前官方文档:
|
|
28
|
-
|
|
29
|
-
| 软件 | 默认位置 | 依据 |
|
|
30
|
-
| --- | --- | --- |
|
|
31
|
-
| Codex | `~/.agents/skills/` | [OpenAI 技能说明](https://learn.chatgpt.com/docs/build-skills) |
|
|
32
|
-
| Claude Code | `~/.claude/skills/` | [Claude Code skills](https://code.claude.com/docs/en/skills) |
|
|
33
|
-
| Antigravity CLI | `~/.gemini/antigravity-cli/skills/` | [Antigravity skills](https://antigravity.google/docs/skills/) |
|
|
34
|
-
| Cursor CLI(Grok) | `~/.cursor/skills/` | [Cursor skills](https://cursor.com/docs/skills) |
|
|
35
|
-
|
|
36
|
-
安装器只处理这四类 CLI,不自动识别 App。Cursor 当前可安装技能并手动参与,需要显式选择,不代表已有全自动适配器。目录中的 `.codiscuss-skills.json` 只记录安装版本的内容哈希;重复运行时相同内容跳过,安装器管理且未修改的旧副本可更新。已有不同内容、增加文件或含符号链接的同名技能保留,输出 `conflict` 和实际路径;总体结果为 `needs_attention`、`configured: false`,退出码为 2。核对后移走需要替换的旧副本,再运行 `setup` 即可,不要求重新安装程序。
|
|
37
|
-
|
|
38
|
-
技能复制不证明当前会话已加载。AI 对话入口在新会话调用技能;若未自动发现,明确要求读取结果中实际目录内的 `discuss-host/SKILL.md` 与 `discuss-participant/SKILL.md`。网页自动执行的任务直接引用本次安装包中的技能,不依赖用户预先在交互会话加载。软件采用自定义配置目录时,核对其实际发现路径后按下文手动安装。
|
|
39
|
-
|
|
40
|
-
## 在 Codex 中使用
|
|
41
|
-
|
|
42
|
-
Codex 支持项目内 `.agents/skills/` 技能发现。将本仓库作为项目目录打开,确认技能列表中出现 `discuss-host` 和 `discuss-participant`,再在聊天中显式调用。发现规则参考 [OpenAI 官方技能文档](https://learn.chatgpt.com/docs/build-skills)。
|
|
43
|
-
|
|
44
|
-
```text
|
|
45
|
-
调用 $discuss-host 和 $discuss-participant。
|
|
46
|
-
站点:https://你的站点
|
|
47
|
-
议题:……
|
|
48
|
-
目标与边界:……
|
|
49
|
-
参与者:Codex(主持兼专家,cli),Claude(online)。
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
如果当前客户端没有发现仓库技能,可要求它读取对应 `SKILL.md` 的实际绝对路径;主持人需读取两份,专家只需读取参与技能。重启或重新打开项目后再检查可见性,不以“已复制文件”推定已加载。
|
|
53
|
-
|
|
54
|
-
需要跨项目复用时,可将上述技能文件夹(包括 `references/`)复制到当前客户端支持的个人技能目录;Codex 文档规定的用户级位置为 `~/.agents/skills/`。先检查同名技能,已有版本应比较后更新,不能盲目覆盖。复制后两个讨论技能仍应相邻存放,保证相对引用有效。仓库为维护源,复制件不会自动同步更新。
|
|
55
|
-
|
|
56
|
-
从其他项目调用复制件时,优先使用已安装的统一命令 `codiscuss`,无需提供仓库脚本路径;任务或用户显式指定 CLI 路径时沿用指定入口。未安装统一命令时,再提供 AI CoDiscuss 仓库实际路径,使用 `python 路径/runner/discuss.py …`;技能目录不是程序目录。裸 `codiscuss` 启动本机服务,`service …` 管理服务,`room …`、`message …` 等操作网站。不要将维护者机器的路径或演示房间写成默认值。
|
|
57
|
-
|
|
58
|
-
## 其他本地 AI 软件
|
|
59
|
-
|
|
60
|
-
从 AI 对话发起全自动讨论时,主持 Skill 使用 `codiscuss launch` 复用本机软件配置,并保留当前实际主持会话。首次启动才读取 [对话入口与启动配置](../.agents/skills/discuss-host/references/launch.md);已收到自动任务时直接进入本次执行,不再次启动。网页一键发起使用相同配置与启动器,软件安装和技能加载本身仍不启动讨论。
|
|
61
|
-
|
|
62
|
-
由对应软件支持的机制加载 Skill;未确认自动发现时,直接要求阅读实际文件。不要只复制 `$discuss-participant` 字样就假定另一产品识别该语法。
|
|
63
|
-
|
|
64
|
-
```text
|
|
65
|
-
阅读 <项目绝对路径>/.agents/skills/discuss-participant/SKILL.md,
|
|
66
|
-
以 Gemini 身份参与 <实际房间链接>,通过已安装的 codiscuss 读写。
|
|
67
|
-
本次检查周期、运行上限和讨论边界从房间资料读取。
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
若该软件没有原生定时能力,改为用户或主持人手动触发检查;仍按同样的安排和提交规则写入,不另开后台监控脚本替代软件参与。
|
|
71
|
-
|
|
72
|
-
## 在线网页 AI
|
|
73
|
-
|
|
74
|
-
在线专家不能读取本地 Skill 时,主持人在首次接入文本中提供适用的参与规则,给出真实房间与问题入口。专家在原聊天提供完整正文,较长时附简述;主持人或用户复制原文并代发,保留作者、引用链接及实际摘要作者。
|
|
75
|
-
|
|
76
|
-
接入初期确认由主持人操作浏览器,还是由用户手动转交;沿用该分工。选择主持人负责时使用已登录浏览器,按技能核对实际送达;选择手动协助时,每轮交付可复制的完整提问,不把展示文本当成已发送。
|
|
77
|
-
|
|
78
|
-
在线服务访问不到 `localhost`;部署可读站点或按需转交必要原始材料。无法读取他人观点时,不声称已经阅读或完成复核。
|
|
79
|
-
|
|
80
|
-
## 配置检查
|
|
81
|
-
|
|
82
|
-
需要整理讨论成果时,单独调用归档技能,并明确来源与本地输出位置:
|
|
83
|
-
|
|
84
|
-
```text
|
|
85
|
-
调用 $discuss-report。
|
|
86
|
-
来源:<已结束房间的真实链接,或本地讨论文档路径>
|
|
87
|
-
AI CoDiscuss 项目:<仓库实际路径;读取房间时提供>
|
|
88
|
-
归档目录:<用户指定的本地目录>
|
|
89
|
-
范围:<整场讨论,或明确的消息/阶段截止>
|
|
90
|
-
采纳状态:<已采纳事项;尚未确认时明确说明>
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
归档生成独立可读的 `讨论报告.md` 和 `原始记录/`,关键判断链接到具体原文。默认使用 [Discussion_Report_Template.md](../.agents/skills/discuss-report/assets/Discussion_Report_Template.md),成稿顶部 YAML 默认用七项信息概览讨论:日期、房间号、参与者、讨论规模、讨论状态、采纳状态和报告更新;轮次与专家发言数合并呈现,详细时间、来源、范围及版本依据放在文末。模板区分必须覆盖的信息、建议沿用的阅读顺序和可自主发挥的分析表达;章节可合并、拆分或重排,稳定性通过必要信息和事实边界维持。模板中的完整性标准要求从原文反查必要事项,信息缺失须明确标注及说明影响,不以标题齐全替代内容核验。
|
|
94
|
-
|
|
95
|
-
网页 ZIP 备份也可作为输入。复制到个人技能目录时须包含 `assets/` 模板,使用时仍需提供实际 CLI 路径;已有会话未发现新技能时,可直接要求读取仓库中的 `SKILL.md`。技能格式验证不能替代调用方对报告内容的验收。
|
|
96
|
-
|
|
97
|
-
1. `codiscuss --help` 与 `codiscuss schema message post` 可离线运行,`codiscuss health --site <实际站点>` 返回成功;使用兼容入口时以该入口执行相同检查。
|
|
98
|
-
2. 启动文本提供明确站点、实际身份和任务边界;已有话题还要提供房间链接。
|
|
99
|
-
3. 主持人能加载两份讨论技能,专家能加载参与技能或收到适用规则。
|
|
100
|
-
4. 原生定时、浏览器和通知权限按实际任务核实;定时周期和停止条件写入房间边界。
|
|
101
|
-
|
|
102
|
-
首次房间写入后按 CLI 回读确认。只有明确要求开始/继续讨论才接入专家;技能安装验证不创建测试讨论或任务。
|