sudocode 1.1.17 → 1.1.18-dev.0

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 (738) hide show
  1. package/node_modules/@sudocode-ai/cli/README.md +330 -0
  2. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.d.ts +53 -0
  3. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.d.ts.map +1 -0
  4. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.js +339 -0
  5. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.js.map +1 -0
  6. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.d.ts +20 -0
  7. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.d.ts.map +1 -0
  8. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.js +145 -0
  9. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.js.map +1 -0
  10. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.d.ts +46 -0
  11. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.d.ts.map +1 -0
  12. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js +353 -0
  13. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js.map +1 -0
  14. package/node_modules/@sudocode-ai/cli/dist/cli/merge-commands.d.ts +42 -0
  15. package/node_modules/@sudocode-ai/cli/dist/cli/merge-commands.d.ts.map +1 -0
  16. package/node_modules/@sudocode-ai/cli/dist/cli/merge-commands.js +405 -0
  17. package/node_modules/@sudocode-ai/cli/dist/cli/merge-commands.js.map +1 -0
  18. package/node_modules/@sudocode-ai/cli/dist/cli/plugin-commands.d.ts +62 -0
  19. package/node_modules/@sudocode-ai/cli/dist/cli/plugin-commands.d.ts.map +1 -0
  20. package/node_modules/@sudocode-ai/cli/dist/cli/plugin-commands.js +595 -0
  21. package/node_modules/@sudocode-ai/cli/dist/cli/plugin-commands.js.map +1 -0
  22. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.d.ts +18 -0
  23. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.d.ts.map +1 -0
  24. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.js +61 -0
  25. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.js.map +1 -0
  26. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.d.ts +22 -0
  27. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.d.ts.map +1 -0
  28. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.js +136 -0
  29. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.js.map +1 -0
  30. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.d.ts +14 -0
  31. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.d.ts.map +1 -0
  32. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js +83 -0
  33. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js.map +1 -0
  34. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.d.ts +17 -0
  35. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.d.ts.map +1 -0
  36. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.js +123 -0
  37. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.js.map +1 -0
  38. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.d.ts +38 -0
  39. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.d.ts.map +1 -0
  40. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.js +326 -0
  41. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.js.map +1 -0
  42. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.d.ts +17 -0
  43. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.d.ts.map +1 -0
  44. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.js +131 -0
  45. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.js.map +1 -0
  46. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.d.ts +24 -0
  47. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.d.ts.map +1 -0
  48. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.js +429 -0
  49. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.js.map +1 -0
  50. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.d.ts +16 -0
  51. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.d.ts.map +1 -0
  52. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.js +160 -0
  53. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.js.map +1 -0
  54. package/node_modules/@sudocode-ai/cli/dist/cli.d.ts +6 -0
  55. package/node_modules/@sudocode-ai/cli/dist/cli.d.ts.map +1 -0
  56. package/node_modules/@sudocode-ai/cli/dist/cli.js +543 -0
  57. package/node_modules/@sudocode-ai/cli/dist/cli.js.map +1 -0
  58. package/node_modules/@sudocode-ai/cli/dist/config.d.ts +50 -0
  59. package/node_modules/@sudocode-ai/cli/dist/config.d.ts.map +1 -0
  60. package/node_modules/@sudocode-ai/cli/dist/config.js +76 -0
  61. package/node_modules/@sudocode-ai/cli/dist/config.js.map +1 -0
  62. package/node_modules/@sudocode-ai/cli/dist/db.d.ts +21 -0
  63. package/node_modules/@sudocode-ai/cli/dist/db.d.ts.map +1 -0
  64. package/node_modules/@sudocode-ai/cli/dist/db.js +55 -0
  65. package/node_modules/@sudocode-ai/cli/dist/db.js.map +1 -0
  66. package/node_modules/@sudocode-ai/cli/dist/export.d.ts +84 -0
  67. package/node_modules/@sudocode-ai/cli/dist/export.d.ts.map +1 -0
  68. package/node_modules/@sudocode-ai/cli/dist/export.js +265 -0
  69. package/node_modules/@sudocode-ai/cli/dist/export.js.map +1 -0
  70. package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts +31 -0
  71. package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts.map +1 -0
  72. package/node_modules/@sudocode-ai/cli/dist/filename-generator.js +103 -0
  73. package/node_modules/@sudocode-ai/cli/dist/filename-generator.js.map +1 -0
  74. package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts +63 -0
  75. package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts.map +1 -0
  76. package/node_modules/@sudocode-ai/cli/dist/id-generator.js +196 -0
  77. package/node_modules/@sudocode-ai/cli/dist/id-generator.js.map +1 -0
  78. package/node_modules/@sudocode-ai/cli/dist/import.d.ts +134 -0
  79. package/node_modules/@sudocode-ai/cli/dist/import.d.ts.map +1 -0
  80. package/node_modules/@sudocode-ai/cli/dist/import.js +751 -0
  81. package/node_modules/@sudocode-ai/cli/dist/import.js.map +1 -0
  82. package/node_modules/@sudocode-ai/cli/dist/index.d.ts +15 -0
  83. package/node_modules/@sudocode-ai/cli/dist/index.d.ts.map +1 -0
  84. package/node_modules/@sudocode-ai/cli/dist/index.js +15 -0
  85. package/node_modules/@sudocode-ai/cli/dist/index.js.map +1 -0
  86. package/node_modules/@sudocode-ai/cli/dist/integrations/base-provider.d.ts +108 -0
  87. package/node_modules/@sudocode-ai/cli/dist/integrations/base-provider.d.ts.map +1 -0
  88. package/node_modules/@sudocode-ai/cli/dist/integrations/base-provider.js +80 -0
  89. package/node_modules/@sudocode-ai/cli/dist/integrations/base-provider.js.map +1 -0
  90. package/node_modules/@sudocode-ai/cli/dist/integrations/config-resolver.d.ts +62 -0
  91. package/node_modules/@sudocode-ai/cli/dist/integrations/config-resolver.d.ts.map +1 -0
  92. package/node_modules/@sudocode-ai/cli/dist/integrations/config-resolver.js +69 -0
  93. package/node_modules/@sudocode-ai/cli/dist/integrations/config-resolver.js.map +1 -0
  94. package/node_modules/@sudocode-ai/cli/dist/integrations/config-validator.d.ts +75 -0
  95. package/node_modules/@sudocode-ai/cli/dist/integrations/config-validator.d.ts.map +1 -0
  96. package/node_modules/@sudocode-ai/cli/dist/integrations/config-validator.js +129 -0
  97. package/node_modules/@sudocode-ai/cli/dist/integrations/config-validator.js.map +1 -0
  98. package/node_modules/@sudocode-ai/cli/dist/integrations/index.d.ts +14 -0
  99. package/node_modules/@sudocode-ai/cli/dist/integrations/index.d.ts.map +1 -0
  100. package/node_modules/@sudocode-ai/cli/dist/integrations/index.js +20 -0
  101. package/node_modules/@sudocode-ai/cli/dist/integrations/index.js.map +1 -0
  102. package/node_modules/@sudocode-ai/cli/dist/integrations/plugin-loader.d.ts +77 -0
  103. package/node_modules/@sudocode-ai/cli/dist/integrations/plugin-loader.d.ts.map +1 -0
  104. package/node_modules/@sudocode-ai/cli/dist/integrations/plugin-loader.js +265 -0
  105. package/node_modules/@sudocode-ai/cli/dist/integrations/plugin-loader.js.map +1 -0
  106. package/node_modules/@sudocode-ai/cli/dist/integrations/registry.d.ts +67 -0
  107. package/node_modules/@sudocode-ai/cli/dist/integrations/registry.d.ts.map +1 -0
  108. package/node_modules/@sudocode-ai/cli/dist/integrations/registry.js +77 -0
  109. package/node_modules/@sudocode-ai/cli/dist/integrations/registry.js.map +1 -0
  110. package/node_modules/@sudocode-ai/cli/dist/integrations/sync-coordinator.d.ts +191 -0
  111. package/node_modules/@sudocode-ai/cli/dist/integrations/sync-coordinator.d.ts.map +1 -0
  112. package/node_modules/@sudocode-ai/cli/dist/integrations/sync-coordinator.js +798 -0
  113. package/node_modules/@sudocode-ai/cli/dist/integrations/sync-coordinator.js.map +1 -0
  114. package/node_modules/@sudocode-ai/cli/dist/integrations/types.d.ts +142 -0
  115. package/node_modules/@sudocode-ai/cli/dist/integrations/types.d.ts.map +1 -0
  116. package/node_modules/@sudocode-ai/cli/dist/integrations/types.js +6 -0
  117. package/node_modules/@sudocode-ai/cli/dist/integrations/types.js.map +1 -0
  118. package/node_modules/@sudocode-ai/cli/dist/integrations/utils/conflict-resolver.d.ts +79 -0
  119. package/node_modules/@sudocode-ai/cli/dist/integrations/utils/conflict-resolver.d.ts.map +1 -0
  120. package/node_modules/@sudocode-ai/cli/dist/integrations/utils/conflict-resolver.js +106 -0
  121. package/node_modules/@sudocode-ai/cli/dist/integrations/utils/conflict-resolver.js.map +1 -0
  122. package/node_modules/@sudocode-ai/cli/dist/jsonl.d.ts +69 -0
  123. package/node_modules/@sudocode-ai/cli/dist/jsonl.d.ts.map +1 -0
  124. package/node_modules/@sudocode-ai/cli/dist/jsonl.js +333 -0
  125. package/node_modules/@sudocode-ai/cli/dist/jsonl.js.map +1 -0
  126. package/node_modules/@sudocode-ai/cli/dist/markdown.d.ts +146 -0
  127. package/node_modules/@sudocode-ai/cli/dist/markdown.d.ts.map +1 -0
  128. package/node_modules/@sudocode-ai/cli/dist/markdown.js +329 -0
  129. package/node_modules/@sudocode-ai/cli/dist/markdown.js.map +1 -0
  130. package/node_modules/@sudocode-ai/cli/dist/merge-resolver.d.ts +85 -0
  131. package/node_modules/@sudocode-ai/cli/dist/merge-resolver.d.ts.map +1 -0
  132. package/node_modules/@sudocode-ai/cli/dist/merge-resolver.js +301 -0
  133. package/node_modules/@sudocode-ai/cli/dist/merge-resolver.js.map +1 -0
  134. package/node_modules/@sudocode-ai/cli/dist/operations/events.d.ts +53 -0
  135. package/node_modules/@sudocode-ai/cli/dist/operations/events.d.ts.map +1 -0
  136. package/node_modules/@sudocode-ai/cli/dist/operations/events.js +108 -0
  137. package/node_modules/@sudocode-ai/cli/dist/operations/events.js.map +1 -0
  138. package/node_modules/@sudocode-ai/cli/dist/operations/external-links.d.ts +147 -0
  139. package/node_modules/@sudocode-ai/cli/dist/operations/external-links.d.ts.map +1 -0
  140. package/node_modules/@sudocode-ai/cli/dist/operations/external-links.js +411 -0
  141. package/node_modules/@sudocode-ai/cli/dist/operations/external-links.js.map +1 -0
  142. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.d.ts +92 -0
  143. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.d.ts.map +1 -0
  144. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.js +444 -0
  145. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.js.map +1 -0
  146. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.d.ts +94 -0
  147. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.d.ts.map +1 -0
  148. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.js +278 -0
  149. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.js.map +1 -0
  150. package/node_modules/@sudocode-ai/cli/dist/operations/index.d.ts +11 -0
  151. package/node_modules/@sudocode-ai/cli/dist/operations/index.d.ts.map +1 -0
  152. package/node_modules/@sudocode-ai/cli/dist/operations/index.js +11 -0
  153. package/node_modules/@sudocode-ai/cli/dist/operations/index.js.map +1 -0
  154. package/node_modules/@sudocode-ai/cli/dist/operations/issues.d.ts +88 -0
  155. package/node_modules/@sudocode-ai/cli/dist/operations/issues.d.ts.map +1 -0
  156. package/node_modules/@sudocode-ai/cli/dist/operations/issues.js +474 -0
  157. package/node_modules/@sudocode-ai/cli/dist/operations/issues.js.map +1 -0
  158. package/node_modules/@sudocode-ai/cli/dist/operations/references.d.ts +34 -0
  159. package/node_modules/@sudocode-ai/cli/dist/operations/references.d.ts.map +1 -0
  160. package/node_modules/@sudocode-ai/cli/dist/operations/references.js +117 -0
  161. package/node_modules/@sudocode-ai/cli/dist/operations/references.js.map +1 -0
  162. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.d.ts +64 -0
  163. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.d.ts.map +1 -0
  164. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.js +281 -0
  165. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.js.map +1 -0
  166. package/node_modules/@sudocode-ai/cli/dist/operations/specs.d.ts +69 -0
  167. package/node_modules/@sudocode-ai/cli/dist/operations/specs.d.ts.map +1 -0
  168. package/node_modules/@sudocode-ai/cli/dist/operations/specs.js +330 -0
  169. package/node_modules/@sudocode-ai/cli/dist/operations/specs.js.map +1 -0
  170. package/node_modules/@sudocode-ai/cli/dist/operations/tags.d.ts +42 -0
  171. package/node_modules/@sudocode-ai/cli/dist/operations/tags.d.ts.map +1 -0
  172. package/node_modules/@sudocode-ai/cli/dist/operations/tags.js +127 -0
  173. package/node_modules/@sudocode-ai/cli/dist/operations/tags.js.map +1 -0
  174. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.d.ts +41 -0
  175. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.d.ts.map +1 -0
  176. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.js +111 -0
  177. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.js.map +1 -0
  178. package/node_modules/@sudocode-ai/cli/dist/sync.d.ts +47 -0
  179. package/node_modules/@sudocode-ai/cli/dist/sync.d.ts.map +1 -0
  180. package/node_modules/@sudocode-ai/cli/dist/sync.js +464 -0
  181. package/node_modules/@sudocode-ai/cli/dist/sync.js.map +1 -0
  182. package/node_modules/@sudocode-ai/cli/dist/test-schema.d.ts +5 -0
  183. package/node_modules/@sudocode-ai/cli/dist/test-schema.d.ts.map +1 -0
  184. package/node_modules/@sudocode-ai/cli/dist/test-schema.js +46 -0
  185. package/node_modules/@sudocode-ai/cli/dist/test-schema.js.map +1 -0
  186. package/node_modules/@sudocode-ai/cli/dist/types.d.ts +7 -0
  187. package/node_modules/@sudocode-ai/cli/dist/types.d.ts.map +1 -0
  188. package/node_modules/@sudocode-ai/cli/dist/types.js +7 -0
  189. package/node_modules/@sudocode-ai/cli/dist/types.js.map +1 -0
  190. package/node_modules/@sudocode-ai/cli/dist/update-checker.d.ts +33 -0
  191. package/node_modules/@sudocode-ai/cli/dist/update-checker.d.ts.map +1 -0
  192. package/node_modules/@sudocode-ai/cli/dist/update-checker.js +193 -0
  193. package/node_modules/@sudocode-ai/cli/dist/update-checker.js.map +1 -0
  194. package/node_modules/@sudocode-ai/cli/dist/validation.d.ts +11 -0
  195. package/node_modules/@sudocode-ai/cli/dist/validation.d.ts.map +1 -0
  196. package/node_modules/@sudocode-ai/cli/dist/validation.js +58 -0
  197. package/node_modules/@sudocode-ai/cli/dist/validation.js.map +1 -0
  198. package/node_modules/@sudocode-ai/cli/dist/version.d.ts +12 -0
  199. package/node_modules/@sudocode-ai/cli/dist/version.d.ts.map +1 -0
  200. package/node_modules/@sudocode-ai/cli/dist/version.js +23 -0
  201. package/node_modules/@sudocode-ai/cli/dist/version.js.map +1 -0
  202. package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts +69 -0
  203. package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts.map +1 -0
  204. package/node_modules/@sudocode-ai/cli/dist/watcher.js +783 -0
  205. package/node_modules/@sudocode-ai/cli/dist/watcher.js.map +1 -0
  206. package/node_modules/@sudocode-ai/cli/package.json +73 -0
  207. package/node_modules/@sudocode-ai/integration-beads/package.json +44 -0
  208. package/node_modules/@sudocode-ai/integration-github/package.json +41 -0
  209. package/node_modules/@sudocode-ai/integration-openspec/package.json +43 -0
  210. package/node_modules/@sudocode-ai/integration-speckit/package.json +42 -0
  211. package/node_modules/@sudocode-ai/local-server/README.md +25 -0
  212. package/node_modules/@sudocode-ai/local-server/dist/cli.d.ts +7 -0
  213. package/node_modules/@sudocode-ai/local-server/dist/cli.d.ts.map +1 -0
  214. package/node_modules/@sudocode-ai/local-server/dist/cli.js +7 -0
  215. package/node_modules/@sudocode-ai/local-server/dist/cli.js.map +1 -0
  216. package/node_modules/@sudocode-ai/local-server/dist/errors/agent-errors.d.ts +43 -0
  217. package/node_modules/@sudocode-ai/local-server/dist/errors/agent-errors.d.ts.map +1 -0
  218. package/node_modules/@sudocode-ai/local-server/dist/errors/agent-errors.js +69 -0
  219. package/node_modules/@sudocode-ai/local-server/dist/errors/agent-errors.js.map +1 -0
  220. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/claude-adapter.d.ts +63 -0
  221. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/claude-adapter.d.ts.map +1 -0
  222. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/claude-adapter.js +83 -0
  223. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/claude-adapter.js.map +1 -0
  224. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-adapter.d.ts +67 -0
  225. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-adapter.d.ts.map +1 -0
  226. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-adapter.js +183 -0
  227. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-adapter.js.map +1 -0
  228. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-config-builder.d.ts +30 -0
  229. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-config-builder.d.ts.map +1 -0
  230. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-config-builder.js +110 -0
  231. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-config-builder.js.map +1 -0
  232. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-adapter.d.ts +94 -0
  233. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-adapter.d.ts.map +1 -0
  234. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-adapter.js +163 -0
  235. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-adapter.js.map +1 -0
  236. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-config-builder.d.ts +48 -0
  237. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-config-builder.d.ts.map +1 -0
  238. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-config-builder.js +125 -0
  239. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-config-builder.js.map +1 -0
  240. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-adapter.d.ts +66 -0
  241. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-adapter.d.ts.map +1 -0
  242. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-adapter.js +121 -0
  243. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-adapter.js.map +1 -0
  244. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-config-builder.d.ts +29 -0
  245. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-config-builder.d.ts.map +1 -0
  246. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-config-builder.js +49 -0
  247. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-config-builder.js.map +1 -0
  248. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-presets.d.ts +102 -0
  249. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-presets.d.ts.map +1 -0
  250. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-presets.js +205 -0
  251. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-presets.js.map +1 -0
  252. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-utils.d.ts +95 -0
  253. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-utils.d.ts.map +1 -0
  254. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-utils.js +163 -0
  255. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-utils.js.map +1 -0
  256. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/index.d.ts +8 -0
  257. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/index.d.ts.map +1 -0
  258. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/index.js +8 -0
  259. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/index.js.map +1 -0
  260. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/agent-executor-wrapper.d.ts +154 -0
  261. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/agent-executor-wrapper.d.ts.map +1 -0
  262. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/agent-executor-wrapper.js +725 -0
  263. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/agent-executor-wrapper.js.map +1 -0
  264. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/executor-factory.d.ts +95 -0
  265. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/executor-factory.d.ts.map +1 -0
  266. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/executor-factory.js +128 -0
  267. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/executor-factory.js.map +1 -0
  268. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.d.ts +174 -0
  269. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.d.ts.map +1 -0
  270. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.js +436 -0
  271. package/node_modules/@sudocode-ai/local-server/dist/execution/output/ag-ui-adapter.js.map +1 -0
  272. package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-to-ag-ui.d.ts +90 -0
  273. package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-to-ag-ui.d.ts.map +1 -0
  274. package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-to-ag-ui.js +153 -0
  275. package/node_modules/@sudocode-ai/local-server/dist/execution/output/claude-to-ag-ui.js.map +1 -0
  276. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts +15 -0
  277. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts.map +1 -0
  278. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.js +13 -0
  279. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.js.map +1 -0
  280. package/node_modules/@sudocode-ai/local-server/dist/execution/output/normalized-to-ag-ui-adapter.d.ts +108 -0
  281. package/node_modules/@sudocode-ai/local-server/dist/execution/output/normalized-to-ag-ui-adapter.d.ts.map +1 -0
  282. package/node_modules/@sudocode-ai/local-server/dist/execution/output/normalized-to-ag-ui-adapter.js +321 -0
  283. package/node_modules/@sudocode-ai/local-server/dist/execution/output/normalized-to-ag-ui-adapter.js.map +1 -0
  284. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.d.ts +421 -0
  285. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.d.ts.map +1 -0
  286. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.js +22 -0
  287. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.js.map +1 -0
  288. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.d.ts +53 -0
  289. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.d.ts.map +1 -0
  290. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.js +225 -0
  291. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.js.map +1 -0
  292. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.d.ts +119 -0
  293. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.d.ts.map +1 -0
  294. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.js +208 -0
  295. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/event-buffer.js.map +1 -0
  296. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.d.ts +10 -0
  297. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.d.ts.map +1 -0
  298. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.js +10 -0
  299. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/index.js.map +1 -0
  300. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/ipc-transport-manager.d.ts +74 -0
  301. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/ipc-transport-manager.d.ts.map +1 -0
  302. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/ipc-transport-manager.js +104 -0
  303. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/ipc-transport-manager.js.map +1 -0
  304. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.d.ts +146 -0
  305. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.d.ts.map +1 -0
  306. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.js +282 -0
  307. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/sse-transport.js.map +1 -0
  308. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.d.ts +176 -0
  309. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.d.ts.map +1 -0
  310. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.js +234 -0
  311. package/node_modules/@sudocode-ai/local-server/dist/execution/transport/transport-manager.js.map +1 -0
  312. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.d.ts +74 -0
  313. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.d.ts.map +1 -0
  314. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.js +280 -0
  315. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.js.map +1 -0
  316. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/conflict-detector.d.ts +85 -0
  317. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/conflict-detector.d.ts.map +1 -0
  318. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/conflict-detector.js +129 -0
  319. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/conflict-detector.js.map +1 -0
  320. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts +208 -0
  321. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts.map +1 -0
  322. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.js +280 -0
  323. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.js.map +1 -0
  324. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-sync-cli.d.ts +225 -0
  325. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-sync-cli.d.ts.map +1 -0
  326. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-sync-cli.js +464 -0
  327. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-sync-cli.js.map +1 -0
  328. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.d.ts +16 -0
  329. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.d.ts.map +1 -0
  330. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.js +15 -0
  331. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.js.map +1 -0
  332. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.d.ts +221 -0
  333. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.d.ts.map +1 -0
  334. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.js +508 -0
  335. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.js.map +1 -0
  336. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.d.ts +90 -0
  337. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.d.ts.map +1 -0
  338. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.js +42 -0
  339. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.js.map +1 -0
  340. package/node_modules/@sudocode-ai/local-server/dist/index.d.ts +6 -0
  341. package/node_modules/@sudocode-ai/local-server/dist/index.d.ts.map +1 -0
  342. package/node_modules/@sudocode-ai/local-server/dist/index.js +371 -0
  343. package/node_modules/@sudocode-ai/local-server/dist/index.js.map +1 -0
  344. package/node_modules/@sudocode-ai/local-server/dist/middleware/project-context.d.ts +37 -0
  345. package/node_modules/@sudocode-ai/local-server/dist/middleware/project-context.d.ts.map +1 -0
  346. package/node_modules/@sudocode-ai/local-server/dist/middleware/project-context.js +91 -0
  347. package/node_modules/@sudocode-ai/local-server/dist/middleware/project-context.js.map +1 -0
  348. package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-D4AKx6EO.css +1 -0
  349. package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-DorQqwGV.js +927 -0
  350. package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-DorQqwGV.js.map +1 -0
  351. package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-DoNwlLhy.js +60 -0
  352. package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-DoNwlLhy.js.map +1 -0
  353. package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-DlxvBun1.js +54 -0
  354. package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-DlxvBun1.js.map +1 -0
  355. package/node_modules/@sudocode-ai/local-server/dist/public/favicon.ico +0 -0
  356. package/node_modules/@sudocode-ai/local-server/dist/public/index.html +16 -0
  357. package/node_modules/@sudocode-ai/local-server/dist/public/logo.png +0 -0
  358. package/node_modules/@sudocode-ai/local-server/dist/routes/agents.d.ts +3 -0
  359. package/node_modules/@sudocode-ai/local-server/dist/routes/agents.d.ts.map +1 -0
  360. package/node_modules/@sudocode-ai/local-server/dist/routes/agents.js +62 -0
  361. package/node_modules/@sudocode-ai/local-server/dist/routes/agents.js.map +1 -0
  362. package/node_modules/@sudocode-ai/local-server/dist/routes/config.d.ts +3 -0
  363. package/node_modules/@sudocode-ai/local-server/dist/routes/config.d.ts.map +1 -0
  364. package/node_modules/@sudocode-ai/local-server/dist/routes/config.js +116 -0
  365. package/node_modules/@sudocode-ai/local-server/dist/routes/config.js.map +1 -0
  366. package/node_modules/@sudocode-ai/local-server/dist/routes/editors.d.ts +15 -0
  367. package/node_modules/@sudocode-ai/local-server/dist/routes/editors.d.ts.map +1 -0
  368. package/node_modules/@sudocode-ai/local-server/dist/routes/editors.js +98 -0
  369. package/node_modules/@sudocode-ai/local-server/dist/routes/editors.js.map +1 -0
  370. package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.d.ts +27 -0
  371. package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.d.ts.map +1 -0
  372. package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.js +59 -0
  373. package/node_modules/@sudocode-ai/local-server/dist/routes/executions-stream.js.map +1 -0
  374. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts +18 -0
  375. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts.map +1 -0
  376. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.js +1169 -0
  377. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.js.map +1 -0
  378. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.d.ts +8 -0
  379. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.d.ts.map +1 -0
  380. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js +340 -0
  381. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js.map +1 -0
  382. package/node_modules/@sudocode-ai/local-server/dist/routes/files.d.ts +18 -0
  383. package/node_modules/@sudocode-ai/local-server/dist/routes/files.d.ts.map +1 -0
  384. package/node_modules/@sudocode-ai/local-server/dist/routes/files.js +89 -0
  385. package/node_modules/@sudocode-ai/local-server/dist/routes/files.js.map +1 -0
  386. package/node_modules/@sudocode-ai/local-server/dist/routes/import.d.ts +142 -0
  387. package/node_modules/@sudocode-ai/local-server/dist/routes/import.d.ts.map +1 -0
  388. package/node_modules/@sudocode-ai/local-server/dist/routes/import.js +896 -0
  389. package/node_modules/@sudocode-ai/local-server/dist/routes/import.js.map +1 -0
  390. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts +8 -0
  391. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts.map +1 -0
  392. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js +419 -0
  393. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js.map +1 -0
  394. package/node_modules/@sudocode-ai/local-server/dist/routes/plugins.d.ts +34 -0
  395. package/node_modules/@sudocode-ai/local-server/dist/routes/plugins.d.ts.map +1 -0
  396. package/node_modules/@sudocode-ai/local-server/dist/routes/plugins.js +602 -0
  397. package/node_modules/@sudocode-ai/local-server/dist/routes/plugins.js.map +1 -0
  398. package/node_modules/@sudocode-ai/local-server/dist/routes/projects.d.ts +11 -0
  399. package/node_modules/@sudocode-ai/local-server/dist/routes/projects.d.ts.map +1 -0
  400. package/node_modules/@sudocode-ai/local-server/dist/routes/projects.js +536 -0
  401. package/node_modules/@sudocode-ai/local-server/dist/routes/projects.js.map +1 -0
  402. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts +8 -0
  403. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts.map +1 -0
  404. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js +310 -0
  405. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js.map +1 -0
  406. package/node_modules/@sudocode-ai/local-server/dist/routes/repo-info.d.ts +3 -0
  407. package/node_modules/@sudocode-ai/local-server/dist/routes/repo-info.d.ts.map +1 -0
  408. package/node_modules/@sudocode-ai/local-server/dist/routes/repo-info.js +203 -0
  409. package/node_modules/@sudocode-ai/local-server/dist/routes/repo-info.js.map +1 -0
  410. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts +8 -0
  411. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts.map +1 -0
  412. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js +414 -0
  413. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js.map +1 -0
  414. package/node_modules/@sudocode-ai/local-server/dist/routes/update.d.ts +7 -0
  415. package/node_modules/@sudocode-ai/local-server/dist/routes/update.d.ts.map +1 -0
  416. package/node_modules/@sudocode-ai/local-server/dist/routes/update.js +194 -0
  417. package/node_modules/@sudocode-ai/local-server/dist/routes/update.js.map +1 -0
  418. package/node_modules/@sudocode-ai/local-server/dist/routes/version.d.ts +3 -0
  419. package/node_modules/@sudocode-ai/local-server/dist/routes/version.d.ts.map +1 -0
  420. package/node_modules/@sudocode-ai/local-server/dist/routes/version.js +25 -0
  421. package/node_modules/@sudocode-ai/local-server/dist/routes/version.js.map +1 -0
  422. package/node_modules/@sudocode-ai/local-server/dist/routes/workflows.d.ts +8 -0
  423. package/node_modules/@sudocode-ai/local-server/dist/routes/workflows.d.ts.map +1 -0
  424. package/node_modules/@sudocode-ai/local-server/dist/routes/workflows.js +1729 -0
  425. package/node_modules/@sudocode-ai/local-server/dist/routes/workflows.js.map +1 -0
  426. package/node_modules/@sudocode-ai/local-server/dist/services/agent-registry.d.ts +140 -0
  427. package/node_modules/@sudocode-ai/local-server/dist/services/agent-registry.d.ts.map +1 -0
  428. package/node_modules/@sudocode-ai/local-server/dist/services/agent-registry.js +272 -0
  429. package/node_modules/@sudocode-ai/local-server/dist/services/agent-registry.js.map +1 -0
  430. package/node_modules/@sudocode-ai/local-server/dist/services/db.d.ts +33 -0
  431. package/node_modules/@sudocode-ai/local-server/dist/services/db.d.ts.map +1 -0
  432. package/node_modules/@sudocode-ai/local-server/dist/services/db.js +90 -0
  433. package/node_modules/@sudocode-ai/local-server/dist/services/db.js.map +1 -0
  434. package/node_modules/@sudocode-ai/local-server/dist/services/editor-service.d.ts +57 -0
  435. package/node_modules/@sudocode-ai/local-server/dist/services/editor-service.d.ts.map +1 -0
  436. package/node_modules/@sudocode-ai/local-server/dist/services/editor-service.js +204 -0
  437. package/node_modules/@sudocode-ai/local-server/dist/services/editor-service.js.map +1 -0
  438. package/node_modules/@sudocode-ai/local-server/dist/services/execution-changes-service.d.ts +110 -0
  439. package/node_modules/@sudocode-ai/local-server/dist/services/execution-changes-service.d.ts.map +1 -0
  440. package/node_modules/@sudocode-ai/local-server/dist/services/execution-changes-service.js +710 -0
  441. package/node_modules/@sudocode-ai/local-server/dist/services/execution-changes-service.js.map +1 -0
  442. package/node_modules/@sudocode-ai/local-server/dist/services/execution-event-callbacks.d.ts +73 -0
  443. package/node_modules/@sudocode-ai/local-server/dist/services/execution-event-callbacks.d.ts.map +1 -0
  444. package/node_modules/@sudocode-ai/local-server/dist/services/execution-event-callbacks.js +82 -0
  445. package/node_modules/@sudocode-ai/local-server/dist/services/execution-event-callbacks.js.map +1 -0
  446. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts +145 -0
  447. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts.map +1 -0
  448. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.js +392 -0
  449. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.js.map +1 -0
  450. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-cleanup.d.ts +88 -0
  451. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-cleanup.d.ts.map +1 -0
  452. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-cleanup.js +137 -0
  453. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-cleanup.js.map +1 -0
  454. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-store.d.ts +252 -0
  455. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-store.d.ts.map +1 -0
  456. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-store.js +379 -0
  457. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-store.js.map +1 -0
  458. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts +280 -0
  459. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts.map +1 -0
  460. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js +1240 -0
  461. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js.map +1 -0
  462. package/node_modules/@sudocode-ai/local-server/dist/services/execution-worker-pool.d.ts +116 -0
  463. package/node_modules/@sudocode-ai/local-server/dist/services/execution-worker-pool.d.ts.map +1 -0
  464. package/node_modules/@sudocode-ai/local-server/dist/services/execution-worker-pool.js +326 -0
  465. package/node_modules/@sudocode-ai/local-server/dist/services/execution-worker-pool.js.map +1 -0
  466. package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts +63 -0
  467. package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts.map +1 -0
  468. package/node_modules/@sudocode-ai/local-server/dist/services/executions.js +177 -0
  469. package/node_modules/@sudocode-ai/local-server/dist/services/executions.js.map +1 -0
  470. package/node_modules/@sudocode-ai/local-server/dist/services/export.d.ts +32 -0
  471. package/node_modules/@sudocode-ai/local-server/dist/services/export.d.ts.map +1 -0
  472. package/node_modules/@sudocode-ai/local-server/dist/services/export.js +114 -0
  473. package/node_modules/@sudocode-ai/local-server/dist/services/export.js.map +1 -0
  474. package/node_modules/@sudocode-ai/local-server/dist/services/external-refresh-service.d.ts +104 -0
  475. package/node_modules/@sudocode-ai/local-server/dist/services/external-refresh-service.d.ts.map +1 -0
  476. package/node_modules/@sudocode-ai/local-server/dist/services/external-refresh-service.js +520 -0
  477. package/node_modules/@sudocode-ai/local-server/dist/services/external-refresh-service.js.map +1 -0
  478. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts +56 -0
  479. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts.map +1 -0
  480. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js +78 -0
  481. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js.map +1 -0
  482. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/git-ls-files-strategy.d.ts +72 -0
  483. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/git-ls-files-strategy.d.ts.map +1 -0
  484. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/git-ls-files-strategy.js +176 -0
  485. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/git-ls-files-strategy.js.map +1 -0
  486. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/index.d.ts +9 -0
  487. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/index.d.ts.map +1 -0
  488. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/index.js +10 -0
  489. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/index.js.map +1 -0
  490. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/registry.d.ts +97 -0
  491. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/registry.d.ts.map +1 -0
  492. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/registry.js +140 -0
  493. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/registry.js.map +1 -0
  494. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/strategy.d.ts +58 -0
  495. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/strategy.d.ts.map +1 -0
  496. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/strategy.js +8 -0
  497. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/strategy.js.map +1 -0
  498. package/node_modules/@sudocode-ai/local-server/dist/services/integration-sync-service.d.ts +185 -0
  499. package/node_modules/@sudocode-ai/local-server/dist/services/integration-sync-service.d.ts.map +1 -0
  500. package/node_modules/@sudocode-ai/local-server/dist/services/integration-sync-service.js +428 -0
  501. package/node_modules/@sudocode-ai/local-server/dist/services/integration-sync-service.js.map +1 -0
  502. package/node_modules/@sudocode-ai/local-server/dist/services/issues.d.ts +27 -0
  503. package/node_modules/@sudocode-ai/local-server/dist/services/issues.d.ts.map +1 -0
  504. package/node_modules/@sudocode-ai/local-server/dist/services/issues.js +35 -0
  505. package/node_modules/@sudocode-ai/local-server/dist/services/issues.js.map +1 -0
  506. package/node_modules/@sudocode-ai/local-server/dist/services/project-context.d.ts +97 -0
  507. package/node_modules/@sudocode-ai/local-server/dist/services/project-context.d.ts.map +1 -0
  508. package/node_modules/@sudocode-ai/local-server/dist/services/project-context.js +170 -0
  509. package/node_modules/@sudocode-ai/local-server/dist/services/project-context.js.map +1 -0
  510. package/node_modules/@sudocode-ai/local-server/dist/services/project-manager.d.ts +102 -0
  511. package/node_modules/@sudocode-ai/local-server/dist/services/project-manager.d.ts.map +1 -0
  512. package/node_modules/@sudocode-ai/local-server/dist/services/project-manager.js +502 -0
  513. package/node_modules/@sudocode-ai/local-server/dist/services/project-manager.js.map +1 -0
  514. package/node_modules/@sudocode-ai/local-server/dist/services/project-registry.d.ts +98 -0
  515. package/node_modules/@sudocode-ai/local-server/dist/services/project-registry.d.ts.map +1 -0
  516. package/node_modules/@sudocode-ai/local-server/dist/services/project-registry.js +289 -0
  517. package/node_modules/@sudocode-ai/local-server/dist/services/project-registry.js.map +1 -0
  518. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-resolver.d.ts +97 -0
  519. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-resolver.d.ts.map +1 -0
  520. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-resolver.js +377 -0
  521. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-resolver.js.map +1 -0
  522. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.d.ts +108 -0
  523. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.d.ts.map +1 -0
  524. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.js +212 -0
  525. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.js.map +1 -0
  526. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.d.ts +97 -0
  527. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.d.ts.map +1 -0
  528. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.js +236 -0
  529. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.js.map +1 -0
  530. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.d.ts +35 -0
  531. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.d.ts.map +1 -0
  532. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.js +42 -0
  533. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.js.map +1 -0
  534. package/node_modules/@sudocode-ai/local-server/dist/services/repo-info.d.ts +33 -0
  535. package/node_modules/@sudocode-ai/local-server/dist/services/repo-info.d.ts.map +1 -0
  536. package/node_modules/@sudocode-ai/local-server/dist/services/repo-info.js +136 -0
  537. package/node_modules/@sudocode-ai/local-server/dist/services/repo-info.js.map +1 -0
  538. package/node_modules/@sudocode-ai/local-server/dist/services/specs.d.ts +27 -0
  539. package/node_modules/@sudocode-ai/local-server/dist/services/specs.d.ts.map +1 -0
  540. package/node_modules/@sudocode-ai/local-server/dist/services/specs.js +35 -0
  541. package/node_modules/@sudocode-ai/local-server/dist/services/specs.js.map +1 -0
  542. package/node_modules/@sudocode-ai/local-server/dist/services/version-service.d.ts +14 -0
  543. package/node_modules/@sudocode-ai/local-server/dist/services/version-service.d.ts.map +1 -0
  544. package/node_modules/@sudocode-ai/local-server/dist/services/version-service.js +57 -0
  545. package/node_modules/@sudocode-ai/local-server/dist/services/version-service.js.map +1 -0
  546. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts +49 -0
  547. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts.map +1 -0
  548. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.js +52 -0
  549. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.js.map +1 -0
  550. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.d.ts +179 -0
  551. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.d.ts.map +1 -0
  552. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js +543 -0
  553. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js.map +1 -0
  554. package/node_modules/@sudocode-ai/local-server/dist/services/workflow-broadcast-service.d.ts +43 -0
  555. package/node_modules/@sudocode-ai/local-server/dist/services/workflow-broadcast-service.d.ts.map +1 -0
  556. package/node_modules/@sudocode-ai/local-server/dist/services/workflow-broadcast-service.js +155 -0
  557. package/node_modules/@sudocode-ai/local-server/dist/services/workflow-broadcast-service.js.map +1 -0
  558. package/node_modules/@sudocode-ai/local-server/dist/services/worktree-sync-service.d.ts +437 -0
  559. package/node_modules/@sudocode-ai/local-server/dist/services/worktree-sync-service.d.ts.map +1 -0
  560. package/node_modules/@sudocode-ai/local-server/dist/services/worktree-sync-service.js +1505 -0
  561. package/node_modules/@sudocode-ai/local-server/dist/services/worktree-sync-service.js.map +1 -0
  562. package/node_modules/@sudocode-ai/local-server/dist/types/editor.d.ts +49 -0
  563. package/node_modules/@sudocode-ai/local-server/dist/types/editor.d.ts.map +1 -0
  564. package/node_modules/@sudocode-ai/local-server/dist/types/editor.js +50 -0
  565. package/node_modules/@sudocode-ai/local-server/dist/types/editor.js.map +1 -0
  566. package/node_modules/@sudocode-ai/local-server/dist/types/project.d.ts +58 -0
  567. package/node_modules/@sudocode-ai/local-server/dist/types/project.d.ts.map +1 -0
  568. package/node_modules/@sudocode-ai/local-server/dist/types/project.js +10 -0
  569. package/node_modules/@sudocode-ai/local-server/dist/types/project.js.map +1 -0
  570. package/node_modules/@sudocode-ai/local-server/dist/utils/execFileNoThrow.d.ts +43 -0
  571. package/node_modules/@sudocode-ai/local-server/dist/utils/execFileNoThrow.d.ts.map +1 -0
  572. package/node_modules/@sudocode-ai/local-server/dist/utils/execFileNoThrow.js +53 -0
  573. package/node_modules/@sudocode-ai/local-server/dist/utils/execFileNoThrow.js.map +1 -0
  574. package/node_modules/@sudocode-ai/local-server/dist/utils/executable-check.d.ts +36 -0
  575. package/node_modules/@sudocode-ai/local-server/dist/utils/executable-check.d.ts.map +1 -0
  576. package/node_modules/@sudocode-ai/local-server/dist/utils/executable-check.js +79 -0
  577. package/node_modules/@sudocode-ai/local-server/dist/utils/executable-check.js.map +1 -0
  578. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.d.ts +6 -0
  579. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.d.ts.map +1 -0
  580. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.js +9 -0
  581. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.js.map +1 -0
  582. package/node_modules/@sudocode-ai/local-server/dist/workers/execution-worker.d.ts +18 -0
  583. package/node_modules/@sudocode-ai/local-server/dist/workers/execution-worker.d.ts.map +1 -0
  584. package/node_modules/@sudocode-ai/local-server/dist/workers/execution-worker.js +340 -0
  585. package/node_modules/@sudocode-ai/local-server/dist/workers/execution-worker.js.map +1 -0
  586. package/node_modules/@sudocode-ai/local-server/dist/workers/worker-ipc.d.ts +84 -0
  587. package/node_modules/@sudocode-ai/local-server/dist/workers/worker-ipc.d.ts.map +1 -0
  588. package/node_modules/@sudocode-ai/local-server/dist/workers/worker-ipc.js +29 -0
  589. package/node_modules/@sudocode-ai/local-server/dist/workers/worker-ipc.js.map +1 -0
  590. package/node_modules/@sudocode-ai/local-server/dist/workflow/base-workflow-engine.d.ts +186 -0
  591. package/node_modules/@sudocode-ai/local-server/dist/workflow/base-workflow-engine.d.ts.map +1 -0
  592. package/node_modules/@sudocode-ai/local-server/dist/workflow/base-workflow-engine.js +557 -0
  593. package/node_modules/@sudocode-ai/local-server/dist/workflow/base-workflow-engine.js.map +1 -0
  594. package/node_modules/@sudocode-ai/local-server/dist/workflow/dependency-analyzer.d.ts +78 -0
  595. package/node_modules/@sudocode-ai/local-server/dist/workflow/dependency-analyzer.d.ts.map +1 -0
  596. package/node_modules/@sudocode-ai/local-server/dist/workflow/dependency-analyzer.js +264 -0
  597. package/node_modules/@sudocode-ai/local-server/dist/workflow/dependency-analyzer.js.map +1 -0
  598. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/orchestrator-engine.d.ts +237 -0
  599. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/orchestrator-engine.d.ts.map +1 -0
  600. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/orchestrator-engine.js +749 -0
  601. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/orchestrator-engine.js.map +1 -0
  602. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/sequential-engine.d.ts +276 -0
  603. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/sequential-engine.d.ts.map +1 -0
  604. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/sequential-engine.js +1110 -0
  605. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/sequential-engine.js.map +1 -0
  606. package/node_modules/@sudocode-ai/local-server/dist/workflow/index.d.ts +15 -0
  607. package/node_modules/@sudocode-ai/local-server/dist/workflow/index.d.ts.map +1 -0
  608. package/node_modules/@sudocode-ai/local-server/dist/workflow/index.js +22 -0
  609. package/node_modules/@sudocode-ai/local-server/dist/workflow/index.js.map +1 -0
  610. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/api-client.d.ts +103 -0
  611. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/api-client.d.ts.map +1 -0
  612. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/api-client.js +193 -0
  613. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/api-client.js.map +1 -0
  614. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/index.d.ts +16 -0
  615. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/index.d.ts.map +1 -0
  616. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/index.js +114 -0
  617. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/index.js.map +1 -0
  618. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/server.d.ts +85 -0
  619. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/server.d.ts.map +1 -0
  620. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/server.js +520 -0
  621. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/server.js.map +1 -0
  622. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/escalation.d.ts +36 -0
  623. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/escalation.d.ts.map +1 -0
  624. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/escalation.js +47 -0
  625. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/escalation.js.map +1 -0
  626. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/execution.d.ts +59 -0
  627. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/execution.d.ts.map +1 -0
  628. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/execution.js +67 -0
  629. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/execution.js.map +1 -0
  630. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/inspection.d.ts +82 -0
  631. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/inspection.d.ts.map +1 -0
  632. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/inspection.js +57 -0
  633. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/inspection.js.map +1 -0
  634. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/workflow.d.ts +59 -0
  635. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/workflow.d.ts.map +1 -0
  636. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/workflow.js +40 -0
  637. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/workflow.js.map +1 -0
  638. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/types.d.ts +345 -0
  639. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/types.d.ts.map +1 -0
  640. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/types.js +7 -0
  641. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/types.js.map +1 -0
  642. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/prompt-builder.d.ts +36 -0
  643. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/prompt-builder.d.ts.map +1 -0
  644. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/prompt-builder.js +329 -0
  645. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/prompt-builder.js.map +1 -0
  646. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/wakeup-service.d.ts +262 -0
  647. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/wakeup-service.d.ts.map +1 -0
  648. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/wakeup-service.js +809 -0
  649. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/wakeup-service.js.map +1 -0
  650. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-engine.d.ts +221 -0
  651. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-engine.d.ts.map +1 -0
  652. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-engine.js +94 -0
  653. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-engine.js.map +1 -0
  654. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-event-emitter.d.ts +278 -0
  655. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-event-emitter.d.ts.map +1 -0
  656. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-event-emitter.js +259 -0
  657. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-event-emitter.js.map +1 -0
  658. package/node_modules/@sudocode-ai/local-server/package.json +78 -0
  659. package/node_modules/@sudocode-ai/mcp/README.md +226 -0
  660. package/node_modules/@sudocode-ai/mcp/dist/client.d.ts +33 -0
  661. package/node_modules/@sudocode-ai/mcp/dist/client.d.ts.map +1 -0
  662. package/node_modules/@sudocode-ai/mcp/dist/client.js +166 -0
  663. package/node_modules/@sudocode-ai/mcp/dist/client.js.map +1 -0
  664. package/node_modules/@sudocode-ai/mcp/dist/index.d.ts +6 -0
  665. package/node_modules/@sudocode-ai/mcp/dist/index.d.ts.map +1 -0
  666. package/node_modules/@sudocode-ai/mcp/dist/index.js +64 -0
  667. package/node_modules/@sudocode-ai/mcp/dist/index.js.map +1 -0
  668. package/node_modules/@sudocode-ai/mcp/dist/server.d.ts +26 -0
  669. package/node_modules/@sudocode-ai/mcp/dist/server.d.ts.map +1 -0
  670. package/node_modules/@sudocode-ai/mcp/dist/server.js +577 -0
  671. package/node_modules/@sudocode-ai/mcp/dist/server.js.map +1 -0
  672. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.d.ts +41 -0
  673. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.d.ts.map +1 -0
  674. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.js +21 -0
  675. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.js.map +1 -0
  676. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.d.ts +21 -0
  677. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.d.ts.map +1 -0
  678. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.js +30 -0
  679. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.js.map +1 -0
  680. package/node_modules/@sudocode-ai/mcp/dist/tools/init.d.ts +17 -0
  681. package/node_modules/@sudocode-ai/mcp/dist/tools/init.d.ts.map +1 -0
  682. package/node_modules/@sudocode-ai/mcp/dist/tools/init.js +15 -0
  683. package/node_modules/@sudocode-ai/mcp/dist/tools/init.js.map +1 -0
  684. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.d.ts +44 -0
  685. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.d.ts.map +1 -0
  686. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.js +109 -0
  687. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.js.map +1 -0
  688. package/node_modules/@sudocode-ai/mcp/dist/tools/references.d.ts +21 -0
  689. package/node_modules/@sudocode-ai/mcp/dist/tools/references.d.ts.map +1 -0
  690. package/node_modules/@sudocode-ai/mcp/dist/tools/references.js +49 -0
  691. package/node_modules/@sudocode-ai/mcp/dist/tools/references.js.map +1 -0
  692. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.d.ts +15 -0
  693. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.d.ts.map +1 -0
  694. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.js +18 -0
  695. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.js.map +1 -0
  696. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.d.ts +35 -0
  697. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.d.ts.map +1 -0
  698. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.js +85 -0
  699. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.js.map +1 -0
  700. package/node_modules/@sudocode-ai/mcp/dist/types.d.ts +35 -0
  701. package/node_modules/@sudocode-ai/mcp/dist/types.d.ts.map +1 -0
  702. package/node_modules/@sudocode-ai/mcp/dist/types.js +21 -0
  703. package/node_modules/@sudocode-ai/mcp/dist/types.js.map +1 -0
  704. package/node_modules/@sudocode-ai/mcp/package.json +67 -0
  705. package/node_modules/@sudocode-ai/types/README.md +7 -0
  706. package/node_modules/@sudocode-ai/types/package.json +76 -0
  707. package/node_modules/@sudocode-ai/types/src/agents.d.ts +278 -0
  708. package/node_modules/@sudocode-ai/types/src/artifacts.d.ts +66 -0
  709. package/node_modules/@sudocode-ai/types/src/events.d.ts +70 -0
  710. package/node_modules/@sudocode-ai/types/src/index.d.ts +452 -0
  711. package/node_modules/@sudocode-ai/types/src/integrations.d.ts +454 -0
  712. package/node_modules/@sudocode-ai/types/src/workflows.d.ts +501 -0
  713. package/node_modules/commander/LICENSE +22 -0
  714. package/node_modules/commander/Readme.md +1149 -0
  715. package/node_modules/commander/esm.mjs +16 -0
  716. package/node_modules/commander/index.js +24 -0
  717. package/node_modules/commander/lib/argument.js +149 -0
  718. package/node_modules/commander/lib/command.js +2662 -0
  719. package/node_modules/commander/lib/error.js +39 -0
  720. package/node_modules/commander/lib/help.js +709 -0
  721. package/node_modules/commander/lib/option.js +367 -0
  722. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  723. package/node_modules/commander/package-support.json +16 -0
  724. package/node_modules/commander/package.json +82 -0
  725. package/node_modules/commander/typings/esm.d.mts +3 -0
  726. package/node_modules/commander/typings/index.d.ts +1045 -0
  727. package/node_modules/glob/LICENSE +15 -0
  728. package/node_modules/glob/README.md +1265 -0
  729. package/node_modules/glob/package.json +99 -0
  730. package/node_modules/isexe/LICENSE +15 -0
  731. package/node_modules/isexe/README.md +74 -0
  732. package/node_modules/isexe/package.json +96 -0
  733. package/node_modules/which/LICENSE +15 -0
  734. package/node_modules/which/README.md +51 -0
  735. package/node_modules/which/bin/which.js +52 -0
  736. package/node_modules/which/lib/index.js +111 -0
  737. package/node_modules/which/package.json +52 -0
  738. package/package.json +9 -9
@@ -0,0 +1,1110 @@
1
+ /**
2
+ * Sequential Workflow Engine
3
+ *
4
+ * Executes workflow steps in topological order with worktree reuse.
5
+ * Supports both sequential and parallel execution modes.
6
+ */
7
+ import { exec } from "child_process";
8
+ import { promisify } from "util";
9
+ import * as path from "path";
10
+ import { getIssue, updateIssue, } from "@sudocode-ai/cli/dist/operations/issues.js";
11
+ import { readJSONLSync, writeJSONL, } from "@sudocode-ai/cli/dist/jsonl.js";
12
+ const execAsync = promisify(exec);
13
+ import { BaseWorkflowEngine } from "../base-workflow-engine.js";
14
+ import { WorkflowCycleError, WorkflowStateError, WorkflowStepNotFoundError, } from "../workflow-engine.js";
15
+ import { getExecution } from "../../services/executions.js";
16
+ // =============================================================================
17
+ // Sequential Workflow Engine
18
+ // =============================================================================
19
+ /**
20
+ * Sequential Workflow Engine implementation.
21
+ *
22
+ * Executes workflow steps in topological order (respecting dependencies).
23
+ * Features:
24
+ * - Single shared worktree for all steps
25
+ * - Auto-commit after each step (configurable)
26
+ * - Configurable failure handling (stop, pause, skip_dependents, continue)
27
+ * - Support for parallel execution of independent steps
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const engine = new SequentialWorkflowEngine(db, executionService, repoPath);
32
+ *
33
+ * // Create workflow from a spec
34
+ * const workflow = await engine.createWorkflow({
35
+ * type: "spec",
36
+ * specId: "s-auth"
37
+ * });
38
+ *
39
+ * // Start execution
40
+ * await engine.startWorkflow(workflow.id);
41
+ *
42
+ * // Subscribe to events
43
+ * engine.onWorkflowEvent((event) => {
44
+ * console.log(event.type, event);
45
+ * });
46
+ * ```
47
+ */
48
+ export class SequentialWorkflowEngine extends BaseWorkflowEngine {
49
+ executionService;
50
+ lifecycleService;
51
+ repoPath;
52
+ activeWorkflows = new Map();
53
+ constructor(db, executionService, lifecycleService, repoPath, eventEmitter) {
54
+ super(db, eventEmitter);
55
+ this.executionService = executionService;
56
+ this.lifecycleService = lifecycleService;
57
+ this.repoPath = repoPath;
58
+ }
59
+ // ===========================================================================
60
+ // Workflow Creation
61
+ // ===========================================================================
62
+ /**
63
+ * Create a new workflow from a source definition.
64
+ *
65
+ * @param source - How to determine workflow scope (spec, issues, root_issue, or goal)
66
+ * @param config - Optional configuration overrides (includes baseBranch, title)
67
+ * @returns The created workflow
68
+ * @throws WorkflowCycleError if dependency cycles are detected
69
+ */
70
+ async createWorkflow(source, config) {
71
+ // 1. Resolve source to issue IDs
72
+ const issueIds = await this.resolveSource(source);
73
+ // 2. Handle goal-based workflows (no initial issues)
74
+ if (source.type === "goal" && issueIds.length === 0) {
75
+ // Goal workflows start with no steps - orchestrator creates them
76
+ const workflow = this.buildWorkflow({
77
+ source,
78
+ steps: [],
79
+ config: config || {},
80
+ repoPath: this.repoPath,
81
+ });
82
+ this.saveWorkflow(workflow);
83
+ return workflow;
84
+ }
85
+ // 3. Build dependency graph
86
+ const graph = this.analyzeDependencies(issueIds);
87
+ // 4. Check for cycles
88
+ if (graph.cycles && graph.cycles.length > 0) {
89
+ throw new WorkflowCycleError(graph.cycles);
90
+ }
91
+ // 5. Create steps from graph
92
+ const steps = this.createStepsFromGraph(graph);
93
+ // 6. Build workflow object
94
+ const workflow = this.buildWorkflow({
95
+ source,
96
+ steps,
97
+ config: config || {},
98
+ repoPath: this.repoPath,
99
+ });
100
+ // 7. Save to database
101
+ this.saveWorkflow(workflow);
102
+ return workflow;
103
+ }
104
+ // ===========================================================================
105
+ // Workflow Recovery
106
+ // ===========================================================================
107
+ /**
108
+ * Recover workflows that were running when the server crashed.
109
+ *
110
+ * This method:
111
+ * 1. Finds all sequential workflows in 'running' or 'paused' status
112
+ * 2. Reconstructs the activeWorkflows Map from database state
113
+ * 3. Handles any steps that were 'running' when the server crashed
114
+ * 4. Resumes execution loops for 'running' workflows
115
+ *
116
+ * Should be called during server startup after engine initialization.
117
+ */
118
+ async recoverWorkflows() {
119
+ console.log("[SequentialWorkflowEngine] Starting workflow recovery...");
120
+ // Find all sequential workflows that need recovery
121
+ const rows = this.db
122
+ .prepare(`
123
+ SELECT * FROM workflows
124
+ WHERE status IN ('running', 'paused')
125
+ AND json_extract(config, '$.engineType') = 'sequential'
126
+ `)
127
+ .all();
128
+ console.log(`[SequentialWorkflowEngine] Found ${rows.length} workflows to recover`);
129
+ for (const row of rows) {
130
+ try {
131
+ await this.recoverSingleWorkflow(row);
132
+ }
133
+ catch (error) {
134
+ console.error(`[SequentialWorkflowEngine] Failed to recover workflow ${row.id}:`, error);
135
+ // Continue with other workflows even if one fails
136
+ }
137
+ }
138
+ console.log("[SequentialWorkflowEngine] Workflow recovery complete");
139
+ }
140
+ /**
141
+ * Recover a single workflow from its database row.
142
+ */
143
+ async recoverSingleWorkflow(row) {
144
+ const workflowId = row.id;
145
+ const isPaused = row.status === "paused";
146
+ console.log(`[SequentialWorkflowEngine] Recovering workflow ${workflowId} (status: ${row.status})`);
147
+ // Reconstruct activeWorkflows entry
148
+ this.activeWorkflows.set(workflowId, {
149
+ workflowId,
150
+ isPaused,
151
+ isCancelled: false,
152
+ });
153
+ // Parse steps to find any that were running
154
+ const steps = JSON.parse(row.steps);
155
+ const runningStep = steps.find((s) => s.status === "running");
156
+ if (runningStep) {
157
+ console.log(`[SequentialWorkflowEngine] Found running step ${runningStep.id} (execution: ${runningStep.executionId})`);
158
+ await this.handleCrashedStep(workflowId, runningStep, row);
159
+ }
160
+ // Resume execution loop if workflow was running (not paused)
161
+ if (!isPaused) {
162
+ console.log(`[SequentialWorkflowEngine] Resuming execution loop for workflow ${workflowId}`);
163
+ this.runExecutionLoop(workflowId).catch((error) => {
164
+ console.error(`[SequentialWorkflowEngine] Recovered workflow ${workflowId} execution loop failed:`, error);
165
+ this.failWorkflow(workflowId, error.message).catch(console.error);
166
+ });
167
+ }
168
+ else {
169
+ console.log(`[SequentialWorkflowEngine] Workflow ${workflowId} is paused, not resuming execution loop`);
170
+ }
171
+ }
172
+ /**
173
+ * Handle a step that was running when the server crashed.
174
+ */
175
+ async handleCrashedStep(workflowId, step, workflowRow) {
176
+ if (!step.executionId) {
177
+ // Step was marked running but no execution was created yet
178
+ // Reset to pending so it can be retried
179
+ console.log(`[SequentialWorkflowEngine] Step ${step.id} has no execution, resetting to pending`);
180
+ this.updateStep(workflowId, step.id, {
181
+ status: "pending",
182
+ error: undefined,
183
+ });
184
+ return;
185
+ }
186
+ // Check the execution status
187
+ const execution = getExecution(this.db, step.executionId);
188
+ if (!execution) {
189
+ // Execution record doesn't exist - this shouldn't happen but handle it
190
+ console.warn(`[SequentialWorkflowEngine] Execution ${step.executionId} not found, marking step as failed`);
191
+ this.updateStep(workflowId, step.id, {
192
+ status: "failed",
193
+ error: "Execution record not found after server restart",
194
+ });
195
+ await this.handleRecoveredStepFailure(workflowId, step, workflowRow);
196
+ return;
197
+ }
198
+ // Handle based on execution status
199
+ switch (execution.status) {
200
+ case "completed":
201
+ // Execution completed but we didn't record step success
202
+ console.log(`[SequentialWorkflowEngine] Execution ${step.executionId} completed, handling success`);
203
+ await this.handleRecoveredStepSuccess(workflowId, step, execution, workflowRow);
204
+ break;
205
+ case "failed":
206
+ case "cancelled":
207
+ case "stopped":
208
+ // Execution failed/cancelled but we didn't record step failure
209
+ console.log(`[SequentialWorkflowEngine] Execution ${step.executionId} ${execution.status}, handling failure`);
210
+ this.updateStep(workflowId, step.id, {
211
+ status: "failed",
212
+ error: execution.error_message || `Execution ${execution.status}`,
213
+ });
214
+ await this.handleRecoveredStepFailure(workflowId, step, workflowRow);
215
+ break;
216
+ case "running":
217
+ case "pending":
218
+ case "preparing":
219
+ case "paused":
220
+ // Execution was still in progress - it's now orphaned
221
+ // Mark as failed since the process is gone
222
+ console.log(`[SequentialWorkflowEngine] Execution ${step.executionId} was ${execution.status}, marking as failed`);
223
+ this.updateStep(workflowId, step.id, {
224
+ status: "failed",
225
+ error: "Server crashed during execution",
226
+ });
227
+ await this.handleRecoveredStepFailure(workflowId, step, workflowRow);
228
+ break;
229
+ default:
230
+ console.warn(`[SequentialWorkflowEngine] Unknown execution status: ${execution.status}`);
231
+ this.updateStep(workflowId, step.id, {
232
+ status: "failed",
233
+ error: `Unknown execution status: ${execution.status}`,
234
+ });
235
+ await this.handleRecoveredStepFailure(workflowId, step, workflowRow);
236
+ }
237
+ }
238
+ /**
239
+ * Handle step success during recovery.
240
+ */
241
+ async handleRecoveredStepSuccess(workflowId, step, execution, workflowRow) {
242
+ // Update step status
243
+ this.updateStep(workflowId, step.id, {
244
+ status: "completed",
245
+ commitSha: execution.after_commit ?? undefined,
246
+ });
247
+ // Update workflow progress
248
+ this.updateWorkflow(workflowId, {
249
+ currentStepIndex: workflowRow.current_step_index + 1,
250
+ });
251
+ // Close the issue in the worktree JSONL if available
252
+ await this.closeIssue(step.issueId, workflowRow.worktree_path ?? undefined);
253
+ }
254
+ /**
255
+ * Handle step failure during recovery.
256
+ * Applies the workflow's onFailure strategy.
257
+ */
258
+ async handleRecoveredStepFailure(workflowId, step, workflowRow) {
259
+ const config = JSON.parse(workflowRow.config);
260
+ const steps = JSON.parse(workflowRow.steps);
261
+ // Build a minimal workflow object for helper methods
262
+ const workflow = {
263
+ id: workflowId,
264
+ title: workflowRow.title,
265
+ source: JSON.parse(workflowRow.source),
266
+ status: workflowRow.status,
267
+ steps,
268
+ worktreePath: workflowRow.worktree_path ?? undefined,
269
+ branchName: workflowRow.branch_name ?? undefined,
270
+ baseBranch: workflowRow.base_branch,
271
+ currentStepIndex: workflowRow.current_step_index,
272
+ config,
273
+ createdAt: "",
274
+ updatedAt: "",
275
+ };
276
+ // Apply failure strategy
277
+ switch (config.onFailure) {
278
+ case "stop":
279
+ await this.failWorkflow(workflowId, `Step ${step.id} failed during recovery`);
280
+ break;
281
+ case "pause":
282
+ this.updateWorkflow(workflowId, { status: "paused" });
283
+ const state = this.activeWorkflows.get(workflowId);
284
+ if (state) {
285
+ state.isPaused = true;
286
+ }
287
+ break;
288
+ case "skip_dependents":
289
+ await this.skipDependentSteps(workflow, step, `Dependency ${step.issueId} failed during recovery`);
290
+ break;
291
+ case "continue":
292
+ await this.blockDependentSteps(workflow, step);
293
+ break;
294
+ }
295
+ }
296
+ // ===========================================================================
297
+ // Workflow Lifecycle
298
+ // ===========================================================================
299
+ /**
300
+ * Start executing a pending workflow.
301
+ *
302
+ * Creates a worktree and begins the execution loop.
303
+ *
304
+ * @param workflowId - The workflow to start
305
+ * @throws WorkflowNotFoundError if workflow doesn't exist
306
+ * @throws WorkflowStateError if workflow is not in pending state
307
+ */
308
+ async startWorkflow(workflowId) {
309
+ const workflow = await this.getWorkflowOrThrow(workflowId);
310
+ // Validate state
311
+ if (workflow.status !== "pending") {
312
+ throw new WorkflowStateError(workflowId, workflow.status, "start");
313
+ }
314
+ // Create workflow-level worktree if not already present
315
+ if (!workflow.worktreePath) {
316
+ const { worktreePath, branchName } = await this.createWorkflowWorktreeHelper(workflow, this.repoPath, this.lifecycleService);
317
+ // Update local workflow reference with worktree info
318
+ workflow.worktreePath = worktreePath;
319
+ workflow.branchName = branchName;
320
+ }
321
+ // Initialize workflow state
322
+ this.activeWorkflows.set(workflowId, {
323
+ workflowId,
324
+ isPaused: false,
325
+ isCancelled: false,
326
+ });
327
+ // Update status to running
328
+ const updated = this.updateWorkflow(workflowId, {
329
+ status: "running",
330
+ startedAt: new Date().toISOString(),
331
+ });
332
+ // Emit workflow started event
333
+ this.eventEmitter.emit({
334
+ type: "workflow_started",
335
+ workflowId,
336
+ workflow: updated,
337
+ timestamp: Date.now(),
338
+ });
339
+ // Start execution loop (non-blocking)
340
+ this.runExecutionLoop(workflowId).catch((error) => {
341
+ console.error(`Workflow ${workflowId} execution loop failed:`, error);
342
+ this.failWorkflow(workflowId, error.message).catch(console.error);
343
+ });
344
+ }
345
+ /**
346
+ * Pause a running workflow, cancelling the current execution.
347
+ *
348
+ * The current step is reset to "pending" so it can be re-executed on resume.
349
+ *
350
+ * @param workflowId - The workflow to pause
351
+ * @throws WorkflowNotFoundError if workflow doesn't exist
352
+ * @throws WorkflowStateError if workflow is not running
353
+ */
354
+ async pauseWorkflow(workflowId) {
355
+ const workflow = await this.getWorkflowOrThrow(workflowId);
356
+ if (workflow.status !== "running") {
357
+ throw new WorkflowStateError(workflowId, workflow.status, "pause");
358
+ }
359
+ // Set pause flag for execution loop
360
+ const state = this.activeWorkflows.get(workflowId);
361
+ if (state) {
362
+ state.isPaused = true;
363
+ // Cancel current execution if running and reset the step status
364
+ // Keep the executionId so we can resume the session later
365
+ if (state.currentExecutionId) {
366
+ try {
367
+ await this.executionService.cancelExecution(state.currentExecutionId);
368
+ // Find the running step and reset status to pending (keep executionId for resume)
369
+ const runningStep = workflow.steps.find((s) => s.status === "running");
370
+ if (runningStep) {
371
+ this.updateStep(workflowId, runningStep.id, {
372
+ status: "pending",
373
+ // Keep executionId so we can resume the session
374
+ error: undefined,
375
+ });
376
+ console.log(`[SequentialWorkflowEngine] Reset step ${runningStep.id} to pending after pause (keeping executionId for resume)`);
377
+ }
378
+ }
379
+ catch (error) {
380
+ console.warn(`[SequentialWorkflowEngine] Failed to cancel execution ${state.currentExecutionId}:`, error);
381
+ }
382
+ state.currentExecutionId = undefined;
383
+ }
384
+ }
385
+ // Update status
386
+ this.updateWorkflow(workflowId, { status: "paused" });
387
+ // Emit event
388
+ this.eventEmitter.emit({
389
+ type: "workflow_paused",
390
+ workflowId,
391
+ timestamp: Date.now(),
392
+ });
393
+ }
394
+ /**
395
+ * Resume a paused workflow.
396
+ *
397
+ * @param workflowId - The workflow to resume
398
+ * @param _message - Optional message (not used in sequential engine, no orchestrator)
399
+ * @throws WorkflowNotFoundError if workflow doesn't exist
400
+ * @throws WorkflowStateError if workflow is not paused
401
+ */
402
+ async resumeWorkflow(workflowId, _message) {
403
+ const workflow = await this.getWorkflowOrThrow(workflowId);
404
+ if (workflow.status !== "paused") {
405
+ throw new WorkflowStateError(workflowId, workflow.status, "resume");
406
+ }
407
+ // Clear pause flag
408
+ let state = this.activeWorkflows.get(workflowId);
409
+ if (!state) {
410
+ state = {
411
+ workflowId,
412
+ isPaused: false,
413
+ isCancelled: false,
414
+ };
415
+ this.activeWorkflows.set(workflowId, state);
416
+ }
417
+ state.isPaused = false;
418
+ // Update status
419
+ this.updateWorkflow(workflowId, { status: "running" });
420
+ // Emit event
421
+ this.eventEmitter.emit({
422
+ type: "workflow_resumed",
423
+ workflowId,
424
+ timestamp: Date.now(),
425
+ });
426
+ // Restart execution loop
427
+ this.runExecutionLoop(workflowId).catch((error) => {
428
+ console.error(`Workflow ${workflowId} execution loop failed:`, error);
429
+ this.failWorkflow(workflowId, error.message).catch(console.error);
430
+ });
431
+ }
432
+ /**
433
+ * Cancel a workflow, stopping any running executions.
434
+ *
435
+ * @param workflowId - The workflow to cancel
436
+ * @throws WorkflowNotFoundError if workflow doesn't exist
437
+ * @throws WorkflowStateError if workflow is already completed/failed/cancelled
438
+ */
439
+ async cancelWorkflow(workflowId) {
440
+ const workflow = await this.getWorkflowOrThrow(workflowId);
441
+ // Check if already in terminal state
442
+ if (["completed", "failed", "cancelled"].includes(workflow.status)) {
443
+ throw new WorkflowStateError(workflowId, workflow.status, "cancel");
444
+ }
445
+ // Set cancel flag
446
+ const state = this.activeWorkflows.get(workflowId);
447
+ if (state) {
448
+ state.isCancelled = true;
449
+ // Cancel current execution if running
450
+ if (state.currentExecutionId) {
451
+ try {
452
+ await this.executionService.cancelExecution(state.currentExecutionId);
453
+ }
454
+ catch (error) {
455
+ console.warn(`Failed to cancel execution ${state.currentExecutionId}:`, error);
456
+ }
457
+ }
458
+ }
459
+ // Update status
460
+ this.updateWorkflow(workflowId, {
461
+ status: "cancelled",
462
+ completedAt: new Date().toISOString(),
463
+ });
464
+ // Emit event
465
+ this.eventEmitter.emit({
466
+ type: "workflow_cancelled",
467
+ workflowId,
468
+ timestamp: Date.now(),
469
+ });
470
+ // Cleanup
471
+ this.activeWorkflows.delete(workflowId);
472
+ }
473
+ // ===========================================================================
474
+ // Step Control
475
+ // ===========================================================================
476
+ /**
477
+ * Retry a failed step.
478
+ *
479
+ * Resets the step status to pending and unblocks dependent steps.
480
+ * If the workflow was paused due to the failure, it will be resumed.
481
+ *
482
+ * @param workflowId - The workflow containing the step
483
+ * @param stepId - The step to retry
484
+ * @throws WorkflowNotFoundError if workflow doesn't exist
485
+ * @throws WorkflowStepNotFoundError if step doesn't exist
486
+ * @throws WorkflowStateError if step is not in failed state
487
+ */
488
+ async retryStep(workflowId, stepId) {
489
+ const workflow = await this.getWorkflowOrThrow(workflowId);
490
+ const step = workflow.steps.find((s) => s.id === stepId);
491
+ if (!step) {
492
+ throw new WorkflowStepNotFoundError(workflowId, stepId);
493
+ }
494
+ if (step.status !== "failed") {
495
+ throw new WorkflowStateError(workflowId, `step ${stepId} is ${step.status}`, "retry");
496
+ }
497
+ // Reset step status
498
+ this.updateStep(workflowId, stepId, {
499
+ status: "pending",
500
+ error: undefined,
501
+ executionId: undefined,
502
+ });
503
+ // Unblock dependent steps
504
+ await this.unblockDependentSteps(workflow, step);
505
+ // Resume workflow if paused
506
+ if (workflow.status === "paused") {
507
+ await this.resumeWorkflow(workflowId);
508
+ }
509
+ }
510
+ /**
511
+ * Skip a step and handle its dependents.
512
+ *
513
+ * @param workflowId - The workflow containing the step
514
+ * @param stepId - The step to skip
515
+ * @param reason - Optional reason for skipping
516
+ * @throws WorkflowNotFoundError if workflow doesn't exist
517
+ * @throws WorkflowStepNotFoundError if step doesn't exist
518
+ */
519
+ async skipStep(workflowId, stepId, reason) {
520
+ const workflow = await this.getWorkflowOrThrow(workflowId);
521
+ const step = workflow.steps.find((s) => s.id === stepId);
522
+ if (!step) {
523
+ throw new WorkflowStepNotFoundError(workflowId, stepId);
524
+ }
525
+ const skipReason = reason || "Manually skipped";
526
+ // Mark as skipped
527
+ this.updateStep(workflowId, stepId, {
528
+ status: "skipped",
529
+ error: skipReason,
530
+ });
531
+ // Emit event
532
+ this.eventEmitter.emit({
533
+ type: "step_skipped",
534
+ workflowId,
535
+ step: { ...step, status: "skipped", error: skipReason },
536
+ reason: skipReason,
537
+ timestamp: Date.now(),
538
+ });
539
+ // Handle dependents based on config
540
+ if (workflow.config.onFailure === "skip_dependents") {
541
+ await this.skipDependentSteps(workflow, step, "Dependency skipped");
542
+ }
543
+ else {
544
+ await this.blockDependentSteps(workflow, step);
545
+ }
546
+ // Resume workflow if paused
547
+ if (workflow.status === "paused") {
548
+ await this.resumeWorkflow(workflowId);
549
+ }
550
+ }
551
+ // ===========================================================================
552
+ // Execution Loop
553
+ // ===========================================================================
554
+ /**
555
+ * Main execution loop for the workflow.
556
+ * Runs steps in topological order, respecting dependencies.
557
+ *
558
+ * @param workflowId - The workflow to execute
559
+ */
560
+ async runExecutionLoop(workflowId) {
561
+ while (true) {
562
+ // Check workflow state
563
+ const state = this.activeWorkflows.get(workflowId);
564
+ if (!state || state.isPaused || state.isCancelled) {
565
+ break;
566
+ }
567
+ // Get current workflow state
568
+ const workflow = await this.getWorkflowOrThrow(workflowId);
569
+ // Check if workflow is complete
570
+ if (this.isWorkflowComplete(workflow)) {
571
+ await this.completeWorkflow(workflowId);
572
+ break;
573
+ }
574
+ // Get ready steps (dependencies satisfied)
575
+ const readySteps = await this.getReadySteps(workflowId);
576
+ if (readySteps.length === 0) {
577
+ // No ready steps but workflow not complete - likely all remaining steps are blocked
578
+ // This can happen if a step fails and dependents are blocked
579
+ const hasBlockedOrFailed = workflow.steps.some((s) => s.status === "blocked" || s.status === "failed");
580
+ if (hasBlockedOrFailed) {
581
+ // Workflow is stuck, wait for user intervention (retry/skip)
582
+ break;
583
+ }
584
+ // Should not happen - safeguard against infinite loop
585
+ console.warn(`Workflow ${workflowId}: No ready steps but workflow not complete`);
586
+ break;
587
+ }
588
+ // Execute steps based on parallelism config
589
+ if (workflow.config.parallelism === "sequential") {
590
+ // Execute one step at a time
591
+ await this.executeStep(workflow, readySteps[0]);
592
+ }
593
+ else {
594
+ // Execute multiple ready steps in parallel mode
595
+ // Note: For Phase 4, this uses shared worktree with sequential commits
596
+ // True parallel execution with separate branches is a future enhancement
597
+ await this.executeParallel(workflow, readySteps);
598
+ }
599
+ }
600
+ }
601
+ /**
602
+ * Execute multiple steps in parallel mode.
603
+ *
604
+ * For Phase 4, this uses a shared worktree with sequential commits.
605
+ * Steps are executed one after another but all ready steps in the batch
606
+ * are processed before re-checking dependencies.
607
+ *
608
+ * Future enhancement: True parallel execution with separate branches
609
+ * and merge handling.
610
+ *
611
+ * @param workflow - The workflow containing the steps
612
+ * @param steps - The ready steps to execute
613
+ */
614
+ async executeParallel(workflow, steps) {
615
+ // Respect maxConcurrency limit
616
+ const maxConcurrency = workflow.config.maxConcurrency ?? steps.length;
617
+ const toExecute = steps.slice(0, maxConcurrency);
618
+ // Track failed steps for batch failure handling
619
+ const failedSteps = [];
620
+ // Execute steps sequentially within the batch
621
+ // (shared worktree requires sequential commits)
622
+ for (const step of toExecute) {
623
+ // Check for pause/cancel between steps
624
+ const state = this.activeWorkflows.get(workflow.id);
625
+ if (!state || state.isPaused || state.isCancelled) {
626
+ break;
627
+ }
628
+ try {
629
+ await this.executeStep(workflow, step);
630
+ // Refresh workflow state to check if step succeeded
631
+ const updatedWorkflow = await this.getWorkflowOrThrow(workflow.id);
632
+ const updatedStep = updatedWorkflow.steps.find((s) => s.id === step.id);
633
+ if (updatedStep?.status === "failed") {
634
+ failedSteps.push(updatedStep);
635
+ // For "stop" strategy, break immediately
636
+ if (workflow.config.onFailure === "stop") {
637
+ break;
638
+ }
639
+ // For "pause" strategy, the workflow is already paused by handleStepFailure
640
+ if (updatedWorkflow.status === "paused") {
641
+ break;
642
+ }
643
+ }
644
+ }
645
+ catch (error) {
646
+ // Unexpected error during step execution
647
+ console.error(`Error executing step ${step.id}:`, error);
648
+ failedSteps.push(step);
649
+ if (workflow.config.onFailure === "stop") {
650
+ throw error;
651
+ }
652
+ }
653
+ }
654
+ }
655
+ /**
656
+ * Execute a single workflow step.
657
+ *
658
+ * If the step has a previous execution (from a pause), attempts to resume
659
+ * the session. Otherwise creates a new execution.
660
+ *
661
+ * @param workflow - The workflow containing the step
662
+ * @param step - The step to execute
663
+ */
664
+ async executeStep(workflow, step) {
665
+ const state = this.activeWorkflows.get(workflow.id);
666
+ // 1. Get issue details for prompt
667
+ const issue = getIssue(this.db, step.issueId);
668
+ if (!issue) {
669
+ throw new Error(`Issue ${step.issueId} not found`);
670
+ }
671
+ // 2. Check if we should resume a previous execution
672
+ let sessionIdToResume;
673
+ let parentExecutionId;
674
+ if (step.executionId) {
675
+ const previousExecution = getExecution(this.db, step.executionId);
676
+ if (previousExecution?.session_id) {
677
+ sessionIdToResume = previousExecution.session_id;
678
+ parentExecutionId = step.executionId; // Link to previous execution
679
+ console.log(`[SequentialWorkflowEngine] Resuming step ${step.id} with session ${sessionIdToResume} (parent: ${parentExecutionId})`);
680
+ }
681
+ }
682
+ // 3. Build execution config - always use workflow's worktree
683
+ // Workflow-spawned executions run autonomously without terminal interaction
684
+ const config = {
685
+ mode: "worktree",
686
+ baseBranch: workflow.baseBranch,
687
+ createBaseBranch: workflow.config.createBaseBranch,
688
+ reuseWorktreePath: workflow.worktreePath,
689
+ // Workflow step executions run autonomously - must skip permission prompts
690
+ dangerouslySkipPermissions: true,
691
+ // Use workflow's orchestrator model for consistency if available
692
+ model: workflow.config.orchestratorModel,
693
+ // Resume previous session if available
694
+ resume: sessionIdToResume,
695
+ // Link to parent execution for chain tracking
696
+ parentExecutionId,
697
+ };
698
+ // 4. Build prompt - use resume message if resuming, otherwise full prompt
699
+ const prompt = sessionIdToResume
700
+ ? "Workflow resumed. Continue where you left off."
701
+ : this.buildPrompt(issue, workflow);
702
+ // 5. Update step status to running
703
+ this.updateStep(workflow.id, step.id, {
704
+ status: "running",
705
+ });
706
+ // 6. Emit step started event
707
+ this.eventEmitter.emit({
708
+ type: "step_started",
709
+ workflowId: workflow.id,
710
+ step: { ...step, status: "running" },
711
+ timestamp: Date.now(),
712
+ });
713
+ // 7. Create execution (will resume session if config.resume is set)
714
+ const execution = await this.executionService.createExecution(step.issueId, config, prompt, workflow.config.defaultAgentType);
715
+ // Track current execution
716
+ if (state) {
717
+ state.currentExecutionId = execution.id;
718
+ }
719
+ // Update step with new execution ID
720
+ this.updateStep(workflow.id, step.id, {
721
+ executionId: execution.id,
722
+ });
723
+ // 8. Wait for execution to complete
724
+ const completedExecution = await this.waitForExecution(execution.id);
725
+ // Clear current execution tracking
726
+ if (state) {
727
+ state.currentExecutionId = undefined;
728
+ }
729
+ // 9. Check if workflow was paused/cancelled during execution
730
+ // If so, don't treat the cancelled execution as a failure
731
+ if (state?.isPaused || state?.isCancelled) {
732
+ console.log(`[SequentialWorkflowEngine] Step ${step.id} execution ended due to workflow ${state.isPaused ? "pause" : "cancel"}, not treating as failure`);
733
+ return;
734
+ }
735
+ // 10. Handle result
736
+ if (completedExecution.status === "completed") {
737
+ await this.handleStepSuccess(workflow, step, completedExecution);
738
+ }
739
+ else {
740
+ await this.handleStepFailure(workflow, step, completedExecution);
741
+ }
742
+ }
743
+ /**
744
+ * Wait for an execution to complete by polling.
745
+ *
746
+ * @param executionId - The execution to wait for
747
+ * @returns The completed execution
748
+ */
749
+ async waitForExecution(executionId) {
750
+ const pollIntervalMs = 1000; // 1 second
751
+ const maxWaitMs = 60 * 60 * 1000; // 1 hour max
752
+ const startTime = Date.now();
753
+ while (true) {
754
+ const execution = getExecution(this.db, executionId);
755
+ if (!execution) {
756
+ throw new Error(`Execution ${executionId} not found`);
757
+ }
758
+ // Check if execution is in a terminal state
759
+ if (execution.status === "completed" ||
760
+ execution.status === "failed" ||
761
+ execution.status === "stopped" ||
762
+ execution.status === "cancelled") {
763
+ return execution;
764
+ }
765
+ // Check timeout
766
+ if (Date.now() - startTime > maxWaitMs) {
767
+ throw new Error(`Execution ${executionId} timed out after ${maxWaitMs}ms`);
768
+ }
769
+ // Wait before next poll
770
+ await this.sleep(pollIntervalMs);
771
+ }
772
+ }
773
+ /**
774
+ * Sleep for a specified duration.
775
+ */
776
+ sleep(ms) {
777
+ return new Promise((resolve) => setTimeout(resolve, ms));
778
+ }
779
+ /**
780
+ * Build the prompt for executing an issue.
781
+ *
782
+ * @param issue - The issue to execute
783
+ * @param workflow - The workflow context
784
+ * @returns The prompt string
785
+ */
786
+ buildPrompt(issue, workflow) {
787
+ // Build a basic prompt from issue details
788
+ const parts = [];
789
+ parts.push(`# Task: ${issue.title}`);
790
+ parts.push("");
791
+ if (issue.content) {
792
+ parts.push("## Description");
793
+ parts.push(issue.content);
794
+ parts.push("");
795
+ }
796
+ // Add workflow context
797
+ parts.push("## Workflow Context");
798
+ parts.push(`This is step ${workflow.currentStepIndex + 1} of ${workflow.steps.length} in workflow "${workflow.title}".`);
799
+ return parts.join("\n");
800
+ }
801
+ /**
802
+ * Handle successful step completion.
803
+ *
804
+ * @param workflow - The workflow containing the step
805
+ * @param step - The completed step
806
+ * @param execution - The execution result
807
+ */
808
+ async handleStepSuccess(workflow, step, execution) {
809
+ // Convert null to undefined for type compatibility
810
+ let commitSha = execution.after_commit ?? undefined;
811
+ // Close the issue BEFORE auto-commit so the status change is included
812
+ // Use worktree path to keep changes isolated until explicit sync
813
+ await this.closeIssue(step.issueId, workflow.worktreePath);
814
+ // Auto-commit if configured and we have a worktree
815
+ // This now includes the issue status change from closeIssue above
816
+ if (workflow.config.autoCommitAfterStep && workflow.worktreePath) {
817
+ const newCommitSha = await this.commitStepChanges(workflow, step);
818
+ if (newCommitSha) {
819
+ commitSha = newCommitSha;
820
+ }
821
+ }
822
+ // Update step status
823
+ this.updateStep(workflow.id, step.id, {
824
+ status: "completed",
825
+ commitSha,
826
+ });
827
+ // Emit event
828
+ this.eventEmitter.emit({
829
+ type: "step_completed",
830
+ workflowId: workflow.id,
831
+ step: { ...step, status: "completed", commitSha },
832
+ executionId: execution.id,
833
+ timestamp: Date.now(),
834
+ });
835
+ // Update workflow progress
836
+ this.updateWorkflow(workflow.id, {
837
+ currentStepIndex: workflow.currentStepIndex + 1,
838
+ });
839
+ }
840
+ /**
841
+ * Commit step changes to git.
842
+ *
843
+ * @param workflow - The workflow containing the step
844
+ * @param step - The completed step
845
+ * @returns The commit SHA if successful, null otherwise
846
+ */
847
+ async commitStepChanges(workflow, step) {
848
+ if (!workflow.worktreePath) {
849
+ return null;
850
+ }
851
+ const issue = getIssue(this.db, step.issueId);
852
+ const message = this.buildCommitMessage(workflow, step, issue);
853
+ try {
854
+ // Check if there are changes to commit
855
+ const { stdout: status } = await execAsync("git status --porcelain", {
856
+ cwd: workflow.worktreePath,
857
+ maxBuffer: 10 * 1024 * 1024,
858
+ });
859
+ if (!status.trim()) {
860
+ // No changes to commit
861
+ return null;
862
+ }
863
+ // Stage all changes and commit
864
+ // Escape double quotes in message for shell safety
865
+ const escapedMessage = message.replace(/"/g, '\\"');
866
+ await execAsync(`git add -A && git commit -m "${escapedMessage}"`, {
867
+ cwd: workflow.worktreePath,
868
+ maxBuffer: 10 * 1024 * 1024,
869
+ });
870
+ // Get new commit SHA
871
+ const { stdout: sha } = await execAsync("git rev-parse HEAD", {
872
+ cwd: workflow.worktreePath,
873
+ });
874
+ return sha.trim();
875
+ }
876
+ catch (error) {
877
+ console.error("Failed to commit step changes:", error);
878
+ return null;
879
+ }
880
+ }
881
+ /**
882
+ * Build commit message for a step.
883
+ *
884
+ * @param workflow - The workflow
885
+ * @param step - The completed step
886
+ * @param issue - The issue (may be null)
887
+ * @returns The commit message
888
+ */
889
+ buildCommitMessage(workflow, step, issue) {
890
+ const issueTitle = issue?.title || "Unknown issue";
891
+ const stepNum = step.index + 1;
892
+ const totalSteps = workflow.steps.length;
893
+ return `[Workflow ${stepNum}/${totalSteps}] ${step.issueId}: ${issueTitle}
894
+
895
+ Workflow: ${workflow.title}
896
+ Step: ${stepNum} of ${totalSteps}`;
897
+ }
898
+ /**
899
+ * Update an issue directly in the worktree's JSONL file.
900
+ * This keeps changes isolated to the worktree until explicitly synced.
901
+ *
902
+ * @param worktreePath - Path to the worktree
903
+ * @param issueId - The issue ID to update
904
+ * @param updates - Partial issue updates to apply
905
+ */
906
+ async updateIssueInWorktree(worktreePath, issueId, updates) {
907
+ const issuesPath = path.join(worktreePath, ".sudocode", "issues.jsonl");
908
+ // Read current issues from worktree JSONL
909
+ const issues = readJSONLSync(issuesPath);
910
+ // Find and update the issue
911
+ const issueIndex = issues.findIndex((issue) => issue.id === issueId);
912
+ if (issueIndex === -1) {
913
+ console.warn(`[SequentialWorkflowEngine] Issue ${issueId} not found in worktree JSONL`);
914
+ return;
915
+ }
916
+ // Apply updates
917
+ const updatedIssue = {
918
+ ...issues[issueIndex],
919
+ ...updates,
920
+ updated_at: new Date().toISOString(),
921
+ };
922
+ // Handle closed_at for status changes
923
+ if (updates.status === "closed" && issues[issueIndex].status !== "closed") {
924
+ updatedIssue.closed_at = new Date().toISOString();
925
+ }
926
+ else if (updates.status && updates.status !== "closed" && issues[issueIndex].status === "closed") {
927
+ updatedIssue.closed_at = undefined;
928
+ }
929
+ issues[issueIndex] = updatedIssue;
930
+ // Write back to JSONL
931
+ await writeJSONL(issuesPath, issues);
932
+ console.log(`[SequentialWorkflowEngine] Updated issue ${issueId} in worktree JSONL:`, updates);
933
+ }
934
+ /**
935
+ * Close an issue after successful step completion.
936
+ * If a worktree path is provided, updates the worktree's JSONL directly.
937
+ * Otherwise, updates the main database.
938
+ *
939
+ * @param issueId - The issue ID to close
940
+ * @param worktreePath - Optional path to the worktree for isolated updates
941
+ */
942
+ async closeIssue(issueId, worktreePath) {
943
+ try {
944
+ if (worktreePath) {
945
+ // Update the worktree's JSONL file directly
946
+ await this.updateIssueInWorktree(worktreePath, issueId, {
947
+ status: "closed",
948
+ });
949
+ }
950
+ else {
951
+ // Fall back to main database
952
+ updateIssue(this.db, issueId, { status: "closed" });
953
+ }
954
+ }
955
+ catch (error) {
956
+ // Non-fatal - log but don't fail
957
+ console.warn(`Failed to close issue ${issueId}:`, error);
958
+ }
959
+ }
960
+ /**
961
+ * Handle step failure.
962
+ *
963
+ * @param workflow - The workflow containing the step
964
+ * @param step - The failed step
965
+ * @param execution - The execution result
966
+ */
967
+ async handleStepFailure(workflow, step, execution) {
968
+ const errorMessage = execution.error_message || "Unknown error";
969
+ // Update step status
970
+ this.updateStep(workflow.id, step.id, {
971
+ status: "failed",
972
+ error: errorMessage,
973
+ });
974
+ // Emit event
975
+ this.eventEmitter.emit({
976
+ type: "step_failed",
977
+ workflowId: workflow.id,
978
+ step: { ...step, status: "failed", error: errorMessage },
979
+ error: errorMessage,
980
+ timestamp: Date.now(),
981
+ });
982
+ // Handle based on failure strategy
983
+ switch (workflow.config.onFailure) {
984
+ case "stop":
985
+ await this.failWorkflow(workflow.id, `Step ${step.id} failed: ${errorMessage}`);
986
+ break;
987
+ case "pause":
988
+ await this.pauseWorkflow(workflow.id);
989
+ break;
990
+ case "skip_dependents":
991
+ await this.skipDependentSteps(workflow, step, `Dependency ${step.issueId} failed`);
992
+ break;
993
+ case "continue":
994
+ // Mark dependents as blocked, continue with other steps
995
+ await this.blockDependentSteps(workflow, step);
996
+ break;
997
+ }
998
+ }
999
+ // ===========================================================================
1000
+ // Helper Methods
1001
+ // ===========================================================================
1002
+ /**
1003
+ * Mark workflow as failed.
1004
+ */
1005
+ async failWorkflow(workflowId, error) {
1006
+ this.updateWorkflow(workflowId, {
1007
+ status: "failed",
1008
+ completedAt: new Date().toISOString(),
1009
+ });
1010
+ this.eventEmitter.emit({
1011
+ type: "workflow_failed",
1012
+ workflowId,
1013
+ error,
1014
+ timestamp: Date.now(),
1015
+ });
1016
+ this.activeWorkflows.delete(workflowId);
1017
+ }
1018
+ /**
1019
+ * Mark workflow as completed.
1020
+ */
1021
+ async completeWorkflow(workflowId) {
1022
+ const workflow = await this.getWorkflowOrThrow(workflowId);
1023
+ this.updateWorkflow(workflowId, {
1024
+ status: "completed",
1025
+ completedAt: new Date().toISOString(),
1026
+ });
1027
+ this.eventEmitter.emit({
1028
+ type: "workflow_completed",
1029
+ workflowId,
1030
+ workflow: { ...workflow, status: "completed" },
1031
+ timestamp: Date.now(),
1032
+ });
1033
+ this.activeWorkflows.delete(workflowId);
1034
+ }
1035
+ /**
1036
+ * Check if workflow is complete (all steps done or skipped).
1037
+ */
1038
+ isWorkflowComplete(workflow) {
1039
+ return workflow.steps.every((step) => step.status === "completed" ||
1040
+ step.status === "skipped" ||
1041
+ step.status === "blocked");
1042
+ }
1043
+ /**
1044
+ * Find all steps that transitively depend on a given step.
1045
+ */
1046
+ findDependentSteps(workflow, stepId) {
1047
+ const dependents = [];
1048
+ const visited = new Set();
1049
+ const queue = [stepId];
1050
+ while (queue.length > 0) {
1051
+ const current = queue.shift();
1052
+ for (const step of workflow.steps) {
1053
+ if (step.dependencies.includes(current) && !visited.has(step.id)) {
1054
+ visited.add(step.id);
1055
+ dependents.push(step);
1056
+ queue.push(step.id);
1057
+ }
1058
+ }
1059
+ }
1060
+ return dependents;
1061
+ }
1062
+ /**
1063
+ * Skip all steps that depend on a failed/skipped step.
1064
+ */
1065
+ async skipDependentSteps(workflow, failedStep, reason) {
1066
+ const dependents = this.findDependentSteps(workflow, failedStep.id);
1067
+ for (const step of dependents) {
1068
+ if (step.status === "pending" || step.status === "ready") {
1069
+ this.updateStep(workflow.id, step.id, {
1070
+ status: "skipped",
1071
+ error: reason,
1072
+ });
1073
+ this.eventEmitter.emit({
1074
+ type: "step_skipped",
1075
+ workflowId: workflow.id,
1076
+ step: { ...step, status: "skipped", error: reason },
1077
+ reason,
1078
+ timestamp: Date.now(),
1079
+ });
1080
+ }
1081
+ }
1082
+ }
1083
+ /**
1084
+ * Block all steps that depend on a failed step.
1085
+ */
1086
+ async blockDependentSteps(workflow, failedStep) {
1087
+ const dependents = this.findDependentSteps(workflow, failedStep.id);
1088
+ for (const step of dependents) {
1089
+ if (step.status === "pending" || step.status === "ready") {
1090
+ this.updateStep(workflow.id, step.id, {
1091
+ status: "blocked",
1092
+ });
1093
+ }
1094
+ }
1095
+ }
1096
+ /**
1097
+ * Unblock steps that were blocked due to a failed dependency.
1098
+ */
1099
+ async unblockDependentSteps(workflow, retriedStep) {
1100
+ const dependents = this.findDependentSteps(workflow, retriedStep.id);
1101
+ for (const step of dependents) {
1102
+ if (step.status === "blocked") {
1103
+ this.updateStep(workflow.id, step.id, {
1104
+ status: "pending",
1105
+ });
1106
+ }
1107
+ }
1108
+ }
1109
+ }
1110
+ //# sourceMappingURL=sequential-engine.js.map