@compass-ai/nova 1.0.74 → 1.0.75

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/cli.js +540 -538
  2. package/dist/index.js +10 -8
  3. package/package.json +1 -1
  4. package/dist/acp/agent.d.ts +0 -318
  5. package/dist/acp/agent.d.ts.map +0 -1
  6. package/dist/acp/agent.js +0 -795
  7. package/dist/acp/agent.js.map +0 -1
  8. package/dist/acp/backpressure-writer.d.ts +0 -49
  9. package/dist/acp/backpressure-writer.d.ts.map +0 -1
  10. package/dist/acp/backpressure-writer.js +0 -153
  11. package/dist/acp/backpressure-writer.js.map +0 -1
  12. package/dist/acp/event-adapter.d.ts +0 -242
  13. package/dist/acp/event-adapter.d.ts.map +0 -1
  14. package/dist/acp/event-adapter.js +0 -456
  15. package/dist/acp/event-adapter.js.map +0 -1
  16. package/dist/acp/index.d.ts +0 -30
  17. package/dist/acp/index.d.ts.map +0 -1
  18. package/dist/acp/index.js +0 -36
  19. package/dist/acp/index.js.map +0 -1
  20. package/dist/acp/modes.d.ts +0 -56
  21. package/dist/acp/modes.d.ts.map +0 -1
  22. package/dist/acp/modes.js +0 -135
  23. package/dist/acp/modes.js.map +0 -1
  24. package/dist/acp/session-manager.d.ts +0 -170
  25. package/dist/acp/session-manager.d.ts.map +0 -1
  26. package/dist/acp/session-manager.js +0 -381
  27. package/dist/acp/session-manager.js.map +0 -1
  28. package/dist/acp/text-coalescer.d.ts +0 -45
  29. package/dist/acp/text-coalescer.d.ts.map +0 -1
  30. package/dist/acp/text-coalescer.js +0 -110
  31. package/dist/acp/text-coalescer.js.map +0 -1
  32. package/dist/acp/tool-bridge.d.ts +0 -156
  33. package/dist/acp/tool-bridge.d.ts.map +0 -1
  34. package/dist/acp/tool-bridge.js +0 -381
  35. package/dist/acp/tool-bridge.js.map +0 -1
  36. package/dist/acp/types.d.ts +0 -314
  37. package/dist/acp/types.d.ts.map +0 -1
  38. package/dist/acp/types.js +0 -8
  39. package/dist/acp/types.js.map +0 -1
  40. package/dist/cli.d.ts +0 -9
  41. package/dist/cli.d.ts.map +0 -1
  42. package/dist/cli.js.map +0 -1
  43. package/dist/commands/acp.d.ts +0 -26
  44. package/dist/commands/acp.d.ts.map +0 -1
  45. package/dist/commands/acp.js +0 -492
  46. package/dist/commands/acp.js.map +0 -1
  47. package/dist/commands/cache.d.ts +0 -33
  48. package/dist/commands/cache.d.ts.map +0 -1
  49. package/dist/commands/cache.js +0 -537
  50. package/dist/commands/cache.js.map +0 -1
  51. package/dist/commands/config.d.ts +0 -10
  52. package/dist/commands/config.d.ts.map +0 -1
  53. package/dist/commands/config.js +0 -367
  54. package/dist/commands/config.js.map +0 -1
  55. package/dist/commands/consent.d.ts +0 -21
  56. package/dist/commands/consent.d.ts.map +0 -1
  57. package/dist/commands/consent.js +0 -334
  58. package/dist/commands/consent.js.map +0 -1
  59. package/dist/commands/data.d.ts +0 -24
  60. package/dist/commands/data.d.ts.map +0 -1
  61. package/dist/commands/data.js +0 -586
  62. package/dist/commands/data.js.map +0 -1
  63. package/dist/commands/index.d.ts +0 -145
  64. package/dist/commands/index.d.ts.map +0 -1
  65. package/dist/commands/index.js +0 -210
  66. package/dist/commands/index.js.map +0 -1
  67. package/dist/commands/init.d.ts +0 -106
  68. package/dist/commands/init.d.ts.map +0 -1
  69. package/dist/commands/init.js +0 -349
  70. package/dist/commands/init.js.map +0 -1
  71. package/dist/commands/logs.d.ts +0 -13
  72. package/dist/commands/logs.d.ts.map +0 -1
  73. package/dist/commands/logs.js +0 -359
  74. package/dist/commands/logs.js.map +0 -1
  75. package/dist/commands/mcp.d.ts +0 -20
  76. package/dist/commands/mcp.d.ts.map +0 -1
  77. package/dist/commands/mcp.js +0 -687
  78. package/dist/commands/mcp.js.map +0 -1
  79. package/dist/commands/reset.d.ts +0 -20
  80. package/dist/commands/reset.d.ts.map +0 -1
  81. package/dist/commands/reset.js +0 -372
  82. package/dist/commands/reset.js.map +0 -1
  83. package/dist/commands/setup.d.ts +0 -74
  84. package/dist/commands/setup.d.ts.map +0 -1
  85. package/dist/commands/setup.js +0 -863
  86. package/dist/commands/setup.js.map +0 -1
  87. package/dist/commands/slash/agents.d.ts +0 -40
  88. package/dist/commands/slash/agents.d.ts.map +0 -1
  89. package/dist/commands/slash/agents.js +0 -519
  90. package/dist/commands/slash/agents.js.map +0 -1
  91. package/dist/commands/slash/approve.d.ts +0 -46
  92. package/dist/commands/slash/approve.d.ts.map +0 -1
  93. package/dist/commands/slash/approve.js +0 -239
  94. package/dist/commands/slash/approve.js.map +0 -1
  95. package/dist/commands/slash/attach.d.ts +0 -70
  96. package/dist/commands/slash/attach.d.ts.map +0 -1
  97. package/dist/commands/slash/attach.js +0 -333
  98. package/dist/commands/slash/attach.js.map +0 -1
  99. package/dist/commands/slash/clear.d.ts +0 -47
  100. package/dist/commands/slash/clear.d.ts.map +0 -1
  101. package/dist/commands/slash/clear.js +0 -261
  102. package/dist/commands/slash/clear.js.map +0 -1
  103. package/dist/commands/slash/commit.d.ts +0 -40
  104. package/dist/commands/slash/commit.d.ts.map +0 -1
  105. package/dist/commands/slash/commit.js +0 -337
  106. package/dist/commands/slash/commit.js.map +0 -1
  107. package/dist/commands/slash/compact.d.ts +0 -48
  108. package/dist/commands/slash/compact.d.ts.map +0 -1
  109. package/dist/commands/slash/compact.js +0 -288
  110. package/dist/commands/slash/compact.js.map +0 -1
  111. package/dist/commands/slash/config.d.ts +0 -20
  112. package/dist/commands/slash/config.d.ts.map +0 -1
  113. package/dist/commands/slash/config.js +0 -136
  114. package/dist/commands/slash/config.js.map +0 -1
  115. package/dist/commands/slash/context.d.ts +0 -49
  116. package/dist/commands/slash/context.d.ts.map +0 -1
  117. package/dist/commands/slash/context.js +0 -430
  118. package/dist/commands/slash/context.js.map +0 -1
  119. package/dist/commands/slash/cost.d.ts +0 -34
  120. package/dist/commands/slash/cost.d.ts.map +0 -1
  121. package/dist/commands/slash/cost.js +0 -312
  122. package/dist/commands/slash/cost.js.map +0 -1
  123. package/dist/commands/slash/custom.d.ts +0 -41
  124. package/dist/commands/slash/custom.d.ts.map +0 -1
  125. package/dist/commands/slash/custom.js +0 -126
  126. package/dist/commands/slash/custom.js.map +0 -1
  127. package/dist/commands/slash/exit.d.ts +0 -25
  128. package/dist/commands/slash/exit.d.ts.map +0 -1
  129. package/dist/commands/slash/exit.js +0 -186
  130. package/dist/commands/slash/exit.js.map +0 -1
  131. package/dist/commands/slash/export.d.ts +0 -27
  132. package/dist/commands/slash/export.d.ts.map +0 -1
  133. package/dist/commands/slash/export.js +0 -318
  134. package/dist/commands/slash/export.js.map +0 -1
  135. package/dist/commands/slash/files.d.ts +0 -47
  136. package/dist/commands/slash/files.d.ts.map +0 -1
  137. package/dist/commands/slash/files.js +0 -521
  138. package/dist/commands/slash/files.js.map +0 -1
  139. package/dist/commands/slash/help.d.ts +0 -50
  140. package/dist/commands/slash/help.d.ts.map +0 -1
  141. package/dist/commands/slash/help.js +0 -282
  142. package/dist/commands/slash/help.js.map +0 -1
  143. package/dist/commands/slash/index-cmd.d.ts +0 -41
  144. package/dist/commands/slash/index-cmd.d.ts.map +0 -1
  145. package/dist/commands/slash/index-cmd.js +0 -349
  146. package/dist/commands/slash/index-cmd.js.map +0 -1
  147. package/dist/commands/slash/index.d.ts +0 -97
  148. package/dist/commands/slash/index.d.ts.map +0 -1
  149. package/dist/commands/slash/index.js +0 -251
  150. package/dist/commands/slash/index.js.map +0 -1
  151. package/dist/commands/slash/login.d.ts +0 -23
  152. package/dist/commands/slash/login.d.ts.map +0 -1
  153. package/dist/commands/slash/login.js +0 -175
  154. package/dist/commands/slash/login.js.map +0 -1
  155. package/dist/commands/slash/logout.d.ts +0 -23
  156. package/dist/commands/slash/logout.d.ts.map +0 -1
  157. package/dist/commands/slash/logout.js +0 -153
  158. package/dist/commands/slash/logout.js.map +0 -1
  159. package/dist/commands/slash/logs.d.ts +0 -29
  160. package/dist/commands/slash/logs.d.ts.map +0 -1
  161. package/dist/commands/slash/logs.js +0 -423
  162. package/dist/commands/slash/logs.js.map +0 -1
  163. package/dist/commands/slash/mcp.d.ts +0 -29
  164. package/dist/commands/slash/mcp.d.ts.map +0 -1
  165. package/dist/commands/slash/mcp.js +0 -1026
  166. package/dist/commands/slash/mcp.js.map +0 -1
  167. package/dist/commands/slash/model.d.ts +0 -60
  168. package/dist/commands/slash/model.d.ts.map +0 -1
  169. package/dist/commands/slash/model.js +0 -466
  170. package/dist/commands/slash/model.js.map +0 -1
  171. package/dist/commands/slash/personality.d.ts +0 -40
  172. package/dist/commands/slash/personality.d.ts.map +0 -1
  173. package/dist/commands/slash/personality.js +0 -272
  174. package/dist/commands/slash/personality.js.map +0 -1
  175. package/dist/commands/slash/purge.d.ts +0 -42
  176. package/dist/commands/slash/purge.d.ts.map +0 -1
  177. package/dist/commands/slash/purge.js +0 -233
  178. package/dist/commands/slash/purge.js.map +0 -1
  179. package/dist/commands/slash/reset.d.ts +0 -44
  180. package/dist/commands/slash/reset.d.ts.map +0 -1
  181. package/dist/commands/slash/reset.js +0 -326
  182. package/dist/commands/slash/reset.js.map +0 -1
  183. package/dist/commands/slash/skills.d.ts +0 -40
  184. package/dist/commands/slash/skills.d.ts.map +0 -1
  185. package/dist/commands/slash/skills.js +0 -207
  186. package/dist/commands/slash/skills.js.map +0 -1
  187. package/dist/commands/slash/tokens.d.ts +0 -34
  188. package/dist/commands/slash/tokens.d.ts.map +0 -1
  189. package/dist/commands/slash/tokens.js +0 -205
  190. package/dist/commands/slash/tokens.js.map +0 -1
  191. package/dist/commands/slash/unleash.d.ts +0 -50
  192. package/dist/commands/slash/unleash.d.ts.map +0 -1
  193. package/dist/commands/slash/unleash.js +0 -262
  194. package/dist/commands/slash/unleash.js.map +0 -1
  195. package/dist/commands/slash/update.d.ts +0 -34
  196. package/dist/commands/slash/update.d.ts.map +0 -1
  197. package/dist/commands/slash/update.js +0 -364
  198. package/dist/commands/slash/update.js.map +0 -1
  199. package/dist/commands/slash/wrap.d.ts +0 -18
  200. package/dist/commands/slash/wrap.d.ts.map +0 -1
  201. package/dist/commands/slash/wrap.js +0 -21
  202. package/dist/commands/slash/wrap.js.map +0 -1
  203. package/dist/commands/tokens.d.ts +0 -26
  204. package/dist/commands/tokens.d.ts.map +0 -1
  205. package/dist/commands/tokens.js +0 -245
  206. package/dist/commands/tokens.js.map +0 -1
  207. package/dist/constants/builtin-agents.d.ts +0 -27
  208. package/dist/constants/builtin-agents.d.ts.map +0 -1
  209. package/dist/constants/builtin-agents.js +0 -710
  210. package/dist/constants/builtin-agents.js.map +0 -1
  211. package/dist/constants/builtin-skills.d.ts +0 -32
  212. package/dist/constants/builtin-skills.d.ts.map +0 -1
  213. package/dist/constants/builtin-skills.js +0 -389
  214. package/dist/constants/builtin-skills.js.map +0 -1
  215. package/dist/constants/defaults.d.ts +0 -448
  216. package/dist/constants/defaults.d.ts.map +0 -1
  217. package/dist/constants/defaults.js +0 -829
  218. package/dist/constants/defaults.js.map +0 -1
  219. package/dist/constants/index.d.ts +0 -27
  220. package/dist/constants/index.d.ts.map +0 -1
  221. package/dist/constants/index.js +0 -85
  222. package/dist/constants/index.js.map +0 -1
  223. package/dist/constants/install-hints.d.ts +0 -7
  224. package/dist/constants/install-hints.d.ts.map +0 -1
  225. package/dist/constants/install-hints.js +0 -123
  226. package/dist/constants/install-hints.js.map +0 -1
  227. package/dist/constants/models.d.ts +0 -255
  228. package/dist/constants/models.d.ts.map +0 -1
  229. package/dist/constants/models.js +0 -596
  230. package/dist/constants/models.js.map +0 -1
  231. package/dist/constants/schedule.d.ts +0 -43
  232. package/dist/constants/schedule.d.ts.map +0 -1
  233. package/dist/constants/schedule.js +0 -110
  234. package/dist/constants/schedule.js.map +0 -1
  235. package/dist/constants/system-utilities.d.ts +0 -57
  236. package/dist/constants/system-utilities.d.ts.map +0 -1
  237. package/dist/constants/system-utilities.js +0 -421
  238. package/dist/constants/system-utilities.js.map +0 -1
  239. package/dist/constants/token-limits.d.ts +0 -102
  240. package/dist/constants/token-limits.d.ts.map +0 -1
  241. package/dist/constants/token-limits.js +0 -286
  242. package/dist/constants/token-limits.js.map +0 -1
  243. package/dist/core/autocomplete.d.ts +0 -132
  244. package/dist/core/autocomplete.d.ts.map +0 -1
  245. package/dist/core/autocomplete.js +0 -653
  246. package/dist/core/autocomplete.js.map +0 -1
  247. package/dist/core/command-parser.d.ts +0 -301
  248. package/dist/core/command-parser.d.ts.map +0 -1
  249. package/dist/core/command-parser.js +0 -526
  250. package/dist/core/command-parser.js.map +0 -1
  251. package/dist/core/context-builder.d.ts +0 -264
  252. package/dist/core/context-builder.d.ts.map +0 -1
  253. package/dist/core/context-builder.js +0 -1018
  254. package/dist/core/context-builder.js.map +0 -1
  255. package/dist/core/event-emitter.d.ts +0 -411
  256. package/dist/core/event-emitter.d.ts.map +0 -1
  257. package/dist/core/event-emitter.js +0 -138
  258. package/dist/core/event-emitter.js.map +0 -1
  259. package/dist/core/history-manager.d.ts +0 -62
  260. package/dist/core/history-manager.d.ts.map +0 -1
  261. package/dist/core/history-manager.js +0 -151
  262. package/dist/core/history-manager.js.map +0 -1
  263. package/dist/core/slash-command-handler.d.ts +0 -352
  264. package/dist/core/slash-command-handler.d.ts.map +0 -1
  265. package/dist/core/slash-command-handler.js +0 -563
  266. package/dist/core/slash-command-handler.js.map +0 -1
  267. package/dist/core/task-processor.d.ts +0 -179
  268. package/dist/core/task-processor.d.ts.map +0 -1
  269. package/dist/core/task-processor.js +0 -519
  270. package/dist/core/task-processor.js.map +0 -1
  271. package/dist/index.d.ts +0 -90
  272. package/dist/index.d.ts.map +0 -1
  273. package/dist/index.js.map +0 -1
  274. package/dist/prompts/agent-prompt-generator.d.ts +0 -26
  275. package/dist/prompts/agent-prompt-generator.d.ts.map +0 -1
  276. package/dist/prompts/agent-prompt-generator.js +0 -244
  277. package/dist/prompts/agent-prompt-generator.js.map +0 -1
  278. package/dist/prompts/commit-message.d.ts +0 -35
  279. package/dist/prompts/commit-message.d.ts.map +0 -1
  280. package/dist/prompts/commit-message.js +0 -187
  281. package/dist/prompts/commit-message.js.map +0 -1
  282. package/dist/prompts/conversation.d.ts +0 -51
  283. package/dist/prompts/conversation.d.ts.map +0 -1
  284. package/dist/prompts/conversation.js +0 -115
  285. package/dist/prompts/conversation.js.map +0 -1
  286. package/dist/prompts/index.d.ts +0 -39
  287. package/dist/prompts/index.d.ts.map +0 -1
  288. package/dist/prompts/index.js +0 -74
  289. package/dist/prompts/index.js.map +0 -1
  290. package/dist/prompts/memory.d.ts +0 -6
  291. package/dist/prompts/memory.d.ts.map +0 -1
  292. package/dist/prompts/memory.js +0 -29
  293. package/dist/prompts/memory.js.map +0 -1
  294. package/dist/prompts/personality.d.ts +0 -77
  295. package/dist/prompts/personality.d.ts.map +0 -1
  296. package/dist/prompts/personality.js +0 -393
  297. package/dist/prompts/personality.js.map +0 -1
  298. package/dist/prompts/plan-generator.d.ts +0 -144
  299. package/dist/prompts/plan-generator.d.ts.map +0 -1
  300. package/dist/prompts/plan-generator.js +0 -553
  301. package/dist/prompts/plan-generator.js.map +0 -1
  302. package/dist/prompts/system.d.ts +0 -95
  303. package/dist/prompts/system.d.ts.map +0 -1
  304. package/dist/prompts/system.js +0 -461
  305. package/dist/prompts/system.js.map +0 -1
  306. package/dist/prompts/task-processor.d.ts +0 -94
  307. package/dist/prompts/task-processor.d.ts.map +0 -1
  308. package/dist/prompts/task-processor.js +0 -554
  309. package/dist/prompts/task-processor.js.map +0 -1
  310. package/dist/prompts/unguarded.d.ts +0 -78
  311. package/dist/prompts/unguarded.d.ts.map +0 -1
  312. package/dist/prompts/unguarded.js +0 -418
  313. package/dist/prompts/unguarded.js.map +0 -1
  314. package/dist/prompts/utils.d.ts +0 -73
  315. package/dist/prompts/utils.d.ts.map +0 -1
  316. package/dist/prompts/utils.js +0 -114
  317. package/dist/prompts/utils.js.map +0 -1
  318. package/dist/prompts/workflow.d.ts +0 -241
  319. package/dist/prompts/workflow.d.ts.map +0 -1
  320. package/dist/prompts/workflow.js +0 -608
  321. package/dist/prompts/workflow.js.map +0 -1
  322. package/dist/services/action-logger.d.ts +0 -383
  323. package/dist/services/action-logger.d.ts.map +0 -1
  324. package/dist/services/action-logger.js +0 -544
  325. package/dist/services/action-logger.js.map +0 -1
  326. package/dist/services/agent-budget-allocator.d.ts +0 -111
  327. package/dist/services/agent-budget-allocator.d.ts.map +0 -1
  328. package/dist/services/agent-budget-allocator.js +0 -278
  329. package/dist/services/agent-budget-allocator.js.map +0 -1
  330. package/dist/services/agent-manager.d.ts +0 -181
  331. package/dist/services/agent-manager.d.ts.map +0 -1
  332. package/dist/services/agent-manager.js +0 -749
  333. package/dist/services/agent-manager.js.map +0 -1
  334. package/dist/services/agent-spawner.d.ts +0 -138
  335. package/dist/services/agent-spawner.d.ts.map +0 -1
  336. package/dist/services/agent-spawner.js +0 -748
  337. package/dist/services/agent-spawner.js.map +0 -1
  338. package/dist/services/agent-state-service.d.ts +0 -145
  339. package/dist/services/agent-state-service.d.ts.map +0 -1
  340. package/dist/services/agent-state-service.js +0 -247
  341. package/dist/services/agent-state-service.js.map +0 -1
  342. package/dist/services/anthropic-client.d.ts +0 -357
  343. package/dist/services/anthropic-client.d.ts.map +0 -1
  344. package/dist/services/anthropic-client.js +0 -1451
  345. package/dist/services/anthropic-client.js.map +0 -1
  346. package/dist/services/approval-manager.d.ts +0 -385
  347. package/dist/services/approval-manager.d.ts.map +0 -1
  348. package/dist/services/approval-manager.js +0 -1044
  349. package/dist/services/approval-manager.js.map +0 -1
  350. package/dist/services/audit-logger.d.ts +0 -245
  351. package/dist/services/audit-logger.d.ts.map +0 -1
  352. package/dist/services/audit-logger.js +0 -324
  353. package/dist/services/audit-logger.js.map +0 -1
  354. package/dist/services/backup-manager.d.ts +0 -136
  355. package/dist/services/backup-manager.d.ts.map +0 -1
  356. package/dist/services/backup-manager.js +0 -260
  357. package/dist/services/backup-manager.js.map +0 -1
  358. package/dist/services/cache-service.d.ts +0 -247
  359. package/dist/services/cache-service.d.ts.map +0 -1
  360. package/dist/services/cache-service.js +0 -558
  361. package/dist/services/cache-service.js.map +0 -1
  362. package/dist/services/chat-archival-service.d.ts +0 -108
  363. package/dist/services/chat-archival-service.d.ts.map +0 -1
  364. package/dist/services/chat-archival-service.js +0 -465
  365. package/dist/services/chat-archival-service.js.map +0 -1
  366. package/dist/services/codebase-indexer.d.ts +0 -272
  367. package/dist/services/codebase-indexer.d.ts.map +0 -1
  368. package/dist/services/codebase-indexer.js +0 -863
  369. package/dist/services/codebase-indexer.js.map +0 -1
  370. package/dist/services/compass-auth-service.d.ts +0 -204
  371. package/dist/services/compass-auth-service.d.ts.map +0 -1
  372. package/dist/services/compass-auth-service.js +0 -391
  373. package/dist/services/compass-auth-service.js.map +0 -1
  374. package/dist/services/complexity-classifier.d.ts +0 -208
  375. package/dist/services/complexity-classifier.d.ts.map +0 -1
  376. package/dist/services/complexity-classifier.js +0 -1410
  377. package/dist/services/complexity-classifier.js.map +0 -1
  378. package/dist/services/config-manager.d.ts +0 -278
  379. package/dist/services/config-manager.d.ts.map +0 -1
  380. package/dist/services/config-manager.js +0 -651
  381. package/dist/services/config-manager.js.map +0 -1
  382. package/dist/services/consent-manager.d.ts +0 -239
  383. package/dist/services/consent-manager.d.ts.map +0 -1
  384. package/dist/services/consent-manager.js +0 -516
  385. package/dist/services/consent-manager.js.map +0 -1
  386. package/dist/services/conversation-compactor.d.ts +0 -223
  387. package/dist/services/conversation-compactor.d.ts.map +0 -1
  388. package/dist/services/conversation-compactor.js +0 -750
  389. package/dist/services/conversation-compactor.js.map +0 -1
  390. package/dist/services/cost-tracker.d.ts +0 -167
  391. package/dist/services/cost-tracker.d.ts.map +0 -1
  392. package/dist/services/cost-tracker.js +0 -199
  393. package/dist/services/cost-tracker.js.map +0 -1
  394. package/dist/services/credential-store.d.ts +0 -273
  395. package/dist/services/credential-store.d.ts.map +0 -1
  396. package/dist/services/credential-store.js +0 -877
  397. package/dist/services/credential-store.js.map +0 -1
  398. package/dist/services/custom-command-service.d.ts +0 -112
  399. package/dist/services/custom-command-service.d.ts.map +0 -1
  400. package/dist/services/custom-command-service.js +0 -464
  401. package/dist/services/custom-command-service.js.map +0 -1
  402. package/dist/services/default-statusline-renderer.d.ts +0 -60
  403. package/dist/services/default-statusline-renderer.d.ts.map +0 -1
  404. package/dist/services/default-statusline-renderer.js +0 -110
  405. package/dist/services/default-statusline-renderer.js.map +0 -1
  406. package/dist/services/enhanced-context-gatherer.d.ts +0 -116
  407. package/dist/services/enhanced-context-gatherer.d.ts.map +0 -1
  408. package/dist/services/enhanced-context-gatherer.js +0 -605
  409. package/dist/services/enhanced-context-gatherer.js.map +0 -1
  410. package/dist/services/file-hash-tracker.d.ts +0 -95
  411. package/dist/services/file-hash-tracker.d.ts.map +0 -1
  412. package/dist/services/file-hash-tracker.js +0 -199
  413. package/dist/services/file-hash-tracker.js.map +0 -1
  414. package/dist/services/file-service.d.ts +0 -274
  415. package/dist/services/file-service.d.ts.map +0 -1
  416. package/dist/services/file-service.js +0 -876
  417. package/dist/services/file-service.js.map +0 -1
  418. package/dist/services/git-service.d.ts +0 -536
  419. package/dist/services/git-service.d.ts.map +0 -1
  420. package/dist/services/git-service.js +0 -1215
  421. package/dist/services/git-service.js.map +0 -1
  422. package/dist/services/hook-service.d.ts +0 -148
  423. package/dist/services/hook-service.d.ts.map +0 -1
  424. package/dist/services/hook-service.js +0 -705
  425. package/dist/services/hook-service.js.map +0 -1
  426. package/dist/services/ide-state-service.d.ts +0 -114
  427. package/dist/services/ide-state-service.d.ts.map +0 -1
  428. package/dist/services/ide-state-service.js +0 -204
  429. package/dist/services/ide-state-service.js.map +0 -1
  430. package/dist/services/interactive-clarifier.d.ts +0 -90
  431. package/dist/services/interactive-clarifier.d.ts.map +0 -1
  432. package/dist/services/interactive-clarifier.js +0 -446
  433. package/dist/services/interactive-clarifier.js.map +0 -1
  434. package/dist/services/iteration-scoper.d.ts +0 -225
  435. package/dist/services/iteration-scoper.d.ts.map +0 -1
  436. package/dist/services/iteration-scoper.js +0 -387
  437. package/dist/services/iteration-scoper.js.map +0 -1
  438. package/dist/services/llm-plan-generator.d.ts +0 -44
  439. package/dist/services/llm-plan-generator.d.ts.map +0 -1
  440. package/dist/services/llm-plan-generator.js +0 -863
  441. package/dist/services/llm-plan-generator.js.map +0 -1
  442. package/dist/services/llm-system-prompt-generator.d.ts +0 -85
  443. package/dist/services/llm-system-prompt-generator.d.ts.map +0 -1
  444. package/dist/services/llm-system-prompt-generator.js +0 -257
  445. package/dist/services/llm-system-prompt-generator.js.map +0 -1
  446. package/dist/services/log-interpreter.d.ts +0 -190
  447. package/dist/services/log-interpreter.d.ts.map +0 -1
  448. package/dist/services/log-interpreter.js +0 -520
  449. package/dist/services/log-interpreter.js.map +0 -1
  450. package/dist/services/mcp-config-manager.d.ts +0 -141
  451. package/dist/services/mcp-config-manager.d.ts.map +0 -1
  452. package/dist/services/mcp-config-manager.js +0 -678
  453. package/dist/services/mcp-config-manager.js.map +0 -1
  454. package/dist/services/mcp-oauth-service.d.ts +0 -170
  455. package/dist/services/mcp-oauth-service.d.ts.map +0 -1
  456. package/dist/services/mcp-oauth-service.js +0 -892
  457. package/dist/services/mcp-oauth-service.js.map +0 -1
  458. package/dist/services/mcp-plugin-support.d.ts +0 -81
  459. package/dist/services/mcp-plugin-support.d.ts.map +0 -1
  460. package/dist/services/mcp-plugin-support.js +0 -305
  461. package/dist/services/mcp-plugin-support.js.map +0 -1
  462. package/dist/services/mcp-server-manager.d.ts +0 -134
  463. package/dist/services/mcp-server-manager.d.ts.map +0 -1
  464. package/dist/services/mcp-server-manager.js +0 -613
  465. package/dist/services/mcp-server-manager.js.map +0 -1
  466. package/dist/services/mcp-tool-integration.d.ts +0 -119
  467. package/dist/services/mcp-tool-integration.d.ts.map +0 -1
  468. package/dist/services/mcp-tool-integration.js +0 -381
  469. package/dist/services/mcp-tool-integration.js.map +0 -1
  470. package/dist/services/mcp-transport.d.ts +0 -105
  471. package/dist/services/mcp-transport.d.ts.map +0 -1
  472. package/dist/services/mcp-transport.js +0 -1316
  473. package/dist/services/mcp-transport.js.map +0 -1
  474. package/dist/services/memory-service.d.ts +0 -55
  475. package/dist/services/memory-service.d.ts.map +0 -1
  476. package/dist/services/memory-service.js +0 -251
  477. package/dist/services/memory-service.js.map +0 -1
  478. package/dist/services/model-availability.d.ts +0 -64
  479. package/dist/services/model-availability.d.ts.map +0 -1
  480. package/dist/services/model-availability.js +0 -114
  481. package/dist/services/model-availability.js.map +0 -1
  482. package/dist/services/plan-generator.d.ts +0 -98
  483. package/dist/services/plan-generator.d.ts.map +0 -1
  484. package/dist/services/plan-generator.js +0 -658
  485. package/dist/services/plan-generator.js.map +0 -1
  486. package/dist/services/plan-mode-fallback.d.ts +0 -80
  487. package/dist/services/plan-mode-fallback.d.ts.map +0 -1
  488. package/dist/services/plan-mode-fallback.js +0 -307
  489. package/dist/services/plan-mode-fallback.js.map +0 -1
  490. package/dist/services/plan-mode-handler.d.ts +0 -42
  491. package/dist/services/plan-mode-handler.d.ts.map +0 -1
  492. package/dist/services/plan-mode-handler.js +0 -388
  493. package/dist/services/plan-mode-handler.js.map +0 -1
  494. package/dist/services/plan-persistence.d.ts +0 -203
  495. package/dist/services/plan-persistence.d.ts.map +0 -1
  496. package/dist/services/plan-persistence.js +0 -538
  497. package/dist/services/plan-persistence.js.map +0 -1
  498. package/dist/services/prompt-preprocessor.d.ts +0 -73
  499. package/dist/services/prompt-preprocessor.d.ts.map +0 -1
  500. package/dist/services/prompt-preprocessor.js +0 -146
  501. package/dist/services/prompt-preprocessor.js.map +0 -1
  502. package/dist/services/rating-service.d.ts +0 -84
  503. package/dist/services/rating-service.d.ts.map +0 -1
  504. package/dist/services/rating-service.js +0 -171
  505. package/dist/services/rating-service.js.map +0 -1
  506. package/dist/services/rating-state-manager.d.ts +0 -131
  507. package/dist/services/rating-state-manager.d.ts.map +0 -1
  508. package/dist/services/rating-state-manager.js +0 -270
  509. package/dist/services/rating-state-manager.js.map +0 -1
  510. package/dist/services/sdk-runner.d.ts +0 -113
  511. package/dist/services/sdk-runner.d.ts.map +0 -1
  512. package/dist/services/sdk-runner.js +0 -1424
  513. package/dist/services/sdk-runner.js.map +0 -1
  514. package/dist/services/session-manager.d.ts +0 -528
  515. package/dist/services/session-manager.d.ts.map +0 -1
  516. package/dist/services/session-manager.js +0 -1184
  517. package/dist/services/session-manager.js.map +0 -1
  518. package/dist/services/shell-executor.d.ts +0 -337
  519. package/dist/services/shell-executor.d.ts.map +0 -1
  520. package/dist/services/shell-executor.js +0 -1201
  521. package/dist/services/shell-executor.js.map +0 -1
  522. package/dist/services/skill-service.d.ts +0 -149
  523. package/dist/services/skill-service.d.ts.map +0 -1
  524. package/dist/services/skill-service.js +0 -594
  525. package/dist/services/skill-service.js.map +0 -1
  526. package/dist/services/statusline-executor.d.ts +0 -102
  527. package/dist/services/statusline-executor.d.ts.map +0 -1
  528. package/dist/services/statusline-executor.js +0 -305
  529. package/dist/services/statusline-executor.js.map +0 -1
  530. package/dist/services/step-tracker.d.ts +0 -356
  531. package/dist/services/step-tracker.d.ts.map +0 -1
  532. package/dist/services/step-tracker.js +0 -634
  533. package/dist/services/step-tracker.js.map +0 -1
  534. package/dist/services/system-event-logger.d.ts +0 -473
  535. package/dist/services/system-event-logger.d.ts.map +0 -1
  536. package/dist/services/system-event-logger.js +0 -790
  537. package/dist/services/system-event-logger.js.map +0 -1
  538. package/dist/services/system-utility-detector.d.ts +0 -91
  539. package/dist/services/system-utility-detector.d.ts.map +0 -1
  540. package/dist/services/system-utility-detector.js +0 -238
  541. package/dist/services/system-utility-detector.js.map +0 -1
  542. package/dist/services/team-context-store.d.ts +0 -100
  543. package/dist/services/team-context-store.d.ts.map +0 -1
  544. package/dist/services/team-context-store.js +0 -513
  545. package/dist/services/team-context-store.js.map +0 -1
  546. package/dist/services/temp-file-service.d.ts +0 -164
  547. package/dist/services/temp-file-service.d.ts.map +0 -1
  548. package/dist/services/temp-file-service.js +0 -303
  549. package/dist/services/temp-file-service.js.map +0 -1
  550. package/dist/services/token-limit-enforcer.d.ts +0 -53
  551. package/dist/services/token-limit-enforcer.d.ts.map +0 -1
  552. package/dist/services/token-limit-enforcer.js +0 -90
  553. package/dist/services/token-limit-enforcer.js.map +0 -1
  554. package/dist/services/token-limit-store.d.ts +0 -105
  555. package/dist/services/token-limit-store.d.ts.map +0 -1
  556. package/dist/services/token-limit-store.js +0 -288
  557. package/dist/services/token-limit-store.js.map +0 -1
  558. package/dist/services/token-tracker.d.ts +0 -290
  559. package/dist/services/token-tracker.d.ts.map +0 -1
  560. package/dist/services/token-tracker.js +0 -751
  561. package/dist/services/token-tracker.js.map +0 -1
  562. package/dist/services/tool-registry.d.ts +0 -302
  563. package/dist/services/tool-registry.d.ts.map +0 -1
  564. package/dist/services/tool-registry.js +0 -606
  565. package/dist/services/tool-registry.js.map +0 -1
  566. package/dist/services/tools-logger.d.ts +0 -152
  567. package/dist/services/tools-logger.d.ts.map +0 -1
  568. package/dist/services/tools-logger.js +0 -222
  569. package/dist/services/tools-logger.js.map +0 -1
  570. package/dist/services/update-plan-handler.d.ts +0 -56
  571. package/dist/services/update-plan-handler.d.ts.map +0 -1
  572. package/dist/services/update-plan-handler.js +0 -372
  573. package/dist/services/update-plan-handler.js.map +0 -1
  574. package/dist/services/update-service.d.ts +0 -197
  575. package/dist/services/update-service.d.ts.map +0 -1
  576. package/dist/services/update-service.js +0 -749
  577. package/dist/services/update-service.js.map +0 -1
  578. package/dist/services/verifier.d.ts +0 -113
  579. package/dist/services/verifier.d.ts.map +0 -1
  580. package/dist/services/verifier.js +0 -541
  581. package/dist/services/verifier.js.map +0 -1
  582. package/dist/services/workflow-manager.d.ts +0 -277
  583. package/dist/services/workflow-manager.d.ts.map +0 -1
  584. package/dist/services/workflow-manager.js +0 -616
  585. package/dist/services/workflow-manager.js.map +0 -1
  586. package/dist/services/workflow-orchestrator.d.ts +0 -148
  587. package/dist/services/workflow-orchestrator.d.ts.map +0 -1
  588. package/dist/services/workflow-orchestrator.js +0 -617
  589. package/dist/services/workflow-orchestrator.js.map +0 -1
  590. package/dist/services/worktree-manager.d.ts +0 -36
  591. package/dist/services/worktree-manager.d.ts.map +0 -1
  592. package/dist/services/worktree-manager.js +0 -185
  593. package/dist/services/worktree-manager.js.map +0 -1
  594. package/dist/templates/ascii-art.d.ts +0 -136
  595. package/dist/templates/ascii-art.d.ts.map +0 -1
  596. package/dist/templates/ascii-art.js +0 -286
  597. package/dist/templates/ascii-art.js.map +0 -1
  598. package/dist/templates/help.d.ts +0 -186
  599. package/dist/templates/help.d.ts.map +0 -1
  600. package/dist/templates/help.js +0 -588
  601. package/dist/templates/help.js.map +0 -1
  602. package/dist/templates/prompts/workflow-prompts.d.ts +0 -9
  603. package/dist/templates/prompts/workflow-prompts.d.ts.map +0 -1
  604. package/dist/templates/prompts/workflow-prompts.js +0 -9
  605. package/dist/templates/prompts/workflow-prompts.js.map +0 -1
  606. package/dist/tools/agent-tools.d.ts +0 -9
  607. package/dist/tools/agent-tools.d.ts.map +0 -1
  608. package/dist/tools/agent-tools.js +0 -349
  609. package/dist/tools/agent-tools.js.map +0 -1
  610. package/dist/tools/edit-replacers.d.ts +0 -90
  611. package/dist/tools/edit-replacers.d.ts.map +0 -1
  612. package/dist/tools/edit-replacers.js +0 -553
  613. package/dist/tools/edit-replacers.js.map +0 -1
  614. package/dist/tools/file-tools.d.ts +0 -13
  615. package/dist/tools/file-tools.d.ts.map +0 -1
  616. package/dist/tools/file-tools.js +0 -954
  617. package/dist/tools/file-tools.js.map +0 -1
  618. package/dist/tools/git-tools.d.ts +0 -9
  619. package/dist/tools/git-tools.d.ts.map +0 -1
  620. package/dist/tools/git-tools.js +0 -261
  621. package/dist/tools/git-tools.js.map +0 -1
  622. package/dist/tools/index.d.ts +0 -13
  623. package/dist/tools/index.d.ts.map +0 -1
  624. package/dist/tools/index.js +0 -70
  625. package/dist/tools/index.js.map +0 -1
  626. package/dist/tools/network-tools.d.ts +0 -8
  627. package/dist/tools/network-tools.d.ts.map +0 -1
  628. package/dist/tools/network-tools.js +0 -261
  629. package/dist/tools/network-tools.js.map +0 -1
  630. package/dist/tools/openai-tools.d.ts +0 -16
  631. package/dist/tools/openai-tools.d.ts.map +0 -1
  632. package/dist/tools/openai-tools.js +0 -385
  633. package/dist/tools/openai-tools.js.map +0 -1
  634. package/dist/tools/plan-tools.d.ts +0 -9
  635. package/dist/tools/plan-tools.d.ts.map +0 -1
  636. package/dist/tools/plan-tools.js +0 -223
  637. package/dist/tools/plan-tools.js.map +0 -1
  638. package/dist/tools/schedule-tools.d.ts +0 -9
  639. package/dist/tools/schedule-tools.d.ts.map +0 -1
  640. package/dist/tools/schedule-tools.js +0 -405
  641. package/dist/tools/schedule-tools.js.map +0 -1
  642. package/dist/tools/search-tools.d.ts +0 -8
  643. package/dist/tools/search-tools.d.ts.map +0 -1
  644. package/dist/tools/search-tools.js +0 -357
  645. package/dist/tools/search-tools.js.map +0 -1
  646. package/dist/tools/shared-utils.d.ts +0 -91
  647. package/dist/tools/shared-utils.d.ts.map +0 -1
  648. package/dist/tools/shared-utils.js +0 -385
  649. package/dist/tools/shared-utils.js.map +0 -1
  650. package/dist/tools/shell-tools.d.ts +0 -9
  651. package/dist/tools/shell-tools.d.ts.map +0 -1
  652. package/dist/tools/shell-tools.js +0 -409
  653. package/dist/tools/shell-tools.js.map +0 -1
  654. package/dist/tools/skill-tools.d.ts +0 -13
  655. package/dist/tools/skill-tools.d.ts.map +0 -1
  656. package/dist/tools/skill-tools.js +0 -244
  657. package/dist/tools/skill-tools.js.map +0 -1
  658. package/dist/tools/swarm-tools.d.ts +0 -9
  659. package/dist/tools/swarm-tools.d.ts.map +0 -1
  660. package/dist/tools/swarm-tools.js +0 -422
  661. package/dist/tools/swarm-tools.js.map +0 -1
  662. package/dist/tools/user-tools.d.ts +0 -13
  663. package/dist/tools/user-tools.d.ts.map +0 -1
  664. package/dist/tools/user-tools.js +0 -232
  665. package/dist/tools/user-tools.js.map +0 -1
  666. package/dist/types/agent-process.d.ts +0 -244
  667. package/dist/types/agent-process.d.ts.map +0 -1
  668. package/dist/types/agent-process.js +0 -93
  669. package/dist/types/agent-process.js.map +0 -1
  670. package/dist/types/agent.d.ts +0 -358
  671. package/dist/types/agent.d.ts.map +0 -1
  672. package/dist/types/agent.js +0 -171
  673. package/dist/types/agent.js.map +0 -1
  674. package/dist/types/anthropic.d.ts +0 -438
  675. package/dist/types/anthropic.d.ts.map +0 -1
  676. package/dist/types/anthropic.js +0 -9
  677. package/dist/types/anthropic.js.map +0 -1
  678. package/dist/types/approval.d.ts +0 -332
  679. package/dist/types/approval.d.ts.map +0 -1
  680. package/dist/types/approval.js +0 -44
  681. package/dist/types/approval.js.map +0 -1
  682. package/dist/types/autocomplete.d.ts +0 -57
  683. package/dist/types/autocomplete.d.ts.map +0 -1
  684. package/dist/types/autocomplete.js +0 -7
  685. package/dist/types/autocomplete.js.map +0 -1
  686. package/dist/types/chat-archive.d.ts +0 -161
  687. package/dist/types/chat-archive.d.ts.map +0 -1
  688. package/dist/types/chat-archive.js +0 -36
  689. package/dist/types/chat-archive.js.map +0 -1
  690. package/dist/types/config.d.ts +0 -268
  691. package/dist/types/config.d.ts.map +0 -1
  692. package/dist/types/config.js +0 -188
  693. package/dist/types/config.js.map +0 -1
  694. package/dist/types/consent.d.ts +0 -191
  695. package/dist/types/consent.d.ts.map +0 -1
  696. package/dist/types/consent.js +0 -119
  697. package/dist/types/consent.js.map +0 -1
  698. package/dist/types/custom-command.d.ts +0 -139
  699. package/dist/types/custom-command.d.ts.map +0 -1
  700. package/dist/types/custom-command.js +0 -7
  701. package/dist/types/custom-command.js.map +0 -1
  702. package/dist/types/git.d.ts +0 -20
  703. package/dist/types/git.d.ts.map +0 -1
  704. package/dist/types/git.js +0 -2
  705. package/dist/types/git.js.map +0 -1
  706. package/dist/types/hook.d.ts +0 -342
  707. package/dist/types/hook.d.ts.map +0 -1
  708. package/dist/types/hook.js +0 -84
  709. package/dist/types/hook.js.map +0 -1
  710. package/dist/types/index.d.ts +0 -86
  711. package/dist/types/index.d.ts.map +0 -1
  712. package/dist/types/index.js +0 -71
  713. package/dist/types/index.js.map +0 -1
  714. package/dist/types/mcp.d.ts +0 -456
  715. package/dist/types/mcp.d.ts.map +0 -1
  716. package/dist/types/mcp.js +0 -94
  717. package/dist/types/mcp.js.map +0 -1
  718. package/dist/types/rating.d.ts +0 -110
  719. package/dist/types/rating.d.ts.map +0 -1
  720. package/dist/types/rating.js +0 -53
  721. package/dist/types/rating.js.map +0 -1
  722. package/dist/types/schedule.d.ts +0 -91
  723. package/dist/types/schedule.d.ts.map +0 -1
  724. package/dist/types/schedule.js +0 -8
  725. package/dist/types/schedule.js.map +0 -1
  726. package/dist/types/session.d.ts +0 -361
  727. package/dist/types/session.d.ts.map +0 -1
  728. package/dist/types/session.js +0 -9
  729. package/dist/types/session.js.map +0 -1
  730. package/dist/types/skill.d.ts +0 -258
  731. package/dist/types/skill.d.ts.map +0 -1
  732. package/dist/types/skill.js +0 -79
  733. package/dist/types/skill.js.map +0 -1
  734. package/dist/types/statusline.d.ts +0 -212
  735. package/dist/types/statusline.d.ts.map +0 -1
  736. package/dist/types/statusline.js +0 -8
  737. package/dist/types/statusline.js.map +0 -1
  738. package/dist/types/stream.d.ts +0 -61
  739. package/dist/types/stream.d.ts.map +0 -1
  740. package/dist/types/stream.js +0 -17
  741. package/dist/types/stream.js.map +0 -1
  742. package/dist/types/swarm.d.ts +0 -132
  743. package/dist/types/swarm.d.ts.map +0 -1
  744. package/dist/types/swarm.js +0 -21
  745. package/dist/types/swarm.js.map +0 -1
  746. package/dist/types/token-limits.d.ts +0 -107
  747. package/dist/types/token-limits.d.ts.map +0 -1
  748. package/dist/types/token-limits.js +0 -57
  749. package/dist/types/token-limits.js.map +0 -1
  750. package/dist/types/token.d.ts +0 -329
  751. package/dist/types/token.d.ts.map +0 -1
  752. package/dist/types/token.js +0 -9
  753. package/dist/types/token.js.map +0 -1
  754. package/dist/types/update.d.ts +0 -189
  755. package/dist/types/update.d.ts.map +0 -1
  756. package/dist/types/update.js +0 -55
  757. package/dist/types/update.js.map +0 -1
  758. package/dist/types/workflow.d.ts +0 -396
  759. package/dist/types/workflow.d.ts.map +0 -1
  760. package/dist/types/workflow.js +0 -46
  761. package/dist/types/workflow.js.map +0 -1
  762. package/dist/ui/App.d.ts +0 -62
  763. package/dist/ui/App.d.ts.map +0 -1
  764. package/dist/ui/App.js +0 -511
  765. package/dist/ui/App.js.map +0 -1
  766. package/dist/ui/InteractiveSession.d.ts +0 -34
  767. package/dist/ui/InteractiveSession.d.ts.map +0 -1
  768. package/dist/ui/InteractiveSession.js +0 -3611
  769. package/dist/ui/InteractiveSession.js.map +0 -1
  770. package/dist/ui/MCPApprovalPrompt.d.ts +0 -27
  771. package/dist/ui/MCPApprovalPrompt.d.ts.map +0 -1
  772. package/dist/ui/MCPApprovalPrompt.js +0 -51
  773. package/dist/ui/MCPApprovalPrompt.js.map +0 -1
  774. package/dist/ui/SetupWizard.d.ts +0 -26
  775. package/dist/ui/SetupWizard.d.ts.map +0 -1
  776. package/dist/ui/SetupWizard.js +0 -396
  777. package/dist/ui/SetupWizard.js.map +0 -1
  778. package/dist/ui/components/AgentCreationWizard.d.ts +0 -36
  779. package/dist/ui/components/AgentCreationWizard.d.ts.map +0 -1
  780. package/dist/ui/components/AgentCreationWizard.js +0 -619
  781. package/dist/ui/components/AgentCreationWizard.js.map +0 -1
  782. package/dist/ui/components/AgentManager.d.ts +0 -41
  783. package/dist/ui/components/AgentManager.d.ts.map +0 -1
  784. package/dist/ui/components/AgentManager.js +0 -343
  785. package/dist/ui/components/AgentManager.js.map +0 -1
  786. package/dist/ui/components/ApprovalDialog.d.ts +0 -18
  787. package/dist/ui/components/ApprovalDialog.d.ts.map +0 -1
  788. package/dist/ui/components/ApprovalDialog.js +0 -439
  789. package/dist/ui/components/ApprovalDialog.js.map +0 -1
  790. package/dist/ui/components/AsciiArt.d.ts +0 -54
  791. package/dist/ui/components/AsciiArt.d.ts.map +0 -1
  792. package/dist/ui/components/AsciiArt.js +0 -89
  793. package/dist/ui/components/AsciiArt.js.map +0 -1
  794. package/dist/ui/components/ClarificationWizard.d.ts +0 -36
  795. package/dist/ui/components/ClarificationWizard.d.ts.map +0 -1
  796. package/dist/ui/components/ClarificationWizard.js +0 -407
  797. package/dist/ui/components/ClarificationWizard.js.map +0 -1
  798. package/dist/ui/components/CompassSpinner.d.ts +0 -15
  799. package/dist/ui/components/CompassSpinner.d.ts.map +0 -1
  800. package/dist/ui/components/CompassSpinner.js +0 -50
  801. package/dist/ui/components/CompassSpinner.js.map +0 -1
  802. package/dist/ui/components/ConfirmationSelector.d.ts +0 -45
  803. package/dist/ui/components/ConfirmationSelector.d.ts.map +0 -1
  804. package/dist/ui/components/ConfirmationSelector.js +0 -106
  805. package/dist/ui/components/ConfirmationSelector.js.map +0 -1
  806. package/dist/ui/components/ContextUsage.d.ts +0 -76
  807. package/dist/ui/components/ContextUsage.d.ts.map +0 -1
  808. package/dist/ui/components/ContextUsage.js +0 -188
  809. package/dist/ui/components/ContextUsage.js.map +0 -1
  810. package/dist/ui/components/DiffPreview.d.ts +0 -13
  811. package/dist/ui/components/DiffPreview.d.ts.map +0 -1
  812. package/dist/ui/components/DiffPreview.js +0 -30
  813. package/dist/ui/components/DiffPreview.js.map +0 -1
  814. package/dist/ui/components/ExecutionModeSelector.d.ts +0 -45
  815. package/dist/ui/components/ExecutionModeSelector.d.ts.map +0 -1
  816. package/dist/ui/components/ExecutionModeSelector.js +0 -120
  817. package/dist/ui/components/ExecutionModeSelector.js.map +0 -1
  818. package/dist/ui/components/FileTree.d.ts +0 -47
  819. package/dist/ui/components/FileTree.d.ts.map +0 -1
  820. package/dist/ui/components/FileTree.js +0 -258
  821. package/dist/ui/components/FileTree.js.map +0 -1
  822. package/dist/ui/components/HelpMenu.d.ts +0 -49
  823. package/dist/ui/components/HelpMenu.d.ts.map +0 -1
  824. package/dist/ui/components/HelpMenu.js +0 -91
  825. package/dist/ui/components/HelpMenu.js.map +0 -1
  826. package/dist/ui/components/InterleavedStream.d.ts +0 -42
  827. package/dist/ui/components/InterleavedStream.d.ts.map +0 -1
  828. package/dist/ui/components/InterleavedStream.js +0 -1500
  829. package/dist/ui/components/InterleavedStream.js.map +0 -1
  830. package/dist/ui/components/ModelSelector.d.ts +0 -81
  831. package/dist/ui/components/ModelSelector.d.ts.map +0 -1
  832. package/dist/ui/components/ModelSelector.js +0 -305
  833. package/dist/ui/components/ModelSelector.js.map +0 -1
  834. package/dist/ui/components/PlanApprovalDialog.d.ts +0 -21
  835. package/dist/ui/components/PlanApprovalDialog.d.ts.map +0 -1
  836. package/dist/ui/components/PlanApprovalDialog.js +0 -189
  837. package/dist/ui/components/PlanApprovalDialog.js.map +0 -1
  838. package/dist/ui/components/PlanExecutionTracker.d.ts +0 -53
  839. package/dist/ui/components/PlanExecutionTracker.d.ts.map +0 -1
  840. package/dist/ui/components/PlanExecutionTracker.js +0 -113
  841. package/dist/ui/components/PlanExecutionTracker.js.map +0 -1
  842. package/dist/ui/components/ProgressIndicator.d.ts +0 -151
  843. package/dist/ui/components/ProgressIndicator.d.ts.map +0 -1
  844. package/dist/ui/components/ProgressIndicator.js +0 -171
  845. package/dist/ui/components/ProgressIndicator.js.map +0 -1
  846. package/dist/ui/components/Prompt.d.ts +0 -47
  847. package/dist/ui/components/Prompt.d.ts.map +0 -1
  848. package/dist/ui/components/Prompt.js +0 -632
  849. package/dist/ui/components/Prompt.js.map +0 -1
  850. package/dist/ui/components/RatingPanel.d.ts +0 -45
  851. package/dist/ui/components/RatingPanel.d.ts.map +0 -1
  852. package/dist/ui/components/RatingPanel.js +0 -119
  853. package/dist/ui/components/RatingPanel.js.map +0 -1
  854. package/dist/ui/components/StatusLine.d.ts +0 -43
  855. package/dist/ui/components/StatusLine.d.ts.map +0 -1
  856. package/dist/ui/components/StatusLine.js +0 -44
  857. package/dist/ui/components/StatusLine.js.map +0 -1
  858. package/dist/ui/components/StreamingResponse.d.ts +0 -45
  859. package/dist/ui/components/StreamingResponse.d.ts.map +0 -1
  860. package/dist/ui/components/StreamingResponse.js +0 -56
  861. package/dist/ui/components/StreamingResponse.js.map +0 -1
  862. package/dist/ui/components/TokenUsage.d.ts +0 -89
  863. package/dist/ui/components/TokenUsage.d.ts.map +0 -1
  864. package/dist/ui/components/TokenUsage.js +0 -99
  865. package/dist/ui/components/TokenUsage.js.map +0 -1
  866. package/dist/ui/components/ToolSummary.d.ts +0 -77
  867. package/dist/ui/components/ToolSummary.d.ts.map +0 -1
  868. package/dist/ui/components/ToolSummary.js +0 -162
  869. package/dist/ui/components/ToolSummary.js.map +0 -1
  870. package/dist/ui/components/UpdateNotification.d.ts +0 -65
  871. package/dist/ui/components/UpdateNotification.d.ts.map +0 -1
  872. package/dist/ui/components/UpdateNotification.js +0 -166
  873. package/dist/ui/components/UpdateNotification.js.map +0 -1
  874. package/dist/ui/diff-renderer.d.ts +0 -18
  875. package/dist/ui/diff-renderer.d.ts.map +0 -1
  876. package/dist/ui/diff-renderer.js +0 -206
  877. package/dist/ui/diff-renderer.js.map +0 -1
  878. package/dist/ui/themes/markdown-theme.d.ts +0 -48
  879. package/dist/ui/themes/markdown-theme.d.ts.map +0 -1
  880. package/dist/ui/themes/markdown-theme.js +0 -79
  881. package/dist/ui/themes/markdown-theme.js.map +0 -1
  882. package/dist/ui/themes/ui-theme.d.ts +0 -301
  883. package/dist/ui/themes/ui-theme.d.ts.map +0 -1
  884. package/dist/ui/themes/ui-theme.js +0 -204
  885. package/dist/ui/themes/ui-theme.js.map +0 -1
  886. package/dist/utils/attachment-handler.d.ts +0 -129
  887. package/dist/utils/attachment-handler.d.ts.map +0 -1
  888. package/dist/utils/attachment-handler.js +0 -280
  889. package/dist/utils/attachment-handler.js.map +0 -1
  890. package/dist/utils/backup-cleanup.d.ts +0 -28
  891. package/dist/utils/backup-cleanup.d.ts.map +0 -1
  892. package/dist/utils/backup-cleanup.js +0 -99
  893. package/dist/utils/backup-cleanup.js.map +0 -1
  894. package/dist/utils/clipboard-handler.d.ts +0 -82
  895. package/dist/utils/clipboard-handler.d.ts.map +0 -1
  896. package/dist/utils/clipboard-handler.js +0 -311
  897. package/dist/utils/clipboard-handler.js.map +0 -1
  898. package/dist/utils/cloud-detection.d.ts +0 -14
  899. package/dist/utils/cloud-detection.d.ts.map +0 -1
  900. package/dist/utils/cloud-detection.js +0 -92
  901. package/dist/utils/cloud-detection.js.map +0 -1
  902. package/dist/utils/command-parser.d.ts +0 -56
  903. package/dist/utils/command-parser.d.ts.map +0 -1
  904. package/dist/utils/command-parser.js +0 -206
  905. package/dist/utils/command-parser.js.map +0 -1
  906. package/dist/utils/console-capture.d.ts +0 -30
  907. package/dist/utils/console-capture.d.ts.map +0 -1
  908. package/dist/utils/console-capture.js +0 -88
  909. package/dist/utils/console-capture.js.map +0 -1
  910. package/dist/utils/cron-parser.d.ts +0 -52
  911. package/dist/utils/cron-parser.d.ts.map +0 -1
  912. package/dist/utils/cron-parser.js +0 -455
  913. package/dist/utils/cron-parser.js.map +0 -1
  914. package/dist/utils/crypto.d.ts +0 -351
  915. package/dist/utils/crypto.d.ts.map +0 -1
  916. package/dist/utils/crypto.js +0 -615
  917. package/dist/utils/crypto.js.map +0 -1
  918. package/dist/utils/diff.d.ts +0 -311
  919. package/dist/utils/diff.d.ts.map +0 -1
  920. package/dist/utils/diff.js +0 -566
  921. package/dist/utils/diff.js.map +0 -1
  922. package/dist/utils/editor.d.ts +0 -12
  923. package/dist/utils/editor.d.ts.map +0 -1
  924. package/dist/utils/editor.js +0 -30
  925. package/dist/utils/editor.js.map +0 -1
  926. package/dist/utils/file-system.d.ts +0 -512
  927. package/dist/utils/file-system.d.ts.map +0 -1
  928. package/dist/utils/file-system.js +0 -798
  929. package/dist/utils/file-system.js.map +0 -1
  930. package/dist/utils/format.d.ts +0 -318
  931. package/dist/utils/format.d.ts.map +0 -1
  932. package/dist/utils/format.js +0 -587
  933. package/dist/utils/format.js.map +0 -1
  934. package/dist/utils/ignore-patterns.d.ts +0 -93
  935. package/dist/utils/ignore-patterns.d.ts.map +0 -1
  936. package/dist/utils/ignore-patterns.js +0 -710
  937. package/dist/utils/ignore-patterns.js.map +0 -1
  938. package/dist/utils/log-cleanup.d.ts +0 -16
  939. package/dist/utils/log-cleanup.d.ts.map +0 -1
  940. package/dist/utils/log-cleanup.js +0 -51
  941. package/dist/utils/log-cleanup.js.map +0 -1
  942. package/dist/utils/logger.d.ts +0 -305
  943. package/dist/utils/logger.d.ts.map +0 -1
  944. package/dist/utils/logger.js +0 -447
  945. package/dist/utils/logger.js.map +0 -1
  946. package/dist/utils/path.d.ts +0 -406
  947. package/dist/utils/path.d.ts.map +0 -1
  948. package/dist/utils/path.js +0 -549
  949. package/dist/utils/path.js.map +0 -1
  950. package/dist/utils/schedule-file.d.ts +0 -63
  951. package/dist/utils/schedule-file.d.ts.map +0 -1
  952. package/dist/utils/schedule-file.js +0 -244
  953. package/dist/utils/schedule-file.js.map +0 -1
  954. package/dist/utils/task-id.d.ts +0 -29
  955. package/dist/utils/task-id.d.ts.map +0 -1
  956. package/dist/utils/task-id.js +0 -53
  957. package/dist/utils/task-id.js.map +0 -1
  958. package/dist/utils/temp-cleanup.d.ts +0 -46
  959. package/dist/utils/temp-cleanup.d.ts.map +0 -1
  960. package/dist/utils/temp-cleanup.js +0 -95
  961. package/dist/utils/temp-cleanup.js.map +0 -1
  962. package/dist/utils/terminal-output.d.ts +0 -34
  963. package/dist/utils/terminal-output.d.ts.map +0 -1
  964. package/dist/utils/terminal-output.js +0 -40
  965. package/dist/utils/terminal-output.js.map +0 -1
  966. package/dist/utils/token-counter.d.ts +0 -224
  967. package/dist/utils/token-counter.d.ts.map +0 -1
  968. package/dist/utils/token-counter.js +0 -332
  969. package/dist/utils/token-counter.js.map +0 -1
  970. package/dist/utils/tool-mapper.d.ts +0 -70
  971. package/dist/utils/tool-mapper.d.ts.map +0 -1
  972. package/dist/utils/tool-mapper.js +0 -234
  973. package/dist/utils/tool-mapper.js.map +0 -1
@@ -1,1184 +0,0 @@
1
- /**
2
- * Session management service for conversation state persistence.
3
- *
4
- * This module provides comprehensive session management functionality for the Compass CLI,
5
- * including creating, saving, loading, and persisting session state with conversation history,
6
- * operations tracking, and metadata management.
7
- */
8
- import path from 'path';
9
- import { v4 as uuidv4 } from 'uuid';
10
- import { ApprovalMode } from '../types/approval.js';
11
- import { getGlobalCompassDir, getProjectCompassDir } from '../utils/path.js';
12
- import { safeReadJson, safeWriteJson, pathExists, ensureDir, readDir, } from '../utils/file-system.js';
13
- import { formatTimestamp } from '../utils/format.js';
14
- import { DEFAULT_PERSONALITY_MODE } from '../constants/index.js';
15
- import { logger } from '../utils/logger.js';
16
- import { SESSION_FILE_NAME, SAVED_SESSIONS_DIR, DEFAULT_MODEL, MAX_HISTORY_LENGTH, AUTO_SAVE_INTERVAL_MS, } from '../constants/defaults.js';
17
- import { getEventEmitter } from '../core/event-emitter.js';
18
- import { createChatArchivalService, } from './chat-archival-service.js';
19
- /**
20
- * SessionManager class provides comprehensive session state management.
21
- *
22
- * Features:
23
- * - Session creation and initialization
24
- * - Conversation history management with automatic trimming
25
- * - Operation tracking for file modifications and commands
26
- * - Token usage and cost tracking
27
- * - Session persistence with auto-save capability
28
- * - Named session save/load for session restoration
29
- * - Compacted summary support for conversation compaction
30
- */
31
- class SessionManager {
32
- session = null;
33
- projectRoot = process.cwd();
34
- autoSaveTimer = null;
35
- dirty = false;
36
- /** Transient unguarded mode flag - NOT persisted to session.json */
37
- unguardedMode = false;
38
- /** Pending attachments for the next message - NOT persisted to session.json */
39
- pendingAttachments = [];
40
- /** Chat archival service instance */
41
- archivalService = null;
42
- /**
43
- * Creates a new session with default state.
44
- *
45
- * @param projectPath - Optional project root path. Defaults to current working directory.
46
- * @returns The newly created Session object
47
- *
48
- * @example
49
- * ```typescript
50
- * const sessionManager = getSessionManager();
51
- * const session = sessionManager.createSession('/path/to/project');
52
- * console.log(session.id); // UUID of the new session
53
- * ```
54
- */
55
- createSession(projectPath) {
56
- this.projectRoot = projectPath || process.cwd();
57
- this.session = {
58
- id: uuidv4(),
59
- createdAt: formatTimestamp(),
60
- updatedAt: formatTimestamp(),
61
- projectPath: this.projectRoot,
62
- state: {
63
- conversationHistory: [],
64
- operations: [],
65
- currentModel: DEFAULT_MODEL,
66
- approvalMode: ApprovalMode.MANUAL,
67
- contextFiles: [],
68
- executionMode: 'hybrid', // Default to hybrid mode (LLM decides)
69
- },
70
- metadata: {
71
- totalTokensUsed: 0,
72
- totalCost: 0,
73
- messageCount: 0,
74
- operationCount: 0,
75
- lastActivity: formatTimestamp(),
76
- tags: [],
77
- },
78
- };
79
- this.dirty = true;
80
- logger.debug(`Session created: ${this.session.id}`);
81
- return this.session;
82
- }
83
- /**
84
- * Gets the current session.
85
- *
86
- * @returns The current Session object or null if no session is active
87
- */
88
- getSession() {
89
- return this.session;
90
- }
91
- /**
92
- * Gets the current session state.
93
- *
94
- * @returns The SessionState object or null if no session is active
95
- */
96
- getState() {
97
- return this.session?.state || null;
98
- }
99
- /**
100
- * Gets the session metadata.
101
- *
102
- * @returns The SessionMetadata object or null if no session is active
103
- */
104
- getMetadata() {
105
- return this.session?.metadata || null;
106
- }
107
- /**
108
- * Adds a message to the conversation history.
109
- * Automatically trims history if it exceeds MAX_HISTORY_LENGTH.
110
- *
111
- * @param message - The message to add (without id and timestamp)
112
- * @returns The complete ConversationMessage with generated id and timestamp
113
- *
114
- * @example
115
- * ```typescript
116
- * const message = sessionManager.addMessage({
117
- * role: 'user',
118
- * content: 'Hello, Claude!'
119
- * });
120
- * console.log(message.id); // Generated UUID
121
- * console.log(message.timestamp); // ISO timestamp
122
- * ```
123
- */
124
- addMessage(message) {
125
- if (!this.session) {
126
- this.createSession();
127
- }
128
- const fullMessage = {
129
- id: uuidv4(),
130
- timestamp: formatTimestamp(),
131
- ...message,
132
- };
133
- this.session.state.conversationHistory.push(fullMessage);
134
- this.session.metadata.messageCount++;
135
- this.session.metadata.lastActivity = formatTimestamp();
136
- this.session.updatedAt = formatTimestamp();
137
- // Trim history if too long
138
- if (this.session.state.conversationHistory.length > MAX_HISTORY_LENGTH) {
139
- this.session.state.conversationHistory =
140
- this.session.state.conversationHistory.slice(-MAX_HISTORY_LENGTH);
141
- }
142
- this.dirty = true;
143
- logger.debug(`Message added: ${fullMessage.role} (${fullMessage.id})`);
144
- return fullMessage;
145
- }
146
- /**
147
- * Gets the conversation history.
148
- *
149
- * @returns Array of ConversationMessage objects
150
- */
151
- getConversationHistory() {
152
- return this.session?.state.conversationHistory || [];
153
- }
154
- /**
155
- * Clears the conversation history while preserving other session state.
156
- * Also clears any compacted summary and operations.
157
- */
158
- clearHistory() {
159
- if (this.session) {
160
- const clearedCount = this.session.state.conversationHistory.length;
161
- const clearedOpsCount = this.session.state.operations.length;
162
- this.session.state.conversationHistory = [];
163
- this.session.state.operations = [];
164
- this.session.state.compactedSummary = undefined;
165
- this.session.updatedAt = formatTimestamp();
166
- this.dirty = true;
167
- logger.debug(`Conversation history cleared: ${clearedCount} messages, ${clearedOpsCount} operations removed`);
168
- }
169
- }
170
- /**
171
- * Archives the current session's conversation history to .compass/chats/.
172
- * Call this before clearing history to preserve the conversation.
173
- *
174
- * @returns Archive result with path and ID, or error if archival failed
175
- */
176
- async archiveCurrentSession() {
177
- if (!this.session) {
178
- return { success: false, error: 'No active session to archive' };
179
- }
180
- // Skip if no messages to archive
181
- if (!this.session.state.conversationHistory || this.session.state.conversationHistory.length === 0) {
182
- logger.debug('No messages to archive, skipping');
183
- return { success: false, error: 'No messages to archive' };
184
- }
185
- // Initialize archival service if needed
186
- if (!this.archivalService) {
187
- this.archivalService = createChatArchivalService(this.projectRoot);
188
- }
189
- try {
190
- const result = await this.archivalService.archiveSession(this.session);
191
- if (result.success) {
192
- logger.info(`Session archived to: ${result.filename}`);
193
- }
194
- return result;
195
- }
196
- catch (error) {
197
- logger.error('Failed to archive session', error);
198
- return {
199
- success: false,
200
- error: error instanceof Error ? error.message : 'Unknown error',
201
- };
202
- }
203
- }
204
- /**
205
- * Archives the current session and clears the history.
206
- * Use this on startup to preserve previous conversation before starting fresh.
207
- *
208
- * @returns The archived conversation data (for -c flag to load into context), or null if archival failed
209
- */
210
- async archiveAndClearSession() {
211
- // First, get the archive data before clearing
212
- let archive = null;
213
- // Initialize archival service if needed
214
- if (!this.archivalService) {
215
- this.archivalService = createChatArchivalService(this.projectRoot);
216
- }
217
- // Archive the session
218
- const result = await this.archiveCurrentSession();
219
- // If archival succeeded, load the archive data for returning
220
- if (result.success && result.path) {
221
- archive = await this.archivalService.getLatestArchive();
222
- }
223
- // Clear the history regardless of archival success
224
- this.clearHistory();
225
- // Run cleanup of old archives (non-blocking)
226
- this.archivalService.cleanupOldArchives().catch((err) => {
227
- logger.warn('Failed to cleanup old archives', err);
228
- });
229
- return { archive, result };
230
- }
231
- /**
232
- * Gets the chat archival service instance.
233
- * Creates one if it doesn't exist.
234
- *
235
- * @returns ChatArchivalService instance
236
- */
237
- getArchivalService() {
238
- if (!this.archivalService) {
239
- this.archivalService = createChatArchivalService(this.projectRoot);
240
- }
241
- return this.archivalService;
242
- }
243
- /**
244
- * Sets a compacted summary and clears the conversation history.
245
- * Used by the conversation compactor to reduce token usage.
246
- *
247
- * @param summary - The compacted summary text
248
- */
249
- setCompactedSummary(summary) {
250
- if (this.session) {
251
- this.session.state.compactedSummary = summary;
252
- this.session.state.conversationHistory = [];
253
- this.session.updatedAt = formatTimestamp();
254
- this.dirty = true;
255
- logger.info('Compacted summary set, conversation history cleared');
256
- }
257
- }
258
- /**
259
- * Gets the compacted summary if one exists.
260
- *
261
- * @returns The compacted summary string or undefined
262
- */
263
- getCompactedSummary() {
264
- return this.session?.state.compactedSummary;
265
- }
266
- /**
267
- * Updates the session after agentic loop compaction.
268
- * Stores the summary and keeps a record of recent messages for context.
269
- *
270
- * @param summary - The compacted summary text
271
- * @param recentMessagesCount - Number of recent messages that were preserved (for context)
272
- */
273
- syncAfterCompaction(summary, recentMessagesCount) {
274
- if (this.session) {
275
- this.session.state.compactedSummary = summary;
276
- // Keep recent messages in history for UI display, but mark session as compacted
277
- this.session.metadata.isCompacted = true;
278
- this.session.metadata.compactionTimestamp = formatTimestamp();
279
- this.session.metadata.messagesPreserved = recentMessagesCount;
280
- this.session.updatedAt = formatTimestamp();
281
- this.dirty = true;
282
- logger.info(`Session synced after compaction: summary stored, ${recentMessagesCount} recent messages preserved`);
283
- }
284
- }
285
- /**
286
- * Replaces the entire conversation history.
287
- * Used when syncing the agentic loop messages back to the session.
288
- *
289
- * @param messages - Array of messages to set as the new history
290
- */
291
- replaceConversationHistory(messages) {
292
- if (this.session) {
293
- this.session.state.conversationHistory = messages;
294
- this.session.metadata.messageCount = messages.length;
295
- this.session.updatedAt = formatTimestamp();
296
- this.dirty = true;
297
- logger.debug(`Conversation history replaced: ${messages.length} messages`);
298
- }
299
- }
300
- /**
301
- * Updates the estimated context token count.
302
- * Called during agentic loops to keep the session metadata in sync with
303
- * the actual API messages token usage.
304
- *
305
- * @param tokenCount - The estimated token count of current context
306
- */
307
- updateEstimatedContextTokens(tokenCount) {
308
- if (this.session) {
309
- this.session.metadata.estimatedContextTokens = tokenCount;
310
- // Don't mark dirty for frequent token updates - this is informational only
311
- logger.debug(`Session context tokens updated: ${tokenCount.toLocaleString()}`);
312
- }
313
- }
314
- /**
315
- * Gets the estimated context token count.
316
- *
317
- * @returns The estimated context tokens or 0 if not set
318
- */
319
- getEstimatedContextTokens() {
320
- return this.session?.metadata.estimatedContextTokens ?? 0;
321
- }
322
- /**
323
- * Records an operation (file modification, command execution, etc.).
324
- *
325
- * @param operation - The operation to record (without id and timestamp)
326
- * @returns The complete Operation with generated id and timestamp
327
- *
328
- * @example
329
- * ```typescript
330
- * const operation = sessionManager.recordOperation({
331
- * type: 'file_modify',
332
- * description: 'Updated src/index.ts',
333
- * status: 'completed',
334
- * details: {
335
- * filePath: 'src/index.ts',
336
- * oldContent: '...',
337
- * newContent: '...'
338
- * }
339
- * });
340
- * ```
341
- */
342
- recordOperation(operation) {
343
- if (!this.session) {
344
- this.createSession();
345
- }
346
- const fullOperation = {
347
- id: uuidv4(),
348
- timestamp: formatTimestamp(),
349
- ...operation,
350
- };
351
- this.session.state.operations.push(fullOperation);
352
- this.session.metadata.operationCount++;
353
- this.session.metadata.lastActivity = formatTimestamp();
354
- this.session.updatedAt = formatTimestamp();
355
- this.dirty = true;
356
- logger.debug(`Operation recorded: ${fullOperation.type} (${fullOperation.id})`);
357
- return fullOperation;
358
- }
359
- /**
360
- * Gets the operations history.
361
- *
362
- * @returns Array of Operation objects
363
- */
364
- getOperations() {
365
- return this.session?.state.operations || [];
366
- }
367
- /**
368
- * Gets the last operation performed.
369
- *
370
- * @returns The most recent Operation or undefined if none exist
371
- */
372
- getLastOperation() {
373
- const operations = this.session?.state.operations || [];
374
- return operations[operations.length - 1];
375
- }
376
- /**
377
- * Updates an existing operation's status.
378
- *
379
- * @param operationId - The ID of the operation to update
380
- * @param updates - Partial operation data to merge
381
- * @returns True if the operation was found and updated
382
- */
383
- updateOperation(operationId, updates) {
384
- if (!this.session) {
385
- return false;
386
- }
387
- const operation = this.session.state.operations.find((op) => op.id === operationId);
388
- if (!operation) {
389
- return false;
390
- }
391
- Object.assign(operation, updates);
392
- this.session.updatedAt = formatTimestamp();
393
- this.dirty = true;
394
- logger.debug(`Operation updated: ${operationId}`);
395
- return true;
396
- }
397
- /**
398
- * Updates token usage and cost statistics.
399
- *
400
- * @param tokens - Number of tokens to add
401
- * @param cost - Cost to add
402
- */
403
- updateTokenUsage(tokens, cost) {
404
- if (this.session) {
405
- this.session.metadata.totalTokensUsed += tokens;
406
- this.session.metadata.totalCost += cost;
407
- this.session.metadata.lastActivity = formatTimestamp();
408
- this.session.updatedAt = formatTimestamp();
409
- this.dirty = true;
410
- }
411
- }
412
- /**
413
- * Sets the current model for the session.
414
- *
415
- * @param modelId - The model ID to set
416
- */
417
- setModel(modelId) {
418
- if (this.session) {
419
- this.session.state.currentModel = modelId;
420
- this.session.updatedAt = formatTimestamp();
421
- this.dirty = true;
422
- logger.debug(`Model set: ${modelId}`);
423
- }
424
- }
425
- /**
426
- * Gets the current model ID.
427
- *
428
- * @returns The current model ID or the default model
429
- */
430
- getCurrentModel() {
431
- return this.session?.state.currentModel || DEFAULT_MODEL;
432
- }
433
- /**
434
- * Sets the approval mode for the session.
435
- *
436
- * @param mode - The ApprovalMode to set
437
- */
438
- setApprovalMode(mode) {
439
- if (this.session) {
440
- this.session.state.approvalMode = mode;
441
- this.session.updatedAt = formatTimestamp();
442
- this.dirty = true;
443
- logger.debug(`Approval mode set: ${mode}`);
444
- }
445
- }
446
- /**
447
- * Gets the current approval mode.
448
- *
449
- * @returns The current ApprovalMode
450
- */
451
- getApprovalMode() {
452
- return this.session?.state.approvalMode || ApprovalMode.MANUAL;
453
- }
454
- /**
455
- * Sets the execution mode for the session.
456
- *
457
- * @param mode - The ExecutionMode to set
458
- */
459
- setExecutionMode(mode) {
460
- if (this.session) {
461
- this.session.state.executionMode = mode;
462
- this.session.updatedAt = formatTimestamp();
463
- this.dirty = true;
464
- logger.debug(`Execution mode set: ${mode}`);
465
- }
466
- }
467
- /**
468
- * Gets the current execution mode.
469
- *
470
- * @returns The current ExecutionMode (defaults to 'hybrid' if not set)
471
- */
472
- getExecutionMode() {
473
- return this.session?.state.executionMode || 'hybrid';
474
- }
475
- /**
476
- * Sets whether to show tool execution blocks in conversation history.
477
- *
478
- * @param show - Whether to show tool blocks (true) or minimal text-only (false)
479
- */
480
- setShowToolBlocks(show) {
481
- if (this.session) {
482
- this.session.state.showToolBlocks = show;
483
- this.session.updatedAt = formatTimestamp();
484
- this.dirty = true;
485
- logger.debug(`Show tool blocks set: ${show}`);
486
- }
487
- }
488
- /**
489
- * Gets whether tool execution blocks should be shown in conversation history.
490
- *
491
- * @returns Whether to show tool blocks (defaults to true if not set)
492
- */
493
- getShowToolBlocks() {
494
- return this.session?.state.showToolBlocks ?? true;
495
- }
496
- /**
497
- * Adds a file to the context files list.
498
- *
499
- * @param filePath - The file path to add
500
- */
501
- addContextFile(filePath) {
502
- if (this.session) {
503
- if (!this.session.state.contextFiles.includes(filePath)) {
504
- this.session.state.contextFiles.push(filePath);
505
- this.session.updatedAt = formatTimestamp();
506
- this.dirty = true;
507
- }
508
- }
509
- }
510
- /**
511
- * Removes a file from the context files list.
512
- *
513
- * @param filePath - The file path to remove
514
- */
515
- removeContextFile(filePath) {
516
- if (this.session) {
517
- const index = this.session.state.contextFiles.indexOf(filePath);
518
- if (index !== -1) {
519
- this.session.state.contextFiles.splice(index, 1);
520
- this.session.updatedAt = formatTimestamp();
521
- this.dirty = true;
522
- }
523
- }
524
- }
525
- /**
526
- * Gets the list of context files.
527
- *
528
- * @returns Array of file paths
529
- */
530
- getContextFiles() {
531
- return this.session?.state.contextFiles || [];
532
- }
533
- /**
534
- * Adds a folder to the excluded folders list.
535
- * These folders will be excluded from indexing, code snippets, and file discovery.
536
- *
537
- * @param folderPattern - The folder pattern to exclude (glob pattern supported)
538
- */
539
- addExcludedFolder(folderPattern) {
540
- if (this.session) {
541
- if (!this.session.state.excludedFolders) {
542
- this.session.state.excludedFolders = [];
543
- }
544
- if (!this.session.state.excludedFolders.includes(folderPattern)) {
545
- this.session.state.excludedFolders.push(folderPattern);
546
- this.session.updatedAt = formatTimestamp();
547
- this.dirty = true;
548
- logger.debug(`Excluded folder added: ${folderPattern}`);
549
- }
550
- }
551
- }
552
- /**
553
- * Removes a folder from the excluded folders list.
554
- *
555
- * @param folderPattern - The folder pattern to remove
556
- */
557
- removeExcludedFolder(folderPattern) {
558
- if (this.session && this.session.state.excludedFolders) {
559
- const index = this.session.state.excludedFolders.indexOf(folderPattern);
560
- if (index !== -1) {
561
- this.session.state.excludedFolders.splice(index, 1);
562
- this.session.updatedAt = formatTimestamp();
563
- this.dirty = true;
564
- logger.debug(`Excluded folder removed: ${folderPattern}`);
565
- }
566
- }
567
- }
568
- /**
569
- * Sets the excluded folders list, replacing any existing entries.
570
- *
571
- * @param folderPatterns - Array of folder patterns to exclude
572
- */
573
- setExcludedFolders(folderPatterns) {
574
- if (this.session) {
575
- this.session.state.excludedFolders = [...folderPatterns];
576
- this.session.updatedAt = formatTimestamp();
577
- this.dirty = true;
578
- logger.debug(`Excluded folders set: ${folderPatterns.length} patterns`);
579
- }
580
- }
581
- /**
582
- * Gets the list of excluded folders.
583
- *
584
- * @returns Array of folder patterns
585
- */
586
- getExcludedFolders() {
587
- return this.session?.state.excludedFolders || [];
588
- }
589
- /**
590
- * Clears all excluded folders.
591
- */
592
- clearExcludedFolders() {
593
- if (this.session) {
594
- this.session.state.excludedFolders = [];
595
- this.session.updatedAt = formatTimestamp();
596
- this.dirty = true;
597
- logger.debug('Excluded folders cleared');
598
- }
599
- }
600
- /**
601
- * Sets the personality mode for the assistant's communication style.
602
- *
603
- * @param mode - The PersonalityMode to set
604
- */
605
- setPersonalityMode(mode) {
606
- if (this.session) {
607
- this.session.state.personalityMode = mode;
608
- this.session.updatedAt = formatTimestamp();
609
- this.dirty = true;
610
- logger.debug(`Personality mode set: ${mode}`);
611
- }
612
- }
613
- /**
614
- * Gets the current personality mode.
615
- *
616
- * @returns The current PersonalityMode (defaults to 'professional' if not set)
617
- */
618
- getPersonalityMode() {
619
- return this.session?.state.personalityMode || DEFAULT_PERSONALITY_MODE;
620
- }
621
- /**
622
- * Sets a temporary personality mode for the next response only.
623
- * This overrides the regular personality mode until cleared.
624
- *
625
- * @param mode - The temporary PersonalityMode to set
626
- */
627
- setTemporaryPersonalityMode(mode) {
628
- if (this.session) {
629
- this.session.state.temporaryPersonalityMode = mode;
630
- this.session.updatedAt = formatTimestamp();
631
- // Don't mark dirty - temporary mode shouldn't persist to disk
632
- logger.debug(`Temporary personality mode set: ${mode}`);
633
- }
634
- }
635
- /**
636
- * Clears the temporary personality mode.
637
- * Should be called after each response when temporary mode is set.
638
- */
639
- clearTemporaryPersonalityMode() {
640
- if (this.session && this.session.state.temporaryPersonalityMode) {
641
- this.session.state.temporaryPersonalityMode = undefined;
642
- this.session.updatedAt = formatTimestamp();
643
- logger.debug('Temporary personality mode cleared');
644
- }
645
- }
646
- /**
647
- * Gets the effective personality mode (temporary if set, otherwise regular).
648
- *
649
- * @returns The effective PersonalityMode to use for the current response
650
- */
651
- getEffectivePersonalityMode() {
652
- if (this.session?.state.temporaryPersonalityMode) {
653
- return this.session.state.temporaryPersonalityMode;
654
- }
655
- return this.getPersonalityMode();
656
- }
657
- /**
658
- * Checks if a temporary personality mode is currently active.
659
- *
660
- * @returns True if temporary mode is set
661
- */
662
- hasTemporaryPersonalityMode() {
663
- return this.session?.state.temporaryPersonalityMode !== undefined;
664
- }
665
- /**
666
- * Sets the unguarded mode for the session.
667
- * When enabled, removes safety guardrails from the system prompt.
668
- * NOTE: This is a transient setting that is NOT persisted to session.json.
669
- *
670
- * @param enabled - Whether to enable unguarded mode
671
- */
672
- setUnguardedMode(enabled) {
673
- this.unguardedMode = enabled;
674
- logger.debug(`Unguarded mode set: ${enabled} (transient - not persisted)`);
675
- }
676
- /**
677
- * Gets whether unguarded mode is currently active.
678
- * NOTE: This is a transient setting that is NOT persisted to session.json.
679
- *
680
- * @returns True if unguarded mode is enabled
681
- */
682
- getUnguardedMode() {
683
- return this.unguardedMode;
684
- }
685
- /**
686
- * Adds a tag to the session.
687
- *
688
- * @param tag - The tag to add
689
- */
690
- addTag(tag) {
691
- if (this.session) {
692
- if (!this.session.metadata.tags.includes(tag)) {
693
- this.session.metadata.tags.push(tag);
694
- this.session.updatedAt = formatTimestamp();
695
- this.dirty = true;
696
- }
697
- }
698
- }
699
- /**
700
- * Removes a tag from the session.
701
- *
702
- * @param tag - The tag to remove
703
- */
704
- removeTag(tag) {
705
- if (this.session) {
706
- const index = this.session.metadata.tags.indexOf(tag);
707
- if (index !== -1) {
708
- this.session.metadata.tags.splice(index, 1);
709
- this.session.updatedAt = formatTimestamp();
710
- this.dirty = true;
711
- }
712
- }
713
- }
714
- /**
715
- * Saves the current session to the project's .compass directory.
716
- */
717
- async save() {
718
- if (!this.session) {
719
- logger.debug('No session to save');
720
- return;
721
- }
722
- if (!this.dirty) {
723
- logger.debug('Session not dirty, skipping save');
724
- return;
725
- }
726
- try {
727
- const compassDir = getProjectCompassDir(this.projectRoot);
728
- await ensureDir(compassDir);
729
- const sessionPath = path.join(compassDir, SESSION_FILE_NAME);
730
- await safeWriteJson(sessionPath, this.session);
731
- this.dirty = false;
732
- logger.debug('Session saved');
733
- // Emit session saved event
734
- const eventEmitter = getEventEmitter();
735
- eventEmitter.emit('session-saved', { sessionId: this.session.id });
736
- }
737
- catch (error) {
738
- logger.error('Failed to save session', error);
739
- throw error;
740
- }
741
- }
742
- /**
743
- * Loads a session from the project's .compass directory.
744
- *
745
- * @param projectPath - Optional project root path
746
- * @returns The loaded Session or null if not found
747
- */
748
- async load(projectPath) {
749
- this.projectRoot = projectPath || process.cwd();
750
- const sessionPath = path.join(getProjectCompassDir(this.projectRoot), SESSION_FILE_NAME);
751
- if (!(await pathExists(sessionPath))) {
752
- logger.debug('No existing session found');
753
- return null;
754
- }
755
- try {
756
- const session = await safeReadJson(sessionPath);
757
- if (session) {
758
- // Migrate/validate session structure to ensure all required fields exist
759
- this.session = this.migrateSession(session);
760
- this.dirty = false;
761
- logger.info(`Session loaded: ${this.session.id}`);
762
- // Update projectPath if it doesn't match the current absolute path
763
- const absoluteProjectRoot = path.resolve(this.projectRoot);
764
- const absoluteSessionPath = path.resolve(this.session.projectPath);
765
- if (absoluteSessionPath !== absoluteProjectRoot) {
766
- logger.debug(`Updating session projectPath from ${this.session.projectPath} to ${absoluteProjectRoot}`);
767
- this.session.projectPath = absoluteProjectRoot;
768
- this.session.updatedAt = formatTimestamp();
769
- this.dirty = true;
770
- }
771
- }
772
- return this.session;
773
- }
774
- catch (error) {
775
- logger.error('Failed to load session', error);
776
- return null;
777
- }
778
- }
779
- /**
780
- * Migrates a session loaded from disk to ensure all required fields exist.
781
- * This handles backward compatibility when session schema changes.
782
- *
783
- * @param session - The raw session data loaded from disk
784
- * @returns A valid Session object with all required fields
785
- */
786
- migrateSession(session) {
787
- let needsMigration = false;
788
- // Ensure metadata exists with all required fields
789
- if (!session.metadata) {
790
- session.metadata = {
791
- totalTokensUsed: 0,
792
- totalCost: 0,
793
- messageCount: 0,
794
- operationCount: 0,
795
- lastActivity: formatTimestamp(),
796
- tags: [],
797
- };
798
- needsMigration = true;
799
- logger.debug('Session migrated: added missing metadata field');
800
- }
801
- else {
802
- // Ensure all metadata fields exist
803
- const metadata = session.metadata;
804
- if (typeof metadata.totalTokensUsed !== 'number') {
805
- metadata.totalTokensUsed = 0;
806
- needsMigration = true;
807
- }
808
- if (typeof metadata.totalCost !== 'number') {
809
- metadata.totalCost = 0;
810
- needsMigration = true;
811
- }
812
- if (typeof metadata.messageCount !== 'number') {
813
- metadata.messageCount = 0;
814
- needsMigration = true;
815
- }
816
- if (typeof metadata.operationCount !== 'number') {
817
- metadata.operationCount = 0;
818
- needsMigration = true;
819
- }
820
- if (!metadata.lastActivity) {
821
- metadata.lastActivity = formatTimestamp();
822
- needsMigration = true;
823
- }
824
- if (!Array.isArray(metadata.tags)) {
825
- metadata.tags = [];
826
- needsMigration = true;
827
- }
828
- }
829
- // Ensure state exists with all required fields
830
- if (!session.state) {
831
- session.state = {
832
- conversationHistory: [],
833
- operations: [],
834
- currentModel: DEFAULT_MODEL,
835
- approvalMode: ApprovalMode.MANUAL,
836
- contextFiles: [],
837
- executionMode: 'hybrid',
838
- };
839
- needsMigration = true;
840
- logger.debug('Session migrated: added missing state field');
841
- }
842
- else {
843
- // Ensure all state fields exist
844
- const state = session.state;
845
- if (!Array.isArray(state.conversationHistory)) {
846
- state.conversationHistory = [];
847
- needsMigration = true;
848
- }
849
- if (!Array.isArray(state.operations)) {
850
- state.operations = [];
851
- needsMigration = true;
852
- }
853
- if (!state.currentModel) {
854
- state.currentModel = DEFAULT_MODEL;
855
- needsMigration = true;
856
- }
857
- if (!state.approvalMode) {
858
- state.approvalMode = ApprovalMode.MANUAL;
859
- needsMigration = true;
860
- }
861
- if (!Array.isArray(state.contextFiles)) {
862
- state.contextFiles = [];
863
- needsMigration = true;
864
- }
865
- }
866
- // Ensure required top-level fields exist
867
- if (!session.id) {
868
- session.id = uuidv4();
869
- needsMigration = true;
870
- }
871
- if (!session.createdAt) {
872
- session.createdAt = formatTimestamp();
873
- needsMigration = true;
874
- }
875
- if (!session.updatedAt) {
876
- session.updatedAt = formatTimestamp();
877
- needsMigration = true;
878
- }
879
- if (!session.projectPath) {
880
- session.projectPath = this.projectRoot;
881
- needsMigration = true;
882
- }
883
- if (needsMigration) {
884
- this.dirty = true;
885
- logger.info('Session structure migrated to current schema');
886
- }
887
- return session;
888
- }
889
- /**
890
- * Saves the current session to a named file in the saved-sessions directory.
891
- *
892
- * @param name - The name for the saved session
893
- * @param description - Optional description for the saved session
894
- * @returns The path to the saved session file
895
- *
896
- * @example
897
- * ```typescript
898
- * const path = await sessionManager.saveAs('my-feature-work', 'Working on login feature');
899
- * console.log(`Session saved to: ${path}`);
900
- * ```
901
- */
902
- async saveAs(name, description) {
903
- if (!this.session) {
904
- throw new Error('No active session to save');
905
- }
906
- const savedSessionsDir = path.join(getGlobalCompassDir(), SAVED_SESSIONS_DIR);
907
- await ensureDir(savedSessionsDir);
908
- const savedSession = {
909
- session: this.session,
910
- savedAt: formatTimestamp(),
911
- name,
912
- description,
913
- };
914
- // Sanitize the name for use as a filename
915
- const sanitizedName = name.replace(/[^a-zA-Z0-9-_]/g, '_');
916
- const fileName = `${sanitizedName}.json`;
917
- const filePath = path.join(savedSessionsDir, fileName);
918
- await safeWriteJson(filePath, savedSession);
919
- logger.info(`Session saved as: ${name}`);
920
- return filePath;
921
- }
922
- /**
923
- * Lists all saved sessions.
924
- *
925
- * @returns Array of SavedSession objects sorted by savedAt (most recent first)
926
- */
927
- async listSavedSessions() {
928
- const savedSessionsDir = path.join(getGlobalCompassDir(), SAVED_SESSIONS_DIR);
929
- if (!(await pathExists(savedSessionsDir))) {
930
- return [];
931
- }
932
- const files = await readDir(savedSessionsDir);
933
- const sessions = [];
934
- for (const file of files) {
935
- if (file.endsWith('.json')) {
936
- const filePath = path.join(savedSessionsDir, file);
937
- try {
938
- const saved = await safeReadJson(filePath);
939
- if (saved) {
940
- sessions.push(saved);
941
- }
942
- }
943
- catch (error) {
944
- logger.debug(`Failed to load saved session: ${file}`, error);
945
- }
946
- }
947
- }
948
- // Sort by savedAt, most recent first
949
- return sessions.sort((a, b) => new Date(b.savedAt).getTime() - new Date(a.savedAt).getTime());
950
- }
951
- /**
952
- * Loads a saved session by name.
953
- *
954
- * @param name - The name of the saved session to load
955
- * @returns The loaded Session or null if not found
956
- */
957
- async loadSaved(name) {
958
- const savedSessionsDir = path.join(getGlobalCompassDir(), SAVED_SESSIONS_DIR);
959
- const sanitizedName = name.replace(/[^a-zA-Z0-9-_]/g, '_');
960
- const fileName = `${sanitizedName}.json`;
961
- const filePath = path.join(savedSessionsDir, fileName);
962
- if (!(await pathExists(filePath))) {
963
- logger.debug(`Saved session not found: ${name}`);
964
- return null;
965
- }
966
- try {
967
- const saved = await safeReadJson(filePath);
968
- if (saved) {
969
- this.session = saved.session;
970
- this.projectRoot = saved.session.projectPath;
971
- this.dirty = false;
972
- logger.info(`Loaded saved session: ${name}`);
973
- return this.session;
974
- }
975
- return null;
976
- }
977
- catch (error) {
978
- logger.error(`Failed to load saved session: ${name}`, error);
979
- return null;
980
- }
981
- }
982
- /**
983
- * Deletes a saved session by name.
984
- *
985
- * @param name - The name of the saved session to delete
986
- * @returns True if the session was deleted, false if not found
987
- */
988
- async deleteSavedSession(name) {
989
- const savedSessionsDir = path.join(getGlobalCompassDir(), SAVED_SESSIONS_DIR);
990
- const sanitizedName = name.replace(/[^a-zA-Z0-9-_]/g, '_');
991
- const fileName = `${sanitizedName}.json`;
992
- const filePath = path.join(savedSessionsDir, fileName);
993
- if (!(await pathExists(filePath))) {
994
- return false;
995
- }
996
- try {
997
- const { remove } = await import('../utils/file-system.js');
998
- await remove(filePath);
999
- logger.info(`Deleted saved session: ${name}`);
1000
- return true;
1001
- }
1002
- catch (error) {
1003
- logger.error(`Failed to delete saved session: ${name}`, error);
1004
- return false;
1005
- }
1006
- }
1007
- /**
1008
- * Starts the auto-save timer.
1009
- *
1010
- * @param intervalMs - Interval in milliseconds between auto-saves
1011
- */
1012
- startAutoSave(intervalMs = AUTO_SAVE_INTERVAL_MS) {
1013
- this.stopAutoSave();
1014
- this.autoSaveTimer = setInterval(() => {
1015
- if (this.dirty) {
1016
- this.save().catch((err) => {
1017
- logger.error('Auto-save failed', err);
1018
- });
1019
- }
1020
- }, intervalMs);
1021
- logger.debug(`Auto-save started with interval: ${intervalMs}ms`);
1022
- }
1023
- /**
1024
- * Stops the auto-save timer.
1025
- */
1026
- stopAutoSave() {
1027
- if (this.autoSaveTimer) {
1028
- clearInterval(this.autoSaveTimer);
1029
- this.autoSaveTimer = null;
1030
- logger.debug('Auto-save stopped');
1031
- }
1032
- }
1033
- /**
1034
- * Checks if the session has unsaved changes.
1035
- *
1036
- * @returns True if there are unsaved changes
1037
- */
1038
- isDirty() {
1039
- return this.dirty;
1040
- }
1041
- /**
1042
- * Forces a save regardless of dirty state.
1043
- */
1044
- async forceSave() {
1045
- this.dirty = true;
1046
- await this.save();
1047
- }
1048
- /**
1049
- * Gets the project root path.
1050
- *
1051
- * @returns The project root path
1052
- */
1053
- getProjectRoot() {
1054
- return this.projectRoot;
1055
- }
1056
- /**
1057
- * Sets the project root path.
1058
- *
1059
- * @param projectRoot - The new project root path
1060
- */
1061
- setProjectRoot(projectRoot) {
1062
- this.projectRoot = projectRoot;
1063
- if (this.session) {
1064
- this.session.projectPath = projectRoot;
1065
- this.dirty = true;
1066
- }
1067
- }
1068
- /**
1069
- * Exports the current session data for backup or analysis.
1070
- *
1071
- * @returns The current session or null
1072
- */
1073
- exportSession() {
1074
- return this.session ? { ...this.session } : null;
1075
- }
1076
- /**
1077
- * Imports a session from exported data.
1078
- *
1079
- * @param session - The session data to import
1080
- */
1081
- importSession(session) {
1082
- this.session = { ...session };
1083
- this.projectRoot = session.projectPath;
1084
- this.dirty = true;
1085
- logger.info(`Session imported: ${session.id}`);
1086
- }
1087
- /**
1088
- * Gets the list of pending attachments for the next message.
1089
- *
1090
- * @returns Array of pending Attachment objects
1091
- */
1092
- getPendingAttachments() {
1093
- return [...this.pendingAttachments];
1094
- }
1095
- /**
1096
- * Adds an attachment to the pending list.
1097
- *
1098
- * @param attachment - The attachment to add
1099
- */
1100
- addPendingAttachment(attachment) {
1101
- this.pendingAttachments.push(attachment);
1102
- logger.debug(`Pending attachment added: ${attachment.filename} (${attachment.type})`);
1103
- }
1104
- /**
1105
- * Adds multiple attachments to the pending list.
1106
- *
1107
- * @param attachments - Array of attachments to add
1108
- */
1109
- addPendingAttachments(attachments) {
1110
- this.pendingAttachments.push(...attachments);
1111
- logger.debug(`Added ${attachments.length} pending attachments`);
1112
- }
1113
- /**
1114
- * Clears all pending attachments.
1115
- */
1116
- clearPendingAttachments() {
1117
- const count = this.pendingAttachments.length;
1118
- this.pendingAttachments = [];
1119
- if (count > 0) {
1120
- logger.debug(`Cleared ${count} pending attachments`);
1121
- }
1122
- }
1123
- /**
1124
- * Consumes and returns all pending attachments, clearing the pending list.
1125
- * Use this when sending a message that includes attachments.
1126
- *
1127
- * @returns Array of Attachment objects
1128
- */
1129
- consumePendingAttachments() {
1130
- const attachments = [...this.pendingAttachments];
1131
- this.pendingAttachments = [];
1132
- if (attachments.length > 0) {
1133
- logger.debug(`Consumed ${attachments.length} pending attachments`);
1134
- }
1135
- return attachments;
1136
- }
1137
- /**
1138
- * Checks if there are any pending attachments.
1139
- *
1140
- * @returns True if there are pending attachments
1141
- */
1142
- hasPendingAttachments() {
1143
- return this.pendingAttachments.length > 0;
1144
- }
1145
- /**
1146
- * Gets the count of pending attachments.
1147
- *
1148
- * @returns Number of pending attachments
1149
- */
1150
- getPendingAttachmentsCount() {
1151
- return this.pendingAttachments.length;
1152
- }
1153
- }
1154
- // Singleton instance
1155
- let sessionManagerInstance = null;
1156
- /**
1157
- * Gets the singleton SessionManager instance.
1158
- * Creates the instance on first call.
1159
- *
1160
- * @returns The SessionManager instance
1161
- *
1162
- * @example
1163
- * ```typescript
1164
- * const sessionManager = getSessionManager();
1165
- * const session = sessionManager.createSession();
1166
- * ```
1167
- */
1168
- export function getSessionManager() {
1169
- if (!sessionManagerInstance) {
1170
- sessionManagerInstance = new SessionManager();
1171
- }
1172
- return sessionManagerInstance;
1173
- }
1174
- /**
1175
- * Creates a new SessionManager instance with custom configuration.
1176
- * Use this when you need a separate instance from the singleton.
1177
- *
1178
- * @returns A new SessionManager instance
1179
- */
1180
- export function createSessionManager() {
1181
- return new SessionManager();
1182
- }
1183
- export { SessionManager };
1184
- //# sourceMappingURL=session-manager.js.map