@polka-codes/cli 0.10.23 → 0.10.24

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 (335) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +3 -3
  3. package/dist/ApiProviderConfig.js +0 -57
  4. package/dist/ApiProviderConfig.js.map +0 -1
  5. package/dist/ApiProviderConfig.test.js +0 -278
  6. package/dist/ApiProviderConfig.test.js.map +0 -1
  7. package/dist/agent/advanced-discovery.js +0 -604
  8. package/dist/agent/advanced-discovery.js.map +0 -1
  9. package/dist/agent/config.js +0 -139
  10. package/dist/agent/config.js.map +0 -1
  11. package/dist/agent/config.test.js +0 -140
  12. package/dist/agent/config.test.js.map +0 -1
  13. package/dist/agent/constants.js +0 -172
  14. package/dist/agent/constants.js.map +0 -1
  15. package/dist/agent/constants.test.js +0 -132
  16. package/dist/agent/constants.test.js.map +0 -1
  17. package/dist/agent/debug-logger.js +0 -281
  18. package/dist/agent/debug-logger.js.map +0 -1
  19. package/dist/agent/debug-logger.test.js +0 -294
  20. package/dist/agent/debug-logger.test.js.map +0 -1
  21. package/dist/agent/error-handling.js +0 -114
  22. package/dist/agent/error-handling.js.map +0 -1
  23. package/dist/agent/error-handling.test.js +0 -191
  24. package/dist/agent/error-handling.test.js.map +0 -1
  25. package/dist/agent/errors.js +0 -301
  26. package/dist/agent/errors.js.map +0 -1
  27. package/dist/agent/executor.js +0 -206
  28. package/dist/agent/executor.js.map +0 -1
  29. package/dist/agent/executor.test.js +0 -228
  30. package/dist/agent/executor.test.js.map +0 -1
  31. package/dist/agent/goal-decomposer.js +0 -281
  32. package/dist/agent/goal-decomposer.js.map +0 -1
  33. package/dist/agent/goal-decomposer.test.js +0 -225
  34. package/dist/agent/goal-decomposer.test.js.map +0 -1
  35. package/dist/agent/health-monitor.js +0 -89
  36. package/dist/agent/health-monitor.js.map +0 -1
  37. package/dist/agent/improvement-loop.js +0 -177
  38. package/dist/agent/improvement-loop.js.map +0 -1
  39. package/dist/agent/index.js +0 -38
  40. package/dist/agent/index.js.map +0 -1
  41. package/dist/agent/metrics.js +0 -158
  42. package/dist/agent/metrics.js.map +0 -1
  43. package/dist/agent/metrics.test.js +0 -311
  44. package/dist/agent/metrics.test.js.map +0 -1
  45. package/dist/agent/orchestrator.js +0 -438
  46. package/dist/agent/orchestrator.js.map +0 -1
  47. package/dist/agent/planner.js +0 -199
  48. package/dist/agent/planner.js.map +0 -1
  49. package/dist/agent/planner.test.js +0 -135
  50. package/dist/agent/planner.test.js.map +0 -1
  51. package/dist/agent/progress.js +0 -298
  52. package/dist/agent/progress.js.map +0 -1
  53. package/dist/agent/progress.test.js +0 -255
  54. package/dist/agent/progress.test.js.map +0 -1
  55. package/dist/agent/resource-monitor.js +0 -114
  56. package/dist/agent/resource-monitor.js.map +0 -1
  57. package/dist/agent/safety/approval.js +0 -178
  58. package/dist/agent/safety/approval.js.map +0 -1
  59. package/dist/agent/safety/approval.test.js +0 -142
  60. package/dist/agent/safety/approval.test.js.map +0 -1
  61. package/dist/agent/safety/checks.js +0 -152
  62. package/dist/agent/safety/checks.js.map +0 -1
  63. package/dist/agent/safety/checks.test.js +0 -89
  64. package/dist/agent/safety/checks.test.js.map +0 -1
  65. package/dist/agent/safety/interrupt.js +0 -92
  66. package/dist/agent/safety/interrupt.js.map +0 -1
  67. package/dist/agent/safety/interrupt.test.js +0 -53
  68. package/dist/agent/safety/interrupt.test.js.map +0 -1
  69. package/dist/agent/session.js +0 -117
  70. package/dist/agent/session.js.map +0 -1
  71. package/dist/agent/session.test.js +0 -213
  72. package/dist/agent/session.test.js.map +0 -1
  73. package/dist/agent/state-manager.js +0 -287
  74. package/dist/agent/state-manager.js.map +0 -1
  75. package/dist/agent/task-discovery.js +0 -433
  76. package/dist/agent/task-discovery.js.map +0 -1
  77. package/dist/agent/task-discovery.test.js +0 -40
  78. package/dist/agent/task-discovery.test.js.map +0 -1
  79. package/dist/agent/task-history.js +0 -128
  80. package/dist/agent/task-history.js.map +0 -1
  81. package/dist/agent/task-prioritizer.js +0 -286
  82. package/dist/agent/task-prioritizer.js.map +0 -1
  83. package/dist/agent/test-fixtures.js +0 -112
  84. package/dist/agent/test-fixtures.js.map +0 -1
  85. package/dist/agent/types.js +0 -15
  86. package/dist/agent/types.js.map +0 -1
  87. package/dist/agent/workflow-adapter.js +0 -219
  88. package/dist/agent/workflow-adapter.js.map +0 -1
  89. package/dist/agent/workflow-adapter.test.js +0 -11
  90. package/dist/agent/workflow-adapter.test.js.map +0 -1
  91. package/dist/agent/working-dir-discovery.js +0 -54
  92. package/dist/agent/working-dir-discovery.js.map +0 -1
  93. package/dist/agent/working-space.js +0 -484
  94. package/dist/agent/working-space.js.map +0 -1
  95. package/dist/agent/working-space.test.js +0 -436
  96. package/dist/agent/working-space.test.js.map +0 -1
  97. package/dist/api.js +0 -279
  98. package/dist/api.js.map +0 -1
  99. package/dist/builtin-commands.js +0 -20
  100. package/dist/builtin-commands.js.map +0 -1
  101. package/dist/commandSummarizer.js +0 -96
  102. package/dist/commandSummarizer.js.map +0 -1
  103. package/dist/commands/__tests__/command-detection.integration.test.js +0 -238
  104. package/dist/commands/__tests__/command-detection.integration.test.js.map +0 -1
  105. package/dist/commands/__tests__/script-generator.integration.test.js +0 -271
  106. package/dist/commands/__tests__/script-generator.integration.test.js.map +0 -1
  107. package/dist/commands/agent.js +0 -218
  108. package/dist/commands/agent.js.map +0 -1
  109. package/dist/commands/code.js +0 -102
  110. package/dist/commands/code.js.map +0 -1
  111. package/dist/commands/command.constants.js +0 -13
  112. package/dist/commands/command.constants.js.map +0 -1
  113. package/dist/commands/commit.js +0 -17
  114. package/dist/commands/commit.js.map +0 -1
  115. package/dist/commands/fix.js +0 -17
  116. package/dist/commands/fix.js.map +0 -1
  117. package/dist/commands/init.js +0 -501
  118. package/dist/commands/init.js.map +0 -1
  119. package/dist/commands/mcp-server.js +0 -122
  120. package/dist/commands/mcp-server.js.map +0 -1
  121. package/dist/commands/memory.js +0 -410
  122. package/dist/commands/memory.js.map +0 -1
  123. package/dist/commands/memory.test.js +0 -453
  124. package/dist/commands/memory.test.js.map +0 -1
  125. package/dist/commands/meta.js +0 -142
  126. package/dist/commands/meta.js.map +0 -1
  127. package/dist/commands/plan.js +0 -39
  128. package/dist/commands/plan.js.map +0 -1
  129. package/dist/commands/pr.js +0 -14
  130. package/dist/commands/pr.js.map +0 -1
  131. package/dist/commands/review-json.test.js +0 -33
  132. package/dist/commands/review-json.test.js.map +0 -1
  133. package/dist/commands/review.js +0 -137
  134. package/dist/commands/review.js.map +0 -1
  135. package/dist/commands/review.usage.test.js +0 -41
  136. package/dist/commands/review.usage.test.js.map +0 -1
  137. package/dist/commands/run.js +0 -107
  138. package/dist/commands/run.js.map +0 -1
  139. package/dist/commands/skills.js +0 -175
  140. package/dist/commands/skills.js.map +0 -1
  141. package/dist/commands/task.js +0 -34
  142. package/dist/commands/task.js.map +0 -1
  143. package/dist/commands/workflow.js +0 -117
  144. package/dist/commands/workflow.js.map +0 -1
  145. package/dist/configPrompt.js +0 -39
  146. package/dist/configPrompt.js.map +0 -1
  147. package/dist/env.js +0 -22
  148. package/dist/env.js.map +0 -1
  149. package/dist/errors.js +0 -132
  150. package/dist/errors.js.map +0 -1
  151. package/dist/errors.test.js +0 -21
  152. package/dist/errors.test.js.map +0 -1
  153. package/dist/file-attachments.js +0 -77
  154. package/dist/file-attachments.js.map +0 -1
  155. package/dist/file-attachments.test.js +0 -214
  156. package/dist/file-attachments.test.js.map +0 -1
  157. package/dist/getModel.js +0 -229
  158. package/dist/getModel.js.map +0 -1
  159. package/dist/getModel.test.js +0 -67
  160. package/dist/getModel.test.js.map +0 -1
  161. package/dist/getProviderOptions.js +0 -58
  162. package/dist/getProviderOptions.js.map +0 -1
  163. package/dist/git-operations.js +0 -363
  164. package/dist/git-operations.js.map +0 -1
  165. package/dist/git-operations.test.js +0 -81
  166. package/dist/git-operations.test.js.map +0 -1
  167. package/dist/index.js.map +0 -1
  168. package/dist/logger.js +0 -41
  169. package/dist/logger.js.map +0 -1
  170. package/dist/mcp/client.js +0 -11
  171. package/dist/mcp/client.js.map +0 -1
  172. package/dist/mcp/error-scenarios.test.js +0 -206
  173. package/dist/mcp/error-scenarios.test.js.map +0 -1
  174. package/dist/mcp/errors.js +0 -63
  175. package/dist/mcp/errors.js.map +0 -1
  176. package/dist/mcp/index.js +0 -9
  177. package/dist/mcp/index.js.map +0 -1
  178. package/dist/mcp/manager.js +0 -231
  179. package/dist/mcp/manager.js.map +0 -1
  180. package/dist/mcp/manager.test.js +0 -40
  181. package/dist/mcp/manager.test.js.map +0 -1
  182. package/dist/mcp/sdk-client.js +0 -166
  183. package/dist/mcp/sdk-client.js.map +0 -1
  184. package/dist/mcp/shared-types.js +0 -3
  185. package/dist/mcp/shared-types.js.map +0 -1
  186. package/dist/mcp/tools-integration.test.js +0 -198
  187. package/dist/mcp/tools-integration.test.js.map +0 -1
  188. package/dist/mcp/tools.js +0 -60
  189. package/dist/mcp/tools.js.map +0 -1
  190. package/dist/mcp/transport.js +0 -257
  191. package/dist/mcp/transport.js.map +0 -1
  192. package/dist/mcp/types.js +0 -3
  193. package/dist/mcp/types.js.map +0 -1
  194. package/dist/mcp-server/index.js +0 -5
  195. package/dist/mcp-server/index.js.map +0 -1
  196. package/dist/mcp-server/plan-formatting.test.js +0 -74
  197. package/dist/mcp-server/plan-formatting.test.js.map +0 -1
  198. package/dist/mcp-server/sdk-server.js +0 -102
  199. package/dist/mcp-server/sdk-server.js.map +0 -1
  200. package/dist/mcp-server/sdk-server.test.js +0 -363
  201. package/dist/mcp-server/sdk-server.test.js.map +0 -1
  202. package/dist/mcp-server/tools.js +0 -785
  203. package/dist/mcp-server/tools.js.map +0 -1
  204. package/dist/mcp-server/types.js +0 -3
  205. package/dist/mcp-server/types.js.map +0 -1
  206. package/dist/options.js +0 -85
  207. package/dist/options.js.map +0 -1
  208. package/dist/options.test.js +0 -177
  209. package/dist/options.test.js.map +0 -1
  210. package/dist/prices.js +0 -61
  211. package/dist/prices.js.map +0 -1
  212. package/dist/prices.test.js +0 -148
  213. package/dist/prices.test.js.map +0 -1
  214. package/dist/runWorkflow.js +0 -313
  215. package/dist/runWorkflow.js.map +0 -1
  216. package/dist/script/__tests__/execution.integration.test.js +0 -274
  217. package/dist/script/__tests__/execution.integration.test.js.map +0 -1
  218. package/dist/script/__tests__/runner.test.js +0 -176
  219. package/dist/script/__tests__/runner.test.js.map +0 -1
  220. package/dist/script/__tests__/validator.test.js +0 -180
  221. package/dist/script/__tests__/validator.test.js.map +0 -1
  222. package/dist/script/executor.js +0 -127
  223. package/dist/script/executor.js.map +0 -1
  224. package/dist/script/index.js +0 -4
  225. package/dist/script/index.js.map +0 -1
  226. package/dist/script/runner.js +0 -258
  227. package/dist/script/runner.js.map +0 -1
  228. package/dist/skillIntegration.js +0 -46
  229. package/dist/skillIntegration.js.map +0 -1
  230. package/dist/skillIntegration.test.js +0 -128
  231. package/dist/skillIntegration.test.js.map +0 -1
  232. package/dist/test/utils.js +0 -200
  233. package/dist/test/utils.js.map +0 -1
  234. package/dist/test/workflow-fixtures.js +0 -120
  235. package/dist/test/workflow-fixtures.js.map +0 -1
  236. package/dist/tool-implementations.js +0 -521
  237. package/dist/tool-implementations.js.map +0 -1
  238. package/dist/tool-implementations.skill-tools.test.js +0 -106
  239. package/dist/tool-implementations.skill-tools.test.js.map +0 -1
  240. package/dist/tools/getTodoItem.js +0 -33
  241. package/dist/tools/getTodoItem.js.map +0 -1
  242. package/dist/tools/gitDiff.js +0 -108
  243. package/dist/tools/gitDiff.js.map +0 -1
  244. package/dist/tools/index.js +0 -8
  245. package/dist/tools/index.js.map +0 -1
  246. package/dist/tools/listMemoryTopics.js +0 -24
  247. package/dist/tools/listMemoryTopics.js.map +0 -1
  248. package/dist/tools/listTodoItems.js +0 -35
  249. package/dist/tools/listTodoItems.js.map +0 -1
  250. package/dist/tools/listTodoItems.test.js +0 -89
  251. package/dist/tools/listTodoItems.test.js.map +0 -1
  252. package/dist/tools/readMemory.js +0 -33
  253. package/dist/tools/readMemory.js.map +0 -1
  254. package/dist/tools/updateMemory.js +0 -62
  255. package/dist/tools/updateMemory.js.map +0 -1
  256. package/dist/tools/updateMemory.test.js +0 -109
  257. package/dist/tools/updateMemory.test.js.map +0 -1
  258. package/dist/tools/updateTodoItem.js +0 -31
  259. package/dist/tools/updateTodoItem.js.map +0 -1
  260. package/dist/tools/utils/diffLineNumbers.js +0 -178
  261. package/dist/tools/utils/diffLineNumbers.js.map +0 -1
  262. package/dist/utils/cacheControl.js +0 -59
  263. package/dist/utils/cacheControl.js.map +0 -1
  264. package/dist/utils/cacheControl.test.js +0 -128
  265. package/dist/utils/cacheControl.test.js.map +0 -1
  266. package/dist/utils/command.js +0 -50
  267. package/dist/utils/command.js.map +0 -1
  268. package/dist/utils/shell.js +0 -56
  269. package/dist/utils/shell.js.map +0 -1
  270. package/dist/utils/userInput.js +0 -47
  271. package/dist/utils/userInput.js.map +0 -1
  272. package/dist/workflow-tools.js +0 -21
  273. package/dist/workflow-tools.js.map +0 -1
  274. package/dist/workflows/agent-builder.js +0 -90
  275. package/dist/workflows/agent-builder.js.map +0 -1
  276. package/dist/workflows/agent-builder.test.js +0 -115
  277. package/dist/workflows/agent-builder.test.js.map +0 -1
  278. package/dist/workflows/code.workflow.js +0 -145
  279. package/dist/workflows/code.workflow.js.map +0 -1
  280. package/dist/workflows/commit.workflow.js +0 -111
  281. package/dist/workflows/commit.workflow.js.map +0 -1
  282. package/dist/workflows/commit.workflow.test.js +0 -141
  283. package/dist/workflows/commit.workflow.test.js.map +0 -1
  284. package/dist/workflows/fix.workflow.js +0 -172
  285. package/dist/workflows/fix.workflow.js.map +0 -1
  286. package/dist/workflows/fix.workflow.test.js +0 -137
  287. package/dist/workflows/fix.workflow.test.js.map +0 -1
  288. package/dist/workflows/git-file-tools.js +0 -408
  289. package/dist/workflows/git-file-tools.js.map +0 -1
  290. package/dist/workflows/index.js +0 -12
  291. package/dist/workflows/index.js.map +0 -1
  292. package/dist/workflows/init-interactive.workflow.js +0 -198
  293. package/dist/workflows/init-interactive.workflow.js.map +0 -1
  294. package/dist/workflows/init.workflow.js +0 -41
  295. package/dist/workflows/init.workflow.js.map +0 -1
  296. package/dist/workflows/meta.workflow.js +0 -107
  297. package/dist/workflows/meta.workflow.js.map +0 -1
  298. package/dist/workflows/plan.workflow.js +0 -275
  299. package/dist/workflows/plan.workflow.js.map +0 -1
  300. package/dist/workflows/plan.workflow.test.js +0 -419
  301. package/dist/workflows/plan.workflow.test.js.map +0 -1
  302. package/dist/workflows/pr.workflow.js +0 -54
  303. package/dist/workflows/pr.workflow.js.map +0 -1
  304. package/dist/workflows/pr.workflow.test.js +0 -98
  305. package/dist/workflows/pr.workflow.test.js.map +0 -1
  306. package/dist/workflows/prompts/coder.js +0 -85
  307. package/dist/workflows/prompts/coder.js.map +0 -1
  308. package/dist/workflows/prompts/commit.js +0 -16
  309. package/dist/workflows/prompts/commit.js.map +0 -1
  310. package/dist/workflows/prompts/fix.js +0 -44
  311. package/dist/workflows/prompts/fix.js.map +0 -1
  312. package/dist/workflows/prompts/index.js +0 -10
  313. package/dist/workflows/prompts/index.js.map +0 -1
  314. package/dist/workflows/prompts/init.js +0 -48
  315. package/dist/workflows/prompts/init.js.map +0 -1
  316. package/dist/workflows/prompts/meta.js +0 -17
  317. package/dist/workflows/prompts/meta.js.map +0 -1
  318. package/dist/workflows/prompts/plan.js +0 -212
  319. package/dist/workflows/prompts/plan.js.map +0 -1
  320. package/dist/workflows/prompts/pr.js +0 -15
  321. package/dist/workflows/prompts/pr.js.map +0 -1
  322. package/dist/workflows/prompts/review.js +0 -145
  323. package/dist/workflows/prompts/review.js.map +0 -1
  324. package/dist/workflows/prompts/shared.js +0 -93
  325. package/dist/workflows/prompts/shared.js.map +0 -1
  326. package/dist/workflows/review.workflow.js +0 -357
  327. package/dist/workflows/review.workflow.js.map +0 -1
  328. package/dist/workflows/task.workflow.js +0 -47
  329. package/dist/workflows/task.workflow.js.map +0 -1
  330. package/dist/workflows/testing/helper.js +0 -41
  331. package/dist/workflows/testing/helper.js.map +0 -1
  332. package/dist/workflows/workflow.utils.js +0 -351
  333. package/dist/workflows/workflow.utils.js.map +0 -1
  334. package/dist/workflows/workflow.utils.test.js +0 -45
  335. package/dist/workflows/workflow.utils.test.js.map +0 -1
@@ -1,114 +0,0 @@
1
- /**
2
- * Error handling utilities for the agent system
3
- *
4
- * Provides standardized error logging and suppression patterns
5
- * to improve debugging and production troubleshooting.
6
- */
7
- import { createErrorClass } from '@polka-codes/core';
8
- /**
9
- * Helper function to log message with optional stack trace
10
- */
11
- function logWithStack(logger, level, message, error, contextMessage) {
12
- logger[level](message);
13
- if (error?.stack) {
14
- logger.debug(`[${contextMessage}] Stack:`, error.stack);
15
- }
16
- }
17
- /**
18
- * Log strategies for different log levels
19
- * Each strategy handles logging at its specific level with appropriate stack trace handling
20
- */
21
- const logStrategies = {
22
- error: (logger, message, error, contextMessage) => {
23
- logWithStack(logger, 'error', message, error, contextMessage);
24
- },
25
- warn: (logger, message) => logger.warn(message),
26
- debug: (logger, message, error, contextMessage) => {
27
- logWithStack(logger, 'debug', message, error, contextMessage);
28
- },
29
- };
30
- export function logAndSuppress(logger, error, contextMessage, options = {}) {
31
- const { silent = false, level = 'debug', context = {} } = options;
32
- if (silent) {
33
- return;
34
- }
35
- // Extract error message
36
- const message = error instanceof Error ? error.message : String(error);
37
- // Build log message
38
- const fullContext = `[${contextMessage}] ${message}`;
39
- let contextString = '';
40
- if (Object.keys(context).length > 0) {
41
- try {
42
- contextString = ` ${JSON.stringify(context)}`;
43
- }
44
- catch {
45
- // If context contains circular references or can't be stringified,
46
- // fall back to a simple object representation
47
- contextString = ` [context data omitted - circular or non-serializable]`;
48
- }
49
- }
50
- const logMessage = `${fullContext}${contextString}`;
51
- // Use strategy pattern - select appropriate logging strategy
52
- const strategy = logStrategies[level] ?? logStrategies.debug;
53
- strategy(logger, logMessage, error instanceof Error ? error : undefined, contextMessage);
54
- }
55
- /**
56
- * Standard error types for better error categorization
57
- *
58
- * Using createErrorClass factory for consistent error handling
59
- * and proper stack trace preservation.
60
- */
61
- /**
62
- * Error thrown when a file system operation fails
63
- *
64
- * @param path - File or directory path
65
- * @param operation - Operation being performed (read, write, delete, etc.)
66
- * @param cause - Optional underlying error
67
- */
68
- export const FileSystemAccessError = createErrorClass('FileSystemAccessError', (args) => {
69
- const [path, operation] = args;
70
- return `Failed to ${operation} ${path}`;
71
- });
72
- /**
73
- * Error thrown when a command execution fails
74
- *
75
- * @param command - Command that was executed
76
- * @param exitCode - Exit code from the command
77
- * @param _stderr - Standard error output (not shown in message)
78
- * @param cause - Optional underlying error
79
- */
80
- export const CommandExecutionError = createErrorClass('CommandExecutionError', (args) => {
81
- const [command, exitCode] = args;
82
- return `Command failed with code ${exitCode}: ${command}`;
83
- });
84
- /**
85
- * Error thrown when JSON parsing fails
86
- *
87
- * @param filePath - Path to file being parsed
88
- * @param _rawContent - Raw content that failed to parse (not shown in message)
89
- * @param cause - Optional underlying error
90
- */
91
- export const JSONParseError = createErrorClass('JSONParseError', (args) => {
92
- const [filePath] = args;
93
- return `Failed to parse JSON from ${filePath}`;
94
- });
95
- /**
96
- * Safely parse JSON with error handling
97
- *
98
- * Unlike JSON.parse, this provides a structured error with file context.
99
- *
100
- * @param content - JSON string to parse
101
- * @param filePath - File path for error messages
102
- * @returns Parsed object
103
- * @throws {JSONParseError} If JSON parsing fails
104
- */
105
- export function safeJSONParse(content, filePath) {
106
- try {
107
- return JSON.parse(content);
108
- }
109
- catch (error) {
110
- // createErrorClass automatically extracts Error from last argument
111
- throw new JSONParseError(filePath, content, error);
112
- }
113
- }
114
- //# sourceMappingURL=error-handling.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-handling.js","sourceRoot":"","sources":["../../src/agent/error-handling.ts"],"names":[],"mappings":"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"}
@@ -1,191 +0,0 @@
1
- import { beforeEach, describe, expect, it } from 'bun:test';
2
- import { CommandExecutionError, FileSystemAccessError, JSONParseError, logAndSuppress, safeJSONParse } from './error-handling';
3
- describe('error-handling', () => {
4
- describe('logAndSuppress', () => {
5
- let mockLogger;
6
- let logs;
7
- beforeEach(() => {
8
- logs = [];
9
- mockLogger = {
10
- debug: (msg) => logs.push(`debug: ${msg}`),
11
- warn: (msg) => logs.push(`warn: ${msg}`),
12
- error: (msg) => logs.push(`error: ${msg}`),
13
- };
14
- });
15
- it('should log error with debug level by default', () => {
16
- const error = new Error('Test error');
17
- logAndSuppress(mockLogger, error, 'TestContext');
18
- expect(logs).toHaveLength(2); // message + stack
19
- expect(logs[0]).toContain('debug: [TestContext] Test error');
20
- });
21
- it('should log at warn level when specified', () => {
22
- const error = new Error('Test error');
23
- logAndSuppress(mockLogger, error, 'TestContext', { level: 'warn' });
24
- expect(logs).toHaveLength(1);
25
- expect(logs[0]).toContain('warn: [TestContext] Test error');
26
- });
27
- it('should log at error level when specified', () => {
28
- const error = new Error('Test error');
29
- logAndSuppress(mockLogger, error, 'TestContext', { level: 'error' });
30
- expect(logs).toHaveLength(2); // message + stack
31
- expect(logs[0]).toContain('error: [TestContext] Test error');
32
- });
33
- it('should include context in log message', () => {
34
- const error = new Error('Test error');
35
- logAndSuppress(mockLogger, error, 'TestContext', {
36
- context: { key: 'value' },
37
- });
38
- expect(logs[0]).toContain('key');
39
- expect(logs[0]).toContain('value');
40
- });
41
- it('should handle non-Error objects', () => {
42
- logAndSuppress(mockLogger, 'string error', 'TestContext');
43
- expect(logs).toHaveLength(1);
44
- expect(logs[0]).toContain('debug: [TestContext] string error');
45
- });
46
- it('should be silent when silent option is true', () => {
47
- const error = new Error('Test error');
48
- logAndSuppress(mockLogger, error, 'TestContext', { silent: true });
49
- expect(logs).toHaveLength(0);
50
- });
51
- it('should include stack trace for Error objects', () => {
52
- const error = new Error('Test error');
53
- logAndSuppress(mockLogger, error, 'TestContext');
54
- expect(logs).toHaveLength(2);
55
- expect(logs[1]).toContain('Stack:');
56
- });
57
- it('should not include stack trace for non-Error objects', () => {
58
- logAndSuppress(mockLogger, 'string error', 'TestContext');
59
- expect(logs).toHaveLength(1);
60
- });
61
- it('should handle empty context object', () => {
62
- const error = new Error('Test error');
63
- logAndSuppress(mockLogger, error, 'TestContext', {
64
- context: {},
65
- });
66
- expect(logs).toHaveLength(2);
67
- expect(logs[0]).not.toContain('{');
68
- });
69
- });
70
- describe('FileSystemAccessError', () => {
71
- it('should create error with path and operation', () => {
72
- const error = new FileSystemAccessError('/test/path', 'read');
73
- expect(error.name).toBe('FileSystemAccessError');
74
- expect(error.message).toContain('Failed to read /test/path');
75
- expect(error.message).toContain('/test/path');
76
- expect(error.stack).toContain('FileSystemAccessError');
77
- });
78
- it('should accept cause error', () => {
79
- const cause = new Error('Permission denied');
80
- const error = new FileSystemAccessError('/test/path', 'write', cause);
81
- expect(error.cause).toBe(cause);
82
- expect(error.message).toContain('Failed to write /test/path');
83
- });
84
- it('should work without cause', () => {
85
- const error = new FileSystemAccessError('/test/path', 'delete');
86
- expect(error.cause).toBeUndefined();
87
- expect(error.message).toContain('Failed to delete /test/path');
88
- });
89
- });
90
- describe('CommandExecutionError', () => {
91
- it('should create error with command, exit code, and stderr', () => {
92
- const error = new CommandExecutionError('npm install', 1, 'EACCES');
93
- expect(error.name).toBe('CommandExecutionError');
94
- expect(error.message).toContain('npm install');
95
- expect(error.message).toContain('code 1');
96
- expect(error.stack).toContain('CommandExecutionError');
97
- });
98
- it('should accept cause error', () => {
99
- const cause = new Error('Network timeout');
100
- const error = new CommandExecutionError('curl test.com', 28, 'Timeout', cause);
101
- expect(error.cause).toBe(cause);
102
- expect(error.message).toContain('curl test.com');
103
- expect(error.message).toContain('code 28');
104
- });
105
- it('should work without cause', () => {
106
- const error = new CommandExecutionError('ls', 0, '');
107
- expect(error.cause).toBeUndefined();
108
- expect(error.message).toContain('ls');
109
- expect(error.message).toContain('code 0');
110
- });
111
- });
112
- describe('JSONParseError', () => {
113
- it('should create error with file path and content', () => {
114
- const content = '{invalid json';
115
- const error = new JSONParseError('/test/config.json', content);
116
- expect(error.name).toBe('JSONParseError');
117
- expect(error.message).toContain('/test/config.json');
118
- expect(error.message).toContain('Failed to parse JSON');
119
- expect(error.stack).toContain('JSONParseError');
120
- });
121
- it('should accept cause error', () => {
122
- const cause = new Error('Unexpected token');
123
- const error = new JSONParseError('/test/data.json', '{}', cause);
124
- expect(error.cause).toBe(cause);
125
- expect(error.message).toContain('/test/data.json');
126
- });
127
- it('should work without cause', () => {
128
- const error = new JSONParseError('/test/config.json', '{}');
129
- expect(error.cause).toBeUndefined();
130
- expect(error.message).toContain('/test/config.json');
131
- });
132
- });
133
- describe('safeJSONParse', () => {
134
- it('should parse valid JSON', () => {
135
- const content = '{"key":"value"}';
136
- const result = safeJSONParse(content, '/test.json');
137
- expect(result.key).toBe('value');
138
- });
139
- it('should parse JSON arrays', () => {
140
- const content = '[1,2,3]';
141
- const result = safeJSONParse(content, '/test.json');
142
- expect(result).toEqual([1, 2, 3]);
143
- });
144
- it('should parse nested objects', () => {
145
- const content = '{"user":{"name":"test","age":25}}';
146
- const result = safeJSONParse(content, '/test.json');
147
- expect(result.user.name).toBe('test');
148
- expect(result.user.age).toBe(25);
149
- });
150
- it('should throw JSONParseError for invalid JSON', () => {
151
- const content = '{invalid';
152
- expect(() => safeJSONParse(content, '/test.json')).toThrow(JSONParseError);
153
- });
154
- it('should include file path in error', () => {
155
- const content = '{invalid';
156
- expect(() => safeJSONParse(content, '/config/test.json')).toThrow(JSONParseError);
157
- expect(() => safeJSONParse(content, '/config/test.json')).toThrow(expect.objectContaining({
158
- message: expect.stringContaining('/config/test.json'),
159
- cause: expect.any(Error),
160
- }));
161
- });
162
- it('should include raw content in error', () => {
163
- const content = '{invalid json';
164
- expect(() => safeJSONParse(content, '/test.json')).toThrow(JSONParseError);
165
- expect(() => safeJSONParse(content, '/test.json')).toThrow(expect.objectContaining({
166
- message: expect.stringContaining('/test.json'),
167
- cause: expect.any(Error),
168
- }));
169
- });
170
- it('should handle empty JSON object', () => {
171
- const content = '{}';
172
- const result = safeJSONParse(content, '/test.json');
173
- expect(result).toEqual({});
174
- });
175
- it('should handle null JSON', () => {
176
- const content = 'null';
177
- const result = safeJSONParse(content, '/test.json');
178
- expect(result).toBeNull();
179
- });
180
- it('should handle boolean values', () => {
181
- expect(safeJSONParse('true', '/test.json')).toEqual(true);
182
- expect(safeJSONParse('false', '/test.json')).toEqual(false);
183
- });
184
- it('should handle numbers', () => {
185
- expect(safeJSONParse('42', '/test.json')).toEqual(42);
186
- expect(safeJSONParse('3.14', '/test.json')).toEqual(3.14);
187
- expect(safeJSONParse('-10', '/test.json')).toEqual(-10);
188
- });
189
- });
190
- });
191
- //# sourceMappingURL=error-handling.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-handling.test.js","sourceRoot":"","sources":["../../src/agent/error-handling.test.ts"],"names":[],"mappings":"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"}
@@ -1,301 +0,0 @@
1
- /**
2
- * Format any error for display
3
- * Uses enhanced formatting for AgentError, basic formatting for other errors
4
- */
5
- export function formatError(error) {
6
- if (error instanceof AgentError) {
7
- return error.getFormattedMessage();
8
- }
9
- if (error instanceof Error) {
10
- return `❌ ${error.name}: ${error.message}\n ${error.stack || ''}`;
11
- }
12
- return `❌ Error: ${String(error)}`;
13
- }
14
- /**
15
- * Base agent error with enhanced context and suggestions
16
- */
17
- export class AgentError extends Error {
18
- code;
19
- details;
20
- suggestions;
21
- constructor(message, code, details, suggestions) {
22
- super(message);
23
- this.code = code;
24
- this.details = details;
25
- this.suggestions = suggestions;
26
- this.name = 'AgentError';
27
- }
28
- /**
29
- * Get formatted error message with suggestions
30
- */
31
- getFormattedMessage() {
32
- let output = `❌ ${this.message}\n`;
33
- output += ` Error Code: ${this.code}\n`;
34
- if (this.details && Object.keys(this.details).length > 0) {
35
- output += ` Details: ${JSON.stringify(this.details, null, 2)}\n`;
36
- }
37
- if (this.suggestions) {
38
- if (this.suggestions.suggestions.length > 0) {
39
- output += `\n 💡 Suggestions:\n`;
40
- this.suggestions.suggestions.forEach((s, i) => {
41
- output += ` ${i + 1}. ${s}\n`;
42
- });
43
- }
44
- if (this.suggestions.recovery && this.suggestions.recovery.length > 0) {
45
- output += `\n 🔧 Recovery Steps:\n`;
46
- this.suggestions.recovery.forEach((r, i) => {
47
- output += ` ${i + 1}. ${r}\n`;
48
- });
49
- }
50
- if (this.suggestions.files && this.suggestions.files.length > 0) {
51
- output += `\n 📁 Check Files:\n`;
52
- this.suggestions.files.forEach((f) => {
53
- output += ` - ${f}\n`;
54
- });
55
- }
56
- if (this.suggestions.docs && this.suggestions.docs.length > 0) {
57
- output += `\n 📚 Documentation:\n`;
58
- this.suggestions.docs.forEach((d) => {
59
- output += ` - ${d}\n`;
60
- });
61
- }
62
- }
63
- return output;
64
- }
65
- }
66
- /**
67
- * Invalid state transition error
68
- */
69
- export class StateTransitionError extends AgentError {
70
- constructor(from, to, reason) {
71
- const details = { from, to, reason };
72
- const suggestions = {
73
- suggestions: [
74
- `Check if the agent is in the correct state for this operation`,
75
- `Review the state machine in ARCHITECTURE.md`,
76
- `Ensure previous operations completed successfully`,
77
- ],
78
- recovery: [
79
- `Wait for current operation to complete`,
80
- `Call stop() to reset the agent to idle state`,
81
- `Check agent status with getCurrentStatus()`,
82
- ],
83
- files: [
84
- 'packages/cli/src/agent/orchestrator.ts',
85
- 'packages/cli/src/agent/state-manager.ts',
86
- 'packages/cli/src/agent/ARCHITECTURE.md',
87
- ],
88
- };
89
- super(`Invalid state transition from ${from} to ${to}${reason ? `: ${reason}` : ''}`, 'INVALID_STATE_TRANSITION', details, suggestions);
90
- this.name = 'StateTransitionError';
91
- }
92
- }
93
- /**
94
- * Task execution error
95
- */
96
- export class TaskExecutionError extends AgentError {
97
- originalError;
98
- constructor(taskId, message, originalError) {
99
- const details = { taskId, originalError: originalError?.message };
100
- const suggestions = {
101
- suggestions: [
102
- `Check the task logs for more details`,
103
- `Verify all required dependencies are installed`,
104
- `Ensure the task input is valid`,
105
- `Check if there are sufficient system resources`,
106
- ],
107
- recovery: [
108
- `Review the error details above`,
109
- `Fix the underlying issue and retry the task`,
110
- `Use --dry-run to test without making changes`,
111
- `Check logs in the state directory for full stack traces`,
112
- ],
113
- files: ['packages/cli/src/agent/executor.ts', 'packages/cli/src/agent/workflow-adapter.ts'],
114
- docs: ['Task Execution: packages/cli/src/agent/ARCHITECTURE.md#task-executor'],
115
- };
116
- super(`Task ${taskId} failed: ${message}`, 'TASK_EXECUTION_FAILED', details, suggestions);
117
- this.originalError = originalError;
118
- this.name = 'TaskExecutionError';
119
- }
120
- }
121
- /**
122
- * Workflow invocation error
123
- */
124
- export class WorkflowInvocationError extends AgentError {
125
- originalError;
126
- constructor(workflow, message, originalError) {
127
- const details = { workflow, originalError: originalError?.message };
128
- const suggestions = {
129
- suggestions: [
130
- `Verify the workflow name is correct`,
131
- `Check if the workflow exists in packages/cli/src/workflows/`,
132
- `Ensure workflow input matches expected schema`,
133
- `Check if the workflow was cancelled or timed out`,
134
- ],
135
- recovery: [
136
- `Check workflow implementation for issues`,
137
- `Verify all required tools are available`,
138
- `Review workflow input/output format`,
139
- `Test the workflow manually using the CLI`,
140
- ],
141
- files: ['packages/cli/src/agent/workflow-adapter.ts', `packages/cli/src/workflows/${workflow}.workflow.ts`],
142
- docs: ['Workflows: packages/cli/src/agent/ARCHITECTURE.md#workflow-adapter'],
143
- };
144
- super(`Workflow ${workflow} failed: ${message}`, 'WORKFLOW_INVOCATION_FAILED', details, suggestions);
145
- this.originalError = originalError;
146
- this.name = 'WorkflowInvocationError';
147
- }
148
- }
149
- /**
150
- * State corruption error
151
- */
152
- export class StateCorruptionError extends AgentError {
153
- details;
154
- constructor(message, details) {
155
- const suggestions = {
156
- suggestions: [
157
- `State file may have been modified externally`,
158
- `Disk corruption or filesystem issues`,
159
- `Concurrent writes to state file`,
160
- `Incomplete shutdown or crash`,
161
- ],
162
- recovery: [
163
- `Delete the corrupted state file in /tmp/polka-agent-*`,
164
- `Restart the agent to create a fresh state`,
165
- `Check filesystem health and disk space`,
166
- `Ensure no other agent instances are running`,
167
- ],
168
- files: ['packages/cli/src/agent/state-manager.ts', 'packages/cli/src/agent/session.ts'],
169
- };
170
- super(`Agent state corrupted: ${message}`, 'STATE_CORRUPTION', details, suggestions);
171
- this.details = details;
172
- this.name = 'StateCorruptionError';
173
- }
174
- }
175
- /**
176
- * Resource limit exceeded error
177
- */
178
- export class ResourceLimitError extends AgentError {
179
- constructor(limit, current, max) {
180
- const details = { limit, current, max, usagePercent: ((current / max) * 100).toFixed(1) };
181
- const suggestions = {
182
- suggestions: [
183
- `Increase the resource limit in agent config`,
184
- `Reduce task complexity or break into smaller tasks`,
185
- `Close other applications to free up resources`,
186
- `Check for memory leaks or inefficient operations`,
187
- ],
188
- recovery: [
189
- `Wait for current operations to complete`,
190
- `Adjust config.resourceLimits in agent config`,
191
- `Use smaller batch sizes for operations`,
192
- `Monitor resource usage with system tools`,
193
- ],
194
- files: ['packages/cli/src/agent/resource-monitor.ts', 'packages/cli/src/agent/config.ts'],
195
- };
196
- super(`Resource limit exceeded: ${limit} (${current}/${max})`, 'RESOURCE_LIMIT_EXCEEDED', details, suggestions);
197
- this.name = 'ResourceLimitError';
198
- }
199
- }
200
- /**
201
- * Configuration validation error
202
- */
203
- export class ConfigValidationError extends AgentError {
204
- validationErrors;
205
- constructor(message, validationErrors) {
206
- const details = { validationErrors };
207
- const suggestions = {
208
- suggestions: [
209
- `Review your agent configuration file`,
210
- `Check for required fields that are missing`,
211
- `Verify data types match expected values`,
212
- `Ensure enum values are from allowed set`,
213
- ],
214
- recovery: [
215
- `Fix the validation errors listed above`,
216
- `Use --config flag to specify valid config file`,
217
- `Check example config in packages/cli/src/agent/config.ts`,
218
- `Use default config preset: --preset balanced`,
219
- ],
220
- files: ['packages/cli/src/agent/config.ts', 'packages/cli/src/agent/types.ts'],
221
- docs: ['Configuration: packages/cli/src/agent/ARCHITECTURE.md#configuration'],
222
- };
223
- super(`Configuration validation failed: ${message}`, 'CONFIG_VALIDATION_FAILED', details, suggestions);
224
- this.validationErrors = validationErrors;
225
- this.name = 'ConfigValidationError';
226
- }
227
- }
228
- /**
229
- * Session conflict error
230
- */
231
- export class SessionConflictError extends AgentError {
232
- existingSession;
233
- constructor(sessionId, existingSession) {
234
- const details = { sessionId, existingSession };
235
- const suggestions = {
236
- suggestions: [
237
- `Another agent instance is already running`,
238
- `Previous session may not have shut down cleanly`,
239
- `Check for running agent processes`,
240
- ],
241
- recovery: [
242
- `Wait for the other session to complete`,
243
- `Stop the other agent instance if it's hung`,
244
- `Delete stale lock file: /tmp/polka-agent-*.lock`,
245
- `Check processes: ps aux | grep polka`,
246
- ],
247
- files: ['packages/cli/src/agent/session.ts', 'packages/cli/src/agent/orchestrator.ts'],
248
- };
249
- super(`Session conflict: ${sessionId} is already active`, 'SESSION_CONFLICT', details, suggestions);
250
- this.existingSession = existingSession;
251
- this.name = 'SessionConflictError';
252
- }
253
- }
254
- /**
255
- * Agent status error
256
- */
257
- export class AgentStatusError extends AgentError {
258
- constructor(message) {
259
- const suggestions = {
260
- suggestions: [
261
- `Agent may be in an invalid state`,
262
- `Check if the agent was properly initialized`,
263
- `Review the agent lifecycle in ARCHITECTURE.md`,
264
- ],
265
- recovery: [
266
- `Restart the agent to reset its state`,
267
- `Ensure initialize() was called before operations`,
268
- `Check agent state with getCurrentStatus()`,
269
- ],
270
- files: ['packages/cli/src/agent/orchestrator.ts', 'packages/cli/src/agent/ARCHITECTURE.md'],
271
- };
272
- super(message, 'AGENT_STATUS_ERROR', {}, suggestions);
273
- this.name = 'AgentStatusError';
274
- }
275
- }
276
- /**
277
- * Safety violation error
278
- */
279
- export class SafetyViolationError extends AgentError {
280
- constructor(message) {
281
- const suggestions = {
282
- suggestions: [
283
- `Operation was blocked for safety reasons`,
284
- `Review the approval workflow settings`,
285
- `Check if operation is in destructiveOperations blacklist`,
286
- `Ensure proper approval workflow is followed`,
287
- ],
288
- recovery: [
289
- `Adjust approval level in agent config`,
290
- `Manually approve the operation if safe`,
291
- `Update destructiveOperations config if needed`,
292
- `Use --yes flag for auto-approval (use with caution)`,
293
- ],
294
- files: ['packages/cli/src/agent/safety/checks.ts', 'packages/cli/src/agent/safety/approval.ts', 'packages/cli/src/agent/config.ts'],
295
- docs: ['Safety Features: packages/cli/src/agent/ARCHITECTURE.md#safety-features'],
296
- };
297
- super(`Safety violation: ${message}`, 'SAFETY_VIOLATION', {}, suggestions);
298
- this.name = 'SafetyViolationError';
299
- }
300
- }
301
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/agent/errors.ts"],"names":[],"mappings":"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"}