Refine WebUI commands and data skills
This commit is contained in:
+112
-1
@@ -41,6 +41,110 @@ from src.token_budget import calculate_token_budget
|
||||
|
||||
STATIC_DIR = Path(__file__).resolve().parents[2] / 'frontend' / 'legacy-static'
|
||||
|
||||
# WebUI 的快速入口只展示可以通过对话输入框安全执行的 slash command。
|
||||
# 这些命令仍然保留在终端 `/` 列表里,但不适合作为 WebUI 快捷项。
|
||||
WEBUI_HIDDEN_SLASH_COMMANDS = {
|
||||
'exit',
|
||||
'quit',
|
||||
'feedback',
|
||||
'bug',
|
||||
'upgrade',
|
||||
'stickers',
|
||||
'chrome',
|
||||
'install-github-app',
|
||||
'install-slack-app',
|
||||
'privacy-settings',
|
||||
'mobile',
|
||||
'ios',
|
||||
'android',
|
||||
'desktop',
|
||||
'app',
|
||||
'vim',
|
||||
'theme',
|
||||
}
|
||||
|
||||
WEBUI_SLASH_COMMAND_DESCRIPTIONS_ZH = {
|
||||
'help': '查看内置 slash command 帮助。',
|
||||
'context': '查看当前会话上下文用量估算。',
|
||||
'context-raw': '查看原始环境、用户上下文和系统上下文快照。',
|
||||
'token-budget': '查看当前 token 预算窗口、保留量和提示词长度限制。',
|
||||
'mcp': '查看本地 MCP 清单和资源数量。',
|
||||
'search': '查看搜索运行状态、切换搜索提供方,或执行一次网页搜索。',
|
||||
'remote': '查看远程运行状态,或激活远程目标/配置。',
|
||||
'worktree': '查看受管 git worktree 状态,或进入/退出当前 worktree 会话。',
|
||||
'account': '查看账号运行状态或已配置账号档案。',
|
||||
'ask': '查看 ask-user 运行状态或历史记录。',
|
||||
'login': '激活本地账号档案或临时身份。',
|
||||
'logout': '清除当前本地账号会话。',
|
||||
'config': '查看配置状态、有效配置、配置来源或某个配置值。',
|
||||
'lsp': '查看 LSP 状态,或执行符号、定义、引用、悬停、调用层级和诊断查询。',
|
||||
'remotes': '列出本地远程配置。',
|
||||
'ssh': '激活 SSH 远程目标/配置。',
|
||||
'teleport': '激活 Teleport 远程目标/配置。',
|
||||
'direct-connect': '激活直连远程目标/配置。',
|
||||
'deep-link': '激活 deep-link 远程目标/配置。',
|
||||
'disconnect': '断开当前远程运行目标。',
|
||||
'resources': '列出本地 MCP 资源,可按关键词过滤。',
|
||||
'resource': '按 URI 渲染一个本地 MCP 资源。',
|
||||
'tasks': '查看本地运行时任务列表,可按状态过滤。',
|
||||
'workflows': '列出从工作流清单发现的本地 workflows。',
|
||||
'workflow': '查看或运行一个本地 workflow。',
|
||||
'triggers': '列出从清单发现的本地远程触发器。',
|
||||
'trigger': '查看或运行一个远程触发器。',
|
||||
'teams': '列出本地协作团队配置。',
|
||||
'team': '查看一个本地协作团队。',
|
||||
'messages': '查看所有团队或某个团队的协作消息。',
|
||||
'task-next': '查看本地任务列表中的下一个可执行任务。',
|
||||
'plan': '查看当前本地运行计划。',
|
||||
'task': '按 id 查看一个本地任务。',
|
||||
'prompt': '渲染当前生效的系统提示词。',
|
||||
'permissions': '查看当前工具权限模式。',
|
||||
'hooks': '查看已发现的本地 hook 和 policy 清单。',
|
||||
'trust': '查看 workspace 信任模式、受管设置和安全环境变量。',
|
||||
'model': '查看或修改当前 Agent 实例使用的模型。',
|
||||
'tools': '列出已注册工具,以及当前权限是否允许调用。',
|
||||
'agents': '列出本地 Agent 配置,或查看某个 Agent 定义。',
|
||||
'memory': '查看当前加载的 CLAUDE.md 记忆包和已发现文件。',
|
||||
'status': '查看当前运行时和会话状态摘要。',
|
||||
'clear': '清理当前进程中的临时运行状态。',
|
||||
'compact': '总结并压缩当前对话,释放上下文空间。',
|
||||
'cost': '查看当前会话的总耗时和费用估算。',
|
||||
'diff': '查看当前工作区未提交改动。',
|
||||
'files': '列出当前会话上下文中已加载的文件。',
|
||||
'copy': '把上一条助手回复写入临时文件。',
|
||||
'export': '导出当前对话为文本文件。',
|
||||
'stats': '查看会话使用统计。',
|
||||
'tag': '给当前会话添加或移除可搜索标签。',
|
||||
'rename': '重命名当前对话。',
|
||||
'branch': '基于当前对话创建一个分支/副本。',
|
||||
'effort': '查看或设置模型推理强度。',
|
||||
'doctor': '诊断并验证 claw-code 安装和配置。',
|
||||
'commit': '创建 git commit。',
|
||||
'pr-comments': '读取 GitHub PR 评论。',
|
||||
'resume': '恢复之前的对话。',
|
||||
'add-dir': '添加新的工作目录。',
|
||||
'skills': '列出可用 Skills。',
|
||||
'fast': '切换 fast mode。',
|
||||
'rewind': '把对话恢复到之前的 checkpoint。',
|
||||
'output-style': '已废弃:请使用 /config 修改输出风格。',
|
||||
'release-notes': '查看本地 release notes 或变更日志链接。',
|
||||
'extra-usage': '查看 extra-usage 配置链接。',
|
||||
'passes': '查看 Claude Code guest passes 信息。',
|
||||
'rate-limit-options': '查看账号触发限流时的可选处理方式。',
|
||||
'reload-plugins': '重新加载本地插件清单并报告数量。',
|
||||
'voice': '切换当前 workspace 的 voice mode 设置。',
|
||||
'sandbox-toggle': '查看 sandbox 状态,或排除一条命令模式。',
|
||||
'keybindings': '打印或创建本地快捷键配置文件。',
|
||||
'btw': '向模型快速提一个旁路问题,不修改当前任务状态。',
|
||||
'version': '打印当前 Agent 版本。',
|
||||
'init': '初始化 CLAUDE.md 代码库说明文件。',
|
||||
'ide': '查看检测到的 IDE/终端集成状态。',
|
||||
'plugin': '列出已安装插件,或查看插件子命令用法。',
|
||||
'remote-env': '列出远程环境,或设置默认配置。',
|
||||
'bridge': '查看 remote-control bridge 状态。',
|
||||
'remote-setup': '检查 Claude Code on the web 的准备状态。',
|
||||
}
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Agent state holder
|
||||
@@ -245,11 +349,18 @@ def create_app(state: AgentState) -> FastAPI:
|
||||
async def list_slash_commands() -> list[dict[str, Any]]:
|
||||
commands: list[dict[str, Any]] = []
|
||||
for spec in get_slash_command_specs():
|
||||
if any(name in WEBUI_HIDDEN_SLASH_COMMANDS for name in spec.names):
|
||||
continue
|
||||
commands.append(
|
||||
{
|
||||
'names': list(spec.names),
|
||||
'primary': spec.names[0],
|
||||
'description': spec.description,
|
||||
'description': WEBUI_SLASH_COMMAND_DESCRIPTIONS_ZH.get(
|
||||
spec.names[0],
|
||||
spec.description,
|
||||
),
|
||||
'source': 'slash_command',
|
||||
'webui_supported': True,
|
||||
}
|
||||
)
|
||||
return commands
|
||||
|
||||
Reference in New Issue
Block a user