@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,295 @@
1
+ /**
2
+ * Token Estimator
3
+ *
4
+ * Estimates token usage for phases and plans.
5
+ * Uses heuristics based on objectives and tools.
6
+ */
7
+ import { RiskLevel } from "./types.js";
8
+ // ============================================================================
9
+ // Constants
10
+ // ============================================================================
11
+ /**
12
+ * Base token costs per tool type
13
+ */
14
+ const TOOL_TOKEN_COSTS = {
15
+ // File operations
16
+ view_file: 500,
17
+ str_replace_editor: 800,
18
+ text_editor: 800,
19
+ write_file: 600,
20
+ // Search
21
+ search: 400,
22
+ grep: 300,
23
+ find: 200,
24
+ // Shell
25
+ bash: 1000,
26
+ execute_command: 1000,
27
+ // Navigation
28
+ list_directory: 200,
29
+ read_file: 500,
30
+ // Analysis
31
+ analyze: 1500,
32
+ understand: 1200,
33
+ // Testing
34
+ test: 2000,
35
+ run_tests: 2000,
36
+ // Documentation
37
+ document: 1500,
38
+ write_docs: 1500,
39
+ // Default for unknown tools
40
+ default: 500,
41
+ };
42
+ /**
43
+ * Complexity multipliers
44
+ */
45
+ const COMPLEXITY_MULTIPLIERS = {
46
+ simple: 1.0,
47
+ moderate: 1.5,
48
+ complex: 2.5,
49
+ };
50
+ /**
51
+ * Objective complexity indicators (keywords that increase estimates)
52
+ */
53
+ const COMPLEX_OBJECTIVE_KEYWORDS = [
54
+ "refactor",
55
+ "rewrite",
56
+ "migrate",
57
+ "implement",
58
+ "create",
59
+ "design",
60
+ "optimize",
61
+ "integrate",
62
+ "test",
63
+ "comprehensive",
64
+ "full",
65
+ "entire",
66
+ "all",
67
+ ];
68
+ /**
69
+ * Simple objective keywords (decrease estimates)
70
+ */
71
+ const SIMPLE_OBJECTIVE_KEYWORDS = [
72
+ "read",
73
+ "view",
74
+ "check",
75
+ "list",
76
+ "find",
77
+ "locate",
78
+ "identify",
79
+ "examine",
80
+ "review",
81
+ ];
82
+ // ============================================================================
83
+ // Token Estimator Class
84
+ // ============================================================================
85
+ export class TokenEstimator {
86
+ baseTokensPerPhase;
87
+ tokensPerObjective;
88
+ constructor(options) {
89
+ this.baseTokensPerPhase = options?.baseTokensPerPhase || 2000;
90
+ this.tokensPerObjective = options?.tokensPerObjective || 500;
91
+ }
92
+ /**
93
+ * Estimate tokens for a single phase
94
+ */
95
+ estimatePhase(phase) {
96
+ let estimate = this.baseTokensPerPhase;
97
+ // Add tokens for each objective
98
+ for (const objective of phase.objectives) {
99
+ let objectiveTokens = this.tokensPerObjective;
100
+ // Adjust based on objective complexity
101
+ const lowerObjective = objective.toLowerCase();
102
+ if (COMPLEX_OBJECTIVE_KEYWORDS.some((kw) => lowerObjective.includes(kw))) {
103
+ objectiveTokens *= 1.5;
104
+ }
105
+ else if (SIMPLE_OBJECTIVE_KEYWORDS.some((kw) => lowerObjective.includes(kw))) {
106
+ objectiveTokens *= 0.7;
107
+ }
108
+ estimate += objectiveTokens;
109
+ }
110
+ // Add tokens for each required tool
111
+ for (const tool of phase.toolsRequired) {
112
+ const toolCost = TOOL_TOKEN_COSTS[tool] || TOOL_TOKEN_COSTS.default;
113
+ estimate += toolCost;
114
+ }
115
+ // Multiply by risk level
116
+ switch (phase.riskLevel) {
117
+ case RiskLevel.HIGH:
118
+ estimate *= 1.3; // Higher risk = more validation/care
119
+ break;
120
+ case RiskLevel.MEDIUM:
121
+ estimate *= 1.1;
122
+ break;
123
+ case RiskLevel.LOW:
124
+ default:
125
+ break;
126
+ }
127
+ return Math.round(estimate);
128
+ }
129
+ /**
130
+ * Estimate tokens for an entire plan
131
+ */
132
+ estimatePlan(plan) {
133
+ let total = 0;
134
+ for (const phase of plan.phases) {
135
+ total += this.estimatePhase(phase);
136
+ }
137
+ // Apply complexity multiplier
138
+ const multiplier = COMPLEXITY_MULTIPLIERS[plan.complexity] ||
139
+ COMPLEXITY_MULTIPLIERS.moderate;
140
+ // Add overhead for plan coordination
141
+ const coordinationOverhead = plan.phases.length * 200;
142
+ return Math.round(total * multiplier + coordinationOverhead);
143
+ }
144
+ /**
145
+ * Estimate tokens for an execution batch
146
+ */
147
+ estimateBatch(batch) {
148
+ let total = 0;
149
+ for (const phase of batch.phases) {
150
+ total += this.estimatePhase(phase);
151
+ }
152
+ // Parallel execution has some overhead
153
+ if (batch.canRunInParallel && batch.phases.length > 1) {
154
+ total *= 1.1; // 10% overhead for coordination
155
+ }
156
+ return Math.round(total);
157
+ }
158
+ /**
159
+ * Estimate duration for a phase (in milliseconds)
160
+ */
161
+ estimatePhaseDuration(phase) {
162
+ const tokens = this.estimatePhase(phase);
163
+ // Rough estimate: 50 tokens per second processing
164
+ const baseTime = (tokens / 50) * 1000;
165
+ // Add time for tool executions
166
+ let toolTime = 0;
167
+ for (const tool of phase.toolsRequired) {
168
+ switch (tool) {
169
+ case "bash":
170
+ case "execute_command":
171
+ toolTime += 5000; // 5 seconds per bash command
172
+ break;
173
+ case "test":
174
+ case "run_tests":
175
+ toolTime += 30000; // 30 seconds for tests
176
+ break;
177
+ case "search":
178
+ case "grep":
179
+ toolTime += 2000; // 2 seconds for search
180
+ break;
181
+ default:
182
+ toolTime += 1000; // 1 second default
183
+ }
184
+ }
185
+ return Math.round(baseTime + toolTime);
186
+ }
187
+ /**
188
+ * Estimate total duration for a plan
189
+ */
190
+ estimatePlanDuration(_plan, batches) {
191
+ let totalDuration = 0;
192
+ for (const batch of batches) {
193
+ if (batch.canRunInParallel && batch.phases.length > 1) {
194
+ // Parallel: take the max duration
195
+ const durations = batch.phases.map((p) => this.estimatePhaseDuration(p));
196
+ totalDuration += Math.max(...durations);
197
+ }
198
+ else {
199
+ // Sequential: sum all durations
200
+ for (const phase of batch.phases) {
201
+ totalDuration += this.estimatePhaseDuration(phase);
202
+ }
203
+ }
204
+ }
205
+ return totalDuration;
206
+ }
207
+ /**
208
+ * Check if a plan will fit within context limits
209
+ */
210
+ willFitInContext(plan, contextLimit) {
211
+ const estimatedTokens = this.estimatePlan(plan);
212
+ return {
213
+ fits: estimatedTokens < contextLimit,
214
+ estimatedTokens,
215
+ remainingTokens: contextLimit - estimatedTokens,
216
+ };
217
+ }
218
+ /**
219
+ * Suggest phase splits if plan is too large
220
+ */
221
+ suggestSplits(plan, contextLimit) {
222
+ const estimated = this.estimatePlan(plan);
223
+ if (estimated <= contextLimit) {
224
+ return { shouldSplit: false, suggestions: [] };
225
+ }
226
+ const suggestions = [];
227
+ // Find the largest phases
228
+ const phaseEstimates = plan.phases.map((p) => ({
229
+ phase: p,
230
+ tokens: this.estimatePhase(p),
231
+ }));
232
+ phaseEstimates.sort((a, b) => b.tokens - a.tokens);
233
+ // Suggest splitting large phases
234
+ for (const { phase, tokens } of phaseEstimates.slice(0, 3)) {
235
+ if (tokens > contextLimit * 0.3) {
236
+ suggestions.push(`Phase "${phase.name}" is estimated at ${tokens} tokens. ` +
237
+ `Consider breaking it into smaller phases.`);
238
+ }
239
+ }
240
+ // Suggest reducing objectives
241
+ const totalObjectives = plan.phases.reduce((sum, p) => sum + p.objectives.length, 0);
242
+ if (totalObjectives > 15) {
243
+ suggestions.push(`Plan has ${totalObjectives} objectives. Consider reducing scope.`);
244
+ }
245
+ return { shouldSplit: true, suggestions };
246
+ }
247
+ /**
248
+ * Format token estimate for display
249
+ */
250
+ formatEstimate(tokens) {
251
+ if (tokens >= 1000000) {
252
+ return `${(tokens / 1000000).toFixed(1)}M`;
253
+ }
254
+ if (tokens >= 1000) {
255
+ return `${(tokens / 1000).toFixed(1)}k`;
256
+ }
257
+ return tokens.toString();
258
+ }
259
+ /**
260
+ * Format duration for display
261
+ */
262
+ formatDuration(durationMs) {
263
+ if (durationMs < 1000) {
264
+ return `${durationMs}ms`;
265
+ }
266
+ const seconds = Math.floor(durationMs / 1000);
267
+ if (seconds < 60) {
268
+ return `${seconds}s`;
269
+ }
270
+ const minutes = Math.floor(seconds / 60);
271
+ const remainingSeconds = seconds % 60;
272
+ if (minutes < 60) {
273
+ return remainingSeconds > 0
274
+ ? `${minutes}m ${remainingSeconds}s`
275
+ : `${minutes}m`;
276
+ }
277
+ const hours = Math.floor(minutes / 60);
278
+ const remainingMinutes = minutes % 60;
279
+ return `${hours}h ${remainingMinutes}m`;
280
+ }
281
+ }
282
+ // ============================================================================
283
+ // Singleton Instance
284
+ // ============================================================================
285
+ let estimatorInstance = null;
286
+ /**
287
+ * Get the singleton TokenEstimator instance
288
+ */
289
+ export function getTokenEstimator() {
290
+ if (!estimatorInstance) {
291
+ estimatorInstance = new TokenEstimator();
292
+ }
293
+ return estimatorInstance;
294
+ }
295
+ //# sourceMappingURL=token-estimator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-estimator.js","sourceRoot":"","sources":["../../src/planner/token-estimator.ts"],"names":[],"mappings":"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"}