@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
@@ -20,6 +20,7 @@ import { projectRepository, workItemRepository, documentRepository } from '../..
20
20
  import { BacklogOverlayV2 } from './backlog-overlay-v2.js';
21
21
  import { DocsOverlayV2 } from './docs-overlay-v2.js';
22
22
  import { AnchorsOverlayV2 } from './anchors-overlay-v2.js';
23
+ import { ProjectEditOverlayV2 } from './project-edit-overlay-v2.js';
23
24
  // =============================================================================
24
25
  // Constants
25
26
  // =============================================================================
@@ -550,7 +551,8 @@ export class WorkflowOverlayV2 extends BaseOverlayV2 {
550
551
  const projectId = this.state.project?.id;
551
552
  switch (command) {
552
553
  case '/backlog':
553
- return new BacklogOverlayV2(projectId);
554
+ // Note: teamAgentIds not available here, owner cycling disabled
555
+ return new BacklogOverlayV2(projectId, []);
554
556
  case '/docs':
555
557
  return new DocsOverlayV2(projectId);
556
558
  case '/anchors':
@@ -615,6 +617,8 @@ export class WorkflowOverlayV2 extends BaseOverlayV2 {
615
617
  this.refreshProject();
616
618
  return this.rerender();
617
619
  case 'edit':
620
+ // Push the edit overlay
621
+ return this.push(new ProjectEditOverlayV2(this.state.project));
618
622
  case 'delete':
619
623
  return this.close({
620
624
  command: null,
@@ -6,7 +6,7 @@
6
6
  export type { Overlay, RenderContext, OverlayContent, OverlayAction, KeyEvent, OverlayResolver, OverlayRenderState, } from './types.js';
7
7
  export { isCloseWithResult, isCloseCancelled } from './types.js';
8
8
  export { parseKeyEvent, matchesKey } from './key-utils.js';
9
- export { HelpOverlayV2 } from './impl/help-overlay-v2.js';
9
+ export { HelpOverlayV2, type HelpOverlayV2Options } from './impl/help-overlay-v2.js';
10
10
  export { ThemeOverlayV2, type ThemeOverlayOptions, type ThemeOverlayResult } from './impl/theme-overlay-v2.js';
11
11
  export { ModelOverlayV2, type ModelOverlayV2Options, type ModelOverlayV2Result } from './impl/model-overlay-v2.js';
12
12
  export { ToolsOverlayV2, type ToolsOverlayV2Options, type ToolsOverlayV2Result, type ToolInfo, type ToolParameter, type ToolPermissionInfo } from './impl/tools-overlay-v2.js';
@@ -21,6 +21,7 @@ export { DocsOverlayV2, type DocsOverlayV2Result } from './impl/docs-overlay-v2.
21
21
  export { DocumentDetailOverlayV2, type DocumentDetailResult } from './impl/document-detail-overlay-v2.js';
22
22
  export { AnchorsOverlayV2, type AnchorsOverlayV2Result } from './impl/anchors-overlay-v2.js';
23
23
  export { ProjectsOverlayV2, type ProjectsOverlayV2Result } from './impl/projects-overlay-v2.js';
24
+ export { ProjectEditOverlayV2, type ProjectEditResult } from './impl/project-edit-overlay-v2.js';
24
25
  export { ConfigOverlayV2, type ConfigOverlayV2Options, type ConfigOverlayV2Result } from './impl/config-overlay-v2.js';
25
26
  export { AskUserSimpleOverlayV2, type AskUserSimpleOptionsV2, type AskUserSimpleResultV2 } from './impl/ask-user-simple-overlay-v2.js';
26
27
  export { GuardrailOverlayV2, type GuardrailConfirmOptionsV2, type GuardrailConfirmResultV2 } from './impl/guardrail-overlay-v2.js';
@@ -31,3 +32,21 @@ export { NewProjectOverlayV2, type NewProjectResultV2 } from './impl/new-overlay
31
32
  export { InitSetupOverlayV2, type InitSetupResultV2 } from './impl/init-setup-overlay-v2.js';
32
33
  export { ArchTypeOverlayV2, type ArchTypeChoiceV2, type ArchDocType } from './impl/arch-type-overlay-v2.js';
33
34
  export { DashboardOverlayV2, type DashboardOverlayV2Result } from './impl/dashboard-overlay-v2.js';
35
+ export { OnboardingWizardOverlayV2, type OnboardingWizardResult } from './impl/onboarding-wizard-overlay-v2.js';
36
+ export { ResumeOverlayV2, type ResumeOverlayV2Options, type ResumeOverlayV2Result, type SessionItem } from './impl/resume-overlay-v2.js';
37
+ export { PlanApprovalOverlayV2, type PlanApprovalOverlayOptions, type PlanApprovalResult, type PlanApprovalAction } from './impl/plan-approval-overlay-v2.js';
38
+ export { PermissionsOverlayV2, type PermissionsOverlayV2Options, type PermissionsOverlayV2Result } from './impl/permissions-overlay-v2.js';
39
+ export { ResetOverlayV2, type ResetOverlayV2Options, type ResetOverlayV2Result, type ResetOption } from './impl/reset-overlay-v2.js';
40
+ export { SessionModeOverlayV2, type SessionModeOverlayV2Options, type SessionModeOverlayV2Result, type SessionModeOption } from './impl/session-mode-overlay-v2.js';
41
+ export { TeamOverlayV2, type TeamOverlayV2Result } from './impl/team-overlay-v2.js';
42
+ export { CustomAgentFormOverlayV2, type CustomAgentFormOptions, type CustomAgentFormResult } from './impl/custom-agent-form-overlay-v2.js';
43
+ export { ArtifactOverlayV2, type ArtifactOverlayV2Result } from './impl/artifact-overlay-v2.js';
44
+ export { ArtifactDetailOverlayV2, type ArtifactDetailOverlayV2Result } from './impl/artifact-detail-overlay-v2.js';
45
+ export { GamesOverlayV2, type GamesOverlayV2Result, type GamesOverlayV2Options } from './impl/games-overlay-v2.js';
46
+ export { PendingOverlayV2, type PendingOverlayResult } from './impl/pending-overlay-v2.js';
47
+ export { BackgroundOverlayV2, type BackgroundOverlayResult, type BackgroundOverlayOptions } from './impl/background-overlay-v2.js';
48
+ export { FilterOverlayV2, type FilterOverlayV2Result, type FilterOverlayV2Config } from './impl/filter-overlay-v2.js';
49
+ export { ChangelogOverlayV2, type ChangelogOverlayV2Result } from './impl/changelog-overlay-v2.js';
50
+ export { NotificationsOverlayV2 } from './impl/notifications-overlay-v2.js';
51
+ export { MCPOverlayV2, type MCPOverlayV2Result } from './impl/mcp-overlay-v2.js';
52
+ export { DelegationsOverlayV2 } from './impl/delegations-overlay-v2.js';
@@ -23,6 +23,7 @@ export { DocsOverlayV2 } from './impl/docs-overlay-v2.js';
23
23
  export { DocumentDetailOverlayV2 } from './impl/document-detail-overlay-v2.js';
24
24
  export { AnchorsOverlayV2 } from './impl/anchors-overlay-v2.js';
25
25
  export { ProjectsOverlayV2 } from './impl/projects-overlay-v2.js';
26
+ export { ProjectEditOverlayV2 } from './impl/project-edit-overlay-v2.js';
26
27
  export { ConfigOverlayV2 } from './impl/config-overlay-v2.js';
27
28
  export { AskUserSimpleOverlayV2 } from './impl/ask-user-simple-overlay-v2.js';
28
29
  export { GuardrailOverlayV2 } from './impl/guardrail-overlay-v2.js';
@@ -33,3 +34,21 @@ export { NewProjectOverlayV2 } from './impl/new-overlay-v2.js';
33
34
  export { InitSetupOverlayV2 } from './impl/init-setup-overlay-v2.js';
34
35
  export { ArchTypeOverlayV2 } from './impl/arch-type-overlay-v2.js';
35
36
  export { DashboardOverlayV2 } from './impl/dashboard-overlay-v2.js';
37
+ export { OnboardingWizardOverlayV2 } from './impl/onboarding-wizard-overlay-v2.js';
38
+ export { ResumeOverlayV2 } from './impl/resume-overlay-v2.js';
39
+ export { PlanApprovalOverlayV2 } from './impl/plan-approval-overlay-v2.js';
40
+ export { PermissionsOverlayV2 } from './impl/permissions-overlay-v2.js';
41
+ export { ResetOverlayV2 } from './impl/reset-overlay-v2.js';
42
+ export { SessionModeOverlayV2 } from './impl/session-mode-overlay-v2.js';
43
+ export { TeamOverlayV2 } from './impl/team-overlay-v2.js';
44
+ export { CustomAgentFormOverlayV2 } from './impl/custom-agent-form-overlay-v2.js';
45
+ export { ArtifactOverlayV2 } from './impl/artifact-overlay-v2.js';
46
+ export { ArtifactDetailOverlayV2 } from './impl/artifact-detail-overlay-v2.js';
47
+ export { GamesOverlayV2 } from './impl/games-overlay-v2.js';
48
+ export { PendingOverlayV2 } from './impl/pending-overlay-v2.js';
49
+ export { BackgroundOverlayV2 } from './impl/background-overlay-v2.js';
50
+ export { FilterOverlayV2 } from './impl/filter-overlay-v2.js';
51
+ export { ChangelogOverlayV2 } from './impl/changelog-overlay-v2.js';
52
+ export { NotificationsOverlayV2 } from './impl/notifications-overlay-v2.js';
53
+ export { MCPOverlayV2 } from './impl/mcp-overlay-v2.js';
54
+ export { DelegationsOverlayV2 } from './impl/delegations-overlay-v2.js';
@@ -26,6 +26,11 @@ export interface Overlay<TState = unknown, TResult = unknown> {
26
26
  onMount?(): void | Promise<void>;
27
27
  /** Called when overlay is unmounted. Cleanup. */
28
28
  onUnmount?(): void;
29
+ /**
30
+ * Set callback for requesting re-render from async operations.
31
+ * Called by TerminalUI when mounting the overlay.
32
+ */
33
+ setRenderCallback?(callback: () => void): void;
29
34
  /** Get current state (for TerminalUI to access if needed) */
30
35
  getState(): TState;
31
36
  /**
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Overlay lifecycle manager.
3
+ *
4
+ * Extracted from TerminalUI — owns the overlay stack, resolvers,
5
+ * render state, and print buffer. Uses host interface for footer
6
+ * clear/render and console output.
7
+ */
8
+ import type { PrintableItem } from './terminal-types.js';
9
+ import type { Overlay } from './overlay/index.js';
10
+ export interface OverlayManagerHost {
11
+ clearFooter(): void;
12
+ renderFooter(): void;
13
+ print(item: PrintableItem): void;
14
+ renderItemToConsole(item: PrintableItem): void;
15
+ }
16
+ export declare class OverlayManager {
17
+ private readonly stack;
18
+ private readonly resolvers;
19
+ private renderState;
20
+ private printBuffer;
21
+ private readonly host;
22
+ constructor(host: OverlayManagerHost);
23
+ hasActiveOverlay(): boolean;
24
+ getActiveOverlay(): Overlay | null;
25
+ showOverlay<TResult>(overlay: Overlay<unknown, TResult>): Promise<TResult | null>;
26
+ closeCurrentOverlay(result: unknown, cancelled: boolean): void;
27
+ private enterFullscreenOverlayMode;
28
+ private enterInlineOverlayMode;
29
+ private exitOverlayMode;
30
+ bufferItem(item: PrintableItem): void;
31
+ private flushPrintBuffer;
32
+ requestOverlayRender(): void;
33
+ private clearOverlayRender;
34
+ private renderOverlay;
35
+ private renderFullscreenOverlay;
36
+ private renderInlineOverlay;
37
+ processOverlayAction(action: {
38
+ type: 'none' | 'render' | 'close' | 'push' | 'pop';
39
+ result?: unknown;
40
+ cancelled?: boolean;
41
+ overlay?: Overlay;
42
+ }): void;
43
+ }
@@ -0,0 +1,238 @@
1
+ /**
2
+ * Overlay lifecycle manager.
3
+ *
4
+ * Extracted from TerminalUI — owns the overlay stack, resolvers,
5
+ * render state, and print buffer. Uses host interface for footer
6
+ * clear/render and console output.
7
+ */
8
+ import * as terminal from './terminal.js';
9
+ import { getVisibleLength } from './line-utils.js';
10
+ import { getStyles } from '../themes/index.js';
11
+ export class OverlayManager {
12
+ stack = [];
13
+ resolvers = new Map();
14
+ renderState = { lineCount: 0, maxLineCount: 0 };
15
+ printBuffer = [];
16
+ host;
17
+ constructor(host) {
18
+ this.host = host;
19
+ }
20
+ // ===========================================================================
21
+ // Queries
22
+ // ===========================================================================
23
+ hasActiveOverlay() {
24
+ return this.stack.length > 0;
25
+ }
26
+ getActiveOverlay() {
27
+ return this.stack.length > 0
28
+ ? this.stack[this.stack.length - 1]
29
+ : null;
30
+ }
31
+ // ===========================================================================
32
+ // Show / Close
33
+ // ===========================================================================
34
+ async showOverlay(overlay) {
35
+ const isPushingOntoExisting = this.stack.length > 0;
36
+ if (isPushingOntoExisting) {
37
+ this.clearOverlayRender();
38
+ }
39
+ this.stack.push(overlay);
40
+ overlay.setRenderCallback?.(() => { this.requestOverlayRender(); });
41
+ await overlay.onMount?.();
42
+ if (!overlay.usesAlternateScreen) {
43
+ if (overlay.type === 'fullscreen') {
44
+ this.enterFullscreenOverlayMode();
45
+ }
46
+ else {
47
+ this.enterInlineOverlayMode();
48
+ }
49
+ }
50
+ this.renderOverlay();
51
+ return new Promise((resolve) => {
52
+ this.resolvers.set(overlay.id, resolve);
53
+ });
54
+ }
55
+ closeCurrentOverlay(result, cancelled) {
56
+ const overlay = this.stack.pop();
57
+ if (!overlay)
58
+ return;
59
+ const usesAlternateScreen = overlay.usesAlternateScreen === true;
60
+ overlay.onUnmount?.();
61
+ const summary = (!cancelled && result !== null)
62
+ ? overlay.getCloseSummary?.(result)
63
+ : null;
64
+ if (this.stack.length === 0) {
65
+ if (usesAlternateScreen) {
66
+ this.renderState = { lineCount: 0, maxLineCount: 0 };
67
+ this.flushPrintBuffer();
68
+ }
69
+ else {
70
+ this.exitOverlayMode();
71
+ }
72
+ }
73
+ else {
74
+ if (!usesAlternateScreen) {
75
+ this.clearOverlayRender();
76
+ }
77
+ this.renderState = { lineCount: 0, maxLineCount: 0 };
78
+ this.renderOverlay();
79
+ }
80
+ if (summary) {
81
+ this.host.print({ type: 'info', message: summary });
82
+ }
83
+ const resolver = this.resolvers.get(overlay.id);
84
+ resolver?.(result);
85
+ this.resolvers.delete(overlay.id);
86
+ }
87
+ // ===========================================================================
88
+ // Overlay mode transitions
89
+ // ===========================================================================
90
+ enterFullscreenOverlayMode() {
91
+ this.host.clearFooter();
92
+ process.stdout.write('\x1b[2J\x1b[H');
93
+ this.renderState = { lineCount: 0, maxLineCount: 0 };
94
+ }
95
+ enterInlineOverlayMode() {
96
+ this.host.clearFooter();
97
+ this.renderState = { lineCount: 0, maxLineCount: 0 };
98
+ }
99
+ exitOverlayMode() {
100
+ this.clearOverlayRender();
101
+ this.renderState = { lineCount: 0, maxLineCount: 0 };
102
+ this.flushPrintBuffer();
103
+ this.host.renderFooter();
104
+ }
105
+ // ===========================================================================
106
+ // Print buffer (items queued while overlay is active)
107
+ // ===========================================================================
108
+ bufferItem(item) {
109
+ this.printBuffer.push(item);
110
+ }
111
+ flushPrintBuffer() {
112
+ if (this.printBuffer.length === 0)
113
+ return;
114
+ for (const item of this.printBuffer) {
115
+ this.host.renderItemToConsole(item);
116
+ }
117
+ this.printBuffer = [];
118
+ }
119
+ // ===========================================================================
120
+ // Render
121
+ // ===========================================================================
122
+ requestOverlayRender() {
123
+ if (this.getActiveOverlay()) {
124
+ this.renderOverlay();
125
+ }
126
+ }
127
+ clearOverlayRender() {
128
+ const linesToClear = this.renderState.maxLineCount;
129
+ if (linesToClear > 0) {
130
+ process.stdout.write(`\x1b[${String(linesToClear)}A`);
131
+ process.stdout.write('\r');
132
+ process.stdout.write('\x1b[J');
133
+ }
134
+ }
135
+ renderOverlay() {
136
+ const overlay = this.getActiveOverlay();
137
+ if (!overlay)
138
+ return;
139
+ const termWidth = terminal.getTerminalWidth();
140
+ const termHeight = terminal.getTerminalHeight();
141
+ const s = getStyles();
142
+ const context = {
143
+ width: termWidth,
144
+ height: termHeight,
145
+ styles: s,
146
+ };
147
+ const content = overlay.render(context);
148
+ if (overlay.type === 'fullscreen') {
149
+ this.renderFullscreenOverlay(content, termWidth);
150
+ }
151
+ else {
152
+ this.renderInlineOverlay(content, termWidth);
153
+ }
154
+ }
155
+ renderFullscreenOverlay(content, termWidth) {
156
+ this.clearOverlayRender();
157
+ let physicalLines = 0;
158
+ for (const line of content.lines) {
159
+ const visibleLen = getVisibleLength(line);
160
+ physicalLines += Math.max(1, Math.ceil(visibleLen / termWidth));
161
+ }
162
+ const contentMinHeight = content.minHeight ?? 0;
163
+ const naturalHeight = Math.max(physicalLines, contentMinHeight);
164
+ this.renderState.maxLineCount = Math.max(this.renderState.maxLineCount, naturalHeight);
165
+ const targetHeight = this.renderState.maxLineCount;
166
+ const paddedLines = [...content.lines];
167
+ while (physicalLines < targetHeight) {
168
+ paddedLines.push('');
169
+ physicalLines++;
170
+ }
171
+ this.renderState.lineCount = physicalLines;
172
+ for (let i = 0; i < paddedLines.length; i++) {
173
+ process.stdout.write(paddedLines[i]);
174
+ if (i < paddedLines.length - 1) {
175
+ process.stdout.write('\n');
176
+ }
177
+ }
178
+ if (content.cursorPosition) {
179
+ const { line, column } = content.cursorPosition;
180
+ const linesFromEnd = paddedLines.length - 1 - line;
181
+ if (linesFromEnd > 0) {
182
+ process.stdout.write(`\x1b[${String(linesFromEnd)}A`);
183
+ }
184
+ process.stdout.write(`\x1b[${String(column)}G`);
185
+ }
186
+ terminal.showCursor();
187
+ }
188
+ renderInlineOverlay(content, termWidth) {
189
+ this.clearOverlayRender();
190
+ let physicalLines = 0;
191
+ for (const line of content.lines) {
192
+ const visibleLen = getVisibleLength(line);
193
+ physicalLines += Math.max(1, Math.ceil(visibleLen / termWidth));
194
+ }
195
+ const contentMinHeight = content.minHeight ?? 0;
196
+ const naturalHeight = Math.max(physicalLines, contentMinHeight);
197
+ this.renderState.maxLineCount = Math.max(this.renderState.maxLineCount, naturalHeight);
198
+ const targetHeight = this.renderState.maxLineCount;
199
+ const paddedLines = [...content.lines];
200
+ while (physicalLines < targetHeight) {
201
+ paddedLines.push('');
202
+ physicalLines++;
203
+ }
204
+ this.renderState.lineCount = physicalLines;
205
+ for (const line of paddedLines) {
206
+ process.stdout.write(line + '\n');
207
+ }
208
+ terminal.showCursor();
209
+ }
210
+ // ===========================================================================
211
+ // Action processing
212
+ // ===========================================================================
213
+ processOverlayAction(action) {
214
+ switch (action.type) {
215
+ case 'none':
216
+ break;
217
+ case 'render':
218
+ this.renderOverlay();
219
+ break;
220
+ case 'close':
221
+ if (action.cancelled) {
222
+ this.closeCurrentOverlay(null, true);
223
+ }
224
+ else {
225
+ this.closeCurrentOverlay(action.result ?? null, false);
226
+ }
227
+ break;
228
+ case 'push':
229
+ if (action.overlay) {
230
+ void this.showOverlay(action.overlay);
231
+ }
232
+ break;
233
+ case 'pop':
234
+ this.closeCurrentOverlay(null, true);
235
+ break;
236
+ }
237
+ }
238
+ }
@@ -10,6 +10,7 @@
10
10
  import chalk from 'chalk';
11
11
  import * as terminal from './terminal.js';
12
12
  import { getStyles } from '../themes/index.js';
13
+ import { renderProgressBar, truncate } from './base/index.js';
13
14
  /**
14
15
  * Show a confirmation dialog
15
16
  */
@@ -59,7 +60,7 @@ export function showPermissionPrompt(tool, args) {
59
60
  terminal.writeLine('');
60
61
  terminal.writeLine(' Tool: ' + s.primary(tool));
61
62
  if (args) {
62
- terminal.writeLine(' Args: ' + s.muted(args.slice(0, 60) + (args.length > 60 ? '...' : '')));
63
+ terminal.writeLine(' Args: ' + s.muted(truncate(args, 60)));
63
64
  }
64
65
  terminal.writeLine('');
65
66
  terminal.write(s.muted(' [') +
@@ -119,8 +120,9 @@ export function showPermissionPrompt(tool, args) {
119
120
  * Show context window usage stats
120
121
  */
121
122
  export function showContextStats(stats) {
123
+ const s = getStyles();
122
124
  const pct = (stats.utilization * 100).toFixed(1);
123
- const bar = renderProgressBar(stats.utilization, 30);
125
+ const bar = renderProgressBar(stats.utilization, 30, s);
124
126
  terminal.writeLine('');
125
127
  terminal.writeLine(chalk.bold('Context Usage'));
126
128
  terminal.writeLine('');
@@ -130,20 +132,6 @@ export function showContextStats(stats) {
130
132
  terminal.writeLine(` Turns: ${String(stats.turns)}`);
131
133
  terminal.writeLine('');
132
134
  }
133
- /**
134
- * Render a progress bar
135
- */
136
- function renderProgressBar(value, width) {
137
- const s = getStyles();
138
- const filled = Math.round(value * width);
139
- const empty = width - filled;
140
- let color = s.success;
141
- if (value > 0.8)
142
- color = s.error;
143
- else if (value > 0.6)
144
- color = s.warning;
145
- return color('█'.repeat(filled)) + s.muted('░'.repeat(empty));
146
- }
147
135
  /**
148
136
  * Show session token usage
149
137
  */
@@ -7,6 +7,7 @@
7
7
  import chalk from 'chalk';
8
8
  import { getStyles } from '../themes/index.js';
9
9
  import { InlineOverlay } from './base/inline-overlay.js';
10
+ import { truncate } from './base/index.js';
10
11
  // =============================================================================
11
12
  // Helpers (unchanged from original)
12
13
  // =============================================================================
@@ -17,7 +18,7 @@ import { InlineOverlay } from './base/inline-overlay.js';
17
18
  function formatValue(value, maxLen) {
18
19
  if (typeof value === 'string') {
19
20
  const singleLine = value.replace(/\r?\n|\r/g, '↵');
20
- return singleLine.length > maxLen ? singleLine.slice(0, maxLen) + '...' : singleLine;
21
+ return truncate(singleLine, maxLen);
21
22
  }
22
23
  if (typeof value === 'boolean' || typeof value === 'number') {
23
24
  return String(value);
@@ -75,7 +76,7 @@ function formatArgs(toolName, args, maxWidth) {
75
76
  else {
76
77
  lines.push(prefix);
77
78
  const maxCmdLength = availableWidth * 3;
78
- const truncatedCmd = cmd.length > maxCmdLength ? cmd.slice(0, maxCmdLength) + '...' : cmd;
79
+ const truncatedCmd = truncate(cmd, maxCmdLength);
79
80
  lines.push(' ' + truncatedCmd);
80
81
  }
81
82
  return lines;
@@ -128,7 +129,7 @@ function formatArgs(toolName, args, maxWidth) {
128
129
  const valueStr = formatValue(value, maxWidth - key.length - 6);
129
130
  const line = `${key}: ${valueStr}`;
130
131
  if (line.length > maxWidth - 4) {
131
- lines.push(line.slice(0, maxWidth - 7) + '...');
132
+ lines.push(truncate(line, maxWidth - 4));
132
133
  }
133
134
  else {
134
135
  lines.push(line);
@@ -234,7 +235,7 @@ class PermissionOverlayImpl extends InlineOverlay {
234
235
  const maxArgWidth = cols - 6;
235
236
  const argLines = formatArgs(this.options.toolName, this.options.args, maxArgWidth);
236
237
  for (const argLine of argLines) {
237
- const safeArg = argLine.length > maxArgWidth ? argLine.slice(0, maxArgWidth - 3) + '...' : argLine;
238
+ const safeArg = truncate(argLine, maxArgWidth);
238
239
  lines.push(' ' + s.muted(safeArg));
239
240
  }
240
241
  lines.push('');
@@ -274,7 +275,7 @@ class PermissionOverlayImpl extends InlineOverlay {
274
275
  const endLine = Math.min(this.state.detailScrollOffset + visibleLines, contentLines.length);
275
276
  for (let i = this.state.detailScrollOffset; i < endLine; i++) {
276
277
  const line = contentLines[i];
277
- const safeLine = line.length > cols - 4 ? line.slice(0, cols - 7) + '...' : line;
278
+ const safeLine = truncate(line, cols - 4);
278
279
  lines.push(' ' + safeLine);
279
280
  }
280
281
  // Pad to fixed height
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Status bar navigation controller.
3
+ *
4
+ * Extracted from TerminalUI — manages the navigable status bar indicators
5
+ * (pending requests, background agents, terminals, notifications).
6
+ */
7
+ import type { KeypressKey } from './terminal-types.js';
8
+ export interface StatusBarItem {
9
+ id: 'pending' | 'bg-agents' | 'terminals' | 'notifications' | 'mcp';
10
+ action: string;
11
+ }
12
+ export interface StatusBarHost {
13
+ requestRender(): void;
14
+ emit(event: string, ...args: unknown[]): void;
15
+ }
16
+ export declare class StatusBarController {
17
+ navActive: boolean;
18
+ selectedIndex: number;
19
+ backgroundAgentCount: number;
20
+ mcpLoading: boolean;
21
+ mcpToolCount: number;
22
+ private readonly host;
23
+ constructor(host: StatusBarHost);
24
+ /** Set background agent count (called by REPL to keep UI in sync). */
25
+ setBackgroundAgentCount(count: number): void;
26
+ /** Set MCP loading state (shown while MCP servers connect in background). */
27
+ setMCPLoading(loading: boolean, toolCount?: number): void;
28
+ /** Returns navigable status bar indicators based on current state. */
29
+ getItems(): StatusBarItem[];
30
+ /** Handle keys while in status bar navigation mode. */
31
+ handleKey(_str: string, key: KeypressKey): void;
32
+ exitNav(): void;
33
+ }
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Status bar navigation controller.
3
+ *
4
+ * Extracted from TerminalUI — manages the navigable status bar indicators
5
+ * (pending requests, background agents, terminals, notifications).
6
+ */
7
+ import { getPendingRequestsManager } from '../multi-agent/index.js';
8
+ import { getSessionRegistry } from '../multi-agent/session-registry.js';
9
+ import { getNotificationManager } from '../multi-agent/notification-manager.js';
10
+ export class StatusBarController {
11
+ navActive = false;
12
+ selectedIndex = 0;
13
+ backgroundAgentCount = 0;
14
+ mcpLoading = false;
15
+ mcpToolCount = 0;
16
+ host;
17
+ constructor(host) {
18
+ this.host = host;
19
+ }
20
+ /** Set background agent count (called by REPL to keep UI in sync). */
21
+ setBackgroundAgentCount(count) {
22
+ this.backgroundAgentCount = count;
23
+ this.host.requestRender();
24
+ }
25
+ /** Set MCP loading state (shown while MCP servers connect in background). */
26
+ setMCPLoading(loading, toolCount) {
27
+ this.mcpLoading = loading;
28
+ if (toolCount !== undefined)
29
+ this.mcpToolCount = toolCount;
30
+ this.host.requestRender();
31
+ }
32
+ /** Returns navigable status bar indicators based on current state. */
33
+ getItems() {
34
+ const items = [];
35
+ const notifManager = getNotificationManager();
36
+ if (notifManager && notifManager.getUnreadCount() > 0) {
37
+ items.push({ id: 'notifications', action: 'notifications' });
38
+ }
39
+ if (getPendingRequestsManager().getCount() > 0) {
40
+ items.push({ id: 'pending', action: 'pending' });
41
+ }
42
+ if (this.backgroundAgentCount > 0) {
43
+ items.push({ id: 'bg-agents', action: 'bg' });
44
+ }
45
+ const registry = getSessionRegistry();
46
+ if (registry && registry.getProjectScopedSessionCount() > 1) {
47
+ items.push({ id: 'terminals', action: 'terminals' });
48
+ }
49
+ if (this.mcpLoading) {
50
+ items.push({ id: 'mcp', action: 'mcp' });
51
+ }
52
+ return items;
53
+ }
54
+ /** Handle keys while in status bar navigation mode. */
55
+ handleKey(_str, key) {
56
+ const items = this.getItems();
57
+ if (items.length === 0) {
58
+ this.exitNav();
59
+ return;
60
+ }
61
+ if (key.name === 'right' || key.name === 'down') {
62
+ if (this.selectedIndex < items.length - 1) {
63
+ this.selectedIndex++;
64
+ this.host.requestRender();
65
+ }
66
+ }
67
+ else if (key.name === 'left') {
68
+ if (this.selectedIndex > 0) {
69
+ this.selectedIndex--;
70
+ this.host.requestRender();
71
+ }
72
+ }
73
+ else if (key.name === 'up') {
74
+ if (this.selectedIndex > 0) {
75
+ this.selectedIndex--;
76
+ this.host.requestRender();
77
+ }
78
+ else {
79
+ this.exitNav();
80
+ }
81
+ }
82
+ else if (key.name === 'return') {
83
+ const item = items[this.selectedIndex];
84
+ this.exitNav();
85
+ this.host.emit('command', item.action, '');
86
+ }
87
+ else if (key.name === 'escape') {
88
+ this.exitNav();
89
+ }
90
+ else {
91
+ this.exitNav();
92
+ }
93
+ }
94
+ exitNav() {
95
+ this.navActive = false;
96
+ this.selectedIndex = 0;
97
+ this.host.requestRender();
98
+ }
99
+ }