@compilr-dev/cli 0.5.0 → 0.5.2

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 (587) hide show
  1. package/LICENSE +108 -0
  2. package/README.md +237 -69
  3. package/dist/.tsbuildinfo.app +1 -0
  4. package/dist/.tsbuildinfo.data +1 -0
  5. package/dist/.tsbuildinfo.domain +1 -0
  6. package/dist/.tsbuildinfo.foundation +1 -0
  7. package/dist/agent.d.ts +61 -4
  8. package/dist/agent.js +241 -245
  9. package/dist/anchors/index.d.ts +1 -1
  10. package/dist/anchors/index.js +1 -1
  11. package/dist/anchors/project-anchors.d.ts +2 -2
  12. package/dist/anchors/project-anchors.js +1 -1
  13. package/dist/auth/api-client.d.ts +124 -0
  14. package/dist/auth/api-client.js +261 -0
  15. package/dist/auth/index.d.ts +172 -0
  16. package/dist/auth/index.js +545 -0
  17. package/dist/auth/storage.d.ts +52 -0
  18. package/dist/auth/storage.js +118 -0
  19. package/dist/changelog/index.d.ts +16 -0
  20. package/dist/changelog/index.js +24 -0
  21. package/dist/changelog/releases.d.ts +17 -0
  22. package/dist/changelog/releases.js +63 -0
  23. package/dist/commands-v2/handlers/auth.d.ts +10 -0
  24. package/dist/commands-v2/handlers/auth.js +118 -0
  25. package/dist/commands-v2/handlers/background.d.ts +14 -0
  26. package/dist/commands-v2/handlers/background.js +276 -0
  27. package/dist/commands-v2/handlers/context.js +286 -81
  28. package/dist/commands-v2/handlers/core.d.ts +1 -0
  29. package/dist/commands-v2/handlers/core.js +133 -8
  30. package/dist/commands-v2/handlers/debug.js +18 -0
  31. package/dist/commands-v2/handlers/delegations.d.ts +8 -0
  32. package/dist/commands-v2/handlers/delegations.js +29 -0
  33. package/dist/commands-v2/handlers/files.d.ts +8 -0
  34. package/dist/commands-v2/handlers/files.js +162 -0
  35. package/dist/commands-v2/handlers/filter.d.ts +9 -0
  36. package/dist/commands-v2/handlers/filter.js +130 -0
  37. package/dist/commands-v2/handlers/games.d.ts +7 -0
  38. package/dist/commands-v2/handlers/games.js +57 -0
  39. package/dist/commands-v2/handlers/index.d.ts +13 -0
  40. package/dist/commands-v2/handlers/index.js +39 -0
  41. package/dist/commands-v2/handlers/mcp.d.ts +8 -0
  42. package/dist/commands-v2/handlers/mcp.js +39 -0
  43. package/dist/commands-v2/handlers/notifications.d.ts +9 -0
  44. package/dist/commands-v2/handlers/notifications.js +34 -0
  45. package/dist/commands-v2/handlers/project.js +295 -31
  46. package/dist/commands-v2/handlers/reset.d.ts +11 -0
  47. package/dist/commands-v2/handlers/reset.js +118 -0
  48. package/dist/commands-v2/handlers/session.d.ts +161 -0
  49. package/dist/commands-v2/handlers/session.js +805 -0
  50. package/dist/commands-v2/handlers/settings.d.ts +2 -0
  51. package/dist/commands-v2/handlers/settings.js +217 -35
  52. package/dist/commands-v2/handlers/tasks.d.ts +5 -0
  53. package/dist/commands-v2/handlers/tasks.js +36 -0
  54. package/dist/commands-v2/handlers/team.d.ts +9 -0
  55. package/dist/commands-v2/handlers/team.js +549 -0
  56. package/dist/commands-v2/handlers/terminals.d.ts +9 -0
  57. package/dist/commands-v2/handlers/terminals.js +34 -0
  58. package/dist/commands-v2/index.d.ts +3 -2
  59. package/dist/commands-v2/index.js +4 -1
  60. package/dist/commands-v2/registry.d.ts +15 -0
  61. package/dist/commands-v2/registry.js +34 -0
  62. package/dist/commands-v2/types.d.ts +81 -3
  63. package/dist/commands.js +13 -0
  64. package/dist/compilr-diff-companion.vsix +0 -0
  65. package/dist/db/index.js +98 -4
  66. package/dist/db/repositories/document-repository.d.ts +2 -0
  67. package/dist/db/repositories/document-repository.js +6 -1
  68. package/dist/db/repositories/index.d.ts +2 -0
  69. package/dist/db/repositories/index.js +1 -0
  70. package/dist/db/repositories/plan-repository.d.ts +101 -0
  71. package/dist/db/repositories/plan-repository.js +275 -0
  72. package/dist/db/repositories/project-repository.d.ts +6 -0
  73. package/dist/db/repositories/project-repository.js +41 -0
  74. package/dist/db/repositories/work-item-repository.d.ts +15 -0
  75. package/dist/db/repositories/work-item-repository.js +69 -4
  76. package/dist/db/schema.d.ts +40 -3
  77. package/dist/db/schema.js +66 -3
  78. package/dist/episodes/index.d.ts +20 -0
  79. package/dist/episodes/index.js +27 -0
  80. package/dist/episodes/recorder.d.ts +51 -0
  81. package/dist/episodes/recorder.js +195 -0
  82. package/dist/episodes/significant-work.d.ts +21 -0
  83. package/dist/episodes/significant-work.js +56 -0
  84. package/dist/episodes/store.d.ts +38 -0
  85. package/dist/episodes/store.js +199 -0
  86. package/dist/episodes/types.d.ts +35 -0
  87. package/dist/episodes/types.js +6 -0
  88. package/dist/episodes/work-at-risk.d.ts +12 -0
  89. package/dist/episodes/work-at-risk.js +38 -0
  90. package/dist/episodes/work-summary-anchor.d.ts +23 -0
  91. package/dist/episodes/work-summary-anchor.js +73 -0
  92. package/dist/games/coins.d.ts +66 -0
  93. package/dist/games/coins.js +165 -0
  94. package/dist/games/game-base.d.ts +84 -0
  95. package/dist/games/game-base.js +204 -0
  96. package/dist/games/index.d.ts +16 -0
  97. package/dist/games/index.js +49 -0
  98. package/dist/games/scores.d.ts +69 -0
  99. package/dist/games/scores.js +191 -0
  100. package/dist/games/tetris/board.d.ts +59 -0
  101. package/dist/games/tetris/board.js +170 -0
  102. package/dist/games/tetris/index.d.ts +109 -0
  103. package/dist/games/tetris/index.js +610 -0
  104. package/dist/games/tetris/pieces.d.ts +44 -0
  105. package/dist/games/tetris/pieces.js +271 -0
  106. package/dist/games/tetris/renderer.d.ts +26 -0
  107. package/dist/games/tetris/renderer.js +77 -0
  108. package/dist/guide/guide-content.d.ts +23 -0
  109. package/dist/guide/guide-content.js +196 -0
  110. package/dist/guide/index.d.ts +8 -0
  111. package/dist/guide/index.js +7 -0
  112. package/dist/guide/shared-content.d.ts +37 -0
  113. package/dist/guide/shared-content.js +1272 -0
  114. package/dist/guide/tutorial-helpers.d.ts +57 -0
  115. package/dist/guide/tutorial-helpers.js +147 -0
  116. package/dist/handlers/ask-user-handlers.d.ts +32 -0
  117. package/dist/handlers/ask-user-handlers.js +104 -0
  118. package/dist/handlers/delegation-handlers.d.ts +34 -0
  119. package/dist/handlers/delegation-handlers.js +291 -0
  120. package/dist/handlers/permission-handler.d.ts +30 -0
  121. package/dist/handlers/permission-handler.js +205 -0
  122. package/dist/index.d.ts +11 -1
  123. package/dist/index.js +448 -271
  124. package/dist/input-handlers/memory-handler.d.ts +1 -1
  125. package/dist/input-handlers/memory-handler.js +2 -1
  126. package/dist/models/index.d.ts +10 -0
  127. package/dist/models/index.js +12 -0
  128. package/dist/models/model-registry.d.ts +38 -0
  129. package/dist/models/model-registry.js +69 -0
  130. package/dist/models/model-tiers.d.ts +28 -0
  131. package/dist/models/model-tiers.js +71 -0
  132. package/dist/models/model-validation.d.ts +25 -0
  133. package/dist/models/model-validation.js +291 -0
  134. package/dist/models/ollama-models.d.ts +73 -0
  135. package/dist/models/ollama-models.js +178 -0
  136. package/dist/models/provider-types.d.ts +6 -0
  137. package/dist/models/provider-types.js +1 -0
  138. package/dist/models/providers.d.ts +35 -0
  139. package/dist/models/providers.js +58 -0
  140. package/dist/models/types.d.ts +4 -0
  141. package/dist/models/types.js +4 -0
  142. package/dist/multi-agent/activity.d.ts +21 -0
  143. package/dist/multi-agent/activity.js +34 -0
  144. package/dist/multi-agent/agent-selection.d.ts +55 -0
  145. package/dist/multi-agent/agent-selection.js +90 -0
  146. package/dist/multi-agent/artifacts.d.ts +197 -0
  147. package/dist/multi-agent/artifacts.js +379 -0
  148. package/dist/multi-agent/checkpointer.d.ts +138 -0
  149. package/dist/multi-agent/checkpointer.js +471 -0
  150. package/dist/multi-agent/collision-utils.d.ts +16 -0
  151. package/dist/multi-agent/collision-utils.js +28 -0
  152. package/dist/multi-agent/context-resolver.d.ts +97 -0
  153. package/dist/multi-agent/context-resolver.js +316 -0
  154. package/dist/multi-agent/custom-agents.d.ts +83 -0
  155. package/dist/multi-agent/custom-agents.js +227 -0
  156. package/dist/multi-agent/delegation-tracker.d.ts +157 -0
  157. package/dist/multi-agent/delegation-tracker.js +243 -0
  158. package/dist/multi-agent/file-lock-hook.d.ts +29 -0
  159. package/dist/multi-agent/file-lock-hook.js +97 -0
  160. package/dist/multi-agent/file-locks.d.ts +58 -0
  161. package/dist/multi-agent/file-locks.js +194 -0
  162. package/dist/multi-agent/index.d.ts +24 -0
  163. package/dist/multi-agent/index.js +30 -0
  164. package/dist/multi-agent/mention-parser.d.ts +64 -0
  165. package/dist/multi-agent/mention-parser.js +146 -0
  166. package/dist/multi-agent/notification-manager.d.ts +84 -0
  167. package/dist/multi-agent/notification-manager.js +224 -0
  168. package/dist/multi-agent/pending-requests.d.ts +122 -0
  169. package/dist/multi-agent/pending-requests.js +155 -0
  170. package/dist/multi-agent/session-registry.d.ts +139 -0
  171. package/dist/multi-agent/session-registry.js +514 -0
  172. package/dist/multi-agent/shared-context.d.ts +293 -0
  173. package/dist/multi-agent/shared-context.js +671 -0
  174. package/dist/multi-agent/skill-requirements.d.ts +66 -0
  175. package/dist/multi-agent/skill-requirements.js +178 -0
  176. package/dist/multi-agent/task-assignment.d.ts +69 -0
  177. package/dist/multi-agent/task-assignment.js +123 -0
  178. package/dist/multi-agent/task-suggestion.d.ts +31 -0
  179. package/dist/multi-agent/task-suggestion.js +72 -0
  180. package/dist/multi-agent/team-agent.d.ts +201 -0
  181. package/dist/multi-agent/team-agent.js +488 -0
  182. package/dist/multi-agent/team.d.ts +286 -0
  183. package/dist/multi-agent/team.js +610 -0
  184. package/dist/multi-agent/tool-config.d.ts +110 -0
  185. package/dist/multi-agent/tool-config.js +661 -0
  186. package/dist/multi-agent/types.d.ts +211 -0
  187. package/dist/multi-agent/types.js +617 -0
  188. package/dist/prompts/plan-mode-prompt.d.ts +11 -0
  189. package/dist/prompts/plan-mode-prompt.js +95 -0
  190. package/dist/repl-helpers.js +5 -2
  191. package/dist/repl-v2.d.ts +401 -2
  192. package/dist/repl-v2.js +2588 -65
  193. package/dist/session/index.d.ts +6 -0
  194. package/dist/session/index.js +6 -0
  195. package/dist/session/project-session-manager.d.ts +158 -0
  196. package/dist/session/project-session-manager.js +650 -0
  197. package/dist/settings/index.d.ts +133 -13
  198. package/dist/settings/index.js +329 -24
  199. package/dist/settings/mcp-config.d.ts +76 -0
  200. package/dist/settings/mcp-config.js +143 -0
  201. package/dist/settings/paths.d.ts +4 -0
  202. package/dist/settings/paths.js +6 -0
  203. package/dist/shared-handlers.d.ts +62 -0
  204. package/dist/shared-handlers.js +48 -0
  205. package/dist/system-prompt/builder.d.ts +5 -0
  206. package/dist/system-prompt/builder.js +4 -0
  207. package/dist/system-prompt/index.d.ts +18 -0
  208. package/dist/system-prompt/index.js +18 -0
  209. package/dist/system-prompt/modules.d.ts +5 -0
  210. package/dist/system-prompt/modules.js +4 -0
  211. package/dist/tabbed-menu.js +2 -1
  212. package/dist/templates/compilr-md-import.d.ts +16 -0
  213. package/dist/templates/compilr-md-import.js +241 -0
  214. package/dist/templates/compilr-md.js +10 -61
  215. package/dist/templates/config-json.d.ts +1 -25
  216. package/dist/templates/index.d.ts +2 -0
  217. package/dist/templates/index.js +34 -73
  218. package/dist/tool-names.d.ts +113 -0
  219. package/dist/tool-names.js +239 -0
  220. package/dist/tools/ask-user-simple.d.ts +1 -1
  221. package/dist/tools/ask-user-simple.js +2 -1
  222. package/dist/tools/ask-user.d.ts +1 -1
  223. package/dist/tools/ask-user.js +2 -1
  224. package/dist/tools/backlog.d.ts +2 -2
  225. package/dist/tools/backlog.js +1 -1
  226. package/dist/tools/db-tools.d.ts +13 -61
  227. package/dist/tools/db-tools.js +12 -13
  228. package/dist/tools/delegate-background.d.ts +27 -0
  229. package/dist/tools/delegate-background.js +115 -0
  230. package/dist/tools/delegate.d.ts +22 -0
  231. package/dist/tools/delegate.js +97 -0
  232. package/dist/tools/delegation-status.d.ts +16 -0
  233. package/dist/tools/delegation-status.js +128 -0
  234. package/dist/tools/guide-tool.d.ts +12 -0
  235. package/dist/tools/guide-tool.js +59 -0
  236. package/dist/tools/handoff.d.ts +25 -0
  237. package/dist/tools/handoff.js +99 -0
  238. package/dist/tools/meta-tools.d.ts +26 -0
  239. package/dist/tools/meta-tools.js +47 -0
  240. package/dist/tools/platform-adapter.d.ts +35 -0
  241. package/dist/tools/platform-adapter.js +404 -0
  242. package/dist/tools/project-db.d.ts +5 -73
  243. package/dist/tools/project-db.js +5 -336
  244. package/dist/tools.d.ts +67 -2
  245. package/dist/tools.js +240 -48
  246. package/dist/ui/autocomplete-controller.d.ts +42 -0
  247. package/dist/ui/autocomplete-controller.js +384 -0
  248. package/dist/ui/base/index.d.ts +1 -1
  249. package/dist/ui/base/index.js +1 -1
  250. package/dist/ui/base/overlay-base-v2.d.ts +10 -0
  251. package/dist/ui/base/overlay-base-v2.js +14 -0
  252. package/dist/ui/base/render-utils.d.ts +19 -0
  253. package/dist/ui/base/render-utils.js +25 -0
  254. package/dist/ui/base/tabbed-list-overlay-v2.d.ts +16 -1
  255. package/dist/ui/base/tabbed-list-overlay-v2.js +19 -1
  256. package/dist/ui/constants/labels.d.ts +14 -0
  257. package/dist/ui/constants/labels.js +52 -0
  258. package/dist/ui/conversation-store.d.ts +55 -0
  259. package/dist/ui/conversation-store.js +107 -0
  260. package/dist/ui/conversation.js +11 -13
  261. package/dist/ui/diff.d.ts +7 -1
  262. package/dist/ui/diff.js +85 -48
  263. package/dist/ui/ephemeral.js +3 -9
  264. package/dist/ui/file-autocomplete.d.ts +24 -0
  265. package/dist/ui/file-autocomplete.js +56 -0
  266. package/dist/ui/footer-renderer.d.ts +69 -0
  267. package/dist/ui/footer-renderer.js +431 -0
  268. package/dist/ui/footer.d.ts +74 -7
  269. package/dist/ui/footer.js +173 -16
  270. package/dist/ui/input-controller.d.ts +51 -0
  271. package/dist/ui/input-controller.js +176 -0
  272. package/dist/ui/input-prompt.d.ts +19 -0
  273. package/dist/ui/input-prompt.js +206 -14
  274. package/dist/ui/keyboard-handler.d.ts +57 -0
  275. package/dist/ui/keyboard-handler.js +557 -0
  276. package/dist/ui/live-region-facade.d.ts +42 -0
  277. package/dist/ui/live-region-facade.js +205 -0
  278. package/dist/ui/live-region.d.ts +0 -4
  279. package/dist/ui/live-region.js +6 -14
  280. package/dist/ui/mascot/renderer.d.ts +1 -1
  281. package/dist/ui/mascot/renderer.js +37 -2
  282. package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
  283. package/dist/ui/overlay/data/tutorial-content.js +9 -0
  284. package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
  285. package/dist/ui/overlay/data/tutorial-registry.js +116 -0
  286. package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
  287. package/dist/ui/overlay/data/tutorial-types.js +6 -0
  288. package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
  289. package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
  290. package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
  291. package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
  292. package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
  293. package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
  294. package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
  295. package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
  296. package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
  297. package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
  298. package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
  299. package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
  300. package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
  301. package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
  302. package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
  303. package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
  304. package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
  305. package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
  306. package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
  307. package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
  308. package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
  309. package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
  310. package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
  311. package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
  312. package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
  313. package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
  314. package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
  315. package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
  316. package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
  317. package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
  318. package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
  319. package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
  320. package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
  321. package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
  322. package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
  323. package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
  324. package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
  325. package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
  326. package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
  327. package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
  328. package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
  329. package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
  330. package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
  331. package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
  332. package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
  333. package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
  334. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
  335. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
  336. package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
  337. package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
  338. package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
  339. package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
  340. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
  341. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
  342. package/dist/ui/overlay/impl/agents-overlay-v2.js +6 -17
  343. package/dist/ui/overlay/impl/anchors-overlay-v2.js +30 -64
  344. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
  345. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
  346. package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
  347. package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
  348. package/dist/ui/overlay/impl/ask-user-overlay-v2.js +2 -5
  349. package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
  350. package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
  351. package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +4 -1
  352. package/dist/ui/overlay/impl/backlog-overlay-v2.js +55 -16
  353. package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
  354. package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
  355. package/dist/ui/overlay/impl/commands-overlay-v2.js +4 -6
  356. package/dist/ui/overlay/impl/config-overlay-v2.d.ts +12 -1
  357. package/dist/ui/overlay/impl/config-overlay-v2.js +164 -100
  358. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
  359. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
  360. package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +2 -0
  361. package/dist/ui/overlay/impl/dashboard-overlay-v2.js +26 -3
  362. package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
  363. package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
  364. package/dist/ui/overlay/impl/docs-overlay-v2.js +12 -9
  365. package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +7 -0
  366. package/dist/ui/overlay/impl/document-detail-overlay-v2.js +119 -78
  367. package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
  368. package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
  369. package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
  370. package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
  371. package/dist/ui/overlay/impl/help-overlay-v2.d.ts +26 -3
  372. package/dist/ui/overlay/impl/help-overlay-v2.js +20 -42
  373. package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
  374. package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
  375. package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
  376. package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
  377. package/dist/ui/overlay/impl/model-overlay-v2.d.ts +57 -13
  378. package/dist/ui/overlay/impl/model-overlay-v2.js +1086 -61
  379. package/dist/ui/overlay/impl/new-overlay-v2.d.ts +37 -6
  380. package/dist/ui/overlay/impl/new-overlay-v2.js +715 -65
  381. package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
  382. package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
  383. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
  384. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
  385. package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
  386. package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
  387. package/dist/ui/overlay/impl/permission-overlay-v2.js +5 -5
  388. package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
  389. package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
  390. package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
  391. package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
  392. package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
  393. package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
  394. package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +1 -0
  395. package/dist/ui/overlay/impl/projects-overlay-v2.js +278 -44
  396. package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
  397. package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
  398. package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
  399. package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
  400. package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
  401. package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
  402. package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
  403. package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
  404. package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
  405. package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
  406. package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
  407. package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
  408. package/dist/ui/overlay/impl/tools-overlay-v2.js +3 -7
  409. package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +30 -16
  410. package/dist/ui/overlay/impl/tutorial-overlay-v2.js +133 -956
  411. package/dist/ui/overlay/impl/workflow-overlay-v2.d.ts +1 -0
  412. package/dist/ui/overlay/impl/workflow-overlay-v2.js +10 -4
  413. package/dist/ui/overlay/index.d.ts +20 -1
  414. package/dist/ui/overlay/index.js +19 -0
  415. package/dist/ui/overlay/types.d.ts +5 -0
  416. package/dist/ui/overlay-manager.d.ts +43 -0
  417. package/dist/ui/overlay-manager.js +238 -0
  418. package/dist/ui/overlays.js +4 -16
  419. package/dist/ui/permission-overlay.js +6 -5
  420. package/dist/ui/status-bar-controller.d.ts +33 -0
  421. package/dist/ui/status-bar-controller.js +99 -0
  422. package/dist/ui/subagent-renderer.js +3 -19
  423. package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
  424. package/dist/ui/terminal-autocomplete-utils.js +83 -0
  425. package/dist/ui/terminal-line-builders.d.ts +17 -0
  426. package/dist/ui/terminal-line-builders.js +42 -0
  427. package/dist/ui/terminal-render-item.d.ts +16 -0
  428. package/dist/ui/terminal-render-item.js +267 -0
  429. package/dist/ui/terminal-renderer.d.ts +7 -8
  430. package/dist/ui/terminal-renderer.js +7 -8
  431. package/dist/ui/terminal-types.d.ts +179 -0
  432. package/dist/ui/terminal-types.js +34 -0
  433. package/dist/ui/terminal-ui.d.ts +144 -276
  434. package/dist/ui/terminal-ui.js +384 -1861
  435. package/dist/ui/todo-zone.d.ts +19 -1
  436. package/dist/ui/todo-zone.js +71 -13
  437. package/dist/ui/tool-formatters.js +696 -1
  438. package/dist/ui/turn-metrics.d.ts +56 -0
  439. package/dist/ui/turn-metrics.js +75 -0
  440. package/dist/ui/types.d.ts +28 -0
  441. package/dist/ui/types.js +1 -0
  442. package/dist/ui/vscode-diff-ipc.d.ts +102 -0
  443. package/dist/ui/vscode-diff-ipc.js +385 -0
  444. package/dist/utils/credentials.d.ts +24 -5
  445. package/dist/utils/credentials.js +123 -9
  446. package/dist/utils/format-tokens.d.ts +13 -0
  447. package/dist/utils/format-tokens.js +18 -0
  448. package/dist/utils/git-config.d.ts +26 -0
  449. package/dist/utils/git-config.js +54 -0
  450. package/dist/utils/message-utils.d.ts +61 -0
  451. package/dist/utils/message-utils.js +72 -0
  452. package/dist/utils/model-tiers.d.ts +8 -1
  453. package/dist/utils/model-tiers.js +38 -16
  454. package/dist/utils/open-browser.d.ts +5 -0
  455. package/dist/utils/open-browser.js +32 -0
  456. package/dist/utils/path-safety.js +3 -2
  457. package/dist/utils/project-detection.d.ts +58 -0
  458. package/dist/utils/project-detection.js +424 -0
  459. package/dist/utils/project-memory.js +2 -1
  460. package/dist/utils/project-status.d.ts +2 -2
  461. package/dist/utils/startup-perf.d.ts +18 -0
  462. package/dist/utils/startup-perf.js +60 -0
  463. package/dist/utils/token-tracker.d.ts +62 -0
  464. package/dist/utils/token-tracker.js +150 -0
  465. package/dist/utils/token-types.d.ts +23 -0
  466. package/dist/utils/token-types.js +18 -0
  467. package/dist/utils/types/config-types.d.ts +32 -0
  468. package/dist/utils/types/config-types.js +8 -0
  469. package/dist/utils/update-checker.d.ts +28 -0
  470. package/dist/utils/update-checker.js +106 -0
  471. package/dist/utils/version.d.ts +7 -0
  472. package/dist/utils/version.js +10 -0
  473. package/dist/utils/vscode-detect.d.ts +39 -0
  474. package/dist/utils/vscode-detect.js +137 -0
  475. package/package.json +27 -13
  476. package/dist/commands/handler-types.d.ts +0 -68
  477. package/dist/commands/handler-types.js +0 -8
  478. package/dist/commands/handlers/agent-commands.d.ts +0 -13
  479. package/dist/commands/handlers/agent-commands.js +0 -305
  480. package/dist/commands/handlers/design-commands.d.ts +0 -15
  481. package/dist/commands/handlers/design-commands.js +0 -334
  482. package/dist/commands/handlers/index.d.ts +0 -20
  483. package/dist/commands/handlers/index.js +0 -43
  484. package/dist/commands/handlers/overlay-commands.d.ts +0 -21
  485. package/dist/commands/handlers/overlay-commands.js +0 -287
  486. package/dist/commands/handlers/project-commands.d.ts +0 -11
  487. package/dist/commands/handlers/project-commands.js +0 -167
  488. package/dist/commands/handlers/simple-commands.d.ts +0 -19
  489. package/dist/commands/handlers/simple-commands.js +0 -144
  490. package/dist/commands/registry.d.ts +0 -50
  491. package/dist/commands/registry.js +0 -75
  492. package/dist/index.old.d.ts +0 -7
  493. package/dist/index.old.js +0 -1014
  494. package/dist/repl.d.ts +0 -149
  495. package/dist/repl.js +0 -1151
  496. package/dist/templates/claude-md.d.ts +0 -7
  497. package/dist/templates/claude-md.js +0 -189
  498. package/dist/test-autocomplete.d.ts +0 -7
  499. package/dist/test-autocomplete.js +0 -85
  500. package/dist/test-tabbed-menu.d.ts +0 -7
  501. package/dist/test-tabbed-menu.js +0 -25
  502. package/dist/tool-selector.d.ts +0 -71
  503. package/dist/tool-selector.js +0 -184
  504. package/dist/tools/anchor-tools.d.ts +0 -31
  505. package/dist/tools/anchor-tools.js +0 -255
  506. package/dist/tools/backlog-wrappers.d.ts +0 -54
  507. package/dist/tools/backlog-wrappers.js +0 -338
  508. package/dist/tools/document-db.d.ts +0 -43
  509. package/dist/tools/document-db.js +0 -220
  510. package/dist/tools/workitem-db.d.ts +0 -103
  511. package/dist/tools/workitem-db.js +0 -549
  512. package/dist/ui/agents-overlay-v2.d.ts +0 -43
  513. package/dist/ui/agents-overlay-v2.js +0 -809
  514. package/dist/ui/agents-overlay.d.ts +0 -12
  515. package/dist/ui/agents-overlay.js +0 -863
  516. package/dist/ui/anchors-overlay.d.ts +0 -12
  517. package/dist/ui/anchors-overlay.js +0 -775
  518. package/dist/ui/arch-type-overlay.d.ts +0 -15
  519. package/dist/ui/arch-type-overlay.js +0 -201
  520. package/dist/ui/ask-user-overlay-v2.d.ts +0 -26
  521. package/dist/ui/ask-user-overlay-v2.js +0 -555
  522. package/dist/ui/ask-user-simple-overlay-v2.d.ts +0 -25
  523. package/dist/ui/ask-user-simple-overlay-v2.js +0 -215
  524. package/dist/ui/backlog-overlay.d.ts +0 -32
  525. package/dist/ui/backlog-overlay.js +0 -652
  526. package/dist/ui/commands-overlay-v2.d.ts +0 -33
  527. package/dist/ui/commands-overlay-v2.js +0 -441
  528. package/dist/ui/commands-overlay.d.ts +0 -16
  529. package/dist/ui/commands-overlay.js +0 -439
  530. package/dist/ui/config-overlay.d.ts +0 -35
  531. package/dist/ui/config-overlay.js +0 -707
  532. package/dist/ui/docs-overlay.d.ts +0 -17
  533. package/dist/ui/docs-overlay.js +0 -303
  534. package/dist/ui/footer-v2.d.ts +0 -222
  535. package/dist/ui/footer-v2.js +0 -1349
  536. package/dist/ui/help-overlay-v2.d.ts +0 -34
  537. package/dist/ui/help-overlay-v2.js +0 -309
  538. package/dist/ui/help-overlay.d.ts +0 -16
  539. package/dist/ui/help-overlay.js +0 -316
  540. package/dist/ui/init-overlay-v2.d.ts +0 -34
  541. package/dist/ui/init-overlay-v2.js +0 -600
  542. package/dist/ui/init-overlay.d.ts +0 -34
  543. package/dist/ui/init-overlay.js +0 -604
  544. package/dist/ui/input-prompt-v2.d.ts +0 -180
  545. package/dist/ui/input-prompt-v2.js +0 -999
  546. package/dist/ui/iteration-limit-overlay-v2.d.ts +0 -21
  547. package/dist/ui/iteration-limit-overlay-v2.js +0 -114
  548. package/dist/ui/keys-overlay-v2.d.ts +0 -41
  549. package/dist/ui/keys-overlay-v2.js +0 -248
  550. package/dist/ui/mascot-overlay-v2.d.ts +0 -41
  551. package/dist/ui/mascot-overlay-v2.js +0 -138
  552. package/dist/ui/mascot-overlay.d.ts +0 -21
  553. package/dist/ui/mascot-overlay.js +0 -146
  554. package/dist/ui/model-overlay-v2.d.ts +0 -49
  555. package/dist/ui/model-overlay-v2.js +0 -118
  556. package/dist/ui/model-overlay.d.ts +0 -27
  557. package/dist/ui/model-overlay.js +0 -221
  558. package/dist/ui/model-warning-overlay.d.ts +0 -30
  559. package/dist/ui/model-warning-overlay.js +0 -169
  560. package/dist/ui/new-overlay.d.ts +0 -34
  561. package/dist/ui/new-overlay.js +0 -604
  562. package/dist/ui/overlay/impl/init-overlay-v2.d.ts +0 -77
  563. package/dist/ui/overlay/impl/init-overlay-v2.js +0 -593
  564. package/dist/ui/overlay/overlay-types.d.ts +0 -128
  565. package/dist/ui/overlay/overlay-types.js +0 -22
  566. package/dist/ui/overlays/help-overlay-v2.d.ts +0 -28
  567. package/dist/ui/overlays/help-overlay-v2.js +0 -198
  568. package/dist/ui/overlays/index.d.ts +0 -11
  569. package/dist/ui/overlays/index.js +0 -11
  570. package/dist/ui/permission-overlay-v2.d.ts +0 -36
  571. package/dist/ui/permission-overlay-v2.js +0 -380
  572. package/dist/ui/projects-overlay.d.ts +0 -19
  573. package/dist/ui/projects-overlay.js +0 -484
  574. package/dist/ui/theme-overlay-v2.d.ts +0 -42
  575. package/dist/ui/theme-overlay-v2.js +0 -135
  576. package/dist/ui/theme-overlay.d.ts +0 -24
  577. package/dist/ui/theme-overlay.js +0 -127
  578. package/dist/ui/tools-overlay-v2.d.ts +0 -47
  579. package/dist/ui/tools-overlay-v2.js +0 -218
  580. package/dist/ui/tools-overlay.d.ts +0 -34
  581. package/dist/ui/tools-overlay.js +0 -230
  582. package/dist/ui/tutorial-overlay-v2.d.ts +0 -31
  583. package/dist/ui/tutorial-overlay-v2.js +0 -1035
  584. package/dist/ui/tutorial-overlay.d.ts +0 -11
  585. package/dist/ui/tutorial-overlay.js +0 -1034
  586. package/dist/ui/workflow-overlay.d.ts +0 -22
  587. package/dist/ui/workflow-overlay.js +0 -636
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Team Overview Tutorial
3
+ *
4
+ * Introduction to multi-agent teams and the /team command.
5
+ */
6
+ export const teamOverviewTutorial = (s) => ({
7
+ id: 'team-overview',
8
+ title: 'Multi-Agent Teams',
9
+ description: 'Specialized AI assistants',
10
+ pages: [
11
+ // Page 1: Introduction
12
+ {
13
+ title: 'Multi-Agent Teams',
14
+ lines: [
15
+ '',
16
+ ` Teams let you add ${s.primaryBold('specialized AI agents')} to your project,`,
17
+ ` each with different expertise, tools, and model tiers.`,
18
+ '',
19
+ ` ${s.secondary('Why use teams?')}`,
20
+ '',
21
+ ` ${s.muted('•')} ${s.primaryBold('Focused expertise')} — each agent knows its role`,
22
+ ` ${s.muted('•')} ${s.primaryBold('Cost control')} — use fast models for simple tasks`,
23
+ ` ${s.muted('•')} ${s.primaryBold('Parallel work')} — run agents in the background`,
24
+ ` ${s.muted('•')} ${s.primaryBold('Tool isolation')} — agents only see relevant tools`,
25
+ '',
26
+ ` ${s.secondary('Quick start:')}`,
27
+ '',
28
+ ` ${s.primary('/team')} Open the team management overlay`,
29
+ ` ${s.primary('$arch')} Switch to the Architect agent`,
30
+ ` ${s.primary('$dev fix it')} Send a message to the Developer`,
31
+ '',
32
+ ],
33
+ },
34
+ // Page 2: The /team Overlay
35
+ {
36
+ title: 'The /team Overlay',
37
+ lines: [
38
+ '',
39
+ ` The ${s.primary('/team')} command opens an overlay with 3 tabs:`,
40
+ '',
41
+ ` ${s.primaryBold('Members')} — Your current team`,
42
+ '',
43
+ ` ${s.muted('Team Management [1/1]')}`,
44
+ '',
45
+ ` ${s.primary('>')} ${s.muted('[•_•] $default (Assistant) [Balanced]')} ${s.success('●')}`,
46
+ '',
47
+ ` ${s.primaryBold('Add Agent')} — Available roles to add`,
48
+ '',
49
+ ` ${s.muted('[▣_▣] PM [Planner] [Fast]')}`,
50
+ ` ${s.muted('[◈_◈] Solution Architect [Architect] [Powerful]')}`,
51
+ ` ${s.muted('[◉_◉] QA Engineer [QA / Testing] [Fast]')}`,
52
+ ` ${s.muted('[▲_▲] Developer [Developer] [Balanced]')}`,
53
+ ` ${s.muted('...')}`,
54
+ '',
55
+ ` ${s.primaryBold('Context')} — Per-agent token usage`,
56
+ '',
57
+ ` ${s.secondary('Navigation:')} Enter = view/add, Tab = switch tabs`,
58
+ '',
59
+ ],
60
+ },
61
+ // Page 3: Predefined Roles
62
+ {
63
+ title: 'Predefined Roles',
64
+ lines: [
65
+ '',
66
+ ` 7 specialized roles are available out of the box:`,
67
+ '',
68
+ ` ${s.muted('[▣_▣]')} ${s.primaryBold('$pm')} PM — planning, task tracking`,
69
+ ` ${s.muted('[◈_◈]')} ${s.primaryBold('$arch')} Architect — system design, patterns`,
70
+ ` ${s.muted('[◉_◉]')} ${s.primaryBold('$qa')} QA — testing, code review`,
71
+ ` ${s.muted('[▲_▲]')} ${s.primaryBold('$dev')} Developer — implementation, debugging`,
72
+ ` ${s.muted('[◆_◆]')} ${s.primaryBold('$ops')} DevOps — deployment, CI/CD`,
73
+ ` ${s.muted('[○_○]')} ${s.primaryBold('$docs')} Writer — documentation, guides`,
74
+ ` ${s.muted('[◇_◇]')} ${s.primaryBold('$ba')} Analyst — requirements, metrics`,
75
+ '',
76
+ ` Each role comes with:`,
77
+ '',
78
+ ` ${s.muted('•')} A default ${s.primaryBold('tool profile')} (what tools it can use)`,
79
+ ` ${s.muted('•')} A default ${s.primaryBold('model tier')} (fast/balanced/powerful)`,
80
+ ` ${s.muted('•')} A ${s.primaryBold('system prompt')} with role-specific guidance`,
81
+ '',
82
+ ],
83
+ },
84
+ // Page 4: Adding an Agent
85
+ {
86
+ title: 'Adding an Agent',
87
+ lines: [
88
+ '',
89
+ ` Go to the ${s.primaryBold('Add Agent')} tab and select a role:`,
90
+ '',
91
+ ` ${s.muted('Add [▣_▣] PM')}`,
92
+ '',
93
+ ` ${s.muted(' Project planning, task tracking')}`,
94
+ '',
95
+ ` ${s.muted('▶ Agent ID: $pm (default)')}`,
96
+ '',
97
+ ` ${s.muted(' Model Tier: [Fast (default)]')}`,
98
+ '',
99
+ ` ${s.muted(' [ ] Set as default for PM')}`,
100
+ '',
101
+ ` You can customize:`,
102
+ '',
103
+ ` ${s.muted('•')} ${s.primaryBold('Agent ID')} — custom name (e.g., $sarah)`,
104
+ ` ${s.muted('•')} ${s.primaryBold('Model Tier')} — override the default tier`,
105
+ '',
106
+ ` Press ${s.primaryBold('Enter')} to add the agent to your team.`,
107
+ '',
108
+ ` ${s.success('[^_^]')} ${s.muted('Added [▣_▣] $pm (PM) to team')}`,
109
+ '',
110
+ ],
111
+ },
112
+ // Page 5: Agent Details
113
+ {
114
+ title: 'Agent Details',
115
+ lines: [
116
+ '',
117
+ ` In the ${s.primaryBold('Members')} tab, press Enter on an agent to see details:`,
118
+ '',
119
+ ` ${s.muted('•')} Agent ID, role, display name`,
120
+ ` ${s.muted('•')} Model tier and actual model ID`,
121
+ ` ${s.muted('•')} Status (active, idle)`,
122
+ '',
123
+ ` ${s.secondary('Actions in the detail view:')}`,
124
+ '',
125
+ ` ${s.primaryBold('Enter')} Switch to this agent`,
126
+ ` ${s.primaryBold('t')} Change model tier (fast/balanced/powerful)`,
127
+ ` ${s.primaryBold('d')} Remove from team (except $default)`,
128
+ ` ${s.primaryBold('Esc')} Go back`,
129
+ '',
130
+ ` ${s.secondary('From the command line:')}`,
131
+ '',
132
+ ` ${s.primary('/team add dev')} Add developer agent`,
133
+ ` ${s.primary('/team remove qa')} Remove QA agent`,
134
+ ` ${s.primary('/team status')} Quick team overview`,
135
+ '',
136
+ ],
137
+ },
138
+ // Page 6: The Default Agent
139
+ {
140
+ title: 'The Default Agent',
141
+ lines: [
142
+ '',
143
+ ` Every project starts with ${s.primaryBold('$default')} — a general-purpose`,
144
+ ` agent with full tool access and balanced model tier.`,
145
+ '',
146
+ ` ${s.secondary('Key facts:')}`,
147
+ '',
148
+ ` ${s.muted('•')} Cannot be removed`,
149
+ ` ${s.muted('•')} Has access to all tools and skills`,
150
+ ` ${s.muted('•')} Good for general tasks and exploration`,
151
+ ` ${s.muted('•')} When you start a conversation, $default is active`,
152
+ '',
153
+ ` ${s.secondary('When to add specialized agents:')}`,
154
+ '',
155
+ ` ${s.muted('•')} You want a focused perspective (QA, architecture)`,
156
+ ` ${s.muted('•')} You want to use a cheaper model for simple tasks`,
157
+ ` ${s.muted('•')} You want agents working in parallel`,
158
+ '',
159
+ ` ${s.warning('TIP:')} Start with just $default. Add agents as needed`,
160
+ ` — you don't have to set up a full team upfront.`,
161
+ '',
162
+ ],
163
+ },
164
+ ],
165
+ });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Working with Agents Tutorial
3
+ *
4
+ * Covers $ prefix switching, autocomplete, custom agents, and tool profiles.
5
+ */
6
+ import type { TutorialBuilder } from '../../tutorial-types.js';
7
+ export declare const workingWithAgentsTutorial: TutorialBuilder;
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Working with Agents Tutorial
3
+ *
4
+ * Covers $ prefix switching, autocomplete, custom agents, and tool profiles.
5
+ */
6
+ export const workingWithAgentsTutorial = (s) => ({
7
+ id: 'working-with-agents',
8
+ title: 'Working with Agents',
9
+ description: 'Switch, mention, and customize',
10
+ pages: [
11
+ // Page 1: The $ Prefix
12
+ {
13
+ title: 'The $ Prefix',
14
+ lines: [
15
+ '',
16
+ ` The ${s.primaryBold('$')} prefix is how you interact with team agents.`,
17
+ '',
18
+ ` ${s.secondary('Switch to an agent:')}`,
19
+ '',
20
+ ` ${s.primary('$arch')} Switch to the Architect`,
21
+ ` ${s.primary('$dev fix the bug')} Switch to Dev and send message`,
22
+ '',
23
+ ` ${s.secondary('Autocomplete:')}`,
24
+ ` Type ${s.primaryBold('$')} and a dropdown shows your team:`,
25
+ '',
26
+ ` ${s.primary('>')} ${s.muted('[•_•] $default - Assistant')}`,
27
+ ` ${s.muted('[▣_▣] $pm - PM')}`,
28
+ ` ${s.muted('[▲_▲] $dev - Developer')}`,
29
+ ` ${s.muted('[⊡_⊡] $myagent - hal9000')}`,
30
+ '',
31
+ ` Keep typing to filter, then press Enter to select.`,
32
+ '',
33
+ ` The footer shows the active agent:`,
34
+ ` ${s.muted('[⊡_⊡] $myagent (hal9000) Project: My App')}`,
35
+ '',
36
+ ],
37
+ },
38
+ // Page 2: Agent Awareness
39
+ {
40
+ title: 'Agent Awareness',
41
+ lines: [
42
+ '',
43
+ ` Each agent knows its role and expertise:`,
44
+ '',
45
+ ` ${s.primary('$myagent')} ${s.muted('what is your specialty?')}`,
46
+ '',
47
+ ` ${s.muted('[⊡_⊡] > I specialize in quality assurance')}`,
48
+ ` ${s.muted('and testing. My approach is accurate and')}`,
49
+ ` ${s.muted('detail-oriented.')}`,
50
+ '',
51
+ ` Agents also know about their teammates and can`,
52
+ ` suggest delegation:`,
53
+ '',
54
+ ` ${s.muted('[⊡_⊡] > This is outside my specialty.')}`,
55
+ ` ${s.muted('Try $dev for implementation details')}`,
56
+ ` ${s.muted('or $pm for task prioritization.')}`,
57
+ '',
58
+ ` ${s.secondary('Mention agents in messages:')}`,
59
+ '',
60
+ ` ${s.muted('"What did $arch propose for the API?"')}`,
61
+ ` ${s.muted('"Based on $pm\'s plan, estimate effort"')}`,
62
+ '',
63
+ ],
64
+ },
65
+ // Page 3: Tool Profiles
66
+ {
67
+ title: 'Tool Profiles',
68
+ lines: [
69
+ '',
70
+ ` Each agent has a ${s.primaryBold('tool profile')} that controls what`,
71
+ ` tools it can access:`,
72
+ '',
73
+ ` ${s.primaryBold('Full Access')} All tools (default agent)`,
74
+ ` ${s.primaryBold('Developer')} File access, git, runners`,
75
+ ` ${s.primaryBold('Planner')} Planning, backlog, documents`,
76
+ ` ${s.primaryBold('Architect')} Read code, design tools`,
77
+ ` ${s.primaryBold('QA / Testing')} Read code, run tests`,
78
+ ` ${s.primaryBold('DevOps')} Shell, git, runners`,
79
+ ` ${s.primaryBold('Documentation')} Read code, documents`,
80
+ ` ${s.primaryBold('Read Only')} File reading only`,
81
+ '',
82
+ ` A QA agent can read code and run tests, but ${s.warning('cannot')}`,
83
+ ` modify files. A planner can manage backlog but`,
84
+ ` ${s.warning('cannot')} run shell commands.`,
85
+ '',
86
+ ` This keeps agents focused and safe.`,
87
+ '',
88
+ ],
89
+ },
90
+ // Page 4: Model Tiers
91
+ {
92
+ title: 'Model Tiers',
93
+ lines: [
94
+ '',
95
+ ` Each agent has a ${s.primaryBold('model tier')} setting:`,
96
+ '',
97
+ ` ${s.primaryBold('Fast')} Quick responses, low cost`,
98
+ ` ${s.muted(' Claude Haiku, GPT-4o Mini, Gemini Flash')}`,
99
+ '',
100
+ ` ${s.primaryBold('Balanced')} Good quality/speed balance (default)`,
101
+ ` ${s.muted(' Claude Sonnet, GPT-4o, Gemini Pro')}`,
102
+ '',
103
+ ` ${s.primaryBold('Powerful')} Maximum capability`,
104
+ ` ${s.muted(' Claude Opus, GPT-4, Gemini Ultra')}`,
105
+ '',
106
+ ` ${s.secondary('Default tiers per role:')}`,
107
+ '',
108
+ ` ${s.muted('PM, QA, Docs')} → Fast (simple tasks)`,
109
+ ` ${s.muted('Dev, Ops, BA')} → Balanced (general work)`,
110
+ ` ${s.muted('Architect')} → Powerful (complex reasoning)`,
111
+ '',
112
+ ` Change an agent's tier: press ${s.primaryBold('t')} in the agent detail`,
113
+ ` view, or in the team overlay.`,
114
+ '',
115
+ ],
116
+ },
117
+ // Page 5: Custom Agents
118
+ {
119
+ title: 'Custom Agents',
120
+ lines: [
121
+ '',
122
+ ` Create your own agent with the 4-step wizard:`,
123
+ ` ${s.muted('(select "Create Custom Agent..." in Add Agent tab)')}`,
124
+ '',
125
+ ` ${s.primaryBold('Step 1: Basic Info')}`,
126
+ ` ${s.muted('Agent ID, display name, specialty, personality')}`,
127
+ '',
128
+ ` ${s.primaryBold('Step 2: Tool Profile')}`,
129
+ ` ${s.muted('Full Access, Developer, QA, Custom, etc.')}`,
130
+ '',
131
+ ` ${s.primaryBold('Step 3: Skills')}`,
132
+ ` ${s.muted('Select specific skills or leave empty for all')}`,
133
+ ` ${s.muted('[x] code-review [x] debug [ ] refactor')}`,
134
+ '',
135
+ ` ${s.primaryBold('Step 4: Model Tier')}`,
136
+ ` ${s.muted('Fast / Balanced / Powerful')}`,
137
+ '',
138
+ ` ${s.success('Created $myagent (hal9000, QA, Balanced)')}`,
139
+ '',
140
+ ` Custom agents are saved per-project and persist`,
141
+ ` across sessions.`,
142
+ '',
143
+ ],
144
+ },
145
+ // Page 6: Tips
146
+ {
147
+ title: 'Tips & Best Practices',
148
+ lines: [
149
+ '',
150
+ ` ${s.secondary('Start small:')}`,
151
+ ` Don't add all 7 agents at once. Add them as needed.`,
152
+ '',
153
+ ` ${s.secondary('Use fast models for review tasks:')}`,
154
+ ` QA, docs, and planning don't need powerful models.`,
155
+ '',
156
+ ` ${s.secondary('Use $ autocomplete:')}`,
157
+ ` Type ${s.primaryBold('$')} to see your team at a glance.`,
158
+ '',
159
+ ` ${s.secondary('Let agents suggest delegation:')}`,
160
+ ` Ask one agent and they'll recommend the right teammate.`,
161
+ '',
162
+ ` ${s.secondary('Context is isolated:')}`,
163
+ ` Each agent has its own conversation history.`,
164
+ ` Use ${s.primary('/team')} Context tab to monitor token usage.`,
165
+ '',
166
+ ` ${s.secondary('Next:')} Learn about ${s.primary('Background Execution')}`,
167
+ ` to run agents in parallel.`,
168
+ '',
169
+ ],
170
+ },
171
+ ],
172
+ });
@@ -10,7 +10,7 @@
10
10
  * - Wizard mode: Step-by-step agent creation
11
11
  */
12
12
  import * as terminal from '../../terminal.js';
13
- import { TabbedListOverlayV2, BaseScreen, stay, popScreen, closeOverlay, isEscape, isCtrlC, isEnter, isNavigateUp, isNavigateDown, isBackspace, isClose, extractPrintable, renderBorder, wrapText, } from '../../base/index.js';
13
+ import { TabbedListOverlayV2, BaseScreen, stay, popScreen, closeOverlay, isEscape, isCtrlC, isEnter, isNavigateUp, isNavigateDown, isBackspace, isClose, extractPrintable, renderBorder, wrapText, truncate, } from '../../base/index.js';
14
14
  import { getAgentRegistry } from '../../../agents/registry.js';
15
15
  const TABS = [
16
16
  { id: 'builtin', label: 'Built-in' },
@@ -68,7 +68,7 @@ class DetailScreen extends BaseScreen {
68
68
  // Show first few lines of system prompt
69
69
  const promptLines = this.item.systemPrompt.split('\n').slice(0, 5);
70
70
  for (const line of promptLines) {
71
- const truncated = line.length > cols - 6 ? line.slice(0, cols - 9) + '...' : line;
71
+ const truncated = truncate(line, cols - 6);
72
72
  lines.push(` ${s.secondary(truncated)}`);
73
73
  }
74
74
  if (this.item.systemPrompt.split('\n').length > 5) {
@@ -169,8 +169,8 @@ class EditScreen extends BaseScreen {
169
169
  lines.push('');
170
170
  const fields = [
171
171
  { id: 'model', label: 'Model', value: this.editedAgent.model },
172
- { id: 'description', label: 'Description', value: this.truncate(this.editedAgent.description, 40) },
173
- { id: 'prompt', label: 'System Prompt', value: this.truncate(this.editedAgent.prompt, 40) },
172
+ { id: 'description', label: 'Description', value: truncate(this.editedAgent.description, 40) },
173
+ { id: 'prompt', label: 'System Prompt', value: truncate(this.editedAgent.prompt, 40) },
174
174
  { id: 'save', label: 'Save Changes', value: '' },
175
175
  { id: 'delete', label: 'Delete Agent', value: '' },
176
176
  { id: 'cancel', label: 'Cancel', value: '' },
@@ -415,13 +415,6 @@ class EditScreen extends BaseScreen {
415
415
  return stay();
416
416
  }
417
417
  }
418
- truncate(text, max) {
419
- if (!text)
420
- return '';
421
- if (text.length <= max)
422
- return text;
423
- return text.slice(0, max - 3) + '...';
424
- }
425
418
  /**
426
419
  * Minimum height for stable rendering.
427
420
  */
@@ -533,15 +526,11 @@ class WizardScreen extends BaseScreen {
533
526
  lines.push(` Model: ${s.primary(this.newAgent.model)}`);
534
527
  lines.push('');
535
528
  lines.push(` ${s.secondary('Description:')}`);
536
- const descPreview = this.newAgent.description.length > 60
537
- ? this.newAgent.description.slice(0, 57) + '...'
538
- : this.newAgent.description;
529
+ const descPreview = truncate(this.newAgent.description, 60);
539
530
  lines.push(` ${s.muted(descPreview)}`);
540
531
  lines.push('');
541
532
  lines.push(` ${s.secondary('System prompt:')}`);
542
- const promptPreview = this.newAgent.prompt.length > 60
543
- ? this.newAgent.prompt.slice(0, 57) + '...'
544
- : this.newAgent.prompt;
533
+ const promptPreview = truncate(this.newAgent.prompt, 60);
545
534
  lines.push(` ${s.muted(promptPreview)}`);
546
535
  lines.push('');
547
536
  lines.push(this.selectedOption === 0
@@ -10,7 +10,9 @@
10
10
  * Uses TabbedListOverlayV2 for consistent tabbed list behavior.
11
11
  */
12
12
  import { TabbedListOverlayV2 } from '../../base/tabbed-list-overlay-v2.js';
13
- import { BaseScreen, stay, popScreen, closeOverlay, renderBorder, } from '../../base/index.js';
13
+ import { BaseScreen, stay, popScreen, closeOverlay, renderBorder, truncate,
14
+ // Key detection functions (consolidated from ui-core)
15
+ isCtrlC, isEscape, isEnter, isBackspace, isTab, isShiftTab, isNavigateUp, isNavigateDown, isLeftArrow, isRightArrow, extractPrintable, } from '../../base/index.js';
14
16
  import { getGlobalAnchorManager, getAnchorManager, } from '../../../anchors/index.js';
15
17
  import { getActiveProject } from '../../../tools/project-db.js';
16
18
  import * as terminal from '../../terminal.js';
@@ -66,47 +68,7 @@ function loadAnchors(activeProjectId) {
66
68
  });
67
69
  return items;
68
70
  }
69
- // =============================================================================
70
- // Key Detection Helpers
71
- // =============================================================================
72
- function isCtrlC(data) {
73
- return data.length === 1 && data[0] === 0x03;
74
- }
75
- function isEscape(data) {
76
- return data.length === 1 && data[0] === 0x1b;
77
- }
78
- function isEnter(data) {
79
- return data.length === 1 && (data[0] === 0x0d || data[0] === 0x0a);
80
- }
81
- function isBackspace(data) {
82
- return data.length === 1 && (data[0] === 0x7f || data[0] === 0x08);
83
- }
84
- function isTab(data) {
85
- return data.length === 1 && data[0] === 0x09;
86
- }
87
- function isShiftTab(data) {
88
- return data.toString() === '\x1b[Z';
89
- }
90
- function isNavigateUp(data) {
91
- const str = data.toString();
92
- return str === '\x1b[A' || str === 'k';
93
- }
94
- function isNavigateDown(data) {
95
- const str = data.toString();
96
- return str === '\x1b[B' || str === 'j';
97
- }
98
- function isLeftArrow(data) {
99
- return data.toString() === '\x1b[D';
100
- }
101
- function isRightArrow(data) {
102
- return data.toString() === '\x1b[C';
103
- }
104
- function extractPrintable(data) {
105
- if (data.length === 1 && data[0] >= 0x20 && data[0] < 0x7f) {
106
- return String.fromCharCode(data[0]);
107
- }
108
- return null;
109
- }
71
+ // Key detection functions are imported from '../../base/index.js'
110
72
  // =============================================================================
111
73
  // Add Anchor Screen
112
74
  // =============================================================================
@@ -290,25 +252,33 @@ class EditAnchorScreen extends BaseScreen {
290
252
  this.onComplete = onComplete;
291
253
  }
292
254
  wrapText(text, maxWidth) {
293
- if (text.length <= maxWidth)
294
- return [text];
255
+ // Split on newlines first, then wrap each segment by width.
256
+ // This prevents \n chars from producing extra physical lines
257
+ // that the overlay system doesn't account for.
295
258
  const wrapped = [];
296
- let remaining = text;
297
- while (remaining.length > 0) {
298
- if (remaining.length <= maxWidth) {
299
- wrapped.push(remaining);
300
- break;
259
+ const paragraphs = text.split('\n');
260
+ for (const paragraph of paragraphs) {
261
+ if (paragraph.length <= maxWidth) {
262
+ wrapped.push(paragraph);
263
+ continue;
301
264
  }
302
- let breakPoint = maxWidth;
303
- const searchStart = Math.max(0, maxWidth - 20);
304
- for (let i = maxWidth - 1; i >= searchStart; i--) {
305
- if (remaining[i] === ' ') {
306
- breakPoint = i + 1;
265
+ let remaining = paragraph;
266
+ while (remaining.length > 0) {
267
+ if (remaining.length <= maxWidth) {
268
+ wrapped.push(remaining);
307
269
  break;
308
270
  }
271
+ let breakPoint = maxWidth;
272
+ const searchStart = Math.max(0, maxWidth - 20);
273
+ for (let i = maxWidth - 1; i >= searchStart; i--) {
274
+ if (remaining[i] === ' ') {
275
+ breakPoint = i + 1;
276
+ break;
277
+ }
278
+ }
279
+ wrapped.push(remaining.slice(0, breakPoint));
280
+ remaining = remaining.slice(breakPoint);
309
281
  }
310
- wrapped.push(remaining.slice(0, breakPoint));
311
- remaining = remaining.slice(breakPoint);
312
282
  }
313
283
  return wrapped;
314
284
  }
@@ -545,10 +515,8 @@ class DeleteConfirmScreen extends BaseScreen {
545
515
  lines.push(s.muted(` Scope: ${item.scope}`));
546
516
  lines.push('');
547
517
  const maxContentLen = cols - 14;
548
- let content = item.anchor.content;
549
- if (content.length > maxContentLen) {
550
- content = content.slice(0, maxContentLen - 3) + '...';
551
- }
518
+ const singleLine = item.anchor.content.replace(/\n+/g, ' ').replace(/\s+/g, ' ').trim();
519
+ const content = truncate(singleLine, maxContentLen);
552
520
  lines.push(` Content: ${content}`);
553
521
  lines.push('');
554
522
  lines.push(s.warning(' Are you sure you want to delete this anchor?'));
@@ -636,10 +604,8 @@ export class AnchorsOverlayV2 extends TabbedListOverlayV2 {
636
604
  const scopeBadge = item.scope === 'global' ? s.muted('[G]') : s.info('[P]');
637
605
  const prefixLen = 15;
638
606
  const maxContentLen = Math.max(20, cols - prefixLen - 8);
639
- let content = item.anchor.content;
640
- if (content.length > maxContentLen) {
641
- content = content.slice(0, maxContentLen - 3) + '...';
642
- }
607
+ const singleLine = item.anchor.content.replace(/\n+/g, ' ').replace(/\s+/g, ' ').trim();
608
+ const content = truncate(singleLine, maxContentLen);
643
609
  const cursor = isSelected ? s.primary('❯ ') : ' ';
644
610
  const line = `${priorityBadge} ${scopeBadge} ${content}`;
645
611
  if (isSelected) {
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Artifact Detail Overlay V2
3
+ *
4
+ * Fullscreen markdown artifact viewer with vim-style navigation.
5
+ *
6
+ * Features:
7
+ * - Full-screen artifact viewing with markdown rendering
8
+ * - Vim-style navigation (j/k, g/G, PgUp/PgDn)
9
+ * - Metadata display (type, agent, version, timestamps)
10
+ */
11
+ import { BaseOverlayV2 } from '../../base/overlay-base-v2.js';
12
+ import type { RenderContext, OverlayAction, KeyEvent } from '../types.js';
13
+ import type { Artifact } from '../../../multi-agent/index.js';
14
+ export interface ArtifactDetailOverlayV2Result {
15
+ /** Whether user pressed Esc/q to go back to list */
16
+ goBack: boolean;
17
+ }
18
+ interface ArtifactDetailState {
19
+ renderedLines: string[];
20
+ scrollOffset: number;
21
+ maxScroll: number;
22
+ }
23
+ export declare class ArtifactDetailOverlayV2 extends BaseOverlayV2<ArtifactDetailState, ArtifactDetailOverlayV2Result> {
24
+ readonly type: "inline";
25
+ readonly id = "artifact-detail-overlay-v2";
26
+ readonly usesAlternateScreen = true;
27
+ private readonly artifact;
28
+ constructor(artifact: Artifact);
29
+ /**
30
+ * Enter alternate screen buffer when overlay mounts.
31
+ */
32
+ onMount(): void;
33
+ /**
34
+ * Exit alternate screen buffer when overlay unmounts.
35
+ */
36
+ onUnmount(): void;
37
+ protected renderContent(context: RenderContext): string[];
38
+ /**
39
+ * Handle key events
40
+ */
41
+ handleKey(key: KeyEvent): OverlayAction<ArtifactDetailOverlayV2Result>;
42
+ }
43
+ export {};