@compilr-dev/cli 0.4.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 (634) hide show
  1. package/README.md +254 -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 +134 -4
  7. package/dist/agent.js +345 -166
  8. package/dist/anchors/index.d.ts +9 -0
  9. package/dist/anchors/index.js +9 -0
  10. package/dist/anchors/project-anchors.d.ts +79 -0
  11. package/dist/anchors/project-anchors.js +202 -0
  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/index.d.ts +2 -1
  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.d.ts +13 -0
  28. package/dist/commands-v2/handlers/context.js +533 -0
  29. package/dist/commands-v2/handlers/core.d.ts +14 -0
  30. package/dist/commands-v2/handlers/core.js +290 -0
  31. package/dist/commands-v2/handlers/debug.d.ts +11 -0
  32. package/dist/commands-v2/handlers/debug.js +177 -0
  33. package/dist/commands-v2/handlers/delegations.d.ts +8 -0
  34. package/dist/commands-v2/handlers/delegations.js +29 -0
  35. package/dist/commands-v2/handlers/files.d.ts +8 -0
  36. package/dist/commands-v2/handlers/files.js +162 -0
  37. package/dist/commands-v2/handlers/filter.d.ts +9 -0
  38. package/dist/commands-v2/handlers/filter.js +130 -0
  39. package/dist/commands-v2/handlers/games.d.ts +7 -0
  40. package/dist/commands-v2/handlers/games.js +57 -0
  41. package/dist/commands-v2/handlers/index.d.ts +25 -0
  42. package/dist/commands-v2/handlers/index.js +63 -0
  43. package/dist/commands-v2/handlers/mcp.d.ts +8 -0
  44. package/dist/commands-v2/handlers/mcp.js +39 -0
  45. package/dist/commands-v2/handlers/notifications.d.ts +9 -0
  46. package/dist/commands-v2/handlers/notifications.js +34 -0
  47. package/dist/commands-v2/handlers/project.d.ts +22 -0
  48. package/dist/commands-v2/handlers/project.js +1035 -0
  49. package/dist/commands-v2/handlers/reset.d.ts +11 -0
  50. package/dist/commands-v2/handlers/reset.js +118 -0
  51. package/dist/commands-v2/handlers/session.d.ts +161 -0
  52. package/dist/commands-v2/handlers/session.js +805 -0
  53. package/dist/commands-v2/handlers/settings.d.ts +17 -0
  54. package/dist/commands-v2/handlers/settings.js +417 -0
  55. package/dist/commands-v2/handlers/tasks.d.ts +5 -0
  56. package/dist/commands-v2/handlers/tasks.js +36 -0
  57. package/dist/commands-v2/handlers/team.d.ts +9 -0
  58. package/dist/commands-v2/handlers/team.js +549 -0
  59. package/dist/commands-v2/handlers/terminals.d.ts +9 -0
  60. package/dist/commands-v2/handlers/terminals.js +34 -0
  61. package/dist/commands-v2/index.d.ts +14 -0
  62. package/dist/commands-v2/index.js +18 -0
  63. package/dist/commands-v2/registry.d.ts +52 -0
  64. package/dist/commands-v2/registry.js +114 -0
  65. package/dist/commands-v2/types.d.ts +153 -0
  66. package/dist/commands-v2/types.js +7 -0
  67. package/dist/commands.js +123 -7
  68. package/dist/compilr-diff-companion.vsix +0 -0
  69. package/dist/db/index.js +98 -4
  70. package/dist/db/repositories/document-repository.d.ts +2 -0
  71. package/dist/db/repositories/document-repository.js +5 -1
  72. package/dist/db/repositories/index.d.ts +2 -0
  73. package/dist/db/repositories/index.js +1 -0
  74. package/dist/db/repositories/plan-repository.d.ts +101 -0
  75. package/dist/db/repositories/plan-repository.js +275 -0
  76. package/dist/db/repositories/project-repository.d.ts +6 -0
  77. package/dist/db/repositories/project-repository.js +41 -0
  78. package/dist/db/repositories/work-item-repository.d.ts +15 -0
  79. package/dist/db/repositories/work-item-repository.js +69 -4
  80. package/dist/db/schema.d.ts +40 -3
  81. package/dist/db/schema.js +66 -3
  82. package/dist/episodes/index.d.ts +20 -0
  83. package/dist/episodes/index.js +27 -0
  84. package/dist/episodes/recorder.d.ts +51 -0
  85. package/dist/episodes/recorder.js +195 -0
  86. package/dist/episodes/significant-work.d.ts +21 -0
  87. package/dist/episodes/significant-work.js +56 -0
  88. package/dist/episodes/store.d.ts +38 -0
  89. package/dist/episodes/store.js +199 -0
  90. package/dist/episodes/types.d.ts +35 -0
  91. package/dist/episodes/types.js +6 -0
  92. package/dist/episodes/work-at-risk.d.ts +12 -0
  93. package/dist/episodes/work-at-risk.js +38 -0
  94. package/dist/episodes/work-summary-anchor.d.ts +23 -0
  95. package/dist/episodes/work-summary-anchor.js +73 -0
  96. package/dist/games/coins.d.ts +66 -0
  97. package/dist/games/coins.js +165 -0
  98. package/dist/games/game-base.d.ts +84 -0
  99. package/dist/games/game-base.js +204 -0
  100. package/dist/games/index.d.ts +16 -0
  101. package/dist/games/index.js +49 -0
  102. package/dist/games/scores.d.ts +69 -0
  103. package/dist/games/scores.js +191 -0
  104. package/dist/games/tetris/board.d.ts +59 -0
  105. package/dist/games/tetris/board.js +170 -0
  106. package/dist/games/tetris/index.d.ts +109 -0
  107. package/dist/games/tetris/index.js +610 -0
  108. package/dist/games/tetris/pieces.d.ts +44 -0
  109. package/dist/games/tetris/pieces.js +271 -0
  110. package/dist/games/tetris/renderer.d.ts +26 -0
  111. package/dist/games/tetris/renderer.js +77 -0
  112. package/dist/guide/guide-content.d.ts +23 -0
  113. package/dist/guide/guide-content.js +196 -0
  114. package/dist/guide/index.d.ts +8 -0
  115. package/dist/guide/index.js +7 -0
  116. package/dist/guide/shared-content.d.ts +37 -0
  117. package/dist/guide/shared-content.js +1272 -0
  118. package/dist/guide/tutorial-helpers.d.ts +57 -0
  119. package/dist/guide/tutorial-helpers.js +147 -0
  120. package/dist/handlers/ask-user-handlers.d.ts +32 -0
  121. package/dist/handlers/ask-user-handlers.js +104 -0
  122. package/dist/handlers/delegation-handlers.d.ts +34 -0
  123. package/dist/handlers/delegation-handlers.js +291 -0
  124. package/dist/handlers/permission-handler.d.ts +30 -0
  125. package/dist/handlers/permission-handler.js +205 -0
  126. package/dist/index.d.ts +11 -1
  127. package/dist/index.js +615 -179
  128. package/dist/input-handlers/index.d.ts +7 -0
  129. package/dist/input-handlers/index.js +7 -0
  130. package/dist/input-handlers/memory-handler.d.ts +26 -0
  131. package/dist/input-handlers/memory-handler.js +69 -0
  132. package/dist/models/index.d.ts +10 -0
  133. package/dist/models/index.js +12 -0
  134. package/dist/models/model-registry.d.ts +38 -0
  135. package/dist/models/model-registry.js +69 -0
  136. package/dist/models/model-tiers.d.ts +28 -0
  137. package/dist/models/model-tiers.js +71 -0
  138. package/dist/models/model-validation.d.ts +25 -0
  139. package/dist/models/model-validation.js +291 -0
  140. package/dist/models/ollama-models.d.ts +73 -0
  141. package/dist/models/ollama-models.js +178 -0
  142. package/dist/models/provider-types.d.ts +6 -0
  143. package/dist/models/provider-types.js +1 -0
  144. package/dist/models/providers.d.ts +35 -0
  145. package/dist/models/providers.js +58 -0
  146. package/dist/models/types.d.ts +4 -0
  147. package/dist/models/types.js +4 -0
  148. package/dist/multi-agent/activity.d.ts +21 -0
  149. package/dist/multi-agent/activity.js +34 -0
  150. package/dist/multi-agent/agent-selection.d.ts +55 -0
  151. package/dist/multi-agent/agent-selection.js +90 -0
  152. package/dist/multi-agent/artifacts.d.ts +197 -0
  153. package/dist/multi-agent/artifacts.js +379 -0
  154. package/dist/multi-agent/checkpointer.d.ts +138 -0
  155. package/dist/multi-agent/checkpointer.js +471 -0
  156. package/dist/multi-agent/collision-utils.d.ts +16 -0
  157. package/dist/multi-agent/collision-utils.js +28 -0
  158. package/dist/multi-agent/context-resolver.d.ts +97 -0
  159. package/dist/multi-agent/context-resolver.js +316 -0
  160. package/dist/multi-agent/custom-agents.d.ts +83 -0
  161. package/dist/multi-agent/custom-agents.js +227 -0
  162. package/dist/multi-agent/delegation-tracker.d.ts +157 -0
  163. package/dist/multi-agent/delegation-tracker.js +243 -0
  164. package/dist/multi-agent/file-lock-hook.d.ts +29 -0
  165. package/dist/multi-agent/file-lock-hook.js +97 -0
  166. package/dist/multi-agent/file-locks.d.ts +58 -0
  167. package/dist/multi-agent/file-locks.js +194 -0
  168. package/dist/multi-agent/index.d.ts +24 -0
  169. package/dist/multi-agent/index.js +30 -0
  170. package/dist/multi-agent/mention-parser.d.ts +64 -0
  171. package/dist/multi-agent/mention-parser.js +146 -0
  172. package/dist/multi-agent/notification-manager.d.ts +84 -0
  173. package/dist/multi-agent/notification-manager.js +224 -0
  174. package/dist/multi-agent/pending-requests.d.ts +122 -0
  175. package/dist/multi-agent/pending-requests.js +155 -0
  176. package/dist/multi-agent/session-registry.d.ts +139 -0
  177. package/dist/multi-agent/session-registry.js +514 -0
  178. package/dist/multi-agent/shared-context.d.ts +293 -0
  179. package/dist/multi-agent/shared-context.js +671 -0
  180. package/dist/multi-agent/skill-requirements.d.ts +66 -0
  181. package/dist/multi-agent/skill-requirements.js +178 -0
  182. package/dist/multi-agent/task-assignment.d.ts +69 -0
  183. package/dist/multi-agent/task-assignment.js +123 -0
  184. package/dist/multi-agent/task-suggestion.d.ts +31 -0
  185. package/dist/multi-agent/task-suggestion.js +72 -0
  186. package/dist/multi-agent/team-agent.d.ts +201 -0
  187. package/dist/multi-agent/team-agent.js +488 -0
  188. package/dist/multi-agent/team.d.ts +286 -0
  189. package/dist/multi-agent/team.js +610 -0
  190. package/dist/multi-agent/tool-config.d.ts +110 -0
  191. package/dist/multi-agent/tool-config.js +661 -0
  192. package/dist/multi-agent/types.d.ts +211 -0
  193. package/dist/multi-agent/types.js +617 -0
  194. package/dist/prompts/plan-mode-prompt.d.ts +11 -0
  195. package/dist/prompts/plan-mode-prompt.js +95 -0
  196. package/dist/repl-helpers.d.ts +63 -0
  197. package/dist/repl-helpers.js +319 -0
  198. package/dist/repl-v2.d.ts +554 -0
  199. package/dist/repl-v2.js +3286 -0
  200. package/dist/session/index.d.ts +6 -0
  201. package/dist/session/index.js +6 -0
  202. package/dist/session/project-session-manager.d.ts +158 -0
  203. package/dist/session/project-session-manager.js +650 -0
  204. package/dist/settings/index.d.ts +156 -13
  205. package/dist/settings/index.js +377 -24
  206. package/dist/settings/mcp-config.d.ts +76 -0
  207. package/dist/settings/mcp-config.js +143 -0
  208. package/dist/settings/paths.d.ts +114 -0
  209. package/dist/settings/paths.js +270 -0
  210. package/dist/shared-handlers.d.ts +62 -0
  211. package/dist/shared-handlers.js +48 -0
  212. package/dist/system-prompt/builder.d.ts +5 -0
  213. package/dist/system-prompt/builder.js +4 -0
  214. package/dist/system-prompt/index.d.ts +18 -0
  215. package/dist/system-prompt/index.js +18 -0
  216. package/dist/system-prompt/modules.d.ts +5 -0
  217. package/dist/system-prompt/modules.js +4 -0
  218. package/dist/tabbed-menu.js +2 -1
  219. package/dist/templates/compilr-md-import.d.ts +16 -0
  220. package/dist/templates/compilr-md-import.js +241 -0
  221. package/dist/templates/compilr-md.js +10 -58
  222. package/dist/templates/config-json.d.ts +1 -25
  223. package/dist/templates/index.d.ts +2 -0
  224. package/dist/templates/index.js +35 -75
  225. package/dist/themes/colors.js +3 -1
  226. package/dist/themes/registry.d.ts +5 -36
  227. package/dist/themes/registry.js +11 -95
  228. package/dist/themes/types.d.ts +3 -38
  229. package/dist/themes/types.js +2 -2
  230. package/dist/tool-names.d.ts +108 -0
  231. package/dist/tool-names.js +227 -0
  232. package/dist/tools/anchor-tools.d.ts +31 -0
  233. package/dist/tools/anchor-tools.js +255 -0
  234. package/dist/tools/artifact-tools.d.ts +42 -0
  235. package/dist/tools/artifact-tools.js +328 -0
  236. package/dist/tools/ask-user-simple.d.ts +1 -1
  237. package/dist/tools/ask-user-simple.js +2 -1
  238. package/dist/tools/ask-user.d.ts +1 -1
  239. package/dist/tools/ask-user.js +2 -1
  240. package/dist/tools/backlog-wrappers.d.ts +56 -0
  241. package/dist/tools/backlog-wrappers.js +353 -0
  242. package/dist/tools/backlog.d.ts +2 -2
  243. package/dist/tools/backlog.js +2 -2
  244. package/dist/tools/db-tools.d.ts +12 -0
  245. package/dist/tools/db-tools.js +14 -0
  246. package/dist/tools/delegate-background.d.ts +27 -0
  247. package/dist/tools/delegate-background.js +115 -0
  248. package/dist/tools/delegate.d.ts +22 -0
  249. package/dist/tools/delegate.js +97 -0
  250. package/dist/tools/delegation-status.d.ts +16 -0
  251. package/dist/tools/delegation-status.js +128 -0
  252. package/dist/tools/document-db.d.ts +43 -0
  253. package/dist/tools/document-db.js +220 -0
  254. package/dist/tools/guide-tool.d.ts +12 -0
  255. package/dist/tools/guide-tool.js +59 -0
  256. package/dist/tools/handoff.d.ts +25 -0
  257. package/dist/tools/handoff.js +99 -0
  258. package/dist/tools/meta-tools.d.ts +26 -0
  259. package/dist/tools/meta-tools.js +47 -0
  260. package/dist/tools/plan-tools.d.ts +54 -0
  261. package/dist/tools/plan-tools.js +338 -0
  262. package/dist/tools/platform-adapter.d.ts +29 -0
  263. package/dist/tools/platform-adapter.js +394 -0
  264. package/dist/tools/project-db.d.ts +34 -0
  265. package/dist/tools/project-db.js +39 -0
  266. package/dist/tools/recall-work-tool.d.ts +18 -0
  267. package/dist/tools/recall-work-tool.js +82 -0
  268. package/dist/tools/workitem-db.d.ts +135 -0
  269. package/dist/tools/workitem-db.js +730 -0
  270. package/dist/tools.d.ts +67 -2
  271. package/dist/tools.js +238 -38
  272. package/dist/ui/ask-user-overlay.d.ts +2 -2
  273. package/dist/ui/ask-user-overlay.js +443 -535
  274. package/dist/ui/ask-user-simple-overlay.d.ts +2 -2
  275. package/dist/ui/ask-user-simple-overlay.js +182 -209
  276. package/dist/ui/autocomplete-controller.d.ts +42 -0
  277. package/dist/ui/autocomplete-controller.js +384 -0
  278. package/dist/ui/base/index.d.ts +26 -0
  279. package/dist/ui/base/index.js +33 -0
  280. package/dist/ui/base/inline-overlay-utils.d.ts +217 -0
  281. package/dist/ui/base/inline-overlay-utils.js +320 -0
  282. package/dist/ui/base/inline-overlay.d.ts +159 -0
  283. package/dist/ui/base/inline-overlay.js +257 -0
  284. package/dist/ui/base/key-utils.d.ts +15 -0
  285. package/dist/ui/base/key-utils.js +30 -0
  286. package/dist/ui/base/overlay-base-v2.d.ts +203 -0
  287. package/dist/ui/base/overlay-base-v2.js +260 -0
  288. package/dist/ui/base/overlay-base.d.ts +156 -0
  289. package/dist/ui/base/overlay-base.js +238 -0
  290. package/dist/ui/base/overlay-lifecycle.d.ts +65 -0
  291. package/dist/ui/base/overlay-lifecycle.js +159 -0
  292. package/dist/ui/base/overlay-types.d.ts +185 -0
  293. package/dist/ui/base/overlay-types.js +7 -0
  294. package/dist/ui/base/render-utils.d.ts +27 -0
  295. package/dist/ui/base/render-utils.js +36 -0
  296. package/dist/ui/base/screen-stack.d.ts +148 -0
  297. package/dist/ui/base/screen-stack.js +184 -0
  298. package/dist/ui/base/tabbed-list-overlay-v2.d.ts +118 -0
  299. package/dist/ui/base/tabbed-list-overlay-v2.js +335 -0
  300. package/dist/ui/base/tabbed-list-overlay.d.ts +153 -0
  301. package/dist/ui/base/tabbed-list-overlay.js +369 -0
  302. package/dist/ui/constants/labels.d.ts +14 -0
  303. package/dist/ui/constants/labels.js +51 -0
  304. package/dist/ui/conversation-store.d.ts +55 -0
  305. package/dist/ui/conversation-store.js +107 -0
  306. package/dist/ui/conversation.d.ts +75 -4
  307. package/dist/ui/conversation.js +376 -165
  308. package/dist/ui/diff.d.ts +7 -1
  309. package/dist/ui/diff.js +85 -48
  310. package/dist/ui/ephemeral.d.ts +1 -1
  311. package/dist/ui/ephemeral.js +4 -10
  312. package/dist/ui/features/index.d.ts +34 -0
  313. package/dist/ui/features/index.js +34 -0
  314. package/dist/ui/features/input-feature.d.ts +85 -0
  315. package/dist/ui/features/input-feature.js +238 -0
  316. package/dist/ui/features/list-feature.d.ts +155 -0
  317. package/dist/ui/features/list-feature.js +244 -0
  318. package/dist/ui/features/pagination-feature.d.ts +154 -0
  319. package/dist/ui/features/pagination-feature.js +238 -0
  320. package/dist/ui/features/search-feature.d.ts +148 -0
  321. package/dist/ui/features/search-feature.js +185 -0
  322. package/dist/ui/features/tab-feature.d.ts +194 -0
  323. package/dist/ui/features/tab-feature.js +307 -0
  324. package/dist/ui/file-autocomplete.d.ts +24 -0
  325. package/dist/ui/file-autocomplete.js +56 -0
  326. package/dist/ui/footer-renderer.d.ts +69 -0
  327. package/dist/ui/footer-renderer.js +431 -0
  328. package/dist/ui/footer.d.ts +181 -7
  329. package/dist/ui/footer.js +523 -74
  330. package/dist/ui/guardrail-overlay.d.ts +29 -0
  331. package/dist/ui/guardrail-overlay.js +145 -0
  332. package/dist/ui/index.d.ts +1 -1
  333. package/dist/ui/index.js +1 -3
  334. package/dist/ui/input-controller.d.ts +51 -0
  335. package/dist/ui/input-controller.js +176 -0
  336. package/dist/ui/input-prompt.d.ts +135 -33
  337. package/dist/ui/input-prompt.js +728 -337
  338. package/dist/ui/iteration-limit-overlay.d.ts +2 -2
  339. package/dist/ui/iteration-limit-overlay.js +92 -128
  340. package/dist/ui/keyboard-handler.d.ts +57 -0
  341. package/dist/ui/keyboard-handler.js +557 -0
  342. package/dist/ui/keys-overlay.d.ts +1 -0
  343. package/dist/ui/keys-overlay.js +203 -141
  344. package/dist/ui/line-utils.d.ts +88 -0
  345. package/dist/ui/line-utils.js +150 -0
  346. package/dist/ui/live-region-facade.d.ts +42 -0
  347. package/dist/ui/live-region-facade.js +205 -0
  348. package/dist/ui/live-region.d.ts +157 -0
  349. package/dist/ui/live-region.js +379 -0
  350. package/dist/ui/mascot/expressions.d.ts +32 -0
  351. package/dist/ui/mascot/expressions.js +213 -0
  352. package/dist/ui/mascot/index.d.ts +8 -0
  353. package/dist/ui/mascot/index.js +8 -0
  354. package/dist/ui/mascot/renderer.d.ts +19 -0
  355. package/dist/ui/mascot/renderer.js +132 -0
  356. package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
  357. package/dist/ui/overlay/data/tutorial-content.js +9 -0
  358. package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
  359. package/dist/ui/overlay/data/tutorial-registry.js +116 -0
  360. package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
  361. package/dist/ui/overlay/data/tutorial-types.js +6 -0
  362. package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
  363. package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
  364. package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
  365. package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
  366. package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
  367. package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
  368. package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
  369. package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
  370. package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
  371. package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
  372. package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
  373. package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
  374. package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
  375. package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
  376. package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
  377. package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
  378. package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
  379. package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
  380. package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
  381. package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
  382. package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
  383. package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
  384. package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
  385. package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
  386. package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
  387. package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
  388. package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
  389. package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
  390. package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
  391. package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
  392. package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
  393. package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
  394. package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
  395. package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
  396. package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
  397. package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
  398. package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
  399. package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
  400. package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
  401. package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
  402. package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
  403. package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
  404. package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
  405. package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
  406. package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
  407. package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
  408. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
  409. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
  410. package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
  411. package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
  412. package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
  413. package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
  414. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
  415. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
  416. package/dist/ui/overlay/impl/agents-overlay-v2.d.ts +45 -0
  417. package/dist/ui/overlay/impl/agents-overlay-v2.js +814 -0
  418. package/dist/ui/overlay/impl/anchors-overlay-v2.d.ts +47 -0
  419. package/dist/ui/overlay/impl/anchors-overlay-v2.js +749 -0
  420. package/dist/ui/overlay/impl/arch-type-overlay-v2.d.ts +37 -0
  421. package/dist/ui/overlay/impl/arch-type-overlay-v2.js +240 -0
  422. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
  423. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
  424. package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
  425. package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
  426. package/dist/ui/overlay/impl/ask-user-overlay-v2.d.ts +72 -0
  427. package/dist/ui/overlay/impl/ask-user-overlay-v2.js +581 -0
  428. package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.d.ts +46 -0
  429. package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.js +204 -0
  430. package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
  431. package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
  432. package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +52 -0
  433. package/dist/ui/overlay/impl/backlog-overlay-v2.js +681 -0
  434. package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
  435. package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
  436. package/dist/ui/overlay/impl/commands-overlay-v2.d.ts +33 -0
  437. package/dist/ui/overlay/impl/commands-overlay-v2.js +439 -0
  438. package/dist/ui/overlay/impl/config-overlay-v2.d.ts +111 -0
  439. package/dist/ui/overlay/impl/config-overlay-v2.js +718 -0
  440. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
  441. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
  442. package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +57 -0
  443. package/dist/ui/overlay/impl/dashboard-overlay-v2.js +382 -0
  444. package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
  445. package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
  446. package/dist/ui/overlay/impl/docs-overlay-v2.d.ts +45 -0
  447. package/dist/ui/overlay/impl/docs-overlay-v2.js +117 -0
  448. package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +84 -0
  449. package/dist/ui/overlay/impl/document-detail-overlay-v2.js +1112 -0
  450. package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
  451. package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
  452. package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
  453. package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
  454. package/dist/ui/overlay/impl/guardrail-overlay-v2.d.ts +43 -0
  455. package/dist/ui/overlay/impl/guardrail-overlay-v2.js +114 -0
  456. package/dist/ui/overlay/impl/help-overlay-v2.d.ts +57 -0
  457. package/dist/ui/overlay/impl/help-overlay-v2.js +287 -0
  458. package/dist/ui/overlay/impl/init-setup-overlay-v2.d.ts +25 -0
  459. package/dist/ui/overlay/impl/init-setup-overlay-v2.js +97 -0
  460. package/dist/ui/overlay/impl/iteration-limit-overlay-v2.d.ts +35 -0
  461. package/dist/ui/overlay/impl/iteration-limit-overlay-v2.js +105 -0
  462. package/dist/ui/overlay/impl/keys-overlay-v2.d.ts +41 -0
  463. package/dist/ui/overlay/impl/keys-overlay-v2.js +248 -0
  464. package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
  465. package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
  466. package/dist/ui/overlay/impl/mascot-overlay-v2.d.ts +41 -0
  467. package/dist/ui/overlay/impl/mascot-overlay-v2.js +138 -0
  468. package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
  469. package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
  470. package/dist/ui/overlay/impl/model-overlay-v2.d.ts +93 -0
  471. package/dist/ui/overlay/impl/model-overlay-v2.js +1143 -0
  472. package/dist/ui/overlay/impl/model-warning-overlay-v2.d.ts +46 -0
  473. package/dist/ui/overlay/impl/model-warning-overlay-v2.js +132 -0
  474. package/dist/ui/overlay/impl/new-overlay-v2.d.ts +108 -0
  475. package/dist/ui/overlay/impl/new-overlay-v2.js +1243 -0
  476. package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
  477. package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
  478. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
  479. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
  480. package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
  481. package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
  482. package/dist/ui/overlay/impl/permission-overlay-v2.d.ts +36 -0
  483. package/dist/ui/overlay/impl/permission-overlay-v2.js +380 -0
  484. package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
  485. package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
  486. package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
  487. package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
  488. package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
  489. package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
  490. package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +37 -0
  491. package/dist/ui/overlay/impl/projects-overlay-v2.js +733 -0
  492. package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
  493. package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
  494. package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
  495. package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
  496. package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
  497. package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
  498. package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
  499. package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
  500. package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
  501. package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
  502. package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
  503. package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
  504. package/dist/ui/overlay/impl/theme-overlay-v2.d.ts +42 -0
  505. package/dist/ui/overlay/impl/theme-overlay-v2.js +135 -0
  506. package/dist/ui/overlay/impl/tools-overlay-v2.d.ts +47 -0
  507. package/dist/ui/overlay/impl/tools-overlay-v2.js +214 -0
  508. package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +45 -0
  509. package/dist/ui/overlay/impl/tutorial-overlay-v2.js +212 -0
  510. package/dist/ui/overlay/impl/workflow-overlay-v2.d.ts +80 -0
  511. package/dist/ui/overlay/impl/workflow-overlay-v2.js +641 -0
  512. package/dist/ui/overlay/index.d.ts +52 -0
  513. package/dist/ui/overlay/index.js +54 -0
  514. package/dist/ui/overlay/key-utils.d.ts +6 -0
  515. package/dist/ui/overlay/key-utils.js +6 -0
  516. package/dist/ui/overlay/types.d.ts +140 -0
  517. package/dist/ui/overlay/types.js +22 -0
  518. package/dist/ui/overlay-manager.d.ts +43 -0
  519. package/dist/ui/overlay-manager.js +238 -0
  520. package/dist/ui/overlays.d.ts +0 -4
  521. package/dist/ui/overlays.js +4 -460
  522. package/dist/ui/permission-overlay.d.ts +1 -1
  523. package/dist/ui/permission-overlay.js +189 -300
  524. package/dist/ui/providers/types.d.ts +178 -0
  525. package/dist/ui/providers/types.js +9 -0
  526. package/dist/ui/render-modes.d.ts +36 -0
  527. package/dist/ui/render-modes.js +44 -0
  528. package/dist/ui/startup-menu.d.ts +36 -0
  529. package/dist/ui/startup-menu.js +236 -0
  530. package/dist/ui/status-bar-controller.d.ts +33 -0
  531. package/dist/ui/status-bar-controller.js +99 -0
  532. package/dist/ui/subagent-renderer.d.ts +117 -0
  533. package/dist/ui/subagent-renderer.js +318 -0
  534. package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
  535. package/dist/ui/terminal-autocomplete-utils.js +83 -0
  536. package/dist/ui/terminal-codes.d.ts +94 -0
  537. package/dist/ui/terminal-codes.js +124 -0
  538. package/dist/ui/terminal-line-builders.d.ts +17 -0
  539. package/dist/ui/terminal-line-builders.js +42 -0
  540. package/dist/ui/terminal-render-item.d.ts +16 -0
  541. package/dist/ui/terminal-render-item.js +267 -0
  542. package/dist/ui/terminal-renderer.d.ts +220 -0
  543. package/dist/ui/terminal-renderer.js +750 -0
  544. package/dist/ui/terminal-types.d.ts +179 -0
  545. package/dist/ui/terminal-types.js +34 -0
  546. package/dist/ui/terminal-ui.d.ts +331 -0
  547. package/dist/ui/terminal-ui.js +819 -0
  548. package/dist/ui/terminal.d.ts +20 -0
  549. package/dist/ui/terminal.js +72 -0
  550. package/dist/ui/todo-zone.d.ts +19 -1
  551. package/dist/ui/todo-zone.js +124 -38
  552. package/dist/ui/tool-formatters.d.ts +16 -0
  553. package/dist/ui/tool-formatters.js +1027 -0
  554. package/dist/ui/turn-metrics.d.ts +56 -0
  555. package/dist/ui/turn-metrics.js +75 -0
  556. package/dist/ui/types.d.ts +28 -0
  557. package/dist/ui/types.js +1 -0
  558. package/dist/ui/vscode-diff-ipc.d.ts +102 -0
  559. package/dist/ui/vscode-diff-ipc.js +385 -0
  560. package/dist/utils/credentials.d.ts +24 -5
  561. package/dist/utils/credentials.js +123 -9
  562. package/dist/utils/debug-log.d.ts +28 -0
  563. package/dist/utils/debug-log.js +57 -0
  564. package/dist/utils/format-tokens.d.ts +13 -0
  565. package/dist/utils/format-tokens.js +18 -0
  566. package/dist/utils/git-config.d.ts +26 -0
  567. package/dist/utils/git-config.js +54 -0
  568. package/dist/utils/message-utils.d.ts +61 -0
  569. package/dist/utils/message-utils.js +72 -0
  570. package/dist/utils/model-tiers.d.ts +8 -1
  571. package/dist/utils/model-tiers.js +39 -17
  572. package/dist/utils/open-browser.d.ts +5 -0
  573. package/dist/utils/open-browser.js +32 -0
  574. package/dist/utils/path-safety.d.ts +56 -0
  575. package/dist/utils/path-safety.js +240 -0
  576. package/dist/utils/project-detection.d.ts +58 -0
  577. package/dist/utils/project-detection.js +424 -0
  578. package/dist/utils/project-memory.js +2 -1
  579. package/dist/utils/project-status.d.ts +2 -2
  580. package/dist/utils/startup-perf.d.ts +18 -0
  581. package/dist/utils/startup-perf.js +60 -0
  582. package/dist/utils/token-tracker.d.ts +62 -0
  583. package/dist/utils/token-tracker.js +150 -0
  584. package/dist/utils/token-types.d.ts +23 -0
  585. package/dist/utils/token-types.js +18 -0
  586. package/dist/utils/types/config-types.d.ts +32 -0
  587. package/dist/utils/types/config-types.js +8 -0
  588. package/dist/utils/update-checker.d.ts +28 -0
  589. package/dist/utils/update-checker.js +106 -0
  590. package/dist/utils/version.d.ts +7 -0
  591. package/dist/utils/version.js +10 -0
  592. package/dist/utils/vscode-detect.d.ts +39 -0
  593. package/dist/utils/vscode-detect.js +137 -0
  594. package/dist/workflow/guided-mode-injector.d.ts +42 -0
  595. package/dist/workflow/guided-mode-injector.js +191 -0
  596. package/dist/workflow/index.d.ts +8 -0
  597. package/dist/workflow/index.js +8 -0
  598. package/dist/workflow/step-criteria.d.ts +62 -0
  599. package/dist/workflow/step-criteria.js +150 -0
  600. package/dist/workflow/step-tracker.d.ts +92 -0
  601. package/dist/workflow/step-tracker.js +141 -0
  602. package/package.json +32 -12
  603. package/dist/index.old.d.ts +0 -7
  604. package/dist/index.old.js +0 -1014
  605. package/dist/repl.d.ts +0 -121
  606. package/dist/repl.js +0 -1878
  607. package/dist/templates/claude-md.d.ts +0 -7
  608. package/dist/templates/claude-md.js +0 -189
  609. package/dist/test-autocomplete.d.ts +0 -7
  610. package/dist/test-autocomplete.js +0 -85
  611. package/dist/test-tabbed-menu.d.ts +0 -7
  612. package/dist/test-tabbed-menu.js +0 -25
  613. package/dist/tool-selector.d.ts +0 -71
  614. package/dist/tool-selector.js +0 -184
  615. package/dist/ui/agents-overlay.d.ts +0 -12
  616. package/dist/ui/agents-overlay.js +0 -501
  617. package/dist/ui/arch-type-overlay.d.ts +0 -20
  618. package/dist/ui/arch-type-overlay.js +0 -229
  619. package/dist/ui/backlog-overlay.d.ts +0 -17
  620. package/dist/ui/backlog-overlay.js +0 -786
  621. package/dist/ui/commands-overlay.d.ts +0 -11
  622. package/dist/ui/commands-overlay.js +0 -410
  623. package/dist/ui/config-overlay.d.ts +0 -34
  624. package/dist/ui/config-overlay.js +0 -977
  625. package/dist/ui/init-overlay.d.ts +0 -24
  626. package/dist/ui/init-overlay.js +0 -525
  627. package/dist/ui/input-prompt-v2.d.ts +0 -179
  628. package/dist/ui/input-prompt-v2.js +0 -991
  629. package/dist/ui/model-warning-overlay.d.ts +0 -30
  630. package/dist/ui/model-warning-overlay.js +0 -171
  631. package/dist/ui/tools-overlay.d.ts +0 -26
  632. package/dist/ui/tools-overlay.js +0 -278
  633. package/dist/ui/tutorial-overlay.d.ts +0 -10
  634. package/dist/ui/tutorial-overlay.js +0 -936
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Architecture Type Selection Overlay V2
3
+ *
4
+ * Shows options for what type of architecture documentation to create.
5
+ * Uses BaseOverlayV2 for TerminalUI integration.
6
+ *
7
+ * Has two "screens":
8
+ * - Select: Choose from predefined doc types
9
+ * - Custom input: Enter a custom topic
10
+ */
11
+ import { BaseOverlayV2 } from '../../base/index.js';
12
+ import type { RenderContext, OverlayAction, KeyEvent } from '../types.js';
13
+ export type ArchDocType = 'adr' | 'diagram' | 'data-model' | 'api' | 'custom';
14
+ export interface ArchTypeChoiceV2 {
15
+ type: ArchDocType;
16
+ customTopic?: string;
17
+ }
18
+ type ScreenMode = 'select' | 'custom-input';
19
+ interface ArchTypeState {
20
+ mode: ScreenMode;
21
+ selectedIndex: number;
22
+ inputBuffer: string;
23
+ inputCursorPos: number;
24
+ }
25
+ export declare class ArchTypeOverlayV2 extends BaseOverlayV2<ArchTypeState, ArchTypeChoiceV2 | null> {
26
+ readonly type: "inline";
27
+ readonly id = "arch-type-overlay-v2";
28
+ constructor();
29
+ protected renderContent(context: RenderContext): string[];
30
+ private renderSelectScreen;
31
+ private renderCustomInputScreen;
32
+ handleKey(key: KeyEvent): OverlayAction<ArchTypeChoiceV2 | null>;
33
+ private handleSelectKey;
34
+ private handleCustomInputKey;
35
+ getCloseSummary(result: ArchTypeChoiceV2 | null): string | null;
36
+ }
37
+ export {};
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Architecture Type Selection Overlay V2
3
+ *
4
+ * Shows options for what type of architecture documentation to create.
5
+ * Uses BaseOverlayV2 for TerminalUI integration.
6
+ *
7
+ * Has two "screens":
8
+ * - Select: Choose from predefined doc types
9
+ * - Custom input: Enter a custom topic
10
+ */
11
+ import { BaseOverlayV2, renderBorder } from '../../base/index.js';
12
+ const ARCH_OPTIONS = [
13
+ { type: 'adr', label: 'Decision Record (ADR)', description: '"Why we chose X over Y"' },
14
+ { type: 'diagram', label: 'System Diagram', description: 'Mermaid component diagram' },
15
+ { type: 'data-model', label: 'Data Model', description: 'Entities and relationships' },
16
+ { type: 'api', label: 'API Design', description: 'Endpoints and contracts' },
17
+ { type: 'custom', label: 'Custom topic...', description: 'Specify your own' },
18
+ ];
19
+ // =============================================================================
20
+ // Overlay Implementation
21
+ // =============================================================================
22
+ export class ArchTypeOverlayV2 extends BaseOverlayV2 {
23
+ type = 'inline';
24
+ id = 'arch-type-overlay-v2';
25
+ constructor() {
26
+ super({
27
+ mode: 'select',
28
+ selectedIndex: 0,
29
+ inputBuffer: '',
30
+ inputCursorPos: 0,
31
+ });
32
+ this.minHeight = 14; // Prevent jitter between screens
33
+ }
34
+ // ===========================================================================
35
+ // Rendering
36
+ // ===========================================================================
37
+ renderContent(context) {
38
+ if (this.state.mode === 'select') {
39
+ return this.renderSelectScreen(context);
40
+ }
41
+ else {
42
+ return this.renderCustomInputScreen(context);
43
+ }
44
+ }
45
+ renderSelectScreen(context) {
46
+ const s = context.styles;
47
+ const lines = [];
48
+ const border = renderBorder(context.width, s);
49
+ // Header
50
+ lines.push(border);
51
+ lines.push(' ' + s.primary('Architecture Documentation'));
52
+ lines.push('');
53
+ // Question
54
+ lines.push(' What would you like to document?');
55
+ lines.push('');
56
+ // Options
57
+ const maxLabelLen = Math.max(...ARCH_OPTIONS.map((o) => o.label.length));
58
+ for (let i = 0; i < ARCH_OPTIONS.length; i++) {
59
+ const opt = ARCH_OPTIONS[i];
60
+ const isCursor = this.state.selectedIndex === i;
61
+ const prefix = isCursor ? ' > ' : ' ';
62
+ const paddedLabel = opt.label.padEnd(maxLabelLen + 2);
63
+ if (isCursor) {
64
+ lines.push(s.primary(`${prefix}${paddedLabel}`) + s.muted(opt.description));
65
+ }
66
+ else {
67
+ lines.push(s.muted(`${prefix}${paddedLabel}${opt.description}`));
68
+ }
69
+ }
70
+ // Footer
71
+ lines.push('');
72
+ lines.push(s.muted(' Up/Down Navigate | Enter Select | q/Esc Cancel'));
73
+ lines.push(border);
74
+ return lines;
75
+ }
76
+ renderCustomInputScreen(context) {
77
+ const s = context.styles;
78
+ const lines = [];
79
+ const border = renderBorder(context.width, s);
80
+ // Header
81
+ lines.push(border);
82
+ lines.push(' ' + s.primary('Custom Architecture Topic'));
83
+ lines.push('');
84
+ // Input field
85
+ lines.push(' Enter the topic you want to document:');
86
+ lines.push('');
87
+ // Render input with cursor
88
+ const displayValue = this.state.inputBuffer || s.muted('e.g., Security Architecture');
89
+ if (this.state.inputBuffer) {
90
+ // Show cursor position
91
+ const before = this.state.inputBuffer.slice(0, this.state.inputCursorPos);
92
+ const after = this.state.inputBuffer.slice(this.state.inputCursorPos);
93
+ lines.push(` > ${before}|${after}`);
94
+ }
95
+ else {
96
+ lines.push(` > |${displayValue}`);
97
+ }
98
+ lines.push('');
99
+ // Footer
100
+ lines.push(s.muted(' Enter Confirm | Esc Back | Left/Right Move cursor'));
101
+ lines.push(border);
102
+ return lines;
103
+ }
104
+ // ===========================================================================
105
+ // Key Handling
106
+ // ===========================================================================
107
+ handleKey(key) {
108
+ // Ctrl+C always cancels
109
+ if (this.isInterruptKey(key)) {
110
+ return this.close(null);
111
+ }
112
+ if (this.state.mode === 'select') {
113
+ return this.handleSelectKey(key);
114
+ }
115
+ else {
116
+ return this.handleCustomInputKey(key);
117
+ }
118
+ }
119
+ handleSelectKey(key) {
120
+ // Close keys (q or Escape)
121
+ if (this.isCloseKey(key)) {
122
+ return this.close(null);
123
+ }
124
+ // Navigation up
125
+ if (this.isUpKey(key)) {
126
+ this.state.selectedIndex = Math.max(0, this.state.selectedIndex - 1);
127
+ return this.rerender();
128
+ }
129
+ // Navigation down
130
+ if (this.isDownKey(key)) {
131
+ this.state.selectedIndex = Math.min(ARCH_OPTIONS.length - 1, this.state.selectedIndex + 1);
132
+ return this.rerender();
133
+ }
134
+ // Enter - select option
135
+ if (this.isEnterKey(key)) {
136
+ const selected = ARCH_OPTIONS[this.state.selectedIndex];
137
+ if (selected.type === 'custom') {
138
+ // Switch to custom input screen
139
+ this.state.mode = 'custom-input';
140
+ this.state.inputBuffer = '';
141
+ this.state.inputCursorPos = 0;
142
+ return this.rerender();
143
+ }
144
+ return this.close({ type: selected.type });
145
+ }
146
+ return this.noAction();
147
+ }
148
+ handleCustomInputKey(key) {
149
+ // Escape goes back to select screen
150
+ if (key.name === 'escape') {
151
+ this.state.mode = 'select';
152
+ return this.rerender();
153
+ }
154
+ // Enter confirms input
155
+ if (this.isEnterKey(key)) {
156
+ const value = this.state.inputBuffer.trim();
157
+ if (value) {
158
+ return this.close({ type: 'custom', customTopic: value });
159
+ }
160
+ // Don't allow empty - just ignore enter
161
+ return this.noAction();
162
+ }
163
+ // Backspace
164
+ if (key.name === 'backspace') {
165
+ if (this.state.inputCursorPos > 0) {
166
+ const before = this.state.inputBuffer.slice(0, this.state.inputCursorPos - 1);
167
+ const after = this.state.inputBuffer.slice(this.state.inputCursorPos);
168
+ this.state.inputBuffer = before + after;
169
+ this.state.inputCursorPos--;
170
+ return this.rerender();
171
+ }
172
+ return this.noAction();
173
+ }
174
+ // Delete
175
+ if (key.name === 'delete') {
176
+ if (this.state.inputCursorPos < this.state.inputBuffer.length) {
177
+ const before = this.state.inputBuffer.slice(0, this.state.inputCursorPos);
178
+ const after = this.state.inputBuffer.slice(this.state.inputCursorPos + 1);
179
+ this.state.inputBuffer = before + after;
180
+ return this.rerender();
181
+ }
182
+ return this.noAction();
183
+ }
184
+ // Left arrow - move cursor
185
+ if (key.name === 'left') {
186
+ if (this.state.inputCursorPos > 0) {
187
+ this.state.inputCursorPos--;
188
+ return this.rerender();
189
+ }
190
+ return this.noAction();
191
+ }
192
+ // Right arrow - move cursor
193
+ if (key.name === 'right') {
194
+ if (this.state.inputCursorPos < this.state.inputBuffer.length) {
195
+ this.state.inputCursorPos++;
196
+ return this.rerender();
197
+ }
198
+ return this.noAction();
199
+ }
200
+ // Home - move to start
201
+ if (key.name === 'home') {
202
+ this.state.inputCursorPos = 0;
203
+ return this.rerender();
204
+ }
205
+ // End - move to end
206
+ if (key.name === 'end') {
207
+ this.state.inputCursorPos = this.state.inputBuffer.length;
208
+ return this.rerender();
209
+ }
210
+ // Regular character input
211
+ if (key.char && key.char.length === 1 && key.char >= ' ' && key.char <= '~') {
212
+ const before = this.state.inputBuffer.slice(0, this.state.inputCursorPos);
213
+ const after = this.state.inputBuffer.slice(this.state.inputCursorPos);
214
+ this.state.inputBuffer = before + key.char + after;
215
+ this.state.inputCursorPos++;
216
+ return this.rerender();
217
+ }
218
+ return this.noAction();
219
+ }
220
+ // ===========================================================================
221
+ // Close Summary
222
+ // ===========================================================================
223
+ getCloseSummary(result) {
224
+ const s = this.getStyles();
225
+ if (!result) {
226
+ return s.muted('Arch: ') + s.warning('Cancelled');
227
+ }
228
+ if (result.customTopic) {
229
+ return s.muted('Arch: ') + s.primary(`Custom: ${result.customTopic}`);
230
+ }
231
+ const labels = {
232
+ 'adr': 'ADR',
233
+ 'diagram': 'Diagram',
234
+ 'data-model': 'Data Model',
235
+ 'api': 'API Design',
236
+ 'custom': 'Custom',
237
+ };
238
+ return s.muted('Arch: ') + s.primary(labels[result.type]);
239
+ }
240
+ }
@@ -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 {};
@@ -0,0 +1,232 @@
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 chalk from 'chalk';
12
+ import { marked } from 'marked';
13
+ import { markedTerminal } from 'marked-terminal';
14
+ import { BaseOverlayV2 } from '../../base/overlay-base-v2.js';
15
+ import { getCurrentTheme } from '../../../themes/index.js';
16
+ import * as terminal from '../../terminal.js';
17
+ import { ARTIFACT_TYPE_LABELS } from '../../constants/labels.js';
18
+ // =============================================================================
19
+ // Alternate Screen Buffer Management
20
+ // =============================================================================
21
+ let inAlternateScreen = false;
22
+ function enterAlternateScreen() {
23
+ if (inAlternateScreen)
24
+ return;
25
+ process.stdout.write('\x1b[?1049h'); // Switch to alternate screen
26
+ process.stdout.write('\x1b[H'); // Move cursor to home
27
+ inAlternateScreen = true;
28
+ }
29
+ function exitAlternateScreen() {
30
+ if (!inAlternateScreen)
31
+ return;
32
+ process.stdout.write('\x1b[?1049l'); // Switch back to main screen
33
+ inAlternateScreen = false;
34
+ }
35
+ // Ensure we exit alternate screen on process termination
36
+ function setupAlternateScreenCleanup() {
37
+ const cleanup = () => {
38
+ exitAlternateScreen();
39
+ };
40
+ process.on('exit', cleanup);
41
+ process.on('SIGINT', () => {
42
+ cleanup();
43
+ process.exit(130);
44
+ });
45
+ process.on('SIGTERM', () => {
46
+ cleanup();
47
+ process.exit(143);
48
+ });
49
+ }
50
+ setupAlternateScreenCleanup();
51
+ // =============================================================================
52
+ // Constants
53
+ // =============================================================================
54
+ const TYPE_LABELS = ARTIFACT_TYPE_LABELS;
55
+ // =============================================================================
56
+ // Markdown Rendering Helper
57
+ // =============================================================================
58
+ function getThemedMarkedOptions(termWidth) {
59
+ const theme = getCurrentTheme();
60
+ const primaryColor = chalk.hex(theme.colors.primary);
61
+ const secondaryColor = chalk.hex(theme.colors.secondary || theme.colors.primary);
62
+ const mutedColor = chalk.hex(theme.colors.muted);
63
+ const borderColor = chalk.hex(theme.colors.border);
64
+ const fgColor = chalk.hex(theme.colors.foreground);
65
+ return {
66
+ showSectionPrefix: false,
67
+ reflowText: false,
68
+ width: Math.min(100, termWidth - 4),
69
+ unescape: true,
70
+ tab: 2,
71
+ heading: primaryColor.bold,
72
+ firstHeading: primaryColor.bold,
73
+ strong: fgColor.bold,
74
+ em: fgColor.italic,
75
+ link: secondaryColor,
76
+ href: secondaryColor.underline,
77
+ blockquote: mutedColor.italic,
78
+ del: mutedColor.strikethrough,
79
+ hr: borderColor,
80
+ codespan: secondaryColor,
81
+ code: secondaryColor,
82
+ html: mutedColor,
83
+ table: fgColor,
84
+ listitem: fgColor,
85
+ paragraph: fgColor,
86
+ };
87
+ }
88
+ function renderMarkdownSync(content, termWidth) {
89
+ const options = getThemedMarkedOptions(termWidth);
90
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
91
+ marked.use(markedTerminal(options));
92
+ const rendered = marked.parse(content, { async: false });
93
+ return rendered.split('\n');
94
+ }
95
+ // =============================================================================
96
+ // Artifact Detail Overlay V2
97
+ // =============================================================================
98
+ export class ArtifactDetailOverlayV2 extends BaseOverlayV2 {
99
+ // Use 'inline' type so terminal-ui doesn't clear screen - we manage alternate screen ourselves
100
+ type = 'inline';
101
+ id = 'artifact-detail-overlay-v2';
102
+ // Tell terminal-ui we manage our own screen buffer - skip clearing on close
103
+ usesAlternateScreen = true;
104
+ artifact;
105
+ constructor(artifact) {
106
+ // Build header with metadata
107
+ const theme = getCurrentTheme();
108
+ const termWidth = terminal.getTerminalWidth();
109
+ const header = [];
110
+ header.push(chalk.bold.hex(theme.colors.primary)(`"${artifact.name}"`));
111
+ header.push('');
112
+ const typeLabel = TYPE_LABELS[artifact.type] || artifact.type;
113
+ const meta = [
114
+ `Type: ${chalk.bold(typeLabel)}`,
115
+ `Agent: ${chalk.bold(`$${artifact.agent}`)}`,
116
+ `Version: ${String(artifact.version)}`,
117
+ ];
118
+ header.push(meta.join(' | '));
119
+ const created = artifact.createdAt.toLocaleString();
120
+ const updated = artifact.updatedAt.toLocaleString();
121
+ header.push(chalk.hex(theme.colors.muted)(`Created: ${created} | Updated: ${updated}`));
122
+ header.push('');
123
+ if (artifact.summary) {
124
+ header.push(chalk.hex(theme.colors.muted)(`Summary: ${artifact.summary}`));
125
+ header.push('');
126
+ }
127
+ header.push(chalk.hex(theme.colors.muted)('─'.repeat(termWidth - 4)));
128
+ header.push('');
129
+ // Render markdown content
130
+ const contentLines = renderMarkdownSync(artifact.content, termWidth);
131
+ // Combine header and content
132
+ const renderedLines = [...header, ...contentLines];
133
+ super({
134
+ renderedLines,
135
+ scrollOffset: 0,
136
+ maxScroll: 0,
137
+ });
138
+ this.artifact = artifact;
139
+ }
140
+ /**
141
+ * Enter alternate screen buffer when overlay mounts.
142
+ */
143
+ onMount() {
144
+ enterAlternateScreen();
145
+ terminal.hideCursor();
146
+ }
147
+ /**
148
+ * Exit alternate screen buffer when overlay unmounts.
149
+ */
150
+ onUnmount() {
151
+ exitAlternateScreen();
152
+ terminal.showCursor();
153
+ }
154
+ renderContent(context) {
155
+ const s = context.styles;
156
+ const cols = context.width;
157
+ const rows = context.height;
158
+ // Calculate visible area (reserve 2 lines for footer)
159
+ const contentHeight = rows - 2;
160
+ this.state.maxScroll = Math.max(0, this.state.renderedLines.length - contentHeight + 2);
161
+ // Build output
162
+ const output = [];
163
+ // Render visible content lines
164
+ for (let i = 0; i < contentHeight; i++) {
165
+ const lineIndex = this.state.scrollOffset + i;
166
+ if (lineIndex < this.state.renderedLines.length) {
167
+ const line = this.state.renderedLines[lineIndex];
168
+ // Truncate to terminal width
169
+ output.push(line.slice(0, cols));
170
+ }
171
+ else {
172
+ output.push('');
173
+ }
174
+ }
175
+ // Render footer
176
+ const scrollInfo = this.state.maxScroll > 0
177
+ ? ` [${String(this.state.scrollOffset + 1)}-${String(Math.min(this.state.scrollOffset + contentHeight, this.state.renderedLines.length))}/${String(this.state.renderedLines.length)}]`
178
+ : '';
179
+ output.push(s.inverse(` q/Esc: back j/k: scroll g/G: top/bottom PgUp/PgDn: page ${scrollInfo} `.padEnd(cols)));
180
+ return output;
181
+ }
182
+ /**
183
+ * Handle key events
184
+ */
185
+ handleKey(key) {
186
+ const termHeight = terminal.getTerminalHeight();
187
+ const pageSize = termHeight - 4;
188
+ // Scroll down: j, Down
189
+ if (key.name === 'j' || key.name === 'down') {
190
+ if (this.state.scrollOffset < this.state.maxScroll) {
191
+ this.state.scrollOffset++;
192
+ }
193
+ return this.rerender();
194
+ }
195
+ // Scroll up: k, Up
196
+ if (key.name === 'k' || key.name === 'up') {
197
+ if (this.state.scrollOffset > 0) {
198
+ this.state.scrollOffset--;
199
+ }
200
+ return this.rerender();
201
+ }
202
+ // Page down: PgDn, Space, Ctrl+d
203
+ if (key.name === 'pagedown' || key.name === 'space' || (key.name === 'd' && key.ctrl)) {
204
+ this.state.scrollOffset = Math.min(this.state.maxScroll, this.state.scrollOffset + pageSize);
205
+ return this.rerender();
206
+ }
207
+ // Page up: PgUp, Ctrl+b
208
+ if (key.name === 'pageup' || (key.name === 'b' && key.ctrl)) {
209
+ this.state.scrollOffset = Math.max(0, this.state.scrollOffset - pageSize);
210
+ return this.rerender();
211
+ }
212
+ // Go to top: g, Home
213
+ if (key.name === 'g' || key.name === 'home') {
214
+ this.state.scrollOffset = 0;
215
+ return this.rerender();
216
+ }
217
+ // Go to bottom: G (shift+g), End
218
+ if ((key.name === 'g' && key.shift) || key.name === 'end') {
219
+ this.state.scrollOffset = this.state.maxScroll;
220
+ return this.rerender();
221
+ }
222
+ // Ctrl+C: exit completely
223
+ if (this.isInterruptKey(key)) {
224
+ return this.close({ goBack: false });
225
+ }
226
+ // q, Esc: go back to list
227
+ if (this.isCloseKey(key)) {
228
+ return this.close({ goBack: true });
229
+ }
230
+ return this.noAction();
231
+ }
232
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Artifact Overlay V2
3
+ *
4
+ * Browse and manage team artifacts.
5
+ * Uses TabbedListOverlayV2 for consistent list/tab/search behavior.
6
+ *
7
+ * Features:
8
+ * - Tabbed filtering by artifact type
9
+ * - Search with / toggle
10
+ * - Paginated list
11
+ * - Returns selected artifact for viewing in separate fullscreen overlay
12
+ */
13
+ import { TabbedListOverlayV2 } from '../../base/tabbed-list-overlay-v2.js';
14
+ import type { OverlayAction, KeyEvent } from '../types.js';
15
+ import { type Artifact } from '../../../multi-agent/index.js';
16
+ export interface ArtifactOverlayV2Result {
17
+ /** Selected artifact to view (if any) */
18
+ selectedArtifact?: Artifact;
19
+ /** Whether user cancelled (Ctrl+C or Esc) */
20
+ cancelled: boolean;
21
+ }
22
+ export declare class ArtifactOverlayV2 extends TabbedListOverlayV2<Artifact, ArtifactOverlayV2Result> {
23
+ readonly type: "inline";
24
+ readonly id = "artifact-overlay-v2";
25
+ private readonly projectName;
26
+ constructor();
27
+ /**
28
+ * Override to render project name in header
29
+ */
30
+ protected renderHeader(title: string, subtitle?: string): string[];
31
+ /**
32
+ * Override to handle item selection.
33
+ * Returns the selected artifact so the command handler can show it in a fullscreen overlay.
34
+ */
35
+ protected onItemSelected(artifact: Artifact): ArtifactOverlayV2Result | undefined;
36
+ /**
37
+ * Override to handle custom keys (delete)
38
+ */
39
+ handleKey(key: KeyEvent): OverlayAction<ArtifactOverlayV2Result>;
40
+ }