@xdxer/dingtalk-agent 0.1.5-beta.11 → 0.1.5-beta.13

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dingtalk-agent.js","sourceRoot":"","sources":["../../bin/dingtalk-agent.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n// dingtalk-agent —— 钉钉数字员工的标准范式(TypeScript source)。\n//\n// Skill = 劝 判断:只有 LLM 能做的(该不该答、话题归属、怎么写点评)。\n// CLI = 拦 标准动作:可程序化、可强制、可验证。撞上去没得商量。\n// DWS = 做 真正的钉钉产品能力;本文件只在需要冻结事务边界时包一层。\n//\n// 本体(AGENTS.md + Role Skills)负责\"它是谁、它知道什么\",git clone 就带走;\n// 它是被上面三者加载和校验的对象,不是第四个执行者。\n//\n// **分界线:凡是能程序化的,收进 CLI;凡是需要判断的,留在 Skill。**\n// 因为:文档会被漏读、误读、自我说服;**撞到闸门上就没得商量。**\n//\n// 完整架构见 docs/ARCHITECTURE.md。\n\nimport { parseArgs } from 'node:util'\nimport { join, relative, resolve } from 'node:path'\nimport { existsSync, readFileSync, realpathSync } from 'node:fs'\nimport { spawn, spawnSync } from 'node:child_process'\n\nimport * as cfgmod from '../src/config.js'\nimport { init } from '../src/init.js'\nimport { ackDispatch, listPendingDispatches, prepareSession } from '../src/sessions.js'\nimport { readEventFile, consumeNdjson, heartbeatEvent } from '../src/driver.js'\nimport { findRun, previewAction, executeAction } from '../src/actions.js'\nimport { resolvePackageRoot } from '../src/package-root.js'\nimport { bootstrap } from '../src/bootstrap.js'\nimport { loadAgentBindings } from '../src/agent-bindings.js'\nimport { auditAgent, type AgentAuditReport } from '../src/agent-audit.js'\nimport {\n applyAgentEnhancement, planAgentEnhancement,\n type AgentEnhancePlan, type AgentEnhanceReceipt,\n} from '../src/agent-enhance.js'\nimport { doctorLab, runLab, teardownLab, verifyLab } from '../src/lab.js'\nimport { runRobotEvaluation, type RobotEvalLane } from '../src/robot-evals.js'\nimport { runOpenCodeEvaluation } from '../src/opencode-evals.js'\nimport { runStorageEvaluation } from '../src/storage-evals.js'\nimport { runPersonalEventEvaluation } from '../src/personal-event-evals.js'\nimport { CHECK_LABELS, doctor } from '../src/doctor.js'\nimport {\n doctorDevelopmentWorkspace, inspectAgentProject, showDevelopmentWorkspace,\n type AgentProjectInfo, type DevelopmentWorkspaceDoctorReport, type DevelopmentWorkspaceView,\n} from '../src/development-workspace.js'\nimport { buildScheduleShow, buildSchedulePlan, scheduleBlockers } from '../src/schedule-plan.js'\nimport {\n applyOpenCodeWorkspace, evalOpenCodeWorkspace, planOpenCodeWorkspace,\n runOpenCodeWorkspace, useOpenCodeWorkspace,\n} from '../src/opencode-provider.js'\nimport {\n inspectMulticaWorkspace, listMulticaWorkspaceResources, planMulticaWorkspace,\n scaffoldMulticaWorkspace, statusMulticaWorkspace,\n} from '../src/multica-provider.js'\nimport {\n applyMulticaDeployment, listMulticaDeployments, planMulticaDeployment,\n runMulticaWorkspaceIssue, statusMulticaDeployment, statusMulticaWorkspaceRun,\n} from '../src/multica-deploy.js'\nimport {\n applyObservation, applyPromotion, listPromotions, planObservation, planPromotion,\n statusPromotion,\n} from '../src/promotion.js'\nimport { setup } from '../src/setup.js'\nimport { checkUpgrade, upgradeAgent, type UpgradeCheckResult } from '../src/upgrade.js'\n// out/err 在本文件里改名导入:printX 的形参普遍叫 out,直接同名会被遮蔽。\nimport {\n configureTui, confirm, displayWidth, padRight, renderPairs, StepReporter,\n err as stderrUi, out as stdoutUi, type ColorFlag,\n} from '../src/tui.js'\nimport { checkpointTask, showTaskCheckpoint } from '../src/memory/task-checkpoints.js'\nimport { upsertOperationalMemory } from '../src/memory/operational.js'\nimport { listMemoryNoops, recordMemoryNoop, traceMemoryNoop } from '../src/memory/noop-receipt.js'\nimport {\n proposeMemoryCandidate, publishMemoryCandidate, reviewMemoryCandidate,\n showMemoryCandidate,\n} from '../src/memory/candidates.js'\nimport {\n installBundledSkills, installGlobalSkill, skillStatus, skillSuiteStatus,\n uninstallBundledSkills, uninstallGlobalSkill, upgradeBundledSkills, upgradeGlobalSkill,\n type GlobalSkillStatus, type GlobalSkillSuiteStatus,\n} from '../src/skill-manager.js'\nimport {\n agentPlatformReadiness, MANAGED_AGENT_PLATFORMS, multicaTargets, platformDocPath,\n platformSkillForRole, requireSupportedAgentPlatform, resolveAgentPlatform, resolveEndpoint,\n statusLabel as platformStatusLabel, useAgentPlatform,\n type AgentPlatformReadinessCheck, type AgentPlatformResolution,\n type EndpointResolution, type MulticaTarget,\n} from '../src/agent-platform.js'\n\nconst PACKAGE_ROOT = resolvePackageRoot(import.meta.url)\nconst PACKAGE_JSON = JSON.parse(readFileSync(join(PACKAGE_ROOT, 'package.json'), 'utf8'))\n\n// ROOT = **你的工作区**(当前目录),不是包所在的目录。\n// 全局装 / npx 跑的时候,包住在 node_modules 里 —— 那不是 agent 的家。\nconst ROOT = process.env.DTA_ROOT\n ? resolve(process.env.DTA_ROOT)\n : (cfgmod.findRoot(process.cwd()) || process.cwd())\nconst PROJECT_START = process.env.DTA_ROOT ? resolve(process.env.DTA_ROOT) : process.cwd()\n\nconst HELP = `\ndta —— 给 Agent 安装钉钉员工的基础行为和工作环境\n\n装好后,Agent 可以:\n · 判断 @、单聊和群消息是否应该回应\n · 通过 DWS 回复消息、协作并使用钉钉标准产品\n · 从本地目录或钉钉文档加载身份、记忆和知识\n\n开始使用:\n dta setup 首次配置 CLI、DWS 和内置 Skill(基础行为 + Agent 装配 + 交付后评测)\n dta bootstrap --json 为当前 Agent 会话加载工作区\n dta agent enhance / audit 安全增强已有仓库,再审计定义、存储与 Skill 真加载\n dta info / workspace doctor / schedule show <name> 只读诊断 Project、Workspace 与声明的常驻节律\n dta agent-platform use <platform> → dta deploy / dta promote 声明平台归属并装平台技能包,再受控部署与晋级\n\n维护环境:\n dta doctor 检查哪里没装好,并给出修复提示\n dta upgrade 自升级,再重新检查完整环境\n dta skill status 查看内置 Skill 的版本状态与三个客户端能否发现(可加 name 只查一个)\n\n接入钉钉事件和可靠外发:dta help runtime\n`\n\nconst RUNTIME_HELP = `\ndingtalk-agent 可信事件运行时(可选宿主能力)\n\n init [--context-id X] [--memory <uri>] [--knowledge <uri>]\n prepare --event-file <file|-> [--perception-file <file>]\n run --stdin | --event-file <file> | --heartbeat\n dispatch pending\n dispatch ack --event-id X --run-id X\n task show --json\n task checkpoint --input checkpoint.json --expect-revision N\n memory operational upsert --provider provider.json --input record.json [--live --yes]\n memory candidate propose|show|review|publish\n memory noop record|list|trace\n act ack|reply|ask|silence\n\n这些命令负责目标冻结、Session/Run、Wait、幂等和回执;普通 Agent Session 不必使用。\n`\n\nconst ADAPTER_HELP = `\ndingtalk-agent 可选 Driver / 开发联调适配器\n\n listen mention --once\n listen dm --user <userId> --once\n listen group --group <openConversationId> --once\n\nlisten 不是 Agent 主入口。Claude Code、DWS 云端或其他宿主都可以直接提供事件。\n`\n\nconst LAB_HELP = `\ndingtalk-agent 真实世界联调控制面\n\n lab doctor --manifest lab/manifest.local.json\n lab run --manifest <file> --event-file <file> --case-id <id> [--reply <text>]\n lab verify --evidence <run-dir>\n lab teardown --manifest <file> --evidence <run-dir>\n lab eval --pool <pool.local.json> --suite <suite.json> [--lanes stateless,stateful]\n lab eval --engine opencode --workspace <agent-dir> --suite <suite.json> [--cases id1,id2] [--runs 3] [--previous-skill <dir>]\n lab eval --engine storage --workspace <agent-dir> --suite <remote-state.json> [--execute --live --yes]\n lab eval --engine personal-event --workspace <agent-dir> --suite <suite.json> [--execute --live --yes]\n\nmock-integration 还要求 DTA_LAB_FAKE_DWS=1;robot/personal Live 必须显式 --live --yes。\nlab eval 默认只输出计划;Robot Live 用 --live --yes,OpenCode A/B 用 --execute --yes。\nRemote State 用 --execute --yes 读取 DWS/调用模型,再加 --live 才执行唯一写探针。\nOpenCode 对照强制验证每个 Basic Skill 的 load probe;提供 --previous-skill 时运行 current/previous,不连接 DWS。\nLab 只管理 allowlist、预算、marker、证据和清理;事件触发器仍在外部。\n`\n\nconst AGENT_HELP = `\ndingtalk-agent 开发者装配验收\n\n agent audit [--bindings agent.bindings.json] [--require-skill <name>]\n agent audit [--bindings <file>] [--require-skill <name>] --verify-load --yes\n agent audit [--bindings <file>] --load-report <agent-audit-load-evidence.json> [--remote-report <report.json>]\n agent enhance --role-skill <name>[,<name>] [--project-name <name>] [--dry-run] [--json]\n agent enhance --role-skill <name>[,<name>] --plan-id <current-plan-id> --yes [--json]\n\n默认只做本地静态审计,不访问 DWS、不调用模型;状态为 partial 时返回退出码 2。\n--verify-load --yes 会运行隔离的 OpenCode load probe,但仍不访问钉钉。\n远端语义状态由 storage eval 独立验收,再通过 --remote-report 绑定证据。\n`\n\nconst WORKSPACE_HELP = `\ndingtalk-agent Project / Development Workspace\n\n info [--json]\n workspace list [--json]\n workspace show <name> [--json]\n workspace doctor <name> [--json]\n workspace plan <multica-name> [--json]\n workspace inspect <multica-name> [--execute --yes] [--json]\n workspace remote-list <multica-name> [--execute --yes] [--json]\n workspace status <multica-name> [--json]\n workspace create <name> [--dry-run | --yes] [--json]\n workspace use <name> [--json]\n workspace run <name> --prompt-file <file> [--execute --yes] [--json]\n workspace eval <name> --suite <file> [--execute --yes] [--runs N] [--json]\n\n命令会从当前目录向上发现 dingtalk-agent.json;旧 workspace@1 只读显示为 legacy-prepared。\nMultica plan/status 默认不调用 Provider;inspect/remote-list 只有 --execute --yes 才读取当前 profile 和远端 scope。\nMultica readback 只保存脱敏事实,不执行 create/update/apply/deploy;OpenCode create 只物化本地环境。\n这些命令都不访问 DWS;Multica 远端写入只通过 dta deploy 的冻结 plan 闸门。\n`\n\nconst DEPLOY_HELP = `\ndingtalk-agent Multica 受控部署\n\n deploy --workspace <name> --dry-run [--json]\n deploy --workspace <name> --plan-id <id> --yes [--wait | --no-wait] [--json]\n deploy --workspace <name> --status [--operation-id <id>] [--json]\n deploy --workspace <name> --status --operation-id <id> --execute --yes [--json]\n deploy --workspace <name> --list [--json]\n deploy --workspace <name> --retire --dry-run [--json]\n deploy --workspace <name> --retire --plan-id <id> --yes [--json]\n\ndry-run 不启动 Multica。apply/retire 必须携带当前 planId;scope 或源码漂移会在写入前拒绝。\napply 默认在同一条命令内等 load smoke 到 ~30 秒;云端 runtime 冷启常超 30 秒会返回 verifying,\n再用 --status --operation-id 独立 reconcile。加 --wait 把等待预算放宽到 4 分钟,一条命令直接到 ready;\n--no-wait 立即返回 verifying(异步/CI)。--smoke-timeout <ms> 精确覆盖等待预算(上限 5 分钟)。\nstatus 默认只验本地脱敏 operation/Receipt;--execute --yes 才做远端独立回读。\ndeploy 只管理 Agent、完整 Skill tree、assignment 和 load smoke,不创建机器人、Webhook、Autopilot 或定时 Trigger。\n`\n\nconst PROMOTION_HELP = `\ndingtalk-agent 已验版本晋级与反馈候选\n\n promote --policy <file> --route <id> --dry-run [--json]\n promote --policy <file> --route <id> --plan-id <id> --yes [--no-wait] [--json]\n promote --status [--promotion-id <id>] [--json]\n promote --list [--json]\n observe --promotion-id <id> --input <observation.json> --dry-run [--json]\n observe --promotion-id <id> --input <observation.json> --yes [--json]\n\nPromotion 只接受指定 suite 的 load/hard/surface gate 与精确 W2 evidence hash,并委托 W4 deploy。\nObserve 只写 gitignored、proposed、不可直接发布的 Eval candidate;不修改 AGENTS.md、Prompt、Skill 或 Trigger。\n`\n\nconst UPGRADE_HELP = `\ndta upgrade —— 自升级 CLI,再重新检查完整环境\n\n用法:\n dta upgrade 升级到当前通道的最新版本\n dta upgrade --check 只查有没有新版本,不安装\n dta upgrade --dry-run 只预览将执行的命令,不安装\n dta upgrade --channel beta 指定通道(beta | latest)\n dta upgrade --version <x.y.z> 升级到指定版本\n dta upgrade --version <x.y.z> --force 允许降级(两者必须同时给)\n dta upgrade --yes 跳过确认提示(AI Agent 模式)\n dta upgrade --json 机器通道;输出 upgrade@1,不打任何进度\n\n参数:\n --check 只解析升级目标并对比当前版本\n --channel <name> beta 或 latest;不给时按当前版本是否带 - 推断\n --version <ver> 精确版本;与 --channel 互斥\n --prefix <dir> 安装前缀,默认 ~/.local\n --dry-run 不安装,只回报将执行的 install/verify 命令\n --force 强制重装当前版本;配合 --version 才允许降级\n --yes 跳过确认;非交互环境本来就不提示\n --json 输出 JSON,不混入任何日志\n --no-color 关闭颜色(也支持 NO_COLOR 环境变量)\n\n升级过程分 7 步:冻结 Skill 版本 → 解析目标 → 检查版本关系 → 安装\n→ 定位新 CLI → 校验版本 → 复核环境。前 3 步失败不会改动机器;从第 4 步\n(安装)起失败可能留下已更新但未复核的 CLI,此时按提示重跑 setup 或\n用 --version <旧版本> --force 回退。\n\n非交互环境(管道 / CI / Agent 调用)不提示确认,直接执行。\n颜色只在终端里出现;管道里想要颜色需显式 --color。\n`\n\n/**\n * 帮助文本的打印时装饰。**不把 ANSI 写进常量**——常量一旦带色就没法降级,\n * 而这里 color=false 时原样返回,NO_COLOR / 管道下与改造前逐字节相同。\n *\n * 只染整段连续短语:命令名从行首吃到两个以上空格为止,所以\n * `dta setup`、`dta skill status` 这类断言目标始终完整。行数不变。\n */\nfunction renderHelp(text: string): string {\n const { ctx, theme } = stdoutUi()\n if (!ctx.color) return text\n return text.split('\\n').map((line, index) => {\n if (index === 1 && line.trim()) return theme.bold(line)\n if (/^\\S.*[::]$/.test(line)) return theme.bold(line)\n if (/^\\s+·\\s/.test(line)) return theme.dim(line)\n const command = line.match(/^(\\s+)((?:dta|dingtalk-agent)\\s\\S.*?)(\\s{2,})(.*)$/)\n if (command) return `${command[1]}${theme.noun(command[2])}${command[3]}${theme.dim(command[4])}`\n return line\n }).join('\\n')\n}\n\nfunction fail(msg: string, code = 1, hint = ''): never {\n // 整行染色,绝不做 danger('错误') + ': ' + msg 这种切分——\n // 契约 eval 断言的是 stderr.includes('错误:'),切开就再也匹配不上。\n const { theme } = stderrUi()\n console.error(theme.danger(`错误: ${msg}`))\n if (hint) console.error(theme.dim(`提示: ${hint}`))\n process.exit(code)\n}\n\n// --color / --no-color 在 dispatch 前预剥:parseArgs 是 strict 模式,\n// 想让它成为全局参数就得改 23 个 options 块,预剥只需要这一处。\n//\n// 三条边界:`--` 之后的 token 是 positional,一律不碰;非法取值报错而不是\n// 静默吞掉;同一参数出现多次以最后一次为准(与 parseArgs 的口径一致)。\nconst rawArgv = process.argv.slice(2)\nconst COLOR_VALUES = new Set<ColorFlag>(['auto', 'always', 'never'])\nconst terminator = rawArgv.indexOf('--')\nconst scannable = terminator === -1 ? rawArgv : rawArgv.slice(0, terminator)\n\nlet colorFlag: ColorFlag = 'auto'\nfor (const item of scannable) {\n if (item === '--no-color') colorFlag = 'never'\n else if (item === '--color') colorFlag = 'always'\n else if (item.startsWith('--color=')) {\n const value = item.slice('--color='.length) as ColorFlag\n if (!COLOR_VALUES.has(value)) {\n console.error(`错误: --color 只接受 auto | always | never,收到 ${JSON.stringify(value)}`)\n process.exit(1)\n }\n colorFlag = value\n }\n}\nconfigureTui(colorFlag)\n\nconst isColorToken = (item: string) =>\n item === '--color' || item === '--no-color' || item.startsWith('--color=')\nconst argv = terminator === -1\n ? rawArgv.filter((item) => !isColorToken(item))\n : [...rawArgv.slice(0, terminator).filter((item) => !isColorToken(item)), ...rawArgv.slice(terminator)]\nconst cmd = argv[0]\nconst sub = argv[1]\n\ntry { await main() } catch (e) {\n const error = e as Error & { exitCode?: number }\n const message = String(error?.message || error)\n fail(message, Number(error?.exitCode) || 2, errorHint(message))\n}\n\nasync function main() {\n if (cmd === 'help' && sub === 'runtime') { console.log(renderHelp(RUNTIME_HELP)); return }\n if (cmd === 'help' && sub === 'adapters') { console.log(renderHelp(ADAPTER_HELP)); return }\n if (cmd === 'help' && sub === 'lab') { console.log(renderHelp(LAB_HELP)); return }\n if (cmd === 'help' && sub === 'agent') { console.log(renderHelp(AGENT_HELP)); return }\n if (cmd === 'help' && sub === 'workspace') { console.log(renderHelp(WORKSPACE_HELP)); return }\n if (cmd === 'help' && sub === 'deploy') { console.log(renderHelp(DEPLOY_HELP)); return }\n if (cmd === 'help' && ['promote', 'observe'].includes(sub || '')) { console.log(renderHelp(PROMOTION_HELP)); return }\n if (cmd === 'help' && sub) {\n fail(`不认识的帮助主题: ${sub}`, 1, '运行 dta --help 回到产品入口;事件宿主可用 dta help runtime。')\n }\n if (!cmd || cmd === '--help' || cmd === '-h' || cmd === 'help') { console.log(renderHelp(HELP)); return }\n if (cmd === '--version' || cmd === '-V' || cmd === 'version') {\n console.log(PACKAGE_JSON.version)\n return\n }\n\n if (cmd === 'deploy') {\n const platformForDeploy = requireSupportedAgentPlatform('deploy', PROJECT_START)\n disclosePlatformSkill(platformForDeploy, 'deploy')\n const { values: o, positionals } = parseArgs({\n args: argv.slice(1), allowPositionals: true,\n options: {\n workspace: { type: 'string' }, json: { type: 'boolean' },\n 'dry-run': { type: 'boolean' }, yes: { type: 'boolean' },\n 'plan-id': { type: 'string' }, 'no-wait': { type: 'boolean' },\n wait: { type: 'boolean' },\n status: { type: 'boolean' }, list: { type: 'boolean' },\n execute: { type: 'boolean' }, 'operation-id': { type: 'string' },\n timeout: { type: 'string' }, 'smoke-timeout': { type: 'string' },\n retire: { type: 'boolean' }, 'rebind-runtime': { type: 'boolean' },\n },\n })\n if (positionals.length) fail('deploy 不接受位置参数;使用 --workspace <name>')\n if (!o.workspace) fail('deploy 必须显式传 --workspace <name>')\n const modes = [\n Boolean(o.status), Boolean(o.list), Boolean(o['dry-run']), Boolean(o.yes && !o.status),\n ]\n .filter(Boolean).length\n if (modes !== 1) {\n fail('deploy 必须且只能选择 --dry-run、--yes、--status 或 --list 之一')\n }\n const timeoutMs = parseOptionalTimeout(o.timeout, '--timeout')\n const smokeTimeoutMs = parseOptionalTimeout(o['smoke-timeout'], '--smoke-timeout')\n let out: Record<string, any>\n if (o.wait && o['no-wait']) fail('deploy --wait 与 --no-wait 互斥')\n if (o['rebind-runtime'] && o.retire) fail('deploy --rebind-runtime 与 --retire 互斥')\n if (o.list) {\n if (o.execute || o['operation-id'] || o.retire || o['plan-id'] || o['no-wait'] || o.wait ||\n o.timeout || o['smoke-timeout'] || o['rebind-runtime']) {\n fail('deploy --list 只接受 --workspace 和 --json')\n }\n out = listMulticaDeployments(PROJECT_START, o.workspace, PACKAGE_JSON.version)\n } else if (o.status) {\n if (o.retire || o['plan-id'] || o['no-wait'] || o.wait || o['dry-run'] || o['smoke-timeout'] ||\n o['rebind-runtime']) {\n fail('deploy --status 不接受 retire/plan-id/no-wait/wait/dry-run/smoke-timeout/rebind-runtime')\n }\n if (Boolean(o.execute) !== Boolean(o.yes)) {\n fail('deploy --status 远端 reconcile 必须同时传 --execute --yes')\n }\n out = statusMulticaDeployment(PROJECT_START, o.workspace, {\n execute: o.execute, yes: o.yes, operationId: o['operation-id'], timeoutMs,\n cliVersion: PACKAGE_JSON.version,\n })\n } else if (o['dry-run']) {\n if (o.execute || o['operation-id'] || o['plan-id'] || o['no-wait'] || o.wait ||\n o.timeout || o['smoke-timeout']) {\n fail('deploy --dry-run 不接受 execute/operation-id/plan-id/no-wait/wait/timeout/smoke-timeout')\n }\n out = planMulticaDeployment(PROJECT_START, o.workspace, {\n action: o.retire ? 'retire' : 'apply', cliVersion: PACKAGE_JSON.version,\n rebindRuntime: o['rebind-runtime'],\n })\n } else {\n if (o.execute || o['operation-id'] || o.status || o.list || o['dry-run']) {\n fail('deploy apply 不接受 execute/operation-id/status/list/dry-run')\n }\n if (o.retire && (o['no-wait'] || o.wait || o['smoke-timeout'])) {\n fail('deploy --retire 不接受 no-wait/wait/smoke-timeout')\n }\n // --wait widens the in-band smoke-wait budget so one command reaches ready across a\n // cold-start runtime; an explicit --smoke-timeout still wins. Default stays ~30s.\n const effectiveSmokeTimeoutMs = smokeTimeoutMs !== undefined\n ? smokeTimeoutMs : o.wait ? 240_000 : undefined\n out = applyMulticaDeployment(PROJECT_START, o.workspace, {\n yes: o.yes, planId: o['plan-id'], noWait: o['no-wait'],\n timeoutMs, smokeTimeoutMs: effectiveSmokeTimeoutMs, cliVersion: PACKAGE_JSON.version,\n rebindRuntime: o['rebind-runtime'],\n }, o.retire ? 'retire' : 'apply')\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printMulticaDeployment(out)\n if ('passed' in out && out.passed === false && out.status !== 'verifying') process.exitCode = 2\n return\n }\n\n if (cmd === 'promote') {\n const platformForPromote = requireSupportedAgentPlatform('promote', PROJECT_START)\n disclosePlatformSkill(platformForPromote, 'deploy')\n const { values: o, positionals } = parseArgs({\n args: argv.slice(1), allowPositionals: true,\n options: {\n policy: { type: 'string' }, route: { type: 'string' },\n 'dry-run': { type: 'boolean' }, yes: { type: 'boolean' }, json: { type: 'boolean' },\n 'plan-id': { type: 'string' }, status: { type: 'boolean' }, list: { type: 'boolean' },\n 'promotion-id': { type: 'string' }, 'no-wait': { type: 'boolean' },\n timeout: { type: 'string' }, 'smoke-timeout': { type: 'string' },\n },\n })\n if (positionals.length) fail('promote 不接受位置参数')\n const modes = [Boolean(o['dry-run']), Boolean(o.yes), Boolean(o.status), Boolean(o.list)]\n .filter(Boolean).length\n if (modes !== 1) fail('promote 必须且只能选择 --dry-run、--yes、--status 或 --list 之一')\n let out: Record<string, any>\n if (o.list) {\n if (o.policy || o.route || o['plan-id'] || o['promotion-id'] || o['no-wait'] ||\n o.timeout || o['smoke-timeout']) fail('promote --list 只接受 --json')\n out = listPromotions(PROJECT_START)\n } else if (o.status) {\n if (o.policy || o.route || o['plan-id'] || o['no-wait'] || o.timeout || o['smoke-timeout']) {\n fail('promote --status 只接受 --promotion-id 和 --json')\n }\n out = statusPromotion(PROJECT_START, o['promotion-id'] || '')\n } else {\n if (!o.policy || !o.route) fail('promote dry-run/apply 必须传 --policy <file> --route <id>')\n if (o['promotion-id']) fail('promote dry-run/apply 不接受 --promotion-id')\n if (o['dry-run']) {\n if (o['plan-id'] || o['no-wait'] || o.timeout || o['smoke-timeout']) {\n fail('promote --dry-run 不接受 plan-id/no-wait/timeout/smoke-timeout')\n }\n out = planPromotion(PROJECT_START, o.policy, o.route, { cliVersion: PACKAGE_JSON.version })\n } else {\n out = applyPromotion(PROJECT_START, o.policy, o.route, {\n yes: true, planId: o['plan-id'], noWait: o['no-wait'],\n timeoutMs: parseOptionalTimeout(o.timeout, '--timeout'),\n smokeTimeoutMs: parseOptionalTimeout(o['smoke-timeout'], '--smoke-timeout'),\n cliVersion: PACKAGE_JSON.version,\n })\n }\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printPromotion(out)\n if ('passed' in out && out.passed === false && out.status !== 'verifying' && out.status !== 'missing') {\n process.exitCode = 2\n }\n return\n }\n\n if (cmd === 'observe') {\n const platformForObserve = requireSupportedAgentPlatform('observe', PROJECT_START)\n disclosePlatformSkill(platformForObserve, 'deploy')\n const { values: o, positionals } = parseArgs({\n args: argv.slice(1), allowPositionals: true,\n options: {\n 'promotion-id': { type: 'string' }, input: { type: 'string' },\n 'dry-run': { type: 'boolean' }, yes: { type: 'boolean' }, json: { type: 'boolean' },\n },\n })\n if (positionals.length) fail('observe 不接受位置参数')\n if (!o['promotion-id'] || !o.input) {\n fail('observe 必须传 --promotion-id <id> --input <observation.json>')\n }\n if (Boolean(o['dry-run']) === Boolean(o.yes)) {\n fail('observe 必须且只能选择 --dry-run 或 --yes')\n }\n const out = o['dry-run']\n ? planObservation(PROJECT_START, o['promotion-id'], o.input)\n : applyObservation(PROJECT_START, o['promotion-id'], o.input, { yes: true })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printPromotion(out)\n return\n }\n\n // ── Project / Development Workspace:W1 只读发现、状态与 Provider 诊断。──\n if (cmd === 'info') {\n const { values: o } = parseArgs({\n args: argv.slice(1), options: { json: { type: 'boolean' } },\n })\n const out = inspectAgentProject(PROJECT_START, PACKAGE_JSON.version)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printProjectInfo(out)\n return\n }\n\n if (cmd === 'schedule') {\n const sub = argv[1]\n const { values: o, positionals } = parseArgs({\n args: argv.slice(2), allowPositionals: true,\n options: { json: { type: 'boolean' }, workspace: { type: 'string' } },\n })\n if (sub === 'show') {\n const out = buildScheduleShow(PROJECT_START, PACKAGE_JSON.version)\n // 有阻断问题 = 非 0 退出,json 和人类两条路都设,否则自动化用 --json 拿到 exit 0 照样部署 → fail-open。\n // 判据来自 scheduleBlockers(含 unverified),不在这手写,避免和 plan 那边分叉。\n if (scheduleBlockers(out).length) process.exitCode = 2\n if (o.json) { console.log(JSON.stringify(out, null, 2)); return }\n if (out.count === 0) { console.log(muted('本 Project 未声明任何常驻节律(schedules)。')); return }\n console.log(`${strong('声明的常驻节律(本地 manifest 声明,非线上实态)')} · ${out.count} 条`)\n for (const s of out.schedules) {\n const metered = s.mode === 'work-item' ? '记账' : '不记账'\n console.log(`\\n ${noun(s.name)} ${s.cron} ${s.timezone} ${muted(`[${s.mode}·${metered}]`)}`)\n if (s.wake) console.log(muted(` 唤醒 ${s.wake}`))\n if (s.completion) console.log(muted(` ②判据 ${s.completion}`))\n }\n if (out.collidingPairs.length) {\n console.log(`\\n${mark('fail', `✗ 同刻并发: ${out.collidingPairs.join('、')} —— 外发拍同一时刻 fire 会重复送第三方,请错开`)}`)\n }\n if (out.missingCompletion.length) {\n console.log(`${mark('fail', `✗ 缺完成判据: ${out.missingCompletion.join('、')} —— 没有数据派生的 completion,只能靠\"跑没跑\"判完成,漏拍就永久丢一期`)}`)\n }\n if (out.unverifiedPairs.length) {\n console.log(`${mark('fail', `✗ 证不出是否同刻: ${out.unverifiedPairs.join('、')} —— 跨时区或 cron 扩展语法本地读不懂,一律当撞车挡住(0 9 * * * @Asia/Shanghai 和 0 1 * * * @UTC 就是同一时刻);把两条写成同一个 timezone,或换掉扩展语法`)}`)\n }\n for (const issue of out.completionRefIssues) {\n console.log(`${mark('fail', `✗ 判据引用: ${issue}`)}`)\n }\n // 绿灯条件必须和退出码同源(scheduleBlockers),否则新增一类 blocker 时\n // 人类输出继续报绿而 exit 2——手工操作者只看文案就会照常部署(issue #38)。\n if (!scheduleBlockers(out).length) {\n console.log(`\\n${mark('pass', '✓ 各节律不同刻 fire、完成判据齐备且引用合法')}`)\n }\n return\n }\n if (sub === 'plan') {\n const workspaceName = o.workspace || positionals[0]\n if (!workspaceName) fail('schedule plan 需要 --workspace <name>')\n const info = inspectAgentProject(PROJECT_START, PACKAGE_JSON.version)\n const plan = buildSchedulePlan(info, workspaceName as string)\n // fail closed(json 和人类两条路都设):plan 是 operator 真正照着部署的路径,\n // 撞车不在这拦,两条会各建一个 autopilot → 重复外发。判据同 show,见 scheduleBlockers。\n if (scheduleBlockers(plan).length) process.exitCode = 2\n if (o.json) { console.log(JSON.stringify(plan, null, 2)); return }\n console.log(`${strong('schedule 部署计划')} · workspace=${noun(plan.workspace)} · provider=${plan.provider}`)\n if (!plan.supported) {\n console.log(`\\n${mark('fail', `✗ 不支持: ${plan.reason}`)}`)\n console.log(` ${noun(plan.reconcile)}`)\n process.exitCode = 2\n return\n }\n // 阻断时不打印任何可执行命令:手工操作者会复制粘贴人类输出里的命令,\n // 「成功版面 + 可执行命令 + exit 2」等于把 fail-closed 只留给脚本(issue #38)。\n const blocked = scheduleBlockers(plan).length > 0\n if (!blocked) {\n console.log(` ${plan.count} 条声明 → provider ops:\\n`)\n for (const s of plan.schedules) {\n console.log(` ${muted(`# ${s.name} [${s.metered ? '记账' : '不记账·平台看不到成本'}]`)}\\n ${noun(s.applyCommand)}\\n`)\n }\n } else {\n console.log(`\\n${mark('fail', `✗ 已阻断:manifest 存在必须先修复的问题,本计划不可执行(apply 命令已隐藏)`)}`)\n }\n if (plan.collidingPairs.length) {\n console.log(`${mark('fail', `✗ 同刻并发: ${plan.collidingPairs.join('、')} —— 别照此部署,两条会各建一个 autopilot → 重复外发;先错开 fire 时刻`)}`)\n }\n if (plan.missingCompletion.length) {\n console.log(`${mark('fail', `✗ 缺完成判据: ${plan.missingCompletion.join('、')} —— 补上数据派生的 completion,别靠\"跑没跑\"判完成`)}`)\n }\n if (plan.unverifiedPairs.length) {\n console.log(`${mark('fail', `✗ 证不出是否同刻: ${plan.unverifiedPairs.join('、')} —— 别照此部署。跨时区或扩展语法本地判不了,一律当撞车;把两条写成同一个 timezone 再 plan,判得出不撞就自动放行`)}`)\n }\n for (const issue of plan.completionRefIssues) {\n console.log(`${mark('fail', `✗ 判据引用: ${issue}`)}`)\n }\n if (!blocked) console.log(`执行: ${noun(plan.reconcile)}`)\n return\n }\n fail(`可用: dta schedule show | plan --workspace <name>${suggest(sub || '', ['show', 'plan'], 'dta schedule')}`)\n return\n }\n\n if (cmd === 'workspace') {\n const { values: o, positionals } = parseArgs({\n args: argv.slice(2), allowPositionals: true,\n options: {\n json: { type: 'boolean' }, yes: { type: 'boolean' },\n 'dry-run': { type: 'boolean' }, execute: { type: 'boolean' },\n 'prompt-file': { type: 'string' }, suite: { type: 'string' },\n cases: { type: 'string' }, lanes: { type: 'string' }, runs: { type: 'string' },\n out: { type: 'string' }, timeout: { type: 'string' },\n 'previous-skill': { type: 'string' },\n status: { type: 'boolean' }, 'run-id': { type: 'string' },\n provider: { type: 'string' }, stage: { type: 'string' }, profile: { type: 'string' },\n },\n })\n if (sub === 'list') {\n rejectWorkspaceOptions(o, ['json'], 'workspace list')\n if (positionals.length) fail('workspace list 不接受 Workspace name')\n const info = inspectAgentProject(PROJECT_START, PACKAGE_JSON.version)\n const out = {\n $schema: 'dingtalk-agent/workspace-list@1',\n root: info.root,\n currentWorkspace: info.currentWorkspace,\n workspaces: info.workspaces,\n sideEffect: false,\n dingtalkSideEffect: false,\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printWorkspaceList(info)\n return\n }\n if (sub === 'show') {\n rejectWorkspaceOptions(o, ['json'], 'workspace show')\n if (positionals.length !== 1) fail('workspace show 需要且只接受一个 Workspace name')\n const workspace = showDevelopmentWorkspace(PROJECT_START, positionals[0], PACKAGE_JSON.version)\n const out = {\n $schema: 'dingtalk-agent/development-workspace@1',\n ...workspace,\n sideEffect: false,\n dingtalkSideEffect: false,\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printDevelopmentWorkspace(workspace)\n return\n }\n if (sub === 'doctor') {\n rejectWorkspaceOptions(o, ['json'], 'workspace doctor')\n if (positionals.length !== 1) fail('workspace doctor 需要且只接受一个 Workspace name')\n const out = doctorDevelopmentWorkspace(PROJECT_START, positionals[0], {\n cliVersion: PACKAGE_JSON.version,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printDevelopmentWorkspaceDoctor(out)\n if (!out.ready) process.exitCode = 2\n return\n }\n if (sub === 'plan') {\n rejectWorkspaceOptions(o, ['json', 'dry-run'], 'workspace plan')\n if (positionals.length !== 1) fail('workspace plan 需要且只接受一个 Multica Workspace name')\n const out = planMulticaWorkspace(PROJECT_START, positionals[0], {\n cliVersion: PACKAGE_JSON.version,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printMulticaWorkspaceOperation(out)\n if (out.blocking.length) process.exitCode = 2\n return\n }\n if (sub === 'inspect') {\n rejectWorkspaceOptions(o, ['json', 'execute', 'yes', 'out', 'timeout'], 'workspace inspect')\n if (positionals.length !== 1) fail('workspace inspect 需要且只接受一个 Multica Workspace name')\n if (Boolean(o.execute) !== Boolean(o.yes)) {\n fail('workspace inspect 读取远端时必须同时传 --execute --yes')\n }\n const timeoutMs = o.timeout === undefined ? undefined : Number(o.timeout)\n const out = inspectMulticaWorkspace(PROJECT_START, positionals[0], {\n execute: o.execute, yes: o.yes, out: o.out, timeoutMs,\n cliVersion: PACKAGE_JSON.version,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printMulticaWorkspaceOperation(out)\n if (o.execute && 'passed' in out && !out.passed) process.exitCode = 2\n return\n }\n if (sub === 'remote-list') {\n rejectWorkspaceOptions(o, ['json', 'execute', 'yes', 'timeout'], 'workspace remote-list')\n if (positionals.length !== 1) fail('workspace remote-list 需要且只接受一个 Multica Workspace name')\n if (Boolean(o.execute) !== Boolean(o.yes)) {\n fail('workspace remote-list 读取远端时必须同时传 --execute --yes')\n }\n const timeoutMs = o.timeout === undefined ? undefined : Number(o.timeout)\n const out = listMulticaWorkspaceResources(PROJECT_START, positionals[0], {\n execute: o.execute, yes: o.yes, timeoutMs, cliVersion: PACKAGE_JSON.version,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printMulticaWorkspaceOperation(out)\n if (o.execute && 'passed' in out && !out.passed) process.exitCode = 2\n return\n }\n if (sub === 'status') {\n rejectWorkspaceOptions(o, ['json'], 'workspace status')\n if (positionals.length !== 1) fail('workspace status 需要且只接受一个 Multica Workspace name')\n const out = statusMulticaWorkspace(PROJECT_START, positionals[0], PACKAGE_JSON.version)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printMulticaWorkspaceOperation(out)\n if (!out.readyForApply) process.exitCode = 2\n return\n }\n if (sub === 'create') {\n if (positionals.length !== 1) fail('workspace create 需要且只接受一个 Workspace name')\n if (o.yes && o['dry-run']) fail('workspace create 的 --dry-run 与 --yes 不能同时使用')\n const wsName = positionals[0]\n // Resolve the provider kind to scaffold/build: explicit --provider wins, else an already\n // declared Workspace keeps its kind, else the attributed platform's provider (registry-\n // driven so deap inherits it), else opencode. multica has no local host — create authors\n // its config entry; opencode keeps building the managed host.\n if (o.provider && !['opencode', 'multica'].includes(String(o.provider))) {\n fail('workspace create --provider 只支持 opencode 或 multica')\n }\n const declaredWs = inspectAgentProject(PROJECT_START, PACKAGE_JSON.version)\n .workspaces.find((item) => item.name === wsName)\n const platformProvider = resolveAgentPlatform(PROJECT_START).definition?.provider\n const kind = String(o.provider || declaredWs?.provider.kind || platformProvider || 'opencode')\n if (declaredWs && o.provider && declaredWs.provider.kind !== kind) {\n fail(`Workspace ${wsName} 已声明为 ${declaredWs.provider.kind},与 --provider ${kind} 冲突`)\n }\n if (kind === 'multica') {\n rejectWorkspaceOptions(\n o, ['json', 'yes', 'dry-run', 'provider', 'stage', 'profile'], 'workspace create')\n const out = scaffoldMulticaWorkspace(PROJECT_START, wsName, {\n stage: o.stage, profile: o.profile, apply: o.yes, cliVersion: PACKAGE_JSON.version,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else {\n const tag = out.alreadyDeclared ? '已存在' : out.applied ? '已写入' : 'DRY-RUN'\n console.log(`${tag} workspace ${out.workspace} · provider=multica · profile=${out.profile}`)\n for (const step of out.nextSteps) console.log(` ${step}`)\n }\n return\n }\n rejectWorkspaceOptions(o, ['json', 'yes', 'dry-run', 'provider'], 'workspace create')\n const out = o.yes\n ? applyOpenCodeWorkspace(PROJECT_START, wsName, {\n yes: true, cliVersion: PACKAGE_JSON.version,\n })\n : planOpenCodeWorkspace(PROJECT_START, wsName, PACKAGE_JSON.version)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printOpenCodeWorkspaceOperation(out)\n return\n }\n if (sub === 'use') {\n rejectWorkspaceOptions(o, ['json'], 'workspace use')\n if (positionals.length !== 1) fail('workspace use 需要且只接受一个 Workspace name')\n const out = useOpenCodeWorkspace(PROJECT_START, positionals[0], PACKAGE_JSON.version)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else console.log(`${mark('pass', '✅')} current workspace: ${muted(out.previous || '-')} → ${noun(out.current)}`)\n return\n }\n if (sub === 'run') {\n const timeoutMs = o.timeout === undefined ? undefined : Number(o.timeout)\n if (o.status) {\n // Resume a timed-out multica run by re-reading the SAME Issue; no new Issue is created.\n rejectWorkspaceOptions(\n o, ['json', 'yes', 'execute', 'out', 'timeout', 'status', 'run-id'], 'workspace run --status')\n if (positionals.length !== 1) fail('workspace run --status 需要一个 Workspace name')\n if (o['prompt-file']) fail('workspace run --status 不接受 --prompt-file;用 --run-id 续读')\n if (!o['run-id']) fail('workspace run --status 需要 --run-id <上次 run 的 runId>')\n const out = statusMulticaWorkspaceRun(PROJECT_START, positionals[0], {\n runId: o['run-id'], execute: o.execute, yes: o.yes, timeoutMs, out: o.out,\n cliVersion: PACKAGE_JSON.version,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else {\n console.log(`${out.passed ? '✅' : '❌'} workspace run ${out.runId} (resumed)`)\n if (out.answer) console.log(out.answer)\n }\n if (!out.passed) process.exitCode = 2\n return\n }\n rejectWorkspaceOptions(\n o, ['json', 'yes', 'execute', 'prompt-file', 'out', 'timeout'], 'workspace run')\n if (positionals.length !== 1 || !o['prompt-file']) {\n fail('workspace run 需要一个 Workspace name 和 --prompt-file <file>')\n }\n const prompt = readProjectText(PROJECT_START, o['prompt-file'], 'workspace run prompt')\n const workspace = showDevelopmentWorkspace(PROJECT_START, positionals[0], PACKAGE_JSON.version)\n const out: Record<string, any> = workspace.provider.kind === 'multica'\n ? runMulticaWorkspaceIssue(PROJECT_START, positionals[0], prompt, {\n execute: o.execute, yes: o.yes, timeoutMs, out: o.out,\n cliVersion: PACKAGE_JSON.version,\n })\n : runOpenCodeWorkspace(PROJECT_START, positionals[0], prompt, {\n execute: o.execute, yes: o.yes, timeoutMs, out: o.out,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else if (out.$schema === 'dingtalk-agent/opencode-workspace-run-plan@1') {\n console.log(`${mark('muted', 'DRY-RUN')} workspace=${noun(out.workspace)} model=${out.model} prompt=${out.promptHash}`)\n } else if (out.$schema === 'dingtalk-agent/multica-workspace-run-plan@1') {\n console.log(`${mark('muted', 'DRY-RUN')} workspace=${noun(out.workspace)} agent=${out.agentId || '-'} prompt=${out.promptHash}`)\n } else {\n console.log(`${mark(levelOf(Boolean(out.passed)), out.passed ? '✅' : '❌')} workspace run ${noun(out.runId)}`)\n if ('execution' in out && out.execution?.answer) console.log(out.execution.answer)\n if ('answer' in out && out.answer) console.log(out.answer)\n if (out.evidencePath) console.log(`evidence=${noun(out.evidencePath)}`)\n }\n if (o.execute && !out.passed) process.exitCode = 2\n return\n }\n if (sub === 'eval') {\n rejectWorkspaceOptions(\n o, ['json', 'yes', 'execute', 'suite', 'cases', 'lanes', 'runs', 'out', 'previous-skill'],\n 'workspace eval')\n if (positionals.length !== 1 || !o.suite) {\n fail('workspace eval 需要一个 Workspace name 和 --suite <file>')\n }\n const lanes = String(o.lanes || '').split(',').map((item) => item.trim()).filter(Boolean)\n const invalid = lanes.filter((item) => !['stateless', 'stateful', 'role'].includes(item))\n if (invalid.length) fail(`workspace eval lanes 非法: ${invalid.join(',')}`)\n const cases = String(o.cases || '').split(',').map((item) => item.trim()).filter(Boolean)\n const runs = o.runs === undefined ? undefined : Number(o.runs)\n const out = evalOpenCodeWorkspace(PROJECT_START, positionals[0], o.suite, {\n lanes: lanes as RobotEvalLane[], caseIds: cases, runs, out: o.out,\n previousSkill: o['previous-skill'], execute: o.execute, yes: o.yes,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printLab(out.report || out)\n if (o.execute && !out.passed) process.exitCode = 2\n return\n }\n fail(\n `不认识的 workspace 子命令: ${sub || '(缺失)'}`, 1,\n `可用命令: dta workspace list | show | doctor | plan | inspect | remote-list | status | create | use | run | eval${suggest(sub || '', ['list', 'show', 'doctor', 'plan', 'inspect', 'remote-list', 'status', 'create', 'use', 'run', 'eval'], 'dta workspace')}`,\n )\n }\n\n // ── setup / upgrade / doctor:机器级安装与环境闭环。──\n if (cmd === 'setup') {\n const { values: o } = parseArgs({\n args: argv.slice(1),\n options: {\n prefix: { type: 'string' }, 'dry-run': { type: 'boolean' },\n 'no-shell-write': { type: 'boolean' }, 'skip-cli-install': { type: 'boolean' },\n json: { type: 'boolean' },\n },\n })\n const out = setup(PACKAGE_ROOT, {\n prefix: o.prefix,\n dryRun: o['dry-run'],\n writeShell: !o['no-shell-write'],\n skipCliInstall: o['skip-cli-install'],\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printSetup(out)\n if (!out.doctor.ready) process.exitCode = 2\n return\n }\n\n if (cmd === 'doctor') {\n const { values: o } = parseArgs({\n args: argv.slice(1), options: { json: { type: 'boolean' } },\n })\n const out = doctor(PACKAGE_ROOT)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printDoctor(out)\n if (!out.ready) process.exitCode = 2\n return\n }\n\n if (cmd === 'upgrade') {\n // parseArgs strict 模式会把 --help 当成未知参数抛掉,必须先拦。\n if (argv.includes('--help') || argv.includes('-h')) { console.log(renderHelp(UPGRADE_HELP)); return }\n const { values: o } = parseArgs({\n args: argv.slice(1),\n options: {\n channel: { type: 'string' }, version: { type: 'string' }, prefix: { type: 'string' },\n 'dry-run': { type: 'boolean' }, force: { type: 'boolean' }, json: { type: 'boolean' },\n check: { type: 'boolean' }, yes: { type: 'boolean' },\n },\n })\n const channel = o.channel as 'beta' | 'latest' | undefined\n const json = Boolean(o.json)\n\n if (o.check) {\n if (o['dry-run'] || o.force || o.prefix || o.yes) {\n fail('upgrade --check 只接受 --channel / --version / --json')\n }\n const checked = checkUpgrade(PACKAGE_ROOT, { channel, version: o.version })\n if (json) console.log(JSON.stringify(checked, null, 2))\n else printUpgradeCheck(checked)\n return\n }\n\n // --json 是机器通道:结构性绕开 tui,连回调都不构造。\n // 非交互(管道/CI/Agent)也不提示,保持\"敲下去就装\"的既有行为。\n const interactive = !json && Boolean(process.stdin.isTTY)\n let known: UpgradeCheckResult | null = null\n if (interactive) {\n known = checkUpgrade(PACKAGE_ROOT, { channel, version: o.version })\n printUpgradePreamble(known, { dryRun: Boolean(o['dry-run']), force: Boolean(o.force) })\n const proceed = await confirm(\n o['dry-run'] ? '是否预览升级?' : '是否升级?',\n { yes: Boolean(o.yes), fallback: true },\n )\n if (!proceed) { console.error(stderrUi().theme.dim(' 已取消')); return }\n }\n\n const reporter = json ? null : new StepReporter({ total: o['dry-run'] ? 3 : 7 })\n const result = upgradeAgent(PACKAGE_ROOT, {\n channel, version: o.version, prefix: o.prefix,\n dryRun: o['dry-run'], force: o.force,\n // 已经解析过就别再问一次 registry;**同时把安装源钉死到精确版本**——\n // 只冻结期望版本而仍按 `pkg@latest` 安装,会在用户思考的这几秒里\n // 被移动的 tag 装进另一个版本,然后按旧期望校验失败,而机器已经改了。\n env: known\n ? {\n DTA_UPGRADE_TARGET_VERSION: known.targetVersion,\n DTA_UPGRADE_PACKAGE_SOURCE: known.pinnedSource,\n }\n : undefined,\n onEvent: reporter\n ? (event) => {\n if (event.phase === 'begin') reporter.begin(event.label)\n else reporter.end(event.ok !== false, event.meta || '')\n }\n : undefined,\n })\n if (json) console.log(JSON.stringify(result, null, 2))\n else printUpgrade(result)\n if (!result.dryRun && !result.ready) process.exitCode = 2\n return\n }\n\n // ── skill:唯一一次性的主入口;完全不依赖 Workspace。──\n if (cmd === 'skill') {\n const { values: o, positionals } = parseArgs({\n args: argv.slice(2),\n allowPositionals: true,\n options: {\n name: { type: 'string' }, 'dry-run': { type: 'boolean' }, json: { type: 'boolean' },\n 'allow-downgrade': { type: 'boolean' },\n },\n })\n if (positionals.length > 1) fail('skill 最多接受一个 Skill name')\n const name = o.name || positionals[0]\n const dryRun = Boolean(o['dry-run'])\n const allowDowngrade = Boolean(o['allow-downgrade'])\n let out: GlobalSkillStatus | GlobalSkillSuiteStatus\n if (sub === 'install') {\n out = name\n ? installGlobalSkill(PACKAGE_ROOT, { dryRun, name, allowDowngrade })\n : installBundledSkills(PACKAGE_ROOT, { dryRun, allowDowngrade })\n } else if (sub === 'status') {\n out = name ? skillStatus(PACKAGE_ROOT, { dryRun, name }) : skillSuiteStatus(PACKAGE_ROOT, { dryRun })\n } else if (sub === 'upgrade') {\n out = name\n ? upgradeGlobalSkill(PACKAGE_ROOT, { dryRun, name, allowDowngrade })\n : upgradeBundledSkills(PACKAGE_ROOT, { dryRun, allowDowngrade })\n } else if (sub === 'uninstall') {\n out = name\n ? uninstallGlobalSkill(PACKAGE_ROOT, { dryRun, name })\n : uninstallBundledSkills(PACKAGE_ROOT, { dryRun })\n } else {\n fail(\n `不认识的 skill 子命令: ${sub || '(缺失)'}`,\n 1,\n `可用命令: dta skill install | status | upgrade | uninstall${suggest(sub || '', ['install', 'status', 'upgrade', 'uninstall'], 'dta skill')}`,\n )\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else if ('skills' in out!) {\n for (const item of out.skills) printSkillStatus(item, sub, dryRun)\n // 静默删目录会让人以为什么都没发生;说清楚删了哪几个旧名。\n for (const item of out.prunedLegacy || []) {\n console.log(item.replacedBy\n ? ` 已迁移 ${item.name} → ${item.replacedBy}`\n : ` 已清理停用的 Skill ${item.name}`)\n }\n } else printSkillStatus(out!, sub, dryRun)\n return\n }\n\n // ── agent-platform:工作区归属的 managed agent platform;平台工具包按选择惰性安装。──\n if (cmd === 'agent-platform') {\n const { values: o, positionals } = parseArgs({\n args: argv.slice(2),\n allowPositionals: true,\n options: { json: { type: 'boolean' }, 'no-install': { type: 'boolean' } },\n })\n if (sub === 'list') {\n if (positionals.length) fail('agent-platform list 不接受位置参数')\n const out = { $schema: 'dingtalk-agent/agent-platform-list@1', platforms: MANAGED_AGENT_PLATFORMS }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else for (const platform of MANAGED_AGENT_PLATFORMS) printAgentPlatform(platform)\n return\n }\n if (sub === 'show') {\n if (positionals.length) fail('agent-platform show 不接受位置参数')\n const out = resolveAgentPlatform(PROJECT_START)\n const readiness = out.definition ? agentPlatformReadiness(out.definition.name, process.env, undefined, PROJECT_START) : []\n const targets = out.definition?.name === 'multica-dingtalk' ? multicaTargets() : []\n const endpoint = out.definition ? resolveEndpoint(out.definition.name, PROJECT_START) : null\n const doc = out.definition ? platformDocPath(PACKAGE_ROOT, out.definition.name) : null\n if (o.json) console.log(JSON.stringify({ ...out, endpoint, readiness, targets, doc }, null, 2))\n else {\n printAgentPlatformResolution(out)\n printEndpoint(endpoint)\n printAgentPlatformReadiness(readiness)\n printMulticaTargets(targets)\n printPlatformDoc(out.definition?.name)\n }\n return\n }\n if (sub === 'use') {\n if (positionals.length !== 1) fail('agent-platform use 需要且只接受一个 platform name')\n const out = useAgentPlatform(PROJECT_START, positionals[0], {\n packageRoot: PACKAGE_ROOT, installSkills: !o['no-install'],\n })\n const readiness = out.definition ? agentPlatformReadiness(out.definition.name, process.env, undefined, PROJECT_START) : []\n const targets = out.definition?.name === 'multica-dingtalk' ? multicaTargets() : []\n const endpoint = out.definition ? resolveEndpoint(out.definition.name, PROJECT_START) : null\n const doc = out.definition ? platformDocPath(PACKAGE_ROOT, out.definition.name) : null\n if (o.json) console.log(JSON.stringify({ ...out, endpoint, readiness, targets, doc }, null, 2))\n else {\n console.log(`${mark('pass', '✅')} 工作区已归属 ${strong(out.definition?.label)}(写入 ${noun(out.written)})`)\n for (const install of out.skillInstalls) printSkillStatus(install, 'install', false)\n if (!out.skillInstalls.length) {\n console.log(out.definition?.skills.length\n ? ` 已跳过平台技能包安装(--no-install):${out.definition.skills.map((item) => item.name).join(', ')}`\n : ' 该平台无需额外技能包。')\n }\n printEndpoint(endpoint)\n printAgentPlatformReadiness(readiness)\n printMulticaTargets(targets)\n printPlatformDoc(out.definition?.name)\n }\n return\n }\n fail(\n `不认识的 agent-platform 子命令: ${sub || '(缺失)'}`,\n 1,\n `可用命令: dta agent-platform list | show | use <platform>${suggest(sub || '', ['list', 'show', 'use'], 'dta agent-platform')}`,\n )\n }\n\n // ── bootstrap:当前 Agent Session 按需发现/拉取语义上下文。──\n if (cmd === 'bootstrap') {\n const { values: o } = parseArgs({\n args: argv.slice(1),\n options: {\n agent: { type: 'string' }, storage: { type: 'string' },\n memory: { type: 'string' }, knowledge: { type: 'string' },\n skills: { type: 'string' }, artifacts: { type: 'string' },\n 'state-dir': { type: 'string' }, profile: { type: 'string' },\n 'expected-user-id': { type: 'string' }, bindings: { type: 'string' },\n json: { type: 'boolean' },\n },\n })\n const loaded = loadConventionalBindings(o.bindings)\n const out = bootstrap(ROOT, {\n agent: o.agent, storage: o.storage,\n memory: o.memory, knowledge: o.knowledge, skills: o.skills,\n artifacts: o.artifacts, stateDir: o['state-dir'], profile: o.profile,\n expectedUserId: o['expected-user-id'], context: loaded?.context,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else {\n console.log(`${mark('pass', '✅')} ${strong(out.mode === 'workspace' ? '已装载 Workspace' : '直接会话模式')}`)\n console.log(` scope=${out.scopeId} initialized=${out.initialized}`)\n console.log(` agent=${out.definition.id} definition=${out.definition.status}`)\n if (!out.mounts.length) console.log(muted(' 没有发现持久上下文;这不是错误,也不需要自动 init。'))\n for (const mount of out.mounts) console.log(` ${mount.slot}: ${noun(mount.path)}`)\n console.log(` ${muted(out.note)}`)\n }\n return\n }\n\n // ── agent audit:本地定义、Host exposure、真加载与存储证据的稳定验收面。──\n if (cmd === 'agent') {\n if (!['audit', 'enhance'].includes(sub || '')) fail(\n `不认识的 agent 子命令: ${sub || '(缺失)'}`, 1,\n `可用命令: dta agent audit / dta agent enhance${suggest(sub || '', ['audit', 'enhance'], 'dta agent')}`,\n )\n if (sub === 'enhance') {\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n bindings: { type: 'string' }, 'project-name': { type: 'string' },\n 'role-skill': { type: 'string' }, model: { type: 'string' },\n memory: { type: 'string' }, knowledge: { type: 'string' },\n artifacts: { type: 'string' }, 'state-dir': { type: 'string' },\n profile: { type: 'string' }, 'expected-user-id': { type: 'string' },\n 'plan-id': { type: 'string' }, 'dry-run': { type: 'boolean' },\n yes: { type: 'boolean' }, json: { type: 'boolean' },\n },\n })\n if (o.yes && o['dry-run']) fail('agent enhance 的 --dry-run 与 --yes 不能同时使用')\n if (!o.yes && o['plan-id']) fail('agent enhance plan 不接受 --plan-id;它由 dry-run 生成')\n const options = {\n bindings: o.bindings, projectName: o['project-name'],\n roleSkills: o['role-skill']?.split(','), model: o.model,\n memory: o.memory, knowledge: o.knowledge, artifacts: o.artifacts,\n stateDir: o['state-dir'], profile: o.profile,\n expectedUserId: o['expected-user-id'], cliVersion: PACKAGE_JSON.version,\n planId: o['plan-id'], yes: o.yes,\n }\n const out = o.yes\n ? applyAgentEnhancement(ROOT, options)\n : planAgentEnhancement(ROOT, options)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printAgentEnhance(out)\n if ('$schema' in out && out.$schema === 'dingtalk-agent/agent-enhancement-plan@1' && !out.ready) {\n process.exitCode = 2\n }\n return\n }\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n bindings: { type: 'string' }, agent: { type: 'string' }, storage: { type: 'string' },\n memory: { type: 'string' }, knowledge: { type: 'string' },\n skills: { type: 'string' }, artifacts: { type: 'string' },\n 'state-dir': { type: 'string' }, profile: { type: 'string' },\n 'expected-user-id': { type: 'string' }, 'require-skill': { type: 'string' },\n 'verify-load': { type: 'boolean' }, yes: { type: 'boolean' },\n 'strict-single-run': { type: 'boolean' },\n model: { type: 'string' }, out: { type: 'string' },\n 'load-report': { type: 'string' }, 'remote-report': { type: 'string' },\n json: { type: 'boolean' },\n },\n })\n const loaded = loadConventionalBindings(o.bindings)\n const out = auditAgent(ROOT, {\n bootstrap: {\n agent: o.agent, storage: o.storage,\n memory: o.memory, knowledge: o.knowledge, skills: o.skills,\n artifacts: o.artifacts, stateDir: o['state-dir'], profile: o.profile,\n expectedUserId: o['expected-user-id'], context: loaded?.context,\n },\n bindings: loaded ? { path: loaded.path, hash: loaded.hash } : undefined,\n requiredSkills: o['require-skill']?.split(','),\n verifyLoad: o['verify-load'], yes: o.yes, model: o.model, out: o.out,\n strictSingleRun: o['strict-single-run'],\n loadReport: o['load-report'], remoteReport: o['remote-report'],\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printAgentAudit(out)\n if (!out.ready) process.exitCode = 2\n return\n }\n\n // ── lab:测试控制面;默认无副作用,Live 必须 manifest + --live --yes。──\n if (cmd === 'lab') {\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n manifest: { type: 'string' }, evidence: { type: 'string' },\n 'event-file': { type: 'string' }, 'case-id': { type: 'string' },\n pool: { type: 'string' }, suite: { type: 'string' }, lanes: { type: 'string' },\n cases: { type: 'string' },\n engine: { type: 'string' }, workspace: { type: 'string' }, model: { type: 'string' },\n runs: { type: 'string' }, out: { type: 'string' },\n 'previous-skill': { type: 'string' }, execute: { type: 'boolean' },\n reply: { type: 'string' }, input: { type: 'string' },\n live: { type: 'boolean' }, yes: { type: 'boolean' }, json: { type: 'boolean' },\n },\n })\n let out\n if (sub === 'doctor') {\n if (!o.manifest) fail('lab doctor 需要 --manifest <file>')\n out = doctorLab(ROOT, o.manifest)\n if (!out.ready) process.exitCode = 2\n } else if (sub === 'run') {\n if (!o.manifest || !o['case-id']) fail('lab run 需要 --manifest 和 --case-id')\n const rawEvent = o['event-file']\n ? readEventFile(o['event-file']) as Record<string, unknown> : null\n out = runLab(ROOT, cfgmod.must(ROOT), o.manifest, rawEvent, {\n caseId: o['case-id'], replyText: o.reply, inputText: o.input,\n live: o.live, yes: o.yes,\n })\n } else if (sub === 'verify') {\n if (!o.evidence) fail('lab verify 需要 --evidence <run-dir>')\n out = verifyLab(ROOT, o.evidence)\n if (!out.passed) process.exitCode = 2\n } else if (sub === 'teardown') {\n if (!o.manifest || !o.evidence) fail('lab teardown 需要 --manifest 和 --evidence')\n out = teardownLab(ROOT, o.manifest, o.evidence, { live: o.live, yes: o.yes })\n } else if (sub === 'eval') {\n if (!o.suite) fail('lab eval 需要 --suite')\n const lanes = String(o.lanes || '').split(',').map((item) => item.trim()).filter(Boolean)\n const invalid = lanes.filter((item) => !['stateless', 'stateful', 'role'].includes(item))\n if (invalid.length) fail(`lab eval lanes 非法: ${invalid.join(',')}`)\n const cases = String(o.cases || '').split(',').map((item) => item.trim()).filter(Boolean)\n const engine = o.engine || 'robot'\n if (engine === 'opencode') {\n if (!o.workspace) fail('OpenCode eval 需要 --workspace <agent-dir>')\n const runs = o.runs === undefined ? undefined : Number(o.runs)\n out = runOpenCodeEvaluation(ROOT, o.workspace, o.suite, {\n lanes: lanes as RobotEvalLane[], model: o.model, runs,\n caseIds: cases, previousSkill: o['previous-skill'],\n execute: o.execute, yes: o.yes, out: o.out,\n })\n if (o.execute && !out.passed) process.exitCode = 2\n } else if (engine === 'storage') {\n if (!o.workspace) fail('Remote State eval 需要 --workspace <agent-dir>')\n out = runStorageEvaluation(ROOT, o.workspace, o.suite, {\n model: o.model, execute: o.execute, live: o.live, yes: o.yes, out: o.out,\n })\n if (o.execute && !out.passed) process.exitCode = 2\n } else if (engine === 'personal-event') {\n if (!o.workspace) fail('Personal Event eval 需要 --workspace <agent-dir>')\n out = runPersonalEventEvaluation(ROOT, o.workspace, o.suite, {\n execute: o.execute, live: o.live, yes: o.yes, out: o.out,\n })\n if (o.execute && !out.passed) process.exitCode = 2\n } else if (engine === 'robot') {\n if (!o.pool) fail('Robot eval 需要 --pool <pool.local.json>')\n out = runRobotEvaluation(ROOT, o.pool, o.suite, {\n lanes: lanes as RobotEvalLane[], live: o.live, yes: o.yes,\n })\n if (o.live && !out.passed) process.exitCode = 2\n } else {\n fail(`lab eval engine 非法: ${engine};只支持 robot、opencode、storage 或 personal-event`)\n }\n } else {\n fail(`不认识的 lab 子命令: ${sub || '(缺失)'}`, 1,\n '可用命令: dta lab doctor | run | verify | teardown | eval;详见 dta help lab。')\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printLab(out)\n return\n }\n\n // ── init ──\n if (cmd === 'init') {\n const { values: o } = parseArgs({\n args: argv.slice(1),\n options: {\n 'context-id': { type: 'string' }, id: { type: 'string' },\n memory: { type: 'string' }, knowledge: { type: 'string' },\n },\n })\n // init 的语义是“初始化当前目录”;不能因为父目录恰好有配置就改到父工作区。\n init(process.env.DTA_ROOT ? ROOT : process.cwd(), {\n contextId: o['context-id'], id: o.id,\n memory: o.memory, knowledge: o.knowledge,\n })\n return\n }\n\n // ── prepare:一个事件物化成一个可交给沙箱的 Run ──\n if (cmd === 'prepare') {\n const cfg = cfgmod.must(ROOT)\n const { values: o, positionals } = parseArgs({\n args: argv.slice(1), allowPositionals: true,\n options: {\n 'event-file': { type: 'string' }, field: { type: 'string' },\n 'session-key': { type: 'string' }, 'context-id': { type: 'string' },\n 'perception-file': { type: 'string' },\n json: { type: 'boolean' },\n },\n })\n const file = o['event-file'] || positionals[0]\n if (!file) fail('prepare 需要 --event-file <file|->')\n const out = prepareSession(ROOT, cfg, readEventFile(file), {\n fieldId: o.field, sessionKey: o['session-key'], contextId: o['context-id'],\n perception: o['perception-file'] ? readEventFile(o['perception-file']) : undefined,\n })\n printDispatch(out, o.json)\n return\n }\n\n // ── run:不内置模型,只把事件流转换为 sandbox dispatch ──\n if (cmd === 'run') {\n const cfg = cfgmod.must(ROOT)\n const { values: o, positionals } = parseArgs({\n args: argv.slice(1), allowPositionals: true,\n options: {\n stdin: { type: 'boolean' }, 'event-file': { type: 'string' },\n field: { type: 'string' }, 'session-key': { type: 'string' },\n 'context-id': { type: 'string' },\n 'perception-file': { type: 'string' },\n heartbeat: { type: 'boolean' }, 'heartbeat-key': { type: 'string' },\n 'heartbeat-event-id': { type: 'string' },\n },\n })\n const options = {\n fieldId: o.field, sessionKey: o['session-key'], contextId: o['context-id'],\n perception: o['perception-file'] ? readEventFile(o['perception-file']) : undefined,\n }\n const modes = [Boolean(o.stdin), Boolean(o.heartbeat), Boolean(o['event-file'] || positionals[0])]\n if (modes.filter(Boolean).length !== 1) {\n fail('run 的 --stdin / --event-file <file> / --heartbeat 必须且只能选一个')\n }\n if (o.stdin) {\n const result = await consumeNdjson(ROOT, cfg, process.stdin, options)\n if (result.rejected) process.exitCode = 2\n return\n }\n let event\n if (o.heartbeat) event = heartbeatEvent(o['heartbeat-key'], o['heartbeat-event-id'])\n else {\n const file = o['event-file'] || positionals[0]\n if (!file) fail('run 需要 --stdin / --event-file <file> / --heartbeat 三选一')\n event = readEventFile(file)\n }\n const out = prepareSession(ROOT, cfg, event, options)\n process.stdout.write(JSON.stringify(out) + '\\n')\n return\n }\n\n // ── listen:本地 DWS Driver;云端 Driver 仍走 run --stdin/--event-file。──\n if (cmd === 'listen') {\n const cfg = cfgmod.must(ROOT)\n const modes: Record<string, { event: string; required?: 'user' | 'group' }> = {\n mention: { event: 'user_im_message_receive_at' },\n dm: { event: 'user_im_message_receive_o2o', required: 'user' },\n group: { event: 'user_im_message_receive_group', required: 'group' },\n }\n const mode = modes[sub]\n if (!mode) fail('listen 的类型只能是 mention / dm / group')\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n user: { type: 'string' }, group: { type: 'string' },\n once: { type: 'boolean' }, duration: { type: 'string' },\n 'dry-run': { type: 'boolean' }, 'context-id': { type: 'string' },\n field: { type: 'string' }, 'session-key': { type: 'string' },\n },\n })\n if (mode.required === 'user' && !o.user) fail('listen dm 需要 --user <userId>')\n if (mode.required === 'group' && !o.group) fail('listen group 需要 --group <openConversationId>')\n\n const dwsArgs = ['event', 'consume', mode.event, '-f', 'ndjson']\n if (o.user) dwsArgs.push('--user', o.user)\n if (o.group) dwsArgs.push('--group', o.group)\n if (o.once) dwsArgs.push('--max-events', '1', '--ephemeral')\n if (o.duration) dwsArgs.push('--duration', o.duration)\n\n if (o['dry-run']) {\n const child = spawnSync('dws', [...dwsArgs, '--dry-run'], { stdio: 'inherit' })\n if (child.error) throw child.error\n process.exitCode = child.status ?? 2\n return\n }\n\n const child = spawn('dws', dwsArgs, { stdio: ['ignore', 'pipe', 'inherit'] })\n const status = new Promise<number>((resolveStatus, rejectStatus) => {\n child.once('error', rejectStatus)\n child.once('close', (code, signal) => {\n if (signal) rejectStatus(new Error(`DWS listener 被 ${signal} 终止`))\n else resolveStatus(code ?? 2)\n })\n })\n const result = await consumeNdjson(ROOT, cfg, child.stdout, {\n fieldId: o.field,\n sessionKey: o['session-key'],\n contextId: o['context-id'],\n })\n const exitCode = await status\n if (exitCode !== 0) fail(`DWS listener 退出码 ${exitCode}`, exitCode)\n if (result.rejected) process.exitCode = 2\n return\n }\n\n // ── dispatch:durable outbox。ack 表示 controller 已幂等入队,不表示 Run 已完成。──\n if (cmd === 'dispatch') {\n const cfg = cfgmod.must(ROOT)\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n 'event-id': { type: 'string' }, 'run-id': { type: 'string' },\n consumer: { type: 'string' }, json: { type: 'boolean' },\n },\n })\n if (sub === 'pending') {\n for (const out of listPendingDispatches(ROOT, cfg)) {\n process.stdout.write(JSON.stringify(out) + '\\n')\n }\n return\n }\n if (sub === 'ack') {\n if (!o['event-id'] || !o['run-id']) fail('dispatch ack 需要 --event-id 和 --run-id')\n const out = ackDispatch(ROOT, cfg, o['event-id'], o['run-id'], o.consumer || '')\n process.stdout.write(JSON.stringify(out) + '\\n')\n return\n }\n fail('dispatch 的子命令: pending / ack')\n }\n\n // ── task:Session 语义 checkpoint;revision CAS,不承担 Wait/锁/Receipt。──\n if (cmd === 'task') {\n const cfg = cfgmod.must(ROOT)\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n input: { type: 'string' }, session: { type: 'string' },\n 'expect-revision': { type: 'string' }, json: { type: 'boolean' },\n },\n })\n let out\n if (sub === 'show') {\n out = showTaskCheckpoint(ROOT, cfg, {\n sessionPath: o.session || process.env.DTA_SESSION,\n runPath: process.env.DTA_RUN,\n })\n } else if (sub === 'checkpoint') {\n if (!o.input || o['expect-revision'] === undefined) {\n fail('task checkpoint 需要 --input 和 --expect-revision')\n }\n const expectedRevision = Number(o['expect-revision'])\n out = checkpointTask(ROOT, cfg, readEventFile(o.input), expectedRevision, {\n sessionPath: o.session || process.env.DTA_SESSION,\n runPath: process.env.DTA_RUN,\n })\n } else {\n fail('task 的子命令: show / checkpoint')\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else if (!out.found) console.log(muted('当前 Session 尚无 Task checkpoint。'))\n else {\n console.log(`${mark('pass', '✅')} Task ${noun(out.checkpoint.taskId)} · ${out.checkpoint.status}`)\n console.log(` revision=${out.checkpoint.revision} hash=${out.hash}`)\n console.log(` next=${out.checkpoint.nextAction || '-'}`)\n }\n return\n }\n\n // ── memory:Provider-neutral 语义路由;当前首个远端事实源是 AI 表格。──\n if (cmd === 'memory') {\n const action = argv[2]\n if (sub === 'operational' && action === 'upsert') {\n const { values: o } = parseArgs({\n args: argv.slice(3),\n options: {\n provider: { type: 'string' }, input: { type: 'string' },\n live: { type: 'boolean' }, yes: { type: 'boolean' }, json: { type: 'boolean' },\n },\n })\n const providerPath = o.provider || process.env.DTA_OPERATIONAL_MEMORY_PROVIDER\n if (!providerPath || !o.input) {\n fail('memory operational upsert 需要 --provider(或 DTA_OPERATIONAL_MEMORY_PROVIDER)和 --input')\n }\n const out = upsertOperationalMemory(\n readEventFile(providerPath),\n readEventFile(o.input),\n { execute: Boolean(o.live), yes: Boolean(o.yes) },\n )\n if (o.json || !o.live) console.log(JSON.stringify(out, null, 2))\n else {\n console.log(`${mark(out.verified ? 'pass' : 'warn', out.verified ? '✅' : '⚠️')} ${strong('Operational Memory')} · ${out.mode}`)\n console.log(` record=${out.recordId || '-'} verification=${out.verification}`)\n }\n if (out.mode === 'uncertain') process.exitCode = 2\n return\n }\n if (sub === 'candidate') {\n const { values: o } = parseArgs({\n args: argv.slice(3),\n options: {\n input: { type: 'string' }, id: { type: 'string' }, target: { type: 'string' },\n decision: { type: 'string' }, reviewer: { type: 'string' }, reason: { type: 'string' },\n 'state-dir': { type: 'string' }, 'expect-revision': { type: 'string' },\n 'expect-target-hash': { type: 'string' },\n live: { type: 'boolean' }, yes: { type: 'boolean' }, json: { type: 'boolean' },\n },\n })\n const options = { stateDir: o['state-dir'], runPath: process.env.DTA_RUN }\n let out\n if (action === 'propose') {\n if (!o.input) fail('memory candidate propose 需要 --input')\n out = proposeMemoryCandidate(ROOT, readEventFile(o.input), options)\n } else if (action === 'show') {\n if (!o.id) fail('memory candidate show 需要 --id')\n out = showMemoryCandidate(ROOT, o.id, options)\n } else if (action === 'review') {\n if (!o.id || !o.decision || !o.reviewer || !o.reason ||\n o['expect-revision'] === undefined) {\n fail('memory candidate review 需要 --id/--decision/--reviewer/--reason/--expect-revision')\n }\n out = reviewMemoryCandidate(\n ROOT, o.id, o.decision as 'approve' | 'reject', o.reviewer, o.reason,\n Number(o['expect-revision']), options,\n )\n } else if (action === 'publish') {\n if (!o.id || !o.target || o['expect-revision'] === undefined) {\n fail('memory candidate publish 需要 --id/--target/--expect-revision')\n }\n out = publishMemoryCandidate(\n ROOT, o.id, readEventFile(o.target), Number(o['expect-revision']),\n o['expect-target-hash'] || '', {\n ...options,\n execute: Boolean(o.yes || o.live),\n yes: Boolean(o.yes),\n live: Boolean(o.live),\n },\n )\n } else {\n fail('memory candidate 的子命令: propose / show / review / publish')\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else if (action === 'publish') {\n console.log(`${mark(out.verified ? 'pass' : out.mode === 'dry-run' ? 'muted' : 'warn', out.verified ? '✅' : out.mode === 'dry-run' ? '🔎' : '⚠️')} Candidate ${noun(o.id)}`)\n console.log(` mode=${out.mode} targetHash=${out.currentTargetHash}`)\n } else {\n console.log(`${mark('pass', '✅')} Candidate ${noun(out.candidate.id)} · ${out.candidate.status}`)\n console.log(` revision=${out.candidate.revision} path=${noun(out.path)}`)\n }\n if (action === 'publish' && out.mode === 'uncertain') process.exitCode = 2\n return\n }\n if (sub === 'noop') {\n const { values: o } = parseArgs({\n args: argv.slice(3),\n options: {\n input: { type: 'string' }, scope: { type: 'string' }, step: { type: 'string' },\n occurrence: { type: 'string' }, 'state-dir': { type: 'string' },\n session: { type: 'string' }, json: { type: 'boolean' },\n },\n })\n const noopCfg = cfgmod.load(ROOT)\n const options = {\n stateDir: o['state-dir'], runPath: process.env.DTA_RUN,\n sessionPath: o.session || process.env.DTA_SESSION,\n sessionRoot: noopCfg?.runtime?.sessionRoot,\n }\n if (action === 'record') {\n if (!o.input) fail('memory noop record 需要 --input(memory-noop-claim@1 JSON)')\n const out = recordMemoryNoop(ROOT, readEventFile(o.input), options)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else {\n console.log(`${mark('pass', '✅')} No-op Receipt ${noun(out.receipt.id)}${out.duplicate ? ' · duplicate(幂等命中既有痕迹)' : ''}`)\n console.log(` step=${out.receipt.step} occurrence=${out.receipt.occurrence} reason=${out.receipt.reason}`)\n }\n } else if (action === 'list') {\n const out = listMemoryNoops(\n ROOT, { scopeId: o.scope, step: o.step, occurrence: o.occurrence }, options)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else {\n console.log(`${mark('pass', '✅')} No-op Receipts · ${out.count} 条`)\n for (const receipt of out.receipts) {\n console.log(` ${receipt.id} ${receipt.step} ${receipt.occurrence} ${receipt.reason}`)\n }\n }\n } else if (action === 'trace') {\n if (!o.scope || !o.occurrence) fail('memory noop trace 需要 --scope 和 --occurrence')\n const out = traceMemoryNoop(\n ROOT, { scopeId: o.scope, occurrence: o.occurrence, step: o.step }, options)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else {\n const ran = out.verdict === 'ran-empty'\n console.log(`${mark(ran ? 'pass' : 'warn', ran ? '✅' : '⚠️')} ${strong(out.verdict)} · step=${out.step} occurrence=${noun(out.occurrence)}`)\n if (ran) console.log(` receipt=${out.receiptId}`)\n else console.log(' 没有任何痕迹——「判过无内容」会留 no-op Receipt,这里连它都没有')\n }\n // 判存步骤没跑就是没跑:给脚本一个可断言的非零退出码(区别于 uncertain 的 2)。\n if (out.verdict === 'no-trace') process.exitCode = 3\n } else {\n fail('memory noop 的子命令: record / list / trace')\n }\n return\n }\n fail('memory 当前支持: operational upsert / candidate propose|show|review|publish / noop record|list|trace')\n }\n\n // ── act:元语化动作;目标/身份/预算/状态转移都由 Run 固定 ──\n if (cmd === 'act') {\n const kind = sub\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n run: { type: 'string' }, text: { type: 'string' },\n 'text-file': { type: 'string' }, reason: { type: 'string' },\n 'dry-run': { type: 'boolean' }, json: { type: 'boolean' },\n },\n })\n if (o.text && o['text-file']) fail('--text 和 --text-file 只能选一个')\n const text = o['text-file']\n ? readFileSync(resolve(process.cwd(), o['text-file']), 'utf8')\n : o.text\n const runPath = findRun(process.cwd(), o.run)\n const out = o['dry-run']\n ? previewAction(runPath, kind, { text, reason: o.reason })\n : executeAction(runPath, kind, { text, reason: o.reason })\n if (o.json || o['dry-run']) console.log(JSON.stringify(out, null, 2))\n else {\n console.log(`${mark(out.verified ? 'pass' : 'warn', out.verified ? '✅' : '⚠️')} ${strong(out.kind)} · ${out.outcome} · ${out.toState}`)\n console.log(` action=${noun(out.actionId)} run=${noun(out.runId)}`)\n if (!out.verified) console.log(` ${muted(out.verification)}`)\n }\n if (out.outcome === 'uncertain') process.exitCode = 2\n return\n }\n\n fail(\n `不认识的命令: ${cmd}`,\n 1,\n `运行 dta --help 查看全部命令${suggest(cmd, [\n 'setup', 'upgrade', 'doctor', 'skill', 'agent-platform', 'bootstrap', 'init', 'prepare', 'run', 'dispatch', 'task', 'memory', 'act',\n 'lab', 'listen', 'deploy', 'promote', 'observe',\n 'agent',\n 'info', 'workspace',\n ])}`,\n )\n}\n\nfunction loadConventionalBindings(input: string | undefined) {\n const conventional = 'agent.bindings.json'\n const selected = input || (existsSync(resolve(ROOT, conventional)) ? conventional : '')\n return selected ? loadAgentBindings(ROOT, selected) : null\n}\n\nfunction errorHint(message: string): string {\n if (/unknown option|未知选项|unexpected argument/i.test(message)) {\n return '检查参数拼写;运行 dta --help 查看当前版本支持的参数。'\n }\n if (/找不到当前 Run|必须由能访问 DTA_ROOT 的宿主侧执行/.test(message)) {\n return 'act 只能用于可信事件 Run;先由宿主执行 dta prepare --event-file <file>,再进入返回的 cwd。'\n }\n if (/OpenCode/.test(message)) {\n return '检查 OpenCode 版本、模型认证与项目 Skill/config;运行 dta workspace doctor <name> 查看精确缺口。'\n }\n if (/Multica|multica/.test(message)) {\n return '先运行 dta workspace plan <name> 和 doctor;确认 profile/ID 来源后,再用 inspect --execute --yes 做只读回读。'\n }\n if (/\\bDWS\\b|\\bdws\\b/.test(message)) {\n return '运行 dta doctor 检查 DWS 路径、版本和认证;需要登录时执行 dws auth login。'\n }\n if (/dingtalk-agent\\.json|Project 未声明|current-workspace|Development Workspace/.test(message)) {\n return '在 Agent Project 内运行 dta info;用 dta workspace list/show/doctor 检查声明和漂移。'\n }\n if (/skills CLI|\\bnpx\\b/.test(message)) {\n return '确认 node、npm、npx 在 PATH 中;也可以复制错误中的 npx skills 命令单独执行。'\n }\n if (/升级目标|CLI 升级|npm view|npm install/.test(message)) {\n return '检查 npm registry 与网络后重试 dta upgrade;可先运行 dta upgrade --dry-run 查看目标和完整命令。'\n }\n if (/Workspace|Field|Storage|contextId/.test(message)) {\n return '先运行 dta bootstrap --json 查看当前上下文;确实需要持久 Workspace 时再运行 dta init。'\n }\n return '运行 dta doctor 检查环境;运行 dta --help 查看可用命令。'\n}\n\nfunction suggest(input: string, candidates: string[], prefix = 'dta'): string {\n if (!input) return ''\n const ranked = candidates\n .map((candidate) => ({ candidate, distance: editDistance(input, candidate) }))\n .sort((a, b) => a.distance - b.distance)\n const best = ranked[0]\n return best && best.distance <= Math.max(2, Math.floor(best.candidate.length / 3))\n ? `;你是否想输入 ${prefix} ${best.candidate}?`\n : ''\n}\n\nfunction editDistance(a: string, b: string): number {\n const row = Array.from({ length: b.length + 1 }, (_, index) => index)\n for (let i = 1; i <= a.length; i += 1) {\n let previous = row[0]\n row[0] = i\n for (let j = 1; j <= b.length; j += 1) {\n const before = row[j]\n row[j] = Math.min(row[j] + 1, row[j - 1] + 1, previous + (a[i - 1] === b[j - 1] ? 0 : 1))\n previous = before\n }\n }\n return row[b.length]\n}\n\n// ── 人类通道的装饰层 ────────────────────────────────────────────────\n//\n// 铁律:**染色只能包住整个连续短语,绝不能把短语切开。** 契约 eval 断言的是\n// stderr.includes('错误:')、stdout.includes('dta skill install') 这类整串,\n// 一旦写成 success('✅') + ' ' + danger('dta') + ' skill install' 就再也匹配不上。\n// 同理,本层只加装饰,一个字都不改、一行都不增删——语义仍然由既有的\n// ✅/⚠️/❌/PASS/FAIL 字形和 key=value 结构承载,剥掉颜色后信息完整。\n\ntype MarkLevel = 'pass' | 'warn' | 'fail' | 'muted'\n\n/** 按语义给状态标记上色;字形原样返回,不做任何替换。 */\nfunction mark(level: MarkLevel, text: string): string {\n const { theme } = stdoutUi()\n return level === 'pass' ? theme.success(text)\n : level === 'warn' ? theme.warn(text)\n : level === 'fail' ? theme.danger(text)\n : theme.dim(text)\n}\n\n/** 可复制的名词:路径、版本号、ID、命令。 */\nfunction noun(text: unknown): string {\n return stdoutUi().theme.noun(text)\n}\n\n/** 次要信息:补充说明、括注、下一步提示。 */\nfunction muted(text: unknown): string {\n return stdoutUi().theme.dim(text)\n}\n\n/** 标题行 / key=value 的结构性强调。 */\nfunction strong(text: unknown): string {\n return stdoutUi().theme.bold(text)\n}\n\n/** ready 布尔 → 语义级别,printX 里到处都是这个三态。 */\nfunction levelOf(state: 'pass' | 'warn' | 'fail' | boolean): MarkLevel {\n if (state === true) return 'pass'\n if (state === false) return 'fail'\n return state\n}\n\nfunction printDispatch(out, json = false) {\n if (json) return console.log(JSON.stringify(out, null, 2))\n const state = out.duplicate\n ? mark(out.launch ? 'warn' : 'muted', out.launch ? '🔁 REDELIVER' : '↩️ DUPLICATE')\n : mark('pass', '✅ READY')\n console.log(`${state} ${noun(out.runId)}`)\n console.log(` Field=${out.fieldId} Session=${out.sessionId} Event=${out.eventKind}`)\n console.log(` cwd=${out.cwd}`)\n console.log(` entrypoint=${out.entrypoint} queue=${out.queue.key} (max=${out.queue.maxConcurrency})`)\n console.log(` launch=${out.launch} delivery=${out.delivery?.status || 'unknown'}`)\n console.log(` allowed=${out.allowedActions.join(', ')} default=${out.defaultAction}`)\n console.log(' Local 模式可直接用 cwd/env;生产模式由宿主 Broker 保留 DWS 与 control 权限。')\n}\n\nfunction printLab(out: Record<string, any>): void {\n const passed = out.ready ?? out.passed ?? out.assertions?.passed\n console.log(`${mark(levelOf(passed !== false), passed === false ? '❌' : '✅')} ${out.$schema || 'dingtalk-agent/lab'}`)\n if (out.mode) console.log(` mode=${out.mode}`)\n if (out.marker) console.log(` marker=${out.marker}`)\n if (out.evidencePath) console.log(` evidence=${out.evidencePath}`)\n if (Array.isArray(out.checks)) {\n for (const check of out.checks) {\n console.log(` ${mark(levelOf(Boolean(check.passed)), check.passed ? 'PASS' : 'FAIL')} ${check.id}: ${check.detail}`)\n }\n }\n}\n\nfunction printAgentAudit(out: AgentAuditReport): void {\n console.log(`${strong('dingtalk-agent agent audit')} · ${mark(out.ready ? 'pass' : 'warn', out.ready ? 'READY' : 'PARTIAL')}`)\n console.log(` definition=${out.definition.hash} storage=${out.storageMode}`)\n console.log(` dingtalkSideEffect=${out.dingtalkSideEffect} sideEffect=${out.sideEffect}`)\n for (const check of out.checks) {\n const word = check.level === 'pass' ? 'PASS' : check.level === 'warn' ? 'WARN' : 'FAIL'\n console.log(` ${mark(levelOf(check.level), word)} ${check.id}: ${check.summary}`)\n const evidence = check.evidence as Record<string, any> | undefined\n // 失败可归因:把 failureSummary 的前几条与证据路径直接摆到失败行下面,\n // 不再让人去 JSON 深处找「为什么」。flaky 通过(第二次 attempt 才过)也如实标注。\n if (check.level !== 'pass' && check.blocking && Array.isArray(evidence?.failureSummary)) {\n for (const line of (evidence.failureSummary as string[]).slice(0, 3)) {\n console.log(` · ${line}`)\n }\n if (typeof evidence.report === 'string' && evidence.report) {\n console.log(` evidence: ${evidence.report}`)\n }\n }\n const verification = evidence?.verification\n if (verification && Array.isArray(verification.attempts) && verification.attempts.length > 1) {\n console.log(` attempts: ${verification.attempts.length}` +\n `(passedOnAttempt=${verification.passedOnAttempt || '-'})`)\n }\n }\n if (out.repairs.length) {\n console.log('\\n修复建议:')\n for (const repair of out.repairs) {\n console.log(` ${repair.id}: ${repair.why}`)\n for (const action of repair.actions) console.log(` - ${action}`)\n }\n }\n}\n\nfunction printAgentEnhance(out: AgentEnhancePlan | AgentEnhanceReceipt): void {\n if (out.$schema === 'dingtalk-agent/agent-enhancement-plan@1') {\n console.log(`${strong('dingtalk-agent agent enhance')} · ${mark(out.ready ? 'pass' : 'fail', out.ready ? 'READY PLAN' : 'BLOCKED')}`)\n console.log(` planId=${out.planId} project=${out.projectName}`)\n console.log(` sideEffect=${out.sideEffect} dingtalkSideEffect=${out.dingtalkSideEffect}`)\n for (const operation of out.operations) {\n console.log(` ${operation.kind.toUpperCase()} ${operation.path}: ${operation.reason}`)\n }\n if (out.semanticReview.required) {\n console.log(` REVIEW ${out.semanticReview.files.join(', ')}: ${out.semanticReview.why}`)\n }\n for (const blocker of out.blockers) console.log(` ${mark('fail', 'BLOCK')} ${blocker}`)\n if (out.ready) console.log(`\\nApply:\\n ${out.apply.command}`)\n return\n }\n console.log(`${strong('dingtalk-agent agent enhance')} · ${mark('pass', 'APPLIED')}`)\n console.log(` operation=${out.operationId} planId=${out.planId}`)\n console.log(` changes=${out.changes.length} idempotent=${out.idempotent}`)\n if (out.backupRoot) console.log(` backup=${out.backupRoot}`)\n console.log(` audit=${out.audit.status} missing=${out.audit.missing.join(', ') || '-'}`)\n}\n\nfunction printAgentPlatform(platform: (typeof MANAGED_AGENT_PLATFORMS)[number]): void {\n console.log(`${mark(platform.status === 'supported' ? 'pass' : 'muted', platform.status === 'supported' ? '✅' : '⏳')} ${strong(platform.name)} · ${platform.label} · ${platformStatusLabel(platform.status)}`)\n console.log(` ${muted(platform.description)}`)\n for (const skill of platform.skills) console.log(` 技能[${skill.role}] ${skill.name} —— ${skill.purpose}`)\n if (platform.commands.length) console.log(` 平台命令: ${platform.commands.map((item) => `dta ${item}`).join(' · ')}`)\n}\n\nfunction printAgentPlatformResolution(out: AgentPlatformResolution): void {\n if (!out.platform) {\n console.log(mark('warn', '⚠️ 当前工作区未声明 managed agent platform'))\n console.log(' 运行 `dta agent-platform use multica-dingtalk`,或设置 DTA_AGENT_PLATFORM 环境变量。')\n return\n }\n const known = out.definition\n console.log(`${mark(levelOf(Boolean(known)), known ? '✅' : '❌')} 当前 platform: ${strong(out.platform)}${known ? ` · ${known.label} · ${platformStatusLabel(known.status)}` : '(未知)'}`)\n console.log(` 来源: ${out.source}${out.file ? ` · ${out.file}` : ''}`)\n for (const skill of known?.skills || []) console.log(` 技能[${skill.role}] ${skill.name} —— ${skill.purpose}`)\n}\n\n// 披露:dta 层平台命令关联到平台内确切的 Skill(诊断信息走 stderr,不污染 --json stdout)。\nfunction disclosePlatformSkill(resolution: AgentPlatformResolution, role: string): void {\n const skillName = resolution.definition ? platformSkillForRole(resolution.definition.name, role) : null\n if (skillName) {\n console.error(stderrUi().theme.dim(\n `提示: 平台 ${resolution.definition!.name} 的该命令方法学由 Skill ${skillName} 承载`))\n }\n}\n\nfunction printEndpoint(endpoint: EndpointResolution | null): void {\n if (!endpoint) return\n if (endpoint.source === 'ambiguous') {\n console.log(` Endpoint: 多个已登录目标未选定(${endpoint.candidates.join(' / ')})——` +\n `用 ${endpoint.envVar} 或指定 profile 明确选择`)\n return\n }\n if (!endpoint.endpoint) {\n console.log(` Endpoint: 未解析——设 ${endpoint.envVar} 或登录 multica 后生效`)\n return\n }\n const glyph = mark(endpoint.confirmed ? 'pass' : 'warn', endpoint.confirmed ? '✅' : '⚠️')\n const note = endpoint.confirmed ? '' : '(建议/未确认,deploy 前需显式确认是预发还是生产)'\n console.log(` ${glyph} Endpoint: ${noun(endpoint.endpoint)} · 来源: ${endpoint.source}${muted(note)}`)\n console.log(` (切换:设 ${endpoint.envVar}=<url>、写 dingtalk-agent.json#multicaEndpoint、或登录对应 profile;无需改代码)`)\n}\n\nfunction printPlatformDoc(platformName?: string): void {\n if (!platformName) return\n const path = platformDocPath(PACKAGE_ROOT, platformName)\n if (path) console.log(` 平台说明: ${noun(path)}\\n${muted(' (切换到该平台后请阅读,了解各技能用途与交付链)')}`)\n}\n\nfunction printMulticaTargets(targets: MulticaTarget[]): void {\n if (!targets.length) return\n console.log(strong(' 本机 Multica 登录目标(发布前必须与用户确认 endpoint 与 workspace):'))\n for (const target of targets) {\n console.log(` - profile=${target.profile} · ${target.serverUrl}${target.workspaceId ? ` · workspace=${target.workspaceId}` : ''}`)\n }\n}\n\nfunction printAgentPlatformReadiness(checks: AgentPlatformReadinessCheck[]): void {\n for (const check of checks) {\n console.log(` ${mark(check.ok ? 'pass' : 'warn', check.ok ? '✅' : '⚠️')} ${check.summary}`)\n if (check.hint) console.log(` ${muted(check.hint)}`)\n }\n}\n\nfunction printSkillStatus(out: GlobalSkillStatus, action: string, dryRun: boolean): void {\n const prefix = dryRun ? mark('muted', 'DRY-RUN') : mark('pass', '✅')\n const verb = action === 'status' ? '全局 Skill 状态' : `skill ${action}`\n console.log(`${prefix} ${verb}: ${strong(out.name)}`)\n console.log(` manager=${out.manager} bundled=${out.bundled.skillVersion || '-'}`)\n console.log(` canonical=${out.canonical.path}`)\n console.log(\n ` installed=${out.canonical.exists} ` +\n `${out.canonical.installedVersion || '—'} → ${out.bundled.skillVersion} ` +\n `state=${out.canonical.state}`,\n )\n if (out.operation?.after) {\n console.log(\n ` ${out.operation.before.installedVersion || '—'}(${out.operation.before.state})` +\n ` → ${out.operation.after.installedVersion}(${out.operation.after.state})`,\n )\n }\n if (out.operation) console.log(` delegated: ${noun(out.operation.command)}`)\n for (const client of out.clients) {\n console.log(` ${client.label}=${mark(client.state === 'ok' ? 'pass' : 'warn', client.state)} (${client.discovery}: ${noun(client.path)})`)\n }\n if (action === 'install' && !dryRun) {\n console.log(muted(' 新 Agent 会话将自动发现;当前会话未发现时请重启 Claude Code/Codex。'))\n }\n}\n\n/**\n * doctor 的版面。改造前的问题不是\"不够花哨\",是三条实打实的:\n * 1. 同一事实说两遍——⚠️ 摘要和它的 detail 重复平台 Skill 漂移;三个客户端\n * 的 Skill 可见性在 check 区和「本机 Coding Agent」区各说一次。\n * 2. 一行塞太多——detail 用 ` | ` 把四条 canonical 路径和平台 Skill 状态拼在\n * 一起,200+ 字符,终端里必然折行。\n * 3. 分隔符混用 `·` `;` `|` 三种,没有一列是对齐的。\n * 所以这里按「一行一件事、明细缩进、列对齐」重排,并把客户端合并成一节。\n */\nfunction printDoctor(out: ReturnType<typeof doctor>): void {\n const { theme } = stdoutUi()\n // 字形沿用全 CLI 既定的 ✅/⚠️/❌(bin 里各出现 24/11/5 次)。上一版换成\n // ✔/!/✗ 让 doctor 成了唯一的异类,也违反 AGENTS.md「stdout 是稳定的人/\n // 机器接口」——颜色可以加,承载语义的字形不能动。三者都是 2 列宽,对齐不受影响。\n const glyph = (level: string) => level === 'pass' ? mark('pass', '✅')\n : level === 'warn' ? mark('warn', '⚠️') : mark('fail', '❌')\n\n const clientIds = new Set(['claude-code', 'codex', 'opencode'])\n const envChecks = out.checks.filter((check) => !clientIds.has(check.id))\n const clientChecks = out.checks.filter((check) => clientIds.has(check.id))\n\n console.log(`${strong('dingtalk-agent doctor')} · ${\n out.ready ? mark('pass', 'READY') : mark('fail', 'NOT READY')}`)\n console.log('')\n\n // 左列按显示宽度对齐——中文标签用 String.length 补齐必然错位\n const labelWidth = Math.max(...envChecks.map((check) => displayWidth(CHECK_LABELS[check.id])))\n for (const check of envChecks) {\n const label = padRight(CHECK_LABELS[check.id], labelWidth)\n console.log(` ${glyph(check.level)} ${strong(label)} ${check.value || check.summary}`)\n const items = check.items || []\n const itemWidth = items.length ? Math.max(...items.map((i) => displayWidth(i.label))) : 0\n const valueWidth = items.length ? Math.max(...items.map((i) => displayWidth(i.value || ''))) : 0\n for (const item of items) {\n console.log(` ${noun(padRight(item.label, itemWidth))} ${\n padRight(item.value || '', valueWidth)}${item.note ? ` ${muted(item.note)}` : ''}`)\n }\n if (check.level !== 'pass' && check.fix) {\n // 一条命令一行。挤在同一行里用「与」串起来的命令没法直接复制。\n const commands = plain(check.fix).replace(/^运行\\s*/, '').split(/\\s*与\\s*/)\n commands.forEach((command, index) => {\n console.log(` ${muted(index === 0 ? '修复' : ' ')} ${noun(command)}`)\n })\n }\n }\n\n if (clientChecks.length) {\n console.log('')\n console.log(` ${strong('Coding Agent')}`)\n const nameWidth = Math.max(...clientChecks.map((c) => displayWidth(CHECK_LABELS[c.id])))\n const hostOf = (id: string) => out.hosts.find((host) => host.name === id)\n // 版本列去掉冗余括注与前缀:claude 报 \"2.1.218 (Claude Code)\"、codex 报 \"codex-cli 0.144.6\"\n const versions = clientChecks.map((c) => (hostOf(c.id)?.cli.version || '')\n .replace(/\\s*\\(.*\\)\\s*$/, '').replace(/^\\S+-cli\\s+/, ''))\n const versionWidth = Math.max(...versions.map(displayWidth))\n clientChecks.forEach((check, index) => {\n const host = hostOf(check.id)\n const name = padRight(CHECK_LABELS[check.id], nameWidth)\n const version = padRight(versions[index], versionWidth)\n const where = host?.cli.found ? tilde(host.skillExposureRoot) : `未安装 ${host?.cli.command || ''}`\n console.log(` ${glyph(check.level)} ${strong(name)} ${muted(version)} ${\n check.value || check.summary} ${noun(where)}`)\n })\n }\n\n // 「下一步」此前逐字重复上面已经打过的修复命令。只留没展示过的。\n const shown = new Set(out.checks.filter((c) => c.level !== 'pass' && c.fix).map((c) => c.fix))\n const remaining = out.nextSteps.filter((step) => !shown.has(step))\n if (remaining.length) {\n console.log('')\n for (const step of remaining) console.log(` ${strong('下一步')} ${noun(plain(step))}`)\n }\n}\n\n/** 反引号在终端里不是强调,是噪声;着色已经承担了同一职责。 */\nfunction plain(text: string): string {\n return text.replace(/`/g, '')\n}\n\n/** 家目录缩成 ~/,省掉对读者零信息量的前缀。 */\nfunction tilde(path: string): string {\n const home = process.env.HOME || ''\n return home && path.startsWith(home) ? `~${path.slice(home.length)}` : path\n}\n\nfunction printProjectInfo(out: AgentProjectInfo): void {\n console.log(`${strong('dingtalk-agent Project')} · ${noun(out.project.name)}`)\n console.log(` root=${out.root}`)\n console.log(` source=${out.source} manifest=${out.manifest || '(synthetic legacy)'}`)\n console.log(` hash=${out.manifestHash} dta=${out.project.dtaVersion}`)\n console.log(` current=${out.currentWorkspace || '(not selected)'}`)\n for (const workspace of out.workspaces) {\n console.log(` ${workspace.current ? strong('*') : muted('-')} ${workspace.name} · ${workspace.provider.kind} · ${workspace.status}`)\n }\n}\n\nfunction printWorkspaceList(out: AgentProjectInfo): void {\n console.log(`${strong('dingtalk-agent workspaces')} · ${noun(out.project.name)}`)\n if (!out.workspaces.length) console.log(muted(' 尚未声明 Development Workspace。'))\n for (const workspace of out.workspaces) {\n console.log(\n ` ${workspace.current ? strong('*') : muted('-')} ${workspace.name} provider=${workspace.provider.kind} ` +\n `stage=${workspace.stage} status=${workspace.status}`,\n )\n }\n}\n\nfunction printDevelopmentWorkspace(out: DevelopmentWorkspaceView): void {\n console.log(`${strong('dingtalk-agent workspace')} · ${noun(out.name)}`)\n console.log(` provider=${out.provider.kind} stage=${out.stage} status=${out.status}`)\n console.log(` desired=${out.desiredHash} observed=${out.observedHash || '-'}`)\n console.log(` current=${out.current} legacy=${out.legacy}`)\n for (const [slot, route] of Object.entries(out.storage)) console.log(` ${slot}=${route}`)\n for (const source of out.configSources) console.log(` source=${source}`)\n}\n\nfunction printDevelopmentWorkspaceDoctor(out: DevelopmentWorkspaceDoctorReport): void {\n console.log(`${strong('dingtalk-agent workspace doctor')} · ${noun(out.workspace)} · ${mark(out.ready ? 'pass' : 'warn', out.ready ? 'READY' : 'PARTIAL')}`)\n console.log(` provider=${out.provider} status=${out.status}`)\n console.log(` sideEffect=${out.sideEffect} dingtalkSideEffect=${out.dingtalkSideEffect}`)\n for (const check of out.checks) {\n const word = check.level === 'pass' ? 'PASS' : check.level === 'warn' ? 'WARN' : 'FAIL'\n console.log(` ${mark(levelOf(check.level), word)} ${check.id}: ${check.summary}`)\n if (check.fix && check.level !== 'pass') console.log(` fix: ${noun(check.fix)}`)\n }\n}\n\nfunction printOpenCodeWorkspaceOperation(out: Record<string, any>): void {\n const applied = out.$schema === 'dingtalk-agent/opencode-workspace-apply@1'\n const glyph = applied\n ? mark(out.applied ? 'pass' : 'muted', out.applied ? '✅' : '↩️')\n : mark('muted', 'DRY-RUN')\n console.log(`${glyph} OpenCode Workspace ${noun(out.workspace)}`)\n console.log(` action=${out.action} model=${out.model}`)\n console.log(` desired=${out.desiredHash} observed=${out.observedHash || '-'}`)\n console.log(` managed=${out.managedPath}`)\n if (!applied && out.writes?.length) console.log(` writes=${out.writes.join(', ')}`)\n}\n\nfunction printMulticaWorkspaceOperation(out: Record<string, any>): void {\n const passed = out.passed ?? out.readyForApply ?? out.blocking?.length === 0\n const mode = out.remoteRead ? 'REMOTE-READ' : 'DRY-RUN'\n console.log(`${mark(passed ? 'pass' : 'warn', passed ? '✅' : '⚠️')} ${mode} Multica Workspace ${noun(out.workspace)}`)\n console.log(` schema=${out.$schema} profile=${out.profile || '-'}`)\n if (out.planId) console.log(` plan=${out.planId}`)\n if (out.inspectionId) console.log(` inspection=${out.inspectionId}`)\n if (out.desiredHash) console.log(` desired=${out.desiredHash}`)\n if (out.observedHash) console.log(` observed=${out.observedHash}`)\n if (out.diff?.length) console.log(` diff=${out.diff.join(', ')}`)\n if (out.blocking?.length) console.log(` blocking=${out.blocking.join(', ')}`)\n if (out.failures?.length) console.log(` failures=${out.failures.join(', ')}`)\n printFailureDetails(out.failureDetails, ' ')\n // 同名候选就在 JSON 里,人类输出却只给一个枚举串——把出路直接摆出来(B10/C3)。\n if (out.failures?.includes('agent.unbound-name-candidates') &&\n Array.isArray(out.resources?.agentCandidates) && out.resources.agentCandidates.length) {\n for (const candidate of out.resources.agentCandidates) {\n console.log(` candidate: ${candidate.id} ${candidate.name}${candidate.archived ? ' (archived)' : ''}`)\n }\n console.log(' fix: 核对后在 manifest 声明 provider.agentIdFrom 指向正确 ID' +\n '(或依赖首次 deploy 写入的 state.binding.agentId);不要按名字猜绑定')\n }\n if (out.evidencePath) console.log(` evidence=${out.evidencePath}`)\n console.log(` remoteWrite=${out.remoteWrite} dingtalkSideEffect=${out.dingtalkSideEffect}`)\n}\n\n/** 期望 vs 实际 + 下一步:把 fail-closed 从「正确但沉默」升级为「正确且能自救」。 */\nfunction printFailureDetails(details: unknown, indent: string): void {\n if (!Array.isArray(details)) return\n for (const detail of details) {\n if (!detail || typeof detail !== 'object') continue\n const item = detail as Record<string, unknown>\n const format = (value: unknown): string =>\n Array.isArray(value) ? value.join(', ') : typeof value === 'string' ? value : ''\n const expected = format(item.expected)\n const actual = format(item.actual)\n const parts = [\n expected ? `expected=${expected}` : '', actual ? `actual=${actual}` : '',\n ].filter(Boolean).join(' ')\n console.log(`${indent}- ${item.code}${parts ? `: ${parts}` : ''}`)\n if (typeof item.hint === 'string' && item.hint) console.log(`${indent} → ${item.hint}`)\n }\n}\n\nfunction printMulticaDeployment(out: Record<string, any>): void {\n console.log(`${strong('Multica deploy')}: ${noun(out.workspace || '<unknown>')}`)\n if (out.planId) console.log(` plan: ${out.planId}`)\n if (out.operationId) console.log(` operation: ${out.operationId}`)\n if (out.receiptId) console.log(` receipt: ${out.receiptId}`)\n if (out.action) console.log(` action: ${out.action}`)\n if (out.status) console.log(` status: ${out.status}`)\n if (typeof out.providerReady === 'boolean') console.log(` provider ready: ${out.providerReady}`)\n // 首次创建 Agent 后把「二次部署怎么绑定」讲在当下(B10):正常路径 ID 已存 state\n // 自动复用;换机器/state 丢失才需要显式声明。\n if (out.action === 'apply' && out.agent?.action === 'create' && out.agent?.id) {\n console.log(` agent created: ${out.agent.id}`)\n console.log(` ID 已写入 .dingtalk-agent/state/workspaces/${out.workspace}.json,二次部署与 schedule 自动复用`)\n console.log(' 换机器或 state 丢失时:在 manifest 声明 provider.agentIdFrom=env:<VAR> 并 export 该 ID')\n }\n if (out.rebind?.fromRuntimeId) {\n console.log(` rebind: ${out.rebind.fromRuntimeId} -> ${out.rebind.toRuntimeId}`)\n }\n const smoke = out.smoke || out.receipt?.smoke\n if (smoke && smoke.status && smoke.status !== 'not-run') {\n const classified = smoke.classification ? ` (${smoke.classification})` : ''\n console.log(` smoke: ${smoke.status}${classified} task=${smoke.taskId || '-'}${smoke.taskStatus ? ` (${smoke.taskStatus})` : ''}`)\n console.log(` loaded: ${smoke.loadedSkills?.length ?? 0}/${smoke.requiredSkills?.length ?? 0} response: ${smoke.responsePassed === true}`)\n if (Array.isArray(smoke.unrecognizedTools) && smoke.unrecognizedTools.length) {\n console.log(` unrecognized tools: ${smoke.unrecognizedTools.join(', ')}`)\n }\n }\n if (Array.isArray(out.blocking) && out.blocking.length) {\n console.log(` blocking: ${out.blocking.join(', ')}`)\n }\n if (Array.isArray(out.failures) && out.failures.length) {\n console.log(` failures: ${out.failures.join(', ')}`)\n }\n printFailureDetails(out.failureDetails || out.receipt?.failureDetails, ' ')\n if (Array.isArray(smoke?.failureDetails)) printFailureDetails(smoke.failureDetails, ' ')\n if (out.receiptFrozen && out.nextAction) {\n console.log(muted(` smoke 字段为 apply 时刻的冻结值;刷新: ${out.nextAction}`))\n }\n if (out.triggerWrite === false) console.log(' triggers: unchanged')\n}\n\nfunction printPromotion(out: Record<string, any>): void {\n console.log(`${strong('Promotion')}: ${noun(out.promotionId || out.candidateId || out.candidate?.candidateId || '<none>')}`)\n if (out.planId) console.log(` plan: ${out.planId}`)\n if (out.routeId) console.log(` route: ${out.routeId}`)\n if (out.status) console.log(` status: ${out.status}`)\n if (out.target?.observedHash) console.log(` observed: ${out.target.observedHash}`)\n if (out.candidatePath) console.log(` candidate: ${out.candidatePath}`)\n if (out.candidate?.evidencePath) console.log(` candidate: ${out.candidate.evidencePath}`)\n if (Array.isArray(out.blocking) && out.blocking.length) console.log(` blocking: ${out.blocking.join(', ')}`)\n if (out.triggerWrite === false) console.log(' triggers: unchanged')\n}\n\nfunction parseOptionalTimeout(value: string | undefined, label: string): number | undefined {\n if (value === undefined) return undefined\n const parsed = Number(value)\n if (!Number.isInteger(parsed) || parsed < 100 || parsed > 300_000) {\n fail(`${label} 必须是 100..300000 的整数毫秒`)\n }\n return parsed\n}\n\nfunction readProjectText(start: string, ref: string, label: string): string {\n const root = inspectAgentProject(start, PACKAGE_JSON.version).root\n const candidate = resolve(root, ref)\n const lexical = relative(root, candidate)\n if (lexical === '..' || lexical.startsWith(`..${process.platform === 'win32' ? '\\\\' : '/'}`)) {\n throw new Error(`${label} 必须位于 Agent Project 内: ${ref}`)\n }\n if (!existsSync(candidate)) throw new Error(`${label} 不存在: ${ref}`)\n const actual = realpathSync(candidate)\n const resolved = relative(root, actual)\n if (resolved === '..' || resolved.startsWith(`..${process.platform === 'win32' ? '\\\\' : '/'}`)) {\n throw new Error(`${label} 真实路径越出 Agent Project: ${ref}`)\n }\n return readFileSync(actual, 'utf8')\n}\n\nfunction rejectWorkspaceOptions(\n values: Record<string, unknown>, allowed: string[], command: string,\n): void {\n const extras = Object.entries(values)\n .filter(([key, value]) => !allowed.includes(key) && value !== undefined && value !== false)\n .map(([key]) => `--${key}`)\n if (extras.length) fail(`${command} 不接受参数: ${extras.join(', ')}`)\n}\n\nfunction printSetup(out: ReturnType<typeof setup>): void {\n console.log(`${out.dryRun ? mark('muted', 'DRY-RUN') : mark('pass', '✅')} ${strong('dingtalk-agent setup')}`)\n console.log(` CLI: ${noun(out.cli.executable)}`)\n console.log(` 短命令: ${noun(out.cli.alias)}`)\n console.log(` Skill: ${noun(out.skill.canonical.path)}`)\n if (!out.shell.pathReady) {\n console.log(` 当前 shell 尚未加载 PATH;本次终端执行: ${noun(out.shell.activateCommand)}`)\n if (out.shell.rcFile) console.log(muted(` 新终端会从 ${out.shell.rcFile} 自动加载`))\n }\n printDoctor(out.doctor)\n console.log(`\\n开始使用: ${noun(out.nextCommand)}`)\n}\n\n/**\n * 确认之前的抬头:告诉人「将要去哪」,好让 [y/N] 是个有信息的决定。\n *\n * 三态必须分开说。只判 outdated 会让 `--version <旧版> --force` 显示成\n * \"已是最新版本\",用户确认之后却真的降级——在唯一的不可逆动作前给了反的信息。\n */\nfunction printUpgradePreamble(\n checked: UpgradeCheckResult, options: { dryRun: boolean; force: boolean },\n): void {\n const { theme } = stderrUi()\n const arrow = (from: string, to: string, paint: (v: unknown) => string) =>\n `${theme.dim(from)} ${theme.bold('→')} ${paint(to)}`\n\n if (checked.relation === 'same' && !options.force && !options.dryRun) {\n console.error(` ${theme.success('✔')} 已是最新版本 ${theme.bold(checked.currentVersion)}`)\n console.error(theme.dim(' 仍会重新校验环境;只想查版本可用 dta upgrade --check'))\n return\n }\n const label = checked.relation === 'upgrade' ? '新版本可用'\n : checked.relation === 'downgrade' ? '降级' : '重装'\n const value = checked.relation === 'upgrade'\n ? arrow(checked.currentVersion, checked.targetVersion, theme.success)\n : checked.relation === 'downgrade'\n ? `${arrow(checked.currentVersion, checked.targetVersion, theme.warn)}${theme.warn('(降级)')}`\n : `${theme.bold(checked.targetVersion)}${theme.dim('(与当前版本相同,将强制重装)')}`\n for (const line of renderPairs([\n [label, value],\n ['通道', `${checked.channel} ${theme.dim(checked.pinnedSource)}`],\n ])) console.error(line)\n console.error('')\n}\n\nfunction printUpgradeCheck(checked: UpgradeCheckResult): void {\n const { theme } = stdoutUi()\n const glyph = checked.relation === 'upgrade' ? theme.warn('⬆️')\n : checked.relation === 'downgrade' ? theme.warn('⬇️') : theme.success('✅')\n const summary = checked.relation === 'upgrade'\n ? `${theme.dim(checked.currentVersion)} → ${theme.success(checked.targetVersion)}`\n : checked.relation === 'downgrade'\n ? `${theme.dim(checked.currentVersion)} → ${theme.warn(checked.targetVersion)}(目标更旧)`\n : `${theme.bold(checked.currentVersion)}(已是最新)`\n console.log(`${glyph} dta upgrade --check: ${summary}`)\n console.log(` target=${theme.noun(checked.pinnedSource)} channel=${checked.channel}`)\n if (checked.relation === 'upgrade') console.log(` ${theme.dim('运行 dta upgrade 执行升级')}`)\n if (checked.relation === 'downgrade') {\n console.log(` ${theme.dim(`降级需显式确认: dta upgrade --version ${checked.targetVersion} --force`)}`)\n }\n}\n\nfunction printUpgrade(out: ReturnType<typeof upgradeAgent>): void {\n const { theme } = stdoutUi()\n const mark = out.dryRun ? theme.dim('DRY-RUN') : out.ready ? theme.success('✅') : theme.warn('⚠️')\n const relation = out.changed\n ? `${theme.dim(out.currentVersion)} → ${theme.success(out.targetVersion)}`\n : `${out.targetVersion}(已是当前版本)`\n console.log(`${mark} dta upgrade: ${relation}`)\n console.log(` target=${theme.noun(out.target)}`)\n console.log(` CLI=${theme.noun(out.executable)}`)\n if (out.dryRun) {\n console.log(` 将执行: ${theme.noun(out.commands.install)}`)\n console.log(` 将复核: ${theme.noun(out.commands.verify)}`)\n console.log(` ${theme.dim('移除 --dry-run 以实际执行升级')}`)\n } else if (out.ready) {\n console.log(' setup / DWS / Skill / Claude Code / Codex / OpenCode 全部 ready')\n // 出口指引:验证命令 + 后悔药,都是可以直接复制的\n console.log(` ${theme.dim(`验证: dta --version${\n out.changed ? ` 回退: dta upgrade --version ${out.currentVersion} --force` : ''\n }`)}`)\n } else {\n console.log(` CLI 已更新;环境复核未完全 ready,请运行: ${theme.noun(out.commands.verify)}`)\n }\n}\n"]}
1
+ {"version":3,"file":"dingtalk-agent.js","sourceRoot":"","sources":["../../bin/dingtalk-agent.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n// dingtalk-agent —— 钉钉数字员工的标准范式(TypeScript source)。\n//\n// Skill = 劝 判断:只有 LLM 能做的(该不该答、话题归属、怎么写点评)。\n// CLI = 拦 标准动作:可程序化、可强制、可验证。撞上去没得商量。\n// DWS = 做 真正的钉钉产品能力;本文件只在需要冻结事务边界时包一层。\n//\n// 本体(AGENTS.md + Role Skills)负责\"它是谁、它知道什么\",git clone 就带走;\n// 它是被上面三者加载和校验的对象,不是第四个执行者。\n//\n// **分界线:凡是能程序化的,收进 CLI;凡是需要判断的,留在 Skill。**\n// 因为:文档会被漏读、误读、自我说服;**撞到闸门上就没得商量。**\n//\n// 完整架构见 docs/ARCHITECTURE.md。\n\nimport { parseArgs } from 'node:util'\nimport { join, relative, resolve } from 'node:path'\nimport { existsSync, readFileSync, realpathSync } from 'node:fs'\nimport { spawn, spawnSync } from 'node:child_process'\n\nimport * as cfgmod from '../src/config.js'\nimport { init } from '../src/init.js'\nimport { ackDispatch, listPendingDispatches, prepareSession } from '../src/sessions.js'\nimport { readEventFile, consumeNdjson, heartbeatEvent } from '../src/driver.js'\nimport { findRun, previewAction, executeAction } from '../src/actions.js'\nimport { resolvePackageRoot } from '../src/package-root.js'\nimport { bootstrap } from '../src/bootstrap.js'\nimport { loadAgentBindings } from '../src/agent-bindings.js'\nimport { auditAgent, type AgentAuditReport } from '../src/agent-audit.js'\nimport {\n applyAgentEnhancement, planAgentEnhancement,\n type AgentEnhancePlan, type AgentEnhanceReceipt,\n} from '../src/agent-enhance.js'\nimport { doctorLab, runLab, teardownLab, verifyLab } from '../src/lab.js'\nimport { runRobotEvaluation, type RobotEvalLane } from '../src/robot-evals.js'\nimport { runOpenCodeEvaluation } from '../src/opencode-evals.js'\nimport { runStorageEvaluation } from '../src/storage-evals.js'\nimport { runPersonalEventEvaluation } from '../src/personal-event-evals.js'\nimport { CHECK_LABELS, doctor } from '../src/doctor.js'\nimport {\n doctorDevelopmentWorkspace, inspectAgentProject, showDevelopmentWorkspace,\n type AgentProjectInfo, type DevelopmentWorkspaceDoctorReport, type DevelopmentWorkspaceView,\n} from '../src/development-workspace.js'\nimport { buildScheduleShow, buildSchedulePlan, scheduleBlockers } from '../src/schedule-plan.js'\nimport {\n applyOpenCodeWorkspace, evalOpenCodeWorkspace, planOpenCodeWorkspace,\n runOpenCodeWorkspace, useOpenCodeWorkspace,\n} from '../src/opencode-provider.js'\nimport {\n inspectMulticaWorkspace, listMulticaWorkspaceResources, planMulticaWorkspace,\n scaffoldMulticaWorkspace, statusMulticaWorkspace,\n} from '../src/multica-provider.js'\nimport {\n applyMulticaDeployment, listMulticaDeployments, planMulticaDeployment,\n runMulticaWorkspaceIssue, statusMulticaDeployment, statusMulticaWorkspaceRun,\n} from '../src/multica-deploy.js'\nimport {\n applyObservation, applyPromotion, listPromotions, planObservation, planPromotion,\n statusPromotion,\n} from '../src/promotion.js'\nimport { setup } from '../src/setup.js'\nimport { checkUpgrade, upgradeAgent, type UpgradeCheckResult } from '../src/upgrade.js'\n// out/err 在本文件里改名导入:printX 的形参普遍叫 out,直接同名会被遮蔽。\nimport {\n configureTui, confirm, displayWidth, padRight, renderPairs, StepReporter,\n err as stderrUi, out as stdoutUi, type ColorFlag,\n} from '../src/tui.js'\nimport { checkpointTask, showTaskCheckpoint } from '../src/memory/task-checkpoints.js'\nimport { upsertOperationalMemory } from '../src/memory/operational.js'\nimport { listMemoryNoops, recordMemoryNoop, traceMemoryNoop } from '../src/memory/noop-receipt.js'\nimport {\n proposeMemoryCandidate, publishMemoryCandidate, reviewMemoryCandidate,\n showMemoryCandidate,\n} from '../src/memory/candidates.js'\nimport {\n installBundledSkills, installGlobalSkill, skillStatus, skillSuiteStatus,\n uninstallBundledSkills, uninstallGlobalSkill, upgradeBundledSkills, upgradeGlobalSkill,\n type GlobalSkillStatus, type GlobalSkillSuiteStatus,\n} from '../src/skill-manager.js'\nimport {\n agentPlatformReadiness, MANAGED_AGENT_PLATFORMS, multicaTargets, platformDocPath,\n platformSkillForRole, requireSupportedAgentPlatform, resolveAgentPlatform, resolveEndpoint,\n statusLabel as platformStatusLabel, useAgentPlatform,\n type AgentPlatformReadinessCheck, type AgentPlatformResolution,\n type EndpointResolution, type MulticaTarget,\n} from '../src/agent-platform.js'\n\nconst PACKAGE_ROOT = resolvePackageRoot(import.meta.url)\nconst PACKAGE_JSON = JSON.parse(readFileSync(join(PACKAGE_ROOT, 'package.json'), 'utf8'))\n\n// ROOT = **你的工作区**(当前目录),不是包所在的目录。\n// 全局装 / npx 跑的时候,包住在 node_modules 里 —— 那不是 agent 的家。\nconst ROOT = process.env.DTA_ROOT\n ? resolve(process.env.DTA_ROOT)\n : (cfgmod.findRoot(process.cwd()) || process.cwd())\nconst PROJECT_START = process.env.DTA_ROOT ? resolve(process.env.DTA_ROOT) : process.cwd()\n\nconst HELP = `\ndta —— 给 Agent 安装钉钉员工的基础行为和工作环境\n\n装好后,Agent 可以:\n · 判断 @、单聊和群消息是否应该回应\n · 通过 DWS 回复消息、协作并使用钉钉标准产品\n · 从本地目录或钉钉文档加载身份、记忆和知识\n\n开始使用:\n dta setup 首次配置 CLI、DWS 和内置 Skill(基础行为 + Agent 装配 + 交付后评测)\n dta bootstrap --json 为当前 Agent 会话加载工作区\n dta agent enhance / audit 安全增强已有仓库,再审计定义、存储与 Skill 真加载\n dta info / workspace doctor / schedule show <name> 只读诊断 Project、Workspace 与声明的常驻节律\n dta agent-platform use <platform> → dta deploy / dta promote 声明平台归属并装平台技能包,再受控部署与晋级\n\n维护环境:\n dta doctor 检查哪里没装好,并给出修复提示\n dta upgrade 自升级,再重新检查完整环境\n dta skill status 查看内置 Skill 的版本状态与三个客户端能否发现(可加 name 只查一个)\n\n接入钉钉事件和可靠外发:dta help runtime\n`\n\nconst RUNTIME_HELP = `\ndingtalk-agent 可信事件运行时(可选宿主能力)\n\n init [--context-id X] [--memory <uri>] [--knowledge <uri>]\n prepare --event-file <file|-> [--perception-file <file>]\n run --stdin | --event-file <file> | --heartbeat\n dispatch pending\n dispatch ack --event-id X --run-id X\n task show --json\n task checkpoint --input checkpoint.json --expect-revision N\n memory operational upsert --provider provider.json --input record.json [--live --yes]\n memory candidate propose|show|review|publish\n memory noop record|list|trace\n act ack|reply|ask|silence\n\n这些命令负责目标冻结、Session/Run、Wait、幂等和回执;普通 Agent Session 不必使用。\n`\n\nconst ADAPTER_HELP = `\ndingtalk-agent 可选 Driver / 开发联调适配器\n\n listen mention --once\n listen dm --user <userId> --once\n listen group --group <openConversationId> --once\n\nlisten 不是 Agent 主入口。Claude Code、DWS 云端或其他宿主都可以直接提供事件。\n`\n\nconst LAB_HELP = `\ndingtalk-agent 真实世界联调控制面\n\n lab doctor --manifest lab/manifest.local.json\n lab run --manifest <file> --event-file <file> --case-id <id> [--reply <text>]\n lab verify --evidence <run-dir>\n lab teardown --manifest <file> --evidence <run-dir>\n lab eval --pool <pool.local.json> --suite <suite.json> [--lanes stateless,stateful]\n lab eval --engine opencode --workspace <agent-dir> --suite <suite.json> [--cases id1,id2] [--runs 3] [--previous-skill <dir>]\n lab eval --engine storage --workspace <agent-dir> --suite <remote-state.json> [--execute --live --yes]\n lab eval --engine personal-event --workspace <agent-dir> --suite <suite.json> [--execute --live --yes]\n\nmock-integration 还要求 DTA_LAB_FAKE_DWS=1;robot/personal Live 必须显式 --live --yes。\nlab eval 默认只输出计划;Robot Live 用 --live --yes,OpenCode A/B 用 --execute --yes。\nRemote State 用 --execute --yes 读取 DWS/调用模型,再加 --live 才执行唯一写探针。\nOpenCode 对照强制验证每个 Basic Skill 的 load probe;提供 --previous-skill 时运行 current/previous,不连接 DWS。\nLab 只管理 allowlist、预算、marker、证据和清理;事件触发器仍在外部。\n`\n\nconst AGENT_HELP = `\ndingtalk-agent 开发者装配验收\n\n agent audit [--bindings agent.bindings.json] [--require-skill <name>]\n agent audit [--bindings <file>] [--require-skill <name>] --verify-load --yes\n agent audit [--bindings <file>] --load-report <agent-audit-load-evidence.json> [--remote-report <report.json>]\n agent enhance --role-skill <name>[,<name>] [--project-name <name>] [--dry-run] [--json]\n agent enhance --role-skill <name>[,<name>] --plan-id <current-plan-id> --yes [--json]\n\n默认只做本地静态审计,不访问 DWS、不调用模型;状态为 partial 时返回退出码 2。\n--verify-load --yes 会运行隔离的 OpenCode load probe,但仍不访问钉钉。\n远端语义状态由 storage eval 独立验收,再通过 --remote-report 绑定证据。\n`\n\nconst WORKSPACE_HELP = `\ndingtalk-agent Project / Development Workspace\n\n info [--json]\n workspace list [--json]\n workspace show <name> [--json]\n workspace doctor <name> [--json]\n workspace plan <multica-name> [--json]\n workspace inspect <multica-name> [--execute --yes] [--json]\n workspace remote-list <multica-name> [--execute --yes] [--json]\n workspace status <multica-name> [--json]\n workspace create <name> [--dry-run | --yes] [--json]\n workspace use <name> [--json]\n workspace run <name> --prompt-file <file> [--execute --yes] [--json]\n workspace eval <name> --suite <file> [--execute --yes] [--runs N] [--json]\n\n命令会从当前目录向上发现 dingtalk-agent.json;旧 workspace@1 只读显示为 legacy-prepared。\nMultica plan/status 默认不调用 Provider;inspect/remote-list 只有 --execute --yes 才读取当前 profile 和远端 scope。\nMultica readback 只保存脱敏事实,不执行 create/update/apply/deploy;OpenCode create 只物化本地环境。\n这些命令都不访问 DWS;Multica 远端写入只通过 dta deploy 的冻结 plan 闸门。\n`\n\nconst DEPLOY_HELP = `\ndingtalk-agent Multica 受控部署\n\n deploy --workspace <name> --dry-run [--json]\n deploy --workspace <name> --plan-id <id> --yes [--wait | --no-wait] [--json]\n deploy --workspace <name> --status [--operation-id <id>] [--json]\n deploy --workspace <name> --status --operation-id <id> --execute --yes [--json]\n deploy --workspace <name> --list [--json]\n deploy --workspace <name> --retire --dry-run [--json]\n deploy --workspace <name> --retire --plan-id <id> --yes [--json]\n\ndry-run 不启动 Multica。apply/retire 必须携带当前 planId;scope 或源码漂移会在写入前拒绝。\napply 默认在同一条命令内等 load smoke 到 ~30 秒;云端 runtime 冷启常超 30 秒会返回 verifying,\n再用 --status --operation-id 独立 reconcile。加 --wait 把等待预算放宽到 4 分钟,一条命令直接到 ready;\n--no-wait 立即返回 verifying(异步/CI)。--smoke-timeout <ms> 精确覆盖等待预算(上限 5 分钟)。\nstatus 默认只验本地脱敏 operation/Receipt;--execute --yes 才做远端独立回读。\ndeploy 只管理 Agent、完整 Skill tree、assignment 和 load smoke,不创建机器人、Webhook、Autopilot 或定时 Trigger。\n`\n\nconst PROMOTION_HELP = `\ndingtalk-agent 已验版本晋级与反馈候选\n\n promote --policy <file> --route <id> --dry-run [--json]\n promote --policy <file> --route <id> --plan-id <id> --yes [--no-wait] [--json]\n promote --status [--promotion-id <id>] [--json]\n promote --list [--json]\n observe --promotion-id <id> --input <observation.json> --dry-run [--json]\n observe --promotion-id <id> --input <observation.json> --yes [--json]\n\nPromotion 只接受指定 suite 的 load/hard/surface gate 与精确 W2 evidence hash,并委托 W4 deploy。\nObserve 只写 gitignored、proposed、不可直接发布的 Eval candidate;不修改 AGENTS.md、Prompt、Skill 或 Trigger。\n`\n\nconst UPGRADE_HELP = `\ndta upgrade —— 自升级 CLI,再重新检查完整环境\n\n用法:\n dta upgrade 升级到当前通道的最新版本\n dta upgrade --check 只查有没有新版本,不安装\n dta upgrade --dry-run 只预览将执行的命令,不安装\n dta upgrade --channel beta 指定通道(beta | latest)\n dta upgrade --version <x.y.z> 升级到指定版本\n dta upgrade --version <x.y.z> --force 允许降级(两者必须同时给)\n dta upgrade --yes 跳过确认提示(AI Agent 模式)\n dta upgrade --json 机器通道;输出 upgrade@1,不打任何进度\n\n参数:\n --check 只解析升级目标并对比当前版本\n --channel <name> beta 或 latest;不给时按当前版本是否带 - 推断\n --version <ver> 精确版本;与 --channel 互斥\n --prefix <dir> 安装前缀,默认 ~/.local\n --dry-run 不安装,只回报将执行的 install/verify 命令\n --force 强制重装当前版本;配合 --version 才允许降级\n --yes 跳过确认;非交互环境本来就不提示\n --json 输出 JSON,不混入任何日志\n --no-color 关闭颜色(也支持 NO_COLOR 环境变量)\n\n升级过程分 7 步:冻结 Skill 版本 → 解析目标 → 检查版本关系 → 安装\n→ 定位新 CLI → 校验版本 → 复核环境。前 3 步失败不会改动机器;从第 4 步\n(安装)起失败可能留下已更新但未复核的 CLI,此时按提示重跑 setup 或\n用 --version <旧版本> --force 回退。\n\n非交互环境(管道 / CI / Agent 调用)不提示确认,直接执行。\n颜色只在终端里出现;管道里想要颜色需显式 --color。\n`\n\n/**\n * 帮助文本的打印时装饰。**不把 ANSI 写进常量**——常量一旦带色就没法降级,\n * 而这里 color=false 时原样返回,NO_COLOR / 管道下与改造前逐字节相同。\n *\n * 只染整段连续短语:命令名从行首吃到两个以上空格为止,所以\n * `dta setup`、`dta skill status` 这类断言目标始终完整。行数不变。\n */\nfunction renderHelp(text: string): string {\n const { ctx, theme } = stdoutUi()\n if (!ctx.color) return text\n return text.split('\\n').map((line, index) => {\n if (index === 1 && line.trim()) return theme.bold(line)\n if (/^\\S.*[::]$/.test(line)) return theme.bold(line)\n if (/^\\s+·\\s/.test(line)) return theme.dim(line)\n const command = line.match(/^(\\s+)((?:dta|dingtalk-agent)\\s\\S.*?)(\\s{2,})(.*)$/)\n if (command) return `${command[1]}${theme.noun(command[2])}${command[3]}${theme.dim(command[4])}`\n return line\n }).join('\\n')\n}\n\nfunction fail(msg: string, code = 1, hint = ''): never {\n // 整行染色,绝不做 danger('错误') + ': ' + msg 这种切分——\n // 契约 eval 断言的是 stderr.includes('错误:'),切开就再也匹配不上。\n const { theme } = stderrUi()\n console.error(theme.danger(`错误: ${msg}`))\n if (hint) console.error(theme.dim(`提示: ${hint}`))\n process.exit(code)\n}\n\n// --color / --no-color 在 dispatch 前预剥:parseArgs 是 strict 模式,\n// 想让它成为全局参数就得改 23 个 options 块,预剥只需要这一处。\n//\n// 三条边界:`--` 之后的 token 是 positional,一律不碰;非法取值报错而不是\n// 静默吞掉;同一参数出现多次以最后一次为准(与 parseArgs 的口径一致)。\nconst rawArgv = process.argv.slice(2)\nconst COLOR_VALUES = new Set<ColorFlag>(['auto', 'always', 'never'])\nconst terminator = rawArgv.indexOf('--')\nconst scannable = terminator === -1 ? rawArgv : rawArgv.slice(0, terminator)\n\nlet colorFlag: ColorFlag = 'auto'\nfor (const item of scannable) {\n if (item === '--no-color') colorFlag = 'never'\n else if (item === '--color') colorFlag = 'always'\n else if (item.startsWith('--color=')) {\n const value = item.slice('--color='.length) as ColorFlag\n if (!COLOR_VALUES.has(value)) {\n console.error(`错误: --color 只接受 auto | always | never,收到 ${JSON.stringify(value)}`)\n process.exit(1)\n }\n colorFlag = value\n }\n}\nconfigureTui(colorFlag)\n\nconst isColorToken = (item: string) =>\n item === '--color' || item === '--no-color' || item.startsWith('--color=')\nconst argv = terminator === -1\n ? rawArgv.filter((item) => !isColorToken(item))\n : [...rawArgv.slice(0, terminator).filter((item) => !isColorToken(item)), ...rawArgv.slice(terminator)]\nconst cmd = argv[0]\nconst sub = argv[1]\n\ntry { await main() } catch (e) {\n const error = e as Error & { exitCode?: number }\n const message = String(error?.message || error)\n fail(message, Number(error?.exitCode) || 2, errorHint(message))\n}\n\nasync function main() {\n if (cmd === 'help' && sub === 'runtime') { console.log(renderHelp(RUNTIME_HELP)); return }\n if (cmd === 'help' && sub === 'adapters') { console.log(renderHelp(ADAPTER_HELP)); return }\n if (cmd === 'help' && sub === 'lab') { console.log(renderHelp(LAB_HELP)); return }\n if (cmd === 'help' && sub === 'agent') { console.log(renderHelp(AGENT_HELP)); return }\n if (cmd === 'help' && sub === 'workspace') { console.log(renderHelp(WORKSPACE_HELP)); return }\n if (cmd === 'help' && sub === 'deploy') { console.log(renderHelp(DEPLOY_HELP)); return }\n if (cmd === 'help' && ['promote', 'observe'].includes(sub || '')) { console.log(renderHelp(PROMOTION_HELP)); return }\n if (cmd === 'help' && sub) {\n fail(`不认识的帮助主题: ${sub}`, 1, '运行 dta --help 回到产品入口;事件宿主可用 dta help runtime。')\n }\n if (!cmd || cmd === '--help' || cmd === '-h' || cmd === 'help') { console.log(renderHelp(HELP)); return }\n if (cmd === '--version' || cmd === '-V' || cmd === 'version') {\n console.log(PACKAGE_JSON.version)\n return\n }\n\n if (cmd === 'deploy') {\n const platformForDeploy = requireSupportedAgentPlatform('deploy', PROJECT_START)\n disclosePlatformSkill(platformForDeploy, 'deploy')\n const { values: o, positionals } = parseArgs({\n args: argv.slice(1), allowPositionals: true,\n options: {\n workspace: { type: 'string' }, json: { type: 'boolean' },\n 'dry-run': { type: 'boolean' }, yes: { type: 'boolean' },\n 'plan-id': { type: 'string' }, 'no-wait': { type: 'boolean' },\n wait: { type: 'boolean' },\n status: { type: 'boolean' }, list: { type: 'boolean' },\n execute: { type: 'boolean' }, 'operation-id': { type: 'string' },\n timeout: { type: 'string' }, 'smoke-timeout': { type: 'string' },\n retire: { type: 'boolean' }, 'rebind-runtime': { type: 'boolean' },\n },\n })\n if (positionals.length) fail('deploy 不接受位置参数;使用 --workspace <name>')\n if (!o.workspace) fail('deploy 必须显式传 --workspace <name>')\n const modes = [\n Boolean(o.status), Boolean(o.list), Boolean(o['dry-run']), Boolean(o.yes && !o.status),\n ]\n .filter(Boolean).length\n if (modes !== 1) {\n fail('deploy 必须且只能选择 --dry-run、--yes、--status 或 --list 之一')\n }\n const timeoutMs = parseOptionalTimeout(o.timeout, '--timeout')\n const smokeTimeoutMs = parseOptionalTimeout(o['smoke-timeout'], '--smoke-timeout')\n let out: Record<string, any>\n if (o.wait && o['no-wait']) fail('deploy --wait 与 --no-wait 互斥')\n if (o['rebind-runtime'] && o.retire) fail('deploy --rebind-runtime 与 --retire 互斥')\n if (o.list) {\n if (o.execute || o['operation-id'] || o.retire || o['plan-id'] || o['no-wait'] || o.wait ||\n o.timeout || o['smoke-timeout'] || o['rebind-runtime']) {\n fail('deploy --list 只接受 --workspace 和 --json')\n }\n out = listMulticaDeployments(PROJECT_START, o.workspace, PACKAGE_JSON.version)\n } else if (o.status) {\n if (o.retire || o['plan-id'] || o['no-wait'] || o.wait || o['dry-run'] || o['smoke-timeout'] ||\n o['rebind-runtime']) {\n fail('deploy --status 不接受 retire/plan-id/no-wait/wait/dry-run/smoke-timeout/rebind-runtime')\n }\n if (Boolean(o.execute) !== Boolean(o.yes)) {\n fail('deploy --status 远端 reconcile 必须同时传 --execute --yes')\n }\n out = statusMulticaDeployment(PROJECT_START, o.workspace, {\n execute: o.execute, yes: o.yes, operationId: o['operation-id'], timeoutMs,\n cliVersion: PACKAGE_JSON.version,\n })\n } else if (o['dry-run']) {\n if (o.execute || o['operation-id'] || o['plan-id'] || o['no-wait'] || o.wait ||\n o.timeout || o['smoke-timeout']) {\n fail('deploy --dry-run 不接受 execute/operation-id/plan-id/no-wait/wait/timeout/smoke-timeout')\n }\n out = planMulticaDeployment(PROJECT_START, o.workspace, {\n action: o.retire ? 'retire' : 'apply', cliVersion: PACKAGE_JSON.version,\n rebindRuntime: o['rebind-runtime'],\n })\n } else {\n if (o.execute || o['operation-id'] || o.status || o.list || o['dry-run']) {\n fail('deploy apply 不接受 execute/operation-id/status/list/dry-run')\n }\n if (o.retire && (o['no-wait'] || o.wait || o['smoke-timeout'])) {\n fail('deploy --retire 不接受 no-wait/wait/smoke-timeout')\n }\n // --wait widens the in-band smoke-wait budget so one command reaches ready across a\n // cold-start runtime; an explicit --smoke-timeout still wins. Default stays ~30s.\n const effectiveSmokeTimeoutMs = smokeTimeoutMs !== undefined\n ? smokeTimeoutMs : o.wait ? 240_000 : undefined\n out = applyMulticaDeployment(PROJECT_START, o.workspace, {\n yes: o.yes, planId: o['plan-id'], noWait: o['no-wait'],\n timeoutMs, smokeTimeoutMs: effectiveSmokeTimeoutMs, cliVersion: PACKAGE_JSON.version,\n rebindRuntime: o['rebind-runtime'],\n }, o.retire ? 'retire' : 'apply')\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printMulticaDeployment(out)\n if ('passed' in out && out.passed === false && out.status !== 'verifying') process.exitCode = 2\n return\n }\n\n if (cmd === 'promote') {\n const platformForPromote = requireSupportedAgentPlatform('promote', PROJECT_START)\n disclosePlatformSkill(platformForPromote, 'deploy')\n const { values: o, positionals } = parseArgs({\n args: argv.slice(1), allowPositionals: true,\n options: {\n policy: { type: 'string' }, route: { type: 'string' },\n 'dry-run': { type: 'boolean' }, yes: { type: 'boolean' }, json: { type: 'boolean' },\n 'plan-id': { type: 'string' }, status: { type: 'boolean' }, list: { type: 'boolean' },\n 'promotion-id': { type: 'string' }, 'no-wait': { type: 'boolean' },\n timeout: { type: 'string' }, 'smoke-timeout': { type: 'string' },\n },\n })\n if (positionals.length) fail('promote 不接受位置参数')\n const modes = [Boolean(o['dry-run']), Boolean(o.yes), Boolean(o.status), Boolean(o.list)]\n .filter(Boolean).length\n if (modes !== 1) fail('promote 必须且只能选择 --dry-run、--yes、--status 或 --list 之一')\n let out: Record<string, any>\n if (o.list) {\n if (o.policy || o.route || o['plan-id'] || o['promotion-id'] || o['no-wait'] ||\n o.timeout || o['smoke-timeout']) fail('promote --list 只接受 --json')\n out = listPromotions(PROJECT_START)\n } else if (o.status) {\n if (o.policy || o.route || o['plan-id'] || o['no-wait'] || o.timeout || o['smoke-timeout']) {\n fail('promote --status 只接受 --promotion-id 和 --json')\n }\n out = statusPromotion(PROJECT_START, o['promotion-id'] || '')\n } else {\n if (!o.policy || !o.route) fail('promote dry-run/apply 必须传 --policy <file> --route <id>')\n if (o['promotion-id']) fail('promote dry-run/apply 不接受 --promotion-id')\n if (o['dry-run']) {\n if (o['plan-id'] || o['no-wait'] || o.timeout || o['smoke-timeout']) {\n fail('promote --dry-run 不接受 plan-id/no-wait/timeout/smoke-timeout')\n }\n out = planPromotion(PROJECT_START, o.policy, o.route, { cliVersion: PACKAGE_JSON.version })\n } else {\n out = applyPromotion(PROJECT_START, o.policy, o.route, {\n yes: true, planId: o['plan-id'], noWait: o['no-wait'],\n timeoutMs: parseOptionalTimeout(o.timeout, '--timeout'),\n smokeTimeoutMs: parseOptionalTimeout(o['smoke-timeout'], '--smoke-timeout'),\n cliVersion: PACKAGE_JSON.version,\n })\n }\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printPromotion(out)\n if ('passed' in out && out.passed === false && out.status !== 'verifying' && out.status !== 'missing') {\n process.exitCode = 2\n }\n return\n }\n\n if (cmd === 'observe') {\n const platformForObserve = requireSupportedAgentPlatform('observe', PROJECT_START)\n disclosePlatformSkill(platformForObserve, 'deploy')\n const { values: o, positionals } = parseArgs({\n args: argv.slice(1), allowPositionals: true,\n options: {\n 'promotion-id': { type: 'string' }, input: { type: 'string' },\n 'dry-run': { type: 'boolean' }, yes: { type: 'boolean' }, json: { type: 'boolean' },\n },\n })\n if (positionals.length) fail('observe 不接受位置参数')\n if (!o['promotion-id'] || !o.input) {\n fail('observe 必须传 --promotion-id <id> --input <observation.json>')\n }\n if (Boolean(o['dry-run']) === Boolean(o.yes)) {\n fail('observe 必须且只能选择 --dry-run 或 --yes')\n }\n const out = o['dry-run']\n ? planObservation(PROJECT_START, o['promotion-id'], o.input)\n : applyObservation(PROJECT_START, o['promotion-id'], o.input, { yes: true })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printPromotion(out)\n return\n }\n\n // ── Project / Development Workspace:W1 只读发现、状态与 Provider 诊断。──\n if (cmd === 'info') {\n const { values: o } = parseArgs({\n args: argv.slice(1), options: { json: { type: 'boolean' } },\n })\n const out = inspectAgentProject(PROJECT_START, PACKAGE_JSON.version)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printProjectInfo(out)\n return\n }\n\n if (cmd === 'schedule') {\n const sub = argv[1]\n const { values: o, positionals } = parseArgs({\n args: argv.slice(2), allowPositionals: true,\n options: { json: { type: 'boolean' }, workspace: { type: 'string' } },\n })\n if (sub === 'show') {\n const out = buildScheduleShow(PROJECT_START, PACKAGE_JSON.version)\n // 有阻断问题 = 非 0 退出,json 和人类两条路都设,否则自动化用 --json 拿到 exit 0 照样部署 → fail-open。\n // 判据来自 scheduleBlockers(含 unverified),不在这手写,避免和 plan 那边分叉。\n if (scheduleBlockers(out).length) process.exitCode = 2\n if (o.json) { console.log(JSON.stringify(out, null, 2)); return }\n if (out.count === 0) { console.log(muted('本 Project 未声明任何常驻节律(schedules)。')); return }\n console.log(`${strong('声明的常驻节律(本地 manifest 声明,非线上实态)')} · ${out.count} 条`)\n for (const s of out.schedules) {\n const metered = s.mode === 'work-item' ? '记账' : '不记账'\n console.log(`\\n ${noun(s.name)} ${s.cron} ${s.timezone} ${muted(`[${s.mode}·${metered}]`)}`)\n if (s.wake) console.log(muted(` 唤醒 ${s.wake}`))\n if (s.completion) console.log(muted(` ②判据 ${s.completion}`))\n }\n if (out.collidingPairs.length) {\n console.log(`\\n${mark('fail', `✗ 同刻并发: ${out.collidingPairs.join('、')} —— 外发拍同一时刻 fire 会重复送第三方,请错开`)}`)\n }\n if (out.missingCompletion.length) {\n console.log(`${mark('fail', `✗ 缺完成判据: ${out.missingCompletion.join('、')} —— 没有数据派生的 completion,只能靠\"跑没跑\"判完成,漏拍就永久丢一期`)}`)\n }\n if (out.unverifiedPairs.length) {\n console.log(`${mark('fail', `✗ 证不出是否同刻: ${out.unverifiedPairs.join('、')} —— 跨时区或 cron 扩展语法本地读不懂,一律当撞车挡住(0 9 * * * @Asia/Shanghai 和 0 1 * * * @UTC 就是同一时刻);把两条写成同一个 timezone,或换掉扩展语法`)}`)\n }\n for (const issue of out.completionRefIssues) {\n console.log(`${mark('fail', `✗ 判据引用: ${issue}`)}`)\n }\n // 绿灯条件必须和退出码同源(scheduleBlockers),否则新增一类 blocker 时\n // 人类输出继续报绿而 exit 2——手工操作者只看文案就会照常部署(issue #38)。\n if (!scheduleBlockers(out).length) {\n console.log(`\\n${mark('pass', '✓ 各节律不同刻 fire、完成判据齐备且引用合法')}`)\n }\n return\n }\n if (sub === 'plan') {\n const workspaceName = o.workspace || positionals[0]\n if (!workspaceName) fail('schedule plan 需要 --workspace <name>')\n const info = inspectAgentProject(PROJECT_START, PACKAGE_JSON.version)\n const plan = buildSchedulePlan(info, workspaceName as string)\n // fail closed(json 和人类两条路都设):plan 是 operator 真正照着部署的路径,\n // 撞车不在这拦,两条会各建一个 autopilot → 重复外发。判据同 show,见 scheduleBlockers。\n if (scheduleBlockers(plan).length) process.exitCode = 2\n if (o.json) { console.log(JSON.stringify(plan, null, 2)); return }\n console.log(`${strong('schedule 部署计划')} · workspace=${noun(plan.workspace)} · provider=${plan.provider}`)\n if (!plan.supported) {\n console.log(`\\n${mark('fail', `✗ 不支持: ${plan.reason}`)}`)\n console.log(` ${noun(plan.reconcile)}`)\n process.exitCode = 2\n return\n }\n // 阻断时不打印任何可执行命令:手工操作者会复制粘贴人类输出里的命令,\n // 「成功版面 + 可执行命令 + exit 2」等于把 fail-closed 只留给脚本(issue #38)。\n const blocked = scheduleBlockers(plan).length > 0\n if (!blocked) {\n console.log(` ${plan.count} 条声明 → provider ops:\\n`)\n for (const s of plan.schedules) {\n console.log(` ${muted(`# ${s.name} [${s.metered ? '记账' : '不记账·平台看不到成本'}]`)}\\n ${noun(s.applyCommand)}\\n`)\n }\n } else {\n console.log(`\\n${mark('fail', `✗ 已阻断:manifest 存在必须先修复的问题,本计划不可执行(apply 命令已隐藏)`)}`)\n }\n if (plan.collidingPairs.length) {\n console.log(`${mark('fail', `✗ 同刻并发: ${plan.collidingPairs.join('、')} —— 别照此部署,两条会各建一个 autopilot → 重复外发;先错开 fire 时刻`)}`)\n }\n if (plan.missingCompletion.length) {\n console.log(`${mark('fail', `✗ 缺完成判据: ${plan.missingCompletion.join('、')} —— 补上数据派生的 completion,别靠\"跑没跑\"判完成`)}`)\n }\n if (plan.unverifiedPairs.length) {\n console.log(`${mark('fail', `✗ 证不出是否同刻: ${plan.unverifiedPairs.join('、')} —— 别照此部署。跨时区或扩展语法本地判不了,一律当撞车;把两条写成同一个 timezone 再 plan,判得出不撞就自动放行`)}`)\n }\n for (const issue of plan.completionRefIssues) {\n console.log(`${mark('fail', `✗ 判据引用: ${issue}`)}`)\n }\n if (!blocked) console.log(`执行: ${noun(plan.reconcile)}`)\n return\n }\n fail(`可用: dta schedule show | plan --workspace <name>${suggest(sub || '', ['show', 'plan'], 'dta schedule')}`)\n return\n }\n\n if (cmd === 'workspace') {\n const { values: o, positionals } = parseArgs({\n args: argv.slice(2), allowPositionals: true,\n options: {\n json: { type: 'boolean' }, yes: { type: 'boolean' },\n 'dry-run': { type: 'boolean' }, execute: { type: 'boolean' },\n 'prompt-file': { type: 'string' }, suite: { type: 'string' },\n cases: { type: 'string' }, lanes: { type: 'string' }, runs: { type: 'string' },\n out: { type: 'string' }, timeout: { type: 'string' },\n 'previous-skill': { type: 'string' },\n status: { type: 'boolean' }, 'run-id': { type: 'string' },\n provider: { type: 'string' }, stage: { type: 'string' }, profile: { type: 'string' },\n },\n })\n if (sub === 'list') {\n rejectWorkspaceOptions(o, ['json'], 'workspace list')\n if (positionals.length) fail('workspace list 不接受 Workspace name')\n const info = inspectAgentProject(PROJECT_START, PACKAGE_JSON.version)\n const out = {\n $schema: 'dingtalk-agent/workspace-list@1',\n root: info.root,\n currentWorkspace: info.currentWorkspace,\n workspaces: info.workspaces,\n sideEffect: false,\n dingtalkSideEffect: false,\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printWorkspaceList(info)\n return\n }\n if (sub === 'show') {\n rejectWorkspaceOptions(o, ['json'], 'workspace show')\n if (positionals.length !== 1) fail('workspace show 需要且只接受一个 Workspace name')\n const workspace = showDevelopmentWorkspace(PROJECT_START, positionals[0], PACKAGE_JSON.version)\n const out = {\n $schema: 'dingtalk-agent/development-workspace@1',\n ...workspace,\n sideEffect: false,\n dingtalkSideEffect: false,\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printDevelopmentWorkspace(workspace)\n return\n }\n if (sub === 'doctor') {\n rejectWorkspaceOptions(o, ['json'], 'workspace doctor')\n if (positionals.length !== 1) fail('workspace doctor 需要且只接受一个 Workspace name')\n const out = doctorDevelopmentWorkspace(PROJECT_START, positionals[0], {\n cliVersion: PACKAGE_JSON.version,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printDevelopmentWorkspaceDoctor(out)\n if (!out.ready) process.exitCode = 2\n return\n }\n if (sub === 'plan') {\n rejectWorkspaceOptions(o, ['json', 'dry-run'], 'workspace plan')\n if (positionals.length !== 1) fail('workspace plan 需要且只接受一个 Multica Workspace name')\n const out = planMulticaWorkspace(PROJECT_START, positionals[0], {\n cliVersion: PACKAGE_JSON.version,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printMulticaWorkspaceOperation(out)\n if (out.blocking.length) process.exitCode = 2\n return\n }\n if (sub === 'inspect') {\n rejectWorkspaceOptions(o, ['json', 'execute', 'yes', 'out', 'timeout'], 'workspace inspect')\n if (positionals.length !== 1) fail('workspace inspect 需要且只接受一个 Multica Workspace name')\n if (Boolean(o.execute) !== Boolean(o.yes)) {\n fail('workspace inspect 读取远端时必须同时传 --execute --yes')\n }\n const timeoutMs = o.timeout === undefined ? undefined : Number(o.timeout)\n const out = inspectMulticaWorkspace(PROJECT_START, positionals[0], {\n execute: o.execute, yes: o.yes, out: o.out, timeoutMs,\n cliVersion: PACKAGE_JSON.version,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printMulticaWorkspaceOperation(out)\n if (o.execute && 'passed' in out && !out.passed) process.exitCode = 2\n return\n }\n if (sub === 'remote-list') {\n rejectWorkspaceOptions(o, ['json', 'execute', 'yes', 'timeout'], 'workspace remote-list')\n if (positionals.length !== 1) fail('workspace remote-list 需要且只接受一个 Multica Workspace name')\n if (Boolean(o.execute) !== Boolean(o.yes)) {\n fail('workspace remote-list 读取远端时必须同时传 --execute --yes')\n }\n const timeoutMs = o.timeout === undefined ? undefined : Number(o.timeout)\n const out = listMulticaWorkspaceResources(PROJECT_START, positionals[0], {\n execute: o.execute, yes: o.yes, timeoutMs, cliVersion: PACKAGE_JSON.version,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printMulticaWorkspaceOperation(out)\n if (o.execute && 'passed' in out && !out.passed) process.exitCode = 2\n return\n }\n if (sub === 'status') {\n rejectWorkspaceOptions(o, ['json'], 'workspace status')\n if (positionals.length !== 1) fail('workspace status 需要且只接受一个 Multica Workspace name')\n const out = statusMulticaWorkspace(PROJECT_START, positionals[0], PACKAGE_JSON.version)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printMulticaWorkspaceOperation(out)\n if (!out.readyForApply) process.exitCode = 2\n return\n }\n if (sub === 'create') {\n if (positionals.length !== 1) fail('workspace create 需要且只接受一个 Workspace name')\n if (o.yes && o['dry-run']) fail('workspace create 的 --dry-run 与 --yes 不能同时使用')\n const wsName = positionals[0]\n // Resolve the provider kind to scaffold/build: explicit --provider wins, else an already\n // declared Workspace keeps its kind, else the attributed platform's provider (registry-\n // driven so deap inherits it), else opencode. multica has no local host — create authors\n // its config entry; opencode keeps building the managed host.\n if (o.provider && !['opencode', 'multica'].includes(String(o.provider))) {\n fail('workspace create --provider 只支持 opencode 或 multica')\n }\n const declaredWs = inspectAgentProject(PROJECT_START, PACKAGE_JSON.version)\n .workspaces.find((item) => item.name === wsName)\n const platformProvider = resolveAgentPlatform(PROJECT_START).definition?.provider\n const kind = String(o.provider || declaredWs?.provider.kind || platformProvider || 'opencode')\n if (declaredWs && o.provider && declaredWs.provider.kind !== kind) {\n fail(`Workspace ${wsName} 已声明为 ${declaredWs.provider.kind},与 --provider ${kind} 冲突`)\n }\n if (kind === 'multica') {\n rejectWorkspaceOptions(\n o, ['json', 'yes', 'dry-run', 'provider', 'stage', 'profile'], 'workspace create')\n const out = scaffoldMulticaWorkspace(PROJECT_START, wsName, {\n stage: o.stage, profile: o.profile, apply: o.yes, cliVersion: PACKAGE_JSON.version,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else {\n const tag = out.alreadyDeclared ? '已存在' : out.applied ? '已写入' : 'DRY-RUN'\n console.log(`${tag} workspace ${out.workspace} · provider=multica · profile=${out.profile}`)\n for (const step of out.nextSteps) console.log(` ${step}`)\n }\n return\n }\n rejectWorkspaceOptions(o, ['json', 'yes', 'dry-run', 'provider'], 'workspace create')\n const out = o.yes\n ? applyOpenCodeWorkspace(PROJECT_START, wsName, {\n yes: true, cliVersion: PACKAGE_JSON.version,\n })\n : planOpenCodeWorkspace(PROJECT_START, wsName, PACKAGE_JSON.version)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printOpenCodeWorkspaceOperation(out)\n return\n }\n if (sub === 'use') {\n rejectWorkspaceOptions(o, ['json'], 'workspace use')\n if (positionals.length !== 1) fail('workspace use 需要且只接受一个 Workspace name')\n const out = useOpenCodeWorkspace(PROJECT_START, positionals[0], PACKAGE_JSON.version)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else console.log(`${mark('pass', '✅')} current workspace: ${muted(out.previous || '-')} → ${noun(out.current)}`)\n return\n }\n if (sub === 'run') {\n const timeoutMs = o.timeout === undefined ? undefined : Number(o.timeout)\n if (o.status) {\n // Resume a timed-out multica run by re-reading the SAME Issue; no new Issue is created.\n rejectWorkspaceOptions(\n o, ['json', 'yes', 'execute', 'out', 'timeout', 'status', 'run-id'], 'workspace run --status')\n if (positionals.length !== 1) fail('workspace run --status 需要一个 Workspace name')\n if (o['prompt-file']) fail('workspace run --status 不接受 --prompt-file;用 --run-id 续读')\n if (!o['run-id']) fail('workspace run --status 需要 --run-id <上次 run 的 runId>')\n const out = statusMulticaWorkspaceRun(PROJECT_START, positionals[0], {\n runId: o['run-id'], execute: o.execute, yes: o.yes, timeoutMs, out: o.out,\n cliVersion: PACKAGE_JSON.version,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else {\n console.log(`${out.passed ? '✅' : '❌'} workspace run ${out.runId} (resumed)`)\n if (out.answer) console.log(out.answer)\n }\n if (!out.passed) process.exitCode = 2\n return\n }\n rejectWorkspaceOptions(\n o, ['json', 'yes', 'execute', 'prompt-file', 'out', 'timeout'], 'workspace run')\n if (positionals.length !== 1 || !o['prompt-file']) {\n fail('workspace run 需要一个 Workspace name 和 --prompt-file <file>')\n }\n const prompt = readProjectText(PROJECT_START, o['prompt-file'], 'workspace run prompt')\n const workspace = showDevelopmentWorkspace(PROJECT_START, positionals[0], PACKAGE_JSON.version)\n const out: Record<string, any> = workspace.provider.kind === 'multica'\n ? runMulticaWorkspaceIssue(PROJECT_START, positionals[0], prompt, {\n execute: o.execute, yes: o.yes, timeoutMs, out: o.out,\n cliVersion: PACKAGE_JSON.version,\n })\n : runOpenCodeWorkspace(PROJECT_START, positionals[0], prompt, {\n execute: o.execute, yes: o.yes, timeoutMs, out: o.out,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else if (out.$schema === 'dingtalk-agent/opencode-workspace-run-plan@1') {\n console.log(`${mark('muted', 'DRY-RUN')} workspace=${noun(out.workspace)} model=${out.model} prompt=${out.promptHash}`)\n } else if (out.$schema === 'dingtalk-agent/multica-workspace-run-plan@1') {\n console.log(`${mark('muted', 'DRY-RUN')} workspace=${noun(out.workspace)} agent=${out.agentId || '-'} prompt=${out.promptHash}`)\n } else {\n console.log(`${mark(levelOf(Boolean(out.passed)), out.passed ? '✅' : '❌')} workspace run ${noun(out.runId)}`)\n if ('execution' in out && out.execution?.answer) console.log(out.execution.answer)\n if ('answer' in out && out.answer) console.log(out.answer)\n if (out.evidencePath) console.log(`evidence=${noun(out.evidencePath)}`)\n }\n if (o.execute && !out.passed) process.exitCode = 2\n return\n }\n if (sub === 'eval') {\n rejectWorkspaceOptions(\n o, ['json', 'yes', 'execute', 'suite', 'cases', 'lanes', 'runs', 'out', 'previous-skill'],\n 'workspace eval')\n if (positionals.length !== 1 || !o.suite) {\n fail('workspace eval 需要一个 Workspace name 和 --suite <file>')\n }\n const lanes = String(o.lanes || '').split(',').map((item) => item.trim()).filter(Boolean)\n const invalid = lanes.filter((item) => !['stateless', 'stateful', 'role'].includes(item))\n if (invalid.length) fail(`workspace eval lanes 非法: ${invalid.join(',')}`)\n const cases = String(o.cases || '').split(',').map((item) => item.trim()).filter(Boolean)\n const runs = o.runs === undefined ? undefined : Number(o.runs)\n const out = evalOpenCodeWorkspace(PROJECT_START, positionals[0], o.suite, {\n lanes: lanes as RobotEvalLane[], caseIds: cases, runs, out: o.out,\n previousSkill: o['previous-skill'], execute: o.execute, yes: o.yes,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printLab(out.report || out)\n if (o.execute && !out.passed) process.exitCode = 2\n return\n }\n fail(\n `不认识的 workspace 子命令: ${sub || '(缺失)'}`, 1,\n `可用命令: dta workspace list | show | doctor | plan | inspect | remote-list | status | create | use | run | eval${suggest(sub || '', ['list', 'show', 'doctor', 'plan', 'inspect', 'remote-list', 'status', 'create', 'use', 'run', 'eval'], 'dta workspace')}`,\n )\n }\n\n // ── setup / upgrade / doctor:机器级安装与环境闭环。──\n if (cmd === 'setup') {\n const { values: o } = parseArgs({\n args: argv.slice(1),\n options: {\n prefix: { type: 'string' }, 'dry-run': { type: 'boolean' },\n 'no-shell-write': { type: 'boolean' }, 'skip-cli-install': { type: 'boolean' },\n json: { type: 'boolean' },\n },\n })\n const out = setup(PACKAGE_ROOT, {\n prefix: o.prefix,\n dryRun: o['dry-run'],\n writeShell: !o['no-shell-write'],\n skipCliInstall: o['skip-cli-install'],\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printSetup(out)\n if (!out.doctor.ready) process.exitCode = 2\n return\n }\n\n if (cmd === 'doctor') {\n const { values: o } = parseArgs({\n args: argv.slice(1), options: { json: { type: 'boolean' } },\n })\n const out = doctor(PACKAGE_ROOT)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printDoctor(out)\n if (!out.ready) process.exitCode = 2\n return\n }\n\n if (cmd === 'upgrade') {\n // parseArgs strict 模式会把 --help 当成未知参数抛掉,必须先拦。\n if (argv.includes('--help') || argv.includes('-h')) { console.log(renderHelp(UPGRADE_HELP)); return }\n const { values: o } = parseArgs({\n args: argv.slice(1),\n options: {\n channel: { type: 'string' }, version: { type: 'string' }, prefix: { type: 'string' },\n 'dry-run': { type: 'boolean' }, force: { type: 'boolean' }, json: { type: 'boolean' },\n check: { type: 'boolean' }, yes: { type: 'boolean' },\n },\n })\n const channel = o.channel as 'beta' | 'latest' | undefined\n const json = Boolean(o.json)\n\n if (o.check) {\n if (o['dry-run'] || o.force || o.prefix || o.yes) {\n fail('upgrade --check 只接受 --channel / --version / --json')\n }\n const checked = checkUpgrade(PACKAGE_ROOT, { channel, version: o.version })\n if (json) console.log(JSON.stringify(checked, null, 2))\n else printUpgradeCheck(checked)\n return\n }\n\n // --json 是机器通道:结构性绕开 tui,连回调都不构造。\n // 非交互(管道/CI/Agent)也不提示,保持\"敲下去就装\"的既有行为。\n const interactive = !json && Boolean(process.stdin.isTTY)\n let known: UpgradeCheckResult | null = null\n if (interactive) {\n known = checkUpgrade(PACKAGE_ROOT, { channel, version: o.version })\n printUpgradePreamble(known, { dryRun: Boolean(o['dry-run']), force: Boolean(o.force) })\n const proceed = await confirm(\n o['dry-run'] ? '是否预览升级?' : '是否升级?',\n { yes: Boolean(o.yes), fallback: true },\n )\n if (!proceed) { console.error(stderrUi().theme.dim(' 已取消')); return }\n }\n\n const reporter = json ? null : new StepReporter({ total: o['dry-run'] ? 3 : 7 })\n const result = upgradeAgent(PACKAGE_ROOT, {\n channel, version: o.version, prefix: o.prefix,\n dryRun: o['dry-run'], force: o.force,\n // 已经解析过就别再问一次 registry;**同时把安装源钉死到精确版本**——\n // 只冻结期望版本而仍按 `pkg@latest` 安装,会在用户思考的这几秒里\n // 被移动的 tag 装进另一个版本,然后按旧期望校验失败,而机器已经改了。\n env: known\n ? {\n DTA_UPGRADE_TARGET_VERSION: known.targetVersion,\n DTA_UPGRADE_PACKAGE_SOURCE: known.pinnedSource,\n }\n : undefined,\n onEvent: reporter\n ? (event) => {\n if (event.phase === 'begin') reporter.begin(event.label)\n else reporter.end(event.ok !== false, event.meta || '')\n }\n : undefined,\n })\n if (json) console.log(JSON.stringify(result, null, 2))\n else printUpgrade(result)\n if (!result.dryRun && !result.ready) process.exitCode = 2\n return\n }\n\n // ── skill:唯一一次性的主入口;完全不依赖 Workspace。──\n if (cmd === 'skill') {\n const { values: o, positionals } = parseArgs({\n args: argv.slice(2),\n allowPositionals: true,\n options: {\n name: { type: 'string' }, 'dry-run': { type: 'boolean' }, json: { type: 'boolean' },\n 'allow-downgrade': { type: 'boolean' },\n },\n })\n if (positionals.length > 1) fail('skill 最多接受一个 Skill name')\n const name = o.name || positionals[0]\n const dryRun = Boolean(o['dry-run'])\n const allowDowngrade = Boolean(o['allow-downgrade'])\n let out: GlobalSkillStatus | GlobalSkillSuiteStatus\n if (sub === 'install') {\n out = name\n ? installGlobalSkill(PACKAGE_ROOT, { dryRun, name, allowDowngrade })\n : installBundledSkills(PACKAGE_ROOT, { dryRun, allowDowngrade })\n } else if (sub === 'status') {\n out = name ? skillStatus(PACKAGE_ROOT, { dryRun, name }) : skillSuiteStatus(PACKAGE_ROOT, { dryRun })\n } else if (sub === 'upgrade') {\n out = name\n ? upgradeGlobalSkill(PACKAGE_ROOT, { dryRun, name, allowDowngrade })\n : upgradeBundledSkills(PACKAGE_ROOT, { dryRun, allowDowngrade })\n } else if (sub === 'uninstall') {\n out = name\n ? uninstallGlobalSkill(PACKAGE_ROOT, { dryRun, name })\n : uninstallBundledSkills(PACKAGE_ROOT, { dryRun })\n } else {\n fail(\n `不认识的 skill 子命令: ${sub || '(缺失)'}`,\n 1,\n `可用命令: dta skill install | status | upgrade | uninstall${suggest(sub || '', ['install', 'status', 'upgrade', 'uninstall'], 'dta skill')}`,\n )\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else if ('skills' in out!) {\n for (const item of out.skills) printSkillStatus(item, sub, dryRun)\n // 静默删目录会让人以为什么都没发生;说清楚删了哪几个旧名。\n for (const item of out.prunedLegacy || []) {\n console.log(item.replacedBy\n ? ` 已迁移 ${item.name} → ${item.replacedBy}`\n : ` 已清理停用的 Skill ${item.name}`)\n }\n } else printSkillStatus(out!, sub, dryRun)\n return\n }\n\n // ── agent-platform:工作区归属的 managed agent platform;平台工具包按选择惰性安装。──\n if (cmd === 'agent-platform') {\n const { values: o, positionals } = parseArgs({\n args: argv.slice(2),\n allowPositionals: true,\n options: { json: { type: 'boolean' }, 'no-install': { type: 'boolean' } },\n })\n if (sub === 'list') {\n if (positionals.length) fail('agent-platform list 不接受位置参数')\n const out = { $schema: 'dingtalk-agent/agent-platform-list@1', platforms: MANAGED_AGENT_PLATFORMS }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else for (const platform of MANAGED_AGENT_PLATFORMS) printAgentPlatform(platform)\n return\n }\n if (sub === 'show') {\n if (positionals.length) fail('agent-platform show 不接受位置参数')\n const out = resolveAgentPlatform(PROJECT_START)\n const readiness = out.definition ? agentPlatformReadiness(out.definition.name, process.env, undefined, PROJECT_START) : []\n const targets = out.definition?.name === 'multica-dingtalk' ? multicaTargets() : []\n const endpoint = out.definition ? resolveEndpoint(out.definition.name, PROJECT_START) : null\n const doc = out.definition ? platformDocPath(PACKAGE_ROOT, out.definition.name) : null\n if (o.json) console.log(JSON.stringify({ ...out, endpoint, readiness, targets, doc }, null, 2))\n else {\n printAgentPlatformResolution(out)\n printEndpoint(endpoint)\n printAgentPlatformReadiness(readiness)\n printMulticaTargets(targets)\n printPlatformDoc(out.definition?.name)\n }\n return\n }\n if (sub === 'use') {\n if (positionals.length !== 1) fail('agent-platform use 需要且只接受一个 platform name')\n const out = useAgentPlatform(PROJECT_START, positionals[0], {\n packageRoot: PACKAGE_ROOT, installSkills: !o['no-install'],\n })\n const readiness = out.definition ? agentPlatformReadiness(out.definition.name, process.env, undefined, PROJECT_START) : []\n const targets = out.definition?.name === 'multica-dingtalk' ? multicaTargets() : []\n const endpoint = out.definition ? resolveEndpoint(out.definition.name, PROJECT_START) : null\n const doc = out.definition ? platformDocPath(PACKAGE_ROOT, out.definition.name) : null\n if (o.json) console.log(JSON.stringify({ ...out, endpoint, readiness, targets, doc }, null, 2))\n else {\n console.log(`${mark('pass', '✅')} 工作区已归属 ${strong(out.definition?.label)}(写入 ${noun(out.written)})`)\n for (const install of out.skillInstalls) printSkillStatus(install, 'install', false)\n if (!out.skillInstalls.length) {\n console.log(out.definition?.skills.length\n ? ` 已跳过平台技能包安装(--no-install):${out.definition.skills.map((item) => item.name).join(', ')}`\n : ' 该平台无需额外技能包。')\n }\n printEndpoint(endpoint)\n printAgentPlatformReadiness(readiness)\n printMulticaTargets(targets)\n printPlatformDoc(out.definition?.name)\n }\n return\n }\n fail(\n `不认识的 agent-platform 子命令: ${sub || '(缺失)'}`,\n 1,\n `可用命令: dta agent-platform list | show | use <platform>${suggest(sub || '', ['list', 'show', 'use'], 'dta agent-platform')}`,\n )\n }\n\n // ── bootstrap:当前 Agent Session 按需发现/拉取语义上下文。──\n if (cmd === 'bootstrap') {\n const { values: o } = parseArgs({\n args: argv.slice(1),\n options: {\n agent: { type: 'string' }, storage: { type: 'string' },\n memory: { type: 'string' }, knowledge: { type: 'string' },\n skills: { type: 'string' }, artifacts: { type: 'string' },\n 'state-dir': { type: 'string' }, profile: { type: 'string' },\n 'expected-user-id': { type: 'string' }, bindings: { type: 'string' },\n json: { type: 'boolean' },\n },\n })\n const loaded = loadConventionalBindings(o.bindings)\n const out = bootstrap(ROOT, {\n agent: o.agent, storage: o.storage,\n memory: o.memory, knowledge: o.knowledge, skills: o.skills,\n artifacts: o.artifacts, stateDir: o['state-dir'], profile: o.profile,\n expectedUserId: o['expected-user-id'], context: loaded?.context,\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else {\n console.log(`${mark('pass', '✅')} ${strong(out.mode === 'workspace' ? '已装载 Workspace' : '直接会话模式')}`)\n console.log(` scope=${out.scopeId} initialized=${out.initialized}`)\n console.log(` agent=${out.definition.id} definition=${out.definition.status}`)\n if (!out.mounts.length) console.log(muted(' 没有发现持久上下文;这不是错误,也不需要自动 init。'))\n for (const mount of out.mounts) console.log(` ${mount.slot}: ${noun(mount.path)}`)\n console.log(` ${muted(out.note)}`)\n }\n return\n }\n\n // ── agent audit:本地定义、Host exposure、真加载与存储证据的稳定验收面。──\n if (cmd === 'agent') {\n if (!['audit', 'enhance'].includes(sub || '')) fail(\n `不认识的 agent 子命令: ${sub || '(缺失)'}`, 1,\n `可用命令: dta agent audit / dta agent enhance${suggest(sub || '', ['audit', 'enhance'], 'dta agent')}`,\n )\n if (sub === 'enhance') {\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n bindings: { type: 'string' }, 'project-name': { type: 'string' },\n 'role-skill': { type: 'string' }, model: { type: 'string' },\n memory: { type: 'string' }, knowledge: { type: 'string' },\n artifacts: { type: 'string' }, 'state-dir': { type: 'string' },\n profile: { type: 'string' }, 'expected-user-id': { type: 'string' },\n 'plan-id': { type: 'string' }, 'dry-run': { type: 'boolean' },\n yes: { type: 'boolean' }, json: { type: 'boolean' },\n },\n })\n if (o.yes && o['dry-run']) fail('agent enhance 的 --dry-run 与 --yes 不能同时使用')\n if (!o.yes && o['plan-id']) fail('agent enhance plan 不接受 --plan-id;它由 dry-run 生成')\n const options = {\n bindings: o.bindings, projectName: o['project-name'],\n roleSkills: o['role-skill']?.split(','), model: o.model,\n memory: o.memory, knowledge: o.knowledge, artifacts: o.artifacts,\n stateDir: o['state-dir'], profile: o.profile,\n expectedUserId: o['expected-user-id'], cliVersion: PACKAGE_JSON.version,\n planId: o['plan-id'], yes: o.yes,\n }\n const out = o.yes\n ? applyAgentEnhancement(ROOT, options)\n : planAgentEnhancement(ROOT, options)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printAgentEnhance(out)\n if ('$schema' in out && out.$schema === 'dingtalk-agent/agent-enhancement-plan@1' && !out.ready) {\n process.exitCode = 2\n }\n return\n }\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n bindings: { type: 'string' }, agent: { type: 'string' }, storage: { type: 'string' },\n memory: { type: 'string' }, knowledge: { type: 'string' },\n skills: { type: 'string' }, artifacts: { type: 'string' },\n 'state-dir': { type: 'string' }, profile: { type: 'string' },\n 'expected-user-id': { type: 'string' }, 'require-skill': { type: 'string' },\n 'verify-load': { type: 'boolean' }, yes: { type: 'boolean' },\n 'strict-single-run': { type: 'boolean' },\n model: { type: 'string' }, out: { type: 'string' },\n 'load-report': { type: 'string' }, 'remote-report': { type: 'string' },\n json: { type: 'boolean' },\n },\n })\n const loaded = loadConventionalBindings(o.bindings)\n const out = auditAgent(ROOT, {\n bootstrap: {\n agent: o.agent, storage: o.storage,\n memory: o.memory, knowledge: o.knowledge, skills: o.skills,\n artifacts: o.artifacts, stateDir: o['state-dir'], profile: o.profile,\n expectedUserId: o['expected-user-id'], context: loaded?.context,\n },\n bindings: loaded ? { path: loaded.path, hash: loaded.hash } : undefined,\n requiredSkills: o['require-skill']?.split(','),\n verifyLoad: o['verify-load'], yes: o.yes, model: o.model, out: o.out,\n strictSingleRun: o['strict-single-run'],\n loadReport: o['load-report'], remoteReport: o['remote-report'],\n })\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printAgentAudit(out)\n if (!out.ready) process.exitCode = 2\n return\n }\n\n // ── lab:测试控制面;默认无副作用,Live 必须 manifest + --live --yes。──\n if (cmd === 'lab') {\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n manifest: { type: 'string' }, evidence: { type: 'string' },\n 'event-file': { type: 'string' }, 'case-id': { type: 'string' },\n pool: { type: 'string' }, suite: { type: 'string' }, lanes: { type: 'string' },\n cases: { type: 'string' },\n engine: { type: 'string' }, workspace: { type: 'string' }, model: { type: 'string' },\n runs: { type: 'string' }, out: { type: 'string' },\n 'previous-skill': { type: 'string' }, execute: { type: 'boolean' },\n reply: { type: 'string' }, input: { type: 'string' },\n live: { type: 'boolean' }, yes: { type: 'boolean' }, json: { type: 'boolean' },\n },\n })\n let out\n if (sub === 'doctor') {\n if (!o.manifest) fail('lab doctor 需要 --manifest <file>')\n out = doctorLab(ROOT, o.manifest)\n if (!out.ready) process.exitCode = 2\n } else if (sub === 'run') {\n if (!o.manifest || !o['case-id']) fail('lab run 需要 --manifest 和 --case-id')\n const rawEvent = o['event-file']\n ? readEventFile(o['event-file']) as Record<string, unknown> : null\n out = runLab(ROOT, cfgmod.must(ROOT), o.manifest, rawEvent, {\n caseId: o['case-id'], replyText: o.reply, inputText: o.input,\n live: o.live, yes: o.yes,\n })\n } else if (sub === 'verify') {\n if (!o.evidence) fail('lab verify 需要 --evidence <run-dir>')\n out = verifyLab(ROOT, o.evidence)\n if (!out.passed) process.exitCode = 2\n } else if (sub === 'teardown') {\n if (!o.manifest || !o.evidence) fail('lab teardown 需要 --manifest 和 --evidence')\n out = teardownLab(ROOT, o.manifest, o.evidence, { live: o.live, yes: o.yes })\n } else if (sub === 'eval') {\n if (!o.suite) fail('lab eval 需要 --suite')\n const lanes = String(o.lanes || '').split(',').map((item) => item.trim()).filter(Boolean)\n const invalid = lanes.filter((item) => !['stateless', 'stateful', 'role'].includes(item))\n if (invalid.length) fail(`lab eval lanes 非法: ${invalid.join(',')}`)\n const cases = String(o.cases || '').split(',').map((item) => item.trim()).filter(Boolean)\n const engine = o.engine || 'robot'\n if (engine === 'opencode') {\n if (!o.workspace) fail('OpenCode eval 需要 --workspace <agent-dir>')\n const runs = o.runs === undefined ? undefined : Number(o.runs)\n out = runOpenCodeEvaluation(ROOT, o.workspace, o.suite, {\n lanes: lanes as RobotEvalLane[], model: o.model, runs,\n caseIds: cases, previousSkill: o['previous-skill'],\n execute: o.execute, yes: o.yes, out: o.out,\n })\n if (o.execute && !out.passed) process.exitCode = 2\n } else if (engine === 'storage') {\n if (!o.workspace) fail('Remote State eval 需要 --workspace <agent-dir>')\n out = runStorageEvaluation(ROOT, o.workspace, o.suite, {\n model: o.model, execute: o.execute, live: o.live, yes: o.yes, out: o.out,\n })\n if (o.execute && !out.passed) process.exitCode = 2\n } else if (engine === 'personal-event') {\n if (!o.workspace) fail('Personal Event eval 需要 --workspace <agent-dir>')\n out = runPersonalEventEvaluation(ROOT, o.workspace, o.suite, {\n execute: o.execute, live: o.live, yes: o.yes, out: o.out,\n })\n if (o.execute && !out.passed) process.exitCode = 2\n } else if (engine === 'robot') {\n if (!o.pool) fail('Robot eval 需要 --pool <pool.local.json>')\n out = runRobotEvaluation(ROOT, o.pool, o.suite, {\n lanes: lanes as RobotEvalLane[], live: o.live, yes: o.yes,\n })\n if (o.live && !out.passed) process.exitCode = 2\n } else {\n fail(`lab eval engine 非法: ${engine};只支持 robot、opencode、storage 或 personal-event`)\n }\n } else {\n fail(`不认识的 lab 子命令: ${sub || '(缺失)'}`, 1,\n '可用命令: dta lab doctor | run | verify | teardown | eval;详见 dta help lab。')\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else printLab(out)\n return\n }\n\n // ── init ──\n if (cmd === 'init') {\n const { values: o } = parseArgs({\n args: argv.slice(1),\n options: {\n 'context-id': { type: 'string' }, id: { type: 'string' },\n memory: { type: 'string' }, knowledge: { type: 'string' },\n },\n })\n // init 的语义是“初始化当前目录”;不能因为父目录恰好有配置就改到父工作区。\n init(process.env.DTA_ROOT ? ROOT : process.cwd(), {\n contextId: o['context-id'], id: o.id,\n memory: o.memory, knowledge: o.knowledge,\n })\n return\n }\n\n // ── prepare:一个事件物化成一个可交给沙箱的 Run ──\n if (cmd === 'prepare') {\n const cfg = cfgmod.must(ROOT)\n const { values: o, positionals } = parseArgs({\n args: argv.slice(1), allowPositionals: true,\n options: {\n 'event-file': { type: 'string' }, field: { type: 'string' },\n 'session-key': { type: 'string' }, 'context-id': { type: 'string' },\n 'perception-file': { type: 'string' },\n json: { type: 'boolean' },\n },\n })\n const file = o['event-file'] || positionals[0]\n if (!file) fail('prepare 需要 --event-file <file|->')\n const out = prepareSession(ROOT, cfg, readEventFile(file), {\n fieldId: o.field, sessionKey: o['session-key'], contextId: o['context-id'],\n perception: o['perception-file'] ? readEventFile(o['perception-file']) : undefined,\n })\n printDispatch(out, o.json)\n return\n }\n\n // ── run:不内置模型,只把事件流转换为 sandbox dispatch ──\n if (cmd === 'run') {\n const cfg = cfgmod.must(ROOT)\n const { values: o, positionals } = parseArgs({\n args: argv.slice(1), allowPositionals: true,\n options: {\n stdin: { type: 'boolean' }, 'event-file': { type: 'string' },\n field: { type: 'string' }, 'session-key': { type: 'string' },\n 'context-id': { type: 'string' },\n 'perception-file': { type: 'string' },\n heartbeat: { type: 'boolean' }, 'heartbeat-key': { type: 'string' },\n 'heartbeat-event-id': { type: 'string' },\n },\n })\n const options = {\n fieldId: o.field, sessionKey: o['session-key'], contextId: o['context-id'],\n perception: o['perception-file'] ? readEventFile(o['perception-file']) : undefined,\n }\n const modes = [Boolean(o.stdin), Boolean(o.heartbeat), Boolean(o['event-file'] || positionals[0])]\n if (modes.filter(Boolean).length !== 1) {\n fail('run 的 --stdin / --event-file <file> / --heartbeat 必须且只能选一个')\n }\n if (o.stdin) {\n const result = await consumeNdjson(ROOT, cfg, process.stdin, options)\n if (result.rejected) process.exitCode = 2\n return\n }\n let event\n if (o.heartbeat) event = heartbeatEvent(o['heartbeat-key'], o['heartbeat-event-id'])\n else {\n const file = o['event-file'] || positionals[0]\n if (!file) fail('run 需要 --stdin / --event-file <file> / --heartbeat 三选一')\n event = readEventFile(file)\n }\n const out = prepareSession(ROOT, cfg, event, options)\n process.stdout.write(JSON.stringify(out) + '\\n')\n return\n }\n\n // ── listen:本地 DWS Driver;云端 Driver 仍走 run --stdin/--event-file。──\n if (cmd === 'listen') {\n const cfg = cfgmod.must(ROOT)\n const modes: Record<string, { event: string; required?: 'user' | 'group' }> = {\n mention: { event: 'user_im_message_receive_at' },\n dm: { event: 'user_im_message_receive_o2o', required: 'user' },\n group: { event: 'user_im_message_receive_group', required: 'group' },\n }\n const mode = modes[sub]\n if (!mode) fail('listen 的类型只能是 mention / dm / group')\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n user: { type: 'string' }, group: { type: 'string' },\n once: { type: 'boolean' }, duration: { type: 'string' },\n 'dry-run': { type: 'boolean' }, 'context-id': { type: 'string' },\n field: { type: 'string' }, 'session-key': { type: 'string' },\n },\n })\n if (mode.required === 'user' && !o.user) fail('listen dm 需要 --user <userId>')\n if (mode.required === 'group' && !o.group) fail('listen group 需要 --group <openConversationId>')\n\n const dwsArgs = ['event', 'consume', mode.event, '-f', 'ndjson']\n if (o.user) dwsArgs.push('--user', o.user)\n if (o.group) dwsArgs.push('--group', o.group)\n if (o.once) dwsArgs.push('--max-events', '1', '--ephemeral')\n if (o.duration) dwsArgs.push('--duration', o.duration)\n\n if (o['dry-run']) {\n const child = spawnSync('dws', [...dwsArgs, '--dry-run'], { stdio: 'inherit' })\n if (child.error) throw child.error\n process.exitCode = child.status ?? 2\n return\n }\n\n const child = spawn('dws', dwsArgs, { stdio: ['ignore', 'pipe', 'inherit'] })\n const status = new Promise<number>((resolveStatus, rejectStatus) => {\n child.once('error', rejectStatus)\n child.once('close', (code, signal) => {\n if (signal) rejectStatus(new Error(`DWS listener 被 ${signal} 终止`))\n else resolveStatus(code ?? 2)\n })\n })\n const result = await consumeNdjson(ROOT, cfg, child.stdout, {\n fieldId: o.field,\n sessionKey: o['session-key'],\n contextId: o['context-id'],\n })\n const exitCode = await status\n if (exitCode !== 0) fail(`DWS listener 退出码 ${exitCode}`, exitCode)\n if (result.rejected) process.exitCode = 2\n return\n }\n\n // ── dispatch:durable outbox。ack 表示 controller 已幂等入队,不表示 Run 已完成。──\n if (cmd === 'dispatch') {\n const cfg = cfgmod.must(ROOT)\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n 'event-id': { type: 'string' }, 'run-id': { type: 'string' },\n consumer: { type: 'string' }, json: { type: 'boolean' },\n },\n })\n if (sub === 'pending') {\n for (const out of listPendingDispatches(ROOT, cfg)) {\n process.stdout.write(JSON.stringify(out) + '\\n')\n }\n return\n }\n if (sub === 'ack') {\n if (!o['event-id'] || !o['run-id']) fail('dispatch ack 需要 --event-id 和 --run-id')\n const out = ackDispatch(ROOT, cfg, o['event-id'], o['run-id'], o.consumer || '')\n process.stdout.write(JSON.stringify(out) + '\\n')\n return\n }\n fail('dispatch 的子命令: pending / ack')\n }\n\n // ── task:Session 语义 checkpoint;revision CAS,不承担 Wait/锁/Receipt。──\n if (cmd === 'task') {\n const cfg = cfgmod.must(ROOT)\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n input: { type: 'string' }, session: { type: 'string' },\n 'expect-revision': { type: 'string' }, json: { type: 'boolean' },\n },\n })\n let out\n if (sub === 'show') {\n out = showTaskCheckpoint(ROOT, cfg, {\n sessionPath: o.session || process.env.DTA_SESSION,\n runPath: process.env.DTA_RUN,\n })\n } else if (sub === 'checkpoint') {\n if (!o.input || o['expect-revision'] === undefined) {\n fail('task checkpoint 需要 --input 和 --expect-revision')\n }\n const expectedRevision = Number(o['expect-revision'])\n out = checkpointTask(ROOT, cfg, readEventFile(o.input), expectedRevision, {\n sessionPath: o.session || process.env.DTA_SESSION,\n runPath: process.env.DTA_RUN,\n })\n } else {\n fail('task 的子命令: show / checkpoint')\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else if (!out.found) console.log(muted('当前 Session 尚无 Task checkpoint。'))\n else {\n console.log(`${mark('pass', '✅')} Task ${noun(out.checkpoint.taskId)} · ${out.checkpoint.status}`)\n console.log(` revision=${out.checkpoint.revision} hash=${out.hash}`)\n console.log(` next=${out.checkpoint.nextAction || '-'}`)\n }\n return\n }\n\n // ── memory:Provider-neutral 语义路由;当前首个远端事实源是 AI 表格。──\n if (cmd === 'memory') {\n const action = argv[2]\n if (sub === 'operational' && action === 'upsert') {\n const { values: o } = parseArgs({\n args: argv.slice(3),\n options: {\n provider: { type: 'string' }, input: { type: 'string' },\n live: { type: 'boolean' }, yes: { type: 'boolean' }, json: { type: 'boolean' },\n },\n })\n const providerPath = o.provider || process.env.DTA_OPERATIONAL_MEMORY_PROVIDER\n if (!providerPath || !o.input) {\n fail('memory operational upsert 需要 --provider(或 DTA_OPERATIONAL_MEMORY_PROVIDER)和 --input')\n }\n const out = upsertOperationalMemory(\n readEventFile(providerPath),\n readEventFile(o.input),\n { execute: Boolean(o.live), yes: Boolean(o.yes) },\n )\n if (o.json || !o.live) console.log(JSON.stringify(out, null, 2))\n else {\n console.log(`${mark(out.verified ? 'pass' : 'warn', out.verified ? '✅' : '⚠️')} ${strong('Operational Memory')} · ${out.mode}`)\n console.log(` record=${out.recordId || '-'} verification=${out.verification}`)\n }\n if (out.mode === 'uncertain') process.exitCode = 2\n return\n }\n if (sub === 'candidate') {\n const { values: o } = parseArgs({\n args: argv.slice(3),\n options: {\n input: { type: 'string' }, id: { type: 'string' }, target: { type: 'string' },\n decision: { type: 'string' }, reviewer: { type: 'string' }, reason: { type: 'string' },\n 'state-dir': { type: 'string' }, 'expect-revision': { type: 'string' },\n 'expect-target-hash': { type: 'string' },\n live: { type: 'boolean' }, yes: { type: 'boolean' }, json: { type: 'boolean' },\n },\n })\n const options = { stateDir: o['state-dir'], runPath: process.env.DTA_RUN }\n let out\n if (action === 'propose') {\n if (!o.input) fail('memory candidate propose 需要 --input')\n out = proposeMemoryCandidate(ROOT, readEventFile(o.input), options)\n } else if (action === 'show') {\n if (!o.id) fail('memory candidate show 需要 --id')\n out = showMemoryCandidate(ROOT, o.id, options)\n } else if (action === 'review') {\n if (!o.id || !o.decision || !o.reviewer || !o.reason ||\n o['expect-revision'] === undefined) {\n fail('memory candidate review 需要 --id/--decision/--reviewer/--reason/--expect-revision')\n }\n out = reviewMemoryCandidate(\n ROOT, o.id, o.decision as 'approve' | 'reject', o.reviewer, o.reason,\n Number(o['expect-revision']), options,\n )\n } else if (action === 'publish') {\n if (!o.id || !o.target || o['expect-revision'] === undefined) {\n fail('memory candidate publish 需要 --id/--target/--expect-revision')\n }\n out = publishMemoryCandidate(\n ROOT, o.id, readEventFile(o.target), Number(o['expect-revision']),\n o['expect-target-hash'] || '', {\n ...options,\n execute: Boolean(o.yes || o.live),\n yes: Boolean(o.yes),\n live: Boolean(o.live),\n },\n )\n } else {\n fail('memory candidate 的子命令: propose / show / review / publish')\n }\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else if (action === 'publish') {\n console.log(`${mark(out.verified ? 'pass' : out.mode === 'dry-run' ? 'muted' : 'warn', out.verified ? '✅' : out.mode === 'dry-run' ? '🔎' : '⚠️')} Candidate ${noun(o.id)}`)\n console.log(` mode=${out.mode} targetHash=${out.currentTargetHash}`)\n } else {\n console.log(`${mark('pass', '✅')} Candidate ${noun(out.candidate.id)} · ${out.candidate.status}`)\n console.log(` revision=${out.candidate.revision} path=${noun(out.path)}`)\n }\n if (action === 'publish' && out.mode === 'uncertain') process.exitCode = 2\n return\n }\n if (sub === 'noop') {\n const { values: o } = parseArgs({\n args: argv.slice(3),\n options: {\n input: { type: 'string' }, scope: { type: 'string' }, step: { type: 'string' },\n occurrence: { type: 'string' }, 'state-dir': { type: 'string' },\n session: { type: 'string' }, json: { type: 'boolean' },\n },\n })\n const noopCfg = cfgmod.load(ROOT)\n const options = {\n stateDir: o['state-dir'], runPath: process.env.DTA_RUN,\n sessionPath: o.session || process.env.DTA_SESSION,\n sessionRoot: noopCfg?.runtime?.sessionRoot,\n }\n if (action === 'record') {\n if (!o.input) fail('memory noop record 需要 --input(memory-noop-claim@1 JSON)')\n const out = recordMemoryNoop(ROOT, readEventFile(o.input), options)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else {\n console.log(`${mark('pass', '✅')} No-op Receipt ${noun(out.receipt.id)}${out.duplicate ? ' · duplicate(幂等命中既有痕迹)' : ''}`)\n console.log(` step=${out.receipt.step} occurrence=${out.receipt.occurrence} reason=${out.receipt.reason}`)\n }\n } else if (action === 'list') {\n const out = listMemoryNoops(\n ROOT, { scopeId: o.scope, step: o.step, occurrence: o.occurrence }, options)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else {\n console.log(`${mark('pass', '✅')} No-op Receipts · ${out.count} 条`)\n for (const receipt of out.receipts) {\n console.log(` ${receipt.id} ${receipt.step} ${receipt.occurrence} ${receipt.reason}`)\n }\n }\n } else if (action === 'trace') {\n if (!o.scope || !o.occurrence) fail('memory noop trace 需要 --scope 和 --occurrence')\n const out = traceMemoryNoop(\n ROOT, { scopeId: o.scope, occurrence: o.occurrence, step: o.step }, options)\n if (o.json) console.log(JSON.stringify(out, null, 2))\n else {\n const ran = out.verdict === 'ran-empty'\n console.log(`${mark(ran ? 'pass' : 'warn', ran ? '✅' : '⚠️')} ${strong(out.verdict)} · step=${out.step} occurrence=${noun(out.occurrence)}`)\n if (ran) console.log(` receipt=${out.receiptId}`)\n else console.log(' 没有任何痕迹——「判过无内容」会留 no-op Receipt,这里连它都没有')\n }\n // 判存步骤没跑就是没跑:给脚本一个可断言的非零退出码(区别于 uncertain 的 2)。\n if (out.verdict === 'no-trace') process.exitCode = 3\n } else {\n fail('memory noop 的子命令: record / list / trace')\n }\n return\n }\n fail('memory 当前支持: operational upsert / candidate propose|show|review|publish / noop record|list|trace')\n }\n\n // ── act:元语化动作;目标/身份/预算/状态转移都由 Run 固定 ──\n if (cmd === 'act') {\n const kind = sub\n const { values: o } = parseArgs({\n args: argv.slice(2),\n options: {\n run: { type: 'string' }, text: { type: 'string' },\n 'text-file': { type: 'string' }, reason: { type: 'string' },\n 'dry-run': { type: 'boolean' }, json: { type: 'boolean' },\n },\n })\n if (o.text && o['text-file']) fail('--text 和 --text-file 只能选一个')\n const text = o['text-file']\n ? readFileSync(resolve(process.cwd(), o['text-file']), 'utf8')\n : o.text\n const runPath = findRun(process.cwd(), o.run)\n const out = o['dry-run']\n ? previewAction(runPath, kind, { text, reason: o.reason })\n : executeAction(runPath, kind, { text, reason: o.reason })\n if (o.json || o['dry-run']) console.log(JSON.stringify(out, null, 2))\n else {\n console.log(`${mark(out.verified ? 'pass' : 'warn', out.verified ? '✅' : '⚠️')} ${strong(out.kind)} · ${out.outcome} · ${out.toState}`)\n console.log(` action=${noun(out.actionId)} run=${noun(out.runId)}`)\n if (!out.verified) console.log(` ${muted(out.verification)}`)\n }\n if (out.outcome === 'uncertain') process.exitCode = 2\n return\n }\n\n fail(\n `不认识的命令: ${cmd}`,\n 1,\n `运行 dta --help 查看全部命令${suggest(cmd, [\n 'setup', 'upgrade', 'doctor', 'skill', 'agent-platform', 'bootstrap', 'init', 'prepare', 'run', 'dispatch', 'task', 'memory', 'act',\n 'lab', 'listen', 'deploy', 'promote', 'observe',\n 'agent',\n 'info', 'workspace',\n ])}`,\n )\n}\n\nfunction loadConventionalBindings(input: string | undefined) {\n const conventional = 'agent.bindings.json'\n const selected = input || (existsSync(resolve(ROOT, conventional)) ? conventional : '')\n return selected ? loadAgentBindings(ROOT, selected) : null\n}\n\nfunction errorHint(message: string): string {\n if (/unknown option|未知选项|unexpected argument/i.test(message)) {\n return '检查参数拼写;运行 dta --help 查看当前版本支持的参数。'\n }\n if (/找不到当前 Run|必须由能访问 DTA_ROOT 的宿主侧执行/.test(message)) {\n return 'act 只能用于可信事件 Run;先由宿主执行 dta prepare --event-file <file>,再进入返回的 cwd。'\n }\n if (/OpenCode/.test(message)) {\n return '检查 OpenCode 版本、模型认证与项目 Skill/config;运行 dta workspace doctor <name> 查看精确缺口。'\n }\n if (/Multica|multica/.test(message)) {\n return '先运行 dta workspace plan <name> 和 doctor;确认 profile/ID 来源后,再用 inspect --execute --yes 做只读回读。'\n }\n if (/\\bDWS\\b|\\bdws\\b/.test(message)) {\n return '运行 dta doctor 检查 DWS 路径、版本和认证;需要登录时执行 dws auth login。'\n }\n if (/dingtalk-agent\\.json|Project 未声明|current-workspace|Development Workspace/.test(message)) {\n return '在 Agent Project 内运行 dta info;用 dta workspace list/show/doctor 检查声明和漂移。'\n }\n if (/skills CLI|\\bnpx\\b/.test(message)) {\n return '确认 node、npm、npx 在 PATH 中;也可以复制错误中的 npx skills 命令单独执行。'\n }\n if (/升级目标|CLI 升级|npm view|npm install/.test(message)) {\n return '检查 npm registry 与网络后重试 dta upgrade;可先运行 dta upgrade --dry-run 查看目标和完整命令。'\n }\n if (/Workspace|Field|Storage|contextId/.test(message)) {\n return '先运行 dta bootstrap --json 查看当前上下文;确实需要持久 Workspace 时再运行 dta init。'\n }\n return '运行 dta doctor 检查环境;运行 dta --help 查看可用命令。'\n}\n\nfunction suggest(input: string, candidates: string[], prefix = 'dta'): string {\n if (!input) return ''\n const ranked = candidates\n .map((candidate) => ({ candidate, distance: editDistance(input, candidate) }))\n .sort((a, b) => a.distance - b.distance)\n const best = ranked[0]\n return best && best.distance <= Math.max(2, Math.floor(best.candidate.length / 3))\n ? `;你是否想输入 ${prefix} ${best.candidate}?`\n : ''\n}\n\nfunction editDistance(a: string, b: string): number {\n const row = Array.from({ length: b.length + 1 }, (_, index) => index)\n for (let i = 1; i <= a.length; i += 1) {\n let previous = row[0]\n row[0] = i\n for (let j = 1; j <= b.length; j += 1) {\n const before = row[j]\n row[j] = Math.min(row[j] + 1, row[j - 1] + 1, previous + (a[i - 1] === b[j - 1] ? 0 : 1))\n previous = before\n }\n }\n return row[b.length]\n}\n\n// ── 人类通道的装饰层 ────────────────────────────────────────────────\n//\n// 铁律:**染色只能包住整个连续短语,绝不能把短语切开。** 契约 eval 断言的是\n// stderr.includes('错误:')、stdout.includes('dta skill install') 这类整串,\n// 一旦写成 success('✅') + ' ' + danger('dta') + ' skill install' 就再也匹配不上。\n// 同理,本层只加装饰,一个字都不改、一行都不增删——语义仍然由既有的\n// ✅/⚠️/❌/PASS/FAIL 字形和 key=value 结构承载,剥掉颜色后信息完整。\n\ntype MarkLevel = 'pass' | 'warn' | 'fail' | 'muted'\n\n/** 按语义给状态标记上色;字形原样返回,不做任何替换。 */\nfunction mark(level: MarkLevel, text: string): string {\n const { theme } = stdoutUi()\n return level === 'pass' ? theme.success(text)\n : level === 'warn' ? theme.warn(text)\n : level === 'fail' ? theme.danger(text)\n : theme.dim(text)\n}\n\n/** 可复制的名词:路径、版本号、ID、命令。 */\nfunction noun(text: unknown): string {\n return stdoutUi().theme.noun(text)\n}\n\n/** 次要信息:补充说明、括注、下一步提示。 */\nfunction muted(text: unknown): string {\n return stdoutUi().theme.dim(text)\n}\n\n/** 标题行 / key=value 的结构性强调。 */\nfunction strong(text: unknown): string {\n return stdoutUi().theme.bold(text)\n}\n\n/** ready 布尔 → 语义级别,printX 里到处都是这个三态。 */\nfunction levelOf(state: 'pass' | 'warn' | 'fail' | boolean): MarkLevel {\n if (state === true) return 'pass'\n if (state === false) return 'fail'\n return state\n}\n\nfunction printDispatch(out, json = false) {\n if (json) return console.log(JSON.stringify(out, null, 2))\n const state = out.duplicate\n ? mark(out.launch ? 'warn' : 'muted', out.launch ? '🔁 REDELIVER' : '↩️ DUPLICATE')\n : mark('pass', '✅ READY')\n console.log(`${state} ${noun(out.runId)}`)\n console.log(` Field=${out.fieldId} Session=${out.sessionId} Event=${out.eventKind}`)\n console.log(` cwd=${out.cwd}`)\n console.log(` entrypoint=${out.entrypoint} queue=${out.queue.key} (max=${out.queue.maxConcurrency})`)\n console.log(` launch=${out.launch} delivery=${out.delivery?.status || 'unknown'}`)\n console.log(` allowed=${out.allowedActions.join(', ')} default=${out.defaultAction}`)\n console.log(' Local 模式可直接用 cwd/env;生产模式由宿主 Broker 保留 DWS 与 control 权限。')\n}\n\nfunction printLab(out: Record<string, any>): void {\n const passed = out.ready ?? out.passed ?? out.assertions?.passed\n console.log(`${mark(levelOf(passed !== false), passed === false ? '❌' : '✅')} ${out.$schema || 'dingtalk-agent/lab'}`)\n if (out.mode) console.log(` mode=${out.mode}`)\n if (out.marker) console.log(` marker=${out.marker}`)\n if (out.evidencePath) console.log(` evidence=${out.evidencePath}`)\n if (Array.isArray(out.checks)) {\n for (const check of out.checks) {\n console.log(` ${mark(levelOf(Boolean(check.passed)), check.passed ? 'PASS' : 'FAIL')} ${check.id}: ${check.detail}`)\n }\n }\n}\n\nfunction printAgentAudit(out: AgentAuditReport): void {\n console.log(`${strong('dingtalk-agent agent audit')} · ${mark(out.ready ? 'pass' : 'warn', out.ready ? 'READY' : 'PARTIAL')}`)\n console.log(` definition=${out.definition.hash} storage=${out.storageMode}`)\n console.log(` dingtalkSideEffect=${out.dingtalkSideEffect} sideEffect=${out.sideEffect}`)\n for (const check of out.checks) {\n const word = check.level === 'pass' ? 'PASS' : check.level === 'warn' ? 'WARN' : 'FAIL'\n console.log(` ${mark(levelOf(check.level), word)} ${check.id}: ${check.summary}`)\n const evidence = check.evidence as Record<string, any> | undefined\n // 失败可归因:把 failureSummary 的前几条与证据路径直接摆到失败行下面,\n // 不再让人去 JSON 深处找「为什么」。flaky 通过(第二次 attempt 才过)也如实标注。\n if (check.level !== 'pass' && check.blocking && Array.isArray(evidence?.failureSummary)) {\n for (const line of (evidence.failureSummary as string[]).slice(0, 3)) {\n console.log(` · ${line}`)\n }\n if (typeof evidence.report === 'string' && evidence.report) {\n console.log(` evidence: ${evidence.report}`)\n }\n }\n const verification = evidence?.verification\n if (verification && Array.isArray(verification.attempts) && verification.attempts.length > 1) {\n console.log(` attempts: ${verification.attempts.length}` +\n `(passedOnAttempt=${verification.passedOnAttempt || '-'})`)\n }\n }\n if (out.repairs.length) {\n console.log('\\n修复建议:')\n for (const repair of out.repairs) {\n console.log(` ${repair.id}: ${repair.why}`)\n for (const action of repair.actions) console.log(` - ${action}`)\n }\n }\n}\n\nfunction printAgentEnhance(out: AgentEnhancePlan | AgentEnhanceReceipt): void {\n if (out.$schema === 'dingtalk-agent/agent-enhancement-plan@1') {\n console.log(`${strong('dingtalk-agent agent enhance')} · ${mark(out.ready ? 'pass' : 'fail', out.ready ? 'READY PLAN' : 'BLOCKED')}`)\n console.log(` planId=${out.planId} project=${out.projectName}`)\n console.log(` sideEffect=${out.sideEffect} dingtalkSideEffect=${out.dingtalkSideEffect}`)\n for (const operation of out.operations) {\n console.log(` ${operation.kind.toUpperCase()} ${operation.path}: ${operation.reason}`)\n }\n if (out.semanticReview.required) {\n console.log(` REVIEW ${out.semanticReview.files.join(', ')}: ${out.semanticReview.why}`)\n }\n for (const blocker of out.blockers) console.log(` ${mark('fail', 'BLOCK')} ${blocker}`)\n if (out.ready) console.log(`\\nApply:\\n ${out.apply.command}`)\n return\n }\n console.log(`${strong('dingtalk-agent agent enhance')} · ${mark('pass', 'APPLIED')}`)\n console.log(` operation=${out.operationId} planId=${out.planId}`)\n console.log(` changes=${out.changes.length} idempotent=${out.idempotent}`)\n if (out.backupRoot) console.log(` backup=${out.backupRoot}`)\n console.log(` audit=${out.audit.status} missing=${out.audit.missing.join(', ') || '-'}`)\n}\n\nfunction printAgentPlatform(platform: (typeof MANAGED_AGENT_PLATFORMS)[number]): void {\n console.log(`${mark(platform.status === 'supported' ? 'pass' : 'muted', platform.status === 'supported' ? '✅' : '⏳')} ${strong(platform.name)} · ${platform.label} · ${platformStatusLabel(platform.status)}`)\n console.log(` ${muted(platform.description)}`)\n for (const skill of platform.skills) console.log(` 技能[${skill.role}] ${skill.name} —— ${skill.purpose}`)\n if (platform.commands.length) console.log(` 平台命令: ${platform.commands.map((item) => `dta ${item}`).join(' · ')}`)\n}\n\nfunction printAgentPlatformResolution(out: AgentPlatformResolution): void {\n if (!out.platform) {\n console.log(mark('warn', '⚠️ 当前工作区未声明 managed agent platform'))\n console.log(' 运行 `dta agent-platform use multica-dingtalk`,或设置 DTA_AGENT_PLATFORM 环境变量。')\n return\n }\n const known = out.definition\n console.log(`${mark(levelOf(Boolean(known)), known ? '✅' : '❌')} 当前 platform: ${strong(out.platform)}${known ? ` · ${known.label} · ${platformStatusLabel(known.status)}` : '(未知)'}`)\n console.log(` 来源: ${out.source}${out.file ? ` · ${out.file}` : ''}`)\n for (const skill of known?.skills || []) console.log(` 技能[${skill.role}] ${skill.name} —— ${skill.purpose}`)\n}\n\n// 披露:dta 层平台命令关联到平台内确切的 Skill(诊断信息走 stderr,不污染 --json stdout)。\nfunction disclosePlatformSkill(resolution: AgentPlatformResolution, role: string): void {\n const skillName = resolution.definition ? platformSkillForRole(resolution.definition.name, role) : null\n if (skillName) {\n console.error(stderrUi().theme.dim(\n `提示: 平台 ${resolution.definition!.name} 的该命令方法学由 Skill ${skillName} 承载`))\n }\n}\n\nfunction printEndpoint(endpoint: EndpointResolution | null): void {\n if (!endpoint) return\n if (endpoint.source === 'ambiguous') {\n console.log(` Endpoint: 多个已登录目标未选定(${endpoint.candidates.join(' / ')})——` +\n `用 ${endpoint.envVar} 或指定 profile 明确选择`)\n return\n }\n if (!endpoint.endpoint) {\n console.log(` Endpoint: 未解析——设 ${endpoint.envVar} 或登录 multica 后生效`)\n return\n }\n const glyph = mark(endpoint.confirmed ? 'pass' : 'warn', endpoint.confirmed ? '✅' : '⚠️')\n const note = endpoint.confirmed ? '' : '(建议/未确认,deploy 前需显式确认是预发还是生产)'\n console.log(` ${glyph} Endpoint: ${noun(endpoint.endpoint)} · 来源: ${endpoint.source}${muted(note)}`)\n console.log(` (切换:设 ${endpoint.envVar}=<url>、写 dingtalk-agent.json#multicaEndpoint、或登录对应 profile;无需改代码)`)\n}\n\nfunction printPlatformDoc(platformName?: string): void {\n if (!platformName) return\n const path = platformDocPath(PACKAGE_ROOT, platformName)\n if (path) console.log(` 平台说明: ${noun(path)}\\n${muted(' (切换到该平台后请阅读,了解各技能用途与交付链)')}`)\n}\n\nfunction printMulticaTargets(targets: MulticaTarget[]): void {\n if (!targets.length) return\n console.log(strong(' 本机 Multica 登录目标(发布前必须与用户确认 endpoint 与 workspace):'))\n for (const target of targets) {\n console.log(` - profile=${target.profile} · ${target.serverUrl}${target.workspaceId ? ` · workspace=${target.workspaceId}` : ''}`)\n }\n}\n\nfunction printAgentPlatformReadiness(checks: AgentPlatformReadinessCheck[]): void {\n for (const check of checks) {\n console.log(` ${mark(check.ok ? 'pass' : 'warn', check.ok ? '✅' : '⚠️')} ${check.summary}`)\n if (check.hint) console.log(` ${muted(check.hint)}`)\n }\n}\n\nfunction printSkillStatus(out: GlobalSkillStatus, action: string, dryRun: boolean): void {\n const prefix = dryRun ? mark('muted', 'DRY-RUN') : mark('pass', '✅')\n const verb = action === 'status' ? '全局 Skill 状态' : `skill ${action}`\n console.log(`${prefix} ${verb}: ${strong(out.name)}`)\n console.log(` manager=${out.manager} bundled=${out.bundled.skillVersion || '-'}`)\n console.log(` canonical=${out.canonical.path}`)\n console.log(\n ` installed=${out.canonical.exists} ` +\n `${out.canonical.installedVersion || '—'} → ${out.bundled.skillVersion} ` +\n `state=${out.canonical.state}`,\n )\n if (out.operation?.after) {\n console.log(\n ` ${out.operation.before.installedVersion || '—'}(${out.operation.before.state})` +\n ` → ${out.operation.after.installedVersion}(${out.operation.after.state})`,\n )\n }\n if (out.operation) console.log(` delegated: ${noun(out.operation.command)}`)\n for (const client of out.clients) {\n console.log(` ${client.label}=${mark(client.state === 'ok' ? 'pass' : 'warn', client.state)} (${client.discovery}: ${noun(client.path)})`)\n }\n if (action === 'install' && !dryRun) {\n console.log(muted(' 新 Agent 会话将自动发现;当前会话未发现时请重启 Claude Code/Codex。'))\n }\n}\n\n/**\n * doctor 的版面。改造前的问题不是\"不够花哨\",是三条实打实的:\n * 1. 同一事实说两遍——⚠️ 摘要和它的 detail 重复平台 Skill 漂移;三个客户端\n * 的 Skill 可见性在 check 区和「本机 Coding Agent」区各说一次。\n * 2. 一行塞太多——detail 用 ` | ` 把四条 canonical 路径和平台 Skill 状态拼在\n * 一起,200+ 字符,终端里必然折行。\n * 3. 分隔符混用 `·` `;` `|` 三种,没有一列是对齐的。\n * 所以这里按「一行一件事、明细缩进、列对齐」重排,并把客户端合并成一节。\n */\nfunction printDoctor(out: ReturnType<typeof doctor>): void {\n const { theme } = stdoutUi()\n // 字形沿用全 CLI 既定的 ✅/⚠️/❌(bin 里各出现 24/11/5 次)。上一版换成\n // ✔/!/✗ 让 doctor 成了唯一的异类,也违反 AGENTS.md「stdout 是稳定的人/\n // 机器接口」——颜色可以加,承载语义的字形不能动。三者都是 2 列宽,对齐不受影响。\n const glyph = (level: string) => level === 'pass' ? mark('pass', '✅')\n : level === 'warn' ? mark('warn', '⚠️') : mark('fail', '❌')\n\n const clientIds = new Set(['claude-code', 'codex', 'opencode'])\n const envChecks = out.checks.filter((check) => !clientIds.has(check.id))\n const clientChecks = out.checks.filter((check) => clientIds.has(check.id))\n\n console.log(`${strong('dingtalk-agent doctor')} · ${\n out.ready ? mark('pass', 'READY') : mark('fail', 'NOT READY')}`)\n console.log('')\n\n // 左列按显示宽度对齐——中文标签用 String.length 补齐必然错位\n const labelWidth = Math.max(...envChecks.map((check) => displayWidth(CHECK_LABELS[check.id])))\n for (const check of envChecks) {\n const label = padRight(CHECK_LABELS[check.id], labelWidth)\n console.log(` ${glyph(check.level)} ${strong(label)} ${check.value || check.summary}`)\n const items = check.items || []\n const itemWidth = items.length ? Math.max(...items.map((i) => displayWidth(i.label))) : 0\n const valueWidth = items.length ? Math.max(...items.map((i) => displayWidth(i.value || ''))) : 0\n for (const item of items) {\n console.log(` ${noun(padRight(item.label, itemWidth))} ${\n padRight(item.value || '', valueWidth)}${item.note ? ` ${muted(item.note)}` : ''}`)\n }\n if (check.level !== 'pass' && check.fix) {\n // 一条命令一行。挤在同一行里用「与」串起来的命令没法直接复制。\n const commands = plain(check.fix).replace(/^运行\\s*/, '').split(/\\s*与\\s*/)\n commands.forEach((command, index) => {\n console.log(` ${muted(index === 0 ? '修复' : ' ')} ${noun(command)}`)\n })\n }\n }\n\n if (clientChecks.length) {\n console.log('')\n console.log(` ${strong('Coding Agent')}`)\n const nameWidth = Math.max(...clientChecks.map((c) => displayWidth(CHECK_LABELS[c.id])))\n const hostOf = (id: string) => out.hosts.find((host) => host.name === id)\n // 版本列去掉冗余括注与前缀:claude 报 \"2.1.218 (Claude Code)\"、codex 报 \"codex-cli 0.144.6\"\n const versions = clientChecks.map((c) => (hostOf(c.id)?.cli.version || '')\n .replace(/\\s*\\(.*\\)\\s*$/, '').replace(/^\\S+-cli\\s+/, ''))\n const versionWidth = Math.max(...versions.map(displayWidth))\n clientChecks.forEach((check, index) => {\n const host = hostOf(check.id)\n const name = padRight(CHECK_LABELS[check.id], nameWidth)\n const version = padRight(versions[index], versionWidth)\n const where = host?.cli.found ? tilde(host.skillExposureRoot) : `未安装 ${host?.cli.command || ''}`\n console.log(` ${glyph(check.level)} ${strong(name)} ${muted(version)} ${\n check.value || check.summary} ${noun(where)}`)\n })\n }\n\n // 「下一步」此前逐字重复上面已经打过的修复命令。只留没展示过的。\n const shown = new Set(out.checks.filter((c) => c.level !== 'pass' && c.fix).map((c) => c.fix))\n const remaining = out.nextSteps.filter((step) => !shown.has(step))\n if (remaining.length) {\n console.log('')\n for (const step of remaining) console.log(` ${strong('下一步')} ${noun(plain(step))}`)\n }\n}\n\n/** 反引号在终端里不是强调,是噪声;着色已经承担了同一职责。 */\nfunction plain(text: string): string {\n return text.replace(/`/g, '')\n}\n\n/** 家目录缩成 ~/,省掉对读者零信息量的前缀。 */\nfunction tilde(path: string): string {\n const home = process.env.HOME || ''\n return home && path.startsWith(home) ? `~${path.slice(home.length)}` : path\n}\n\nfunction printProjectInfo(out: AgentProjectInfo): void {\n console.log(`${strong('dingtalk-agent Project')} · ${noun(out.project.name)}`)\n console.log(` root=${out.root}`)\n console.log(` source=${out.source} manifest=${out.manifest || '(synthetic legacy)'}`)\n console.log(` hash=${out.manifestHash} dta=${out.project.dtaVersion}`)\n console.log(` current=${out.currentWorkspace || '(not selected)'}`)\n for (const workspace of out.workspaces) {\n console.log(` ${workspace.current ? strong('*') : muted('-')} ${workspace.name} · ${workspace.provider.kind} · ${workspace.status}`)\n }\n}\n\nfunction printWorkspaceList(out: AgentProjectInfo): void {\n console.log(`${strong('dingtalk-agent workspaces')} · ${noun(out.project.name)}`)\n if (!out.workspaces.length) console.log(muted(' 尚未声明 Development Workspace。'))\n for (const workspace of out.workspaces) {\n console.log(\n ` ${workspace.current ? strong('*') : muted('-')} ${workspace.name} provider=${workspace.provider.kind} ` +\n `stage=${workspace.stage} status=${workspace.status}`,\n )\n }\n}\n\nfunction printDevelopmentWorkspace(out: DevelopmentWorkspaceView): void {\n console.log(`${strong('dingtalk-agent workspace')} · ${noun(out.name)}`)\n console.log(` provider=${out.provider.kind} stage=${out.stage} status=${out.status}`)\n console.log(` desired=${out.desiredHash} observed=${out.observedHash || '-'}`)\n console.log(` current=${out.current} legacy=${out.legacy}`)\n for (const [slot, route] of Object.entries(out.storage)) console.log(` ${slot}=${route}`)\n for (const source of out.configSources) console.log(` source=${source}`)\n}\n\nfunction printDevelopmentWorkspaceDoctor(out: DevelopmentWorkspaceDoctorReport): void {\n console.log(`${strong('dingtalk-agent workspace doctor')} · ${noun(out.workspace)} · ${mark(out.ready ? 'pass' : 'warn', out.ready ? 'READY' : 'PARTIAL')}`)\n console.log(` provider=${out.provider} status=${out.status}`)\n console.log(` sideEffect=${out.sideEffect} dingtalkSideEffect=${out.dingtalkSideEffect}`)\n for (const check of out.checks) {\n const word = check.level === 'pass' ? 'PASS' : check.level === 'warn' ? 'WARN' : 'FAIL'\n console.log(` ${mark(levelOf(check.level), word)} ${check.id}: ${check.summary}`)\n if (check.fix && check.level !== 'pass') console.log(` fix: ${noun(check.fix)}`)\n }\n}\n\nfunction printOpenCodeWorkspaceOperation(out: Record<string, any>): void {\n const applied = out.$schema === 'dingtalk-agent/opencode-workspace-apply@1'\n const glyph = applied\n ? mark(out.applied ? 'pass' : 'muted', out.applied ? '✅' : '↩️')\n : mark('muted', 'DRY-RUN')\n console.log(`${glyph} OpenCode Workspace ${noun(out.workspace)}`)\n console.log(` action=${out.action} model=${out.model}`)\n console.log(` desired=${out.desiredHash} observed=${out.observedHash || '-'}`)\n console.log(` managed=${out.managedPath}`)\n if (!applied && out.writes?.length) console.log(` writes=${out.writes.join(', ')}`)\n}\n\nfunction printMulticaWorkspaceOperation(out: Record<string, any>): void {\n const passed = out.passed ?? out.readyForApply ?? out.blocking?.length === 0\n const mode = out.remoteRead ? 'REMOTE-READ' : 'DRY-RUN'\n console.log(`${mark(passed ? 'pass' : 'warn', passed ? '✅' : '⚠️')} ${mode} Multica Workspace ${noun(out.workspace)}`)\n console.log(` schema=${out.$schema} profile=${out.profile || '-'}`)\n if (out.planId) console.log(` plan=${out.planId}`)\n if (out.inspectionId) console.log(` inspection=${out.inspectionId}`)\n if (out.desiredHash) console.log(` desired=${out.desiredHash}`)\n if (out.observedHash) console.log(` observed=${out.observedHash}`)\n if (out.diff?.length) console.log(` diff=${out.diff.join(', ')}`)\n if (out.blocking?.length) console.log(` blocking=${out.blocking.join(', ')}`)\n if (out.failures?.length) console.log(` failures=${out.failures.join(', ')}`)\n printFailureDetails(out.failureDetails, ' ')\n // 同名候选就在 JSON 里,人类输出却只给一个枚举串——把出路直接摆出来(B10/C3)。\n if (out.failures?.includes('agent.unbound-name-candidates') &&\n Array.isArray(out.resources?.agentCandidates) && out.resources.agentCandidates.length) {\n for (const candidate of out.resources.agentCandidates) {\n console.log(` candidate: ${candidate.id} ${candidate.name}${candidate.archived ? ' (archived)' : ''}`)\n }\n console.log(' fix: 核对后在 manifest 声明 provider.agentIdFrom 指向正确 ID' +\n '(或依赖首次 deploy 写入的 state.binding.agentId);不要按名字猜绑定')\n }\n if (out.evidencePath) console.log(` evidence=${out.evidencePath}`)\n console.log(` remoteWrite=${out.remoteWrite} dingtalkSideEffect=${out.dingtalkSideEffect}`)\n}\n\n/** 期望 vs 实际 + 下一步:把 fail-closed 从「正确但沉默」升级为「正确且能自救」。 */\nfunction printFailureDetails(details: unknown, indent: string): void {\n if (!Array.isArray(details)) return\n for (const detail of details) {\n if (!detail || typeof detail !== 'object') continue\n const item = detail as Record<string, unknown>\n const format = (value: unknown): string =>\n Array.isArray(value) ? value.join(', ') : typeof value === 'string' ? value : ''\n const expected = format(item.expected)\n const actual = format(item.actual)\n const parts = [\n expected ? `expected=${expected}` : '', actual ? `actual=${actual}` : '',\n ].filter(Boolean).join(' ')\n console.log(`${indent}- ${item.code}${parts ? `: ${parts}` : ''}`)\n if (typeof item.hint === 'string' && item.hint) console.log(`${indent} → ${item.hint}`)\n }\n}\n\nfunction printMulticaDeployment(out: Record<string, any>): void {\n console.log(`${strong('Multica deploy')}: ${noun(out.workspace || '<unknown>')}`)\n if (out.planId) console.log(` plan: ${out.planId}`)\n if (out.operationId) console.log(` operation: ${out.operationId}`)\n if (out.receiptId) console.log(` receipt: ${out.receiptId}`)\n if (out.action) console.log(` action: ${out.action}`)\n if (out.status) console.log(` status: ${out.status}`)\n if (typeof out.providerReady === 'boolean') console.log(` provider ready: ${out.providerReady}`)\n // 首次创建 Agent 后把「二次部署怎么绑定」讲在当下(B10):正常路径 ID 已存 state\n // 自动复用;换机器/state 丢失才需要显式声明。\n if (out.action === 'apply' && out.agent?.action === 'create' && out.agent?.id) {\n console.log(` agent created: ${out.agent.id}`)\n console.log(` ID 已写入 .dingtalk-agent/state/workspaces/${out.workspace}.json,二次部署与 schedule 自动复用`)\n console.log(' 换机器或 state 丢失时:在 manifest 声明 provider.agentIdFrom=env:<VAR> 并 export 该 ID')\n }\n if (out.rebind?.fromRuntimeId) {\n console.log(` rebind: ${out.rebind.fromRuntimeId} -> ${out.rebind.toRuntimeId}`)\n }\n // 交付了哪份判据要看得见(issue #46):运行拍读的就是这个文件,operator 得能对账。\n if (out.predicateRegistry) {\n const reg = out.predicateRegistry\n console.log(` predicate registry: ${reg.skill}/${reg.path} (${reg.hash.slice(0, 12)})`)\n console.log(` ids: ${reg.ids.join(', ') || '-'} schedules: ${reg.schedules.join(', ') || '-'}`)\n }\n const smoke = out.smoke || out.receipt?.smoke\n if (smoke && smoke.status && smoke.status !== 'not-run') {\n const classified = smoke.classification ? ` (${smoke.classification})` : ''\n console.log(` smoke: ${smoke.status}${classified} task=${smoke.taskId || '-'}${smoke.taskStatus ? ` (${smoke.taskStatus})` : ''}`)\n console.log(` loaded: ${smoke.loadedSkills?.length ?? 0}/${smoke.requiredSkills?.length ?? 0} response: ${smoke.responsePassed === true}`)\n if (Array.isArray(smoke.unrecognizedTools) && smoke.unrecognizedTools.length) {\n console.log(` unrecognized tools: ${smoke.unrecognizedTools.join(', ')}`)\n }\n }\n if (Array.isArray(out.blocking) && out.blocking.length) {\n console.log(` blocking: ${out.blocking.join(', ')}`)\n }\n if (Array.isArray(out.failures) && out.failures.length) {\n console.log(` failures: ${out.failures.join(', ')}`)\n }\n printFailureDetails(out.failureDetails || out.receipt?.failureDetails, ' ')\n if (Array.isArray(smoke?.failureDetails)) printFailureDetails(smoke.failureDetails, ' ')\n if (out.receiptFrozen && out.nextAction) {\n console.log(muted(` smoke 字段为 apply 时刻的冻结值;刷新: ${out.nextAction}`))\n }\n if (out.triggerWrite === false) console.log(' triggers: unchanged')\n}\n\nfunction printPromotion(out: Record<string, any>): void {\n console.log(`${strong('Promotion')}: ${noun(out.promotionId || out.candidateId || out.candidate?.candidateId || '<none>')}`)\n if (out.planId) console.log(` plan: ${out.planId}`)\n if (out.routeId) console.log(` route: ${out.routeId}`)\n if (out.status) console.log(` status: ${out.status}`)\n if (out.target?.observedHash) console.log(` observed: ${out.target.observedHash}`)\n if (out.candidatePath) console.log(` candidate: ${out.candidatePath}`)\n if (out.candidate?.evidencePath) console.log(` candidate: ${out.candidate.evidencePath}`)\n if (Array.isArray(out.blocking) && out.blocking.length) console.log(` blocking: ${out.blocking.join(', ')}`)\n if (out.triggerWrite === false) console.log(' triggers: unchanged')\n}\n\nfunction parseOptionalTimeout(value: string | undefined, label: string): number | undefined {\n if (value === undefined) return undefined\n const parsed = Number(value)\n if (!Number.isInteger(parsed) || parsed < 100 || parsed > 300_000) {\n fail(`${label} 必须是 100..300000 的整数毫秒`)\n }\n return parsed\n}\n\nfunction readProjectText(start: string, ref: string, label: string): string {\n const root = inspectAgentProject(start, PACKAGE_JSON.version).root\n const candidate = resolve(root, ref)\n const lexical = relative(root, candidate)\n if (lexical === '..' || lexical.startsWith(`..${process.platform === 'win32' ? '\\\\' : '/'}`)) {\n throw new Error(`${label} 必须位于 Agent Project 内: ${ref}`)\n }\n if (!existsSync(candidate)) throw new Error(`${label} 不存在: ${ref}`)\n const actual = realpathSync(candidate)\n const resolved = relative(root, actual)\n if (resolved === '..' || resolved.startsWith(`..${process.platform === 'win32' ? '\\\\' : '/'}`)) {\n throw new Error(`${label} 真实路径越出 Agent Project: ${ref}`)\n }\n return readFileSync(actual, 'utf8')\n}\n\nfunction rejectWorkspaceOptions(\n values: Record<string, unknown>, allowed: string[], command: string,\n): void {\n const extras = Object.entries(values)\n .filter(([key, value]) => !allowed.includes(key) && value !== undefined && value !== false)\n .map(([key]) => `--${key}`)\n if (extras.length) fail(`${command} 不接受参数: ${extras.join(', ')}`)\n}\n\nfunction printSetup(out: ReturnType<typeof setup>): void {\n console.log(`${out.dryRun ? mark('muted', 'DRY-RUN') : mark('pass', '✅')} ${strong('dingtalk-agent setup')}`)\n console.log(` CLI: ${noun(out.cli.executable)}`)\n console.log(` 短命令: ${noun(out.cli.alias)}`)\n console.log(` Skill: ${noun(out.skill.canonical.path)}`)\n if (!out.shell.pathReady) {\n console.log(` 当前 shell 尚未加载 PATH;本次终端执行: ${noun(out.shell.activateCommand)}`)\n if (out.shell.rcFile) console.log(muted(` 新终端会从 ${out.shell.rcFile} 自动加载`))\n }\n printDoctor(out.doctor)\n console.log(`\\n开始使用: ${noun(out.nextCommand)}`)\n}\n\n/**\n * 确认之前的抬头:告诉人「将要去哪」,好让 [y/N] 是个有信息的决定。\n *\n * 三态必须分开说。只判 outdated 会让 `--version <旧版> --force` 显示成\n * \"已是最新版本\",用户确认之后却真的降级——在唯一的不可逆动作前给了反的信息。\n */\nfunction printUpgradePreamble(\n checked: UpgradeCheckResult, options: { dryRun: boolean; force: boolean },\n): void {\n const { theme } = stderrUi()\n const arrow = (from: string, to: string, paint: (v: unknown) => string) =>\n `${theme.dim(from)} ${theme.bold('→')} ${paint(to)}`\n\n if (checked.relation === 'same' && !options.force && !options.dryRun) {\n console.error(` ${theme.success('✔')} 已是最新版本 ${theme.bold(checked.currentVersion)}`)\n console.error(theme.dim(' 仍会重新校验环境;只想查版本可用 dta upgrade --check'))\n return\n }\n const label = checked.relation === 'upgrade' ? '新版本可用'\n : checked.relation === 'downgrade' ? '降级' : '重装'\n const value = checked.relation === 'upgrade'\n ? arrow(checked.currentVersion, checked.targetVersion, theme.success)\n : checked.relation === 'downgrade'\n ? `${arrow(checked.currentVersion, checked.targetVersion, theme.warn)}${theme.warn('(降级)')}`\n : `${theme.bold(checked.targetVersion)}${theme.dim('(与当前版本相同,将强制重装)')}`\n for (const line of renderPairs([\n [label, value],\n ['通道', `${checked.channel} ${theme.dim(checked.pinnedSource)}`],\n ])) console.error(line)\n console.error('')\n}\n\nfunction printUpgradeCheck(checked: UpgradeCheckResult): void {\n const { theme } = stdoutUi()\n const glyph = checked.relation === 'upgrade' ? theme.warn('⬆️')\n : checked.relation === 'downgrade' ? theme.warn('⬇️') : theme.success('✅')\n const summary = checked.relation === 'upgrade'\n ? `${theme.dim(checked.currentVersion)} → ${theme.success(checked.targetVersion)}`\n : checked.relation === 'downgrade'\n ? `${theme.dim(checked.currentVersion)} → ${theme.warn(checked.targetVersion)}(目标更旧)`\n : `${theme.bold(checked.currentVersion)}(已是最新)`\n console.log(`${glyph} dta upgrade --check: ${summary}`)\n console.log(` target=${theme.noun(checked.pinnedSource)} channel=${checked.channel}`)\n if (checked.relation === 'upgrade') console.log(` ${theme.dim('运行 dta upgrade 执行升级')}`)\n if (checked.relation === 'downgrade') {\n console.log(` ${theme.dim(`降级需显式确认: dta upgrade --version ${checked.targetVersion} --force`)}`)\n }\n}\n\nfunction printUpgrade(out: ReturnType<typeof upgradeAgent>): void {\n const { theme } = stdoutUi()\n const mark = out.dryRun ? theme.dim('DRY-RUN') : out.ready ? theme.success('✅') : theme.warn('⚠️')\n const relation = out.changed\n ? `${theme.dim(out.currentVersion)} → ${theme.success(out.targetVersion)}`\n : `${out.targetVersion}(已是当前版本)`\n console.log(`${mark} dta upgrade: ${relation}`)\n console.log(` target=${theme.noun(out.target)}`)\n console.log(` CLI=${theme.noun(out.executable)}`)\n if (out.dryRun) {\n console.log(` 将执行: ${theme.noun(out.commands.install)}`)\n console.log(` 将复核: ${theme.noun(out.commands.verify)}`)\n console.log(` ${theme.dim('移除 --dry-run 以实际执行升级')}`)\n } else if (out.ready) {\n console.log(' setup / DWS / Skill / Claude Code / Codex / OpenCode 全部 ready')\n // 出口指引:验证命令 + 后悔药,都是可以直接复制的\n console.log(` ${theme.dim(`验证: dta --version${\n out.changed ? ` 回退: dta upgrade --version ${out.currentVersion} --force` : ''\n }`)}`)\n } else {\n console.log(` CLI 已更新;环境复核未完全 ready,请运行: ${theme.noun(out.commands.verify)}`)\n }\n}\n"]}