@compass-ai/nova 1.0.73 → 1.0.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (973) hide show
  1. package/dist/acp/agent.d.ts +318 -0
  2. package/dist/acp/agent.d.ts.map +1 -0
  3. package/dist/acp/agent.js +795 -0
  4. package/dist/acp/agent.js.map +1 -0
  5. package/dist/acp/backpressure-writer.d.ts +49 -0
  6. package/dist/acp/backpressure-writer.d.ts.map +1 -0
  7. package/dist/acp/backpressure-writer.js +153 -0
  8. package/dist/acp/backpressure-writer.js.map +1 -0
  9. package/dist/acp/event-adapter.d.ts +242 -0
  10. package/dist/acp/event-adapter.d.ts.map +1 -0
  11. package/dist/acp/event-adapter.js +456 -0
  12. package/dist/acp/event-adapter.js.map +1 -0
  13. package/dist/acp/index.d.ts +30 -0
  14. package/dist/acp/index.d.ts.map +1 -0
  15. package/dist/acp/index.js +36 -0
  16. package/dist/acp/index.js.map +1 -0
  17. package/dist/acp/modes.d.ts +56 -0
  18. package/dist/acp/modes.d.ts.map +1 -0
  19. package/dist/acp/modes.js +135 -0
  20. package/dist/acp/modes.js.map +1 -0
  21. package/dist/acp/session-manager.d.ts +170 -0
  22. package/dist/acp/session-manager.d.ts.map +1 -0
  23. package/dist/acp/session-manager.js +381 -0
  24. package/dist/acp/session-manager.js.map +1 -0
  25. package/dist/acp/text-coalescer.d.ts +45 -0
  26. package/dist/acp/text-coalescer.d.ts.map +1 -0
  27. package/dist/acp/text-coalescer.js +110 -0
  28. package/dist/acp/text-coalescer.js.map +1 -0
  29. package/dist/acp/tool-bridge.d.ts +156 -0
  30. package/dist/acp/tool-bridge.d.ts.map +1 -0
  31. package/dist/acp/tool-bridge.js +381 -0
  32. package/dist/acp/tool-bridge.js.map +1 -0
  33. package/dist/acp/types.d.ts +314 -0
  34. package/dist/acp/types.d.ts.map +1 -0
  35. package/dist/acp/types.js +8 -0
  36. package/dist/acp/types.js.map +1 -0
  37. package/dist/cli.d.ts +9 -0
  38. package/dist/cli.d.ts.map +1 -0
  39. package/dist/cli.js +185 -184
  40. package/dist/cli.js.map +1 -0
  41. package/dist/commands/acp.d.ts +26 -0
  42. package/dist/commands/acp.d.ts.map +1 -0
  43. package/dist/commands/acp.js +492 -0
  44. package/dist/commands/acp.js.map +1 -0
  45. package/dist/commands/cache.d.ts +33 -0
  46. package/dist/commands/cache.d.ts.map +1 -0
  47. package/dist/commands/cache.js +537 -0
  48. package/dist/commands/cache.js.map +1 -0
  49. package/dist/commands/config.d.ts +10 -0
  50. package/dist/commands/config.d.ts.map +1 -0
  51. package/dist/commands/config.js +367 -0
  52. package/dist/commands/config.js.map +1 -0
  53. package/dist/commands/consent.d.ts +21 -0
  54. package/dist/commands/consent.d.ts.map +1 -0
  55. package/dist/commands/consent.js +334 -0
  56. package/dist/commands/consent.js.map +1 -0
  57. package/dist/commands/data.d.ts +24 -0
  58. package/dist/commands/data.d.ts.map +1 -0
  59. package/dist/commands/data.js +586 -0
  60. package/dist/commands/data.js.map +1 -0
  61. package/dist/commands/index.d.ts +145 -0
  62. package/dist/commands/index.d.ts.map +1 -0
  63. package/dist/commands/index.js +210 -0
  64. package/dist/commands/index.js.map +1 -0
  65. package/dist/commands/init.d.ts +106 -0
  66. package/dist/commands/init.d.ts.map +1 -0
  67. package/dist/commands/init.js +349 -0
  68. package/dist/commands/init.js.map +1 -0
  69. package/dist/commands/logs.d.ts +13 -0
  70. package/dist/commands/logs.d.ts.map +1 -0
  71. package/dist/commands/logs.js +359 -0
  72. package/dist/commands/logs.js.map +1 -0
  73. package/dist/commands/mcp.d.ts +20 -0
  74. package/dist/commands/mcp.d.ts.map +1 -0
  75. package/dist/commands/mcp.js +687 -0
  76. package/dist/commands/mcp.js.map +1 -0
  77. package/dist/commands/reset.d.ts +20 -0
  78. package/dist/commands/reset.d.ts.map +1 -0
  79. package/dist/commands/reset.js +372 -0
  80. package/dist/commands/reset.js.map +1 -0
  81. package/dist/commands/setup.d.ts +74 -0
  82. package/dist/commands/setup.d.ts.map +1 -0
  83. package/dist/commands/setup.js +863 -0
  84. package/dist/commands/setup.js.map +1 -0
  85. package/dist/commands/slash/agents.d.ts +40 -0
  86. package/dist/commands/slash/agents.d.ts.map +1 -0
  87. package/dist/commands/slash/agents.js +519 -0
  88. package/dist/commands/slash/agents.js.map +1 -0
  89. package/dist/commands/slash/approve.d.ts +46 -0
  90. package/dist/commands/slash/approve.d.ts.map +1 -0
  91. package/dist/commands/slash/approve.js +239 -0
  92. package/dist/commands/slash/approve.js.map +1 -0
  93. package/dist/commands/slash/attach.d.ts +70 -0
  94. package/dist/commands/slash/attach.d.ts.map +1 -0
  95. package/dist/commands/slash/attach.js +333 -0
  96. package/dist/commands/slash/attach.js.map +1 -0
  97. package/dist/commands/slash/clear.d.ts +47 -0
  98. package/dist/commands/slash/clear.d.ts.map +1 -0
  99. package/dist/commands/slash/clear.js +261 -0
  100. package/dist/commands/slash/clear.js.map +1 -0
  101. package/dist/commands/slash/commit.d.ts +40 -0
  102. package/dist/commands/slash/commit.d.ts.map +1 -0
  103. package/dist/commands/slash/commit.js +337 -0
  104. package/dist/commands/slash/commit.js.map +1 -0
  105. package/dist/commands/slash/compact.d.ts +48 -0
  106. package/dist/commands/slash/compact.d.ts.map +1 -0
  107. package/dist/commands/slash/compact.js +288 -0
  108. package/dist/commands/slash/compact.js.map +1 -0
  109. package/dist/commands/slash/config.d.ts +20 -0
  110. package/dist/commands/slash/config.d.ts.map +1 -0
  111. package/dist/commands/slash/config.js +136 -0
  112. package/dist/commands/slash/config.js.map +1 -0
  113. package/dist/commands/slash/context.d.ts +49 -0
  114. package/dist/commands/slash/context.d.ts.map +1 -0
  115. package/dist/commands/slash/context.js +430 -0
  116. package/dist/commands/slash/context.js.map +1 -0
  117. package/dist/commands/slash/cost.d.ts +34 -0
  118. package/dist/commands/slash/cost.d.ts.map +1 -0
  119. package/dist/commands/slash/cost.js +312 -0
  120. package/dist/commands/slash/cost.js.map +1 -0
  121. package/dist/commands/slash/custom.d.ts +41 -0
  122. package/dist/commands/slash/custom.d.ts.map +1 -0
  123. package/dist/commands/slash/custom.js +126 -0
  124. package/dist/commands/slash/custom.js.map +1 -0
  125. package/dist/commands/slash/exit.d.ts +25 -0
  126. package/dist/commands/slash/exit.d.ts.map +1 -0
  127. package/dist/commands/slash/exit.js +186 -0
  128. package/dist/commands/slash/exit.js.map +1 -0
  129. package/dist/commands/slash/export.d.ts +27 -0
  130. package/dist/commands/slash/export.d.ts.map +1 -0
  131. package/dist/commands/slash/export.js +318 -0
  132. package/dist/commands/slash/export.js.map +1 -0
  133. package/dist/commands/slash/files.d.ts +47 -0
  134. package/dist/commands/slash/files.d.ts.map +1 -0
  135. package/dist/commands/slash/files.js +521 -0
  136. package/dist/commands/slash/files.js.map +1 -0
  137. package/dist/commands/slash/help.d.ts +50 -0
  138. package/dist/commands/slash/help.d.ts.map +1 -0
  139. package/dist/commands/slash/help.js +282 -0
  140. package/dist/commands/slash/help.js.map +1 -0
  141. package/dist/commands/slash/index-cmd.d.ts +41 -0
  142. package/dist/commands/slash/index-cmd.d.ts.map +1 -0
  143. package/dist/commands/slash/index-cmd.js +349 -0
  144. package/dist/commands/slash/index-cmd.js.map +1 -0
  145. package/dist/commands/slash/index.d.ts +97 -0
  146. package/dist/commands/slash/index.d.ts.map +1 -0
  147. package/dist/commands/slash/index.js +251 -0
  148. package/dist/commands/slash/index.js.map +1 -0
  149. package/dist/commands/slash/login.d.ts +23 -0
  150. package/dist/commands/slash/login.d.ts.map +1 -0
  151. package/dist/commands/slash/login.js +175 -0
  152. package/dist/commands/slash/login.js.map +1 -0
  153. package/dist/commands/slash/logout.d.ts +23 -0
  154. package/dist/commands/slash/logout.d.ts.map +1 -0
  155. package/dist/commands/slash/logout.js +153 -0
  156. package/dist/commands/slash/logout.js.map +1 -0
  157. package/dist/commands/slash/logs.d.ts +29 -0
  158. package/dist/commands/slash/logs.d.ts.map +1 -0
  159. package/dist/commands/slash/logs.js +423 -0
  160. package/dist/commands/slash/logs.js.map +1 -0
  161. package/dist/commands/slash/mcp.d.ts +29 -0
  162. package/dist/commands/slash/mcp.d.ts.map +1 -0
  163. package/dist/commands/slash/mcp.js +1026 -0
  164. package/dist/commands/slash/mcp.js.map +1 -0
  165. package/dist/commands/slash/model.d.ts +60 -0
  166. package/dist/commands/slash/model.d.ts.map +1 -0
  167. package/dist/commands/slash/model.js +466 -0
  168. package/dist/commands/slash/model.js.map +1 -0
  169. package/dist/commands/slash/personality.d.ts +40 -0
  170. package/dist/commands/slash/personality.d.ts.map +1 -0
  171. package/dist/commands/slash/personality.js +272 -0
  172. package/dist/commands/slash/personality.js.map +1 -0
  173. package/dist/commands/slash/purge.d.ts +42 -0
  174. package/dist/commands/slash/purge.d.ts.map +1 -0
  175. package/dist/commands/slash/purge.js +233 -0
  176. package/dist/commands/slash/purge.js.map +1 -0
  177. package/dist/commands/slash/reset.d.ts +44 -0
  178. package/dist/commands/slash/reset.d.ts.map +1 -0
  179. package/dist/commands/slash/reset.js +326 -0
  180. package/dist/commands/slash/reset.js.map +1 -0
  181. package/dist/commands/slash/skills.d.ts +40 -0
  182. package/dist/commands/slash/skills.d.ts.map +1 -0
  183. package/dist/commands/slash/skills.js +207 -0
  184. package/dist/commands/slash/skills.js.map +1 -0
  185. package/dist/commands/slash/tokens.d.ts +34 -0
  186. package/dist/commands/slash/tokens.d.ts.map +1 -0
  187. package/dist/commands/slash/tokens.js +205 -0
  188. package/dist/commands/slash/tokens.js.map +1 -0
  189. package/dist/commands/slash/unleash.d.ts +50 -0
  190. package/dist/commands/slash/unleash.d.ts.map +1 -0
  191. package/dist/commands/slash/unleash.js +262 -0
  192. package/dist/commands/slash/unleash.js.map +1 -0
  193. package/dist/commands/slash/update.d.ts +34 -0
  194. package/dist/commands/slash/update.d.ts.map +1 -0
  195. package/dist/commands/slash/update.js +364 -0
  196. package/dist/commands/slash/update.js.map +1 -0
  197. package/dist/commands/slash/wrap.d.ts +18 -0
  198. package/dist/commands/slash/wrap.d.ts.map +1 -0
  199. package/dist/commands/slash/wrap.js +21 -0
  200. package/dist/commands/slash/wrap.js.map +1 -0
  201. package/dist/commands/tokens.d.ts +26 -0
  202. package/dist/commands/tokens.d.ts.map +1 -0
  203. package/dist/commands/tokens.js +245 -0
  204. package/dist/commands/tokens.js.map +1 -0
  205. package/dist/constants/builtin-agents.d.ts +27 -0
  206. package/dist/constants/builtin-agents.d.ts.map +1 -0
  207. package/dist/constants/builtin-agents.js +710 -0
  208. package/dist/constants/builtin-agents.js.map +1 -0
  209. package/dist/constants/builtin-skills.d.ts +32 -0
  210. package/dist/constants/builtin-skills.d.ts.map +1 -0
  211. package/dist/constants/builtin-skills.js +389 -0
  212. package/dist/constants/builtin-skills.js.map +1 -0
  213. package/dist/constants/defaults.d.ts +448 -0
  214. package/dist/constants/defaults.d.ts.map +1 -0
  215. package/dist/constants/defaults.js +829 -0
  216. package/dist/constants/defaults.js.map +1 -0
  217. package/dist/constants/index.d.ts +27 -0
  218. package/dist/constants/index.d.ts.map +1 -0
  219. package/dist/constants/index.js +85 -0
  220. package/dist/constants/index.js.map +1 -0
  221. package/dist/constants/install-hints.d.ts +7 -0
  222. package/dist/constants/install-hints.d.ts.map +1 -0
  223. package/dist/constants/install-hints.js +123 -0
  224. package/dist/constants/install-hints.js.map +1 -0
  225. package/dist/constants/models.d.ts +255 -0
  226. package/dist/constants/models.d.ts.map +1 -0
  227. package/dist/constants/models.js +596 -0
  228. package/dist/constants/models.js.map +1 -0
  229. package/dist/constants/schedule.d.ts +43 -0
  230. package/dist/constants/schedule.d.ts.map +1 -0
  231. package/dist/constants/schedule.js +110 -0
  232. package/dist/constants/schedule.js.map +1 -0
  233. package/dist/constants/system-utilities.d.ts +57 -0
  234. package/dist/constants/system-utilities.d.ts.map +1 -0
  235. package/dist/constants/system-utilities.js +421 -0
  236. package/dist/constants/system-utilities.js.map +1 -0
  237. package/dist/constants/token-limits.d.ts +102 -0
  238. package/dist/constants/token-limits.d.ts.map +1 -0
  239. package/dist/constants/token-limits.js +286 -0
  240. package/dist/constants/token-limits.js.map +1 -0
  241. package/dist/core/autocomplete.d.ts +132 -0
  242. package/dist/core/autocomplete.d.ts.map +1 -0
  243. package/dist/core/autocomplete.js +653 -0
  244. package/dist/core/autocomplete.js.map +1 -0
  245. package/dist/core/command-parser.d.ts +301 -0
  246. package/dist/core/command-parser.d.ts.map +1 -0
  247. package/dist/core/command-parser.js +526 -0
  248. package/dist/core/command-parser.js.map +1 -0
  249. package/dist/core/context-builder.d.ts +264 -0
  250. package/dist/core/context-builder.d.ts.map +1 -0
  251. package/dist/core/context-builder.js +1018 -0
  252. package/dist/core/context-builder.js.map +1 -0
  253. package/dist/core/event-emitter.d.ts +411 -0
  254. package/dist/core/event-emitter.d.ts.map +1 -0
  255. package/dist/core/event-emitter.js +138 -0
  256. package/dist/core/event-emitter.js.map +1 -0
  257. package/dist/core/history-manager.d.ts +62 -0
  258. package/dist/core/history-manager.d.ts.map +1 -0
  259. package/dist/core/history-manager.js +151 -0
  260. package/dist/core/history-manager.js.map +1 -0
  261. package/dist/core/slash-command-handler.d.ts +352 -0
  262. package/dist/core/slash-command-handler.d.ts.map +1 -0
  263. package/dist/core/slash-command-handler.js +563 -0
  264. package/dist/core/slash-command-handler.js.map +1 -0
  265. package/dist/core/task-processor.d.ts +179 -0
  266. package/dist/core/task-processor.d.ts.map +1 -0
  267. package/dist/core/task-processor.js +519 -0
  268. package/dist/core/task-processor.js.map +1 -0
  269. package/dist/index.d.ts +90 -0
  270. package/dist/index.d.ts.map +1 -0
  271. package/dist/index.js +4 -3
  272. package/dist/index.js.map +1 -0
  273. package/dist/prompts/agent-prompt-generator.d.ts +26 -0
  274. package/dist/prompts/agent-prompt-generator.d.ts.map +1 -0
  275. package/dist/prompts/agent-prompt-generator.js +244 -0
  276. package/dist/prompts/agent-prompt-generator.js.map +1 -0
  277. package/dist/prompts/commit-message.d.ts +35 -0
  278. package/dist/prompts/commit-message.d.ts.map +1 -0
  279. package/dist/prompts/commit-message.js +187 -0
  280. package/dist/prompts/commit-message.js.map +1 -0
  281. package/dist/prompts/conversation.d.ts +51 -0
  282. package/dist/prompts/conversation.d.ts.map +1 -0
  283. package/dist/prompts/conversation.js +115 -0
  284. package/dist/prompts/conversation.js.map +1 -0
  285. package/dist/prompts/index.d.ts +39 -0
  286. package/dist/prompts/index.d.ts.map +1 -0
  287. package/dist/prompts/index.js +74 -0
  288. package/dist/prompts/index.js.map +1 -0
  289. package/dist/prompts/memory.d.ts +6 -0
  290. package/dist/prompts/memory.d.ts.map +1 -0
  291. package/dist/prompts/memory.js +29 -0
  292. package/dist/prompts/memory.js.map +1 -0
  293. package/dist/prompts/personality.d.ts +77 -0
  294. package/dist/prompts/personality.d.ts.map +1 -0
  295. package/dist/prompts/personality.js +393 -0
  296. package/dist/prompts/personality.js.map +1 -0
  297. package/dist/prompts/plan-generator.d.ts +144 -0
  298. package/dist/prompts/plan-generator.d.ts.map +1 -0
  299. package/dist/prompts/plan-generator.js +553 -0
  300. package/dist/prompts/plan-generator.js.map +1 -0
  301. package/dist/prompts/system.d.ts +95 -0
  302. package/dist/prompts/system.d.ts.map +1 -0
  303. package/dist/prompts/system.js +461 -0
  304. package/dist/prompts/system.js.map +1 -0
  305. package/dist/prompts/task-processor.d.ts +94 -0
  306. package/dist/prompts/task-processor.d.ts.map +1 -0
  307. package/dist/prompts/task-processor.js +554 -0
  308. package/dist/prompts/task-processor.js.map +1 -0
  309. package/dist/prompts/unguarded.d.ts +78 -0
  310. package/dist/prompts/unguarded.d.ts.map +1 -0
  311. package/dist/prompts/unguarded.js +418 -0
  312. package/dist/prompts/unguarded.js.map +1 -0
  313. package/dist/prompts/utils.d.ts +73 -0
  314. package/dist/prompts/utils.d.ts.map +1 -0
  315. package/dist/prompts/utils.js +114 -0
  316. package/dist/prompts/utils.js.map +1 -0
  317. package/dist/prompts/workflow.d.ts +241 -0
  318. package/dist/prompts/workflow.d.ts.map +1 -0
  319. package/dist/prompts/workflow.js +608 -0
  320. package/dist/prompts/workflow.js.map +1 -0
  321. package/dist/services/action-logger.d.ts +383 -0
  322. package/dist/services/action-logger.d.ts.map +1 -0
  323. package/dist/services/action-logger.js +544 -0
  324. package/dist/services/action-logger.js.map +1 -0
  325. package/dist/services/agent-budget-allocator.d.ts +111 -0
  326. package/dist/services/agent-budget-allocator.d.ts.map +1 -0
  327. package/dist/services/agent-budget-allocator.js +278 -0
  328. package/dist/services/agent-budget-allocator.js.map +1 -0
  329. package/dist/services/agent-manager.d.ts +181 -0
  330. package/dist/services/agent-manager.d.ts.map +1 -0
  331. package/dist/services/agent-manager.js +749 -0
  332. package/dist/services/agent-manager.js.map +1 -0
  333. package/dist/services/agent-spawner.d.ts +138 -0
  334. package/dist/services/agent-spawner.d.ts.map +1 -0
  335. package/dist/services/agent-spawner.js +748 -0
  336. package/dist/services/agent-spawner.js.map +1 -0
  337. package/dist/services/agent-state-service.d.ts +145 -0
  338. package/dist/services/agent-state-service.d.ts.map +1 -0
  339. package/dist/services/agent-state-service.js +247 -0
  340. package/dist/services/agent-state-service.js.map +1 -0
  341. package/dist/services/anthropic-client.d.ts +357 -0
  342. package/dist/services/anthropic-client.d.ts.map +1 -0
  343. package/dist/services/anthropic-client.js +1451 -0
  344. package/dist/services/anthropic-client.js.map +1 -0
  345. package/dist/services/approval-manager.d.ts +385 -0
  346. package/dist/services/approval-manager.d.ts.map +1 -0
  347. package/dist/services/approval-manager.js +1044 -0
  348. package/dist/services/approval-manager.js.map +1 -0
  349. package/dist/services/audit-logger.d.ts +245 -0
  350. package/dist/services/audit-logger.d.ts.map +1 -0
  351. package/dist/services/audit-logger.js +324 -0
  352. package/dist/services/audit-logger.js.map +1 -0
  353. package/dist/services/backup-manager.d.ts +136 -0
  354. package/dist/services/backup-manager.d.ts.map +1 -0
  355. package/dist/services/backup-manager.js +260 -0
  356. package/dist/services/backup-manager.js.map +1 -0
  357. package/dist/services/cache-service.d.ts +247 -0
  358. package/dist/services/cache-service.d.ts.map +1 -0
  359. package/dist/services/cache-service.js +558 -0
  360. package/dist/services/cache-service.js.map +1 -0
  361. package/dist/services/chat-archival-service.d.ts +108 -0
  362. package/dist/services/chat-archival-service.d.ts.map +1 -0
  363. package/dist/services/chat-archival-service.js +465 -0
  364. package/dist/services/chat-archival-service.js.map +1 -0
  365. package/dist/services/codebase-indexer.d.ts +272 -0
  366. package/dist/services/codebase-indexer.d.ts.map +1 -0
  367. package/dist/services/codebase-indexer.js +863 -0
  368. package/dist/services/codebase-indexer.js.map +1 -0
  369. package/dist/services/compass-auth-service.d.ts +204 -0
  370. package/dist/services/compass-auth-service.d.ts.map +1 -0
  371. package/dist/services/compass-auth-service.js +391 -0
  372. package/dist/services/compass-auth-service.js.map +1 -0
  373. package/dist/services/complexity-classifier.d.ts +208 -0
  374. package/dist/services/complexity-classifier.d.ts.map +1 -0
  375. package/dist/services/complexity-classifier.js +1410 -0
  376. package/dist/services/complexity-classifier.js.map +1 -0
  377. package/dist/services/config-manager.d.ts +278 -0
  378. package/dist/services/config-manager.d.ts.map +1 -0
  379. package/dist/services/config-manager.js +651 -0
  380. package/dist/services/config-manager.js.map +1 -0
  381. package/dist/services/consent-manager.d.ts +239 -0
  382. package/dist/services/consent-manager.d.ts.map +1 -0
  383. package/dist/services/consent-manager.js +516 -0
  384. package/dist/services/consent-manager.js.map +1 -0
  385. package/dist/services/conversation-compactor.d.ts +223 -0
  386. package/dist/services/conversation-compactor.d.ts.map +1 -0
  387. package/dist/services/conversation-compactor.js +750 -0
  388. package/dist/services/conversation-compactor.js.map +1 -0
  389. package/dist/services/cost-tracker.d.ts +167 -0
  390. package/dist/services/cost-tracker.d.ts.map +1 -0
  391. package/dist/services/cost-tracker.js +199 -0
  392. package/dist/services/cost-tracker.js.map +1 -0
  393. package/dist/services/credential-store.d.ts +273 -0
  394. package/dist/services/credential-store.d.ts.map +1 -0
  395. package/dist/services/credential-store.js +877 -0
  396. package/dist/services/credential-store.js.map +1 -0
  397. package/dist/services/custom-command-service.d.ts +112 -0
  398. package/dist/services/custom-command-service.d.ts.map +1 -0
  399. package/dist/services/custom-command-service.js +464 -0
  400. package/dist/services/custom-command-service.js.map +1 -0
  401. package/dist/services/default-statusline-renderer.d.ts +60 -0
  402. package/dist/services/default-statusline-renderer.d.ts.map +1 -0
  403. package/dist/services/default-statusline-renderer.js +110 -0
  404. package/dist/services/default-statusline-renderer.js.map +1 -0
  405. package/dist/services/enhanced-context-gatherer.d.ts +116 -0
  406. package/dist/services/enhanced-context-gatherer.d.ts.map +1 -0
  407. package/dist/services/enhanced-context-gatherer.js +605 -0
  408. package/dist/services/enhanced-context-gatherer.js.map +1 -0
  409. package/dist/services/file-hash-tracker.d.ts +95 -0
  410. package/dist/services/file-hash-tracker.d.ts.map +1 -0
  411. package/dist/services/file-hash-tracker.js +199 -0
  412. package/dist/services/file-hash-tracker.js.map +1 -0
  413. package/dist/services/file-service.d.ts +274 -0
  414. package/dist/services/file-service.d.ts.map +1 -0
  415. package/dist/services/file-service.js +876 -0
  416. package/dist/services/file-service.js.map +1 -0
  417. package/dist/services/git-service.d.ts +536 -0
  418. package/dist/services/git-service.d.ts.map +1 -0
  419. package/dist/services/git-service.js +1215 -0
  420. package/dist/services/git-service.js.map +1 -0
  421. package/dist/services/hook-service.d.ts +148 -0
  422. package/dist/services/hook-service.d.ts.map +1 -0
  423. package/dist/services/hook-service.js +705 -0
  424. package/dist/services/hook-service.js.map +1 -0
  425. package/dist/services/ide-state-service.d.ts +114 -0
  426. package/dist/services/ide-state-service.d.ts.map +1 -0
  427. package/dist/services/ide-state-service.js +204 -0
  428. package/dist/services/ide-state-service.js.map +1 -0
  429. package/dist/services/interactive-clarifier.d.ts +90 -0
  430. package/dist/services/interactive-clarifier.d.ts.map +1 -0
  431. package/dist/services/interactive-clarifier.js +446 -0
  432. package/dist/services/interactive-clarifier.js.map +1 -0
  433. package/dist/services/iteration-scoper.d.ts +225 -0
  434. package/dist/services/iteration-scoper.d.ts.map +1 -0
  435. package/dist/services/iteration-scoper.js +387 -0
  436. package/dist/services/iteration-scoper.js.map +1 -0
  437. package/dist/services/llm-plan-generator.d.ts +44 -0
  438. package/dist/services/llm-plan-generator.d.ts.map +1 -0
  439. package/dist/services/llm-plan-generator.js +863 -0
  440. package/dist/services/llm-plan-generator.js.map +1 -0
  441. package/dist/services/llm-system-prompt-generator.d.ts +85 -0
  442. package/dist/services/llm-system-prompt-generator.d.ts.map +1 -0
  443. package/dist/services/llm-system-prompt-generator.js +257 -0
  444. package/dist/services/llm-system-prompt-generator.js.map +1 -0
  445. package/dist/services/log-interpreter.d.ts +190 -0
  446. package/dist/services/log-interpreter.d.ts.map +1 -0
  447. package/dist/services/log-interpreter.js +520 -0
  448. package/dist/services/log-interpreter.js.map +1 -0
  449. package/dist/services/mcp-config-manager.d.ts +141 -0
  450. package/dist/services/mcp-config-manager.d.ts.map +1 -0
  451. package/dist/services/mcp-config-manager.js +678 -0
  452. package/dist/services/mcp-config-manager.js.map +1 -0
  453. package/dist/services/mcp-oauth-service.d.ts +170 -0
  454. package/dist/services/mcp-oauth-service.d.ts.map +1 -0
  455. package/dist/services/mcp-oauth-service.js +892 -0
  456. package/dist/services/mcp-oauth-service.js.map +1 -0
  457. package/dist/services/mcp-plugin-support.d.ts +81 -0
  458. package/dist/services/mcp-plugin-support.d.ts.map +1 -0
  459. package/dist/services/mcp-plugin-support.js +305 -0
  460. package/dist/services/mcp-plugin-support.js.map +1 -0
  461. package/dist/services/mcp-server-manager.d.ts +134 -0
  462. package/dist/services/mcp-server-manager.d.ts.map +1 -0
  463. package/dist/services/mcp-server-manager.js +613 -0
  464. package/dist/services/mcp-server-manager.js.map +1 -0
  465. package/dist/services/mcp-tool-integration.d.ts +119 -0
  466. package/dist/services/mcp-tool-integration.d.ts.map +1 -0
  467. package/dist/services/mcp-tool-integration.js +381 -0
  468. package/dist/services/mcp-tool-integration.js.map +1 -0
  469. package/dist/services/mcp-transport.d.ts +105 -0
  470. package/dist/services/mcp-transport.d.ts.map +1 -0
  471. package/dist/services/mcp-transport.js +1316 -0
  472. package/dist/services/mcp-transport.js.map +1 -0
  473. package/dist/services/memory-service.d.ts +55 -0
  474. package/dist/services/memory-service.d.ts.map +1 -0
  475. package/dist/services/memory-service.js +251 -0
  476. package/dist/services/memory-service.js.map +1 -0
  477. package/dist/services/model-availability.d.ts +64 -0
  478. package/dist/services/model-availability.d.ts.map +1 -0
  479. package/dist/services/model-availability.js +114 -0
  480. package/dist/services/model-availability.js.map +1 -0
  481. package/dist/services/plan-generator.d.ts +98 -0
  482. package/dist/services/plan-generator.d.ts.map +1 -0
  483. package/dist/services/plan-generator.js +658 -0
  484. package/dist/services/plan-generator.js.map +1 -0
  485. package/dist/services/plan-mode-fallback.d.ts +80 -0
  486. package/dist/services/plan-mode-fallback.d.ts.map +1 -0
  487. package/dist/services/plan-mode-fallback.js +307 -0
  488. package/dist/services/plan-mode-fallback.js.map +1 -0
  489. package/dist/services/plan-mode-handler.d.ts +42 -0
  490. package/dist/services/plan-mode-handler.d.ts.map +1 -0
  491. package/dist/services/plan-mode-handler.js +388 -0
  492. package/dist/services/plan-mode-handler.js.map +1 -0
  493. package/dist/services/plan-persistence.d.ts +203 -0
  494. package/dist/services/plan-persistence.d.ts.map +1 -0
  495. package/dist/services/plan-persistence.js +538 -0
  496. package/dist/services/plan-persistence.js.map +1 -0
  497. package/dist/services/prompt-preprocessor.d.ts +73 -0
  498. package/dist/services/prompt-preprocessor.d.ts.map +1 -0
  499. package/dist/services/prompt-preprocessor.js +146 -0
  500. package/dist/services/prompt-preprocessor.js.map +1 -0
  501. package/dist/services/rating-service.d.ts +84 -0
  502. package/dist/services/rating-service.d.ts.map +1 -0
  503. package/dist/services/rating-service.js +171 -0
  504. package/dist/services/rating-service.js.map +1 -0
  505. package/dist/services/rating-state-manager.d.ts +131 -0
  506. package/dist/services/rating-state-manager.d.ts.map +1 -0
  507. package/dist/services/rating-state-manager.js +270 -0
  508. package/dist/services/rating-state-manager.js.map +1 -0
  509. package/dist/services/sdk-runner.d.ts +113 -0
  510. package/dist/services/sdk-runner.d.ts.map +1 -0
  511. package/dist/services/sdk-runner.js +1424 -0
  512. package/dist/services/sdk-runner.js.map +1 -0
  513. package/dist/services/session-manager.d.ts +528 -0
  514. package/dist/services/session-manager.d.ts.map +1 -0
  515. package/dist/services/session-manager.js +1184 -0
  516. package/dist/services/session-manager.js.map +1 -0
  517. package/dist/services/shell-executor.d.ts +337 -0
  518. package/dist/services/shell-executor.d.ts.map +1 -0
  519. package/dist/services/shell-executor.js +1201 -0
  520. package/dist/services/shell-executor.js.map +1 -0
  521. package/dist/services/skill-service.d.ts +149 -0
  522. package/dist/services/skill-service.d.ts.map +1 -0
  523. package/dist/services/skill-service.js +594 -0
  524. package/dist/services/skill-service.js.map +1 -0
  525. package/dist/services/statusline-executor.d.ts +102 -0
  526. package/dist/services/statusline-executor.d.ts.map +1 -0
  527. package/dist/services/statusline-executor.js +305 -0
  528. package/dist/services/statusline-executor.js.map +1 -0
  529. package/dist/services/step-tracker.d.ts +356 -0
  530. package/dist/services/step-tracker.d.ts.map +1 -0
  531. package/dist/services/step-tracker.js +634 -0
  532. package/dist/services/step-tracker.js.map +1 -0
  533. package/dist/services/system-event-logger.d.ts +473 -0
  534. package/dist/services/system-event-logger.d.ts.map +1 -0
  535. package/dist/services/system-event-logger.js +790 -0
  536. package/dist/services/system-event-logger.js.map +1 -0
  537. package/dist/services/system-utility-detector.d.ts +91 -0
  538. package/dist/services/system-utility-detector.d.ts.map +1 -0
  539. package/dist/services/system-utility-detector.js +238 -0
  540. package/dist/services/system-utility-detector.js.map +1 -0
  541. package/dist/services/team-context-store.d.ts +100 -0
  542. package/dist/services/team-context-store.d.ts.map +1 -0
  543. package/dist/services/team-context-store.js +513 -0
  544. package/dist/services/team-context-store.js.map +1 -0
  545. package/dist/services/temp-file-service.d.ts +164 -0
  546. package/dist/services/temp-file-service.d.ts.map +1 -0
  547. package/dist/services/temp-file-service.js +303 -0
  548. package/dist/services/temp-file-service.js.map +1 -0
  549. package/dist/services/token-limit-enforcer.d.ts +53 -0
  550. package/dist/services/token-limit-enforcer.d.ts.map +1 -0
  551. package/dist/services/token-limit-enforcer.js +90 -0
  552. package/dist/services/token-limit-enforcer.js.map +1 -0
  553. package/dist/services/token-limit-store.d.ts +105 -0
  554. package/dist/services/token-limit-store.d.ts.map +1 -0
  555. package/dist/services/token-limit-store.js +288 -0
  556. package/dist/services/token-limit-store.js.map +1 -0
  557. package/dist/services/token-tracker.d.ts +290 -0
  558. package/dist/services/token-tracker.d.ts.map +1 -0
  559. package/dist/services/token-tracker.js +751 -0
  560. package/dist/services/token-tracker.js.map +1 -0
  561. package/dist/services/tool-registry.d.ts +302 -0
  562. package/dist/services/tool-registry.d.ts.map +1 -0
  563. package/dist/services/tool-registry.js +606 -0
  564. package/dist/services/tool-registry.js.map +1 -0
  565. package/dist/services/tools-logger.d.ts +152 -0
  566. package/dist/services/tools-logger.d.ts.map +1 -0
  567. package/dist/services/tools-logger.js +222 -0
  568. package/dist/services/tools-logger.js.map +1 -0
  569. package/dist/services/update-plan-handler.d.ts +56 -0
  570. package/dist/services/update-plan-handler.d.ts.map +1 -0
  571. package/dist/services/update-plan-handler.js +372 -0
  572. package/dist/services/update-plan-handler.js.map +1 -0
  573. package/dist/services/update-service.d.ts +197 -0
  574. package/dist/services/update-service.d.ts.map +1 -0
  575. package/dist/services/update-service.js +749 -0
  576. package/dist/services/update-service.js.map +1 -0
  577. package/dist/services/verifier.d.ts +113 -0
  578. package/dist/services/verifier.d.ts.map +1 -0
  579. package/dist/services/verifier.js +541 -0
  580. package/dist/services/verifier.js.map +1 -0
  581. package/dist/services/workflow-manager.d.ts +277 -0
  582. package/dist/services/workflow-manager.d.ts.map +1 -0
  583. package/dist/services/workflow-manager.js +616 -0
  584. package/dist/services/workflow-manager.js.map +1 -0
  585. package/dist/services/workflow-orchestrator.d.ts +148 -0
  586. package/dist/services/workflow-orchestrator.d.ts.map +1 -0
  587. package/dist/services/workflow-orchestrator.js +617 -0
  588. package/dist/services/workflow-orchestrator.js.map +1 -0
  589. package/dist/services/worktree-manager.d.ts +36 -0
  590. package/dist/services/worktree-manager.d.ts.map +1 -0
  591. package/dist/services/worktree-manager.js +185 -0
  592. package/dist/services/worktree-manager.js.map +1 -0
  593. package/dist/templates/ascii-art.d.ts +136 -0
  594. package/dist/templates/ascii-art.d.ts.map +1 -0
  595. package/dist/templates/ascii-art.js +286 -0
  596. package/dist/templates/ascii-art.js.map +1 -0
  597. package/dist/templates/help.d.ts +186 -0
  598. package/dist/templates/help.d.ts.map +1 -0
  599. package/dist/templates/help.js +588 -0
  600. package/dist/templates/help.js.map +1 -0
  601. package/dist/templates/prompts/workflow-prompts.d.ts +9 -0
  602. package/dist/templates/prompts/workflow-prompts.d.ts.map +1 -0
  603. package/dist/templates/prompts/workflow-prompts.js +9 -0
  604. package/dist/templates/prompts/workflow-prompts.js.map +1 -0
  605. package/dist/tools/agent-tools.d.ts +9 -0
  606. package/dist/tools/agent-tools.d.ts.map +1 -0
  607. package/dist/tools/agent-tools.js +349 -0
  608. package/dist/tools/agent-tools.js.map +1 -0
  609. package/dist/tools/edit-replacers.d.ts +90 -0
  610. package/dist/tools/edit-replacers.d.ts.map +1 -0
  611. package/dist/tools/edit-replacers.js +553 -0
  612. package/dist/tools/edit-replacers.js.map +1 -0
  613. package/dist/tools/file-tools.d.ts +13 -0
  614. package/dist/tools/file-tools.d.ts.map +1 -0
  615. package/dist/tools/file-tools.js +954 -0
  616. package/dist/tools/file-tools.js.map +1 -0
  617. package/dist/tools/git-tools.d.ts +9 -0
  618. package/dist/tools/git-tools.d.ts.map +1 -0
  619. package/dist/tools/git-tools.js +261 -0
  620. package/dist/tools/git-tools.js.map +1 -0
  621. package/dist/tools/index.d.ts +13 -0
  622. package/dist/tools/index.d.ts.map +1 -0
  623. package/dist/tools/index.js +70 -0
  624. package/dist/tools/index.js.map +1 -0
  625. package/dist/tools/network-tools.d.ts +8 -0
  626. package/dist/tools/network-tools.d.ts.map +1 -0
  627. package/dist/tools/network-tools.js +261 -0
  628. package/dist/tools/network-tools.js.map +1 -0
  629. package/dist/tools/openai-tools.d.ts +16 -0
  630. package/dist/tools/openai-tools.d.ts.map +1 -0
  631. package/dist/tools/openai-tools.js +385 -0
  632. package/dist/tools/openai-tools.js.map +1 -0
  633. package/dist/tools/plan-tools.d.ts +9 -0
  634. package/dist/tools/plan-tools.d.ts.map +1 -0
  635. package/dist/tools/plan-tools.js +223 -0
  636. package/dist/tools/plan-tools.js.map +1 -0
  637. package/dist/tools/schedule-tools.d.ts +9 -0
  638. package/dist/tools/schedule-tools.d.ts.map +1 -0
  639. package/dist/tools/schedule-tools.js +405 -0
  640. package/dist/tools/schedule-tools.js.map +1 -0
  641. package/dist/tools/search-tools.d.ts +8 -0
  642. package/dist/tools/search-tools.d.ts.map +1 -0
  643. package/dist/tools/search-tools.js +357 -0
  644. package/dist/tools/search-tools.js.map +1 -0
  645. package/dist/tools/shared-utils.d.ts +91 -0
  646. package/dist/tools/shared-utils.d.ts.map +1 -0
  647. package/dist/tools/shared-utils.js +385 -0
  648. package/dist/tools/shared-utils.js.map +1 -0
  649. package/dist/tools/shell-tools.d.ts +9 -0
  650. package/dist/tools/shell-tools.d.ts.map +1 -0
  651. package/dist/tools/shell-tools.js +409 -0
  652. package/dist/tools/shell-tools.js.map +1 -0
  653. package/dist/tools/skill-tools.d.ts +13 -0
  654. package/dist/tools/skill-tools.d.ts.map +1 -0
  655. package/dist/tools/skill-tools.js +244 -0
  656. package/dist/tools/skill-tools.js.map +1 -0
  657. package/dist/tools/swarm-tools.d.ts +9 -0
  658. package/dist/tools/swarm-tools.d.ts.map +1 -0
  659. package/dist/tools/swarm-tools.js +422 -0
  660. package/dist/tools/swarm-tools.js.map +1 -0
  661. package/dist/tools/user-tools.d.ts +13 -0
  662. package/dist/tools/user-tools.d.ts.map +1 -0
  663. package/dist/tools/user-tools.js +232 -0
  664. package/dist/tools/user-tools.js.map +1 -0
  665. package/dist/types/agent-process.d.ts +244 -0
  666. package/dist/types/agent-process.d.ts.map +1 -0
  667. package/dist/types/agent-process.js +93 -0
  668. package/dist/types/agent-process.js.map +1 -0
  669. package/dist/types/agent.d.ts +358 -0
  670. package/dist/types/agent.d.ts.map +1 -0
  671. package/dist/types/agent.js +171 -0
  672. package/dist/types/agent.js.map +1 -0
  673. package/dist/types/anthropic.d.ts +438 -0
  674. package/dist/types/anthropic.d.ts.map +1 -0
  675. package/dist/types/anthropic.js +9 -0
  676. package/dist/types/anthropic.js.map +1 -0
  677. package/dist/types/approval.d.ts +332 -0
  678. package/dist/types/approval.d.ts.map +1 -0
  679. package/dist/types/approval.js +44 -0
  680. package/dist/types/approval.js.map +1 -0
  681. package/dist/types/autocomplete.d.ts +57 -0
  682. package/dist/types/autocomplete.d.ts.map +1 -0
  683. package/dist/types/autocomplete.js +7 -0
  684. package/dist/types/autocomplete.js.map +1 -0
  685. package/dist/types/chat-archive.d.ts +161 -0
  686. package/dist/types/chat-archive.d.ts.map +1 -0
  687. package/dist/types/chat-archive.js +36 -0
  688. package/dist/types/chat-archive.js.map +1 -0
  689. package/dist/types/config.d.ts +268 -0
  690. package/dist/types/config.d.ts.map +1 -0
  691. package/dist/types/config.js +188 -0
  692. package/dist/types/config.js.map +1 -0
  693. package/dist/types/consent.d.ts +191 -0
  694. package/dist/types/consent.d.ts.map +1 -0
  695. package/dist/types/consent.js +119 -0
  696. package/dist/types/consent.js.map +1 -0
  697. package/dist/types/custom-command.d.ts +139 -0
  698. package/dist/types/custom-command.d.ts.map +1 -0
  699. package/dist/types/custom-command.js +7 -0
  700. package/dist/types/custom-command.js.map +1 -0
  701. package/dist/types/git.d.ts +20 -0
  702. package/dist/types/git.d.ts.map +1 -0
  703. package/dist/types/git.js +2 -0
  704. package/dist/types/git.js.map +1 -0
  705. package/dist/types/hook.d.ts +342 -0
  706. package/dist/types/hook.d.ts.map +1 -0
  707. package/dist/types/hook.js +84 -0
  708. package/dist/types/hook.js.map +1 -0
  709. package/dist/types/index.d.ts +86 -0
  710. package/dist/types/index.d.ts.map +1 -0
  711. package/dist/types/index.js +71 -0
  712. package/dist/types/index.js.map +1 -0
  713. package/dist/types/mcp.d.ts +456 -0
  714. package/dist/types/mcp.d.ts.map +1 -0
  715. package/dist/types/mcp.js +94 -0
  716. package/dist/types/mcp.js.map +1 -0
  717. package/dist/types/rating.d.ts +110 -0
  718. package/dist/types/rating.d.ts.map +1 -0
  719. package/dist/types/rating.js +53 -0
  720. package/dist/types/rating.js.map +1 -0
  721. package/dist/types/schedule.d.ts +91 -0
  722. package/dist/types/schedule.d.ts.map +1 -0
  723. package/dist/types/schedule.js +8 -0
  724. package/dist/types/schedule.js.map +1 -0
  725. package/dist/types/session.d.ts +361 -0
  726. package/dist/types/session.d.ts.map +1 -0
  727. package/dist/types/session.js +9 -0
  728. package/dist/types/session.js.map +1 -0
  729. package/dist/types/skill.d.ts +258 -0
  730. package/dist/types/skill.d.ts.map +1 -0
  731. package/dist/types/skill.js +79 -0
  732. package/dist/types/skill.js.map +1 -0
  733. package/dist/types/statusline.d.ts +212 -0
  734. package/dist/types/statusline.d.ts.map +1 -0
  735. package/dist/types/statusline.js +8 -0
  736. package/dist/types/statusline.js.map +1 -0
  737. package/dist/types/stream.d.ts +61 -0
  738. package/dist/types/stream.d.ts.map +1 -0
  739. package/dist/types/stream.js +17 -0
  740. package/dist/types/stream.js.map +1 -0
  741. package/dist/types/swarm.d.ts +132 -0
  742. package/dist/types/swarm.d.ts.map +1 -0
  743. package/dist/types/swarm.js +21 -0
  744. package/dist/types/swarm.js.map +1 -0
  745. package/dist/types/token-limits.d.ts +107 -0
  746. package/dist/types/token-limits.d.ts.map +1 -0
  747. package/dist/types/token-limits.js +57 -0
  748. package/dist/types/token-limits.js.map +1 -0
  749. package/dist/types/token.d.ts +329 -0
  750. package/dist/types/token.d.ts.map +1 -0
  751. package/dist/types/token.js +9 -0
  752. package/dist/types/token.js.map +1 -0
  753. package/dist/types/update.d.ts +189 -0
  754. package/dist/types/update.d.ts.map +1 -0
  755. package/dist/types/update.js +55 -0
  756. package/dist/types/update.js.map +1 -0
  757. package/dist/types/workflow.d.ts +396 -0
  758. package/dist/types/workflow.d.ts.map +1 -0
  759. package/dist/types/workflow.js +46 -0
  760. package/dist/types/workflow.js.map +1 -0
  761. package/dist/ui/App.d.ts +62 -0
  762. package/dist/ui/App.d.ts.map +1 -0
  763. package/dist/ui/App.js +511 -0
  764. package/dist/ui/App.js.map +1 -0
  765. package/dist/ui/InteractiveSession.d.ts +34 -0
  766. package/dist/ui/InteractiveSession.d.ts.map +1 -0
  767. package/dist/ui/InteractiveSession.js +3611 -0
  768. package/dist/ui/InteractiveSession.js.map +1 -0
  769. package/dist/ui/MCPApprovalPrompt.d.ts +27 -0
  770. package/dist/ui/MCPApprovalPrompt.d.ts.map +1 -0
  771. package/dist/ui/MCPApprovalPrompt.js +51 -0
  772. package/dist/ui/MCPApprovalPrompt.js.map +1 -0
  773. package/dist/ui/SetupWizard.d.ts +26 -0
  774. package/dist/ui/SetupWizard.d.ts.map +1 -0
  775. package/dist/ui/SetupWizard.js +396 -0
  776. package/dist/ui/SetupWizard.js.map +1 -0
  777. package/dist/ui/components/AgentCreationWizard.d.ts +36 -0
  778. package/dist/ui/components/AgentCreationWizard.d.ts.map +1 -0
  779. package/dist/ui/components/AgentCreationWizard.js +619 -0
  780. package/dist/ui/components/AgentCreationWizard.js.map +1 -0
  781. package/dist/ui/components/AgentManager.d.ts +41 -0
  782. package/dist/ui/components/AgentManager.d.ts.map +1 -0
  783. package/dist/ui/components/AgentManager.js +343 -0
  784. package/dist/ui/components/AgentManager.js.map +1 -0
  785. package/dist/ui/components/ApprovalDialog.d.ts +18 -0
  786. package/dist/ui/components/ApprovalDialog.d.ts.map +1 -0
  787. package/dist/ui/components/ApprovalDialog.js +439 -0
  788. package/dist/ui/components/ApprovalDialog.js.map +1 -0
  789. package/dist/ui/components/AsciiArt.d.ts +54 -0
  790. package/dist/ui/components/AsciiArt.d.ts.map +1 -0
  791. package/dist/ui/components/AsciiArt.js +89 -0
  792. package/dist/ui/components/AsciiArt.js.map +1 -0
  793. package/dist/ui/components/ClarificationWizard.d.ts +36 -0
  794. package/dist/ui/components/ClarificationWizard.d.ts.map +1 -0
  795. package/dist/ui/components/ClarificationWizard.js +407 -0
  796. package/dist/ui/components/ClarificationWizard.js.map +1 -0
  797. package/dist/ui/components/CompassSpinner.d.ts +15 -0
  798. package/dist/ui/components/CompassSpinner.d.ts.map +1 -0
  799. package/dist/ui/components/CompassSpinner.js +50 -0
  800. package/dist/ui/components/CompassSpinner.js.map +1 -0
  801. package/dist/ui/components/ConfirmationSelector.d.ts +45 -0
  802. package/dist/ui/components/ConfirmationSelector.d.ts.map +1 -0
  803. package/dist/ui/components/ConfirmationSelector.js +106 -0
  804. package/dist/ui/components/ConfirmationSelector.js.map +1 -0
  805. package/dist/ui/components/ContextUsage.d.ts +76 -0
  806. package/dist/ui/components/ContextUsage.d.ts.map +1 -0
  807. package/dist/ui/components/ContextUsage.js +188 -0
  808. package/dist/ui/components/ContextUsage.js.map +1 -0
  809. package/dist/ui/components/DiffPreview.d.ts +13 -0
  810. package/dist/ui/components/DiffPreview.d.ts.map +1 -0
  811. package/dist/ui/components/DiffPreview.js +30 -0
  812. package/dist/ui/components/DiffPreview.js.map +1 -0
  813. package/dist/ui/components/ExecutionModeSelector.d.ts +45 -0
  814. package/dist/ui/components/ExecutionModeSelector.d.ts.map +1 -0
  815. package/dist/ui/components/ExecutionModeSelector.js +120 -0
  816. package/dist/ui/components/ExecutionModeSelector.js.map +1 -0
  817. package/dist/ui/components/FileTree.d.ts +47 -0
  818. package/dist/ui/components/FileTree.d.ts.map +1 -0
  819. package/dist/ui/components/FileTree.js +258 -0
  820. package/dist/ui/components/FileTree.js.map +1 -0
  821. package/dist/ui/components/HelpMenu.d.ts +49 -0
  822. package/dist/ui/components/HelpMenu.d.ts.map +1 -0
  823. package/dist/ui/components/HelpMenu.js +91 -0
  824. package/dist/ui/components/HelpMenu.js.map +1 -0
  825. package/dist/ui/components/InterleavedStream.d.ts +42 -0
  826. package/dist/ui/components/InterleavedStream.d.ts.map +1 -0
  827. package/dist/ui/components/InterleavedStream.js +1500 -0
  828. package/dist/ui/components/InterleavedStream.js.map +1 -0
  829. package/dist/ui/components/ModelSelector.d.ts +81 -0
  830. package/dist/ui/components/ModelSelector.d.ts.map +1 -0
  831. package/dist/ui/components/ModelSelector.js +305 -0
  832. package/dist/ui/components/ModelSelector.js.map +1 -0
  833. package/dist/ui/components/PlanApprovalDialog.d.ts +21 -0
  834. package/dist/ui/components/PlanApprovalDialog.d.ts.map +1 -0
  835. package/dist/ui/components/PlanApprovalDialog.js +189 -0
  836. package/dist/ui/components/PlanApprovalDialog.js.map +1 -0
  837. package/dist/ui/components/PlanExecutionTracker.d.ts +53 -0
  838. package/dist/ui/components/PlanExecutionTracker.d.ts.map +1 -0
  839. package/dist/ui/components/PlanExecutionTracker.js +113 -0
  840. package/dist/ui/components/PlanExecutionTracker.js.map +1 -0
  841. package/dist/ui/components/ProgressIndicator.d.ts +151 -0
  842. package/dist/ui/components/ProgressIndicator.d.ts.map +1 -0
  843. package/dist/ui/components/ProgressIndicator.js +171 -0
  844. package/dist/ui/components/ProgressIndicator.js.map +1 -0
  845. package/dist/ui/components/Prompt.d.ts +47 -0
  846. package/dist/ui/components/Prompt.d.ts.map +1 -0
  847. package/dist/ui/components/Prompt.js +632 -0
  848. package/dist/ui/components/Prompt.js.map +1 -0
  849. package/dist/ui/components/RatingPanel.d.ts +45 -0
  850. package/dist/ui/components/RatingPanel.d.ts.map +1 -0
  851. package/dist/ui/components/RatingPanel.js +119 -0
  852. package/dist/ui/components/RatingPanel.js.map +1 -0
  853. package/dist/ui/components/StatusLine.d.ts +43 -0
  854. package/dist/ui/components/StatusLine.d.ts.map +1 -0
  855. package/dist/ui/components/StatusLine.js +44 -0
  856. package/dist/ui/components/StatusLine.js.map +1 -0
  857. package/dist/ui/components/StreamingResponse.d.ts +45 -0
  858. package/dist/ui/components/StreamingResponse.d.ts.map +1 -0
  859. package/dist/ui/components/StreamingResponse.js +56 -0
  860. package/dist/ui/components/StreamingResponse.js.map +1 -0
  861. package/dist/ui/components/TokenUsage.d.ts +89 -0
  862. package/dist/ui/components/TokenUsage.d.ts.map +1 -0
  863. package/dist/ui/components/TokenUsage.js +99 -0
  864. package/dist/ui/components/TokenUsage.js.map +1 -0
  865. package/dist/ui/components/ToolSummary.d.ts +77 -0
  866. package/dist/ui/components/ToolSummary.d.ts.map +1 -0
  867. package/dist/ui/components/ToolSummary.js +162 -0
  868. package/dist/ui/components/ToolSummary.js.map +1 -0
  869. package/dist/ui/components/UpdateNotification.d.ts +65 -0
  870. package/dist/ui/components/UpdateNotification.d.ts.map +1 -0
  871. package/dist/ui/components/UpdateNotification.js +166 -0
  872. package/dist/ui/components/UpdateNotification.js.map +1 -0
  873. package/dist/ui/diff-renderer.d.ts +18 -0
  874. package/dist/ui/diff-renderer.d.ts.map +1 -0
  875. package/dist/ui/diff-renderer.js +206 -0
  876. package/dist/ui/diff-renderer.js.map +1 -0
  877. package/dist/ui/themes/markdown-theme.d.ts +48 -0
  878. package/dist/ui/themes/markdown-theme.d.ts.map +1 -0
  879. package/dist/ui/themes/markdown-theme.js +79 -0
  880. package/dist/ui/themes/markdown-theme.js.map +1 -0
  881. package/dist/ui/themes/ui-theme.d.ts +301 -0
  882. package/dist/ui/themes/ui-theme.d.ts.map +1 -0
  883. package/dist/ui/themes/ui-theme.js +204 -0
  884. package/dist/ui/themes/ui-theme.js.map +1 -0
  885. package/dist/utils/attachment-handler.d.ts +129 -0
  886. package/dist/utils/attachment-handler.d.ts.map +1 -0
  887. package/dist/utils/attachment-handler.js +280 -0
  888. package/dist/utils/attachment-handler.js.map +1 -0
  889. package/dist/utils/backup-cleanup.d.ts +28 -0
  890. package/dist/utils/backup-cleanup.d.ts.map +1 -0
  891. package/dist/utils/backup-cleanup.js +99 -0
  892. package/dist/utils/backup-cleanup.js.map +1 -0
  893. package/dist/utils/clipboard-handler.d.ts +82 -0
  894. package/dist/utils/clipboard-handler.d.ts.map +1 -0
  895. package/dist/utils/clipboard-handler.js +311 -0
  896. package/dist/utils/clipboard-handler.js.map +1 -0
  897. package/dist/utils/cloud-detection.d.ts +14 -0
  898. package/dist/utils/cloud-detection.d.ts.map +1 -0
  899. package/dist/utils/cloud-detection.js +92 -0
  900. package/dist/utils/cloud-detection.js.map +1 -0
  901. package/dist/utils/command-parser.d.ts +56 -0
  902. package/dist/utils/command-parser.d.ts.map +1 -0
  903. package/dist/utils/command-parser.js +206 -0
  904. package/dist/utils/command-parser.js.map +1 -0
  905. package/dist/utils/console-capture.d.ts +30 -0
  906. package/dist/utils/console-capture.d.ts.map +1 -0
  907. package/dist/utils/console-capture.js +88 -0
  908. package/dist/utils/console-capture.js.map +1 -0
  909. package/dist/utils/cron-parser.d.ts +52 -0
  910. package/dist/utils/cron-parser.d.ts.map +1 -0
  911. package/dist/utils/cron-parser.js +455 -0
  912. package/dist/utils/cron-parser.js.map +1 -0
  913. package/dist/utils/crypto.d.ts +351 -0
  914. package/dist/utils/crypto.d.ts.map +1 -0
  915. package/dist/utils/crypto.js +615 -0
  916. package/dist/utils/crypto.js.map +1 -0
  917. package/dist/utils/diff.d.ts +311 -0
  918. package/dist/utils/diff.d.ts.map +1 -0
  919. package/dist/utils/diff.js +566 -0
  920. package/dist/utils/diff.js.map +1 -0
  921. package/dist/utils/editor.d.ts +12 -0
  922. package/dist/utils/editor.d.ts.map +1 -0
  923. package/dist/utils/editor.js +30 -0
  924. package/dist/utils/editor.js.map +1 -0
  925. package/dist/utils/file-system.d.ts +512 -0
  926. package/dist/utils/file-system.d.ts.map +1 -0
  927. package/dist/utils/file-system.js +798 -0
  928. package/dist/utils/file-system.js.map +1 -0
  929. package/dist/utils/format.d.ts +318 -0
  930. package/dist/utils/format.d.ts.map +1 -0
  931. package/dist/utils/format.js +587 -0
  932. package/dist/utils/format.js.map +1 -0
  933. package/dist/utils/ignore-patterns.d.ts +93 -0
  934. package/dist/utils/ignore-patterns.d.ts.map +1 -0
  935. package/dist/utils/ignore-patterns.js +710 -0
  936. package/dist/utils/ignore-patterns.js.map +1 -0
  937. package/dist/utils/log-cleanup.d.ts +16 -0
  938. package/dist/utils/log-cleanup.d.ts.map +1 -0
  939. package/dist/utils/log-cleanup.js +51 -0
  940. package/dist/utils/log-cleanup.js.map +1 -0
  941. package/dist/utils/logger.d.ts +305 -0
  942. package/dist/utils/logger.d.ts.map +1 -0
  943. package/dist/utils/logger.js +447 -0
  944. package/dist/utils/logger.js.map +1 -0
  945. package/dist/utils/path.d.ts +406 -0
  946. package/dist/utils/path.d.ts.map +1 -0
  947. package/dist/utils/path.js +549 -0
  948. package/dist/utils/path.js.map +1 -0
  949. package/dist/utils/schedule-file.d.ts +63 -0
  950. package/dist/utils/schedule-file.d.ts.map +1 -0
  951. package/dist/utils/schedule-file.js +244 -0
  952. package/dist/utils/schedule-file.js.map +1 -0
  953. package/dist/utils/task-id.d.ts +29 -0
  954. package/dist/utils/task-id.d.ts.map +1 -0
  955. package/dist/utils/task-id.js +53 -0
  956. package/dist/utils/task-id.js.map +1 -0
  957. package/dist/utils/temp-cleanup.d.ts +46 -0
  958. package/dist/utils/temp-cleanup.d.ts.map +1 -0
  959. package/dist/utils/temp-cleanup.js +95 -0
  960. package/dist/utils/temp-cleanup.js.map +1 -0
  961. package/dist/utils/terminal-output.d.ts +34 -0
  962. package/dist/utils/terminal-output.d.ts.map +1 -0
  963. package/dist/utils/terminal-output.js +40 -0
  964. package/dist/utils/terminal-output.js.map +1 -0
  965. package/dist/utils/token-counter.d.ts +224 -0
  966. package/dist/utils/token-counter.d.ts.map +1 -0
  967. package/dist/utils/token-counter.js +332 -0
  968. package/dist/utils/token-counter.js.map +1 -0
  969. package/dist/utils/tool-mapper.d.ts +70 -0
  970. package/dist/utils/tool-mapper.d.ts.map +1 -0
  971. package/dist/utils/tool-mapper.js +234 -0
  972. package/dist/utils/tool-mapper.js.map +1 -0
  973. package/package.json +1 -1
@@ -0,0 +1,751 @@
1
+ /**
2
+ * Token usage tracking service for recording API call metrics, calculating costs,
3
+ * aggregating session totals, and exporting usage data.
4
+ *
5
+ * This module provides comprehensive token tracking functionality for the Compass CLI,
6
+ * enabling users to monitor their API usage, estimate costs, and receive warnings
7
+ * when approaching usage thresholds.
8
+ */
9
+ import path from 'path';
10
+ import { v4 as uuidv4 } from 'uuid';
11
+ import { getGlobalCompassDir } from '../utils/path.js';
12
+ import { safeReadJson, safeWriteJson, ensureDir } from '../utils/file-system.js';
13
+ import { formatTimestamp } from '../utils/format.js';
14
+ import { logger } from '../utils/logger.js';
15
+ import { getModelConfig } from '../constants/models.js';
16
+ import { TOKEN_WARNING_THRESHOLD } from '../constants/defaults.js';
17
+ import { ROLLING_WINDOW_HOURS, resolvePlanLimits } from '../constants/token-limits.js';
18
+ import { createTokenLimitStore, sumAllUsage, getModelTokens } from './token-limit-store.js';
19
+ /**
20
+ * File name for storing token usage data
21
+ */
22
+ const TOKEN_USAGE_FILE = 'token-usage.json';
23
+ /**
24
+ * Default empty token usage data structure
25
+ */
26
+ const DEFAULT_TOKEN_USAGE_DATA = {
27
+ version: '1.0',
28
+ sessions: [],
29
+ currentSessionId: null,
30
+ lastUpdated: '',
31
+ };
32
+ /**
33
+ * TokenTracker class provides comprehensive token usage tracking for API calls.
34
+ *
35
+ * Features:
36
+ * - Session-based tracking with automatic aggregation
37
+ * - Cost estimation based on model pricing
38
+ * - Warning system for usage thresholds
39
+ * - Persistent storage with automatic save/load
40
+ * - Detailed metrics and statistics
41
+ * - Export functionality for usage data
42
+ */
43
+ class TokenTracker {
44
+ data;
45
+ currentSession = null;
46
+ warningThreshold;
47
+ costWarningThreshold;
48
+ initialized = false;
49
+ dirty = false;
50
+ tokenWarningEmitted = false;
51
+ costWarningEmitted = false;
52
+ constructor() {
53
+ this.data = { ...DEFAULT_TOKEN_USAGE_DATA };
54
+ this.warningThreshold = TOKEN_WARNING_THRESHOLD;
55
+ this.costWarningThreshold = 10.0; // $10 default cost warning
56
+ }
57
+ /**
58
+ * Initializes the token tracker by loading persisted data.
59
+ * Must be called before using other methods.
60
+ */
61
+ async initialize() {
62
+ if (this.initialized) {
63
+ return;
64
+ }
65
+ await this.load();
66
+ this.initialized = true;
67
+ logger.debug('Token tracker initialized');
68
+ }
69
+ /**
70
+ * Starts a new tracking session.
71
+ * If a session ID is provided, it will be used; otherwise, a new UUID is generated.
72
+ *
73
+ * @param sessionId - Optional session ID to use
74
+ * @returns The session ID of the new session
75
+ */
76
+ startSession(sessionId) {
77
+ const id = sessionId || uuidv4();
78
+ // Check if session already exists
79
+ const existingSession = this.data.sessions.find((s) => s.sessionId === id);
80
+ if (existingSession) {
81
+ this.currentSession = existingSession;
82
+ this.data.currentSessionId = id;
83
+ logger.debug(`Resumed existing token tracking session: ${id}`);
84
+ return id;
85
+ }
86
+ // Create new session — reset warning flags
87
+ this.tokenWarningEmitted = false;
88
+ this.costWarningEmitted = false;
89
+ this.currentSession = {
90
+ sessionId: id,
91
+ startTime: formatTimestamp(),
92
+ calls: [],
93
+ totals: this.createEmptyTokenUsage(),
94
+ estimatedCost: this.createEmptyCostEstimate(),
95
+ };
96
+ this.data.sessions.push(this.currentSession);
97
+ this.data.currentSessionId = id;
98
+ this.dirty = true;
99
+ logger.debug(`Token tracking session started: ${id}`);
100
+ return id;
101
+ }
102
+ /**
103
+ * Records token usage for an API call.
104
+ * Automatically starts a session if none is active.
105
+ *
106
+ * @param model - The model ID used for the API call
107
+ * @param usage - Token usage statistics from the API response
108
+ * @param purpose - Optional description of the API call purpose
109
+ */
110
+ async recordUsage(model, usage, purpose) {
111
+ // Ensure we have an active session
112
+ if (!this.currentSession) {
113
+ this.startSession();
114
+ }
115
+ // Calculate cost for this call
116
+ const cost = this.calculateCost(usage, model);
117
+ // Create the API call record
118
+ const callUsage = {
119
+ id: uuidv4(),
120
+ timestamp: formatTimestamp(),
121
+ model,
122
+ usage: { ...usage },
123
+ cost,
124
+ purpose,
125
+ };
126
+ // Add to current session
127
+ this.currentSession.calls.push(callUsage);
128
+ // Update session totals
129
+ this.updateSessionTotals();
130
+ // Check for warnings (debug-level, emitted once per threshold)
131
+ const warnings = this.checkWarnings();
132
+ for (const warning of warnings) {
133
+ logger.debug(warning.message);
134
+ }
135
+ // Mark as dirty and save
136
+ this.dirty = true;
137
+ await this.save();
138
+ logger.debug(`Recorded usage: ${usage.inputTokens} in, ${usage.outputTokens} out, ${cost.totalCost.toFixed(4)} USD`);
139
+ }
140
+ /**
141
+ * Gets the current session's token usage.
142
+ *
143
+ * @returns The current session usage or null if no session is active
144
+ */
145
+ getCurrentSessionUsage() {
146
+ return this.currentSession;
147
+ }
148
+ /**
149
+ * Gets usage metrics for the current session.
150
+ *
151
+ * @returns Token metrics for the current session or null if no session/calls
152
+ */
153
+ getSessionMetrics() {
154
+ if (!this.currentSession || this.currentSession.calls.length === 0) {
155
+ return null;
156
+ }
157
+ const calls = this.currentSession.calls;
158
+ const inputTokens = calls.map((c) => c.usage.inputTokens);
159
+ const outputTokens = calls.map((c) => c.usage.outputTokens);
160
+ return {
161
+ averageInputTokens: this.calculateAverage(inputTokens),
162
+ averageOutputTokens: this.calculateAverage(outputTokens),
163
+ peakInputTokens: Math.max(...inputTokens),
164
+ peakOutputTokens: Math.max(...outputTokens),
165
+ totalCalls: calls.length,
166
+ totalTokens: this.currentSession.totals.totalTokens,
167
+ totalCost: this.currentSession.estimatedCost.totalCost,
168
+ };
169
+ }
170
+ /**
171
+ * Gets all-time usage statistics across all sessions.
172
+ *
173
+ * @returns Aggregated token metrics across all sessions
174
+ */
175
+ getAllTimeStats() {
176
+ const allCalls = this.data.sessions.flatMap((s) => s.calls);
177
+ if (allCalls.length === 0) {
178
+ return {
179
+ averageInputTokens: 0,
180
+ averageOutputTokens: 0,
181
+ peakInputTokens: 0,
182
+ peakOutputTokens: 0,
183
+ totalCalls: 0,
184
+ totalTokens: 0,
185
+ totalCost: 0,
186
+ };
187
+ }
188
+ const inputTokens = allCalls.map((c) => c.usage.inputTokens);
189
+ const outputTokens = allCalls.map((c) => c.usage.outputTokens);
190
+ const totalTokens = this.data.sessions.reduce((sum, s) => sum + s.totals.totalTokens, 0);
191
+ const totalCost = this.data.sessions.reduce((sum, s) => sum + s.estimatedCost.totalCost, 0);
192
+ return {
193
+ averageInputTokens: this.calculateAverage(inputTokens),
194
+ averageOutputTokens: this.calculateAverage(outputTokens),
195
+ peakInputTokens: Math.max(...inputTokens),
196
+ peakOutputTokens: Math.max(...outputTokens),
197
+ totalCalls: allCalls.length,
198
+ totalTokens,
199
+ totalCost,
200
+ };
201
+ }
202
+ /**
203
+ * Gets usage statistics for a specific time period.
204
+ *
205
+ * @param startDate - Start of the period
206
+ * @param endDate - End of the period (defaults to now)
207
+ * @returns Token metrics for the specified period
208
+ */
209
+ getStatsByPeriod(startDate, endDate = new Date()) {
210
+ const startTime = startDate.getTime();
211
+ const endTime = endDate.getTime();
212
+ const filteredCalls = this.data.sessions.flatMap((s) => s.calls.filter((c) => {
213
+ const callTime = new Date(c.timestamp).getTime();
214
+ return callTime >= startTime && callTime <= endTime;
215
+ }));
216
+ if (filteredCalls.length === 0) {
217
+ return {
218
+ averageInputTokens: 0,
219
+ averageOutputTokens: 0,
220
+ peakInputTokens: 0,
221
+ peakOutputTokens: 0,
222
+ totalCalls: 0,
223
+ totalTokens: 0,
224
+ totalCost: 0,
225
+ };
226
+ }
227
+ const inputTokens = filteredCalls.map((c) => c.usage.inputTokens);
228
+ const outputTokens = filteredCalls.map((c) => c.usage.outputTokens);
229
+ const totalTokens = filteredCalls.reduce((sum, c) => sum + c.usage.totalTokens, 0);
230
+ const totalCost = filteredCalls.reduce((sum, c) => sum + c.cost.totalCost, 0);
231
+ return {
232
+ averageInputTokens: this.calculateAverage(inputTokens),
233
+ averageOutputTokens: this.calculateAverage(outputTokens),
234
+ peakInputTokens: Math.max(...inputTokens),
235
+ peakOutputTokens: Math.max(...outputTokens),
236
+ totalCalls: filteredCalls.length,
237
+ totalTokens,
238
+ totalCost,
239
+ };
240
+ }
241
+ /**
242
+ * Gets usage statistics grouped by model.
243
+ *
244
+ * @returns Map of model ID to token metrics
245
+ */
246
+ getStatsByModel() {
247
+ const modelStats = new Map();
248
+ // Group calls by model
249
+ for (const session of this.data.sessions) {
250
+ for (const call of session.calls) {
251
+ const existing = modelStats.get(call.model) || [];
252
+ existing.push(call);
253
+ modelStats.set(call.model, existing);
254
+ }
255
+ }
256
+ // Calculate metrics for each model
257
+ const result = new Map();
258
+ for (const [model, calls] of modelStats) {
259
+ if (calls.length === 0)
260
+ continue;
261
+ const inputTokens = calls.map((c) => c.usage.inputTokens);
262
+ const outputTokens = calls.map((c) => c.usage.outputTokens);
263
+ const totalTokens = calls.reduce((sum, c) => sum + c.usage.totalTokens, 0);
264
+ const totalCost = calls.reduce((sum, c) => sum + c.cost.totalCost, 0);
265
+ result.set(model, {
266
+ averageInputTokens: this.calculateAverage(inputTokens),
267
+ averageOutputTokens: this.calculateAverage(outputTokens),
268
+ peakInputTokens: Math.max(...inputTokens),
269
+ peakOutputTokens: Math.max(...outputTokens),
270
+ totalCalls: calls.length,
271
+ totalTokens,
272
+ totalCost,
273
+ });
274
+ }
275
+ return result;
276
+ }
277
+ /**
278
+ * Ends the current session and marks it as complete.
279
+ */
280
+ async endSession() {
281
+ if (this.currentSession) {
282
+ this.currentSession.endTime = formatTimestamp();
283
+ this.dirty = true;
284
+ await this.save();
285
+ logger.debug(`Token tracking session ended: ${this.currentSession.sessionId}`);
286
+ this.currentSession = null;
287
+ this.data.currentSessionId = null;
288
+ }
289
+ }
290
+ /**
291
+ * Exports all usage data for backup or analysis.
292
+ *
293
+ * @returns Complete token usage data structure
294
+ */
295
+ async exportUsage() {
296
+ return {
297
+ ...this.data,
298
+ lastUpdated: formatTimestamp(),
299
+ };
300
+ }
301
+ /**
302
+ * Exports usage data for a specific session.
303
+ *
304
+ * @param sessionId - The session ID to export
305
+ * @returns Session usage data or null if not found
306
+ */
307
+ getSessionById(sessionId) {
308
+ return this.data.sessions.find((s) => s.sessionId === sessionId) || null;
309
+ }
310
+ /**
311
+ * Gets all sessions, optionally filtered by date range.
312
+ *
313
+ * @param startDate - Optional start date filter
314
+ * @param endDate - Optional end date filter
315
+ * @returns Array of session usage data
316
+ */
317
+ getSessions(startDate, endDate) {
318
+ let sessions = [...this.data.sessions];
319
+ if (startDate) {
320
+ const startTime = startDate.getTime();
321
+ sessions = sessions.filter((s) => new Date(s.startTime).getTime() >= startTime);
322
+ }
323
+ if (endDate) {
324
+ const endTime = endDate.getTime();
325
+ sessions = sessions.filter((s) => new Date(s.startTime).getTime() <= endTime);
326
+ }
327
+ return sessions;
328
+ }
329
+ /**
330
+ * Sets the warning threshold for token usage.
331
+ *
332
+ * @param tokens - Token count threshold for warnings
333
+ */
334
+ setWarningThreshold(tokens) {
335
+ this.warningThreshold = tokens;
336
+ this.tokenWarningEmitted = false;
337
+ logger.debug(`Token warning threshold set to ${tokens}`);
338
+ }
339
+ /**
340
+ * Gets the current warning threshold.
341
+ *
342
+ * @returns The current token warning threshold
343
+ */
344
+ getWarningThreshold() {
345
+ return this.warningThreshold;
346
+ }
347
+ /**
348
+ * Sets the cost warning threshold.
349
+ *
350
+ * @param cost - Cost threshold in USD for warnings
351
+ */
352
+ setCostWarningThreshold(cost) {
353
+ this.costWarningThreshold = cost;
354
+ this.costWarningEmitted = false;
355
+ logger.debug(`Cost warning threshold set to $${cost}`);
356
+ }
357
+ /**
358
+ * Gets the current cost warning threshold.
359
+ *
360
+ * @returns The current cost warning threshold in USD
361
+ */
362
+ getCostWarningThreshold() {
363
+ return this.costWarningThreshold;
364
+ }
365
+ /**
366
+ * Checks for any warning conditions and returns applicable warnings.
367
+ *
368
+ * @returns Array of token warnings
369
+ */
370
+ checkWarnings() {
371
+ const warnings = [];
372
+ if (!this.currentSession) {
373
+ return warnings;
374
+ }
375
+ const totalTokens = this.currentSession.totals.totalTokens;
376
+ const totalCost = this.currentSession.estimatedCost.totalCost;
377
+ // Check token threshold (only emit once per threshold crossing)
378
+ if (totalTokens >= this.warningThreshold && !this.tokenWarningEmitted) {
379
+ this.tokenWarningEmitted = true;
380
+ warnings.push({
381
+ type: 'exceeded_threshold',
382
+ message: `Token usage (${totalTokens.toLocaleString()}) has exceeded the warning threshold (${this.warningThreshold.toLocaleString()})`,
383
+ currentValue: totalTokens,
384
+ threshold: this.warningThreshold,
385
+ severity: 'warning',
386
+ });
387
+ }
388
+ else if (totalTokens >= this.warningThreshold * 0.8 && !this.tokenWarningEmitted) {
389
+ warnings.push({
390
+ type: 'approaching_limit',
391
+ message: `Token usage (${totalTokens.toLocaleString()}) is approaching the warning threshold (${this.warningThreshold.toLocaleString()})`,
392
+ currentValue: totalTokens,
393
+ threshold: this.warningThreshold,
394
+ severity: 'info',
395
+ });
396
+ }
397
+ // Check cost threshold (only emit once per threshold crossing)
398
+ if (totalCost >= this.costWarningThreshold && !this.costWarningEmitted) {
399
+ this.costWarningEmitted = true;
400
+ warnings.push({
401
+ type: 'high_cost',
402
+ message: `Session cost ($${totalCost.toFixed(2)}) has exceeded the warning threshold ($${this.costWarningThreshold.toFixed(2)})`,
403
+ currentValue: totalCost,
404
+ threshold: this.costWarningThreshold,
405
+ severity: 'warning',
406
+ });
407
+ }
408
+ else if (totalCost >= this.costWarningThreshold * 0.8 && !this.costWarningEmitted) {
409
+ warnings.push({
410
+ type: 'high_cost',
411
+ message: `Session cost ($${totalCost.toFixed(2)}) is approaching the warning threshold ($${this.costWarningThreshold.toFixed(2)})`,
412
+ currentValue: totalCost,
413
+ threshold: this.costWarningThreshold,
414
+ severity: 'info',
415
+ });
416
+ }
417
+ return warnings;
418
+ }
419
+ // ===========================================================================
420
+ // Unified rolling window limit system
421
+ // ===========================================================================
422
+ /** Lazily-initialized reference to the unified token limit store. */
423
+ _limitStore = null;
424
+ /**
425
+ * Sets the TokenLimitStore instance used for rolling window tracking.
426
+ * Must be called before using any limit-related methods.
427
+ */
428
+ setLimitStore(store) {
429
+ this._limitStore = store;
430
+ }
431
+ /** Returns the limit store, throwing if not yet wired up. */
432
+ getLimitStore() {
433
+ if (!this._limitStore) {
434
+ throw new Error('[TokenTracker] TokenLimitStore not set — call setLimitStore() first.');
435
+ }
436
+ return this._limitStore;
437
+ }
438
+ /**
439
+ * Resolves the applicable token limits for a model under a given plan.
440
+ *
441
+ * @param modelId - The model ID to resolve limits for
442
+ * @param planStatus - The user's current plan status
443
+ * @param planType - The subscription tier (only used when planStatus === 'active')
444
+ * @returns General and model-specific limits
445
+ */
446
+ resolveLimit(modelId, planStatus, planType) {
447
+ const planLimits = resolvePlanLimits(planStatus, planType);
448
+ const modelLimit = planLimits.perModelLimits[modelId] ?? planLimits.defaultPerModelLimit;
449
+ return {
450
+ generalLimit: planLimits.generalLimit,
451
+ modelLimit,
452
+ };
453
+ }
454
+ /**
455
+ * Checks whether an API call for a given model is allowed under the
456
+ * token limits for the current 6-hour window.
457
+ *
458
+ * Loads the state (which resets if the window expired), reads flat
459
+ * counters, and compares against both the general (aggregate) limit
460
+ * and the per-model limit.
461
+ *
462
+ * @param modelId - The model ID to check
463
+ * @param planStatus - The user's current plan status
464
+ * @param planType - The subscription tier (only used when planStatus === 'active')
465
+ * @returns Check result with allowed status and remaining tokens
466
+ */
467
+ async checkLimit(modelId, planStatus, planType) {
468
+ const store = this.getLimitStore();
469
+ const state = await store.loadState(); // loads + resets if window expired
470
+ const { generalLimit, modelLimit } = this.resolveLimit(modelId, planStatus, planType);
471
+ const generalUsed = sumAllUsage(state);
472
+ const modelUsed = getModelTokens(state, modelId);
473
+ const generalRemaining = Math.max(0, generalLimit - generalUsed);
474
+ const modelRemaining = Math.max(0, modelLimit - modelUsed);
475
+ // Check model limit first (more specific)
476
+ if (modelUsed >= modelLimit) {
477
+ return {
478
+ allowed: false,
479
+ generalRemaining,
480
+ modelRemaining: 0,
481
+ reason: `Token limit exceeded for model "${modelId}". Used ${modelUsed.toLocaleString()} / ${modelLimit.toLocaleString()} tokens in the last ${ROLLING_WINDOW_HOURS}h.`,
482
+ };
483
+ }
484
+ // Check general limit
485
+ if (generalUsed >= generalLimit) {
486
+ return {
487
+ allowed: false,
488
+ generalRemaining: 0,
489
+ modelRemaining,
490
+ reason: `Aggregate token limit exceeded. Used ${generalUsed.toLocaleString()} / ${generalLimit.toLocaleString()} tokens in the last ${ROLLING_WINDOW_HOURS}h.`,
491
+ };
492
+ }
493
+ return {
494
+ allowed: true,
495
+ generalRemaining,
496
+ modelRemaining,
497
+ };
498
+ }
499
+ /**
500
+ * Records token usage against the rolling window limit store.
501
+ * This is separate from the session analytics `recordUsage` method.
502
+ *
503
+ * @param modelId - The model that consumed tokens
504
+ * @param tokens - Number of tokens consumed
505
+ */
506
+ async recordLimitUsage(modelId, tokens) {
507
+ try {
508
+ const store = this.getLimitStore();
509
+ await store.recordUsage(modelId, tokens);
510
+ }
511
+ catch (err) {
512
+ logger.warn(`[TokenTracker] Failed to record limit usage for ${modelId}: ${String(err)}`);
513
+ }
514
+ }
515
+ /**
516
+ * Gets the total tokens used for a specific model within the rolling window.
517
+ *
518
+ * @param modelId - The model to check
519
+ * @returns Number of tokens used in the current window
520
+ */
521
+ async getUsageForModel(modelId) {
522
+ const store = this.getLimitStore();
523
+ return store.getModelUsage(modelId);
524
+ }
525
+ /**
526
+ * Gets the remaining tokens for a model under the current plan.
527
+ *
528
+ * @param modelId - The model to check
529
+ * @param planStatus - The user's current plan status
530
+ * @param planType - The subscription tier (only used when planStatus === 'active')
531
+ * @returns Remaining tokens for the model
532
+ */
533
+ async getRemainingTokens(modelId, planStatus, planType) {
534
+ const { modelLimit } = this.resolveLimit(modelId, planStatus, planType);
535
+ const used = await this.getUsageForModel(modelId);
536
+ return Math.max(0, modelLimit - used);
537
+ }
538
+ /**
539
+ * Clears all usage data. Use with caution.
540
+ */
541
+ async clearAllData() {
542
+ this.data = { ...DEFAULT_TOKEN_USAGE_DATA };
543
+ this.currentSession = null;
544
+ this.dirty = true;
545
+ await this.save();
546
+ logger.info('All token usage data cleared');
547
+ }
548
+ /**
549
+ * Clears usage data older than the specified number of days.
550
+ *
551
+ * @param days - Number of days to retain
552
+ * @returns Number of sessions removed
553
+ */
554
+ async clearOldData(days) {
555
+ const cutoffDate = new Date();
556
+ cutoffDate.setDate(cutoffDate.getDate() - days);
557
+ const cutoffTime = cutoffDate.getTime();
558
+ const originalCount = this.data.sessions.length;
559
+ this.data.sessions = this.data.sessions.filter((session) => {
560
+ const sessionTime = new Date(session.startTime).getTime();
561
+ return sessionTime >= cutoffTime;
562
+ });
563
+ const removedCount = originalCount - this.data.sessions.length;
564
+ if (removedCount > 0) {
565
+ this.dirty = true;
566
+ await this.save();
567
+ logger.info(`Cleared ${removedCount} sessions older than ${days} days`);
568
+ }
569
+ return removedCount;
570
+ }
571
+ /**
572
+ * Calculates cost for token usage based on model pricing.
573
+ *
574
+ * @param usage - Token usage statistics
575
+ * @param model - Model ID for pricing lookup
576
+ * @returns Cost estimate breakdown
577
+ */
578
+ calculateCost(usage, model) {
579
+ const modelConfig = getModelConfig(model);
580
+ if (!modelConfig) {
581
+ logger.debug(`Unknown model for cost calculation: ${model}`);
582
+ return this.createEmptyCostEstimate();
583
+ }
584
+ const inputCost = (usage.inputTokens / 1_000_000) * modelConfig.pricing.inputPricePerMillion;
585
+ const outputCost = (usage.outputTokens / 1_000_000) * modelConfig.pricing.outputPricePerMillion;
586
+ return {
587
+ inputCost,
588
+ outputCost,
589
+ totalCost: inputCost + outputCost,
590
+ currency: 'USD',
591
+ };
592
+ }
593
+ /**
594
+ * Updates the current session's totals based on all calls.
595
+ */
596
+ updateSessionTotals() {
597
+ if (!this.currentSession) {
598
+ return;
599
+ }
600
+ const totals = this.createEmptyTokenUsage();
601
+ const cost = this.createEmptyCostEstimate();
602
+ for (const call of this.currentSession.calls) {
603
+ totals.inputTokens += call.usage.inputTokens;
604
+ totals.outputTokens += call.usage.outputTokens;
605
+ totals.totalTokens += call.usage.totalTokens;
606
+ // Handle cache tokens if present
607
+ if (call.usage.cacheCreationInputTokens) {
608
+ totals.cacheCreationInputTokens =
609
+ (totals.cacheCreationInputTokens || 0) +
610
+ call.usage.cacheCreationInputTokens;
611
+ }
612
+ if (call.usage.cacheReadInputTokens) {
613
+ totals.cacheReadInputTokens =
614
+ (totals.cacheReadInputTokens || 0) + call.usage.cacheReadInputTokens;
615
+ }
616
+ cost.inputCost += call.cost.inputCost;
617
+ cost.outputCost += call.cost.outputCost;
618
+ cost.totalCost += call.cost.totalCost;
619
+ }
620
+ this.currentSession.totals = totals;
621
+ this.currentSession.estimatedCost = cost;
622
+ }
623
+ /**
624
+ * Calculates the average of an array of numbers.
625
+ *
626
+ * @param numbers - Array of numbers to average
627
+ * @returns The average, rounded to nearest integer
628
+ */
629
+ calculateAverage(numbers) {
630
+ if (numbers.length === 0) {
631
+ return 0;
632
+ }
633
+ const sum = numbers.reduce((a, b) => a + b, 0);
634
+ return Math.round(sum / numbers.length);
635
+ }
636
+ /**
637
+ * Creates an empty token usage object.
638
+ *
639
+ * @returns Empty TokenUsage object
640
+ */
641
+ createEmptyTokenUsage() {
642
+ return {
643
+ inputTokens: 0,
644
+ outputTokens: 0,
645
+ totalTokens: 0,
646
+ };
647
+ }
648
+ /**
649
+ * Creates an empty cost estimate object.
650
+ *
651
+ * @returns Empty CostEstimate object
652
+ */
653
+ createEmptyCostEstimate() {
654
+ return {
655
+ inputCost: 0,
656
+ outputCost: 0,
657
+ totalCost: 0,
658
+ currency: 'USD',
659
+ };
660
+ }
661
+ /**
662
+ * Gets the file path for token usage data storage.
663
+ *
664
+ * @returns Full path to the token usage file
665
+ */
666
+ getFilePath() {
667
+ return path.join(getGlobalCompassDir(), TOKEN_USAGE_FILE);
668
+ }
669
+ /**
670
+ * Loads token usage data from disk.
671
+ */
672
+ async load() {
673
+ try {
674
+ // Ensure the directory exists
675
+ await ensureDir(getGlobalCompassDir());
676
+ const filePath = this.getFilePath();
677
+ const data = await safeReadJson(filePath);
678
+ if (data) {
679
+ this.data = {
680
+ ...DEFAULT_TOKEN_USAGE_DATA,
681
+ ...data,
682
+ };
683
+ // Restore current session if exists
684
+ if (data.currentSessionId) {
685
+ this.currentSession =
686
+ data.sessions.find((s) => s.sessionId === data.currentSessionId) ||
687
+ null;
688
+ }
689
+ logger.debug(`Loaded token usage data: ${this.data.sessions.length} sessions`);
690
+ }
691
+ }
692
+ catch (error) {
693
+ logger.debug('Failed to load token usage data, starting fresh', error);
694
+ this.data = { ...DEFAULT_TOKEN_USAGE_DATA };
695
+ }
696
+ }
697
+ /**
698
+ * Saves token usage data to disk.
699
+ */
700
+ async save() {
701
+ if (!this.dirty) {
702
+ return;
703
+ }
704
+ try {
705
+ // Ensure the directory exists
706
+ await ensureDir(getGlobalCompassDir());
707
+ const filePath = this.getFilePath();
708
+ this.data.lastUpdated = formatTimestamp();
709
+ await safeWriteJson(filePath, this.data);
710
+ this.dirty = false;
711
+ logger.debug('Token usage data saved');
712
+ }
713
+ catch (error) {
714
+ logger.error('Failed to save token usage data', error);
715
+ }
716
+ }
717
+ /**
718
+ * Forces a save of the current data, regardless of dirty state.
719
+ */
720
+ async forceSave() {
721
+ this.dirty = true;
722
+ await this.save();
723
+ }
724
+ }
725
+ // Singleton instance
726
+ let tokenTrackerInstance = null;
727
+ /**
728
+ * Gets the singleton TokenTracker instance.
729
+ * Creates and initializes the instance on first call.
730
+ *
731
+ * @returns Promise resolving to the TokenTracker instance
732
+ */
733
+ export async function getTokenTracker() {
734
+ if (!tokenTrackerInstance) {
735
+ tokenTrackerInstance = new TokenTracker();
736
+ tokenTrackerInstance.setLimitStore(createTokenLimitStore());
737
+ await tokenTrackerInstance.initialize();
738
+ }
739
+ return tokenTrackerInstance;
740
+ }
741
+ /**
742
+ * Creates a new TokenTracker instance with custom configuration.
743
+ * Use this when you need a separate instance from the singleton.
744
+ *
745
+ * @returns A new TokenTracker instance (not initialized)
746
+ */
747
+ export function createTokenTracker() {
748
+ return new TokenTracker();
749
+ }
750
+ export { TokenTracker };
751
+ //# sourceMappingURL=token-tracker.js.map