@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,1044 +0,0 @@
1
- /**
2
- * Approval system service implementing three-tier approval flow
3
- *
4
- * This service manages the approval workflow for file modifications and other
5
- * operations that require user consent. It supports three approval modes:
6
- * - MANUAL: Requires explicit approval for each operation
7
- * - AUTO: Automatically approves safe operations based on patterns and thresholds
8
- * - STRICT: Requires approval for all operations including low-risk ones
9
- *
10
- * Features:
11
- * - Three-tier approval system (manual, auto, strict)
12
- * - Risk level assessment for operations
13
- * - Pattern-based auto-approval configuration
14
- * - Audit logging of all approval requests and responses
15
- * - Event emission for UI integration
16
- */
17
- import { v4 as uuidv4 } from 'uuid';
18
- import { ApprovalMode, } from '../types/approval.js';
19
- import { logger } from '../utils/logger.js';
20
- import { formatTimestamp } from '../utils/format.js';
21
- import { matchesPattern } from '../utils/path.js';
22
- import { getEventEmitter } from '../core/event-emitter.js';
23
- import { getSystemEventLogger } from './system-event-logger.js';
24
- /**
25
- * Default configuration values for the approval manager
26
- */
27
- const DEFAULT_MAX_AUTO_APPROVE_FILES = 5;
28
- const DEFAULT_MAX_AUTO_APPROVE_LINES = 100;
29
- /**
30
- * ApprovalManager handles the three-tier approval system for operations
31
- * that modify files, execute commands, or perform other potentially
32
- * destructive actions.
33
- */
34
- class ApprovalManager {
35
- /** Current approval mode */
36
- mode = ApprovalMode.MANUAL;
37
- /** History of all approval requests and responses */
38
- history = { requests: [], responses: [] };
39
- /** Patterns for files that can be auto-approved */
40
- autoApprovePatterns = [];
41
- /** Patterns for files that always require approval */
42
- requireApprovalPatterns = [];
43
- /** Maximum number of files that can be auto-approved in one operation */
44
- maxAutoApproveFiles = DEFAULT_MAX_AUTO_APPROVE_FILES;
45
- /** Maximum number of lines changed that can be auto-approved */
46
- maxAutoApproveLines = DEFAULT_MAX_AUTO_APPROVE_LINES;
47
- /** Event emitter for UI communication */
48
- eventEmitter;
49
- /** Currently pending approval request */
50
- pendingRequest = null;
51
- /** Resolver function for pending approval promise */
52
- resolveApproval = null;
53
- /** Current complexity context for SMART mode decisions */
54
- currentComplexityMode = null;
55
- /** Confidence of the current complexity classification */
56
- currentComplexityConfidence = 0;
57
- /** Minimum confidence threshold for SMART mode auto-approval (0-100) */
58
- smartModeConfidenceThreshold = 70;
59
- /** Session-wide auto-approval flag (set via [A] option in approval dialog) */
60
- sessionAutoApprovalEnabled = false;
61
- /** Auto-approve file edits, writes, and command executions (set via plan approval dialog) */
62
- fileEditsAutoApprovalEnabled = false;
63
- /** Currently pending plan approval request */
64
- pendingPlanApproval = null;
65
- /** Resolver function for pending plan approval promise */
66
- resolvePlanApprovalPromise = null;
67
- /** Set of approved command prefixes (e.g., 'npm', 'git', 'yarn') */
68
- approvedCommandPrefixes = new Set();
69
- /** Currently pending clarification wizard request */
70
- pendingClarificationWizard = null;
71
- /** Resolver function for pending clarification wizard promise */
72
- resolveClarificationWizardPromise = null;
73
- /**
74
- * Creates a new ApprovalManager instance
75
- */
76
- constructor() {
77
- this.eventEmitter = getEventEmitter();
78
- }
79
- /**
80
- * Gets the current approval mode
81
- * @returns The current ApprovalMode
82
- */
83
- getMode() {
84
- return this.mode;
85
- }
86
- /**
87
- * Enables session-wide auto-approval.
88
- * When enabled, all subsequent operations will be auto-approved for this session.
89
- * This is typically triggered by selecting [A] in the approval dialog.
90
- */
91
- enableSessionAutoApproval() {
92
- this.sessionAutoApprovalEnabled = true;
93
- logger.info('Session auto-approval enabled - all subsequent operations will be auto-approved');
94
- }
95
- /**
96
- * Disables session-wide auto-approval.
97
- */
98
- disableSessionAutoApproval() {
99
- this.sessionAutoApprovalEnabled = false;
100
- logger.info('Session auto-approval disabled');
101
- }
102
- /**
103
- * Checks if session-wide auto-approval is enabled.
104
- * @returns True if session auto-approval is enabled
105
- */
106
- isSessionAutoApprovalEnabled() {
107
- return this.sessionAutoApprovalEnabled;
108
- }
109
- /**
110
- * Enables auto-approval for file edits, writes, and command executions.
111
- * File creates, modifies, and shell commands will be auto-approved;
112
- * high-risk/critical shell commands still require manual approval.
113
- */
114
- enableFileEditsAutoApproval() {
115
- this.fileEditsAutoApprovalEnabled = true;
116
- logger.info('File edits auto-approval enabled - file writes, edits, and commands will be auto-approved');
117
- }
118
- /**
119
- * Disables auto-approval for file edits and writes.
120
- */
121
- disableFileEditsAutoApproval() {
122
- this.fileEditsAutoApprovalEnabled = false;
123
- logger.info('File edits auto-approval disabled');
124
- }
125
- /**
126
- * Extracts the command prefix from a shell command.
127
- * Examples: "npm install" -> "npm", "git status" -> "git"
128
- *
129
- * @param command - The full command string
130
- * @returns The command prefix (first word)
131
- */
132
- getCommandPrefix(command) {
133
- const trimmed = command.trim();
134
- // Handle common shell prefixes like sudo, env, etc.
135
- const parts = trimmed.split(/\s+/);
136
- const skipPrefixes = ['sudo', 'env', 'npx', 'pnpm', 'yarn', 'bunx'];
137
- for (const part of parts) {
138
- if (!skipPrefixes.includes(part.toLowerCase())) {
139
- return part.toLowerCase();
140
- }
141
- }
142
- return parts[0]?.toLowerCase() || '';
143
- }
144
- /**
145
- * Checks if a command's prefix has been approved for auto-execution.
146
- *
147
- * @param command - The command to check
148
- * @returns True if the command prefix is approved
149
- */
150
- isCommandPrefixApproved(command) {
151
- const prefix = this.getCommandPrefix(command);
152
- return this.approvedCommandPrefixes.has(prefix);
153
- }
154
- /**
155
- * Approves a command prefix for auto-execution in this session.
156
- * Future commands starting with this prefix will be auto-approved.
157
- *
158
- * @param command - The command whose prefix should be approved
159
- */
160
- approveCommandPrefix(command) {
161
- const prefix = this.getCommandPrefix(command);
162
- this.approvedCommandPrefixes.add(prefix);
163
- logger.info(`Command prefix approved for session: ${prefix}`);
164
- }
165
- /**
166
- * Gets all approved command prefixes.
167
- *
168
- * @returns Array of approved command prefixes
169
- */
170
- getApprovedCommandPrefixes() {
171
- return Array.from(this.approvedCommandPrefixes);
172
- }
173
- /**
174
- * Clears all approved command prefixes.
175
- */
176
- clearApprovedCommandPrefixes() {
177
- this.approvedCommandPrefixes.clear();
178
- logger.debug('Approved command prefixes cleared');
179
- }
180
- /**
181
- * Sets the complexity context for SMART mode decisions.
182
- * This should be called before file operations when complexity classification is available.
183
- *
184
- * @param mode - The complexity mode from the classifier (direct, clarification, plan)
185
- * @param confidence - The confidence score (0-100) of the classification
186
- */
187
- setComplexityContext(mode, confidence = 0) {
188
- this.currentComplexityMode = mode;
189
- this.currentComplexityConfidence = confidence;
190
- logger.debug(`Complexity context set: mode=${mode}, confidence=${confidence}`);
191
- }
192
- /**
193
- * Gets the current complexity context
194
- * @returns Object with mode and confidence, or null if not set
195
- */
196
- getComplexityContext() {
197
- return {
198
- mode: this.currentComplexityMode,
199
- confidence: this.currentComplexityConfidence,
200
- };
201
- }
202
- /**
203
- * Clears the complexity context (call after workflow completion)
204
- */
205
- clearComplexityContext() {
206
- this.currentComplexityMode = null;
207
- this.currentComplexityConfidence = 0;
208
- logger.debug('Complexity context cleared');
209
- }
210
- /**
211
- * Sets the confidence threshold for SMART mode auto-approval
212
- * @param threshold - Minimum confidence (0-100) required for auto-approval
213
- */
214
- setSmartModeConfidenceThreshold(threshold) {
215
- this.smartModeConfidenceThreshold = Math.max(0, Math.min(100, threshold));
216
- logger.debug(`SMART mode confidence threshold set to: ${this.smartModeConfidenceThreshold}`);
217
- }
218
- /**
219
- * Quick classification of a user request for SMART mode.
220
- * This is a lightweight heuristic-based classification that runs before LLM calls.
221
- * It sets the complexity context based on the request text.
222
- *
223
- * @param userRequest - The user's request text
224
- * @returns The determined complexity mode and confidence
225
- */
226
- quickClassifyRequest(userRequest) {
227
- const request = userRequest.toLowerCase();
228
- // Keywords indicating complex operations (PLAN mode)
229
- const complexKeywords = [
230
- 'refactor', 'redesign', 'migrate', 'architecture', 'rewrite',
231
- 'restructure', 'overhaul', 'major', 'breaking change', 'system',
232
- 'framework', 'infrastructure', 'database schema', 'api redesign',
233
- 'authentication system', 'authorization', 'security overhaul',
234
- ];
235
- // Keywords indicating medium complexity (CLARIFICATION mode)
236
- const mediumKeywords = [
237
- 'implement', 'feature', 'add functionality', 'integrate',
238
- 'connect', 'setup', 'configure', 'multi-file', 'across files',
239
- 'multiple components', 'service', 'module', 'api endpoint',
240
- ];
241
- // Keywords indicating simple operations (DIRECT mode)
242
- const simpleKeywords = [
243
- 'create', 'simple', 'basic', 'hello world', 'example',
244
- 'add file', 'new file', 'write', 'make', 'generate',
245
- 'readme', 'config', 'single', 'quick', 'small',
246
- 'fix typo', 'update text', 'change string', 'rename',
247
- ];
248
- // Check for complex patterns first (highest priority)
249
- const hasComplexKeyword = complexKeywords.some(keyword => request.includes(keyword));
250
- if (hasComplexKeyword) {
251
- logger.debug(`Quick classify: PLAN (complex keyword found)`);
252
- return { mode: 'plan', confidence: 80 };
253
- }
254
- // Check for medium complexity
255
- const hasMediumKeyword = mediumKeywords.some(keyword => request.includes(keyword));
256
- const hasMultipleFiles = /multiple|several|all|many|across/i.test(request);
257
- if (hasMediumKeyword || hasMultipleFiles) {
258
- logger.debug(`Quick classify: CLARIFICATION (medium keyword found)`);
259
- return { mode: 'clarification', confidence: 70 };
260
- }
261
- // Check for simple patterns
262
- const hasSimpleKeyword = simpleKeywords.some(keyword => request.includes(keyword));
263
- // Additional simple indicators
264
- const isShortRequest = request.length < 100;
265
- const mentionsSingleFile = /\b(a|one|single|the)\s+(file|page|document)\b/i.test(request);
266
- const isCreationRequest = /^(create|make|write|add|generate)\b/i.test(request.trim());
267
- if (hasSimpleKeyword || (isShortRequest && (mentionsSingleFile || isCreationRequest))) {
268
- const confidence = hasSimpleKeyword ? 85 : 75;
269
- logger.debug(`Quick classify: DIRECT (simple indicators, confidence: ${confidence})`);
270
- return { mode: 'direct', confidence };
271
- }
272
- // Default to clarification for ambiguous requests
273
- logger.debug(`Quick classify: CLARIFICATION (default for ambiguous request)`);
274
- return { mode: 'clarification', confidence: 60 };
275
- }
276
- /**
277
- * Classifies a user request and sets the complexity context.
278
- * Call this before tool execution to enable SMART mode decisions.
279
- *
280
- * @param userRequest - The user's request text
281
- */
282
- classifyAndSetContext(userRequest) {
283
- const { mode, confidence } = this.quickClassifyRequest(userRequest);
284
- this.setComplexityContext(mode, confidence);
285
- logger.info(`Request classified: mode=${mode}, confidence=${confidence}%`);
286
- }
287
- /**
288
- * Sets the approval mode
289
- * @param mode - The new approval mode to set
290
- */
291
- setMode(mode) {
292
- const previousMode = this.mode;
293
- this.mode = mode;
294
- logger.info(`Approval mode changed from ${previousMode} to ${mode}`);
295
- }
296
- /**
297
- * Toggles between manual and auto approval modes
298
- * If currently in STRICT mode, toggles to MANUAL
299
- * @returns The new approval mode after toggling
300
- */
301
- toggleMode() {
302
- if (this.mode === ApprovalMode.MANUAL) {
303
- this.mode = ApprovalMode.AUTO;
304
- }
305
- else {
306
- this.mode = ApprovalMode.MANUAL;
307
- }
308
- logger.info(`Approval mode toggled to: ${this.mode}`);
309
- return this.mode;
310
- }
311
- /**
312
- * Configures the approval manager with custom settings
313
- * @param options - Configuration options for auto-approval behavior
314
- */
315
- configure(options) {
316
- if (options.autoApprovePatterns !== undefined) {
317
- this.autoApprovePatterns = options.autoApprovePatterns;
318
- }
319
- if (options.requireApprovalPatterns !== undefined) {
320
- this.requireApprovalPatterns = options.requireApprovalPatterns;
321
- }
322
- if (options.maxAutoApproveFiles !== undefined) {
323
- this.maxAutoApproveFiles = options.maxAutoApproveFiles;
324
- }
325
- if (options.maxAutoApproveLines !== undefined) {
326
- this.maxAutoApproveLines = options.maxAutoApproveLines;
327
- }
328
- logger.debug('Approval manager configured', options);
329
- }
330
- /**
331
- * Gets the current configuration
332
- * @returns The current approval configuration
333
- */
334
- getConfig() {
335
- return {
336
- mode: this.mode,
337
- autoApprovePatterns: [...this.autoApprovePatterns],
338
- requireApprovalPatterns: [...this.requireApprovalPatterns],
339
- maxAutoApproveFiles: this.maxAutoApproveFiles,
340
- maxAutoApproveLines: this.maxAutoApproveLines,
341
- };
342
- }
343
- /**
344
- * Requests approval for an operation
345
- *
346
- * This method creates an approval request, assesses its risk level,
347
- * and either auto-approves it (based on mode and patterns) or
348
- * waits for user input.
349
- *
350
- * @param type - The type of operation requiring approval
351
- * @param description - Human-readable description of the operation
352
- * @param details - Detailed information about the operation
353
- * @returns Promise resolving to the approval response
354
- */
355
- async requestApproval(type, description, details) {
356
- const request = {
357
- id: uuidv4(),
358
- type,
359
- timestamp: formatTimestamp(),
360
- description,
361
- details,
362
- riskLevel: this.assessRiskLevel(type, details),
363
- estimatedImpact: this.estimateImpact(type, details),
364
- };
365
- this.history.requests.push(request);
366
- this.pendingRequest = request;
367
- logger.debug(`Approval requested: ${request.id}`, {
368
- type,
369
- riskLevel: request.riskLevel,
370
- });
371
- // Log approval request to system events
372
- const systemEventLogger = getSystemEventLogger();
373
- systemEventLogger.logApprovalRequested({
374
- approvalId: request.id,
375
- actionType: type,
376
- actionDescription: description,
377
- reason: `Risk level: ${request.riskLevel}`,
378
- });
379
- // Check if auto-approval is possible based on risk and patterns
380
- if (this.canAutoApprove(request)) {
381
- const response = this.createResponse(request, true, 'Auto-approved based on configuration');
382
- this.history.responses.push(response);
383
- this.pendingRequest = null;
384
- logger.info(`Request ${request.id} auto-approved`);
385
- // Log auto-approval to system events
386
- systemEventLogger.logApprovalGranted({
387
- approvalId: request.id,
388
- actionType: type,
389
- actionDescription: description,
390
- decidedBy: 'system',
391
- reason: 'Auto-approved based on configuration',
392
- });
393
- return response;
394
- }
395
- // In strict mode, always require explicit approval
396
- if (this.mode === ApprovalMode.STRICT) {
397
- return this.waitForUserApproval(request);
398
- }
399
- // In manual mode, always require approval
400
- if (this.mode === ApprovalMode.MANUAL) {
401
- return this.waitForUserApproval(request);
402
- }
403
- // In auto mode, check if this specific request should require approval
404
- if (this.shouldRequireApproval(request)) {
405
- return this.waitForUserApproval(request);
406
- }
407
- // Auto-approve in auto mode for safe operations
408
- const response = this.createResponse(request, true, 'Auto-approved (auto mode)');
409
- this.history.responses.push(response);
410
- this.pendingRequest = null;
411
- logger.info(`Request ${request.id} auto-approved in auto mode`);
412
- // Log auto-approval to system events
413
- systemEventLogger.logApprovalGranted({
414
- approvalId: request.id,
415
- actionType: type,
416
- actionDescription: description,
417
- decidedBy: 'system',
418
- reason: 'Auto-approved (auto mode)',
419
- });
420
- return response;
421
- }
422
- /**
423
- * Resolves a pending approval request with the user's choice
424
- *
425
- * @param choice - The user's approval choice
426
- * @param reason - Optional reason for the decision
427
- */
428
- resolveRequest(choice, reason) {
429
- if (!this.pendingRequest || !this.resolveApproval) {
430
- logger.warn('No pending approval request to resolve');
431
- return;
432
- }
433
- const approved = choice === 'approve';
434
- const response = this.createResponse(this.pendingRequest, approved, reason);
435
- this.history.responses.push(response);
436
- logger.info(`Request ${this.pendingRequest.id} ${approved ? 'approved' : 'rejected'}`, {
437
- choice,
438
- reason,
439
- });
440
- // Log approval decision to system events
441
- const systemEventLogger = getSystemEventLogger();
442
- const approvalData = {
443
- approvalId: this.pendingRequest.id,
444
- actionType: this.pendingRequest.type,
445
- actionDescription: this.pendingRequest.description,
446
- decidedBy: 'user',
447
- reason,
448
- };
449
- if (approved) {
450
- systemEventLogger.logApprovalGranted(approvalData);
451
- }
452
- else {
453
- systemEventLogger.logApprovalDenied(approvalData);
454
- }
455
- this.resolveApproval(response);
456
- this.pendingRequest = null;
457
- this.resolveApproval = null;
458
- }
459
- /**
460
- * Gets the currently pending approval request
461
- * @returns The pending request or null if none
462
- */
463
- getPendingRequest() {
464
- return this.pendingRequest;
465
- }
466
- /**
467
- * Checks if there is a pending approval request
468
- * @returns True if there is a pending request
469
- */
470
- hasPendingRequest() {
471
- return this.pendingRequest !== null;
472
- }
473
- /**
474
- * Cancels the pending approval request
475
- */
476
- cancelPendingRequest() {
477
- if (this.pendingRequest && this.resolveApproval) {
478
- const response = this.createResponse(this.pendingRequest, false, 'Cancelled by user');
479
- this.history.responses.push(response);
480
- // Log cancellation to system events
481
- const systemEventLogger = getSystemEventLogger();
482
- systemEventLogger.logApprovalDenied({
483
- approvalId: this.pendingRequest.id,
484
- actionType: this.pendingRequest.type,
485
- actionDescription: this.pendingRequest.description,
486
- decidedBy: 'user',
487
- reason: 'Cancelled by user',
488
- });
489
- this.resolveApproval(response);
490
- }
491
- this.pendingRequest = null;
492
- this.resolveApproval = null;
493
- }
494
- /**
495
- * Gets the approval history
496
- * @returns A copy of the approval history
497
- */
498
- getHistory() {
499
- return {
500
- requests: [...this.history.requests],
501
- responses: [...this.history.responses],
502
- };
503
- }
504
- /**
505
- * Gets statistics about approval history
506
- * @returns Object containing approval statistics
507
- */
508
- getStatistics() {
509
- const approved = this.history.responses.filter((r) => r.approved).length;
510
- const autoApproved = this.history.responses.filter((r) => r.approved && r.reason?.includes('Auto-approved')).length;
511
- return {
512
- totalRequests: this.history.requests.length,
513
- approved,
514
- rejected: this.history.responses.filter((r) => !r.approved).length,
515
- autoApproved,
516
- };
517
- }
518
- /**
519
- * Clears the approval history
520
- */
521
- clearHistory() {
522
- this.history = { requests: [], responses: [] };
523
- logger.debug('Approval history cleared');
524
- }
525
- // ==========================================================================
526
- // Plan Approval Methods
527
- // ==========================================================================
528
- /**
529
- * Requests approval for an implementation plan.
530
- * Emits 'plan-approval-required' event and waits for user response.
531
- *
532
- * @param plan - The implementation plan requiring approval
533
- * @param context - The gathered project context
534
- * @param complexity - The complexity classification result
535
- * @returns Promise resolving to the plan approval response
536
- */
537
- async requestPlanApproval(plan, context, complexity, completedTaskIds) {
538
- const request = {
539
- id: uuidv4(),
540
- timestamp: formatTimestamp(),
541
- plan,
542
- context,
543
- complexity,
544
- completedTaskIds,
545
- };
546
- this.pendingPlanApproval = request;
547
- logger.info('Plan approval requested', {
548
- planId: plan.id,
549
- taskCount: plan.tasks.length,
550
- totalComplexity: plan.totalComplexity,
551
- });
552
- // Log to system events
553
- const systemEventLogger = getSystemEventLogger();
554
- systemEventLogger.logPlanApprovalRequested(plan.id);
555
- // Emit event for UI to display the plan approval dialog
556
- this.eventEmitter.emit('plan-approval-required', { request });
557
- // Wait for user response
558
- return new Promise((resolve) => {
559
- this.resolvePlanApprovalPromise = resolve;
560
- });
561
- }
562
- /**
563
- * Resolves a pending plan approval request with the user's choice.
564
- *
565
- * @param choice - The user's approval choice
566
- * @param modifications - Optional modifications if choice is 'edit'
567
- * @param clarifications - Optional clarifications if choice is 'clarify'
568
- */
569
- resolvePlanApproval(choice, modifications, clarifications) {
570
- if (!this.pendingPlanApproval || !this.resolvePlanApprovalPromise) {
571
- logger.warn('No pending plan approval request to resolve');
572
- return;
573
- }
574
- const response = {
575
- requestId: this.pendingPlanApproval.id,
576
- approved: choice === 'approve' || choice === 'approve-compact' || choice === 'approve-auto-edits',
577
- timestamp: formatTimestamp(),
578
- choice,
579
- modifications,
580
- clarifications,
581
- };
582
- logger.info('Plan approval resolved', {
583
- planId: this.pendingPlanApproval.plan.id,
584
- choice,
585
- approved: response.approved,
586
- });
587
- // Log to system events
588
- const systemEventLogger = getSystemEventLogger();
589
- systemEventLogger.logPlanApprovalResolved(this.pendingPlanApproval.plan.id, choice);
590
- // Emit resolution event
591
- this.eventEmitter.emit('plan-approval-resolved', {
592
- requestId: this.pendingPlanApproval.id,
593
- choice,
594
- modifications,
595
- clarifications,
596
- });
597
- this.resolvePlanApprovalPromise(response);
598
- this.pendingPlanApproval = null;
599
- this.resolvePlanApprovalPromise = null;
600
- }
601
- /**
602
- * Gets the currently pending plan approval request.
603
- * @returns The pending plan approval request or null
604
- */
605
- getPendingPlanApproval() {
606
- return this.pendingPlanApproval;
607
- }
608
- /**
609
- * Checks if there is a pending plan approval request.
610
- * @returns True if there is a pending plan approval
611
- */
612
- hasPendingPlanApproval() {
613
- return this.pendingPlanApproval !== null;
614
- }
615
- /**
616
- * Cancels the pending plan approval request.
617
- */
618
- cancelPendingPlanApproval() {
619
- if (this.pendingPlanApproval && this.resolvePlanApprovalPromise) {
620
- const response = {
621
- requestId: this.pendingPlanApproval.id,
622
- approved: false,
623
- timestamp: formatTimestamp(),
624
- choice: 'reject',
625
- };
626
- logger.info('Plan approval cancelled', {
627
- planId: this.pendingPlanApproval.plan.id,
628
- });
629
- // Log to system events
630
- const systemEventLogger = getSystemEventLogger();
631
- systemEventLogger.logPlanApprovalResolved(this.pendingPlanApproval.plan.id, 'reject');
632
- this.resolvePlanApprovalPromise(response);
633
- }
634
- this.pendingPlanApproval = null;
635
- this.resolvePlanApprovalPromise = null;
636
- }
637
- // ==========================================================================
638
- // Clarification Wizard Methods
639
- // ==========================================================================
640
- /**
641
- * Requests clarification from the user via the wizard UI.
642
- * Used when complexity classifier determines CLARIFICATION mode.
643
- *
644
- * @param taskSummary - Brief description of the task
645
- * @param questions - The clarification questions to ask
646
- * @param reasoning - The reasoning from complexity classifier
647
- * @returns Promise resolving to the clarification wizard response
648
- */
649
- async requestClarification(taskSummary, questions, reasoning) {
650
- const request = {
651
- id: uuidv4(),
652
- timestamp: formatTimestamp(),
653
- taskSummary,
654
- questions,
655
- reasoning,
656
- };
657
- this.pendingClarificationWizard = request;
658
- logger.info('Clarification wizard requested', {
659
- requestId: request.id,
660
- questionCount: questions.length,
661
- });
662
- // Emit event for UI to display the clarification wizard
663
- this.eventEmitter.emit('clarification-required', { request });
664
- // Wait for user response
665
- return new Promise((resolve) => {
666
- this.resolveClarificationWizardPromise = resolve;
667
- });
668
- }
669
- /**
670
- * Resolves a pending clarification wizard request with the user's answers.
671
- *
672
- * @param answers - The user's answers to questions (null if cancelled)
673
- */
674
- resolveClarificationWizard(answers) {
675
- if (!this.pendingClarificationWizard || !this.resolveClarificationWizardPromise) {
676
- logger.warn('No pending clarification wizard request to resolve');
677
- return;
678
- }
679
- const completed = answers !== null;
680
- const request = this.pendingClarificationWizard;
681
- // Build ClarificationResult if completed
682
- let result;
683
- if (completed && answers) {
684
- const qaRecords = request.questions.map((question, index) => ({
685
- question,
686
- answer: answers[index] || {
687
- questionId: question.id,
688
- answer: '',
689
- answeredAt: formatTimestamp(),
690
- },
691
- }));
692
- // Generate decision summary from answers
693
- const decisionParts = answers.map((a, i) => {
694
- const q = request.questions[i];
695
- const answerText = Array.isArray(a.answer) ? a.answer.join(', ') : a.answer;
696
- return `${q.category}: ${answerText}`;
697
- });
698
- result = {
699
- qaRecords,
700
- completedAt: formatTimestamp(),
701
- duration: 0, // Could track actual duration if needed
702
- decisionSummary: decisionParts.join('; '),
703
- };
704
- }
705
- const response = {
706
- requestId: request.id,
707
- completed,
708
- timestamp: formatTimestamp(),
709
- answers: answers || undefined,
710
- result,
711
- };
712
- logger.info('Clarification wizard resolved', {
713
- requestId: request.id,
714
- completed,
715
- answerCount: answers?.length || 0,
716
- });
717
- this.resolveClarificationWizardPromise(response);
718
- this.pendingClarificationWizard = null;
719
- this.resolveClarificationWizardPromise = null;
720
- }
721
- /**
722
- * Gets the currently pending clarification wizard request.
723
- * @returns The pending request or null
724
- */
725
- getPendingClarificationWizard() {
726
- return this.pendingClarificationWizard;
727
- }
728
- /**
729
- * Checks if there is a pending clarification wizard request.
730
- * @returns True if there is a pending request
731
- */
732
- hasPendingClarificationWizard() {
733
- return this.pendingClarificationWizard !== null;
734
- }
735
- /**
736
- * Cancels the pending clarification wizard request.
737
- */
738
- cancelPendingClarificationWizard() {
739
- if (this.pendingClarificationWizard && this.resolveClarificationWizardPromise) {
740
- const response = {
741
- requestId: this.pendingClarificationWizard.id,
742
- completed: false,
743
- timestamp: formatTimestamp(),
744
- };
745
- logger.info('Clarification wizard cancelled', {
746
- requestId: this.pendingClarificationWizard.id,
747
- });
748
- this.resolveClarificationWizardPromise(response);
749
- }
750
- this.pendingClarificationWizard = null;
751
- this.resolveClarificationWizardPromise = null;
752
- }
753
- /**
754
- * Gets a specific approval request by ID
755
- * @param requestId - The ID of the request to find
756
- * @returns The request or undefined if not found
757
- */
758
- getRequest(requestId) {
759
- return this.history.requests.find((r) => r.id === requestId);
760
- }
761
- /**
762
- * Gets the response for a specific request
763
- * @param requestId - The ID of the request
764
- * @returns The response or undefined if not found
765
- */
766
- getResponse(requestId) {
767
- return this.history.responses.find((r) => r.requestId === requestId);
768
- }
769
- /**
770
- * Waits for user approval by emitting an event and returning a promise
771
- * @param request - The approval request
772
- * @returns Promise resolving to the approval response
773
- */
774
- async waitForUserApproval(request) {
775
- // Emit event for UI to handle
776
- this.eventEmitter.emit('approval-required', { request });
777
- return new Promise((resolve) => {
778
- this.resolveApproval = resolve;
779
- });
780
- }
781
- /**
782
- * Determines if a request can be auto-approved based on configuration
783
- * @param request - The approval request to evaluate
784
- * @returns True if the request can be auto-approved
785
- */
786
- canAutoApprove(request) {
787
- // Session auto-approval takes precedence (user selected [A] in approval dialog)
788
- // Only skip critical operations for safety
789
- if (this.sessionAutoApprovalEnabled) {
790
- if (request.riskLevel === 'critical') {
791
- logger.debug('Session auto-approval: Skipping critical operation, requiring manual approval');
792
- return false;
793
- }
794
- logger.debug('Session auto-approval: Auto-approving operation');
795
- return true;
796
- }
797
- // File edits auto-approval: auto-approve file creates, modifies, and shell commands
798
- if (this.fileEditsAutoApprovalEnabled) {
799
- const autoApprovedOperations = ['file_create', 'file_modify', 'shell_command'];
800
- if (autoApprovedOperations.includes(request.type)) {
801
- // Still require manual approval for high-risk/critical shell commands (e.g., rm, delete)
802
- if (request.type === 'shell_command' && (request.riskLevel === 'high' || request.riskLevel === 'critical')) {
803
- logger.debug('File edits auto-approval: Skipping high-risk shell command, requiring manual approval');
804
- }
805
- else {
806
- logger.debug('File edits auto-approval: Auto-approving operation');
807
- return true;
808
- }
809
- }
810
- }
811
- // Check if this is a shell command with an approved prefix
812
- if (request.type === 'shell_command' && request.details.command) {
813
- if (this.isCommandPrefixApproved(request.details.command)) {
814
- const prefix = this.getCommandPrefix(request.details.command);
815
- logger.debug(`Command prefix '${prefix}' is approved, auto-approving`);
816
- return true;
817
- }
818
- }
819
- // Never auto-approve high-risk or critical operations
820
- if (request.riskLevel === 'high' || request.riskLevel === 'critical') {
821
- return false;
822
- }
823
- // Never auto-approve in strict mode
824
- if (this.mode === ApprovalMode.STRICT) {
825
- return false;
826
- }
827
- // Check file count threshold
828
- if (request.details.affectedFiles !== undefined &&
829
- request.details.affectedFiles > this.maxAutoApproveFiles) {
830
- return false;
831
- }
832
- // Check line count threshold
833
- const totalLines = (request.details.linesAdded || 0) + (request.details.linesRemoved || 0);
834
- if (totalLines > this.maxAutoApproveLines) {
835
- return false;
836
- }
837
- // Check if any file matches require-approval patterns
838
- if (request.details.filePaths) {
839
- for (const filePath of request.details.filePaths) {
840
- if (matchesPattern(filePath, this.requireApprovalPatterns)) {
841
- return false;
842
- }
843
- }
844
- }
845
- // SMART mode: auto-approve DIRECT complexity tasks with low risk and high confidence
846
- if (this.mode === ApprovalMode.SMART) {
847
- return this.canSmartAutoApprove(request);
848
- }
849
- // In manual mode, don't auto-approve unless explicitly configured
850
- if (this.mode === ApprovalMode.MANUAL) {
851
- return false;
852
- }
853
- return true;
854
- }
855
- /**
856
- * Determines if a request can be auto-approved in SMART mode.
857
- * SMART mode auto-approves when:
858
- * - Complexity mode is DIRECT
859
- * - Confidence is above threshold
860
- * - Risk level is low
861
- * - Operation is simple (file create, small modifications)
862
- *
863
- * @param request - The approval request to evaluate
864
- * @returns True if SMART mode should auto-approve
865
- */
866
- canSmartAutoApprove(request) {
867
- // Get complexity context from the request details or the stored context
868
- const complexityMode = request.details.complexityMode || this.currentComplexityMode;
869
- const complexityConfidence = request.details.complexityConfidence ?? this.currentComplexityConfidence;
870
- // If no complexity context available, fall back to requiring approval
871
- if (!complexityMode) {
872
- logger.debug('SMART mode: No complexity context available, requiring approval');
873
- return false;
874
- }
875
- // Only auto-approve DIRECT mode tasks
876
- if (complexityMode !== 'direct') {
877
- logger.debug(`SMART mode: Complexity mode is ${complexityMode}, requiring approval`);
878
- return false;
879
- }
880
- // Check confidence threshold
881
- if (complexityConfidence < this.smartModeConfidenceThreshold) {
882
- logger.debug(`SMART mode: Confidence ${complexityConfidence} below threshold ${this.smartModeConfidenceThreshold}, requiring approval`);
883
- return false;
884
- }
885
- // Only auto-approve low-risk operations
886
- if (request.riskLevel !== 'low') {
887
- logger.debug(`SMART mode: Risk level is ${request.riskLevel}, requiring approval`);
888
- return false;
889
- }
890
- // Additional safety: only auto-approve file creation and small modifications
891
- const safeOperations = ['file_create', 'file_modify', 'file_rename'];
892
- if (!safeOperations.includes(request.type)) {
893
- logger.debug(`SMART mode: Operation type ${request.type} not safe for auto-approval`);
894
- return false;
895
- }
896
- logger.info(`SMART mode: Auto-approving ${request.type} (complexity: ${complexityMode}, ` +
897
- `confidence: ${complexityConfidence}%, risk: ${request.riskLevel})`);
898
- return true;
899
- }
900
- /**
901
- * Determines if a request should require explicit approval in auto mode
902
- * @param request - The approval request to evaluate
903
- * @returns True if the request should require approval
904
- */
905
- shouldRequireApproval(request) {
906
- // Check if any file matches require-approval patterns
907
- if (request.details.filePaths) {
908
- for (const filePath of request.details.filePaths) {
909
- if (matchesPattern(filePath, this.requireApprovalPatterns)) {
910
- return true;
911
- }
912
- // If not in auto-approve patterns and we have patterns configured, require approval
913
- if (this.autoApprovePatterns.length > 0 &&
914
- !matchesPattern(filePath, this.autoApprovePatterns)) {
915
- return true;
916
- }
917
- }
918
- }
919
- // Medium risk operations should require approval
920
- if (request.riskLevel === 'medium') {
921
- return true;
922
- }
923
- // Shell commands always require approval unless explicitly auto-approved
924
- if (request.type === 'shell_command') {
925
- return true;
926
- }
927
- // Git operations that push changes require approval
928
- if (request.type === 'git_push') {
929
- return true;
930
- }
931
- return false;
932
- }
933
- /**
934
- * Assesses the risk level of an operation
935
- * @param type - The type of operation
936
- * @param details - The operation details
937
- * @returns The assessed risk level
938
- */
939
- assessRiskLevel(type, details) {
940
- // Critical operations
941
- if (type === 'git_push') {
942
- return 'critical';
943
- }
944
- // High-risk operations
945
- if (type === 'file_delete') {
946
- return 'high';
947
- }
948
- // Multi-file operations scale with file count
949
- if (type === 'multi_file_operation') {
950
- const fileCount = details.affectedFiles || 0;
951
- if (fileCount > 10)
952
- return 'high';
953
- if (fileCount > 5)
954
- return 'medium';
955
- }
956
- // Shell commands are medium risk by default
957
- if (type === 'shell_command') {
958
- // Check for potentially dangerous commands
959
- const command = details.command?.toLowerCase() || '';
960
- if (command.includes('rm ') ||
961
- command.includes('delete') ||
962
- command.includes('drop') ||
963
- command.includes('truncate')) {
964
- return 'high';
965
- }
966
- return 'medium';
967
- }
968
- // Git commits are medium risk
969
- if (type === 'git_commit') {
970
- return 'medium';
971
- }
972
- // File modifications scale with change size
973
- if (type === 'file_modify') {
974
- const totalLines = (details.linesAdded || 0) + (details.linesRemoved || 0);
975
- if (totalLines > 200)
976
- return 'medium';
977
- if (totalLines > 100)
978
- return 'low';
979
- }
980
- // File creation and rename are generally low risk
981
- if (type === 'file_create' || type === 'file_rename') {
982
- return 'low';
983
- }
984
- return 'low';
985
- }
986
- /**
987
- * Estimates the impact of an operation for display
988
- * @param type - The type of operation
989
- * @param details - The operation details
990
- * @returns A human-readable impact description
991
- */
992
- estimateImpact(_type, details) {
993
- const parts = [];
994
- if (details.affectedFiles !== undefined) {
995
- parts.push(`${details.affectedFiles} file${details.affectedFiles === 1 ? '' : 's'}`);
996
- }
997
- if (details.linesAdded !== undefined && details.linesAdded > 0) {
998
- parts.push(`+${details.linesAdded} line${details.linesAdded === 1 ? '' : 's'}`);
999
- }
1000
- if (details.linesRemoved !== undefined && details.linesRemoved > 0) {
1001
- parts.push(`-${details.linesRemoved} line${details.linesRemoved === 1 ? '' : 's'}`);
1002
- }
1003
- if (details.command) {
1004
- const truncatedCommand = details.command.length > 50
1005
- ? details.command.substring(0, 47) + '...'
1006
- : details.command;
1007
- parts.push(`Command: ${truncatedCommand}`);
1008
- }
1009
- if (parts.length === 0) {
1010
- return 'Minimal impact';
1011
- }
1012
- return parts.join(', ');
1013
- }
1014
- /**
1015
- * Creates an approval response object
1016
- * @param request - The original request
1017
- * @param approved - Whether the request was approved
1018
- * @param reason - Optional reason for the decision
1019
- * @returns The approval response
1020
- */
1021
- createResponse(request, approved, reason) {
1022
- return {
1023
- requestId: request.id,
1024
- approved,
1025
- timestamp: formatTimestamp(),
1026
- mode: this.mode,
1027
- reason,
1028
- };
1029
- }
1030
- }
1031
- // Singleton instance
1032
- let approvalManagerInstance = null;
1033
- /**
1034
- * Gets the singleton ApprovalManager instance
1035
- * @returns The ApprovalManager instance
1036
- */
1037
- export function getApprovalManager() {
1038
- if (!approvalManagerInstance) {
1039
- approvalManagerInstance = new ApprovalManager();
1040
- }
1041
- return approvalManagerInstance;
1042
- }
1043
- export { ApprovalManager };
1044
- //# sourceMappingURL=approval-manager.js.map