@compass-ai/nova 1.0.74 → 1.0.76

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 +557 -555
  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,1018 +0,0 @@
1
- /**
2
- * Context building logic for assembling relevant codebase context for LLM queries.
3
- * This module is responsible for gathering and organizing project files, code snippets,
4
- * and metadata to provide Claude with the necessary context for development tasks.
5
- */
6
- import path from 'path';
7
- import { glob } from 'glob';
8
- import { safeReadFile, pathExists, stat } from '../utils/file-system.js';
9
- import { sanitizePath, toForwardSlashes } from '../utils/path.js';
10
- import { estimateTokens } from '../utils/token-counter.js';
11
- import { logger } from '../utils/logger.js';
12
- import { DEFAULT_CONFIG } from '../constants/defaults.js';
13
- import { DEFAULT_IGNORE_PATTERNS, shouldExcludeDirectory, shouldExcludeFile, mergeSessionExclusions, shouldExcludeSessionPath, loadIgnorePatterns, } from '../utils/ignore-patterns.js';
14
- import { getSessionManager } from '../services/session-manager.js';
15
- /**
16
- * Marker files used to detect project type
17
- */
18
- const PROJECT_MARKERS = {
19
- nodejs: ['package.json'],
20
- typescript: ['tsconfig.json', 'tsconfig.base.json'],
21
- python: ['pyproject.toml', 'setup.py', 'requirements.txt', 'Pipfile'],
22
- go: ['go.mod', 'go.sum'],
23
- rust: ['Cargo.toml', 'Cargo.lock'],
24
- java: ['pom.xml', 'build.gradle', 'build.gradle.kts'],
25
- csharp: ['*.csproj', '*.sln'],
26
- ruby: ['Gemfile', 'Rakefile', '*.gemspec'],
27
- php: ['composer.json', 'composer.lock'],
28
- unknown: [],
29
- };
30
- /**
31
- * Language detection mapping based on file extensions
32
- */
33
- const EXTENSION_TO_LANGUAGE = {
34
- '.ts': 'typescript',
35
- '.tsx': 'typescript',
36
- '.js': 'javascript',
37
- '.jsx': 'javascript',
38
- '.mjs': 'javascript',
39
- '.cjs': 'javascript',
40
- '.py': 'python',
41
- '.rb': 'ruby',
42
- '.go': 'go',
43
- '.rs': 'rust',
44
- '.java': 'java',
45
- '.kt': 'kotlin',
46
- '.swift': 'swift',
47
- '.c': 'c',
48
- '.cpp': 'cpp',
49
- '.h': 'c',
50
- '.hpp': 'cpp',
51
- '.cs': 'csharp',
52
- '.php': 'php',
53
- '.vue': 'vue',
54
- '.svelte': 'svelte',
55
- '.html': 'html',
56
- '.css': 'css',
57
- '.scss': 'scss',
58
- '.sass': 'sass',
59
- '.less': 'less',
60
- '.json': 'json',
61
- '.yaml': 'yaml',
62
- '.yml': 'yaml',
63
- '.xml': 'xml',
64
- '.md': 'markdown',
65
- '.mdx': 'markdown',
66
- '.sql': 'sql',
67
- '.sh': 'shell',
68
- '.bash': 'shell',
69
- '.zsh': 'shell',
70
- '.fish': 'shell',
71
- '.ps1': 'powershell',
72
- '.dockerfile': 'dockerfile',
73
- '.toml': 'toml',
74
- '.ini': 'ini',
75
- '.env': 'env',
76
- '.graphql': 'graphql',
77
- '.gql': 'graphql',
78
- '.proto': 'protobuf',
79
- };
80
- /**
81
- * ContextBuilder class for assembling relevant codebase context for LLM queries.
82
- * Handles file discovery, content loading, token estimation, and context optimization.
83
- */
84
- class ContextBuilder {
85
- projectRoot;
86
- maxTokens;
87
- maxFiles;
88
- includePatterns;
89
- excludePatterns;
90
- priorityFiles;
91
- fileCache = new Map();
92
- constructor(options = {}) {
93
- this.projectRoot = options.projectRoot || process.cwd();
94
- this.maxTokens = options.maxTokens || 100000;
95
- this.maxFiles = options.maxFiles || 100;
96
- this.includePatterns = options.includePatterns || ['**/*'];
97
- this.excludePatterns = options.excludePatterns || DEFAULT_IGNORE_PATTERNS;
98
- this.priorityFiles = options.priorityFiles || [];
99
- }
100
- /**
101
- * Sets the project root directory
102
- */
103
- setProjectRoot(projectRoot) {
104
- this.projectRoot = projectRoot;
105
- this.clearCache();
106
- }
107
- /**
108
- * Sets the maximum token limit for context
109
- */
110
- setMaxTokens(maxTokens) {
111
- this.maxTokens = maxTokens;
112
- }
113
- /**
114
- * Sets the maximum number of files to include
115
- */
116
- setMaxFiles(maxFiles) {
117
- this.maxFiles = maxFiles;
118
- }
119
- /**
120
- * Adds files to the priority list
121
- */
122
- addPriorityFiles(files) {
123
- this.priorityFiles = [...new Set([...this.priorityFiles, ...files])];
124
- }
125
- /**
126
- * Clears the file cache
127
- */
128
- clearCache() {
129
- this.fileCache.clear();
130
- }
131
- /**
132
- * Gets the effective exclude patterns including session exclusions.
133
- * If custom excludePatterns were provided in constructor options, uses those.
134
- * Otherwise loads patterns from .gitignore files (including nested ones).
135
- */
136
- async getEffectiveExcludePatterns() {
137
- const sessionManager = getSessionManager();
138
- const sessionExcludedFolders = sessionManager.getExcludedFolders();
139
- // If custom patterns were provided, use those; otherwise load from .gitignore files
140
- const basePatterns = this.excludePatterns === DEFAULT_IGNORE_PATTERNS
141
- ? await loadIgnorePatterns(this.projectRoot)
142
- : this.excludePatterns;
143
- return mergeSessionExclusions(sessionExcludedFolders, basePatterns);
144
- }
145
- /**
146
- * Discovers all relevant files in the project
147
- */
148
- async discoverFiles() {
149
- try {
150
- const effectiveExcludePatterns = await this.getEffectiveExcludePatterns();
151
- // Debug: show patterns being used
152
- logger.debug(`Using ${effectiveExcludePatterns.length} exclude patterns for file discovery`);
153
- const nodeModulesPatterns = effectiveExcludePatterns.filter(p => p.includes('node_modules'));
154
- logger.debug(`node_modules patterns: ${nodeModulesPatterns.slice(0, 5).join(', ')}${nodeModulesPatterns.length > 5 ? `... (${nodeModulesPatterns.length} total)` : ''}`);
155
- const files = await glob(this.includePatterns, {
156
- cwd: this.projectRoot,
157
- nodir: true,
158
- ignore: effectiveExcludePatterns,
159
- absolute: false,
160
- dot: false,
161
- });
162
- // Filter out binary and large files
163
- const filteredFiles = [];
164
- for (const file of files) {
165
- if (this.isTextFile(file)) {
166
- const absolutePath = path.join(this.projectRoot, file);
167
- const stats = await stat(absolutePath);
168
- if (stats && stats.size <= DEFAULT_CONFIG.project.maxFileSize) {
169
- filteredFiles.push(file);
170
- }
171
- }
172
- }
173
- logger.debug(`Discovered ${filteredFiles.length} files in project`);
174
- // Debug: show sample of discovered files to understand what's being included
175
- const nodeModuleFiles = filteredFiles.filter(f => f.includes('node_modules'));
176
- if (nodeModuleFiles.length > 0) {
177
- logger.debug(`WARNING: Found ${nodeModuleFiles.length} files in node_modules! Sample: ${nodeModuleFiles.slice(0, 3).join(', ')}`);
178
- }
179
- return filteredFiles;
180
- }
181
- catch (error) {
182
- logger.error('Failed to discover files', error);
183
- return [];
184
- }
185
- }
186
- /**
187
- * Loads a file and creates a ContextFile object
188
- */
189
- async loadFile(relativePath) {
190
- // Check cache first
191
- if (this.fileCache.has(relativePath)) {
192
- return this.fileCache.get(relativePath);
193
- }
194
- const absolutePath = path.join(this.projectRoot, relativePath);
195
- const sanitized = sanitizePath(relativePath, this.projectRoot);
196
- if (!sanitized) {
197
- logger.warn(`Path traversal attempt blocked: ${relativePath}`);
198
- return null;
199
- }
200
- if (!await pathExists(absolutePath)) {
201
- logger.debug(`File not found: ${relativePath}`);
202
- return null;
203
- }
204
- try {
205
- const content = await safeReadFile(absolutePath);
206
- if (content === null) {
207
- return null;
208
- }
209
- const stats = await stat(absolutePath);
210
- const tokenCount = estimateTokens(content);
211
- const language = this.detectLanguage(relativePath);
212
- const contextFile = {
213
- path: absolutePath,
214
- relativePath: toForwardSlashes(relativePath),
215
- content,
216
- tokenCount,
217
- size: stats?.size || 0,
218
- lastModified: stats?.mtime || new Date(),
219
- language,
220
- };
221
- // Cache the file
222
- this.fileCache.set(relativePath, contextFile);
223
- return contextFile;
224
- }
225
- catch (error) {
226
- logger.error(`Failed to load file: ${relativePath}`, error);
227
- return null;
228
- }
229
- }
230
- /**
231
- * Loads multiple files in parallel
232
- */
233
- async loadFiles(relativePaths) {
234
- const results = await Promise.all(relativePaths.map((p) => this.loadFile(p)));
235
- return results.filter((f) => f !== null);
236
- }
237
- /**
238
- * Builds context from specified files
239
- */
240
- async buildContext(files) {
241
- const filesToLoad = files || await this.discoverFiles();
242
- const loadedFiles = await this.loadFiles(filesToLoad);
243
- // Sort files by priority
244
- const sortedFiles = this.sortFilesByPriority(loadedFiles);
245
- // Select files within token budget
246
- const selectedFiles = this.selectFilesWithinBudget(sortedFiles);
247
- const totalTokens = selectedFiles.reduce((sum, f) => sum + f.tokenCount, 0);
248
- const summary = this.generateContextSummary(selectedFiles);
249
- return {
250
- files: selectedFiles,
251
- totalTokens,
252
- summary,
253
- projectRoot: this.projectRoot,
254
- timestamp: new Date().toISOString(),
255
- };
256
- }
257
- /**
258
- * Builds context for specific file patterns
259
- */
260
- async buildContextForPatterns(patterns) {
261
- const effectiveExcludePatterns = await this.getEffectiveExcludePatterns();
262
- const files = await glob(patterns, {
263
- cwd: this.projectRoot,
264
- nodir: true,
265
- ignore: effectiveExcludePatterns,
266
- absolute: false,
267
- });
268
- return this.buildContext(files);
269
- }
270
- /**
271
- * Builds context including specific files with priority
272
- */
273
- async buildContextWithPriority(priorityFiles, additionalFiles) {
274
- // Load priority files first
275
- const priorityLoaded = await this.loadFiles(priorityFiles);
276
- // Calculate remaining token budget
277
- const priorityTokens = priorityLoaded.reduce((sum, f) => sum + f.tokenCount, 0);
278
- const remainingBudget = this.maxTokens - priorityTokens;
279
- // Load additional files if budget allows
280
- let additionalLoaded = [];
281
- if (remainingBudget > 0 && additionalFiles) {
282
- const loaded = await this.loadFiles(additionalFiles);
283
- additionalLoaded = this.selectFilesWithinBudget(loaded, remainingBudget);
284
- }
285
- const allFiles = [...priorityLoaded, ...additionalLoaded];
286
- const totalTokens = allFiles.reduce((sum, f) => sum + f.tokenCount, 0);
287
- const summary = this.generateContextSummary(allFiles);
288
- return {
289
- files: allFiles,
290
- totalTokens,
291
- summary,
292
- projectRoot: this.projectRoot,
293
- timestamp: new Date().toISOString(),
294
- };
295
- }
296
- /**
297
- * Formats context for LLM consumption
298
- */
299
- formatContextForLLM(context) {
300
- const parts = [];
301
- parts.push('## Project Context');
302
- parts.push('');
303
- parts.push(`Project Root: ${context.projectRoot}`);
304
- parts.push(`Files Included: ${context.files.length}`);
305
- parts.push(`Total Tokens: ${context.totalTokens.toLocaleString()}`);
306
- parts.push('');
307
- parts.push('---');
308
- parts.push('');
309
- for (const file of context.files) {
310
- parts.push(`### File: ${file.relativePath}`);
311
- parts.push(`Language: ${file.language} | Tokens: ${file.tokenCount.toLocaleString()}`);
312
- parts.push('');
313
- parts.push('```' + file.language);
314
- parts.push(file.content);
315
- parts.push('```');
316
- parts.push('');
317
- }
318
- return parts.join('\n');
319
- }
320
- /**
321
- * Formats context as a compact summary
322
- */
323
- formatContextSummary(context) {
324
- const parts = [];
325
- parts.push(`📁 Project: ${path.basename(context.projectRoot)}`);
326
- parts.push(`📄 Files: ${context.files.length}`);
327
- parts.push(`🔤 Tokens: ${context.totalTokens.toLocaleString()}`);
328
- parts.push('');
329
- parts.push('Files included:');
330
- for (const file of context.files) {
331
- parts.push(` • ${file.relativePath} (${file.tokenCount.toLocaleString()} tokens)`);
332
- }
333
- return parts.join('\n');
334
- }
335
- /**
336
- * Gets context usage statistics
337
- */
338
- getContextStats(context, contextWindow) {
339
- const usedTokens = context.totalTokens;
340
- const remainingTokens = Math.max(0, contextWindow - usedTokens);
341
- const usagePercent = Math.round((usedTokens / contextWindow) * 100);
342
- return {
343
- usedTokens,
344
- remainingTokens,
345
- usagePercent,
346
- fileCount: context.files.length,
347
- };
348
- }
349
- /**
350
- * Detects the programming language based on file extension
351
- */
352
- detectLanguage(filePath) {
353
- const ext = path.extname(filePath).toLowerCase();
354
- // Check for special filenames
355
- const basename = path.basename(filePath).toLowerCase();
356
- if (basename === 'dockerfile' || basename.startsWith('dockerfile.')) {
357
- return 'dockerfile';
358
- }
359
- if (basename === 'makefile' || basename === 'gnumakefile') {
360
- return 'makefile';
361
- }
362
- if (basename === '.gitignore' || basename === '.dockerignore') {
363
- return 'gitignore';
364
- }
365
- return EXTENSION_TO_LANGUAGE[ext] || 'text';
366
- }
367
- /**
368
- * Checks if a file is likely a text file based on extension
369
- */
370
- isTextFile(filePath) {
371
- const ext = path.extname(filePath).toLowerCase();
372
- const basename = path.basename(filePath).toLowerCase();
373
- // Binary file extensions to exclude
374
- const binaryExtensions = new Set([
375
- '.png', '.jpg', '.jpeg', '.gif', '.bmp', '.ico', '.webp', '.svg',
376
- '.mp3', '.mp4', '.wav', '.avi', '.mov', '.mkv', '.webm',
377
- '.zip', '.tar', '.gz', '.rar', '.7z', '.bz2',
378
- '.pdf', '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx',
379
- '.exe', '.dll', '.so', '.dylib', '.bin',
380
- '.woff', '.woff2', '.ttf', '.otf', '.eot',
381
- '.sqlite', '.db',
382
- ]);
383
- if (binaryExtensions.has(ext)) {
384
- return false;
385
- }
386
- // Known text files without extensions
387
- const textFilenames = new Set([
388
- 'dockerfile', 'makefile', 'gnumakefile', 'rakefile',
389
- 'gemfile', 'procfile', 'brewfile', 'vagrantfile',
390
- '.gitignore', '.dockerignore', '.npmignore', '.eslintignore',
391
- '.prettierignore', '.editorconfig', '.env', '.env.example',
392
- 'license', 'readme', 'changelog', 'contributing', 'authors',
393
- ]);
394
- if (textFilenames.has(basename)) {
395
- return true;
396
- }
397
- // If extension is in our language map, it's a text file
398
- if (EXTENSION_TO_LANGUAGE[ext]) {
399
- return true;
400
- }
401
- // Default to true for unknown extensions (will be filtered by size later)
402
- return ext === '' || ext.length <= 5;
403
- }
404
- /**
405
- * Sorts files by priority for context inclusion
406
- */
407
- sortFilesByPriority(files) {
408
- const priorities = files.map((file) => ({
409
- path: file.relativePath,
410
- priority: this.calculateFilePriority(file),
411
- tokenCount: file.tokenCount,
412
- }));
413
- // Sort by priority (higher first), then by token count (smaller first for ties)
414
- priorities.sort((a, b) => {
415
- if (b.priority !== a.priority) {
416
- return b.priority - a.priority;
417
- }
418
- return a.tokenCount - b.tokenCount;
419
- });
420
- // Return files in sorted order
421
- const pathOrder = new Map(priorities.map((p, i) => [p.path, i]));
422
- return [...files].sort((a, b) => {
423
- const orderA = pathOrder.get(a.relativePath) ?? Infinity;
424
- const orderB = pathOrder.get(b.relativePath) ?? Infinity;
425
- return orderA - orderB;
426
- });
427
- }
428
- /**
429
- * Calculates priority score for a file
430
- */
431
- calculateFilePriority(file) {
432
- let priority = 0;
433
- // Priority files get highest score
434
- if (this.priorityFiles.some((p) => file.relativePath.includes(p))) {
435
- priority += 1000;
436
- }
437
- // Configuration files are important
438
- const configPatterns = [
439
- 'package.json', 'tsconfig.json', 'webpack.config',
440
- 'vite.config', 'rollup.config', '.eslintrc', '.prettierrc',
441
- 'pyproject.toml', 'setup.py', 'requirements.txt',
442
- 'Cargo.toml', 'go.mod', 'pom.xml', 'build.gradle',
443
- ];
444
- if (configPatterns.some((p) => file.relativePath.includes(p))) {
445
- priority += 100;
446
- }
447
- // Entry points and main files
448
- const entryPatterns = [
449
- 'index.ts', 'index.js', 'main.ts', 'main.js',
450
- 'app.ts', 'app.js', 'cli.ts', 'cli.js',
451
- '__init__.py', 'main.py', 'app.py',
452
- 'main.go', 'main.rs', 'Main.java',
453
- ];
454
- if (entryPatterns.some((p) => file.relativePath.endsWith(p))) {
455
- priority += 80;
456
- }
457
- // Source files in src directory
458
- if (file.relativePath.startsWith('src/')) {
459
- priority += 50;
460
- }
461
- // Type definitions
462
- if (file.relativePath.includes('/types/') || file.relativePath.endsWith('.d.ts')) {
463
- priority += 40;
464
- }
465
- // Test files get lower priority
466
- if (file.relativePath.includes('test') || file.relativePath.includes('spec')) {
467
- priority -= 20;
468
- }
469
- // Recently modified files (if we had that info)
470
- // This could be enhanced with git integration
471
- // Smaller files are slightly preferred (easier to include more context)
472
- if (file.tokenCount < 500) {
473
- priority += 10;
474
- }
475
- else if (file.tokenCount > 5000) {
476
- priority -= 10;
477
- }
478
- return priority;
479
- }
480
- /**
481
- * Selects files that fit within the token budget
482
- */
483
- selectFilesWithinBudget(files, budget) {
484
- const maxBudget = budget ?? this.maxTokens;
485
- const selected = [];
486
- let currentTokens = 0;
487
- for (const file of files) {
488
- if (selected.length >= this.maxFiles) {
489
- break;
490
- }
491
- if (currentTokens + file.tokenCount <= maxBudget) {
492
- selected.push(file);
493
- currentTokens += file.tokenCount;
494
- }
495
- }
496
- return selected;
497
- }
498
- /**
499
- * Generates a summary of the context
500
- */
501
- generateContextSummary(files) {
502
- const languageCounts = {};
503
- let totalTokens = 0;
504
- for (const file of files) {
505
- languageCounts[file.language] = (languageCounts[file.language] || 0) + 1;
506
- totalTokens += file.tokenCount;
507
- }
508
- const languageList = Object.entries(languageCounts)
509
- .sort((a, b) => b[1] - a[1])
510
- .map(([lang, count]) => `${lang}: ${count}`)
511
- .join(', ');
512
- return `${files.length} files (${totalTokens.toLocaleString()} tokens) - ${languageList}`;
513
- }
514
- /**
515
- * Detects the project type based on marker files present in the project root
516
- */
517
- async detectProjectType() {
518
- // Check for TypeScript first (more specific than nodejs)
519
- for (const marker of PROJECT_MARKERS.typescript) {
520
- if (await pathExists(path.join(this.projectRoot, marker))) {
521
- return 'typescript';
522
- }
523
- }
524
- // Check other project types in order of specificity
525
- const typeOrder = [
526
- 'rust', 'go', 'python', 'java', 'csharp', 'ruby', 'php', 'nodejs'
527
- ];
528
- for (const projectType of typeOrder) {
529
- const markers = PROJECT_MARKERS[projectType];
530
- for (const marker of markers) {
531
- // Handle glob patterns like *.csproj
532
- if (marker.includes('*')) {
533
- const matches = await glob(marker, {
534
- cwd: this.projectRoot,
535
- nodir: true,
536
- });
537
- if (matches.length > 0) {
538
- return projectType;
539
- }
540
- }
541
- else if (await pathExists(path.join(this.projectRoot, marker))) {
542
- return projectType;
543
- }
544
- }
545
- }
546
- return 'unknown';
547
- }
548
- /**
549
- * Generates a directory tree in markdown format
550
- * @param maxDepth - Maximum depth to traverse (default: 6)
551
- * @param maxItems - Maximum items per directory to show (default: 20)
552
- */
553
- async getDirectoryTree(maxDepth = 6, maxItems = 20) {
554
- const lines = [];
555
- const rootName = path.basename(this.projectRoot);
556
- lines.push(rootName + '/');
557
- // Get session excluded folders for tree filtering
558
- const sessionManager = getSessionManager();
559
- const sessionExcludedFolders = sessionManager.getExcludedFolders();
560
- await this.buildTreeRecursive('', 0, maxDepth, maxItems, lines, '', sessionExcludedFolders);
561
- return lines.join('\n');
562
- }
563
- /**
564
- * Generates a compact directory tree for classifier/routing prompts.
565
- * Uses shallow traversal and emits summary lines at the depth boundary
566
- * instead of enumerating every file.
567
- * @param maxDepth - Maximum depth to traverse (default: 3)
568
- * @param maxItems - Maximum items per directory to show (default: 15)
569
- */
570
- async getCompactDirectoryTree(maxDepth = 3, maxItems = 15) {
571
- const lines = [];
572
- const rootName = path.basename(this.projectRoot);
573
- lines.push(rootName + '/');
574
- const sessionManager = getSessionManager();
575
- const sessionExcludedFolders = sessionManager.getExcludedFolders();
576
- await this.buildCompactTreeRecursive('', 0, maxDepth, maxItems, lines, '', sessionExcludedFolders);
577
- return lines.join('\n');
578
- }
579
- /**
580
- * Recursively builds a compact directory tree.
581
- * At the depth boundary, directories are summarized with file/subdir counts
582
- * instead of being traversed further.
583
- */
584
- async buildCompactTreeRecursive(relativePath, depth, maxDepth, maxItems, lines, prefix, sessionExcludedFolders = []) {
585
- const currentPath = path.join(this.projectRoot, relativePath);
586
- try {
587
- const { readdir } = await import('fs/promises');
588
- const entries = await readdir(currentPath, { withFileTypes: true });
589
- const filtered = entries.filter((entry) => {
590
- const name = entry.name;
591
- if (entry.isDirectory()) {
592
- if (shouldExcludeDirectory(name))
593
- return false;
594
- const entryRelativePath = relativePath ? `${relativePath}/${name}` : name;
595
- return !shouldExcludeSessionPath(entryRelativePath, sessionExcludedFolders);
596
- }
597
- return !shouldExcludeFile(name);
598
- });
599
- filtered.sort((a, b) => {
600
- if (a.isDirectory() && !b.isDirectory())
601
- return -1;
602
- if (!a.isDirectory() && b.isDirectory())
603
- return 1;
604
- return a.name.localeCompare(b.name);
605
- });
606
- const itemsToShow = filtered.slice(0, maxItems);
607
- const hasMore = filtered.length > maxItems;
608
- // At max depth, summarize directories instead of recursing
609
- if (depth >= maxDepth) {
610
- // Just report that this directory has content (caller will summarize)
611
- return filtered.length > 0;
612
- }
613
- // Build visible entries with child content or summaries
614
- const visibleEntries = [];
615
- for (const entry of itemsToShow) {
616
- if (entry.isDirectory()) {
617
- const childRelPath = relativePath ? `${relativePath}/${entry.name}` : entry.name;
618
- if (depth + 1 >= maxDepth) {
619
- // At the boundary: summarize instead of recursing
620
- const summary = await this.summarizeDirectory(childRelPath, sessionExcludedFolders);
621
- visibleEntries.push({ entry, summary });
622
- }
623
- else {
624
- // Still within depth: recurse normally
625
- const childLines = [];
626
- const hasContent = await this.buildCompactTreeRecursive(childRelPath, depth + 1, maxDepth, maxItems, childLines, '', sessionExcludedFolders);
627
- if (hasContent) {
628
- visibleEntries.push({ entry, childLines });
629
- }
630
- }
631
- }
632
- else {
633
- visibleEntries.push({ entry });
634
- }
635
- }
636
- if (hasMore) {
637
- visibleEntries.push({ entry: null });
638
- }
639
- if (visibleEntries.length === 0)
640
- return false;
641
- for (let i = 0; i < visibleEntries.length; i++) {
642
- const { entry, childLines, summary } = visibleEntries[i];
643
- const isLast = i === visibleEntries.length - 1;
644
- const connector = isLast ? '└── ' : '├── ';
645
- const childPrefix = isLast ? ' ' : '│ ';
646
- if (entry === null) {
647
- lines.push(prefix + connector + '... (' + (filtered.length - maxItems) + ' more items)');
648
- }
649
- else if (entry.isDirectory()) {
650
- if (summary) {
651
- lines.push(prefix + connector + entry.name + '/ ' + summary);
652
- }
653
- else {
654
- lines.push(prefix + connector + entry.name + '/');
655
- for (const childLine of childLines) {
656
- lines.push(prefix + childPrefix + childLine);
657
- }
658
- }
659
- }
660
- else {
661
- lines.push(prefix + connector + entry.name);
662
- }
663
- }
664
- return true;
665
- }
666
- catch (error) {
667
- logger.debug(`Failed to read directory: ${currentPath}`, error);
668
- return false;
669
- }
670
- }
671
- /**
672
- * Summarizes a directory by counting subdirectories and files recursively.
673
- * Returns a string like "(8 subdirs, 42 files)".
674
- */
675
- async summarizeDirectory(relativePath, sessionExcludedFolders = []) {
676
- let subdirs = 0;
677
- let files = 0;
678
- const countRecursive = async (relPath) => {
679
- const fullPath = path.join(this.projectRoot, relPath);
680
- try {
681
- const { readdir } = await import('fs/promises');
682
- const entries = await readdir(fullPath, { withFileTypes: true });
683
- for (const entry of entries) {
684
- if (entry.isDirectory()) {
685
- if (shouldExcludeDirectory(entry.name))
686
- continue;
687
- const entryRelPath = relPath ? `${relPath}/${entry.name}` : entry.name;
688
- if (shouldExcludeSessionPath(entryRelPath, sessionExcludedFolders))
689
- continue;
690
- subdirs++;
691
- await countRecursive(entryRelPath);
692
- }
693
- else {
694
- if (!shouldExcludeFile(entry.name)) {
695
- files++;
696
- }
697
- }
698
- }
699
- }
700
- catch {
701
- // Skip unreadable directories
702
- }
703
- };
704
- await countRecursive(relativePath);
705
- const parts = [];
706
- if (subdirs > 0)
707
- parts.push(`${subdirs} subdir${subdirs !== 1 ? 's' : ''}`);
708
- if (files > 0)
709
- parts.push(`${files} file${files !== 1 ? 's' : ''}`);
710
- return parts.length > 0 ? `(${parts.join(', ')})` : '(empty)';
711
- }
712
- /**
713
- * Recursively builds the directory tree
714
- */
715
- async buildTreeRecursive(relativePath, depth, maxDepth, maxItems, lines, prefix, sessionExcludedFolders = []) {
716
- if (depth >= maxDepth)
717
- return false;
718
- const currentPath = path.join(this.projectRoot, relativePath);
719
- try {
720
- const { readdir } = await import('fs/promises');
721
- const entries = await readdir(currentPath, { withFileTypes: true });
722
- // Filter out excluded directories/files using shared patterns and session exclusions
723
- const filtered = entries.filter((entry) => {
724
- const name = entry.name;
725
- if (entry.isDirectory()) {
726
- // Check default exclusions first
727
- if (shouldExcludeDirectory(name)) {
728
- return false;
729
- }
730
- // Check session exclusions using full relative path
731
- const entryRelativePath = relativePath ? `${relativePath}/${name}` : name;
732
- return !shouldExcludeSessionPath(entryRelativePath, sessionExcludedFolders);
733
- }
734
- return !shouldExcludeFile(name);
735
- });
736
- // Sort: directories first, then files, alphabetically
737
- filtered.sort((a, b) => {
738
- if (a.isDirectory() && !b.isDirectory())
739
- return -1;
740
- if (!a.isDirectory() && b.isDirectory())
741
- return 1;
742
- return a.name.localeCompare(b.name);
743
- });
744
- // Limit items shown
745
- const itemsToShow = filtered.slice(0, maxItems);
746
- const hasMore = filtered.length > maxItems;
747
- // First pass: resolve directories to determine which have visible content
748
- // Each visible entry is { entry, childLines } where childLines is set for non-empty dirs
749
- const visibleEntries = [];
750
- for (const entry of itemsToShow) {
751
- if (entry.isDirectory()) {
752
- // Recurse into a temporary buffer to check for content
753
- const childLines = [];
754
- const hasContent = await this.buildTreeRecursive(path.join(relativePath, entry.name), depth + 1, maxDepth, maxItems, childLines, '', // Use empty prefix; we'll re-prefix when rendering
755
- sessionExcludedFolders);
756
- if (hasContent) {
757
- visibleEntries.push({ entry, childLines });
758
- }
759
- }
760
- else {
761
- visibleEntries.push({ entry });
762
- }
763
- }
764
- if (hasMore) {
765
- // Count as a visible entry for connector logic
766
- visibleEntries.push({ entry: null });
767
- }
768
- if (visibleEntries.length === 0)
769
- return false;
770
- // Second pass: render with correct connectors
771
- for (let i = 0; i < visibleEntries.length; i++) {
772
- const { entry, childLines } = visibleEntries[i];
773
- const isLast = i === visibleEntries.length - 1;
774
- const connector = isLast ? '└── ' : '├── ';
775
- const childPrefix = isLast ? ' ' : '│ ';
776
- if (entry === null) {
777
- // "has more" marker
778
- lines.push(prefix + connector + '... (' + (filtered.length - maxItems) + ' more items)');
779
- }
780
- else if (entry.isDirectory()) {
781
- lines.push(prefix + connector + entry.name + '/');
782
- // Re-prefix the child lines collected with empty prefix
783
- for (const childLine of childLines) {
784
- lines.push(prefix + childPrefix + childLine);
785
- }
786
- }
787
- else {
788
- lines.push(prefix + connector + entry.name);
789
- }
790
- }
791
- return true;
792
- }
793
- catch (error) {
794
- logger.debug(`Failed to read directory: ${currentPath}`, error);
795
- return false;
796
- }
797
- }
798
- /**
799
- * Extracts a summary of project configuration files (package.json, etc.)
800
- * Returns only essential fields to minimize token usage
801
- */
802
- async getConfigSummary() {
803
- const summary = {};
804
- // Try package.json first (Node.js/TypeScript projects)
805
- const packageJsonPath = path.join(this.projectRoot, 'package.json');
806
- if (await pathExists(packageJsonPath)) {
807
- try {
808
- const content = await safeReadFile(packageJsonPath);
809
- if (content) {
810
- const pkg = JSON.parse(content);
811
- summary.name = pkg.name;
812
- summary.description = pkg.description;
813
- summary.version = pkg.version;
814
- summary.main = pkg.main || pkg.module;
815
- // Only include script names and commands (useful for LLM to know available commands)
816
- if (pkg.scripts && typeof pkg.scripts === 'object') {
817
- summary.scripts = pkg.scripts;
818
- }
819
- // Only include dependency names (not versions) to save tokens
820
- if (pkg.dependencies) {
821
- summary.dependencies = Object.keys(pkg.dependencies);
822
- }
823
- if (pkg.devDependencies) {
824
- summary.devDependencies = Object.keys(pkg.devDependencies);
825
- }
826
- }
827
- }
828
- catch (error) {
829
- logger.debug('Failed to parse package.json', error);
830
- }
831
- }
832
- // Try pyproject.toml (Python projects)
833
- const pyprojectPath = path.join(this.projectRoot, 'pyproject.toml');
834
- if (await pathExists(pyprojectPath) && !summary.name) {
835
- try {
836
- const content = await safeReadFile(pyprojectPath);
837
- if (content) {
838
- // Basic TOML parsing for project name/description
839
- const nameMatch = content.match(/name\s*=\s*["']([^"']+)["']/);
840
- const descMatch = content.match(/description\s*=\s*["']([^"']+)["']/);
841
- const versionMatch = content.match(/version\s*=\s*["']([^"']+)["']/);
842
- if (nameMatch)
843
- summary.name = nameMatch[1];
844
- if (descMatch)
845
- summary.description = descMatch[1];
846
- if (versionMatch)
847
- summary.version = versionMatch[1];
848
- }
849
- }
850
- catch (error) {
851
- logger.debug('Failed to parse pyproject.toml', error);
852
- }
853
- }
854
- // Try Cargo.toml (Rust projects)
855
- const cargoPath = path.join(this.projectRoot, 'Cargo.toml');
856
- if (await pathExists(cargoPath) && !summary.name) {
857
- try {
858
- const content = await safeReadFile(cargoPath);
859
- if (content) {
860
- const nameMatch = content.match(/name\s*=\s*["']([^"']+)["']/);
861
- const descMatch = content.match(/description\s*=\s*["']([^"']+)["']/);
862
- const versionMatch = content.match(/version\s*=\s*["']([^"']+)["']/);
863
- if (nameMatch)
864
- summary.name = nameMatch[1];
865
- if (descMatch)
866
- summary.description = descMatch[1];
867
- if (versionMatch)
868
- summary.version = versionMatch[1];
869
- }
870
- }
871
- catch (error) {
872
- logger.debug('Failed to parse Cargo.toml', error);
873
- }
874
- }
875
- // Try go.mod (Go projects)
876
- const goModPath = path.join(this.projectRoot, 'go.mod');
877
- if (await pathExists(goModPath) && !summary.name) {
878
- try {
879
- const content = await safeReadFile(goModPath);
880
- if (content) {
881
- const moduleMatch = content.match(/module\s+(\S+)/);
882
- if (moduleMatch)
883
- summary.name = moduleMatch[1];
884
- }
885
- }
886
- catch (error) {
887
- logger.debug('Failed to parse go.mod', error);
888
- }
889
- }
890
- return summary;
891
- }
892
- /**
893
- * Gets a complete lightweight project summary suitable for system prompt injection
894
- */
895
- async getProjectSummary() {
896
- // Gather all information in parallel where possible
897
- const [projectType, directoryTree, compactDirectoryTree, config, files] = await Promise.all([
898
- this.detectProjectType(),
899
- this.getDirectoryTree(),
900
- this.getCompactDirectoryTree(),
901
- this.getConfigSummary(),
902
- this.discoverFiles(),
903
- ]);
904
- // Detect primary languages from discovered files
905
- const languageCounts = {};
906
- for (const file of files) {
907
- const ext = path.extname(file).toLowerCase();
908
- const lang = EXTENSION_TO_LANGUAGE[ext];
909
- if (lang && lang !== 'text') {
910
- languageCounts[lang] = (languageCounts[lang] || 0) + 1;
911
- }
912
- }
913
- const languages = Object.entries(languageCounts)
914
- .sort((a, b) => b[1] - a[1])
915
- .slice(0, 5)
916
- .map(([lang]) => lang);
917
- const name = config.name || path.basename(this.projectRoot);
918
- const summary = {
919
- projectType,
920
- name,
921
- projectRoot: this.projectRoot,
922
- directoryTree,
923
- compactDirectoryTree,
924
- config,
925
- languages,
926
- fileCount: files.length,
927
- formatted: '', // Will be set below
928
- };
929
- // Generate formatted string for system prompt
930
- summary.formatted = this.formatProjectSummaryForPrompt(summary);
931
- return summary;
932
- }
933
- /**
934
- * Formats the project summary as a string suitable for system prompt injection
935
- */
936
- formatProjectSummaryForPrompt(summary) {
937
- const parts = [];
938
- parts.push('## Project Context');
939
- parts.push('');
940
- parts.push(`**Project:** ${summary.name}`);
941
- parts.push(`**Type:** ${summary.projectType}`);
942
- parts.push(`**Languages:** ${summary.languages.join(', ') || 'unknown'}`);
943
- parts.push(`**Files:** ${summary.fileCount}`);
944
- parts.push('');
945
- // Add config info if available
946
- if (summary.config.description) {
947
- parts.push(`**Description:** ${summary.config.description}`);
948
- parts.push('');
949
- }
950
- // Add available scripts (very useful for LLM to know what commands exist)
951
- if (summary.config.scripts && Object.keys(summary.config.scripts).length > 0) {
952
- parts.push('**Available Scripts:**');
953
- for (const [scriptName, scriptCmd] of Object.entries(summary.config.scripts)) {
954
- parts.push(`- \`npm run ${scriptName}\`: ${scriptCmd}`);
955
- }
956
- parts.push('');
957
- }
958
- // Add dependencies summary (just names, not full list if too long)
959
- if (summary.config.dependencies && summary.config.dependencies.length > 0) {
960
- const deps = summary.config.dependencies;
961
- if (deps.length <= 10) {
962
- parts.push(`**Dependencies:** ${deps.join(', ')}`);
963
- }
964
- else {
965
- parts.push(`**Dependencies:** ${deps.slice(0, 10).join(', ')} (+${deps.length - 10} more)`);
966
- }
967
- parts.push('');
968
- }
969
- // Add directory tree
970
- parts.push('**Directory Structure:**');
971
- parts.push('```');
972
- parts.push(summary.directoryTree);
973
- parts.push('```');
974
- return parts.join('\n');
975
- }
976
- }
977
- // Singleton instance
978
- let contextBuilderInstance = null;
979
- /**
980
- * Gets the singleton ContextBuilder instance.
981
- * Creates the instance on first call with default options.
982
- *
983
- * @param options - Optional configuration options
984
- * @returns The ContextBuilder instance
985
- */
986
- export function getContextBuilder(options) {
987
- if (!contextBuilderInstance) {
988
- contextBuilderInstance = new ContextBuilder(options);
989
- }
990
- else if (options) {
991
- // Update options if provided
992
- if (options.projectRoot) {
993
- contextBuilderInstance.setProjectRoot(options.projectRoot);
994
- }
995
- if (options.maxTokens) {
996
- contextBuilderInstance.setMaxTokens(options.maxTokens);
997
- }
998
- if (options.maxFiles) {
999
- contextBuilderInstance.setMaxFiles(options.maxFiles);
1000
- }
1001
- if (options.priorityFiles) {
1002
- contextBuilderInstance.addPriorityFiles(options.priorityFiles);
1003
- }
1004
- }
1005
- return contextBuilderInstance;
1006
- }
1007
- /**
1008
- * Creates a new ContextBuilder instance with the specified options.
1009
- * Use this when you need a separate instance from the singleton.
1010
- *
1011
- * @param options - Configuration options
1012
- * @returns A new ContextBuilder instance
1013
- */
1014
- export function createContextBuilder(options) {
1015
- return new ContextBuilder(options);
1016
- }
1017
- export { ContextBuilder, DEFAULT_IGNORE_PATTERNS, EXTENSION_TO_LANGUAGE, PROJECT_MARKERS, };
1018
- //# sourceMappingURL=context-builder.js.map