@stackmemoryai/stackmemory 0.2.7 → 0.2.8

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 (297) hide show
  1. package/README.md +25 -8
  2. package/dist/scripts/cancel-duplicate-tasks.js +2 -1
  3. package/dist/scripts/cancel-duplicate-tasks.js.map +1 -1
  4. package/dist/scripts/list-linear-tasks.js +3 -4
  5. package/dist/scripts/list-linear-tasks.js.map +1 -1
  6. package/dist/scripts/merge-linear-duplicates-safe.js +4 -2
  7. package/dist/scripts/merge-linear-duplicates-safe.js.map +1 -1
  8. package/dist/scripts/show-linear-summary.js +4 -1
  9. package/dist/scripts/show-linear-summary.js.map +1 -1
  10. package/dist/scripts/status.js +6 -2
  11. package/dist/scripts/status.js.map +1 -1
  12. package/dist/src/cli/auto-detect.js.map +1 -1
  13. package/dist/src/cli/claude-sm.js.map +1 -1
  14. package/dist/src/cli/commands/config.d.ts +6 -0
  15. package/dist/src/cli/commands/config.d.ts.map +1 -0
  16. package/dist/src/cli/commands/config.js +224 -0
  17. package/dist/src/cli/commands/config.js.map +1 -0
  18. package/dist/src/cli/commands/linear.d.ts.map +1 -1
  19. package/dist/src/cli/commands/linear.js +123 -47
  20. package/dist/src/cli/commands/linear.js.map +1 -1
  21. package/dist/src/cli/index.d.ts.map +1 -1
  22. package/dist/src/cli/index.js +48 -1
  23. package/dist/src/cli/index.js.map +1 -1
  24. package/dist/src/core/config/config-manager.d.ts +95 -0
  25. package/dist/src/core/config/config-manager.d.ts.map +1 -0
  26. package/dist/src/core/config/config-manager.js +359 -0
  27. package/dist/src/core/config/config-manager.js.map +1 -0
  28. package/dist/src/core/config/types.d.ts +72 -0
  29. package/dist/src/core/config/types.d.ts.map +1 -0
  30. package/dist/src/core/config/types.js +127 -0
  31. package/dist/src/core/config/types.js.map +1 -0
  32. package/dist/src/core/context/compaction-handler.d.ts +119 -0
  33. package/dist/src/core/context/compaction-handler.d.ts.map +1 -0
  34. package/dist/src/core/context/compaction-handler.js +306 -0
  35. package/dist/src/core/context/compaction-handler.js.map +1 -0
  36. package/dist/src/core/context/model-aware-compaction.d.ts +101 -0
  37. package/dist/src/core/context/model-aware-compaction.d.ts.map +1 -0
  38. package/dist/src/core/context/model-aware-compaction.js +616 -0
  39. package/dist/src/core/context/model-aware-compaction.js.map +1 -0
  40. package/dist/src/core/query/query-parser.d.ts +104 -0
  41. package/dist/src/core/query/query-parser.d.ts.map +1 -0
  42. package/dist/src/core/query/query-parser.js +347 -0
  43. package/dist/src/core/query/query-parser.js.map +1 -0
  44. package/dist/src/core/retrieval/index.d.ts +8 -0
  45. package/dist/src/core/retrieval/index.d.ts.map +1 -0
  46. package/dist/src/core/retrieval/index.js +8 -0
  47. package/dist/src/core/retrieval/index.js.map +1 -0
  48. package/dist/src/core/retrieval/llm-context-retrieval.d.ts +71 -0
  49. package/dist/src/core/retrieval/llm-context-retrieval.d.ts.map +1 -0
  50. package/dist/src/core/retrieval/llm-context-retrieval.js +545 -0
  51. package/dist/src/core/retrieval/llm-context-retrieval.js.map +1 -0
  52. package/dist/src/core/retrieval/summary-generator.d.ts +63 -0
  53. package/dist/src/core/retrieval/summary-generator.d.ts.map +1 -0
  54. package/dist/src/core/retrieval/summary-generator.js +622 -0
  55. package/dist/src/core/retrieval/summary-generator.js.map +1 -0
  56. package/dist/src/core/retrieval/types.d.ts +257 -0
  57. package/dist/src/core/retrieval/types.d.ts.map +1 -0
  58. package/dist/src/core/retrieval/types.js +18 -0
  59. package/dist/src/core/retrieval/types.js.map +1 -0
  60. package/dist/src/core/trace/trace-detector.d.ts +108 -0
  61. package/dist/src/core/trace/trace-detector.d.ts.map +1 -0
  62. package/dist/src/core/trace/trace-detector.demo.d.ts +5 -0
  63. package/dist/src/core/trace/trace-detector.demo.d.ts.map +1 -0
  64. package/dist/src/core/trace/trace-detector.demo.js +145 -0
  65. package/dist/src/core/trace/trace-detector.demo.js.map +1 -0
  66. package/dist/src/core/trace/trace-detector.js +425 -0
  67. package/dist/src/core/trace/trace-detector.js.map +1 -0
  68. package/dist/src/core/trace/trace-store.d.ts +60 -0
  69. package/dist/src/core/trace/trace-store.d.ts.map +1 -0
  70. package/dist/src/core/trace/trace-store.js +323 -0
  71. package/dist/src/core/trace/trace-store.js.map +1 -0
  72. package/dist/src/core/trace/types.d.ts +81 -0
  73. package/dist/src/core/trace/types.d.ts.map +1 -0
  74. package/dist/src/core/trace/types.js +70 -0
  75. package/dist/src/core/trace/types.js.map +1 -0
  76. package/dist/src/integrations/linear/sync-manager.d.ts +76 -0
  77. package/dist/src/integrations/linear/sync-manager.d.ts.map +1 -0
  78. package/dist/src/integrations/linear/sync-manager.js +223 -0
  79. package/dist/src/integrations/linear/sync-manager.js.map +1 -0
  80. package/dist/src/integrations/mcp/server.d.ts +8 -0
  81. package/dist/src/integrations/mcp/server.d.ts.map +1 -1
  82. package/dist/src/integrations/mcp/server.js +368 -16
  83. package/dist/src/integrations/mcp/server.js.map +1 -1
  84. package/dist/src/integrations/mcp/trace-test.d.ts +5 -0
  85. package/dist/src/integrations/mcp/trace-test.d.ts.map +1 -0
  86. package/dist/src/integrations/mcp/trace-test.js +54 -0
  87. package/dist/src/integrations/mcp/trace-test.js.map +1 -0
  88. package/dist/src/services/config-service.d.ts +1 -1
  89. package/dist/src/services/config-service.d.ts.map +1 -1
  90. package/dist/src/services/config-service.js.map +1 -1
  91. package/dist/src/types/task.d.ts +11 -1
  92. package/dist/src/types/task.d.ts.map +1 -1
  93. package/dist/src/utils/logger.d.ts +4 -4
  94. package/dist/src/utils/logger.d.ts.map +1 -1
  95. package/dist/src/utils/logger.js.map +1 -1
  96. package/package.json +9 -8
  97. package/dist/attention-scoring/src/attention-tracker.d.ts +0 -79
  98. package/dist/attention-scoring/src/attention-tracker.d.ts.map +0 -1
  99. package/dist/attention-scoring/src/attention-tracker.js +0 -488
  100. package/dist/attention-scoring/src/attention-tracker.js.map +0 -1
  101. package/dist/attention-scoring/src/mcp-integration.d.ts +0 -56
  102. package/dist/attention-scoring/src/mcp-integration.d.ts.map +0 -1
  103. package/dist/attention-scoring/src/mcp-integration.js +0 -369
  104. package/dist/attention-scoring/src/mcp-integration.js.map +0 -1
  105. package/dist/index.js +0 -382
  106. package/dist/p2p-sync/src/p2p-sync.d.ts +0 -81
  107. package/dist/p2p-sync/src/p2p-sync.d.ts.map +0 -1
  108. package/dist/p2p-sync/src/p2p-sync.js +0 -457
  109. package/dist/p2p-sync/src/p2p-sync.js.map +0 -1
  110. package/dist/p2p-sync/src/team-context-sync.d.ts +0 -99
  111. package/dist/p2p-sync/src/team-context-sync.d.ts.map +0 -1
  112. package/dist/p2p-sync/src/team-context-sync.js +0 -491
  113. package/dist/p2p-sync/src/team-context-sync.js.map +0 -1
  114. package/dist/scripts/merge-linear-duplicates.d.ts +0 -7
  115. package/dist/scripts/merge-linear-duplicates.d.ts.map +0 -1
  116. package/dist/scripts/merge-linear-duplicates.js +0 -126
  117. package/dist/scripts/merge-linear-duplicates.js.map +0 -1
  118. package/dist/src/analytics/api/analytics-api.d.ts +0 -24
  119. package/dist/src/analytics/api/analytics-api.d.ts.map +0 -1
  120. package/dist/src/analytics/api/analytics-api.js +0 -279
  121. package/dist/src/analytics/api/analytics-api.js.map +0 -1
  122. package/dist/src/analytics/core/analytics-service.d.ts +0 -23
  123. package/dist/src/analytics/core/analytics-service.d.ts.map +0 -1
  124. package/dist/src/analytics/core/analytics-service.js +0 -160
  125. package/dist/src/analytics/core/analytics-service.js.map +0 -1
  126. package/dist/src/analytics/index.d.ts +0 -12
  127. package/dist/src/analytics/index.d.ts.map +0 -1
  128. package/dist/src/analytics/index.js +0 -11
  129. package/dist/src/analytics/index.js.map +0 -1
  130. package/dist/src/analytics/queries/metrics-queries.d.ts +0 -11
  131. package/dist/src/analytics/queries/metrics-queries.d.ts.map +0 -1
  132. package/dist/src/analytics/queries/metrics-queries.js +0 -179
  133. package/dist/src/analytics/queries/metrics-queries.js.map +0 -1
  134. package/dist/src/analytics/types/metrics.d.ts +0 -60
  135. package/dist/src/analytics/types/metrics.d.ts.map +0 -1
  136. package/dist/src/analytics/types/metrics.js +0 -2
  137. package/dist/src/analytics/types/metrics.js.map +0 -1
  138. package/dist/src/beads/beads-task-store.d.ts +0 -117
  139. package/dist/src/beads/beads-task-store.d.ts.map +0 -1
  140. package/dist/src/beads/beads-task-store.js +0 -318
  141. package/dist/src/beads/beads-task-store.js.map +0 -1
  142. package/dist/src/beads/task-aware-context.d.ts +0 -103
  143. package/dist/src/beads/task-aware-context.d.ts.map +0 -1
  144. package/dist/src/beads/task-aware-context.js +0 -395
  145. package/dist/src/beads/task-aware-context.js.map +0 -1
  146. package/dist/src/beads-task-store.d.ts +0 -117
  147. package/dist/src/beads-task-store.d.ts.map +0 -1
  148. package/dist/src/beads-task-store.js +0 -318
  149. package/dist/src/beads-task-store.js.map +0 -1
  150. package/dist/src/cli/__tests__/index.test.d.ts +0 -5
  151. package/dist/src/cli/__tests__/index.test.d.ts.map +0 -1
  152. package/dist/src/cli/__tests__/index.test.js +0 -726
  153. package/dist/src/cli/__tests__/index.test.js.map +0 -1
  154. package/dist/src/cli/analytics-viewer.d.ts +0 -3
  155. package/dist/src/cli/analytics-viewer.d.ts.map +0 -1
  156. package/dist/src/cli/analytics-viewer.js +0 -89
  157. package/dist/src/cli/analytics-viewer.js.map +0 -1
  158. package/dist/src/cli/cli.d.ts +0 -7
  159. package/dist/src/cli/cli.d.ts.map +0 -1
  160. package/dist/src/cli/cli.js +0 -704
  161. package/dist/src/cli/cli.js.map +0 -1
  162. package/dist/src/cli/project-commands.d.ts +0 -8
  163. package/dist/src/cli/project-commands.d.ts.map +0 -1
  164. package/dist/src/cli/project-commands.js +0 -212
  165. package/dist/src/cli/project-commands.js.map +0 -1
  166. package/dist/src/cli.d.ts +0 -7
  167. package/dist/src/cli.d.ts.map +0 -1
  168. package/dist/src/cli.js +0 -73
  169. package/dist/src/cli.js.map +0 -1
  170. package/dist/src/core/context/__tests__/frame-manager.test.d.ts +0 -5
  171. package/dist/src/core/context/__tests__/frame-manager.test.d.ts.map +0 -1
  172. package/dist/src/core/context/__tests__/frame-manager.test.js +0 -892
  173. package/dist/src/core/context/__tests__/frame-manager.test.js.map +0 -1
  174. package/dist/src/core/error-handler.d.ts +0 -46
  175. package/dist/src/core/error-handler.d.ts.map +0 -1
  176. package/dist/src/core/error-handler.js +0 -212
  177. package/dist/src/core/error-handler.js.map +0 -1
  178. package/dist/src/core/errors/__tests__/error-handling.test.d.ts +0 -5
  179. package/dist/src/core/errors/__tests__/error-handling.test.d.ts.map +0 -1
  180. package/dist/src/core/errors/__tests__/error-handling.test.js +0 -239
  181. package/dist/src/core/errors/__tests__/error-handling.test.js.map +0 -1
  182. package/dist/src/core/frame-manager.d.ts +0 -106
  183. package/dist/src/core/frame-manager.d.ts.map +0 -1
  184. package/dist/src/core/frame-manager.js +0 -387
  185. package/dist/src/core/frame-manager.js.map +0 -1
  186. package/dist/src/core/logger.d.ts +0 -24
  187. package/dist/src/core/logger.d.ts.map +0 -1
  188. package/dist/src/core/logger.js +0 -121
  189. package/dist/src/core/logger.js.map +0 -1
  190. package/dist/src/core/logger.test.d.ts +0 -2
  191. package/dist/src/core/logger.test.d.ts.map +0 -1
  192. package/dist/src/core/logger.test.js +0 -31
  193. package/dist/src/core/logger.test.js.map +0 -1
  194. package/dist/src/core/progress-tracker.d.ts +0 -95
  195. package/dist/src/core/progress-tracker.d.ts.map +0 -1
  196. package/dist/src/core/progress-tracker.js +0 -178
  197. package/dist/src/core/progress-tracker.js.map +0 -1
  198. package/dist/src/core/project-manager.d.ts +0 -130
  199. package/dist/src/core/project-manager.d.ts.map +0 -1
  200. package/dist/src/core/project-manager.js +0 -582
  201. package/dist/src/core/project-manager.js.map +0 -1
  202. package/dist/src/core/update-checker.d.ts +0 -38
  203. package/dist/src/core/update-checker.d.ts.map +0 -1
  204. package/dist/src/core/update-checker.js +0 -156
  205. package/dist/src/core/update-checker.js.map +0 -1
  206. package/dist/src/error-handler.d.ts +0 -42
  207. package/dist/src/error-handler.d.ts.map +0 -1
  208. package/dist/src/error-handler.js +0 -155
  209. package/dist/src/error-handler.js.map +0 -1
  210. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.d.ts +0 -5
  211. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.d.ts.map +0 -1
  212. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.js +0 -712
  213. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.js.map +0 -1
  214. package/dist/src/frame-manager.d.ts +0 -106
  215. package/dist/src/frame-manager.d.ts.map +0 -1
  216. package/dist/src/frame-manager.js +0 -361
  217. package/dist/src/frame-manager.js.map +0 -1
  218. package/dist/src/integrations/browser-mcp.d.ts +0 -94
  219. package/dist/src/integrations/browser-mcp.d.ts.map +0 -1
  220. package/dist/src/integrations/browser-mcp.js +0 -431
  221. package/dist/src/integrations/browser-mcp.js.map +0 -1
  222. package/dist/src/integrations/linear/__tests__/auth.test.d.ts +0 -5
  223. package/dist/src/integrations/linear/__tests__/auth.test.d.ts.map +0 -1
  224. package/dist/src/integrations/linear/__tests__/auth.test.js +0 -517
  225. package/dist/src/integrations/linear/__tests__/auth.test.js.map +0 -1
  226. package/dist/src/integrations/linear/__tests__/sync-service.test.d.ts +0 -5
  227. package/dist/src/integrations/linear/__tests__/sync-service.test.d.ts.map +0 -1
  228. package/dist/src/integrations/linear/__tests__/sync-service.test.js +0 -700
  229. package/dist/src/integrations/linear/__tests__/sync-service.test.js.map +0 -1
  230. package/dist/src/integrations/linear-auth.d.ts +0 -99
  231. package/dist/src/integrations/linear-auth.d.ts.map +0 -1
  232. package/dist/src/integrations/linear-auth.js +0 -319
  233. package/dist/src/integrations/linear-auth.js.map +0 -1
  234. package/dist/src/integrations/linear-auto-sync.d.ts +0 -77
  235. package/dist/src/integrations/linear-auto-sync.d.ts.map +0 -1
  236. package/dist/src/integrations/linear-auto-sync.js +0 -268
  237. package/dist/src/integrations/linear-auto-sync.js.map +0 -1
  238. package/dist/src/integrations/linear-client.d.ts +0 -86
  239. package/dist/src/integrations/linear-client.d.ts.map +0 -1
  240. package/dist/src/integrations/linear-client.js +0 -277
  241. package/dist/src/integrations/linear-client.js.map +0 -1
  242. package/dist/src/integrations/linear-config.d.ts +0 -51
  243. package/dist/src/integrations/linear-config.d.ts.map +0 -1
  244. package/dist/src/integrations/linear-config.js +0 -103
  245. package/dist/src/integrations/linear-config.js.map +0 -1
  246. package/dist/src/integrations/linear-sync.d.ts +0 -97
  247. package/dist/src/integrations/linear-sync.d.ts.map +0 -1
  248. package/dist/src/integrations/linear-sync.js +0 -391
  249. package/dist/src/integrations/linear-sync.js.map +0 -1
  250. package/dist/src/integrations/mcp/__tests__/server.test.d.ts +0 -5
  251. package/dist/src/integrations/mcp/__tests__/server.test.d.ts.map +0 -1
  252. package/dist/src/integrations/mcp/__tests__/server.test.js +0 -790
  253. package/dist/src/integrations/mcp/__tests__/server.test.js.map +0 -1
  254. package/dist/src/logger.d.ts +0 -24
  255. package/dist/src/logger.d.ts.map +0 -1
  256. package/dist/src/logger.js +0 -120
  257. package/dist/src/logger.js.map +0 -1
  258. package/dist/src/mcp/mcp-server.d.ts +0 -40
  259. package/dist/src/mcp/mcp-server.d.ts.map +0 -1
  260. package/dist/src/mcp/mcp-server.js +0 -828
  261. package/dist/src/mcp/mcp-server.js.map +0 -1
  262. package/dist/src/mcp-server.d.ts +0 -32
  263. package/dist/src/mcp-server.d.ts.map +0 -1
  264. package/dist/src/mcp-server.js +0 -441
  265. package/dist/src/mcp-server.js.map +0 -1
  266. package/dist/src/pebbles/pebbles-task-store.d.ts +0 -117
  267. package/dist/src/pebbles/pebbles-task-store.d.ts.map +0 -1
  268. package/dist/src/pebbles/pebbles-task-store.js +0 -335
  269. package/dist/src/pebbles/pebbles-task-store.js.map +0 -1
  270. package/dist/src/pebbles/task-aware-context.d.ts +0 -103
  271. package/dist/src/pebbles/task-aware-context.d.ts.map +0 -1
  272. package/dist/src/pebbles/task-aware-context.js +0 -412
  273. package/dist/src/pebbles/task-aware-context.js.map +0 -1
  274. package/dist/src/railway/index.d.ts +0 -7
  275. package/dist/src/railway/index.d.ts.map +0 -1
  276. package/dist/src/railway/index.js +0 -401
  277. package/dist/src/railway/index.js.map +0 -1
  278. package/dist/src/runway/auth/auth-middleware.d.ts +0 -66
  279. package/dist/src/runway/auth/auth-middleware.d.ts.map +0 -1
  280. package/dist/src/runway/auth/auth-middleware.js +0 -337
  281. package/dist/src/runway/auth/auth-middleware.js.map +0 -1
  282. package/dist/src/runway/server/runway-mcp-server.d.ts +0 -46
  283. package/dist/src/runway/server/runway-mcp-server.d.ts.map +0 -1
  284. package/dist/src/runway/server/runway-mcp-server.js +0 -601
  285. package/dist/src/runway/server/runway-mcp-server.js.map +0 -1
  286. package/dist/src/runway.bak/auth/auth-middleware.d.ts +0 -66
  287. package/dist/src/runway.bak/auth/auth-middleware.d.ts.map +0 -1
  288. package/dist/src/runway.bak/auth/auth-middleware.js +0 -337
  289. package/dist/src/runway.bak/auth/auth-middleware.js.map +0 -1
  290. package/dist/src/runway.bak/server/runway-mcp-server.d.ts +0 -46
  291. package/dist/src/runway.bak/server/runway-mcp-server.d.ts.map +0 -1
  292. package/dist/src/runway.bak/server/runway-mcp-server.js +0 -601
  293. package/dist/src/runway.bak/server/runway-mcp-server.js.map +0 -1
  294. package/dist/src/task-aware-context.d.ts +0 -103
  295. package/dist/src/task-aware-context.d.ts.map +0 -1
  296. package/dist/src/task-aware-context.js +0 -395
  297. package/dist/src/task-aware-context.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"frame-manager.test.js","sourceRoot":"","sources":["../../../../../src/core/context/__tests__/frame-manager.test.ts"],"names":[],"mappings":"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"}
@@ -1,46 +0,0 @@
1
- /**
2
- * Comprehensive error handling for StackMemory CLI
3
- */
4
- export declare enum ErrorCode {
5
- AUTH_FAILED = "AUTH_FAILED",
6
- TOKEN_EXPIRED = "TOKEN_EXPIRED",
7
- INVALID_CREDENTIALS = "INVALID_CREDENTIALS",
8
- FILE_NOT_FOUND = "FILE_NOT_FOUND",
9
- PERMISSION_DENIED = "PERMISSION_DENIED",
10
- DISK_FULL = "DISK_FULL",
11
- NOT_GIT_REPO = "NOT_GIT_REPO",
12
- GIT_COMMAND_FAILED = "GIT_COMMAND_FAILED",
13
- INVALID_BRANCH = "INVALID_BRANCH",
14
- DB_CONNECTION_FAILED = "DB_CONNECTION_FAILED",
15
- DB_QUERY_FAILED = "DB_QUERY_FAILED",
16
- DB_CORRUPTION = "DB_CORRUPTION",
17
- NETWORK_ERROR = "NETWORK_ERROR",
18
- API_ERROR = "API_ERROR",
19
- TIMEOUT = "TIMEOUT",
20
- INVALID_INPUT = "INVALID_INPUT",
21
- VALIDATION_FAILED = "VALIDATION_FAILED",
22
- UNKNOWN_ERROR = "UNKNOWN_ERROR",
23
- OPERATION_FAILED = "OPERATION_FAILED",
24
- CONFIGURATION_ERROR = "CONFIGURATION_ERROR"
25
- }
26
- export declare class StackMemoryError extends Error {
27
- readonly code: ErrorCode;
28
- readonly context: Record<string, unknown>;
29
- readonly userMessage: string;
30
- readonly recoverable: boolean;
31
- constructor(code: ErrorCode, message: string, userMessage?: string, context?: Record<string, unknown>, recoverable?: boolean, cause?: Error);
32
- private getDefaultUserMessage;
33
- static fromNodeError(nodeError: NodeJS.ErrnoException, context?: Record<string, unknown>): StackMemoryError;
34
- }
35
- export declare class ErrorHandler {
36
- private static retryMap;
37
- private static readonly MAX_RETRIES;
38
- static handle(error: unknown, operation: string): never;
39
- static safeExecute<T>(operation: () => Promise<T> | T, operationName: string, fallback?: T): Promise<T | undefined>;
40
- static withRetry<T>(operation: () => Promise<T> | T, operationName: string, maxRetries?: number): Promise<T>;
41
- static createCircuitBreaker<T>(operation: () => Promise<T> | T, operationName: string, threshold?: number): () => Promise<T>;
42
- }
43
- export declare const validateInput: (value: unknown, name: string, validator: (val: unknown) => boolean) => asserts value is NonNullable<unknown>;
44
- export declare const validateEmail: (email: string) => asserts email is string;
45
- export declare const validatePath: (filePath: string) => asserts filePath is string;
46
- //# sourceMappingURL=error-handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../src/core/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,oBAAY,SAAS;IAEnB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAG3C,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;IACvC,SAAS,cAAc;IAGvB,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,cAAc,mBAAmB;IAGjC,oBAAoB,yBAAyB;IAC7C,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAG/B,aAAa,kBAAkB;IAC/B,SAAS,cAAc;IACvB,OAAO,YAAY;IAGnB,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IAGvC,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;CAC5C;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,WAAW,EAAE,OAAO,CAAC;gBAGnC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,WAAW,GAAE,OAAe,EAC5B,KAAK,CAAC,EAAE,KAAK;IAsBf,OAAO,CAAC,qBAAqB;IAqB7B,MAAM,CAAC,aAAa,CAClB,SAAS,EAAE,MAAM,CAAC,cAAc,EAChC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,gBAAgB;CAwDpB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IAExC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK;WAqD1C,WAAW,CAAC,CAAC,EACxB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAC/B,aAAa,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,CAAC,GACX,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;WAeZ,SAAS,CAAC,CAAC,EACtB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAC/B,aAAa,EAAE,MAAM,EACrB,UAAU,GAAE,MAAiC,GAC5C,OAAO,CAAC,CAAC,CAAC;IAuCb,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAC3B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAC/B,aAAa,EAAE,MAAM,EACrB,SAAS,GAAE,MAAU,SAMJ,OAAO,CAAC,CAAC,CAAC;CA8B9B;AAGD,eAAO,MAAM,aAAa,GACxB,OAAO,OAAO,EACd,MAAM,MAAM,EACZ,WAAW,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,KACnC,QAAQ,KAAK,IAAI,WAAW,CAAC,OAAO,CAUtC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAAQ,KAAK,IAAI,MAW9D,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,KAAG,QAAQ,QAAQ,IAAI,MAUnE,CAAC"}
@@ -1,212 +0,0 @@
1
- /**
2
- * Comprehensive error handling for StackMemory CLI
3
- */
4
- import { logger } from './logger.js';
5
- export var ErrorCode;
6
- (function (ErrorCode) {
7
- // Authentication errors
8
- ErrorCode["AUTH_FAILED"] = "AUTH_FAILED";
9
- ErrorCode["TOKEN_EXPIRED"] = "TOKEN_EXPIRED";
10
- ErrorCode["INVALID_CREDENTIALS"] = "INVALID_CREDENTIALS";
11
- // File system errors
12
- ErrorCode["FILE_NOT_FOUND"] = "FILE_NOT_FOUND";
13
- ErrorCode["PERMISSION_DENIED"] = "PERMISSION_DENIED";
14
- ErrorCode["DISK_FULL"] = "DISK_FULL";
15
- // Git operation errors
16
- ErrorCode["NOT_GIT_REPO"] = "NOT_GIT_REPO";
17
- ErrorCode["GIT_COMMAND_FAILED"] = "GIT_COMMAND_FAILED";
18
- ErrorCode["INVALID_BRANCH"] = "INVALID_BRANCH";
19
- // Database errors
20
- ErrorCode["DB_CONNECTION_FAILED"] = "DB_CONNECTION_FAILED";
21
- ErrorCode["DB_QUERY_FAILED"] = "DB_QUERY_FAILED";
22
- ErrorCode["DB_CORRUPTION"] = "DB_CORRUPTION";
23
- // Network errors
24
- ErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
25
- ErrorCode["API_ERROR"] = "API_ERROR";
26
- ErrorCode["TIMEOUT"] = "TIMEOUT";
27
- // Validation errors
28
- ErrorCode["INVALID_INPUT"] = "INVALID_INPUT";
29
- ErrorCode["VALIDATION_FAILED"] = "VALIDATION_FAILED";
30
- // General errors
31
- ErrorCode["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
32
- ErrorCode["OPERATION_FAILED"] = "OPERATION_FAILED";
33
- ErrorCode["CONFIGURATION_ERROR"] = "CONFIGURATION_ERROR";
34
- })(ErrorCode || (ErrorCode = {}));
35
- export class StackMemoryError extends Error {
36
- code;
37
- context;
38
- userMessage;
39
- recoverable;
40
- constructor(code, message, userMessage, context = {}, recoverable = false, cause) {
41
- super(message);
42
- this.name = 'StackMemoryError';
43
- this.code = code;
44
- this.context = context;
45
- this.userMessage = userMessage || this.getDefaultUserMessage(code);
46
- this.recoverable = recoverable;
47
- if (cause && Error.captureStackTrace) {
48
- Error.captureStackTrace(this, StackMemoryError);
49
- }
50
- // Log the error
51
- logger.error(message, cause, {
52
- code,
53
- context,
54
- recoverable,
55
- userMessage: this.userMessage,
56
- });
57
- }
58
- getDefaultUserMessage(code) {
59
- switch (code) {
60
- case ErrorCode.AUTH_FAILED:
61
- return 'Authentication failed. Please check your credentials and try again.';
62
- case ErrorCode.NOT_GIT_REPO:
63
- return 'This command requires a git repository. Please run it from within a git repository.';
64
- case ErrorCode.PERMISSION_DENIED:
65
- return 'Permission denied. Please check file permissions or run with appropriate privileges.';
66
- case ErrorCode.NETWORK_ERROR:
67
- return 'Network error. Please check your internet connection and try again.';
68
- case ErrorCode.INVALID_INPUT:
69
- return 'Invalid input provided. Please check your command and try again.';
70
- case ErrorCode.DB_CONNECTION_FAILED:
71
- return 'Database connection failed. Please try again or contact support if the issue persists.';
72
- case ErrorCode.GIT_COMMAND_FAILED:
73
- return 'Git operation failed. Please ensure your repository is in a valid state.';
74
- default:
75
- return 'An unexpected error occurred. Please try again or contact support.';
76
- }
77
- }
78
- static fromNodeError(nodeError, context = {}) {
79
- const code = nodeError.code;
80
- switch (code) {
81
- case 'ENOENT':
82
- return new StackMemoryError(ErrorCode.FILE_NOT_FOUND, `File or directory not found: ${nodeError.path}`, 'The requested file or directory was not found.', { ...context, path: nodeError.path }, false, nodeError);
83
- case 'EACCES':
84
- case 'EPERM':
85
- return new StackMemoryError(ErrorCode.PERMISSION_DENIED, `Permission denied: ${nodeError.path}`, 'Permission denied. Please check file permissions.', { ...context, path: nodeError.path }, true, nodeError);
86
- case 'ENOSPC':
87
- return new StackMemoryError(ErrorCode.DISK_FULL, 'No space left on device', 'Insufficient disk space. Please free up space and try again.', context, true, nodeError);
88
- case 'ETIMEDOUT':
89
- return new StackMemoryError(ErrorCode.TIMEOUT, 'Operation timed out', 'The operation timed out. Please try again.', context, true, nodeError);
90
- default:
91
- return new StackMemoryError(ErrorCode.UNKNOWN_ERROR, nodeError.message, 'An unexpected system error occurred.', { ...context, nodeErrorCode: code }, false, nodeError);
92
- }
93
- }
94
- }
95
- export class ErrorHandler {
96
- static retryMap = new Map();
97
- static MAX_RETRIES = 3;
98
- static handle(error, operation) {
99
- if (error instanceof StackMemoryError) {
100
- // Already a well-formed StackMemory error
101
- console.error(`❌ ${error.userMessage}`);
102
- if (error.recoverable) {
103
- console.error('💡 This error may be recoverable. Please try again.');
104
- }
105
- process.exit(1);
106
- }
107
- if (error instanceof Error) {
108
- // Convert Node.js error to StackMemoryError
109
- let stackMemoryError;
110
- if ('code' in error && typeof error.code === 'string') {
111
- stackMemoryError = StackMemoryError.fromNodeError(error, { operation });
112
- }
113
- else {
114
- stackMemoryError = new StackMemoryError(ErrorCode.OPERATION_FAILED, `Operation '${operation}' failed: ${error.message}`, `Operation failed: ${error.message}`, { operation }, false, error);
115
- }
116
- console.error(`❌ ${stackMemoryError.userMessage}`);
117
- if (stackMemoryError.recoverable) {
118
- console.error('💡 This error may be recoverable. Please try again.');
119
- }
120
- process.exit(1);
121
- }
122
- // Unknown error type
123
- const unknownError = new StackMemoryError(ErrorCode.UNKNOWN_ERROR, `Unknown error in operation '${operation}': ${String(error)}`, 'An unexpected error occurred.', { operation, errorType: typeof error }, false);
124
- console.error(`❌ ${unknownError.userMessage}`);
125
- process.exit(1);
126
- }
127
- static async safeExecute(operation, operationName, fallback) {
128
- try {
129
- return await operation();
130
- }
131
- catch (error) {
132
- if (fallback !== undefined) {
133
- logger.warn(`Operation '${operationName}' failed, using fallback`, {
134
- error: String(error),
135
- });
136
- return fallback;
137
- }
138
- ErrorHandler.handle(error, operationName);
139
- }
140
- }
141
- static async withRetry(operation, operationName, maxRetries = ErrorHandler.MAX_RETRIES) {
142
- let lastError;
143
- for (let attempt = 1; attempt <= maxRetries; attempt++) {
144
- try {
145
- const result = await operation();
146
- // Clear retry count on success
147
- ErrorHandler.retryMap.delete(operationName);
148
- return result;
149
- }
150
- catch (error) {
151
- lastError = error;
152
- if (error instanceof StackMemoryError && !error.recoverable) {
153
- // Don't retry non-recoverable errors
154
- ErrorHandler.handle(error, operationName);
155
- }
156
- if (attempt === maxRetries) {
157
- break;
158
- }
159
- const delay = Math.min(1000 * Math.pow(2, attempt - 1), 5000); // Exponential backoff
160
- logger.warn(`Attempt ${attempt}/${maxRetries} failed for '${operationName}', retrying in ${delay}ms`, {
161
- error: String(error),
162
- });
163
- await new Promise((resolve) => setTimeout(resolve, delay));
164
- }
165
- }
166
- ErrorHandler.handle(lastError, `${operationName} (after ${maxRetries} attempts)`);
167
- }
168
- static createCircuitBreaker(operation, operationName, threshold = 5) {
169
- let failures = 0;
170
- let lastFailure = 0;
171
- const resetTimeout = 30000; // 30 seconds
172
- return async () => {
173
- const now = Date.now();
174
- // Reset circuit breaker after timeout
175
- if (now - lastFailure > resetTimeout) {
176
- failures = 0;
177
- }
178
- // Circuit is open (too many failures)
179
- if (failures >= threshold) {
180
- throw new StackMemoryError(ErrorCode.OPERATION_FAILED, `Circuit breaker open for '${operationName}'`, `Operation temporarily unavailable. Please try again later.`, { operationName, failures, threshold }, true);
181
- }
182
- try {
183
- const result = await operation();
184
- failures = 0; // Reset on success
185
- return result;
186
- }
187
- catch (error) {
188
- failures++;
189
- lastFailure = now;
190
- throw error;
191
- }
192
- };
193
- }
194
- }
195
- // Utility functions for common error scenarios
196
- export const validateInput = (value, name, validator) => {
197
- if (!validator(value)) {
198
- throw new StackMemoryError(ErrorCode.INVALID_INPUT, `Invalid ${name}: ${String(value)}`, `Please provide a valid ${name}.`, { name, value }, true);
199
- }
200
- };
201
- export const validateEmail = (email) => {
202
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
203
- if (!emailRegex.test(email) || email.length > 254) {
204
- throw new StackMemoryError(ErrorCode.INVALID_INPUT, `Invalid email format: ${email}`, 'Please provide a valid email address.', { email }, true);
205
- }
206
- };
207
- export const validatePath = (filePath) => {
208
- if (!filePath || filePath.includes('..') || filePath.includes('\0')) {
209
- throw new StackMemoryError(ErrorCode.INVALID_INPUT, `Invalid path: ${filePath}`, 'Invalid file path provided.', { path: filePath }, true);
210
- }
211
- };
212
- //# sourceMappingURL=error-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/core/error-handler.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Tests for error handling system
3
- */
4
- export {};
5
- //# sourceMappingURL=error-handling.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-handling.test.d.ts","sourceRoot":"","sources":["../../../../../src/core/errors/__tests__/error-handling.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,239 +0,0 @@
1
- /**
2
- * Tests for error handling system
3
- */
4
- import { describe, it, expect, vi, beforeEach } from 'vitest';
5
- import { StackMemoryError, DatabaseError, FrameError, ValidationError, ErrorCode, isRetryableError, getErrorMessage, wrapError, } from '../index.js';
6
- import { retry, CircuitBreaker, withFallback, calculateBackoff, CircuitState, withTimeout, gracefulDegrade, } from '../recovery.js';
7
- describe('Error Classes', () => {
8
- describe('StackMemoryError', () => {
9
- it('should create error with all properties', () => {
10
- const error = new StackMemoryError({
11
- code: ErrorCode.INTERNAL_ERROR,
12
- message: 'Test error',
13
- context: { key: 'value' },
14
- isRetryable: true,
15
- httpStatus: 500,
16
- });
17
- expect(error.code).toBe(ErrorCode.INTERNAL_ERROR);
18
- expect(error.message).toBe('Test error');
19
- expect(error.context).toEqual({ key: 'value' });
20
- expect(error.isRetryable).toBe(true);
21
- expect(error.httpStatus).toBe(500);
22
- expect(error.timestamp).toBeInstanceOf(Date);
23
- });
24
- it('should serialize to JSON correctly', () => {
25
- const error = new StackMemoryError({
26
- code: ErrorCode.DB_CONNECTION_FAILED,
27
- message: 'Connection failed',
28
- });
29
- const json = error.toJSON();
30
- expect(json.code).toBe(ErrorCode.DB_CONNECTION_FAILED);
31
- expect(json.message).toBe('Connection failed');
32
- expect(json.timestamp).toBeDefined();
33
- });
34
- });
35
- describe('DatabaseError', () => {
36
- it('should be retryable for connection failures', () => {
37
- const error = new DatabaseError('Connection lost', ErrorCode.DB_CONNECTION_FAILED);
38
- expect(error.isRetryable).toBe(true);
39
- });
40
- it('should not be retryable for query failures', () => {
41
- const error = new DatabaseError('Invalid SQL', ErrorCode.DB_QUERY_FAILED);
42
- expect(error.isRetryable).toBe(false);
43
- });
44
- });
45
- describe('Error Helpers', () => {
46
- it('should identify retryable errors', () => {
47
- const retryable = new DatabaseError('Connection lost', ErrorCode.DB_CONNECTION_FAILED);
48
- const nonRetryable = new ValidationError('Invalid input');
49
- expect(isRetryableError(retryable)).toBe(true);
50
- expect(isRetryableError(nonRetryable)).toBe(false);
51
- });
52
- it('should identify retryable network errors', () => {
53
- const networkError = new Error('ECONNREFUSED');
54
- const timeoutError = new Error('Request timeout');
55
- expect(isRetryableError(networkError)).toBe(true);
56
- expect(isRetryableError(timeoutError)).toBe(true);
57
- });
58
- it('should extract error messages safely', () => {
59
- expect(getErrorMessage(new Error('Test'))).toBe('Test');
60
- expect(getErrorMessage('String error')).toBe('String error');
61
- expect(getErrorMessage({ message: 'Object error' })).toBe('Object error');
62
- expect(getErrorMessage(null)).toBe('An unknown error occurred');
63
- expect(getErrorMessage(undefined)).toBe('An unknown error occurred');
64
- });
65
- it('should wrap errors correctly', () => {
66
- const originalError = new Error('Original');
67
- const wrapped = wrapError(originalError, 'Wrapped message', ErrorCode.INTERNAL_ERROR, { extra: 'context' });
68
- expect(wrapped).toBeInstanceOf(StackMemoryError);
69
- expect(wrapped.cause).toBe(originalError);
70
- expect(wrapped.context).toEqual({ extra: 'context' });
71
- });
72
- it('should not double-wrap StackMemoryErrors', () => {
73
- const stackError = new FrameError('Frame error');
74
- const wrapped = wrapError(stackError, 'Default');
75
- expect(wrapped).toBe(stackError);
76
- });
77
- });
78
- });
79
- describe('Recovery Utilities', () => {
80
- beforeEach(() => {
81
- vi.clearAllMocks();
82
- });
83
- describe('Retry Logic', () => {
84
- it('should retry on failure', async () => {
85
- let attempts = 0;
86
- const fn = vi.fn(async () => {
87
- attempts++;
88
- if (attempts < 3) {
89
- throw new DatabaseError('Connection lost', ErrorCode.DB_CONNECTION_FAILED);
90
- }
91
- return 'success';
92
- });
93
- const result = await retry(fn, {
94
- maxAttempts: 3,
95
- initialDelay: 10,
96
- });
97
- expect(result).toBe('success');
98
- expect(fn).toHaveBeenCalledTimes(3);
99
- });
100
- it('should not retry non-retryable errors', async () => {
101
- const fn = vi.fn(async () => {
102
- throw new ValidationError('Invalid data');
103
- });
104
- await expect(retry(fn, { maxAttempts: 3 })).rejects.toThrow('Invalid data');
105
- expect(fn).toHaveBeenCalledTimes(1);
106
- });
107
- it('should respect timeout', async () => {
108
- const fn = vi.fn(async () => {
109
- await new Promise(resolve => setTimeout(resolve, 1000));
110
- return 'slow';
111
- });
112
- await expect(retry(fn, { timeout: 50 })).rejects.toThrow('Operation timed out');
113
- });
114
- it('should calculate backoff correctly', () => {
115
- const delay1 = calculateBackoff(1, 100, 10000, 2);
116
- const delay2 = calculateBackoff(2, 100, 10000, 2);
117
- const delay3 = calculateBackoff(3, 100, 10000, 2);
118
- // Base delays without jitter
119
- expect(delay1).toBeGreaterThanOrEqual(100);
120
- expect(delay1).toBeLessThanOrEqual(125); // With max 25% jitter
121
- expect(delay2).toBeGreaterThanOrEqual(200);
122
- expect(delay2).toBeLessThanOrEqual(250);
123
- expect(delay3).toBeGreaterThanOrEqual(400);
124
- expect(delay3).toBeLessThanOrEqual(500);
125
- });
126
- });
127
- describe('Circuit Breaker', () => {
128
- it('should open after threshold failures', async () => {
129
- const breaker = new CircuitBreaker('test', {
130
- failureThreshold: 2,
131
- resetTimeout: 100,
132
- });
133
- const failingFn = vi.fn(async () => {
134
- throw new Error('Failed');
135
- });
136
- // First two failures
137
- await expect(breaker.execute(failingFn)).rejects.toThrow('Failed');
138
- await expect(breaker.execute(failingFn)).rejects.toThrow('Failed');
139
- // Circuit should be open
140
- expect(breaker.getState()).toBe(CircuitState.OPEN);
141
- // Next call should fail immediately
142
- await expect(breaker.execute(failingFn)).rejects.toThrow('Circuit breaker test is OPEN');
143
- expect(failingFn).toHaveBeenCalledTimes(2); // Not called on open circuit
144
- });
145
- it('should transition to half-open after timeout', async () => {
146
- const breaker = new CircuitBreaker('test', {
147
- failureThreshold: 1,
148
- resetTimeout: 50,
149
- halfOpenRequests: 1,
150
- });
151
- const fn = vi.fn(async () => {
152
- throw new Error('Failed');
153
- });
154
- // Open the circuit
155
- await expect(breaker.execute(fn)).rejects.toThrow();
156
- expect(breaker.getState()).toBe(CircuitState.OPEN);
157
- // Wait for reset timeout
158
- await new Promise(resolve => setTimeout(resolve, 60));
159
- // Should allow one request in half-open
160
- const successFn = vi.fn(async () => 'success');
161
- const result = await breaker.execute(successFn);
162
- expect(result).toBe('success');
163
- expect(breaker.getState()).toBe(CircuitState.CLOSED);
164
- });
165
- it('should reset manually', () => {
166
- const breaker = new CircuitBreaker('test', {
167
- failureThreshold: 1,
168
- });
169
- breaker.reset();
170
- expect(breaker.getState()).toBe(CircuitState.CLOSED);
171
- });
172
- });
173
- describe('Fallback Mechanism', () => {
174
- it('should use fallback on primary failure', async () => {
175
- const primary = vi.fn(async () => {
176
- throw new Error('Primary failed');
177
- });
178
- const fallback1 = vi.fn(async () => 'fallback result');
179
- const result = await withFallback(primary, [fallback1]);
180
- expect(result).toBe('fallback result');
181
- expect(primary).toHaveBeenCalledTimes(1);
182
- expect(fallback1).toHaveBeenCalledTimes(1);
183
- });
184
- it('should try multiple fallbacks', async () => {
185
- const primary = vi.fn(async () => {
186
- throw new Error('Primary failed');
187
- });
188
- const fallback1 = vi.fn(async () => {
189
- throw new Error('Fallback1 failed');
190
- });
191
- const fallback2 = vi.fn(async () => 'fallback2 result');
192
- const result = await withFallback(primary, [fallback1, fallback2]);
193
- expect(result).toBe('fallback2 result');
194
- expect(fallback1).toHaveBeenCalledTimes(1);
195
- expect(fallback2).toHaveBeenCalledTimes(1);
196
- });
197
- it('should throw if all attempts fail', async () => {
198
- const primary = vi.fn(async () => {
199
- throw new Error('Primary');
200
- });
201
- const fallback = vi.fn(async () => {
202
- throw new Error('Fallback');
203
- });
204
- await expect(withFallback(primary, [fallback])).rejects.toThrow('All attempts failed');
205
- });
206
- });
207
- describe('Timeout Wrapper', () => {
208
- it('should timeout long operations', async () => {
209
- const slowFn = async () => {
210
- await new Promise(resolve => setTimeout(resolve, 1000));
211
- return 'slow';
212
- };
213
- await expect(withTimeout(slowFn, 50, 'Custom timeout')).rejects.toThrow('Custom timeout');
214
- });
215
- it('should complete fast operations', async () => {
216
- const fastFn = async () => {
217
- await new Promise(resolve => setTimeout(resolve, 10));
218
- return 'fast';
219
- };
220
- const result = await withTimeout(fastFn, 100);
221
- expect(result).toBe('fast');
222
- });
223
- });
224
- describe('Graceful Degradation', () => {
225
- it('should return default on failure', async () => {
226
- const failingFn = vi.fn(async () => {
227
- throw new Error('Failed');
228
- });
229
- const result = await gracefulDegrade(failingFn, 'default');
230
- expect(result).toBe('default');
231
- });
232
- it('should return result on success', async () => {
233
- const successFn = vi.fn(async () => 'success');
234
- const result = await gracefulDegrade(successFn, 'default');
235
- expect(result).toBe('success');
236
- });
237
- });
238
- });
239
- //# sourceMappingURL=error-handling.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-handling.test.js","sourceRoot":"","sources":["../../../../../src/core/errors/__tests__/error-handling.test.ts"],"names":[],"mappings":"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"}