@compilr-dev/cli 0.5.0 → 0.5.1

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 (591) hide show
  1. package/README.md +236 -68
  2. package/dist/.tsbuildinfo.app +1 -0
  3. package/dist/.tsbuildinfo.data +1 -0
  4. package/dist/.tsbuildinfo.domain +1 -0
  5. package/dist/.tsbuildinfo.foundation +1 -0
  6. package/dist/agent.d.ts +61 -4
  7. package/dist/agent.js +241 -245
  8. package/dist/anchors/index.d.ts +1 -1
  9. package/dist/anchors/index.js +1 -1
  10. package/dist/anchors/project-anchors.d.ts +2 -2
  11. package/dist/anchors/project-anchors.js +1 -1
  12. package/dist/auth/api-client.d.ts +124 -0
  13. package/dist/auth/api-client.js +261 -0
  14. package/dist/auth/index.d.ts +172 -0
  15. package/dist/auth/index.js +545 -0
  16. package/dist/auth/storage.d.ts +52 -0
  17. package/dist/auth/storage.js +118 -0
  18. package/dist/changelog/index.d.ts +16 -0
  19. package/dist/changelog/index.js +24 -0
  20. package/dist/changelog/releases.d.ts +17 -0
  21. package/dist/changelog/releases.js +63 -0
  22. package/dist/commands-v2/handlers/auth.d.ts +10 -0
  23. package/dist/commands-v2/handlers/auth.js +118 -0
  24. package/dist/commands-v2/handlers/background.d.ts +14 -0
  25. package/dist/commands-v2/handlers/background.js +276 -0
  26. package/dist/commands-v2/handlers/context.js +266 -81
  27. package/dist/commands-v2/handlers/core.d.ts +1 -0
  28. package/dist/commands-v2/handlers/core.js +133 -8
  29. package/dist/commands-v2/handlers/debug.js +18 -0
  30. package/dist/commands-v2/handlers/delegations.d.ts +8 -0
  31. package/dist/commands-v2/handlers/delegations.js +29 -0
  32. package/dist/commands-v2/handlers/files.d.ts +8 -0
  33. package/dist/commands-v2/handlers/files.js +162 -0
  34. package/dist/commands-v2/handlers/filter.d.ts +9 -0
  35. package/dist/commands-v2/handlers/filter.js +130 -0
  36. package/dist/commands-v2/handlers/games.d.ts +7 -0
  37. package/dist/commands-v2/handlers/games.js +57 -0
  38. package/dist/commands-v2/handlers/index.d.ts +13 -0
  39. package/dist/commands-v2/handlers/index.js +39 -0
  40. package/dist/commands-v2/handlers/mcp.d.ts +8 -0
  41. package/dist/commands-v2/handlers/mcp.js +39 -0
  42. package/dist/commands-v2/handlers/notifications.d.ts +9 -0
  43. package/dist/commands-v2/handlers/notifications.js +34 -0
  44. package/dist/commands-v2/handlers/project.js +244 -23
  45. package/dist/commands-v2/handlers/reset.d.ts +11 -0
  46. package/dist/commands-v2/handlers/reset.js +118 -0
  47. package/dist/commands-v2/handlers/session.d.ts +161 -0
  48. package/dist/commands-v2/handlers/session.js +805 -0
  49. package/dist/commands-v2/handlers/settings.d.ts +2 -0
  50. package/dist/commands-v2/handlers/settings.js +217 -35
  51. package/dist/commands-v2/handlers/tasks.d.ts +5 -0
  52. package/dist/commands-v2/handlers/tasks.js +36 -0
  53. package/dist/commands-v2/handlers/team.d.ts +9 -0
  54. package/dist/commands-v2/handlers/team.js +549 -0
  55. package/dist/commands-v2/handlers/terminals.d.ts +9 -0
  56. package/dist/commands-v2/handlers/terminals.js +34 -0
  57. package/dist/commands-v2/index.d.ts +3 -2
  58. package/dist/commands-v2/index.js +4 -1
  59. package/dist/commands-v2/registry.d.ts +15 -0
  60. package/dist/commands-v2/registry.js +34 -0
  61. package/dist/commands-v2/types.d.ts +81 -3
  62. package/dist/commands.js +13 -0
  63. package/dist/compilr-diff-companion.vsix +0 -0
  64. package/dist/db/index.js +98 -4
  65. package/dist/db/repositories/document-repository.d.ts +2 -0
  66. package/dist/db/repositories/document-repository.js +5 -1
  67. package/dist/db/repositories/index.d.ts +2 -0
  68. package/dist/db/repositories/index.js +1 -0
  69. package/dist/db/repositories/plan-repository.d.ts +101 -0
  70. package/dist/db/repositories/plan-repository.js +275 -0
  71. package/dist/db/repositories/project-repository.d.ts +6 -0
  72. package/dist/db/repositories/project-repository.js +41 -0
  73. package/dist/db/repositories/work-item-repository.d.ts +15 -0
  74. package/dist/db/repositories/work-item-repository.js +69 -4
  75. package/dist/db/schema.d.ts +40 -3
  76. package/dist/db/schema.js +66 -3
  77. package/dist/episodes/index.d.ts +20 -0
  78. package/dist/episodes/index.js +27 -0
  79. package/dist/episodes/recorder.d.ts +51 -0
  80. package/dist/episodes/recorder.js +195 -0
  81. package/dist/episodes/significant-work.d.ts +21 -0
  82. package/dist/episodes/significant-work.js +56 -0
  83. package/dist/episodes/store.d.ts +38 -0
  84. package/dist/episodes/store.js +199 -0
  85. package/dist/episodes/types.d.ts +35 -0
  86. package/dist/episodes/types.js +6 -0
  87. package/dist/episodes/work-at-risk.d.ts +12 -0
  88. package/dist/episodes/work-at-risk.js +38 -0
  89. package/dist/episodes/work-summary-anchor.d.ts +23 -0
  90. package/dist/episodes/work-summary-anchor.js +73 -0
  91. package/dist/games/coins.d.ts +66 -0
  92. package/dist/games/coins.js +165 -0
  93. package/dist/games/game-base.d.ts +84 -0
  94. package/dist/games/game-base.js +204 -0
  95. package/dist/games/index.d.ts +16 -0
  96. package/dist/games/index.js +49 -0
  97. package/dist/games/scores.d.ts +69 -0
  98. package/dist/games/scores.js +191 -0
  99. package/dist/games/tetris/board.d.ts +59 -0
  100. package/dist/games/tetris/board.js +170 -0
  101. package/dist/games/tetris/index.d.ts +109 -0
  102. package/dist/games/tetris/index.js +610 -0
  103. package/dist/games/tetris/pieces.d.ts +44 -0
  104. package/dist/games/tetris/pieces.js +271 -0
  105. package/dist/games/tetris/renderer.d.ts +26 -0
  106. package/dist/games/tetris/renderer.js +77 -0
  107. package/dist/guide/guide-content.d.ts +23 -0
  108. package/dist/guide/guide-content.js +196 -0
  109. package/dist/guide/index.d.ts +8 -0
  110. package/dist/guide/index.js +7 -0
  111. package/dist/guide/shared-content.d.ts +37 -0
  112. package/dist/guide/shared-content.js +1272 -0
  113. package/dist/guide/tutorial-helpers.d.ts +57 -0
  114. package/dist/guide/tutorial-helpers.js +147 -0
  115. package/dist/handlers/ask-user-handlers.d.ts +32 -0
  116. package/dist/handlers/ask-user-handlers.js +104 -0
  117. package/dist/handlers/delegation-handlers.d.ts +34 -0
  118. package/dist/handlers/delegation-handlers.js +291 -0
  119. package/dist/handlers/permission-handler.d.ts +30 -0
  120. package/dist/handlers/permission-handler.js +205 -0
  121. package/dist/index.d.ts +11 -1
  122. package/dist/index.js +448 -271
  123. package/dist/input-handlers/memory-handler.d.ts +1 -1
  124. package/dist/input-handlers/memory-handler.js +2 -1
  125. package/dist/models/index.d.ts +10 -0
  126. package/dist/models/index.js +12 -0
  127. package/dist/models/model-registry.d.ts +38 -0
  128. package/dist/models/model-registry.js +69 -0
  129. package/dist/models/model-tiers.d.ts +28 -0
  130. package/dist/models/model-tiers.js +71 -0
  131. package/dist/models/model-validation.d.ts +25 -0
  132. package/dist/models/model-validation.js +291 -0
  133. package/dist/models/ollama-models.d.ts +73 -0
  134. package/dist/models/ollama-models.js +178 -0
  135. package/dist/models/provider-types.d.ts +6 -0
  136. package/dist/models/provider-types.js +1 -0
  137. package/dist/models/providers.d.ts +35 -0
  138. package/dist/models/providers.js +58 -0
  139. package/dist/models/types.d.ts +4 -0
  140. package/dist/models/types.js +4 -0
  141. package/dist/multi-agent/activity.d.ts +21 -0
  142. package/dist/multi-agent/activity.js +34 -0
  143. package/dist/multi-agent/agent-selection.d.ts +55 -0
  144. package/dist/multi-agent/agent-selection.js +90 -0
  145. package/dist/multi-agent/artifacts.d.ts +197 -0
  146. package/dist/multi-agent/artifacts.js +379 -0
  147. package/dist/multi-agent/checkpointer.d.ts +138 -0
  148. package/dist/multi-agent/checkpointer.js +471 -0
  149. package/dist/multi-agent/collision-utils.d.ts +16 -0
  150. package/dist/multi-agent/collision-utils.js +28 -0
  151. package/dist/multi-agent/context-resolver.d.ts +97 -0
  152. package/dist/multi-agent/context-resolver.js +316 -0
  153. package/dist/multi-agent/custom-agents.d.ts +83 -0
  154. package/dist/multi-agent/custom-agents.js +227 -0
  155. package/dist/multi-agent/delegation-tracker.d.ts +157 -0
  156. package/dist/multi-agent/delegation-tracker.js +243 -0
  157. package/dist/multi-agent/file-lock-hook.d.ts +29 -0
  158. package/dist/multi-agent/file-lock-hook.js +97 -0
  159. package/dist/multi-agent/file-locks.d.ts +58 -0
  160. package/dist/multi-agent/file-locks.js +194 -0
  161. package/dist/multi-agent/index.d.ts +24 -0
  162. package/dist/multi-agent/index.js +30 -0
  163. package/dist/multi-agent/mention-parser.d.ts +64 -0
  164. package/dist/multi-agent/mention-parser.js +146 -0
  165. package/dist/multi-agent/notification-manager.d.ts +84 -0
  166. package/dist/multi-agent/notification-manager.js +224 -0
  167. package/dist/multi-agent/pending-requests.d.ts +122 -0
  168. package/dist/multi-agent/pending-requests.js +155 -0
  169. package/dist/multi-agent/session-registry.d.ts +139 -0
  170. package/dist/multi-agent/session-registry.js +514 -0
  171. package/dist/multi-agent/shared-context.d.ts +293 -0
  172. package/dist/multi-agent/shared-context.js +671 -0
  173. package/dist/multi-agent/skill-requirements.d.ts +66 -0
  174. package/dist/multi-agent/skill-requirements.js +178 -0
  175. package/dist/multi-agent/task-assignment.d.ts +69 -0
  176. package/dist/multi-agent/task-assignment.js +123 -0
  177. package/dist/multi-agent/task-suggestion.d.ts +31 -0
  178. package/dist/multi-agent/task-suggestion.js +72 -0
  179. package/dist/multi-agent/team-agent.d.ts +201 -0
  180. package/dist/multi-agent/team-agent.js +488 -0
  181. package/dist/multi-agent/team.d.ts +286 -0
  182. package/dist/multi-agent/team.js +610 -0
  183. package/dist/multi-agent/tool-config.d.ts +110 -0
  184. package/dist/multi-agent/tool-config.js +661 -0
  185. package/dist/multi-agent/types.d.ts +211 -0
  186. package/dist/multi-agent/types.js +617 -0
  187. package/dist/prompts/plan-mode-prompt.d.ts +11 -0
  188. package/dist/prompts/plan-mode-prompt.js +95 -0
  189. package/dist/repl-helpers.js +3 -2
  190. package/dist/repl-v2.d.ts +401 -2
  191. package/dist/repl-v2.js +2577 -65
  192. package/dist/session/index.d.ts +6 -0
  193. package/dist/session/index.js +6 -0
  194. package/dist/session/project-session-manager.d.ts +158 -0
  195. package/dist/session/project-session-manager.js +650 -0
  196. package/dist/settings/index.d.ts +133 -13
  197. package/dist/settings/index.js +329 -24
  198. package/dist/settings/mcp-config.d.ts +76 -0
  199. package/dist/settings/mcp-config.js +143 -0
  200. package/dist/settings/paths.d.ts +4 -0
  201. package/dist/settings/paths.js +6 -0
  202. package/dist/shared-handlers.d.ts +62 -0
  203. package/dist/shared-handlers.js +48 -0
  204. package/dist/system-prompt/builder.d.ts +5 -0
  205. package/dist/system-prompt/builder.js +4 -0
  206. package/dist/system-prompt/index.d.ts +18 -0
  207. package/dist/system-prompt/index.js +18 -0
  208. package/dist/system-prompt/modules.d.ts +5 -0
  209. package/dist/system-prompt/modules.js +4 -0
  210. package/dist/tabbed-menu.js +2 -1
  211. package/dist/templates/compilr-md-import.d.ts +16 -0
  212. package/dist/templates/compilr-md-import.js +241 -0
  213. package/dist/templates/compilr-md.js +10 -61
  214. package/dist/templates/config-json.d.ts +1 -25
  215. package/dist/templates/index.d.ts +2 -0
  216. package/dist/templates/index.js +34 -73
  217. package/dist/tool-names.d.ts +108 -0
  218. package/dist/tool-names.js +227 -0
  219. package/dist/tools/anchor-tools.d.ts +4 -4
  220. package/dist/tools/anchor-tools.js +1 -1
  221. package/dist/tools/artifact-tools.d.ts +42 -0
  222. package/dist/tools/artifact-tools.js +328 -0
  223. package/dist/tools/ask-user-simple.d.ts +1 -1
  224. package/dist/tools/ask-user-simple.js +2 -1
  225. package/dist/tools/ask-user.d.ts +1 -1
  226. package/dist/tools/ask-user.js +2 -1
  227. package/dist/tools/backlog-wrappers.d.ts +5 -3
  228. package/dist/tools/backlog-wrappers.js +16 -1
  229. package/dist/tools/backlog.d.ts +2 -2
  230. package/dist/tools/backlog.js +1 -1
  231. package/dist/tools/db-tools.d.ts +8 -61
  232. package/dist/tools/db-tools.js +8 -13
  233. package/dist/tools/delegate-background.d.ts +27 -0
  234. package/dist/tools/delegate-background.js +115 -0
  235. package/dist/tools/delegate.d.ts +22 -0
  236. package/dist/tools/delegate.js +97 -0
  237. package/dist/tools/delegation-status.d.ts +16 -0
  238. package/dist/tools/delegation-status.js +128 -0
  239. package/dist/tools/document-db.d.ts +5 -5
  240. package/dist/tools/document-db.js +1 -1
  241. package/dist/tools/guide-tool.d.ts +12 -0
  242. package/dist/tools/guide-tool.js +59 -0
  243. package/dist/tools/handoff.d.ts +25 -0
  244. package/dist/tools/handoff.js +99 -0
  245. package/dist/tools/meta-tools.d.ts +26 -0
  246. package/dist/tools/meta-tools.js +47 -0
  247. package/dist/tools/plan-tools.d.ts +54 -0
  248. package/dist/tools/plan-tools.js +338 -0
  249. package/dist/tools/platform-adapter.d.ts +29 -0
  250. package/dist/tools/platform-adapter.js +394 -0
  251. package/dist/tools/project-db.d.ts +5 -73
  252. package/dist/tools/project-db.js +5 -336
  253. package/dist/tools/recall-work-tool.d.ts +18 -0
  254. package/dist/tools/recall-work-tool.js +82 -0
  255. package/dist/tools/workitem-db.d.ts +43 -11
  256. package/dist/tools/workitem-db.js +186 -5
  257. package/dist/tools.d.ts +67 -2
  258. package/dist/tools.js +237 -47
  259. package/dist/ui/autocomplete-controller.d.ts +42 -0
  260. package/dist/ui/autocomplete-controller.js +384 -0
  261. package/dist/ui/base/index.d.ts +1 -1
  262. package/dist/ui/base/index.js +1 -1
  263. package/dist/ui/base/overlay-base-v2.d.ts +10 -0
  264. package/dist/ui/base/overlay-base-v2.js +14 -0
  265. package/dist/ui/base/render-utils.d.ts +19 -0
  266. package/dist/ui/base/render-utils.js +25 -0
  267. package/dist/ui/base/tabbed-list-overlay-v2.d.ts +16 -1
  268. package/dist/ui/base/tabbed-list-overlay-v2.js +19 -1
  269. package/dist/ui/constants/labels.d.ts +14 -0
  270. package/dist/ui/constants/labels.js +51 -0
  271. package/dist/ui/conversation-store.d.ts +55 -0
  272. package/dist/ui/conversation-store.js +107 -0
  273. package/dist/ui/conversation.js +11 -13
  274. package/dist/ui/diff.d.ts +7 -1
  275. package/dist/ui/diff.js +85 -48
  276. package/dist/ui/ephemeral.js +3 -9
  277. package/dist/ui/file-autocomplete.d.ts +24 -0
  278. package/dist/ui/file-autocomplete.js +56 -0
  279. package/dist/ui/footer-renderer.d.ts +69 -0
  280. package/dist/ui/footer-renderer.js +431 -0
  281. package/dist/ui/footer.d.ts +74 -7
  282. package/dist/ui/footer.js +173 -16
  283. package/dist/ui/input-controller.d.ts +51 -0
  284. package/dist/ui/input-controller.js +176 -0
  285. package/dist/ui/input-prompt.d.ts +19 -0
  286. package/dist/ui/input-prompt.js +206 -14
  287. package/dist/ui/keyboard-handler.d.ts +57 -0
  288. package/dist/ui/keyboard-handler.js +557 -0
  289. package/dist/ui/live-region-facade.d.ts +42 -0
  290. package/dist/ui/live-region-facade.js +205 -0
  291. package/dist/ui/live-region.d.ts +0 -4
  292. package/dist/ui/live-region.js +6 -14
  293. package/dist/ui/mascot/renderer.d.ts +1 -1
  294. package/dist/ui/mascot/renderer.js +37 -2
  295. package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
  296. package/dist/ui/overlay/data/tutorial-content.js +9 -0
  297. package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
  298. package/dist/ui/overlay/data/tutorial-registry.js +116 -0
  299. package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
  300. package/dist/ui/overlay/data/tutorial-types.js +6 -0
  301. package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
  302. package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
  303. package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
  304. package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
  305. package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
  306. package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
  307. package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
  308. package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
  309. package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
  310. package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
  311. package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
  312. package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
  313. package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
  314. package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
  315. package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
  316. package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
  317. package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
  318. package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
  319. package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
  320. package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
  321. package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
  322. package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
  323. package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
  324. package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
  325. package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
  326. package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
  327. package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
  328. package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
  329. package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
  330. package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
  331. package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
  332. package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
  333. package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
  334. package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
  335. package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
  336. package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
  337. package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
  338. package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
  339. package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
  340. package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
  341. package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
  342. package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
  343. package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
  344. package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
  345. package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
  346. package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
  347. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
  348. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
  349. package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
  350. package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
  351. package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
  352. package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
  353. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
  354. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
  355. package/dist/ui/overlay/impl/agents-overlay-v2.js +6 -17
  356. package/dist/ui/overlay/impl/anchors-overlay-v2.js +30 -64
  357. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
  358. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
  359. package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
  360. package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
  361. package/dist/ui/overlay/impl/ask-user-overlay-v2.js +2 -5
  362. package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
  363. package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
  364. package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +4 -1
  365. package/dist/ui/overlay/impl/backlog-overlay-v2.js +55 -16
  366. package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
  367. package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
  368. package/dist/ui/overlay/impl/commands-overlay-v2.js +4 -6
  369. package/dist/ui/overlay/impl/config-overlay-v2.d.ts +12 -1
  370. package/dist/ui/overlay/impl/config-overlay-v2.js +164 -100
  371. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
  372. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
  373. package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +2 -0
  374. package/dist/ui/overlay/impl/dashboard-overlay-v2.js +26 -3
  375. package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
  376. package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
  377. package/dist/ui/overlay/impl/docs-overlay-v2.js +12 -9
  378. package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +7 -0
  379. package/dist/ui/overlay/impl/document-detail-overlay-v2.js +119 -78
  380. package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
  381. package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
  382. package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
  383. package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
  384. package/dist/ui/overlay/impl/help-overlay-v2.d.ts +26 -3
  385. package/dist/ui/overlay/impl/help-overlay-v2.js +20 -42
  386. package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
  387. package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
  388. package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
  389. package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
  390. package/dist/ui/overlay/impl/model-overlay-v2.d.ts +57 -13
  391. package/dist/ui/overlay/impl/model-overlay-v2.js +1086 -61
  392. package/dist/ui/overlay/impl/new-overlay-v2.d.ts +37 -6
  393. package/dist/ui/overlay/impl/new-overlay-v2.js +715 -65
  394. package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
  395. package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
  396. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
  397. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
  398. package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
  399. package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
  400. package/dist/ui/overlay/impl/permission-overlay-v2.js +5 -5
  401. package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
  402. package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
  403. package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
  404. package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
  405. package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
  406. package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
  407. package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +1 -0
  408. package/dist/ui/overlay/impl/projects-overlay-v2.js +278 -44
  409. package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
  410. package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
  411. package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
  412. package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
  413. package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
  414. package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
  415. package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
  416. package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
  417. package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
  418. package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
  419. package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
  420. package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
  421. package/dist/ui/overlay/impl/tools-overlay-v2.js +3 -7
  422. package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +30 -16
  423. package/dist/ui/overlay/impl/tutorial-overlay-v2.js +133 -956
  424. package/dist/ui/overlay/impl/workflow-overlay-v2.js +5 -1
  425. package/dist/ui/overlay/index.d.ts +20 -1
  426. package/dist/ui/overlay/index.js +19 -0
  427. package/dist/ui/overlay/types.d.ts +5 -0
  428. package/dist/ui/overlay-manager.d.ts +43 -0
  429. package/dist/ui/overlay-manager.js +238 -0
  430. package/dist/ui/overlays.js +4 -16
  431. package/dist/ui/permission-overlay.js +6 -5
  432. package/dist/ui/status-bar-controller.d.ts +33 -0
  433. package/dist/ui/status-bar-controller.js +99 -0
  434. package/dist/ui/subagent-renderer.js +3 -19
  435. package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
  436. package/dist/ui/terminal-autocomplete-utils.js +83 -0
  437. package/dist/ui/terminal-line-builders.d.ts +17 -0
  438. package/dist/ui/terminal-line-builders.js +42 -0
  439. package/dist/ui/terminal-render-item.d.ts +16 -0
  440. package/dist/ui/terminal-render-item.js +267 -0
  441. package/dist/ui/terminal-renderer.d.ts +7 -8
  442. package/dist/ui/terminal-renderer.js +7 -8
  443. package/dist/ui/terminal-types.d.ts +179 -0
  444. package/dist/ui/terminal-types.js +34 -0
  445. package/dist/ui/terminal-ui.d.ts +144 -276
  446. package/dist/ui/terminal-ui.js +384 -1861
  447. package/dist/ui/todo-zone.d.ts +19 -1
  448. package/dist/ui/todo-zone.js +71 -13
  449. package/dist/ui/tool-formatters.js +512 -1
  450. package/dist/ui/turn-metrics.d.ts +56 -0
  451. package/dist/ui/turn-metrics.js +75 -0
  452. package/dist/ui/types.d.ts +28 -0
  453. package/dist/ui/types.js +1 -0
  454. package/dist/ui/vscode-diff-ipc.d.ts +102 -0
  455. package/dist/ui/vscode-diff-ipc.js +385 -0
  456. package/dist/utils/credentials.d.ts +24 -5
  457. package/dist/utils/credentials.js +123 -9
  458. package/dist/utils/format-tokens.d.ts +13 -0
  459. package/dist/utils/format-tokens.js +18 -0
  460. package/dist/utils/git-config.d.ts +26 -0
  461. package/dist/utils/git-config.js +54 -0
  462. package/dist/utils/message-utils.d.ts +61 -0
  463. package/dist/utils/message-utils.js +72 -0
  464. package/dist/utils/model-tiers.d.ts +8 -1
  465. package/dist/utils/model-tiers.js +38 -16
  466. package/dist/utils/open-browser.d.ts +5 -0
  467. package/dist/utils/open-browser.js +32 -0
  468. package/dist/utils/path-safety.js +3 -2
  469. package/dist/utils/project-detection.d.ts +58 -0
  470. package/dist/utils/project-detection.js +424 -0
  471. package/dist/utils/project-memory.js +2 -1
  472. package/dist/utils/project-status.d.ts +2 -2
  473. package/dist/utils/startup-perf.d.ts +18 -0
  474. package/dist/utils/startup-perf.js +60 -0
  475. package/dist/utils/token-tracker.d.ts +62 -0
  476. package/dist/utils/token-tracker.js +150 -0
  477. package/dist/utils/token-types.d.ts +23 -0
  478. package/dist/utils/token-types.js +18 -0
  479. package/dist/utils/types/config-types.d.ts +32 -0
  480. package/dist/utils/types/config-types.js +8 -0
  481. package/dist/utils/update-checker.d.ts +28 -0
  482. package/dist/utils/update-checker.js +106 -0
  483. package/dist/utils/version.d.ts +7 -0
  484. package/dist/utils/version.js +10 -0
  485. package/dist/utils/vscode-detect.d.ts +39 -0
  486. package/dist/utils/vscode-detect.js +137 -0
  487. package/package.json +25 -12
  488. package/dist/commands/handler-types.d.ts +0 -68
  489. package/dist/commands/handler-types.js +0 -8
  490. package/dist/commands/handlers/agent-commands.d.ts +0 -13
  491. package/dist/commands/handlers/agent-commands.js +0 -305
  492. package/dist/commands/handlers/design-commands.d.ts +0 -15
  493. package/dist/commands/handlers/design-commands.js +0 -334
  494. package/dist/commands/handlers/index.d.ts +0 -20
  495. package/dist/commands/handlers/index.js +0 -43
  496. package/dist/commands/handlers/overlay-commands.d.ts +0 -21
  497. package/dist/commands/handlers/overlay-commands.js +0 -287
  498. package/dist/commands/handlers/project-commands.d.ts +0 -11
  499. package/dist/commands/handlers/project-commands.js +0 -167
  500. package/dist/commands/handlers/simple-commands.d.ts +0 -19
  501. package/dist/commands/handlers/simple-commands.js +0 -144
  502. package/dist/commands/registry.d.ts +0 -50
  503. package/dist/commands/registry.js +0 -75
  504. package/dist/index.old.d.ts +0 -7
  505. package/dist/index.old.js +0 -1014
  506. package/dist/repl.d.ts +0 -149
  507. package/dist/repl.js +0 -1151
  508. package/dist/templates/claude-md.d.ts +0 -7
  509. package/dist/templates/claude-md.js +0 -189
  510. package/dist/test-autocomplete.d.ts +0 -7
  511. package/dist/test-autocomplete.js +0 -85
  512. package/dist/test-tabbed-menu.d.ts +0 -7
  513. package/dist/test-tabbed-menu.js +0 -25
  514. package/dist/tool-selector.d.ts +0 -71
  515. package/dist/tool-selector.js +0 -184
  516. package/dist/ui/agents-overlay-v2.d.ts +0 -43
  517. package/dist/ui/agents-overlay-v2.js +0 -809
  518. package/dist/ui/agents-overlay.d.ts +0 -12
  519. package/dist/ui/agents-overlay.js +0 -863
  520. package/dist/ui/anchors-overlay.d.ts +0 -12
  521. package/dist/ui/anchors-overlay.js +0 -775
  522. package/dist/ui/arch-type-overlay.d.ts +0 -15
  523. package/dist/ui/arch-type-overlay.js +0 -201
  524. package/dist/ui/ask-user-overlay-v2.d.ts +0 -26
  525. package/dist/ui/ask-user-overlay-v2.js +0 -555
  526. package/dist/ui/ask-user-simple-overlay-v2.d.ts +0 -25
  527. package/dist/ui/ask-user-simple-overlay-v2.js +0 -215
  528. package/dist/ui/backlog-overlay.d.ts +0 -32
  529. package/dist/ui/backlog-overlay.js +0 -652
  530. package/dist/ui/commands-overlay-v2.d.ts +0 -33
  531. package/dist/ui/commands-overlay-v2.js +0 -441
  532. package/dist/ui/commands-overlay.d.ts +0 -16
  533. package/dist/ui/commands-overlay.js +0 -439
  534. package/dist/ui/config-overlay.d.ts +0 -35
  535. package/dist/ui/config-overlay.js +0 -707
  536. package/dist/ui/docs-overlay.d.ts +0 -17
  537. package/dist/ui/docs-overlay.js +0 -303
  538. package/dist/ui/footer-v2.d.ts +0 -222
  539. package/dist/ui/footer-v2.js +0 -1349
  540. package/dist/ui/help-overlay-v2.d.ts +0 -34
  541. package/dist/ui/help-overlay-v2.js +0 -309
  542. package/dist/ui/help-overlay.d.ts +0 -16
  543. package/dist/ui/help-overlay.js +0 -316
  544. package/dist/ui/init-overlay-v2.d.ts +0 -34
  545. package/dist/ui/init-overlay-v2.js +0 -600
  546. package/dist/ui/init-overlay.d.ts +0 -34
  547. package/dist/ui/init-overlay.js +0 -604
  548. package/dist/ui/input-prompt-v2.d.ts +0 -180
  549. package/dist/ui/input-prompt-v2.js +0 -999
  550. package/dist/ui/iteration-limit-overlay-v2.d.ts +0 -21
  551. package/dist/ui/iteration-limit-overlay-v2.js +0 -114
  552. package/dist/ui/keys-overlay-v2.d.ts +0 -41
  553. package/dist/ui/keys-overlay-v2.js +0 -248
  554. package/dist/ui/mascot-overlay-v2.d.ts +0 -41
  555. package/dist/ui/mascot-overlay-v2.js +0 -138
  556. package/dist/ui/mascot-overlay.d.ts +0 -21
  557. package/dist/ui/mascot-overlay.js +0 -146
  558. package/dist/ui/model-overlay-v2.d.ts +0 -49
  559. package/dist/ui/model-overlay-v2.js +0 -118
  560. package/dist/ui/model-overlay.d.ts +0 -27
  561. package/dist/ui/model-overlay.js +0 -221
  562. package/dist/ui/model-warning-overlay.d.ts +0 -30
  563. package/dist/ui/model-warning-overlay.js +0 -169
  564. package/dist/ui/new-overlay.d.ts +0 -34
  565. package/dist/ui/new-overlay.js +0 -604
  566. package/dist/ui/overlay/impl/init-overlay-v2.d.ts +0 -77
  567. package/dist/ui/overlay/impl/init-overlay-v2.js +0 -593
  568. package/dist/ui/overlay/overlay-types.d.ts +0 -128
  569. package/dist/ui/overlay/overlay-types.js +0 -22
  570. package/dist/ui/overlays/help-overlay-v2.d.ts +0 -28
  571. package/dist/ui/overlays/help-overlay-v2.js +0 -198
  572. package/dist/ui/overlays/index.d.ts +0 -11
  573. package/dist/ui/overlays/index.js +0 -11
  574. package/dist/ui/permission-overlay-v2.d.ts +0 -36
  575. package/dist/ui/permission-overlay-v2.js +0 -380
  576. package/dist/ui/projects-overlay.d.ts +0 -19
  577. package/dist/ui/projects-overlay.js +0 -484
  578. package/dist/ui/theme-overlay-v2.d.ts +0 -42
  579. package/dist/ui/theme-overlay-v2.js +0 -135
  580. package/dist/ui/theme-overlay.d.ts +0 -24
  581. package/dist/ui/theme-overlay.js +0 -127
  582. package/dist/ui/tools-overlay-v2.d.ts +0 -47
  583. package/dist/ui/tools-overlay-v2.js +0 -218
  584. package/dist/ui/tools-overlay.d.ts +0 -34
  585. package/dist/ui/tools-overlay.js +0 -230
  586. package/dist/ui/tutorial-overlay-v2.d.ts +0 -31
  587. package/dist/ui/tutorial-overlay-v2.js +0 -1035
  588. package/dist/ui/tutorial-overlay.d.ts +0 -11
  589. package/dist/ui/tutorial-overlay.js +0 -1034
  590. package/dist/ui/workflow-overlay.d.ts +0 -22
  591. package/dist/ui/workflow-overlay.js +0 -636
@@ -0,0 +1,661 @@
1
+ /**
2
+ * Tool Configuration for Custom Agents
3
+ *
4
+ * Defines tool groups, profiles, and helpers for configuring
5
+ * which tools a custom agent can access.
6
+ *
7
+ * IMPORTANT: Tool names are imported from tool-names.ts (single source of truth).
8
+ * DO NOT hardcode tool name strings here - use TOOL_NAMES constants.
9
+ */
10
+ import { TOOL_NAMES } from '../tool-names.js';
11
+ // =============================================================================
12
+ // Tool Groups
13
+ // =============================================================================
14
+ /**
15
+ * All tool groups organized by functionality.
16
+ * These cover all ~50 tools in the CLI.
17
+ *
18
+ * Tool names use TOOL_NAMES constants for consistency.
19
+ */
20
+ export const TOOL_GROUPS = {
21
+ // ============= DIRECT TOOLS (15) =============
22
+ file_read: {
23
+ label: 'File Reading',
24
+ tools: [TOOL_NAMES.READ_FILE, TOOL_NAMES.GLOB, TOOL_NAMES.GREP],
25
+ readOnly: true,
26
+ tier: 'direct',
27
+ },
28
+ file_write: {
29
+ label: 'File Writing',
30
+ tools: [TOOL_NAMES.WRITE_FILE, TOOL_NAMES.EDIT],
31
+ readOnly: false,
32
+ tier: 'direct',
33
+ },
34
+ shell: {
35
+ label: 'Shell Commands',
36
+ tools: [TOOL_NAMES.BASH, TOOL_NAMES.BASH_OUTPUT, TOOL_NAMES.KILL_SHELL],
37
+ readOnly: false,
38
+ tier: 'direct',
39
+ },
40
+ tasks: {
41
+ label: 'Task Tracking',
42
+ tools: [TOOL_NAMES.TODO_WRITE, TOOL_NAMES.TODO_READ, TOOL_NAMES.TODO_CLAIM, TOOL_NAMES.TODO_HANDOFF],
43
+ readOnly: false,
44
+ tier: 'direct',
45
+ },
46
+ interaction: {
47
+ label: 'User Interaction',
48
+ tools: [TOOL_NAMES.ASK_USER, TOOL_NAMES.ASK_USER_SIMPLE, TOOL_NAMES.SUGGEST],
49
+ readOnly: true,
50
+ tier: 'direct',
51
+ },
52
+ coordinator: {
53
+ label: 'Coordination',
54
+ tools: [TOOL_NAMES.DELEGATE, TOOL_NAMES.DELEGATE_BACKGROUND, TOOL_NAMES.DELEGATION_STATUS],
55
+ readOnly: false,
56
+ tier: 'direct',
57
+ note: 'Coordinator-only: delegation to specialists (foreground, background, status query)',
58
+ },
59
+ handoff: {
60
+ label: 'Agent Handoff',
61
+ tools: [TOOL_NAMES.HANDOFF],
62
+ readOnly: false,
63
+ tier: 'direct',
64
+ note: 'Hand off current task to another specialist or coordinator',
65
+ },
66
+ guide: {
67
+ label: 'CLI Documentation',
68
+ tools: [TOOL_NAMES.COMPILR_GUIDE],
69
+ readOnly: true,
70
+ tier: 'direct',
71
+ note: 'Always available: helps agents answer CLI questions',
72
+ },
73
+ meta: {
74
+ label: 'Tool Discovery',
75
+ tools: [TOOL_NAMES.LIST_TOOLS, TOOL_NAMES.GET_TOOL_INFO, TOOL_NAMES.USE_TOOL],
76
+ readOnly: true, // Meta-tools themselves are read-only
77
+ tier: 'direct',
78
+ note: 'Required for accessing meta-registry tools',
79
+ },
80
+ // ============= META-REGISTRY TOOLS (34+) =============
81
+ // Accessed via use_tool("name", args)
82
+ git_read: {
83
+ label: 'Git (Read)',
84
+ tools: [
85
+ TOOL_NAMES.GIT_STATUS,
86
+ TOOL_NAMES.GIT_DIFF,
87
+ TOOL_NAMES.GIT_LOG,
88
+ TOOL_NAMES.GIT_BLAME,
89
+ TOOL_NAMES.GIT_FILE_HISTORY,
90
+ ],
91
+ readOnly: true,
92
+ tier: 'meta',
93
+ },
94
+ git_write: {
95
+ label: 'Git (Write)',
96
+ tools: [TOOL_NAMES.GIT_COMMIT, TOOL_NAMES.GIT_BRANCH, TOOL_NAMES.GIT_STASH],
97
+ readOnly: false,
98
+ tier: 'meta',
99
+ },
100
+ project: {
101
+ label: 'Project Analysis',
102
+ tools: [
103
+ TOOL_NAMES.DETECT_PROJECT,
104
+ TOOL_NAMES.FIND_PROJECT_ROOT,
105
+ TOOL_NAMES.GET_FILE_STRUCTURE,
106
+ TOOL_NAMES.GET_COMPLEXITY,
107
+ TOOL_NAMES.READ_FUNCTION,
108
+ TOOL_NAMES.READ_CLASS,
109
+ TOOL_NAMES.READ_TYPE,
110
+ ],
111
+ readOnly: true,
112
+ tier: 'meta',
113
+ note: 'Includes smart file reading (read_function, read_class, read_type)',
114
+ },
115
+ runners: {
116
+ label: 'Runners (Test/Build/Lint)',
117
+ tools: [TOOL_NAMES.RUN_TESTS, TOOL_NAMES.RUN_LINT, TOOL_NAMES.RUN_BUILD, TOOL_NAMES.RUN_FORMAT],
118
+ readOnly: false, // Can have side effects
119
+ tier: 'meta',
120
+ },
121
+ search: {
122
+ label: 'Code Search',
123
+ tools: [TOOL_NAMES.FIND_DEFINITION, TOOL_NAMES.FIND_REFERENCES, TOOL_NAMES.FIND_TODOS],
124
+ readOnly: true,
125
+ tier: 'meta',
126
+ },
127
+ dependencies: {
128
+ label: 'Dependency Analysis',
129
+ tools: [
130
+ TOOL_NAMES.CHECK_OUTDATED,
131
+ TOOL_NAMES.FIND_VULNERABILITIES,
132
+ TOOL_NAMES.ANALYZE_TEST_COVERAGE,
133
+ ],
134
+ readOnly: true,
135
+ tier: 'meta',
136
+ },
137
+ backlog_read: {
138
+ label: 'Backlog (Read)',
139
+ tools: [TOOL_NAMES.WORKITEM_QUERY, TOOL_NAMES.WORKITEM_STATUS_COUNTS],
140
+ readOnly: true,
141
+ tier: 'meta',
142
+ },
143
+ backlog_write: {
144
+ label: 'Backlog (Write)',
145
+ tools: [
146
+ TOOL_NAMES.WORKITEM_ADD,
147
+ TOOL_NAMES.WORKITEM_UPDATE,
148
+ TOOL_NAMES.WORKITEM_DELETE,
149
+ TOOL_NAMES.WORKITEM_NEXT,
150
+ TOOL_NAMES.WORKITEM_ADVANCE_STEP,
151
+ TOOL_NAMES.WORKITEM_CLAIM,
152
+ TOOL_NAMES.WORKITEM_HANDOFF,
153
+ ],
154
+ readOnly: false,
155
+ tier: 'meta',
156
+ },
157
+ documents: {
158
+ label: 'Project Documents',
159
+ tools: [
160
+ TOOL_NAMES.PROJECT_DOCUMENT_ADD,
161
+ TOOL_NAMES.PROJECT_DOCUMENT_GET,
162
+ TOOL_NAMES.PROJECT_DOCUMENT_LIST,
163
+ TOOL_NAMES.PROJECT_DOCUMENT_DELETE,
164
+ ],
165
+ readOnly: false,
166
+ tier: 'meta',
167
+ },
168
+ plans: {
169
+ label: 'Planning',
170
+ tools: [
171
+ TOOL_NAMES.PLAN_CREATE,
172
+ TOOL_NAMES.PLAN_UPDATE,
173
+ TOOL_NAMES.PLAN_GET,
174
+ TOOL_NAMES.PLAN_LIST,
175
+ TOOL_NAMES.PLAN_DELETE,
176
+ ],
177
+ readOnly: false,
178
+ tier: 'meta',
179
+ },
180
+ artifacts: {
181
+ label: 'Team Artifacts',
182
+ tools: [
183
+ TOOL_NAMES.ARTIFACT_SAVE,
184
+ TOOL_NAMES.ARTIFACT_GET,
185
+ TOOL_NAMES.ARTIFACT_LIST,
186
+ TOOL_NAMES.ARTIFACT_DELETE,
187
+ ],
188
+ readOnly: false,
189
+ tier: 'meta',
190
+ },
191
+ anchors: {
192
+ label: 'Context Anchors',
193
+ tools: [TOOL_NAMES.ANCHOR_ADD, TOOL_NAMES.ANCHOR_LIST, TOOL_NAMES.ANCHOR_REMOVE],
194
+ readOnly: false,
195
+ tier: 'meta',
196
+ },
197
+ project_db: {
198
+ label: 'Project Database',
199
+ tools: [TOOL_NAMES.PROJECT_GET, TOOL_NAMES.PROJECT_LIST, TOOL_NAMES.PROJECT_UPDATE],
200
+ readOnly: false,
201
+ tier: 'meta',
202
+ note: 'Project metadata management',
203
+ },
204
+ subagents: {
205
+ label: 'Subagent Delegation',
206
+ tools: [TOOL_NAMES.TASK],
207
+ readOnly: false,
208
+ tier: 'direct',
209
+ note: 'Delegate tasks to specialized subagents',
210
+ },
211
+ };
212
+ // =============================================================================
213
+ // Tool Profiles
214
+ // =============================================================================
215
+ /**
216
+ * Predefined tool profiles mapping profile name to included groups.
217
+ */
218
+ export const TOOL_PROFILES = {
219
+ // Full access - all groups
220
+ full: Object.keys(TOOL_GROUPS),
221
+ // Read-only - safe exploration
222
+ 'read-only': [
223
+ 'file_read',
224
+ 'interaction',
225
+ 'guide',
226
+ 'meta',
227
+ 'git_read',
228
+ 'project',
229
+ 'search',
230
+ 'dependencies',
231
+ 'backlog_read',
232
+ ],
233
+ // Developer - coding tasks
234
+ developer: [
235
+ 'file_read',
236
+ 'file_write',
237
+ 'shell',
238
+ 'tasks',
239
+ 'interaction',
240
+ 'handoff',
241
+ 'guide',
242
+ 'subagents',
243
+ 'meta',
244
+ 'git_read',
245
+ 'git_write',
246
+ 'project',
247
+ 'project_db',
248
+ 'runners',
249
+ 'search',
250
+ 'backlog_read',
251
+ 'backlog_write',
252
+ 'documents',
253
+ 'plans',
254
+ 'artifacts',
255
+ 'anchors',
256
+ ],
257
+ // Security - security audits
258
+ security: [
259
+ 'file_read',
260
+ 'shell',
261
+ 'interaction',
262
+ 'handoff',
263
+ 'guide',
264
+ 'meta',
265
+ 'git_read',
266
+ 'project',
267
+ 'search',
268
+ 'dependencies',
269
+ ],
270
+ // Docs - documentation only
271
+ docs: [
272
+ 'file_read',
273
+ 'file_write',
274
+ 'interaction',
275
+ 'handoff',
276
+ 'guide',
277
+ 'meta',
278
+ 'project',
279
+ 'search',
280
+ ],
281
+ // DevOps - CI/CD tasks
282
+ devops: [
283
+ 'file_read',
284
+ 'file_write',
285
+ 'shell',
286
+ 'tasks',
287
+ 'interaction',
288
+ 'handoff',
289
+ 'guide',
290
+ 'meta',
291
+ 'git_read',
292
+ 'git_write',
293
+ 'project',
294
+ 'project_db',
295
+ 'runners',
296
+ 'dependencies',
297
+ ],
298
+ // QA - testing
299
+ qa: [
300
+ 'file_read',
301
+ 'shell',
302
+ 'tasks',
303
+ 'interaction',
304
+ 'handoff',
305
+ 'guide',
306
+ 'meta',
307
+ 'git_read',
308
+ 'project',
309
+ 'runners',
310
+ 'search',
311
+ 'dependencies',
312
+ ],
313
+ // Architect - design and analysis (no direct implementation)
314
+ architect: [
315
+ 'file_read',
316
+ 'tasks',
317
+ 'interaction',
318
+ 'handoff',
319
+ 'guide',
320
+ 'meta',
321
+ 'git_read',
322
+ 'project',
323
+ 'search',
324
+ 'dependencies',
325
+ 'backlog_read',
326
+ 'documents',
327
+ 'plans',
328
+ 'artifacts',
329
+ 'anchors',
330
+ ],
331
+ // Planner (PM) - project management (no code modification)
332
+ planner: [
333
+ 'file_read',
334
+ 'tasks',
335
+ 'interaction',
336
+ 'handoff',
337
+ 'guide',
338
+ 'meta',
339
+ 'git_read',
340
+ 'project',
341
+ 'project_db',
342
+ 'backlog_read',
343
+ 'backlog_write',
344
+ 'documents',
345
+ 'plans',
346
+ 'artifacts',
347
+ 'anchors',
348
+ ],
349
+ // Analyst (BA) - requirements gathering (minimal technical tools)
350
+ analyst: [
351
+ 'file_read',
352
+ 'tasks',
353
+ 'interaction',
354
+ 'handoff',
355
+ 'guide',
356
+ 'meta',
357
+ 'project',
358
+ 'backlog_read',
359
+ 'backlog_write',
360
+ 'documents',
361
+ 'artifacts',
362
+ 'anchors',
363
+ ],
364
+ // Custom - user selected (groups specified in customGroups)
365
+ custom: [],
366
+ };
367
+ export const PROFILE_INFO = {
368
+ full: {
369
+ label: 'Full Access',
370
+ description: 'All tools available (default)',
371
+ isReadOnly: false,
372
+ },
373
+ 'read-only': {
374
+ label: 'Read Only',
375
+ description: 'Safe exploration - no file writes or destructive ops',
376
+ isReadOnly: true,
377
+ },
378
+ developer: {
379
+ label: 'Developer',
380
+ description: 'Full coding capabilities without destructive git ops',
381
+ isReadOnly: false,
382
+ },
383
+ security: {
384
+ label: 'Security Reviewer',
385
+ description: 'Security audits - read files, run analysis tools',
386
+ isReadOnly: true,
387
+ },
388
+ docs: {
389
+ label: 'Documentation',
390
+ description: 'Read and write documentation files',
391
+ isReadOnly: false,
392
+ },
393
+ devops: {
394
+ label: 'DevOps',
395
+ description: 'CI/CD tasks - runners, git, shell',
396
+ isReadOnly: false,
397
+ },
398
+ qa: {
399
+ label: 'QA / Testing',
400
+ description: 'Testing tasks - read code, run tests, analyze coverage',
401
+ isReadOnly: true,
402
+ },
403
+ architect: {
404
+ label: 'Architect',
405
+ description: 'Design and analysis - read code, create artifacts, no direct edits',
406
+ isReadOnly: true,
407
+ },
408
+ planner: {
409
+ label: 'Planner',
410
+ description: 'Project management - backlog, documents, no code modification',
411
+ isReadOnly: true,
412
+ },
413
+ analyst: {
414
+ label: 'Analyst',
415
+ description: 'Requirements gathering - user stories, documents, business analysis',
416
+ isReadOnly: true,
417
+ },
418
+ custom: {
419
+ label: 'Custom',
420
+ description: 'Select tool groups manually',
421
+ isReadOnly: false,
422
+ },
423
+ };
424
+ // =============================================================================
425
+ // Helper Functions
426
+ // =============================================================================
427
+ /**
428
+ * Get all tool names for a given profile.
429
+ *
430
+ * @param profile - The tool profile
431
+ * @param customGroups - Custom groups (when profile is 'custom')
432
+ * @returns Array of tool names
433
+ */
434
+ export function getToolsForProfile(profile, customGroups) {
435
+ const groups = profile === 'custom'
436
+ ? (customGroups ?? [])
437
+ : TOOL_PROFILES[profile];
438
+ const tools = [];
439
+ for (const groupId of groups) {
440
+ if (groupId in TOOL_GROUPS) {
441
+ tools.push(...TOOL_GROUPS[groupId].tools);
442
+ }
443
+ }
444
+ return [...new Set(tools)]; // Deduplicate
445
+ }
446
+ /**
447
+ * Get all group IDs for a profile.
448
+ */
449
+ export function getGroupsForProfile(profile) {
450
+ return TOOL_PROFILES[profile];
451
+ }
452
+ /**
453
+ * Get the profile that best matches a set of tools.
454
+ * Used for displaying current config in UI.
455
+ */
456
+ export function detectProfileFromTools(tools) {
457
+ const toolSet = new Set(tools);
458
+ const allTools = getToolsForProfile('full');
459
+ // Full access if all tools included
460
+ if (allTools.every(t => toolSet.has(t))) {
461
+ return 'full';
462
+ }
463
+ // Check each profile
464
+ for (const profile of Object.keys(TOOL_PROFILES)) {
465
+ if (profile === 'full' || profile === 'custom')
466
+ continue;
467
+ const profileTools = getToolsForProfile(profile);
468
+ if (profileTools.length === tools.length &&
469
+ profileTools.every(t => toolSet.has(t))) {
470
+ return profile;
471
+ }
472
+ }
473
+ return 'custom';
474
+ }
475
+ /**
476
+ * Check if a profile only includes read-only groups.
477
+ */
478
+ export function isProfileReadOnly(profile, customGroups) {
479
+ const groups = profile === 'custom'
480
+ ? (customGroups ?? [])
481
+ : TOOL_PROFILES[profile];
482
+ return groups.every(groupId => {
483
+ if (!(groupId in TOOL_GROUPS)) {
484
+ return true; // Unknown group treated as read-only
485
+ }
486
+ return TOOL_GROUPS[groupId].readOnly;
487
+ });
488
+ }
489
+ /**
490
+ * Get all available group IDs.
491
+ */
492
+ export function getAllGroupIds() {
493
+ return Object.keys(TOOL_GROUPS);
494
+ }
495
+ /**
496
+ * Get group info by ID.
497
+ */
498
+ export function getGroupInfo(groupId) {
499
+ return TOOL_GROUPS[groupId];
500
+ }
501
+ /**
502
+ * Get groups organized by tier.
503
+ */
504
+ export function getGroupsByTier() {
505
+ const direct = [];
506
+ const meta = [];
507
+ for (const [id, group] of Object.entries(TOOL_GROUPS)) {
508
+ if (group.tier === 'direct') {
509
+ direct.push(id);
510
+ }
511
+ else {
512
+ meta.push(id);
513
+ }
514
+ }
515
+ return { direct, meta };
516
+ }
517
+ /**
518
+ * Create a default tool config (full access).
519
+ */
520
+ export function createDefaultToolConfig() {
521
+ return {
522
+ profile: 'full',
523
+ };
524
+ }
525
+ /**
526
+ * Validate a tool config.
527
+ */
528
+ export function validateToolConfig(config) {
529
+ if (!config.profile) {
530
+ return { valid: false, error: 'Profile is required' };
531
+ }
532
+ if (!(config.profile in TOOL_PROFILES)) {
533
+ return { valid: false, error: `Unknown profile: ${config.profile}` };
534
+ }
535
+ if (config.profile === 'custom' && (!config.customGroups || config.customGroups.length === 0)) {
536
+ return { valid: false, error: 'Custom profile requires at least one group' };
537
+ }
538
+ if (config.customGroups) {
539
+ for (const groupId of config.customGroups) {
540
+ if (!(groupId in TOOL_GROUPS)) {
541
+ return { valid: false, error: `Unknown group: ${groupId}` };
542
+ }
543
+ }
544
+ }
545
+ return { valid: true };
546
+ }
547
+ /**
548
+ * Generate self-awareness text for system prompt.
549
+ * Tells the agent about its tool limitations.
550
+ */
551
+ export function generateToolAwarenessPrompt(config) {
552
+ const profile = config.profile;
553
+ const profileInfo = PROFILE_INFO[profile];
554
+ const groups = profile === 'custom'
555
+ ? (config.customGroups ?? [])
556
+ : TOOL_PROFILES[profile];
557
+ const isReadOnly = config.readOnly || isProfileReadOnly(profile, config.customGroups);
558
+ const lines = [
559
+ '## Your Capabilities',
560
+ '',
561
+ `You are configured with the "${profileInfo.label}" tool profile.`,
562
+ `Available tool groups: ${groups.join(', ')}`,
563
+ '',
564
+ ];
565
+ if (isReadOnly) {
566
+ lines.push('**You have READ-ONLY access.** You cannot modify files directly.');
567
+ lines.push('');
568
+ }
569
+ // Add specific limitations based on profile
570
+ const allGroups = getAllGroupIds();
571
+ const missingGroups = allGroups.filter(g => !groups.includes(g));
572
+ if (missingGroups.length > 0 && missingGroups.length < allGroups.length / 2) {
573
+ lines.push('## Tool Limitations');
574
+ lines.push('');
575
+ lines.push('The following capabilities are NOT available to you:');
576
+ for (const groupId of missingGroups) {
577
+ // groupId is guaranteed to exist (from getAllGroupIds)
578
+ const group = TOOL_GROUPS[groupId];
579
+ lines.push(`- ${group.label}: ${group.tools.join(', ')}`);
580
+ }
581
+ lines.push('');
582
+ }
583
+ lines.push('## When You Cannot Help');
584
+ lines.push('');
585
+ lines.push('If a user requests something outside your capabilities:');
586
+ lines.push('1. Acknowledge what they want to do');
587
+ lines.push('2. Explain your tool limitations');
588
+ lines.push('3. Suggest which team agent can help (e.g., "Try $dev for code modifications")');
589
+ return lines.join('\n');
590
+ }
591
+ /**
592
+ * Generate delegation guidance for the coordinator.
593
+ * Explains how to use the delegate tool effectively.
594
+ */
595
+ export function generateCoordinatorGuidance() {
596
+ return `## Task Delegation
597
+
598
+ As the coordinator, you have two delegation tools:
599
+
600
+ ### \`delegate\` (Foreground)
601
+ Switches the active agent to a specialist. The user interacts directly with the specialist.
602
+ - Use when the user should work directly with the specialist
603
+ - Requires user approval before switching
604
+
605
+ ### \`delegate_background\` (Background — Coordinator Mode)
606
+ Runs a specialist in background while you stay in the foreground.
607
+ - Use when orchestrating multiple tasks across specialists
608
+ - Specialists work independently; you're notified on completion
609
+ - Can delegate to multiple specialists in parallel
610
+ - Associate delegations with todos via \`todoIndex\` for plan tracking
611
+
612
+ ### Choosing the Right Specialist
613
+ Look at the **Your Team** roster in the shared context above. Each agent has:
614
+ - A **role** (e.g., Developer, Architect, QA)
615
+ - An **expertise** list (e.g., "system design, API design")
616
+
617
+ Match the task to the agent whose expertise best fits. For example:
618
+ - Architecture/design tasks → agent with design/architecture expertise
619
+ - Implementation/coding → agent with development/debugging expertise
620
+ - Testing/quality review → agent with testing/QA expertise
621
+ - Planning/requirements → agent with planning/coordination expertise
622
+
623
+ If no specialist matches well, handle the task yourself rather than delegating poorly.
624
+
625
+ ### Todo Ownership
626
+ When creating todos (via todo_write), ALWAYS assign an owner:
627
+ - Use your own agent ID ("default") for tasks you will handle yourself
628
+ - Use the specialist's agent ID for tasks you plan to delegate to them
629
+ - Never leave todos unassigned — unassigned todos confuse specialists who may try to work on them
630
+
631
+ ### Guidelines
632
+ - Break complex tasks into clear, independent sub-tasks
633
+ - Delegate sub-tasks to the most appropriate specialist based on their expertise
634
+ - Each delegation should have a clear expected output
635
+ - For sequential work, wait for completion before chaining the next delegation
636
+ - For parallel work, delegate multiple tasks simultaneously`;
637
+ }
638
+ /**
639
+ * Generate delegation suggestion guidance for specialists.
640
+ * Explains how to suggest other specialists when appropriate.
641
+ */
642
+ export function generateSpecialistGuidance(role) {
643
+ return `## Collaborating with Team
644
+
645
+ You are a specialist focused on ${role}-related tasks.
646
+
647
+ When a request is outside your expertise or could benefit from another specialist:
648
+ 1. Use the \`handoff\` tool to transfer the task to the right specialist
649
+ 2. Provide a clear task description and reason for the handoff
650
+ 3. The user will be asked to approve the handoff before switching
651
+
652
+ Examples:
653
+ - Architecture questions → handoff to $arch
654
+ - Implementation tasks → handoff to $dev
655
+ - Testing strategy → handoff to $qa
656
+
657
+ Note: If you were handed this task by another agent, you cannot re-hand it off
658
+ (except back to the coordinator). Complete the task or return it.
659
+
660
+ Focus on what you do best - don't try to do everything yourself.`;
661
+ }