@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,615 @@
1
+ /**
2
+ * Cryptographic utilities for encryption/decryption of sensitive data.
3
+ *
4
+ * This module provides secure cryptographic operations for the Compass CLI,
5
+ * including AES-256-GCM encryption/decryption, secure random generation,
6
+ * hashing, and HMAC signatures.
7
+ *
8
+ * Security features:
9
+ * - AES-256-GCM authenticated encryption
10
+ * - PBKDF2 key derivation with 100,000 iterations
11
+ * - Cryptographically secure random number generation
12
+ * - Constant-time string comparison to prevent timing attacks
13
+ * - SHA-256 hashing for data integrity
14
+ * - HMAC-SHA256 for message authentication
15
+ */
16
+ import crypto from 'crypto';
17
+ import os from 'os';
18
+ // =============================================================================
19
+ // Constants
20
+ // =============================================================================
21
+ /**
22
+ * Encryption algorithm: AES-256 in GCM mode for authenticated encryption
23
+ */
24
+ const ALGORITHM = 'aes-256-gcm';
25
+ /**
26
+ * Initialization vector length in bytes (128 bits for AES-GCM)
27
+ */
28
+ const IV_LENGTH = 16;
29
+ /**
30
+ * Salt length in bytes for key derivation
31
+ */
32
+ const SALT_LENGTH = 32;
33
+ /**
34
+ * Authentication tag length in bytes for GCM mode
35
+ */
36
+ const TAG_LENGTH = 16;
37
+ /**
38
+ * Derived key length in bytes (256 bits for AES-256)
39
+ */
40
+ const KEY_LENGTH = 32;
41
+ /**
42
+ * Number of PBKDF2 iterations for key derivation
43
+ * Higher values increase security but also computation time
44
+ */
45
+ const ITERATIONS = 100000;
46
+ /**
47
+ * Hash algorithm used for PBKDF2 key derivation
48
+ */
49
+ const HASH_ALGORITHM = 'sha256';
50
+ // =============================================================================
51
+ // Key Derivation
52
+ // =============================================================================
53
+ /**
54
+ * Derives a cryptographic key from a password using PBKDF2.
55
+ *
56
+ * PBKDF2 (Password-Based Key Derivation Function 2) is used to derive
57
+ * a secure encryption key from a potentially weak password. The high
58
+ * iteration count makes brute-force attacks computationally expensive.
59
+ *
60
+ * @param password - The password to derive the key from
61
+ * @param salt - Random salt to prevent rainbow table attacks
62
+ * @returns Derived key buffer of KEY_LENGTH bytes
63
+ */
64
+ function deriveKey(password, salt) {
65
+ return crypto.pbkdf2Sync(password, salt, ITERATIONS, KEY_LENGTH, HASH_ALGORITHM);
66
+ }
67
+ // =============================================================================
68
+ // Encryption / Decryption
69
+ // =============================================================================
70
+ /**
71
+ * Encrypts plaintext data using AES-256-GCM authenticated encryption.
72
+ *
73
+ * The encryption process:
74
+ * 1. Generates a random salt for key derivation
75
+ * 2. Derives an encryption key from the password using PBKDF2
76
+ * 3. Generates a random initialization vector (IV)
77
+ * 4. Encrypts the data using AES-256-GCM
78
+ * 5. Combines salt + IV + auth tag + ciphertext into a single output
79
+ *
80
+ * The output format is: salt (32 bytes) + IV (16 bytes) + tag (16 bytes) + ciphertext
81
+ * All encoded as base64 for safe storage and transmission.
82
+ *
83
+ * @param plaintext - The string data to encrypt
84
+ * @param password - The password used for key derivation
85
+ * @returns Base64-encoded encrypted data containing salt, IV, tag, and ciphertext
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * const encrypted = encrypt('my secret data', 'strong-password');
90
+ * // Returns: base64-encoded string
91
+ * ```
92
+ */
93
+ export function encrypt(plaintext, password) {
94
+ // Generate random salt for key derivation
95
+ const salt = crypto.randomBytes(SALT_LENGTH);
96
+ // Generate random initialization vector
97
+ const iv = crypto.randomBytes(IV_LENGTH);
98
+ // Derive encryption key from password
99
+ const key = deriveKey(password, salt);
100
+ // Create cipher with AES-256-GCM
101
+ const cipher = crypto.createCipheriv(ALGORITHM, key, iv);
102
+ // Encrypt the plaintext
103
+ let encrypted = cipher.update(plaintext, 'utf8', 'hex');
104
+ encrypted += cipher.final('hex');
105
+ // Get the authentication tag
106
+ const tag = cipher.getAuthTag();
107
+ // Combine all components: salt + iv + tag + encrypted data
108
+ const combined = Buffer.concat([
109
+ salt,
110
+ iv,
111
+ tag,
112
+ Buffer.from(encrypted, 'hex'),
113
+ ]);
114
+ // Return as base64 for safe storage
115
+ return combined.toString('base64');
116
+ }
117
+ /**
118
+ * Decrypts data that was encrypted with the encrypt() function.
119
+ *
120
+ * The decryption process:
121
+ * 1. Decodes the base64 input
122
+ * 2. Extracts salt, IV, authentication tag, and ciphertext
123
+ * 3. Derives the decryption key using the same password and salt
124
+ * 4. Verifies the authentication tag and decrypts the data
125
+ *
126
+ * @param encryptedData - Base64-encoded encrypted data from encrypt()
127
+ * @param password - The same password used for encryption
128
+ * @returns The original plaintext string
129
+ * @throws Error if decryption fails (wrong password, corrupted data, or tampering)
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * const encrypted = encrypt('my secret data', 'strong-password');
134
+ * const decrypted = decrypt(encrypted, 'strong-password');
135
+ * // Returns: 'my secret data'
136
+ * ```
137
+ */
138
+ export function decrypt(encryptedData, password) {
139
+ // Decode from base64
140
+ const combined = Buffer.from(encryptedData, 'base64');
141
+ // Validate minimum length
142
+ const minLength = SALT_LENGTH + IV_LENGTH + TAG_LENGTH + 1;
143
+ if (combined.length < minLength) {
144
+ throw new Error('Invalid encrypted data: too short');
145
+ }
146
+ // Extract components
147
+ const salt = combined.subarray(0, SALT_LENGTH);
148
+ const iv = combined.subarray(SALT_LENGTH, SALT_LENGTH + IV_LENGTH);
149
+ const tag = combined.subarray(SALT_LENGTH + IV_LENGTH, SALT_LENGTH + IV_LENGTH + TAG_LENGTH);
150
+ const encrypted = combined.subarray(SALT_LENGTH + IV_LENGTH + TAG_LENGTH);
151
+ // Derive the same key using the extracted salt
152
+ const key = deriveKey(password, salt);
153
+ // Create decipher
154
+ const decipher = crypto.createDecipheriv(ALGORITHM, key, iv);
155
+ // Set the authentication tag for verification
156
+ decipher.setAuthTag(tag);
157
+ // Decrypt the data
158
+ let decrypted = decipher.update(encrypted.toString('hex'), 'hex', 'utf8');
159
+ decrypted += decipher.final('utf8');
160
+ return decrypted;
161
+ }
162
+ // =============================================================================
163
+ // Random Generation
164
+ // =============================================================================
165
+ /**
166
+ * Generates a cryptographically secure random string.
167
+ *
168
+ * Uses crypto.randomBytes() which provides cryptographically strong
169
+ * pseudo-random data suitable for security-sensitive operations.
170
+ *
171
+ * @param length - Number of random bytes to generate (default: 32)
172
+ * @returns Hexadecimal string of the random bytes (2 * length characters)
173
+ *
174
+ * @example
175
+ * ```typescript
176
+ * const token = generateSecureRandom(16);
177
+ * // Returns: 32-character hex string like 'a1b2c3d4e5f6...'
178
+ *
179
+ * const sessionId = generateSecureRandom();
180
+ * // Returns: 64-character hex string (default 32 bytes)
181
+ * ```
182
+ */
183
+ export function generateSecureRandom(length = 32) {
184
+ return crypto.randomBytes(length).toString('hex');
185
+ }
186
+ /**
187
+ * Generates a cryptographically secure random bytes buffer.
188
+ *
189
+ * @param length - Number of random bytes to generate
190
+ * @returns Buffer containing random bytes
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * const randomBytes = generateRandomBytes(16);
195
+ * // Returns: Buffer of 16 random bytes
196
+ * ```
197
+ */
198
+ export function generateRandomBytes(length) {
199
+ return crypto.randomBytes(length);
200
+ }
201
+ /**
202
+ * Generates a random UUID v4.
203
+ *
204
+ * @returns A random UUID string in the format xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * const id = generateUUID();
209
+ * // Returns: 'f47ac10b-58cc-4372-a567-0e02b2c3d479'
210
+ * ```
211
+ */
212
+ export function generateUUID() {
213
+ return crypto.randomUUID();
214
+ }
215
+ // =============================================================================
216
+ // Hashing
217
+ // =============================================================================
218
+ /**
219
+ * Creates a SHA-256 hash of the input string.
220
+ *
221
+ * SHA-256 is a cryptographic hash function that produces a 256-bit (32-byte)
222
+ * hash value. It's suitable for data integrity verification and generating
223
+ * unique identifiers from input data.
224
+ *
225
+ * @param input - The string to hash
226
+ * @returns Hexadecimal string of the SHA-256 hash (64 characters)
227
+ *
228
+ * @example
229
+ * ```typescript
230
+ * const hashedPassword = hash('user-password');
231
+ * // Returns: 64-character hex string
232
+ *
233
+ * const fileHash = hash(fileContents);
234
+ * // Can be used to verify file integrity
235
+ * ```
236
+ */
237
+ export function hash(input) {
238
+ return crypto.createHash(HASH_ALGORITHM).update(input).digest('hex');
239
+ }
240
+ /**
241
+ * Creates a hash of the input using the specified algorithm.
242
+ *
243
+ * @param input - The string to hash
244
+ * @param algorithm - Hash algorithm to use (e.g., 'sha256', 'sha512', 'md5')
245
+ * @returns Hexadecimal string of the hash
246
+ *
247
+ * @example
248
+ * ```typescript
249
+ * const sha512Hash = hashWithAlgorithm('data', 'sha512');
250
+ * const md5Hash = hashWithAlgorithm('data', 'md5');
251
+ * ```
252
+ */
253
+ export function hashWithAlgorithm(input, algorithm) {
254
+ return crypto.createHash(algorithm).update(input).digest('hex');
255
+ }
256
+ /**
257
+ * Creates a hash of a buffer using SHA-256.
258
+ *
259
+ * @param input - The buffer to hash
260
+ * @returns Hexadecimal string of the SHA-256 hash
261
+ */
262
+ export function hashBuffer(input) {
263
+ return crypto.createHash(HASH_ALGORITHM).update(input).digest('hex');
264
+ }
265
+ // =============================================================================
266
+ // HMAC
267
+ // =============================================================================
268
+ /**
269
+ * Creates an HMAC-SHA256 signature of the data.
270
+ *
271
+ * HMAC (Hash-based Message Authentication Code) provides both data integrity
272
+ * and authentication. It's used to verify that a message hasn't been altered
273
+ * and was created by someone with the secret key.
274
+ *
275
+ * @param data - The data to sign
276
+ * @param secret - The secret key for HMAC
277
+ * @returns Hexadecimal string of the HMAC signature (64 characters)
278
+ *
279
+ * @example
280
+ * ```typescript
281
+ * const signature = hmac('message-to-sign', 'secret-key');
282
+ * // Returns: 64-character hex string
283
+ *
284
+ * // Verify by computing HMAC again and comparing
285
+ * const isValid = hmac('message-to-sign', 'secret-key') === signature;
286
+ * ```
287
+ */
288
+ export function hmac(data, secret) {
289
+ return crypto
290
+ .createHmac(HASH_ALGORITHM, secret)
291
+ .update(data)
292
+ .digest('hex');
293
+ }
294
+ /**
295
+ * Creates an HMAC signature using the specified algorithm.
296
+ *
297
+ * @param data - The data to sign
298
+ * @param secret - The secret key for HMAC
299
+ * @param algorithm - Hash algorithm to use (e.g., 'sha256', 'sha512')
300
+ * @returns Hexadecimal string of the HMAC signature
301
+ */
302
+ export function hmacWithAlgorithm(data, secret, algorithm) {
303
+ return crypto.createHmac(algorithm, secret).update(data).digest('hex');
304
+ }
305
+ // =============================================================================
306
+ // Machine Key Generation
307
+ // =============================================================================
308
+ /**
309
+ * Generates a machine-specific key for local encryption.
310
+ *
311
+ * This function creates a unique key based on machine identifiers,
312
+ * which can be used for encrypting data that should only be decryptable
313
+ * on the same machine. This is useful for storing credentials locally.
314
+ *
315
+ * Note: This key will change if the machine's hostname, username, or
316
+ * other identifying characteristics change.
317
+ *
318
+ * @returns SHA-256 hash of combined machine identifiers
319
+ *
320
+ * @example
321
+ * ```typescript
322
+ * const machineKey = getMachineKey();
323
+ * const encrypted = encrypt('sensitive-data', machineKey);
324
+ * // Data can only be decrypted on the same machine
325
+ * ```
326
+ */
327
+ export function getMachineKey() {
328
+ // Combine multiple machine-specific values for key derivation
329
+ const components = [
330
+ os.hostname(),
331
+ os.platform(),
332
+ os.arch(),
333
+ os.userInfo().username,
334
+ os.homedir(),
335
+ ];
336
+ // Create a hash of the combined components
337
+ return hash(components.join(':'));
338
+ }
339
+ /**
340
+ * Generates a machine-specific key asynchronously.
341
+ * This is provided for consistency with async patterns in the codebase.
342
+ *
343
+ * @returns Promise resolving to SHA-256 hash of combined machine identifiers
344
+ */
345
+ export async function getMachineKeyAsync() {
346
+ return getMachineKey();
347
+ }
348
+ // =============================================================================
349
+ // Secure Comparison
350
+ // =============================================================================
351
+ /**
352
+ * Securely compares two strings in constant time.
353
+ *
354
+ * This function prevents timing attacks by ensuring the comparison
355
+ * takes the same amount of time regardless of where the strings differ.
356
+ * Regular string comparison (===) can leak information about the position
357
+ * of the first differing character through timing analysis.
358
+ *
359
+ * @param a - First string to compare
360
+ * @param b - Second string to compare
361
+ * @returns True if strings are equal, false otherwise
362
+ *
363
+ * @example
364
+ * ```typescript
365
+ * // Use for comparing sensitive values like tokens or signatures
366
+ * const isValid = secureCompare(providedToken, storedToken);
367
+ *
368
+ * // Don't use regular comparison for security-sensitive data
369
+ * // BAD: if (providedToken === storedToken) { ... }
370
+ * // GOOD: if (secureCompare(providedToken, storedToken)) { ... }
371
+ * ```
372
+ */
373
+ export function secureCompare(a, b) {
374
+ // If lengths differ, we still need to do a constant-time comparison
375
+ // to avoid leaking length information
376
+ if (a.length !== b.length) {
377
+ // Compare against itself to maintain constant time
378
+ crypto.timingSafeEqual(Buffer.from(a), Buffer.from(a));
379
+ return false;
380
+ }
381
+ return crypto.timingSafeEqual(Buffer.from(a), Buffer.from(b));
382
+ }
383
+ /**
384
+ * Securely compares two buffers in constant time.
385
+ *
386
+ * @param a - First buffer to compare
387
+ * @param b - Second buffer to compare
388
+ * @returns True if buffers are equal, false otherwise
389
+ */
390
+ export function secureCompareBuffers(a, b) {
391
+ if (a.length !== b.length) {
392
+ return false;
393
+ }
394
+ return crypto.timingSafeEqual(a, b);
395
+ }
396
+ // =============================================================================
397
+ // Utility Functions
398
+ // =============================================================================
399
+ /**
400
+ * Generates a secure token suitable for session IDs or API tokens.
401
+ *
402
+ * @param length - Length of the token in bytes (default: 32)
403
+ * @returns URL-safe base64-encoded token
404
+ *
405
+ * @example
406
+ * ```typescript
407
+ * const sessionToken = generateToken();
408
+ * // Returns: URL-safe base64 string
409
+ * ```
410
+ */
411
+ export function generateToken(length = 32) {
412
+ return crypto.randomBytes(length).toString('base64url');
413
+ }
414
+ /**
415
+ * Creates a salted hash of a password for storage.
416
+ *
417
+ * This is a simple implementation for non-critical use cases.
418
+ * For production password storage, consider using bcrypt or argon2.
419
+ *
420
+ * @param password - The password to hash
421
+ * @returns Object containing the salt and hash
422
+ *
423
+ * @example
424
+ * ```typescript
425
+ * const { salt, hash } = hashPassword('user-password');
426
+ * // Store both salt and hash in database
427
+ * ```
428
+ */
429
+ export function hashPassword(password) {
430
+ const salt = generateSecureRandom(16);
431
+ const derivedKey = deriveKey(password, Buffer.from(salt, 'hex'));
432
+ return {
433
+ salt,
434
+ hash: derivedKey.toString('hex'),
435
+ };
436
+ }
437
+ /**
438
+ * Verifies a password against a stored salt and hash.
439
+ *
440
+ * @param password - The password to verify
441
+ * @param salt - The stored salt (hex string)
442
+ * @param storedHash - The stored hash (hex string)
443
+ * @returns True if the password matches
444
+ *
445
+ * @example
446
+ * ```typescript
447
+ * const isValid = verifyPassword('user-password', storedSalt, storedHash);
448
+ * ```
449
+ */
450
+ export function verifyPassword(password, salt, storedHash) {
451
+ const derivedKey = deriveKey(password, Buffer.from(salt, 'hex'));
452
+ return secureCompare(derivedKey.toString('hex'), storedHash);
453
+ }
454
+ /**
455
+ * Encrypts an object by serializing it to JSON first.
456
+ *
457
+ * @param data - The object to encrypt
458
+ * @param password - The encryption password
459
+ * @returns Base64-encoded encrypted data
460
+ *
461
+ * @example
462
+ * ```typescript
463
+ * const encrypted = encryptObject({ apiKey: 'secret' }, 'password');
464
+ * ```
465
+ */
466
+ export function encryptObject(data, password) {
467
+ const json = JSON.stringify(data);
468
+ return encrypt(json, password);
469
+ }
470
+ /**
471
+ * Decrypts data and parses it as JSON.
472
+ *
473
+ * @param encryptedData - The encrypted data from encryptObject()
474
+ * @param password - The decryption password
475
+ * @returns The decrypted and parsed object
476
+ *
477
+ * @example
478
+ * ```typescript
479
+ * const data = decryptObject<{ apiKey: string }>(encrypted, 'password');
480
+ * console.log(data.apiKey);
481
+ * ```
482
+ */
483
+ export function decryptObject(encryptedData, password) {
484
+ const json = decrypt(encryptedData, password);
485
+ return JSON.parse(json);
486
+ }
487
+ /**
488
+ * Generates a checksum for data integrity verification.
489
+ *
490
+ * @param data - The data to checksum
491
+ * @returns Short hash suitable for display (first 8 characters of SHA-256)
492
+ *
493
+ * @example
494
+ * ```typescript
495
+ * const checksum = generateChecksum(fileContents);
496
+ * // Returns: '3a7bd3e2' (8 characters)
497
+ * ```
498
+ */
499
+ export function generateChecksum(data) {
500
+ return hash(data).substring(0, 8);
501
+ }
502
+ /**
503
+ * Verifies a checksum against data.
504
+ *
505
+ * @param data - The data to verify
506
+ * @param checksum - The expected checksum
507
+ * @returns True if the checksum matches
508
+ */
509
+ export function verifyChecksum(data, checksum) {
510
+ return generateChecksum(data) === checksum;
511
+ }
512
+ // =============================================================================
513
+ // Fernet-Compatible Decryption (for compatibility with Python's cryptography.fernet)
514
+ // =============================================================================
515
+ /**
516
+ * Fixed salt used for key derivation in Fernet encryption
517
+ * Must match the salt used in the Python CliAuth implementation
518
+ */
519
+ const FERNET_SALT = Buffer.from('b-f2T&>)XPx2vI/I9N7CfYH@Dvdb<F', 'utf-8');
520
+ /**
521
+ * Derives a Fernet-compatible encryption key from a password.
522
+ *
523
+ * This implementation matches Python's cryptography.fernet key derivation:
524
+ * - Uses PBKDF2HMAC with SHA256
525
+ * - 100,000 iterations
526
+ * - Fixed salt for consistency with backend
527
+ * - Returns base64 URL-safe encoded key (Fernet format requirement)
528
+ *
529
+ * @param password - The password to derive the key from
530
+ * @returns Base64 URL-safe encoded key for Fernet decryption
531
+ */
532
+ function deriveFernetKey(password) {
533
+ // Derive 32-byte key using PBKDF2
534
+ const derivedKey = crypto.pbkdf2Sync(password, FERNET_SALT, 100000, // iterations
535
+ 32, // key length
536
+ 'sha256');
537
+ // Fernet requires the key to be base64 URL-safe encoded
538
+ return Buffer.from(derivedKey.toString('base64url'), 'utf-8');
539
+ }
540
+ /**
541
+ * Decrypts data encrypted with Python's cryptography.fernet.Fernet.
542
+ *
543
+ * Fernet format:
544
+ * - Version (1 byte): 0x80
545
+ * - Timestamp (8 bytes): big-endian timestamp
546
+ * - IV (16 bytes): initialization vector for AES-128-CBC
547
+ * - Ciphertext (variable): encrypted data
548
+ * - HMAC (32 bytes): HMAC-SHA256 for authentication
549
+ *
550
+ * @param encryptedData - Base64 URL-safe encoded Fernet token
551
+ * @param password - Password used for key derivation
552
+ * @returns Decrypted plaintext string
553
+ * @throws Error if decryption fails (wrong password, corrupted data, or invalid format)
554
+ *
555
+ * @example
556
+ * ```typescript
557
+ * // Decrypt data encrypted by Python's CliAuth.encrypt()
558
+ * const decrypted = decryptFernet(encryptedToken, 'anthropic');
559
+ * ```
560
+ */
561
+ export function decryptFernet(encryptedData, password) {
562
+ try {
563
+ // Step 1: Derive the Fernet key from password
564
+ const fernetKeyBuffer = deriveFernetKey(password);
565
+ // Step 2: Decode the Fernet key (it was base64url encoded)
566
+ const actualKey = Buffer.from(fernetKeyBuffer.toString('utf-8'), 'base64url');
567
+ // Step 3: Decode the encrypted data from base64url (TWICE - Python does double encoding)
568
+ // First decode: Remove the outer base64url encoding added by Python's CliAuth.encrypt()
569
+ const outerDecoded = Buffer.from(encryptedData, 'base64url');
570
+ // Second decode: The outer decode gives us ASCII text that is the Fernet token
571
+ // Convert those bytes to a string, then decode that string from base64url
572
+ const fernetTokenString = outerDecoded.toString('utf-8');
573
+ const tokenBuffer = Buffer.from(fernetTokenString, 'base64url');
574
+ // Step 4: Parse Fernet token structure
575
+ // Minimum length: version(1) + timestamp(8) + iv(16) + hmac(32) = 57 bytes
576
+ if (tokenBuffer.length < 57) {
577
+ throw new Error(`Invalid Fernet token: too short (${tokenBuffer.length} bytes, need at least 57)`);
578
+ }
579
+ const version = tokenBuffer[0];
580
+ if (version !== 0x80) {
581
+ throw new Error(`Invalid Fernet version: 0x${version.toString(16)} (expected 0x80)`);
582
+ }
583
+ const iv = tokenBuffer.subarray(9, 25);
584
+ const ciphertext = tokenBuffer.subarray(25, tokenBuffer.length - 32);
585
+ const providedHmac = tokenBuffer.subarray(tokenBuffer.length - 32);
586
+ // Step 5: Verify HMAC (authentication)
587
+ // HMAC is computed over: version + timestamp + iv + ciphertext
588
+ // Fernet key structure: first 16 bytes = signing key (HMAC), last 16 bytes = encryption key (AES)
589
+ const signingKey = actualKey.subarray(0, 16);
590
+ const encryptionKey = actualKey.subarray(16, 32);
591
+ const dataToVerify = tokenBuffer.subarray(0, tokenBuffer.length - 32);
592
+ const computedHmac = crypto
593
+ .createHmac('sha256', signingKey)
594
+ .update(dataToVerify)
595
+ .digest();
596
+ if (!crypto.timingSafeEqual(providedHmac, computedHmac)) {
597
+ throw new Error('Invalid Fernet token: HMAC verification failed');
598
+ }
599
+ // Step 6: Decrypt using AES-128-CBC
600
+ // Use the encryption key (last 16 bytes) - already extracted in Step 5
601
+ const decipher = crypto.createDecipheriv('aes-128-cbc', encryptionKey, iv);
602
+ // Enable automatic padding handling (Fernet uses PKCS7)
603
+ decipher.setAutoPadding(true);
604
+ let decrypted = decipher.update(ciphertext);
605
+ decrypted = Buffer.concat([decrypted, decipher.final()]);
606
+ return decrypted.toString('utf-8');
607
+ }
608
+ catch (error) {
609
+ if (error instanceof Error) {
610
+ throw new Error(`Failed to decrypt Fernet token: ${error.message}`);
611
+ }
612
+ throw new Error('Failed to decrypt Fernet token: Unknown error');
613
+ }
614
+ }
615
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"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"}