@defai.digital/ax-cli 2.7.0 → 3.0.0

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 (197) hide show
  1. package/.ax-cli/checkpoints/2025-11-20/checkpoint-2dd84869-e62d-46c8-9885-7e45f37f36e2.json +69 -0
  2. package/.ax-cli/checkpoints/2025-11-20/checkpoint-484dc350-353f-4808-9ed1-ebb3cefdab37.json +24 -0
  3. package/.ax-cli/checkpoints/2025-11-20/checkpoint-74a18b87-6172-4215-962b-44bb9f46a662.json +69 -0
  4. package/.ax-cli/checkpoints/2025-11-20/checkpoint-870a5fb9-6e82-4ff2-8ec8-af4c251cc514.json +44 -0
  5. package/.ax-cli/checkpoints/2025-11-20/checkpoint-93946601-0e83-456c-ba47-def9713124dd.json +24 -0
  6. package/.ax-cli/checkpoints/metadata.json +62 -0
  7. package/README.md +87 -11
  8. package/dist/agent/context-manager.d.ts +2 -2
  9. package/dist/agent/context-manager.js +37 -15
  10. package/dist/agent/context-manager.js.map +1 -1
  11. package/dist/agent/dependency-resolver.d.ts +83 -0
  12. package/dist/agent/dependency-resolver.js +310 -0
  13. package/dist/agent/dependency-resolver.js.map +1 -0
  14. package/dist/agent/llm-agent.d.ts +111 -0
  15. package/dist/agent/llm-agent.js +625 -3
  16. package/dist/agent/llm-agent.js.map +1 -1
  17. package/dist/agent/specialized/analysis-agent.d.ts +11 -0
  18. package/dist/agent/specialized/analysis-agent.js +33 -0
  19. package/dist/agent/specialized/analysis-agent.js.map +1 -0
  20. package/dist/agent/specialized/debug-agent.d.ts +11 -0
  21. package/dist/agent/specialized/debug-agent.js +33 -0
  22. package/dist/agent/specialized/debug-agent.js.map +1 -0
  23. package/dist/agent/specialized/documentation-agent.d.ts +11 -0
  24. package/dist/agent/specialized/documentation-agent.js +33 -0
  25. package/dist/agent/specialized/documentation-agent.js.map +1 -0
  26. package/dist/agent/specialized/index.d.ts +11 -0
  27. package/dist/agent/specialized/index.js +12 -0
  28. package/dist/agent/specialized/index.js.map +1 -0
  29. package/dist/agent/specialized/performance-agent.d.ts +11 -0
  30. package/dist/agent/specialized/performance-agent.js +33 -0
  31. package/dist/agent/specialized/performance-agent.js.map +1 -0
  32. package/dist/agent/specialized/refactoring-agent.d.ts +11 -0
  33. package/dist/agent/specialized/refactoring-agent.js +33 -0
  34. package/dist/agent/specialized/refactoring-agent.js.map +1 -0
  35. package/dist/agent/specialized/testing-agent.d.ts +11 -0
  36. package/dist/agent/specialized/testing-agent.js +33 -0
  37. package/dist/agent/specialized/testing-agent.js.map +1 -0
  38. package/dist/agent/subagent-orchestrator.d.ts +128 -0
  39. package/dist/agent/subagent-orchestrator.js +388 -0
  40. package/dist/agent/subagent-orchestrator.js.map +1 -0
  41. package/dist/agent/subagent-types.d.ts +262 -0
  42. package/dist/agent/subagent-types.js +152 -0
  43. package/dist/agent/subagent-types.js.map +1 -0
  44. package/dist/agent/subagent.d.ts +88 -0
  45. package/dist/agent/subagent.js +426 -0
  46. package/dist/agent/subagent.js.map +1 -0
  47. package/dist/checkpoint/index.d.ts +9 -0
  48. package/dist/checkpoint/index.js +11 -0
  49. package/dist/checkpoint/index.js.map +1 -0
  50. package/dist/checkpoint/manager.d.ts +99 -0
  51. package/dist/checkpoint/manager.js +281 -0
  52. package/dist/checkpoint/manager.js.map +1 -0
  53. package/dist/checkpoint/storage.d.ts +31 -0
  54. package/dist/checkpoint/storage.js +265 -0
  55. package/dist/checkpoint/storage.js.map +1 -0
  56. package/dist/checkpoint/types.d.ts +111 -0
  57. package/dist/checkpoint/types.js +17 -0
  58. package/dist/checkpoint/types.js.map +1 -0
  59. package/dist/commands/cache.js +5 -3
  60. package/dist/commands/cache.js.map +1 -1
  61. package/dist/commands/memory.js +21 -16
  62. package/dist/commands/memory.js.map +1 -1
  63. package/dist/commands/plan.d.ts +43 -0
  64. package/dist/commands/plan.js +385 -0
  65. package/dist/commands/plan.js.map +1 -0
  66. package/dist/commands/rewind.d.ts +19 -0
  67. package/dist/commands/rewind.js +221 -0
  68. package/dist/commands/rewind.js.map +1 -0
  69. package/dist/constants.d.ts +28 -0
  70. package/dist/constants.js +29 -0
  71. package/dist/constants.js.map +1 -1
  72. package/dist/hooks/use-enhanced-input.d.ts +5 -1
  73. package/dist/hooks/use-enhanced-input.js +23 -10
  74. package/dist/hooks/use-enhanced-input.js.map +1 -1
  75. package/dist/hooks/use-input-handler.d.ts +11 -1
  76. package/dist/hooks/use-input-handler.js +294 -2
  77. package/dist/hooks/use-input-handler.js.map +1 -1
  78. package/dist/llm/client.js +2 -1
  79. package/dist/llm/client.js.map +1 -1
  80. package/dist/llm/tools.d.ts +5 -0
  81. package/dist/llm/tools.js +57 -6
  82. package/dist/llm/tools.js.map +1 -1
  83. package/dist/mcp/client.d.ts +1 -0
  84. package/dist/mcp/client.js +30 -8
  85. package/dist/mcp/client.js.map +1 -1
  86. package/dist/mcp/transports.d.ts +0 -1
  87. package/dist/mcp/transports.js +10 -7
  88. package/dist/mcp/transports.js.map +1 -1
  89. package/dist/planner/dependency-resolver.d.ts +72 -0
  90. package/dist/planner/dependency-resolver.js +272 -0
  91. package/dist/planner/dependency-resolver.js.map +1 -0
  92. package/dist/planner/index.d.ts +12 -0
  93. package/dist/planner/index.js +26 -0
  94. package/dist/planner/index.js.map +1 -0
  95. package/dist/planner/plan-generator.d.ts +74 -0
  96. package/dist/planner/plan-generator.js +244 -0
  97. package/dist/planner/plan-generator.js.map +1 -0
  98. package/dist/planner/plan-storage.d.ts +98 -0
  99. package/dist/planner/plan-storage.js +325 -0
  100. package/dist/planner/plan-storage.js.map +1 -0
  101. package/dist/planner/prompts/planning-prompt.d.ts +41 -0
  102. package/dist/planner/prompts/planning-prompt.js +289 -0
  103. package/dist/planner/prompts/planning-prompt.js.map +1 -0
  104. package/dist/planner/task-planner.d.ts +135 -0
  105. package/dist/planner/task-planner.js +493 -0
  106. package/dist/planner/task-planner.js.map +1 -0
  107. package/dist/planner/token-estimator.d.ts +63 -0
  108. package/dist/planner/token-estimator.js +295 -0
  109. package/dist/planner/token-estimator.js.map +1 -0
  110. package/dist/planner/types.d.ts +669 -0
  111. package/dist/planner/types.js +213 -0
  112. package/dist/planner/types.js.map +1 -0
  113. package/dist/schemas/api-schemas.js +4 -0
  114. package/dist/schemas/api-schemas.js.map +1 -1
  115. package/dist/schemas/confirmation-schemas.d.ts +5 -0
  116. package/dist/schemas/confirmation-schemas.js +7 -0
  117. package/dist/schemas/confirmation-schemas.js.map +1 -1
  118. package/dist/schemas/index.d.ts +4 -4
  119. package/dist/tools/bash-output.d.ts +25 -0
  120. package/dist/tools/bash-output.js +145 -0
  121. package/dist/tools/bash-output.js.map +1 -0
  122. package/dist/tools/bash.d.ts +46 -2
  123. package/dist/tools/bash.js +241 -42
  124. package/dist/tools/bash.js.map +1 -1
  125. package/dist/tools/search.js +34 -9
  126. package/dist/tools/search.js.map +1 -1
  127. package/dist/tools/text-editor.d.ts +16 -0
  128. package/dist/tools/text-editor.js +37 -2
  129. package/dist/tools/text-editor.js.map +1 -1
  130. package/dist/ui/components/chat-history.d.ts +1 -0
  131. package/dist/ui/components/chat-history.js +125 -41
  132. package/dist/ui/components/chat-history.js.map +1 -1
  133. package/dist/ui/components/chat-input.js +10 -3
  134. package/dist/ui/components/chat-input.js.map +1 -1
  135. package/dist/ui/components/chat-interface.js +154 -45
  136. package/dist/ui/components/chat-interface.js.map +1 -1
  137. package/dist/ui/components/collapsible-tool-result.d.ts +26 -0
  138. package/dist/ui/components/collapsible-tool-result.js +172 -0
  139. package/dist/ui/components/collapsible-tool-result.js.map +1 -0
  140. package/dist/ui/components/command-suggestions.js +2 -1
  141. package/dist/ui/components/command-suggestions.js.map +1 -1
  142. package/dist/ui/components/confirmation-dialog.js +25 -36
  143. package/dist/ui/components/confirmation-dialog.js.map +1 -1
  144. package/dist/ui/components/index.d.ts +8 -0
  145. package/dist/ui/components/index.js +9 -0
  146. package/dist/ui/components/index.js.map +1 -1
  147. package/dist/ui/components/keyboard-hints.d.ts +35 -0
  148. package/dist/ui/components/keyboard-hints.js +134 -0
  149. package/dist/ui/components/keyboard-hints.js.map +1 -0
  150. package/dist/ui/components/loading-spinner.d.ts +2 -1
  151. package/dist/ui/components/loading-spinner.js +86 -34
  152. package/dist/ui/components/loading-spinner.js.map +1 -1
  153. package/dist/ui/components/phase-progress.d.ts +21 -0
  154. package/dist/ui/components/phase-progress.js +228 -0
  155. package/dist/ui/components/phase-progress.js.map +1 -0
  156. package/dist/ui/components/quick-actions.d.ts +12 -0
  157. package/dist/ui/components/quick-actions.js +122 -0
  158. package/dist/ui/components/quick-actions.js.map +1 -0
  159. package/dist/ui/components/reasoning-display.d.ts +0 -80
  160. package/dist/ui/components/reasoning-display.js +0 -83
  161. package/dist/ui/components/reasoning-display.js.map +1 -1
  162. package/dist/ui/components/status-bar.d.ts +25 -0
  163. package/dist/ui/components/status-bar.js +125 -0
  164. package/dist/ui/components/status-bar.js.map +1 -0
  165. package/dist/ui/components/subagent-monitor.d.ts +29 -0
  166. package/dist/ui/components/subagent-monitor.js +150 -0
  167. package/dist/ui/components/subagent-monitor.js.map +1 -0
  168. package/dist/ui/components/toast-notification.d.ts +123 -0
  169. package/dist/ui/components/toast-notification.js +143 -0
  170. package/dist/ui/components/toast-notification.js.map +1 -0
  171. package/dist/ui/components/welcome-panel.d.ts +10 -0
  172. package/dist/ui/components/welcome-panel.js +107 -0
  173. package/dist/ui/components/welcome-panel.js.map +1 -0
  174. package/dist/utils/background-task-manager.d.ts +95 -0
  175. package/dist/utils/background-task-manager.js +330 -0
  176. package/dist/utils/background-task-manager.js.map +1 -0
  177. package/dist/utils/confirmation-service.js +8 -3
  178. package/dist/utils/confirmation-service.js.map +1 -1
  179. package/dist/utils/history-manager.d.ts +1 -0
  180. package/dist/utils/history-manager.js +40 -5
  181. package/dist/utils/history-manager.js.map +1 -1
  182. package/dist/utils/json-utils.d.ts +7 -0
  183. package/dist/utils/json-utils.js +70 -2
  184. package/dist/utils/json-utils.js.map +1 -1
  185. package/dist/utils/message-optimizer.d.ts +1 -0
  186. package/dist/utils/message-optimizer.js +7 -1
  187. package/dist/utils/message-optimizer.js.map +1 -1
  188. package/dist/utils/project-analyzer.js +5 -2
  189. package/dist/utils/project-analyzer.js.map +1 -1
  190. package/dist/utils/settings-manager.js +12 -10
  191. package/dist/utils/settings-manager.js.map +1 -1
  192. package/dist/utils/text-utils.js +3 -3
  193. package/dist/utils/text-utils.js.map +1 -1
  194. package/dist/utils/token-counter.d.ts +5 -0
  195. package/dist/utils/token-counter.js +18 -3
  196. package/dist/utils/token-counter.js.map +1 -1
  197. package/package.json +3 -1
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Phase Progress Component
3
+ *
4
+ * Displays the progress of multi-phase plan execution.
5
+ */
6
+ import React from "react";
7
+ import { Box, Text } from "ink";
8
+ import { PhaseStatus, RiskLevel, } from "../../planner/types.js";
9
+ // ============================================================================
10
+ // Helper Functions
11
+ // ============================================================================
12
+ /**
13
+ * Get icon for phase status
14
+ */
15
+ function getStatusIcon(status) {
16
+ switch (status) {
17
+ case PhaseStatus.COMPLETED:
18
+ return "✓";
19
+ case PhaseStatus.EXECUTING:
20
+ return "⏳";
21
+ case PhaseStatus.FAILED:
22
+ return "✕";
23
+ case PhaseStatus.SKIPPED:
24
+ return "⊘";
25
+ case PhaseStatus.APPROVED:
26
+ return "◉";
27
+ case PhaseStatus.QUEUED:
28
+ return "◎";
29
+ case PhaseStatus.CANCELLED:
30
+ return "⊗";
31
+ case PhaseStatus.PENDING:
32
+ default:
33
+ return "○";
34
+ }
35
+ }
36
+ /**
37
+ * Get color for phase status
38
+ */
39
+ function getStatusColor(status) {
40
+ switch (status) {
41
+ case PhaseStatus.COMPLETED:
42
+ return "green";
43
+ case PhaseStatus.EXECUTING:
44
+ return "yellow";
45
+ case PhaseStatus.FAILED:
46
+ return "red";
47
+ case PhaseStatus.SKIPPED:
48
+ return "gray";
49
+ case PhaseStatus.APPROVED:
50
+ return "cyan";
51
+ case PhaseStatus.QUEUED:
52
+ return "blue";
53
+ case PhaseStatus.CANCELLED:
54
+ return "red";
55
+ case PhaseStatus.PENDING:
56
+ default:
57
+ return "gray";
58
+ }
59
+ }
60
+ /**
61
+ * Get risk indicator
62
+ */
63
+ function getRiskIndicator(riskLevel) {
64
+ switch (riskLevel) {
65
+ case RiskLevel.HIGH:
66
+ return { icon: "⚠", color: "red" };
67
+ case RiskLevel.MEDIUM:
68
+ return { icon: "△", color: "yellow" };
69
+ case RiskLevel.LOW:
70
+ default:
71
+ return { icon: "", color: "gray" };
72
+ }
73
+ }
74
+ /**
75
+ * Format duration
76
+ */
77
+ function formatDuration(ms) {
78
+ if (ms < 1000)
79
+ return `${ms}ms`;
80
+ const seconds = Math.floor(ms / 1000);
81
+ if (seconds < 60)
82
+ return `${seconds}s`;
83
+ const minutes = Math.floor(seconds / 60);
84
+ const remainingSeconds = seconds % 60;
85
+ return `${minutes}m ${remainingSeconds}s`;
86
+ }
87
+ // ============================================================================
88
+ // Phase Item Component
89
+ // ============================================================================
90
+ function PhaseItem({ phase, isCurrent, showDetails = false }) {
91
+ const statusIcon = getStatusIcon(phase.status);
92
+ const statusColor = getStatusColor(phase.status);
93
+ const risk = getRiskIndicator(phase.riskLevel);
94
+ return (React.createElement(Box, { flexDirection: "column" },
95
+ React.createElement(Box, null,
96
+ React.createElement(Text, { color: statusColor, bold: isCurrent }, statusIcon),
97
+ React.createElement(Text, { color: isCurrent ? "white" : "gray", bold: isCurrent },
98
+ " ",
99
+ phase.index + 1,
100
+ ". ",
101
+ phase.name),
102
+ risk.icon && (React.createElement(Text, { color: risk.color },
103
+ " ",
104
+ risk.icon)),
105
+ phase.duration && (React.createElement(Text, { color: "gray", dimColor: true },
106
+ " ",
107
+ "(",
108
+ formatDuration(phase.duration),
109
+ ")"))),
110
+ showDetails && (React.createElement(Box, { flexDirection: "column", paddingLeft: 3 },
111
+ React.createElement(Text, { color: "gray", dimColor: true }, phase.description),
112
+ phase.objectives.length > 0 && (React.createElement(Box, { flexDirection: "column", marginTop: 0 },
113
+ phase.objectives.slice(0, 3).map((obj, i) => (React.createElement(Text, { key: i, color: "gray", dimColor: true },
114
+ "\u2022 ",
115
+ obj))),
116
+ phase.objectives.length > 3 && (React.createElement(Text, { color: "gray", dimColor: true },
117
+ "...and ",
118
+ phase.objectives.length - 3,
119
+ " more")))),
120
+ phase.error && (React.createElement(Text, { color: "red" },
121
+ "Error: ",
122
+ phase.error))))));
123
+ }
124
+ function CompactProgress({ plan }) {
125
+ const total = plan.phases.length;
126
+ const completed = plan.phases.filter((p) => p.status === PhaseStatus.COMPLETED).length;
127
+ const failed = plan.phases.filter((p) => p.status === PhaseStatus.FAILED).length;
128
+ const currentIndex = plan.currentPhaseIndex;
129
+ // Build progress string
130
+ const progress = plan.phases.map((phase, i) => {
131
+ const icon = getStatusIcon(phase.status);
132
+ const color = getStatusColor(phase.status);
133
+ return { icon, color, isCurrent: i === currentIndex };
134
+ });
135
+ return (React.createElement(Box, { flexDirection: "column" },
136
+ React.createElement(Box, null,
137
+ React.createElement(Text, { color: "cyan", bold: true },
138
+ "Phase ",
139
+ currentIndex + 1,
140
+ "/",
141
+ total),
142
+ currentIndex >= 0 && currentIndex < plan.phases.length && (React.createElement(Text, { color: "white" },
143
+ ": ",
144
+ plan.phases[currentIndex].name))),
145
+ React.createElement(Box, { marginTop: 0 }, progress.map((p, i) => (React.createElement(Text, { key: i, color: p.color, bold: p.isCurrent },
146
+ p.icon,
147
+ i < progress.length - 1 ? " → " : "")))),
148
+ React.createElement(Box, { marginTop: 0 },
149
+ React.createElement(Text, { color: "gray", dimColor: true },
150
+ completed,
151
+ " completed",
152
+ failed > 0 && React.createElement(Text, { color: "red" },
153
+ ", ",
154
+ failed,
155
+ " failed")))));
156
+ }
157
+ // ============================================================================
158
+ // Main Phase Progress Component
159
+ // ============================================================================
160
+ export function PhaseProgress({ plan, showDetails = false, compact = false, }) {
161
+ if (compact) {
162
+ return React.createElement(CompactProgress, { plan: plan });
163
+ }
164
+ return (React.createElement(Box, { flexDirection: "column" },
165
+ React.createElement(Box, { marginBottom: 1 },
166
+ React.createElement(Text, { color: "cyan", bold: true }, "\uD83D\uDCCB Execution Plan"),
167
+ React.createElement(Text, { color: "gray" },
168
+ " ",
169
+ "(",
170
+ plan.phases.length,
171
+ " phases)")),
172
+ React.createElement(Box, { flexDirection: "column" }, plan.phases.map((phase) => (React.createElement(PhaseItem, { key: phase.id, phase: phase, isCurrent: phase.index === plan.currentPhaseIndex, showDetails: showDetails })))),
173
+ plan.estimatedDuration > 0 && (React.createElement(Box, { marginTop: 1 },
174
+ React.createElement(Text, { color: "gray", dimColor: true },
175
+ "Est. ",
176
+ formatDuration(plan.estimatedDuration)),
177
+ plan.actualDuration > 0 && (React.createElement(Text, { color: "gray", dimColor: true },
178
+ " ",
179
+ "\u2022 Actual: ",
180
+ formatDuration(plan.actualDuration)))))));
181
+ }
182
+ export function PlanSummary({ plan }) {
183
+ const hasHighRisk = plan.phases.some((p) => p.riskLevel === RiskLevel.HIGH);
184
+ const parallelPhases = plan.phases.filter((p) => p.canRunInParallel).length;
185
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "single", borderColor: "cyan", paddingX: 2, paddingY: 1 },
186
+ React.createElement(Box, { marginBottom: 1 },
187
+ React.createElement(Text, { color: "cyan", bold: true }, "\uD83D\uDCCB Execution Plan")),
188
+ React.createElement(Box, { marginBottom: 1 },
189
+ React.createElement(Text, { color: "gray" }, "Request: "),
190
+ React.createElement(Text, { color: "white" },
191
+ plan.originalPrompt.slice(0, 60),
192
+ plan.originalPrompt.length > 60 ? "..." : "")),
193
+ React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
194
+ React.createElement(Text, { color: "yellow", bold: true }, "Phases:"),
195
+ plan.phases.map((phase, i) => {
196
+ const risk = getRiskIndicator(phase.riskLevel);
197
+ return (React.createElement(Box, { key: phase.id, paddingLeft: 2 },
198
+ React.createElement(Text, { color: "gray" },
199
+ i + 1,
200
+ ".",
201
+ " "),
202
+ React.createElement(Text, { color: "white" }, phase.name),
203
+ risk.icon && (React.createElement(Text, { color: risk.color },
204
+ " ",
205
+ risk.icon)),
206
+ phase.requiresApproval && (React.createElement(Text, { color: "yellow" }, " (approval required)"))));
207
+ })),
208
+ React.createElement(Box, null,
209
+ React.createElement(Text, { color: "gray" },
210
+ "Est: ~",
211
+ formatDuration(plan.estimatedDuration)),
212
+ React.createElement(Text, { color: "gray" }, " \u2502 "),
213
+ React.createElement(Text, { color: "gray" },
214
+ "Phases: ",
215
+ plan.phases.length),
216
+ parallelPhases > 0 && (React.createElement(React.Fragment, null,
217
+ React.createElement(Text, { color: "gray" }, " \u2502 "),
218
+ React.createElement(Text, { color: "blue" },
219
+ "Parallel: ",
220
+ parallelPhases))),
221
+ hasHighRisk && (React.createElement(React.Fragment, null,
222
+ React.createElement(Text, { color: "gray" }, " \u2502 "),
223
+ React.createElement(Text, { color: "red" }, "\u26A0 High Risk")))),
224
+ React.createElement(Box, { marginTop: 1, borderStyle: "single", borderColor: "gray", paddingX: 1 },
225
+ React.createElement(Text, { color: "gray", dimColor: true }, "[Enter] Execute \u2502 [e] Edit \u2502 [s] Skip phase \u2502 [c] Cancel"))));
226
+ }
227
+ export default PhaseProgress;
228
+ //# sourceMappingURL=phase-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-progress.js","sourceRoot":"","sources":["../../../src/ui/components/phase-progress.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Quick Actions Menu Component (Ctrl+K style command palette)
3
+ * Provides fast access to common commands
4
+ */
5
+ import React from "react";
6
+ interface QuickActionsProps {
7
+ isVisible: boolean;
8
+ onSelect: (command: string) => void;
9
+ onClose: () => void;
10
+ }
11
+ export declare function QuickActions({ isVisible, onSelect, onClose }: QuickActionsProps): React.JSX.Element | null;
12
+ export default QuickActions;
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Quick Actions Menu Component (Ctrl+K style command palette)
3
+ * Provides fast access to common commands
4
+ */
5
+ import React, { useState, useEffect, useMemo } from "react";
6
+ import { Box, Text, useInput } from "ink";
7
+ const QUICK_ACTIONS = [
8
+ // Navigation
9
+ { command: "/clear", label: "Clear", description: "Clear conversation history", category: "navigation" },
10
+ { command: "/continue", label: "Continue", description: "Resume incomplete response", category: "navigation" },
11
+ { command: "/exit", label: "Exit", description: "Exit ax-cli", category: "navigation" },
12
+ // Settings
13
+ { command: "/init", label: "Init", description: "Initialize project context (CUSTOM.md)", category: "settings" },
14
+ { command: "/models", label: "Models", description: "List available models", category: "settings" },
15
+ { command: "/setup", label: "Setup", description: "Configure API keys and settings", category: "settings" },
16
+ // Tools
17
+ { command: "/tasks", label: "Tasks", description: "List background tasks", category: "tools" },
18
+ { command: "/usage", label: "Usage", description: "Show API usage statistics", category: "tools" },
19
+ { command: "/mcp list", label: "MCP List", description: "List connected MCP servers", category: "tools" },
20
+ { command: "/commit-and-push", label: "Commit", description: "AI commit & push to remote", category: "tools" },
21
+ { command: "/rewind", label: "Rewind", description: "Rewind to previous checkpoint", category: "tools" },
22
+ { command: "/checkpoints", label: "Checkpoints", description: "Show checkpoint statistics", category: "tools" },
23
+ // Help
24
+ { command: "/help", label: "Help", description: "Show all available commands", category: "help" },
25
+ ];
26
+ export function QuickActions({ isVisible, onSelect, onClose }) {
27
+ const [searchQuery, setSearchQuery] = useState("");
28
+ const [selectedIndex, setSelectedIndex] = useState(0);
29
+ // Filter actions based on search query
30
+ const filteredActions = useMemo(() => {
31
+ if (!searchQuery)
32
+ return QUICK_ACTIONS;
33
+ const query = searchQuery.toLowerCase();
34
+ return QUICK_ACTIONS.filter((action) => action.command.toLowerCase().includes(query) ||
35
+ action.label.toLowerCase().includes(query) ||
36
+ action.description.toLowerCase().includes(query));
37
+ }, [searchQuery]);
38
+ // Reset selection when filtered list changes
39
+ useEffect(() => {
40
+ setSelectedIndex(0);
41
+ }, [filteredActions]);
42
+ // Reset state when menu opens
43
+ useEffect(() => {
44
+ if (isVisible) {
45
+ setSearchQuery("");
46
+ setSelectedIndex(0);
47
+ }
48
+ }, [isVisible]);
49
+ useInput((input, key) => {
50
+ if (!isVisible)
51
+ return;
52
+ if (key.escape) {
53
+ onClose();
54
+ return;
55
+ }
56
+ if (key.return) {
57
+ if (filteredActions.length > 0) {
58
+ onSelect(filteredActions[selectedIndex].command);
59
+ }
60
+ return;
61
+ }
62
+ if (key.upArrow) {
63
+ setSelectedIndex((prev) => prev > 0 ? prev - 1 : filteredActions.length - 1);
64
+ return;
65
+ }
66
+ if (key.downArrow) {
67
+ setSelectedIndex((prev) => prev < filteredActions.length - 1 ? prev + 1 : 0);
68
+ return;
69
+ }
70
+ if (key.backspace || key.delete) {
71
+ setSearchQuery((prev) => prev.slice(0, -1));
72
+ return;
73
+ }
74
+ // Add character to search
75
+ if (input && !key.ctrl && !key.meta) {
76
+ setSearchQuery((prev) => prev + input);
77
+ }
78
+ }, { isActive: isVisible });
79
+ if (!isVisible)
80
+ return null;
81
+ // Group actions by category with pre-calculated indices
82
+ const { groupedActions, actionIndices } = useMemo(() => {
83
+ const groups = {};
84
+ const indices = new Map();
85
+ let idx = 0;
86
+ filteredActions.forEach((action) => {
87
+ if (!groups[action.category]) {
88
+ groups[action.category] = [];
89
+ }
90
+ groups[action.category].push(action);
91
+ indices.set(action.command, idx++);
92
+ });
93
+ return { groupedActions: groups, actionIndices: indices };
94
+ }, [filteredActions]);
95
+ return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 1, paddingY: 0, marginTop: 1 },
96
+ React.createElement(Box, { marginBottom: 1 },
97
+ React.createElement(Text, { color: "cyan", bold: true }, "\u2318 Quick Actions"),
98
+ React.createElement(Text, { color: "gray" }, " (type to search)")),
99
+ React.createElement(Box, { borderStyle: "single", borderColor: "gray", paddingX: 1, marginBottom: 1 },
100
+ React.createElement(Text, { color: "cyan" }, "\u276F "),
101
+ React.createElement(Text, null,
102
+ searchQuery,
103
+ React.createElement(Text, { backgroundColor: "white", color: "black" }, " ")),
104
+ !searchQuery && (React.createElement(Text, { color: "gray", dimColor: true }, "Search commands..."))),
105
+ filteredActions.length === 0 ? (React.createElement(Box, null,
106
+ React.createElement(Text, { color: "gray" }, "No matching commands found"))) : (Object.entries(groupedActions).map(([category, actions]) => (React.createElement(Box, { key: category, flexDirection: "column", marginBottom: 1 },
107
+ React.createElement(Box, null,
108
+ React.createElement(Text, { color: "gray", dimColor: true, bold: true }, category.toUpperCase())),
109
+ actions.map((action) => {
110
+ const currentIndex = actionIndices.get(action.command) ?? -1;
111
+ const isSelected = currentIndex === selectedIndex;
112
+ return (React.createElement(Box, { key: action.command, paddingLeft: 1 },
113
+ React.createElement(Text, { color: isSelected ? "black" : "cyan", backgroundColor: isSelected ? "cyan" : undefined }, action.command.padEnd(15)),
114
+ React.createElement(Text, { color: isSelected ? "black" : "gray", backgroundColor: isSelected ? "cyan" : undefined },
115
+ " ",
116
+ action.description)));
117
+ }))))),
118
+ React.createElement(Box, { marginTop: 1 },
119
+ React.createElement(Text, { color: "gray", dimColor: true }, "\u2191\u2193 navigate \u2022 Enter select \u2022 Esc close"))));
120
+ }
121
+ export default QuickActions;
122
+ //# sourceMappingURL=quick-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quick-actions.js","sourceRoot":"","sources":["../../../src/ui/components/quick-actions.tsx"],"names":[],"mappings":"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"}
@@ -22,88 +22,8 @@ export interface ReasoningDisplayProps {
22
22
  * separation from the final answer.
23
23
  *
24
24
  * Features:
25
- * - Collapsible/expandable reasoning section
26
25
  * - Visual distinction with dimmed styling
27
26
  * - Streaming support with indicator
28
27
  * - Clear separation from final answer
29
- *
30
- * @example
31
- * ```tsx
32
- * <ReasoningDisplay
33
- * content="Let me break down this problem step by step..."
34
- * visible={showReasoning}
35
- * isStreaming={true}
36
- * />
37
- * ```
38
28
  */
39
29
  export declare function ReasoningDisplay({ content, visible, isStreaming, }: ReasoningDisplayProps): React.JSX.Element | null;
40
- /**
41
- * CollapsibleReasoningDisplay Component
42
- *
43
- * Advanced version with collapse/expand functionality.
44
- * Allows users to toggle visibility of reasoning content.
45
- *
46
- * @example
47
- * ```tsx
48
- * <CollapsibleReasoningDisplay
49
- * content="Step 1: Analyze the input..."
50
- * defaultCollapsed={false}
51
- * />
52
- * ```
53
- */
54
- export interface CollapsibleReasoningDisplayProps {
55
- content: string;
56
- /**
57
- * Whether the reasoning is collapsed by default
58
- * @default false
59
- */
60
- defaultCollapsed?: boolean;
61
- /**
62
- * Whether this is a streaming update
63
- * @default false
64
- */
65
- isStreaming?: boolean;
66
- }
67
- export declare function CollapsibleReasoningDisplay({ content, defaultCollapsed, isStreaming, }: CollapsibleReasoningDisplayProps): React.JSX.Element | null;
68
- /**
69
- * ReasoningSection Component
70
- *
71
- * Wrapper for multiple reasoning steps or sections.
72
- * Useful for displaying step-by-step thought processes.
73
- *
74
- * @example
75
- * ```tsx
76
- * <ReasoningSection
77
- * steps={[
78
- * "Step 1: Understanding the problem...",
79
- * "Step 2: Analyzing the code...",
80
- * "Step 3: Proposing a solution..."
81
- * ]}
82
- * />
83
- * ```
84
- */
85
- export interface ReasoningSectionProps {
86
- /**
87
- * Array of reasoning steps
88
- */
89
- steps: string[];
90
- /**
91
- * Whether to show step numbers
92
- * @default true
93
- */
94
- showStepNumbers?: boolean;
95
- /**
96
- * Whether this is actively streaming
97
- * @default false
98
- */
99
- isStreaming?: boolean;
100
- }
101
- export declare function ReasoningSection({ steps, showStepNumbers, isStreaming, }: ReasoningSectionProps): React.JSX.Element | null;
102
- /**
103
- * Utility function to parse reasoning content into steps
104
- * Detects common step patterns like "Step 1:", "1.", etc.
105
- *
106
- * @param content - Raw reasoning content
107
- * @returns Array of reasoning steps
108
- */
109
- export declare function parseReasoningSteps(content: string): string[];
@@ -7,19 +7,9 @@ import { Box, Text } from "ink";
7
7
  * separation from the final answer.
8
8
  *
9
9
  * Features:
10
- * - Collapsible/expandable reasoning section
11
10
  * - Visual distinction with dimmed styling
12
11
  * - Streaming support with indicator
13
12
  * - Clear separation from final answer
14
- *
15
- * @example
16
- * ```tsx
17
- * <ReasoningDisplay
18
- * content="Let me break down this problem step by step..."
19
- * visible={showReasoning}
20
- * isStreaming={true}
21
- * />
22
- * ```
23
13
  */
24
14
  export function ReasoningDisplay({ content, visible = true, isStreaming = false, }) {
25
15
  // Don't render if not visible or no content
@@ -34,77 +24,4 @@ export function ReasoningDisplay({ content, visible = true, isStreaming = false,
34
24
  React.createElement(Box, { flexDirection: "column", paddingLeft: 1 },
35
25
  React.createElement(Text, { color: "white", dimColor: true, italic: true }, content))));
36
26
  }
37
- export function CollapsibleReasoningDisplay({ content, defaultCollapsed = false, isStreaming = false, }) {
38
- const [isCollapsed] = React.useState(defaultCollapsed);
39
- // const setIsCollapsed = ...; // TODO: Implement toggle functionality with user input
40
- if (!content || content.trim().length === 0) {
41
- return null;
42
- }
43
- // Extract first line as preview
44
- const lines = content.split("\n");
45
- const preview = lines[0]?.slice(0, 80) || "";
46
- const hasMore = content.length > 80 || lines.length > 1;
47
- return (React.createElement(Box, { flexDirection: "column", marginBottom: 1, paddingLeft: 2, borderStyle: "single", borderColor: "gray" },
48
- React.createElement(Box, { flexDirection: "row", marginBottom: 0 },
49
- React.createElement(Text, { color: "cyan", dimColor: true },
50
- isCollapsed ? "▸" : "▾",
51
- " \uD83D\uDCAD Thinking",
52
- isStreaming ? "..." : "",
53
- hasMore && isCollapsed && (React.createElement(Text, { dimColor: true }, " (click to expand)")))),
54
- React.createElement(Box, { flexDirection: "column", paddingLeft: 1 }, isCollapsed ? (React.createElement(Text, { color: "white", dimColor: true, italic: true },
55
- preview,
56
- hasMore && "...")) : (React.createElement(Text, { color: "white", dimColor: true, italic: true }, content)))));
57
- }
58
- export function ReasoningSection({ steps, showStepNumbers = true, isStreaming = false, }) {
59
- if (!steps || steps.length === 0) {
60
- return null;
61
- }
62
- return (React.createElement(Box, { flexDirection: "column", marginBottom: 1, paddingLeft: 2, borderStyle: "single", borderColor: "gray" },
63
- React.createElement(Box, { flexDirection: "row", marginBottom: 0 },
64
- React.createElement(Text, { color: "cyan", dimColor: true },
65
- "\uD83D\uDCAD Thinking Process",
66
- isStreaming ? "..." : "")),
67
- React.createElement(Box, { flexDirection: "column", paddingLeft: 1 }, steps.map((step, index) => (React.createElement(Box, { key: index, flexDirection: "row", marginY: 0 },
68
- showStepNumbers && (React.createElement(Text, { color: "cyan", dimColor: true },
69
- index + 1,
70
- ".",
71
- " ")),
72
- React.createElement(Text, { color: "white", dimColor: true, italic: true }, step)))))));
73
- }
74
- /**
75
- * Utility function to parse reasoning content into steps
76
- * Detects common step patterns like "Step 1:", "1.", etc.
77
- *
78
- * @param content - Raw reasoning content
79
- * @returns Array of reasoning steps
80
- */
81
- export function parseReasoningSteps(content) {
82
- if (!content || content.trim().length === 0)
83
- return [];
84
- // Try to detect step patterns
85
- const stepPatterns = [
86
- /^Step \d+:/im,
87
- /^\d+\./m,
88
- /^-\s/m,
89
- /^\*\s/m,
90
- ];
91
- for (const pattern of stepPatterns) {
92
- if (pattern.test(content)) {
93
- // Split by the pattern
94
- const steps = content
95
- .split(/(?=^Step \d+:|^\d+\.|^-\s|^\*\s)/m)
96
- .filter(s => s.trim().length > 0)
97
- .map(s => s.trim());
98
- if (steps.length > 1) {
99
- return steps;
100
- }
101
- }
102
- }
103
- // If no patterns found, split by paragraphs
104
- const paragraphs = content
105
- .split("\n\n")
106
- .filter(p => p.trim().length > 0)
107
- .map(p => p.trim());
108
- return paragraphs.length > 1 ? paragraphs : [content];
109
- }
110
27
  //# sourceMappingURL=reasoning-display.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reasoning-display.js","sourceRoot":"","sources":["../../../src/ui/components/reasoning-display.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reasoning-display.js","sourceRoot":"","sources":["../../../src/ui/components/reasoning-display.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAmBhC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,OAAO,EACP,OAAO,GAAG,IAAI,EACd,WAAW,GAAG,KAAK,GACG;IACtB,4CAA4C;IAC5C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,MAAM;QAClG,oBAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,YAAY,EAAE,CAAC;YACtC,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ;;gBACb,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAC/B,CACH;QACN,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC;YACxC,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,QAAC,MAAM,UAChC,OAAO,CACH,CACH,CACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Enhanced Status Bar Component
3
+ * Professional, scannable status display with visual context indicator
4
+ */
5
+ import React from "react";
6
+ interface StatusBarProps {
7
+ projectName: string;
8
+ version: string;
9
+ model: string;
10
+ contextPercentage: number;
11
+ showAutoPrune: boolean;
12
+ autoEditEnabled: boolean;
13
+ verboseMode: boolean;
14
+ backgroundMode?: boolean;
15
+ mcpServerCount?: number;
16
+ backgroundTaskCount?: number;
17
+ isProcessing?: boolean;
18
+ processingTime?: number;
19
+ tokenCount?: number;
20
+ flashAutoEdit?: boolean;
21
+ flashVerbose?: boolean;
22
+ flashBackground?: boolean;
23
+ }
24
+ export declare function StatusBar({ projectName, version, model, contextPercentage, showAutoPrune, autoEditEnabled, verboseMode, backgroundMode, mcpServerCount, backgroundTaskCount, isProcessing, tokenCount, flashAutoEdit, flashVerbose, flashBackground, }: StatusBarProps): React.JSX.Element;
25
+ export default StatusBar;