Files
Claude-Code-Workflow/ccw/frontend/src/locales/en/orchestrator.json
catlog22 c6093ef741 feat: add CLI Command Node and Prompt Node components for orchestrator
- Implemented CliCommandNode component for executing CLI tools with AI models.
- Implemented PromptNode component for constructing AI prompts with context.
- Added styling for mode and tool badges in both components.
- Enhanced user experience with command and argument previews, execution status, and error handling.

test: add comprehensive tests for ask_question tool

- Created direct test for ask_question tool execution.
- Developed end-to-end tests to validate ask_question tool integration with WebSocket and A2UI surfaces.
- Implemented simple and integrated WebSocket tests to ensure proper message handling and surface reception.
- Added tool registration test to verify ask_question tool is correctly registered.

chore: add WebSocket listener and simulation tests

- Added WebSocket listener for A2UI surfaces to facilitate testing.
- Implemented frontend simulation test to validate complete flow from backend to frontend.
- Created various test scripts to ensure robust testing of ask_question tool functionality.
2026-02-03 23:10:36 +08:00

233 lines
6.8 KiB
JSON

{
"title": "Orchestrator",
"description": "Manage and execute workflow flows",
"flow": {
"title": "Flow",
"flows": "Flows",
"create": "New Flow",
"edit": "Edit Flow",
"delete": "Delete Flow",
"duplicate": "Duplicate Flow",
"export": "Export Flow",
"import": "Import Flow"
},
"execution": {
"title": "Execution",
"status": "Status",
"start": "Start",
"pause": "Pause",
"resume": "Resume",
"stop": "Stop",
"restart": "Restart",
"viewLogs": "View Logs"
},
"status": {
"pending": "Pending",
"running": "Running",
"paused": "Paused",
"completed": "Completed",
"failed": "Failed"
},
"node": {
"title": "Node",
"nodes": "Nodes",
"add": "Add Node",
"edit": "Edit Node",
"delete": "Delete Node",
"status": "Node Status",
"result": "Result"
},
"actions": {
"execute": "Execute",
"validate": "Validate",
"save": "Save",
"cancel": "Cancel"
},
"emptyState": {
"noFlows": {
"title": "No Flows Found",
"message": "Create your first workflow flow to get started."
},
"noExecution": {
"title": "No Execution History",
"message": "Execute a flow to see the execution history."
}
},
"monitor": {
"title": "Execution Monitor",
"logs": "Logs",
"timeline": "Timeline",
"variables": "Variables",
"realtime": "Real-time Updates"
},
"notifications": {
"flowCreated": "Flow Created",
"flowSaved": "Flow Saved",
"saveFailed": "Save Failed",
"flowLoaded": "Flow Loaded",
"loadFailed": "Load Failed",
"flowDeleted": "Flow Deleted",
"deleteFailed": "Delete Failed",
"flowDuplicated": "Flow Duplicated",
"duplicateFailed": "Duplicate Failed"
},
"templateLibrary": {
"title": "Template Library",
"description": "Browse and import workflow templates, or export your current flow as a template.",
"searchPlaceholder": "Search templates...",
"allCategories": "All",
"exportCurrent": "Export Current",
"close": "Close",
"errors": {
"loadFailed": "Failed to load templates"
},
"emptyState": {
"title": "No templates found",
"searchSuggestion": "Try a different search query"
},
"footer": {
"templateCount": "{count} template",
"templateCount_plural": "{count} templates"
},
"card": {
"nodes": "nodes",
"import": "Import",
"delete": "Delete"
},
"exportDialog": {
"title": "Export as Template",
"description": "Save this flow as a reusable template in your library.",
"fields": {
"name": "Name",
"namePlaceholder": "Template name",
"description": "Description",
"descriptionPlaceholder": "Brief description of this template",
"category": "Category",
"categoryPlaceholder": "e.g., Development, Testing, Deployment",
"tags": "Tags (comma-separated)",
"tagsPlaceholder": "e.g., react, testing, ci/cd"
},
"actions": {
"cancel": "Cancel",
"export": "Export"
}
}
},
"toolbar": {
"placeholder": "Flow name",
"unsavedChanges": "Unsaved changes",
"new": "New",
"save": "Save",
"load": "Load",
"export": "Export",
"templates": "Templates",
"savedFlows": "Saved Flows ({count})",
"loading": "Loading...",
"noSavedFlows": "No saved flows",
"duplicate": "Duplicate",
"delete": "Delete"
},
"palette": {
"title": "Node Palette",
"open": "Open node palette",
"collapse": "Collapse palette",
"instructions": "Drag nodes onto the canvas to add them to your workflow",
"nodeTypes": "Node Types",
"tipLabel": "Tip:",
"tip": "Connect nodes by dragging from output to input handles"
},
"variablePicker": {
"empty": "No variables available"
},
"multiNodeSelector": {
"empty": "No nodes available",
"clear": "Clear all"
},
"contextAssembler": {
"title": "Context Template",
"helpTitle": "Context Assembly Syntax",
"helpSyntax1": "Reference node output: {{node:node-id}}",
"helpSyntax2": "Reference variable: {{var:variableName}}",
"helpSyntax3": "Combine multiple sources in custom format",
"addNode": "Add Node Reference",
"selectNode": "Select a node...",
"addVariable": "Add Variable Reference",
"selectVariable": "Select a variable...",
"manualEdit": "Custom Template (use {{node:id}} or {{var:name}})"
},
"propertyPanel": {
"title": "Properties",
"open": "Open properties panel",
"close": "Close panel",
"selectNode": "Select a node to edit its properties",
"deleteNode": "Delete Node",
"placeholders": {
"nodeLabel": "Node label",
"commandName": "/command-name",
"commandArgs": "Command arguments",
"timeout": "60000",
"path": "/path/to/file",
"content": "File content...",
"destinationPath": "/path/to/destination",
"variableName": "variableName",
"condition": "e.g., result.success === true",
"trueLabel": "True",
"falseLabel": "False",
"contextTemplate": "Template with {variable} placeholders",
"promptText": "Enter your prompt here..."
},
"labels": {
"label": "Label",
"command": "Command",
"arguments": "Arguments",
"executionMode": "Execution Mode",
"onError": "On Error",
"timeout": "Timeout (ms)",
"operation": "Operation",
"path": "Path",
"content": "Content",
"destinationPath": "Destination Path",
"outputVariable": "Output Variable",
"addToContext": "Add to context",
"condition": "Condition",
"trueLabel": "True Label",
"falseLabel": "False Label",
"joinMode": "Join Mode",
"failFast": "Fail fast (stop all branches on first error)",
"tool": "CLI Tool",
"mode": "Mode",
"promptType": "Prompt Type",
"sourceNodes": "Source Nodes",
"contextTemplate": "Context Template",
"promptText": "Prompt Text"
},
"options": {
"modeMainprocess": "Main Process",
"modeAsync": "Async",
"errorStop": "Stop execution",
"errorContinue": "Continue",
"errorRetry": "Retry",
"operationRead": "Read",
"operationWrite": "Write",
"operationAppend": "Append",
"operationDelete": "Delete",
"operationCopy": "Copy",
"operationMove": "Move",
"joinModeAll": "Wait for all branches",
"joinModeAny": "Complete when any branch finishes",
"joinModeNone": "No synchronization",
"toolGemini": "Gemini",
"toolQwen": "Qwen",
"toolCodex": "Codex",
"modeAnalysis": "Analysis",
"modeWrite": "Write",
"modeReview": "Review",
"promptTypeOrganize": "Organize",
"promptTypeRefine": "Refine",
"promptTypeSummarize": "Summarize",
"promptTypeTransform": "Transform",
"promptTypeCustom": "Custom"
}
}
}