@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
+ * Setup command implementation for first-time setup wizard
3
+ *
4
+ * This module provides the CLI command for running the first-time setup wizard,
5
+ * which guides users through:
6
+ * - Welcome message and introduction
7
+ * - Data collection consent (GDPR compliant)
8
+ * - Optional telemetry opt-in
9
+ * - Anthropic API key configuration
10
+ *
11
+ * The setup wizard can be invoked via:
12
+ * - `compass setup` - Explicit setup command
13
+ * - Automatically on first run when consent or API key is missing
14
+ */
15
+ import { Command } from 'commander';
16
+ import chalk from 'chalk';
17
+ import inquirer from 'inquirer';
18
+ import { getConsentManager } from '../services/consent-manager.js';
19
+ import { getCredentialStore } from '../services/credential-store.js';
20
+ import { getCompassAuthService } from '../services/compass-auth-service.js';
21
+ import { logger } from '../utils/logger.js';
22
+ import { ensureDir } from '../utils/file-system.js';
23
+ import { getGlobalCompassDir } from '../utils/path.js';
24
+ import { renderBanner, renderWelcome } from '../templates/ascii-art.js';
25
+ import { CONSENT_PROMPTS } from '../types/consent.js';
26
+ import { getEventEmitter } from '../core/event-emitter.js';
27
+ import { decryptFernet } from '../utils/crypto.js';
28
+ /**
29
+ * Application version - should match package.json
30
+ */
31
+ const VERSION = '1.0.73';
32
+ /**
33
+ * Checks if setup is required (missing consent or API keys)
34
+ *
35
+ * @returns Object indicating whether setup is needed and why
36
+ */
37
+ export async function checkSetupRequired() {
38
+ try {
39
+ const consentManager = await getConsentManager();
40
+ const consentStatus = await consentManager.getStatus();
41
+ const credentialStore = await getCredentialStore();
42
+ const hasCompassApiKey = await credentialStore.hasCompassApiKey();
43
+ const hasApiKey = await credentialStore.hasApiKey();
44
+ const missingConsent = !consentStatus.isValid;
45
+ const missingCompassApiKey = !hasCompassApiKey;
46
+ const missingApiKey = !hasApiKey;
47
+ const consentExpired = consentStatus.daysUntilExpiry !== null && consentStatus.daysUntilExpiry <= 0;
48
+ const consentNeedsRenewal = consentStatus.needsRenewal;
49
+ return {
50
+ required: missingConsent || missingApiKey,
51
+ missingConsent,
52
+ missingCompassApiKey,
53
+ missingApiKey,
54
+ consentExpired,
55
+ consentNeedsRenewal,
56
+ };
57
+ }
58
+ catch (error) {
59
+ logger.error('Failed to check setup status', error);
60
+ // If we can't check, assume setup is required
61
+ return {
62
+ required: true,
63
+ missingConsent: true,
64
+ missingCompassApiKey: true,
65
+ missingApiKey: true,
66
+ consentExpired: false,
67
+ consentNeedsRenewal: false,
68
+ };
69
+ }
70
+ }
71
+ /**
72
+ * Runs the interactive setup wizard using inquirer (non-React version)
73
+ * This is used when running `compass setup` directly from the command line
74
+ *
75
+ * @returns Promise that resolves when setup is complete or rejects on cancellation
76
+ */
77
+ export async function runInteractiveSetup() {
78
+ // Ensure global directory exists
79
+ await ensureDir(getGlobalCompassDir());
80
+ // Display welcome banner
81
+ console.log(renderBanner(VERSION));
82
+ console.log(renderWelcome());
83
+ console.log(chalk.bold.cyan('━━━ First-Time Setup Wizard ━━━'));
84
+ console.log('');
85
+ console.log(chalk.gray('This wizard will help you configure Compass for first-time use.'));
86
+ console.log(chalk.gray('Press Ctrl+C at any time to cancel.'));
87
+ console.log('');
88
+ // Step 1: Data Collection Consent (Required)
89
+ console.log(chalk.bold.white('📋 Step 1: Data Collection Consent'));
90
+ console.log(chalk.dim('─'.repeat(50)));
91
+ console.log('');
92
+ console.log(chalk.bold(CONSENT_PROMPTS.dataCollection.title));
93
+ console.log(chalk.gray(CONSENT_PROMPTS.dataCollection.description));
94
+ console.log('');
95
+ console.log(chalk.gray('This consent is required for Compass to function.'));
96
+ console.log('');
97
+ const { dataCollectionConsent } = await inquirer.prompt([
98
+ {
99
+ type: 'confirm',
100
+ name: 'dataCollectionConsent',
101
+ message: 'Do you consent to local data collection?',
102
+ default: true,
103
+ },
104
+ ]);
105
+ if (!dataCollectionConsent) {
106
+ console.log('');
107
+ console.log(chalk.yellow('⚠️ Data collection consent is required to use Compass.'));
108
+ console.log(chalk.gray(' Setup cancelled.'));
109
+ console.log('');
110
+ throw new Error('Setup cancelled: Data collection consent is required');
111
+ }
112
+ // Step 2: Optional Telemetry
113
+ console.log('');
114
+ console.log(chalk.bold.white('📊 Step 2: Anonymous Telemetry (Optional)'));
115
+ console.log(chalk.dim('─'.repeat(50)));
116
+ console.log('');
117
+ console.log(chalk.bold(CONSENT_PROMPTS.telemetry.title));
118
+ console.log(chalk.gray(CONSENT_PROMPTS.telemetry.description));
119
+ console.log('');
120
+ console.log(chalk.gray('This is completely optional and helps improve Compass.'));
121
+ console.log(chalk.gray('No personal data or code content is ever collected.'));
122
+ console.log('');
123
+ const { telemetryConsent } = await inquirer.prompt([
124
+ {
125
+ type: 'confirm',
126
+ name: 'telemetryConsent',
127
+ message: 'Enable anonymous telemetry?',
128
+ default: false,
129
+ },
130
+ ]);
131
+ // Step 3: Error Reporting (Optional)
132
+ console.log('');
133
+ console.log(chalk.bold.white('🐛 Step 3: Error Reporting (Optional)'));
134
+ console.log(chalk.dim('─'.repeat(50)));
135
+ console.log('');
136
+ console.log(chalk.bold(CONSENT_PROMPTS.errorReporting.title));
137
+ console.log(chalk.gray(CONSENT_PROMPTS.errorReporting.description));
138
+ console.log('');
139
+ const { errorReportingConsent } = await inquirer.prompt([
140
+ {
141
+ type: 'confirm',
142
+ name: 'errorReportingConsent',
143
+ message: 'Enable automatic error reporting?',
144
+ default: true,
145
+ },
146
+ ]);
147
+ // Build consent object
148
+ const consent = {
149
+ dataCollection: true,
150
+ telemetry: telemetryConsent,
151
+ analytics: telemetryConsent, // Analytics follows telemetry preference
152
+ errorReporting: errorReportingConsent,
153
+ };
154
+ // Step 4: Compass API Key Configuration (Optional)
155
+ console.log('');
156
+ console.log(chalk.bold.white('🔑 Step 4: Compass API Key (Optional)'));
157
+ console.log(chalk.dim('─'.repeat(50)));
158
+ console.log('');
159
+ console.log(chalk.gray('The Compass API key enables:'));
160
+ console.log(chalk.gray(' • Usage tracking and cost management'));
161
+ console.log(chalk.gray(' • Automatic retrieval of API keys from your Compass account'));
162
+ console.log('');
163
+ console.log(chalk.yellow('This step is OPTIONAL - you can skip it if you don\'t have a Compass account.'));
164
+ console.log('');
165
+ const credentialStore = await getCredentialStore();
166
+ const compassAuthService = getCompassAuthService();
167
+ const { skipCompassKey } = await inquirer.prompt([
168
+ {
169
+ type: 'confirm',
170
+ name: 'skipCompassKey',
171
+ message: 'Skip Compass API key configuration?',
172
+ default: false,
173
+ },
174
+ ]);
175
+ let compassApiKey = '';
176
+ if (!skipCompassKey) {
177
+ console.log('');
178
+ console.log(chalk.gray('Get your API key from your Compass account settings.'));
179
+ console.log(chalk.gray('Your API key will be stored securely using system keychain or encrypted file.'));
180
+ console.log('');
181
+ const { key } = await inquirer.prompt([
182
+ {
183
+ type: 'password',
184
+ name: 'key',
185
+ message: 'Enter your Compass API key:',
186
+ mask: '*',
187
+ validate: async (input) => {
188
+ const trimmed = input.trim();
189
+ if (!trimmed) {
190
+ return 'Please enter a valid API key or go back and choose to skip.';
191
+ }
192
+ // Validate the key with Compass API
193
+ try {
194
+ console.log(chalk.gray('\n Validating API key...'));
195
+ await compassAuthService.validateApiKey(trimmed);
196
+ console.log(chalk.green(' ✓ API key validated successfully'));
197
+ return true;
198
+ }
199
+ catch (error) {
200
+ const message = error instanceof Error ? error.message : 'Invalid API key';
201
+ return `API key validation failed: ${message}`;
202
+ }
203
+ },
204
+ },
205
+ ]);
206
+ compassApiKey = key;
207
+ }
208
+ else {
209
+ console.log(chalk.yellow(' Skipping Compass API key configuration.'));
210
+ }
211
+ // Try to fetch and decrypt Anthropic API key from Compass backend (only if Compass API key provided)
212
+ let anthropicApiKey = null;
213
+ if (compassApiKey && compassApiKey.trim()) {
214
+ console.log('');
215
+ console.log(chalk.gray('Checking for Anthropic API key in your Compass account...'));
216
+ logger.info('Attempting to fetch Anthropic API key from Compass backend');
217
+ try {
218
+ // Fetch LLM config for claude-sonnet-4-5-20250929
219
+ logger.debug('Calling getLLMConfig with model: claude-sonnet-4-5-20250929');
220
+ const llmConfig = await compassAuthService.getLLMConfig('claude-sonnet-4-5-20250929', compassApiKey.trim());
221
+ logger.debug('LLM config received', {
222
+ hasConfig: !!llmConfig,
223
+ hasApiKey: !!llmConfig?.api_key,
224
+ model: llmConfig?.model,
225
+ apiType: llmConfig?.api_type,
226
+ encryptedKeyLength: llmConfig?.api_key?.length || 0
227
+ });
228
+ if (llmConfig && llmConfig.api_key) {
229
+ console.log(chalk.gray(' ✓ Found encrypted API key in your account'));
230
+ logger.info('Encrypted API key found, attempting decryption');
231
+ // Try to decrypt the API key using the provider name as password
232
+ try {
233
+ logger.debug('Starting Fernet decryption with password: CLAUDE');
234
+ anthropicApiKey = decryptFernet(llmConfig.api_key, 'CLAUDE');
235
+ logger.info('✓ Anthropic API key successfully decrypted', { keyLength: anthropicApiKey.length });
236
+ console.log(chalk.green(' ✓ Anthropic API key retrieved from your Compass account'));
237
+ }
238
+ catch (decryptError) {
239
+ const errorMsg = decryptError instanceof Error ? decryptError.message : 'Unknown error';
240
+ logger.error('Failed to decrypt Anthropic API key', { error: errorMsg });
241
+ console.log(chalk.yellow(' ⚠ Failed to decrypt API key from Compass account'));
242
+ console.log(chalk.gray(` Reason: ${errorMsg}`));
243
+ anthropicApiKey = null;
244
+ }
245
+ }
246
+ else {
247
+ logger.warn('No API key found in LLM config response');
248
+ console.log(chalk.yellow(' ⚠ No Anthropic API key found in your Compass account'));
249
+ }
250
+ }
251
+ catch (fetchError) {
252
+ const errorMsg = fetchError instanceof Error ? fetchError.message : 'Unknown error';
253
+ logger.error('Failed to fetch LLM config from Compass backend', { error: errorMsg });
254
+ console.log(chalk.yellow(' ⚠ Could not retrieve API key from Compass account'));
255
+ console.log(chalk.gray(` Reason: ${errorMsg}`));
256
+ anthropicApiKey = null;
257
+ }
258
+ }
259
+ else {
260
+ console.log('');
261
+ console.log(chalk.yellow('Skipping Compass API key configuration'));
262
+ }
263
+ // Step 5: Anthropic API Key Configuration (only if not retrieved from backend)
264
+ let apiKey;
265
+ if (anthropicApiKey) {
266
+ // We already have the API key from the backend, skip asking the user
267
+ apiKey = anthropicApiKey;
268
+ console.log('');
269
+ console.log(chalk.gray('Skipping Anthropic API key entry (already configured in your Compass account)'));
270
+ }
271
+ else {
272
+ // We need to ask the user for the API key
273
+ console.log('');
274
+ console.log(chalk.bold.white('🔑 Step 5: Anthropic API Key'));
275
+ console.log(chalk.dim('─'.repeat(50)));
276
+ console.log('');
277
+ console.log(chalk.gray('Enter your Anthropic API key to enable Claude integration.'));
278
+ console.log(chalk.gray('Get your API key at: ') + chalk.blue.underline('https://console.anthropic.com/'));
279
+ console.log('');
280
+ console.log(chalk.gray('Your API key will be:'));
281
+ console.log(chalk.green(' ✓ Stored securely using system keychain when available'));
282
+ console.log(chalk.green(' ✓ Encrypted with AES-256 as fallback'));
283
+ console.log(chalk.green(' ✓ Never transmitted except to Anthropic\'s API'));
284
+ console.log('');
285
+ const { apiKey: userApiKey } = await inquirer.prompt([
286
+ {
287
+ type: 'password',
288
+ name: 'apiKey',
289
+ message: 'Enter your Anthropic API key:',
290
+ mask: '*',
291
+ validate: (input) => {
292
+ const trimmed = input.trim();
293
+ if (!trimmed) {
294
+ return 'API key is required to use Compass';
295
+ }
296
+ if (!credentialStore.validateApiKeyFormat(trimmed)) {
297
+ return 'Invalid API key format. Anthropic API keys should start with "sk-ant-"';
298
+ }
299
+ return true;
300
+ },
301
+ },
302
+ ]);
303
+ apiKey = userApiKey;
304
+ }
305
+ // Step 6: Additional Provider API Keys (Optional)
306
+ console.log('');
307
+ console.log(chalk.bold.white('🔌 Step 6: Additional Providers (Optional)'));
308
+ console.log(chalk.dim('─'.repeat(50)));
309
+ console.log('');
310
+ console.log(chalk.gray('You can configure API keys for additional providers:'));
311
+ console.log(chalk.gray(' • Ollama - for local/cloud Ollama models'));
312
+ console.log(chalk.gray(' • Z.AI - for Z.AI GLM models'));
313
+ console.log(chalk.gray(' • MiniMax - for MiniMax models'));
314
+ console.log('');
315
+ console.log(chalk.yellow('This step is OPTIONAL - you can configure these later with "compass setup --api-key".'));
316
+ console.log('');
317
+ const { configureAdditionalProviders } = await inquirer.prompt([
318
+ {
319
+ type: 'confirm',
320
+ name: 'configureAdditionalProviders',
321
+ message: 'Configure API keys for additional providers now?',
322
+ default: false,
323
+ },
324
+ ]);
325
+ const additionalProviderKeys = [];
326
+ if (configureAdditionalProviders) {
327
+ const otherProviders = ['ollama', 'zai', 'minimax'];
328
+ for (const provider of otherProviders) {
329
+ console.log('');
330
+ const { configure } = await inquirer.prompt([
331
+ {
332
+ type: 'confirm',
333
+ name: 'configure',
334
+ message: `Configure ${provider.toUpperCase()} API key?`,
335
+ default: false,
336
+ },
337
+ ]);
338
+ if (configure) {
339
+ const { providerKey } = await inquirer.prompt([
340
+ {
341
+ type: 'password',
342
+ name: 'providerKey',
343
+ message: `Enter your ${provider.toUpperCase()} API key:`,
344
+ mask: '*',
345
+ validate: (input) => {
346
+ const trimmed = input.trim();
347
+ if (!trimmed) {
348
+ return 'Please enter an API key or skip this provider.';
349
+ }
350
+ return true;
351
+ },
352
+ },
353
+ ]);
354
+ additionalProviderKeys.push({ provider, apiKey: providerKey.trim() });
355
+ console.log(chalk.green(` ✓ ${provider.toUpperCase()} API key captured`));
356
+ }
357
+ }
358
+ }
359
+ // Save everything
360
+ console.log('');
361
+ console.log(chalk.gray('Saving settings...'));
362
+ try {
363
+ // Save Compass API key (only if provided)
364
+ if (compassApiKey && compassApiKey.trim()) {
365
+ await credentialStore.setCompassApiKey(compassApiKey.trim());
366
+ logger.info('Compass API key saved successfully');
367
+ }
368
+ // Save Anthropic API key (also as provider-specific key)
369
+ await credentialStore.setApiKey(apiKey.trim());
370
+ await credentialStore.setProviderApiKey('anthropic', apiKey.trim());
371
+ logger.info('Anthropic API key saved successfully');
372
+ // Save additional provider API keys
373
+ for (const { provider, apiKey: providerApiKey } of additionalProviderKeys) {
374
+ await credentialStore.setProviderApiKey(provider, providerApiKey);
375
+ logger.info(`${provider} API key saved successfully`);
376
+ }
377
+ // Save consent
378
+ const consentManager = await getConsentManager();
379
+ await consentManager.grantConsent(consent);
380
+ logger.info('Consent saved successfully');
381
+ // Emit consent changed event
382
+ const eventEmitter = getEventEmitter();
383
+ eventEmitter.emit('consent-changed', { granted: true });
384
+ // Display success message
385
+ console.log('');
386
+ console.log(chalk.green.bold('✅ Setup Complete!'));
387
+ console.log(chalk.dim('─'.repeat(50)));
388
+ console.log('');
389
+ console.log(chalk.gray('Compass has been configured successfully.'));
390
+ console.log('');
391
+ console.log(chalk.bold.white('Quick Tips:'));
392
+ console.log(chalk.gray(' • Run ') + chalk.cyan('compass') + chalk.gray(' to start an interactive session'));
393
+ console.log(chalk.gray(' • Type natural language requests to interact with Nova'));
394
+ console.log(chalk.gray(' • Use ') + chalk.cyan('/help') + chalk.gray(' to see available commands'));
395
+ console.log(chalk.gray(' • Use ') + chalk.cyan('/model') + chalk.gray(' to switch between models'));
396
+ console.log(chalk.gray(' • Use ') + chalk.cyan('/exit') + chalk.gray(' to exit Nova'));
397
+ console.log('');
398
+ console.log(chalk.gray('Your consent settings:'));
399
+ console.log(chalk.gray(' • Data Collection: ') + chalk.green('Enabled (required)'));
400
+ console.log(chalk.gray(' • Telemetry: ') + (telemetryConsent ? chalk.green('Enabled') : chalk.yellow('Disabled')));
401
+ console.log(chalk.gray(' • Error Reporting: ') + (errorReportingConsent ? chalk.green('Enabled') : chalk.yellow('Disabled')));
402
+ console.log('');
403
+ console.log(chalk.gray('API keys configured:'));
404
+ console.log(chalk.gray(' • Anthropic: ') + chalk.green('Configured'));
405
+ if (compassApiKey && compassApiKey.trim()) {
406
+ console.log(chalk.gray(' • Compass: ') + chalk.green('Configured'));
407
+ }
408
+ for (const { provider } of additionalProviderKeys) {
409
+ console.log(chalk.gray(` • ${provider.charAt(0).toUpperCase() + provider.slice(1)}: `) + chalk.green('Configured'));
410
+ }
411
+ console.log('');
412
+ console.log(chalk.gray('You can modify these settings anytime with ') + chalk.cyan('compass consent') + chalk.gray('.'));
413
+ console.log(chalk.gray('To configure more API keys, run ') + chalk.cyan('compass setup --api-key') + chalk.gray('.'));
414
+ console.log('');
415
+ }
416
+ catch (error) {
417
+ logger.error('Failed to save setup settings', error);
418
+ console.log('');
419
+ console.log(chalk.red('❌ Failed to save settings'));
420
+ if (error instanceof Error) {
421
+ console.log(chalk.red(` ${error.message}`));
422
+ }
423
+ throw error;
424
+ }
425
+ }
426
+ /**
427
+ * Displays the current setup status
428
+ */
429
+ export async function displaySetupStatus() {
430
+ const status = await checkSetupRequired();
431
+ const credentialStore = await getCredentialStore();
432
+ console.log('');
433
+ console.log(chalk.bold.white('🔧 Setup Status'));
434
+ console.log(chalk.dim('─'.repeat(50)));
435
+ // Consent status
436
+ const consentIcon = status.missingConsent ? chalk.red('✗') : chalk.green('✓');
437
+ const consentText = status.missingConsent
438
+ ? chalk.red('Not configured')
439
+ : status.consentExpired
440
+ ? chalk.yellow('Expired')
441
+ : status.consentNeedsRenewal
442
+ ? chalk.yellow('Needs renewal')
443
+ : chalk.green('Valid');
444
+ console.log(` ${chalk.gray('Consent:')} ${consentIcon} ${consentText}`);
445
+ // Compass API key status (optional)
446
+ const compassApiKeyIcon = status.missingCompassApiKey ? chalk.yellow('○') : chalk.green('✓');
447
+ const compassApiKeyText = status.missingCompassApiKey
448
+ ? chalk.yellow('Not configured (optional)')
449
+ : chalk.green('Configured');
450
+ console.log(` ${chalk.gray('Compass API Key:')} ${compassApiKeyIcon} ${compassApiKeyText}`);
451
+ // Provider-specific API key status
452
+ console.log('');
453
+ console.log(chalk.bold.white(' Provider API Keys:'));
454
+ // Anthropic API key status
455
+ const apiKeyIcon = status.missingApiKey ? chalk.red('✗') : chalk.green('✓');
456
+ const apiKeyText = status.missingApiKey
457
+ ? chalk.red('Not configured')
458
+ : chalk.green('Configured');
459
+ console.log(` ${chalk.gray('Anthropic:')} ${apiKeyIcon} ${apiKeyText}`);
460
+ // Check other providers
461
+ const otherProviders = ['ollama', 'zai', 'minimax'];
462
+ for (const provider of otherProviders) {
463
+ const hasKey = await credentialStore.hasProviderApiKey(provider);
464
+ const providerIcon = hasKey ? chalk.green('✓') : chalk.yellow('○');
465
+ const providerText = hasKey ? chalk.green('Configured') : chalk.yellow('Not configured');
466
+ const providerName = provider.charAt(0).toUpperCase() + provider.slice(1);
467
+ console.log(` ${chalk.gray(`${providerName}:`)}${' '.repeat(11 - providerName.length)}${providerIcon} ${providerText}`);
468
+ }
469
+ // Overall status
470
+ console.log('');
471
+ if (status.required) {
472
+ console.log(chalk.yellow('⚠️ Setup is required before using Compass.'));
473
+ console.log(chalk.gray(' Run "compass setup" to configure.'));
474
+ }
475
+ else {
476
+ console.log(chalk.green('✅ Compass is fully configured and ready to use.'));
477
+ console.log(chalk.gray(' Run "compass" to start an interactive session.'));
478
+ }
479
+ console.log('');
480
+ }
481
+ /**
482
+ * Reconfigures specific setup components
483
+ */
484
+ export async function reconfigureSetup(options) {
485
+ await ensureDir(getGlobalCompassDir());
486
+ if (options.consent) {
487
+ console.log('');
488
+ console.log(chalk.bold.white('📋 Reconfigure Consent Settings'));
489
+ console.log(chalk.dim('─'.repeat(50)));
490
+ console.log('');
491
+ const { dataCollection } = await inquirer.prompt([
492
+ {
493
+ type: 'confirm',
494
+ name: 'dataCollection',
495
+ message: 'Enable data collection (required)?',
496
+ default: true,
497
+ },
498
+ ]);
499
+ if (!dataCollection) {
500
+ console.log(chalk.yellow('⚠️ Data collection is required. Keeping current settings.'));
501
+ return;
502
+ }
503
+ const { telemetry } = await inquirer.prompt([
504
+ {
505
+ type: 'confirm',
506
+ name: 'telemetry',
507
+ message: 'Enable anonymous telemetry?',
508
+ default: false,
509
+ },
510
+ ]);
511
+ const { errorReporting } = await inquirer.prompt([
512
+ {
513
+ type: 'confirm',
514
+ name: 'errorReporting',
515
+ message: 'Enable error reporting?',
516
+ default: true,
517
+ },
518
+ ]);
519
+ const consent = {
520
+ dataCollection: true,
521
+ telemetry,
522
+ analytics: telemetry,
523
+ errorReporting,
524
+ };
525
+ const consentManager = await getConsentManager();
526
+ await consentManager.grantConsent(consent);
527
+ console.log(chalk.green('✅ Consent settings updated'));
528
+ }
529
+ if (options.apiKey) {
530
+ console.log('');
531
+ console.log(chalk.bold.white('🔑 Reconfigure API Keys'));
532
+ console.log(chalk.dim('─'.repeat(50)));
533
+ console.log('');
534
+ const credentialStore = await getCredentialStore();
535
+ // Show available providers
536
+ console.log(chalk.gray('Available providers:'));
537
+ console.log(chalk.gray(' 1. Anthropic (default for Claude models)'));
538
+ console.log(chalk.gray(' 2. Ollama (for Ollama/cloud models)'));
539
+ console.log(chalk.gray(' 3. Z.AI (for Z.AI GLM models)'));
540
+ console.log(chalk.gray(' 4. MiniMax (for MiniMax models)'));
541
+ console.log('');
542
+ const providerOptions = [
543
+ { name: 'Anthropic', value: 'anthropic' },
544
+ { name: 'Ollama', value: 'ollama' },
545
+ { name: 'Z.AI', value: 'zai' },
546
+ { name: 'MiniMax', value: 'minimax' },
547
+ ];
548
+ const { selectedProviders } = await inquirer.prompt([
549
+ {
550
+ type: 'checkbox',
551
+ name: 'selectedProviders',
552
+ message: 'Select which providers to configure:',
553
+ choices: providerOptions,
554
+ default: ['anthropic'],
555
+ },
556
+ ]);
557
+ for (const provider of selectedProviders) {
558
+ console.log('');
559
+ const hasExisting = await credentialStore.hasProviderApiKey(provider);
560
+ if (hasExisting) {
561
+ const { confirm } = await inquirer.prompt([
562
+ {
563
+ type: 'confirm',
564
+ name: 'confirm',
565
+ message: `${provider.toUpperCase()} API key is already configured. Replace it?`,
566
+ default: false,
567
+ },
568
+ ]);
569
+ if (!confirm) {
570
+ console.log(chalk.gray(`${provider.toUpperCase()} API key unchanged.`));
571
+ continue;
572
+ }
573
+ }
574
+ const { apiKey } = await inquirer.prompt([
575
+ {
576
+ type: 'password',
577
+ name: 'apiKey',
578
+ message: `Enter your ${provider.toUpperCase()} API key:`,
579
+ mask: '*',
580
+ validate: (input) => {
581
+ const trimmed = input.trim();
582
+ if (!trimmed) {
583
+ return 'API key is required';
584
+ }
585
+ // Only validate format for Anthropic keys
586
+ if (provider === 'anthropic' && !credentialStore.validateApiKeyFormat(trimmed)) {
587
+ return 'Invalid API key format. Anthropic keys should start with "sk-ant-"';
588
+ }
589
+ return true;
590
+ },
591
+ },
592
+ ]);
593
+ await credentialStore.setProviderApiKey(provider, apiKey.trim());
594
+ // Also update the default API key if this is Anthropic
595
+ if (provider === 'anthropic') {
596
+ await credentialStore.setApiKey(apiKey.trim());
597
+ }
598
+ console.log(chalk.green(`✅ ${provider.toUpperCase()} API key updated`));
599
+ }
600
+ }
601
+ }
602
+ /**
603
+ * Creates the setup command for the CLI
604
+ */
605
+ export function createSetupCommand() {
606
+ const command = new Command('setup')
607
+ .description('Run first-time setup wizard for consent and API key configuration')
608
+ .option('--status', 'Display current setup status without running wizard')
609
+ .option('--consent', 'Reconfigure consent settings only')
610
+ .option('--api-key', 'Reconfigure API key only')
611
+ .option('--non-interactive', 'Run in non-interactive mode (requires environment variables)')
612
+ .option('--compass-key <compass-api-key>', 'Configure Compass API key non-interactively')
613
+ .option('--validate-key', 'Validate the stored Compass API key without modifying anything')
614
+ .action(async (options) => {
615
+ try {
616
+ // Status check mode
617
+ if (options.status) {
618
+ await displaySetupStatus();
619
+ return;
620
+ }
621
+ // Validate stored Compass API key (read-only)
622
+ if (options.validateKey) {
623
+ await validateStoredApiKeys();
624
+ return;
625
+ }
626
+ // Direct Compass API key configuration (non-interactive)
627
+ if (options.compassKey) {
628
+ await configureCompassApiKey(options.compassKey);
629
+ return;
630
+ }
631
+ // Reconfigure specific components
632
+ if (options.consent || options.apiKey) {
633
+ await reconfigureSetup({
634
+ consent: options.consent,
635
+ apiKey: options.apiKey,
636
+ });
637
+ return;
638
+ }
639
+ // Non-interactive mode
640
+ if (options.nonInteractive) {
641
+ await runNonInteractiveSetup();
642
+ return;
643
+ }
644
+ // Full interactive setup
645
+ await runInteractiveSetup();
646
+ }
647
+ catch (error) {
648
+ if (error instanceof Error && error.message.includes('cancelled')) {
649
+ // User cancelled, exit gracefully
650
+ process.exit(0);
651
+ }
652
+ logger.error('Setup command failed', error);
653
+ console.error(chalk.red('❌ Setup failed'));
654
+ if (error instanceof Error) {
655
+ console.error(chalk.red(` ${error.message}`));
656
+ }
657
+ process.exit(1);
658
+ }
659
+ });
660
+ return command;
661
+ }
662
+ /**
663
+ * Validates stored API keys for all configured providers.
664
+ * Checks Compass, Anthropic, and other provider keys.
665
+ * Exits with code 0 if at least one provider is properly configured,
666
+ * exits with code 1 if no valid API keys are found.
667
+ *
668
+ * Usage: nova setup --validate-key
669
+ */
670
+ export async function validateStoredApiKeys() {
671
+ const credentialStore = await getCredentialStore();
672
+ const compassAuthService = getCompassAuthService();
673
+ let hasAnyValidKey = false;
674
+ let hasAnyError = false;
675
+ console.log(chalk.bold.white('Validating stored API keys...'));
676
+ console.log('');
677
+ // 1. Validate Compass API key
678
+ const hasCompassKey = await credentialStore.hasCompassApiKey();
679
+ if (hasCompassKey) {
680
+ try {
681
+ const storedKey = await credentialStore.getCompassApiKey();
682
+ if (!storedKey) {
683
+ console.log(chalk.red(' ✗ Compass: Failed to retrieve stored key'));
684
+ hasAnyError = true;
685
+ }
686
+ else {
687
+ const result = await compassAuthService.validateApiKey(storedKey);
688
+ console.log(chalk.green(` ✓ Compass: Valid (${result.user?.email || 'authenticated'})`));
689
+ hasAnyValidKey = true;
690
+ }
691
+ }
692
+ catch (error) {
693
+ const message = error instanceof Error ? error.message : 'Unknown error';
694
+ console.log(chalk.red(` ✗ Compass: Invalid (${message})`));
695
+ hasAnyError = true;
696
+ }
697
+ }
698
+ else {
699
+ console.log(chalk.yellow(' ○ Compass: Not configured'));
700
+ }
701
+ // 2. Validate Anthropic API key
702
+ const hasAnthropicKey = await credentialStore.hasApiKey();
703
+ if (hasAnthropicKey) {
704
+ try {
705
+ const storedKey = await credentialStore.getApiKey();
706
+ if (!storedKey) {
707
+ console.log(chalk.red(' ✗ Anthropic: Failed to retrieve stored key'));
708
+ hasAnyError = true;
709
+ }
710
+ else if (!credentialStore.validateApiKeyFormat(storedKey)) {
711
+ console.log(chalk.red(' ✗ Anthropic: Invalid key format (expected "sk-ant-" prefix)'));
712
+ hasAnyError = true;
713
+ }
714
+ else {
715
+ console.log(chalk.green(' ✓ Anthropic: Valid format'));
716
+ hasAnyValidKey = true;
717
+ }
718
+ }
719
+ catch (error) {
720
+ const message = error instanceof Error ? error.message : 'Unknown error';
721
+ console.log(chalk.red(` ✗ Anthropic: Error (${message})`));
722
+ hasAnyError = true;
723
+ }
724
+ }
725
+ else {
726
+ console.log(chalk.yellow(' ○ Anthropic: Not configured'));
727
+ }
728
+ // 3. Validate other provider API keys
729
+ const otherProviders = ['ollama', 'zai', 'minimax'];
730
+ for (const provider of otherProviders) {
731
+ const hasKey = await credentialStore.hasProviderApiKey(provider);
732
+ if (hasKey) {
733
+ console.log(chalk.green(` ✓ ${provider.charAt(0).toUpperCase() + provider.slice(1)}: Configured`));
734
+ hasAnyValidKey = true;
735
+ }
736
+ }
737
+ // Summary
738
+ console.log('');
739
+ if (!hasAnyValidKey) {
740
+ console.log(chalk.red('❌ No valid API keys found'));
741
+ console.log(chalk.gray(' Run "nova setup" to configure API keys.'));
742
+ process.exit(1);
743
+ }
744
+ else if (hasAnyError) {
745
+ console.log(chalk.yellow('⚠ Some API keys are invalid or missing'));
746
+ console.log(chalk.gray(' Run "nova setup --api-key" to reconfigure.'));
747
+ process.exit(1);
748
+ }
749
+ else {
750
+ console.log(chalk.green('✅ All configured API keys are valid'));
751
+ }
752
+ }
753
+ /**
754
+ * Configures a Compass API key non-interactively.
755
+ * Validates the key against the Compass API before storing it.
756
+ *
757
+ * Usage: nova setup --compass-key sk_xxxxxx
758
+ */
759
+ async function configureCompassApiKey(apiKey) {
760
+ const trimmedKey = apiKey.trim();
761
+ if (!trimmedKey) {
762
+ console.log(chalk.red('❌ Compass API key cannot be empty'));
763
+ throw new Error('Compass API key cannot be empty');
764
+ }
765
+ // Validate against Compass API
766
+ console.log(chalk.gray('Validating Compass API key...'));
767
+ const compassAuthService = await getCompassAuthService();
768
+ try {
769
+ const result = await compassAuthService.validateApiKey(trimmedKey);
770
+ console.log(chalk.green(`✓ API key validated (${result.user?.email || 'authenticated'})`));
771
+ }
772
+ catch (error) {
773
+ const message = error instanceof Error ? error.message : 'Invalid API key';
774
+ console.log(chalk.red(`❌ API key validation failed: ${message}`));
775
+ throw new Error(`Compass API key validation failed: ${message}`);
776
+ }
777
+ // Store the key
778
+ const credentialStore = await getCredentialStore();
779
+ await credentialStore.setCompassApiKey(trimmedKey);
780
+ console.log(chalk.green('✓ Compass API key saved'));
781
+ console.log('');
782
+ console.log(chalk.green('✅ Compass API key configured successfully'));
783
+ console.log('');
784
+ }
785
+ /**
786
+ * Runs setup in non-interactive mode using environment variables
787
+ * Useful for CI/CD environments or automated deployments
788
+ */
789
+ async function runNonInteractiveSetup() {
790
+ console.log(chalk.gray('Running setup in non-interactive mode...'));
791
+ console.log('');
792
+ // Check for required environment variables
793
+ const apiKey = process.env.ANTHROPIC_API_KEY;
794
+ if (!apiKey) {
795
+ console.log(chalk.red('❌ ANTHROPIC_API_KEY environment variable is required'));
796
+ console.log(chalk.gray(' Set the environment variable and try again.'));
797
+ throw new Error('ANTHROPIC_API_KEY environment variable is required');
798
+ }
799
+ // Validate API key format
800
+ const credentialStore = await getCredentialStore();
801
+ if (!credentialStore.validateApiKeyFormat(apiKey)) {
802
+ console.log(chalk.red('❌ Invalid API key format in ANTHROPIC_API_KEY'));
803
+ throw new Error('Invalid API key format');
804
+ }
805
+ // Ensure global directory exists
806
+ await ensureDir(getGlobalCompassDir());
807
+ // Read optional consent settings from environment
808
+ const telemetryEnabled = process.env.COMPASS_TELEMETRY === 'true';
809
+ const errorReportingEnabled = process.env.COMPASS_ERROR_REPORTING !== 'false';
810
+ // Build consent object
811
+ const consent = {
812
+ dataCollection: true, // Always required
813
+ telemetry: telemetryEnabled,
814
+ analytics: telemetryEnabled,
815
+ errorReporting: errorReportingEnabled,
816
+ };
817
+ // Save API key
818
+ await credentialStore.setApiKey(apiKey);
819
+ console.log(chalk.green('✓ API key configured'));
820
+ // Save consent
821
+ const consentManager = await getConsentManager();
822
+ await consentManager.grantConsent(consent);
823
+ console.log(chalk.green('✓ Consent configured'));
824
+ // Emit consent changed event
825
+ const eventEmitter = getEventEmitter();
826
+ eventEmitter.emit('consent-changed', { granted: true });
827
+ console.log('');
828
+ console.log(chalk.green('✅ Non-interactive setup complete'));
829
+ console.log('');
830
+ }
831
+ /**
832
+ * Executes the setup command directly (for use in slash commands or programmatic access)
833
+ *
834
+ * @param options - Setup options
835
+ */
836
+ export async function executeSetupCommand(options = {}) {
837
+ if (options.status) {
838
+ await displaySetupStatus();
839
+ return;
840
+ }
841
+ if (options.validateKey) {
842
+ await validateStoredApiKeys();
843
+ return;
844
+ }
845
+ if (options.compassKey) {
846
+ await configureCompassApiKey(options.compassKey);
847
+ return;
848
+ }
849
+ if (options.consent || options.apiKey) {
850
+ await reconfigureSetup({
851
+ consent: options.consent,
852
+ apiKey: options.apiKey,
853
+ });
854
+ return;
855
+ }
856
+ if (options.nonInteractive) {
857
+ await runNonInteractiveSetup();
858
+ return;
859
+ }
860
+ await runInteractiveSetup();
861
+ }
862
+ export default createSetupCommand;
863
+ //# sourceMappingURL=setup.js.map