@codemieai/code 0.0.26 → 0.0.28

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 (229) hide show
  1. package/README.md +1 -1
  2. package/bin/codemie.js +20 -1
  3. package/dist/agents/codemie-code/agent.js +1 -1
  4. package/dist/agents/codemie-code/config.d.ts +1 -1
  5. package/dist/agents/codemie-code/config.d.ts.map +1 -1
  6. package/dist/agents/codemie-code/config.js +3 -3
  7. package/dist/agents/codemie-code/config.js.map +1 -1
  8. package/dist/agents/codemie-code/index.js +1 -1
  9. package/dist/agents/codemie-code/storage/todoStorage.d.ts.map +1 -1
  10. package/dist/agents/codemie-code/storage/todoStorage.js +2 -2
  11. package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -1
  12. package/dist/agents/codemie-code/tools/index.js +1 -1
  13. package/dist/agents/codemie-code/tools/index.js.map +1 -1
  14. package/dist/agents/codemie-code/ui.d.ts.map +1 -1
  15. package/dist/agents/codemie-code/ui.js +9 -8
  16. package/dist/agents/codemie-code/ui.js.map +1 -1
  17. package/dist/agents/core/AgentCLI.js +2 -2
  18. package/dist/agents/core/AgentCLI.js.map +1 -1
  19. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  20. package/dist/agents/core/BaseAgentAdapter.js +6 -6
  21. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  22. package/dist/agents/core/BaseMetricsAdapter.js +1 -1
  23. package/dist/agents/core/BaseMetricsAdapter.js.map +1 -1
  24. package/dist/agents/core/lifecycle-helpers.d.ts +2 -1
  25. package/dist/agents/core/lifecycle-helpers.d.ts.map +1 -1
  26. package/dist/agents/core/lifecycle-helpers.js +38 -17
  27. package/dist/agents/core/lifecycle-helpers.js.map +1 -1
  28. package/dist/agents/core/metrics/MetricsOrchestrator.js +2 -2
  29. package/dist/agents/core/metrics/MetricsOrchestrator.js.map +1 -1
  30. package/dist/agents/core/metrics/core/DeltaWriter.js +1 -1
  31. package/dist/agents/core/metrics/core/DeltaWriter.js.map +1 -1
  32. package/dist/agents/core/metrics/session/SessionStore.js +1 -1
  33. package/dist/agents/core/metrics/session/SessionStore.js.map +1 -1
  34. package/dist/agents/core/metrics-config.d.ts.map +1 -1
  35. package/dist/agents/core/metrics-config.js +4 -3
  36. package/dist/agents/core/metrics-config.js.map +1 -1
  37. package/dist/agents/plugins/claude.metrics.js +2 -2
  38. package/dist/agents/plugins/claude.metrics.js.map +1 -1
  39. package/dist/agents/plugins/codemie-code.plugin.js +1 -1
  40. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  41. package/dist/agents/plugins/codex.metrics.d.ts +69 -0
  42. package/dist/agents/plugins/codex.metrics.d.ts.map +1 -0
  43. package/dist/agents/plugins/codex.metrics.js +483 -0
  44. package/dist/agents/plugins/codex.metrics.js.map +1 -0
  45. package/dist/agents/plugins/codex.plugin.d.ts +7 -3
  46. package/dist/agents/plugins/codex.plugin.d.ts.map +1 -1
  47. package/dist/agents/plugins/codex.plugin.js +41 -205
  48. package/dist/agents/plugins/codex.plugin.js.map +1 -1
  49. package/dist/agents/plugins/deepagents.plugin.js +1 -1
  50. package/dist/agents/plugins/deepagents.plugin.js.map +1 -1
  51. package/dist/agents/plugins/gemini.metrics.js +1 -1
  52. package/dist/agents/plugins/gemini.metrics.js.map +1 -1
  53. package/dist/cli/commands/analytics/data-loader.d.ts.map +1 -1
  54. package/dist/cli/commands/analytics/data-loader.js +2 -2
  55. package/dist/cli/commands/analytics/data-loader.js.map +1 -1
  56. package/dist/cli/commands/doctor/checks/AIConfigCheck.js +1 -1
  57. package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -1
  58. package/dist/cli/commands/doctor/checks/AwsCliCheck.js +1 -1
  59. package/dist/cli/commands/doctor/checks/AwsCliCheck.js.map +1 -1
  60. package/dist/cli/commands/doctor/checks/NpmCheck.js +1 -1
  61. package/dist/cli/commands/doctor/checks/NpmCheck.js.map +1 -1
  62. package/dist/cli/commands/doctor/checks/PythonCheck.js +1 -1
  63. package/dist/cli/commands/doctor/checks/PythonCheck.js.map +1 -1
  64. package/dist/cli/commands/doctor/checks/UvCheck.js +1 -1
  65. package/dist/cli/commands/doctor/checks/UvCheck.js.map +1 -1
  66. package/dist/cli/commands/doctor/types.d.ts +1 -1
  67. package/dist/cli/commands/doctor/types.d.ts.map +1 -1
  68. package/dist/cli/commands/profile/auth.js +1 -1
  69. package/dist/cli/commands/profile/auth.js.map +1 -1
  70. package/dist/{utils/profile-display.d.ts → cli/commands/profile/display.d.ts} +3 -3
  71. package/dist/cli/commands/profile/display.d.ts.map +1 -0
  72. package/dist/{utils/profile-display.js → cli/commands/profile/display.js} +2 -2
  73. package/dist/cli/commands/profile/display.js.map +1 -0
  74. package/dist/cli/commands/profile/index.js +2 -2
  75. package/dist/cli/commands/profile/index.js.map +1 -1
  76. package/dist/cli/commands/setup.js +1 -1
  77. package/dist/cli/commands/setup.js.map +1 -1
  78. package/dist/cli/commands/update.d.ts +3 -0
  79. package/dist/cli/commands/update.d.ts.map +1 -0
  80. package/dist/cli/commands/update.js +290 -0
  81. package/dist/cli/commands/update.js.map +1 -0
  82. package/dist/cli/commands/version.js +1 -1
  83. package/dist/cli/commands/version.js.map +1 -1
  84. package/dist/cli/first-time.d.ts.map +1 -0
  85. package/dist/{utils → cli}/first-time.js +1 -1
  86. package/dist/cli/first-time.js.map +1 -0
  87. package/dist/cli/index.js +4 -2
  88. package/dist/cli/index.js.map +1 -1
  89. package/dist/env/manager.d.ts.map +1 -1
  90. package/dist/env/manager.js +3 -4
  91. package/dist/env/manager.js.map +1 -1
  92. package/dist/frameworks/core/BaseFrameworkAdapter.js +1 -1
  93. package/dist/frameworks/core/BaseFrameworkAdapter.js.map +1 -1
  94. package/dist/frameworks/plugins/bmad.plugin.js +2 -2
  95. package/dist/frameworks/plugins/bmad.plugin.js.map +1 -1
  96. package/dist/frameworks/plugins/speckit.plugin.js +1 -1
  97. package/dist/frameworks/plugins/speckit.plugin.js.map +1 -1
  98. package/dist/index.d.ts +1 -1
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +1 -1
  101. package/dist/index.js.map +1 -1
  102. package/dist/migrations/001-config-rename.migration.d.ts +33 -0
  103. package/dist/migrations/001-config-rename.migration.d.ts.map +1 -0
  104. package/dist/migrations/001-config-rename.migration.js +206 -0
  105. package/dist/migrations/001-config-rename.migration.js.map +1 -0
  106. package/dist/migrations/index.d.ts +22 -0
  107. package/dist/migrations/index.d.ts.map +1 -0
  108. package/dist/migrations/index.js +26 -0
  109. package/dist/migrations/index.js.map +1 -0
  110. package/dist/migrations/registry.d.ts +28 -0
  111. package/dist/migrations/registry.d.ts.map +1 -0
  112. package/dist/migrations/registry.js +35 -0
  113. package/dist/migrations/registry.js.map +1 -0
  114. package/dist/migrations/runner.d.ts +26 -0
  115. package/dist/migrations/runner.d.ts.map +1 -0
  116. package/dist/migrations/runner.js +117 -0
  117. package/dist/migrations/runner.js.map +1 -0
  118. package/dist/migrations/tracker.d.ts +40 -0
  119. package/dist/migrations/tracker.d.ts.map +1 -0
  120. package/dist/migrations/tracker.js +114 -0
  121. package/dist/migrations/tracker.js.map +1 -0
  122. package/dist/migrations/types.d.ts +54 -0
  123. package/dist/migrations/types.d.ts.map +1 -0
  124. package/dist/migrations/types.js +6 -0
  125. package/dist/migrations/types.js.map +1 -0
  126. package/dist/providers/core/base/http-client.js +1 -1
  127. package/dist/providers/core/types.d.ts +19 -0
  128. package/dist/providers/core/types.d.ts.map +1 -1
  129. package/dist/providers/integration/setup-ui.js +1 -1
  130. package/dist/providers/integration/setup-ui.js.map +1 -1
  131. package/dist/providers/plugins/bedrock/bedrock.health.d.ts +4 -0
  132. package/dist/providers/plugins/bedrock/bedrock.health.d.ts.map +1 -1
  133. package/dist/providers/plugins/bedrock/bedrock.health.js +23 -0
  134. package/dist/providers/plugins/bedrock/bedrock.health.js.map +1 -1
  135. package/dist/providers/plugins/bedrock/bedrock.template.d.ts.map +1 -1
  136. package/dist/providers/plugins/bedrock/bedrock.template.js +85 -0
  137. package/dist/providers/plugins/bedrock/bedrock.template.js.map +1 -1
  138. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
  139. package/dist/providers/plugins/ollama/ollama.template.js +10 -0
  140. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
  141. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.js +1 -1
  142. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.js.map +1 -1
  143. package/dist/providers/plugins/sso/sso.auth.js +1 -1
  144. package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
  145. package/dist/providers/plugins/sso/sso.http-client.d.ts +1 -1
  146. package/dist/providers/plugins/sso/sso.http-client.js +1 -1
  147. package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
  148. package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -1
  149. package/dist/providers/plugins/sso/sso.setup-steps.js +11 -3
  150. package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -1
  151. package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -1
  152. package/dist/providers/plugins/sso/sso.template.js +17 -0
  153. package/dist/providers/plugins/sso/sso.template.js.map +1 -1
  154. package/dist/utils/{config-loader.d.ts → config.d.ts} +6 -1
  155. package/dist/utils/config.d.ts.map +1 -0
  156. package/dist/utils/{config-loader.js → config.js} +39 -34
  157. package/dist/utils/config.js.map +1 -0
  158. package/dist/utils/errors.d.ts +89 -0
  159. package/dist/utils/errors.d.ts.map +1 -1
  160. package/dist/utils/errors.js +340 -0
  161. package/dist/utils/errors.js.map +1 -1
  162. package/dist/utils/exec.d.ts +6 -0
  163. package/dist/utils/exec.d.ts.map +1 -1
  164. package/dist/utils/exec.js +6 -0
  165. package/dist/utils/exec.js.map +1 -1
  166. package/dist/utils/logger.js +3 -3
  167. package/dist/utils/logger.js.map +1 -1
  168. package/dist/utils/{json-parser.d.ts → parsers.d.ts} +1 -1
  169. package/dist/utils/parsers.d.ts.map +1 -0
  170. package/dist/utils/{json-parser.js → parsers.js} +1 -1
  171. package/dist/utils/parsers.js.map +1 -0
  172. package/dist/utils/{path-utils.d.ts → paths.d.ts} +58 -8
  173. package/dist/utils/paths.d.ts.map +1 -0
  174. package/dist/utils/{path-utils.js → paths.js} +81 -8
  175. package/dist/utils/paths.js.map +1 -0
  176. package/dist/utils/{npm.d.ts → processes.d.ts} +42 -7
  177. package/dist/utils/processes.d.ts.map +1 -0
  178. package/dist/utils/{npm.js → processes.js} +123 -9
  179. package/dist/utils/processes.js.map +1 -0
  180. package/dist/utils/profile.d.ts +1 -16
  181. package/dist/utils/profile.d.ts.map +1 -1
  182. package/dist/utils/profile.js +1 -27
  183. package/dist/utils/profile.js.map +1 -1
  184. package/dist/utils/security.d.ts +62 -0
  185. package/dist/utils/security.d.ts.map +1 -0
  186. package/dist/utils/security.js +396 -0
  187. package/dist/utils/security.js.map +1 -0
  188. package/package.json +3 -3
  189. package/dist/utils/config-loader.d.ts.map +0 -1
  190. package/dist/utils/config-loader.js.map +0 -1
  191. package/dist/utils/credential-store.d.ts +0 -22
  192. package/dist/utils/credential-store.d.ts.map +0 -1
  193. package/dist/utils/credential-store.js +0 -165
  194. package/dist/utils/credential-store.js.map +0 -1
  195. package/dist/utils/dirname.d.ts +0 -7
  196. package/dist/utils/dirname.d.ts.map +0 -1
  197. package/dist/utils/dirname.js +0 -11
  198. package/dist/utils/dirname.js.map +0 -1
  199. package/dist/utils/error-context.d.ts +0 -90
  200. package/dist/utils/error-context.d.ts.map +0 -1
  201. package/dist/utils/error-context.js +0 -338
  202. package/dist/utils/error-context.js.map +0 -1
  203. package/dist/utils/first-time.d.ts.map +0 -1
  204. package/dist/utils/first-time.js.map +0 -1
  205. package/dist/utils/git.d.ts +0 -13
  206. package/dist/utils/git.d.ts.map +0 -1
  207. package/dist/utils/git.js +0 -37
  208. package/dist/utils/git.js.map +0 -1
  209. package/dist/utils/installation-id.d.ts +0 -10
  210. package/dist/utils/installation-id.d.ts.map +0 -1
  211. package/dist/utils/installation-id.js +0 -30
  212. package/dist/utils/installation-id.js.map +0 -1
  213. package/dist/utils/json-parser.d.ts.map +0 -1
  214. package/dist/utils/json-parser.js.map +0 -1
  215. package/dist/utils/npm.d.ts.map +0 -1
  216. package/dist/utils/npm.js.map +0 -1
  217. package/dist/utils/path-utils.d.ts.map +0 -1
  218. package/dist/utils/path-utils.js.map +0 -1
  219. package/dist/utils/profile-display.d.ts.map +0 -1
  220. package/dist/utils/profile-display.js.map +0 -1
  221. package/dist/utils/sanitize.d.ts +0 -28
  222. package/dist/utils/sanitize.d.ts.map +0 -1
  223. package/dist/utils/sanitize.js +0 -212
  224. package/dist/utils/sanitize.js.map +0 -1
  225. package/dist/utils/which.d.ts +0 -20
  226. package/dist/utils/which.d.ts.map +0 -1
  227. package/dist/utils/which.js +0 -54
  228. package/dist/utils/which.js.map +0 -1
  229. /package/dist/{utils → cli}/first-time.d.ts +0 -0
@@ -109,4 +109,344 @@ export function getErrorMessage(error) {
109
109
  }
110
110
  return String(error);
111
111
  }
112
+ // ============================================================================
113
+ // Error Context and Formatting
114
+ // ============================================================================
115
+ import { platform, release, arch } from 'os';
116
+ import { readFileSync } from 'fs';
117
+ import { join } from 'path';
118
+ import { fileURLToPath } from 'url';
119
+ import { dirname } from 'path';
120
+ const __filename = fileURLToPath(import.meta.url);
121
+ const __dirname = dirname(__filename);
122
+ /**
123
+ * Get client version from package.json
124
+ */
125
+ function getClientVersion() {
126
+ try {
127
+ // Try to read package.json from project root
128
+ const packageJsonPath = join(__dirname, '..', '..', 'package.json');
129
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
130
+ return packageJson.version || 'unknown';
131
+ }
132
+ catch {
133
+ return 'unknown';
134
+ }
135
+ }
136
+ /**
137
+ * Get detailed OS information
138
+ */
139
+ function getSystemInfo() {
140
+ return {
141
+ platform: platform(),
142
+ platformVersion: release(),
143
+ arch: arch(),
144
+ nodeVersion: process.version
145
+ };
146
+ }
147
+ /**
148
+ * Extract error details from unknown error type
149
+ */
150
+ function extractErrorDetails(error) {
151
+ if (error instanceof Error) {
152
+ return {
153
+ message: error.message,
154
+ name: error.name,
155
+ stack: error.stack,
156
+ code: error.code
157
+ };
158
+ }
159
+ if (typeof error === 'string') {
160
+ return {
161
+ message: error,
162
+ name: 'Error',
163
+ stack: new Error(error).stack
164
+ };
165
+ }
166
+ // Handle objects (extract meaningful info)
167
+ if (typeof error === 'object' && error !== null) {
168
+ const errorObj = error;
169
+ let message;
170
+ if (typeof errorObj.message === 'string' && errorObj.message.trim()) {
171
+ message = errorObj.message;
172
+ }
173
+ else if (typeof errorObj.error === 'string' && errorObj.error.trim()) {
174
+ message = errorObj.error;
175
+ }
176
+ else if (typeof errorObj.description === 'string' && errorObj.description.trim()) {
177
+ message = errorObj.description;
178
+ }
179
+ else {
180
+ try {
181
+ const stringified = JSON.stringify(error, null, 2);
182
+ if (stringified && stringified !== '{}' && stringified !== '[object Object]') {
183
+ message = stringified;
184
+ }
185
+ else {
186
+ message = `Error object: ${Object.keys(errorObj).join(', ')}`;
187
+ }
188
+ }
189
+ catch {
190
+ message = `Error object: ${Object.keys(errorObj).join(', ')}`;
191
+ }
192
+ }
193
+ const name = (typeof errorObj.name === 'string' ? errorObj.name : null) || 'UnknownError';
194
+ const code = (typeof errorObj.code === 'string' ? errorObj.code : undefined);
195
+ const stack = (typeof errorObj.stack === 'string' ? errorObj.stack : undefined) || new Error(message).stack;
196
+ return {
197
+ message,
198
+ name,
199
+ stack,
200
+ code
201
+ };
202
+ }
203
+ // Fallback for primitives
204
+ const message = String(error);
205
+ return {
206
+ message,
207
+ name: 'UnknownError',
208
+ stack: new Error(message).stack
209
+ };
210
+ }
211
+ /**
212
+ * Create comprehensive error context for logging and debugging
213
+ *
214
+ * @param error - The error that occurred
215
+ * @param sessionContext - Optional session context (session ID, agent, provider, etc.)
216
+ * @returns Complete error context with system info, client version, and stack trace
217
+ *
218
+ * @example
219
+ * ```typescript
220
+ * try {
221
+ * await writeMetrics();
222
+ * } catch (error) {
223
+ * const context = createErrorContext(error, { sessionId, agent: 'claude' });
224
+ * logger.error('Metrics write failed', context);
225
+ * }
226
+ * ```
227
+ */
228
+ export function createErrorContext(error, sessionContext) {
229
+ return {
230
+ error: extractErrorDetails(error),
231
+ system: getSystemInfo(),
232
+ client: {
233
+ name: 'codemie-code',
234
+ version: getClientVersion()
235
+ },
236
+ session: sessionContext,
237
+ timestamp: new Date().toISOString()
238
+ };
239
+ }
240
+ /**
241
+ * Wrap text to a maximum line length
242
+ */
243
+ function wrapText(text, maxLength, indent = '') {
244
+ const words = text.split(' ');
245
+ const lines = [];
246
+ let currentLine = indent;
247
+ for (const word of words) {
248
+ const testLine = currentLine + (currentLine === indent ? '' : ' ') + word;
249
+ if (testLine.length <= maxLength) {
250
+ currentLine = testLine;
251
+ }
252
+ else {
253
+ if (currentLine !== indent) {
254
+ lines.push(currentLine);
255
+ }
256
+ currentLine = indent + word;
257
+ }
258
+ }
259
+ if (currentLine !== indent) {
260
+ lines.push(currentLine);
261
+ }
262
+ return lines;
263
+ }
264
+ /**
265
+ * Format error context as human-readable string for console display
266
+ *
267
+ * @param context - Error context to format
268
+ * @param options - Formatting options
269
+ * @returns Formatted error message
270
+ *
271
+ * @example
272
+ * ```typescript
273
+ * const context = createErrorContext(error, { sessionId });
274
+ * console.error(formatErrorForUser(context, { showStack: false }));
275
+ * ```
276
+ */
277
+ export function formatErrorForUser(context, options = {}) {
278
+ const { showStack = false, showSystem = true } = options;
279
+ const lines = [];
280
+ // Error message (just the message, not the name) - wrapped at 100 chars
281
+ const wrappedError = wrapText(context.error.message, 97, ' '); // 97 to account for "❌ " prefix
282
+ lines.push(`❌ ${wrappedError[0].trim()}`);
283
+ for (let i = 1; i < wrappedError.length; i++) {
284
+ lines.push(wrappedError[i]);
285
+ }
286
+ // System info (for support/debugging)
287
+ if (showSystem) {
288
+ lines.push('');
289
+ lines.push('System Information:');
290
+ lines.push(` • OS: ${context.system.platform} ${context.system.platformVersion} (${context.system.arch})`);
291
+ lines.push(` • Node.js: ${context.system.nodeVersion}`);
292
+ lines.push(` • CodeMie CLI: v${context.client.version}`);
293
+ }
294
+ // Session context (if available)
295
+ if (context.session) {
296
+ lines.push('');
297
+ lines.push('Session Information:');
298
+ if (context.session.sessionId) {
299
+ lines.push(` • Session ID: ${context.session.sessionId}`);
300
+ }
301
+ if (context.session.agent) {
302
+ lines.push(` • Agent: ${context.session.agent}`);
303
+ }
304
+ if (context.session.provider) {
305
+ lines.push(` • Provider: ${context.session.provider}`);
306
+ }
307
+ if (context.session.model) {
308
+ lines.push(` • Model: ${context.session.model}`);
309
+ }
310
+ if (context.session.profile) {
311
+ lines.push(` • Profile: ${context.session.profile}`);
312
+ }
313
+ }
314
+ // Stack trace (for debugging)
315
+ if (showStack && context.error.stack) {
316
+ lines.push('');
317
+ lines.push('Stack Trace:');
318
+ lines.push(context.error.stack);
319
+ }
320
+ // Timestamp
321
+ lines.push('');
322
+ lines.push(`Timestamp: ${context.timestamp}`);
323
+ return lines.join('\n');
324
+ }
325
+ /**
326
+ * Format error context as JSON for logging to file
327
+ *
328
+ * @param context - Error context to format
329
+ * @returns JSON string with full error details
330
+ */
331
+ export function formatErrorForLog(context) {
332
+ return JSON.stringify(context, null, 2);
333
+ }
334
+ /**
335
+ * Create user-friendly explanation for common error types
336
+ *
337
+ * @param error - The error that occurred
338
+ * @returns Human-readable explanation and suggested actions
339
+ */
340
+ export function getErrorExplanation(error) {
341
+ const errorDetails = extractErrorDetails(error);
342
+ const message = errorDetails.message.toLowerCase();
343
+ const code = errorDetails.code?.toUpperCase();
344
+ // File system errors - metrics specific context
345
+ if (code === 'ENOENT') {
346
+ return {
347
+ explanation: 'Unable to access metrics storage directory. The agent will work, but you\'re missing important features: token usage tracking, cost monitoring, session history, and usage analytics. This limits your ability to optimize and monitor your AI usage.',
348
+ suggestions: [
349
+ 'Without metrics: No token tracking, no usage insights, no session history',
350
+ 'To enable these features: Check if ~/.codemie/metrics/ directory exists',
351
+ 'Ensure you have proper file system permissions'
352
+ ]
353
+ };
354
+ }
355
+ if (code === 'EACCES' || code === 'EPERM') {
356
+ return {
357
+ explanation: 'Cannot write to metrics directory due to permissions. The agent will work, but important features are disabled: token tracking (you won\'t know your costs), usage analytics (can\'t optimize), and session history (can\'t review past work). We recommend fixing this.',
358
+ suggestions: [
359
+ 'You\'re missing: Token/cost tracking, usage insights, session history',
360
+ 'To enable these features: Fix file permissions on ~/.codemie/ directory',
361
+ 'Run: chmod -R u+w ~/.codemie/ to restore access'
362
+ ]
363
+ };
364
+ }
365
+ if (code === 'ENOSPC') {
366
+ return {
367
+ explanation: 'Insufficient disk space for metrics storage. The agent will work, but critical features are unavailable: you cannot track token usage, monitor costs, view session history, or access usage insights until space is freed.',
368
+ suggestions: [
369
+ 'You\'re missing: Token/cost tracking, usage insights, session history',
370
+ 'Free up disk space to enable these important features',
371
+ 'Clean up old log files: ~/.codemie/logs/ or other unnecessary files'
372
+ ]
373
+ };
374
+ }
375
+ // Network errors
376
+ if (message.includes('timeout') || code === 'ETIMEDOUT') {
377
+ return {
378
+ explanation: 'Network timeout during metrics sync. The agent will work, but your usage data isn\'t being synced to the server. You\'ll lose visibility into token usage, costs, and session history across devices or for team analytics.',
379
+ suggestions: [
380
+ 'You\'re missing: Cross-device sync, team analytics, historical usage data',
381
+ 'Check your internet connection to restore sync',
382
+ 'Local metrics will sync automatically when connection is restored'
383
+ ]
384
+ };
385
+ }
386
+ if (message.includes('econnrefused') || code === 'ECONNREFUSED') {
387
+ return {
388
+ explanation: 'Cannot connect to analytics server. The agent will work, but you\'re losing important tracking: no token usage monitoring, no cost tracking, no session history. You won\'t be able to optimize your AI usage or track expenses.',
389
+ suggestions: [
390
+ 'You\'re missing: Token/cost tracking, session history, usage optimization',
391
+ 'Check if the analytics service is running and accessible',
392
+ 'Verify your network and firewall settings allow connections'
393
+ ]
394
+ };
395
+ }
396
+ // Metrics-specific errors
397
+ if (message.includes('metric') || message.includes('session')) {
398
+ return {
399
+ explanation: 'Unable to store usage analytics. The agent will work, but you cannot track tokens, monitor costs, view session history, or access usage insights. This is a significant disadvantage for managing AI usage and expenses.',
400
+ suggestions: [
401
+ 'You\'re missing: Token/cost tracking, usage insights, session history',
402
+ 'To enable these important features: Check ~/.codemie/metrics/ directory permissions',
403
+ 'These features help you optimize usage and control costs'
404
+ ]
405
+ };
406
+ }
407
+ // Generic error
408
+ return {
409
+ explanation: 'Metrics collection encountered an issue. The agent will work, but important features are unavailable: token tracking, cost monitoring, usage analytics, and session history. You won\'t be able to optimize your AI usage or track expenses.',
410
+ suggestions: [
411
+ 'You\'re missing: Token/cost tracking, usage insights, session history',
412
+ 'These features are important for monitoring and optimizing AI usage',
413
+ 'See log details below for technical information to resolve this'
414
+ ]
415
+ };
416
+ }
417
+ /**
418
+ * Format error with explanation for user display
419
+ *
420
+ * @param error - The error that occurred
421
+ * @param sessionContext - Optional session context
422
+ * @returns Formatted error message with explanation
423
+ */
424
+ export function formatErrorWithExplanation(error, sessionContext) {
425
+ const context = createErrorContext(error, sessionContext);
426
+ const { explanation, suggestions } = getErrorExplanation(error);
427
+ const lines = [];
428
+ // Explanation first (user-friendly) - wrapped at 100 chars
429
+ const wrappedExplanation = wrapText(explanation, 97, ' '); // 97 to account for "💡 " prefix
430
+ lines.push(`💡 ${wrappedExplanation[0].trim()}`);
431
+ for (let i = 1; i < wrappedExplanation.length; i++) {
432
+ lines.push(wrappedExplanation[i]);
433
+ }
434
+ lines.push('');
435
+ // Technical error details
436
+ lines.push(formatErrorForUser(context, { showStack: false, showSystem: true }));
437
+ // Suggestions
438
+ if (suggestions.length > 0) {
439
+ lines.push('');
440
+ lines.push('Suggested actions:');
441
+ suggestions.forEach(suggestion => {
442
+ // Wrap each suggestion at 100 chars, accounting for " • " prefix
443
+ const wrappedSuggestion = wrapText(suggestion, 96, ' '); // 96 to account for " • " prefix
444
+ lines.push(` • ${wrappedSuggestion[0].trim()}`);
445
+ for (let i = 1; i < wrappedSuggestion.length; i++) {
446
+ lines.push(wrappedSuggestion[i]);
447
+ }
448
+ });
449
+ }
450
+ return lines.join('\n');
451
+ }
112
452
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Base Command Execution Utility
3
+ *
4
+ * Foundational cross-platform command execution that other process utilities build upon.
5
+ * Separated from higher-level utilities to enable proper testing and mocking.
6
+ */
1
7
  export interface ExecOptions {
2
8
  cwd?: string;
3
9
  env?: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAsB,IAAI,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CA6ErB"}
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAsB,IAAI,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CA6ErB"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Base Command Execution Utility
3
+ *
4
+ * Foundational cross-platform command execution that other process utilities build upon.
5
+ * Separated from higher-level utilities to enable proper testing and mocking.
6
+ */
1
7
  import { spawn } from 'child_process';
2
8
  import os from 'os';
3
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import chalk from 'chalk';
2
2
  import * as fs from 'fs';
3
3
  import * as path from 'path';
4
- import * as os from 'os';
5
- import { sanitizeLogArgs } from './sanitize.js';
4
+ import { sanitizeLogArgs } from './security.js';
5
+ import { getCodemiePath } from './paths.js';
6
6
  export var LogLevel;
7
7
  (function (LogLevel) {
8
8
  LogLevel["DEBUG"] = "debug";
@@ -51,7 +51,7 @@ class Logger {
51
51
  if (this.logFileInitialized)
52
52
  return;
53
53
  try {
54
- const logsDir = path.join(os.homedir(), '.codemie', 'logs');
54
+ const logsDir = getCodemiePath('logs');
55
55
  // Create directory synchronously
56
56
  if (!fs.existsSync(logsDir)) {
57
57
  fs.mkdirSync(logsDir, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -49,4 +49,4 @@ export declare function parseJSONL(content: string): any[];
49
49
  * @returns Normalized model name for display
50
50
  */
51
51
  export declare function normalizeModelName(modelName: string): string;
52
- //# sourceMappingURL=json-parser.d.ts.map
52
+ //# sourceMappingURL=parsers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/utils/parsers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE,CAyCzD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE,CAcjD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAyB5D"}
@@ -123,4 +123,4 @@ export function normalizeModelName(modelName) {
123
123
  // Return as-is for standard formats (Claude, OpenAI, Google, etc.)
124
124
  return modelName;
125
125
  }
126
- //# sourceMappingURL=json-parser.js.map
126
+ //# sourceMappingURL=parsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/utils/parsers.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,13 @@
1
1
  /**
2
- * Cross-Platform Path Utilities
2
+ * Path Utilities
3
3
  *
4
- * Provides platform-agnostic path operations that work consistently
5
- * across Windows, macOS, and Linux by normalizing all paths to forward slashes.
6
- *
7
- * This module consolidates all path-related logic including:
8
- * - Path normalization and splitting
4
+ * Consolidated path operations including:
5
+ * - Cross-platform path normalization
9
6
  * - Path structure validation
10
7
  * - Security checks (directory traversal prevention)
11
8
  * - UUID validation for session files
12
- * - File extension validation
9
+ * - CodeMie home directory resolution
10
+ * - ESM module path utilities
13
11
  */
14
12
  /**
15
13
  * Normalize path separators to forward slashes for cross-platform consistency
@@ -192,4 +190,56 @@ export declare function isValidUuidFilename(filename: string, extension: string)
192
190
  * // Returns: '/Users/john/.codex/auth.json'
193
191
  */
194
192
  export declare function resolveHomeDir(relativePath: string): string;
195
- //# sourceMappingURL=path-utils.d.ts.map
193
+ /**
194
+ * Get CodeMie home directory
195
+ *
196
+ * Respects CODEMIE_HOME environment variable for custom locations.
197
+ * This enables:
198
+ * - Test isolation (each test gets unique temp directory)
199
+ * - Power user customization (relocate data/config)
200
+ * - Multiple instances (development, staging, production)
201
+ *
202
+ * Precedent: CARGO_HOME, POETRY_HOME, NVM_DIR, PYENV_ROOT
203
+ *
204
+ * Priority:
205
+ * 1. CODEMIE_HOME environment variable
206
+ * 2. ~/.codemie (default)
207
+ *
208
+ * @returns Absolute path to CodeMie home directory
209
+ *
210
+ * @example
211
+ * // Default
212
+ * getCodemieHome() // => '/Users/john/.codemie'
213
+ *
214
+ * // Custom location
215
+ * process.env.CODEMIE_HOME = '/data/codemie';
216
+ * getCodemieHome() // => '/data/codemie'
217
+ *
218
+ * // Test isolation
219
+ * process.env.CODEMIE_HOME = '/tmp/codemie-test-12345';
220
+ * getCodemieHome() // => '/tmp/codemie-test-12345'
221
+ */
222
+ export declare function getCodemieHome(): string;
223
+ /**
224
+ * Get path within CodeMie home directory
225
+ *
226
+ * @param paths Path segments to join with home directory
227
+ * @returns Absolute path within CodeMie home
228
+ *
229
+ * @example
230
+ * getCodemiePath('logs') // => '/Users/john/.codemie/logs'
231
+ * getCodemiePath('metrics', 'sessions') // => '/Users/john/.codemie/metrics/sessions'
232
+ */
233
+ export declare function getCodemiePath(...paths: string[]): string;
234
+ /**
235
+ * Get the directory name of the current module (ESM equivalent of __dirname)
236
+ *
237
+ * @param importMetaUrl - Pass import.meta.url from the calling module
238
+ * @returns The directory path
239
+ *
240
+ * @example
241
+ * // In an ES module:
242
+ * const __dirname = getDirname(import.meta.url);
243
+ */
244
+ export declare function getDirname(importMetaUrl: string): string;
245
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAGpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpD;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,EAAE,GAC1B,OAAO,CAiBT;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAUT;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAIvF;AAaD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAMhF;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE3D;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAEzD;AAMD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExD"}