成本配额与文件只读标记:task-cost/quota-status/task-files

This commit is contained in:
host committed 2026-10-30 05:11:06 +08:00
1 parent 2fd73c1121
commit 9d6430a4d0
5 files changed
+711 -14

No files matched your search

+52
View File
@@ -300,3 +300,55 @@ Docker 执行器都经 sandbox 的结果解析提取标记块(与 task-message
- 贴的是数据加一行格式示例,不是完整工具指南;完整格式
只在本文件里。注入顺序:项目上下文在最前,其次待办、
记忆,最后是原 prompt。
## 成本、配额与文件标记(task-cost / quota-status / task-files)
### task-cost:查单个任务成本(只读)
```text
```task-cost
{"task_id": "<目标任务 id>"}
```
```
- 报告:美元数(只计有价行)、总 token(actual / estimated
分列)、轮次;无价 actual token 单独列,不会被静默算成
0 美元(与 CostStore._report 同款口径)。
- 门禁比服务端只要求 read 更严:目标须在本项目内,且在
派生链内或与发送方同创建人(自己也算同创建人),防止在
项目内猜 id 看别人的花费;每轮最多 5 块。
### quota-status:查发送方创建人当月配额(只读)
```text
```quota-status
{}
```
```
- 块体必须是 JSON 对象,不接受任何参数:配额永远按发送方
任务的创建人算(创建人缺失时回查父任务,仍查不到时拒绝),
块里写别人 id 也无效。报告:总额、已用、剩余、无价
actual token;显式不限额时明写不限额,不编一个数字。
- 每轮最多 5 块;发送方创建人须有项目 read 权限,否则拒绝。
### task-files:读派生链内或同创建人任务的文件(只读)
```text
```task-files
{"task_id": "<目标任务 id>", "path": "out.txt"}
```
```
- 不传 path(或空串)时列顶层(只列前 50 项,目录名带 /);
传相对路径读文件,上限 20000 字,超出写明截断。
- 门禁:目标须在本项目内且在派生链内或同创建人;cloud
任务与 worktree 在别机的任务拒绝(文件不在本机);目标
没有本地 worktree 时按“没有本地 worktree”报告,不编内容。
- 路径安全:绝对路径、.. 逃逸、符号链接逃逸一律拒绝并在
报告里写清;二进制文件(解码失败或含 NUL 字节)拒绝;
worktree 解析只接受已存在的任务级目录(租户路径或
host.py 同级 work/host-worktrees),绝不把共享挂载点本身
当成目标任务的目录。
- 每轮最多 5 块;删除、写文件不走标记块(模型改文件走它
自己的执行器工作区,不是读别人 worktree 的路)。