feat: add CLI Viewer Page with multi-pane layout and state management

- Implemented the CliViewerPage component for displaying CLI outputs in a configurable multi-pane layout.
- Integrated Zustand for state management, allowing for dynamic layout changes and tab management.
- Added layout options: single, split horizontal, split vertical, and 2x2 grid.
- Created viewerStore for managing layout, panes, and tabs, including actions for adding/removing panes and tabs.
- Added CoordinatorPage barrel export for easier imports.
This commit is contained in:
catlog22
2026-02-03 17:28:26 +08:00
parent b63e254f36
commit 37ba849e75
101 changed files with 10422 additions and 1145 deletions

View File

@@ -45,5 +45,7 @@
"tokens": "Tokens: {count}",
"duration": "Duration: {value}",
"model": "Model: {name}",
"user": "User"
"user": "User",
"popOutToPage": "Open in Full Page",
"openInViewer": "Open in CLI Viewer"
}

View File

@@ -0,0 +1,51 @@
{
"page": {
"title": "CLI Viewer",
"subtitle": "{count, plural, =0 {No active sessions} one {# active session} other {# active sessions}}"
},
"layout": {
"title": "Layout",
"single": "Single",
"splitH": "Split Horizontal",
"splitV": "Split Vertical",
"grid": "Grid 2x2"
},
"pane": {
"empty": "No execution selected",
"selectExecution": "Select Execution",
"loading": "Loading output for {executionId}...",
"close": "Close",
"maximize": "Maximize",
"minimize": "Minimize"
},
"toolbar": {
"refresh": "Refresh",
"clearAll": "Clear All",
"settings": "Settings"
},
"emptyState": {
"title": "No CLI Executions",
"description": "Select an execution from the sidebar or start a new CLI session to view output here.",
"action": "View Executions"
},
"tabs": {
"noTabs": "No tabs open",
"addTab": "Add tab",
"closeTab": "Close tab",
"pinTab": "Pin tab",
"unpinTab": "Unpin tab"
},
"picker": {
"selectExecution": "Select Execution",
"searchExecutions": "Search executions...",
"noExecutions": "No executions available",
"noMatchingExecutions": "No matching executions",
"alreadyOpen": "Already open",
"executionCount": "{available} of {total} executions available"
},
"paneActions": {
"splitHorizontal": "Split Horizontal",
"splitVertical": "Split Vertical",
"closePane": "Close Pane"
}
}

View File

@@ -59,12 +59,16 @@
"inactive": "Inactive",
"pending": "Pending",
"inProgress": "In Progress",
"running": "Running",
"initializing": "Initializing",
"planning": "Planning",
"completed": "Completed",
"failed": "Failed",
"blocked": "Blocked",
"cancelled": "Cancelled",
"paused": "Paused",
"archived": "Archived",
"idle": "Idle",
"unknown": "Unknown",
"draft": "Draft",
"published": "Published",
@@ -91,7 +95,10 @@
"months": "months",
"years": "years",
"ago": "ago",
"justNow": "just now"
"justNow": "just now",
"minutesAgo": "{count}m ago",
"hoursAgo": "{count}h ago",
"daysAgo": "{count}d ago"
},
"buttons": {
"new": "New",
@@ -164,7 +171,11 @@
"todayActivity": "Today's Activity",
"totalCommands": "Total Commands",
"totalSkills": "Total Skills",
"categories": "Categories"
"categories": "Categories",
"total": "Total"
},
"labels": {
"progress": "Progress"
},
"dialog": {
"createSession": "Create New Session",
@@ -200,6 +211,15 @@
"disconnected": "Ticker disconnected",
"aria_label": "Real-time activity ticker"
},
"dashboard": {
"config": {
"title": "Widgets",
"widgets": "Dashboard Widgets",
"hideAll": "Hide All",
"showAll": "Show All",
"resetLayout": "Reset Layout"
}
},
"all": "All",
"yes": "Yes",
"no": "No",
@@ -252,78 +272,6 @@
"no": "No",
"required": "This question is required"
},
"coordinator": {
"page": {
"title": "Coordinator",
"status": "Status: {status}",
"startButton": "Start Coordinator",
"noNodeSelected": "Select a node to view details"
},
"modal": {
"title": "Start Coordinator",
"description": "Describe the task you want the coordinator to execute"
},
"form": {
"taskDescription": "Task Description",
"taskDescriptionPlaceholder": "Describe what you want the coordinator to do (minimum 10 characters)...",
"parameters": "Parameters (Optional)",
"parametersPlaceholder": "{\"key\": \"value\"}",
"parametersHelp": "Optional JSON parameters for the coordinator execution",
"characterCount": "{current} / {max} characters (min: {min})",
"start": "Start Coordinator",
"starting": "Starting..."
},
"validation": {
"taskDescriptionRequired": "Task description is required",
"taskDescriptionTooShort": "Task description must be at least 10 characters",
"taskDescriptionTooLong": "Task description must not exceed 2000 characters",
"parametersInvalidJson": "Parameters must be valid JSON",
"answerRequired": "An answer is required"
},
"success": {
"started": "Coordinator started successfully"
},
"status": {
"pending": "Pending",
"running": "Running",
"completed": "Completed",
"failed": "Failed",
"skipped": "Skipped"
},
"logs": "Logs",
"entries": "entries",
"error": "Error",
"output": "Output",
"startedAt": "Started At",
"completedAt": "Completed At",
"retrying": "Retrying...",
"retry": "Retry",
"skipping": "Skipping...",
"skip": "Skip",
"logLevel": "Log Level",
"level": {
"all": "All",
"info": "Info",
"warn": "Warning",
"error": "Error",
"debug": "Debug"
},
"noLogs": "No logs available",
"question": {
"answer": "Answer",
"textPlaceholder": "Enter your answer...",
"selectOne": "Select One",
"selectMultiple": "Select Multiple",
"confirm": "Confirm",
"yes": "Yes",
"no": "No",
"submitting": "Submitting...",
"submit": "Submit"
},
"error": {
"submitFailed": "Failed to submit answer"
}
},
"feedback": {
"error": {
"network": "Network error. Please check your connection and try again.",

View File

@@ -0,0 +1,141 @@
{
"page": {
"title": "Coordinator",
"status": "Status: {status}",
"startButton": "Start Coordinator",
"noNodeSelected": "Select a node to view details"
},
"taskDetail": {
"title": "Task Details",
"noSelection": "Select a task to view execution details"
},
"emptyState": {
"title": "Workflow Coordinator",
"subtitle": "Intelligent task orchestration with real-time monitoring for complex workflows",
"startButton": "Launch Coordinator",
"feature1": {
"title": "Intelligent Execution",
"description": "Smart task orchestration with dependency management and parallel execution"
},
"feature2": {
"title": "Real-time Monitoring",
"description": "Pipeline visualization with detailed logs and execution metrics"
},
"feature3": {
"title": "Flexible Control",
"description": "Interactive control with retry, skip, and pause capabilities"
},
"quickStart": {
"title": "Quick Start",
"step1": "Click the 'Launch Coordinator' button to begin",
"step2": "Describe your workflow task in natural language",
"step3": "Monitor execution pipeline and interact with running tasks"
}
},
"multiStep": {
"step1": {
"title": "Welcome to Coordinator",
"subtitle": "Intelligent workflow orchestration for automated task execution",
"feature1": { "title": "Intelligent Execution", "description": "Smart task orchestration with dependency management and parallel execution" },
"feature2": { "title": "Real-time Monitoring", "description": "Pipeline visualization with detailed logs and execution metrics" },
"feature3": { "title": "Flexible Control", "description": "Interactive control with retry, skip, and pause capabilities" }
},
"step2": {
"title": "Configure Parameters",
"subtitle": "Select a template or customize parameters",
"templateLabel": "Select Template",
"templates": {
"featureDev": "Feature Development",
"apiIntegration": "API Integration",
"performanceOptimization": "Performance Optimization",
"documentGeneration": "Document Generation"
},
"taskName": "Task Name",
"taskNamePlaceholder": "Enter task name...",
"taskDescription": "Task Description",
"taskDescriptionPlaceholder": "Describe your task requirements in detail...",
"customParameters": "Custom Parameters"
},
"progress": { "step": "Step {current} / {total}" },
"actions": { "next": "Next", "back": "Back", "cancel": "Cancel", "submit": "Submit" }
},
"modal": {
"title": "Start Coordinator",
"description": "Describe the task you want the coordinator to execute"
},
"form": {
"taskDescription": "Task Description",
"taskDescriptionPlaceholder": "Describe what you want the coordinator to do (min 10 characters)...",
"parameters": "Parameters (Optional)",
"parametersPlaceholder": "{\"key\": \"value\"}",
"parametersHelp": "Optional JSON parameters for coordinator execution",
"characterCount": "{current} / {max} characters (min: {min})",
"start": "Start Coordinator",
"starting": "Starting..."
},
"validation": {
"taskDescriptionRequired": "Task description is required",
"taskDescriptionTooShort": "Task description must be at least 10 characters",
"taskDescriptionTooLong": "Task description must not exceed 2000 characters",
"parametersInvalidJson": "Parameters must be valid JSON",
"answerRequired": "An answer is required"
},
"success": {
"started": "Coordinator started successfully"
},
"status": {
"pending": "Pending",
"running": "Running",
"completed": "Completed",
"failed": "Failed",
"skipped": "Skipped"
},
"logs": "Logs",
"entries": "entries",
"error": "Error",
"output": "Output",
"startedAt": "Started At",
"completedAt": "Completed At",
"retrying": "Retrying...",
"retry": "Retry",
"skipping": "Skipping...",
"skip": "Skip",
"logLevel": "Log Level",
"level": {
"all": "All",
"info": "Info",
"warn": "Warning",
"error": "Error",
"debug": "Debug"
},
"noLogs": "No logs available",
"question": {
"answer": "Answer",
"textPlaceholder": "Enter your answer...",
"selectOne": "Select One",
"selectMultiple": "Select Multiple",
"confirm": "Confirm",
"yes": "Yes",
"no": "No",
"submitting": "Submitting...",
"submit": "Submit"
},
"taskList": {
"filter": {
"all": "All Tasks",
"running": "Running",
"completed": "Completed",
"failed": "Failed"
},
"sort": {
"time": "By Time",
"name": "By Name"
},
"empty": "No tasks found"
},
"taskCard": {
"nodes": "nodes",
"started": "started"
},
"steps": "steps"
}

View File

@@ -3,6 +3,9 @@
"title": "Execution Monitor",
"subtitle": "View real-time execution status and history"
},
"actions": {
"openCliViewer": "CLI Monitor"
},
"currentExecution": {
"title": "Current Execution",
"noExecution": "No workflow is currently executing",

View File

@@ -17,13 +17,26 @@
"sections": {
"statistics": "Statistics",
"recentSessions": "Recent Sessions",
"recentTasks": "Recent Tasks",
"activeLoops": "Active Loops",
"openIssues": "Open Issues",
"quickActions": "Quick Actions"
"quickActions": "Quick Actions",
"taskDetails": "Task Details"
},
"tabs": {
"allSessions": "All",
"allTasks": "All",
"workflow": "Workflow",
"liteTasks": "Lite Tasks",
"orchestrator": "Orchestrator",
"inProgress": "In Progress",
"planning": "Planning",
"completed": "Completed",
"paused": "Paused"
},
"widgets": {
"workflowStatus": "Workflow Status",
"activity": "Activity Timeline",
"activity": "Activity Heatmap",
"taskTypes": "Task Types"
},
"emptyState": {
@@ -31,6 +44,10 @@
"title": "No Sessions Found",
"message": "No workflow sessions match your current filter."
},
"noTasks": {
"title": "No Tasks",
"message": "No tasks match your current filter."
},
"noLoops": {
"title": "No Active Loops",
"message": "Start a new development loop to begin monitoring progress."
@@ -81,5 +98,8 @@
"errors": {
"loadFailed": "Failed to load dashboard data",
"retry": "Retry"
},
"project": {
"features": "features"
}
}

View File

@@ -9,6 +9,7 @@ import sessions from './sessions.json';
import issues from './issues.json';
import home from './home.json';
import orchestrator from './orchestrator.json';
import coordinator from './coordinator.json';
import loops from './loops.json';
import commands from './commands.json';
import memory from './memory.json';
@@ -37,6 +38,7 @@ import notification from './notification.json';
import notifications from './notifications.json';
import workspace from './workspace.json';
import help from './help.json';
import cliViewer from './cli-viewer.json';
/**
* Flattens nested JSON object to dot-separated keys
@@ -69,6 +71,7 @@ export default {
...flattenMessages(issues, 'issues'),
...flattenMessages(home, 'home'),
...flattenMessages(orchestrator, 'orchestrator'),
...flattenMessages(coordinator, 'coordinator'),
...flattenMessages(loops, 'loops'),
...flattenMessages(commands, 'commands'),
...flattenMessages(memory, 'memory'),
@@ -97,4 +100,5 @@ export default {
...flattenMessages(notifications, 'notifications'),
...flattenMessages(workspace, 'workspace'),
...flattenMessages(help, 'help'),
...flattenMessages(cliViewer, 'cliViewer'),
} as Record<string, string>;

View File

@@ -61,5 +61,11 @@
"explorations": "Explorations",
"context": "Context",
"diagnoses": "Diagnoses"
},
"status": {
"completed": "completed",
"inProgress": "in progress",
"blocked": "blocked",
"pending": "pending"
}
}

View File

@@ -14,7 +14,9 @@
"project": "Project",
"history": "History",
"orchestrator": "Orchestrator",
"coordinator": "Coordinator",
"loops": "Loop Monitor",
"cliViewer": "CLI Viewer",
"issues": "Issues",
"issueQueue": "Issue Queue",
"issueDiscovery": "Issue Discovery",
@@ -75,6 +77,8 @@
"noExecutionsHint": "Start a CLI command to see streaming output",
"noMessages": "Waiting for messages...",
"noMatch": "No matching messages found",
"openInViewer": "Open in CLI Viewer",
"popOutToPage": "Pop out to full page",
"statusBar": "{total} executions | {active} active | {errors} error | {lines} lines",
"copy": "Copy",
"copied": "Copied!",

View File

@@ -8,9 +8,23 @@
"low": "Low"
},
"stats": {
"total": "Total Findings",
"total": "Total",
"dimensions": "Dimensions"
},
"progress": {
"title": "Review Progress",
"totalFindings": "Total Findings",
"critical": "Critical",
"high": "High"
},
"dimensionTabs": {
"all": "All"
},
"filters": {
"severity": "Severity",
"sort": "Sort",
"reset": "Reset"
},
"search": {
"placeholder": "Search findings..."
},
@@ -23,16 +37,38 @@
"count": "{count} selected",
"selectAll": "Select All",
"clearAll": "Clear All",
"clear": "Clear"
"clear": "Clear",
"selectVisible": "Visible",
"selectCritical": "Critical"
},
"export": "Export Fix JSON",
"codeContext": "Code Context",
"rootCause": "Root Cause",
"impact": "Impact",
"recommendations": "Recommendations",
"fixProgress": {
"title": "Fix Progress",
"phase": {
"planning": "PLANNING",
"execution": "EXECUTION",
"completion": "COMPLETION"
},
"stats": {
"total": "Total",
"fixed": "Fixed",
"failed": "Failed",
"pending": "Pending"
},
"activeAgents": "Active Agent",
"activeAgentsPlural": "Active Agents",
"stage": "Stage",
"complete": "{percent}% Complete",
"working": "Working..."
},
"empty": {
"title": "No findings found",
"message": "Try adjusting your filters or search query."
"message": "Try adjusting your filters or search query.",
"noFixProgress": "No fix progress data available"
},
"notFound": {
"title": "Review Session Not Found",

View File

@@ -8,6 +8,15 @@
"archived": "Archived",
"paused": "Paused"
},
"type": {
"workflow": "Workflow",
"review": "Review",
"tdd": "TDD",
"test": "Test",
"docs": "Docs",
"lite-plan": "Lite Plan",
"lite-fix": "Lite Fix"
},
"actions": {
"viewDetails": "View Details",
"archive": "Archive",

View File

@@ -45,5 +45,7 @@
"tokens": "令牌: {count}",
"duration": "时长: {value}",
"model": "模型: {name}",
"user": "用户"
"user": "用户",
"popOutToPage": "在完整页面中打开",
"openInViewer": "在 CLI 查看器中打开"
}

View File

@@ -0,0 +1,51 @@
{
"page": {
"title": "CLI 查看器",
"subtitle": "{count, plural, =0 {暂无活动会话} other {# 个活动会话}}"
},
"layout": {
"title": "布局",
"single": "单窗格",
"splitH": "水平分割",
"splitV": "垂直分割",
"grid": "2x2 网格"
},
"pane": {
"empty": "未选择执行",
"selectExecution": "选择执行",
"loading": "正在加载 {executionId} 的输出...",
"close": "关闭",
"maximize": "最大化",
"minimize": "最小化"
},
"toolbar": {
"refresh": "刷新",
"clearAll": "清空所有",
"settings": "设置"
},
"emptyState": {
"title": "暂无 CLI 执行",
"description": "从侧边栏选择一个执行或启动新的 CLI 会话以在此查看输出。",
"action": "查看执行列表"
},
"tabs": {
"noTabs": "暂无标签页",
"addTab": "添加标签页",
"closeTab": "关闭标签页",
"pinTab": "固定标签页",
"unpinTab": "取消固定"
},
"picker": {
"selectExecution": "选择执行",
"searchExecutions": "搜索执行...",
"noExecutions": "暂无可用执行",
"noMatchingExecutions": "未找到匹配的执行",
"alreadyOpen": "已打开",
"executionCount": "{available}/{total} 个执行可用"
},
"paneActions": {
"splitHorizontal": "水平分割",
"splitVertical": "垂直分割",
"closePane": "关闭窗格"
}
}

View File

@@ -63,12 +63,16 @@
"inactive": "未激活",
"pending": "待处理",
"inProgress": "进行中",
"running": "运行中",
"initializing": "初始化中",
"planning": "规划中",
"completed": "已完成",
"failed": "失败",
"blocked": "已阻塞",
"cancelled": "已取消",
"paused": "已暂停",
"archived": "已归档",
"idle": "空闲",
"unknown": "未知",
"draft": "草稿",
"published": "已发布",
@@ -76,7 +80,7 @@
"deleting": "删除中...",
"label": "状态",
"openIssues": "开放问题",
"enabled": "Enabled",
"enabled": "已启用",
"disabled": "已禁用"
},
"priority": {
@@ -95,7 +99,10 @@
"months": "月",
"years": "年",
"ago": "前",
"justNow": "刚刚"
"justNow": "刚刚",
"minutesAgo": "{count}分钟前",
"hoursAgo": "{count}小时前",
"daysAgo": "{count}天前"
},
"buttons": {
"new": "新建",
@@ -168,7 +175,11 @@
"todayActivity": "今日活动",
"totalCommands": "总命令数",
"totalSkills": "总技能数",
"categories": "分类"
"categories": "分类",
"total": "总计"
},
"labels": {
"progress": "进度"
},
"dialog": {
"createSession": "创建新会话",
@@ -194,6 +205,15 @@
"button": "搜索文档"
}
},
"dashboard": {
"config": {
"title": "部件",
"widgets": "仪表板部件",
"hideAll": "全部隐藏",
"showAll": "全部显示",
"resetLayout": "重置布局"
}
},
"all": "全部",
"yes": "是",
"no": "否",
@@ -246,78 +266,6 @@
"no": "否",
"required": "此问题为必填项"
},
"coordinator": {
"page": {
"title": "协调器",
"status": "状态:{status}",
"startButton": "启动协调器",
"noNodeSelected": "选择节点以查看详细信息"
},
"modal": {
"title": "启动协调器",
"description": "描述您希望协调器执行的任务"
},
"form": {
"taskDescription": "任务描述",
"taskDescriptionPlaceholder": "描述协调器需要执行的任务至少10个字符...",
"parameters": "参数(可选)",
"parametersPlaceholder": "{\"key\": \"value\"}",
"parametersHelp": "协调器执行的可选JSON参数",
"characterCount": "{current} / {max} 字符(最少:{min}",
"start": "启动协调器",
"starting": "启动中..."
},
"validation": {
"taskDescriptionRequired": "任务描述为必填项",
"taskDescriptionTooShort": "任务描述至少需要10个字符",
"taskDescriptionTooLong": "任务描述不能超过2000个字符",
"parametersInvalidJson": "参数必须是有效的JSON格式",
"answerRequired": "答案为必填项"
},
"success": {
"started": "协调器启动成功"
},
"status": {
"pending": "待执行",
"running": "运行中",
"completed": "已完成",
"failed": "失败",
"skipped": "已跳过"
},
"logs": "日志",
"entries": "条日志",
"error": "错误",
"output": "输出",
"startedAt": "开始时间",
"completedAt": "完成时间",
"retrying": "重试中...",
"retry": "重试",
"skipping": "跳过中...",
"skip": "跳过",
"logLevel": "日志级别",
"level": {
"all": "全部",
"info": "信息",
"warn": "警告",
"error": "错误",
"debug": "调试"
},
"noLogs": "无可用日志",
"question": {
"answer": "答案",
"textPlaceholder": "输入您的答案...",
"selectOne": "选择一个",
"selectMultiple": "选择多个",
"confirm": "确认",
"yes": "是",
"no": "否",
"submitting": "提交中...",
"submit": "提交"
},
"error": {
"submitFailed": "提交答案失败"
}
},
"feedback": {
"error": {
"network": "网络错误,请检查您的连接并重试。",

View File

@@ -0,0 +1,157 @@
{
"page": {
"title": "协调器",
"status": "状态:{status}",
"startButton": "启动协调器",
"noNodeSelected": "选择节点以查看详细信息"
},
"taskDetail": {
"title": "任务详情",
"noSelection": "选择任务以查看执行详情"
},
"emptyState": {
"title": "欢迎使用工作流协调器",
"subtitle": "智能任务编排,实时执行监控,一站式管理复杂工作流",
"startButton": "启动协调器",
"feature1": {
"title": "智能执行",
"description": "依赖管理与并行执行的智能任务编排"
},
"feature2": {
"title": "实时监控",
"description": "流水线可视化,详细日志与执行指标"
},
"feature3": {
"title": "灵活控制",
"description": "支持重试、跳过和暂停的交互式控制"
},
"quickStart": {
"title": "快速开始",
"step1": "点击「启动协调器」按钮开始",
"step2": "用自然语言描述您的工作流任务",
"step3": "监控执行流水线,与运行中的任务交互"
}
},
"modal": {
"title": "启动协调器",
"description": "描述您希望协调器执行的任务"
},
"multiStep": {
"step1": {
"title": "欢迎使用协调器",
"subtitle": "智能工作流编排,助力任务自动化执行",
"feature1": {
"title": "智能执行",
"description": "依赖管理与并行执行的智能任务编排"
},
"feature2": {
"title": "实时监控",
"description": "流水线可视化,详细日志与执行指标"
},
"feature3": {
"title": "灵活控制",
"description": "支持重试、跳过和暂停的交互式控制"
}
},
"step2": {
"title": "配置参数",
"subtitle": "选择模板或自定义参数",
"templateLabel": "选择模板",
"templates": {
"featureDev": "功能开发",
"apiIntegration": "API 集成",
"performanceOptimization": "性能优化",
"documentGeneration": "文档生成"
},
"taskName": "任务名称",
"taskNamePlaceholder": "输入任务名称...",
"taskDescription": "任务描述",
"taskDescriptionPlaceholder": "详细描述您的任务需求...",
"customParameters": "自定义参数"
},
"progress": {
"step": "步骤 {current} / {total}"
},
"actions": {
"next": "下一步",
"back": "返回",
"cancel": "取消",
"submit": "提交"
}
},
"form": {
"taskDescription": "任务描述",
"taskDescriptionPlaceholder": "描述协调器需要执行的任务至少10个字符...",
"parameters": "参数(可选)",
"parametersPlaceholder": "{\"key\": \"value\"}",
"parametersHelp": "协调器执行的可选JSON参数",
"characterCount": "{current} / {max} 字符(最少:{min}",
"start": "启动协调器",
"starting": "启动中..."
},
"validation": {
"taskDescriptionRequired": "任务描述为必填项",
"taskDescriptionTooShort": "任务描述至少需要10个字符",
"taskDescriptionTooLong": "任务描述不能超过2000个字符",
"parametersInvalidJson": "参数必须是有效的JSON格式",
"answerRequired": "答案为必填项"
},
"success": {
"started": "协调器启动成功"
},
"status": {
"pending": "待执行",
"running": "运行中",
"completed": "已完成",
"failed": "失败",
"skipped": "已跳过"
},
"logs": "日志",
"entries": "条日志",
"error": "错误",
"output": "输出",
"startedAt": "开始时间",
"completedAt": "完成时间",
"retrying": "重试中...",
"retry": "重试",
"skipping": "跳过中...",
"skip": "跳过",
"logLevel": "日志级别",
"level": {
"all": "全部",
"info": "信息",
"warn": "警告",
"error": "错误",
"debug": "调试"
},
"noLogs": "暂无日志",
"question": {
"answer": "回答",
"textPlaceholder": "输入您的回答...",
"selectOne": "单选",
"selectMultiple": "多选",
"confirm": "确认",
"yes": "是",
"no": "否",
"submitting": "提交中...",
"submit": "提交"
},
"taskList": {
"filter": {
"all": "全部任务",
"running": "运行中",
"completed": "已完成",
"failed": "失败"
},
"sort": {
"time": "按时间",
"name": "按名称"
},
"empty": "暂无任务"
},
"taskCard": {
"nodes": "节点",
"started": "开始"
},
"steps": "步"
}

View File

@@ -3,6 +3,9 @@
"title": "执行监控",
"subtitle": "查看实时执行状态和历史记录"
},
"actions": {
"openCliViewer": "CLI 监控"
},
"currentExecution": {
"title": "当前执行",
"noExecution": "当前没有正在执行的工作流",

View File

@@ -17,13 +17,26 @@
"sections": {
"statistics": "统计",
"recentSessions": "最近会话",
"recentTasks": "最近任务",
"activeLoops": "活跃循环",
"openIssues": "开放问题",
"quickActions": "快速操作"
"quickActions": "快速操作",
"taskDetails": "任务详情"
},
"tabs": {
"allSessions": "全部",
"allTasks": "全部",
"workflow": "工作流",
"liteTasks": "轻量任务",
"orchestrator": "编排器",
"inProgress": "进行中",
"planning": "规划中",
"completed": "已完成",
"paused": "已暂停"
},
"widgets": {
"workflowStatus": "工作流状态",
"activity": "活动时间线",
"activity": "活动热图",
"taskTypes": "任务类型"
},
"emptyState": {
@@ -31,6 +44,10 @@
"title": "未找到会话",
"message": "没有符合当前筛选条件的工作流会话。"
},
"noTasks": {
"title": "暂无任务",
"message": "没有符合当前筛选条件的任务。"
},
"noLoops": {
"title": "无活跃循环",
"message": "启动新的开发循环以开始监控进度。"
@@ -81,5 +98,8 @@
"errors": {
"loadFailed": "加载仪表板数据失败",
"retry": "重试"
},
"project": {
"features": "个功能"
}
}

View File

@@ -9,6 +9,7 @@ import sessions from './sessions.json';
import issues from './issues.json';
import home from './home.json';
import orchestrator from './orchestrator.json';
import coordinator from './coordinator.json';
import loops from './loops.json';
import commands from './commands.json';
import memory from './memory.json';
@@ -37,6 +38,7 @@ import notification from './notification.json';
import notifications from './notifications.json';
import workspace from './workspace.json';
import help from './help.json';
import cliViewer from './cli-viewer.json';
/**
* Flattens nested JSON object to dot-separated keys
@@ -69,6 +71,7 @@ export default {
...flattenMessages(issues, 'issues'),
...flattenMessages(home, 'home'),
...flattenMessages(orchestrator, 'orchestrator'),
...flattenMessages(coordinator, 'coordinator'),
...flattenMessages(loops, 'loops'),
...flattenMessages(commands, 'commands'),
...flattenMessages(memory, 'memory'),
@@ -97,4 +100,5 @@ export default {
...flattenMessages(notifications, 'notifications'),
...flattenMessages(workspace, 'workspace'),
...flattenMessages(help, 'help'),
...flattenMessages(cliViewer, 'cliViewer'),
} as Record<string, string>;

View File

@@ -61,5 +61,11 @@
"explorations": "探索",
"context": "上下文",
"diagnoses": "诊断"
},
"status": {
"completed": "已完成",
"inProgress": "进行中",
"blocked": "已阻止",
"pending": "待处理"
}
}

View File

@@ -14,7 +14,9 @@
"project": "项目",
"history": "历史",
"orchestrator": "编排器",
"coordinator": "协调器",
"loops": "循环监控",
"cliViewer": "CLI 查看器",
"issues": "问题",
"issueQueue": "问题队列",
"issueDiscovery": "问题发现",
@@ -75,6 +77,8 @@
"noExecutionsHint": "启动 CLI 命令以查看流式输出",
"noMessages": "等待消息...",
"noMatch": "未找到匹配的消息",
"openInViewer": "在 CLI 查看器中打开",
"popOutToPage": "弹出到全页面",
"statusBar": "{total} 个执行 | {active} 个活跃 | {errors} 个错误 | {lines} 行",
"copy": "复制",
"copied": "已复制!",

View File

@@ -8,6 +8,15 @@
"archived": "已归档",
"paused": "已暂停"
},
"type": {
"workflow": "工作流",
"review": "审查",
"tdd": "TDD",
"test": "测试",
"docs": "文档",
"lite-plan": "轻量计划",
"lite-fix": "轻量修复"
},
"actions": {
"viewDetails": "查看详情",
"archive": "归档",