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,676 +0,0 @@
1
- /**
2
- * Execution Service
3
- *
4
- * High-level service for managing issue-to-execution transformations.
5
- * Coordinates between template rendering, worktree management, and workflow execution.
6
- *
7
- * @module services/execution-service
8
- */
9
- import { PromptTemplateEngine } from "./prompt-template-engine.js";
10
- import { ExecutionLifecycleService } from "./execution-lifecycle.js";
11
- import { createExecution, getExecution, updateExecution, } from "./executions.js";
12
- import { getDefaultTemplate, getTemplateById } from "./prompt-templates.js";
13
- import { randomUUID } from "crypto";
14
- import { SimpleProcessManager } from "../execution/process/simple-manager.js";
15
- import { SimpleExecutionEngine } from "../execution/engine/simple-engine.js";
16
- import { ResilientExecutor } from "../execution/resilience/resilient-executor.js";
17
- import { LinearOrchestrator } from "../execution/workflow/linear-orchestrator.js";
18
- import { createAgUiSystem } from "../execution/output/ag-ui-integration.js";
19
- /**
20
- * ExecutionService
21
- *
22
- * Manages the full lifecycle of issue-based executions:
23
- * - Preparing execution with template rendering
24
- * - Creating and starting executions with worktree isolation
25
- * - Creating follow-up executions that reuse worktrees
26
- * - Canceling and cleaning up executions
27
- */
28
- export class ExecutionService {
29
- db;
30
- templateEngine;
31
- lifecycleService;
32
- repoPath;
33
- transportManager;
34
- activeOrchestrators = new Map();
35
- /**
36
- * Create a new ExecutionService
37
- *
38
- * @param db - Database instance
39
- * @param repoPath - Path to the git repository
40
- * @param lifecycleService - Optional execution lifecycle service (creates one if not provided)
41
- * @param transportManager - Optional transport manager for SSE streaming
42
- */
43
- constructor(db, repoPath, lifecycleService, transportManager) {
44
- this.db = db;
45
- this.repoPath = repoPath;
46
- this.templateEngine = new PromptTemplateEngine();
47
- this.lifecycleService =
48
- lifecycleService || new ExecutionLifecycleService(db, repoPath);
49
- this.transportManager = transportManager;
50
- }
51
- /**
52
- * Prepare execution - load issue, render template, return preview
53
- *
54
- * This method loads the issue and related context, renders the template,
55
- * and returns a preview for the user to review before starting execution.
56
- *
57
- * @param issueId - ID of issue to prepare execution for
58
- * @param options - Optional template and config overrides
59
- * @returns Execution prepare result with rendered prompt and context
60
- */
61
- async prepareExecution(issueId, options) {
62
- // 1. Load issue
63
- const issue = this.db
64
- .prepare("SELECT * FROM issues WHERE id = ?")
65
- .get(issueId);
66
- if (!issue) {
67
- throw new Error(`Issue ${issueId} not found`);
68
- }
69
- // 2. Load related specs (via implements/references relationships)
70
- const relatedSpecs = this.db
71
- .prepare(`
72
- SELECT DISTINCT s.id, s.title
73
- FROM specs s
74
- JOIN relationships r ON r.to_id = s.id AND r.to_type = 'spec'
75
- WHERE r.from_id = ? AND r.from_type = 'issue'
76
- AND r.relationship_type IN ('implements', 'references')
77
- ORDER BY s.title
78
- `)
79
- .all(issueId);
80
- // 3. Build context for template rendering
81
- const context = {
82
- issueId: issue.id,
83
- title: issue.title,
84
- description: issue.content,
85
- relatedSpecs: relatedSpecs.length > 0
86
- ? relatedSpecs.map((s) => ({
87
- id: s.id,
88
- title: s.title,
89
- }))
90
- : undefined,
91
- };
92
- // 4. Get template (use custom template if provided, otherwise default)
93
- let template;
94
- if (options?.templateId) {
95
- const customTemplate = getTemplateById(this.db, options.templateId);
96
- if (!customTemplate) {
97
- throw new Error(`Template ${options.templateId} not found`);
98
- }
99
- template = customTemplate.template;
100
- }
101
- else {
102
- const defaultTemplate = getDefaultTemplate(this.db, "issue");
103
- if (!defaultTemplate) {
104
- throw new Error("Default issue template not found");
105
- }
106
- template = defaultTemplate.template;
107
- }
108
- // 5. Render template
109
- const renderedPrompt = this.templateEngine.render(template, context);
110
- // 6. Get default config
111
- const defaultConfig = {
112
- mode: "worktree",
113
- model: "claude-sonnet-4",
114
- baseBranch: "main",
115
- checkpointInterval: 1,
116
- continueOnStepFailure: false,
117
- captureFileChanges: true,
118
- captureToolCalls: true,
119
- ...options?.config,
120
- };
121
- // 7. Validate
122
- const warnings = [];
123
- const errors = [];
124
- if (!renderedPrompt.trim()) {
125
- errors.push("Rendered prompt is empty");
126
- }
127
- return {
128
- renderedPrompt,
129
- issue: {
130
- id: issue.id,
131
- title: issue.title,
132
- content: issue.content,
133
- },
134
- relatedSpecs,
135
- defaultConfig,
136
- warnings,
137
- errors,
138
- };
139
- }
140
- /**
141
- * Create and start execution
142
- *
143
- * Creates an execution record, sets up worktree (if needed), and starts
144
- * workflow execution. Returns the execution record immediately while
145
- * workflow runs in the background.
146
- *
147
- * @param issueId - ID of issue to execute
148
- * @param config - Execution configuration
149
- * @param prompt - Rendered prompt to execute
150
- * @returns Created execution record
151
- */
152
- async createExecution(issueId, config, prompt) {
153
- // 1. Validate
154
- if (!prompt.trim()) {
155
- throw new Error("Prompt cannot be empty");
156
- }
157
- const issue = this.db
158
- .prepare("SELECT * FROM issues WHERE id = ?")
159
- .get(issueId);
160
- if (!issue) {
161
- throw new Error(`Issue ${issueId} not found`);
162
- }
163
- // 2. Determine execution mode and create execution with worktree
164
- const mode = config.mode || "worktree";
165
- let execution;
166
- let workDir;
167
- if (mode === "worktree") {
168
- // Create execution with isolated worktree
169
- const result = await this.lifecycleService.createExecutionWithWorktree({
170
- issueId,
171
- issueTitle: issue.title,
172
- agentType: "claude-code",
173
- targetBranch: config.baseBranch || "main",
174
- repoPath: this.repoPath,
175
- mode: mode,
176
- prompt: prompt,
177
- config: JSON.stringify(config),
178
- });
179
- execution = result.execution;
180
- workDir = result.worktreePath;
181
- }
182
- else {
183
- // Local mode - create execution without worktree
184
- const executionId = randomUUID();
185
- execution = createExecution(this.db, {
186
- id: executionId,
187
- issue_id: issueId,
188
- agent_type: "claude-code",
189
- mode: mode,
190
- prompt: prompt,
191
- config: JSON.stringify(config),
192
- target_branch: config.baseBranch || "main",
193
- branch_name: config.baseBranch || "main",
194
- });
195
- workDir = this.repoPath;
196
- }
197
- // 3. Build WorkflowDefinition
198
- const workflow = {
199
- id: `workflow-${execution.id}`,
200
- steps: [
201
- {
202
- id: "execute-issue",
203
- taskType: "issue",
204
- prompt,
205
- taskConfig: {
206
- model: config.model || "claude-sonnet-4",
207
- timeout: config.timeout,
208
- captureFileChanges: config.captureFileChanges ?? true,
209
- captureToolCalls: config.captureToolCalls ?? true,
210
- },
211
- },
212
- ],
213
- config: {
214
- checkpointInterval: config.checkpointInterval ?? 1,
215
- continueOnStepFailure: config.continueOnStepFailure ?? false,
216
- timeout: config.timeout,
217
- },
218
- metadata: {
219
- workDir,
220
- issueId,
221
- executionId: execution.id,
222
- },
223
- };
224
- // 4. Create execution engine stack
225
- const processManager = new SimpleProcessManager({
226
- executablePath: "claude",
227
- args: [
228
- "--print",
229
- "--output-format",
230
- "stream-json",
231
- "--dangerously-skip-permissions",
232
- ],
233
- });
234
- let engine = new SimpleExecutionEngine(processManager, {
235
- maxConcurrent: 1, // One task at a time for issue execution
236
- });
237
- let executor = new ResilientExecutor(engine);
238
- // 5. Create AG-UI system (processor + adapter) if transport manager is available
239
- let agUiAdapter;
240
- if (this.transportManager) {
241
- const agUiSystem = createAgUiSystem(execution.id);
242
- agUiAdapter = agUiSystem.adapter;
243
- // Connect adapter to transport for SSE streaming
244
- this.transportManager.connectAdapter(agUiAdapter, execution.id);
245
- // Connect processor to execution engine for real-time output parsing
246
- // Buffer for incomplete lines (stream-json can split mid-line)
247
- let lineBuffer = "";
248
- engine = new SimpleExecutionEngine(processManager, {
249
- maxConcurrent: 1,
250
- // TODO: Factor out this logic for DRY principles.
251
- onOutput: (data, type) => {
252
- if (type === "stdout") {
253
- // Append new data to buffer
254
- lineBuffer += data.toString();
255
- // Process complete lines (ending with \n)
256
- let newlineIndex;
257
- while ((newlineIndex = lineBuffer.indexOf("\n")) !== -1) {
258
- const line = lineBuffer.slice(0, newlineIndex);
259
- lineBuffer = lineBuffer.slice(newlineIndex + 1);
260
- if (line.trim()) {
261
- agUiSystem.processor.processLine(line).catch((err) => {
262
- console.error("[ExecutionService] Error processing output line:", {
263
- error: err instanceof Error ? err.message : String(err),
264
- line: line.slice(0, 100), // Log first 100 chars for debugging
265
- });
266
- });
267
- }
268
- }
269
- }
270
- },
271
- });
272
- executor = new ResilientExecutor(engine);
273
- }
274
- // 6. Create LinearOrchestrator
275
- const orchestrator = new LinearOrchestrator(executor, undefined, // No storage/checkpointing for now
276
- agUiAdapter, this.lifecycleService);
277
- // 7. Register event handlers to update execution status in database
278
- orchestrator.onWorkflowStart(() => {
279
- try {
280
- updateExecution(this.db, execution.id, {
281
- status: "running",
282
- });
283
- }
284
- catch (error) {
285
- console.error("[ExecutionService] Failed to update execution status to running", {
286
- executionId: execution.id,
287
- error: error instanceof Error ? error.message : String(error),
288
- });
289
- }
290
- });
291
- orchestrator.onWorkflowComplete(() => {
292
- console.log("[ExecutionService] Workflow completed successfully", {
293
- executionId: execution.id,
294
- });
295
- try {
296
- updateExecution(this.db, execution.id, {
297
- status: "completed",
298
- completed_at: new Date().toISOString(),
299
- });
300
- }
301
- catch (error) {
302
- console.error("[ExecutionService] Failed to update execution status to completed", {
303
- executionId: execution.id,
304
- error: error instanceof Error ? error.message : String(error),
305
- note: "Execution may have been deleted (e.g., due to CASCADE DELETE from issue deletion)",
306
- });
307
- }
308
- // Remove orchestrator from active map
309
- this.activeOrchestrators.delete(execution.id);
310
- });
311
- orchestrator.onWorkflowFailed((_executionId, error) => {
312
- console.error("[ExecutionService] Workflow failed", {
313
- executionId: execution.id,
314
- error: error.message,
315
- stack: error.stack,
316
- });
317
- try {
318
- updateExecution(this.db, execution.id, {
319
- status: "failed",
320
- completed_at: new Date().toISOString(),
321
- error_message: error.message,
322
- });
323
- }
324
- catch (updateError) {
325
- console.error("[ExecutionService] Failed to update execution status to failed", {
326
- executionId: execution.id,
327
- error: updateError instanceof Error
328
- ? updateError.message
329
- : String(updateError),
330
- note: "Execution may have been deleted (e.g., due to CASCADE DELETE from issue deletion)",
331
- });
332
- }
333
- // Remove orchestrator from active map
334
- this.activeOrchestrators.delete(execution.id);
335
- });
336
- // 8. Start workflow execution (non-blocking)
337
- orchestrator.startWorkflow(workflow, workDir, {
338
- checkpointInterval: config.checkpointInterval,
339
- executionId: execution.id,
340
- });
341
- // 9. Store orchestrator for later cancellation
342
- this.activeOrchestrators.set(execution.id, orchestrator);
343
- return execution;
344
- }
345
- /**
346
- * Create follow-up execution - reuse worktree from previous execution
347
- *
348
- * Creates a new execution that reuses the worktree from a previous execution,
349
- * appending feedback or additional context to the prompt.
350
- *
351
- * @param executionId - ID of previous execution to follow up on
352
- * @param feedback - Additional feedback/context to append to prompt
353
- * @returns Created follow-up execution record
354
- */
355
- async createFollowUp(executionId, feedback) {
356
- // 1. Get previous execution
357
- const prevExecution = getExecution(this.db, executionId);
358
- if (!prevExecution) {
359
- throw new Error(`Execution ${executionId} not found`);
360
- }
361
- if (!prevExecution.worktree_path) {
362
- throw new Error(`Cannot create follow-up: execution ${executionId} has no worktree`);
363
- }
364
- // Check if worktree still exists on filesystem, recreate if needed
365
- if (this.lifecycleService) {
366
- const fs = await import("fs");
367
- const worktreeExists = fs.existsSync(prevExecution.worktree_path);
368
- if (!worktreeExists) {
369
- console.log(`Recreating worktree for follow-up execution: ${prevExecution.worktree_path}`);
370
- // Recreate the worktree using the same path and branch
371
- const worktreeManager = this.lifecycleService.worktreeManager;
372
- await worktreeManager.createWorktree({
373
- repoPath: this.repoPath,
374
- branchName: prevExecution.branch_name,
375
- worktreePath: prevExecution.worktree_path,
376
- baseBranch: prevExecution.target_branch,
377
- createBranch: false, // Branch already exists, just recreate worktree
378
- });
379
- }
380
- }
381
- // 2. Validate that previous execution has an issue_id
382
- if (!prevExecution.issue_id) {
383
- throw new Error("Previous execution must have an issue_id for follow-up");
384
- }
385
- // 3. Prepare execution to get rendered prompt
386
- const prepareResult = await this.prepareExecution(prevExecution.issue_id);
387
- // 4. Append feedback to prompt
388
- const followUpPrompt = `${prepareResult.renderedPrompt}
389
-
390
- ## Follow-up Feedback
391
- ${feedback}
392
-
393
- Please continue working on this issue, taking into account the feedback above.`;
394
- // 5. Create new execution record that references previous execution
395
- const newExecutionId = randomUUID();
396
- const newExecution = createExecution(this.db, {
397
- id: newExecutionId,
398
- issue_id: prevExecution.issue_id,
399
- agent_type: "claude-code",
400
- target_branch: prevExecution.target_branch,
401
- branch_name: prevExecution.branch_name,
402
- // TODO: Handle case where worktree has been deleted.
403
- worktree_path: prevExecution.worktree_path, // Reuse same worktree
404
- config: prevExecution.config || undefined, // Preserve config (including cleanupMode) from previous execution
405
- });
406
- // 5. Build WorkflowDefinition
407
- const workflow = {
408
- id: `workflow-${newExecution.id}`,
409
- steps: [
410
- {
411
- id: "execute-followup",
412
- taskType: "issue",
413
- prompt: followUpPrompt,
414
- taskConfig: {
415
- model: "claude-sonnet-4",
416
- captureFileChanges: true,
417
- captureToolCalls: true,
418
- },
419
- },
420
- ],
421
- config: {
422
- checkpointInterval: 1,
423
- continueOnStepFailure: false,
424
- },
425
- metadata: {
426
- workDir: prevExecution.worktree_path,
427
- issueId: prevExecution.issue_id,
428
- executionId: newExecution.id,
429
- followUpOf: executionId,
430
- },
431
- };
432
- // 6. Create execution engine stack
433
- const processManager = new SimpleProcessManager({
434
- executablePath: "claude",
435
- args: [
436
- "--print",
437
- "--output-format",
438
- "stream-json",
439
- "--dangerously-skip-permissions",
440
- ],
441
- });
442
- let engine = new SimpleExecutionEngine(processManager, {
443
- maxConcurrent: 1,
444
- });
445
- let executor = new ResilientExecutor(engine);
446
- // 7. Create AG-UI system (processor + adapter) if transport manager is available
447
- let agUiAdapter;
448
- if (this.transportManager) {
449
- const agUiSystem = createAgUiSystem(newExecution.id);
450
- agUiAdapter = agUiSystem.adapter;
451
- this.transportManager.connectAdapter(agUiAdapter, newExecution.id);
452
- // Connect processor to execution engine for real-time output parsing
453
- // Buffer for incomplete lines (stream-json can split mid-line)
454
- let lineBuffer = "";
455
- engine = new SimpleExecutionEngine(processManager, {
456
- maxConcurrent: 1,
457
- // TODO: Factor out this logic for DRY principles.
458
- onOutput: (data, type) => {
459
- if (type === "stdout") {
460
- // Append new data to buffer
461
- lineBuffer += data.toString();
462
- // Process complete lines (ending with \n)
463
- let newlineIndex;
464
- while ((newlineIndex = lineBuffer.indexOf("\n")) !== -1) {
465
- const line = lineBuffer.slice(0, newlineIndex);
466
- lineBuffer = lineBuffer.slice(newlineIndex + 1);
467
- if (line.trim()) {
468
- agUiSystem.processor.processLine(line).catch((err) => {
469
- console.error("[ExecutionService] Error processing output line:", {
470
- error: err instanceof Error ? err.message : String(err),
471
- line: line.slice(0, 100), // Log first 100 chars for debugging
472
- });
473
- });
474
- }
475
- }
476
- }
477
- },
478
- });
479
- executor = new ResilientExecutor(engine);
480
- }
481
- // 8. Create LinearOrchestrator
482
- const orchestrator = new LinearOrchestrator(executor, undefined, agUiAdapter, this.lifecycleService);
483
- // 9. Register event handlers
484
- orchestrator.onWorkflowStart(() => {
485
- try {
486
- updateExecution(this.db, newExecution.id, {
487
- status: "running",
488
- });
489
- }
490
- catch (error) {
491
- console.error("[ExecutionService] Failed to update follow-up execution status to running", {
492
- executionId: newExecution.id,
493
- error: error instanceof Error ? error.message : String(error),
494
- });
495
- }
496
- });
497
- orchestrator.onWorkflowComplete(() => {
498
- try {
499
- updateExecution(this.db, newExecution.id, {
500
- status: "completed",
501
- completed_at: new Date().toISOString(),
502
- });
503
- }
504
- catch (error) {
505
- console.error("[ExecutionService] Failed to update follow-up execution status to completed", {
506
- executionId: newExecution.id,
507
- error: error instanceof Error ? error.message : String(error),
508
- });
509
- }
510
- this.activeOrchestrators.delete(newExecution.id);
511
- });
512
- orchestrator.onWorkflowFailed((_execId, error) => {
513
- try {
514
- updateExecution(this.db, newExecution.id, {
515
- status: "failed",
516
- completed_at: new Date().toISOString(),
517
- error_message: error.message,
518
- });
519
- }
520
- catch (updateError) {
521
- console.error("[ExecutionService] Failed to update follow-up execution status to failed", {
522
- executionId: newExecution.id,
523
- error: updateError instanceof Error
524
- ? updateError.message
525
- : String(updateError),
526
- });
527
- }
528
- this.activeOrchestrators.delete(newExecution.id);
529
- });
530
- // 10. Start workflow execution (non-blocking)
531
- orchestrator.startWorkflow(workflow, prevExecution.worktree_path, {
532
- checkpointInterval: 1,
533
- executionId: newExecution.id,
534
- });
535
- // 11. Store orchestrator for later cancellation
536
- this.activeOrchestrators.set(newExecution.id, orchestrator);
537
- return newExecution;
538
- }
539
- /**
540
- * Cancel a running execution
541
- *
542
- * Stops the workflow execution and marks the execution as cancelled.
543
- * Optionally cleans up the worktree based on config.
544
- *
545
- * @param executionId - ID of execution to cancel
546
- */
547
- async cancelExecution(executionId) {
548
- const execution = getExecution(this.db, executionId);
549
- if (!execution) {
550
- throw new Error(`Execution ${executionId} not found`);
551
- }
552
- if (execution.status !== "running") {
553
- throw new Error(`Cannot cancel execution in ${execution.status} state`);
554
- }
555
- // Get orchestrator from active map
556
- const orchestrator = this.activeOrchestrators.get(executionId);
557
- if (orchestrator) {
558
- // Cancel via orchestrator
559
- await orchestrator.cancelWorkflow(executionId);
560
- // Remove from active map
561
- this.activeOrchestrators.delete(executionId);
562
- }
563
- // Update status in database (orchestrator.cancelWorkflow doesn't emit events for DB update)
564
- updateExecution(this.db, executionId, {
565
- status: "stopped",
566
- completed_at: new Date().toISOString(),
567
- });
568
- }
569
- /**
570
- * Clean up execution resources
571
- *
572
- * Removes the worktree and associated files. This is called automatically
573
- * on workflow completion, or can be called manually.
574
- *
575
- * @param executionId - ID of execution to clean up
576
- */
577
- async cleanupExecution(executionId) {
578
- await this.lifecycleService.cleanupExecution(executionId);
579
- }
580
- /**
581
- * Check if worktree exists in filesystem for an execution
582
- *
583
- * @param executionId - ID of execution to check
584
- * @returns true if worktree exists, false otherwise
585
- */
586
- async worktreeExists(executionId) {
587
- const execution = getExecution(this.db, executionId);
588
- if (!execution || !execution.worktree_path) {
589
- return false;
590
- }
591
- const fs = await import("fs");
592
- return fs.existsSync(execution.worktree_path);
593
- }
594
- /**
595
- * Delete worktree for an execution
596
- *
597
- * Manually deletes the worktree for a specific execution, regardless of
598
- * cleanupMode configuration. This allows users to manually cleanup worktrees
599
- * when they're configured for manual cleanup.
600
- *
601
- * @param executionId - ID of execution whose worktree to delete
602
- * @throws Error if execution not found, has no worktree, or worktree doesn't exist
603
- */
604
- async deleteWorktree(executionId) {
605
- const execution = getExecution(this.db, executionId);
606
- if (!execution) {
607
- throw new Error(`Execution ${executionId} not found`);
608
- }
609
- if (!execution.worktree_path) {
610
- throw new Error(`Execution ${executionId} has no worktree to delete`);
611
- }
612
- // Check if worktree exists in the filesystem
613
- const fs = await import("fs");
614
- const worktreeExists = fs.existsSync(execution.worktree_path);
615
- if (!worktreeExists) {
616
- throw new Error(`Worktree does not exist in filesystem: ${execution.worktree_path}`);
617
- }
618
- // TODO: Cancel any running execution.
619
- // Get worktree manager from lifecycle service
620
- const worktreeManager = this.lifecycleService.worktreeManager;
621
- // Clean up the worktree
622
- await worktreeManager.cleanupWorktree(execution.worktree_path, this.repoPath);
623
- }
624
- /**
625
- * Shutdown execution service - cancel all active executions
626
- *
627
- * This is called during server shutdown to gracefully terminate
628
- * all running executions before the server exits.
629
- */
630
- async shutdown() {
631
- const cancelPromises = [];
632
- // Cancel all active orchestrators
633
- for (const [executionId, orchestrator,] of this.activeOrchestrators.entries()) {
634
- cancelPromises.push(orchestrator.cancelWorkflow(executionId).catch((error) => {
635
- console.error("[ExecutionService] Error canceling execution", {
636
- executionId,
637
- error: error.message,
638
- });
639
- }));
640
- }
641
- // Wait for all cancellations to complete (with timeout)
642
- await Promise.race([
643
- Promise.all(cancelPromises),
644
- new Promise((resolve) => setTimeout(resolve, 5000)), // 5 second timeout
645
- ]);
646
- }
647
- /**
648
- * List all executions for an issue
649
- *
650
- * Returns all executions associated with a specific issue,
651
- * ordered by creation time (most recent first).
652
- *
653
- * @param issueId - ID of issue to list executions for
654
- * @returns Array of executions for the issue
655
- */
656
- listExecutions(issueId) {
657
- const executions = this.db
658
- .prepare(`
659
- SELECT * FROM executions
660
- WHERE issue_id = ?
661
- ORDER BY created_at DESC
662
- `)
663
- .all(issueId);
664
- return executions;
665
- }
666
- /**
667
- * Get a single execution by ID
668
- *
669
- * @param executionId - ID of execution to retrieve
670
- * @returns Execution or null if not found
671
- */
672
- getExecution(executionId) {
673
- return getExecution(this.db, executionId);
674
- }
675
- }
676
- //# sourceMappingURL=execution-service.js.map