@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
@@ -12,4 +12,6 @@ export declare const toolsCommand: CommandHandlerV2;
12
12
  export declare const keysCommand: CommandHandlerV2;
13
13
  export declare const mascotCommand: CommandHandlerV2;
14
14
  export declare const agentsCommand: CommandHandlerV2;
15
+ export declare const updateCommand: CommandHandlerV2;
16
+ export declare const permissionsCommand: CommandHandlerV2;
15
17
  export declare const settingsCommands: CommandHandlerV2[];
@@ -3,15 +3,26 @@
3
3
  *
4
4
  * Commands for configuration: theme, config, verbose, model, tools, agents
5
5
  */
6
- import { ThemeOverlayV2, ModelOverlayV2, ToolsOverlayV2, KeysOverlayV2, MascotOverlayV2, AgentsOverlayV2, ConfigOverlayV2 } from '../../ui/overlay/index.js';
7
- import { getSetting, getSettings } from '../../settings/index.js';
6
+ import { ThemeOverlayV2, ModelOverlayV2, ToolsOverlayV2, KeysOverlayV2, MascotOverlayV2, AgentsOverlayV2, ConfigOverlayV2, PermissionsOverlayV2 } from '../../ui/overlay/index.js';
7
+ import { getSetting, getSettings, recordUpdateCheck, permissionModeToAgentMode } from '../../settings/index.js';
8
8
  import { getToolPermissionInfo } from '../../agent.js';
9
+ import { checkForUpdates, performUpdate } from '../../utils/update-checker.js';
10
+ import { getRegisteredMetaTools, TOOL_NAMES, getToolStats } from '../../tools.js';
9
11
  // =============================================================================
10
12
  // Theme Command
11
13
  // =============================================================================
12
14
  export const themeCommand = {
13
15
  name: 'theme',
14
16
  description: 'Change color theme',
17
+ details: 'Opens the theme selector overlay. Browse themes with tabs for Curated, All, Dark, and Light. Themes are terminal color schemes that change the UI appearance.',
18
+ examples: [{ code: '/theme' }],
19
+ interactions: [
20
+ 'Tab cycles: Curated → All → Dark → Light',
21
+ '↑/↓ or j/k to navigate, ←/→ for pages',
22
+ '/ to search themes by name',
23
+ '1-9,0 for quick selection (Curated tab)',
24
+ 'Enter/Space to select, q/Esc to close',
25
+ ],
15
26
  async execute(_args, ctx) {
16
27
  const themeOverlay = new ThemeOverlayV2();
17
28
  await ctx.ui.showOverlay(themeOverlay);
@@ -24,23 +35,52 @@ export const themeCommand = {
24
35
  export const configCommand = {
25
36
  name: 'config',
26
37
  description: 'Open settings panel',
38
+ details: 'Opens the configuration overlay where you can change model, theme, permissions, and other settings.',
39
+ examples: [{ code: '/config' }],
40
+ interactions: [
41
+ 'Tab cycles: Status → Config → Usage → Environment',
42
+ '↑/↓ to navigate in Config tab',
43
+ 'Enter/Space to toggle or open submenu',
44
+ 'Esc to exit',
45
+ ],
27
46
  async execute(_args, ctx) {
28
47
  // Gather current session info
29
48
  const currentModel = getSetting('defaultModel') || 'unknown';
30
49
  const currentProvider = getSetting('defaultProvider');
50
+ // Calculate tool counts from actual tool registry
51
+ const toolStats = getToolStats();
52
+ const metaTools = getRegisteredMetaTools();
53
+ // Agent gets: direct tools + 5 additional tools:
54
+ // - list_tools, get_tool_info, use_tool (meta-tool access)
55
+ // - task (subagent spawning)
56
+ // - suggest (next action suggestions)
57
+ const directToolCount = toolStats.directTools + 5;
58
+ // metaTools.length is the actual count from the registry
59
+ const totalToolCount = directToolCount + metaTools.length;
60
+ // Calculate total message count across all team agents if team exists
61
+ let messageCount = ctx.getHistory?.().length ?? 0;
62
+ if (ctx.team) {
63
+ messageCount = 0;
64
+ for (const agent of ctx.team.getAll()) {
65
+ messageCount += agent.getContextStats().messageCount;
66
+ }
67
+ }
31
68
  const configOverlay = new ConfigOverlayV2({
32
69
  version: ctx.version,
33
70
  model: currentModel,
34
71
  provider: currentProvider === 'auto' ? 'claude' : currentProvider,
35
72
  cwd: process.cwd(),
36
- toolCount: 13, // TODO: Get actual tool count from context
73
+ toolCount: totalToolCount,
74
+ directToolCount,
75
+ metaToolCount: metaTools.length,
76
+ hasTeam: ctx.team !== undefined && ctx.team.size > 1,
37
77
  startTime: ctx.startTime ?? new Date(),
38
78
  inputTokens: ctx.sessionInputTokens ?? 0,
39
79
  outputTokens: ctx.sessionOutputTokens ?? 0,
40
80
  requests: ctx.sessionRequests ?? 0,
41
81
  contextUsed: 0, // TODO: Get from context manager
42
82
  contextMax: 200000,
43
- messageCount: ctx.getHistory?.().length ?? 0,
83
+ messageCount,
44
84
  });
45
85
  const result = await ctx.ui.showOverlay(configOverlay);
46
86
  if (result?.settingsChanged) {
@@ -55,6 +95,8 @@ export const configCommand = {
55
95
  export const verboseCommand = {
56
96
  name: 'verbose',
57
97
  description: 'Toggle verbose mode',
98
+ details: 'Toggles verbose mode on or off. When enabled, shows additional debug information during agent execution.',
99
+ examples: [{ code: '/verbose' }],
58
100
  execute(_args, ctx) {
59
101
  const config = ctx.ui.getConfig();
60
102
  const newVerbose = !config.verbose;
@@ -72,6 +114,16 @@ export const verboseCommand = {
72
114
  export const modelCommand = {
73
115
  name: 'model',
74
116
  description: 'Change AI model',
117
+ details: 'Opens the model selector overlay. Choose from Claude, OpenAI, Gemini, or Ollama models. Changes within the same provider apply immediately; switching providers requires restart.',
118
+ examples: [{ code: '/model' }],
119
+ interactions: [
120
+ 'Tab/Shift+Tab to switch providers',
121
+ '1-4 for quick provider selection',
122
+ '↑/↓ or j/k to navigate models',
123
+ 'Enter to view model details',
124
+ 'In details: e Edit · t Test · a Set Active · d Reset Default',
125
+ 'Esc to go back/close',
126
+ ],
75
127
  async execute(_args, ctx) {
76
128
  const currentModel = getSetting('defaultModel') ?? undefined;
77
129
  const currentProvider = getSetting('defaultProvider');
@@ -79,21 +131,9 @@ export const modelCommand = {
79
131
  currentModel: currentModel ?? undefined,
80
132
  currentProvider: currentProvider === 'auto' ? undefined : currentProvider,
81
133
  });
82
- const result = await ctx.ui.showOverlay(modelOverlay);
83
- if (result?.modelChanged) {
84
- if (result.requiresRestart) {
85
- ctx.ui.print({
86
- type: 'warning',
87
- message: `Switched to ${result.provider ?? 'unknown'} provider. Restart required.`,
88
- });
89
- }
90
- else {
91
- ctx.ui.print({
92
- type: 'success',
93
- message: `Model changed to ${result.modelChanged}`,
94
- });
95
- }
96
- }
134
+ await ctx.ui.showOverlay(modelOverlay);
135
+ // Model changes are handled in the detail screen via setSetting()
136
+ // No need to process result here
97
137
  return true;
98
138
  },
99
139
  };
@@ -103,6 +143,13 @@ export const modelCommand = {
103
143
  export const toolsCommand = {
104
144
  name: 'tools',
105
145
  description: 'Show available tools',
146
+ details: 'Shows all tools available to the agent including file operations, bash, git, and custom tools. View tool parameters and permission levels.',
147
+ examples: [{ code: '/tools' }],
148
+ interactions: [
149
+ '↑/↓ or j/k to navigate tools',
150
+ 'Enter to view tool details',
151
+ 'Esc to close',
152
+ ],
106
153
  async execute(_args, ctx) {
107
154
  // Get tools from agent if available, otherwise use fallback list
108
155
  const tools = ctx.agent ? getAgentTools(ctx) : getDefaultTools();
@@ -113,11 +160,18 @@ export const toolsCommand = {
113
160
  };
114
161
  /**
115
162
  * Get tool definitions from the agent with full parameter and permission info.
163
+ * Includes both direct tools and meta-registry tools.
116
164
  */
117
165
  function getAgentTools(ctx) {
118
166
  if (!ctx.agent)
119
167
  return getDefaultTools();
120
- return ctx.agent.getToolDefinitions().map((t) => {
168
+ // Get direct tools from agent
169
+ const directTools = ctx.agent.getToolDefinitions();
170
+ // Get meta-registry tools
171
+ const metaTools = getRegisteredMetaTools();
172
+ // Combine and map to ToolInfo format
173
+ const allTools = [...directTools, ...metaTools.map(t => t.definition)];
174
+ return allTools.map((t) => {
121
175
  // Extract parameters from inputSchema
122
176
  const parameters = [];
123
177
  const props = t.inputSchema.properties;
@@ -140,9 +194,11 @@ function getAgentTools(ctx) {
140
194
  if (t.name === 'task' && description.includes('Available agent types:')) {
141
195
  description = description.split('Available agent types:')[0].trim();
142
196
  }
197
+ // Mark meta-registry tools (not directly callable, use via use_tool)
198
+ const isMeta = metaTools.some(mt => mt.definition.name === t.name);
143
199
  return {
144
200
  name: t.name,
145
- description,
201
+ description: isMeta ? `[via use_tool] ${description}` : description,
146
202
  parameters,
147
203
  permission,
148
204
  };
@@ -150,23 +206,32 @@ function getAgentTools(ctx) {
150
206
  }
151
207
  /**
152
208
  * Fallback tool definitions when agent is not available.
209
+ * Uses TOOL_NAMES constants for consistency across the codebase.
153
210
  */
154
211
  function getDefaultTools() {
155
- return [
156
- { name: 'read_file', description: 'Read contents of a file' },
157
- { name: 'write_file', description: 'Write contents to a file' },
158
- { name: 'edit', description: 'Edit a file with find/replace' },
159
- { name: 'glob', description: 'Find files matching a pattern' },
160
- { name: 'grep', description: 'Search for text in files' },
161
- { name: 'bash', description: 'Execute a bash command' },
162
- { name: 'task', description: 'Spawn a sub-agent for complex tasks' },
163
- { name: 'todoWrite', description: 'Write items to the todo list' },
164
- { name: 'todoRead', description: 'Read the current todo list' },
165
- { name: 'suggest', description: 'Suggest text for the input prompt' },
166
- { name: 'webFetch', description: 'Fetch content from a URL' },
167
- { name: 'askUser', description: 'Ask the user a question' },
168
- { name: 'askUserSimple', description: 'Ask the user a simple question' },
212
+ // Direct tools (always available)
213
+ const directTools = [
214
+ { name: TOOL_NAMES.READ_FILE, description: 'Read contents of a file' },
215
+ { name: TOOL_NAMES.WRITE_FILE, description: 'Write contents to a file' },
216
+ { name: TOOL_NAMES.EDIT, description: 'Edit a file with find/replace' },
217
+ { name: TOOL_NAMES.GLOB, description: 'Find files matching a pattern' },
218
+ { name: TOOL_NAMES.GREP, description: 'Search for text in files' },
219
+ { name: TOOL_NAMES.BASH, description: 'Execute a bash command' },
220
+ { name: TOOL_NAMES.BASH_OUTPUT, description: 'Get output from background shell' },
221
+ { name: TOOL_NAMES.KILL_SHELL, description: 'Kill a background shell' },
222
+ { name: TOOL_NAMES.TODO_WRITE, description: 'Write items to the todo list' },
223
+ { name: TOOL_NAMES.TODO_READ, description: 'Read the current todo list' },
224
+ { name: TOOL_NAMES.ASK_USER, description: 'Ask the user a question' },
225
+ { name: TOOL_NAMES.ASK_USER_SIMPLE, description: 'Ask the user a simple question' },
226
+ { name: TOOL_NAMES.DELEGATE, description: 'Delegate to a specialist agent' },
227
+ ];
228
+ // Meta-tools (for accessing specialized tools)
229
+ const metaToolsList = [
230
+ { name: TOOL_NAMES.LIST_TOOLS, description: 'List all available specialized tools' },
231
+ { name: TOOL_NAMES.GET_TOOL_INFO, description: 'Get detailed info about a tool' },
232
+ { name: TOOL_NAMES.USE_TOOL, description: 'Execute a specialized tool' },
169
233
  ];
234
+ return [...directTools, ...metaToolsList];
170
235
  }
171
236
  // =============================================================================
172
237
  // Keys Command
@@ -174,6 +239,14 @@ function getDefaultTools() {
174
239
  export const keysCommand = {
175
240
  name: 'keys',
176
241
  description: 'Manage API keys',
242
+ details: 'Opens an interactive overlay to view, set, and delete API keys for LLM providers (Anthropic, OpenAI, Google). Keys are encrypted and stored locally in ~/.compilr-dev/credentials.enc.',
243
+ examples: [{ code: '/keys' }],
244
+ interactions: [
245
+ '↑/↓ to navigate providers',
246
+ 'Enter to edit key',
247
+ 'd to delete stored key',
248
+ 'Esc to close',
249
+ ],
177
250
  async execute(_args, ctx) {
178
251
  const keysOverlay = new KeysOverlayV2();
179
252
  const result = await ctx.ui.showOverlay(keysOverlay);
@@ -189,6 +262,13 @@ export const keysCommand = {
189
262
  export const mascotCommand = {
190
263
  name: 'mascot',
191
264
  description: 'Select mascot expression',
265
+ details: 'Opens the mascot selector overlay. Choose the mascot expression shown in the CLI. Options include various expressions, random (changes each startup), or none.',
266
+ examples: [{ code: '/mascot' }],
267
+ interactions: [
268
+ '↑/↓ or j/k to navigate options',
269
+ 'Enter/Space to select mascot',
270
+ 'q/Esc to close without changing',
271
+ ],
192
272
  async execute(_args, ctx) {
193
273
  const currentMascot = getSettings().mascot;
194
274
  const mascotOverlay = new MascotOverlayV2({ currentMascot });
@@ -205,6 +285,14 @@ export const mascotCommand = {
205
285
  export const agentsCommand = {
206
286
  name: 'agents',
207
287
  description: 'View and manage agents',
288
+ details: 'View and configure sub-agents that can be spawned for specialized tasks like code review, testing, or exploration.',
289
+ examples: [{ code: '/agents' }],
290
+ interactions: [
291
+ 'Tab to switch: built-in ↔ custom',
292
+ '↑/↓ to navigate agents',
293
+ 'Enter to select or create new',
294
+ 'Esc to close',
295
+ ],
208
296
  async execute(_args, ctx) {
209
297
  const agentsOverlay = new AgentsOverlayV2();
210
298
  const result = await ctx.ui.showOverlay(agentsOverlay);
@@ -221,6 +309,98 @@ export const agentsCommand = {
221
309
  },
222
310
  };
223
311
  // =============================================================================
312
+ // Update Command
313
+ // =============================================================================
314
+ export const updateCommand = {
315
+ name: 'update',
316
+ description: 'Check for CLI updates',
317
+ details: 'Checks npm for new versions of the CLI. Use --install flag to automatically install updates.',
318
+ examples: [
319
+ { code: '/update', description: 'Check for updates' },
320
+ { code: '/update --install', description: 'Install available update' },
321
+ ],
322
+ async execute(args, ctx) {
323
+ ctx.ui.print({ type: 'info', message: 'Checking for updates...' });
324
+ const updateInfo = await checkForUpdates();
325
+ recordUpdateCheck();
326
+ if (!updateInfo.updateAvailable) {
327
+ ctx.ui.print({
328
+ type: 'success',
329
+ message: `You're on the latest version (v${updateInfo.currentVersion})`,
330
+ });
331
+ return true;
332
+ }
333
+ ctx.ui.print({
334
+ type: 'warning',
335
+ message: `Update available: v${updateInfo.currentVersion} → v${updateInfo.latestVersion}`,
336
+ });
337
+ // If --install flag is passed, perform the update
338
+ if (args.includes('--install') || args.includes('-i')) {
339
+ ctx.ui.print({ type: 'info', message: 'Installing update...' });
340
+ const result = await performUpdate();
341
+ ctx.ui.print({
342
+ type: result.success ? 'success' : 'error',
343
+ message: result.message,
344
+ });
345
+ }
346
+ else {
347
+ ctx.ui.print({
348
+ type: 'info',
349
+ message: 'Run "/update --install" or "npm update -g @compilr-dev/cli" to install',
350
+ });
351
+ }
352
+ return true;
353
+ },
354
+ };
355
+ // =============================================================================
356
+ // Permissions Command
357
+ // =============================================================================
358
+ export const permissionsCommand = {
359
+ name: 'permissions',
360
+ description: 'Manage tool permissions',
361
+ details: 'Opens a 3-tab overlay to manage tool permissions. Configure permission rules with wildcard patterns, set global permission modes, and view/revoke session grants.',
362
+ examples: [{ code: '/permissions' }],
363
+ interactions: [
364
+ 'Tab cycles: Rules → Mode → Session',
365
+ '↑/↓ to navigate, ←/→ for pages',
366
+ 'a to add rule, e/Enter to edit, d to delete',
367
+ 'r to reset to defaults (Rules tab)',
368
+ 'Enter/Space to select mode (Mode tab)',
369
+ 'r to revoke, c to clear all (Session tab)',
370
+ ],
371
+ async execute(_args, ctx) {
372
+ // Get session grants from agent and convert to Map<string, Date>
373
+ // The overlay expects timestamps, but PermissionManager only stores names
374
+ // Use current time as placeholder for all grants
375
+ const sessionGrants = new Map();
376
+ if (ctx.agent) {
377
+ const grants = ctx.agent.getSessionPermissions();
378
+ const now = new Date();
379
+ for (const toolName of grants) {
380
+ sessionGrants.set(toolName, now);
381
+ }
382
+ }
383
+ // Create callbacks that capture the agent reference
384
+ const agent = ctx.agent;
385
+ const permissionsOverlay = new PermissionsOverlayV2({
386
+ sessionGrants,
387
+ onRevokeGrant: agent
388
+ ? (toolName) => agent.revokeSessionPermission(toolName)
389
+ : undefined,
390
+ onClearGrants: agent
391
+ ? () => { agent.clearSessionPermissions(); }
392
+ : undefined,
393
+ onModeChange: (newMode) => {
394
+ // Sync UI mode when permission mode changes in overlay
395
+ const uiMode = permissionModeToAgentMode(newMode);
396
+ ctx.ui.setMode(uiMode);
397
+ },
398
+ });
399
+ await ctx.ui.showOverlay(permissionsOverlay);
400
+ return true;
401
+ },
402
+ };
403
+ // =============================================================================
224
404
  // Export All Settings Commands
225
405
  // =============================================================================
226
406
  export const settingsCommands = [
@@ -232,4 +412,6 @@ export const settingsCommands = [
232
412
  keysCommand,
233
413
  mascotCommand,
234
414
  agentsCommand,
415
+ updateCommand,
416
+ permissionsCommand,
235
417
  ];
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tasks Command Handler - View and manage background shell tasks
3
+ */
4
+ import type { CommandHandlerV2 } from '../types.js';
5
+ export declare const tasksCommand: CommandHandlerV2;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Tasks Command Handler - View and manage background shell tasks
3
+ */
4
+ import { TasksOverlayV2 } from '../../ui/overlay/impl/tasks-overlay-v2.js';
5
+ export const tasksCommand = {
6
+ name: 'tasks',
7
+ aliases: ['bg', 'background'],
8
+ description: 'View and manage background shell tasks',
9
+ details: `
10
+ Shows background shell processes started via the bash tool with run_in_background=true.
11
+
12
+ From the overlay you can:
13
+ - View running and completed tasks
14
+ - See task output
15
+ - Kill running tasks
16
+ - Clear completed tasks
17
+
18
+ Keyboard shortcut: Ctrl+B opens this overlay.
19
+ `.trim(),
20
+ examples: [
21
+ { code: '/tasks', description: 'Open background tasks overlay' },
22
+ { code: '/bg', description: 'Alias for /tasks' },
23
+ ],
24
+ interactions: [
25
+ '↑↓ or j/k to navigate task list',
26
+ 'Enter to view task output',
27
+ 'x to kill running task',
28
+ 'c to clear completed tasks',
29
+ 'r to refresh output (in detail view)',
30
+ ],
31
+ async execute(_args, ctx) {
32
+ const overlay = new TasksOverlayV2();
33
+ await ctx.ui.showOverlay(overlay);
34
+ return true;
35
+ },
36
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Team Commands for REPL V2
3
+ *
4
+ * Commands for managing multi-agent teams.
5
+ */
6
+ import type { CommandHandlerV2 } from '../types.js';
7
+ export declare const teamCommand: CommandHandlerV2;
8
+ export declare const artifactCommand: CommandHandlerV2;
9
+ export declare const teamCommands: CommandHandlerV2[];