@defai.digital/ax-cli 3.1.4 → 3.1.5

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 (55) hide show
  1. package/.ax-cli/memory.json +4 -4
  2. package/dist/agent/context-manager.js +19 -8
  3. package/dist/agent/context-manager.js.map +1 -1
  4. package/dist/agent/llm-agent.d.ts +8 -0
  5. package/dist/agent/llm-agent.js +35 -33
  6. package/dist/agent/llm-agent.js.map +1 -1
  7. package/dist/agent/subagent-orchestrator.js +12 -0
  8. package/dist/agent/subagent-orchestrator.js.map +1 -1
  9. package/dist/agent/subagent.js +18 -0
  10. package/dist/agent/subagent.js.map +1 -1
  11. package/dist/commands/memory.js +5 -1
  12. package/dist/commands/memory.js.map +1 -1
  13. package/dist/constants.d.ts +12 -2
  14. package/dist/constants.js +15 -2
  15. package/dist/constants.js.map +1 -1
  16. package/dist/memory/context-injector.d.ts +15 -1
  17. package/dist/memory/context-injector.js +18 -1
  18. package/dist/memory/context-injector.js.map +1 -1
  19. package/dist/memory/context-store.d.ts +27 -0
  20. package/dist/memory/context-store.js +60 -6
  21. package/dist/memory/context-store.js.map +1 -1
  22. package/dist/tools/search.js +39 -16
  23. package/dist/tools/search.js.map +1 -1
  24. package/dist/ui/components/chat-history.js +52 -19
  25. package/dist/ui/components/chat-history.js.map +1 -1
  26. package/dist/ui/components/chat-input.js +12 -5
  27. package/dist/ui/components/chat-input.js.map +1 -1
  28. package/dist/ui/components/command-suggestions.d.ts +12 -0
  29. package/dist/ui/components/command-suggestions.js +68 -3
  30. package/dist/ui/components/command-suggestions.js.map +1 -1
  31. package/dist/ui/components/confirmation-dialog.js +8 -2
  32. package/dist/ui/components/confirmation-dialog.js.map +1 -1
  33. package/dist/ui/components/loading-spinner.js +12 -3
  34. package/dist/ui/components/loading-spinner.js.map +1 -1
  35. package/dist/ui/components/reasoning-display.d.ts +8 -1
  36. package/dist/ui/components/reasoning-display.js +14 -8
  37. package/dist/ui/components/reasoning-display.js.map +1 -1
  38. package/dist/ui/components/status-bar.d.ts +4 -1
  39. package/dist/ui/components/status-bar.js +65 -4
  40. package/dist/ui/components/status-bar.js.map +1 -1
  41. package/dist/ui/components/subagent-monitor.d.ts +8 -0
  42. package/dist/ui/components/subagent-monitor.js +36 -50
  43. package/dist/ui/components/subagent-monitor.js.map +1 -1
  44. package/dist/ui/components/virtualized-chat-history.js +10 -10
  45. package/dist/ui/components/virtualized-chat-history.js.map +1 -1
  46. package/dist/ui/components/welcome-panel.d.ts +1 -1
  47. package/dist/ui/components/welcome-panel.js +2 -4
  48. package/dist/ui/components/welcome-panel.js.map +1 -1
  49. package/dist/utils/error-handler.d.ts +8 -1
  50. package/dist/utils/error-handler.js +61 -1
  51. package/dist/utils/error-handler.js.map +1 -1
  52. package/dist/utils/token-counter.d.ts +6 -0
  53. package/dist/utils/token-counter.js +24 -1
  54. package/dist/utils/token-counter.js.map +1 -1
  55. package/package.json +1 -1
package/dist/constants.js CHANGED
@@ -2,11 +2,24 @@
2
2
  * Application-wide constants
3
3
  * Now loaded from YAML configuration files for better maintainability
4
4
  */
5
+ import { homedir } from 'os';
6
+ import { join } from 'path';
5
7
  import { loadModelsConfig, loadSettingsConfig, loadMessagesConfig, formatMessage } from './utils/config-loader.js';
6
8
  // Load configurations from YAML files
7
9
  const modelsYaml = loadModelsConfig();
8
10
  const settingsYaml = loadSettingsConfig();
9
11
  const messagesYaml = loadMessagesConfig();
12
+ // Configuration Paths
13
+ export const CONFIG_PATHS = {
14
+ /** User-level settings directory */
15
+ USER_DIR: join(homedir(), '.ax-cli'),
16
+ /** User-level configuration file */
17
+ USER_CONFIG: join(homedir(), '.ax-cli', 'config.json'),
18
+ /** Project-level settings directory */
19
+ PROJECT_DIR: join(process.cwd(), '.ax-cli'),
20
+ /** Project-level settings file */
21
+ PROJECT_SETTINGS: join(process.cwd(), '.ax-cli', 'settings.json'),
22
+ };
10
23
  // Agent Configuration
11
24
  export const AGENT_CONFIG = {
12
25
  MAX_TOOL_ROUNDS: settingsYaml.agent.max_tool_rounds,
@@ -90,8 +103,8 @@ export const ERROR_MESSAGES = {
90
103
  export const PLANNER_CONFIG = {
91
104
  /** Enable multi-phase planning */
92
105
  ENABLED: true,
93
- /** Minimum expected tool calls to trigger auto-planning */
94
- AUTO_PLAN_THRESHOLD: 3,
106
+ /** Minimum expected tool calls to trigger auto-planning (lowered for more parallelization) */
107
+ AUTO_PLAN_THRESHOLD: 2,
95
108
  /** Maximum phases per plan */
96
109
  MAX_PHASES: 10,
97
110
  /** Phase timeout in milliseconds (10 minutes) */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEnH,sCAAsC;AACtC,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;AACtC,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;AAC1C,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;AAE1C,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,oCAAoC;IACpC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;IACpC,oCAAoC;IACpC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC;IACtD,uCAAuC;IACvC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC;IAC3C,kCAAkC;IAClC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC;CACzD,CAAC;AAEX,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe;IACnD,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe;IACnD,kBAAkB,EAAE,YAAY,CAAC,KAAK,CAAC,kBAAkB;IACzD,qBAAqB,EAAE,YAAY,CAAC,KAAK,CAAC,qBAAqB;IAC/D,wBAAwB,EAAE,YAAY,CAAC,KAAK,CAAC,wBAAwB;IACrE,qBAAqB,EAAE,YAAY,CAAC,KAAK,CAAC,qBAAqB;CACvD,CAAC;AAEX,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;IACvF,GAAG,CAAC,GAAG,CAAC,GAAG;QACT,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,aAAa,EAAE,KAAK,CAAC,cAAc;QACnC,eAAe,EAAE,KAAK,CAAC,iBAAiB;QACxC,gBAAgB,EAAE,KAAK,CAAC,kBAAkB;QAC1C,gBAAgB,EAAE,KAAK,CAAC,iBAAiB;QACzC,kBAAkB,EAAE,KAAK,CAAC,mBAAmB;QAC7C,gBAAgB,EAAE;YAChB,GAAG,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG;YAChC,GAAG,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG;SACjC;QACD,eAAe,EAAE,KAAK,CAAC,gBAAgB;KACxC,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EASD,CAAC,CAAC;AAGJ,MAAM,CAAC,MAAM,aAAa,GAAmB,UAAU,CAAC,aAA+B,CAAC;AAExF,kBAAkB;AAClB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,aAAa;IAC9C,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,eAAe;IAClD,kBAAkB,EAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB;CAChD,CAAC;AAEX,wBAAwB;AACxB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,gBAAgB,EAAE,YAAY,CAAC,OAAO,CAAC,gBAAgB;CAC/C,CAAC;AAEX,oBAAoB;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,WAAW;IACzC,cAAc,EAAE,YAAY,CAAC,GAAG,CAAC,cAAc;IAC/C,eAAe,EAAE,YAAY,CAAC,GAAG,CAAC,eAAe;CACzC,CAAC;AAEX,mBAAmB;AACnB,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,sBAAsB,EAAE,YAAY,CAAC,EAAE,CAAC,sBAAsB;IAC9D,yBAAyB,EAAE,YAAY,CAAC,EAAE,CAAC,yBAAyB;CAC5D,CAAC;AAEX,iBAAiB;AACjB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,kBAAkB,EAAE,YAAY,CAAC,KAAK,CAAC,kBAAkB;IACzD,wBAAwB,EAAE,YAAY,CAAC,KAAK,CAAC,wBAAwB;IACrE,aAAa,EAAE,YAAY,CAAC,KAAK,CAAC,aAAa;IAC/C,gBAAgB,EAAE,YAAY,CAAC,KAAK,CAAC,gBAAgB;IACrD,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,cAAc;IACjD,wBAAwB,EAAE,YAAY,CAAC,KAAK,CAAC,wBAAwB;CAC7D,CAAC;AAEX,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,gBAAgB,EAAE,YAAY,CAAC,KAAK,CAAC,gBAAgB;IACrD,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW;CACnC,CAAC;AAEX,yBAAyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,cAAc,EAAE,YAAY,CAAC,WAAW,CAAC,cAAc;IACvD,cAAc,EAAE,YAAY,CAAC,WAAW,CAAC,cAAc;IACvD,wBAAwB,EAAE,YAAY,CAAC,WAAW,CAAC,wBAAwB;CACnE,CAAC;AAEX,aAAa;AACb,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC,UAAoC,CAAC;AAE5E,uCAAuC;AACvC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,gBAAgB,EAAE,YAAY,CAAC,MAAM,CAAC,gBAAgB;IACtD,yBAAyB,EAAE,YAAY,CAAC,MAAM,CAAC,yBAAyB;IACxE,cAAc,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC;IACrG,oBAAoB,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,UAAU,EAAE,CAAC;IACrH,cAAc,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC;IACrG,mBAAmB,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC;CACrG,CAAC;AAEX,yCAAyC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,kCAAkC;IAClC,OAAO,EAAE,IAAI;IAEb,8FAA8F;IAC9F,mBAAmB,EAAE,CAAC;IAEtB,8BAA8B;IAC9B,UAAU,EAAE,EAAE;IAEd,iDAAiD;IACjD,gBAAgB,EAAE,MAAM;IAExB,8BAA8B;IAC9B,mBAAmB,EAAE,CAAC;IAEtB,2CAA2C;IAC3C,eAAe,EAAE,IAAI;IAErB,8FAA8F;IAC9F,qBAAqB,EAAE,KAAK;IAE5B,4CAA4C;IAC5C,0BAA0B,EAAE,IAAI;IAEhC,mFAAmF;IACnF,qBAAqB,EAAE,IAAI;IAE3B,mCAAmC;IACnC,iBAAiB,EAAE,IAAI;IAEvB,8CAA8C;IAC9C,yBAAyB,EAAE,EAAE;IAE7B,oCAAoC;IACpC,mBAAmB,EAAE,EAAE;IAEvB,6BAA6B;IAC7B,YAAY,EAAE,IAAI;IAElB,0EAA0E;IAC1E,WAAW,EAAE,IAAI;IAEjB,oDAAoD;IACpD,cAAc,EAAE,KAAK;CACb,CAAC"}
@@ -74,7 +74,21 @@ export declare class ContextInjector {
74
74
  getMissingMemoryHint(): string | null;
75
75
  }
76
76
  /**
77
- * Get the default context injector instance
77
+ * Get a context injector instance
78
+ *
79
+ * IMPORTANT: Singleton behavior
80
+ * - Without projectRoot: Returns singleton instance (uses process.cwd())
81
+ * - With projectRoot: Returns NEW instance for that specific project
82
+ *
83
+ * Example:
84
+ * ```typescript
85
+ * const injector1 = getContextInjector(); // Singleton
86
+ * const injector2 = getContextInjector(); // Same instance
87
+ * const injector3 = getContextInjector('/custom'); // New instance
88
+ * ```
89
+ *
90
+ * @param projectRoot - Optional custom project root. If provided, returns a new instance.
91
+ * @returns ContextInjector instance
78
92
  */
79
93
  export declare function getContextInjector(projectRoot?: string): ContextInjector;
80
94
  /**
@@ -119,15 +119,32 @@ export class ContextInjector {
119
119
  }
120
120
  /**
121
121
  * Singleton instance for convenience
122
+ * NOTE: Singleton uses process.cwd() as projectRoot
122
123
  */
123
124
  let defaultInjector = null;
124
125
  /**
125
- * Get the default context injector instance
126
+ * Get a context injector instance
127
+ *
128
+ * IMPORTANT: Singleton behavior
129
+ * - Without projectRoot: Returns singleton instance (uses process.cwd())
130
+ * - With projectRoot: Returns NEW instance for that specific project
131
+ *
132
+ * Example:
133
+ * ```typescript
134
+ * const injector1 = getContextInjector(); // Singleton
135
+ * const injector2 = getContextInjector(); // Same instance
136
+ * const injector3 = getContextInjector('/custom'); // New instance
137
+ * ```
138
+ *
139
+ * @param projectRoot - Optional custom project root. If provided, returns a new instance.
140
+ * @returns ContextInjector instance
126
141
  */
127
142
  export function getContextInjector(projectRoot) {
128
143
  if (projectRoot) {
144
+ // Custom project root - always return new instance
129
145
  return new ContextInjector(projectRoot);
130
146
  }
147
+ // Default behavior - return singleton
131
148
  if (!defaultInjector) {
132
149
  defaultInjector = new ContextInjector();
133
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context-injector.js","sourceRoot":"","sources":["../../src/memory/context-injector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-injector.js","sourceRoot":"","sources":["../../src/memory/context-injector.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,16 @@ export declare class ContextStore {
51
51
  updateStats(stats: Partial<CacheStats>): StoreResult<void>;
52
52
  /**
53
53
  * Increment usage count and record cache hit
54
+ *
55
+ * ⚠️ KNOWN LIMITATION: Race condition if multiple API calls happen simultaneously.
56
+ * Stats recording uses load-modify-save pattern without locking. In rare cases
57
+ * where multiple API calls overlap, some cache hit stats may be lost.
58
+ * This is acceptable as stats are informational, not critical to operation.
59
+ *
60
+ * For production use requiring perfect accuracy, consider:
61
+ * - File-level locking (complex, platform-dependent)
62
+ * - Separate stats database (overengineering for most use cases)
63
+ * - Async queue with single writer (adds complexity)
54
64
  */
55
65
  recordUsage(promptTokens: number, cachedTokens: number): StoreResult<void>;
56
66
  /**
@@ -69,6 +79,23 @@ export declare class ContextStore {
69
79
  usageCount?: number;
70
80
  };
71
81
  }
82
+ /**
83
+ * Get a context store instance
84
+ *
85
+ * IMPORTANT: Singleton behavior
86
+ * - Without projectRoot: Returns singleton instance (uses process.cwd())
87
+ * - With projectRoot: Returns NEW instance for that specific project
88
+ *
89
+ * Example:
90
+ * ```typescript
91
+ * const store1 = getContextStore(); // Singleton
92
+ * const store2 = getContextStore(); // Same instance
93
+ * const store3 = getContextStore('/custom'); // New instance
94
+ * ```
95
+ *
96
+ * @param projectRoot - Optional custom project root. If provided, returns a new instance.
97
+ * @returns ContextStore instance
98
+ */
72
99
  export declare function getContextStore(projectRoot?: string): ContextStore;
73
100
  /**
74
101
  * Reset the default store (mainly for testing)
@@ -57,7 +57,8 @@ export class ContextStore {
57
57
  if (!parseResult.success) {
58
58
  return {
59
59
  success: false,
60
- error: `Failed to parse memory.json: ${parseResult.error}`,
60
+ error: `Failed to parse memory.json: ${parseResult.error}\n` +
61
+ `💡 The file may be corrupted. Try: ax memory warmup --force`,
61
62
  };
62
63
  }
63
64
  // Validate schema
@@ -65,9 +66,22 @@ export class ContextStore {
65
66
  if (!validation.success) {
66
67
  return {
67
68
  success: false,
68
- error: `Invalid memory.json schema: ${validation.error}`,
69
+ error: `Invalid memory.json schema: ${validation.error}\n` +
70
+ `💡 The file format is outdated or corrupted. Run: ax memory warmup`,
69
71
  };
70
72
  }
73
+ // Validate memory size (warn if too large)
74
+ const memory = validation.data;
75
+ const tokenEstimate = memory.context.token_estimate;
76
+ const MAX_RECOMMENDED_TOKENS = 10000;
77
+ if (tokenEstimate > MAX_RECOMMENDED_TOKENS) {
78
+ // Log warning but don't fail - this is just a recommendation
79
+ if (process.env.NODE_ENV !== 'test') {
80
+ console.warn(`⚠️ Large context detected (${tokenEstimate.toLocaleString()} tokens)\n` +
81
+ ` Recommended: <${MAX_RECOMMENDED_TOKENS.toLocaleString()} tokens for optimal caching\n` +
82
+ ` Consider reducing --max-tokens in ax memory warmup`);
83
+ }
84
+ }
71
85
  return { success: true, data: validation.data };
72
86
  }
73
87
  /**
@@ -84,9 +98,20 @@ export class ContextStore {
84
98
  if (!validation.success) {
85
99
  return {
86
100
  success: false,
87
- error: `Invalid memory data: ${validation.error}`,
101
+ error: `Invalid memory data: ${validation.error}\n` +
102
+ `💡 Memory structure is invalid. Please report this bug.`,
88
103
  };
89
104
  }
105
+ // Size validation
106
+ const tokenEstimate = memory.context.token_estimate;
107
+ const MAX_RECOMMENDED_TOKENS = 10000;
108
+ if (tokenEstimate > MAX_RECOMMENDED_TOKENS) {
109
+ // Warn but don't fail - user might intentionally want large context
110
+ if (process.env.NODE_ENV !== 'test') {
111
+ console.warn(`⚠️ Saving large context (${tokenEstimate.toLocaleString()} tokens)\n` +
112
+ ` This may reduce cache efficiency. Consider using --max-tokens ${MAX_RECOMMENDED_TOKENS}`);
113
+ }
114
+ }
90
115
  // Atomic write: write to temp file then rename
91
116
  const tmpPath = `${this.memoryPath}.tmp`;
92
117
  const content = JSON.stringify(memory, null, 2);
@@ -132,12 +157,22 @@ export class ContextStore {
132
157
  }
133
158
  /**
134
159
  * Increment usage count and record cache hit
160
+ *
161
+ * ⚠️ KNOWN LIMITATION: Race condition if multiple API calls happen simultaneously.
162
+ * Stats recording uses load-modify-save pattern without locking. In rare cases
163
+ * where multiple API calls overlap, some cache hit stats may be lost.
164
+ * This is acceptable as stats are informational, not critical to operation.
165
+ *
166
+ * For production use requiring perfect accuracy, consider:
167
+ * - File-level locking (complex, platform-dependent)
168
+ * - Separate stats database (overengineering for most use cases)
169
+ * - Async queue with single writer (adds complexity)
135
170
  */
136
171
  recordUsage(promptTokens, cachedTokens) {
137
172
  const loadResult = this.load();
138
173
  if (!loadResult.success) {
139
- // Don't fail if memory doesn't exist - just skip recording
140
- return { success: true, data: undefined };
174
+ // Memory doesn't exist - return actual failure so caller knows stats weren't recorded
175
+ return { success: false, error: 'No memory found - stats not recorded' };
141
176
  }
142
177
  const memory = loadResult.data;
143
178
  const currentStats = memory.stats || {};
@@ -191,13 +226,32 @@ export class ContextStore {
191
226
  }
192
227
  /**
193
228
  * Singleton instance for convenience
194
- * Use this when you don't need to specify a custom project root
229
+ * NOTE: Singleton uses process.cwd() as projectRoot
195
230
  */
196
231
  let defaultStore = null;
232
+ /**
233
+ * Get a context store instance
234
+ *
235
+ * IMPORTANT: Singleton behavior
236
+ * - Without projectRoot: Returns singleton instance (uses process.cwd())
237
+ * - With projectRoot: Returns NEW instance for that specific project
238
+ *
239
+ * Example:
240
+ * ```typescript
241
+ * const store1 = getContextStore(); // Singleton
242
+ * const store2 = getContextStore(); // Same instance
243
+ * const store3 = getContextStore('/custom'); // New instance
244
+ * ```
245
+ *
246
+ * @param projectRoot - Optional custom project root. If provided, returns a new instance.
247
+ * @returns ContextStore instance
248
+ */
197
249
  export function getContextStore(projectRoot) {
198
250
  if (projectRoot) {
251
+ // Custom project root - always return new instance
199
252
  return new ContextStore(projectRoot);
200
253
  }
254
+ // Default behavior - return singleton
201
255
  if (!defaultStore) {
202
256
  defaultStore = new ContextStore();
203
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context-store.js","sourceRoot":"","sources":["../../src/memory/context-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-store.js","sourceRoot":"","sources":["../../src/memory/context-store.ts"],"names":[],"mappings":"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"}
@@ -248,15 +248,17 @@ export class SearchTool {
248
248
  const maxResults = options.maxResults || SearchTool.DEFAULT_MAX_RESULTS;
249
249
  const searchPattern = pattern.toLowerCase(); // Cache once for all comparisons
250
250
  const walkDir = async (dir, depth = 0) => {
251
- if (depth > SearchTool.MAX_RECURSION_DEPTH || files.length >= maxResults)
251
+ // Early exit if we've found enough results or exceeded depth
252
+ if (files.length >= maxResults)
253
+ return;
254
+ if (depth > SearchTool.MAX_RECURSION_DEPTH)
252
255
  return;
253
256
  try {
254
257
  const entries = await fs.readdir(dir, { withFileTypes: true });
258
+ // Separate files and directories for better search ordering
259
+ const fileEntries = [];
260
+ const dirEntries = [];
255
261
  for (const entry of entries) {
256
- if (files.length >= maxResults)
257
- break;
258
- const fullPath = path.join(dir, entry.name);
259
- const relativePath = path.relative(this.currentDirectory, fullPath);
260
262
  // Skip hidden files unless explicitly included
261
263
  if (!options.includeHidden && entry.name.startsWith(".")) {
262
264
  continue;
@@ -265,24 +267,45 @@ export class SearchTool {
265
267
  if (entry.isDirectory() && SearchTool.SKIP_DIRECTORIES.includes(entry.name)) {
266
268
  continue;
267
269
  }
270
+ if (entry.isFile()) {
271
+ fileEntries.push(entry);
272
+ }
273
+ else if (entry.isDirectory()) {
274
+ dirEntries.push(entry);
275
+ }
276
+ }
277
+ // Process files first (better for finding matches quickly)
278
+ for (const entry of fileEntries) {
279
+ if (files.length >= maxResults)
280
+ return; // Early exit
281
+ const fullPath = path.join(dir, entry.name);
282
+ const relativePath = path.relative(this.currentDirectory, fullPath);
268
283
  // Apply exclude pattern
269
284
  if (options.excludePattern &&
270
285
  relativePath.includes(options.excludePattern)) {
271
286
  continue;
272
287
  }
273
- if (entry.isFile()) {
274
- const score = this.calculateFileScore(entry.name, relativePath, searchPattern);
275
- if (score > 0) {
276
- files.push({
277
- path: relativePath,
278
- name: entry.name,
279
- score,
280
- });
281
- }
288
+ const score = this.calculateFileScore(entry.name, relativePath, searchPattern);
289
+ if (score > 0) {
290
+ files.push({
291
+ path: relativePath,
292
+ name: entry.name,
293
+ score,
294
+ });
282
295
  }
283
- else if (entry.isDirectory()) {
284
- await walkDir(fullPath, depth + 1);
296
+ }
297
+ // Process directories last
298
+ for (const entry of dirEntries) {
299
+ if (files.length >= maxResults)
300
+ return; // Early exit before recursion
301
+ const fullPath = path.join(dir, entry.name);
302
+ const relativePath = path.relative(this.currentDirectory, fullPath);
303
+ // Apply exclude pattern
304
+ if (options.excludePattern &&
305
+ relativePath.includes(options.excludePattern)) {
306
+ continue;
285
307
  }
308
+ await walkDir(fullPath, depth + 1);
286
309
  }
287
310
  }
288
311
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
@@ -30,11 +30,12 @@ const MemoizedChatEntry = React.memo(({ entry, index, verboseMode = false }) =>
30
30
  switch (entry.type) {
31
31
  case "user":
32
32
  return (React.createElement(Box, { key: index, flexDirection: "column", marginTop: 1 },
33
+ index > 0 && (React.createElement(Box, { borderStyle: "single", borderColor: "gray", borderTop: false, borderLeft: false, borderRight: false, marginBottom: 1 })),
33
34
  React.createElement(Box, null,
34
35
  React.createElement(Text, { color: "gray" },
35
36
  ">",
36
37
  " ",
37
- entry.content))));
38
+ entry.content ?? ""))));
38
39
  case "assistant":
39
40
  return (React.createElement(Box, { key: index, flexDirection: "column", marginTop: 1 },
40
41
  entry.reasoningContent && (React.createElement(ReasoningDisplay, { content: entry.reasoningContent, visible: true, isStreaming: entry.isReasoningStreaming })),
@@ -47,7 +48,7 @@ const MemoizedChatEntry = React.memo(({ entry, index, verboseMode = false }) =>
47
48
  // If no tool calls, render as markdown
48
49
  React.createElement(MarkdownRenderer, { content: entry.content?.trim() ?? "" })),
49
50
  entry.isStreaming && React.createElement(Text, { color: "cyan" }, "\u2588"),
50
- !entry.isStreaming && entry.durationMs && (React.createElement(Text, { color: "gray", dimColor: true },
51
+ !entry.isStreaming && entry.durationMs && (React.createElement(Text, { color: "gray" },
51
52
  "\u23F1 ",
52
53
  entry.durationMs >= 1000
53
54
  ? `${(entry.durationMs / 1000).toFixed(1)}s`
@@ -116,6 +117,7 @@ const MemoizedChatEntry = React.memo(({ entry, index, verboseMode = false }) =>
116
117
  return "";
117
118
  };
118
119
  // Get a brief summary of the result for concise mode
120
+ // Phase 3: Enhanced with more contextual feedback
119
121
  const getBriefSummary = (content, toolName) => {
120
122
  if (!content)
121
123
  return "";
@@ -123,7 +125,14 @@ const MemoizedChatEntry = React.memo(({ entry, index, verboseMode = false }) =>
123
125
  const lineCount = content.split("\n").length;
124
126
  switch (toolName) {
125
127
  case "view_file":
126
- return `${lineCount} lines`;
128
+ // More descriptive for files
129
+ if (lineCount === 1)
130
+ return "1 line read";
131
+ if (lineCount < 10)
132
+ return `${lineCount} lines read`;
133
+ if (lineCount < 100)
134
+ return `${lineCount} lines read`;
135
+ return `${lineCount} lines (large file)`;
127
136
  case "create_file":
128
137
  return `${lineCount} lines written`;
129
138
  case "str_replace_editor":
@@ -132,10 +141,27 @@ const MemoizedChatEntry = React.memo(({ entry, index, verboseMode = false }) =>
132
141
  if (firstLine.includes("Updated")) {
133
142
  return firstLine.replace(/^Updated\s+/, "").trim();
134
143
  }
144
+ // Count replacements for better feedback
145
+ const replacements = (content.match(/replaced/gi) || []).length;
146
+ if (replacements > 0)
147
+ return `${replacements} change${replacements > 1 ? 's' : ''}`;
135
148
  return "updated";
136
149
  case "bash":
137
150
  if (content.includes("Background task started")) {
138
- return "→ background";
151
+ return "→ background task started";
152
+ }
153
+ // Detect common command patterns for better feedback
154
+ if (content.includes("npm install") || content.includes("npm i ")) {
155
+ return "packages installed";
156
+ }
157
+ if (content.includes("git commit")) {
158
+ return "committed";
159
+ }
160
+ if (content.includes("git push")) {
161
+ return "pushed";
162
+ }
163
+ if (content.includes("Test passed") || content.includes("✓")) {
164
+ return "tests passed";
139
165
  }
140
166
  if (lineCount <= 1) {
141
167
  // Short output, show it
@@ -143,11 +169,18 @@ const MemoizedChatEntry = React.memo(({ entry, index, verboseMode = false }) =>
143
169
  }
144
170
  return `${lineCount} lines output`;
145
171
  case "search":
146
- // Try to count matches
147
- const matches = content.match(/Found \d+ match/);
148
- if (matches)
149
- return matches[0];
150
- return `${lineCount} lines`;
172
+ // Try to count matches with better formatting
173
+ const matches = content.match(/Found (\d+) match/);
174
+ if (matches) {
175
+ const count = parseInt(matches[1]);
176
+ return `${count} match${count !== 1 ? 'es' : ''} found`;
177
+ }
178
+ return `${lineCount} result${lineCount !== 1 ? 's' : ''}`;
179
+ case "create_todo_list":
180
+ case "update_todo_list":
181
+ // Count todos for better feedback
182
+ const todos = (content.match(/\[.*?\]/g) || []).length;
183
+ return `${todos} task${todos !== 1 ? 's' : ''}`;
151
184
  default:
152
185
  if (lineCount <= 1 && content.length < 60) {
153
186
  return content.trim();
@@ -159,15 +192,15 @@ const MemoizedChatEntry = React.memo(({ entry, index, verboseMode = false }) =>
159
192
  const toolArgs = getToolArguments(entry.toolCall);
160
193
  const isExecuting = entry.type === "tool_call" || !entry.toolResult;
161
194
  const isSuccess = entry.toolResult?.success ?? true;
162
- const briefSummary = !isExecuting ? getBriefSummary(entry.content, toolName) : "";
195
+ const briefSummary = !isExecuting ? getBriefSummary(entry.content ?? "", toolName) : "";
163
196
  // Auto-verbose for errors: always show full details when a tool fails
164
197
  // This helps users debug without needing to toggle verbose mode
165
198
  const effectiveVerbose = verboseMode || (!isExecuting && !isSuccess);
166
199
  const shouldShowDiff = effectiveVerbose &&
167
200
  entry.toolCall?.function?.name === "str_replace_editor" &&
168
201
  entry.toolResult?.success &&
169
- entry.content.includes("---") &&
170
- entry.content.includes("+++");
202
+ entry.content?.includes("---") &&
203
+ entry.content?.includes("+++");
171
204
  const shouldShowFileContent = effectiveVerbose &&
172
205
  (entry.toolCall?.function?.name === "view_file" ||
173
206
  entry.toolCall?.function?.name === "create_file") &&
@@ -216,7 +249,7 @@ const MemoizedChatEntry = React.memo(({ entry, index, verboseMode = false }) =>
216
249
  !isExecuting && entry.executionDurationMs !== undefined && (React.createElement(Text, { color: "yellow" },
217
250
  " ",
218
251
  formatDuration(entry.executionDurationMs))),
219
- entry.toolCall?.id && (React.createElement(Text, { color: "gray", dimColor: true },
252
+ entry.toolCall?.id && (React.createElement(Text, { color: "gray" },
220
253
  " [",
221
254
  entry.toolCall.id.slice(0, 8),
222
255
  "]")),
@@ -224,21 +257,21 @@ const MemoizedChatEntry = React.memo(({ entry, index, verboseMode = false }) =>
224
257
  " ",
225
258
  isSuccess ? "✓" : "✗"))),
226
259
  toolArgs && (React.createElement(Box, { marginLeft: 2, flexDirection: "column" },
227
- React.createElement(Text, { color: "blue", dimColor: true },
260
+ React.createElement(Text, { color: "blue" },
228
261
  "Args: ",
229
262
  toolArgs.length > 100 ? toolArgs.slice(0, 100) + "..." : toolArgs))),
230
263
  React.createElement(Box, { marginLeft: 2, flexDirection: "column" }, isExecuting ? (React.createElement(Text, { color: "cyan" }, "\u23BF Executing...")) : shouldShowFileContent ? (React.createElement(Box, { flexDirection: "column" },
231
264
  React.createElement(Text, { color: "gray" },
232
265
  "\u23BF File contents (",
233
- entry.content.split("\n").length,
266
+ (entry.content ?? "").split("\n").length,
234
267
  " lines):"),
235
- React.createElement(Box, { marginLeft: 2, flexDirection: "column" }, renderFileContent(entry.content)))) : shouldShowDiff ? (React.createElement(Box, { flexDirection: "column" },
268
+ React.createElement(Box, { marginLeft: 2, flexDirection: "column" }, renderFileContent(entry.content ?? "")))) : shouldShowDiff ? (React.createElement(Box, { flexDirection: "column" },
236
269
  React.createElement(Text, { color: "gray" },
237
270
  "\u23BF ",
238
- entry.content.split("\n")[0]),
239
- React.createElement(Box, { marginLeft: 2, flexDirection: "column" }, renderDiff(entry.content, filePath)))) : shouldShowFullOutput ? (React.createElement(Text, { color: "gray" },
271
+ (entry.content ?? "").split("\n")[0]),
272
+ React.createElement(Box, { marginLeft: 2, flexDirection: "column" }, renderDiff(entry.content ?? "", filePath)))) : shouldShowFullOutput ? (React.createElement(Text, { color: "gray" },
240
273
  "\u23BF ",
241
- entry.content)) : null)));
274
+ entry.content ?? "")) : null)));
242
275
  default:
243
276
  return null;
244
277
  }