sudocode 1.1.1 → 1.1.3

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 (446) hide show
  1. package/README.md +4 -3
  2. package/package.json +8 -38
  3. package/build.js +0 -75
  4. package/node_modules/@sudocode-ai/cli/README.md +0 -330
  5. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.d.ts +0 -53
  6. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.d.ts.map +0 -1
  7. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.js +0 -274
  8. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.js.map +0 -1
  9. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.d.ts +0 -22
  10. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.d.ts.map +0 -1
  11. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.js +0 -148
  12. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.js.map +0 -1
  13. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.d.ts +0 -45
  14. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.d.ts.map +0 -1
  15. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js +0 -310
  16. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js.map +0 -1
  17. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.d.ts +0 -18
  18. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.d.ts.map +0 -1
  19. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.js +0 -61
  20. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.js.map +0 -1
  21. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.d.ts +0 -22
  22. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.d.ts.map +0 -1
  23. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.js +0 -136
  24. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.js.map +0 -1
  25. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.d.ts +0 -14
  26. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.d.ts.map +0 -1
  27. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js +0 -76
  28. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js.map +0 -1
  29. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.d.ts +0 -17
  30. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.d.ts.map +0 -1
  31. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.js +0 -99
  32. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.js.map +0 -1
  33. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.d.ts +0 -38
  34. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.d.ts.map +0 -1
  35. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.js +0 -321
  36. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.js.map +0 -1
  37. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.d.ts +0 -17
  38. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.d.ts.map +0 -1
  39. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.js +0 -131
  40. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.js.map +0 -1
  41. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.d.ts +0 -24
  42. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.d.ts.map +0 -1
  43. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.js +0 -416
  44. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.js.map +0 -1
  45. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.d.ts +0 -12
  46. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.d.ts.map +0 -1
  47. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.js +0 -78
  48. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.js.map +0 -1
  49. package/node_modules/@sudocode-ai/cli/dist/cli.d.ts +0 -6
  50. package/node_modules/@sudocode-ai/cli/dist/cli.d.ts.map +0 -1
  51. package/node_modules/@sudocode-ai/cli/dist/cli.js +0 -426
  52. package/node_modules/@sudocode-ai/cli/dist/cli.js.map +0 -1
  53. package/node_modules/@sudocode-ai/cli/dist/db.d.ts +0 -21
  54. package/node_modules/@sudocode-ai/cli/dist/db.d.ts.map +0 -1
  55. package/node_modules/@sudocode-ai/cli/dist/db.js +0 -54
  56. package/node_modules/@sudocode-ai/cli/dist/db.js.map +0 -1
  57. package/node_modules/@sudocode-ai/cli/dist/export.d.ts +0 -79
  58. package/node_modules/@sudocode-ai/cli/dist/export.d.ts.map +0 -1
  59. package/node_modules/@sudocode-ai/cli/dist/export.js +0 -195
  60. package/node_modules/@sudocode-ai/cli/dist/export.js.map +0 -1
  61. package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts +0 -30
  62. package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts.map +0 -1
  63. package/node_modules/@sudocode-ai/cli/dist/filename-generator.js +0 -93
  64. package/node_modules/@sudocode-ai/cli/dist/filename-generator.js.map +0 -1
  65. package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts +0 -26
  66. package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts.map +0 -1
  67. package/node_modules/@sudocode-ai/cli/dist/id-generator.js +0 -123
  68. package/node_modules/@sudocode-ai/cli/dist/id-generator.js.map +0 -1
  69. package/node_modules/@sudocode-ai/cli/dist/import.d.ts +0 -118
  70. package/node_modules/@sudocode-ai/cli/dist/import.d.ts.map +0 -1
  71. package/node_modules/@sudocode-ai/cli/dist/import.js +0 -608
  72. package/node_modules/@sudocode-ai/cli/dist/import.js.map +0 -1
  73. package/node_modules/@sudocode-ai/cli/dist/index.d.ts +0 -13
  74. package/node_modules/@sudocode-ai/cli/dist/index.d.ts.map +0 -1
  75. package/node_modules/@sudocode-ai/cli/dist/index.js +0 -13
  76. package/node_modules/@sudocode-ai/cli/dist/index.js.map +0 -1
  77. package/node_modules/@sudocode-ai/cli/dist/jsonl.d.ts +0 -69
  78. package/node_modules/@sudocode-ai/cli/dist/jsonl.d.ts.map +0 -1
  79. package/node_modules/@sudocode-ai/cli/dist/jsonl.js +0 -333
  80. package/node_modules/@sudocode-ai/cli/dist/jsonl.js.map +0 -1
  81. package/node_modules/@sudocode-ai/cli/dist/markdown.d.ts +0 -146
  82. package/node_modules/@sudocode-ai/cli/dist/markdown.d.ts.map +0 -1
  83. package/node_modules/@sudocode-ai/cli/dist/markdown.js +0 -357
  84. package/node_modules/@sudocode-ai/cli/dist/markdown.js.map +0 -1
  85. package/node_modules/@sudocode-ai/cli/dist/migrations.d.ts +0 -23
  86. package/node_modules/@sudocode-ai/cli/dist/migrations.d.ts.map +0 -1
  87. package/node_modules/@sudocode-ai/cli/dist/migrations.js +0 -57
  88. package/node_modules/@sudocode-ai/cli/dist/migrations.js.map +0 -1
  89. package/node_modules/@sudocode-ai/cli/dist/operations/events.d.ts +0 -53
  90. package/node_modules/@sudocode-ai/cli/dist/operations/events.d.ts.map +0 -1
  91. package/node_modules/@sudocode-ai/cli/dist/operations/events.js +0 -108
  92. package/node_modules/@sudocode-ai/cli/dist/operations/events.js.map +0 -1
  93. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.d.ts +0 -92
  94. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.d.ts.map +0 -1
  95. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.js +0 -444
  96. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.js.map +0 -1
  97. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.d.ts +0 -76
  98. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.d.ts.map +0 -1
  99. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.js +0 -234
  100. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.js.map +0 -1
  101. package/node_modules/@sudocode-ai/cli/dist/operations/index.d.ts +0 -10
  102. package/node_modules/@sudocode-ai/cli/dist/operations/index.d.ts.map +0 -1
  103. package/node_modules/@sudocode-ai/cli/dist/operations/index.js +0 -10
  104. package/node_modules/@sudocode-ai/cli/dist/operations/index.js.map +0 -1
  105. package/node_modules/@sudocode-ai/cli/dist/operations/issues.d.ts +0 -82
  106. package/node_modules/@sudocode-ai/cli/dist/operations/issues.d.ts.map +0 -1
  107. package/node_modules/@sudocode-ai/cli/dist/operations/issues.js +0 -411
  108. package/node_modules/@sudocode-ai/cli/dist/operations/issues.js.map +0 -1
  109. package/node_modules/@sudocode-ai/cli/dist/operations/references.d.ts +0 -34
  110. package/node_modules/@sudocode-ai/cli/dist/operations/references.d.ts.map +0 -1
  111. package/node_modules/@sudocode-ai/cli/dist/operations/references.js +0 -117
  112. package/node_modules/@sudocode-ai/cli/dist/operations/references.js.map +0 -1
  113. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.d.ts +0 -57
  114. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.d.ts.map +0 -1
  115. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.js +0 -236
  116. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.js.map +0 -1
  117. package/node_modules/@sudocode-ai/cli/dist/operations/specs.d.ts +0 -64
  118. package/node_modules/@sudocode-ai/cli/dist/operations/specs.d.ts.map +0 -1
  119. package/node_modules/@sudocode-ai/cli/dist/operations/specs.js +0 -290
  120. package/node_modules/@sudocode-ai/cli/dist/operations/specs.js.map +0 -1
  121. package/node_modules/@sudocode-ai/cli/dist/operations/tags.d.ts +0 -42
  122. package/node_modules/@sudocode-ai/cli/dist/operations/tags.d.ts.map +0 -1
  123. package/node_modules/@sudocode-ai/cli/dist/operations/tags.js +0 -127
  124. package/node_modules/@sudocode-ai/cli/dist/operations/tags.js.map +0 -1
  125. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.d.ts +0 -41
  126. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.d.ts.map +0 -1
  127. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.js +0 -111
  128. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.js.map +0 -1
  129. package/node_modules/@sudocode-ai/cli/dist/sync.d.ts +0 -47
  130. package/node_modules/@sudocode-ai/cli/dist/sync.d.ts.map +0 -1
  131. package/node_modules/@sudocode-ai/cli/dist/sync.js +0 -442
  132. package/node_modules/@sudocode-ai/cli/dist/sync.js.map +0 -1
  133. package/node_modules/@sudocode-ai/cli/dist/test-schema.d.ts +0 -5
  134. package/node_modules/@sudocode-ai/cli/dist/test-schema.d.ts.map +0 -1
  135. package/node_modules/@sudocode-ai/cli/dist/test-schema.js +0 -46
  136. package/node_modules/@sudocode-ai/cli/dist/test-schema.js.map +0 -1
  137. package/node_modules/@sudocode-ai/cli/dist/types.d.ts +0 -7
  138. package/node_modules/@sudocode-ai/cli/dist/types.d.ts.map +0 -1
  139. package/node_modules/@sudocode-ai/cli/dist/types.js +0 -7
  140. package/node_modules/@sudocode-ai/cli/dist/types.js.map +0 -1
  141. package/node_modules/@sudocode-ai/cli/dist/update-checker.d.ts +0 -24
  142. package/node_modules/@sudocode-ai/cli/dist/update-checker.d.ts.map +0 -1
  143. package/node_modules/@sudocode-ai/cli/dist/update-checker.js +0 -151
  144. package/node_modules/@sudocode-ai/cli/dist/update-checker.js.map +0 -1
  145. package/node_modules/@sudocode-ai/cli/dist/version.d.ts +0 -12
  146. package/node_modules/@sudocode-ai/cli/dist/version.d.ts.map +0 -1
  147. package/node_modules/@sudocode-ai/cli/dist/version.js +0 -23
  148. package/node_modules/@sudocode-ai/cli/dist/version.js.map +0 -1
  149. package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts +0 -63
  150. package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts.map +0 -1
  151. package/node_modules/@sudocode-ai/cli/dist/watcher.js +0 -438
  152. package/node_modules/@sudocode-ai/cli/dist/watcher.js.map +0 -1
  153. package/node_modules/@sudocode-ai/cli/package.json +0 -65
  154. package/node_modules/@sudocode-ai/local-server/README.md +0 -19
  155. package/node_modules/@sudocode-ai/local-server/dist/cli.d.ts +0 -7
  156. package/node_modules/@sudocode-ai/local-server/dist/cli.d.ts.map +0 -1
  157. package/node_modules/@sudocode-ai/local-server/dist/cli.js +0 -7
  158. package/node_modules/@sudocode-ai/local-server/dist/cli.js.map +0 -1
  159. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.d.ts +0 -103
  160. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.d.ts.map +0 -1
  161. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.js +0 -10
  162. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/engine.js.map +0 -1
  163. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.d.ts +0 -190
  164. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.d.ts.map +0 -1
  165. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.js +0 -611
  166. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/simple-engine.js.map +0 -1
  167. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.d.ts +0 -116
  168. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.d.ts.map +0 -1
  169. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.js +0 -10
  170. package/node_modules/@sudocode-ai/local-server/dist/execution/engine/types.js.map +0 -1
  171. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.d.ts +0 -176
  172. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.d.ts.map +0 -1
  173. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.js +0 -438
  174. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.js.map +0 -1
  175. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.d.ts +0 -96
  176. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.d.ts.map +0 -1
  177. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.js +0 -96
  178. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-integration.js.map +0 -1
  179. package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.d.ts +0 -321
  180. package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.d.ts.map +0 -1
  181. package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.js +0 -769
  182. package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-code-output-processor.js.map +0 -1
  183. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts +0 -18
  184. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts.map +0 -1
  185. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.js +0 -15
  186. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.js.map +0 -1
  187. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.d.ts +0 -421
  188. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.d.ts.map +0 -1
  189. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.js +0 -22
  190. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.js.map +0 -1
  191. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.d.ts +0 -86
  192. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.d.ts.map +0 -1
  193. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.js +0 -59
  194. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.js.map +0 -1
  195. package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.d.ts +0 -15
  196. package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.d.ts.map +0 -1
  197. package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.js +0 -15
  198. package/node_modules/@sudocode-ai/local-server/dist/execution/process/index.js.map +0 -1
  199. package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.d.ts +0 -133
  200. package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.d.ts.map +0 -1
  201. package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.js +0 -10
  202. package/node_modules/@sudocode-ai/local-server/dist/execution/process/manager.js.map +0 -1
  203. package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.d.ts +0 -102
  204. package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.d.ts.map +0 -1
  205. package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.js +0 -336
  206. package/node_modules/@sudocode-ai/local-server/dist/execution/process/simple-manager.js.map +0 -1
  207. package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.d.ts +0 -105
  208. package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.d.ts.map +0 -1
  209. package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.js +0 -10
  210. package/node_modules/@sudocode-ai/local-server/dist/execution/process/types.js.map +0 -1
  211. package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.d.ts +0 -53
  212. package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.d.ts.map +0 -1
  213. package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.js +0 -97
  214. package/node_modules/@sudocode-ai/local-server/dist/execution/process/utils.js.map +0 -1
  215. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.d.ts +0 -170
  216. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.d.ts.map +0 -1
  217. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.js +0 -291
  218. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/circuit-breaker.js.map +0 -1
  219. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.d.ts +0 -109
  220. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.d.ts.map +0 -1
  221. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.js +0 -10
  222. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/executor.js.map +0 -1
  223. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.d.ts +0 -14
  224. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.d.ts.map +0 -1
  225. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.js +0 -15
  226. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/index.js.map +0 -1
  227. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.d.ts +0 -86
  228. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.d.ts.map +0 -1
  229. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.js +0 -261
  230. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/resilient-executor.js.map +0 -1
  231. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.d.ts +0 -161
  232. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.d.ts.map +0 -1
  233. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.js +0 -234
  234. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/retry.js.map +0 -1
  235. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.d.ts +0 -226
  236. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.d.ts.map +0 -1
  237. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.js +0 -30
  238. package/node_modules/@sudocode-ai/local-server/dist/execution/resilience/types.js.map +0 -1
  239. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.d.ts +0 -119
  240. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.d.ts.map +0 -1
  241. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.js +0 -208
  242. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.js.map +0 -1
  243. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.d.ts +0 -10
  244. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.d.ts.map +0 -1
  245. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.js +0 -10
  246. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.js.map +0 -1
  247. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.d.ts +0 -146
  248. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.d.ts.map +0 -1
  249. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.js +0 -282
  250. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.js.map +0 -1
  251. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.d.ts +0 -176
  252. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.d.ts.map +0 -1
  253. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.js +0 -231
  254. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.js.map +0 -1
  255. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.d.ts +0 -13
  256. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.d.ts.map +0 -1
  257. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.js +0 -13
  258. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/index.js.map +0 -1
  259. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.d.ts +0 -216
  260. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.d.ts.map +0 -1
  261. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.js +0 -683
  262. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/linear-orchestrator.js.map +0 -1
  263. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.d.ts +0 -54
  264. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.d.ts.map +0 -1
  265. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.js +0 -68
  266. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/memory-storage.js.map +0 -1
  267. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.d.ts +0 -158
  268. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.d.ts.map +0 -1
  269. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.js +0 -9
  270. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/orchestrator.js.map +0 -1
  271. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.d.ts +0 -172
  272. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.d.ts.map +0 -1
  273. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.js +0 -9
  274. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/types.js.map +0 -1
  275. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.d.ts +0 -89
  276. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.d.ts.map +0 -1
  277. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.js +0 -152
  278. package/node_modules/@sudocode-ai/local-server/dist/execution/workflow/utils.js.map +0 -1
  279. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.d.ts +0 -74
  280. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.d.ts.map +0 -1
  281. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.js +0 -280
  282. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.js.map +0 -1
  283. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts +0 -151
  284. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts.map +0 -1
  285. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.js +0 -189
  286. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.js.map +0 -1
  287. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.d.ts +0 -16
  288. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.d.ts.map +0 -1
  289. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.js +0 -15
  290. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.js.map +0 -1
  291. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.d.ts +0 -184
  292. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.d.ts.map +0 -1
  293. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.js +0 -452
  294. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.js.map +0 -1
  295. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.d.ts +0 -90
  296. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.d.ts.map +0 -1
  297. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.js +0 -42
  298. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.js.map +0 -1
  299. package/node_modules/@sudocode-ai/local-server/dist/index.d.ts +0 -8
  300. package/node_modules/@sudocode-ai/local-server/dist/index.d.ts.map +0 -1
  301. package/node_modules/@sudocode-ai/local-server/dist/index.js +0 -356
  302. package/node_modules/@sudocode-ai/local-server/dist/index.js.map +0 -1
  303. package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-C4SmlXoo.js +0 -568
  304. package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-C4SmlXoo.js.map +0 -1
  305. package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-DE59j7ti.css +0 -1
  306. package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-LX0UoTxg.js +0 -60
  307. package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-LX0UoTxg.js.map +0 -1
  308. package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-_cxVHaqZ.js +0 -54
  309. package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-_cxVHaqZ.js.map +0 -1
  310. package/node_modules/@sudocode-ai/local-server/dist/public/favicon.ico +0 -0
  311. package/node_modules/@sudocode-ai/local-server/dist/public/index.html +0 -16
  312. package/node_modules/@sudocode-ai/local-server/dist/public/logo.png +0 -0
  313. package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.d.ts +0 -24
  314. package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.d.ts.map +0 -1
  315. package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.js +0 -55
  316. package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.js.map +0 -1
  317. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts +0 -19
  318. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts.map +0 -1
  319. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.js +0 -267
  320. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.js.map +0 -1
  321. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.d.ts +0 -7
  322. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.d.ts.map +0 -1
  323. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js +0 -329
  324. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js.map +0 -1
  325. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts +0 -7
  326. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts.map +0 -1
  327. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js +0 -280
  328. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js.map +0 -1
  329. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts +0 -7
  330. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts.map +0 -1
  331. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js +0 -308
  332. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js.map +0 -1
  333. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts +0 -7
  334. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts.map +0 -1
  335. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js +0 -270
  336. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js.map +0 -1
  337. package/node_modules/@sudocode-ai/local-server/dist/services/db.d.ts +0 -33
  338. package/node_modules/@sudocode-ai/local-server/dist/services/db.d.ts.map +0 -1
  339. package/node_modules/@sudocode-ai/local-server/dist/services/db.js +0 -85
  340. package/node_modules/@sudocode-ai/local-server/dist/services/db.js.map +0 -1
  341. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts +0 -108
  342. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts.map +0 -1
  343. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.js +0 -286
  344. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.js.map +0 -1
  345. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts +0 -185
  346. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts.map +0 -1
  347. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js +0 -676
  348. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js.map +0 -1
  349. package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts +0 -59
  350. package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts.map +0 -1
  351. package/node_modules/@sudocode-ai/local-server/dist/services/executions.js +0 -164
  352. package/node_modules/@sudocode-ai/local-server/dist/services/executions.js.map +0 -1
  353. package/node_modules/@sudocode-ai/local-server/dist/services/export.d.ts +0 -24
  354. package/node_modules/@sudocode-ai/local-server/dist/services/export.d.ts.map +0 -1
  355. package/node_modules/@sudocode-ai/local-server/dist/services/export.js +0 -106
  356. package/node_modules/@sudocode-ai/local-server/dist/services/export.js.map +0 -1
  357. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts +0 -40
  358. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts.map +0 -1
  359. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js +0 -54
  360. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js.map +0 -1
  361. package/node_modules/@sudocode-ai/local-server/dist/services/issues.d.ts +0 -27
  362. package/node_modules/@sudocode-ai/local-server/dist/services/issues.d.ts.map +0 -1
  363. package/node_modules/@sudocode-ai/local-server/dist/services/issues.js +0 -35
  364. package/node_modules/@sudocode-ai/local-server/dist/services/issues.js.map +0 -1
  365. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.d.ts +0 -108
  366. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.d.ts.map +0 -1
  367. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.js +0 -212
  368. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.js.map +0 -1
  369. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.d.ts +0 -97
  370. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.d.ts.map +0 -1
  371. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.js +0 -236
  372. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.js.map +0 -1
  373. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.d.ts +0 -35
  374. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.d.ts.map +0 -1
  375. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.js +0 -42
  376. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.js.map +0 -1
  377. package/node_modules/@sudocode-ai/local-server/dist/services/specs.d.ts +0 -27
  378. package/node_modules/@sudocode-ai/local-server/dist/services/specs.d.ts.map +0 -1
  379. package/node_modules/@sudocode-ai/local-server/dist/services/specs.js +0 -35
  380. package/node_modules/@sudocode-ai/local-server/dist/services/specs.js.map +0 -1
  381. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts +0 -50
  382. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts.map +0 -1
  383. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.js +0 -69
  384. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.js.map +0 -1
  385. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.d.ts +0 -127
  386. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.d.ts.map +0 -1
  387. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js +0 -389
  388. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js.map +0 -1
  389. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.d.ts +0 -6
  390. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.d.ts.map +0 -1
  391. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.js +0 -9
  392. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.js.map +0 -1
  393. package/node_modules/@sudocode-ai/local-server/package.json +0 -72
  394. package/node_modules/@sudocode-ai/mcp/LICENSE +0 -21
  395. package/node_modules/@sudocode-ai/mcp/README.md +0 -226
  396. package/node_modules/@sudocode-ai/mcp/dist/client.d.ts +0 -33
  397. package/node_modules/@sudocode-ai/mcp/dist/client.d.ts.map +0 -1
  398. package/node_modules/@sudocode-ai/mcp/dist/client.js +0 -159
  399. package/node_modules/@sudocode-ai/mcp/dist/client.js.map +0 -1
  400. package/node_modules/@sudocode-ai/mcp/dist/index.d.ts +0 -6
  401. package/node_modules/@sudocode-ai/mcp/dist/index.d.ts.map +0 -1
  402. package/node_modules/@sudocode-ai/mcp/dist/index.js +0 -64
  403. package/node_modules/@sudocode-ai/mcp/dist/index.js.map +0 -1
  404. package/node_modules/@sudocode-ai/mcp/dist/server.d.ts +0 -26
  405. package/node_modules/@sudocode-ai/mcp/dist/server.d.ts.map +0 -1
  406. package/node_modules/@sudocode-ai/mcp/dist/server.js +0 -575
  407. package/node_modules/@sudocode-ai/mcp/dist/server.js.map +0 -1
  408. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.d.ts +0 -41
  409. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.d.ts.map +0 -1
  410. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.js +0 -21
  411. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.js.map +0 -1
  412. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.d.ts +0 -19
  413. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.d.ts.map +0 -1
  414. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.js +0 -24
  415. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.js.map +0 -1
  416. package/node_modules/@sudocode-ai/mcp/dist/tools/init.d.ts +0 -17
  417. package/node_modules/@sudocode-ai/mcp/dist/tools/init.d.ts.map +0 -1
  418. package/node_modules/@sudocode-ai/mcp/dist/tools/init.js +0 -15
  419. package/node_modules/@sudocode-ai/mcp/dist/tools/init.js.map +0 -1
  420. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.d.ts +0 -44
  421. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.d.ts.map +0 -1
  422. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.js +0 -106
  423. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.js.map +0 -1
  424. package/node_modules/@sudocode-ai/mcp/dist/tools/references.d.ts +0 -21
  425. package/node_modules/@sudocode-ai/mcp/dist/tools/references.d.ts.map +0 -1
  426. package/node_modules/@sudocode-ai/mcp/dist/tools/references.js +0 -49
  427. package/node_modules/@sudocode-ai/mcp/dist/tools/references.js.map +0 -1
  428. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.d.ts +0 -15
  429. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.d.ts.map +0 -1
  430. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.js +0 -18
  431. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.js.map +0 -1
  432. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.d.ts +0 -35
  433. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.d.ts.map +0 -1
  434. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.js +0 -85
  435. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.js.map +0 -1
  436. package/node_modules/@sudocode-ai/mcp/dist/types.d.ts +0 -35
  437. package/node_modules/@sudocode-ai/mcp/dist/types.d.ts.map +0 -1
  438. package/node_modules/@sudocode-ai/mcp/dist/types.js +0 -21
  439. package/node_modules/@sudocode-ai/mcp/dist/types.js.map +0 -1
  440. package/node_modules/@sudocode-ai/mcp/package.json +0 -67
  441. package/node_modules/@sudocode-ai/types/README.md +0 -7
  442. package/node_modules/@sudocode-ai/types/dist/schema.d.ts +0 -45
  443. package/node_modules/@sudocode-ai/types/dist/schema.d.ts.map +0 -1
  444. package/node_modules/@sudocode-ai/types/dist/schema.js +0 -338
  445. package/node_modules/@sudocode-ai/types/dist/schema.js.map +0 -1
  446. package/node_modules/@sudocode-ai/types/package.json +0 -46
@@ -1,261 +0,0 @@
1
- /**
2
- * Resilient Executor Implementation
3
- *
4
- * Implements resilient task execution with retry logic and circuit breakers.
5
- * Wraps the Engine Layer with fault tolerance mechanisms.
6
- *
7
- * @module execution/resilience/resilient-executor
8
- */
9
- import { CircuitBreakerManager } from "./circuit-breaker.js";
10
- import { calculateBackoff, isRetryableResult, sleep, createAttempt, } from "./retry.js";
11
- import { DEFAULT_RETRY_POLICY } from "./types.js";
12
- /**
13
- * ResilientExecutor - Main implementation of resilient task execution
14
- *
15
- * Provides retry logic and circuit breaker protection for task execution.
16
- * Wraps an IExecutionEngine with fault tolerance mechanisms.
17
- *
18
- * @example
19
- * ```typescript
20
- * const engine = new SimpleExecutionEngine(processManager);
21
- * const executor = new ResilientExecutor(engine);
22
- *
23
- * const task: ExecutionTask = {
24
- * id: 'task-1',
25
- * type: 'issue',
26
- * prompt: 'Fix the bug in authentication',
27
- * workDir: '/path/to/project',
28
- * priority: 0,
29
- * dependencies: [],
30
- * createdAt: new Date(),
31
- * config: {},
32
- * };
33
- *
34
- * const result = await executor.executeTask(task);
35
- * console.log(`Completed after ${result.totalAttempts} attempts`);
36
- * ```
37
- */
38
- export class ResilientExecutor {
39
- _engine;
40
- _circuitManager;
41
- _defaultPolicy;
42
- _metrics;
43
- // Event handlers
44
- _retryHandlers = [];
45
- _circuitOpenHandlers = [];
46
- constructor(engine, defaultPolicy = DEFAULT_RETRY_POLICY) {
47
- this._engine = engine;
48
- this._circuitManager = new CircuitBreakerManager();
49
- this._defaultPolicy = defaultPolicy;
50
- this._metrics = {
51
- totalRetries: 0,
52
- successfulRetries: 0,
53
- failedRetries: 0,
54
- averageAttemptsToSuccess: 0,
55
- circuitBreakers: new Map(),
56
- };
57
- }
58
- /**
59
- * Execute a single task with retry and circuit breaker protection
60
- */
61
- async executeTask(task, policy) {
62
- const retryPolicy = policy || this._defaultPolicy;
63
- const circuitBreakerName = task.type; // Use task type as circuit breaker name
64
- const attempts = [];
65
- // Get or create circuit breaker for this task type
66
- const breaker = this._circuitManager.getOrCreate(circuitBreakerName, {
67
- failureThreshold: 5,
68
- successThreshold: 2,
69
- timeout: 60000,
70
- });
71
- // Attempt execution with retries
72
- for (let attemptNumber = 1; attemptNumber <= retryPolicy.maxAttempts; attemptNumber++) {
73
- // Check circuit breaker before execution
74
- if (!this._circuitManager.canExecute(circuitBreakerName)) {
75
- // Call circuit open handlers
76
- this._circuitOpenHandlers.forEach((handler) => {
77
- handler(circuitBreakerName, breaker);
78
- });
79
- // Return result indicating circuit breaker triggered
80
- const circuitOpenResult = {
81
- taskId: task.id,
82
- executionId: "circuit-breaker-open",
83
- success: false,
84
- exitCode: -1,
85
- output: "",
86
- error: `Circuit breaker is open for ${circuitBreakerName}`,
87
- startedAt: new Date(),
88
- completedAt: new Date(),
89
- duration: 0,
90
- attempts: [],
91
- totalAttempts: 0,
92
- finalAttempt: createAttempt(0, false, {
93
- error: new Error(`Circuit breaker is open for ${circuitBreakerName}`),
94
- }),
95
- circuitBreakerTriggered: true,
96
- };
97
- return circuitOpenResult;
98
- }
99
- const attemptStart = new Date();
100
- try {
101
- // Submit task to engine and wait for result
102
- const taskId = await this._engine.submitTask(task);
103
- const result = await this._engine.waitForTask(taskId);
104
- const attemptDuration = Date.now() - attemptStart.getTime();
105
- // Check if execution was successful
106
- if (result.success) {
107
- // Success! Record in circuit breaker and return
108
- this._circuitManager.recordSuccess(circuitBreakerName);
109
- const successAttempt = createAttempt(attemptNumber, true, {
110
- exitCode: result.exitCode,
111
- duration: attemptDuration,
112
- });
113
- attempts.push(successAttempt);
114
- // Update metrics for successful retry
115
- if (attemptNumber > 1) {
116
- this._metrics.successfulRetries++;
117
- this._updateAverageAttempts(attemptNumber);
118
- }
119
- return this._createResilientResult(result, attempts);
120
- }
121
- // Execution completed but failed - check if retryable
122
- const isRetryable = isRetryableResult(result, retryPolicy);
123
- const willRetry = isRetryable && attemptNumber < retryPolicy.maxAttempts;
124
- const failureAttempt = createAttempt(attemptNumber, false, {
125
- error: new Error(result.error || "Task failed"),
126
- exitCode: result.exitCode,
127
- duration: attemptDuration,
128
- willRetry,
129
- });
130
- if (willRetry) {
131
- const backoffDelay = calculateBackoff(attemptNumber + 1, retryPolicy.backoff);
132
- failureAttempt.nextRetryAt = new Date(Date.now() + backoffDelay);
133
- // Call retry attempt handlers
134
- this._retryHandlers.forEach((handler) => {
135
- handler(task.id, failureAttempt);
136
- });
137
- this._metrics.totalRetries++;
138
- attempts.push(failureAttempt);
139
- // Wait before retry
140
- await sleep(backoffDelay);
141
- continue;
142
- }
143
- // Not retryable or max attempts reached - record failure
144
- attempts.push(failureAttempt);
145
- this._circuitManager.recordFailure(circuitBreakerName, new Error(result.error || "Task failed"));
146
- // Update metrics for failed retries
147
- // Count all retry attempts in this failed task
148
- if (attemptNumber > 1) {
149
- this._metrics.failedRetries += attemptNumber - 1;
150
- }
151
- return this._createResilientResult(result, attempts);
152
- }
153
- catch (error) {
154
- // Engine execution error (not a task failure)
155
- const attemptDuration = Date.now() - attemptStart.getTime();
156
- const err = error instanceof Error ? error : new Error(String(error));
157
- const isRetryable = retryPolicy.retryableErrors.some((pattern) => err.message.includes(pattern));
158
- const willRetry = isRetryable && attemptNumber < retryPolicy.maxAttempts;
159
- const errorAttempt = createAttempt(attemptNumber, false, {
160
- error: err,
161
- duration: attemptDuration,
162
- willRetry,
163
- });
164
- if (willRetry) {
165
- const backoffDelay = calculateBackoff(attemptNumber + 1, retryPolicy.backoff);
166
- errorAttempt.nextRetryAt = new Date(Date.now() + backoffDelay);
167
- // Call retry attempt handlers
168
- this._retryHandlers.forEach((handler) => {
169
- handler(task.id, errorAttempt);
170
- });
171
- this._metrics.totalRetries++;
172
- attempts.push(errorAttempt);
173
- // Wait before retry
174
- await sleep(backoffDelay);
175
- continue;
176
- }
177
- // Not retryable or max attempts reached
178
- attempts.push(errorAttempt);
179
- this._circuitManager.recordFailure(circuitBreakerName, err);
180
- // Update metrics for failed retries
181
- // Count all retry attempts in this failed task
182
- if (attemptNumber > 1) {
183
- this._metrics.failedRetries += attemptNumber - 1;
184
- }
185
- throw err;
186
- }
187
- }
188
- // Should never reach here, but TypeScript needs it
189
- throw new Error("Unexpected state: exceeded max attempts without return");
190
- }
191
- /**
192
- * Execute multiple tasks with retry and circuit breaker protection
193
- */
194
- async executeTasks(tasks, policy) {
195
- // Execute all tasks in parallel
196
- const promises = tasks.map((task) => this.executeTask(task, policy));
197
- return Promise.all(promises);
198
- }
199
- /**
200
- * Get circuit breaker by name
201
- */
202
- getCircuitBreaker(name) {
203
- return this._circuitManager.get(name);
204
- }
205
- /**
206
- * Reset a circuit breaker to closed state
207
- */
208
- resetCircuitBreaker(name) {
209
- this._circuitManager.reset(name);
210
- }
211
- /**
212
- * Get aggregate retry metrics
213
- */
214
- getRetryMetrics() {
215
- // Update circuit breakers in metrics
216
- this._metrics.circuitBreakers = this._circuitManager.getAll();
217
- // Return defensive copy
218
- return {
219
- ...this._metrics,
220
- circuitBreakers: new Map(this._metrics.circuitBreakers),
221
- };
222
- }
223
- /**
224
- * Register handler for retry attempt events
225
- */
226
- onRetryAttempt(handler) {
227
- this._retryHandlers.push(handler);
228
- }
229
- /**
230
- * Register handler for circuit breaker open events
231
- */
232
- onCircuitOpen(handler) {
233
- this._circuitOpenHandlers.push(handler);
234
- }
235
- /**
236
- * Helper to create ResilientExecutionResult from engine result
237
- * @private
238
- */
239
- _createResilientResult(result, attempts) {
240
- const finalAttempt = attempts[attempts.length - 1];
241
- return {
242
- ...result,
243
- attempts,
244
- totalAttempts: attempts.length,
245
- finalAttempt,
246
- failureReason: result.success ? undefined : result.error,
247
- };
248
- }
249
- /**
250
- * Helper to update average attempts to success metric
251
- * @private
252
- */
253
- _updateAverageAttempts(attemptCount) {
254
- const totalSuccessful = this._metrics.successfulRetries;
255
- const previousAverage = this._metrics.averageAttemptsToSuccess;
256
- const previousTotal = previousAverage * (totalSuccessful - 1);
257
- this._metrics.averageAttemptsToSuccess =
258
- (previousTotal + attemptCount) / totalSuccessful;
259
- }
260
- }
261
- //# sourceMappingURL=resilient-executor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resilient-executor.js","sourceRoot":"","sources":["../../../src/execution/resilience/resilient-executor.ts"],"names":[],"mappings":"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"}
@@ -1,161 +0,0 @@
1
- /**
2
- * Retry Logic and Backoff Strategies
3
- *
4
- * Implements retry logic with various backoff strategies including
5
- * exponential, linear, and fixed delays with optional jitter.
6
- *
7
- * @module execution/resilience/retry
8
- */
9
- import type { RetryPolicy, ExecutionAttempt } from './types.js';
10
- import type { ExecutionResult } from '../engine/types.js';
11
- /**
12
- * Calculate backoff delay for a given attempt
13
- *
14
- * Supports multiple backoff strategies:
15
- * - Exponential: baseDelay * 2^(attempt-1) - e.g., 1s, 2s, 4s, 8s, 16s
16
- * - Linear: baseDelay * attempt - e.g., 1s, 2s, 3s, 4s, 5s
17
- * - Fixed: constant baseDelay - e.g., 1s, 1s, 1s, 1s, 1s
18
- *
19
- * Applies maxDelay cap and optional jitter to prevent thundering herd.
20
- *
21
- * @param attempt - Attempt number (1-indexed)
22
- * @param config - Backoff configuration from retry policy
23
- * @returns Delay in milliseconds
24
- *
25
- * @example
26
- * ```typescript
27
- * // Exponential backoff with jitter
28
- * const delay = calculateBackoff(3, {
29
- * type: 'exponential',
30
- * baseDelayMs: 1000,
31
- * maxDelayMs: 30000,
32
- * jitter: true,
33
- * });
34
- * // Returns ~4000ms ± 10% jitter
35
- * ```
36
- */
37
- export declare function calculateBackoff(attempt: number, config: RetryPolicy['backoff']): number;
38
- /**
39
- * Check if an error should trigger a retry
40
- *
41
- * Matches error message against the list of retryable error patterns
42
- * defined in the retry policy.
43
- *
44
- * @param error - Error that occurred
45
- * @param policy - Retry policy with retryable error patterns
46
- * @returns True if error should be retried
47
- *
48
- * @example
49
- * ```typescript
50
- * const error = new Error('Connection timeout');
51
- * const shouldRetry = isRetryableError(error, {
52
- * retryableErrors: ['timeout', 'ECONNREFUSED'],
53
- * // ... other policy fields
54
- * });
55
- * // Returns true
56
- * ```
57
- */
58
- export declare function isRetryableError(error: Error, policy: RetryPolicy): boolean;
59
- /**
60
- * Check if an exit code should trigger a retry
61
- *
62
- * Matches exit code against the list of retryable exit codes
63
- * defined in the retry policy.
64
- *
65
- * @param exitCode - Process exit code
66
- * @param policy - Retry policy with retryable exit codes
67
- * @returns True if exit code should be retried
68
- *
69
- * @example
70
- * ```typescript
71
- * const shouldRetry = isRetryableExitCode(1, {
72
- * retryableExitCodes: [1, 137],
73
- * // ... other policy fields
74
- * });
75
- * // Returns true
76
- * ```
77
- */
78
- export declare function isRetryableExitCode(exitCode: number, policy: RetryPolicy): boolean;
79
- /**
80
- * Check if an execution result should trigger a retry
81
- *
82
- * Checks both the exit code and error message (if present) to determine
83
- * if the execution should be retried.
84
- *
85
- * @param result - Execution result from task execution
86
- * @param policy - Retry policy
87
- * @returns True if execution should be retried
88
- *
89
- * @example
90
- * ```typescript
91
- * const result: ExecutionResult = {
92
- * taskId: 'task-1',
93
- * executionId: 'proc-123',
94
- * success: false,
95
- * exitCode: 1,
96
- * error: 'Connection timeout',
97
- * // ... other fields
98
- * };
99
- *
100
- * const shouldRetry = isRetryableResult(result, policy);
101
- * // Returns true if exitCode is retryable OR error contains retryable pattern
102
- * ```
103
- */
104
- export declare function isRetryableResult(result: ExecutionResult, policy: RetryPolicy): boolean;
105
- /**
106
- * Promise-based sleep utility
107
- *
108
- * Returns a promise that resolves after the specified delay.
109
- * Useful for implementing retry backoff.
110
- *
111
- * @param ms - Delay in milliseconds
112
- * @returns Promise that resolves after delay
113
- *
114
- * @example
115
- * ```typescript
116
- * console.log('Starting...');
117
- * await sleep(1000);
118
- * console.log('1 second later');
119
- * ```
120
- */
121
- export declare function sleep(ms: number): Promise<void>;
122
- /**
123
- * Create an execution attempt record
124
- *
125
- * Helper function to create a properly structured ExecutionAttempt object.
126
- *
127
- * @param attemptNumber - Attempt number (1-indexed)
128
- * @param success - Whether the attempt succeeded
129
- * @param options - Optional fields for the attempt
130
- * @returns ExecutionAttempt object
131
- */
132
- export declare function createAttempt(attemptNumber: number, success: boolean, options?: {
133
- error?: Error;
134
- exitCode?: number;
135
- duration?: number;
136
- willRetry?: boolean;
137
- nextRetryAt?: Date;
138
- }): ExecutionAttempt;
139
- /**
140
- * Calculate total delay from all retry attempts
141
- *
142
- * Sums up all the backoff delays that would be applied for a given
143
- * number of retry attempts. Useful for timeout calculations.
144
- *
145
- * @param maxAttempts - Maximum number of attempts
146
- * @param backoffConfig - Backoff configuration
147
- * @returns Total delay in milliseconds
148
- *
149
- * @example
150
- * ```typescript
151
- * const totalDelay = calculateTotalRetryDelay(3, {
152
- * type: 'exponential',
153
- * baseDelayMs: 1000,
154
- * maxDelayMs: 30000,
155
- * jitter: false,
156
- * });
157
- * // Returns 7000ms (1s + 2s + 4s)
158
- * ```
159
- */
160
- export declare function calculateTotalRetryDelay(maxAttempts: number, backoffConfig: RetryPolicy['backoff']): number;
161
- //# sourceMappingURL=retry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/execution/resilience/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,GAC7B,MAAM,CAyCR;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAW3E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,OAAO,CAET;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,WAAW,GAClB,OAAO,CAiBT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,IAAI,CAAC;CACf,GACL,gBAAgB,CAclB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,GACpC,MAAM,CASR"}
@@ -1,234 +0,0 @@
1
- /**
2
- * Retry Logic and Backoff Strategies
3
- *
4
- * Implements retry logic with various backoff strategies including
5
- * exponential, linear, and fixed delays with optional jitter.
6
- *
7
- * @module execution/resilience/retry
8
- */
9
- /**
10
- * Calculate backoff delay for a given attempt
11
- *
12
- * Supports multiple backoff strategies:
13
- * - Exponential: baseDelay * 2^(attempt-1) - e.g., 1s, 2s, 4s, 8s, 16s
14
- * - Linear: baseDelay * attempt - e.g., 1s, 2s, 3s, 4s, 5s
15
- * - Fixed: constant baseDelay - e.g., 1s, 1s, 1s, 1s, 1s
16
- *
17
- * Applies maxDelay cap and optional jitter to prevent thundering herd.
18
- *
19
- * @param attempt - Attempt number (1-indexed)
20
- * @param config - Backoff configuration from retry policy
21
- * @returns Delay in milliseconds
22
- *
23
- * @example
24
- * ```typescript
25
- * // Exponential backoff with jitter
26
- * const delay = calculateBackoff(3, {
27
- * type: 'exponential',
28
- * baseDelayMs: 1000,
29
- * maxDelayMs: 30000,
30
- * jitter: true,
31
- * });
32
- * // Returns ~4000ms ± 10% jitter
33
- * ```
34
- */
35
- export function calculateBackoff(attempt, config) {
36
- let delay;
37
- // Calculate base delay based on strategy
38
- switch (config.type) {
39
- case 'exponential':
40
- // 2^(attempt-1) * baseDelay
41
- // attempt 1: 2^0 = 1x, attempt 2: 2^1 = 2x, attempt 3: 2^2 = 4x
42
- delay = config.baseDelayMs * Math.pow(2, attempt - 1);
43
- break;
44
- case 'linear':
45
- // attempt * baseDelay
46
- // attempt 1: 1x, attempt 2: 2x, attempt 3: 3x
47
- delay = config.baseDelayMs * attempt;
48
- break;
49
- case 'fixed':
50
- // constant baseDelay
51
- delay = config.baseDelayMs;
52
- break;
53
- default:
54
- // TypeScript should prevent this, but handle gracefully
55
- delay = config.baseDelayMs;
56
- }
57
- // Enforce maximum delay cap
58
- delay = Math.min(delay, config.maxDelayMs);
59
- // Add jitter if configured (±10% randomness)
60
- if (config.jitter) {
61
- const jitterAmount = delay * 0.1; // 10% of delay
62
- const jitterOffset = Math.random() * jitterAmount * 2 - jitterAmount;
63
- delay += jitterOffset;
64
- // Ensure delay stays positive and doesn't exceed max after jitter
65
- delay = Math.max(0, Math.min(delay, config.maxDelayMs));
66
- }
67
- return Math.floor(delay);
68
- }
69
- /**
70
- * Check if an error should trigger a retry
71
- *
72
- * Matches error message against the list of retryable error patterns
73
- * defined in the retry policy.
74
- *
75
- * @param error - Error that occurred
76
- * @param policy - Retry policy with retryable error patterns
77
- * @returns True if error should be retried
78
- *
79
- * @example
80
- * ```typescript
81
- * const error = new Error('Connection timeout');
82
- * const shouldRetry = isRetryableError(error, {
83
- * retryableErrors: ['timeout', 'ECONNREFUSED'],
84
- * // ... other policy fields
85
- * });
86
- * // Returns true
87
- * ```
88
- */
89
- export function isRetryableError(error, policy) {
90
- const errorMessage = error.message || '';
91
- // Check if error message contains any retryable pattern
92
- for (const retryablePattern of policy.retryableErrors) {
93
- if (errorMessage.includes(retryablePattern)) {
94
- return true;
95
- }
96
- }
97
- return false;
98
- }
99
- /**
100
- * Check if an exit code should trigger a retry
101
- *
102
- * Matches exit code against the list of retryable exit codes
103
- * defined in the retry policy.
104
- *
105
- * @param exitCode - Process exit code
106
- * @param policy - Retry policy with retryable exit codes
107
- * @returns True if exit code should be retried
108
- *
109
- * @example
110
- * ```typescript
111
- * const shouldRetry = isRetryableExitCode(1, {
112
- * retryableExitCodes: [1, 137],
113
- * // ... other policy fields
114
- * });
115
- * // Returns true
116
- * ```
117
- */
118
- export function isRetryableExitCode(exitCode, policy) {
119
- return policy.retryableExitCodes.includes(exitCode);
120
- }
121
- /**
122
- * Check if an execution result should trigger a retry
123
- *
124
- * Checks both the exit code and error message (if present) to determine
125
- * if the execution should be retried.
126
- *
127
- * @param result - Execution result from task execution
128
- * @param policy - Retry policy
129
- * @returns True if execution should be retried
130
- *
131
- * @example
132
- * ```typescript
133
- * const result: ExecutionResult = {
134
- * taskId: 'task-1',
135
- * executionId: 'proc-123',
136
- * success: false,
137
- * exitCode: 1,
138
- * error: 'Connection timeout',
139
- * // ... other fields
140
- * };
141
- *
142
- * const shouldRetry = isRetryableResult(result, policy);
143
- * // Returns true if exitCode is retryable OR error contains retryable pattern
144
- * ```
145
- */
146
- export function isRetryableResult(result, policy) {
147
- // Check exit code
148
- if (result.exitCode !== undefined && result.exitCode !== null) {
149
- if (isRetryableExitCode(result.exitCode, policy)) {
150
- return true;
151
- }
152
- }
153
- // Check error message
154
- if (result.error) {
155
- const error = new Error(result.error);
156
- if (isRetryableError(error, policy)) {
157
- return true;
158
- }
159
- }
160
- return false;
161
- }
162
- /**
163
- * Promise-based sleep utility
164
- *
165
- * Returns a promise that resolves after the specified delay.
166
- * Useful for implementing retry backoff.
167
- *
168
- * @param ms - Delay in milliseconds
169
- * @returns Promise that resolves after delay
170
- *
171
- * @example
172
- * ```typescript
173
- * console.log('Starting...');
174
- * await sleep(1000);
175
- * console.log('1 second later');
176
- * ```
177
- */
178
- export function sleep(ms) {
179
- return new Promise((resolve) => setTimeout(resolve, ms));
180
- }
181
- /**
182
- * Create an execution attempt record
183
- *
184
- * Helper function to create a properly structured ExecutionAttempt object.
185
- *
186
- * @param attemptNumber - Attempt number (1-indexed)
187
- * @param success - Whether the attempt succeeded
188
- * @param options - Optional fields for the attempt
189
- * @returns ExecutionAttempt object
190
- */
191
- export function createAttempt(attemptNumber, success, options = {}) {
192
- const now = new Date();
193
- return {
194
- attemptNumber,
195
- startedAt: now,
196
- completedAt: options.duration !== undefined ? now : undefined,
197
- duration: options.duration,
198
- success,
199
- error: options.error,
200
- exitCode: options.exitCode,
201
- willRetry: options.willRetry || false,
202
- nextRetryAt: options.nextRetryAt,
203
- };
204
- }
205
- /**
206
- * Calculate total delay from all retry attempts
207
- *
208
- * Sums up all the backoff delays that would be applied for a given
209
- * number of retry attempts. Useful for timeout calculations.
210
- *
211
- * @param maxAttempts - Maximum number of attempts
212
- * @param backoffConfig - Backoff configuration
213
- * @returns Total delay in milliseconds
214
- *
215
- * @example
216
- * ```typescript
217
- * const totalDelay = calculateTotalRetryDelay(3, {
218
- * type: 'exponential',
219
- * baseDelayMs: 1000,
220
- * maxDelayMs: 30000,
221
- * jitter: false,
222
- * });
223
- * // Returns 7000ms (1s + 2s + 4s)
224
- * ```
225
- */
226
- export function calculateTotalRetryDelay(maxAttempts, backoffConfig) {
227
- let totalDelay = 0;
228
- // Calculate delay for each attempt (excluding the first one)
229
- for (let attempt = 2; attempt <= maxAttempts; attempt++) {
230
- totalDelay += calculateBackoff(attempt, backoffConfig);
231
- }
232
- return totalDelay;
233
- }
234
- //# sourceMappingURL=retry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/execution/resilience/retry.ts"],"names":[],"mappings":"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"}