sudocode 1.1.20 → 1.1.22

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 (857) hide show
  1. package/package.json +9 -9
  2. package/node_modules/@sudocode-ai/cli/README.md +0 -1629
  3. package/node_modules/@sudocode-ai/cli/dist/auth/claude.d.ts +0 -19
  4. package/node_modules/@sudocode-ai/cli/dist/auth/claude.d.ts.map +0 -1
  5. package/node_modules/@sudocode-ai/cli/dist/auth/claude.js +0 -179
  6. package/node_modules/@sudocode-ai/cli/dist/auth/claude.js.map +0 -1
  7. package/node_modules/@sudocode-ai/cli/dist/auth/clear.d.ts +0 -17
  8. package/node_modules/@sudocode-ai/cli/dist/auth/clear.d.ts.map +0 -1
  9. package/node_modules/@sudocode-ai/cli/dist/auth/clear.js +0 -68
  10. package/node_modules/@sudocode-ai/cli/dist/auth/clear.js.map +0 -1
  11. package/node_modules/@sudocode-ai/cli/dist/auth/credentials.d.ts +0 -93
  12. package/node_modules/@sudocode-ai/cli/dist/auth/credentials.d.ts.map +0 -1
  13. package/node_modules/@sudocode-ai/cli/dist/auth/credentials.js +0 -255
  14. package/node_modules/@sudocode-ai/cli/dist/auth/credentials.js.map +0 -1
  15. package/node_modules/@sudocode-ai/cli/dist/auth/index.d.ts +0 -13
  16. package/node_modules/@sudocode-ai/cli/dist/auth/index.d.ts.map +0 -1
  17. package/node_modules/@sudocode-ai/cli/dist/auth/index.js +0 -19
  18. package/node_modules/@sudocode-ai/cli/dist/auth/index.js.map +0 -1
  19. package/node_modules/@sudocode-ai/cli/dist/auth/status.d.ts +0 -17
  20. package/node_modules/@sudocode-ai/cli/dist/auth/status.d.ts.map +0 -1
  21. package/node_modules/@sudocode-ai/cli/dist/auth/status.js +0 -132
  22. package/node_modules/@sudocode-ai/cli/dist/auth/status.js.map +0 -1
  23. package/node_modules/@sudocode-ai/cli/dist/cli/auth-commands.d.ts +0 -34
  24. package/node_modules/@sudocode-ai/cli/dist/cli/auth-commands.d.ts.map +0 -1
  25. package/node_modules/@sudocode-ai/cli/dist/cli/auth-commands.js +0 -28
  26. package/node_modules/@sudocode-ai/cli/dist/cli/auth-commands.js.map +0 -1
  27. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.d.ts +0 -53
  28. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.d.ts.map +0 -1
  29. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.js +0 -339
  30. package/node_modules/@sudocode-ai/cli/dist/cli/feedback-commands.js.map +0 -1
  31. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.d.ts +0 -20
  32. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.d.ts.map +0 -1
  33. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.js +0 -145
  34. package/node_modules/@sudocode-ai/cli/dist/cli/init-commands.js.map +0 -1
  35. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.d.ts +0 -46
  36. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.d.ts.map +0 -1
  37. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js +0 -353
  38. package/node_modules/@sudocode-ai/cli/dist/cli/issue-commands.js.map +0 -1
  39. package/node_modules/@sudocode-ai/cli/dist/cli/merge-commands.d.ts +0 -42
  40. package/node_modules/@sudocode-ai/cli/dist/cli/merge-commands.d.ts.map +0 -1
  41. package/node_modules/@sudocode-ai/cli/dist/cli/merge-commands.js +0 -680
  42. package/node_modules/@sudocode-ai/cli/dist/cli/merge-commands.js.map +0 -1
  43. package/node_modules/@sudocode-ai/cli/dist/cli/plugin-commands.d.ts +0 -62
  44. package/node_modules/@sudocode-ai/cli/dist/cli/plugin-commands.d.ts.map +0 -1
  45. package/node_modules/@sudocode-ai/cli/dist/cli/plugin-commands.js +0 -595
  46. package/node_modules/@sudocode-ai/cli/dist/cli/plugin-commands.js.map +0 -1
  47. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.d.ts +0 -18
  48. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.d.ts.map +0 -1
  49. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.js +0 -61
  50. package/node_modules/@sudocode-ai/cli/dist/cli/query-commands.js.map +0 -1
  51. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.d.ts +0 -22
  52. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.d.ts.map +0 -1
  53. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.js +0 -136
  54. package/node_modules/@sudocode-ai/cli/dist/cli/reference-commands.js.map +0 -1
  55. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.d.ts +0 -14
  56. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.d.ts.map +0 -1
  57. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js +0 -83
  58. package/node_modules/@sudocode-ai/cli/dist/cli/relationship-commands.js.map +0 -1
  59. package/node_modules/@sudocode-ai/cli/dist/cli/remote-commands.d.ts +0 -59
  60. package/node_modules/@sudocode-ai/cli/dist/cli/remote-commands.d.ts.map +0 -1
  61. package/node_modules/@sudocode-ai/cli/dist/cli/remote-commands.js +0 -391
  62. package/node_modules/@sudocode-ai/cli/dist/cli/remote-commands.js.map +0 -1
  63. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.d.ts +0 -17
  64. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.d.ts.map +0 -1
  65. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.js +0 -123
  66. package/node_modules/@sudocode-ai/cli/dist/cli/server-commands.js.map +0 -1
  67. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.d.ts +0 -38
  68. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.d.ts.map +0 -1
  69. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.js +0 -326
  70. package/node_modules/@sudocode-ai/cli/dist/cli/spec-commands.js.map +0 -1
  71. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.d.ts +0 -17
  72. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.d.ts.map +0 -1
  73. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.js +0 -131
  74. package/node_modules/@sudocode-ai/cli/dist/cli/status-commands.js.map +0 -1
  75. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.d.ts +0 -24
  76. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.d.ts.map +0 -1
  77. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.js +0 -429
  78. package/node_modules/@sudocode-ai/cli/dist/cli/sync-commands.js.map +0 -1
  79. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.d.ts +0 -16
  80. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.d.ts.map +0 -1
  81. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.js +0 -216
  82. package/node_modules/@sudocode-ai/cli/dist/cli/update-commands.js.map +0 -1
  83. package/node_modules/@sudocode-ai/cli/dist/cli.d.ts +0 -6
  84. package/node_modules/@sudocode-ai/cli/dist/cli.d.ts.map +0 -1
  85. package/node_modules/@sudocode-ai/cli/dist/cli.js +0 -673
  86. package/node_modules/@sudocode-ai/cli/dist/cli.js.map +0 -1
  87. package/node_modules/@sudocode-ai/cli/dist/config.d.ts +0 -50
  88. package/node_modules/@sudocode-ai/cli/dist/config.d.ts.map +0 -1
  89. package/node_modules/@sudocode-ai/cli/dist/config.js +0 -76
  90. package/node_modules/@sudocode-ai/cli/dist/config.js.map +0 -1
  91. package/node_modules/@sudocode-ai/cli/dist/db.d.ts +0 -21
  92. package/node_modules/@sudocode-ai/cli/dist/db.d.ts.map +0 -1
  93. package/node_modules/@sudocode-ai/cli/dist/db.js +0 -55
  94. package/node_modules/@sudocode-ai/cli/dist/db.js.map +0 -1
  95. package/node_modules/@sudocode-ai/cli/dist/export.d.ts +0 -84
  96. package/node_modules/@sudocode-ai/cli/dist/export.d.ts.map +0 -1
  97. package/node_modules/@sudocode-ai/cli/dist/export.js +0 -265
  98. package/node_modules/@sudocode-ai/cli/dist/export.js.map +0 -1
  99. package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts +0 -31
  100. package/node_modules/@sudocode-ai/cli/dist/filename-generator.d.ts.map +0 -1
  101. package/node_modules/@sudocode-ai/cli/dist/filename-generator.js +0 -103
  102. package/node_modules/@sudocode-ai/cli/dist/filename-generator.js.map +0 -1
  103. package/node_modules/@sudocode-ai/cli/dist/git-merge.d.ts +0 -88
  104. package/node_modules/@sudocode-ai/cli/dist/git-merge.d.ts.map +0 -1
  105. package/node_modules/@sudocode-ai/cli/dist/git-merge.js +0 -214
  106. package/node_modules/@sudocode-ai/cli/dist/git-merge.js.map +0 -1
  107. package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts +0 -63
  108. package/node_modules/@sudocode-ai/cli/dist/id-generator.d.ts.map +0 -1
  109. package/node_modules/@sudocode-ai/cli/dist/id-generator.js +0 -196
  110. package/node_modules/@sudocode-ai/cli/dist/id-generator.js.map +0 -1
  111. package/node_modules/@sudocode-ai/cli/dist/import.d.ts +0 -134
  112. package/node_modules/@sudocode-ai/cli/dist/import.d.ts.map +0 -1
  113. package/node_modules/@sudocode-ai/cli/dist/import.js +0 -751
  114. package/node_modules/@sudocode-ai/cli/dist/import.js.map +0 -1
  115. package/node_modules/@sudocode-ai/cli/dist/index.d.ts +0 -17
  116. package/node_modules/@sudocode-ai/cli/dist/index.d.ts.map +0 -1
  117. package/node_modules/@sudocode-ai/cli/dist/index.js +0 -17
  118. package/node_modules/@sudocode-ai/cli/dist/index.js.map +0 -1
  119. package/node_modules/@sudocode-ai/cli/dist/integrations/base-provider.d.ts +0 -108
  120. package/node_modules/@sudocode-ai/cli/dist/integrations/base-provider.d.ts.map +0 -1
  121. package/node_modules/@sudocode-ai/cli/dist/integrations/base-provider.js +0 -80
  122. package/node_modules/@sudocode-ai/cli/dist/integrations/base-provider.js.map +0 -1
  123. package/node_modules/@sudocode-ai/cli/dist/integrations/config-resolver.d.ts +0 -62
  124. package/node_modules/@sudocode-ai/cli/dist/integrations/config-resolver.d.ts.map +0 -1
  125. package/node_modules/@sudocode-ai/cli/dist/integrations/config-resolver.js +0 -69
  126. package/node_modules/@sudocode-ai/cli/dist/integrations/config-resolver.js.map +0 -1
  127. package/node_modules/@sudocode-ai/cli/dist/integrations/config-validator.d.ts +0 -75
  128. package/node_modules/@sudocode-ai/cli/dist/integrations/config-validator.d.ts.map +0 -1
  129. package/node_modules/@sudocode-ai/cli/dist/integrations/config-validator.js +0 -129
  130. package/node_modules/@sudocode-ai/cli/dist/integrations/config-validator.js.map +0 -1
  131. package/node_modules/@sudocode-ai/cli/dist/integrations/index.d.ts +0 -14
  132. package/node_modules/@sudocode-ai/cli/dist/integrations/index.d.ts.map +0 -1
  133. package/node_modules/@sudocode-ai/cli/dist/integrations/index.js +0 -20
  134. package/node_modules/@sudocode-ai/cli/dist/integrations/index.js.map +0 -1
  135. package/node_modules/@sudocode-ai/cli/dist/integrations/plugin-loader.d.ts +0 -77
  136. package/node_modules/@sudocode-ai/cli/dist/integrations/plugin-loader.d.ts.map +0 -1
  137. package/node_modules/@sudocode-ai/cli/dist/integrations/plugin-loader.js +0 -265
  138. package/node_modules/@sudocode-ai/cli/dist/integrations/plugin-loader.js.map +0 -1
  139. package/node_modules/@sudocode-ai/cli/dist/integrations/registry.d.ts +0 -67
  140. package/node_modules/@sudocode-ai/cli/dist/integrations/registry.d.ts.map +0 -1
  141. package/node_modules/@sudocode-ai/cli/dist/integrations/registry.js +0 -77
  142. package/node_modules/@sudocode-ai/cli/dist/integrations/registry.js.map +0 -1
  143. package/node_modules/@sudocode-ai/cli/dist/integrations/sync-coordinator.d.ts +0 -191
  144. package/node_modules/@sudocode-ai/cli/dist/integrations/sync-coordinator.d.ts.map +0 -1
  145. package/node_modules/@sudocode-ai/cli/dist/integrations/sync-coordinator.js +0 -798
  146. package/node_modules/@sudocode-ai/cli/dist/integrations/sync-coordinator.js.map +0 -1
  147. package/node_modules/@sudocode-ai/cli/dist/integrations/types.d.ts +0 -142
  148. package/node_modules/@sudocode-ai/cli/dist/integrations/types.d.ts.map +0 -1
  149. package/node_modules/@sudocode-ai/cli/dist/integrations/types.js +0 -6
  150. package/node_modules/@sudocode-ai/cli/dist/integrations/types.js.map +0 -1
  151. package/node_modules/@sudocode-ai/cli/dist/integrations/utils/conflict-resolver.d.ts +0 -79
  152. package/node_modules/@sudocode-ai/cli/dist/integrations/utils/conflict-resolver.d.ts.map +0 -1
  153. package/node_modules/@sudocode-ai/cli/dist/integrations/utils/conflict-resolver.js +0 -106
  154. package/node_modules/@sudocode-ai/cli/dist/integrations/utils/conflict-resolver.js.map +0 -1
  155. package/node_modules/@sudocode-ai/cli/dist/jsonl.d.ts +0 -69
  156. package/node_modules/@sudocode-ai/cli/dist/jsonl.d.ts.map +0 -1
  157. package/node_modules/@sudocode-ai/cli/dist/jsonl.js +0 -333
  158. package/node_modules/@sudocode-ai/cli/dist/jsonl.js.map +0 -1
  159. package/node_modules/@sudocode-ai/cli/dist/markdown.d.ts +0 -146
  160. package/node_modules/@sudocode-ai/cli/dist/markdown.d.ts.map +0 -1
  161. package/node_modules/@sudocode-ai/cli/dist/markdown.js +0 -329
  162. package/node_modules/@sudocode-ai/cli/dist/markdown.js.map +0 -1
  163. package/node_modules/@sudocode-ai/cli/dist/merge-resolver.d.ts +0 -157
  164. package/node_modules/@sudocode-ai/cli/dist/merge-resolver.d.ts.map +0 -1
  165. package/node_modules/@sudocode-ai/cli/dist/merge-resolver.js +0 -716
  166. package/node_modules/@sudocode-ai/cli/dist/merge-resolver.js.map +0 -1
  167. package/node_modules/@sudocode-ai/cli/dist/operations/events.d.ts +0 -53
  168. package/node_modules/@sudocode-ai/cli/dist/operations/events.d.ts.map +0 -1
  169. package/node_modules/@sudocode-ai/cli/dist/operations/events.js +0 -108
  170. package/node_modules/@sudocode-ai/cli/dist/operations/events.js.map +0 -1
  171. package/node_modules/@sudocode-ai/cli/dist/operations/external-links.d.ts +0 -147
  172. package/node_modules/@sudocode-ai/cli/dist/operations/external-links.d.ts.map +0 -1
  173. package/node_modules/@sudocode-ai/cli/dist/operations/external-links.js +0 -411
  174. package/node_modules/@sudocode-ai/cli/dist/operations/external-links.js.map +0 -1
  175. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.d.ts +0 -92
  176. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.d.ts.map +0 -1
  177. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.js +0 -444
  178. package/node_modules/@sudocode-ai/cli/dist/operations/feedback-anchors.js.map +0 -1
  179. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.d.ts +0 -94
  180. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.d.ts.map +0 -1
  181. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.js +0 -278
  182. package/node_modules/@sudocode-ai/cli/dist/operations/feedback.js.map +0 -1
  183. package/node_modules/@sudocode-ai/cli/dist/operations/index.d.ts +0 -11
  184. package/node_modules/@sudocode-ai/cli/dist/operations/index.d.ts.map +0 -1
  185. package/node_modules/@sudocode-ai/cli/dist/operations/index.js +0 -11
  186. package/node_modules/@sudocode-ai/cli/dist/operations/index.js.map +0 -1
  187. package/node_modules/@sudocode-ai/cli/dist/operations/issues.d.ts +0 -88
  188. package/node_modules/@sudocode-ai/cli/dist/operations/issues.d.ts.map +0 -1
  189. package/node_modules/@sudocode-ai/cli/dist/operations/issues.js +0 -474
  190. package/node_modules/@sudocode-ai/cli/dist/operations/issues.js.map +0 -1
  191. package/node_modules/@sudocode-ai/cli/dist/operations/references.d.ts +0 -34
  192. package/node_modules/@sudocode-ai/cli/dist/operations/references.d.ts.map +0 -1
  193. package/node_modules/@sudocode-ai/cli/dist/operations/references.js +0 -117
  194. package/node_modules/@sudocode-ai/cli/dist/operations/references.js.map +0 -1
  195. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.d.ts +0 -64
  196. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.d.ts.map +0 -1
  197. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.js +0 -281
  198. package/node_modules/@sudocode-ai/cli/dist/operations/relationships.js.map +0 -1
  199. package/node_modules/@sudocode-ai/cli/dist/operations/specs.d.ts +0 -69
  200. package/node_modules/@sudocode-ai/cli/dist/operations/specs.d.ts.map +0 -1
  201. package/node_modules/@sudocode-ai/cli/dist/operations/specs.js +0 -330
  202. package/node_modules/@sudocode-ai/cli/dist/operations/specs.js.map +0 -1
  203. package/node_modules/@sudocode-ai/cli/dist/operations/tags.d.ts +0 -42
  204. package/node_modules/@sudocode-ai/cli/dist/operations/tags.d.ts.map +0 -1
  205. package/node_modules/@sudocode-ai/cli/dist/operations/tags.js +0 -127
  206. package/node_modules/@sudocode-ai/cli/dist/operations/tags.js.map +0 -1
  207. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.d.ts +0 -41
  208. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.d.ts.map +0 -1
  209. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.js +0 -111
  210. package/node_modules/@sudocode-ai/cli/dist/operations/transactions.js.map +0 -1
  211. package/node_modules/@sudocode-ai/cli/dist/remote/claude-auth.d.ts +0 -65
  212. package/node_modules/@sudocode-ai/cli/dist/remote/claude-auth.d.ts.map +0 -1
  213. package/node_modules/@sudocode-ai/cli/dist/remote/claude-auth.js +0 -100
  214. package/node_modules/@sudocode-ai/cli/dist/remote/claude-auth.js.map +0 -1
  215. package/node_modules/@sudocode-ai/cli/dist/remote/config.d.ts +0 -83
  216. package/node_modules/@sudocode-ai/cli/dist/remote/config.d.ts.map +0 -1
  217. package/node_modules/@sudocode-ai/cli/dist/remote/config.js +0 -266
  218. package/node_modules/@sudocode-ai/cli/dist/remote/config.js.map +0 -1
  219. package/node_modules/@sudocode-ai/cli/dist/remote/errors.d.ts +0 -18
  220. package/node_modules/@sudocode-ai/cli/dist/remote/errors.d.ts.map +0 -1
  221. package/node_modules/@sudocode-ai/cli/dist/remote/errors.js +0 -27
  222. package/node_modules/@sudocode-ai/cli/dist/remote/errors.js.map +0 -1
  223. package/node_modules/@sudocode-ai/cli/dist/remote/git-context.d.ts +0 -51
  224. package/node_modules/@sudocode-ai/cli/dist/remote/git-context.d.ts.map +0 -1
  225. package/node_modules/@sudocode-ai/cli/dist/remote/git-context.js +0 -107
  226. package/node_modules/@sudocode-ai/cli/dist/remote/git-context.js.map +0 -1
  227. package/node_modules/@sudocode-ai/cli/dist/remote/spawn-service.d.ts +0 -86
  228. package/node_modules/@sudocode-ai/cli/dist/remote/spawn-service.d.ts.map +0 -1
  229. package/node_modules/@sudocode-ai/cli/dist/remote/spawn-service.js +0 -248
  230. package/node_modules/@sudocode-ai/cli/dist/remote/spawn-service.js.map +0 -1
  231. package/node_modules/@sudocode-ai/cli/dist/remote/types.d.ts +0 -82
  232. package/node_modules/@sudocode-ai/cli/dist/remote/types.d.ts.map +0 -1
  233. package/node_modules/@sudocode-ai/cli/dist/remote/types.js +0 -5
  234. package/node_modules/@sudocode-ai/cli/dist/remote/types.js.map +0 -1
  235. package/node_modules/@sudocode-ai/cli/dist/sync.d.ts +0 -47
  236. package/node_modules/@sudocode-ai/cli/dist/sync.d.ts.map +0 -1
  237. package/node_modules/@sudocode-ai/cli/dist/sync.js +0 -464
  238. package/node_modules/@sudocode-ai/cli/dist/sync.js.map +0 -1
  239. package/node_modules/@sudocode-ai/cli/dist/test-schema.d.ts +0 -5
  240. package/node_modules/@sudocode-ai/cli/dist/test-schema.d.ts.map +0 -1
  241. package/node_modules/@sudocode-ai/cli/dist/test-schema.js +0 -46
  242. package/node_modules/@sudocode-ai/cli/dist/test-schema.js.map +0 -1
  243. package/node_modules/@sudocode-ai/cli/dist/types.d.ts +0 -7
  244. package/node_modules/@sudocode-ai/cli/dist/types.d.ts.map +0 -1
  245. package/node_modules/@sudocode-ai/cli/dist/types.js +0 -7
  246. package/node_modules/@sudocode-ai/cli/dist/types.js.map +0 -1
  247. package/node_modules/@sudocode-ai/cli/dist/update-checker.d.ts +0 -33
  248. package/node_modules/@sudocode-ai/cli/dist/update-checker.d.ts.map +0 -1
  249. package/node_modules/@sudocode-ai/cli/dist/update-checker.js +0 -193
  250. package/node_modules/@sudocode-ai/cli/dist/update-checker.js.map +0 -1
  251. package/node_modules/@sudocode-ai/cli/dist/validation.d.ts +0 -11
  252. package/node_modules/@sudocode-ai/cli/dist/validation.d.ts.map +0 -1
  253. package/node_modules/@sudocode-ai/cli/dist/validation.js +0 -58
  254. package/node_modules/@sudocode-ai/cli/dist/validation.js.map +0 -1
  255. package/node_modules/@sudocode-ai/cli/dist/version.d.ts +0 -12
  256. package/node_modules/@sudocode-ai/cli/dist/version.d.ts.map +0 -1
  257. package/node_modules/@sudocode-ai/cli/dist/version.js +0 -23
  258. package/node_modules/@sudocode-ai/cli/dist/version.js.map +0 -1
  259. package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts +0 -75
  260. package/node_modules/@sudocode-ai/cli/dist/watcher.d.ts.map +0 -1
  261. package/node_modules/@sudocode-ai/cli/dist/watcher.js +0 -797
  262. package/node_modules/@sudocode-ai/cli/dist/watcher.js.map +0 -1
  263. package/node_modules/@sudocode-ai/cli/dist/yaml-conflict-resolver.d.ts +0 -91
  264. package/node_modules/@sudocode-ai/cli/dist/yaml-conflict-resolver.d.ts.map +0 -1
  265. package/node_modules/@sudocode-ai/cli/dist/yaml-conflict-resolver.js +0 -197
  266. package/node_modules/@sudocode-ai/cli/dist/yaml-conflict-resolver.js.map +0 -1
  267. package/node_modules/@sudocode-ai/cli/dist/yaml-converter.d.ts +0 -68
  268. package/node_modules/@sudocode-ai/cli/dist/yaml-converter.d.ts.map +0 -1
  269. package/node_modules/@sudocode-ai/cli/dist/yaml-converter.js +0 -109
  270. package/node_modules/@sudocode-ai/cli/dist/yaml-converter.js.map +0 -1
  271. package/node_modules/@sudocode-ai/cli/package.json +0 -76
  272. package/node_modules/@sudocode-ai/integration-beads/package.json +0 -44
  273. package/node_modules/@sudocode-ai/integration-github/package.json +0 -41
  274. package/node_modules/@sudocode-ai/integration-openspec/package.json +0 -43
  275. package/node_modules/@sudocode-ai/integration-speckit/package.json +0 -42
  276. package/node_modules/@sudocode-ai/local-server/README.md +0 -25
  277. package/node_modules/@sudocode-ai/local-server/dist/cli.d.ts +0 -7
  278. package/node_modules/@sudocode-ai/local-server/dist/cli.d.ts.map +0 -1
  279. package/node_modules/@sudocode-ai/local-server/dist/cli.js +0 -7
  280. package/node_modules/@sudocode-ai/local-server/dist/cli.js.map +0 -1
  281. package/node_modules/@sudocode-ai/local-server/dist/errors/agent-errors.d.ts +0 -43
  282. package/node_modules/@sudocode-ai/local-server/dist/errors/agent-errors.d.ts.map +0 -1
  283. package/node_modules/@sudocode-ai/local-server/dist/errors/agent-errors.js +0 -69
  284. package/node_modules/@sudocode-ai/local-server/dist/errors/agent-errors.js.map +0 -1
  285. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/claude-adapter.d.ts +0 -63
  286. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/claude-adapter.d.ts.map +0 -1
  287. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/claude-adapter.js +0 -83
  288. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/claude-adapter.js.map +0 -1
  289. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-adapter.d.ts +0 -67
  290. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-adapter.d.ts.map +0 -1
  291. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-adapter.js +0 -183
  292. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-adapter.js.map +0 -1
  293. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-config-builder.d.ts +0 -30
  294. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-config-builder.d.ts.map +0 -1
  295. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-config-builder.js +0 -110
  296. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/codex-config-builder.js.map +0 -1
  297. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-adapter.d.ts +0 -94
  298. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-adapter.d.ts.map +0 -1
  299. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-adapter.js +0 -163
  300. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-adapter.js.map +0 -1
  301. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-config-builder.d.ts +0 -48
  302. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-config-builder.d.ts.map +0 -1
  303. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-config-builder.js +0 -125
  304. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/copilot-config-builder.js.map +0 -1
  305. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-adapter.d.ts +0 -66
  306. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-adapter.d.ts.map +0 -1
  307. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-adapter.js +0 -121
  308. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-adapter.js.map +0 -1
  309. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-config-builder.d.ts +0 -29
  310. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-config-builder.d.ts.map +0 -1
  311. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-config-builder.js +0 -49
  312. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/cursor-config-builder.js.map +0 -1
  313. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-presets.d.ts +0 -102
  314. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-presets.d.ts.map +0 -1
  315. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-presets.js +0 -205
  316. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-presets.js.map +0 -1
  317. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-utils.d.ts +0 -95
  318. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-utils.d.ts.map +0 -1
  319. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-utils.js +0 -163
  320. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/config-utils.js.map +0 -1
  321. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/index.d.ts +0 -8
  322. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/index.d.ts.map +0 -1
  323. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/index.js +0 -8
  324. package/node_modules/@sudocode-ai/local-server/dist/execution/adapters/shared/index.js.map +0 -1
  325. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/acp-executor-wrapper.d.ts +0 -331
  326. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/acp-executor-wrapper.d.ts.map +0 -1
  327. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/acp-executor-wrapper.js +0 -1126
  328. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/acp-executor-wrapper.js.map +0 -1
  329. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/agent-config-handlers.d.ts +0 -158
  330. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/agent-config-handlers.d.ts.map +0 -1
  331. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/agent-config-handlers.js +0 -352
  332. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/agent-config-handlers.js.map +0 -1
  333. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/executor-factory.d.ts +0 -170
  334. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/executor-factory.d.ts.map +0 -1
  335. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/executor-factory.js +0 -216
  336. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/executor-factory.js.map +0 -1
  337. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/legacy-shim-executor-wrapper.d.ts +0 -216
  338. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/legacy-shim-executor-wrapper.d.ts.map +0 -1
  339. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/legacy-shim-executor-wrapper.js +0 -679
  340. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/legacy-shim-executor-wrapper.js.map +0 -1
  341. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/permission-manager.d.ts +0 -118
  342. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/permission-manager.d.ts.map +0 -1
  343. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/permission-manager.js +0 -143
  344. package/node_modules/@sudocode-ai/local-server/dist/execution/executors/permission-manager.js.map +0 -1
  345. package/node_modules/@sudocode-ai/local-server/dist/execution/handlers/file-handler.d.ts +0 -60
  346. package/node_modules/@sudocode-ai/local-server/dist/execution/handlers/file-handler.d.ts.map +0 -1
  347. package/node_modules/@sudocode-ai/local-server/dist/execution/handlers/file-handler.js +0 -115
  348. package/node_modules/@sudocode-ai/local-server/dist/execution/handlers/file-handler.js.map +0 -1
  349. package/node_modules/@sudocode-ai/local-server/dist/execution/output/coalesced-types.d.ts +0 -131
  350. package/node_modules/@sudocode-ai/local-server/dist/execution/output/coalesced-types.d.ts.map +0 -1
  351. package/node_modules/@sudocode-ai/local-server/dist/execution/output/coalesced-types.js +0 -47
  352. package/node_modules/@sudocode-ai/local-server/dist/execution/output/coalesced-types.js.map +0 -1
  353. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts +0 -16
  354. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.d.ts.map +0 -1
  355. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.js +0 -15
  356. package/node_modules/@sudocode-ai/local-server/dist/execution/output/index.js.map +0 -1
  357. package/node_modules/@sudocode-ai/local-server/dist/execution/output/normalized-to-coalesced.d.ts +0 -40
  358. package/node_modules/@sudocode-ai/local-server/dist/execution/output/normalized-to-coalesced.d.ts.map +0 -1
  359. package/node_modules/@sudocode-ai/local-server/dist/execution/output/normalized-to-coalesced.js +0 -165
  360. package/node_modules/@sudocode-ai/local-server/dist/execution/output/normalized-to-coalesced.js.map +0 -1
  361. package/node_modules/@sudocode-ai/local-server/dist/execution/output/session-update-coalescer.d.ts +0 -99
  362. package/node_modules/@sudocode-ai/local-server/dist/execution/output/session-update-coalescer.d.ts.map +0 -1
  363. package/node_modules/@sudocode-ai/local-server/dist/execution/output/session-update-coalescer.js +0 -329
  364. package/node_modules/@sudocode-ai/local-server/dist/execution/output/session-update-coalescer.js.map +0 -1
  365. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.d.ts +0 -421
  366. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.d.ts.map +0 -1
  367. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.js +0 -22
  368. package/node_modules/@sudocode-ai/local-server/dist/execution/output/types.js.map +0 -1
  369. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.d.ts +0 -53
  370. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.d.ts.map +0 -1
  371. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.js +0 -225
  372. package/node_modules/@sudocode-ai/local-server/dist/execution/process/builders/claude.js.map +0 -1
  373. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.d.ts +0 -74
  374. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.d.ts.map +0 -1
  375. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.js +0 -280
  376. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/config.js.map +0 -1
  377. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/conflict-detector.d.ts +0 -85
  378. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/conflict-detector.d.ts.map +0 -1
  379. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/conflict-detector.js +0 -129
  380. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/conflict-detector.js.map +0 -1
  381. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts +0 -208
  382. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.d.ts.map +0 -1
  383. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.js +0 -280
  384. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-cli.js.map +0 -1
  385. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-sync-cli.d.ts +0 -225
  386. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-sync-cli.d.ts.map +0 -1
  387. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-sync-cli.js +0 -464
  388. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/git-sync-cli.js.map +0 -1
  389. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.d.ts +0 -16
  390. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.d.ts.map +0 -1
  391. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.js +0 -15
  392. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/index.js.map +0 -1
  393. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.d.ts +0 -221
  394. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.d.ts.map +0 -1
  395. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.js +0 -508
  396. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/manager.js.map +0 -1
  397. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.d.ts +0 -90
  398. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.d.ts.map +0 -1
  399. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.js +0 -42
  400. package/node_modules/@sudocode-ai/local-server/dist/execution/worktree/types.js.map +0 -1
  401. package/node_modules/@sudocode-ai/local-server/dist/index.d.ts +0 -3
  402. package/node_modules/@sudocode-ai/local-server/dist/index.d.ts.map +0 -1
  403. package/node_modules/@sudocode-ai/local-server/dist/index.js +0 -413
  404. package/node_modules/@sudocode-ai/local-server/dist/index.js.map +0 -1
  405. package/node_modules/@sudocode-ai/local-server/dist/middleware/project-context.d.ts +0 -37
  406. package/node_modules/@sudocode-ai/local-server/dist/middleware/project-context.d.ts.map +0 -1
  407. package/node_modules/@sudocode-ai/local-server/dist/middleware/project-context.js +0 -91
  408. package/node_modules/@sudocode-ai/local-server/dist/middleware/project-context.js.map +0 -1
  409. package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-6xIC1sAG.js +0 -3837
  410. package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-6xIC1sAG.js.map +0 -1
  411. package/node_modules/@sudocode-ai/local-server/dist/public/assets/index-QH6t9Xqh.css +0 -1
  412. package/node_modules/@sudocode-ai/local-server/dist/public/assets/ort-wasm-simd-threaded.jsep-B0T3yYHD.wasm +0 -0
  413. package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-DoNwlLhy.js +0 -60
  414. package/node_modules/@sudocode-ai/local-server/dist/public/assets/react-vendor-DoNwlLhy.js.map +0 -1
  415. package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-DlxvBun1.js +0 -54
  416. package/node_modules/@sudocode-ai/local-server/dist/public/assets/ui-vendor-DlxvBun1.js.map +0 -1
  417. package/node_modules/@sudocode-ai/local-server/dist/public/favicon.ico +0 -0
  418. package/node_modules/@sudocode-ai/local-server/dist/public/index.html +0 -16
  419. package/node_modules/@sudocode-ai/local-server/dist/public/kokoro-test.html +0 -197
  420. package/node_modules/@sudocode-ai/local-server/dist/public/logo.png +0 -0
  421. package/node_modules/@sudocode-ai/local-server/dist/routes/agents.d.ts +0 -3
  422. package/node_modules/@sudocode-ai/local-server/dist/routes/agents.d.ts.map +0 -1
  423. package/node_modules/@sudocode-ai/local-server/dist/routes/agents.js +0 -188
  424. package/node_modules/@sudocode-ai/local-server/dist/routes/agents.js.map +0 -1
  425. package/node_modules/@sudocode-ai/local-server/dist/routes/config.d.ts +0 -3
  426. package/node_modules/@sudocode-ai/local-server/dist/routes/config.d.ts.map +0 -1
  427. package/node_modules/@sudocode-ai/local-server/dist/routes/config.js +0 -155
  428. package/node_modules/@sudocode-ai/local-server/dist/routes/config.js.map +0 -1
  429. package/node_modules/@sudocode-ai/local-server/dist/routes/editors.d.ts +0 -15
  430. package/node_modules/@sudocode-ai/local-server/dist/routes/editors.d.ts.map +0 -1
  431. package/node_modules/@sudocode-ai/local-server/dist/routes/editors.js +0 -98
  432. package/node_modules/@sudocode-ai/local-server/dist/routes/editors.js.map +0 -1
  433. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts +0 -18
  434. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.d.ts.map +0 -1
  435. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.js +0 -1570
  436. package/node_modules/@sudocode-ai/local-server/dist/routes/executions.js.map +0 -1
  437. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.d.ts +0 -8
  438. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.d.ts.map +0 -1
  439. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js +0 -340
  440. package/node_modules/@sudocode-ai/local-server/dist/routes/feedback.js.map +0 -1
  441. package/node_modules/@sudocode-ai/local-server/dist/routes/files.d.ts +0 -18
  442. package/node_modules/@sudocode-ai/local-server/dist/routes/files.d.ts.map +0 -1
  443. package/node_modules/@sudocode-ai/local-server/dist/routes/files.js +0 -89
  444. package/node_modules/@sudocode-ai/local-server/dist/routes/files.js.map +0 -1
  445. package/node_modules/@sudocode-ai/local-server/dist/routes/import.d.ts +0 -142
  446. package/node_modules/@sudocode-ai/local-server/dist/routes/import.d.ts.map +0 -1
  447. package/node_modules/@sudocode-ai/local-server/dist/routes/import.js +0 -896
  448. package/node_modules/@sudocode-ai/local-server/dist/routes/import.js.map +0 -1
  449. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts +0 -8
  450. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.d.ts.map +0 -1
  451. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js +0 -419
  452. package/node_modules/@sudocode-ai/local-server/dist/routes/issues.js.map +0 -1
  453. package/node_modules/@sudocode-ai/local-server/dist/routes/plugins.d.ts +0 -34
  454. package/node_modules/@sudocode-ai/local-server/dist/routes/plugins.d.ts.map +0 -1
  455. package/node_modules/@sudocode-ai/local-server/dist/routes/plugins.js +0 -602
  456. package/node_modules/@sudocode-ai/local-server/dist/routes/plugins.js.map +0 -1
  457. package/node_modules/@sudocode-ai/local-server/dist/routes/projects.d.ts +0 -11
  458. package/node_modules/@sudocode-ai/local-server/dist/routes/projects.d.ts.map +0 -1
  459. package/node_modules/@sudocode-ai/local-server/dist/routes/projects.js +0 -536
  460. package/node_modules/@sudocode-ai/local-server/dist/routes/projects.js.map +0 -1
  461. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts +0 -8
  462. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.d.ts.map +0 -1
  463. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js +0 -310
  464. package/node_modules/@sudocode-ai/local-server/dist/routes/relationships.js.map +0 -1
  465. package/node_modules/@sudocode-ai/local-server/dist/routes/repo-info.d.ts +0 -3
  466. package/node_modules/@sudocode-ai/local-server/dist/routes/repo-info.d.ts.map +0 -1
  467. package/node_modules/@sudocode-ai/local-server/dist/routes/repo-info.js +0 -203
  468. package/node_modules/@sudocode-ai/local-server/dist/routes/repo-info.js.map +0 -1
  469. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts +0 -8
  470. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.d.ts.map +0 -1
  471. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js +0 -414
  472. package/node_modules/@sudocode-ai/local-server/dist/routes/specs.js.map +0 -1
  473. package/node_modules/@sudocode-ai/local-server/dist/routes/update.d.ts +0 -7
  474. package/node_modules/@sudocode-ai/local-server/dist/routes/update.d.ts.map +0 -1
  475. package/node_modules/@sudocode-ai/local-server/dist/routes/update.js +0 -194
  476. package/node_modules/@sudocode-ai/local-server/dist/routes/update.js.map +0 -1
  477. package/node_modules/@sudocode-ai/local-server/dist/routes/version.d.ts +0 -3
  478. package/node_modules/@sudocode-ai/local-server/dist/routes/version.d.ts.map +0 -1
  479. package/node_modules/@sudocode-ai/local-server/dist/routes/version.js +0 -25
  480. package/node_modules/@sudocode-ai/local-server/dist/routes/version.js.map +0 -1
  481. package/node_modules/@sudocode-ai/local-server/dist/routes/voice.d.ts +0 -12
  482. package/node_modules/@sudocode-ai/local-server/dist/routes/voice.d.ts.map +0 -1
  483. package/node_modules/@sudocode-ai/local-server/dist/routes/voice.js +0 -387
  484. package/node_modules/@sudocode-ai/local-server/dist/routes/voice.js.map +0 -1
  485. package/node_modules/@sudocode-ai/local-server/dist/routes/workflows.d.ts +0 -8
  486. package/node_modules/@sudocode-ai/local-server/dist/routes/workflows.d.ts.map +0 -1
  487. package/node_modules/@sudocode-ai/local-server/dist/routes/workflows.js +0 -1730
  488. package/node_modules/@sudocode-ai/local-server/dist/routes/workflows.js.map +0 -1
  489. package/node_modules/@sudocode-ai/local-server/dist/services/agent-registry.d.ts +0 -150
  490. package/node_modules/@sudocode-ai/local-server/dist/services/agent-registry.d.ts.map +0 -1
  491. package/node_modules/@sudocode-ai/local-server/dist/services/agent-registry.js +0 -312
  492. package/node_modules/@sudocode-ai/local-server/dist/services/agent-registry.js.map +0 -1
  493. package/node_modules/@sudocode-ai/local-server/dist/services/command-discovery-service.d.ts +0 -43
  494. package/node_modules/@sudocode-ai/local-server/dist/services/command-discovery-service.d.ts.map +0 -1
  495. package/node_modules/@sudocode-ai/local-server/dist/services/command-discovery-service.js +0 -114
  496. package/node_modules/@sudocode-ai/local-server/dist/services/command-discovery-service.js.map +0 -1
  497. package/node_modules/@sudocode-ai/local-server/dist/services/db.d.ts +0 -33
  498. package/node_modules/@sudocode-ai/local-server/dist/services/db.d.ts.map +0 -1
  499. package/node_modules/@sudocode-ai/local-server/dist/services/db.js +0 -90
  500. package/node_modules/@sudocode-ai/local-server/dist/services/db.js.map +0 -1
  501. package/node_modules/@sudocode-ai/local-server/dist/services/editor-service.d.ts +0 -57
  502. package/node_modules/@sudocode-ai/local-server/dist/services/editor-service.d.ts.map +0 -1
  503. package/node_modules/@sudocode-ai/local-server/dist/services/editor-service.js +0 -204
  504. package/node_modules/@sudocode-ai/local-server/dist/services/editor-service.js.map +0 -1
  505. package/node_modules/@sudocode-ai/local-server/dist/services/execution-changes-service.d.ts +0 -110
  506. package/node_modules/@sudocode-ai/local-server/dist/services/execution-changes-service.d.ts.map +0 -1
  507. package/node_modules/@sudocode-ai/local-server/dist/services/execution-changes-service.js +0 -710
  508. package/node_modules/@sudocode-ai/local-server/dist/services/execution-changes-service.js.map +0 -1
  509. package/node_modules/@sudocode-ai/local-server/dist/services/execution-event-callbacks.d.ts +0 -73
  510. package/node_modules/@sudocode-ai/local-server/dist/services/execution-event-callbacks.d.ts.map +0 -1
  511. package/node_modules/@sudocode-ai/local-server/dist/services/execution-event-callbacks.js +0 -82
  512. package/node_modules/@sudocode-ai/local-server/dist/services/execution-event-callbacks.js.map +0 -1
  513. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts +0 -145
  514. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.d.ts.map +0 -1
  515. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.js +0 -392
  516. package/node_modules/@sudocode-ai/local-server/dist/services/execution-lifecycle.js.map +0 -1
  517. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-cleanup.d.ts +0 -88
  518. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-cleanup.d.ts.map +0 -1
  519. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-cleanup.js +0 -137
  520. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-cleanup.js.map +0 -1
  521. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-store.d.ts +0 -312
  522. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-store.d.ts.map +0 -1
  523. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-store.js +0 -518
  524. package/node_modules/@sudocode-ai/local-server/dist/services/execution-logs-store.js.map +0 -1
  525. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts +0 -409
  526. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.d.ts.map +0 -1
  527. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js +0 -1694
  528. package/node_modules/@sudocode-ai/local-server/dist/services/execution-service.js.map +0 -1
  529. package/node_modules/@sudocode-ai/local-server/dist/services/execution-worker-pool.d.ts +0 -116
  530. package/node_modules/@sudocode-ai/local-server/dist/services/execution-worker-pool.d.ts.map +0 -1
  531. package/node_modules/@sudocode-ai/local-server/dist/services/execution-worker-pool.js +0 -326
  532. package/node_modules/@sudocode-ai/local-server/dist/services/execution-worker-pool.js.map +0 -1
  533. package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts +0 -63
  534. package/node_modules/@sudocode-ai/local-server/dist/services/executions.d.ts.map +0 -1
  535. package/node_modules/@sudocode-ai/local-server/dist/services/executions.js +0 -177
  536. package/node_modules/@sudocode-ai/local-server/dist/services/executions.js.map +0 -1
  537. package/node_modules/@sudocode-ai/local-server/dist/services/export.d.ts +0 -32
  538. package/node_modules/@sudocode-ai/local-server/dist/services/export.d.ts.map +0 -1
  539. package/node_modules/@sudocode-ai/local-server/dist/services/export.js +0 -114
  540. package/node_modules/@sudocode-ai/local-server/dist/services/export.js.map +0 -1
  541. package/node_modules/@sudocode-ai/local-server/dist/services/external-refresh-service.d.ts +0 -104
  542. package/node_modules/@sudocode-ai/local-server/dist/services/external-refresh-service.d.ts.map +0 -1
  543. package/node_modules/@sudocode-ai/local-server/dist/services/external-refresh-service.js +0 -520
  544. package/node_modules/@sudocode-ai/local-server/dist/services/external-refresh-service.js.map +0 -1
  545. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts +0 -56
  546. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.d.ts.map +0 -1
  547. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js +0 -78
  548. package/node_modules/@sudocode-ai/local-server/dist/services/feedback.js.map +0 -1
  549. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/git-ls-files-strategy.d.ts +0 -72
  550. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/git-ls-files-strategy.d.ts.map +0 -1
  551. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/git-ls-files-strategy.js +0 -176
  552. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/git-ls-files-strategy.js.map +0 -1
  553. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/index.d.ts +0 -9
  554. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/index.d.ts.map +0 -1
  555. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/index.js +0 -10
  556. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/index.js.map +0 -1
  557. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/registry.d.ts +0 -97
  558. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/registry.d.ts.map +0 -1
  559. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/registry.js +0 -140
  560. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/registry.js.map +0 -1
  561. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/strategy.d.ts +0 -58
  562. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/strategy.d.ts.map +0 -1
  563. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/strategy.js +0 -8
  564. package/node_modules/@sudocode-ai/local-server/dist/services/file-search/strategy.js.map +0 -1
  565. package/node_modules/@sudocode-ai/local-server/dist/services/integration-sync-service.d.ts +0 -185
  566. package/node_modules/@sudocode-ai/local-server/dist/services/integration-sync-service.d.ts.map +0 -1
  567. package/node_modules/@sudocode-ai/local-server/dist/services/integration-sync-service.js +0 -428
  568. package/node_modules/@sudocode-ai/local-server/dist/services/integration-sync-service.js.map +0 -1
  569. package/node_modules/@sudocode-ai/local-server/dist/services/issues.d.ts +0 -27
  570. package/node_modules/@sudocode-ai/local-server/dist/services/issues.d.ts.map +0 -1
  571. package/node_modules/@sudocode-ai/local-server/dist/services/issues.js +0 -35
  572. package/node_modules/@sudocode-ai/local-server/dist/services/issues.js.map +0 -1
  573. package/node_modules/@sudocode-ai/local-server/dist/services/narration-service.d.ts +0 -312
  574. package/node_modules/@sudocode-ai/local-server/dist/services/narration-service.d.ts.map +0 -1
  575. package/node_modules/@sudocode-ai/local-server/dist/services/narration-service.js +0 -749
  576. package/node_modules/@sudocode-ai/local-server/dist/services/narration-service.js.map +0 -1
  577. package/node_modules/@sudocode-ai/local-server/dist/services/project-context.d.ts +0 -93
  578. package/node_modules/@sudocode-ai/local-server/dist/services/project-context.d.ts.map +0 -1
  579. package/node_modules/@sudocode-ai/local-server/dist/services/project-context.js +0 -166
  580. package/node_modules/@sudocode-ai/local-server/dist/services/project-context.js.map +0 -1
  581. package/node_modules/@sudocode-ai/local-server/dist/services/project-manager.d.ts +0 -102
  582. package/node_modules/@sudocode-ai/local-server/dist/services/project-manager.d.ts.map +0 -1
  583. package/node_modules/@sudocode-ai/local-server/dist/services/project-manager.js +0 -500
  584. package/node_modules/@sudocode-ai/local-server/dist/services/project-manager.js.map +0 -1
  585. package/node_modules/@sudocode-ai/local-server/dist/services/project-registry.d.ts +0 -98
  586. package/node_modules/@sudocode-ai/local-server/dist/services/project-registry.d.ts.map +0 -1
  587. package/node_modules/@sudocode-ai/local-server/dist/services/project-registry.js +0 -289
  588. package/node_modules/@sudocode-ai/local-server/dist/services/project-registry.js.map +0 -1
  589. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-resolver.d.ts +0 -97
  590. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-resolver.d.ts.map +0 -1
  591. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-resolver.js +0 -377
  592. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-resolver.js.map +0 -1
  593. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.d.ts +0 -108
  594. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.d.ts.map +0 -1
  595. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.js +0 -212
  596. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-template-engine.js.map +0 -1
  597. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.d.ts +0 -97
  598. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.d.ts.map +0 -1
  599. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.js +0 -236
  600. package/node_modules/@sudocode-ai/local-server/dist/services/prompt-templates.js.map +0 -1
  601. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.d.ts +0 -35
  602. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.d.ts.map +0 -1
  603. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.js +0 -42
  604. package/node_modules/@sudocode-ai/local-server/dist/services/relationships.js.map +0 -1
  605. package/node_modules/@sudocode-ai/local-server/dist/services/repo-info.d.ts +0 -33
  606. package/node_modules/@sudocode-ai/local-server/dist/services/repo-info.d.ts.map +0 -1
  607. package/node_modules/@sudocode-ai/local-server/dist/services/repo-info.js +0 -136
  608. package/node_modules/@sudocode-ai/local-server/dist/services/repo-info.js.map +0 -1
  609. package/node_modules/@sudocode-ai/local-server/dist/services/specs.d.ts +0 -27
  610. package/node_modules/@sudocode-ai/local-server/dist/services/specs.d.ts.map +0 -1
  611. package/node_modules/@sudocode-ai/local-server/dist/services/specs.js +0 -35
  612. package/node_modules/@sudocode-ai/local-server/dist/services/specs.js.map +0 -1
  613. package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/index.d.ts +0 -21
  614. package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/index.d.ts.map +0 -1
  615. package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/index.js +0 -32
  616. package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/index.js.map +0 -1
  617. package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/openai-whisper.d.ts +0 -66
  618. package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/openai-whisper.d.ts.map +0 -1
  619. package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/openai-whisper.js +0 -137
  620. package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/openai-whisper.js.map +0 -1
  621. package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/whisper-local.d.ts +0 -64
  622. package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/whisper-local.d.ts.map +0 -1
  623. package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/whisper-local.js +0 -166
  624. package/node_modules/@sudocode-ai/local-server/dist/services/stt-providers/whisper-local.js.map +0 -1
  625. package/node_modules/@sudocode-ai/local-server/dist/services/stt-service.d.ts +0 -160
  626. package/node_modules/@sudocode-ai/local-server/dist/services/stt-service.d.ts.map +0 -1
  627. package/node_modules/@sudocode-ai/local-server/dist/services/stt-service.js +0 -246
  628. package/node_modules/@sudocode-ai/local-server/dist/services/stt-service.js.map +0 -1
  629. package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/browser-tts.d.ts +0 -64
  630. package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/browser-tts.d.ts.map +0 -1
  631. package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/browser-tts.js +0 -89
  632. package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/browser-tts.js.map +0 -1
  633. package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/index.d.ts +0 -20
  634. package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/index.d.ts.map +0 -1
  635. package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/index.js +0 -31
  636. package/node_modules/@sudocode-ai/local-server/dist/services/tts-providers/index.js.map +0 -1
  637. package/node_modules/@sudocode-ai/local-server/dist/services/tts-service.d.ts +0 -190
  638. package/node_modules/@sudocode-ai/local-server/dist/services/tts-service.d.ts.map +0 -1
  639. package/node_modules/@sudocode-ai/local-server/dist/services/tts-service.js +0 -296
  640. package/node_modules/@sudocode-ai/local-server/dist/services/tts-service.js.map +0 -1
  641. package/node_modules/@sudocode-ai/local-server/dist/services/tts-sidecar-manager.d.ts +0 -276
  642. package/node_modules/@sudocode-ai/local-server/dist/services/tts-sidecar-manager.d.ts.map +0 -1
  643. package/node_modules/@sudocode-ai/local-server/dist/services/tts-sidecar-manager.js +0 -665
  644. package/node_modules/@sudocode-ai/local-server/dist/services/tts-sidecar-manager.js.map +0 -1
  645. package/node_modules/@sudocode-ai/local-server/dist/services/version-service.d.ts +0 -14
  646. package/node_modules/@sudocode-ai/local-server/dist/services/version-service.d.ts.map +0 -1
  647. package/node_modules/@sudocode-ai/local-server/dist/services/version-service.js +0 -57
  648. package/node_modules/@sudocode-ai/local-server/dist/services/version-service.js.map +0 -1
  649. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts +0 -49
  650. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.d.ts.map +0 -1
  651. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.js +0 -52
  652. package/node_modules/@sudocode-ai/local-server/dist/services/watcher.js.map +0 -1
  653. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.d.ts +0 -246
  654. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.d.ts.map +0 -1
  655. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js +0 -758
  656. package/node_modules/@sudocode-ai/local-server/dist/services/websocket.js.map +0 -1
  657. package/node_modules/@sudocode-ai/local-server/dist/services/workflow-broadcast-service.d.ts +0 -43
  658. package/node_modules/@sudocode-ai/local-server/dist/services/workflow-broadcast-service.d.ts.map +0 -1
  659. package/node_modules/@sudocode-ai/local-server/dist/services/workflow-broadcast-service.js +0 -155
  660. package/node_modules/@sudocode-ai/local-server/dist/services/workflow-broadcast-service.js.map +0 -1
  661. package/node_modules/@sudocode-ai/local-server/dist/services/worktree-sync-service.d.ts +0 -452
  662. package/node_modules/@sudocode-ai/local-server/dist/services/worktree-sync-service.d.ts.map +0 -1
  663. package/node_modules/@sudocode-ai/local-server/dist/services/worktree-sync-service.js +0 -1602
  664. package/node_modules/@sudocode-ai/local-server/dist/services/worktree-sync-service.js.map +0 -1
  665. package/node_modules/@sudocode-ai/local-server/dist/types/editor.d.ts +0 -49
  666. package/node_modules/@sudocode-ai/local-server/dist/types/editor.d.ts.map +0 -1
  667. package/node_modules/@sudocode-ai/local-server/dist/types/editor.js +0 -50
  668. package/node_modules/@sudocode-ai/local-server/dist/types/editor.js.map +0 -1
  669. package/node_modules/@sudocode-ai/local-server/dist/types/project.d.ts +0 -58
  670. package/node_modules/@sudocode-ai/local-server/dist/types/project.d.ts.map +0 -1
  671. package/node_modules/@sudocode-ai/local-server/dist/types/project.js +0 -10
  672. package/node_modules/@sudocode-ai/local-server/dist/types/project.js.map +0 -1
  673. package/node_modules/@sudocode-ai/local-server/dist/utils/execFileNoThrow.d.ts +0 -43
  674. package/node_modules/@sudocode-ai/local-server/dist/utils/execFileNoThrow.d.ts.map +0 -1
  675. package/node_modules/@sudocode-ai/local-server/dist/utils/execFileNoThrow.js +0 -53
  676. package/node_modules/@sudocode-ai/local-server/dist/utils/execFileNoThrow.js.map +0 -1
  677. package/node_modules/@sudocode-ai/local-server/dist/utils/executable-check.d.ts +0 -36
  678. package/node_modules/@sudocode-ai/local-server/dist/utils/executable-check.d.ts.map +0 -1
  679. package/node_modules/@sudocode-ai/local-server/dist/utils/executable-check.js +0 -79
  680. package/node_modules/@sudocode-ai/local-server/dist/utils/executable-check.js.map +0 -1
  681. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.d.ts +0 -6
  682. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.d.ts.map +0 -1
  683. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.js +0 -9
  684. package/node_modules/@sudocode-ai/local-server/dist/utils/sudocode-dir.js.map +0 -1
  685. package/node_modules/@sudocode-ai/local-server/dist/utils/voice-config.d.ts +0 -26
  686. package/node_modules/@sudocode-ai/local-server/dist/utils/voice-config.d.ts.map +0 -1
  687. package/node_modules/@sudocode-ai/local-server/dist/utils/voice-config.js +0 -48
  688. package/node_modules/@sudocode-ai/local-server/dist/utils/voice-config.js.map +0 -1
  689. package/node_modules/@sudocode-ai/local-server/dist/workers/execution-worker.d.ts +0 -18
  690. package/node_modules/@sudocode-ai/local-server/dist/workers/execution-worker.d.ts.map +0 -1
  691. package/node_modules/@sudocode-ai/local-server/dist/workers/execution-worker.js +0 -344
  692. package/node_modules/@sudocode-ai/local-server/dist/workers/execution-worker.js.map +0 -1
  693. package/node_modules/@sudocode-ai/local-server/dist/workers/worker-ipc.d.ts +0 -84
  694. package/node_modules/@sudocode-ai/local-server/dist/workers/worker-ipc.d.ts.map +0 -1
  695. package/node_modules/@sudocode-ai/local-server/dist/workers/worker-ipc.js +0 -29
  696. package/node_modules/@sudocode-ai/local-server/dist/workers/worker-ipc.js.map +0 -1
  697. package/node_modules/@sudocode-ai/local-server/dist/workflow/base-workflow-engine.d.ts +0 -188
  698. package/node_modules/@sudocode-ai/local-server/dist/workflow/base-workflow-engine.d.ts.map +0 -1
  699. package/node_modules/@sudocode-ai/local-server/dist/workflow/base-workflow-engine.js +0 -557
  700. package/node_modules/@sudocode-ai/local-server/dist/workflow/base-workflow-engine.js.map +0 -1
  701. package/node_modules/@sudocode-ai/local-server/dist/workflow/dependency-analyzer.d.ts +0 -78
  702. package/node_modules/@sudocode-ai/local-server/dist/workflow/dependency-analyzer.d.ts.map +0 -1
  703. package/node_modules/@sudocode-ai/local-server/dist/workflow/dependency-analyzer.js +0 -264
  704. package/node_modules/@sudocode-ai/local-server/dist/workflow/dependency-analyzer.js.map +0 -1
  705. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/orchestrator-engine.d.ts +0 -241
  706. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/orchestrator-engine.d.ts.map +0 -1
  707. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/orchestrator-engine.js +0 -752
  708. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/orchestrator-engine.js.map +0 -1
  709. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/sequential-engine.d.ts +0 -283
  710. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/sequential-engine.d.ts.map +0 -1
  711. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/sequential-engine.js +0 -1190
  712. package/node_modules/@sudocode-ai/local-server/dist/workflow/engines/sequential-engine.js.map +0 -1
  713. package/node_modules/@sudocode-ai/local-server/dist/workflow/index.d.ts +0 -15
  714. package/node_modules/@sudocode-ai/local-server/dist/workflow/index.d.ts.map +0 -1
  715. package/node_modules/@sudocode-ai/local-server/dist/workflow/index.js +0 -22
  716. package/node_modules/@sudocode-ai/local-server/dist/workflow/index.js.map +0 -1
  717. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/api-client.d.ts +0 -103
  718. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/api-client.d.ts.map +0 -1
  719. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/api-client.js +0 -193
  720. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/api-client.js.map +0 -1
  721. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/index.d.ts +0 -16
  722. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/index.d.ts.map +0 -1
  723. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/index.js +0 -114
  724. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/index.js.map +0 -1
  725. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/server.d.ts +0 -85
  726. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/server.d.ts.map +0 -1
  727. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/server.js +0 -520
  728. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/server.js.map +0 -1
  729. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/escalation.d.ts +0 -36
  730. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/escalation.d.ts.map +0 -1
  731. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/escalation.js +0 -47
  732. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/escalation.js.map +0 -1
  733. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/execution.d.ts +0 -59
  734. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/execution.d.ts.map +0 -1
  735. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/execution.js +0 -67
  736. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/execution.js.map +0 -1
  737. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/inspection.d.ts +0 -82
  738. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/inspection.d.ts.map +0 -1
  739. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/inspection.js +0 -57
  740. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/inspection.js.map +0 -1
  741. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/workflow.d.ts +0 -59
  742. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/workflow.d.ts.map +0 -1
  743. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/workflow.js +0 -40
  744. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/tools/workflow.js.map +0 -1
  745. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/types.d.ts +0 -345
  746. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/types.d.ts.map +0 -1
  747. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/types.js +0 -7
  748. package/node_modules/@sudocode-ai/local-server/dist/workflow/mcp/types.js.map +0 -1
  749. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/prompt-builder.d.ts +0 -36
  750. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/prompt-builder.d.ts.map +0 -1
  751. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/prompt-builder.js +0 -329
  752. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/prompt-builder.js.map +0 -1
  753. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/wakeup-service.d.ts +0 -262
  754. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/wakeup-service.d.ts.map +0 -1
  755. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/wakeup-service.js +0 -809
  756. package/node_modules/@sudocode-ai/local-server/dist/workflow/services/wakeup-service.js.map +0 -1
  757. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-engine.d.ts +0 -228
  758. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-engine.d.ts.map +0 -1
  759. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-engine.js +0 -94
  760. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-engine.js.map +0 -1
  761. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-event-emitter.d.ts +0 -278
  762. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-event-emitter.d.ts.map +0 -1
  763. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-event-emitter.js +0 -259
  764. package/node_modules/@sudocode-ai/local-server/dist/workflow/workflow-event-emitter.js.map +0 -1
  765. package/node_modules/@sudocode-ai/local-server/package.json +0 -83
  766. package/node_modules/@sudocode-ai/mcp/README.md +0 -226
  767. package/node_modules/@sudocode-ai/mcp/dist/api-client.d.ts +0 -296
  768. package/node_modules/@sudocode-ai/mcp/dist/api-client.d.ts.map +0 -1
  769. package/node_modules/@sudocode-ai/mcp/dist/api-client.js +0 -304
  770. package/node_modules/@sudocode-ai/mcp/dist/api-client.js.map +0 -1
  771. package/node_modules/@sudocode-ai/mcp/dist/client.d.ts +0 -33
  772. package/node_modules/@sudocode-ai/mcp/dist/client.d.ts.map +0 -1
  773. package/node_modules/@sudocode-ai/mcp/dist/client.js +0 -166
  774. package/node_modules/@sudocode-ai/mcp/dist/client.js.map +0 -1
  775. package/node_modules/@sudocode-ai/mcp/dist/index.d.ts +0 -6
  776. package/node_modules/@sudocode-ai/mcp/dist/index.d.ts.map +0 -1
  777. package/node_modules/@sudocode-ai/mcp/dist/index.js +0 -167
  778. package/node_modules/@sudocode-ai/mcp/dist/index.js.map +0 -1
  779. package/node_modules/@sudocode-ai/mcp/dist/scopes.d.ts +0 -126
  780. package/node_modules/@sudocode-ai/mcp/dist/scopes.d.ts.map +0 -1
  781. package/node_modules/@sudocode-ai/mcp/dist/scopes.js +0 -282
  782. package/node_modules/@sudocode-ai/mcp/dist/scopes.js.map +0 -1
  783. package/node_modules/@sudocode-ai/mcp/dist/server.d.ts +0 -37
  784. package/node_modules/@sudocode-ai/mcp/dist/server.d.ts.map +0 -1
  785. package/node_modules/@sudocode-ai/mcp/dist/server.js +0 -442
  786. package/node_modules/@sudocode-ai/mcp/dist/server.js.map +0 -1
  787. package/node_modules/@sudocode-ai/mcp/dist/tool-registry.d.ts +0 -49
  788. package/node_modules/@sudocode-ai/mcp/dist/tool-registry.d.ts.map +0 -1
  789. package/node_modules/@sudocode-ai/mcp/dist/tool-registry.js +0 -720
  790. package/node_modules/@sudocode-ai/mcp/dist/tool-registry.js.map +0 -1
  791. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.d.ts +0 -41
  792. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.d.ts.map +0 -1
  793. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.js +0 -21
  794. package/node_modules/@sudocode-ai/mcp/dist/tools/analytics.js.map +0 -1
  795. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.d.ts +0 -21
  796. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.d.ts.map +0 -1
  797. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.js +0 -30
  798. package/node_modules/@sudocode-ai/mcp/dist/tools/feedback.js.map +0 -1
  799. package/node_modules/@sudocode-ai/mcp/dist/tools/init.d.ts +0 -17
  800. package/node_modules/@sudocode-ai/mcp/dist/tools/init.d.ts.map +0 -1
  801. package/node_modules/@sudocode-ai/mcp/dist/tools/init.js +0 -15
  802. package/node_modules/@sudocode-ai/mcp/dist/tools/init.js.map +0 -1
  803. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.d.ts +0 -44
  804. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.d.ts.map +0 -1
  805. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.js +0 -109
  806. package/node_modules/@sudocode-ai/mcp/dist/tools/issues.js.map +0 -1
  807. package/node_modules/@sudocode-ai/mcp/dist/tools/references.d.ts +0 -21
  808. package/node_modules/@sudocode-ai/mcp/dist/tools/references.d.ts.map +0 -1
  809. package/node_modules/@sudocode-ai/mcp/dist/tools/references.js +0 -49
  810. package/node_modules/@sudocode-ai/mcp/dist/tools/references.js.map +0 -1
  811. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.d.ts +0 -15
  812. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.d.ts.map +0 -1
  813. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.js +0 -18
  814. package/node_modules/@sudocode-ai/mcp/dist/tools/relationships.js.map +0 -1
  815. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.d.ts +0 -35
  816. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.d.ts.map +0 -1
  817. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.js +0 -85
  818. package/node_modules/@sudocode-ai/mcp/dist/tools/specs.js.map +0 -1
  819. package/node_modules/@sudocode-ai/mcp/dist/types.d.ts +0 -46
  820. package/node_modules/@sudocode-ai/mcp/dist/types.d.ts.map +0 -1
  821. package/node_modules/@sudocode-ai/mcp/dist/types.js +0 -21
  822. package/node_modules/@sudocode-ai/mcp/dist/types.js.map +0 -1
  823. package/node_modules/@sudocode-ai/mcp/package.json +0 -67
  824. package/node_modules/@sudocode-ai/types/README.md +0 -7
  825. package/node_modules/@sudocode-ai/types/package.json +0 -81
  826. package/node_modules/@sudocode-ai/types/src/agents.d.ts +0 -348
  827. package/node_modules/@sudocode-ai/types/src/artifacts.d.ts +0 -66
  828. package/node_modules/@sudocode-ai/types/src/events.d.ts +0 -70
  829. package/node_modules/@sudocode-ai/types/src/index.d.ts +0 -587
  830. package/node_modules/@sudocode-ai/types/src/integrations.d.ts +0 -454
  831. package/node_modules/@sudocode-ai/types/src/voice.d.ts +0 -465
  832. package/node_modules/@sudocode-ai/types/src/workflows.d.ts +0 -501
  833. package/node_modules/commander/LICENSE +0 -22
  834. package/node_modules/commander/Readme.md +0 -1149
  835. package/node_modules/commander/esm.mjs +0 -16
  836. package/node_modules/commander/index.js +0 -24
  837. package/node_modules/commander/lib/argument.js +0 -149
  838. package/node_modules/commander/lib/command.js +0 -2662
  839. package/node_modules/commander/lib/error.js +0 -39
  840. package/node_modules/commander/lib/help.js +0 -709
  841. package/node_modules/commander/lib/option.js +0 -367
  842. package/node_modules/commander/lib/suggestSimilar.js +0 -101
  843. package/node_modules/commander/package-support.json +0 -16
  844. package/node_modules/commander/package.json +0 -82
  845. package/node_modules/commander/typings/esm.d.mts +0 -3
  846. package/node_modules/commander/typings/index.d.ts +0 -1045
  847. package/node_modules/glob/LICENSE +0 -15
  848. package/node_modules/glob/README.md +0 -1265
  849. package/node_modules/glob/package.json +0 -99
  850. package/node_modules/isexe/LICENSE +0 -15
  851. package/node_modules/isexe/README.md +0 -74
  852. package/node_modules/isexe/package.json +0 -96
  853. package/node_modules/which/LICENSE +0 -15
  854. package/node_modules/which/README.md +0 -51
  855. package/node_modules/which/bin/which.js +0 -52
  856. package/node_modules/which/lib/index.js +0 -111
  857. package/node_modules/which/package.json +0 -52
@@ -1,1126 +0,0 @@
1
- /**
2
- * AcpExecutorWrapper - Unified executor using Agent Client Protocol (ACP)
3
- *
4
- * Uses acp-factory for agent lifecycle management and streams SessionUpdate
5
- * events directly to the frontend. Supports all ACP-native agents (claude-code,
6
- * codex, gemini, opencode) with a unified interface.
7
- *
8
- * @module execution/executors/acp-executor-wrapper
9
- */
10
- import { AgentFactory, } from "acp-factory";
11
- import { PermissionManager } from "./permission-manager.js";
12
- import { FileHandler } from "../handlers/file-handler.js";
13
- import { SessionUpdateCoalescer } from "../output/session-update-coalescer.js";
14
- import { serializeCoalescedUpdate, } from "../output/coalesced-types.js";
15
- import { updateExecution, getExecution } from "../../services/executions.js";
16
- import { broadcastExecutionUpdate, broadcastSessionEvent, websocketManager, } from "../../services/websocket.js";
17
- import { execSync } from "child_process";
18
- import { ExecutionChangesService } from "../../services/execution-changes-service.js";
19
- import { notifyExecutionEvent } from "../../services/execution-event-callbacks.js";
20
- import { getSessionPermissionMode } from "./agent-config-handlers.js";
21
- /**
22
- * Convert sudocode's MCP config format to acp-factory's McpServer[] format
23
- *
24
- * sudocode format: { "server-name": { command, args?, env?: Record } }
25
- * acp-factory format: [{ name, command, args: [], env: [{name, value}] }]
26
- */
27
- export function convertMcpServers(config) {
28
- if (!config) {
29
- return [];
30
- }
31
- // Already in array format (McpServer[])
32
- if (Array.isArray(config)) {
33
- return config;
34
- }
35
- // Convert from Record<string, SudocodeMcpServerConfig> to McpServer[]
36
- return Object.entries(config).map(([name, serverConfig]) => ({
37
- name,
38
- command: serverConfig.command,
39
- args: serverConfig.args ?? [],
40
- env: serverConfig.env
41
- ? Object.entries(serverConfig.env).map(([envName, value]) => ({
42
- name: envName,
43
- value,
44
- }))
45
- : [],
46
- }));
47
- }
48
- /**
49
- * AcpExecutorWrapper
50
- *
51
- * Unified executor wrapper that uses acp-factory for agent lifecycle management.
52
- * Streams SessionUpdate events directly to the frontend and coalesces them for storage.
53
- *
54
- * @example
55
- * ```typescript
56
- * const wrapper = new AcpExecutorWrapper({
57
- * agentType: "claude-code",
58
- * acpConfig: {
59
- * agentType: "claude-code",
60
- * mcpServers: [{ name: "context", uri: "..." }],
61
- * permissionMode: "auto-approve",
62
- * },
63
- * lifecycleService,
64
- * logsStore,
65
- * projectId: "my-project",
66
- * db,
67
- * });
68
- *
69
- * await wrapper.executeWithLifecycle(executionId, task, workDir);
70
- * ```
71
- */
72
- export class AcpExecutorWrapper {
73
- agentType;
74
- acpConfig;
75
- logsStore;
76
- projectId;
77
- db;
78
- /** Active agent handles by execution ID */
79
- activeAgents = new Map();
80
- /** Active sessions by execution ID */
81
- activeSessions = new Map();
82
- /** Permission managers by execution ID (for interactive mode) */
83
- permissionManagers = new Map();
84
- /** File handlers by execution ID */
85
- fileHandlers = new Map();
86
- /** Persistent session state by execution ID */
87
- persistentSessions = new Map();
88
- constructor(config) {
89
- this.agentType = config.agentType;
90
- this.acpConfig = config.acpConfig;
91
- this.logsStore = config.logsStore;
92
- this.projectId = config.projectId;
93
- this.db = config.db;
94
- console.log("[AcpExecutorWrapper] Initialized", {
95
- agentType: this.agentType,
96
- projectId: this.projectId,
97
- hasLogsStore: !!this.logsStore,
98
- });
99
- }
100
- /**
101
- * Execute a task with full lifecycle management
102
- *
103
- * @param executionId - Unique execution identifier
104
- * @param task - Task to execute
105
- * @param workDir - Working directory for execution
106
- * @param options - Execution lifecycle options (sessionMode, sessionEndMode)
107
- */
108
- async executeWithLifecycle(executionId, task, workDir, options) {
109
- const isPersistent = options?.sessionMode === "persistent";
110
- console.log(`[AcpExecutorWrapper] Starting execution ${executionId}`, {
111
- agentType: this.agentType,
112
- taskId: task.id,
113
- workDir,
114
- sessionMode: options?.sessionMode ?? "discrete",
115
- });
116
- // Initialize persistent session state if needed
117
- if (isPersistent) {
118
- const sessionConfig = options?.sessionEndMode ?? { explicit: true };
119
- const persistentState = {
120
- config: sessionConfig,
121
- promptCount: 0,
122
- state: "running",
123
- workDir,
124
- };
125
- // Register disconnect callback if endOnDisconnect is enabled
126
- if (sessionConfig.endOnDisconnect) {
127
- persistentState.unregisterDisconnectCallback =
128
- this.registerDisconnectHandler(executionId);
129
- }
130
- this.persistentSessions.set(executionId, persistentState);
131
- }
132
- let agent = null;
133
- let session = null;
134
- // Create permission manager for this execution (for interactive mode)
135
- const permissionManager = new PermissionManager();
136
- this.permissionManagers.set(executionId, permissionManager);
137
- // Create file handler for this execution
138
- // TODO: Set an explicit terminal handler if we need to explicitly manage terminals in the future.
139
- const fileHandler = new FileHandler(workDir);
140
- this.fileHandlers.set(executionId, fileHandler);
141
- try {
142
- // 1. Spawn agent via ACP factory
143
- console.log(`[AcpExecutorWrapper] Spawning ${this.agentType} agent for ${executionId}`);
144
- // Determine permission mode
145
- const permissionMode = this.acpConfig.permissionMode ?? "interactive";
146
- agent = await AgentFactory.spawn(this.agentType, {
147
- env: this.acpConfig.env,
148
- permissionMode,
149
- // File handlers only - no terminal handlers means Claude Code uses native Bash
150
- onFileRead: (path) => fileHandler.onRead(path),
151
- onFileWrite: (path, content) => fileHandler.onWrite(path, content),
152
- });
153
- this.activeAgents.set(executionId, agent);
154
- // 2. Create session with MCP servers
155
- // Convert from sudocode format (Record<string, config>) to acp-factory format (McpServer[])
156
- const mcpServers = convertMcpServers(task.metadata?.mcpServers ?? this.acpConfig.mcpServers);
157
- // Build agentMeta for compaction settings (Claude Code specific)
158
- const agentMeta = this.acpConfig.compaction?.enabled
159
- ? {
160
- claudeCode: {
161
- compaction: {
162
- enabled: true,
163
- contextTokenThreshold: this.acpConfig.compaction.contextTokenThreshold,
164
- customInstructions: this.acpConfig.compaction.customInstructions,
165
- },
166
- },
167
- }
168
- : undefined;
169
- console.log(`[AcpExecutorWrapper] Creating session for ${executionId}`, {
170
- mcpServers: mcpServers.map((s) => s.name),
171
- compactionEnabled: this.acpConfig.compaction?.enabled ?? false,
172
- agentMeta: agentMeta ? JSON.stringify(agentMeta) : undefined,
173
- });
174
- session = await agent.createSession(workDir, {
175
- mcpServers,
176
- mode: this.acpConfig.mode,
177
- agentMeta,
178
- });
179
- this.activeSessions.set(executionId, session);
180
- // 2b. Set permission mode on the agent session using handler logic
181
- const sessionPermissionMode = getSessionPermissionMode(this.agentType, {
182
- skipPermissions: permissionMode === "auto-approve",
183
- acpPermissionMode: permissionMode,
184
- agentPermissionMode: this.acpConfig.agentPermissionMode,
185
- });
186
- if (sessionPermissionMode) {
187
- try {
188
- await session.setMode(sessionPermissionMode);
189
- console.log(`[AcpExecutorWrapper] Set session permission mode to ${sessionPermissionMode} for ${executionId}`);
190
- }
191
- catch (modeError) {
192
- console.warn(`[AcpExecutorWrapper] Failed to set ${sessionPermissionMode} mode (agent may not support it): ${modeError}`);
193
- }
194
- }
195
- // 3. Update execution status to running and capture session ID
196
- updateExecution(this.db, executionId, {
197
- status: "running",
198
- session_id: session.id,
199
- });
200
- const execution = getExecution(this.db, executionId);
201
- if (execution) {
202
- broadcastExecutionUpdate(this.projectId, executionId, "status_changed", execution, execution.issue_id || undefined);
203
- }
204
- // 4. Stream prompt and process SessionUpdate events
205
- const coalescer = new SessionUpdateCoalescer();
206
- console.log(`[AcpExecutorWrapper] Sending prompt for ${executionId}`, {
207
- promptLength: task.prompt.length,
208
- });
209
- let updateCount = 0;
210
- for await (const update of session.prompt(task.prompt)) {
211
- updateCount++;
212
- // Log first 10 updates and every 100th update
213
- if (updateCount <= 10 || updateCount % 100 === 0) {
214
- console.log(`[AcpExecutorWrapper] Update ${updateCount} for ${executionId}:`, { sessionUpdate: update.sessionUpdate });
215
- }
216
- // Always log tool_call events with details for debugging
217
- if (update.sessionUpdate === "tool_call" ||
218
- update.sessionUpdate === "tool_call_update") {
219
- const toolUpdate = update;
220
- console.log(`[AcpExecutorWrapper] Tool call event:`, {
221
- type: toolUpdate.sessionUpdate,
222
- toolCallId: toolUpdate.toolCallId,
223
- title: toolUpdate.title,
224
- status: toolUpdate.status,
225
- hasRawInput: !!toolUpdate.rawInput,
226
- rawInputPreview: typeof toolUpdate.rawInput === "object"
227
- ? JSON.stringify(toolUpdate.rawInput).substring(0, 200)
228
- : undefined,
229
- });
230
- }
231
- // Handle permission requests (for interactive mode)
232
- if (update.sessionUpdate === "permission_request") {
233
- const permUpdate = update;
234
- console.log(`[AcpExecutorWrapper] Permission request received:`, {
235
- executionId,
236
- requestId: permUpdate.requestId,
237
- toolCall: permUpdate.toolCall?.title,
238
- options: permUpdate.options?.map((o) => o.kind),
239
- });
240
- // Register with permission manager (non-blocking)
241
- permissionManager.addPending({
242
- requestId: permUpdate.requestId,
243
- sessionId: permUpdate.sessionId,
244
- toolCall: permUpdate.toolCall,
245
- options: permUpdate.options,
246
- });
247
- }
248
- // 5. Broadcast SessionUpdate to frontend via SSE
249
- this.broadcastSessionUpdate(executionId, update);
250
- // 6. Coalesce for storage
251
- const coalescedUpdates = coalescer.process(update);
252
- for (const coalesced of coalescedUpdates) {
253
- this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(coalesced));
254
- }
255
- }
256
- // 7. Flush remaining coalesced state
257
- const remaining = coalescer.flush();
258
- for (const coalesced of remaining) {
259
- this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(coalesced));
260
- }
261
- console.log(`[AcpExecutorWrapper] Prompt completed for ${executionId}`, {
262
- totalUpdates: updateCount,
263
- isPersistent,
264
- });
265
- // 8. Handle completion based on session mode
266
- if (isPersistent) {
267
- // Persistent mode: transition to pending state
268
- await this.transitionToWaiting(executionId);
269
- }
270
- else {
271
- // Discrete mode: complete the execution
272
- await this.handleSuccess(executionId, workDir);
273
- }
274
- }
275
- catch (error) {
276
- console.error(`[AcpExecutorWrapper] Execution failed for ${executionId}:`, error);
277
- await this.handleError(executionId, error, workDir);
278
- throw error;
279
- }
280
- finally {
281
- // Skip cleanup for persistent sessions that are still alive
282
- const persistentState = this.persistentSessions.get(executionId);
283
- if (persistentState && persistentState.state !== "ended") {
284
- console.log(`[AcpExecutorWrapper] Skipping cleanup for persistent session ${executionId} (state: ${persistentState.state})`);
285
- return;
286
- }
287
- // Cleanup for discrete sessions or ended persistent sessions
288
- this.activeSessions.delete(executionId);
289
- this.activeAgents.delete(executionId);
290
- this.persistentSessions.delete(executionId);
291
- // Cancel any pending permissions
292
- const pm = this.permissionManagers.get(executionId);
293
- if (pm) {
294
- pm.cancelAll();
295
- this.permissionManagers.delete(executionId);
296
- }
297
- // Cleanup file handler
298
- this.fileHandlers.delete(executionId);
299
- // Close agent if still running
300
- if (agent?.isRunning()) {
301
- try {
302
- await agent.close();
303
- console.log(`[AcpExecutorWrapper] Closed agent for ${executionId}`);
304
- }
305
- catch (closeError) {
306
- console.warn(`[AcpExecutorWrapper] Error closing agent for ${executionId}:`, closeError);
307
- }
308
- }
309
- }
310
- }
311
- /**
312
- * Resume a task from a previous session
313
- *
314
- * @param executionId - Unique execution identifier
315
- * @param sessionId - Session ID to resume from
316
- * @param task - Task to resume
317
- * @param workDir - Working directory for execution
318
- * @param options - Execution lifecycle options (sessionMode, sessionEndMode)
319
- */
320
- async resumeWithLifecycle(executionId, sessionId, task, workDir, options) {
321
- const isPersistent = options?.sessionMode === "persistent";
322
- console.log(`[AcpExecutorWrapper] Resuming session ${sessionId} for ${executionId}`, { sessionMode: options?.sessionMode ?? "discrete" });
323
- // Initialize persistent session state if needed
324
- if (isPersistent) {
325
- const sessionConfig = options?.sessionEndMode ?? { explicit: true };
326
- const persistentState = {
327
- config: sessionConfig,
328
- promptCount: 0,
329
- state: "running",
330
- workDir,
331
- };
332
- this.persistentSessions.set(executionId, persistentState);
333
- // Register for WebSocket disconnect events to handle cleanup
334
- persistentState.unregisterDisconnectCallback =
335
- this.registerDisconnectHandler(executionId);
336
- }
337
- let agent = null;
338
- let session = null;
339
- // Create permission manager for this execution
340
- const permissionManager = new PermissionManager();
341
- this.permissionManagers.set(executionId, permissionManager);
342
- // Create file handler for this execution (no terminal handlers - use native Bash)
343
- const fileHandler = new FileHandler(workDir);
344
- this.fileHandlers.set(executionId, fileHandler);
345
- try {
346
- // 1. Spawn agent
347
- const permissionMode = this.acpConfig.permissionMode ?? "interactive";
348
- agent = await AgentFactory.spawn(this.agentType, {
349
- env: this.acpConfig.env,
350
- permissionMode,
351
- // File handlers only - no terminal handlers means Claude Code uses native Bash
352
- onFileRead: (path) => fileHandler.onRead(path),
353
- onFileWrite: (path, content) => fileHandler.onWrite(path, content),
354
- });
355
- this.activeAgents.set(executionId, agent);
356
- // Build agentMeta for compaction settings (Claude Code specific)
357
- // This is needed for both loadSession and createSession to ensure compaction works on follow-ups
358
- const agentMeta = this.acpConfig.compaction?.enabled
359
- ? {
360
- claudeCode: {
361
- compaction: {
362
- enabled: true,
363
- contextTokenThreshold: this.acpConfig.compaction.contextTokenThreshold,
364
- customInstructions: this.acpConfig.compaction.customInstructions,
365
- },
366
- },
367
- }
368
- : undefined;
369
- // 2. Load existing session or create new one if agent doesn't support loading
370
- if (agent.capabilities?.loadSession) {
371
- console.log(`[AcpExecutorWrapper] Loading session ${sessionId} for ${executionId}`);
372
- // Pass agentMeta to loadSession so compaction config is re-applied on session resume
373
- session = await agent.loadSession(sessionId, workDir, [], {
374
- agentMeta,
375
- });
376
- }
377
- else {
378
- // Agent doesn't support session loading via ACP
379
- // For agents like Copilot that use --resume <sessionId> CLI flag,
380
- // the session ID is already passed to the CLI via agent-config-handlers
381
- console.log(`[AcpExecutorWrapper] Agent doesn't support session loading via ACP, creating new session for ${executionId}`);
382
- const mcpServers = convertMcpServers(task.metadata?.mcpServers ?? this.acpConfig.mcpServers);
383
- session = await agent.createSession(workDir, {
384
- mcpServers,
385
- mode: this.acpConfig.mode,
386
- agentMeta,
387
- });
388
- }
389
- this.activeSessions.set(executionId, session);
390
- // 2b. Set permission mode on the agent session using handler logic
391
- const sessionPermissionMode = getSessionPermissionMode(this.agentType, {
392
- skipPermissions: permissionMode === "auto-approve",
393
- acpPermissionMode: permissionMode,
394
- agentPermissionMode: this.acpConfig.agentPermissionMode,
395
- });
396
- if (sessionPermissionMode) {
397
- try {
398
- await session.setMode(sessionPermissionMode);
399
- console.log(`[AcpExecutorWrapper] Set session permission mode to ${sessionPermissionMode} for ${executionId}`);
400
- }
401
- catch (modeError) {
402
- console.warn(`[AcpExecutorWrapper] Failed to set ${sessionPermissionMode} mode (agent may not support it): ${modeError}`);
403
- }
404
- }
405
- // 3. Update execution status
406
- updateExecution(this.db, executionId, {
407
- status: "running",
408
- session_id: session.id,
409
- });
410
- const execution = getExecution(this.db, executionId);
411
- if (execution) {
412
- broadcastExecutionUpdate(this.projectId, executionId, "status_changed", execution, execution.issue_id || undefined);
413
- }
414
- // 4. Stream prompt and process updates
415
- const coalescer = new SessionUpdateCoalescer();
416
- let updateCount = 0;
417
- for await (const update of session.prompt(task.prompt)) {
418
- updateCount++;
419
- // Debug: Log tool_call events
420
- if (update.sessionUpdate === "tool_call" ||
421
- update.sessionUpdate === "tool_call_update") {
422
- const toolUpdate = update;
423
- console.log(`[AcpExecutorWrapper] Tool call event (interactive):`, {
424
- type: toolUpdate.sessionUpdate,
425
- toolCallId: toolUpdate.toolCallId,
426
- title: toolUpdate.title,
427
- status: toolUpdate.status,
428
- hasRawInput: !!toolUpdate.rawInput,
429
- rawInputPreview: typeof toolUpdate.rawInput === "object"
430
- ? JSON.stringify(toolUpdate.rawInput).substring(0, 200)
431
- : undefined,
432
- });
433
- }
434
- // Handle permission requests (for interactive mode)
435
- if (update.sessionUpdate === "permission_request") {
436
- const permUpdate = update;
437
- console.log(`[AcpExecutorWrapper] Permission request received:`, {
438
- executionId,
439
- requestId: permUpdate.requestId,
440
- toolCall: permUpdate.toolCall?.title,
441
- options: permUpdate.options?.map((o) => o.kind),
442
- });
443
- // Register with permission manager (non-blocking)
444
- permissionManager.addPending({
445
- requestId: permUpdate.requestId,
446
- sessionId: permUpdate.sessionId,
447
- toolCall: permUpdate.toolCall,
448
- options: permUpdate.options,
449
- });
450
- }
451
- // Broadcast to frontend
452
- this.broadcastSessionUpdate(executionId, update);
453
- // Coalesce for storage
454
- const coalescedUpdates = coalescer.process(update);
455
- for (const coalesced of coalescedUpdates) {
456
- this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(coalesced));
457
- }
458
- }
459
- // 5. Flush remaining state
460
- const remaining = coalescer.flush();
461
- for (const coalesced of remaining) {
462
- this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(coalesced));
463
- }
464
- console.log(`[AcpExecutorWrapper] Resume completed for ${executionId}`, {
465
- totalUpdates: updateCount,
466
- isPersistent,
467
- });
468
- // 6. Handle completion based on session mode
469
- if (isPersistent) {
470
- // Persistent mode: transition to pending state
471
- await this.transitionToWaiting(executionId);
472
- }
473
- else {
474
- // Discrete mode: complete the execution
475
- await this.handleSuccess(executionId, workDir);
476
- }
477
- }
478
- catch (error) {
479
- console.error(`[AcpExecutorWrapper] Resume failed for ${executionId}:`, error);
480
- await this.handleError(executionId, error, workDir);
481
- throw error;
482
- }
483
- finally {
484
- // Skip cleanup for persistent sessions that are still alive
485
- const persistentState = this.persistentSessions.get(executionId);
486
- if (persistentState && persistentState.state !== "ended") {
487
- console.log(`[AcpExecutorWrapper] Skipping cleanup for persistent session ${executionId} (state: ${persistentState.state})`);
488
- return;
489
- }
490
- // Cleanup for discrete sessions or ended persistent sessions
491
- this.activeSessions.delete(executionId);
492
- this.activeAgents.delete(executionId);
493
- this.persistentSessions.delete(executionId);
494
- // Cancel any pending permissions
495
- const pm = this.permissionManagers.get(executionId);
496
- if (pm) {
497
- pm.cancelAll();
498
- this.permissionManagers.delete(executionId);
499
- }
500
- // Cleanup file handler
501
- this.fileHandlers.delete(executionId);
502
- if (agent?.isRunning()) {
503
- try {
504
- await agent.close();
505
- }
506
- catch (closeError) {
507
- console.warn(`[AcpExecutorWrapper] Error closing agent for ${executionId}:`, closeError);
508
- }
509
- }
510
- }
511
- }
512
- /**
513
- * Cancel a running execution
514
- *
515
- * @param executionId - Execution ID to cancel
516
- */
517
- async cancel(executionId) {
518
- console.log(`[AcpExecutorWrapper] Cancel execution ${executionId}`);
519
- // Get active session
520
- const session = this.activeSessions.get(executionId);
521
- if (session) {
522
- try {
523
- await session.cancel();
524
- console.log(`[AcpExecutorWrapper] Session cancelled for ${executionId}`);
525
- }
526
- catch (error) {
527
- console.warn(`[AcpExecutorWrapper] Error cancelling session for ${executionId}:`, error);
528
- }
529
- }
530
- // Close agent
531
- const agent = this.activeAgents.get(executionId);
532
- if (agent?.isRunning()) {
533
- try {
534
- await agent.close();
535
- console.log(`[AcpExecutorWrapper] Agent closed for ${executionId}`);
536
- }
537
- catch (error) {
538
- console.warn(`[AcpExecutorWrapper] Error closing agent for ${executionId}:`, error);
539
- }
540
- }
541
- // Capture final commit
542
- const execution = getExecution(this.db, executionId);
543
- const repoPath = execution?.worktree_path;
544
- let afterCommit;
545
- if (repoPath) {
546
- try {
547
- afterCommit = execSync("git rev-parse HEAD", {
548
- cwd: repoPath,
549
- encoding: "utf-8",
550
- }).trim();
551
- }
552
- catch (error) {
553
- console.warn(`[AcpExecutorWrapper] Failed to capture after_commit for cancelled execution ${executionId}:`, error instanceof Error ? error.message : String(error));
554
- }
555
- }
556
- // Update database status
557
- updateExecution(this.db, executionId, {
558
- after_commit: afterCommit,
559
- status: "stopped",
560
- completed_at: new Date().toISOString(),
561
- });
562
- const updatedExecution = getExecution(this.db, executionId);
563
- if (updatedExecution) {
564
- broadcastExecutionUpdate(this.projectId, executionId, "status_changed", updatedExecution, updatedExecution.issue_id || undefined);
565
- }
566
- // Cleanup maps
567
- this.activeSessions.delete(executionId);
568
- this.activeAgents.delete(executionId);
569
- // Cancel any pending permissions
570
- const pm = this.permissionManagers.get(executionId);
571
- if (pm) {
572
- pm.cancelAll();
573
- this.permissionManagers.delete(executionId);
574
- }
575
- // Cleanup file handler
576
- this.fileHandlers.delete(executionId);
577
- }
578
- /**
579
- * Respond to a permission request
580
- *
581
- * @param executionId - Execution ID
582
- * @param requestId - Permission request ID
583
- * @param optionId - Selected option ID (e.g., 'allow_once', 'reject_always')
584
- * @returns true if the permission was found and responded to
585
- */
586
- respondToPermission(executionId, requestId, optionId) {
587
- console.log(`[AcpExecutorWrapper] Responding to permission ${requestId} for ${executionId} with ${optionId}`);
588
- // Get the session and permission manager
589
- const session = this.activeSessions.get(executionId);
590
- const permissionManager = this.permissionManagers.get(executionId);
591
- if (!session) {
592
- console.warn(`[AcpExecutorWrapper] No active session for ${executionId}`);
593
- return false;
594
- }
595
- if (!permissionManager) {
596
- console.warn(`[AcpExecutorWrapper] No permission manager for ${executionId}`);
597
- return false;
598
- }
599
- // Respond via the session (this unblocks the ACP session)
600
- try {
601
- session.respondToPermission(requestId, optionId);
602
- }
603
- catch (error) {
604
- console.error(`[AcpExecutorWrapper] Error responding to permission via session:`, error);
605
- return false;
606
- }
607
- // Also resolve in our permission manager (for tracking)
608
- return permissionManager.respond(requestId, optionId);
609
- }
610
- /**
611
- * Check if an execution has pending permissions
612
- *
613
- * @param executionId - Execution ID
614
- * @returns true if there are pending permission requests
615
- */
616
- hasPendingPermissions(executionId) {
617
- const pm = this.permissionManagers.get(executionId);
618
- return pm ? pm.pendingCount > 0 : false;
619
- }
620
- /**
621
- * Get pending permission request IDs for an execution
622
- *
623
- * @param executionId - Execution ID
624
- * @returns Array of pending request IDs
625
- */
626
- getPendingPermissionIds(executionId) {
627
- const pm = this.permissionManagers.get(executionId);
628
- return pm ? pm.getPendingIds() : [];
629
- }
630
- /**
631
- * Set the session mode for an active execution
632
- *
633
- * @param executionId - Execution ID
634
- * @param mode - The mode to set (e.g., "code", "plan", "architect")
635
- * @returns true if mode was set successfully, false otherwise
636
- */
637
- setMode(executionId, mode) {
638
- console.log(`[AcpExecutorWrapper] Setting mode to "${mode}" for execution ${executionId}`);
639
- const session = this.activeSessions.get(executionId);
640
- if (!session) {
641
- console.warn(`[AcpExecutorWrapper] No active session for ${executionId}`);
642
- return false;
643
- }
644
- try {
645
- session.setMode(mode);
646
- console.log(`[AcpExecutorWrapper] Mode set to "${mode}" for execution ${executionId}`);
647
- return true;
648
- }
649
- catch (error) {
650
- console.error(`[AcpExecutorWrapper] Error setting mode for ${executionId}:`, error);
651
- return false;
652
- }
653
- }
654
- /**
655
- * Fork an active session into a new session
656
- *
657
- * Creates a new session that inherits the conversation history from the parent.
658
- * The new session can be run independently while preserving context.
659
- *
660
- * @param executionId - Source execution ID to fork from
661
- * @param newExecutionId - ID for the new forked execution
662
- * @returns The forked Session, or null if forking failed
663
- * @experimental This relies on the unstable session/fork ACP capability
664
- */
665
- async forkSession(executionId, newExecutionId) {
666
- console.log(`[AcpExecutorWrapper] Forking session from ${executionId} to ${newExecutionId}`);
667
- const session = this.activeSessions.get(executionId);
668
- if (!session) {
669
- console.warn(`[AcpExecutorWrapper] No active session for ${executionId}`);
670
- return null;
671
- }
672
- try {
673
- // Use forkWithFlush which handles active sessions by flushing first
674
- const forkedSession = await session.forkWithFlush();
675
- // Register the new session
676
- this.activeSessions.set(newExecutionId, forkedSession);
677
- // Create a permission manager for the forked session
678
- this.permissionManagers.set(newExecutionId, new PermissionManager());
679
- console.log(`[AcpExecutorWrapper] Forked session created for ${newExecutionId}`);
680
- return forkedSession;
681
- }
682
- catch (error) {
683
- console.error(`[AcpExecutorWrapper] Error forking session from ${executionId}:`, error);
684
- return null;
685
- }
686
- }
687
- /**
688
- * Cancel the current prompt for an active session
689
- *
690
- * Stops the agent's current work without providing new instructions.
691
- * The session remains valid and can receive new prompts via follow-up.
692
- *
693
- * @param executionId - Execution ID to cancel
694
- * @returns true if the cancel was initiated, false if no active session
695
- */
696
- async cancelSession(executionId) {
697
- console.log(`[AcpExecutorWrapper] Cancelling session for execution ${executionId}`);
698
- const session = this.activeSessions.get(executionId);
699
- if (!session) {
700
- console.warn(`[AcpExecutorWrapper] No active session for ${executionId}`);
701
- return false;
702
- }
703
- try {
704
- await session.cancel();
705
- console.log(`[AcpExecutorWrapper] Session cancelled for execution ${executionId}`);
706
- return true;
707
- }
708
- catch (error) {
709
- console.error(`[AcpExecutorWrapper] Error cancelling session for ${executionId}:`, error);
710
- return false;
711
- }
712
- }
713
- /**
714
- * Interrupt the current prompt and continue with new content
715
- *
716
- * Cancels the agent's current work and immediately starts processing
717
- * the new prompt. Returns an async iterator of session updates.
718
- *
719
- * @param executionId - Execution ID to interrupt
720
- * @param newPrompt - New prompt to continue with
721
- * @returns Async iterator of ExtendedSessionUpdate events, or null if no active session
722
- * @experimental This relies on the interruptWith ACP capability
723
- */
724
- async *interruptWithNewPrompt(executionId, newPrompt) {
725
- console.log(`[AcpExecutorWrapper] Interrupting session for execution ${executionId} with new prompt`);
726
- const session = this.activeSessions.get(executionId);
727
- if (!session) {
728
- console.warn(`[AcpExecutorWrapper] No active session for ${executionId}`);
729
- return;
730
- }
731
- try {
732
- for await (const update of session.interruptWith(newPrompt)) {
733
- yield update;
734
- }
735
- console.log(`[AcpExecutorWrapper] Interrupt complete for execution ${executionId}`);
736
- }
737
- catch (error) {
738
- console.error(`[AcpExecutorWrapper] Error during interrupt for ${executionId}:`, error);
739
- throw error;
740
- }
741
- }
742
- // ============================================================================
743
- // Persistent Session Methods
744
- // ============================================================================
745
- /**
746
- * Send an additional prompt to a persistent session
747
- *
748
- * Only works for executions started with sessionMode: "persistent" that are
749
- * currently in the "pending" or "paused" state. Sending a prompt to a paused
750
- * session will resume it.
751
- *
752
- * @param executionId - Execution ID with active persistent session
753
- * @param prompt - The prompt to send
754
- * @throws Error if no persistent session exists or session is not pending/paused
755
- */
756
- async sendPrompt(executionId, prompt) {
757
- const persistentState = this.persistentSessions.get(executionId);
758
- if (!persistentState) {
759
- throw new Error(`No persistent session found for execution ${executionId}`);
760
- }
761
- if (persistentState.state !== "pending" &&
762
- persistentState.state !== "paused") {
763
- throw new Error(`Cannot send prompt to session in state: ${persistentState.state}`);
764
- }
765
- const wasResumingFromPaused = persistentState.state === "paused";
766
- if (wasResumingFromPaused) {
767
- console.log(`[AcpExecutorWrapper] Resuming paused session ${executionId} with new prompt`);
768
- }
769
- const session = this.activeSessions.get(executionId);
770
- if (!session) {
771
- throw new Error(`No active session for execution ${executionId}`);
772
- }
773
- console.log(`[AcpExecutorWrapper] Sending prompt to persistent session ${executionId}`, { promptNumber: persistentState.promptCount + 1 });
774
- // Clear any idle timeout
775
- this.clearIdleTimeout(executionId);
776
- // Update state to running
777
- persistentState.state = "running";
778
- // Update execution status
779
- updateExecution(this.db, executionId, { status: "running" });
780
- const execution = getExecution(this.db, executionId);
781
- if (execution) {
782
- broadcastExecutionUpdate(this.projectId, executionId, "status_changed", execution, execution.issue_id || undefined);
783
- }
784
- // Emit and store user message before streaming agent response
785
- const userMessage = {
786
- sessionUpdate: "user_message_complete",
787
- content: { type: "text", text: prompt },
788
- timestamp: new Date(),
789
- };
790
- // Broadcast to frontend
791
- this.broadcastSessionUpdate(executionId, userMessage);
792
- // Store in logs
793
- this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(userMessage));
794
- // Stream prompt and process updates
795
- const coalescer = new SessionUpdateCoalescer();
796
- const permissionManager = this.permissionManagers.get(executionId);
797
- try {
798
- let updateCount = 0;
799
- for await (const update of session.prompt(prompt)) {
800
- updateCount++;
801
- // Handle permission requests
802
- if (update.sessionUpdate === "permission_request" &&
803
- permissionManager) {
804
- const permUpdate = update;
805
- permissionManager.addPending({
806
- requestId: permUpdate.requestId,
807
- sessionId: permUpdate.sessionId,
808
- toolCall: permUpdate.toolCall,
809
- options: permUpdate.options,
810
- });
811
- }
812
- // Broadcast to frontend
813
- this.broadcastSessionUpdate(executionId, update);
814
- // Coalesce for storage
815
- const coalescedUpdates = coalescer.process(update);
816
- for (const coalesced of coalescedUpdates) {
817
- this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(coalesced));
818
- }
819
- }
820
- // Flush remaining state
821
- const remaining = coalescer.flush();
822
- for (const coalesced of remaining) {
823
- this.logsStore.appendRawLog(executionId, serializeCoalescedUpdate(coalesced));
824
- }
825
- console.log(`[AcpExecutorWrapper] Prompt ${persistentState.promptCount + 1} completed for ${executionId}`, { updateCount });
826
- // Transition back to pending
827
- await this.transitionToWaiting(executionId);
828
- }
829
- catch (error) {
830
- console.error(`[AcpExecutorWrapper] Error sending prompt to persistent session ${executionId}:`, error);
831
- // Mark session as ended on error
832
- persistentState.state = "ended";
833
- await this.handleError(executionId, error, persistentState.workDir);
834
- throw error;
835
- }
836
- }
837
- /**
838
- * Explicitly end a persistent session
839
- *
840
- * Closes the agent, cleans up resources, and marks the execution as completed.
841
- *
842
- * @param executionId - Execution ID with active persistent session
843
- * @param reason - Reason for ending the session (default: "explicit")
844
- */
845
- async endSession(executionId, reason = "explicit") {
846
- const persistentState = this.persistentSessions.get(executionId);
847
- if (!persistentState) {
848
- console.warn(`[AcpExecutorWrapper] No persistent session found for ${executionId}`);
849
- return;
850
- }
851
- console.log(`[AcpExecutorWrapper] Ending persistent session ${executionId}`, { promptCount: persistentState.promptCount });
852
- // Clear any idle timeout
853
- this.clearIdleTimeout(executionId);
854
- // Unregister disconnect callback if registered
855
- if (persistentState.unregisterDisconnectCallback) {
856
- persistentState.unregisterDisconnectCallback();
857
- persistentState.unregisterDisconnectCallback = undefined;
858
- }
859
- // Mark as ended
860
- persistentState.state = "ended";
861
- // Complete the execution
862
- await this.handleSuccess(executionId, persistentState.workDir);
863
- // Cleanup
864
- const agent = this.activeAgents.get(executionId);
865
- if (agent?.isRunning()) {
866
- try {
867
- await agent.close();
868
- console.log(`[AcpExecutorWrapper] Closed agent for ${executionId}`);
869
- }
870
- catch (closeError) {
871
- console.warn(`[AcpExecutorWrapper] Error closing agent for ${executionId}:`, closeError);
872
- }
873
- }
874
- // Remove from maps
875
- this.activeSessions.delete(executionId);
876
- this.activeAgents.delete(executionId);
877
- this.persistentSessions.delete(executionId);
878
- const pm = this.permissionManagers.get(executionId);
879
- if (pm) {
880
- pm.cancelAll();
881
- this.permissionManagers.delete(executionId);
882
- }
883
- this.fileHandlers.delete(executionId);
884
- // Broadcast session ended event with the specified reason
885
- broadcastSessionEvent(this.projectId, executionId, "session_ended", {
886
- reason,
887
- });
888
- }
889
- /**
890
- * Get the current state of a persistent session
891
- *
892
- * @param executionId - Execution ID to check
893
- * @returns Session state info or null if not a persistent session
894
- */
895
- getSessionState(executionId) {
896
- const persistentState = this.persistentSessions.get(executionId);
897
- if (!persistentState) {
898
- return null;
899
- }
900
- return {
901
- mode: "persistent",
902
- state: persistentState.state,
903
- promptCount: persistentState.promptCount,
904
- idleTimeMs: persistentState.lastPromptCompletedAt
905
- ? Date.now() - persistentState.lastPromptCompletedAt.getTime()
906
- : undefined,
907
- };
908
- }
909
- /**
910
- * Check if an execution has an active persistent session
911
- *
912
- * @param executionId - Execution ID to check
913
- * @returns true if execution has a persistent session that's not ended
914
- */
915
- isPersistentSession(executionId) {
916
- const state = this.persistentSessions.get(executionId);
917
- return state !== undefined && state.state !== "ended";
918
- }
919
- /**
920
- * Check if an agent type is supported via ACP
921
- *
922
- * @param agentType - Agent type to check
923
- * @returns true if the agent is registered in AgentFactory
924
- */
925
- static isAcpSupported(agentType) {
926
- return AgentFactory.listAgents().includes(agentType);
927
- }
928
- /**
929
- * List all ACP-supported agent types
930
- *
931
- * @returns Array of agent type names
932
- */
933
- static listAcpAgents() {
934
- return AgentFactory.listAgents();
935
- }
936
- // ============================================================================
937
- // Private helpers
938
- // ============================================================================
939
- /**
940
- * Broadcast SessionUpdate to frontend via WebSocket
941
- *
942
- * Sends the raw SessionUpdate event to clients subscribed to this execution.
943
- * This enables real-time streaming of agent output.
944
- */
945
- broadcastSessionUpdate(executionId, update) {
946
- // Broadcast to execution subscribers only
947
- // Note: Do NOT broadcast to issue subscribers - this causes duplicate messages
948
- // when a page is subscribed to both execution:X and issue:Y channels
949
- websocketManager.broadcast(this.projectId, "execution", executionId, {
950
- type: "session_update", // Type cast for internal use
951
- data: { update, executionId },
952
- });
953
- }
954
- /**
955
- * Transition a persistent session to pending or paused state
956
- *
957
- * Updates the session state, increments prompt count, starts idle timeout if configured,
958
- * and broadcasts the state change to clients. If pauseOnCompletion is enabled, the session
959
- * transitions to "paused" instead of "pending".
960
- */
961
- async transitionToWaiting(executionId) {
962
- const persistentState = this.persistentSessions.get(executionId);
963
- if (!persistentState) {
964
- console.warn(`[AcpExecutorWrapper] No persistent session found for ${executionId} during transition`);
965
- return;
966
- }
967
- // Update state - use "paused" if pauseOnCompletion is enabled
968
- const targetState = persistentState.config.pauseOnCompletion
969
- ? "paused"
970
- : "pending";
971
- persistentState.state = targetState;
972
- persistentState.promptCount++;
973
- persistentState.lastPromptCompletedAt = new Date();
974
- console.log(`[AcpExecutorWrapper] Transitioned to ${targetState} state for ${executionId}`, { promptCount: persistentState.promptCount });
975
- // Start idle timeout if configured (only for pending state, not paused)
976
- if (targetState === "pending" &&
977
- persistentState.config.idleTimeoutMs &&
978
- persistentState.config.idleTimeoutMs > 0) {
979
- persistentState.idleTimeout = setTimeout(async () => {
980
- console.log(`[AcpExecutorWrapper] Idle timeout reached for ${executionId}`);
981
- await this.endSession(executionId, "timeout");
982
- }, persistentState.config.idleTimeoutMs);
983
- }
984
- // Update execution status
985
- updateExecution(this.db, executionId, { status: targetState });
986
- const execution = getExecution(this.db, executionId);
987
- if (execution) {
988
- broadcastExecutionUpdate(this.projectId, executionId, "status_changed", execution, execution.issue_id || undefined);
989
- }
990
- // Broadcast session state change event
991
- const eventType = targetState === "paused" ? "session_paused" : "session_pending";
992
- broadcastSessionEvent(this.projectId, executionId, eventType, {
993
- promptCount: persistentState.promptCount,
994
- });
995
- }
996
- /**
997
- * Clear the idle timeout for a persistent session
998
- */
999
- clearIdleTimeout(executionId) {
1000
- const persistentState = this.persistentSessions.get(executionId);
1001
- if (persistentState?.idleTimeout) {
1002
- clearTimeout(persistentState.idleTimeout);
1003
- persistentState.idleTimeout = undefined;
1004
- }
1005
- }
1006
- /**
1007
- * Register a disconnect handler for endOnDisconnect mode
1008
- *
1009
- * Returns an unregister function to be called during cleanup.
1010
- */
1011
- registerDisconnectHandler(executionId) {
1012
- const unregister = websocketManager.onDisconnect(async (_clientId, subscriptions) => {
1013
- const persistentState = this.persistentSessions.get(executionId);
1014
- if (!persistentState || persistentState.state === "ended") {
1015
- return;
1016
- }
1017
- // Check if the disconnected client was subscribed to this execution
1018
- const executionSubscription = `${this.projectId}:execution:${executionId}`;
1019
- const allSubscription = `${this.projectId}:all`;
1020
- const typeSubscription = `${this.projectId}:execution:*`;
1021
- const wasSubscribed = subscriptions.has(executionSubscription) ||
1022
- subscriptions.has(allSubscription) ||
1023
- subscriptions.has(typeSubscription);
1024
- if (!wasSubscribed) {
1025
- return;
1026
- }
1027
- // Check if there are still other subscribers
1028
- const hasOtherSubscribers = websocketManager.hasSubscribers(this.projectId, "execution", executionId);
1029
- if (!hasOtherSubscribers) {
1030
- console.log(`[AcpExecutorWrapper] Last subscriber disconnected for ${executionId}, ending session`);
1031
- await this.endSession(executionId, "disconnect");
1032
- }
1033
- });
1034
- return unregister;
1035
- }
1036
- /**
1037
- * Handle successful execution
1038
- */
1039
- async handleSuccess(executionId, workDir) {
1040
- console.log(`[AcpExecutorWrapper] Execution ${executionId} completed successfully`);
1041
- // Get execution to find worktree path
1042
- const execution = getExecution(this.db, executionId);
1043
- const repoPath = execution?.worktree_path || workDir;
1044
- // Capture final commit
1045
- let afterCommit;
1046
- try {
1047
- afterCommit = execSync("git rev-parse HEAD", {
1048
- cwd: repoPath,
1049
- encoding: "utf-8",
1050
- }).trim();
1051
- }
1052
- catch (error) {
1053
- console.warn(`[AcpExecutorWrapper] Failed to capture after_commit for execution ${executionId}:`, error instanceof Error ? error.message : String(error));
1054
- }
1055
- // Calculate file changes
1056
- let filesChangedJson = null;
1057
- try {
1058
- const changesService = new ExecutionChangesService(this.db, workDir);
1059
- const changesResult = await changesService.getChanges(executionId);
1060
- if (changesResult.available && changesResult.captured) {
1061
- const filePaths = changesResult.captured.files.map((f) => f.path);
1062
- filesChangedJson = JSON.stringify(filePaths);
1063
- console.log(`[AcpExecutorWrapper] Captured ${filePaths.length} file changes for execution ${executionId}`);
1064
- }
1065
- }
1066
- catch (error) {
1067
- console.warn(`[AcpExecutorWrapper] Failed to calculate files_changed for execution ${executionId}:`, error instanceof Error ? error.message : String(error));
1068
- }
1069
- // Update execution status
1070
- updateExecution(this.db, executionId, {
1071
- after_commit: afterCommit,
1072
- files_changed: filesChangedJson,
1073
- status: "completed",
1074
- completed_at: new Date().toISOString(),
1075
- exit_code: 0,
1076
- });
1077
- const updatedExecution = getExecution(this.db, executionId);
1078
- if (updatedExecution) {
1079
- broadcastExecutionUpdate(this.projectId, executionId, "status_changed", updatedExecution, updatedExecution.issue_id || undefined);
1080
- // Notify callbacks for workflow integration
1081
- await notifyExecutionEvent("completed", {
1082
- executionId,
1083
- workflowId: updatedExecution.workflow_execution_id ?? undefined,
1084
- issueId: updatedExecution.issue_id ?? undefined,
1085
- });
1086
- }
1087
- }
1088
- /**
1089
- * Handle execution error
1090
- */
1091
- async handleError(executionId, error, workDir) {
1092
- console.error(`[AcpExecutorWrapper] Execution ${executionId} failed:`, error);
1093
- // Calculate file changes even for failed executions
1094
- let filesChangedJson = null;
1095
- try {
1096
- const changesService = new ExecutionChangesService(this.db, workDir);
1097
- const changesResult = await changesService.getChanges(executionId);
1098
- if (changesResult.available && changesResult.captured) {
1099
- const filePaths = changesResult.captured.files.map((f) => f.path);
1100
- filesChangedJson = JSON.stringify(filePaths);
1101
- }
1102
- }
1103
- catch (calcError) {
1104
- console.warn(`[AcpExecutorWrapper] Failed to calculate files_changed for failed execution ${executionId}:`, calcError instanceof Error ? calcError.message : String(calcError));
1105
- }
1106
- // Update execution status
1107
- updateExecution(this.db, executionId, {
1108
- status: "failed",
1109
- completed_at: new Date().toISOString(),
1110
- error_message: error.message,
1111
- files_changed: filesChangedJson,
1112
- });
1113
- const execution = getExecution(this.db, executionId);
1114
- if (execution) {
1115
- broadcastExecutionUpdate(this.projectId, executionId, "status_changed", execution, execution.issue_id || undefined);
1116
- // Notify callbacks for workflow integration
1117
- await notifyExecutionEvent("failed", {
1118
- executionId,
1119
- workflowId: execution.workflow_execution_id ?? undefined,
1120
- issueId: execution.issue_id ?? undefined,
1121
- error: error.message,
1122
- });
1123
- }
1124
- }
1125
- }
1126
- //# sourceMappingURL=acp-executor-wrapper.js.map