fix: 通过主工作区契约委派 tran

This commit is contained in:
root
2026-07-13 04:04:50 +02:00
parent da4b3c0d62
commit da4b9ff8ae
7 changed files with 57 additions and 8 deletions
+3 -1
View File
@@ -97,7 +97,9 @@ imageRef:
- UniDesk repo 提供 primary source workspace 与 `unidesk-*` skills
- AgentRun repo 提供 `tools/trans``tools/tran``tools/apply_patch` 等 runner tool shim
- `agent_skills` repo 提供 `dad-dev``cli-spec``docs-spec``git-spec`
- `tools/tran` 只委派 primary UniDesk workspace`scripts/tran`Windows、host 与 k3s route 解析和 frontend transport 均由 UniDesk 共享实现负责
- runner 通过 `AGENTRUN_WORKSPACE_PATH` 显式传递已物化的 primary workspace
- `tools/tran` 只从该路径委派 primary UniDesk workspace 的 `scripts/tran`,不得根据安装 shim 的 `$0` 反推源码目录;
- Windows、host 与 k3s route 解析和 frontend transport 均由 UniDesk 共享实现负责;
- runner 物化阶段自动把 GitHub URL 改写到 G14 git mirrorArtificer 规格本身不声明 mirror 开关或 mirror base URL。
- primary source workspace 与受控远端 tool target 是不同边界:
- Agent 修改的源码仍以 `ResourceBundleRef` 物化出的 primary workspace 为唯一来源;
+17 -1
View File
@@ -206,10 +206,26 @@ runner 对 managed overlay 的逻辑 `tools/` 做统一装配:
- 顶层带 shebang 的脚本会被 `chmod +x`,并通过 `PATH` 暴露;
- runtime 配置 `AGENTRUN_RESOURCE_BIN_PATH` 时,只能在该目录写入执行原始 overlay tool 的 shim
- 禁止复制 tool 文件到 bin 目录后改变 `dirname "$0"`、相对 import 或辅助源码解析语义;
- runner 必须通过 `AGENTRUN_WORKSPACE_PATH` 向 backend tool 显式传递已物化的 primary workspace
- runtime tool 不得根据安装 shim 的 `$0` 反推 primary workspace
- 非 shebang 文件只作为 bundle 源码、测试或辅助文件,不作为可执行工具发现;
- 短命令名称来自 repo 内真实文件,例如 `tools/hwpod`repo tool 本身承担业务 wrapper 语义。
AgentRun 自身仓库必须提供 `tools/tran``tools/trans``tools/apply_patch`,用于承接 UniDesk frontend `/ws/ssh` 的 scoped client-token 透传。runner 只通过 `executionPolicy.secretScope.toolCredentials[]` 投影 `UNIDESK_SSH_CLIENT_TOKEN`,并通过调用方 `transientEnv` 或 manager 受控默认值注入非敏感 `UNIDESK_MAIN_SERVER_IP``UNIDESK_MAIN_SERVER_HOST``UNIDESK_FRONTEND_URL`;工具不得读取 provider token、主 server SSH key 或完整 frontend 登录态。`tran --help` 必须输出 JSON,并列出当前支持的最小开发面:host/host workspace `script``argv`、普通 ssh-like 命令、host workspace `apply-patch``k3s kubectl``k3s script`、k3s workload `argv/script` 和 k3s workload `apply-patch`。runner 侧 `apply-patch` 只把 stdin patch 和相邻 `tools/apply_patch` helper 传到目标 route 执行,不接触或回显 Secret 值;`upload``download` 和 Windows route 未实现时必须显式 `unsupported-operation`,不能静默改走不受控 shell 拼接或 token fallback。
AgentRun 自身仓库必须提供 `tools/tran``tools/trans``tools/apply_patch`
- 这些工具用于承接 UniDesk frontend `/ws/ssh` 的 scoped client-token 透传;
- runner 只通过 `executionPolicy.secretScope.toolCredentials[]` 投影 `UNIDESK_SSH_CLIENT_TOKEN`
- 非敏感 frontend 地址只由受控入口注入:
- 可用字段是 `UNIDESK_MAIN_SERVER_IP``UNIDESK_MAIN_SERVER_HOST``UNIDESK_FRONTEND_URL`
- 注入来源是调用方 `transientEnv` 或 manager 受控默认值;
- 工具不得读取 provider token、主 server SSH key 或完整 frontend 登录态;
- `tools/tran` 只委派 `AGENTRUN_WORKSPACE_PATH` 指向的 primary UniDesk workspace 中的 `scripts/tran`
- route 与 transport 职责保持单一:
- Windows、host 与 k3s route 解析和 frontend transport 均由 UniDesk 共享实现负责;
- AgentRun 不维护第二套 parser 或 fallback
- runner 侧 `apply-patch` 保持最小职责:
- 只把 stdin patch 和相邻 `tools/apply_patch` helper 传到目标 route 执行;
- 不接触或回显 Secret 值。
#### promptRefs