codingbuddy 5.0.0 → 5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/dist/src/config/config.schema.d.ts +6 -0
  2. package/dist/src/config/config.schema.js +3 -0
  3. package/dist/src/config/config.schema.js.map +1 -1
  4. package/dist/src/context/context-archive.service.d.ts +14 -0
  5. package/dist/src/context/context-archive.service.js +257 -0
  6. package/dist/src/context/context-archive.service.js.map +1 -0
  7. package/dist/src/context/context-archive.types.d.ts +37 -0
  8. package/dist/src/context/context-archive.types.js +47 -0
  9. package/dist/src/context/context-archive.types.js.map +1 -0
  10. package/dist/src/context/context-document.service.d.ts +3 -1
  11. package/dist/src/context/context-document.service.js +18 -2
  12. package/dist/src/context/context-document.service.js.map +1 -1
  13. package/dist/src/context/context.module.js +3 -2
  14. package/dist/src/context/context.module.js.map +1 -1
  15. package/dist/src/context/index.d.ts +1 -0
  16. package/dist/src/context/index.js +1 -0
  17. package/dist/src/context/index.js.map +1 -1
  18. package/dist/src/impact/impact-event.service.d.ts +8 -0
  19. package/dist/src/impact/impact-event.service.js +53 -0
  20. package/dist/src/impact/impact-event.service.js.map +1 -0
  21. package/dist/src/impact/impact-report.service.d.ts +7 -0
  22. package/dist/src/impact/impact-report.service.js +92 -0
  23. package/dist/src/impact/impact-report.service.js.map +1 -0
  24. package/dist/src/impact/impact.module.d.ts +2 -0
  25. package/dist/src/impact/impact.module.js +22 -0
  26. package/dist/src/impact/impact.module.js.map +1 -0
  27. package/dist/src/impact/impact.types.d.ts +32 -0
  28. package/dist/src/impact/impact.types.js +5 -0
  29. package/dist/src/impact/impact.types.js.map +1 -0
  30. package/dist/src/impact/index.d.ts +4 -0
  31. package/dist/src/impact/index.js +25 -0
  32. package/dist/src/impact/index.js.map +1 -0
  33. package/dist/src/keyword/diff-analyzer.d.ts +19 -0
  34. package/dist/src/keyword/diff-analyzer.js +127 -0
  35. package/dist/src/keyword/diff-analyzer.js.map +1 -0
  36. package/dist/src/keyword/keyword.service.d.ts +1 -0
  37. package/dist/src/keyword/keyword.service.js +25 -3
  38. package/dist/src/keyword/keyword.service.js.map +1 -1
  39. package/dist/src/keyword/keyword.types.d.ts +25 -0
  40. package/dist/src/keyword/keyword.types.js +27 -0
  41. package/dist/src/keyword/keyword.types.js.map +1 -1
  42. package/dist/src/keyword/primary-agent-resolver.d.ts +2 -1
  43. package/dist/src/keyword/primary-agent-resolver.js +2 -1
  44. package/dist/src/keyword/primary-agent-resolver.js.map +1 -1
  45. package/dist/src/keyword/strategies/act-agent.strategy.js +8 -0
  46. package/dist/src/keyword/strategies/act-agent.strategy.js.map +1 -1
  47. package/dist/src/keyword/strategies/resolution-strategy.interface.d.ts +2 -0
  48. package/dist/src/keyword/visual-data.builder.d.ts +10 -0
  49. package/dist/src/keyword/visual-data.builder.js +62 -0
  50. package/dist/src/keyword/visual-data.builder.js.map +1 -0
  51. package/dist/src/mcp/handlers/agent.handler.d.ts +3 -1
  52. package/dist/src/mcp/handlers/agent.handler.js +13 -2
  53. package/dist/src/mcp/handlers/agent.handler.js.map +1 -1
  54. package/dist/src/mcp/handlers/checklist-context.handler.d.ts +3 -1
  55. package/dist/src/mcp/handlers/checklist-context.handler.js +13 -2
  56. package/dist/src/mcp/handlers/checklist-context.handler.js.map +1 -1
  57. package/dist/src/mcp/handlers/context-archive.handler.d.ts +14 -0
  58. package/dist/src/mcp/handlers/context-archive.handler.js +136 -0
  59. package/dist/src/mcp/handlers/context-archive.handler.js.map +1 -0
  60. package/dist/src/mcp/handlers/context-document.handler.d.ts +3 -1
  61. package/dist/src/mcp/handlers/context-document.handler.js +22 -2
  62. package/dist/src/mcp/handlers/context-document.handler.js.map +1 -1
  63. package/dist/src/mcp/handlers/impact.handler.d.ts +11 -0
  64. package/dist/src/mcp/handlers/impact.handler.js +53 -0
  65. package/dist/src/mcp/handlers/impact.handler.js.map +1 -0
  66. package/dist/src/mcp/handlers/index.d.ts +3 -0
  67. package/dist/src/mcp/handlers/index.js +7 -1
  68. package/dist/src/mcp/handlers/index.js.map +1 -1
  69. package/dist/src/mcp/handlers/mode.handler.d.ts +4 -1
  70. package/dist/src/mcp/handlers/mode.handler.js +51 -3
  71. package/dist/src/mcp/handlers/mode.handler.js.map +1 -1
  72. package/dist/src/mcp/handlers/rule-insights.handler.d.ts +14 -0
  73. package/dist/src/mcp/handlers/rule-insights.handler.js +78 -0
  74. package/dist/src/mcp/handlers/rule-insights.handler.js.map +1 -0
  75. package/dist/src/mcp/handlers/rules.handler.d.ts +3 -1
  76. package/dist/src/mcp/handlers/rules.handler.js +14 -2
  77. package/dist/src/mcp/handlers/rules.handler.js.map +1 -1
  78. package/dist/src/mcp/mcp.module.js +5 -0
  79. package/dist/src/mcp/mcp.module.js.map +1 -1
  80. package/dist/src/rules/rule-insights.service.d.ts +31 -0
  81. package/dist/src/rules/rule-insights.service.js +102 -0
  82. package/dist/src/rules/rule-insights.service.js.map +1 -0
  83. package/dist/src/rules/rules.module.js +3 -2
  84. package/dist/src/rules/rules.module.js.map +1 -1
  85. package/dist/src/shared/version.d.ts +1 -1
  86. package/dist/src/shared/version.js +1 -1
  87. package/dist/src/skill/i18n/keywords.types.d.ts +4 -2
  88. package/dist/src/skill/i18n/keywords.types.js +3 -0
  89. package/dist/src/skill/i18n/keywords.types.js.map +1 -1
  90. package/dist/src/tui/components/ActModeScreen.d.ts +10 -0
  91. package/dist/src/tui/components/ActModeScreen.js +25 -0
  92. package/dist/src/tui/components/ActModeScreen.js.map +1 -0
  93. package/dist/src/tui/components/AgentDiscussionPanel.js +105 -11
  94. package/dist/src/tui/components/AgentDiscussionPanel.js.map +1 -1
  95. package/dist/src/tui/components/AgentDiscussionPanel.spec.js +154 -10
  96. package/dist/src/tui/components/AgentDiscussionPanel.spec.js.map +1 -1
  97. package/dist/src/tui/components/EvalModeScreen.d.ts +8 -0
  98. package/dist/src/tui/components/EvalModeScreen.js +21 -0
  99. package/dist/src/tui/components/EvalModeScreen.js.map +1 -0
  100. package/dist/src/tui/components/FlowMap.spec.js.map +1 -1
  101. package/dist/src/tui/components/FocusedAgentPanel.js +1 -1
  102. package/dist/src/tui/components/FocusedAgentPanel.js.map +1 -1
  103. package/dist/src/tui/components/FocusedAgentPanel.spec.js +1 -3
  104. package/dist/src/tui/components/FocusedAgentPanel.spec.js.map +1 -1
  105. package/dist/src/tui/components/HeaderBar.js +3 -3
  106. package/dist/src/tui/components/HeaderBar.js.map +1 -1
  107. package/dist/src/tui/components/ModeScreenRouter.d.ts +13 -0
  108. package/dist/src/tui/components/ModeScreenRouter.js +51 -0
  109. package/dist/src/tui/components/ModeScreenRouter.js.map +1 -0
  110. package/dist/src/tui/components/PlanModeScreen.d.ts +10 -0
  111. package/dist/src/tui/components/PlanModeScreen.js +24 -0
  112. package/dist/src/tui/components/PlanModeScreen.js.map +1 -0
  113. package/dist/src/tui/components/SessionDashboard.d.ts +17 -0
  114. package/dist/src/tui/components/SessionDashboard.js +58 -0
  115. package/dist/src/tui/components/SessionDashboard.js.map +1 -0
  116. package/dist/src/tui/components/act-screen.pure.d.ts +12 -0
  117. package/dist/src/tui/components/act-screen.pure.js +93 -0
  118. package/dist/src/tui/components/act-screen.pure.js.map +1 -0
  119. package/dist/src/tui/components/agent-discussion-panel.pure.d.ts +45 -0
  120. package/dist/src/tui/components/agent-discussion-panel.pure.js +130 -23
  121. package/dist/src/tui/components/agent-discussion-panel.pure.js.map +1 -1
  122. package/dist/src/tui/components/eval-screen.pure.d.ts +13 -0
  123. package/dist/src/tui/components/eval-screen.pure.js +76 -0
  124. package/dist/src/tui/components/eval-screen.pure.js.map +1 -0
  125. package/dist/src/tui/components/index.d.ts +14 -0
  126. package/dist/src/tui/components/index.js +40 -1
  127. package/dist/src/tui/components/index.js.map +1 -1
  128. package/dist/src/tui/components/plan-screen.pure.d.ts +9 -0
  129. package/dist/src/tui/components/plan-screen.pure.js +61 -0
  130. package/dist/src/tui/components/plan-screen.pure.js.map +1 -0
  131. package/dist/src/tui/components/session-dashboard.pure.d.ts +43 -0
  132. package/dist/src/tui/components/session-dashboard.pure.js +182 -0
  133. package/dist/src/tui/components/session-dashboard.pure.js.map +1 -0
  134. package/dist/src/tui/dashboard-app.js +3 -4
  135. package/dist/src/tui/dashboard-app.js.map +1 -1
  136. package/dist/src/tui/dashboard-types.d.ts +47 -0
  137. package/dist/src/tui/dashboard-types.js +20 -1
  138. package/dist/src/tui/dashboard-types.js.map +1 -1
  139. package/dist/src/tui/events/index.d.ts +1 -1
  140. package/dist/src/tui/events/index.js.map +1 -1
  141. package/dist/src/tui/events/types.d.ts +23 -1
  142. package/dist/src/tui/events/types.js +4 -0
  143. package/dist/src/tui/events/types.js.map +1 -1
  144. package/dist/src/tui/hooks/use-dashboard-state.d.ts +13 -1
  145. package/dist/src/tui/hooks/use-dashboard-state.js +60 -1
  146. package/dist/src/tui/hooks/use-dashboard-state.js.map +1 -1
  147. package/dist/src/tui-bundle.mjs +965 -278
  148. package/dist/tsconfig.build.tsbuildinfo +1 -1
  149. package/package.json +2 -2
@@ -1,13 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CROSS_REVIEW_VERBS = exports.AGENT_PALETTE = void 0;
3
4
  exports.renderStanceHistory = renderStanceHistory;
5
+ exports.assignAgentColors = assignAgentColors;
6
+ exports.detectConflicts = detectConflicts;
7
+ exports.estimateBlockHeight = estimateBlockHeight;
8
+ exports.renderCollaborationBlocks = renderCollaborationBlocks;
4
9
  exports.renderOpinionLine = renderOpinionLine;
5
10
  exports.renderCrossReviewLine = renderCrossReviewLine;
6
11
  exports.renderConsensusLine = renderConsensusLine;
7
12
  exports.renderDiscussionPanel = renderDiscussionPanel;
8
13
  const types_1 = require("../../collaboration/types");
9
14
  const theme_1 = require("../utils/theme");
10
- const CROSS_REVIEW_VERBS = {
15
+ exports.AGENT_PALETTE = [
16
+ 'cyan',
17
+ 'magenta',
18
+ 'yellow',
19
+ 'green',
20
+ 'blue',
21
+ 'red',
22
+ 'white',
23
+ ];
24
+ exports.CROSS_REVIEW_VERBS = {
11
25
  approve: 'agrees',
12
26
  concern: 'notes',
13
27
  reject: 'disagrees',
@@ -17,6 +31,120 @@ function renderStanceHistory(stances) {
17
31
  return '';
18
32
  return stances.map(s => types_1.STANCE_ICONS[s]).join(' → ');
19
33
  }
34
+ function assignAgentColors(rounds) {
35
+ const colors = {};
36
+ let idx = 0;
37
+ for (const round of rounds) {
38
+ for (const opinion of round.opinions) {
39
+ if (!colors[opinion.agentId]) {
40
+ colors[opinion.agentId] = exports.AGENT_PALETTE[idx % exports.AGENT_PALETTE.length];
41
+ idx++;
42
+ }
43
+ }
44
+ }
45
+ return colors;
46
+ }
47
+ function detectConflicts(opinions) {
48
+ const hasApprove = opinions.some(o => o.stance === 'approve');
49
+ const hasReject = opinions.some(o => o.stance === 'reject');
50
+ if (!hasApprove || !hasReject)
51
+ return new Set();
52
+ const conflicting = new Set();
53
+ for (const opinion of opinions) {
54
+ if (opinion.stance === 'reject') {
55
+ conflicting.add(opinion.agentId);
56
+ }
57
+ }
58
+ return conflicting;
59
+ }
60
+ function estimateBlockHeight(block) {
61
+ switch (block.type) {
62
+ case 'agent-bubble':
63
+ return 4;
64
+ case 'consensus-bar':
65
+ return 2;
66
+ default:
67
+ return 1;
68
+ }
69
+ }
70
+ function buildAgentNameMap(rounds) {
71
+ const map = {};
72
+ for (const round of rounds) {
73
+ for (const opinion of round.opinions) {
74
+ map[opinion.agentId] = opinion.agentName;
75
+ }
76
+ }
77
+ return map;
78
+ }
79
+ function buildStanceHistories(rounds) {
80
+ const histories = {};
81
+ for (const round of rounds) {
82
+ for (const opinion of round.opinions) {
83
+ if (!histories[opinion.agentId]) {
84
+ histories[opinion.agentId] = [];
85
+ }
86
+ histories[opinion.agentId].push(opinion.stance);
87
+ }
88
+ }
89
+ return histories;
90
+ }
91
+ function renderCollaborationBlocks(rounds, _width) {
92
+ if (rounds.length === 0) {
93
+ return [{ type: 'empty', text: 'No agent discussion yet' }];
94
+ }
95
+ const blocks = [];
96
+ const agentNames = buildAgentNameMap(rounds);
97
+ const agentColors = assignAgentColors(rounds);
98
+ const stanceHistories = buildStanceHistories(rounds);
99
+ const latestRound = rounds[rounds.length - 1];
100
+ const conflicts = detectConflicts(latestRound.opinions);
101
+ blocks.push({
102
+ type: 'header',
103
+ text: `── Agent Discussion (Round ${latestRound.roundNumber}) ──`,
104
+ });
105
+ for (const opinion of latestRound.opinions) {
106
+ const history = stanceHistories[opinion.agentId] ?? [];
107
+ blocks.push({
108
+ type: 'agent-bubble',
109
+ agentName: opinion.agentName,
110
+ agentAvatar: (0, theme_1.getAgentAvatar)(opinion.agentName),
111
+ color: agentColors[opinion.agentId] ?? 'white',
112
+ stanceIcon: types_1.STANCE_ICONS[opinion.stance],
113
+ reasoning: opinion.reasoning,
114
+ isConflict: conflicts.has(opinion.agentId),
115
+ stanceHistoryText: renderStanceHistory(history),
116
+ });
117
+ }
118
+ for (const review of latestRound.crossReviews) {
119
+ const fromName = agentNames[review.fromAgentId] ?? review.fromAgentId;
120
+ const toName = agentNames[review.toAgentId] ?? review.toAgentId;
121
+ blocks.push({
122
+ type: 'cross-review-block',
123
+ fromName,
124
+ fromAvatar: (0, theme_1.getAgentAvatar)(fromName),
125
+ fromColor: agentColors[review.fromAgentId] ?? 'white',
126
+ toName,
127
+ toAvatar: (0, theme_1.getAgentAvatar)(toName),
128
+ toColor: agentColors[review.toAgentId] ?? 'white',
129
+ verb: exports.CROSS_REVIEW_VERBS[review.stance],
130
+ comment: review.comment,
131
+ });
132
+ }
133
+ const consensus = (0, types_1.calculateConsensus)(latestRound.opinions);
134
+ const percentage = consensus.totalAgents > 0
135
+ ? Math.round((consensus.approveCount / consensus.totalAgents) * 100)
136
+ : 0;
137
+ blocks.push({
138
+ type: 'consensus-bar',
139
+ approveCount: consensus.approveCount,
140
+ concernCount: consensus.concernCount,
141
+ rejectCount: consensus.rejectCount,
142
+ totalAgents: consensus.totalAgents,
143
+ reached: consensus.reached,
144
+ percentage,
145
+ });
146
+ return blocks;
147
+ }
20
148
  function renderOpinionLine(opinion, stanceHistory) {
21
149
  const avatar = (0, theme_1.getAgentAvatar)(opinion.agentName);
22
150
  const icon = types_1.STANCE_ICONS[opinion.stance];
@@ -38,7 +166,7 @@ function renderCrossReviewLine(review, agentNames) {
38
166
  const fromName = agentNames[review.fromAgentId] ?? review.fromAgentId;
39
167
  const toAvatar = (0, theme_1.getAgentAvatar)(agentNames[review.toAgentId] ?? 'unknown');
40
168
  const toName = agentNames[review.toAgentId] ?? review.toAgentId;
41
- const verb = CROSS_REVIEW_VERBS[review.stance];
169
+ const verb = exports.CROSS_REVIEW_VERBS[review.stance];
42
170
  return {
43
171
  text: `${fromAvatar} ${fromName} → ${toAvatar} ${toName} ${verb}: "${review.comment}"`,
44
172
  type: 'cross-review',
@@ -51,27 +179,6 @@ function renderConsensusLine(consensus) {
51
179
  type: 'consensus',
52
180
  };
53
181
  }
54
- function buildAgentNameMap(rounds) {
55
- const map = {};
56
- for (const round of rounds) {
57
- for (const opinion of round.opinions) {
58
- map[opinion.agentId] = opinion.agentName;
59
- }
60
- }
61
- return map;
62
- }
63
- function buildStanceHistories(rounds) {
64
- const histories = {};
65
- for (const round of rounds) {
66
- for (const opinion of round.opinions) {
67
- if (!histories[opinion.agentId]) {
68
- histories[opinion.agentId] = [];
69
- }
70
- histories[opinion.agentId].push(opinion.stance);
71
- }
72
- }
73
- return histories;
74
- }
75
182
  function renderDiscussionPanel(rounds, _width) {
76
183
  if (rounds.length === 0) {
77
184
  return [{ text: 'No agent discussion yet', type: 'empty' }];
@@ -1 +1 @@
1
- {"version":3,"file":"agent-discussion-panel.pure.js","sourceRoot":"","sources":["../../../../src/tui/components/agent-discussion-panel.pure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-discussion-panel.pure.js","sourceRoot":"","sources":["../../../../src/tui/components/agent-discussion-panel.pure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { AgentReviewResult } from '../dashboard-types';
2
+ export interface EvalScreenLine {
3
+ type: 'header' | 'agent-result' | 'category' | 'total-score' | 'empty';
4
+ text: string;
5
+ }
6
+ export declare function renderScoreBar(score: number, maxScore: number, barWidth: number): string;
7
+ export declare function renderAgentResult(result: AgentReviewResult, width: number): EvalScreenLine[];
8
+ export declare function calculateAggregateScore(results: readonly AgentReviewResult[]): {
9
+ total: number;
10
+ max: number;
11
+ percent: number;
12
+ };
13
+ export declare function renderEvalScreen(results: readonly AgentReviewResult[], width: number): EvalScreenLine[];
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderScoreBar = renderScoreBar;
4
+ exports.renderAgentResult = renderAgentResult;
5
+ exports.calculateAggregateScore = calculateAggregateScore;
6
+ exports.renderEvalScreen = renderEvalScreen;
7
+ function renderScoreBar(score, maxScore, barWidth) {
8
+ const percent = maxScore > 0 ? Math.round((score / maxScore) * 100) : 0;
9
+ const filled = Math.round((percent / 100) * barWidth);
10
+ const empty = barWidth - filled;
11
+ return `[${'█'.repeat(filled)}${'░'.repeat(empty)}] ${score}/${maxScore}`;
12
+ }
13
+ function renderAgentResult(result, width) {
14
+ const lines = [];
15
+ const statusIcon = getResultStatusIcon(result.status);
16
+ const barWidth = Math.max(8, Math.min(20, width - 30));
17
+ lines.push({
18
+ type: 'agent-result',
19
+ text: ` ${statusIcon} ${result.agentName}`,
20
+ });
21
+ for (const cat of result.categories) {
22
+ const bar = renderScoreBar(cat.score, cat.maxScore, barWidth);
23
+ lines.push({
24
+ type: 'category',
25
+ text: ` ${padRight(cat.name, 16)} ${bar}`,
26
+ });
27
+ }
28
+ const totalBar = renderScoreBar(result.totalScore, result.maxTotalScore, barWidth);
29
+ lines.push({
30
+ type: 'total-score',
31
+ text: ` ${'Total'.padEnd(16)} ${totalBar}`,
32
+ });
33
+ return lines;
34
+ }
35
+ function getResultStatusIcon(status) {
36
+ switch (status) {
37
+ case 'pending':
38
+ return '⏳';
39
+ case 'in-progress':
40
+ return '🔄';
41
+ case 'done':
42
+ return '✅';
43
+ }
44
+ }
45
+ function padRight(str, len) {
46
+ return str.length >= len ? str.slice(0, len) : str + ' '.repeat(len - str.length);
47
+ }
48
+ function calculateAggregateScore(results) {
49
+ if (results.length === 0)
50
+ return { total: 0, max: 0, percent: 0 };
51
+ const total = results.reduce((sum, r) => sum + r.totalScore, 0);
52
+ const max = results.reduce((sum, r) => sum + r.maxTotalScore, 0);
53
+ const percent = max > 0 ? Math.round((total / max) * 100) : 0;
54
+ return { total, max, percent };
55
+ }
56
+ function renderEvalScreen(results, width) {
57
+ const lines = [];
58
+ lines.push({ type: 'header', text: '📊 Review Results' });
59
+ if (results.length === 0) {
60
+ lines.push({ type: 'empty', text: ' (no review results yet)' });
61
+ return lines;
62
+ }
63
+ for (const result of results) {
64
+ lines.push(...renderAgentResult(result, width));
65
+ lines.push({ type: 'empty', text: '' });
66
+ }
67
+ const agg = calculateAggregateScore(results);
68
+ const barWidth = Math.max(8, Math.min(20, width - 30));
69
+ lines.push({ type: 'header', text: '🏆 Aggregate Score' });
70
+ lines.push({
71
+ type: 'total-score',
72
+ text: ` ${renderScoreBar(agg.total, agg.max, barWidth)} (${agg.percent}%)`,
73
+ });
74
+ return lines;
75
+ }
76
+ //# sourceMappingURL=eval-screen.pure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval-screen.pure.js","sourceRoot":"","sources":["../../../../src/tui/components/eval-screen.pure.ts"],"names":[],"mappings":";;AAgBA,wCAKC;AAKD,8CAyBC;AAoBD,0DAUC;AAKD,4CA2BC;AAjGD,SAAgB,cAAc,CAAC,KAAa,EAAE,QAAgB,EAAE,QAAgB;IAC9E,MAAM,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,QAAQ,EAAE,CAAC;AAC5E,CAAC;AAKD,SAAgB,iBAAiB,CAAC,MAAyB,EAAE,KAAa;IACxE,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;IAEvD,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,EAAE;KAC5C,CAAC,CAAC;IAEH,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACnF,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE;KAC9C,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAmC;IAC9D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC;QACb,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAW;IACxC,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AACpF,CAAC;AAKD,SAAgB,uBAAuB,CAAC,OAAqC;IAK3E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAClE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAKD,SAAgB,gBAAgB,CAC9B,OAAqC,EACrC,KAAa;IAEb,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAE1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IAGD,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,KAAK,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,OAAO,IAAI;KAC5E,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -14,5 +14,19 @@ export { ActivityVisualizer, type ActivityVisualizerProps } from './ActivityVisu
14
14
  export { renderAgentTree, renderAgentStatusCard } from './activity-visualizer.pure';
15
15
  export { SessionTabBar } from './SessionTabBar';
16
16
  export type { SessionTabBarProps } from './SessionTabBar';
17
+ export { PlanModeScreen } from './PlanModeScreen';
18
+ export type { PlanModeScreenProps } from './PlanModeScreen';
19
+ export { ActModeScreen } from './ActModeScreen';
20
+ export type { ActModeScreenProps } from './ActModeScreen';
21
+ export { EvalModeScreen } from './EvalModeScreen';
22
+ export type { EvalModeScreenProps } from './EvalModeScreen';
23
+ export { ModeScreenRouter, resolveModeScreen } from './ModeScreenRouter';
24
+ export type { ModeScreenRouterProps } from './ModeScreenRouter';
25
+ export { renderPlanScreen, renderAgentSummonList, renderConsensusSummary, } from './plan-screen.pure';
26
+ export { renderActScreen, renderTddPhaseBar, renderTddSteps, renderOverallProgress, renderProgressBar, } from './act-screen.pure';
27
+ export { renderEvalScreen, renderAgentResult, renderScoreBar, calculateAggregateScore, } from './eval-screen.pure';
17
28
  export { formatElapsed, formatRelativeTime, spinnerFrame, pulseIcon, renderSparkline, computeThroughput, formatTimeWithSeconds, } from './live.pure';
18
29
  export type { ActivitySample } from './live.pure';
30
+ export { SessionDashboard } from './SessionDashboard';
31
+ export type { SessionDashboardProps } from './SessionDashboard';
32
+ export { computeToolDistribution, computeAgentTimeline, computeTddCycleStats, renderBar, renderToolDistribution, renderAgentTimeline, renderTddStats, renderFileChangeStats, renderModeTransitions, renderSessionDashboard, formatDurationMs, } from './session-dashboard.pure';
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatTimeWithSeconds = exports.computeThroughput = exports.renderSparkline = exports.pulseIcon = exports.spinnerFrame = exports.formatRelativeTime = exports.formatElapsed = exports.SessionTabBar = exports.renderAgentStatusCard = exports.renderAgentTree = exports.ActivityVisualizer = exports.computeGridLayout = exports.detectBottlenecks = exports.computeStageHealth = exports.StageHealthBar = exports.formatSectionDivider = exports.formatLogTailRelative = exports.formatLogTail = exports.formatObjective = exports.resolveChecklistTasks = exports.ChecklistPanel = exports.FocusedAgentPanel = exports.renderStanceHistory = exports.renderConsensusLine = exports.renderCrossReviewLine = exports.renderOpinionLine = exports.renderDiscussionPanel = exports.AgentDiscussionPanel = exports.layoutAgentNodes = exports.layoutStageColumns = exports.renderFlowMapCompact = exports.renderFlowMapSimplified = exports.renderFlowMap = exports.FlowMap = exports.HeaderBar = void 0;
3
+ exports.renderSparkline = exports.pulseIcon = exports.spinnerFrame = exports.formatRelativeTime = exports.formatElapsed = exports.calculateAggregateScore = exports.renderScoreBar = exports.renderAgentResult = exports.renderEvalScreen = exports.renderProgressBar = exports.renderOverallProgress = exports.renderTddSteps = exports.renderTddPhaseBar = exports.renderActScreen = exports.renderConsensusSummary = exports.renderAgentSummonList = exports.renderPlanScreen = exports.resolveModeScreen = exports.ModeScreenRouter = exports.EvalModeScreen = exports.ActModeScreen = exports.PlanModeScreen = exports.SessionTabBar = exports.renderAgentStatusCard = exports.renderAgentTree = exports.ActivityVisualizer = exports.computeGridLayout = exports.detectBottlenecks = exports.computeStageHealth = exports.StageHealthBar = exports.formatSectionDivider = exports.formatLogTailRelative = exports.formatLogTail = exports.formatObjective = exports.resolveChecklistTasks = exports.ChecklistPanel = exports.FocusedAgentPanel = exports.renderStanceHistory = exports.renderConsensusLine = exports.renderCrossReviewLine = exports.renderOpinionLine = exports.renderDiscussionPanel = exports.AgentDiscussionPanel = exports.layoutAgentNodes = exports.layoutStageColumns = exports.renderFlowMapCompact = exports.renderFlowMapSimplified = exports.renderFlowMap = exports.FlowMap = exports.HeaderBar = void 0;
4
+ exports.formatDurationMs = exports.renderSessionDashboard = exports.renderModeTransitions = exports.renderFileChangeStats = exports.renderTddStats = exports.renderAgentTimeline = exports.renderToolDistribution = exports.renderBar = exports.computeTddCycleStats = exports.computeAgentTimeline = exports.computeToolDistribution = exports.SessionDashboard = exports.formatTimeWithSeconds = exports.computeThroughput = void 0;
4
5
  var HeaderBar_1 = require("./HeaderBar");
5
6
  Object.defineProperty(exports, "HeaderBar", { enumerable: true, get: function () { return HeaderBar_1.HeaderBar; } });
6
7
  var FlowMap_1 = require("./FlowMap");
@@ -44,6 +45,30 @@ Object.defineProperty(exports, "renderAgentTree", { enumerable: true, get: funct
44
45
  Object.defineProperty(exports, "renderAgentStatusCard", { enumerable: true, get: function () { return activity_visualizer_pure_1.renderAgentStatusCard; } });
45
46
  var SessionTabBar_1 = require("./SessionTabBar");
46
47
  Object.defineProperty(exports, "SessionTabBar", { enumerable: true, get: function () { return SessionTabBar_1.SessionTabBar; } });
48
+ var PlanModeScreen_1 = require("./PlanModeScreen");
49
+ Object.defineProperty(exports, "PlanModeScreen", { enumerable: true, get: function () { return PlanModeScreen_1.PlanModeScreen; } });
50
+ var ActModeScreen_1 = require("./ActModeScreen");
51
+ Object.defineProperty(exports, "ActModeScreen", { enumerable: true, get: function () { return ActModeScreen_1.ActModeScreen; } });
52
+ var EvalModeScreen_1 = require("./EvalModeScreen");
53
+ Object.defineProperty(exports, "EvalModeScreen", { enumerable: true, get: function () { return EvalModeScreen_1.EvalModeScreen; } });
54
+ var ModeScreenRouter_1 = require("./ModeScreenRouter");
55
+ Object.defineProperty(exports, "ModeScreenRouter", { enumerable: true, get: function () { return ModeScreenRouter_1.ModeScreenRouter; } });
56
+ Object.defineProperty(exports, "resolveModeScreen", { enumerable: true, get: function () { return ModeScreenRouter_1.resolveModeScreen; } });
57
+ var plan_screen_pure_1 = require("./plan-screen.pure");
58
+ Object.defineProperty(exports, "renderPlanScreen", { enumerable: true, get: function () { return plan_screen_pure_1.renderPlanScreen; } });
59
+ Object.defineProperty(exports, "renderAgentSummonList", { enumerable: true, get: function () { return plan_screen_pure_1.renderAgentSummonList; } });
60
+ Object.defineProperty(exports, "renderConsensusSummary", { enumerable: true, get: function () { return plan_screen_pure_1.renderConsensusSummary; } });
61
+ var act_screen_pure_1 = require("./act-screen.pure");
62
+ Object.defineProperty(exports, "renderActScreen", { enumerable: true, get: function () { return act_screen_pure_1.renderActScreen; } });
63
+ Object.defineProperty(exports, "renderTddPhaseBar", { enumerable: true, get: function () { return act_screen_pure_1.renderTddPhaseBar; } });
64
+ Object.defineProperty(exports, "renderTddSteps", { enumerable: true, get: function () { return act_screen_pure_1.renderTddSteps; } });
65
+ Object.defineProperty(exports, "renderOverallProgress", { enumerable: true, get: function () { return act_screen_pure_1.renderOverallProgress; } });
66
+ Object.defineProperty(exports, "renderProgressBar", { enumerable: true, get: function () { return act_screen_pure_1.renderProgressBar; } });
67
+ var eval_screen_pure_1 = require("./eval-screen.pure");
68
+ Object.defineProperty(exports, "renderEvalScreen", { enumerable: true, get: function () { return eval_screen_pure_1.renderEvalScreen; } });
69
+ Object.defineProperty(exports, "renderAgentResult", { enumerable: true, get: function () { return eval_screen_pure_1.renderAgentResult; } });
70
+ Object.defineProperty(exports, "renderScoreBar", { enumerable: true, get: function () { return eval_screen_pure_1.renderScoreBar; } });
71
+ Object.defineProperty(exports, "calculateAggregateScore", { enumerable: true, get: function () { return eval_screen_pure_1.calculateAggregateScore; } });
47
72
  var live_pure_1 = require("./live.pure");
48
73
  Object.defineProperty(exports, "formatElapsed", { enumerable: true, get: function () { return live_pure_1.formatElapsed; } });
49
74
  Object.defineProperty(exports, "formatRelativeTime", { enumerable: true, get: function () { return live_pure_1.formatRelativeTime; } });
@@ -52,4 +77,18 @@ Object.defineProperty(exports, "pulseIcon", { enumerable: true, get: function ()
52
77
  Object.defineProperty(exports, "renderSparkline", { enumerable: true, get: function () { return live_pure_1.renderSparkline; } });
53
78
  Object.defineProperty(exports, "computeThroughput", { enumerable: true, get: function () { return live_pure_1.computeThroughput; } });
54
79
  Object.defineProperty(exports, "formatTimeWithSeconds", { enumerable: true, get: function () { return live_pure_1.formatTimeWithSeconds; } });
80
+ var SessionDashboard_1 = require("./SessionDashboard");
81
+ Object.defineProperty(exports, "SessionDashboard", { enumerable: true, get: function () { return SessionDashboard_1.SessionDashboard; } });
82
+ var session_dashboard_pure_1 = require("./session-dashboard.pure");
83
+ Object.defineProperty(exports, "computeToolDistribution", { enumerable: true, get: function () { return session_dashboard_pure_1.computeToolDistribution; } });
84
+ Object.defineProperty(exports, "computeAgentTimeline", { enumerable: true, get: function () { return session_dashboard_pure_1.computeAgentTimeline; } });
85
+ Object.defineProperty(exports, "computeTddCycleStats", { enumerable: true, get: function () { return session_dashboard_pure_1.computeTddCycleStats; } });
86
+ Object.defineProperty(exports, "renderBar", { enumerable: true, get: function () { return session_dashboard_pure_1.renderBar; } });
87
+ Object.defineProperty(exports, "renderToolDistribution", { enumerable: true, get: function () { return session_dashboard_pure_1.renderToolDistribution; } });
88
+ Object.defineProperty(exports, "renderAgentTimeline", { enumerable: true, get: function () { return session_dashboard_pure_1.renderAgentTimeline; } });
89
+ Object.defineProperty(exports, "renderTddStats", { enumerable: true, get: function () { return session_dashboard_pure_1.renderTddStats; } });
90
+ Object.defineProperty(exports, "renderFileChangeStats", { enumerable: true, get: function () { return session_dashboard_pure_1.renderFileChangeStats; } });
91
+ Object.defineProperty(exports, "renderModeTransitions", { enumerable: true, get: function () { return session_dashboard_pure_1.renderModeTransitions; } });
92
+ Object.defineProperty(exports, "renderSessionDashboard", { enumerable: true, get: function () { return session_dashboard_pure_1.renderSessionDashboard; } });
93
+ Object.defineProperty(exports, "formatDurationMs", { enumerable: true, get: function () { return session_dashboard_pure_1.formatDurationMs; } });
55
94
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tui/components/index.ts"],"names":[],"mappings":";;;AAAA,yCAA6D;AAApD,sGAAA,SAAS,OAAA;AAClB,qCAAuD;AAA9C,kGAAA,OAAO,OAAA;AAChB,iDAMyB;AALvB,8GAAA,aAAa,OAAA;AACb,wHAAA,uBAAuB,OAAA;AACvB,qHAAA,oBAAoB,OAAA;AACpB,mHAAA,kBAAkB,OAAA;AAClB,iHAAA,gBAAgB,OAAA;AAElB,+DAA8F;AAArF,4HAAA,oBAAoB,OAAA;AAC7B,6EAMuC;AALrC,oIAAA,qBAAqB,OAAA;AACrB,gIAAA,iBAAiB,OAAA;AACjB,oIAAA,qBAAqB,OAAA;AACrB,kIAAA,mBAAmB,OAAA;AACnB,kIAAA,mBAAmB,OAAA;AAErB,yDAAqF;AAA5E,sHAAA,iBAAiB,OAAA;AAC1B,mDAA4E;AAAnE,gHAAA,cAAc,OAAA;AACvB,+DAA+D;AAAtD,6HAAA,qBAAqB,OAAA;AAC9B,2DAK8B;AAJ5B,qHAAA,eAAe,OAAA;AACf,mHAAA,aAAa,OAAA;AACb,2HAAA,qBAAqB,OAAA;AACrB,0HAAA,oBAAoB,OAAA;AAEtB,mDAA4E;AAAnE,gHAAA,cAAc,OAAA;AACvB,yDAA4E;AAAnE,uHAAA,kBAAkB,OAAA;AAAE,sHAAA,iBAAiB,OAAA;AAC9C,uDAAuD;AAA9C,qHAAA,iBAAiB,OAAA;AAC1B,2DAAwF;AAA/E,wHAAA,kBAAkB,OAAA;AAC3B,uEAAoF;AAA3E,2HAAA,eAAe,OAAA;AAAE,iIAAA,qBAAqB,OAAA;AAC/C,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,yCAQqB;AAPnB,0GAAA,aAAa,OAAA;AACb,+GAAA,kBAAkB,OAAA;AAClB,yGAAA,YAAY,OAAA;AACZ,sGAAA,SAAS,OAAA;AACT,4GAAA,eAAe,OAAA;AACf,8GAAA,iBAAiB,OAAA;AACjB,kHAAA,qBAAqB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tui/components/index.ts"],"names":[],"mappings":";;;;AAAA,yCAA6D;AAApD,sGAAA,SAAS,OAAA;AAClB,qCAAuD;AAA9C,kGAAA,OAAO,OAAA;AAChB,iDAMyB;AALvB,8GAAA,aAAa,OAAA;AACb,wHAAA,uBAAuB,OAAA;AACvB,qHAAA,oBAAoB,OAAA;AACpB,mHAAA,kBAAkB,OAAA;AAClB,iHAAA,gBAAgB,OAAA;AAElB,+DAA8F;AAArF,4HAAA,oBAAoB,OAAA;AAC7B,6EAMuC;AALrC,oIAAA,qBAAqB,OAAA;AACrB,gIAAA,iBAAiB,OAAA;AACjB,oIAAA,qBAAqB,OAAA;AACrB,kIAAA,mBAAmB,OAAA;AACnB,kIAAA,mBAAmB,OAAA;AAErB,yDAAqF;AAA5E,sHAAA,iBAAiB,OAAA;AAC1B,mDAA4E;AAAnE,gHAAA,cAAc,OAAA;AACvB,+DAA+D;AAAtD,6HAAA,qBAAqB,OAAA;AAC9B,2DAK8B;AAJ5B,qHAAA,eAAe,OAAA;AACf,mHAAA,aAAa,OAAA;AACb,2HAAA,qBAAqB,OAAA;AACrB,0HAAA,oBAAoB,OAAA;AAEtB,mDAA4E;AAAnE,gHAAA,cAAc,OAAA;AACvB,yDAA4E;AAAnE,uHAAA,kBAAkB,OAAA;AAAE,sHAAA,iBAAiB,OAAA;AAC9C,uDAAuD;AAA9C,qHAAA,iBAAiB,OAAA;AAC1B,2DAAwF;AAA/E,wHAAA,kBAAkB,OAAA;AAC3B,uEAAoF;AAA3E,2HAAA,eAAe,OAAA;AAAE,iIAAA,qBAAqB,OAAA;AAC/C,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,uDAAyE;AAAhE,oHAAA,gBAAgB,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AAE5C,uDAI4B;AAH1B,oHAAA,gBAAgB,OAAA;AAChB,yHAAA,qBAAqB,OAAA;AACrB,0HAAA,sBAAsB,OAAA;AAExB,qDAM2B;AALzB,kHAAA,eAAe,OAAA;AACf,oHAAA,iBAAiB,OAAA;AACjB,iHAAA,cAAc,OAAA;AACd,wHAAA,qBAAqB,OAAA;AACrB,oHAAA,iBAAiB,OAAA;AAEnB,uDAK4B;AAJ1B,oHAAA,gBAAgB,OAAA;AAChB,qHAAA,iBAAiB,OAAA;AACjB,kHAAA,cAAc,OAAA;AACd,2HAAA,uBAAuB,OAAA;AAEzB,yCAQqB;AAPnB,0GAAA,aAAa,OAAA;AACb,+GAAA,kBAAkB,OAAA;AAClB,yGAAA,YAAY,OAAA;AACZ,sGAAA,SAAS,OAAA;AACT,4GAAA,eAAe,OAAA;AACf,8GAAA,iBAAiB,OAAA;AACjB,kHAAA,qBAAqB,OAAA;AAGvB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAEzB,mEAYkC;AAXhC,iIAAA,uBAAuB,OAAA;AACvB,8HAAA,oBAAoB,OAAA;AACpB,8HAAA,oBAAoB,OAAA;AACpB,mHAAA,SAAS,OAAA;AACT,gIAAA,sBAAsB,OAAA;AACtB,6HAAA,mBAAmB,OAAA;AACnB,wHAAA,cAAc,OAAA;AACd,+HAAA,qBAAqB,OAAA;AACrB,+HAAA,qBAAqB,OAAA;AACrB,gIAAA,sBAAsB,OAAA;AACtB,0HAAA,gBAAgB,OAAA"}
@@ -0,0 +1,9 @@
1
+ import type { DashboardNode } from '../dashboard-types';
2
+ import type { DiscussionRound } from '../../collaboration/types';
3
+ export interface PlanScreenLine {
4
+ type: 'header' | 'agent' | 'discussion' | 'consensus' | 'empty';
5
+ text: string;
6
+ }
7
+ export declare function renderAgentSummonList(agents: ReadonlyMap<string, DashboardNode>, width: number): PlanScreenLine[];
8
+ export declare function renderConsensusSummary(rounds: readonly DiscussionRound[]): PlanScreenLine[];
9
+ export declare function renderPlanScreen(agents: ReadonlyMap<string, DashboardNode>, rounds: readonly DiscussionRound[], width: number): PlanScreenLine[];
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderAgentSummonList = renderAgentSummonList;
4
+ exports.renderConsensusSummary = renderConsensusSummary;
5
+ exports.renderPlanScreen = renderPlanScreen;
6
+ const types_1 = require("../../collaboration/types");
7
+ function renderAgentSummonList(agents, width) {
8
+ const lines = [];
9
+ lines.push({ type: 'header', text: '📋 Summoned Agents' });
10
+ if (agents.size === 0) {
11
+ lines.push({ type: 'empty', text: ' (no agents summoned)' });
12
+ return lines;
13
+ }
14
+ for (const agent of agents.values()) {
15
+ const statusIcon = getAgentStatusIcon(agent.status);
16
+ const primaryTag = agent.isPrimary ? ' ★' : '';
17
+ const text = ` ${statusIcon} ${agent.name}${primaryTag} [${agent.status}]`;
18
+ lines.push({ type: 'agent', text: text.slice(0, width) });
19
+ }
20
+ return lines;
21
+ }
22
+ function getAgentStatusIcon(status) {
23
+ switch (status) {
24
+ case 'running':
25
+ return '🔄';
26
+ case 'done':
27
+ return '✅';
28
+ case 'error':
29
+ return '❌';
30
+ case 'idle':
31
+ return '⏳';
32
+ case 'blocked':
33
+ return '🚫';
34
+ }
35
+ }
36
+ function renderConsensusSummary(rounds) {
37
+ if (rounds.length === 0) {
38
+ return [{ type: 'empty', text: ' (no discussion yet)' }];
39
+ }
40
+ const lastRound = rounds[rounds.length - 1];
41
+ const consensus = (0, types_1.calculateConsensus)(lastRound.opinions);
42
+ const lines = [];
43
+ lines.push({ type: 'header', text: `🗳️ Consensus (Round ${lastRound.roundNumber})` });
44
+ lines.push({
45
+ type: 'consensus',
46
+ text: ` ${types_1.STANCE_ICONS.approve} ${consensus.approveCount} ${types_1.STANCE_ICONS.concern} ${consensus.concernCount} ${types_1.STANCE_ICONS.reject} ${consensus.rejectCount}`,
47
+ });
48
+ lines.push({
49
+ type: 'consensus',
50
+ text: consensus.reached ? ' ✅ Consensus reached' : ' ⏳ Consensus not reached',
51
+ });
52
+ return lines;
53
+ }
54
+ function renderPlanScreen(agents, rounds, width) {
55
+ const lines = [];
56
+ lines.push(...renderAgentSummonList(agents, width));
57
+ lines.push({ type: 'empty', text: '' });
58
+ lines.push(...renderConsensusSummary(rounds));
59
+ return lines;
60
+ }
61
+ //# sourceMappingURL=plan-screen.pure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-screen.pure.js","sourceRoot":"","sources":["../../../../src/tui/components/plan-screen.pure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { ToolCallRecord, TddStep, ModeTransition, FileChangeStats } from '../dashboard-types';
2
+ import type { DashboardNode } from '../dashboard-types';
3
+ import type { LayoutMode } from '../dashboard-types';
4
+ export interface ToolDistributionEntry {
5
+ name: string;
6
+ count: number;
7
+ pct: number;
8
+ }
9
+ export declare function computeToolDistribution(toolCalls: ToolCallRecord[]): ToolDistributionEntry[];
10
+ export interface AgentTimelineEntry {
11
+ name: string;
12
+ startedAt: number;
13
+ durationMs: number;
14
+ status: string;
15
+ }
16
+ export declare function computeAgentTimeline(agents: Map<string, DashboardNode>, now: number): AgentTimelineEntry[];
17
+ export interface TddCycleStats {
18
+ red: number;
19
+ green: number;
20
+ refactor: number;
21
+ cycles: number;
22
+ }
23
+ export declare function computeTddCycleStats(tddSteps: TddStep[]): TddCycleStats;
24
+ export declare function renderBar(pct: number, maxWidth: number): string;
25
+ export declare function renderToolDistribution(entries: ToolDistributionEntry[], width: number, maxItems?: number): string[];
26
+ export declare function formatDurationMs(ms: number): string;
27
+ export declare function renderAgentTimeline(entries: AgentTimelineEntry[], _width: number): string[];
28
+ export declare function renderTddStats(stats: TddCycleStats): string[];
29
+ export declare function renderFileChangeStats(stats: FileChangeStats): string;
30
+ export declare function renderModeTransitions(transitions: ModeTransition[], sessionStartedAt: number): string[];
31
+ export declare function renderSessionDashboard(params: {
32
+ toolDistribution: ToolDistributionEntry[];
33
+ agentTimeline: AgentTimelineEntry[];
34
+ tddStats: TddCycleStats;
35
+ fileChanges: FileChangeStats;
36
+ modeTransitions: ModeTransition[];
37
+ sessionStartedAt: number;
38
+ sessionDuration: string;
39
+ totalToolCalls: number;
40
+ totalAgents: number;
41
+ width: number;
42
+ layoutMode: LayoutMode;
43
+ }): string[];