6.0 KiB
6.0 KiB
name, description
| name | description |
|---|---|
| unidesk-code-queue | UniDesk AgentRun-backed Code Queue CLI — Skill(cli-spec)。legacy `codex` 子命令只保留历史只读和残留停止;新任务提交、Aipod/Artificer 派单、session follow-up、events/logs/result、attempts/retry、ack/cancel、dispatch、run/command/runner 状态 drill-down 和 HWLAB Code Agent/CaseRun follow-up 必须使用 `agentrun get|describe|events|logs|result|retry|ack|cancel|dispatch|create|apply|send` 资源原语。用户提到 codex、Code Queue、submit、send、resume、retry、tasks、unread、code-queue、aipod、Artificer、HWLAB Code Agent 时使用。 |
UniDesk Code Queue / AgentRun CLI
新任务、Aipod/Artificer 派单、session follow-up、events/logs/result、attempts/retry、ack/cancel、dispatch 和 run/command/runner drill-down 走 AgentRun 资源原语。legacy codex 只保留历史只读、未读积压和残留任务停止。
高频入口
bun scripts/cli.ts agentrun get tasks --limit 20
bun scripts/cli.ts agentrun describe task/<taskId>
bun scripts/cli.ts agentrun describe task/<taskId> --input -o json
bun scripts/cli.ts agentrun describe aipodspec/<name>
bun scripts/cli.ts agentrun events run/<runId> --limit 20
bun scripts/cli.ts agentrun events run/<runId> --detail-seq <seq> -o json
bun scripts/cli.ts agentrun logs session/<sessionId> --tail 120
bun scripts/cli.ts agentrun result run/<runId> --command <commandId>
bun scripts/cli.ts agentrun get attempts --task <taskId>
bun scripts/cli.ts agentrun retry task/<taskId> --idempotency-key <key> --reason <text> --dry-run
bun scripts/cli.ts agentrun send <session> --prompt-stdin
bun scripts/cli.ts agentrun create task \
--aipod Artificer \
--target <Target> \
--target-workspace <absolute-task-worktree> \
--repo <owner/repo> \
--ref <branch> \
--mdtodo-id <R6.3> \
--prompt-stdin \
--dry-run
资源命令的 Target 规则:
- 未传
--target、--node或--lane时,使用config/agentrun.yaml#controlPlane.default; client.targetExecution决定外层trans重入的 marker、CLI 路径和目标 UniDesk 工作区;- 代码不得补 Target 路径默认值;
- 主机 direct HTTP auth 只保留独立诊断;
- Secret 固定读取
/root/.unidesk/.env/agentrun.env,不得回退到 worktree 或旧/root/.config/hwlab-*路径。
AipodSpec/Artificer、task manifest 和 queue 渐进披露见 references/resources.md;session 控制、HWLAB Code Agent 整合、trace/output 分页、judge、中断/取消见 references/sessions.md;旧队列归档见 references/legacy.md。
P0 边界
- AgentRun 与调用方之间的契约版本、源码/镜像版本和
commitId对齐只能产生非阻塞 warning;可安全归一化的请求继续 admission/dispatch,不得因版本或契约漂移阻止用户任务、session、run、command 或 runner。 - 新写入口不要用
codex submit/steer/resume;这些 legacy mutation 已冻结。 - Artificer 的 runner primary workspace 与任务 Target 必须分开判定:
- runner primary workspace 只装配默认 UniDesk resource bundle、
tools/trans、skill 和轻量准备; - 待修改源码只来自派单上下文中的
targetWorkspace,且该路径必须是任务专属 worktree; - 现场探测、Git、编辑、验证和运行面观察必须使用
trans <Target>:<targetWorkspace>; - 不得把 runner 本地结果、默认 bundle 的 Git 状态或容器内同名路径当作 Target 验收;
unidesk-transrequired skill、runner tools bundle、unidesk-sshSecretRef 和 endpoint presence 缺一项即归为装配失败;- Secret 输出只显示对象、key、presence/fingerprint 与
valuesPrinted=false。
- runner primary workspace 只装配默认 UniDesk resource bundle、
- 默认输出保持低噪声表格/摘要;机器消费显式
-o json|yaml或--raw。 - 读取 task 的可重建输入:
- 使用
agentrun describe task/<taskId> --input -o json; - 该入口只投影 task create 字段、AipodSpec identity、资源引用和脱敏 provenance;
- 不打印 Secret value;
--input与--full、--raw互斥,非法组合必须在请求服务端前返回validation-failed。
- 使用
- 读取 AipodSpec:
- 默认
describe aipodspec/<name>的 human、JSON 和 YAML 使用同一有界摘要; - 摘要至少包含:
- identity/hash 与 runtime;
- workspace 与主 resource bundle source identity;
- 引用计数和脱敏 provenance;
- credential 只显示 SecretRef 并固定
valuesPrinted=false; - 完整服务端对象只通过显式
--full -o json或--raw下钻。
- 默认
- Session follow-up 使用
agentrun send,由服务端决定内部 steer vs turn。 - Session follow-up 的默认 text、显式 JSON 和 YAML 使用同一有界投影:
- dry-run 直接展示
decision、reuseRun、createRunner、session/run/command/runner identity、mutation=false和语义化Next; - live 失败保留 manager 返回的 typed failure、资源 identity、
mutation/partialWrite与只读下钻命令; - CLI 不补做 retry、cleanup、runner 调度或 session 状态机,partial write 时禁止盲目重发。
- dry-run 直接展示
- 终态失败重试只使用
agentrun retry task/<taskId>:保持同一 task,新增不可变 attempt;先用--dry-run完成服务端全校验,再以同一幂等键执行真实重试。 - retry 只接受 Queue 已处于
failed或blocked;completed、cancelled和其他状态必须 fail closed。不得复制 task、重置 task、引入本地 scheduler/backoff/judge 或直接创建 runner Job 来模拟重试。 - HWLAB Code Agent/CaseRun follow-up 也优先落到 AgentRun resource primitive,不绕过队列状态。
何时读取 reference
- 创建/应用 AgentRun task 或 AipodSpec:读 references/resources.md。
- 查历史
codex tasks/unread/output/trace:读 references/legacy.md。 - 需要 judge、取消、中断、Dev Ready 或 PR preflight:读 references/sessions.md。