autowonder 0.3.14 → 0.3.16

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 CHANGED
@@ -6,10 +6,10 @@ AutoWonder 本地 agent runtime。安装后启动 daemon,持续轮询本地 as
6
6
 
7
7
  ```bash
8
8
  # Qoder CLI(模型使用 provider model ID;Context Window 使用固定档位)
9
- npx -y autowonder@0.3.14 connect --ws-url <wss-endpoint> --token <executor-token> --executor-id <executor-id> --provider qoder --model qmodel_latest --reasoning-effort medium --context-window 260000
9
+ npx -y autowonder@0.3.16 connect --ws-url <wss-endpoint> --token <executor-token> --executor-id <executor-id> --provider qoder --model qmodel_latest --reasoning-effort medium --context-window 260000
10
10
 
11
11
  # Qoder CLI CN
12
- npx -y autowonder@0.3.14 connect --ws-url <wss-endpoint> --token <executor-token> --executor-id <executor-id> --provider qodercn
12
+ npx -y autowonder@0.3.16 connect --ws-url <wss-endpoint> --token <executor-token> --executor-id <executor-id> --provider qodercn
13
13
  ```
14
14
 
15
15
  `connect` 会安装当前 npm 包内置的 daemon,并使用页面生成的 WebSocket endpoint、Token 和执行器 ID 建立连接。客户端只支持通过 Qoder 系列 CLI 启动(`qoder` 对应 `qodercli`,`qodercn` 对应 `qodercn`),其他 `--provider` 取值会在启动 daemon 前直接报错拦截并提示 `Unsupported provider`。选择 Qoder CLI 或 Qoder CLI CN 时需要 Node.js 20+;runtime 会在缺少对应 CLI 时自动通过 npm 安装,并在尚未登录时打开浏览器登录。runtime 会继承当前用户的 HOME、环境变量和 CLI 登录状态。
@@ -39,6 +39,8 @@ daemon 还在协议能力位里声明 `TASK_MODEL_SELECTION_V1`:服务端可
39
39
 
40
40
  daemon 建立执行器接入连接时会在 WebSocket URL 上附带本机主机名(取不到时不带该参数,服务端按未上报处理),服务端据此在执行器列表区分同一数字员工在多台机器上的执行器。对执行机用户无新增参数或环境变量。
41
41
 
42
+ daemon 还在协议能力位里声明 `terminal_steer_v1`:服务端可对当前正在执行的派单下发 `TASK_STEER` 终端插话(含 `guidanceId`、`dispatchId` 与内容)。daemon 只在该派单存在活跃 provider 回合时受理:协作式取消当前回合、等待退出后在同一 agent 会话内携带插话内容继续执行,并经 `TASK_STEER_ACK` 回传受理状态;无活跃回合、回合已结束或接收队列已满时明确返回失败,不影响原任务状态。插话与评论投递、工作流回复路由相互独立(重复投递去重、回执可重放)。该能力对执行机用户无新增参数或环境变量。
43
+
42
44
  daemon 还会响应服务端的 `CONVERSATION_COMMANDS_PROBE` 帧,用独立会话抓取该会话工作目录下可用的斜杠命令,回传 `CONVERSATION_COMMANDS_RESULT` 帧,让会话面板在用户输入 `/` 时列出真实可用的命令。该探测与回合执行完全隔离:任何失败只产生 `FAILED` / `TIMEOUT` 帧,不影响进行中的会话;provider 后端不支持抓取时同样降级为 `FAILED` 帧。帧里的 `executorId` 与本机不一致或非正数时直接忽略,避免在别的执行器工作区里建目录或启动 CLI。daemon 侧给整个探测 25 秒硬上限,刻意长于 agent 侧的 20 秒预算,使 agent 自己的超时先触发并可被归类。
43
45
 
44
46
  给 `connect` 追加 `--token-aware-enable` 可开启 qoder / qodercn 的 token 用量采集:CLI 会以 sidecar 方式启动本地 HTTPS 转发代理(`bin/token-proxy.js`),从 Qoder API 的 SSE 响应流中提取 usage 数据并按 dispatch ID 归属上报。usage 解析失败只丢失计量数据;代理启动失败时仅告警并继续。启用后模型流量经过代理,连接失败由客户端处理重试,不保证自动直连。代理端口可用 `TOKEN_PROXY_PORT` 环境变量调整(默认 19876);CA 证书位于 `~/.autowonder/token-tap/ca-cert.pem`。daemon 退出时 sidecar 一并停止。代理对 TCP 建连和两端 TLS 握手设置 15 秒期限,对无读写活动的连接设置 120 秒空闲期限;超时、报错或任一端关闭时释放两端连接。持续有数据的 SSE 流不受总时长限制,连续静默超过 120 秒的流会断开。
@@ -138,6 +140,7 @@ daemon 默认启用显式发布边界(`explicit_refs_v1`):上传集合由
138
140
  - `AUTOWONDER_SCRATCH_DIR` 指向当前 capsule 的 `artifacts/scratch/`,用于中间数据、临时命令输出和诊断工作文件;这些文件保持本地,不封存也不上传。
139
141
  - `AUTOWONDER_ARTIFACTS_OUTPUT_DIR` 指向 `artifacts/output/`,是候选产物的暂存区:把文件放进该目录不等于它会发布,未被引用的文件不会被读取、哈希、复制或上传,checkpoint 也不会携带。
140
142
  - 每一步尝试会把通过 admission 的集合封存为不可变快照(`artifacts/attempts/<step>/attempt-N/publish-manifest.json`);删除文件后重新封存,新快照不再包含它,已由远端 receipt 代表的文件只引用、不重传。
143
+ - 完成请求先过引用预检:提交 `completion_requested` 时,`evidenceRefs` 必须逐条是相对输出目录的 typed 路径(如 `evidence/report.md`)且指向 `artifacts/output/` 或本机 `accepted/` 中真实存在的普通文件;带 `artifacts/output/` 前缀、绝对路径、未分类目录或不存在的引用会被该请求直接拒绝(HTTP 400,并记录步骤提交反馈指明修法),而不是先接受、到封存阶段才失败。预检通过后,封存仍会在接受完成时重新打开并复核每个来源。
141
144
  - 超预算的文本证据(如整段原始命令输出)会让步骤以 `fix_required` 结束,并在任何上传请求之前返回 `ARTIFACT_BUDGET_EXCEEDED`、`ARTIFACT_CLASS_REQUIRED`、`ARTIFACT_FILE_TOO_LARGE` 等稳定错误码;正确处置是发布精简报告或改用交付产物路径,而不是放宽本机限制。
142
145
  - 服务端可在派单里下发更严格的限制(`artifactProtocolVersion` = 2,以及每请求文件数与字节数、单文件、文本证据单文件与总量上限);字段缺省时 runtime 使用保守默认值,旧服务端与旧执行器组合行为不变。
143
146
  - `AUTOWONDER_ARTIFACT_SELECTION_MODE=legacy_all_typed` 仅供平台 operator 在线上事故回滚时使用(设置后需重启 daemon),会恢复旧的目录级收集语义及其资源放大风险,问题解除后应立即移除;不得把它下发给客户 SDLC、Agent、Soul、提示词或 assignment 配置。
@@ -164,7 +167,7 @@ mv "$queue/.assignment.tmp" "$queue/assignment.json"
164
167
  也可以直接提交到本地 API:
165
168
 
166
169
  ```bash
167
- npx -y autowonder@0.3.14 dispatch ./assignment.json
170
+ npx -y autowonder@0.3.16 dispatch ./assignment.json
168
171
  ```
169
172
 
170
173
  ## 上传工单附件
@@ -172,7 +175,7 @@ npx -y autowonder@0.3.14 dispatch ./assignment.json
172
175
  把本地需求/设计文档直接上传到工单,避免在会话里传递大文件:
173
176
 
174
177
  ```bash
175
- npx -y autowonder@0.3.14 workitem upload --server-url <autowonder-server-url> --workitem-id <id> --file <filepath-1> --file <filepath-2> --json
178
+ npx -y autowonder@0.3.16 workitem upload --server-url <autowonder-server-url> --workitem-id <id> --file <filepath-1> --file <filepath-2> --json
176
179
  ```
177
180
 
178
181
  上传令牌通过 MCP 工具 `autowonder.workitem_cli_upload_token` 签发,经 `--token` 或 `AUTOWONDER_UPLOAD_TOKEN` 环境变量传入。`--file` 可重复指定多个文件;`--json` 输出机器可读结果。失败时按错误类型返回不同退出码(401→3、403→4、404→5、409→6、413→7、其他 4xx→8、网络/重定向→9)。
@@ -182,7 +185,7 @@ npx -y autowonder@0.3.14 workitem upload --server-url <autowonder-server-url> --
182
185
  把工单上已有的需求/设计文档下载到本地目录,再用本地文件工具阅读,避免把大文件或二进制附件搬进会话上下文:
183
186
 
184
187
  ```bash
185
- npx -y autowonder@0.3.14 workitem download --server-url <autowonder-server-url> --workitem-id <id> --file <name-or-id> --output-dir <dir> --json
188
+ npx -y autowonder@0.3.16 workitem download --server-url <autowonder-server-url> --workitem-id <id> --file <name-or-id> --output-dir <dir> --json
186
189
  ```
187
190
 
188
191
  下载令牌通过 MCP 工具 `autowonder.workitem_cli_download_token` 签发(与上传令牌相互独立),经 `--token` 或 `AUTOWONDER_DOWNLOAD_TOKEN` 环境变量传入。`--file` 可重复指定文档名或 artifact id,省略则下载该工单的全部附件;`--output-dir` 默认为当前目录;`--json` 输出机器可读结果,含每个文件的 `id`、`name`、`path`、`size`。退出码约定与 `workitem upload` 相同(401→3、403→4、404→5、409→6、413→7、其他 4xx→8、网络/重定向→9)。
@@ -192,7 +195,7 @@ npx -y autowonder@0.3.14 workitem download --server-url <autowonder-server-url>
192
195
  把需求/设计文档上传到 7x24 定时任务,用法与工单附件一致(同一套上传令牌与预检规则):
193
196
 
194
197
  ```bash
195
- npx -y autowonder@0.3.14 scheduled-task upload --server-url <autowonder-server-url> --scheduled-task-id <id> --file <filepath-1> --file <filepath-2> --json
198
+ npx -y autowonder@0.3.16 scheduled-task upload --server-url <autowonder-server-url> --scheduled-task-id <id> --file <filepath-1> --file <filepath-2> --json
196
199
  ```
197
200
 
198
201
  上传令牌同样通过 `autowonder.workitem_cli_upload_token` 签发(令牌为用户级,对当前可修改的任意定时任务生效),经 `--token` 或 `AUTOWONDER_UPLOAD_TOKEN` 传入;退出码约定与 `workitem upload` 相同。
@@ -200,8 +203,8 @@ npx -y autowonder@0.3.14 scheduled-task upload --server-url <autowonder-server-u
200
203
  ## 管理 daemon
201
204
 
202
205
  ```bash
203
- npx -y autowonder@0.3.14 status
204
- npx -y autowonder@0.3.14 stop
206
+ npx -y autowonder@0.3.16 status
207
+ npx -y autowonder@0.3.16 stop
205
208
  ```
206
209
 
207
210
  默认 API 是 `http://127.0.0.1:34989`,日志位于 `~/.autowonder/daemon.log`。npm 包不包含任何 agent、MCP 或服务端凭证。
@@ -209,7 +212,7 @@ npx -y autowonder@0.3.14 stop
209
212
  ## 调试
210
213
 
211
214
  ```bash
212
- npx -y autowonder@0.3.14 connect ... --debug
215
+ npx -y autowonder@0.3.16 connect ... --debug
213
216
  ```
214
217
 
215
218
  `--debug` 会让 CLI 以 `AUTOWONDER_DEBUG=1` 启动 daemon,把完整的 daemon 与 agent 活动(runtime 事件流、provider 事件解码、重试退避与会话门等待、空闲时的阻塞点)同时输出到控制台和会话调试日志。调试日志不做脱敏,仅用于本机排障;不传 `--debug` 时该环境变量不会注入。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autowonder",
3
- "version": "0.3.14",
3
+ "version": "0.3.16",
4
4
  "description": "AutoWonder local runtime — execute AI agent dispatch packages on your machine",
5
5
  "bin": {
6
6
  "autowonder": "bin/cli.js"