Phase 003: remove the coding-agent and ekko-agent runtimes

Every chat session now runs through the Hermes bridge, so the three chat
chains become feature-equivalent instead of three partially-maintained
dispatch paths. Keeping the coding-agent and in-house agent runtimes alive
meant every bridge change had to be mirrored into two more runtimes that
had already drifted.

Historical rows are read, not migrated: sessions stored with the retired
source normalize to cli on load, workflow graphs naming the retired agents
keep loading and run on the bridge, and the visible-source check plus
SOURCE_LABELS still recognize the old value so those sessions stay listed.

The public surface follows the code: the OpenAPI generator and the MCP
chat-run tool schema drop the six retired entry fields so external callers
are not told about runtimes that no longer exist.

harness-check gains a RETIRED_RUNTIME scan so the residual check is a
mechanical gate instead of a manual grep, with the two surviving read-side
compat sites recorded with reasons.

Refs: docs/phases/phase_003.md
This commit is contained in:
2026-10-16 13:27:50 +08:00
parent c93e1fe1bd
commit 8c1ddf415f
123 changed files with 567 additions and 23599 deletions
+1 -82
View File
@@ -220,7 +220,6 @@ export default {
groupMonitoringShort: '监控',
groupTools: '工具',
groupToolsShort: "工具",
codingAgents: "编程工具",
versionPreview: "版本预览",
settings: '设置',
connected: '已连接',
@@ -2061,86 +2060,6 @@ export default {
stopSuccess: "预览已停止",
},
codingAgents: {
title: "编程工具",
notice: "并非所有提供商和模型都兼容。",
claudeDescription: "Anthropic CLI,适合 print mode 单次任务和交互式编程会话。",
codexDescription: "OpenAI CLI,以及 Hermes openai-codex provider 的仓库任务流程。",
copyCommand: "复制",
commandCopied: "命令已复制",
commandCopyFailed: "复制失败",
refresh: "刷新",
checking: "检测中",
installStatus: "安装情况",
installed: "已安装",
notInstalled: "未安装",
installRequired: "{agent} 未安装,请先安装后再创建会话。",
installNow: "一键安装",
installing: "安装中",
installSuccess: "安装完成",
installFailed: "安装失败",
installFailedHermesHint: "安装失败,请让 Hermes 帮你安装。",
installFailureReason: "错误原因",
nodeEnvironmentMissing: "未检测到可用的 Node/npm 环境,请先安装 Node.js 后重试。",
deleteNow: "删除",
deleting: "删除中",
deleteSuccess: "删除完成",
deleteFailed: "删除失败",
configFiles: "配置文件",
profileScope: "配置",
providerScope: "提供商",
providerPlaceholder: "例如 custom:glm",
modelScope: "模型",
modelPlaceholder: "选择模型",
launchModeScope: "启动方式",
launchModeGlobal: "全局默认配置",
launchModeScoped: "选择提供商和模型",
protocolScope: "协议",
protocolOpenAiChat: "OpenAI Chat Completions (/v1/chat/completions)",
protocolOpenAiResponses: "OpenAI Responses (/v1/responses)",
protocolAnthropicMessages: "Anthropic Messages (/v1/messages)",
reloadConfig: "重新读取配置",
configFileNotCreated: "未创建",
configLoadFailed: "读取配置文件失败",
loadFailed: "检测编程工具失败",
launch: "启动",
launchTitle: "启动编程工具",
nativeTerminal: "原生终端",
builtInTerminal: "内置终端",
launchPrepared: "启动配置已生成",
launchPrepareFailed: "生成启动配置失败",
nativeLaunchStarted: "已打开原生终端",
nativeLaunchFailed: "打开原生终端失败",
terminalTitle: "编程工具终端",
loadProvidersFailed: "读取当前配置的提供商失败",
selectProviderModel: "请选择提供商和模型",
launchConfigDir: "启动配置目录",
launchCommand: "启动命令",
table: {
tool: "工具",
kind: "步骤",
command: "命令",
note: "说明",
action: "操作",
},
kinds: {
install: "安装",
auth: "认证",
health: "检查",
run: "运行",
},
notes: {
claudeInstall: "全局安装 Claude Code CLI。",
codexInstall: "全局安装 Codex CLI。",
claudeAuth: "检查 Claude Code 登录状态;未登录时先运行 claude。",
codexAuth: "添加 Hermes 管理的 OpenAI Codex OAuth 凭证。",
claudeHealth: "检查自动更新器和本地 CLI 健康状态。",
codexHealth: "确认 Codex CLI 已在 PATH 中可用。",
claudeRun: "Print mode 最适合 API 驱动的单次任务。",
codexRun: "Codex 单次任务需要在 git 仓库中运行。",
},
},
// 平台频道设置
platform: {
requireMention: "需要 {'@'}提及",
@@ -2328,7 +2247,7 @@ export default {
cacheHitRate: '缓存命中率',
modelBreakdown: '模型分布',
agentBreakdown: 'Agent 分布',
agents: { hermes: 'Hermes Agent', claudeCode: 'Claude Code', codex: 'Codex', ekkoAgent: 'Ekko Agent', unknown: '未知' },
agents: { hermes: 'Hermes Agent', unknown: '未知' },
dailyTrend: '每日用量',
date: '日期',
tokens: 'Token',