Add Multi-CLI Plan feature and corresponding JSON schema

- Introduced a new navigation item for "Multi-CLI Plan" in the dashboard template.
- Created a new JSON schema for "Multi-CLI Discussion Artifact" to facilitate structured discussions and decision-making processes.
This commit is contained in:
catlog22
2026-01-13 23:46:15 +08:00
parent c3da637849
commit 6922ca27de
12 changed files with 2535 additions and 274 deletions

View File

@@ -83,7 +83,8 @@ const i18n = {
'nav.liteTasks': 'Lite Tasks',
'nav.litePlan': 'Lite Plan',
'nav.liteFix': 'Lite Fix',
'nav.multiCliPlan': 'Multi-CLI Plan',
// Sidebar - MCP section
'nav.mcpServers': 'MCP Servers',
'nav.manage': 'Manage',
@@ -119,9 +120,11 @@ const i18n = {
'title.cliHistory': 'CLI Execution History',
'title.litePlanSessions': 'Lite Plan Sessions',
'title.liteFixSessions': 'Lite Fix Sessions',
'title.multiCliPlanSessions': 'Multi-CLI Plan Sessions',
'title.liteTasks': 'Lite Tasks',
'title.sessionDetail': 'Session Detail',
'title.liteTaskDetail': 'Lite Task Detail',
'title.multiCliDetail': 'Multi-CLI Discussion Detail',
'title.hookManager': 'Hook Manager',
'title.memoryModule': 'Memory Module',
'title.promptHistory': 'Prompt History',
@@ -268,6 +271,7 @@ const i18n = {
'cli.envFilePlaceholder': 'Path to .env file (e.g., ~/.gemini-env or C:/Users/xxx/.env)',
'cli.envFileHint': 'Load environment variables (e.g., API keys) before CLI execution. Supports ~ for home directory.',
'cli.envFileBrowse': 'Browse',
'cli.envFilePathHint': 'Please verify or complete the file path (e.g., ~/.gemini-env)',
'cli.fileBrowser': 'File Browser',
'cli.fileBrowserSelect': 'Select',
'cli.fileBrowserCancel': 'Cancel',
@@ -1201,7 +1205,62 @@ const i18n = {
'lite.diagnosisDetails': 'Diagnosis Details',
'lite.totalDiagnoses': 'Total Diagnoses:',
'lite.angles': 'Angles:',
'lite.multiCli': 'Multi-CLI',
// Multi-CLI Plan
'multiCli.rounds': 'rounds',
'multiCli.backToList': 'Back to Multi-CLI Plan',
'multiCli.roundCount': 'Rounds',
'multiCli.topic': 'Topic',
'multiCli.tab.topic': 'Discussion Topic',
'multiCli.tab.files': 'Related Files',
'multiCli.tab.planning': 'Planning',
'multiCli.tab.decision': 'Decision',
'multiCli.tab.timeline': 'Timeline',
'multiCli.tab.rounds': 'Rounds',
'multiCli.scope': 'Scope',
'multiCli.scope.included': 'Included',
'multiCli.scope.excluded': 'Excluded',
'multiCli.keyQuestions': 'Key Questions',
'multiCli.fileTree': 'File Tree',
'multiCli.impactSummary': 'Impact Summary',
'multiCli.dependencies': 'Dependencies',
'multiCli.functional': 'Functional Requirements',
'multiCli.nonFunctional': 'Non-Functional Requirements',
'multiCli.acceptanceCriteria': 'Acceptance Criteria',
'multiCli.source': 'Source',
'multiCli.confidence': 'Confidence',
'multiCli.selectedSolution': 'Selected Solution',
'multiCli.rejectedAlternatives': 'Rejected Alternatives',
'multiCli.rejectionReason': 'Reason',
'multiCli.pros': 'Pros',
'multiCli.cons': 'Cons',
'multiCli.effort': 'Effort',
'multiCli.sources': 'Sources',
'multiCli.currentRound': 'Current',
'multiCli.singleRoundInfo': 'This is a single-round discussion. View other tabs for details.',
'multiCli.noRoundData': 'No data for this round.',
'multiCli.roundId': 'Round',
'multiCli.timestamp': 'Time',
'multiCli.duration': 'Duration',
'multiCli.contributors': 'Contributors',
'multiCli.convergence': 'Convergence',
'multiCli.newInsights': 'New Insights',
'multiCli.crossVerification': 'Cross-Verification',
'multiCli.agreements': 'Agreements',
'multiCli.disagreements': 'Disagreements',
'multiCli.resolution': 'Resolution',
'multiCli.empty.topic': 'No Discussion Topic',
'multiCli.empty.topicText': 'No discussion topic data available for this session.',
'multiCli.empty.files': 'No Related Files',
'multiCli.empty.filesText': 'No file analysis data available for this session.',
'multiCli.empty.planning': 'No Planning Data',
'multiCli.empty.planningText': 'No planning requirements available for this session.',
'multiCli.empty.decision': 'No Decision Yet',
'multiCli.empty.decisionText': 'No decision has been made for this discussion yet.',
'multiCli.empty.timeline': 'No Timeline Events',
'multiCli.empty.timelineText': 'No decision timeline available for this session.',
// Modals
'modal.contentPreview': 'Content Preview',
'modal.raw': 'Raw',
@@ -2263,7 +2322,8 @@ const i18n = {
'nav.liteTasks': '轻量任务',
'nav.litePlan': '轻量规划',
'nav.liteFix': '轻量修复',
'nav.multiCliPlan': '多CLI规划',
// Sidebar - MCP section
'nav.mcpServers': 'MCP 服务器',
'nav.manage': '管理',
@@ -2299,9 +2359,11 @@ const i18n = {
'title.cliHistory': 'CLI 执行历史',
'title.litePlanSessions': '轻量规划会话',
'title.liteFixSessions': '轻量修复会话',
'title.multiCliPlanSessions': '多CLI规划会话',
'title.liteTasks': '轻量任务',
'title.sessionDetail': '会话详情',
'title.liteTaskDetail': '轻量任务详情',
'title.multiCliDetail': '多CLI讨论详情',
'title.hookManager': '钩子管理',
'title.memoryModule': '记忆模块',
'title.promptHistory': '提示历史',
@@ -2448,6 +2510,7 @@ const i18n = {
'cli.envFilePlaceholder': '.env 文件路径(如 ~/.gemini-env 或 C:/Users/xxx/.env',
'cli.envFileHint': '在 CLI 执行前加载环境变量(如 API 密钥)。支持 ~ 表示用户目录。',
'cli.envFileBrowse': '浏览',
'cli.envFilePathHint': '请确认或补全文件路径(如 ~/.gemini-env',
'cli.fileBrowser': '文件浏览器',
'cli.fileBrowserSelect': '选择',
'cli.fileBrowserCancel': '取消',
@@ -3360,7 +3423,62 @@ const i18n = {
'lite.diagnosisDetails': '诊断详情',
'lite.totalDiagnoses': '总诊断数:',
'lite.angles': '分析角度:',
'lite.multiCli': '多CLI',
// Multi-CLI Plan
'multiCli.rounds': '轮',
'multiCli.backToList': '返回多CLI计划',
'multiCli.roundCount': '轮数',
'multiCli.topic': '主题',
'multiCli.tab.topic': '讨论主题',
'multiCli.tab.files': '相关文件',
'multiCli.tab.planning': '规划',
'multiCli.tab.decision': '决策',
'multiCli.tab.timeline': '时间线',
'multiCli.tab.rounds': '轮次',
'multiCli.scope': '范围',
'multiCli.scope.included': '包含',
'multiCli.scope.excluded': '排除',
'multiCli.keyQuestions': '关键问题',
'multiCli.fileTree': '文件树',
'multiCli.impactSummary': '影响摘要',
'multiCli.dependencies': '依赖关系',
'multiCli.functional': '功能需求',
'multiCli.nonFunctional': '非功能需求',
'multiCli.acceptanceCriteria': '验收标准',
'multiCli.source': '来源',
'multiCli.confidence': '置信度',
'multiCli.selectedSolution': '选定方案',
'multiCli.rejectedAlternatives': '被拒绝的备选方案',
'multiCli.rejectionReason': '原因',
'multiCli.pros': '优点',
'multiCli.cons': '缺点',
'multiCli.effort': '工作量',
'multiCli.sources': '来源',
'multiCli.currentRound': '当前',
'multiCli.singleRoundInfo': '这是单轮讨论。查看其他标签页获取详情。',
'multiCli.noRoundData': '此轮无数据。',
'multiCli.roundId': '轮次',
'multiCli.timestamp': '时间',
'multiCli.duration': '持续时间',
'multiCli.contributors': '贡献者',
'multiCli.convergence': '收敛度',
'multiCli.newInsights': '新发现',
'multiCli.crossVerification': '交叉验证',
'multiCli.agreements': '一致意见',
'multiCli.disagreements': '分歧',
'multiCli.resolution': '决议',
'multiCli.empty.topic': '无讨论主题',
'multiCli.empty.topicText': '此会话无可用的讨论主题数据。',
'multiCli.empty.files': '无相关文件',
'multiCli.empty.filesText': '此会话无可用的文件分析数据。',
'multiCli.empty.planning': '无规划数据',
'multiCli.empty.planningText': '此会话无可用的规划需求。',
'multiCli.empty.decision': '暂无决策',
'multiCli.empty.decisionText': '此讨论尚未做出决策。',
'multiCli.empty.timeline': '无时间线事件',
'multiCli.empty.timelineText': '此会话无可用的决策时间线。',
// Modals
'modal.contentPreview': '内容预览',
'modal.raw': '原始',