@stackmemoryai/stackmemory 0.2.6 → 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 (406) hide show
  1. package/README.md +262 -83
  2. package/dist/scripts/cancel-duplicate-tasks.d.ts +7 -0
  3. package/dist/scripts/cancel-duplicate-tasks.d.ts.map +1 -0
  4. package/dist/scripts/cancel-duplicate-tasks.js +172 -0
  5. package/dist/scripts/cancel-duplicate-tasks.js.map +1 -0
  6. package/dist/scripts/list-linear-tasks.d.ts +6 -0
  7. package/dist/scripts/list-linear-tasks.d.ts.map +1 -0
  8. package/dist/scripts/list-linear-tasks.js +121 -0
  9. package/dist/scripts/list-linear-tasks.js.map +1 -0
  10. package/dist/scripts/merge-linear-duplicates-safe.d.ts +7 -0
  11. package/dist/scripts/merge-linear-duplicates-safe.d.ts.map +1 -0
  12. package/dist/scripts/merge-linear-duplicates-safe.js +267 -0
  13. package/dist/scripts/merge-linear-duplicates-safe.js.map +1 -0
  14. package/dist/scripts/show-linear-summary.d.ts +6 -0
  15. package/dist/scripts/show-linear-summary.d.ts.map +1 -0
  16. package/dist/scripts/show-linear-summary.js +120 -0
  17. package/dist/scripts/show-linear-summary.js.map +1 -0
  18. package/dist/scripts/status.js +6 -2
  19. package/dist/scripts/status.js.map +1 -1
  20. package/dist/src/cli/auto-detect.d.ts +61 -0
  21. package/dist/src/cli/auto-detect.d.ts.map +1 -0
  22. package/dist/src/cli/auto-detect.js +350 -0
  23. package/dist/src/cli/auto-detect.js.map +1 -0
  24. package/dist/src/cli/claude-sm.d.ts +7 -0
  25. package/dist/src/cli/claude-sm.d.ts.map +1 -0
  26. package/dist/src/cli/claude-sm.js +357 -0
  27. package/dist/src/cli/claude-sm.js.map +1 -0
  28. package/dist/src/cli/commands/config.d.ts +6 -0
  29. package/dist/src/cli/commands/config.d.ts.map +1 -0
  30. package/dist/src/cli/commands/config.js +224 -0
  31. package/dist/src/cli/commands/config.js.map +1 -0
  32. package/dist/src/cli/commands/context.d.ts +7 -0
  33. package/dist/src/cli/commands/context.d.ts.map +1 -0
  34. package/dist/src/cli/commands/context.js +365 -0
  35. package/dist/src/cli/commands/context.js.map +1 -0
  36. package/dist/src/cli/commands/linear-test.d.ts +6 -0
  37. package/dist/src/cli/commands/linear-test.d.ts.map +1 -0
  38. package/dist/src/cli/commands/linear-test.js +123 -0
  39. package/dist/src/cli/commands/linear-test.js.map +1 -0
  40. package/dist/src/cli/commands/linear.d.ts +6 -0
  41. package/dist/src/cli/commands/linear.d.ts.map +1 -0
  42. package/dist/src/cli/commands/linear.js +393 -0
  43. package/dist/src/cli/commands/linear.js.map +1 -0
  44. package/dist/src/cli/commands/log.d.ts +7 -0
  45. package/dist/src/cli/commands/log.d.ts.map +1 -0
  46. package/dist/src/cli/commands/log.js +168 -0
  47. package/dist/src/cli/commands/log.js.map +1 -0
  48. package/dist/src/cli/commands/onboard.d.ts +8 -0
  49. package/dist/src/cli/commands/onboard.d.ts.map +1 -0
  50. package/dist/src/cli/commands/onboard.js +363 -0
  51. package/dist/src/cli/commands/onboard.js.map +1 -0
  52. package/dist/src/cli/commands/projects.js +1 -1
  53. package/dist/src/cli/commands/projects.js.map +1 -1
  54. package/dist/src/cli/commands/search.d.ts +7 -0
  55. package/dist/src/cli/commands/search.d.ts.map +1 -0
  56. package/dist/src/cli/commands/search.js +162 -0
  57. package/dist/src/cli/commands/search.js.map +1 -0
  58. package/dist/src/cli/commands/session.d.ts +7 -0
  59. package/dist/src/cli/commands/session.d.ts.map +1 -0
  60. package/dist/src/cli/commands/session.js +222 -0
  61. package/dist/src/cli/commands/session.js.map +1 -0
  62. package/dist/src/cli/commands/tasks.d.ts +7 -0
  63. package/dist/src/cli/commands/tasks.d.ts.map +1 -0
  64. package/dist/src/cli/commands/tasks.js +229 -0
  65. package/dist/src/cli/commands/tasks.js.map +1 -0
  66. package/dist/src/cli/commands/webhook.d.ts +3 -0
  67. package/dist/src/cli/commands/webhook.d.ts.map +1 -0
  68. package/dist/src/cli/commands/webhook.js +157 -0
  69. package/dist/src/cli/commands/webhook.js.map +1 -0
  70. package/dist/src/cli/commands/worktree.d.ts +8 -0
  71. package/dist/src/cli/commands/worktree.d.ts.map +1 -0
  72. package/dist/src/cli/commands/worktree.js +339 -0
  73. package/dist/src/cli/commands/worktree.js.map +1 -0
  74. package/dist/src/cli/index.d.ts +2 -1
  75. package/dist/src/cli/index.d.ts.map +1 -1
  76. package/dist/src/cli/index.js +337 -50
  77. package/dist/src/cli/index.js.map +1 -1
  78. package/dist/src/cli/utils/viewer.d.ts.map +1 -1
  79. package/dist/src/cli/utils/viewer.js +3 -1
  80. package/dist/src/cli/utils/viewer.js.map +1 -1
  81. package/dist/src/core/config/config-manager.d.ts +95 -0
  82. package/dist/src/core/config/config-manager.d.ts.map +1 -0
  83. package/dist/src/core/config/config-manager.js +359 -0
  84. package/dist/src/core/config/config-manager.js.map +1 -0
  85. package/dist/src/core/config/types.d.ts +72 -0
  86. package/dist/src/core/config/types.d.ts.map +1 -0
  87. package/dist/src/core/config/types.js +127 -0
  88. package/dist/src/core/config/types.js.map +1 -0
  89. package/dist/src/core/context/auto-context.d.ts +22 -0
  90. package/dist/src/core/context/auto-context.d.ts.map +1 -0
  91. package/dist/src/core/context/auto-context.js +77 -0
  92. package/dist/src/core/context/auto-context.js.map +1 -0
  93. package/dist/src/core/context/compaction-handler.d.ts +119 -0
  94. package/dist/src/core/context/compaction-handler.d.ts.map +1 -0
  95. package/dist/src/core/context/compaction-handler.js +306 -0
  96. package/dist/src/core/context/compaction-handler.js.map +1 -0
  97. package/dist/src/core/context/frame-manager.d.ts +4 -0
  98. package/dist/src/core/context/frame-manager.d.ts.map +1 -1
  99. package/dist/src/core/context/frame-manager.js +350 -144
  100. package/dist/src/core/context/frame-manager.js.map +1 -1
  101. package/dist/src/core/context/model-aware-compaction.d.ts +101 -0
  102. package/dist/src/core/context/model-aware-compaction.d.ts.map +1 -0
  103. package/dist/src/core/context/model-aware-compaction.js +616 -0
  104. package/dist/src/core/context/model-aware-compaction.js.map +1 -0
  105. package/dist/src/core/errors/index.d.ts +135 -0
  106. package/dist/src/core/errors/index.d.ts.map +1 -0
  107. package/dist/src/core/errors/index.js +274 -0
  108. package/dist/src/core/errors/index.js.map +1 -0
  109. package/dist/src/core/errors/recovery.d.ts +86 -0
  110. package/dist/src/core/errors/recovery.d.ts.map +1 -0
  111. package/dist/src/core/errors/recovery.js +274 -0
  112. package/dist/src/core/errors/recovery.js.map +1 -0
  113. package/dist/src/core/projects/project-manager.d.ts.map +1 -1
  114. package/dist/src/core/projects/project-manager.js +240 -122
  115. package/dist/src/core/projects/project-manager.js.map +1 -1
  116. package/dist/src/core/query/query-parser.d.ts +104 -0
  117. package/dist/src/core/query/query-parser.d.ts.map +1 -0
  118. package/dist/src/core/query/query-parser.js +347 -0
  119. package/dist/src/core/query/query-parser.js.map +1 -0
  120. package/dist/src/core/retrieval/index.d.ts +8 -0
  121. package/dist/src/core/retrieval/index.d.ts.map +1 -0
  122. package/dist/src/core/retrieval/index.js +8 -0
  123. package/dist/src/core/retrieval/index.js.map +1 -0
  124. package/dist/src/core/retrieval/llm-context-retrieval.d.ts +71 -0
  125. package/dist/src/core/retrieval/llm-context-retrieval.d.ts.map +1 -0
  126. package/dist/src/core/retrieval/llm-context-retrieval.js +545 -0
  127. package/dist/src/core/retrieval/llm-context-retrieval.js.map +1 -0
  128. package/dist/src/core/retrieval/summary-generator.d.ts +63 -0
  129. package/dist/src/core/retrieval/summary-generator.d.ts.map +1 -0
  130. package/dist/src/core/retrieval/summary-generator.js +622 -0
  131. package/dist/src/core/retrieval/summary-generator.js.map +1 -0
  132. package/dist/src/core/retrieval/types.d.ts +257 -0
  133. package/dist/src/core/retrieval/types.d.ts.map +1 -0
  134. package/dist/src/core/retrieval/types.js +18 -0
  135. package/dist/src/core/retrieval/types.js.map +1 -0
  136. package/dist/src/core/session/index.d.ts +2 -0
  137. package/dist/src/core/session/index.d.ts.map +1 -0
  138. package/dist/src/core/session/index.js +2 -0
  139. package/dist/src/core/session/index.js.map +1 -0
  140. package/dist/src/core/session/session-manager.d.ts +69 -0
  141. package/dist/src/core/session/session-manager.d.ts.map +1 -0
  142. package/dist/src/core/session/session-manager.js +311 -0
  143. package/dist/src/core/session/session-manager.js.map +1 -0
  144. package/dist/src/core/trace/trace-detector.d.ts +108 -0
  145. package/dist/src/core/trace/trace-detector.d.ts.map +1 -0
  146. package/dist/src/core/trace/trace-detector.demo.d.ts +5 -0
  147. package/dist/src/core/trace/trace-detector.demo.d.ts.map +1 -0
  148. package/dist/src/core/trace/trace-detector.demo.js +145 -0
  149. package/dist/src/core/trace/trace-detector.demo.js.map +1 -0
  150. package/dist/src/core/trace/trace-detector.js +425 -0
  151. package/dist/src/core/trace/trace-detector.js.map +1 -0
  152. package/dist/src/core/trace/trace-store.d.ts +60 -0
  153. package/dist/src/core/trace/trace-store.d.ts.map +1 -0
  154. package/dist/src/core/trace/trace-store.js +323 -0
  155. package/dist/src/core/trace/trace-store.js.map +1 -0
  156. package/dist/src/core/trace/types.d.ts +81 -0
  157. package/dist/src/core/trace/types.d.ts.map +1 -0
  158. package/dist/src/core/trace/types.js +70 -0
  159. package/dist/src/core/trace/types.js.map +1 -0
  160. package/dist/src/core/utils/update-checker.d.ts.map +1 -1
  161. package/dist/src/core/utils/update-checker.js +82 -25
  162. package/dist/src/core/utils/update-checker.js.map +1 -1
  163. package/dist/src/core/worktree/worktree-manager.d.ts +110 -0
  164. package/dist/src/core/worktree/worktree-manager.d.ts.map +1 -0
  165. package/dist/src/core/worktree/worktree-manager.js +456 -0
  166. package/dist/src/core/worktree/worktree-manager.js.map +1 -0
  167. package/dist/src/features/analytics/core/analytics-service.d.ts +6 -0
  168. package/dist/src/features/analytics/core/analytics-service.d.ts.map +1 -1
  169. package/dist/src/features/analytics/core/analytics-service.js +125 -10
  170. package/dist/src/features/analytics/core/analytics-service.js.map +1 -1
  171. package/dist/src/features/analytics/queries/metrics-queries.d.ts.map +1 -1
  172. package/dist/src/features/analytics/queries/metrics-queries.js +220 -163
  173. package/dist/src/features/analytics/queries/metrics-queries.js.map +1 -1
  174. package/dist/src/features/browser/browser-mcp.d.ts.map +1 -1
  175. package/dist/src/features/browser/browser-mcp.js +3 -0
  176. package/dist/src/features/browser/browser-mcp.js.map +1 -1
  177. package/dist/src/features/tasks/pebbles-task-store.d.ts +4 -0
  178. package/dist/src/features/tasks/pebbles-task-store.d.ts.map +1 -1
  179. package/dist/src/features/tasks/pebbles-task-store.js +299 -141
  180. package/dist/src/features/tasks/pebbles-task-store.js.map +1 -1
  181. package/dist/src/integrations/linear/client.d.ts +28 -1
  182. package/dist/src/integrations/linear/client.d.ts.map +1 -1
  183. package/dist/src/integrations/linear/client.js +87 -0
  184. package/dist/src/integrations/linear/client.js.map +1 -1
  185. package/dist/src/integrations/linear/sync-manager.d.ts +76 -0
  186. package/dist/src/integrations/linear/sync-manager.d.ts.map +1 -0
  187. package/dist/src/integrations/linear/sync-manager.js +223 -0
  188. package/dist/src/integrations/linear/sync-manager.js.map +1 -0
  189. package/dist/src/integrations/linear/sync-service.d.ts +25 -0
  190. package/dist/src/integrations/linear/sync-service.d.ts.map +1 -0
  191. package/dist/src/integrations/linear/sync-service.js +198 -0
  192. package/dist/src/integrations/linear/sync-service.js.map +1 -0
  193. package/dist/src/integrations/linear/sync.d.ts +23 -1
  194. package/dist/src/integrations/linear/sync.d.ts.map +1 -1
  195. package/dist/src/integrations/linear/sync.js +156 -9
  196. package/dist/src/integrations/linear/sync.js.map +1 -1
  197. package/dist/src/integrations/linear/types.d.ts +75 -0
  198. package/dist/src/integrations/linear/types.d.ts.map +1 -0
  199. package/dist/src/integrations/linear/types.js +2 -0
  200. package/dist/src/integrations/linear/types.js.map +1 -0
  201. package/dist/src/integrations/linear/webhook-server.d.ts +32 -0
  202. package/dist/src/integrations/linear/webhook-server.d.ts.map +1 -0
  203. package/dist/src/integrations/linear/webhook-server.js +188 -0
  204. package/dist/src/integrations/linear/webhook-server.js.map +1 -0
  205. package/dist/src/integrations/linear/webhook.d.ts +95 -0
  206. package/dist/src/integrations/linear/webhook.d.ts.map +1 -0
  207. package/dist/src/integrations/linear/webhook.js +204 -0
  208. package/dist/src/integrations/linear/webhook.js.map +1 -0
  209. package/dist/src/integrations/mcp/server.d.ts +14 -0
  210. package/dist/src/integrations/mcp/server.d.ts.map +1 -1
  211. package/dist/src/integrations/mcp/server.js +849 -61
  212. package/dist/src/integrations/mcp/server.js.map +1 -1
  213. package/dist/src/integrations/mcp/trace-test.d.ts +5 -0
  214. package/dist/src/integrations/mcp/trace-test.d.ts.map +1 -0
  215. package/dist/src/integrations/mcp/trace-test.js +54 -0
  216. package/dist/src/integrations/mcp/trace-test.js.map +1 -0
  217. package/dist/src/servers/production/auth-middleware.d.ts +2 -2
  218. package/dist/src/servers/production/auth-middleware.d.ts.map +1 -1
  219. package/dist/src/servers/production/auth-middleware.js +1 -1
  220. package/dist/src/servers/production/auth-middleware.js.map +1 -1
  221. package/dist/src/services/config-service.d.ts +44 -0
  222. package/dist/src/services/config-service.d.ts.map +1 -0
  223. package/dist/src/services/config-service.js +61 -0
  224. package/dist/src/services/config-service.js.map +1 -0
  225. package/dist/src/services/context-service.d.ts +17 -0
  226. package/dist/src/services/context-service.d.ts.map +1 -0
  227. package/dist/src/services/context-service.js +88 -0
  228. package/dist/src/services/context-service.js.map +1 -0
  229. package/dist/src/types/task.d.ts +27 -0
  230. package/dist/src/types/task.d.ts.map +1 -0
  231. package/dist/src/types/task.js +2 -0
  232. package/dist/src/types/task.js.map +1 -0
  233. package/dist/src/utils/logger.d.ts +13 -0
  234. package/dist/src/utils/logger.d.ts.map +1 -0
  235. package/dist/src/utils/logger.js +52 -0
  236. package/dist/src/utils/logger.js.map +1 -0
  237. package/package.json +24 -10
  238. package/dist/attention-scoring/src/attention-tracker.d.ts +0 -79
  239. package/dist/attention-scoring/src/attention-tracker.d.ts.map +0 -1
  240. package/dist/attention-scoring/src/attention-tracker.js +0 -488
  241. package/dist/attention-scoring/src/attention-tracker.js.map +0 -1
  242. package/dist/attention-scoring/src/mcp-integration.d.ts +0 -56
  243. package/dist/attention-scoring/src/mcp-integration.d.ts.map +0 -1
  244. package/dist/attention-scoring/src/mcp-integration.js +0 -369
  245. package/dist/attention-scoring/src/mcp-integration.js.map +0 -1
  246. package/dist/index.js +0 -382
  247. package/dist/p2p-sync/src/p2p-sync.d.ts +0 -81
  248. package/dist/p2p-sync/src/p2p-sync.d.ts.map +0 -1
  249. package/dist/p2p-sync/src/p2p-sync.js +0 -457
  250. package/dist/p2p-sync/src/p2p-sync.js.map +0 -1
  251. package/dist/p2p-sync/src/team-context-sync.d.ts +0 -99
  252. package/dist/p2p-sync/src/team-context-sync.d.ts.map +0 -1
  253. package/dist/p2p-sync/src/team-context-sync.js +0 -491
  254. package/dist/p2p-sync/src/team-context-sync.js.map +0 -1
  255. package/dist/src/analytics/api/analytics-api.d.ts +0 -24
  256. package/dist/src/analytics/api/analytics-api.d.ts.map +0 -1
  257. package/dist/src/analytics/api/analytics-api.js +0 -279
  258. package/dist/src/analytics/api/analytics-api.js.map +0 -1
  259. package/dist/src/analytics/core/analytics-service.d.ts +0 -23
  260. package/dist/src/analytics/core/analytics-service.d.ts.map +0 -1
  261. package/dist/src/analytics/core/analytics-service.js +0 -160
  262. package/dist/src/analytics/core/analytics-service.js.map +0 -1
  263. package/dist/src/analytics/index.d.ts +0 -12
  264. package/dist/src/analytics/index.d.ts.map +0 -1
  265. package/dist/src/analytics/index.js +0 -11
  266. package/dist/src/analytics/index.js.map +0 -1
  267. package/dist/src/analytics/queries/metrics-queries.d.ts +0 -11
  268. package/dist/src/analytics/queries/metrics-queries.d.ts.map +0 -1
  269. package/dist/src/analytics/queries/metrics-queries.js +0 -179
  270. package/dist/src/analytics/queries/metrics-queries.js.map +0 -1
  271. package/dist/src/analytics/types/metrics.d.ts +0 -60
  272. package/dist/src/analytics/types/metrics.d.ts.map +0 -1
  273. package/dist/src/analytics/types/metrics.js +0 -2
  274. package/dist/src/analytics/types/metrics.js.map +0 -1
  275. package/dist/src/beads/beads-task-store.d.ts +0 -117
  276. package/dist/src/beads/beads-task-store.d.ts.map +0 -1
  277. package/dist/src/beads/beads-task-store.js +0 -318
  278. package/dist/src/beads/beads-task-store.js.map +0 -1
  279. package/dist/src/beads/task-aware-context.d.ts +0 -103
  280. package/dist/src/beads/task-aware-context.d.ts.map +0 -1
  281. package/dist/src/beads/task-aware-context.js +0 -395
  282. package/dist/src/beads/task-aware-context.js.map +0 -1
  283. package/dist/src/beads-task-store.d.ts +0 -117
  284. package/dist/src/beads-task-store.d.ts.map +0 -1
  285. package/dist/src/beads-task-store.js +0 -318
  286. package/dist/src/beads-task-store.js.map +0 -1
  287. package/dist/src/cli/analytics-viewer.d.ts +0 -3
  288. package/dist/src/cli/analytics-viewer.d.ts.map +0 -1
  289. package/dist/src/cli/analytics-viewer.js +0 -89
  290. package/dist/src/cli/analytics-viewer.js.map +0 -1
  291. package/dist/src/cli/cli.d.ts +0 -7
  292. package/dist/src/cli/cli.d.ts.map +0 -1
  293. package/dist/src/cli/cli.js +0 -704
  294. package/dist/src/cli/cli.js.map +0 -1
  295. package/dist/src/cli/project-commands.d.ts +0 -8
  296. package/dist/src/cli/project-commands.d.ts.map +0 -1
  297. package/dist/src/cli/project-commands.js +0 -212
  298. package/dist/src/cli/project-commands.js.map +0 -1
  299. package/dist/src/cli.d.ts +0 -7
  300. package/dist/src/cli.d.ts.map +0 -1
  301. package/dist/src/cli.js +0 -73
  302. package/dist/src/cli.js.map +0 -1
  303. package/dist/src/core/error-handler.d.ts +0 -46
  304. package/dist/src/core/error-handler.d.ts.map +0 -1
  305. package/dist/src/core/error-handler.js +0 -212
  306. package/dist/src/core/error-handler.js.map +0 -1
  307. package/dist/src/core/frame-manager.d.ts +0 -106
  308. package/dist/src/core/frame-manager.d.ts.map +0 -1
  309. package/dist/src/core/frame-manager.js +0 -387
  310. package/dist/src/core/frame-manager.js.map +0 -1
  311. package/dist/src/core/logger.d.ts +0 -24
  312. package/dist/src/core/logger.d.ts.map +0 -1
  313. package/dist/src/core/logger.js +0 -121
  314. package/dist/src/core/logger.js.map +0 -1
  315. package/dist/src/core/logger.test.d.ts +0 -2
  316. package/dist/src/core/logger.test.d.ts.map +0 -1
  317. package/dist/src/core/logger.test.js +0 -31
  318. package/dist/src/core/logger.test.js.map +0 -1
  319. package/dist/src/core/progress-tracker.d.ts +0 -95
  320. package/dist/src/core/progress-tracker.d.ts.map +0 -1
  321. package/dist/src/core/progress-tracker.js +0 -178
  322. package/dist/src/core/progress-tracker.js.map +0 -1
  323. package/dist/src/core/project-manager.d.ts +0 -130
  324. package/dist/src/core/project-manager.d.ts.map +0 -1
  325. package/dist/src/core/project-manager.js +0 -582
  326. package/dist/src/core/project-manager.js.map +0 -1
  327. package/dist/src/core/update-checker.d.ts +0 -38
  328. package/dist/src/core/update-checker.d.ts.map +0 -1
  329. package/dist/src/core/update-checker.js +0 -156
  330. package/dist/src/core/update-checker.js.map +0 -1
  331. package/dist/src/error-handler.d.ts +0 -42
  332. package/dist/src/error-handler.d.ts.map +0 -1
  333. package/dist/src/error-handler.js +0 -155
  334. package/dist/src/error-handler.js.map +0 -1
  335. package/dist/src/frame-manager.d.ts +0 -106
  336. package/dist/src/frame-manager.d.ts.map +0 -1
  337. package/dist/src/frame-manager.js +0 -361
  338. package/dist/src/frame-manager.js.map +0 -1
  339. package/dist/src/integrations/browser-mcp.d.ts +0 -94
  340. package/dist/src/integrations/browser-mcp.d.ts.map +0 -1
  341. package/dist/src/integrations/browser-mcp.js +0 -431
  342. package/dist/src/integrations/browser-mcp.js.map +0 -1
  343. package/dist/src/integrations/linear-auth.d.ts +0 -99
  344. package/dist/src/integrations/linear-auth.d.ts.map +0 -1
  345. package/dist/src/integrations/linear-auth.js +0 -319
  346. package/dist/src/integrations/linear-auth.js.map +0 -1
  347. package/dist/src/integrations/linear-auto-sync.d.ts +0 -77
  348. package/dist/src/integrations/linear-auto-sync.d.ts.map +0 -1
  349. package/dist/src/integrations/linear-auto-sync.js +0 -268
  350. package/dist/src/integrations/linear-auto-sync.js.map +0 -1
  351. package/dist/src/integrations/linear-client.d.ts +0 -86
  352. package/dist/src/integrations/linear-client.d.ts.map +0 -1
  353. package/dist/src/integrations/linear-client.js +0 -277
  354. package/dist/src/integrations/linear-client.js.map +0 -1
  355. package/dist/src/integrations/linear-config.d.ts +0 -51
  356. package/dist/src/integrations/linear-config.d.ts.map +0 -1
  357. package/dist/src/integrations/linear-config.js +0 -103
  358. package/dist/src/integrations/linear-config.js.map +0 -1
  359. package/dist/src/integrations/linear-sync.d.ts +0 -97
  360. package/dist/src/integrations/linear-sync.d.ts.map +0 -1
  361. package/dist/src/integrations/linear-sync.js +0 -391
  362. package/dist/src/integrations/linear-sync.js.map +0 -1
  363. package/dist/src/logger.d.ts +0 -24
  364. package/dist/src/logger.d.ts.map +0 -1
  365. package/dist/src/logger.js +0 -120
  366. package/dist/src/logger.js.map +0 -1
  367. package/dist/src/mcp/mcp-server.d.ts +0 -40
  368. package/dist/src/mcp/mcp-server.d.ts.map +0 -1
  369. package/dist/src/mcp/mcp-server.js +0 -828
  370. package/dist/src/mcp/mcp-server.js.map +0 -1
  371. package/dist/src/mcp-server.d.ts +0 -32
  372. package/dist/src/mcp-server.d.ts.map +0 -1
  373. package/dist/src/mcp-server.js +0 -441
  374. package/dist/src/mcp-server.js.map +0 -1
  375. package/dist/src/pebbles/pebbles-task-store.d.ts +0 -117
  376. package/dist/src/pebbles/pebbles-task-store.d.ts.map +0 -1
  377. package/dist/src/pebbles/pebbles-task-store.js +0 -335
  378. package/dist/src/pebbles/pebbles-task-store.js.map +0 -1
  379. package/dist/src/pebbles/task-aware-context.d.ts +0 -103
  380. package/dist/src/pebbles/task-aware-context.d.ts.map +0 -1
  381. package/dist/src/pebbles/task-aware-context.js +0 -412
  382. package/dist/src/pebbles/task-aware-context.js.map +0 -1
  383. package/dist/src/railway/index.d.ts +0 -7
  384. package/dist/src/railway/index.d.ts.map +0 -1
  385. package/dist/src/railway/index.js +0 -401
  386. package/dist/src/railway/index.js.map +0 -1
  387. package/dist/src/runway/auth/auth-middleware.d.ts +0 -66
  388. package/dist/src/runway/auth/auth-middleware.d.ts.map +0 -1
  389. package/dist/src/runway/auth/auth-middleware.js +0 -337
  390. package/dist/src/runway/auth/auth-middleware.js.map +0 -1
  391. package/dist/src/runway/server/runway-mcp-server.d.ts +0 -46
  392. package/dist/src/runway/server/runway-mcp-server.d.ts.map +0 -1
  393. package/dist/src/runway/server/runway-mcp-server.js +0 -601
  394. package/dist/src/runway/server/runway-mcp-server.js.map +0 -1
  395. package/dist/src/runway.bak/auth/auth-middleware.d.ts +0 -66
  396. package/dist/src/runway.bak/auth/auth-middleware.d.ts.map +0 -1
  397. package/dist/src/runway.bak/auth/auth-middleware.js +0 -337
  398. package/dist/src/runway.bak/auth/auth-middleware.js.map +0 -1
  399. package/dist/src/runway.bak/server/runway-mcp-server.d.ts +0 -46
  400. package/dist/src/runway.bak/server/runway-mcp-server.d.ts.map +0 -1
  401. package/dist/src/runway.bak/server/runway-mcp-server.js +0 -601
  402. package/dist/src/runway.bak/server/runway-mcp-server.js.map +0 -1
  403. package/dist/src/task-aware-context.d.ts +0 -103
  404. package/dist/src/task-aware-context.d.ts.map +0 -1
  405. package/dist/src/task-aware-context.js +0 -395
  406. package/dist/src/task-aware-context.js.map +0 -1
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Custom error classes for StackMemory
3
+ * Provides a hierarchy of error types for better error handling and debugging
4
+ */
5
+ export declare enum ErrorCode {
6
+ DB_CONNECTION_FAILED = "DB_001",
7
+ DB_QUERY_FAILED = "DB_002",
8
+ DB_TRANSACTION_FAILED = "DB_003",
9
+ DB_MIGRATION_FAILED = "DB_004",
10
+ DB_CONSTRAINT_VIOLATION = "DB_005",
11
+ FRAME_NOT_FOUND = "FRAME_001",
12
+ FRAME_INVALID_STATE = "FRAME_002",
13
+ FRAME_PARENT_NOT_FOUND = "FRAME_003",
14
+ FRAME_CYCLE_DETECTED = "FRAME_004",
15
+ FRAME_ALREADY_CLOSED = "FRAME_005",
16
+ TASK_NOT_FOUND = "TASK_001",
17
+ TASK_INVALID_STATE = "TASK_002",
18
+ TASK_DEPENDENCY_CONFLICT = "TASK_003",
19
+ TASK_CIRCULAR_DEPENDENCY = "TASK_004",
20
+ LINEAR_AUTH_FAILED = "LINEAR_001",
21
+ LINEAR_API_ERROR = "LINEAR_002",
22
+ LINEAR_SYNC_FAILED = "LINEAR_003",
23
+ LINEAR_WEBHOOK_FAILED = "LINEAR_004",
24
+ MCP_TOOL_NOT_FOUND = "MCP_001",
25
+ MCP_INVALID_PARAMS = "MCP_002",
26
+ MCP_EXECUTION_FAILED = "MCP_003",
27
+ MCP_RATE_LIMITED = "MCP_004",
28
+ PROJECT_NOT_FOUND = "PROJECT_001",
29
+ PROJECT_INVALID_PATH = "PROJECT_002",
30
+ PROJECT_GIT_ERROR = "PROJECT_003",
31
+ VALIDATION_FAILED = "VAL_001",
32
+ INVALID_INPUT = "VAL_002",
33
+ MISSING_REQUIRED_FIELD = "VAL_003",
34
+ TYPE_MISMATCH = "VAL_004",
35
+ INITIALIZATION_ERROR = "SYS_001",
36
+ NOT_FOUND = "SYS_002",
37
+ INTERNAL_ERROR = "SYS_001",
38
+ CONFIGURATION_ERROR = "SYS_002",
39
+ PERMISSION_DENIED = "SYS_003",
40
+ RESOURCE_EXHAUSTED = "SYS_004",
41
+ SERVICE_UNAVAILABLE = "SYS_005"
42
+ }
43
+ export interface ErrorContext {
44
+ [key: string]: unknown;
45
+ }
46
+ export interface StackMemoryErrorOptions {
47
+ code: ErrorCode;
48
+ message: string;
49
+ context?: ErrorContext;
50
+ cause?: Error;
51
+ isRetryable?: boolean;
52
+ httpStatus?: number;
53
+ }
54
+ /**
55
+ * Base error class for all StackMemory errors
56
+ */
57
+ export declare class StackMemoryError extends Error {
58
+ readonly code: ErrorCode;
59
+ readonly context?: ErrorContext;
60
+ readonly cause?: Error;
61
+ readonly isRetryable: boolean;
62
+ readonly httpStatus: number;
63
+ readonly timestamp: Date;
64
+ constructor(options: StackMemoryErrorOptions);
65
+ toJSON(): Record<string, unknown>;
66
+ }
67
+ /**
68
+ * Database-related errors
69
+ */
70
+ export declare class DatabaseError extends StackMemoryError {
71
+ constructor(message: string, code?: ErrorCode, context?: ErrorContext, cause?: Error);
72
+ }
73
+ /**
74
+ * Frame-related errors
75
+ */
76
+ export declare class FrameError extends StackMemoryError {
77
+ constructor(message: string, code?: ErrorCode, context?: ErrorContext);
78
+ }
79
+ /**
80
+ * Task-related errors
81
+ */
82
+ export declare class TaskError extends StackMemoryError {
83
+ constructor(message: string, code?: ErrorCode, context?: ErrorContext);
84
+ }
85
+ /**
86
+ * Integration errors (Linear, etc.)
87
+ */
88
+ export declare class IntegrationError extends StackMemoryError {
89
+ constructor(message: string, code?: ErrorCode, context?: ErrorContext, cause?: Error);
90
+ }
91
+ /**
92
+ * MCP-related errors
93
+ */
94
+ export declare class MCPError extends StackMemoryError {
95
+ constructor(message: string, code?: ErrorCode, context?: ErrorContext);
96
+ }
97
+ /**
98
+ * Validation errors
99
+ */
100
+ export declare class ValidationError extends StackMemoryError {
101
+ constructor(message: string, code?: ErrorCode, context?: ErrorContext);
102
+ }
103
+ /**
104
+ * Project-related errors
105
+ */
106
+ export declare class ProjectError extends StackMemoryError {
107
+ constructor(message: string, code?: ErrorCode, context?: ErrorContext);
108
+ }
109
+ /**
110
+ * System/Internal errors
111
+ */
112
+ export declare class SystemError extends StackMemoryError {
113
+ constructor(message: string, code?: ErrorCode, context?: ErrorContext, cause?: Error);
114
+ }
115
+ /**
116
+ * Helper function to determine if an error is retryable
117
+ */
118
+ export declare function isRetryableError(error: unknown): boolean;
119
+ /**
120
+ * Helper function to safely extract error message
121
+ */
122
+ export declare function getErrorMessage(error: unknown): string;
123
+ /**
124
+ * Helper function to wrap unknown errors in StackMemoryError
125
+ */
126
+ export declare function wrapError(error: unknown, defaultMessage: string, code?: ErrorCode, context?: ErrorContext): StackMemoryError;
127
+ /**
128
+ * Type guard to check if error is a StackMemoryError
129
+ */
130
+ export declare function isStackMemoryError(error: unknown): error is StackMemoryError;
131
+ /**
132
+ * Create context-aware error handler
133
+ */
134
+ export declare function createErrorHandler(defaultContext: ErrorContext): (error: unknown, additionalContext?: ErrorContext) => StackMemoryError;
135
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/errors/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,274 @@
1
+ /**
2
+ * Custom error classes for StackMemory
3
+ * Provides a hierarchy of error types for better error handling and debugging
4
+ */
5
+ export var ErrorCode;
6
+ (function (ErrorCode) {
7
+ // Database errors (1000-1999)
8
+ ErrorCode["DB_CONNECTION_FAILED"] = "DB_001";
9
+ ErrorCode["DB_QUERY_FAILED"] = "DB_002";
10
+ ErrorCode["DB_TRANSACTION_FAILED"] = "DB_003";
11
+ ErrorCode["DB_MIGRATION_FAILED"] = "DB_004";
12
+ ErrorCode["DB_CONSTRAINT_VIOLATION"] = "DB_005";
13
+ // Frame errors (2000-2999)
14
+ ErrorCode["FRAME_NOT_FOUND"] = "FRAME_001";
15
+ ErrorCode["FRAME_INVALID_STATE"] = "FRAME_002";
16
+ ErrorCode["FRAME_PARENT_NOT_FOUND"] = "FRAME_003";
17
+ ErrorCode["FRAME_CYCLE_DETECTED"] = "FRAME_004";
18
+ ErrorCode["FRAME_ALREADY_CLOSED"] = "FRAME_005";
19
+ // Task errors (3000-3999)
20
+ ErrorCode["TASK_NOT_FOUND"] = "TASK_001";
21
+ ErrorCode["TASK_INVALID_STATE"] = "TASK_002";
22
+ ErrorCode["TASK_DEPENDENCY_CONFLICT"] = "TASK_003";
23
+ ErrorCode["TASK_CIRCULAR_DEPENDENCY"] = "TASK_004";
24
+ // Integration errors (4000-4999)
25
+ ErrorCode["LINEAR_AUTH_FAILED"] = "LINEAR_001";
26
+ ErrorCode["LINEAR_API_ERROR"] = "LINEAR_002";
27
+ ErrorCode["LINEAR_SYNC_FAILED"] = "LINEAR_003";
28
+ ErrorCode["LINEAR_WEBHOOK_FAILED"] = "LINEAR_004";
29
+ // MCP errors (5000-5999)
30
+ ErrorCode["MCP_TOOL_NOT_FOUND"] = "MCP_001";
31
+ ErrorCode["MCP_INVALID_PARAMS"] = "MCP_002";
32
+ ErrorCode["MCP_EXECUTION_FAILED"] = "MCP_003";
33
+ ErrorCode["MCP_RATE_LIMITED"] = "MCP_004";
34
+ // Project errors (6000-6999)
35
+ ErrorCode["PROJECT_NOT_FOUND"] = "PROJECT_001";
36
+ ErrorCode["PROJECT_INVALID_PATH"] = "PROJECT_002";
37
+ ErrorCode["PROJECT_GIT_ERROR"] = "PROJECT_003";
38
+ // Validation errors (7000-7999)
39
+ ErrorCode["VALIDATION_FAILED"] = "VAL_001";
40
+ ErrorCode["INVALID_INPUT"] = "VAL_002";
41
+ ErrorCode["MISSING_REQUIRED_FIELD"] = "VAL_003";
42
+ ErrorCode["TYPE_MISMATCH"] = "VAL_004";
43
+ // System errors (8000-8999)
44
+ ErrorCode["INITIALIZATION_ERROR"] = "SYS_001";
45
+ ErrorCode["NOT_FOUND"] = "SYS_002";
46
+ ErrorCode["INTERNAL_ERROR"] = "SYS_001";
47
+ ErrorCode["CONFIGURATION_ERROR"] = "SYS_002";
48
+ ErrorCode["PERMISSION_DENIED"] = "SYS_003";
49
+ ErrorCode["RESOURCE_EXHAUSTED"] = "SYS_004";
50
+ ErrorCode["SERVICE_UNAVAILABLE"] = "SYS_005";
51
+ })(ErrorCode || (ErrorCode = {}));
52
+ /**
53
+ * Base error class for all StackMemory errors
54
+ */
55
+ export class StackMemoryError extends Error {
56
+ code;
57
+ context;
58
+ cause;
59
+ isRetryable;
60
+ httpStatus;
61
+ timestamp;
62
+ constructor(options) {
63
+ super(options.message);
64
+ this.name = this.constructor.name;
65
+ this.code = options.code;
66
+ this.context = options.context;
67
+ this.cause = options.cause;
68
+ this.isRetryable = options.isRetryable ?? false;
69
+ this.httpStatus = options.httpStatus ?? 500;
70
+ this.timestamp = new Date();
71
+ // Maintains proper stack trace for where our error was thrown
72
+ if (Error.captureStackTrace) {
73
+ Error.captureStackTrace(this, this.constructor);
74
+ }
75
+ }
76
+ toJSON() {
77
+ return {
78
+ name: this.name,
79
+ code: this.code,
80
+ message: this.message,
81
+ context: this.context,
82
+ isRetryable: this.isRetryable,
83
+ httpStatus: this.httpStatus,
84
+ timestamp: this.timestamp.toISOString(),
85
+ stack: this.stack,
86
+ cause: this.cause?.message,
87
+ };
88
+ }
89
+ }
90
+ /**
91
+ * Database-related errors
92
+ */
93
+ export class DatabaseError extends StackMemoryError {
94
+ constructor(message, code = ErrorCode.DB_QUERY_FAILED, context, cause) {
95
+ super({
96
+ code,
97
+ message,
98
+ context,
99
+ cause,
100
+ isRetryable: code === ErrorCode.DB_CONNECTION_FAILED,
101
+ httpStatus: 503,
102
+ });
103
+ }
104
+ }
105
+ /**
106
+ * Frame-related errors
107
+ */
108
+ export class FrameError extends StackMemoryError {
109
+ constructor(message, code = ErrorCode.FRAME_INVALID_STATE, context) {
110
+ super({
111
+ code,
112
+ message,
113
+ context,
114
+ isRetryable: false,
115
+ httpStatus: 400,
116
+ });
117
+ }
118
+ }
119
+ /**
120
+ * Task-related errors
121
+ */
122
+ export class TaskError extends StackMemoryError {
123
+ constructor(message, code = ErrorCode.TASK_INVALID_STATE, context) {
124
+ super({
125
+ code,
126
+ message,
127
+ context,
128
+ isRetryable: false,
129
+ httpStatus: 400,
130
+ });
131
+ }
132
+ }
133
+ /**
134
+ * Integration errors (Linear, etc.)
135
+ */
136
+ export class IntegrationError extends StackMemoryError {
137
+ constructor(message, code = ErrorCode.LINEAR_API_ERROR, context, cause) {
138
+ super({
139
+ code,
140
+ message,
141
+ context,
142
+ cause,
143
+ isRetryable: true,
144
+ httpStatus: 502,
145
+ });
146
+ }
147
+ }
148
+ /**
149
+ * MCP-related errors
150
+ */
151
+ export class MCPError extends StackMemoryError {
152
+ constructor(message, code = ErrorCode.MCP_EXECUTION_FAILED, context) {
153
+ super({
154
+ code,
155
+ message,
156
+ context,
157
+ isRetryable: code === ErrorCode.MCP_RATE_LIMITED,
158
+ httpStatus: code === ErrorCode.MCP_RATE_LIMITED ? 429 : 400,
159
+ });
160
+ }
161
+ }
162
+ /**
163
+ * Validation errors
164
+ */
165
+ export class ValidationError extends StackMemoryError {
166
+ constructor(message, code = ErrorCode.VALIDATION_FAILED, context) {
167
+ super({
168
+ code,
169
+ message,
170
+ context,
171
+ isRetryable: false,
172
+ httpStatus: 400,
173
+ });
174
+ }
175
+ }
176
+ /**
177
+ * Project-related errors
178
+ */
179
+ export class ProjectError extends StackMemoryError {
180
+ constructor(message, code = ErrorCode.PROJECT_NOT_FOUND, context) {
181
+ super({
182
+ code,
183
+ message,
184
+ context,
185
+ isRetryable: false,
186
+ httpStatus: 404,
187
+ });
188
+ }
189
+ }
190
+ /**
191
+ * System/Internal errors
192
+ */
193
+ export class SystemError extends StackMemoryError {
194
+ constructor(message, code = ErrorCode.INTERNAL_ERROR, context, cause) {
195
+ super({
196
+ code,
197
+ message,
198
+ context,
199
+ cause,
200
+ isRetryable: code === ErrorCode.SERVICE_UNAVAILABLE,
201
+ httpStatus: 500,
202
+ });
203
+ }
204
+ }
205
+ /**
206
+ * Helper function to determine if an error is retryable
207
+ */
208
+ export function isRetryableError(error) {
209
+ if (error instanceof StackMemoryError) {
210
+ return error.isRetryable;
211
+ }
212
+ // Check for common retryable error patterns
213
+ if (error instanceof Error) {
214
+ const message = error.message.toLowerCase();
215
+ return (message.includes('econnrefused') ||
216
+ message.includes('timeout') ||
217
+ message.includes('enotfound') ||
218
+ message.includes('socket hang up'));
219
+ }
220
+ return false;
221
+ }
222
+ /**
223
+ * Helper function to safely extract error message
224
+ */
225
+ export function getErrorMessage(error) {
226
+ if (error instanceof Error) {
227
+ return error.message;
228
+ }
229
+ if (typeof error === 'string') {
230
+ return error;
231
+ }
232
+ if (error && typeof error === 'object' && 'message' in error) {
233
+ return String(error.message);
234
+ }
235
+ return 'An unknown error occurred';
236
+ }
237
+ /**
238
+ * Helper function to wrap unknown errors in StackMemoryError
239
+ */
240
+ export function wrapError(error, defaultMessage, code = ErrorCode.INTERNAL_ERROR, context) {
241
+ if (error instanceof StackMemoryError) {
242
+ return error;
243
+ }
244
+ const cause = error instanceof Error ? error : undefined;
245
+ const message = error instanceof Error ? error.message : defaultMessage;
246
+ return new SystemError(message, code, context, cause);
247
+ }
248
+ /**
249
+ * Type guard to check if error is a StackMemoryError
250
+ */
251
+ export function isStackMemoryError(error) {
252
+ return error instanceof StackMemoryError;
253
+ }
254
+ /**
255
+ * Create context-aware error handler
256
+ */
257
+ export function createErrorHandler(defaultContext) {
258
+ return (error, additionalContext) => {
259
+ const context = { ...defaultContext, ...additionalContext };
260
+ if (error instanceof StackMemoryError) {
261
+ // Create a new error with merged context since context is readonly
262
+ return new StackMemoryError({
263
+ code: error.code,
264
+ message: error.message,
265
+ context: { ...error.context, ...context },
266
+ cause: error.cause,
267
+ isRetryable: error.isRetryable,
268
+ httpStatus: error.httpStatus,
269
+ });
270
+ }
271
+ return wrapError(error, getErrorMessage(error), ErrorCode.INTERNAL_ERROR, context);
272
+ };
273
+ }
274
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/errors/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Error recovery utilities for StackMemory
3
+ * Provides retry logic, circuit breakers, and fallback mechanisms
4
+ */
5
+ import { ErrorContext } from './index.js';
6
+ export interface RetryOptions {
7
+ maxAttempts?: number;
8
+ initialDelay?: number;
9
+ maxDelay?: number;
10
+ backoffFactor?: number;
11
+ timeout?: number;
12
+ onRetry?: (attempt: number, error: unknown) => void;
13
+ }
14
+ export interface CircuitBreakerOptions {
15
+ failureThreshold?: number;
16
+ resetTimeout?: number;
17
+ halfOpenRequests?: number;
18
+ }
19
+ export declare enum CircuitState {
20
+ CLOSED = "closed",
21
+ OPEN = "open",
22
+ HALF_OPEN = "half_open"
23
+ }
24
+ /**
25
+ * Exponential backoff with jitter
26
+ */
27
+ export declare function calculateBackoff(attempt: number, initialDelay: number, maxDelay: number, factor: number): number;
28
+ /**
29
+ * Retry with exponential backoff
30
+ */
31
+ export declare function retry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<T>;
32
+ /**
33
+ * Circuit breaker implementation
34
+ */
35
+ export declare class CircuitBreaker<T> {
36
+ private readonly name;
37
+ private state;
38
+ private failures;
39
+ private successCount;
40
+ private lastFailTime?;
41
+ private readonly options;
42
+ constructor(name: string, options?: CircuitBreakerOptions);
43
+ execute<R = T>(fn: () => Promise<R>): Promise<R>;
44
+ private handleFailure;
45
+ getState(): CircuitState;
46
+ reset(): void;
47
+ }
48
+ /**
49
+ * Fallback with multiple strategies
50
+ */
51
+ export declare function withFallback<T>(primary: () => Promise<T>, fallbacks: Array<() => Promise<T>>, context?: ErrorContext): Promise<T>;
52
+ /**
53
+ * Bulkhead pattern - limit concurrent operations
54
+ */
55
+ export declare class Bulkhead {
56
+ private readonly name;
57
+ private readonly maxConcurrent;
58
+ private running;
59
+ private queue;
60
+ constructor(name: string, maxConcurrent: number);
61
+ execute<T>(fn: () => Promise<T>): Promise<T>;
62
+ getStats(): {
63
+ running: number;
64
+ queued: number;
65
+ maxConcurrent: number;
66
+ };
67
+ }
68
+ /**
69
+ * Timeout wrapper with proper cleanup
70
+ */
71
+ export declare function withTimeout<T>(fn: () => Promise<T>, timeoutMs: number, timeoutMessage?: string): Promise<T>;
72
+ /**
73
+ * Graceful degradation helper
74
+ */
75
+ export declare function gracefulDegrade<T, F>(fn: () => Promise<T>, defaultValue: F, logContext?: ErrorContext): Promise<T | F>;
76
+ /**
77
+ * Create a resilient operation with multiple recovery strategies
78
+ */
79
+ export declare function createResilientOperation<T>(name: string, options?: {
80
+ retry?: RetryOptions;
81
+ circuitBreaker?: CircuitBreakerOptions;
82
+ bulkhead?: number;
83
+ timeout?: number;
84
+ fallback?: () => Promise<T>;
85
+ }): (fn: () => Promise<T>) => Promise<T>;
86
+ //# sourceMappingURL=recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../../../../src/core/errors/recovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAIL,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,MAAM,CAQR;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,CAAC,CAAC,CAoDZ;AAED;;GAEG;AACH,qBAAa,cAAc,CAAC,CAAC;IAQzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPvB,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAC,CAAO;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;gBAGvC,IAAI,EAAE,MAAM,EAC7B,OAAO,GAAE,qBAA0B;IAS/B,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA0CtD,OAAO,CAAC,aAAa;IAoBrB,QAAQ,IAAI,YAAY;IAIxB,KAAK,IAAI,IAAI;CAOd;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAClC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CAmCZ;AAED;;GAEG;AACH,qBAAa,QAAQ;IAKjB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa;IALhC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,KAAK,CAAyB;gBAGnB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM;IAGlC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAoBlD,QAAQ;;;;;CAOT;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,SAAS,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,CAAC,CAAC,CAaZ;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,CAAC,EACxC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,YAAY,EAAE,CAAC,EACf,UAAU,CAAC,EAAE,YAAY,GACxB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAUhB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;CACxB,IASQ,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC,CAkChD"}