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

@@ -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.",