ai_co_discuss 0.3.47 → 0.3.49
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/SKILL.md +1 -0
- package/.agents/skills/discuss-host/references/discussion.md +113 -113
- package/.agents/skills/discuss-host/references/free.md +36 -34
- package/.agents/skills/discuss-host/references/goal.md +35 -0
- package/.agents/skills/discuss-participant/SKILL.md +1 -0
- package/.agents/skills/workflow-creator/SKILL.md +2 -2
- package/README.md +3 -1
- package/backend/admin.py +104 -35
- package/backend/free_room.py +2170 -2136
- package/backend/goal_room.py +358 -0
- package/backend/mode_room.py +105 -0
- package/backend/schema.sql +1593 -1510
- package/backend/server.py +2636 -2555
- package/backend/session_room.py +1180 -1148
- package/docs/THIRD_PARTY_NOTICES.md +1293 -1264
- package/docs/deployment.md +5 -1
- package/docs/en/workflow.md +15 -1
- package/docs/runner.md +28 -7
- package/docs/workflow.md +15 -1
- package/package.json +3 -2
- package/runner/adapters/api.mjs +333 -313
- package/runner/adapters/claude.mjs +12 -16
- package/runner/admin_account.mjs +12 -19
- package/runner/device_auth.mjs +369 -0
- package/runner/discuss.py +1208 -1125
- package/runner/discussion_launch.mjs +107 -12
- package/runner/discussion_service.mjs +25 -1
- package/runner/expert_prompts.mjs +132 -132
- package/runner/free_runner.mjs +982 -910
- package/runner/pinyin_table.mjs +406 -0
- package/runner/project_files.mjs +52 -3
- package/runner/relay_channel.mjs +51 -7
- package/runner/remote_launch.mjs +221 -235
- package/runner/remote_policy.mjs +156 -0
- package/runner/scheduler.mjs +459 -429
- package/runner/stt.mjs +2 -2
- package/runner/tts.mjs +74 -113
- package/runner/tts_providers.mjs +205 -0
- package/runner/webauthn.mjs +155 -0
- package/runner/workflows.mjs +371 -348
- package/web/app.js +355 -51
- package/web/modern.css +1 -1
- package/web/modern.js +5745 -3813
package/docs/deployment.md
CHANGED
|
@@ -99,7 +99,7 @@ npm run deploy -- --cwd .wrangler/deploy
|
|
|
99
99
|
codiscuss token
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
-
`codiscuss token` 生成注册管理员用的一次性令牌(需已 `wrangler login
|
|
102
|
+
`codiscuss token` 生成注册管理员用的一次性令牌(需已 `wrangler login`),在网站左下角注册时填入。注册后其他设备直接用账号密码登录;密码只由你自己保管,本机不保存(旧版本保存的 `~/.codiscuss/admin-accounts.json` 会在服务启动时删除)。以上 schema 命令用于空库初始化;已有站点按下面的升级流程操作。
|
|
103
103
|
|
|
104
104
|
### 升级已有数据库
|
|
105
105
|
|
|
@@ -120,6 +120,10 @@ npx wrangler d1 execute DB --remote --config .wrangler/deploy/wrangler.jsonc --f
|
|
|
120
120
|
|
|
121
121
|
本机 Python 站点启动时检测旧表,自动在单个事务内迁移,再应用 schema;迁移失败会整体回滚并终止启动。升级前仍应备份 SQLite 和附件,不必手工执行删表脚本。
|
|
122
122
|
|
|
123
|
+
登录记录改存在 `admin_logins` 表中,带有效期。执行新 schema 后,旧表 `admin_sessions` 里的永久登录不再被读取,所有设备需要重新登录一次。网站和电脑上的 codiscuss 需要同时升级:新版电脑只执行已配对设备签名的转交命令。升级后,每台外出用的设备都要按 [远程控制](runner.md#在其他设备上远程控制) 重新配对一次,并创建通行密钥;新增的 `admin_passkeys`、`admin_challenges`、`remote_entry_messages` 表由同一份 schema 创建。登录改为 HttpOnly Cookie,升级后每台设备需要重新登录一次。
|
|
124
|
+
|
|
125
|
+
自托管 Python 站点上的房间不经过设备签名:本机按那个站点的请求干活,等于把那个站点的管理员视同本人。只在你能保证该站点账号安全时使用;需要防护时请改用默认的线上网站加中转。`--remote-port` 远程入口发起的工作,本机一律按只读执行。
|
|
126
|
+
|
|
123
127
|
发布后检查网页、`/api/health`,以及:
|
|
124
128
|
|
|
125
129
|
```sh
|
package/docs/en/workflow.md
CHANGED
|
@@ -30,16 +30,29 @@ Mentions between ordinary members are references only and do not wake anyone. Me
|
|
|
30
30
|
|
|
31
31
|
## Discussions
|
|
32
32
|
|
|
33
|
-
Click **Start discussion** (开启讨论) in the member panel,
|
|
33
|
+
Click **Start discussion** (开启讨论) in the member panel, choose **Start discussion** under **After creating** (创建后) when creating a room, or send `/discuss <goal>` in the input box (a bare `/discuss` lets the host draw the goal from the recent conversation, and it declines when it cannot; a command start uses the room's saved default limits):
|
|
34
34
|
|
|
35
35
|
1. Write a goal and set round and time limits. The dialog starts with the room's saved defaults, set when creating the room and editable in **Edit topic** when no discussion is active or paused. Changes in the start dialog apply only to that discussion.
|
|
36
36
|
2. The host breaks down the question and schedules speakers. Experts first give independent views, then respond to each other.
|
|
37
37
|
3. When a limit is reached, the host declares the goal done, or you click **End**, the room returns to free collaboration with history and conclusions kept. You can start another discussion later.
|
|
38
38
|
|
|
39
|
+
During a discussion, `/discuss pause`, `/discuss resume` and `/discuss stop` pause, resume or end it. A discussion and a Goal never run at the same time.
|
|
40
|
+
|
|
39
41
|
You can `@` any member during a discussion without using a round. If that member is already handling a discussion request, the new request waits for the same session. Unaddressed messages go to the host; to stop the current speaker, click the stop button on their working card or **Skip** (跳过) on the progress board; the discussion moves on to the next speaker. Group mentions, retracting, editing and branching are unavailable during a discussion.
|
|
40
42
|
|
|
41
43
|
Discussions and free collaboration share the same execution and failure cards. A failed delivery retries up to three times; you can retry immediately or stop it. When retries run out, only that request fails and the host decides whether to skip, reschedule or pause the discussion. The room is not paused automatically. Scheduled online members can reply through the host's relay; the discussion host itself must be woken locally.
|
|
42
44
|
|
|
45
|
+
## Goal
|
|
46
|
+
|
|
47
|
+
A Goal keeps the host pursuing one objective: when the room goes idle, the local service wakes the host again, until the host confirms the goal is complete or blocked, a budget runs out, or you end it. Rooms without a Goal behave as before: members stop when their work is done and wait for you.
|
|
48
|
+
|
|
49
|
+
- **Start**: send `/goal <objective>` and the host starts it as written; with a bare `/goal` the host draws the objective from the recent conversation and declines when it cannot. You can also click **Start Goal** (开启 Goal) in the member panel, or choose **Start Goal** under **After creating** (创建后) when creating a room. Typing `/` at the start of the input box lists Goal and Discussion in a **Modes** (模式) group; while one is running, it lists its pause, resume and end commands.
|
|
50
|
+
- **Progress**: after the host's dispatched work ends and the room stays idle for 30 seconds (not counting when you just spoke, a member is still working or messages are queued), the host is woken once, shown as "Goal 续跑 #N". If the host then hands out no work (it only answers or asks you), it is not woken again until you reply.
|
|
51
|
+
- **Budget**: unlimited by default. You can set a wake-up count or time limit when starting or via **Edit**; at the limit the host wraps up once and the Goal ends. Three failed wake-ups in a row stop it.
|
|
52
|
+
- **End**: the host declares it complete after checking the actual results, or blocked when the same obstacle persists for three wake-ups. You can `/goal pause`, `/goal resume`, `/goal clear` or `/goal edit <new objective>` at any time, or use the panel buttons. **Stop all** also pauses the Goal. An end card in the conversation offers **Continue Goal** with the same objective.
|
|
53
|
+
|
|
54
|
+
A Goal grants no extra permissions: the host stays within members' project access and the chain-round limit, and does not invite members, commit, push or deploy on its own.
|
|
55
|
+
|
|
43
56
|
### Named Follow-ups
|
|
44
57
|
|
|
45
58
|
With **Named follow-ups** (点名追问) enabled, the host writes a targeted follow-up for each expert after every round. When disabled (the default), experts respond to each other using a shared question. The host connects rounds; Smart Scheduling can handle that step when enabled.
|
|
@@ -60,6 +73,7 @@ When creating a room, you can add a decision model under **Smart Scheduling** (
|
|
|
60
73
|
- Unaddressed messages go to the member they are clearly meant for, to everyone at once, to everyone one after another in speaking order (a relay or a count-off), or to no one; otherwise to the host.
|
|
61
74
|
- Without Smart Scheduling, `@全体成员` runs everyone together. With it, uncertain or failed decisions go to the host. `@全体依次` always uses the established speaking order.
|
|
62
75
|
- In discussions, a local follow-up becomes an ordinary question without consuming a turn or changing the queue, including questions for members who already spoke or the host. It also picks the next speaker between rounds. Without Smart Scheduling, the host can make the same handoff.
|
|
76
|
+
- While a Goal runs and the room is idle, it judges whether the latest replies are waiting for you (a question, an authorization or decision, or a completion report). When confident, the host is not woken and the room waits for your reply; when unsure or on errors, the host is woken as usual.
|
|
63
77
|
- When the host has preauthorized a specific read-only reviewer, a completed implementation batch can move to that reviewer. The model checks delivery completeness, not code correctness, and cannot choose another reviewer. Review results still return to the host.
|
|
64
78
|
|
|
65
79
|
It acts only when confident, and otherwise hands over to the host. Every decision is shown in the conversation and can be rated. The room title and recent messages are sent to the chosen provider. Preauthorized review judgments also send the full assignment, delivery text and execution reports; inputs above the supported limit go to the host.
|
package/docs/runner.md
CHANGED
|
@@ -59,7 +59,28 @@ codiscuss local connect https://你的站点
|
|
|
59
59
|
|
|
60
60
|
### 在其他设备上远程控制
|
|
61
61
|
|
|
62
|
-
配对后在手机或平板上登录同一账号,只要这台电脑开机并运行 codiscuss,就能像在电脑上一样操作:建房、邀请与请回成员、翻开卡片设置软件、模型和权限、录入 API
|
|
62
|
+
配对后在手机或平板上登录同一账号,只要这台电脑开机并运行 codiscuss,就能像在电脑上一样操作:建房、邀请与请回成员、翻开卡片设置软件、模型和权限、录入 API 密钥、管理常用项目等。这些操作由网站转交给电脑执行,内容端到端加密,网站只经手密文。
|
|
63
|
+
|
|
64
|
+
其他设备能用的目录由电脑决定:只能选择**常用项目**及其中的文件夹。点项目目录栏末尾的文件夹按钮,可以逐层浏览常用项目中的文件夹(只显示文件夹名)。想让其他设备使用更大的范围,就在电脑上把上级目录加为常用项目。以下设置只能在电脑上修改:软件位置、“全放开”权限档、常用项目范围之外的目录。转交的命令只执行一次,发出 10 分钟后作废,所以手机时间需要大致准确。
|
|
65
|
+
|
|
66
|
+
**设备配对**:每台手机、平板或其他电脑第一次操作这台电脑前,都要配对一次。
|
|
67
|
+
1. 在电脑的本机网页,或已配对设备的“设置 → 账号 → 已配对的设备”中点“添加设备”(在已配对设备上需用通行密钥确认一次)。会显示一个二维码和 12 位配对码,2 分钟有效,只能用一次。
|
|
68
|
+
2. 新设备用相机扫二维码,或登录网站后在同一位置输入配对码。
|
|
69
|
+
3. 配对后立即按提示创建通行密钥(用设备自己的指纹、面容或设备密码,不需要录入任何东西)。只能在配对后 10 分钟内创建;错过了就撤销这台设备再配对一次。
|
|
70
|
+
|
|
71
|
+
之后:
|
|
72
|
+
- 这台设备可以用“用通行密钥登录”,不用再输密码。
|
|
73
|
+
- 每台设备授权 30 天,到期前用通行密钥续期。勾选“临时设备”的只授权 1 天,用于借来的电脑。
|
|
74
|
+
- 设备丢失时,在任意已配对设备或电脑上撤销它;在已登录网站的设备上撤销时,它的网站登录通行密钥会一并删除。建议至少配对两台设备,丢了一台还能用另一台处理。
|
|
75
|
+
- 设备列表下的“最近记录”列出电脑记下的配对、撤销、远程可写和远程操作(不含内容)。看到不是你做的操作,立即撤销对应设备并更改密码。
|
|
76
|
+
|
|
77
|
+
只偷到密码的人无法配对新设备,也就操作不了电脑。
|
|
78
|
+
|
|
79
|
+
**远程可写**:房间里有可写(或自动、全放开)成员时,在其他设备上第一次给它发消息或调整它,会先请你用通行密钥确认。确认后,这台设备在这个房间里 12 小时内可以远程操作,可在设备列表中提前撤销。
|
|
80
|
+
- 其他设备新建房间时,成员只能是只读;建好后再在房间里开启可写。
|
|
81
|
+
- 撤销只阻止之后的远程操作,已经在运行的工作和已改动的文件不会因此撤回。
|
|
82
|
+
|
|
83
|
+
网站登录保存在浏览器的 HttpOnly Cookie 里,页面脚本读不到。网站账号设置里可以查看网站登录、退出其他登录、更改密码。登录一周不用或满一个月会自动失效;更改密码后,其他登录会全部退出。
|
|
63
84
|
|
|
64
85
|
登录后目录“协作房间”直接列出电脑上的房间,与在电脑上看到的一致,可以发消息、上传附件、管理成员、导出备份,并实时更新。对话只保存在电脑上,网站只转交加密内容。
|
|
65
86
|
|
|
@@ -98,20 +119,20 @@ API 成员可以担任专家或主持人。房间指定了项目目录时,它
|
|
|
98
119
|
|
|
99
120
|
工作流把一种多人协作的做法存下来,供别的房间复用:一份给主持人读的做法说明(SKILL.md),加一组 Agent 卡片(每张就是一个专家预设)。建房或邀请时在“工作流”一行选中它,确认卡片后作为成员加入;主持人此后按说明组织工作。它只带来做法和成员,不保证工序,具体怎么做仍由主持人判断,你随时可以 @ 任何成员。
|
|
100
121
|
|
|
101
|
-
-
|
|
122
|
+
- **保存**:在“工作流”一行点“添加”,选“新建”,或导入别人分享的 zip 或文件夹(手机、平板上同样可用)。导入的内容先在编辑页预览,点保存才写入。选中一个工作流后,下方显示它的描述,可“查看说明”(做法说明与成员卡片)或“编辑”,删除在编辑页底部。编辑页可以“从当前房间成员导入”卡片,提示词保持原文。想让主持人起草,打开下面的“允许主持人自建工作流”。
|
|
102
123
|
- **让主持人自己建**:建房时(第 3 节“协作方式”)或在“成员与设置 → 协作设置”勾选“允许主持人自建工作流”后,直接对主持人说要什么分工(或“把这个房间的做法存成工作流”),它会自己保存、在本房间启用,并邀请工作流里的成员,接着就按流程派活,不需要你导入或添加成员。之后让它改流程,改动从成员下一次执行起生效。主持人带来的成员项目权限最高为可写;只有本地软件担任的主持人能这样做,API 主持人不行。
|
|
103
|
-
- **分享**:工作流存在本机服务目录的 `workflows`
|
|
104
|
-
-
|
|
124
|
+
- **分享**:工作流存在本机服务目录的 `workflows` 文件夹,一个工作流一个文件夹;编辑页可复制路径,把整个文件夹(或打成 zip)发给对方即可分享。导入时会列出每张卡片的提示词和项目权限;要求写文件的卡片默认按只读导入,逐张勾选后才放开。
|
|
125
|
+
- **修改与结束**:修改工作流会作用于所有启用它的房间,成员下一次执行就按新内容;工作流卡片的提示词只读,在“工作流”一行点“编辑”修改。工作流进行中时,主持人只在请求和它的用途相符(或你说按工作流做)时才用,其他请求照常处理。用完在右栏点“请离成员”:工作流带来的成员离开(主持人保留),正在进行的工作随之停止,工作流结束,右栏这一块消失;成员会话保留,下次在输入框打 `/` 选它就把原成员请回来,接着原来的上下文。换工作流时直接选另一个,原来的成员留作普通成员。
|
|
105
126
|
|
|
106
127
|
## 朗读与语音输入(可选)
|
|
107
128
|
|
|
108
|
-
|
|
129
|
+
朗读可在网页“设置”的“语音”里切换服务:火山引擎(豆包语音合成 2.0)、阿里云百炼(CosyVoice)或 Azure(神经语音,另填语音资源所在区域)。在所选服务的控制台获取 API Key 填进去;每个服务的 Key 与音色分开保存,切回时仍在。语音输入固定用火山引擎「录音文件识别2.0」,朗读用其他服务时需另填火山引擎的 Key。朗读可设一个通用音色,并按 AI 平台(Claude、Codex、Gemini 等)分别配音色,朗读项目文件也可单独配一个音色,没配的平台、你自己的消息、程序消息和文件用通用音色;还可选语速;火山引擎还可改语气提示(默认是“像给朋友讲故事一样”的自然语气)。密钥只保存在本机,费用按你的账号计费。
|
|
109
130
|
|
|
110
131
|
- 朗读:每条消息的工具栏有“朗读”(手机上在“…”菜单里),在消息里选中文字后点“听当前”从选中处开始;读完这条会接着读后面的消息直到最新,点输入框右下角的播报按钮开启语音播报:之后的新回复会自动朗读回答摘要(没写摘要的短回答读全文,长回答读第一段),主持人的发言会报“主持人”;讨论中还会提示新一轮的发言顺序和轮到谁,执行失败、操作待你允许和讨论结束也会播一句。同时到达的回复依次播报,积压较多时只播最新 3 条。锁屏或切到其他 App 时继续播放,锁屏界面和耳机按键可以暂停、继续、跳到下一条;读过的段落会缓存在电脑上,重听不再计费。正在读的句子会高亮,点一下高亮的句子暂停,再点继续;代码块跳过。朗读时消息区底部有“跟随”和“退出”:页面默认不随朗读滚动,点“跟随”后才把正在读的句子保持在视野内,手动滚动一下就取消跟随。
|
|
111
132
|
- 朗读文件:在“文件”里打开 Markdown 文件,预览模式下标题栏有“朗读”,从正文开头读到文件末尾(文件头的 `---` 元数据不读);选中文字后可从选中处开始。暂停、跟随、退出与消息朗读相同;切到源码、换文件或关闭预览即停止。
|
|
112
133
|
- 语音输入:点输入框右下角的麦克风开始说话,再点一次转成文字插入输入框,单次最长 5 分钟。浏览器会先请求麦克风权限。
|
|
113
134
|
|
|
114
|
-
|
|
135
|
+
两者都由本机服务调用语音服务,手机等其他设备经已配对电脑使用,电脑关机时不可用。
|
|
115
136
|
|
|
116
137
|
## 权限
|
|
117
138
|
|
|
@@ -126,7 +147,7 @@ API 成员可以担任专家或主持人。房间指定了项目目录时,它
|
|
|
126
147
|
| 打开本机网站 | `codiscuss local open` |
|
|
127
148
|
| 查看状态 | `codiscuss local status` |
|
|
128
149
|
| 停止 | `codiscuss local stop` |
|
|
129
|
-
|
|
|
150
|
+
| 重启讨论服务(使新环境变量生效;Windows 上读取系统设置或 `setx` 保存的最新值,在旧终端执行也可,PATH 除外) | `codiscuss service restart` |
|
|
130
151
|
| 登录时自动启动(Windows) | `codiscuss service autostart on` |
|
|
131
152
|
|
|
132
153
|
## 命令行
|
package/docs/workflow.md
CHANGED
|
@@ -27,12 +27,14 @@
|
|
|
27
27
|
|
|
28
28
|
## 开启讨论
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
在成员栏点“开启讨论”,建房时在“创建后”选“开启讨论”,或在输入框发送 `/discuss 讨论目标`(只发 `/discuss` 时由主持人从最近对话提炼目标,提炼不出就不开启;命令开启时用房间保存的默认上限):
|
|
31
31
|
|
|
32
32
|
1. 填写讨论目标,设置轮次与时长上限。开启弹窗预填房间保存的默认上限;建房时设置,无进行中或暂停的讨论时可在“编辑议题”修改。只在开启弹窗里调整的值仅用于本场讨论。
|
|
33
33
|
2. 主持人拆题并安排成员轮流发言;成员先独立提出观点,再回应彼此的论证。
|
|
34
34
|
3. 到达上限、主持人宣布目标完成或你点“结束”后,房间回到自由协作,记录与结论保留,之后可以再次开启。
|
|
35
35
|
|
|
36
|
+
讨论中可用 `/discuss pause`、`/discuss resume`、`/discuss stop` 暂停、继续或结束。讨论与 Goal 不能同时进行。
|
|
37
|
+
|
|
36
38
|
讨论中可以随时 `@` 任何成员提问,不占轮次;同一成员正在处理讨论发言时,提问排队等待。未点名的留言交给主持人处理;需要停止当前发言时,点处理中卡片上的停止键或进度看板的“跳过”,讨论接着轮到下一位。讨论中的群体 @、撤回、编辑与分支暂不可用。
|
|
37
39
|
|
|
38
40
|
讨论与普通协作共用处理中卡和失败卡。送达失败会倒计时重试,最多 3 次,也可立即重试或停止;用尽后只结束该次请求,由主持人决定跳过、重排或暂停,不自动暂停整场。系统安排仍显示为安排卡,不冒充用户或 AI 发言。
|
|
@@ -50,6 +52,17 @@
|
|
|
50
52
|
|
|
51
53
|
到限后立即结束讨论,回到自由协作,不额外唤醒主持人总结;到限不代表已经达成共识。暂停会停止本次讨论中的执行,继续后由主持人重新安排。
|
|
52
54
|
|
|
55
|
+
## Goal
|
|
56
|
+
|
|
57
|
+
Goal 让主持人持续推进一个目标:房间空闲时,本机服务会再唤醒主持人接着做,直到主持人确认完成或卡住、预算用完,或你结束。没开 Goal 的房间行为不变,成员做完就停下等你。
|
|
58
|
+
|
|
59
|
+
- **开启**:在输入框发送 `/goal 目标`,主持人照原文开启;只发 `/goal` 时,主持人从最近的对话提炼目标,提炼不出就不开启并说明缺什么。也可以在成员栏点“开启 Goal”,或建房时在“创建后”选“开启 Goal”,直接填写目标。输入框开头打 `/` 时,菜单最上面一组“模式”列出 Goal 与讨论;进行中时改为列出暂停、继续、结束等命令。需要一位由本机唤醒的 AI 主持人;Goal 与讨论不能同时进行。
|
|
60
|
+
- **推进**:主持人派出的活全部结束、房间空闲 30 秒后(你刚发言、还有成员在工作或有排队消息时不算空闲),本机服务唤醒主持人一次,消息流里显示“Goal 续跑 #N”。主持人这次没派活(只回复你或向你提问)时,不再自动唤醒,直到你回复。
|
|
61
|
+
- **预算**:默认不限。可在开启时或成员栏“编辑”中设续跑次数或时长上限;到限后主持人收尾一次,Goal 结束。连续 3 次续跑执行失败时自动停止。
|
|
62
|
+
- **结束**:主持人对照实际结果核验后宣告完成,或同一阻碍连续 3 次无法解决时宣告卡住;你可以随时 `/goal pause`、`/goal resume`、`/goal clear`、`/goal edit 新目标`,或用成员栏的按钮。“全部停止”也会暂停 Goal。结束后消息流留一张结束卡,可“继续 Goal”沿用原目标重新开启。
|
|
63
|
+
|
|
64
|
+
Goal 不扩大权限:主持人仍受成员项目权限和连续派活轮数限制,不会自行邀请成员、提交、推送或部署。
|
|
65
|
+
|
|
53
66
|
## 智能调度
|
|
54
67
|
|
|
55
68
|
建房时可在“智能调度”下添加一个决策模型(TypeSafe Jev;OpenAI Decisions 为实验性),用你自己的密钥按次计费。开启后,常规分派由决策模型判断,不必每次唤醒主持人:
|
|
@@ -57,6 +70,7 @@
|
|
|
57
70
|
- 未点名的消息:明确对某位成员说时直接交给他,或请全体同时回答、按发言顺序依次回答(如接龙、报数)、无需回应;其余仍交给主持人。
|
|
58
71
|
- `@全体成员`:未配置时同时回答;配置后判断同时或依次,拿不准或调用失败时交主持人。`@全体依次` 始终按既定顺序回答。
|
|
59
72
|
- 讨论中:局部追问转为不计轮次的普通提问,可追问已发言者或主持人,保留原讨论队列;轮次之间选出下一位发言人。没有智能调度时,主持人也可按同一方式转交。
|
|
73
|
+
- Goal 进行中、房间空闲时:判断最近的回答是否已在等你回复(向你提问、请你授权或拍板、已汇报完成)。有把握时不唤醒主持人,等你回复;拿不准或调用失败时照常唤醒。
|
|
60
74
|
- 主持人预先指定了实现后的只读评审时:整批交付完成后可交给既定评审者。它只判断交付完成度,不判断代码对错、不另选评审者;评审后仍交回主持人。
|
|
61
75
|
|
|
62
76
|
决策模型只在把握足够时执行,否则交回主持人。每次判断都会显示在对话中,可以评价。开启后,房间标题与最近消息会发送给所选供应商;预授权评审判断还会发送该批完整委派、交付原文和执行报告,超出支持的输入上限则交主持人。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai_co_discuss",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.49",
|
|
4
4
|
"bin": {
|
|
5
5
|
"codiscuss": "runner/codiscuss.mjs"
|
|
6
6
|
},
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"dev": "npm run build && wrangler pages dev --ip 127.0.0.1 --port 8787",
|
|
9
9
|
"db:local": "wrangler d1 execute DB --local --file backend/schema.sql",
|
|
10
10
|
"db:remote": "wrangler d1 execute DB --remote --file backend/schema.sql",
|
|
11
|
-
"check": "node --check backend/worker.mjs && node --check web/app.js && node --check runner/admin_account.mjs && node --check runner/codiscuss.mjs && node --check runner/discussion_api.mjs && node --check runner/discussion_launch.mjs && node --check runner/discussion_local.mjs && node --check runner/discussion_runner.mjs && node --check runner/discussion_service.mjs && node --check runner/discussion_setup.mjs && node --check runner/discussion_sidecar.mjs && node --check runner/discussion_skills.mjs && node --check runner/discussion_tui.mjs && node --check runner/execution_progress.mjs && node --check runner/expert_prompts.mjs && node --check runner/files.mjs && node --check runner/free_runner.mjs && node --check runner/remote_launch.mjs && node --check runner/scheduler.mjs && node --check runner/session_driver.mjs && node --check runner/workflows.mjs && node --check runner/adapters/antigravity_app.mjs && node --check runner/adapters/antigravity_cli.mjs && node --check runner/adapters/antigravity_sidecar.mjs && node --check runner/adapters/api.mjs && node --check runner/adapters/claude.mjs && node --check runner/adapters/cli.mjs && node --check runner/adapters/codex_app.mjs && node --check runner/adapters/codex_app_client.mjs && node --check runner/adapters/codex_cli.mjs && node --check runner/adapters/common.mjs && node --check runner/adapters/index.mjs && node --check runner/adapters/profiles.mjs",
|
|
11
|
+
"check": "node --check backend/worker.mjs && node --check web/app.js && node --check runner/admin_account.mjs && node --check runner/codiscuss.mjs && node --check runner/discussion_api.mjs && node --check runner/discussion_launch.mjs && node --check runner/discussion_local.mjs && node --check runner/discussion_runner.mjs && node --check runner/discussion_service.mjs && node --check runner/discussion_setup.mjs && node --check runner/discussion_sidecar.mjs && node --check runner/discussion_skills.mjs && node --check runner/discussion_tui.mjs && node --check runner/execution_progress.mjs && node --check runner/expert_prompts.mjs && node --check runner/files.mjs && node --check runner/free_runner.mjs && node --check runner/remote_launch.mjs && node --check runner/remote_policy.mjs && node --check runner/device_auth.mjs && node --check runner/webauthn.mjs && node --check runner/scheduler.mjs && node --check runner/session_driver.mjs && node --check runner/workflows.mjs && node --check runner/adapters/antigravity_app.mjs && node --check runner/adapters/antigravity_cli.mjs && node --check runner/adapters/antigravity_sidecar.mjs && node --check runner/adapters/api.mjs && node --check runner/adapters/claude.mjs && node --check runner/adapters/cli.mjs && node --check runner/adapters/codex_app.mjs && node --check runner/adapters/codex_app_client.mjs && node --check runner/adapters/codex_cli.mjs && node --check runner/adapters/common.mjs && node --check runner/adapters/index.mjs && node --check runner/adapters/profiles.mjs",
|
|
12
12
|
"runner": "node runner/discussion_runner.mjs",
|
|
13
13
|
"service": "node runner/discussion_service.mjs",
|
|
14
14
|
"build:ui": "vite build --config frontend/vite.config.mjs --mode markdown && vite build --config frontend/vite.config.mjs --mode backup && vite build --config frontend/vite.config.mjs",
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"markdown-it-cjk-friendly": "3.0.0",
|
|
35
35
|
"motion-v": "2.7.0",
|
|
36
36
|
"pdfjs-dist": "6.4.299",
|
|
37
|
+
"uqr": "0.1.2",
|
|
37
38
|
"vite": "8.3.4",
|
|
38
39
|
"vue": "3.5.44",
|
|
39
40
|
"wrangler": "4.151.0"
|