@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
@@ -1,34 +0,0 @@
1
- /**
2
- * Init Overlay (Refactored)
3
- *
4
- * Modal overlay for the /init wizard - creates new projects with structured workflow.
5
- * Uses InlineOverlay base class for consistent lifecycle management.
6
- *
7
- * Steps:
8
- * 0. Project type (new vs existing)
9
- * 1. Project name
10
- * 2. Description
11
- * 3. Repo pattern (single vs two-repo)
12
- * 4. Tech stack
13
- * 5. Coding standards
14
- * 6. Initialize git?
15
- * 7. Track with project database?
16
- * 8. Workflow mode (if tracking enabled)
17
- * 9. Confirmation
18
- */
19
- type WorkflowMode = 'flexible' | 'guided';
20
- export interface InitResult {
21
- created: boolean;
22
- projectPath?: string;
23
- docsPath?: string;
24
- filesCreated?: string[];
25
- trackInDatabase?: boolean;
26
- workflowMode?: WorkflowMode;
27
- projectName?: string;
28
- description?: string;
29
- }
30
- /**
31
- * Show the init wizard overlay
32
- */
33
- export declare function showInitOverlay(): Promise<InitResult>;
34
- export {};
@@ -1,600 +0,0 @@
1
- /**
2
- * Init Overlay (Refactored)
3
- *
4
- * Modal overlay for the /init wizard - creates new projects with structured workflow.
5
- * Uses InlineOverlay base class for consistent lifecycle management.
6
- *
7
- * Steps:
8
- * 0. Project type (new vs existing)
9
- * 1. Project name
10
- * 2. Description
11
- * 3. Repo pattern (single vs two-repo)
12
- * 4. Tech stack
13
- * 5. Coding standards
14
- * 6. Initialize git?
15
- * 7. Track with project database?
16
- * 8. Workflow mode (if tracking enabled)
17
- * 9. Confirmation
18
- */
19
- import chalk from 'chalk';
20
- import * as terminal from './terminal.js';
21
- import { getStyles } from '../themes/index.js';
22
- import { InlineOverlay } from './base/inline-overlay.js';
23
- import { TECH_STACK_LABELS, CODING_STANDARDS_LABELS, REPO_PATTERN_LABELS, generateProject, isValidProjectName, projectExists, } from '../templates/index.js';
24
- // =============================================================================
25
- // Constants
26
- // =============================================================================
27
- const TECH_STACK_OPTIONS = ['react-node-pg', 'react-python-pg', 'vue-node-pg', 'custom'];
28
- const CODING_STANDARDS_OPTIONS = ['strict', 'relaxed', 'custom'];
29
- const REPO_PATTERN_OPTIONS = ['single', 'two-repo'];
30
- const WORKFLOW_MODE_OPTIONS = ['flexible', 'guided'];
31
- const WORKFLOW_MODE_LABELS = {
32
- flexible: 'Flexible (user-driven, exploratory)',
33
- guided: 'Guided (structured step-by-step workflow)',
34
- };
35
- // =============================================================================
36
- // Rendering Helpers
37
- // =============================================================================
38
- function renderHeader(step) {
39
- const s = getStyles();
40
- const lines = [];
41
- const cols = terminal.getTerminalWidth();
42
- lines.push(s.muted('─'.repeat(Math.max(1, cols - 1))));
43
- lines.push(' ' + s.primaryBold('Initialize New Project') + s.muted(` [${String(step)}/9]`));
44
- lines.push('');
45
- return lines;
46
- }
47
- function renderFooter(step) {
48
- const s = getStyles();
49
- const lines = [];
50
- lines.push('');
51
- if (step === 0) {
52
- lines.push(s.muted(' ↑↓/jk Navigate · Enter Select · q/Esc Cancel'));
53
- }
54
- else if (step === 9) {
55
- lines.push(s.muted(' ↑↓/jk Navigate · Enter Confirm · Esc Back'));
56
- }
57
- else if (isSelectionStep(step)) {
58
- lines.push(s.muted(' ↑↓/jk Navigate · Enter Select · Esc Back'));
59
- }
60
- else {
61
- lines.push(s.muted(' Enter Confirm · Esc Back'));
62
- }
63
- return lines;
64
- }
65
- function renderSelectionOption(index, selectedIndex, label, disabled = false) {
66
- const s = getStyles();
67
- const isSelected = index === selectedIndex;
68
- const prefix = isSelected ? ' ❯ ' : ' ';
69
- if (disabled) {
70
- return s.muted(prefix + label + ' (coming soon)');
71
- }
72
- return isSelected ? s.primary(prefix + label) : s.muted(prefix + label);
73
- }
74
- // =============================================================================
75
- // Step Renderers
76
- // =============================================================================
77
- function renderStep0(state) {
78
- const s = getStyles();
79
- const lines = [];
80
- lines.push(chalk.bold(' What would you like to do?'));
81
- lines.push('');
82
- lines.push(renderSelectionOption(0, state.selectedIndex, '1. Start a new project'));
83
- lines.push(renderSelectionOption(1, state.selectedIndex, '2. Add workflow to existing project', true));
84
- lines.push('');
85
- lines.push(s.muted(' Start fresh with a structured project layout'));
86
- lines.push(s.muted(' optimized for AI-assisted development.'));
87
- return lines;
88
- }
89
- function renderStep1(state) {
90
- const s = getStyles();
91
- const lines = [];
92
- lines.push(chalk.bold(' Project name'));
93
- lines.push('');
94
- lines.push(` > ${state.inputBuffer}█`);
95
- lines.push('');
96
- if (state.error) {
97
- lines.push(s.error(` ${state.error}`));
98
- }
99
- else {
100
- lines.push(s.muted(' Use lowercase letters, numbers, hyphens (e.g., my-saas-app)'));
101
- lines.push(s.muted(' 2-50 characters, must start with a letter'));
102
- }
103
- return lines;
104
- }
105
- function renderStep2(state) {
106
- const s = getStyles();
107
- const lines = [];
108
- lines.push(chalk.bold(' What are you building?'));
109
- lines.push('');
110
- lines.push(` > ${state.inputBuffer}█`);
111
- lines.push('');
112
- if (state.error) {
113
- lines.push(s.error(` ${state.error}`));
114
- }
115
- else {
116
- lines.push(s.muted(' Brief description (1-2 sentences)'));
117
- lines.push(s.muted(' Example: "A task management SaaS for small teams"'));
118
- }
119
- return lines;
120
- }
121
- function renderStep3(state) {
122
- const s = getStyles();
123
- const lines = [];
124
- lines.push(chalk.bold(' Documentation structure'));
125
- lines.push('');
126
- for (let i = 0; i < REPO_PATTERN_OPTIONS.length; i++) {
127
- const pattern = REPO_PATTERN_OPTIONS[i];
128
- lines.push(renderSelectionOption(i, state.selectedIndex, `${String(i + 1)}. ${REPO_PATTERN_LABELS[pattern]}`));
129
- }
130
- lines.push('');
131
- lines.push(s.muted(' Single repo: All files in one repository'));
132
- lines.push(s.muted(' Two repos: Code and docs in separate repositories'));
133
- return lines;
134
- }
135
- function renderStep4(state) {
136
- const s = getStyles();
137
- const lines = [];
138
- lines.push(chalk.bold(' Tech stack'));
139
- lines.push('');
140
- for (let i = 0; i < TECH_STACK_OPTIONS.length; i++) {
141
- const stack = TECH_STACK_OPTIONS[i];
142
- lines.push(renderSelectionOption(i, state.selectedIndex, `${String(i + 1)}. ${TECH_STACK_LABELS[stack]}`));
143
- }
144
- lines.push('');
145
- lines.push(s.muted(' Choose a preset or configure later'));
146
- return lines;
147
- }
148
- function renderStep5(state) {
149
- const s = getStyles();
150
- const lines = [];
151
- lines.push(chalk.bold(' Coding standards preset'));
152
- lines.push('');
153
- for (let i = 0; i < CODING_STANDARDS_OPTIONS.length; i++) {
154
- const standard = CODING_STANDARDS_OPTIONS[i];
155
- lines.push(renderSelectionOption(i, state.selectedIndex, `${String(i + 1)}. ${CODING_STANDARDS_LABELS[standard]}`));
156
- }
157
- lines.push('');
158
- lines.push(s.muted(' Strict: Full TypeScript with strict mode + ESLint'));
159
- lines.push(s.muted(' Relaxed: TypeScript with basic strict mode'));
160
- lines.push(s.muted(' Custom: Configure your own standards later'));
161
- return lines;
162
- }
163
- function renderStep6(state) {
164
- const s = getStyles();
165
- const lines = [];
166
- lines.push(chalk.bold(' Initialize git repository?'));
167
- lines.push('');
168
- lines.push(renderSelectionOption(0, state.selectedIndex, 'Yes'));
169
- lines.push(renderSelectionOption(1, state.selectedIndex, 'No'));
170
- lines.push('');
171
- lines.push(s.muted(' Creates git repo with initial commit'));
172
- return lines;
173
- }
174
- function renderStep7(state) {
175
- const s = getStyles();
176
- const lines = [];
177
- lines.push(chalk.bold(' Track with project database?'));
178
- lines.push('');
179
- lines.push(renderSelectionOption(0, state.selectedIndex, 'Yes (recommended)'));
180
- lines.push(renderSelectionOption(1, state.selectedIndex, 'No'));
181
- lines.push('');
182
- lines.push(s.muted(' Enables persistent project tracking, backlog management,'));
183
- lines.push(s.muted(' and workflow features across sessions.'));
184
- return lines;
185
- }
186
- function renderStep8(state) {
187
- const s = getStyles();
188
- const lines = [];
189
- lines.push(chalk.bold(' Workflow mode'));
190
- lines.push('');
191
- for (let i = 0; i < WORKFLOW_MODE_OPTIONS.length; i++) {
192
- const mode = WORKFLOW_MODE_OPTIONS[i];
193
- const suffix = i === 0 ? ' (recommended)' : '';
194
- lines.push(renderSelectionOption(i, state.selectedIndex, `${String(i + 1)}. ${WORKFLOW_MODE_LABELS[mode]}${suffix}`));
195
- }
196
- lines.push('');
197
- lines.push(s.muted(' Flexible: Work at your own pace, agent responds to requests'));
198
- lines.push(s.muted(' Guided: Agent suggests next steps, tracks work item progress'));
199
- return lines;
200
- }
201
- function renderStep9(state) {
202
- const s = getStyles();
203
- const lines = [];
204
- lines.push(chalk.bold(' Ready to create project?'));
205
- lines.push('');
206
- lines.push(` Project: ${s.primary(state.projectName)}`);
207
- lines.push(` Location: ${s.primary('./' + state.projectName + '/')}`);
208
- lines.push(` Structure: ${s.primary(state.repoPattern === 'single' ? 'Single repo' : 'Two repos')}`);
209
- lines.push(` Tech: ${s.primary(state.techStack ? TECH_STACK_LABELS[state.techStack] : 'Not set')}`);
210
- lines.push(` Standards: ${s.primary(state.codingStandards ? CODING_STANDARDS_LABELS[state.codingStandards] : 'Not set')}`);
211
- lines.push(` Git: ${s.primary(state.initGit ? 'Yes' : 'No')}`);
212
- lines.push(` DB Tracking: ${s.primary(state.trackInDatabase ? 'Yes' : 'No')}`);
213
- if (state.trackInDatabase) {
214
- lines.push(` Workflow: ${s.primary(WORKFLOW_MODE_LABELS[state.workflowMode])}`);
215
- }
216
- if (state.repoPattern === 'two-repo') {
217
- lines.push('');
218
- lines.push(s.muted(` Docs repo: ./${state.projectName}-docs/`));
219
- }
220
- lines.push('');
221
- if (state.error) {
222
- lines.push(s.error(` ${state.error}`));
223
- lines.push('');
224
- }
225
- lines.push(renderSelectionOption(0, state.selectedIndex, 'Create'));
226
- lines.push(renderSelectionOption(1, state.selectedIndex, 'Cancel'));
227
- return lines;
228
- }
229
- function renderGenerating(state) {
230
- const lines = [];
231
- lines.push('');
232
- lines.push(chalk.cyan(` Creating project "${state.projectName}"...`));
233
- lines.push('');
234
- return lines;
235
- }
236
- // =============================================================================
237
- // Step Helpers
238
- // =============================================================================
239
- function getMaxOptionsForStep(step) {
240
- switch (step) {
241
- case 0:
242
- return 2;
243
- case 3:
244
- return REPO_PATTERN_OPTIONS.length;
245
- case 4:
246
- return TECH_STACK_OPTIONS.length;
247
- case 5:
248
- return CODING_STANDARDS_OPTIONS.length;
249
- case 6:
250
- return 2;
251
- case 7:
252
- return 2;
253
- case 8:
254
- return WORKFLOW_MODE_OPTIONS.length;
255
- case 9:
256
- return 2;
257
- default:
258
- return 0;
259
- }
260
- }
261
- function isSelectionStep(step) {
262
- return [0, 3, 4, 5, 6, 7, 8, 9].includes(step);
263
- }
264
- function isInputStep(step) {
265
- return [1, 2].includes(step);
266
- }
267
- // =============================================================================
268
- // Init Overlay Implementation
269
- // =============================================================================
270
- class InitOverlayImpl extends InlineOverlay {
271
- getInitialState() {
272
- return {
273
- step: 0,
274
- projectType: null,
275
- projectName: '',
276
- description: '',
277
- repoPattern: null,
278
- techStack: null,
279
- codingStandards: null,
280
- initGit: true,
281
- trackInDatabase: true,
282
- workflowMode: 'flexible',
283
- selectedIndex: 0,
284
- inputBuffer: '',
285
- error: null,
286
- isGenerating: false,
287
- };
288
- }
289
- render() {
290
- // Show generating state if applicable
291
- if (this.state.isGenerating) {
292
- return renderGenerating(this.state);
293
- }
294
- const lines = [];
295
- lines.push(...renderHeader(this.state.step));
296
- switch (this.state.step) {
297
- case 0:
298
- lines.push(...renderStep0(this.state));
299
- break;
300
- case 1:
301
- lines.push(...renderStep1(this.state));
302
- break;
303
- case 2:
304
- lines.push(...renderStep2(this.state));
305
- break;
306
- case 3:
307
- lines.push(...renderStep3(this.state));
308
- break;
309
- case 4:
310
- lines.push(...renderStep4(this.state));
311
- break;
312
- case 5:
313
- lines.push(...renderStep5(this.state));
314
- break;
315
- case 6:
316
- lines.push(...renderStep6(this.state));
317
- break;
318
- case 7:
319
- lines.push(...renderStep7(this.state));
320
- break;
321
- case 8:
322
- lines.push(...renderStep8(this.state));
323
- break;
324
- case 9:
325
- lines.push(...renderStep9(this.state));
326
- break;
327
- }
328
- lines.push(...renderFooter(this.state.step));
329
- return lines;
330
- }
331
- async handleKey(data) {
332
- // Ctrl+C always cancels
333
- if (this.isCtrlCKey(data)) {
334
- return { type: 'close', result: { created: false } };
335
- }
336
- // q key on step 0 cancels
337
- const char = data.length === 1 && data[0] >= 0x20 && data[0] < 0x7f ? String.fromCharCode(data[0]) : null;
338
- if (this.state.step === 0 && char === 'q') {
339
- return { type: 'close', result: { created: false } };
340
- }
341
- // Escape on step 0 cancels, otherwise goes back
342
- if (this.isEscapeKey(data)) {
343
- if (this.state.step === 0) {
344
- return { type: 'close', result: { created: false } };
345
- }
346
- this.prevStep();
347
- return { type: 'continue' };
348
- }
349
- // Handle selection steps
350
- if (isSelectionStep(this.state.step)) {
351
- const maxOptions = getMaxOptionsForStep(this.state.step);
352
- // j/k for vim-style navigation
353
- if (char === 'j' && this.state.selectedIndex < maxOptions - 1) {
354
- this.state.selectedIndex++;
355
- return { type: 'continue' };
356
- }
357
- if (char === 'k' && this.state.selectedIndex > 0) {
358
- this.state.selectedIndex--;
359
- return { type: 'continue' };
360
- }
361
- if (this.isUpArrowKey(data) && this.state.selectedIndex > 0) {
362
- this.state.selectedIndex--;
363
- return { type: 'continue' };
364
- }
365
- if (this.isDownArrowKey(data) && this.state.selectedIndex < maxOptions - 1) {
366
- this.state.selectedIndex++;
367
- return { type: 'continue' };
368
- }
369
- if (this.isEnterKey(data)) {
370
- // Step 0 - only allow "new" option
371
- if (this.state.step === 0 && this.state.selectedIndex === 1) {
372
- this.state.error = 'This option is coming soon';
373
- return { type: 'continue' };
374
- }
375
- // Step 9 - confirmation
376
- if (this.state.step === 9) {
377
- if (this.state.selectedIndex === 1) {
378
- // Cancel
379
- return { type: 'close', result: { created: false } };
380
- }
381
- // Verify all required fields are set
382
- if (!this.state.repoPattern || !this.state.techStack || !this.state.codingStandards) {
383
- this.state.error = 'Missing configuration values';
384
- return { type: 'continue' };
385
- }
386
- // Show generating state
387
- this.state.isGenerating = true;
388
- this.requestRender();
389
- // Create project
390
- const config = {
391
- name: this.state.projectName,
392
- description: this.state.description,
393
- repoPattern: this.state.repoPattern,
394
- techStack: this.state.techStack,
395
- codingStandards: this.state.codingStandards,
396
- initGit: this.state.initGit,
397
- };
398
- try {
399
- const result = await generateProject(config);
400
- if (result.success) {
401
- return {
402
- type: 'close',
403
- result: {
404
- created: true,
405
- projectPath: result.projectPath,
406
- docsPath: result.docsPath,
407
- filesCreated: result.filesCreated,
408
- trackInDatabase: this.state.trackInDatabase,
409
- workflowMode: this.state.workflowMode,
410
- projectName: this.state.projectName,
411
- description: this.state.description,
412
- },
413
- };
414
- }
415
- else {
416
- this.state.isGenerating = false;
417
- this.state.error = result.error ?? 'Unknown error';
418
- return { type: 'continue' };
419
- }
420
- }
421
- catch (error) {
422
- this.state.isGenerating = false;
423
- this.state.error = error.message;
424
- return { type: 'continue' };
425
- }
426
- }
427
- this.nextStep();
428
- return { type: 'continue' };
429
- }
430
- }
431
- // Handle input steps
432
- if (isInputStep(this.state.step)) {
433
- if (this.isEnterKey(data)) {
434
- if (this.validateInput()) {
435
- this.nextStep();
436
- }
437
- return { type: 'continue' };
438
- }
439
- if (this.isBackspaceKey(data)) {
440
- this.state.inputBuffer = this.state.inputBuffer.slice(0, -1);
441
- this.state.error = null;
442
- return { type: 'continue' };
443
- }
444
- // Regular character input
445
- const inputChar = this.getPrintableChar(data);
446
- if (inputChar) {
447
- this.state.inputBuffer += inputChar;
448
- this.state.error = null;
449
- return { type: 'continue' };
450
- }
451
- }
452
- return { type: 'continue' };
453
- }
454
- getCleanupSummary(result) {
455
- if (!result.created) {
456
- return chalk.yellow(' Init cancelled');
457
- }
458
- return null;
459
- }
460
- // ===========================================================================
461
- // Private Helpers
462
- // ===========================================================================
463
- nextStep() {
464
- switch (this.state.step) {
465
- case 0:
466
- if (this.state.selectedIndex === 0) {
467
- this.state.projectType = 'new';
468
- this.state.step = 1;
469
- this.state.inputBuffer = '';
470
- this.state.selectedIndex = 0;
471
- }
472
- break;
473
- case 1:
474
- this.state.projectName = this.state.inputBuffer.trim();
475
- this.state.step = 2;
476
- this.state.inputBuffer = '';
477
- break;
478
- case 2:
479
- this.state.description = this.state.inputBuffer.trim();
480
- this.state.step = 3;
481
- this.state.selectedIndex = 0;
482
- break;
483
- case 3:
484
- this.state.repoPattern = REPO_PATTERN_OPTIONS[this.state.selectedIndex];
485
- this.state.step = 4;
486
- this.state.selectedIndex = 0;
487
- break;
488
- case 4:
489
- this.state.techStack = TECH_STACK_OPTIONS[this.state.selectedIndex];
490
- this.state.step = 5;
491
- this.state.selectedIndex = 0;
492
- break;
493
- case 5:
494
- this.state.codingStandards = CODING_STANDARDS_OPTIONS[this.state.selectedIndex];
495
- this.state.step = 6;
496
- this.state.selectedIndex = 0;
497
- break;
498
- case 6:
499
- this.state.initGit = this.state.selectedIndex === 0;
500
- this.state.step = 7;
501
- this.state.selectedIndex = 0;
502
- break;
503
- case 7:
504
- this.state.trackInDatabase = this.state.selectedIndex === 0;
505
- // If tracking in DB, ask for workflow mode; otherwise skip to confirmation
506
- this.state.step = this.state.trackInDatabase ? 8 : 9;
507
- this.state.selectedIndex = 0;
508
- break;
509
- case 8:
510
- this.state.workflowMode = WORKFLOW_MODE_OPTIONS[this.state.selectedIndex];
511
- this.state.step = 9;
512
- this.state.selectedIndex = 0;
513
- break;
514
- }
515
- this.state.error = null;
516
- }
517
- prevStep() {
518
- switch (this.state.step) {
519
- case 1:
520
- this.state.step = 0;
521
- this.state.selectedIndex = 0;
522
- break;
523
- case 2:
524
- this.state.step = 1;
525
- this.state.inputBuffer = this.state.projectName;
526
- break;
527
- case 3:
528
- this.state.step = 2;
529
- this.state.inputBuffer = this.state.description;
530
- break;
531
- case 4:
532
- this.state.step = 3;
533
- this.state.selectedIndex = this.state.repoPattern ? REPO_PATTERN_OPTIONS.indexOf(this.state.repoPattern) : 0;
534
- break;
535
- case 5:
536
- this.state.step = 4;
537
- this.state.selectedIndex = this.state.techStack ? TECH_STACK_OPTIONS.indexOf(this.state.techStack) : 0;
538
- break;
539
- case 6:
540
- this.state.step = 5;
541
- this.state.selectedIndex = this.state.codingStandards ? CODING_STANDARDS_OPTIONS.indexOf(this.state.codingStandards) : 0;
542
- break;
543
- case 7:
544
- this.state.step = 6;
545
- this.state.selectedIndex = this.state.initGit ? 0 : 1;
546
- break;
547
- case 8:
548
- this.state.step = 7;
549
- this.state.selectedIndex = this.state.trackInDatabase ? 0 : 1;
550
- break;
551
- case 9:
552
- // Go back to workflow mode if DB tracking is on, otherwise go to DB tracking step
553
- this.state.step = this.state.trackInDatabase ? 8 : 7;
554
- this.state.selectedIndex = this.state.trackInDatabase
555
- ? WORKFLOW_MODE_OPTIONS.indexOf(this.state.workflowMode)
556
- : 1;
557
- break;
558
- }
559
- this.state.error = null;
560
- }
561
- validateInput() {
562
- if (this.state.step === 1) {
563
- const name = this.state.inputBuffer.trim();
564
- if (!name) {
565
- this.state.error = 'Project name is required';
566
- return false;
567
- }
568
- if (!isValidProjectName(name)) {
569
- this.state.error = 'Invalid name. Use lowercase letters, numbers, hyphens (2-50 chars, start with letter)';
570
- return false;
571
- }
572
- if (projectExists(name)) {
573
- this.state.error = `Directory "${name}" already exists`;
574
- return false;
575
- }
576
- }
577
- if (this.state.step === 2) {
578
- const desc = this.state.inputBuffer.trim();
579
- if (!desc) {
580
- this.state.error = 'Description is required';
581
- return false;
582
- }
583
- if (desc.length < 10) {
584
- this.state.error = 'Description too short (min 10 characters)';
585
- return false;
586
- }
587
- }
588
- return true;
589
- }
590
- }
591
- // =============================================================================
592
- // Main Export
593
- // =============================================================================
594
- /**
595
- * Show the init wizard overlay
596
- */
597
- export async function showInitOverlay() {
598
- const overlay = new InitOverlayImpl();
599
- return overlay.show();
600
- }
@@ -1,34 +0,0 @@
1
- /**
2
- * Init Overlay (Refactored)
3
- *
4
- * Modal overlay for the /init wizard - creates new projects with structured workflow.
5
- * Uses InlineOverlay base class for consistent lifecycle management.
6
- *
7
- * Steps:
8
- * 0. Project type (new vs existing)
9
- * 1. Project name
10
- * 2. Description
11
- * 3. Repo pattern (single vs two-repo)
12
- * 4. Tech stack
13
- * 5. Coding standards
14
- * 6. Initialize git?
15
- * 7. Track with project database?
16
- * 8. Workflow mode (if tracking enabled)
17
- * 9. Confirmation
18
- */
19
- type WorkflowMode = 'flexible' | 'guided';
20
- export interface InitResult {
21
- created: boolean;
22
- projectPath?: string;
23
- docsPath?: string;
24
- filesCreated?: string[];
25
- trackInDatabase?: boolean;
26
- workflowMode?: WorkflowMode;
27
- projectName?: string;
28
- description?: string;
29
- }
30
- /**
31
- * Show the init wizard overlay
32
- */
33
- export declare function showInitOverlay(): Promise<InitResult>;
34
- export {};