@compass-ai/nova 1.0.72 → 1.0.74

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 (974) hide show
  1. package/dist/acp/agent.d.ts +318 -0
  2. package/dist/acp/agent.d.ts.map +1 -0
  3. package/dist/acp/agent.js +795 -0
  4. package/dist/acp/agent.js.map +1 -0
  5. package/dist/acp/backpressure-writer.d.ts +49 -0
  6. package/dist/acp/backpressure-writer.d.ts.map +1 -0
  7. package/dist/acp/backpressure-writer.js +153 -0
  8. package/dist/acp/backpressure-writer.js.map +1 -0
  9. package/dist/acp/event-adapter.d.ts +242 -0
  10. package/dist/acp/event-adapter.d.ts.map +1 -0
  11. package/dist/acp/event-adapter.js +456 -0
  12. package/dist/acp/event-adapter.js.map +1 -0
  13. package/dist/acp/index.d.ts +30 -0
  14. package/dist/acp/index.d.ts.map +1 -0
  15. package/dist/acp/index.js +36 -0
  16. package/dist/acp/index.js.map +1 -0
  17. package/dist/acp/modes.d.ts +56 -0
  18. package/dist/acp/modes.d.ts.map +1 -0
  19. package/dist/acp/modes.js +135 -0
  20. package/dist/acp/modes.js.map +1 -0
  21. package/dist/acp/session-manager.d.ts +170 -0
  22. package/dist/acp/session-manager.d.ts.map +1 -0
  23. package/dist/acp/session-manager.js +381 -0
  24. package/dist/acp/session-manager.js.map +1 -0
  25. package/dist/acp/text-coalescer.d.ts +45 -0
  26. package/dist/acp/text-coalescer.d.ts.map +1 -0
  27. package/dist/acp/text-coalescer.js +110 -0
  28. package/dist/acp/text-coalescer.js.map +1 -0
  29. package/dist/acp/tool-bridge.d.ts +156 -0
  30. package/dist/acp/tool-bridge.d.ts.map +1 -0
  31. package/dist/acp/tool-bridge.js +381 -0
  32. package/dist/acp/tool-bridge.js.map +1 -0
  33. package/dist/acp/types.d.ts +314 -0
  34. package/dist/acp/types.d.ts.map +1 -0
  35. package/dist/acp/types.js +8 -0
  36. package/dist/acp/types.js.map +1 -0
  37. package/dist/cli.d.ts +9 -0
  38. package/dist/cli.d.ts.map +1 -0
  39. package/dist/cli.js +185 -184
  40. package/dist/cli.js.map +1 -0
  41. package/dist/commands/acp.d.ts +26 -0
  42. package/dist/commands/acp.d.ts.map +1 -0
  43. package/dist/commands/acp.js +492 -0
  44. package/dist/commands/acp.js.map +1 -0
  45. package/dist/commands/cache.d.ts +33 -0
  46. package/dist/commands/cache.d.ts.map +1 -0
  47. package/dist/commands/cache.js +537 -0
  48. package/dist/commands/cache.js.map +1 -0
  49. package/dist/commands/config.d.ts +10 -0
  50. package/dist/commands/config.d.ts.map +1 -0
  51. package/dist/commands/config.js +367 -0
  52. package/dist/commands/config.js.map +1 -0
  53. package/dist/commands/consent.d.ts +21 -0
  54. package/dist/commands/consent.d.ts.map +1 -0
  55. package/dist/commands/consent.js +334 -0
  56. package/dist/commands/consent.js.map +1 -0
  57. package/dist/commands/data.d.ts +24 -0
  58. package/dist/commands/data.d.ts.map +1 -0
  59. package/dist/commands/data.js +586 -0
  60. package/dist/commands/data.js.map +1 -0
  61. package/dist/commands/index.d.ts +145 -0
  62. package/dist/commands/index.d.ts.map +1 -0
  63. package/dist/commands/index.js +210 -0
  64. package/dist/commands/index.js.map +1 -0
  65. package/dist/commands/init.d.ts +106 -0
  66. package/dist/commands/init.d.ts.map +1 -0
  67. package/dist/commands/init.js +349 -0
  68. package/dist/commands/init.js.map +1 -0
  69. package/dist/commands/logs.d.ts +13 -0
  70. package/dist/commands/logs.d.ts.map +1 -0
  71. package/dist/commands/logs.js +359 -0
  72. package/dist/commands/logs.js.map +1 -0
  73. package/dist/commands/mcp.d.ts +20 -0
  74. package/dist/commands/mcp.d.ts.map +1 -0
  75. package/dist/commands/mcp.js +687 -0
  76. package/dist/commands/mcp.js.map +1 -0
  77. package/dist/commands/reset.d.ts +20 -0
  78. package/dist/commands/reset.d.ts.map +1 -0
  79. package/dist/commands/reset.js +372 -0
  80. package/dist/commands/reset.js.map +1 -0
  81. package/dist/commands/setup.d.ts +74 -0
  82. package/dist/commands/setup.d.ts.map +1 -0
  83. package/dist/commands/setup.js +863 -0
  84. package/dist/commands/setup.js.map +1 -0
  85. package/dist/commands/slash/agents.d.ts +40 -0
  86. package/dist/commands/slash/agents.d.ts.map +1 -0
  87. package/dist/commands/slash/agents.js +519 -0
  88. package/dist/commands/slash/agents.js.map +1 -0
  89. package/dist/commands/slash/approve.d.ts +46 -0
  90. package/dist/commands/slash/approve.d.ts.map +1 -0
  91. package/dist/commands/slash/approve.js +239 -0
  92. package/dist/commands/slash/approve.js.map +1 -0
  93. package/dist/commands/slash/attach.d.ts +70 -0
  94. package/dist/commands/slash/attach.d.ts.map +1 -0
  95. package/dist/commands/slash/attach.js +333 -0
  96. package/dist/commands/slash/attach.js.map +1 -0
  97. package/dist/commands/slash/clear.d.ts +47 -0
  98. package/dist/commands/slash/clear.d.ts.map +1 -0
  99. package/dist/commands/slash/clear.js +261 -0
  100. package/dist/commands/slash/clear.js.map +1 -0
  101. package/dist/commands/slash/commit.d.ts +40 -0
  102. package/dist/commands/slash/commit.d.ts.map +1 -0
  103. package/dist/commands/slash/commit.js +337 -0
  104. package/dist/commands/slash/commit.js.map +1 -0
  105. package/dist/commands/slash/compact.d.ts +48 -0
  106. package/dist/commands/slash/compact.d.ts.map +1 -0
  107. package/dist/commands/slash/compact.js +288 -0
  108. package/dist/commands/slash/compact.js.map +1 -0
  109. package/dist/commands/slash/config.d.ts +20 -0
  110. package/dist/commands/slash/config.d.ts.map +1 -0
  111. package/dist/commands/slash/config.js +136 -0
  112. package/dist/commands/slash/config.js.map +1 -0
  113. package/dist/commands/slash/context.d.ts +49 -0
  114. package/dist/commands/slash/context.d.ts.map +1 -0
  115. package/dist/commands/slash/context.js +430 -0
  116. package/dist/commands/slash/context.js.map +1 -0
  117. package/dist/commands/slash/cost.d.ts +34 -0
  118. package/dist/commands/slash/cost.d.ts.map +1 -0
  119. package/dist/commands/slash/cost.js +312 -0
  120. package/dist/commands/slash/cost.js.map +1 -0
  121. package/dist/commands/slash/custom.d.ts +41 -0
  122. package/dist/commands/slash/custom.d.ts.map +1 -0
  123. package/dist/commands/slash/custom.js +126 -0
  124. package/dist/commands/slash/custom.js.map +1 -0
  125. package/dist/commands/slash/exit.d.ts +25 -0
  126. package/dist/commands/slash/exit.d.ts.map +1 -0
  127. package/dist/commands/slash/exit.js +186 -0
  128. package/dist/commands/slash/exit.js.map +1 -0
  129. package/dist/commands/slash/export.d.ts +27 -0
  130. package/dist/commands/slash/export.d.ts.map +1 -0
  131. package/dist/commands/slash/export.js +318 -0
  132. package/dist/commands/slash/export.js.map +1 -0
  133. package/dist/commands/slash/files.d.ts +47 -0
  134. package/dist/commands/slash/files.d.ts.map +1 -0
  135. package/dist/commands/slash/files.js +521 -0
  136. package/dist/commands/slash/files.js.map +1 -0
  137. package/dist/commands/slash/help.d.ts +50 -0
  138. package/dist/commands/slash/help.d.ts.map +1 -0
  139. package/dist/commands/slash/help.js +282 -0
  140. package/dist/commands/slash/help.js.map +1 -0
  141. package/dist/commands/slash/index-cmd.d.ts +41 -0
  142. package/dist/commands/slash/index-cmd.d.ts.map +1 -0
  143. package/dist/commands/slash/index-cmd.js +349 -0
  144. package/dist/commands/slash/index-cmd.js.map +1 -0
  145. package/dist/commands/slash/index.d.ts +97 -0
  146. package/dist/commands/slash/index.d.ts.map +1 -0
  147. package/dist/commands/slash/index.js +251 -0
  148. package/dist/commands/slash/index.js.map +1 -0
  149. package/dist/commands/slash/login.d.ts +23 -0
  150. package/dist/commands/slash/login.d.ts.map +1 -0
  151. package/dist/commands/slash/login.js +175 -0
  152. package/dist/commands/slash/login.js.map +1 -0
  153. package/dist/commands/slash/logout.d.ts +23 -0
  154. package/dist/commands/slash/logout.d.ts.map +1 -0
  155. package/dist/commands/slash/logout.js +153 -0
  156. package/dist/commands/slash/logout.js.map +1 -0
  157. package/dist/commands/slash/logs.d.ts +29 -0
  158. package/dist/commands/slash/logs.d.ts.map +1 -0
  159. package/dist/commands/slash/logs.js +423 -0
  160. package/dist/commands/slash/logs.js.map +1 -0
  161. package/dist/commands/slash/mcp.d.ts +29 -0
  162. package/dist/commands/slash/mcp.d.ts.map +1 -0
  163. package/dist/commands/slash/mcp.js +1026 -0
  164. package/dist/commands/slash/mcp.js.map +1 -0
  165. package/dist/commands/slash/model.d.ts +60 -0
  166. package/dist/commands/slash/model.d.ts.map +1 -0
  167. package/dist/commands/slash/model.js +466 -0
  168. package/dist/commands/slash/model.js.map +1 -0
  169. package/dist/commands/slash/personality.d.ts +40 -0
  170. package/dist/commands/slash/personality.d.ts.map +1 -0
  171. package/dist/commands/slash/personality.js +272 -0
  172. package/dist/commands/slash/personality.js.map +1 -0
  173. package/dist/commands/slash/purge.d.ts +42 -0
  174. package/dist/commands/slash/purge.d.ts.map +1 -0
  175. package/dist/commands/slash/purge.js +233 -0
  176. package/dist/commands/slash/purge.js.map +1 -0
  177. package/dist/commands/slash/reset.d.ts +44 -0
  178. package/dist/commands/slash/reset.d.ts.map +1 -0
  179. package/dist/commands/slash/reset.js +326 -0
  180. package/dist/commands/slash/reset.js.map +1 -0
  181. package/dist/commands/slash/skills.d.ts +40 -0
  182. package/dist/commands/slash/skills.d.ts.map +1 -0
  183. package/dist/commands/slash/skills.js +207 -0
  184. package/dist/commands/slash/skills.js.map +1 -0
  185. package/dist/commands/slash/tokens.d.ts +34 -0
  186. package/dist/commands/slash/tokens.d.ts.map +1 -0
  187. package/dist/commands/slash/tokens.js +205 -0
  188. package/dist/commands/slash/tokens.js.map +1 -0
  189. package/dist/commands/slash/unleash.d.ts +50 -0
  190. package/dist/commands/slash/unleash.d.ts.map +1 -0
  191. package/dist/commands/slash/unleash.js +262 -0
  192. package/dist/commands/slash/unleash.js.map +1 -0
  193. package/dist/commands/slash/update.d.ts +34 -0
  194. package/dist/commands/slash/update.d.ts.map +1 -0
  195. package/dist/commands/slash/update.js +364 -0
  196. package/dist/commands/slash/update.js.map +1 -0
  197. package/dist/commands/slash/wrap.d.ts +18 -0
  198. package/dist/commands/slash/wrap.d.ts.map +1 -0
  199. package/dist/commands/slash/wrap.js +21 -0
  200. package/dist/commands/slash/wrap.js.map +1 -0
  201. package/dist/commands/tokens.d.ts +26 -0
  202. package/dist/commands/tokens.d.ts.map +1 -0
  203. package/dist/commands/tokens.js +245 -0
  204. package/dist/commands/tokens.js.map +1 -0
  205. package/dist/constants/builtin-agents.d.ts +27 -0
  206. package/dist/constants/builtin-agents.d.ts.map +1 -0
  207. package/dist/constants/builtin-agents.js +710 -0
  208. package/dist/constants/builtin-agents.js.map +1 -0
  209. package/dist/constants/builtin-skills.d.ts +32 -0
  210. package/dist/constants/builtin-skills.d.ts.map +1 -0
  211. package/dist/constants/builtin-skills.js +389 -0
  212. package/dist/constants/builtin-skills.js.map +1 -0
  213. package/dist/constants/defaults.d.ts +448 -0
  214. package/dist/constants/defaults.d.ts.map +1 -0
  215. package/dist/constants/defaults.js +829 -0
  216. package/dist/constants/defaults.js.map +1 -0
  217. package/dist/constants/index.d.ts +27 -0
  218. package/dist/constants/index.d.ts.map +1 -0
  219. package/dist/constants/index.js +85 -0
  220. package/dist/constants/index.js.map +1 -0
  221. package/dist/constants/install-hints.d.ts +7 -0
  222. package/dist/constants/install-hints.d.ts.map +1 -0
  223. package/dist/constants/install-hints.js +123 -0
  224. package/dist/constants/install-hints.js.map +1 -0
  225. package/dist/constants/models.d.ts +255 -0
  226. package/dist/constants/models.d.ts.map +1 -0
  227. package/dist/constants/models.js +596 -0
  228. package/dist/constants/models.js.map +1 -0
  229. package/dist/constants/schedule.d.ts +43 -0
  230. package/dist/constants/schedule.d.ts.map +1 -0
  231. package/dist/constants/schedule.js +110 -0
  232. package/dist/constants/schedule.js.map +1 -0
  233. package/dist/constants/system-utilities.d.ts +57 -0
  234. package/dist/constants/system-utilities.d.ts.map +1 -0
  235. package/dist/constants/system-utilities.js +421 -0
  236. package/dist/constants/system-utilities.js.map +1 -0
  237. package/dist/constants/token-limits.d.ts +102 -0
  238. package/dist/constants/token-limits.d.ts.map +1 -0
  239. package/dist/constants/token-limits.js +286 -0
  240. package/dist/constants/token-limits.js.map +1 -0
  241. package/dist/core/autocomplete.d.ts +132 -0
  242. package/dist/core/autocomplete.d.ts.map +1 -0
  243. package/dist/core/autocomplete.js +653 -0
  244. package/dist/core/autocomplete.js.map +1 -0
  245. package/dist/core/command-parser.d.ts +301 -0
  246. package/dist/core/command-parser.d.ts.map +1 -0
  247. package/dist/core/command-parser.js +526 -0
  248. package/dist/core/command-parser.js.map +1 -0
  249. package/dist/core/context-builder.d.ts +264 -0
  250. package/dist/core/context-builder.d.ts.map +1 -0
  251. package/dist/core/context-builder.js +1018 -0
  252. package/dist/core/context-builder.js.map +1 -0
  253. package/dist/core/event-emitter.d.ts +411 -0
  254. package/dist/core/event-emitter.d.ts.map +1 -0
  255. package/dist/core/event-emitter.js +138 -0
  256. package/dist/core/event-emitter.js.map +1 -0
  257. package/dist/core/history-manager.d.ts +62 -0
  258. package/dist/core/history-manager.d.ts.map +1 -0
  259. package/dist/core/history-manager.js +151 -0
  260. package/dist/core/history-manager.js.map +1 -0
  261. package/dist/core/slash-command-handler.d.ts +352 -0
  262. package/dist/core/slash-command-handler.d.ts.map +1 -0
  263. package/dist/core/slash-command-handler.js +563 -0
  264. package/dist/core/slash-command-handler.js.map +1 -0
  265. package/dist/core/task-processor.d.ts +179 -0
  266. package/dist/core/task-processor.d.ts.map +1 -0
  267. package/dist/core/task-processor.js +519 -0
  268. package/dist/core/task-processor.js.map +1 -0
  269. package/dist/index.d.ts +90 -0
  270. package/dist/index.d.ts.map +1 -0
  271. package/dist/index.js +4 -3
  272. package/dist/index.js.map +1 -0
  273. package/dist/prompts/agent-prompt-generator.d.ts +26 -0
  274. package/dist/prompts/agent-prompt-generator.d.ts.map +1 -0
  275. package/dist/prompts/agent-prompt-generator.js +244 -0
  276. package/dist/prompts/agent-prompt-generator.js.map +1 -0
  277. package/dist/prompts/commit-message.d.ts +35 -0
  278. package/dist/prompts/commit-message.d.ts.map +1 -0
  279. package/dist/prompts/commit-message.js +187 -0
  280. package/dist/prompts/commit-message.js.map +1 -0
  281. package/dist/prompts/conversation.d.ts +51 -0
  282. package/dist/prompts/conversation.d.ts.map +1 -0
  283. package/dist/prompts/conversation.js +115 -0
  284. package/dist/prompts/conversation.js.map +1 -0
  285. package/dist/prompts/index.d.ts +39 -0
  286. package/dist/prompts/index.d.ts.map +1 -0
  287. package/dist/prompts/index.js +74 -0
  288. package/dist/prompts/index.js.map +1 -0
  289. package/dist/prompts/memory.d.ts +6 -0
  290. package/dist/prompts/memory.d.ts.map +1 -0
  291. package/dist/prompts/memory.js +29 -0
  292. package/dist/prompts/memory.js.map +1 -0
  293. package/dist/prompts/personality.d.ts +77 -0
  294. package/dist/prompts/personality.d.ts.map +1 -0
  295. package/dist/prompts/personality.js +393 -0
  296. package/dist/prompts/personality.js.map +1 -0
  297. package/dist/prompts/plan-generator.d.ts +144 -0
  298. package/dist/prompts/plan-generator.d.ts.map +1 -0
  299. package/dist/prompts/plan-generator.js +553 -0
  300. package/dist/prompts/plan-generator.js.map +1 -0
  301. package/dist/prompts/system.d.ts +95 -0
  302. package/dist/prompts/system.d.ts.map +1 -0
  303. package/dist/prompts/system.js +461 -0
  304. package/dist/prompts/system.js.map +1 -0
  305. package/dist/prompts/task-processor.d.ts +94 -0
  306. package/dist/prompts/task-processor.d.ts.map +1 -0
  307. package/dist/prompts/task-processor.js +554 -0
  308. package/dist/prompts/task-processor.js.map +1 -0
  309. package/dist/prompts/unguarded.d.ts +78 -0
  310. package/dist/prompts/unguarded.d.ts.map +1 -0
  311. package/dist/prompts/unguarded.js +418 -0
  312. package/dist/prompts/unguarded.js.map +1 -0
  313. package/dist/prompts/utils.d.ts +73 -0
  314. package/dist/prompts/utils.d.ts.map +1 -0
  315. package/dist/prompts/utils.js +114 -0
  316. package/dist/prompts/utils.js.map +1 -0
  317. package/dist/prompts/workflow.d.ts +241 -0
  318. package/dist/prompts/workflow.d.ts.map +1 -0
  319. package/dist/prompts/workflow.js +608 -0
  320. package/dist/prompts/workflow.js.map +1 -0
  321. package/dist/services/action-logger.d.ts +383 -0
  322. package/dist/services/action-logger.d.ts.map +1 -0
  323. package/dist/services/action-logger.js +544 -0
  324. package/dist/services/action-logger.js.map +1 -0
  325. package/dist/services/agent-budget-allocator.d.ts +111 -0
  326. package/dist/services/agent-budget-allocator.d.ts.map +1 -0
  327. package/dist/services/agent-budget-allocator.js +278 -0
  328. package/dist/services/agent-budget-allocator.js.map +1 -0
  329. package/dist/services/agent-manager.d.ts +181 -0
  330. package/dist/services/agent-manager.d.ts.map +1 -0
  331. package/dist/services/agent-manager.js +749 -0
  332. package/dist/services/agent-manager.js.map +1 -0
  333. package/dist/services/agent-spawner.d.ts +138 -0
  334. package/dist/services/agent-spawner.d.ts.map +1 -0
  335. package/dist/services/agent-spawner.js +748 -0
  336. package/dist/services/agent-spawner.js.map +1 -0
  337. package/dist/services/agent-state-service.d.ts +145 -0
  338. package/dist/services/agent-state-service.d.ts.map +1 -0
  339. package/dist/services/agent-state-service.js +247 -0
  340. package/dist/services/agent-state-service.js.map +1 -0
  341. package/dist/services/anthropic-client.d.ts +357 -0
  342. package/dist/services/anthropic-client.d.ts.map +1 -0
  343. package/dist/services/anthropic-client.js +1451 -0
  344. package/dist/services/anthropic-client.js.map +1 -0
  345. package/dist/services/approval-manager.d.ts +385 -0
  346. package/dist/services/approval-manager.d.ts.map +1 -0
  347. package/dist/services/approval-manager.js +1044 -0
  348. package/dist/services/approval-manager.js.map +1 -0
  349. package/dist/services/audit-logger.d.ts +245 -0
  350. package/dist/services/audit-logger.d.ts.map +1 -0
  351. package/dist/services/audit-logger.js +324 -0
  352. package/dist/services/audit-logger.js.map +1 -0
  353. package/dist/services/backup-manager.d.ts +136 -0
  354. package/dist/services/backup-manager.d.ts.map +1 -0
  355. package/dist/services/backup-manager.js +260 -0
  356. package/dist/services/backup-manager.js.map +1 -0
  357. package/dist/services/cache-service.d.ts +247 -0
  358. package/dist/services/cache-service.d.ts.map +1 -0
  359. package/dist/services/cache-service.js +558 -0
  360. package/dist/services/cache-service.js.map +1 -0
  361. package/dist/services/chat-archival-service.d.ts +108 -0
  362. package/dist/services/chat-archival-service.d.ts.map +1 -0
  363. package/dist/services/chat-archival-service.js +465 -0
  364. package/dist/services/chat-archival-service.js.map +1 -0
  365. package/dist/services/codebase-indexer.d.ts +272 -0
  366. package/dist/services/codebase-indexer.d.ts.map +1 -0
  367. package/dist/services/codebase-indexer.js +863 -0
  368. package/dist/services/codebase-indexer.js.map +1 -0
  369. package/dist/services/compass-auth-service.d.ts +204 -0
  370. package/dist/services/compass-auth-service.d.ts.map +1 -0
  371. package/dist/services/compass-auth-service.js +391 -0
  372. package/dist/services/compass-auth-service.js.map +1 -0
  373. package/dist/services/complexity-classifier.d.ts +208 -0
  374. package/dist/services/complexity-classifier.d.ts.map +1 -0
  375. package/dist/services/complexity-classifier.js +1410 -0
  376. package/dist/services/complexity-classifier.js.map +1 -0
  377. package/dist/services/config-manager.d.ts +278 -0
  378. package/dist/services/config-manager.d.ts.map +1 -0
  379. package/dist/services/config-manager.js +651 -0
  380. package/dist/services/config-manager.js.map +1 -0
  381. package/dist/services/consent-manager.d.ts +239 -0
  382. package/dist/services/consent-manager.d.ts.map +1 -0
  383. package/dist/services/consent-manager.js +516 -0
  384. package/dist/services/consent-manager.js.map +1 -0
  385. package/dist/services/conversation-compactor.d.ts +223 -0
  386. package/dist/services/conversation-compactor.d.ts.map +1 -0
  387. package/dist/services/conversation-compactor.js +750 -0
  388. package/dist/services/conversation-compactor.js.map +1 -0
  389. package/dist/services/cost-tracker.d.ts +167 -0
  390. package/dist/services/cost-tracker.d.ts.map +1 -0
  391. package/dist/services/cost-tracker.js +199 -0
  392. package/dist/services/cost-tracker.js.map +1 -0
  393. package/dist/services/credential-store.d.ts +273 -0
  394. package/dist/services/credential-store.d.ts.map +1 -0
  395. package/dist/services/credential-store.js +877 -0
  396. package/dist/services/credential-store.js.map +1 -0
  397. package/dist/services/custom-command-service.d.ts +112 -0
  398. package/dist/services/custom-command-service.d.ts.map +1 -0
  399. package/dist/services/custom-command-service.js +464 -0
  400. package/dist/services/custom-command-service.js.map +1 -0
  401. package/dist/services/default-statusline-renderer.d.ts +60 -0
  402. package/dist/services/default-statusline-renderer.d.ts.map +1 -0
  403. package/dist/services/default-statusline-renderer.js +110 -0
  404. package/dist/services/default-statusline-renderer.js.map +1 -0
  405. package/dist/services/enhanced-context-gatherer.d.ts +116 -0
  406. package/dist/services/enhanced-context-gatherer.d.ts.map +1 -0
  407. package/dist/services/enhanced-context-gatherer.js +605 -0
  408. package/dist/services/enhanced-context-gatherer.js.map +1 -0
  409. package/dist/services/file-hash-tracker.d.ts +95 -0
  410. package/dist/services/file-hash-tracker.d.ts.map +1 -0
  411. package/dist/services/file-hash-tracker.js +199 -0
  412. package/dist/services/file-hash-tracker.js.map +1 -0
  413. package/dist/services/file-service.d.ts +274 -0
  414. package/dist/services/file-service.d.ts.map +1 -0
  415. package/dist/services/file-service.js +876 -0
  416. package/dist/services/file-service.js.map +1 -0
  417. package/dist/services/git-service.d.ts +536 -0
  418. package/dist/services/git-service.d.ts.map +1 -0
  419. package/dist/services/git-service.js +1215 -0
  420. package/dist/services/git-service.js.map +1 -0
  421. package/dist/services/hook-service.d.ts +148 -0
  422. package/dist/services/hook-service.d.ts.map +1 -0
  423. package/dist/services/hook-service.js +705 -0
  424. package/dist/services/hook-service.js.map +1 -0
  425. package/dist/services/ide-state-service.d.ts +114 -0
  426. package/dist/services/ide-state-service.d.ts.map +1 -0
  427. package/dist/services/ide-state-service.js +204 -0
  428. package/dist/services/ide-state-service.js.map +1 -0
  429. package/dist/services/interactive-clarifier.d.ts +90 -0
  430. package/dist/services/interactive-clarifier.d.ts.map +1 -0
  431. package/dist/services/interactive-clarifier.js +446 -0
  432. package/dist/services/interactive-clarifier.js.map +1 -0
  433. package/dist/services/iteration-scoper.d.ts +225 -0
  434. package/dist/services/iteration-scoper.d.ts.map +1 -0
  435. package/dist/services/iteration-scoper.js +387 -0
  436. package/dist/services/iteration-scoper.js.map +1 -0
  437. package/dist/services/llm-plan-generator.d.ts +44 -0
  438. package/dist/services/llm-plan-generator.d.ts.map +1 -0
  439. package/dist/services/llm-plan-generator.js +863 -0
  440. package/dist/services/llm-plan-generator.js.map +1 -0
  441. package/dist/services/llm-system-prompt-generator.d.ts +85 -0
  442. package/dist/services/llm-system-prompt-generator.d.ts.map +1 -0
  443. package/dist/services/llm-system-prompt-generator.js +257 -0
  444. package/dist/services/llm-system-prompt-generator.js.map +1 -0
  445. package/dist/services/log-interpreter.d.ts +190 -0
  446. package/dist/services/log-interpreter.d.ts.map +1 -0
  447. package/dist/services/log-interpreter.js +520 -0
  448. package/dist/services/log-interpreter.js.map +1 -0
  449. package/dist/services/mcp-config-manager.d.ts +141 -0
  450. package/dist/services/mcp-config-manager.d.ts.map +1 -0
  451. package/dist/services/mcp-config-manager.js +678 -0
  452. package/dist/services/mcp-config-manager.js.map +1 -0
  453. package/dist/services/mcp-oauth-service.d.ts +170 -0
  454. package/dist/services/mcp-oauth-service.d.ts.map +1 -0
  455. package/dist/services/mcp-oauth-service.js +892 -0
  456. package/dist/services/mcp-oauth-service.js.map +1 -0
  457. package/dist/services/mcp-plugin-support.d.ts +81 -0
  458. package/dist/services/mcp-plugin-support.d.ts.map +1 -0
  459. package/dist/services/mcp-plugin-support.js +305 -0
  460. package/dist/services/mcp-plugin-support.js.map +1 -0
  461. package/dist/services/mcp-server-manager.d.ts +134 -0
  462. package/dist/services/mcp-server-manager.d.ts.map +1 -0
  463. package/dist/services/mcp-server-manager.js +613 -0
  464. package/dist/services/mcp-server-manager.js.map +1 -0
  465. package/dist/services/mcp-tool-integration.d.ts +119 -0
  466. package/dist/services/mcp-tool-integration.d.ts.map +1 -0
  467. package/dist/services/mcp-tool-integration.js +381 -0
  468. package/dist/services/mcp-tool-integration.js.map +1 -0
  469. package/dist/services/mcp-transport.d.ts +105 -0
  470. package/dist/services/mcp-transport.d.ts.map +1 -0
  471. package/dist/services/mcp-transport.js +1316 -0
  472. package/dist/services/mcp-transport.js.map +1 -0
  473. package/dist/services/memory-service.d.ts +55 -0
  474. package/dist/services/memory-service.d.ts.map +1 -0
  475. package/dist/services/memory-service.js +251 -0
  476. package/dist/services/memory-service.js.map +1 -0
  477. package/dist/services/model-availability.d.ts +64 -0
  478. package/dist/services/model-availability.d.ts.map +1 -0
  479. package/dist/services/model-availability.js +114 -0
  480. package/dist/services/model-availability.js.map +1 -0
  481. package/dist/services/plan-generator.d.ts +98 -0
  482. package/dist/services/plan-generator.d.ts.map +1 -0
  483. package/dist/services/plan-generator.js +658 -0
  484. package/dist/services/plan-generator.js.map +1 -0
  485. package/dist/services/plan-mode-fallback.d.ts +80 -0
  486. package/dist/services/plan-mode-fallback.d.ts.map +1 -0
  487. package/dist/services/plan-mode-fallback.js +307 -0
  488. package/dist/services/plan-mode-fallback.js.map +1 -0
  489. package/dist/services/plan-mode-handler.d.ts +42 -0
  490. package/dist/services/plan-mode-handler.d.ts.map +1 -0
  491. package/dist/services/plan-mode-handler.js +388 -0
  492. package/dist/services/plan-mode-handler.js.map +1 -0
  493. package/dist/services/plan-persistence.d.ts +203 -0
  494. package/dist/services/plan-persistence.d.ts.map +1 -0
  495. package/dist/services/plan-persistence.js +538 -0
  496. package/dist/services/plan-persistence.js.map +1 -0
  497. package/dist/services/prompt-preprocessor.d.ts +73 -0
  498. package/dist/services/prompt-preprocessor.d.ts.map +1 -0
  499. package/dist/services/prompt-preprocessor.js +146 -0
  500. package/dist/services/prompt-preprocessor.js.map +1 -0
  501. package/dist/services/rating-service.d.ts +84 -0
  502. package/dist/services/rating-service.d.ts.map +1 -0
  503. package/dist/services/rating-service.js +171 -0
  504. package/dist/services/rating-service.js.map +1 -0
  505. package/dist/services/rating-state-manager.d.ts +131 -0
  506. package/dist/services/rating-state-manager.d.ts.map +1 -0
  507. package/dist/services/rating-state-manager.js +270 -0
  508. package/dist/services/rating-state-manager.js.map +1 -0
  509. package/dist/services/sdk-runner.d.ts +113 -0
  510. package/dist/services/sdk-runner.d.ts.map +1 -0
  511. package/dist/services/sdk-runner.js +1424 -0
  512. package/dist/services/sdk-runner.js.map +1 -0
  513. package/dist/services/session-manager.d.ts +528 -0
  514. package/dist/services/session-manager.d.ts.map +1 -0
  515. package/dist/services/session-manager.js +1184 -0
  516. package/dist/services/session-manager.js.map +1 -0
  517. package/dist/services/shell-executor.d.ts +337 -0
  518. package/dist/services/shell-executor.d.ts.map +1 -0
  519. package/dist/services/shell-executor.js +1201 -0
  520. package/dist/services/shell-executor.js.map +1 -0
  521. package/dist/services/skill-service.d.ts +149 -0
  522. package/dist/services/skill-service.d.ts.map +1 -0
  523. package/dist/services/skill-service.js +594 -0
  524. package/dist/services/skill-service.js.map +1 -0
  525. package/dist/services/statusline-executor.d.ts +102 -0
  526. package/dist/services/statusline-executor.d.ts.map +1 -0
  527. package/dist/services/statusline-executor.js +305 -0
  528. package/dist/services/statusline-executor.js.map +1 -0
  529. package/dist/services/step-tracker.d.ts +356 -0
  530. package/dist/services/step-tracker.d.ts.map +1 -0
  531. package/dist/services/step-tracker.js +634 -0
  532. package/dist/services/step-tracker.js.map +1 -0
  533. package/dist/services/system-event-logger.d.ts +473 -0
  534. package/dist/services/system-event-logger.d.ts.map +1 -0
  535. package/dist/services/system-event-logger.js +790 -0
  536. package/dist/services/system-event-logger.js.map +1 -0
  537. package/dist/services/system-utility-detector.d.ts +91 -0
  538. package/dist/services/system-utility-detector.d.ts.map +1 -0
  539. package/dist/services/system-utility-detector.js +238 -0
  540. package/dist/services/system-utility-detector.js.map +1 -0
  541. package/dist/services/team-context-store.d.ts +100 -0
  542. package/dist/services/team-context-store.d.ts.map +1 -0
  543. package/dist/services/team-context-store.js +513 -0
  544. package/dist/services/team-context-store.js.map +1 -0
  545. package/dist/services/temp-file-service.d.ts +164 -0
  546. package/dist/services/temp-file-service.d.ts.map +1 -0
  547. package/dist/services/temp-file-service.js +303 -0
  548. package/dist/services/temp-file-service.js.map +1 -0
  549. package/dist/services/token-limit-enforcer.d.ts +53 -0
  550. package/dist/services/token-limit-enforcer.d.ts.map +1 -0
  551. package/dist/services/token-limit-enforcer.js +90 -0
  552. package/dist/services/token-limit-enforcer.js.map +1 -0
  553. package/dist/services/token-limit-store.d.ts +105 -0
  554. package/dist/services/token-limit-store.d.ts.map +1 -0
  555. package/dist/services/token-limit-store.js +288 -0
  556. package/dist/services/token-limit-store.js.map +1 -0
  557. package/dist/services/token-tracker.d.ts +290 -0
  558. package/dist/services/token-tracker.d.ts.map +1 -0
  559. package/dist/services/token-tracker.js +751 -0
  560. package/dist/services/token-tracker.js.map +1 -0
  561. package/dist/services/tool-registry.d.ts +302 -0
  562. package/dist/services/tool-registry.d.ts.map +1 -0
  563. package/dist/services/tool-registry.js +606 -0
  564. package/dist/services/tool-registry.js.map +1 -0
  565. package/dist/services/tools-logger.d.ts +152 -0
  566. package/dist/services/tools-logger.d.ts.map +1 -0
  567. package/dist/services/tools-logger.js +222 -0
  568. package/dist/services/tools-logger.js.map +1 -0
  569. package/dist/services/update-plan-handler.d.ts +56 -0
  570. package/dist/services/update-plan-handler.d.ts.map +1 -0
  571. package/dist/services/update-plan-handler.js +372 -0
  572. package/dist/services/update-plan-handler.js.map +1 -0
  573. package/dist/services/update-service.d.ts +197 -0
  574. package/dist/services/update-service.d.ts.map +1 -0
  575. package/dist/services/update-service.js +749 -0
  576. package/dist/services/update-service.js.map +1 -0
  577. package/dist/services/verifier.d.ts +113 -0
  578. package/dist/services/verifier.d.ts.map +1 -0
  579. package/dist/services/verifier.js +541 -0
  580. package/dist/services/verifier.js.map +1 -0
  581. package/dist/services/workflow-manager.d.ts +277 -0
  582. package/dist/services/workflow-manager.d.ts.map +1 -0
  583. package/dist/services/workflow-manager.js +616 -0
  584. package/dist/services/workflow-manager.js.map +1 -0
  585. package/dist/services/workflow-orchestrator.d.ts +148 -0
  586. package/dist/services/workflow-orchestrator.d.ts.map +1 -0
  587. package/dist/services/workflow-orchestrator.js +617 -0
  588. package/dist/services/workflow-orchestrator.js.map +1 -0
  589. package/dist/services/worktree-manager.d.ts +36 -0
  590. package/dist/services/worktree-manager.d.ts.map +1 -0
  591. package/dist/services/worktree-manager.js +185 -0
  592. package/dist/services/worktree-manager.js.map +1 -0
  593. package/dist/templates/ascii-art.d.ts +136 -0
  594. package/dist/templates/ascii-art.d.ts.map +1 -0
  595. package/dist/templates/ascii-art.js +286 -0
  596. package/dist/templates/ascii-art.js.map +1 -0
  597. package/dist/templates/help.d.ts +186 -0
  598. package/dist/templates/help.d.ts.map +1 -0
  599. package/dist/templates/help.js +588 -0
  600. package/dist/templates/help.js.map +1 -0
  601. package/dist/templates/prompts/workflow-prompts.d.ts +9 -0
  602. package/dist/templates/prompts/workflow-prompts.d.ts.map +1 -0
  603. package/dist/templates/prompts/workflow-prompts.js +9 -0
  604. package/dist/templates/prompts/workflow-prompts.js.map +1 -0
  605. package/dist/tools/agent-tools.d.ts +9 -0
  606. package/dist/tools/agent-tools.d.ts.map +1 -0
  607. package/dist/tools/agent-tools.js +349 -0
  608. package/dist/tools/agent-tools.js.map +1 -0
  609. package/dist/tools/edit-replacers.d.ts +90 -0
  610. package/dist/tools/edit-replacers.d.ts.map +1 -0
  611. package/dist/tools/edit-replacers.js +553 -0
  612. package/dist/tools/edit-replacers.js.map +1 -0
  613. package/dist/tools/file-tools.d.ts +13 -0
  614. package/dist/tools/file-tools.d.ts.map +1 -0
  615. package/dist/tools/file-tools.js +954 -0
  616. package/dist/tools/file-tools.js.map +1 -0
  617. package/dist/tools/git-tools.d.ts +9 -0
  618. package/dist/tools/git-tools.d.ts.map +1 -0
  619. package/dist/tools/git-tools.js +261 -0
  620. package/dist/tools/git-tools.js.map +1 -0
  621. package/dist/tools/index.d.ts +13 -0
  622. package/dist/tools/index.d.ts.map +1 -0
  623. package/dist/tools/index.js +70 -0
  624. package/dist/tools/index.js.map +1 -0
  625. package/dist/tools/network-tools.d.ts +8 -0
  626. package/dist/tools/network-tools.d.ts.map +1 -0
  627. package/dist/tools/network-tools.js +261 -0
  628. package/dist/tools/network-tools.js.map +1 -0
  629. package/dist/tools/openai-tools.d.ts +16 -0
  630. package/dist/tools/openai-tools.d.ts.map +1 -0
  631. package/dist/tools/openai-tools.js +385 -0
  632. package/dist/tools/openai-tools.js.map +1 -0
  633. package/dist/tools/plan-tools.d.ts +9 -0
  634. package/dist/tools/plan-tools.d.ts.map +1 -0
  635. package/dist/tools/plan-tools.js +223 -0
  636. package/dist/tools/plan-tools.js.map +1 -0
  637. package/dist/tools/schedule-tools.d.ts +9 -0
  638. package/dist/tools/schedule-tools.d.ts.map +1 -0
  639. package/dist/tools/schedule-tools.js +405 -0
  640. package/dist/tools/schedule-tools.js.map +1 -0
  641. package/dist/tools/search-tools.d.ts +8 -0
  642. package/dist/tools/search-tools.d.ts.map +1 -0
  643. package/dist/tools/search-tools.js +357 -0
  644. package/dist/tools/search-tools.js.map +1 -0
  645. package/dist/tools/shared-utils.d.ts +91 -0
  646. package/dist/tools/shared-utils.d.ts.map +1 -0
  647. package/dist/tools/shared-utils.js +385 -0
  648. package/dist/tools/shared-utils.js.map +1 -0
  649. package/dist/tools/shell-tools.d.ts +9 -0
  650. package/dist/tools/shell-tools.d.ts.map +1 -0
  651. package/dist/tools/shell-tools.js +409 -0
  652. package/dist/tools/shell-tools.js.map +1 -0
  653. package/dist/tools/skill-tools.d.ts +13 -0
  654. package/dist/tools/skill-tools.d.ts.map +1 -0
  655. package/dist/tools/skill-tools.js +244 -0
  656. package/dist/tools/skill-tools.js.map +1 -0
  657. package/dist/tools/swarm-tools.d.ts +9 -0
  658. package/dist/tools/swarm-tools.d.ts.map +1 -0
  659. package/dist/tools/swarm-tools.js +422 -0
  660. package/dist/tools/swarm-tools.js.map +1 -0
  661. package/dist/tools/user-tools.d.ts +13 -0
  662. package/dist/tools/user-tools.d.ts.map +1 -0
  663. package/dist/tools/user-tools.js +232 -0
  664. package/dist/tools/user-tools.js.map +1 -0
  665. package/dist/types/agent-process.d.ts +244 -0
  666. package/dist/types/agent-process.d.ts.map +1 -0
  667. package/dist/types/agent-process.js +93 -0
  668. package/dist/types/agent-process.js.map +1 -0
  669. package/dist/types/agent.d.ts +358 -0
  670. package/dist/types/agent.d.ts.map +1 -0
  671. package/dist/types/agent.js +171 -0
  672. package/dist/types/agent.js.map +1 -0
  673. package/dist/types/anthropic.d.ts +438 -0
  674. package/dist/types/anthropic.d.ts.map +1 -0
  675. package/dist/types/anthropic.js +9 -0
  676. package/dist/types/anthropic.js.map +1 -0
  677. package/dist/types/approval.d.ts +332 -0
  678. package/dist/types/approval.d.ts.map +1 -0
  679. package/dist/types/approval.js +44 -0
  680. package/dist/types/approval.js.map +1 -0
  681. package/dist/types/autocomplete.d.ts +57 -0
  682. package/dist/types/autocomplete.d.ts.map +1 -0
  683. package/dist/types/autocomplete.js +7 -0
  684. package/dist/types/autocomplete.js.map +1 -0
  685. package/dist/types/chat-archive.d.ts +161 -0
  686. package/dist/types/chat-archive.d.ts.map +1 -0
  687. package/dist/types/chat-archive.js +36 -0
  688. package/dist/types/chat-archive.js.map +1 -0
  689. package/dist/types/config.d.ts +268 -0
  690. package/dist/types/config.d.ts.map +1 -0
  691. package/dist/types/config.js +188 -0
  692. package/dist/types/config.js.map +1 -0
  693. package/dist/types/consent.d.ts +191 -0
  694. package/dist/types/consent.d.ts.map +1 -0
  695. package/dist/types/consent.js +119 -0
  696. package/dist/types/consent.js.map +1 -0
  697. package/dist/types/custom-command.d.ts +139 -0
  698. package/dist/types/custom-command.d.ts.map +1 -0
  699. package/dist/types/custom-command.js +7 -0
  700. package/dist/types/custom-command.js.map +1 -0
  701. package/dist/types/git.d.ts +20 -0
  702. package/dist/types/git.d.ts.map +1 -0
  703. package/dist/types/git.js +2 -0
  704. package/dist/types/git.js.map +1 -0
  705. package/dist/types/hook.d.ts +342 -0
  706. package/dist/types/hook.d.ts.map +1 -0
  707. package/dist/types/hook.js +84 -0
  708. package/dist/types/hook.js.map +1 -0
  709. package/dist/types/index.d.ts +86 -0
  710. package/dist/types/index.d.ts.map +1 -0
  711. package/dist/types/index.js +71 -0
  712. package/dist/types/index.js.map +1 -0
  713. package/dist/types/mcp.d.ts +456 -0
  714. package/dist/types/mcp.d.ts.map +1 -0
  715. package/dist/types/mcp.js +94 -0
  716. package/dist/types/mcp.js.map +1 -0
  717. package/dist/types/rating.d.ts +110 -0
  718. package/dist/types/rating.d.ts.map +1 -0
  719. package/dist/types/rating.js +53 -0
  720. package/dist/types/rating.js.map +1 -0
  721. package/dist/types/schedule.d.ts +91 -0
  722. package/dist/types/schedule.d.ts.map +1 -0
  723. package/dist/types/schedule.js +8 -0
  724. package/dist/types/schedule.js.map +1 -0
  725. package/dist/types/session.d.ts +361 -0
  726. package/dist/types/session.d.ts.map +1 -0
  727. package/dist/types/session.js +9 -0
  728. package/dist/types/session.js.map +1 -0
  729. package/dist/types/skill.d.ts +258 -0
  730. package/dist/types/skill.d.ts.map +1 -0
  731. package/dist/types/skill.js +79 -0
  732. package/dist/types/skill.js.map +1 -0
  733. package/dist/types/statusline.d.ts +212 -0
  734. package/dist/types/statusline.d.ts.map +1 -0
  735. package/dist/types/statusline.js +8 -0
  736. package/dist/types/statusline.js.map +1 -0
  737. package/dist/types/stream.d.ts +61 -0
  738. package/dist/types/stream.d.ts.map +1 -0
  739. package/dist/types/stream.js +17 -0
  740. package/dist/types/stream.js.map +1 -0
  741. package/dist/types/swarm.d.ts +132 -0
  742. package/dist/types/swarm.d.ts.map +1 -0
  743. package/dist/types/swarm.js +21 -0
  744. package/dist/types/swarm.js.map +1 -0
  745. package/dist/types/token-limits.d.ts +107 -0
  746. package/dist/types/token-limits.d.ts.map +1 -0
  747. package/dist/types/token-limits.js +57 -0
  748. package/dist/types/token-limits.js.map +1 -0
  749. package/dist/types/token.d.ts +329 -0
  750. package/dist/types/token.d.ts.map +1 -0
  751. package/dist/types/token.js +9 -0
  752. package/dist/types/token.js.map +1 -0
  753. package/dist/types/update.d.ts +189 -0
  754. package/dist/types/update.d.ts.map +1 -0
  755. package/dist/types/update.js +55 -0
  756. package/dist/types/update.js.map +1 -0
  757. package/dist/types/workflow.d.ts +396 -0
  758. package/dist/types/workflow.d.ts.map +1 -0
  759. package/dist/types/workflow.js +46 -0
  760. package/dist/types/workflow.js.map +1 -0
  761. package/dist/ui/App.d.ts +62 -0
  762. package/dist/ui/App.d.ts.map +1 -0
  763. package/dist/ui/App.js +511 -0
  764. package/dist/ui/App.js.map +1 -0
  765. package/dist/ui/InteractiveSession.d.ts +34 -0
  766. package/dist/ui/InteractiveSession.d.ts.map +1 -0
  767. package/dist/ui/InteractiveSession.js +3611 -0
  768. package/dist/ui/InteractiveSession.js.map +1 -0
  769. package/dist/ui/MCPApprovalPrompt.d.ts +27 -0
  770. package/dist/ui/MCPApprovalPrompt.d.ts.map +1 -0
  771. package/dist/ui/MCPApprovalPrompt.js +51 -0
  772. package/dist/ui/MCPApprovalPrompt.js.map +1 -0
  773. package/dist/ui/SetupWizard.d.ts +26 -0
  774. package/dist/ui/SetupWizard.d.ts.map +1 -0
  775. package/dist/ui/SetupWizard.js +396 -0
  776. package/dist/ui/SetupWizard.js.map +1 -0
  777. package/dist/ui/components/AgentCreationWizard.d.ts +36 -0
  778. package/dist/ui/components/AgentCreationWizard.d.ts.map +1 -0
  779. package/dist/ui/components/AgentCreationWizard.js +619 -0
  780. package/dist/ui/components/AgentCreationWizard.js.map +1 -0
  781. package/dist/ui/components/AgentManager.d.ts +41 -0
  782. package/dist/ui/components/AgentManager.d.ts.map +1 -0
  783. package/dist/ui/components/AgentManager.js +343 -0
  784. package/dist/ui/components/AgentManager.js.map +1 -0
  785. package/dist/ui/components/ApprovalDialog.d.ts +18 -0
  786. package/dist/ui/components/ApprovalDialog.d.ts.map +1 -0
  787. package/dist/ui/components/ApprovalDialog.js +439 -0
  788. package/dist/ui/components/ApprovalDialog.js.map +1 -0
  789. package/dist/ui/components/AsciiArt.d.ts +54 -0
  790. package/dist/ui/components/AsciiArt.d.ts.map +1 -0
  791. package/dist/ui/components/AsciiArt.js +89 -0
  792. package/dist/ui/components/AsciiArt.js.map +1 -0
  793. package/dist/ui/components/ClarificationWizard.d.ts +36 -0
  794. package/dist/ui/components/ClarificationWizard.d.ts.map +1 -0
  795. package/dist/ui/components/ClarificationWizard.js +407 -0
  796. package/dist/ui/components/ClarificationWizard.js.map +1 -0
  797. package/dist/ui/components/CompassSpinner.d.ts +15 -0
  798. package/dist/ui/components/CompassSpinner.d.ts.map +1 -0
  799. package/dist/ui/components/CompassSpinner.js +50 -0
  800. package/dist/ui/components/CompassSpinner.js.map +1 -0
  801. package/dist/ui/components/ConfirmationSelector.d.ts +45 -0
  802. package/dist/ui/components/ConfirmationSelector.d.ts.map +1 -0
  803. package/dist/ui/components/ConfirmationSelector.js +106 -0
  804. package/dist/ui/components/ConfirmationSelector.js.map +1 -0
  805. package/dist/ui/components/ContextUsage.d.ts +76 -0
  806. package/dist/ui/components/ContextUsage.d.ts.map +1 -0
  807. package/dist/ui/components/ContextUsage.js +188 -0
  808. package/dist/ui/components/ContextUsage.js.map +1 -0
  809. package/dist/ui/components/DiffPreview.d.ts +13 -0
  810. package/dist/ui/components/DiffPreview.d.ts.map +1 -0
  811. package/dist/ui/components/DiffPreview.js +30 -0
  812. package/dist/ui/components/DiffPreview.js.map +1 -0
  813. package/dist/ui/components/ExecutionModeSelector.d.ts +45 -0
  814. package/dist/ui/components/ExecutionModeSelector.d.ts.map +1 -0
  815. package/dist/ui/components/ExecutionModeSelector.js +120 -0
  816. package/dist/ui/components/ExecutionModeSelector.js.map +1 -0
  817. package/dist/ui/components/FileTree.d.ts +47 -0
  818. package/dist/ui/components/FileTree.d.ts.map +1 -0
  819. package/dist/ui/components/FileTree.js +258 -0
  820. package/dist/ui/components/FileTree.js.map +1 -0
  821. package/dist/ui/components/HelpMenu.d.ts +49 -0
  822. package/dist/ui/components/HelpMenu.d.ts.map +1 -0
  823. package/dist/ui/components/HelpMenu.js +91 -0
  824. package/dist/ui/components/HelpMenu.js.map +1 -0
  825. package/dist/ui/components/InterleavedStream.d.ts +42 -0
  826. package/dist/ui/components/InterleavedStream.d.ts.map +1 -0
  827. package/dist/ui/components/InterleavedStream.js +1500 -0
  828. package/dist/ui/components/InterleavedStream.js.map +1 -0
  829. package/dist/ui/components/ModelSelector.d.ts +81 -0
  830. package/dist/ui/components/ModelSelector.d.ts.map +1 -0
  831. package/dist/ui/components/ModelSelector.js +305 -0
  832. package/dist/ui/components/ModelSelector.js.map +1 -0
  833. package/dist/ui/components/PlanApprovalDialog.d.ts +21 -0
  834. package/dist/ui/components/PlanApprovalDialog.d.ts.map +1 -0
  835. package/dist/ui/components/PlanApprovalDialog.js +189 -0
  836. package/dist/ui/components/PlanApprovalDialog.js.map +1 -0
  837. package/dist/ui/components/PlanExecutionTracker.d.ts +53 -0
  838. package/dist/ui/components/PlanExecutionTracker.d.ts.map +1 -0
  839. package/dist/ui/components/PlanExecutionTracker.js +113 -0
  840. package/dist/ui/components/PlanExecutionTracker.js.map +1 -0
  841. package/dist/ui/components/ProgressIndicator.d.ts +151 -0
  842. package/dist/ui/components/ProgressIndicator.d.ts.map +1 -0
  843. package/dist/ui/components/ProgressIndicator.js +171 -0
  844. package/dist/ui/components/ProgressIndicator.js.map +1 -0
  845. package/dist/ui/components/Prompt.d.ts +47 -0
  846. package/dist/ui/components/Prompt.d.ts.map +1 -0
  847. package/dist/ui/components/Prompt.js +632 -0
  848. package/dist/ui/components/Prompt.js.map +1 -0
  849. package/dist/ui/components/RatingPanel.d.ts +45 -0
  850. package/dist/ui/components/RatingPanel.d.ts.map +1 -0
  851. package/dist/ui/components/RatingPanel.js +119 -0
  852. package/dist/ui/components/RatingPanel.js.map +1 -0
  853. package/dist/ui/components/StatusLine.d.ts +43 -0
  854. package/dist/ui/components/StatusLine.d.ts.map +1 -0
  855. package/dist/ui/components/StatusLine.js +44 -0
  856. package/dist/ui/components/StatusLine.js.map +1 -0
  857. package/dist/ui/components/StreamingResponse.d.ts +45 -0
  858. package/dist/ui/components/StreamingResponse.d.ts.map +1 -0
  859. package/dist/ui/components/StreamingResponse.js +56 -0
  860. package/dist/ui/components/StreamingResponse.js.map +1 -0
  861. package/dist/ui/components/TokenUsage.d.ts +89 -0
  862. package/dist/ui/components/TokenUsage.d.ts.map +1 -0
  863. package/dist/ui/components/TokenUsage.js +99 -0
  864. package/dist/ui/components/TokenUsage.js.map +1 -0
  865. package/dist/ui/components/ToolSummary.d.ts +77 -0
  866. package/dist/ui/components/ToolSummary.d.ts.map +1 -0
  867. package/dist/ui/components/ToolSummary.js +162 -0
  868. package/dist/ui/components/ToolSummary.js.map +1 -0
  869. package/dist/ui/components/UpdateNotification.d.ts +65 -0
  870. package/dist/ui/components/UpdateNotification.d.ts.map +1 -0
  871. package/dist/ui/components/UpdateNotification.js +166 -0
  872. package/dist/ui/components/UpdateNotification.js.map +1 -0
  873. package/dist/ui/diff-renderer.d.ts +18 -0
  874. package/dist/ui/diff-renderer.d.ts.map +1 -0
  875. package/dist/ui/diff-renderer.js +206 -0
  876. package/dist/ui/diff-renderer.js.map +1 -0
  877. package/dist/ui/themes/markdown-theme.d.ts +48 -0
  878. package/dist/ui/themes/markdown-theme.d.ts.map +1 -0
  879. package/dist/ui/themes/markdown-theme.js +79 -0
  880. package/dist/ui/themes/markdown-theme.js.map +1 -0
  881. package/dist/ui/themes/ui-theme.d.ts +301 -0
  882. package/dist/ui/themes/ui-theme.d.ts.map +1 -0
  883. package/dist/ui/themes/ui-theme.js +204 -0
  884. package/dist/ui/themes/ui-theme.js.map +1 -0
  885. package/dist/utils/attachment-handler.d.ts +129 -0
  886. package/dist/utils/attachment-handler.d.ts.map +1 -0
  887. package/dist/utils/attachment-handler.js +280 -0
  888. package/dist/utils/attachment-handler.js.map +1 -0
  889. package/dist/utils/backup-cleanup.d.ts +28 -0
  890. package/dist/utils/backup-cleanup.d.ts.map +1 -0
  891. package/dist/utils/backup-cleanup.js +99 -0
  892. package/dist/utils/backup-cleanup.js.map +1 -0
  893. package/dist/utils/clipboard-handler.d.ts +82 -0
  894. package/dist/utils/clipboard-handler.d.ts.map +1 -0
  895. package/dist/utils/clipboard-handler.js +311 -0
  896. package/dist/utils/clipboard-handler.js.map +1 -0
  897. package/dist/utils/cloud-detection.d.ts +14 -0
  898. package/dist/utils/cloud-detection.d.ts.map +1 -0
  899. package/dist/utils/cloud-detection.js +92 -0
  900. package/dist/utils/cloud-detection.js.map +1 -0
  901. package/dist/utils/command-parser.d.ts +56 -0
  902. package/dist/utils/command-parser.d.ts.map +1 -0
  903. package/dist/utils/command-parser.js +206 -0
  904. package/dist/utils/command-parser.js.map +1 -0
  905. package/dist/utils/console-capture.d.ts +30 -0
  906. package/dist/utils/console-capture.d.ts.map +1 -0
  907. package/dist/utils/console-capture.js +88 -0
  908. package/dist/utils/console-capture.js.map +1 -0
  909. package/dist/utils/cron-parser.d.ts +52 -0
  910. package/dist/utils/cron-parser.d.ts.map +1 -0
  911. package/dist/utils/cron-parser.js +455 -0
  912. package/dist/utils/cron-parser.js.map +1 -0
  913. package/dist/utils/crypto.d.ts +351 -0
  914. package/dist/utils/crypto.d.ts.map +1 -0
  915. package/dist/utils/crypto.js +615 -0
  916. package/dist/utils/crypto.js.map +1 -0
  917. package/dist/utils/diff.d.ts +311 -0
  918. package/dist/utils/diff.d.ts.map +1 -0
  919. package/dist/utils/diff.js +566 -0
  920. package/dist/utils/diff.js.map +1 -0
  921. package/dist/utils/editor.d.ts +12 -0
  922. package/dist/utils/editor.d.ts.map +1 -0
  923. package/dist/utils/editor.js +30 -0
  924. package/dist/utils/editor.js.map +1 -0
  925. package/dist/utils/file-system.d.ts +512 -0
  926. package/dist/utils/file-system.d.ts.map +1 -0
  927. package/dist/utils/file-system.js +798 -0
  928. package/dist/utils/file-system.js.map +1 -0
  929. package/dist/utils/format.d.ts +318 -0
  930. package/dist/utils/format.d.ts.map +1 -0
  931. package/dist/utils/format.js +587 -0
  932. package/dist/utils/format.js.map +1 -0
  933. package/dist/utils/ignore-patterns.d.ts +93 -0
  934. package/dist/utils/ignore-patterns.d.ts.map +1 -0
  935. package/dist/utils/ignore-patterns.js +710 -0
  936. package/dist/utils/ignore-patterns.js.map +1 -0
  937. package/dist/utils/log-cleanup.d.ts +16 -0
  938. package/dist/utils/log-cleanup.d.ts.map +1 -0
  939. package/dist/utils/log-cleanup.js +51 -0
  940. package/dist/utils/log-cleanup.js.map +1 -0
  941. package/dist/utils/logger.d.ts +305 -0
  942. package/dist/utils/logger.d.ts.map +1 -0
  943. package/dist/utils/logger.js +447 -0
  944. package/dist/utils/logger.js.map +1 -0
  945. package/dist/utils/path.d.ts +406 -0
  946. package/dist/utils/path.d.ts.map +1 -0
  947. package/dist/utils/path.js +549 -0
  948. package/dist/utils/path.js.map +1 -0
  949. package/dist/utils/schedule-file.d.ts +63 -0
  950. package/dist/utils/schedule-file.d.ts.map +1 -0
  951. package/dist/utils/schedule-file.js +244 -0
  952. package/dist/utils/schedule-file.js.map +1 -0
  953. package/dist/utils/task-id.d.ts +29 -0
  954. package/dist/utils/task-id.d.ts.map +1 -0
  955. package/dist/utils/task-id.js +53 -0
  956. package/dist/utils/task-id.js.map +1 -0
  957. package/dist/utils/temp-cleanup.d.ts +46 -0
  958. package/dist/utils/temp-cleanup.d.ts.map +1 -0
  959. package/dist/utils/temp-cleanup.js +95 -0
  960. package/dist/utils/temp-cleanup.js.map +1 -0
  961. package/dist/utils/terminal-output.d.ts +34 -0
  962. package/dist/utils/terminal-output.d.ts.map +1 -0
  963. package/dist/utils/terminal-output.js +40 -0
  964. package/dist/utils/terminal-output.js.map +1 -0
  965. package/dist/utils/token-counter.d.ts +224 -0
  966. package/dist/utils/token-counter.d.ts.map +1 -0
  967. package/dist/utils/token-counter.js +332 -0
  968. package/dist/utils/token-counter.js.map +1 -0
  969. package/dist/utils/tool-mapper.d.ts +70 -0
  970. package/dist/utils/tool-mapper.d.ts.map +1 -0
  971. package/dist/utils/tool-mapper.js +234 -0
  972. package/dist/utils/tool-mapper.js.map +1 -0
  973. package/package.json +2 -1
  974. package/scripts/preuninstall.mjs +99 -0
@@ -0,0 +1,863 @@
1
+ /**
2
+ * LLM-Powered Plan Generator
3
+ *
4
+ * This module generates implementation plans using Claude AI instead of
5
+ * hardcoded pattern matching. It sends context about the project and user
6
+ * request to Claude and receives a structured ImplementationPlan in response.
7
+ */
8
+ import { v4 as uuidv4 } from 'uuid';
9
+ import { getAnthropicClient } from './anthropic-client.js';
10
+ import { logger } from '../utils/logger.js';
11
+ import { getEventEmitter } from '../core/event-emitter.js';
12
+ import { IMPLEMENTATION_PLAN_SCHEMA, PLAN_GENERATION_SYSTEM_PROMPT, PLAN_ADOPTION_SYSTEM_PROMPT, PLAN_MODIFICATION_SYSTEM_PROMPT, buildPlanModificationUserPrompt, buildLightweightPlanModificationPrompt, } from '../prompts/index.js';
13
+ /**
14
+ * Emits a status message for UI display during plan generation.
15
+ */
16
+ function emitStatus(toolCallId, message) {
17
+ if (toolCallId) {
18
+ const eventEmitter = getEventEmitter();
19
+ eventEmitter.emit('tool-status-message', { toolId: toolCallId, message });
20
+ }
21
+ }
22
+ /**
23
+ * Plan generation phases in order of appearance in JSON output.
24
+ */
25
+ var PlanPhase;
26
+ (function (PlanPhase) {
27
+ PlanPhase[PlanPhase["STARTING"] = 0] = "STARTING";
28
+ PlanPhase[PlanPhase["PROBLEM_STATEMENT"] = 1] = "PROBLEM_STATEMENT";
29
+ PlanPhase[PlanPhase["REQUIREMENTS"] = 2] = "REQUIREMENTS";
30
+ PlanPhase[PlanPhase["EDGE_CASES"] = 3] = "EDGE_CASES";
31
+ PlanPhase[PlanPhase["CONSTRAINTS"] = 4] = "CONSTRAINTS";
32
+ PlanPhase[PlanPhase["ASSUMPTIONS"] = 5] = "ASSUMPTIONS";
33
+ PlanPhase[PlanPhase["IMPACT"] = 6] = "IMPACT";
34
+ PlanPhase[PlanPhase["TASKS"] = 7] = "TASKS";
35
+ PlanPhase[PlanPhase["RISKS"] = 8] = "RISKS";
36
+ PlanPhase[PlanPhase["TESTING"] = 9] = "TESTING";
37
+ PlanPhase[PlanPhase["FINALIZING"] = 10] = "FINALIZING";
38
+ })(PlanPhase || (PlanPhase = {}));
39
+ /**
40
+ * Tracks plan generation progress by analyzing streamed JSON content.
41
+ * Uses a state machine to ensure orderly progression through phases.
42
+ */
43
+ class PlanProgressTracker {
44
+ content = '';
45
+ lastEmittedMessage = '';
46
+ currentPhase = PlanPhase.STARTING;
47
+ requirementCount = 0;
48
+ taskCount = 0;
49
+ riskCount = 0;
50
+ /**
51
+ * Appends new content and returns a status message if progress changed.
52
+ */
53
+ update(chunk) {
54
+ this.content += chunk;
55
+ const message = this.detectProgress();
56
+ if (message && message !== this.lastEmittedMessage) {
57
+ this.lastEmittedMessage = message;
58
+ return message;
59
+ }
60
+ return null;
61
+ }
62
+ /**
63
+ * Detects progress using ordered phase transitions.
64
+ * Only moves forward through phases, never backward.
65
+ */
66
+ detectProgress() {
67
+ // Check phases in order - only advance, never go back
68
+ if (this.currentPhase < PlanPhase.PROBLEM_STATEMENT &&
69
+ this.content.includes('"problemStatement"')) {
70
+ this.currentPhase = PlanPhase.PROBLEM_STATEMENT;
71
+ return 'Defining problem statement...';
72
+ }
73
+ if (this.currentPhase < PlanPhase.REQUIREMENTS &&
74
+ this.content.includes('"requirements"')) {
75
+ this.currentPhase = PlanPhase.REQUIREMENTS;
76
+ }
77
+ // While in requirements phase, track count
78
+ if (this.currentPhase === PlanPhase.REQUIREMENTS) {
79
+ const count = (this.content.match(/"id":\s*"req-/g) || []).length;
80
+ if (count > this.requirementCount) {
81
+ this.requirementCount = count;
82
+ return `Generating requirements... (${count} found)`;
83
+ }
84
+ }
85
+ if (this.currentPhase < PlanPhase.EDGE_CASES &&
86
+ this.content.includes('"edgeCases"')) {
87
+ this.currentPhase = PlanPhase.EDGE_CASES;
88
+ return 'Identifying edge cases...';
89
+ }
90
+ if (this.currentPhase < PlanPhase.CONSTRAINTS &&
91
+ this.content.includes('"constraints"')) {
92
+ this.currentPhase = PlanPhase.CONSTRAINTS;
93
+ return 'Defining constraints...';
94
+ }
95
+ if (this.currentPhase < PlanPhase.ASSUMPTIONS &&
96
+ this.content.includes('"assumptions"')) {
97
+ this.currentPhase = PlanPhase.ASSUMPTIONS;
98
+ return 'Documenting assumptions...';
99
+ }
100
+ if (this.currentPhase < PlanPhase.IMPACT &&
101
+ this.content.includes('"impact"')) {
102
+ this.currentPhase = PlanPhase.IMPACT;
103
+ return 'Analyzing file impact...';
104
+ }
105
+ if (this.currentPhase < PlanPhase.TASKS &&
106
+ this.content.includes('"tasks"')) {
107
+ this.currentPhase = PlanPhase.TASKS;
108
+ }
109
+ // While in tasks phase, track count
110
+ if (this.currentPhase === PlanPhase.TASKS) {
111
+ const count = (this.content.match(/"id":\s*"task-/g) || []).length;
112
+ if (count > this.taskCount) {
113
+ this.taskCount = count;
114
+ return `Creating tasks... (${count} defined)`;
115
+ }
116
+ }
117
+ if (this.currentPhase < PlanPhase.RISKS &&
118
+ this.content.includes('"risks"')) {
119
+ this.currentPhase = PlanPhase.RISKS;
120
+ }
121
+ // While in risks phase, track count
122
+ if (this.currentPhase === PlanPhase.RISKS) {
123
+ const count = (this.content.match(/"severity":\s*"/g) || []).length;
124
+ if (count > this.riskCount) {
125
+ this.riskCount = count;
126
+ return `Identifying risks... (${count} found)`;
127
+ }
128
+ }
129
+ if (this.currentPhase < PlanPhase.TESTING &&
130
+ this.content.includes('"testing"')) {
131
+ this.currentPhase = PlanPhase.TESTING;
132
+ return 'Defining test strategy...';
133
+ }
134
+ if (this.currentPhase < PlanPhase.FINALIZING &&
135
+ this.content.includes('"rollbackStrategy"')) {
136
+ this.currentPhase = PlanPhase.FINALIZING;
137
+ return 'Finalizing plan...';
138
+ }
139
+ // Default based on current phase
140
+ if (this.currentPhase === PlanPhase.STARTING) {
141
+ return 'Generating plan...';
142
+ }
143
+ return this.lastEmittedMessage || 'Generating plan...';
144
+ }
145
+ /**
146
+ * Returns final summary of what was generated.
147
+ */
148
+ getSummary() {
149
+ return `Generated plan with ${this.requirementCount} requirements, ${this.taskCount} tasks, ${this.riskCount} risks`;
150
+ }
151
+ }
152
+ /**
153
+ * Builds the system prompt for plan generation.
154
+ * Uses the centralized prompt from the prompts module.
155
+ */
156
+ function buildSystemPrompt() {
157
+ return PLAN_GENERATION_SYSTEM_PROMPT;
158
+ }
159
+ /**
160
+ * Builds the user prompt with all context for plan generation.
161
+ */
162
+ function buildUserPrompt(userRequest, context, complexity, clarifications) {
163
+ const parts = [];
164
+ // User Request
165
+ parts.push('## User Request');
166
+ parts.push(userRequest);
167
+ parts.push('');
168
+ // Project Context
169
+ parts.push('## Project Context');
170
+ parts.push(`**Project Root:** ${context.projectRoot}`);
171
+ parts.push(`**Project Type:** ${context.projectType || 'unknown'}`);
172
+ parts.push(`**Languages:** ${context.languages.join(', ') || 'unknown'}`);
173
+ parts.push('');
174
+ // Directory Structure
175
+ if (context.directoryTree) {
176
+ parts.push('### Directory Structure');
177
+ parts.push('```');
178
+ parts.push(context.directoryTree.substring(0, 2000)); // Limit size
179
+ parts.push('```');
180
+ parts.push('');
181
+ }
182
+ // Relevant Files
183
+ if (context.relevantFiles.length > 0) {
184
+ parts.push('### Relevant Files');
185
+ for (const file of context.relevantFiles.slice(0, 15)) {
186
+ parts.push(`- \`${file.path}\` (${file.reason})`);
187
+ }
188
+ parts.push('');
189
+ }
190
+ // Affected Areas
191
+ if (context.affectedAreas.length > 0) {
192
+ parts.push('### Affected Areas');
193
+ parts.push(context.affectedAreas.join(', '));
194
+ parts.push('');
195
+ }
196
+ // Complexity Assessment
197
+ parts.push('## Complexity Assessment');
198
+ parts.push(`- **Mode:** ${complexity.mode}`);
199
+ parts.push(`- **Confidence:** ${complexity.confidence}%`);
200
+ parts.push(`- **Files Affected:** ${complexity.factors.filesAffected}`);
201
+ parts.push(`- **Architectural Change:** ${complexity.factors.architecturalChange}`);
202
+ parts.push(`- **Breaking Changes:** ${complexity.factors.breakingChanges}`);
203
+ parts.push(`- **Risk Level:** ${complexity.factors.riskLevel}/10`);
204
+ parts.push(`- **Reasoning:** ${complexity.reasoning}`);
205
+ parts.push('');
206
+ // Clarifications (if any)
207
+ if (clarifications && clarifications.qaRecords.length > 0) {
208
+ parts.push('## User Clarifications');
209
+ for (const qa of clarifications.qaRecords) {
210
+ parts.push(`**Q:** ${qa.question.question}`);
211
+ const answer = Array.isArray(qa.answer.answer)
212
+ ? qa.answer.answer.join(', ')
213
+ : qa.answer.answer;
214
+ parts.push(`**A:** ${answer}`);
215
+ parts.push('');
216
+ }
217
+ }
218
+ // Git Context
219
+ if (context.gitContext) {
220
+ parts.push('## Git Context');
221
+ parts.push(`- **Current Branch:** ${context.gitContext.currentBranch}`);
222
+ parts.push(`- **Working Directory Clean:** ${context.gitContext.isClean}`);
223
+ if (context.gitContext.uncommittedChanges.length > 0) {
224
+ parts.push(`- **Uncommitted Changes:** ${context.gitContext.uncommittedChanges.length} files`);
225
+ }
226
+ parts.push('');
227
+ }
228
+ // Task
229
+ parts.push('## Task');
230
+ parts.push('Generate a detailed implementation plan as JSON matching this schema:');
231
+ parts.push('```json');
232
+ parts.push(IMPLEMENTATION_PLAN_SCHEMA);
233
+ parts.push('```');
234
+ parts.push('');
235
+ parts.push('Requirements:');
236
+ parts.push('- Create 3-10 specific, actionable tasks');
237
+ parts.push('- Each task should target specific files from this project');
238
+ parts.push('- Include realistic task dependencies');
239
+ parts.push('- Identify concrete risks with mitigations specific to this codebase');
240
+ parts.push('- Be specific to THIS request - do not use generic placeholders');
241
+ parts.push('- File paths should be relative to the project root');
242
+ parts.push('');
243
+ parts.push('Respond with ONLY the JSON object, no other text.');
244
+ return parts.join('\n');
245
+ }
246
+ /**
247
+ * Parses the LLM response into an ImplementationPlan.
248
+ * Handles potential JSON parsing errors and validates the structure.
249
+ */
250
+ function parsePlanResponse(response) {
251
+ // Try to extract JSON from the response (in case there's extra text)
252
+ let jsonStr = response.trim();
253
+ // Remove markdown code blocks if present
254
+ if (jsonStr.startsWith('```json')) {
255
+ jsonStr = jsonStr.slice(7);
256
+ }
257
+ else if (jsonStr.startsWith('```')) {
258
+ jsonStr = jsonStr.slice(3);
259
+ }
260
+ if (jsonStr.endsWith('```')) {
261
+ jsonStr = jsonStr.slice(0, -3);
262
+ }
263
+ jsonStr = jsonStr.trim();
264
+ // Try to parse the JSON
265
+ const parsed = JSON.parse(jsonStr);
266
+ return parsed;
267
+ }
268
+ /**
269
+ * Validates and fills in missing fields in the parsed plan.
270
+ */
271
+ function validateAndFillPlan(partial, userRequest) {
272
+ const id = uuidv4();
273
+ const now = new Date().toISOString();
274
+ // Ensure tasks have proper IDs and order
275
+ const tasks = (partial.tasks || []).map((task, index) => ({
276
+ id: task.id || `task-${uuidv4().slice(0, 8)}`,
277
+ order: task.order || index + 1,
278
+ description: task.description || 'No description',
279
+ targetFiles: task.targetFiles || [],
280
+ targetElements: task.targetElements || [],
281
+ changes: task.changes || '',
282
+ dependencies: task.dependencies || [],
283
+ verificationCriteria: task.verificationCriteria || [],
284
+ complexity: task.complexity || 5,
285
+ requirementRefs: task.requirementRefs || [],
286
+ }));
287
+ // Ensure requirements have IDs
288
+ const requirements = (partial.requirements || []).map((req) => ({
289
+ id: req.id || `req-${uuidv4().slice(0, 8)}`,
290
+ description: req.description || userRequest,
291
+ priority: req.priority || 1,
292
+ source: req.source || 'user',
293
+ }));
294
+ // Default requirement if none provided
295
+ if (requirements.length === 0) {
296
+ requirements.push({
297
+ id: `req-${uuidv4().slice(0, 8)}`,
298
+ description: userRequest,
299
+ priority: 1,
300
+ source: 'user',
301
+ });
302
+ }
303
+ // Ensure edge cases have proper structure
304
+ const edgeCases = (partial.edgeCases || []).map((ec) => ({
305
+ description: ec.description || '',
306
+ handling: ec.handling || '',
307
+ risk: ec.risk || 'medium',
308
+ }));
309
+ // Ensure risks have proper structure
310
+ const risks = (partial.risks || []).map((risk) => ({
311
+ description: risk.description || '',
312
+ severity: risk.severity || 'medium',
313
+ mitigation: risk.mitigation || '',
314
+ rollback: risk.rollback,
315
+ }));
316
+ // Ensure file operations have proper structure
317
+ const fileOperations = (partial.impact?.fileOperations || []).map((op) => ({
318
+ path: op.path || '',
319
+ operation: op.operation || 'create',
320
+ changes: op.changes,
321
+ }));
322
+ // Calculate total complexity from tasks
323
+ const totalComplexity = partial.totalComplexity ||
324
+ Math.round(tasks.reduce((sum, t) => sum + t.complexity, 0) / Math.max(tasks.length, 1));
325
+ // Build summary if not provided
326
+ const summary = partial.summary ||
327
+ `Plan with ${tasks.length} tasks, ${risks.length} risks identified. Total complexity: ${totalComplexity}/10`;
328
+ // Generate title from problem statement if not provided
329
+ const title = partial.title ||
330
+ (partial.problemStatement
331
+ ? partial.problemStatement.split(/[.!?\n]/)[0].trim().substring(0, 80)
332
+ : userRequest.split(/[.!?\n]/)[0].trim().substring(0, 80));
333
+ return {
334
+ id,
335
+ createdAt: now,
336
+ version: 1,
337
+ title,
338
+ problemStatement: partial.problemStatement || userRequest,
339
+ requirements,
340
+ edgeCases,
341
+ constraints: partial.constraints || [],
342
+ assumptions: partial.assumptions || [],
343
+ impact: {
344
+ fileOperations,
345
+ dependenciesAffected: partial.impact?.dependenciesAffected || [],
346
+ breakingChanges: partial.impact?.breakingChanges || [],
347
+ migrations: partial.impact?.migrations,
348
+ },
349
+ tasks,
350
+ risks,
351
+ testing: {
352
+ unitTests: partial.testing?.unitTests || [],
353
+ integrationTests: partial.testing?.integrationTests || [],
354
+ testFiles: partial.testing?.testFiles || [],
355
+ },
356
+ rollbackStrategy: partial.rollbackStrategy || 'Use git to revert changes',
357
+ totalComplexity,
358
+ complexityNote: partial.complexityNote,
359
+ summary,
360
+ };
361
+ }
362
+ /**
363
+ * Generates an implementation plan using Claude AI.
364
+ *
365
+ * @param userRequest - The user's original request
366
+ * @param context - Gathered project context
367
+ * @param complexity - Complexity classification results
368
+ * @param clarifications - Optional clarification results
369
+ * @param toolCallId - Optional tool call ID for status updates
370
+ * @returns A detailed implementation plan
371
+ */
372
+ export async function generatePlanWithLLM(userRequest, context, complexity, clarifications, toolCallId) {
373
+ logger.info('Generating implementation plan with LLM', {
374
+ projectType: context.projectType,
375
+ complexityMode: complexity.mode,
376
+ relevantFiles: context.relevantFiles.length,
377
+ });
378
+ const startTime = Date.now();
379
+ try {
380
+ // Get the Anthropic client
381
+ emitStatus(toolCallId, 'Initializing plan generation...');
382
+ const client = await getAnthropicClient();
383
+ if (!client.isInitialized()) {
384
+ await client.initialize();
385
+ }
386
+ // Build prompts
387
+ emitStatus(toolCallId, 'Analyzing project context...');
388
+ const systemPrompt = buildSystemPrompt();
389
+ const userPrompt = buildUserPrompt(userRequest, context, complexity, clarifications);
390
+ // Stream the response with progress tracking
391
+ emitStatus(toolCallId, 'Generating plan...');
392
+ const progressTracker = new PlanProgressTracker();
393
+ let fullContent = '';
394
+ // Use streaming to track progress
395
+ for await (const response of client.streamMessage([{ role: 'user', content: userPrompt }], {
396
+ system: systemPrompt,
397
+ maxTokens: 8192,
398
+ temperature: 0.4, // Conservative temperature for consistent structured output
399
+ })) {
400
+ if (response.type === 'text' && response.content) {
401
+ fullContent += response.content;
402
+ // Update progress based on streamed content
403
+ const progressMessage = progressTracker.update(response.content);
404
+ if (progressMessage) {
405
+ emitStatus(toolCallId, progressMessage);
406
+ }
407
+ }
408
+ else if (response.type === 'error') {
409
+ throw new Error(response.error || 'Unknown streaming error');
410
+ }
411
+ }
412
+ logger.debug('LLM plan generation response received', {
413
+ contentLength: fullContent.length,
414
+ summary: progressTracker.getSummary(),
415
+ });
416
+ // Parse the response
417
+ emitStatus(toolCallId, 'Parsing plan...');
418
+ const parsedPlan = parsePlanResponse(fullContent);
419
+ // Validate and fill in missing fields
420
+ emitStatus(toolCallId, 'Validating plan structure...');
421
+ const plan = validateAndFillPlan(parsedPlan, userRequest);
422
+ const duration = Date.now() - startTime;
423
+ logger.info('Plan generated successfully', {
424
+ planId: plan.id,
425
+ taskCount: plan.tasks.length,
426
+ riskCount: plan.risks.length,
427
+ totalComplexity: plan.totalComplexity,
428
+ duration: `${duration}ms`,
429
+ });
430
+ return plan;
431
+ }
432
+ catch (error) {
433
+ const errorMessage = error instanceof Error ? error.message : String(error);
434
+ logger.error('Failed to generate plan with LLM', { error: errorMessage });
435
+ // Return a fallback plan on error
436
+ return createFallbackPlan(userRequest, context, complexity, errorMessage);
437
+ }
438
+ }
439
+ /**
440
+ * Creates a fallback plan when LLM generation fails.
441
+ */
442
+ function createFallbackPlan(userRequest, context, complexity, errorReason) {
443
+ logger.warn('Creating fallback plan due to LLM error', { errorReason });
444
+ const id = uuidv4();
445
+ const now = new Date().toISOString();
446
+ return {
447
+ id,
448
+ createdAt: now,
449
+ version: 1,
450
+ title: userRequest.split(/[.!?\n]/)[0].trim().substring(0, 80) || 'Implementation Plan',
451
+ problemStatement: `${userRequest}\n\n[Note: LLM plan generation failed: ${errorReason}. This is a basic fallback plan.]`,
452
+ requirements: [
453
+ {
454
+ id: `req-${uuidv4().slice(0, 8)}`,
455
+ description: userRequest,
456
+ priority: 1,
457
+ source: 'user',
458
+ },
459
+ ],
460
+ edgeCases: [],
461
+ constraints: [`Project type: ${context.projectType || 'unknown'}`],
462
+ assumptions: ['Development environment is properly configured'],
463
+ impact: {
464
+ fileOperations: [],
465
+ dependenciesAffected: [],
466
+ breakingChanges: [],
467
+ },
468
+ tasks: [
469
+ {
470
+ id: `task-${uuidv4().slice(0, 8)}`,
471
+ order: 1,
472
+ description: 'Analyze requirements and existing codebase',
473
+ targetFiles: context.relevantFiles.slice(0, 5).map((f) => f.path),
474
+ targetElements: [],
475
+ changes: 'Review existing code patterns and plan implementation',
476
+ dependencies: [],
477
+ verificationCriteria: ['Requirements understood'],
478
+ complexity: 3,
479
+ requirementRefs: [],
480
+ },
481
+ {
482
+ id: `task-${uuidv4().slice(0, 8)}`,
483
+ order: 2,
484
+ description: 'Implement the requested functionality',
485
+ targetFiles: [],
486
+ targetElements: [],
487
+ changes: userRequest,
488
+ dependencies: [],
489
+ verificationCriteria: ['Functionality works as expected'],
490
+ complexity: complexity.factors.filesAffected > 5 ? 7 : 5,
491
+ requirementRefs: [],
492
+ },
493
+ {
494
+ id: `task-${uuidv4().slice(0, 8)}`,
495
+ order: 3,
496
+ description: 'Test and verify implementation',
497
+ targetFiles: [],
498
+ targetElements: [],
499
+ changes: 'Write tests and verify functionality',
500
+ dependencies: [],
501
+ verificationCriteria: ['All tests pass'],
502
+ complexity: 3,
503
+ requirementRefs: [],
504
+ },
505
+ ],
506
+ risks: [
507
+ {
508
+ description: 'LLM plan generation failed - using basic fallback plan',
509
+ severity: 'medium',
510
+ mitigation: 'Proceed carefully and verify each step manually',
511
+ rollback: 'Use git to revert changes if needed',
512
+ },
513
+ ],
514
+ testing: {
515
+ unitTests: ['Test new functionality'],
516
+ integrationTests: [],
517
+ testFiles: [],
518
+ },
519
+ rollbackStrategy: 'Use git to revert all changes',
520
+ totalComplexity: complexity.factors.riskLevel,
521
+ summary: `Fallback plan for: ${userRequest.substring(0, 100)}...`,
522
+ };
523
+ }
524
+ /**
525
+ * Builds the user prompt for plan adoption.
526
+ * Uses the user's structured input as the plan source.
527
+ */
528
+ function buildAdoptionUserPrompt(userProvidedPlan, context, adoptedPlanSummary) {
529
+ const parts = [];
530
+ // User's Plan (the source of truth)
531
+ parts.push('## User-Provided Plan');
532
+ parts.push('The following is the user\'s structured plan. PRESERVE this structure:');
533
+ parts.push('');
534
+ parts.push(userProvidedPlan);
535
+ parts.push('');
536
+ if (adoptedPlanSummary) {
537
+ parts.push('## Detected Structure');
538
+ parts.push(adoptedPlanSummary);
539
+ parts.push('');
540
+ }
541
+ // Project Context (for enrichment)
542
+ parts.push('## Project Context (use to enrich the plan)');
543
+ parts.push(`**Project Root:** ${context.projectRoot}`);
544
+ parts.push(`**Project Type:** ${context.projectType || 'unknown'}`);
545
+ parts.push(`**Languages:** ${context.languages.join(', ') || 'unknown'}`);
546
+ parts.push('');
547
+ // Directory Structure
548
+ if (context.directoryTree) {
549
+ parts.push('### Directory Structure');
550
+ parts.push('```');
551
+ parts.push(context.directoryTree.substring(0, 2000));
552
+ parts.push('```');
553
+ parts.push('');
554
+ }
555
+ // Relevant Files
556
+ if (context.relevantFiles.length > 0) {
557
+ parts.push('### Relevant Files (use to populate targetFiles)');
558
+ for (const file of context.relevantFiles.slice(0, 15)) {
559
+ parts.push(`- \`${file.path}\` (${file.reason})`);
560
+ }
561
+ parts.push('');
562
+ }
563
+ // Affected Areas
564
+ if (context.affectedAreas.length > 0) {
565
+ parts.push('### Affected Areas');
566
+ parts.push(context.affectedAreas.join(', '));
567
+ parts.push('');
568
+ }
569
+ // Git Context
570
+ if (context.gitContext) {
571
+ parts.push('## Git Context');
572
+ parts.push(`- **Current Branch:** ${context.gitContext.currentBranch}`);
573
+ parts.push(`- **Working Directory Clean:** ${context.gitContext.isClean}`);
574
+ parts.push('');
575
+ }
576
+ // Task Instructions
577
+ parts.push('## Your Task');
578
+ parts.push('Convert the user\'s plan above into valid JSON matching this schema:');
579
+ parts.push('```json');
580
+ parts.push(IMPLEMENTATION_PLAN_SCHEMA);
581
+ parts.push('```');
582
+ parts.push('');
583
+ parts.push('REMEMBER:');
584
+ parts.push('- PRESERVE the user\'s task descriptions and order');
585
+ parts.push('- ADD technical details (IDs, file paths, dependencies, complexity scores)');
586
+ parts.push('- DO NOT add, remove, or restructure tasks');
587
+ parts.push('- Use project context to populate targetFiles accurately');
588
+ parts.push('');
589
+ parts.push('Respond with ONLY the JSON object, no other text.');
590
+ return parts.join('\n');
591
+ }
592
+ /**
593
+ * Adopts a user-provided plan by validating and enriching it with technical details.
594
+ * Uses PLAN_ADOPT mode - preserves user's task structure, adds IDs/files/dependencies.
595
+ *
596
+ * @param userProvidedPlan - The user's structured plan input
597
+ * @param context - Gathered project context
598
+ * @param adoptedPlanSummary - Optional summary from classification of what was detected
599
+ * @param toolCallId - Optional tool call ID for status updates
600
+ * @returns An enriched implementation plan preserving user's structure
601
+ */
602
+ export async function adoptPlanWithLLM(userProvidedPlan, context, adoptedPlanSummary, toolCallId) {
603
+ logger.info('Adopting user-provided plan with LLM enrichment', {
604
+ projectType: context.projectType,
605
+ planLength: userProvidedPlan.length,
606
+ relevantFiles: context.relevantFiles.length,
607
+ });
608
+ const startTime = Date.now();
609
+ try {
610
+ // Get the Anthropic client
611
+ emitStatus(toolCallId, 'Initializing plan adoption...');
612
+ const client = await getAnthropicClient();
613
+ if (!client.isInitialized()) {
614
+ await client.initialize();
615
+ }
616
+ // Build prompts - use adoption-specific prompt
617
+ emitStatus(toolCallId, 'Validating user plan structure...');
618
+ const systemPrompt = PLAN_ADOPTION_SYSTEM_PROMPT;
619
+ const userPrompt = buildAdoptionUserPrompt(userProvidedPlan, context, adoptedPlanSummary);
620
+ // Stream the response with progress tracking
621
+ emitStatus(toolCallId, 'Enriching plan with technical details...');
622
+ const progressTracker = new PlanProgressTracker();
623
+ let fullContent = '';
624
+ // Use streaming to track progress
625
+ for await (const response of client.streamMessage([{ role: 'user', content: userPrompt }], {
626
+ system: systemPrompt,
627
+ maxTokens: 8192,
628
+ temperature: 0.3, // Lower temperature for adoption - preserve structure
629
+ })) {
630
+ if (response.type === 'text' && response.content) {
631
+ fullContent += response.content;
632
+ // Update progress based on streamed content
633
+ const progressMessage = progressTracker.update(response.content);
634
+ if (progressMessage) {
635
+ emitStatus(toolCallId, progressMessage);
636
+ }
637
+ }
638
+ else if (response.type === 'error') {
639
+ throw new Error(response.error || 'Unknown streaming error');
640
+ }
641
+ }
642
+ logger.debug('LLM plan adoption response received', {
643
+ contentLength: fullContent.length,
644
+ summary: progressTracker.getSummary(),
645
+ });
646
+ // Parse the response
647
+ emitStatus(toolCallId, 'Parsing adopted plan...');
648
+ const parsedPlan = parsePlanResponse(fullContent);
649
+ // Validate and fill in missing fields
650
+ emitStatus(toolCallId, 'Validating plan structure...');
651
+ const plan = validateAndFillPlan(parsedPlan, userProvidedPlan);
652
+ const duration = Date.now() - startTime;
653
+ logger.info('Plan adopted successfully', {
654
+ planId: plan.id,
655
+ taskCount: plan.tasks.length,
656
+ totalComplexity: plan.totalComplexity,
657
+ duration: `${duration}ms`,
658
+ });
659
+ return plan;
660
+ }
661
+ catch (error) {
662
+ const errorMessage = error instanceof Error ? error.message : String(error);
663
+ logger.error('Failed to adopt plan with LLM', { error: errorMessage });
664
+ // Return a fallback plan based on basic parsing of user input
665
+ return createAdoptionFallbackPlan(userProvidedPlan, context, errorMessage);
666
+ }
667
+ }
668
+ /**
669
+ * Creates a fallback plan when LLM adoption fails.
670
+ * Attempts basic parsing of user's structured input.
671
+ */
672
+ function createAdoptionFallbackPlan(userProvidedPlan, context, errorReason) {
673
+ logger.warn('Creating adoption fallback plan due to LLM error', { errorReason });
674
+ const id = uuidv4();
675
+ const now = new Date().toISOString();
676
+ // Basic extraction of numbered items from user input
677
+ const lines = userProvidedPlan.split('\n');
678
+ const tasks = [];
679
+ let taskOrder = 0;
680
+ for (const line of lines) {
681
+ const trimmed = line.trim();
682
+ // Match numbered items like "1.", "2.", "1)", "2)", "- ", "* "
683
+ const match = trimmed.match(/^(?:(\d+)[.)]|\s*[-*])\s*(.+)/);
684
+ if (match && match[2]) {
685
+ taskOrder++;
686
+ tasks.push({
687
+ id: `task-${uuidv4().slice(0, 8)}`,
688
+ order: taskOrder,
689
+ description: match[2].trim(),
690
+ targetFiles: [],
691
+ targetElements: [],
692
+ changes: match[2].trim(),
693
+ dependencies: taskOrder > 1 ? [`task-${tasks[tasks.length - 1]?.id || ''}`] : [],
694
+ verificationCriteria: ['Task completed as described'],
695
+ complexity: 5,
696
+ requirementRefs: [],
697
+ });
698
+ }
699
+ }
700
+ // If no tasks extracted, create a single task from the whole input
701
+ if (tasks.length === 0) {
702
+ tasks.push({
703
+ id: `task-${uuidv4().slice(0, 8)}`,
704
+ order: 1,
705
+ description: userProvidedPlan.substring(0, 200),
706
+ targetFiles: context.relevantFiles.slice(0, 3).map((f) => f.path),
707
+ targetElements: [],
708
+ changes: userProvidedPlan,
709
+ dependencies: [],
710
+ verificationCriteria: ['Implementation matches user specification'],
711
+ complexity: 5,
712
+ requirementRefs: [],
713
+ });
714
+ }
715
+ return {
716
+ id,
717
+ createdAt: now,
718
+ version: 1,
719
+ title: `Adopted Plan (${tasks.length} tasks)`,
720
+ problemStatement: `${userProvidedPlan.substring(0, 500)}\n\n[Note: LLM adoption failed: ${errorReason}. Tasks extracted via basic parsing.]`,
721
+ requirements: [
722
+ {
723
+ id: `req-${uuidv4().slice(0, 8)}`,
724
+ description: 'Implement user-provided plan',
725
+ priority: 1,
726
+ source: 'user',
727
+ },
728
+ ],
729
+ edgeCases: [],
730
+ constraints: [`Project type: ${context.projectType || 'unknown'}`],
731
+ assumptions: ['User-provided plan is complete and accurate'],
732
+ impact: {
733
+ fileOperations: [],
734
+ dependenciesAffected: [],
735
+ breakingChanges: [],
736
+ },
737
+ tasks,
738
+ risks: [
739
+ {
740
+ description: 'LLM plan adoption failed - tasks extracted via basic parsing',
741
+ severity: 'medium',
742
+ mitigation: 'Review extracted tasks for accuracy before proceeding',
743
+ rollback: 'Use git to revert changes if needed',
744
+ },
745
+ ],
746
+ testing: {
747
+ unitTests: [],
748
+ integrationTests: [],
749
+ testFiles: [],
750
+ },
751
+ rollbackStrategy: 'Use git to revert all changes',
752
+ totalComplexity: Math.min(tasks.length + 2, 10),
753
+ summary: `Adopted plan with ${tasks.length} tasks extracted from user input`,
754
+ };
755
+ }
756
+ /**
757
+ * Modifies an existing plan using the LLM.
758
+ * Preserves completed tasks and only updates affected portions.
759
+ *
760
+ * @param existingPlan - The current plan to modify
761
+ * @param modificationRequest - Description of what changes to make
762
+ * @param context - Gathered project context
763
+ * @param completedTaskIds - IDs of tasks already completed
764
+ * @param preserveCompleted - Whether to preserve completed tasks (default: true)
765
+ * @param toolCallId - Optional tool call ID for status updates
766
+ * @returns The updated implementation plan
767
+ */
768
+ export async function modifyPlanWithLLM(existingPlan, modificationRequest, context, completedTaskIds, preserveCompleted = true, toolCallId, skipContextInjection = false) {
769
+ logger.info('Modifying existing plan with LLM', {
770
+ planId: existingPlan.id,
771
+ currentVersion: existingPlan.version,
772
+ completedTasks: completedTaskIds.length,
773
+ modificationRequest: modificationRequest.substring(0, 100),
774
+ skipContextInjection,
775
+ });
776
+ const startTime = Date.now();
777
+ try {
778
+ // Get the Anthropic client
779
+ emitStatus(toolCallId, 'Analyzing modification request...');
780
+ const client = await getAnthropicClient();
781
+ if (!client.isInitialized()) {
782
+ await client.initialize();
783
+ }
784
+ // Build prompts — use lightweight version when plan is already in conversation
785
+ const systemPrompt = PLAN_MODIFICATION_SYSTEM_PROMPT;
786
+ let userPrompt;
787
+ if (skipContextInjection) {
788
+ logger.info('Using lightweight plan modification prompt (skipping context re-injection)');
789
+ userPrompt = buildLightweightPlanModificationPrompt(existingPlan, modificationRequest, completedTaskIds, preserveCompleted);
790
+ }
791
+ else {
792
+ userPrompt = buildPlanModificationUserPrompt(existingPlan, modificationRequest, {
793
+ projectRoot: context.projectRoot,
794
+ projectType: context.projectType,
795
+ languages: context.languages,
796
+ directoryTree: context.directoryTree,
797
+ relevantFiles: context.relevantFiles.map((f) => ({ path: f.path, reason: f.reason })),
798
+ affectedAreas: context.affectedAreas,
799
+ gitContext: context.gitContext,
800
+ }, completedTaskIds, preserveCompleted);
801
+ }
802
+ // Stream the response with progress tracking
803
+ emitStatus(toolCallId, 'Generating updated plan...');
804
+ const progressTracker = new PlanProgressTracker();
805
+ let fullContent = '';
806
+ // Use streaming to track progress
807
+ for await (const response of client.streamMessage([{ role: 'user', content: userPrompt }], {
808
+ system: systemPrompt,
809
+ maxTokens: 8192,
810
+ temperature: 0.4, // Balanced temperature for modification
811
+ })) {
812
+ if (response.type === 'text' && response.content) {
813
+ fullContent += response.content;
814
+ // Update progress based on streamed content
815
+ const progressMessage = progressTracker.update(response.content);
816
+ if (progressMessage) {
817
+ emitStatus(toolCallId, progressMessage);
818
+ }
819
+ }
820
+ else if (response.type === 'error') {
821
+ throw new Error(response.error || 'Unknown streaming error');
822
+ }
823
+ }
824
+ logger.debug('LLM plan modification response received', {
825
+ contentLength: fullContent.length,
826
+ summary: progressTracker.getSummary(),
827
+ });
828
+ // Parse the response
829
+ emitStatus(toolCallId, 'Parsing modified plan...');
830
+ const parsedPlan = parsePlanResponse(fullContent);
831
+ // Validate and fill in missing fields
832
+ emitStatus(toolCallId, 'Validating plan structure...');
833
+ const updatedPlan = validateAndFillPlan(parsedPlan, modificationRequest);
834
+ // Preserve original ID and increment version
835
+ updatedPlan.id = existingPlan.id;
836
+ updatedPlan.version = existingPlan.version + 1;
837
+ const duration = Date.now() - startTime;
838
+ logger.info('Plan modified successfully', {
839
+ planId: updatedPlan.id,
840
+ previousVersion: existingPlan.version,
841
+ newVersion: updatedPlan.version,
842
+ taskCount: updatedPlan.tasks.length,
843
+ duration: `${duration}ms`,
844
+ });
845
+ emitStatus(toolCallId, `Plan updated to version ${updatedPlan.version}`);
846
+ return updatedPlan;
847
+ }
848
+ catch (error) {
849
+ const errorMessage = error instanceof Error ? error.message : String(error);
850
+ logger.error('Failed to modify plan with LLM', { error: errorMessage });
851
+ // Return original plan with error note in assumptions
852
+ const fallbackPlan = {
853
+ ...existingPlan,
854
+ version: existingPlan.version + 1,
855
+ assumptions: [
856
+ ...(existingPlan.assumptions || []),
857
+ `[MODIFICATION FAILED] ${errorMessage} - Original plan preserved`,
858
+ ],
859
+ };
860
+ return fallbackPlan;
861
+ }
862
+ }
863
+ //# sourceMappingURL=llm-plan-generator.js.map