@compass-ai/nova 1.0.73 → 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 (973) 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 +1 -1
@@ -0,0 +1,795 @@
1
+ /**
2
+ * ACP Agent - Core implementation of the Agent Client Protocol.
3
+ *
4
+ * Implements the ACP protocol methods including session management,
5
+ * prompt handling, and model/mode switching.
6
+ */
7
+ import { logger } from '../utils/logger.js';
8
+ import { getACPSessionManager } from './session-manager.js';
9
+ import { createACPToolBridge } from './tool-bridge.js';
10
+ import { createACPEventAdapter } from './event-adapter.js';
11
+ import { runSDKQuery } from '../services/sdk-runner.js';
12
+ import { getConfigManager } from '../services/config-manager.js';
13
+ import { getCredentialStore } from '../services/credential-store.js';
14
+ import { getCompassAuthService } from '../services/compass-auth-service.js';
15
+ import { getAvailableModels } from '../constants/models.js';
16
+ import { getModeConfig, getAvailableModes } from './modes.js';
17
+ const log = logger.child('ACPAgent');
18
+ /**
19
+ * Protocol version supported by this implementation.
20
+ */
21
+ const PROTOCOL_VERSION = 1;
22
+ /**
23
+ * Agent information.
24
+ */
25
+ const AGENT_INFO = {
26
+ name: 'kore-cli',
27
+ version: '1.0.0',
28
+ };
29
+ /**
30
+ * Build terminal auth args based on how the process was invoked.
31
+ *
32
+ * When JetBrains triggers terminal auth it runs: `<command> <auth-args>`
33
+ * where `command` comes from acp.json. If command is `npx`, we need the
34
+ * package specifier before "setup" so that `npx @compass-ai/nova@x.y.z setup`
35
+ * is executed instead of the broken `npx setup`.
36
+ */
37
+ function buildTerminalAuthArgs() {
38
+ // npm sets npm_command=exec when running via npx
39
+ if (process.env.npm_command === 'exec') {
40
+ const pkg = process.env.npm_package_name ?? '@compass-ai/nova';
41
+ const ver = process.env.npm_package_version;
42
+ const specifier = ver ? `${pkg}@${ver}` : pkg;
43
+ return [specifier, 'setup'];
44
+ }
45
+ return ['setup'];
46
+ }
47
+ /**
48
+ * Default terminal auth method advertised to ACP clients.
49
+ * JetBrains renders a native "Nova Setup" button from this.
50
+ *
51
+ * - `type: "terminal"` → JetBrains spawns the agent binary with `args` in a terminal
52
+ * - `args` are built dynamically to handle both direct invocation and npx
53
+ * - Returned both in `initialize` response and in `session/new` error.data
54
+ */
55
+ const TERMINAL_AUTH_METHOD = {
56
+ id: 'kore-terminal-auth',
57
+ type: 'terminal',
58
+ name: 'Nova Setup',
59
+ description: 'Complete interactive setup in the terminal to configure API keys',
60
+ args: buildTerminalAuthArgs(),
61
+ env: {},
62
+ };
63
+ /**
64
+ * Classifies an error message into a machine-readable error code and optional metadata.
65
+ * Used to send structured ACP error session updates instead of plain text.
66
+ */
67
+ function classifyError(error) {
68
+ // Token limit errors (aggregate or per-model)
69
+ const tokenLimitMatch = error.match(/(?:Aggregate t|T)oken limit exceeded.*?Used ([\d\s\u00a0,]+)\s*\/\s*([\d\s\u00a0,]+)/i);
70
+ if (tokenLimitMatch) {
71
+ const used = parseInt(tokenLimitMatch[1].replace(/[\s\u00a0,]/g, ''), 10);
72
+ const limit = parseInt(tokenLimitMatch[2].replace(/[\s\u00a0,]/g, ''), 10);
73
+ return {
74
+ errorCode: 'TOKEN_LIMIT_EXCEEDED',
75
+ metadata: { used, limit, windowHours: 6 },
76
+ };
77
+ }
78
+ // Model disabled / unavailable
79
+ if (error.includes('not available') || error.includes('not enabled') || error.includes('disabled')) {
80
+ return { errorCode: 'MODEL_UNAVAILABLE' };
81
+ }
82
+ // Auth errors
83
+ if (error.includes('Authentication') || error.includes('API key') || error.includes('unauthorized')) {
84
+ return { errorCode: 'AUTH_ERROR' };
85
+ }
86
+ return { errorCode: 'INTERNAL_ERROR' };
87
+ }
88
+ /**
89
+ * ACP Agent class.
90
+ * Implements the Agent Client Protocol for integration with ACP clients.
91
+ */
92
+ export class ACPAgent {
93
+ /** ACP connection */
94
+ connection = null;
95
+ /** Configuration */
96
+ config;
97
+ /** Session manager */
98
+ sessionManager;
99
+ /** Tool bridges per session */
100
+ toolBridges = new Map();
101
+ /** Event adapters per session */
102
+ eventAdapters = new Map();
103
+ /** Abort controllers per session */
104
+ abortControllers = new Map();
105
+ /** Whether the client has successfully authenticated */
106
+ authenticated = false;
107
+ /**
108
+ * Checks credentials and throws an ACP auth error if none are configured.
109
+ *
110
+ * IMPORTANT (JetBrains ACP integration):
111
+ * - This MUST gate `session/new` (not just `prompt`). JetBrains only renders
112
+ * the "Nova Setup" button when session creation fails with an auth error
113
+ * containing `data.authMethods`. It does NOT check prompt-level errors.
114
+ * - The `authMethods` array must be placed inside `error.data` (JSON-RPC 2.0
115
+ * compliant), not as a top-level sibling of `code`/`message`.
116
+ * - The auth method `type` must be `"terminal"` for JetBrains to show the
117
+ * native terminal setup button.
118
+ */
119
+ async ensureAuthenticated() {
120
+ if (this.authenticated)
121
+ return;
122
+ const credentialStore = await getCredentialStore();
123
+ if (await credentialStore.hasApiKey()) {
124
+ this.authenticated = true;
125
+ return;
126
+ }
127
+ log.warn('Request rejected: no credentials configured');
128
+ const error = new Error('Click Nova Setup to configure your API keys');
129
+ error.code = -32000;
130
+ error.authMethods = [TERMINAL_AUTH_METHOD];
131
+ throw error;
132
+ }
133
+ /**
134
+ * Creates a new ACPAgent instance.
135
+ *
136
+ * @param config - Agent configuration
137
+ * @param sessionManager - Optional custom session manager
138
+ */
139
+ constructor(config, sessionManager) {
140
+ this.config = config;
141
+ this.sessionManager = sessionManager ?? getACPSessionManager();
142
+ }
143
+ /**
144
+ * Sets the ACP connection.
145
+ *
146
+ * @param connection - ACP connection
147
+ */
148
+ setConnection(connection) {
149
+ this.connection = connection;
150
+ }
151
+ /**
152
+ * Handles the initialize request.
153
+ *
154
+ * @param params - Initialize request parameters
155
+ * @returns Initialize response
156
+ */
157
+ async initialize(params) {
158
+ log.info('Initialize', {
159
+ protocolVersion: params.protocolVersion,
160
+ clientAuthTerminal: params.clientCapabilities?.auth?.terminal,
161
+ });
162
+ // Check if user has valid credentials
163
+ const credentialStore = await getCredentialStore();
164
+ const hasCredentials = await credentialStore.hasApiKey();
165
+ // Advertise auth methods when credentials are missing or explicitly required.
166
+ // Note: JetBrains renders the setup button from initialize authMethods but does
167
+ // NOT declare auth.terminal in clientCapabilities, so we advertise unconditionally.
168
+ const requireAuth = process.env.ACP_REQUIRE_AUTH === 'true';
169
+ const shouldAdvertiseAuth = requireAuth || !hasCredentials;
170
+ const authMethods = [];
171
+ if (shouldAdvertiseAuth) {
172
+ authMethods.push(TERMINAL_AUTH_METHOD);
173
+ }
174
+ return {
175
+ protocolVersion: PROTOCOL_VERSION,
176
+ agentCapabilities: {
177
+ loadSession: true,
178
+ mcpCapabilities: {
179
+ http: true,
180
+ sse: true,
181
+ },
182
+ promptCapabilities: {
183
+ embeddedContext: true,
184
+ image: true,
185
+ },
186
+ sessionCapabilities: {
187
+ fork: {},
188
+ list: {},
189
+ resume: {},
190
+ },
191
+ },
192
+ authMethods,
193
+ agentInfo: AGENT_INFO,
194
+ };
195
+ }
196
+ /**
197
+ * Handles authentication request.
198
+ * Currently stubbed for MVP.
199
+ *
200
+ * @param params - Authentication request
201
+ * @returns Authentication response
202
+ */
203
+ async authenticate(params) {
204
+ log.info('Authenticate request', { methodId: params.methodId });
205
+ // Check if user has valid credentials in the credential store
206
+ const credentialStore = await getCredentialStore();
207
+ const hasCredentials = await credentialStore.hasApiKey();
208
+ // Development mode bypass (for testing without auth)
209
+ if (process.env.ACP_REQUIRE_AUTH !== 'true' && hasCredentials) {
210
+ // Validate Compass API key to populate plan status, plan type, and super-user flag.
211
+ // Without this, CompassAuthService defaults to 'no_subscription' and enforces
212
+ // the 150k token limit even for Enterprise subscribers.
213
+ try {
214
+ const compassKey = await credentialStore.getCompassApiKey();
215
+ if (compassKey) {
216
+ const compassAuth = getCompassAuthService();
217
+ await compassAuth.validateApiKey(compassKey);
218
+ log.info('Compass API key validated', {
219
+ planStatus: compassAuth.getPlanStatus(),
220
+ planType: compassAuth.getPlanType(),
221
+ superUser: compassAuth.isSuperUser(),
222
+ });
223
+ }
224
+ }
225
+ catch (compassError) {
226
+ log.warn('Failed to validate Compass API key, continuing with default limits', compassError);
227
+ // Non-fatal — proceed with no_subscription limits
228
+ }
229
+ log.info('Authentication successful (credentials found)');
230
+ this.authenticated = true;
231
+ return {
232
+ success: true,
233
+ message: 'Authentication successful',
234
+ };
235
+ }
236
+ // If no credentials and auth is required, return AUTH_REQUIRED with terminal config
237
+ if (!hasCredentials) {
238
+ log.info('No credentials found, returning AUTH_REQUIRED');
239
+ return {
240
+ success: false,
241
+ error: 'Authentication required. Please run setup to configure API keys.',
242
+ errorCode: 'AUTH_REQUIRED',
243
+ };
244
+ }
245
+ // If API key provided in request, validate it
246
+ const apiKey = params.credentials?.apiKey;
247
+ if (apiKey) {
248
+ // Store the provided API key
249
+ const isValidFormat = credentialStore.validateApiKeyFormat(apiKey);
250
+ if (!isValidFormat) {
251
+ return {
252
+ success: false,
253
+ error: 'Invalid API key format',
254
+ errorCode: 'INVALID_CREDENTIALS',
255
+ };
256
+ }
257
+ // Store the key for future use
258
+ await credentialStore.setApiKey(apiKey);
259
+ log.info('API key stored successfully');
260
+ this.authenticated = true;
261
+ return {
262
+ success: true,
263
+ message: 'Authentication successful - API key stored',
264
+ };
265
+ }
266
+ // Credentials exist in store
267
+ this.authenticated = true;
268
+ return {
269
+ success: true,
270
+ message: 'Authentication successful',
271
+ };
272
+ }
273
+ /**
274
+ * Creates a new session.
275
+ *
276
+ * @param params - New session request
277
+ * @returns New session response
278
+ */
279
+ async newSession(params) {
280
+ const { cwd, mcpServers } = params;
281
+ log.info('Creating new session', { cwd, mcpServers: mcpServers.length });
282
+ // Gate session creation on credentials — see ensureAuthenticated() for why
283
+ // this must happen here and not just in prompt()
284
+ await this.ensureAuthenticated();
285
+ // Create session
286
+ const session = await this.sessionManager.create(cwd, this.config.defaultModel, mcpServers);
287
+ // Initialize tool bridge and event adapter for this session
288
+ this.initializeSessionComponents(session);
289
+ // Load session capabilities
290
+ const capabilities = await this.loadSessionCapabilities(session);
291
+ return {
292
+ sessionId: session.id,
293
+ models: capabilities.models,
294
+ modes: capabilities.modes,
295
+ _meta: {},
296
+ };
297
+ }
298
+ /**
299
+ * Loads an existing session.
300
+ *
301
+ * @param params - Load session request
302
+ * @returns Session response with models and modes
303
+ */
304
+ async loadSession(params) {
305
+ const { sessionId, cwd, mcpServers } = params;
306
+ log.info('Loading session', { sessionId, cwd, mcpServers: mcpServers.length });
307
+ // Gate session loading on credentials (consistent with newSession)
308
+ // Enabling this code breaks JetBrains session loading flow because JetBrains does not check prompt-level errors.
309
+ //await this.ensureAuthenticated();
310
+ // Load session
311
+ const session = await this.sessionManager.load(sessionId, cwd, mcpServers, this.config.defaultModel);
312
+ // Initialize components
313
+ this.initializeSessionComponents(session);
314
+ // Load capabilities
315
+ const capabilities = await this.loadSessionCapabilities(session);
316
+ // Replay session history AFTER returning the response to avoid deadlock:
317
+ // replaySessionHistory awaits writes to stdout, but the client may not read
318
+ // those notifications until it receives the loadSession response. If stdout
319
+ // buffers fill up, both sides block forever.
320
+ if (session.conversationHistory && session.conversationHistory.length > 0) {
321
+ const sessionCopy = session;
322
+ setImmediate(() => {
323
+ this.replaySessionHistory(sessionCopy).catch((err) => {
324
+ log.error('Failed to replay session history', { error: err });
325
+ });
326
+ });
327
+ }
328
+ return {
329
+ sessionId: session.id,
330
+ models: capabilities.models,
331
+ modes: capabilities.modes,
332
+ _meta: {},
333
+ };
334
+ }
335
+ /**
336
+ * Lists available sessions.
337
+ *
338
+ * @param params - List sessions request
339
+ * @returns List of sessions
340
+ */
341
+ async listSessions(params) {
342
+ const sessions = await this.sessionManager.list(params.cwd);
343
+ const limit = 100;
344
+ // Parse cursor for pagination
345
+ let startIndex = 0;
346
+ if (params.cursor) {
347
+ startIndex = parseInt(params.cursor, 10) || 0;
348
+ }
349
+ const page = sessions.slice(startIndex, startIndex + limit);
350
+ const entries = page.map(session => ({
351
+ sessionId: session.id,
352
+ cwd: session.workingDir,
353
+ title: `Session ${session.id.substring(0, 8)}`,
354
+ updatedAt: session.lastActivity.toISOString(),
355
+ }));
356
+ const response = {
357
+ sessions: entries,
358
+ };
359
+ if (startIndex + limit < sessions.length) {
360
+ response.nextCursor = String(startIndex + limit);
361
+ }
362
+ return response;
363
+ }
364
+ /**
365
+ * Forks an existing session.
366
+ *
367
+ * @param params - Fork session request
368
+ * @returns Forked session response
369
+ */
370
+ async forkSession(params) {
371
+ const { sessionId, cwd, mcpServers = [] } = params;
372
+ log.info('Forking session', { sessionId, cwd });
373
+ // Fork session
374
+ const forked = await this.sessionManager.fork(sessionId, cwd, mcpServers);
375
+ // Initialize components
376
+ this.initializeSessionComponents(forked);
377
+ // Load capabilities
378
+ const capabilities = await this.loadSessionCapabilities(forked);
379
+ // Replay history after returning the response (same deadlock prevention as loadSession)
380
+ if (forked.conversationHistory && forked.conversationHistory.length > 0) {
381
+ const forkedCopy = forked;
382
+ setImmediate(() => {
383
+ this.replaySessionHistory(forkedCopy).catch((err) => {
384
+ log.error('Failed to replay forked session history', { error: err });
385
+ });
386
+ });
387
+ }
388
+ return {
389
+ sessionId: forked.id,
390
+ models: capabilities.models,
391
+ modes: capabilities.modes,
392
+ _meta: {},
393
+ };
394
+ }
395
+ /**
396
+ * Resumes a session without replaying history.
397
+ *
398
+ * @param params - Resume session request
399
+ * @returns Session response
400
+ */
401
+ async resumeSession(params) {
402
+ const { sessionId, cwd, mcpServers = [] } = params;
403
+ log.info('Resuming session', { sessionId, cwd });
404
+ // Load session without replay
405
+ const session = await this.sessionManager.load(sessionId, cwd, mcpServers, this.config.defaultModel);
406
+ // Initialize components
407
+ this.initializeSessionComponents(session);
408
+ // Load capabilities
409
+ const capabilities = await this.loadSessionCapabilities(session);
410
+ return {
411
+ sessionId: session.id,
412
+ models: capabilities.models,
413
+ modes: capabilities.modes,
414
+ _meta: {},
415
+ };
416
+ }
417
+ /**
418
+ * Handles a prompt request.
419
+ * Uses the SDK runner to leverage existing CLI functionality including tools,
420
+ * system prompt, and agentic loop.
421
+ *
422
+ * @param params - Prompt request
423
+ * @returns Prompt response
424
+ */
425
+ async prompt(params) {
426
+ const { sessionId, prompt } = params;
427
+ log.info('Processing prompt', { sessionId, parts: prompt.length });
428
+ const session = this.sessionManager.get(sessionId);
429
+ const eventAdapter = this.eventAdapters.get(sessionId);
430
+ // Check credentials before processing prompt
431
+ await this.ensureAuthenticated();
432
+ // Convert ACP prompt parts to text content
433
+ const textParts = [];
434
+ for (const part of prompt) {
435
+ switch (part.type) {
436
+ case 'text':
437
+ if (part.text) {
438
+ textParts.push(part.text);
439
+ }
440
+ break;
441
+ case 'image':
442
+ // Image parts require embedded data or a resolvable URI.
443
+ // When neither is present, surface a clear error instead of
444
+ // silently sending an empty query to the model.
445
+ if (part.data) {
446
+ textParts.push(`[Image: base64 data, mime=${part.mimeType ?? 'unknown'}]`);
447
+ }
448
+ else if (part.uri) {
449
+ textParts.push(`[Image: ${part.uri}]`);
450
+ }
451
+ break;
452
+ case 'resource_link':
453
+ if (part.uri) {
454
+ textParts.push(`[Resource: ${part.name ?? part.uri}]`);
455
+ }
456
+ break;
457
+ case 'resource':
458
+ if (part.resource?.text) {
459
+ textParts.push(part.resource.text);
460
+ }
461
+ else if (part.resource?.uri) {
462
+ textParts.push(`[Resource: ${part.resource.uri}]`);
463
+ }
464
+ break;
465
+ default:
466
+ log.warn('Unknown prompt part type, skipping', { type: part.type });
467
+ break;
468
+ }
469
+ }
470
+ const textContent = textParts.join('\n').trim();
471
+ if (!textContent) {
472
+ log.warn('Prompt has no usable text content', { sessionId, parts: prompt.length });
473
+ throw new Error('Prompt is empty: no text content could be extracted from the provided parts');
474
+ }
475
+ // Check for slash command
476
+ if (textContent.startsWith('/')) {
477
+ const [cmdName, ...rest] = textContent.slice(1).split(/\s+/);
478
+ const cmdArgs = rest.join(' ').trim();
479
+ // Handle built-in commands
480
+ const handled = await this.handleSlashCommand(session, cmdName, cmdArgs);
481
+ if (handled) {
482
+ return {
483
+ stopReason: 'end_turn',
484
+ _meta: {},
485
+ };
486
+ }
487
+ }
488
+ // Create abort controller for this prompt
489
+ const abortController = new AbortController();
490
+ this.abortControllers.set(sessionId, abortController);
491
+ // Track stop reason - always 'end_turn' since tools are executed within the agentic loop
492
+ const stopReason = 'end_turn';
493
+ // Create SDK runner callbacks that bridge to ACP event adapter
494
+ const callbacks = {
495
+ onTextChunk: (chunk) => {
496
+ if (eventAdapter) {
497
+ eventAdapter.sendAgentMessageChunk(chunk).catch((err) => {
498
+ log.error('Error sending text chunk', { error: err });
499
+ });
500
+ }
501
+ },
502
+ onToolStart: (toolName, toolId, input) => {
503
+ // Note: Tool events are also captured by the event adapter's setupOutboundMappings
504
+ // via the kore event emitter, but we log here for debugging
505
+ log.debug('Tool started', { toolName, toolId, input });
506
+ },
507
+ onToolComplete: (toolName, toolId, _result, success, error) => {
508
+ // Note: Tool completion events are handled by the event adapter
509
+ log.debug('Tool completed', { toolName, toolId, success, error });
510
+ },
511
+ onStatusUpdate: (status) => {
512
+ log.debug('Status update', { status });
513
+ },
514
+ onComplete: (_response, _usage, _cost) => {
515
+ log.debug('SDK runner completed');
516
+ },
517
+ onError: (error) => {
518
+ log.error('SDK runner error', { error });
519
+ if (eventAdapter) {
520
+ const { errorCode, metadata } = classifyError(error);
521
+ eventAdapter.sendError(errorCode, error, metadata).catch((err) => {
522
+ log.error('Error sending error message', { error: err });
523
+ });
524
+ }
525
+ },
526
+ onIterationStart: (iteration, maxIterations) => {
527
+ log.debug('Iteration start', { iteration, maxIterations });
528
+ },
529
+ };
530
+ try {
531
+ // Get mode configuration for the session
532
+ const modeConfig = getModeConfig(session.modeId);
533
+ log.debug('Using mode config', { modeId: session.modeId, autoApprove: modeConfig.autoApprove, forcePlanMode: modeConfig.forcePlanMode });
534
+ // CLI --unleash flag takes priority; fall back to project config
535
+ const configManager = getConfigManager();
536
+ const unleash = this.config.unleash === true
537
+ || configManager.getConfig().session.unleash === true;
538
+ if (unleash) {
539
+ log.info('Unleash mode enabled', { source: this.config.unleash ? 'cli-flag' : 'project-config' });
540
+ }
541
+ // Run the SDK query with existing CLI infrastructure
542
+ const result = await runSDKQuery({
543
+ query: textContent,
544
+ projectRoot: session.workingDir,
545
+ continueSession: true, // Continue from existing session for context
546
+ autoApprove: modeConfig.autoApprove, // Mode-specific approval setting
547
+ callbacks,
548
+ silent: true, // Use callbacks instead of stdout
549
+ systemPromptAddition: modeConfig.systemPromptAddition, // Mode-specific instructions
550
+ forcePlanMode: modeConfig.forcePlanMode, // Force plan mode if configured
551
+ model: session.model, // Propagate ACP session model to SDK runner
552
+ unguardedMode: unleash, // Explicit — no singleton mutation needed
553
+ });
554
+ if (!result.success) {
555
+ log.error('SDK query failed', { error: result.error });
556
+ if (eventAdapter && result.error) {
557
+ const { errorCode, metadata } = classifyError(result.error);
558
+ await eventAdapter.sendError(errorCode, result.error, metadata);
559
+ }
560
+ }
561
+ }
562
+ catch (error) {
563
+ if (error instanceof Error && error.name === 'AbortError') {
564
+ log.info('Prompt cancelled', { sessionId });
565
+ if (eventAdapter) {
566
+ await eventAdapter.sendAgentMessageChunk('\n\n[Cancelled]');
567
+ }
568
+ }
569
+ else {
570
+ log.error('Error running SDK query', { error });
571
+ if (eventAdapter) {
572
+ const errorMsg = error instanceof Error ? error.message : String(error);
573
+ const { errorCode, metadata } = classifyError(errorMsg);
574
+ await eventAdapter.sendError(errorCode, errorMsg, metadata);
575
+ }
576
+ }
577
+ }
578
+ // Update session activity
579
+ this.sessionManager.touch(sessionId);
580
+ return {
581
+ stopReason,
582
+ _meta: {},
583
+ };
584
+ }
585
+ /**
586
+ * Sets the model for a session.
587
+ *
588
+ * @param params - Set model request
589
+ */
590
+ async setSessionModel(params) {
591
+ const { sessionId, modelId } = params;
592
+ log.info('Setting session model', { sessionId, modelId });
593
+ // Parse model ID (format: providerId/modelId)
594
+ const [providerId, modelIdPart] = modelId.split('/');
595
+ this.sessionManager.setModel(sessionId, {
596
+ providerId: providerId || 'anthropic',
597
+ modelId: modelIdPart || modelId,
598
+ });
599
+ return { _meta: {} };
600
+ }
601
+ /**
602
+ * Sets the mode/agent for a session.
603
+ *
604
+ * @param params - Set mode request
605
+ */
606
+ async setSessionMode(params) {
607
+ const { sessionId, modeId } = params;
608
+ log.info('Setting session mode', { sessionId, modeId });
609
+ this.sessionManager.setMode(sessionId, modeId);
610
+ return { _meta: {} };
611
+ }
612
+ /**
613
+ * Cancels an ongoing operation.
614
+ *
615
+ * @param params - Cancel notification
616
+ */
617
+ async cancel(params) {
618
+ const { sessionId } = params;
619
+ log.info('Cancelling session operation', { sessionId });
620
+ const controller = this.abortControllers.get(sessionId);
621
+ if (controller) {
622
+ controller.abort();
623
+ this.abortControllers.delete(sessionId);
624
+ }
625
+ }
626
+ /**
627
+ * Gracefully shuts down the agent.
628
+ */
629
+ async shutdown() {
630
+ log.info('Shutting down ACP agent');
631
+ // Abort all pending operations
632
+ for (const controller of this.abortControllers.values()) {
633
+ controller.abort();
634
+ }
635
+ this.abortControllers.clear();
636
+ // Dispose event adapters
637
+ for (const adapter of this.eventAdapters.values()) {
638
+ adapter.dispose();
639
+ }
640
+ this.eventAdapters.clear();
641
+ // Clear tool bridges
642
+ this.toolBridges.clear();
643
+ // Shutdown session manager
644
+ await this.sessionManager.shutdown();
645
+ log.info('ACP agent shutdown complete');
646
+ }
647
+ /**
648
+ * Initializes tool bridge and event adapter for a session.
649
+ */
650
+ initializeSessionComponents(session) {
651
+ // Dispose previous event adapter to remove stale event listeners
652
+ const oldAdapter = this.eventAdapters.get(session.id);
653
+ if (oldAdapter) {
654
+ oldAdapter.dispose();
655
+ }
656
+ // Create tool bridge
657
+ const toolBridge = createACPToolBridge(session.workingDir);
658
+ this.toolBridges.set(session.id, toolBridge);
659
+ // Create event adapter
660
+ const eventAdapter = createACPEventAdapter();
661
+ if (this.connection) {
662
+ eventAdapter.initialize(this.connection, session.id, toolBridge);
663
+ }
664
+ this.eventAdapters.set(session.id, eventAdapter);
665
+ // Create abort controller
666
+ this.abortControllers.set(session.id, new AbortController());
667
+ }
668
+ /**
669
+ * Loads available models, modes, and commands for a session.
670
+ * Filters models to only include those from providers with configured API keys.
671
+ */
672
+ async loadSessionCapabilities(session) {
673
+ // Get configured providers (those with API keys set)
674
+ const credentialStore = await getCredentialStore();
675
+ const configuredProviders = await credentialStore.getConfiguredProviders();
676
+ log.debug('Configured providers', { providers: configuredProviders });
677
+ // Get all models and filter by configured providers
678
+ const allModels = getAvailableModels();
679
+ const availableModels = allModels
680
+ .filter(model => {
681
+ const provider = (model.provider || 'anthropic');
682
+ return configuredProviders.includes(provider);
683
+ })
684
+ .map(model => ({
685
+ modelId: `${model.provider}/${model.id}`,
686
+ name: model.name,
687
+ }));
688
+ log.debug('Available models for ACP', { count: availableModels.length, models: availableModels });
689
+ // Get available modes from mode configurations
690
+ const availableModes = getAvailableModes();
691
+ // Available commands
692
+ const commands = [
693
+ { name: 'compact', description: 'Compact the session history' },
694
+ { name: 'clear', description: 'Clear the session' },
695
+ { name: 'help', description: 'Show available commands' },
696
+ { name: 'model', description: 'Switch model' },
697
+ { name: 'exit', description: 'Exit the session' },
698
+ ];
699
+ return {
700
+ models: {
701
+ currentModelId: `${session.model.providerId}/${session.model.modelId}`,
702
+ availableModels,
703
+ },
704
+ modes: {
705
+ currentModeId: session.modeId,
706
+ availableModes,
707
+ },
708
+ commands,
709
+ };
710
+ }
711
+ /**
712
+ * Replays session history to ACP client.
713
+ */
714
+ async replaySessionHistory(session) {
715
+ if (!this.connection || !session.conversationHistory)
716
+ return;
717
+ const eventAdapter = this.eventAdapters.get(session.id);
718
+ if (!eventAdapter)
719
+ return;
720
+ log.debug('Replaying session history', {
721
+ sessionId: session.id,
722
+ messageCount: session.conversationHistory.length,
723
+ });
724
+ for (const message of session.conversationHistory) {
725
+ for (const part of message.parts) {
726
+ if (part.type === 'text' && part.text) {
727
+ if (message.role === 'user') {
728
+ await eventAdapter.sendUserMessageChunk(part.text);
729
+ }
730
+ else if (message.role === 'assistant') {
731
+ await eventAdapter.sendAgentMessageChunk(part.text);
732
+ }
733
+ }
734
+ else if (part.type === 'reasoning' && part.text) {
735
+ await eventAdapter.sendAgentThoughtChunk(part.text);
736
+ }
737
+ // Tool parts would need full tool state replay which is complex
738
+ }
739
+ }
740
+ }
741
+ /**
742
+ * Handles slash commands.
743
+ */
744
+ async handleSlashCommand(session, command, args) {
745
+ const eventAdapter = this.eventAdapters.get(session.id);
746
+ switch (command.toLowerCase()) {
747
+ case 'compact':
748
+ if (eventAdapter) {
749
+ await eventAdapter.sendAgentMessageChunk('[ACP] Session compaction requested');
750
+ }
751
+ // TODO: Implement actual compaction
752
+ return true;
753
+ case 'clear':
754
+ session.conversationHistory = [];
755
+ if (eventAdapter) {
756
+ await eventAdapter.sendAgentMessageChunk('[ACP] Session cleared');
757
+ }
758
+ return true;
759
+ case 'help':
760
+ if (eventAdapter) {
761
+ await eventAdapter.sendAgentMessageChunk('Available commands:\n' +
762
+ '- /compact - Compact session history\n' +
763
+ '- /clear - Clear session\n' +
764
+ '- /model <id> - Switch model\n' +
765
+ '- /help - Show this help');
766
+ }
767
+ return true;
768
+ case 'model':
769
+ if (args) {
770
+ const [providerId, modelId] = args.split('/');
771
+ session.model = {
772
+ providerId: providerId || 'anthropic',
773
+ modelId: modelId || args,
774
+ };
775
+ if (eventAdapter) {
776
+ await eventAdapter.sendAgentMessageChunk(`[ACP] Model switched to ${args}`);
777
+ }
778
+ }
779
+ return true;
780
+ default:
781
+ return false;
782
+ }
783
+ }
784
+ }
785
+ /**
786
+ * Creates a new ACPAgent instance.
787
+ *
788
+ * @param config - Agent configuration
789
+ * @param sessionManager - Optional custom session manager
790
+ * @returns A new ACPAgent instance
791
+ */
792
+ export function createACPAgent(config, sessionManager) {
793
+ return new ACPAgent(config, sessionManager);
794
+ }
795
+ //# sourceMappingURL=agent.js.map