@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,290 @@
1
+ /**
2
+ * Core Commands for REPL V2
3
+ *
4
+ * Essential commands: exit, clear, help
5
+ */
6
+ import { HelpOverlayV2, TutorialOverlayV2, CommandsOverlayV2, DashboardOverlayV2, ChangelogOverlayV2, } from '../../ui/overlay/index.js';
7
+ import { executeCommand, getHelpCommands, getCommand } from '../registry.js';
8
+ import { projectRepository } from '../../db/repositories/index.js';
9
+ import { setCurrentProject } from '../../tools/project-db.js';
10
+ import { getStyles } from '../../themes/index.js';
11
+ import { getCurrentProjectIdForTracking, handleProjectSwitch, convertMessagesToItems } from './session.js';
12
+ // =============================================================================
13
+ // Exit Command
14
+ // =============================================================================
15
+ export const exitCommand = {
16
+ name: 'exit',
17
+ aliases: ['quit', 'q'],
18
+ description: 'Exit the REPL',
19
+ details: 'Exits the CLI. Your conversation is not saved unless you export it first.',
20
+ examples: [
21
+ { code: '/exit' },
22
+ { code: '/quit', description: 'Alias' },
23
+ { code: '/q', description: 'Short alias' },
24
+ ],
25
+ execute(_args, ctx) {
26
+ ctx.ui.stop();
27
+ console.log('\nGoodbye!\n');
28
+ return Promise.resolve(false);
29
+ },
30
+ };
31
+ // =============================================================================
32
+ // Clear Command
33
+ // =============================================================================
34
+ export const clearCommand = {
35
+ name: 'clear',
36
+ aliases: ['cls'],
37
+ description: 'Clear the screen',
38
+ details: 'Clears the terminal screen. Does not affect conversation history or context.',
39
+ examples: [{ code: '/clear' }],
40
+ async execute(_args, ctx) {
41
+ // Pause footer render loop so console.log() in printWelcome doesn't
42
+ // race with footer positioning (causes hints to land below the footer)
43
+ ctx.ui.pauseAnimation();
44
+ await ctx.printWelcome();
45
+ ctx.ui.resumeAnimation();
46
+ return true;
47
+ },
48
+ };
49
+ // =============================================================================
50
+ // Help Command
51
+ // =============================================================================
52
+ export const helpCommand = {
53
+ name: 'help',
54
+ aliases: ['h', '?'],
55
+ description: 'Show available commands',
56
+ details: 'Opens the help overlay with tabs for general info, commands list, and custom commands.',
57
+ examples: [
58
+ { code: '/help' },
59
+ { code: '/?', description: 'Short alias' },
60
+ ],
61
+ interactions: [
62
+ 'Tab cycles: All → Built-in → Custom',
63
+ '↑/↓ to navigate command list',
64
+ 'Enter to view command details',
65
+ 'Esc to go back or close',
66
+ ],
67
+ async execute(_args, ctx) {
68
+ const helpOverlay = new HelpOverlayV2({ getHelpCommands, getCommand });
69
+ await ctx.ui.showOverlay(helpOverlay);
70
+ return true;
71
+ },
72
+ };
73
+ // =============================================================================
74
+ // Tutorial Command
75
+ // =============================================================================
76
+ export const tutorialCommand = {
77
+ name: 'tutorial',
78
+ description: 'Interactive workflow tutorial',
79
+ details: 'Opens a comprehensive tutorial covering all CLI features. Browse by category (Basics, Projects, Planning, Teams, Config) and view detailed guides for each topic.',
80
+ examples: [{ code: '/tutorial' }],
81
+ interactions: [
82
+ '←/→ or Tab to switch between category tabs',
83
+ '↑/↓ or j/k to navigate topics',
84
+ 'Enter to view topic details',
85
+ '/ to search tutorials',
86
+ 'Esc to go back or close',
87
+ ],
88
+ async execute(_args, ctx) {
89
+ const tutorialOverlay = new TutorialOverlayV2();
90
+ const result = await ctx.ui.showOverlay(tutorialOverlay);
91
+ if (result?.completed) {
92
+ ctx.ui.print({ type: 'success', message: 'Tutorial completed!' });
93
+ }
94
+ return true;
95
+ },
96
+ };
97
+ // =============================================================================
98
+ // Changelog Command
99
+ // =============================================================================
100
+ export const changelogCommand = {
101
+ name: 'changelog',
102
+ aliases: ['changes', 'whatsnew'],
103
+ description: 'View release notes',
104
+ details: 'Opens a browsable overlay showing release notes for each version. View categorized changes (added, changed, fixed) for any release.',
105
+ examples: [
106
+ { code: '/changelog' },
107
+ { code: '/whatsnew', description: 'Alias' },
108
+ ],
109
+ interactions: [
110
+ '↑/↓ or j/k to navigate releases',
111
+ 'Enter to view release details',
112
+ '/ to search releases',
113
+ 'Esc to go back or close',
114
+ ],
115
+ async execute(_args, ctx) {
116
+ const overlay = new ChangelogOverlayV2();
117
+ await ctx.ui.showOverlay(overlay);
118
+ return true;
119
+ },
120
+ };
121
+ // =============================================================================
122
+ // Commands Command
123
+ // =============================================================================
124
+ export const commandsCommand = {
125
+ name: 'commands',
126
+ description: 'Manage custom commands',
127
+ details: 'Create, edit, or delete custom slash commands. Custom commands are markdown files that expand into prompts when invoked.',
128
+ examples: [{ code: '/commands' }],
129
+ interactions: [
130
+ '↑/↓ to navigate commands',
131
+ 'Enter to select or create new',
132
+ 'Esc to close',
133
+ ],
134
+ async execute(_args, ctx) {
135
+ const commandsOverlay = new CommandsOverlayV2();
136
+ const result = await ctx.ui.showOverlay(commandsOverlay);
137
+ if (result?.created) {
138
+ ctx.ui.print({ type: 'success', message: `Created command: /${result.created}` });
139
+ }
140
+ return true;
141
+ },
142
+ };
143
+ // =============================================================================
144
+ // Menu Command - Returns to Project Dashboard
145
+ // =============================================================================
146
+ export const menuCommand = {
147
+ name: 'menu',
148
+ description: 'Return to the Project Dashboard',
149
+ details: 'Opens the Project Dashboard where you can see current project info, switch projects, or start new work. From the dashboard you can create new projects, open existing ones, or start Quick Chat mode.',
150
+ examples: [{ code: '/menu' }],
151
+ interactions: [
152
+ '↑/↓ or j/k to navigate',
153
+ '←/→ or h/l to switch tabs (Dashboard ↔ More)',
154
+ 'Enter to select, q/Esc to exit',
155
+ 'n for /new, p for projects, c for chat, w for workflow',
156
+ ],
157
+ async execute(_args, ctx) {
158
+ // Print logo to scrolling area (stays visible while overlays render below)
159
+ ctx.printLogo();
160
+ // Show session restoration info if available (startup only, one-shot)
161
+ const sessionInfo = ctx.consumeRestoredSessionInfo();
162
+ if (sessionInfo) {
163
+ const s = getStyles();
164
+ console.log(s.info(sessionInfo));
165
+ console.log('');
166
+ }
167
+ // Show update notification if available
168
+ if (ctx.updateAvailable) {
169
+ const s = getStyles();
170
+ console.log(s.warning(` ⬆ Update available: v${ctx.updateAvailable.current} → v${ctx.updateAvailable.latest}`));
171
+ console.log(s.muted(' Run: npm update -g @compilr-dev/cli'));
172
+ console.log('');
173
+ }
174
+ // Dashboard loop - returns to dashboard after sub-commands until user exits or continues
175
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
176
+ while (true) {
177
+ const dashboard = new DashboardOverlayV2();
178
+ const result = await ctx.ui.showOverlay(dashboard);
179
+ if (!result) {
180
+ return true;
181
+ }
182
+ // Handle dashboard result actions
183
+ switch (result.action) {
184
+ case 'exit':
185
+ ctx.ui.stop();
186
+ console.log('\nGoodbye!\n');
187
+ return false;
188
+ case 'continue': {
189
+ // Switch to selected project if different from current
190
+ if (result.projectId) {
191
+ const oldProjectId = getCurrentProjectIdForTracking();
192
+ const project = projectRepository.getById(result.projectId);
193
+ if (project) {
194
+ setCurrentProject({
195
+ id: project.id,
196
+ name: project.name,
197
+ displayName: project.displayName,
198
+ path: project.path,
199
+ });
200
+ ctx.ui.setProjectName(project.displayName);
201
+ ctx.ui.print({ type: 'success', message: `Switched to project: ${project.displayName}` });
202
+ // Handle project switch - saves old session/team and loads new project's team
203
+ const switchResult = await handleProjectSwitch(oldProjectId, ctx.agent ?? null, ctx.team && ctx.agentFactory ? {
204
+ team: ctx.team,
205
+ agentFactory: ctx.agentFactory,
206
+ } : undefined);
207
+ if (switchResult?.switched) {
208
+ // Update the team if a new one was created/loaded
209
+ if (switchResult.newTeam && ctx.setTeam) {
210
+ ctx.setTeam(switchResult.newTeam);
211
+ // Update footer with new active agent
212
+ const active = switchResult.newTeam.getActive();
213
+ ctx.ui.setActiveTeamAgent({
214
+ id: active.id,
215
+ displayName: active.displayName,
216
+ mascot: active.mascot,
217
+ });
218
+ }
219
+ if (switchResult.sessionRestored) {
220
+ ctx.ui.print({ type: 'info', message: `Session restored (${String(switchResult.messageCount)} messages).` });
221
+ ctx.ui.print({ type: 'info', message: 'Tip: Use Ctrl+R to view conversation history.' });
222
+ if (switchResult.restoredMessages) {
223
+ ctx.ui.setRestoredHistory(convertMessagesToItems(switchResult.restoredMessages));
224
+ }
225
+ }
226
+ }
227
+ }
228
+ }
229
+ return true; // Exit loop, return to REPL
230
+ }
231
+ case 'chat': {
232
+ // Track old project for team saving
233
+ const oldProjectId = getCurrentProjectIdForTracking();
234
+ // Save current team before clearing project (if in a project)
235
+ if (oldProjectId !== null && ctx.team && ctx.agentFactory) {
236
+ await handleProjectSwitch(oldProjectId, ctx.agent ?? null, {
237
+ team: ctx.team,
238
+ agentFactory: ctx.agentFactory,
239
+ });
240
+ }
241
+ // Clear current project for quick chat mode
242
+ setCurrentProject(null);
243
+ ctx.ui.setProjectName(null);
244
+ ctx.ui.print({ type: 'warning', message: 'Quick Chat mode - no project context. Use /menu to select a project.' });
245
+ return true; // Exit loop, return to REPL
246
+ }
247
+ case 'new':
248
+ await executeCommand('new', '', ctx);
249
+ // Loop back to dashboard after /new completes
250
+ break;
251
+ case 'projects':
252
+ await executeCommand('projects', '', ctx);
253
+ // Loop back to dashboard after /projects completes
254
+ break;
255
+ case 'workflow':
256
+ await executeCommand('workflow', '', ctx);
257
+ // Loop back to dashboard after /workflow completes
258
+ break;
259
+ case 'help':
260
+ await executeCommand('help', '', ctx);
261
+ // Loop back to dashboard after /help closes
262
+ break;
263
+ case 'config':
264
+ await executeCommand('config', '', ctx);
265
+ // Loop back to dashboard after /config closes
266
+ break;
267
+ case 'about':
268
+ ctx.ui.print({ type: 'info', message: '@compilr-dev/cli v0.4.0' });
269
+ ctx.ui.print({ type: 'info', message: 'AI-powered coding assistant using @compilr-dev/agents' });
270
+ ctx.ui.print({ type: 'info', message: 'https://github.com/compilr-dev/cli' });
271
+ // Loop back to dashboard after showing about info
272
+ break;
273
+ default:
274
+ return true;
275
+ }
276
+ }
277
+ },
278
+ };
279
+ // =============================================================================
280
+ // Export All Core Commands
281
+ // =============================================================================
282
+ export const coreCommands = [
283
+ exitCommand,
284
+ clearCommand,
285
+ helpCommand,
286
+ tutorialCommand,
287
+ changelogCommand,
288
+ commandsCommand,
289
+ menuCommand,
290
+ ];
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Debug Commands for REPL V2
3
+ *
4
+ * Commands for testing and debugging: todos, suggest, bash, subagent
5
+ */
6
+ import type { CommandHandlerV2 } from '../types.js';
7
+ export declare const sampleTodosCommand: CommandHandlerV2;
8
+ export declare const suggestCommand: CommandHandlerV2;
9
+ export declare const bashCommand: CommandHandlerV2;
10
+ export declare const subagentCommand: CommandHandlerV2;
11
+ export declare const debugCommands: CommandHandlerV2[];
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Debug Commands for REPL V2
3
+ *
4
+ * Commands for testing and debugging: todos, suggest, bash, subagent
5
+ */
6
+ import { spawn } from 'child_process';
7
+ // =============================================================================
8
+ // Sample Todos Command (Debug) - adds sample todos for testing
9
+ // =============================================================================
10
+ export const sampleTodosCommand = {
11
+ name: 'sample-todos',
12
+ description: 'Add sample todos for testing (debug)',
13
+ details: 'Debug command that adds sample todo items to the footer for testing the todo display. Not for regular use.',
14
+ examples: [{ code: '/sample-todos' }],
15
+ execute(_args, ctx) {
16
+ ctx.ui.setTodos([
17
+ { content: 'First task', status: 'completed' },
18
+ { content: 'Second task', status: 'in_progress' },
19
+ { content: 'Third task', status: 'pending' },
20
+ ]);
21
+ ctx.ui.print({ type: 'info', message: 'Added sample todos' });
22
+ return Promise.resolve(true);
23
+ },
24
+ };
25
+ // =============================================================================
26
+ // Suggest Command (Debug)
27
+ // =============================================================================
28
+ export const suggestCommand = {
29
+ name: 'suggest',
30
+ description: 'Set ghost text suggestion (debug)',
31
+ details: 'Debug command that sets a ghost text suggestion in the input prompt for testing the autocomplete display.',
32
+ examples: [
33
+ { code: '/suggest', description: 'Default suggestion' },
34
+ { code: '/suggest hello world', description: 'Custom suggestion' },
35
+ ],
36
+ execute(args, ctx) {
37
+ if (args) {
38
+ ctx.ui.setSuggestion(args);
39
+ ctx.ui.print({ type: 'info', message: `Suggestion set to: "${args}"` });
40
+ }
41
+ else {
42
+ ctx.ui.setSuggestion('try typing something...');
43
+ ctx.ui.print({ type: 'info', message: 'Suggestion set' });
44
+ }
45
+ return Promise.resolve(true);
46
+ },
47
+ };
48
+ // =============================================================================
49
+ // Bash Command (Debug) - Executes a real bash command with LiveRegion display
50
+ // =============================================================================
51
+ export const bashCommand = {
52
+ name: 'bash',
53
+ description: 'Execute a real bash command in LiveRegion (debug)',
54
+ details: 'Debug command that executes a real bash command and streams output to the LiveRegion. Used for testing bash display rendering.',
55
+ examples: [
56
+ { code: '/bash', description: 'Default hello command' },
57
+ { code: '/bash ls -la', description: 'Run ls command' },
58
+ ],
59
+ async execute(args, ctx) {
60
+ const command = args || 'echo "Hello from bash!" && sleep 1 && echo "Done!"';
61
+ const id = `bash-${String(Date.now())}`;
62
+ // Enable input queueing while bash is running
63
+ ctx.ui.setAgentRunning(true);
64
+ // Add bash command to LiveRegion
65
+ ctx.ui.addBashCommand(id, command);
66
+ // Execute the real command
67
+ const exitCode = await new Promise((resolve) => {
68
+ const child = spawn('bash', ['-c', command], {
69
+ cwd: process.cwd(),
70
+ env: process.env,
71
+ });
72
+ // Handle stdout - stream each line to LiveRegion
73
+ child.stdout.on('data', (data) => {
74
+ const lines = data.toString().split('\n').filter((line) => line.length > 0);
75
+ for (const line of lines) {
76
+ ctx.ui.updateBashOutput(id, line);
77
+ }
78
+ });
79
+ // Handle stderr - also stream to LiveRegion
80
+ child.stderr.on('data', (data) => {
81
+ const lines = data.toString().split('\n').filter((line) => line.length > 0);
82
+ for (const line of lines) {
83
+ ctx.ui.updateBashOutput(id, `[stderr] ${line}`);
84
+ }
85
+ });
86
+ // Handle completion
87
+ child.on('close', (code) => {
88
+ resolve(code ?? 0);
89
+ });
90
+ // Handle errors
91
+ child.on('error', (err) => {
92
+ ctx.ui.updateBashOutput(id, `[error] ${err.message}`);
93
+ resolve(1);
94
+ });
95
+ });
96
+ // Complete the bash command
97
+ ctx.ui.completeBashCommand(id, exitCode);
98
+ // Short delay to show completion state, then commit to scrolling zone
99
+ await sleep(1000);
100
+ ctx.ui.commitBashCommand(id);
101
+ // Disable input queueing
102
+ ctx.ui.setAgentRunning(false);
103
+ return true;
104
+ },
105
+ };
106
+ /**
107
+ * Sleep helper for simulating delays
108
+ */
109
+ function sleep(ms) {
110
+ return new Promise((resolve) => setTimeout(resolve, ms));
111
+ }
112
+ // =============================================================================
113
+ // Subagent Command (Debug) - Simulates a running subagent
114
+ // =============================================================================
115
+ export const subagentCommand = {
116
+ name: 'subagent',
117
+ description: 'Simulate a subagent in LiveRegion (debug)',
118
+ details: 'Debug command that simulates subagent execution with tool calls and completion in the LiveRegion. Used for testing subagent display rendering.',
119
+ examples: [
120
+ { code: '/subagent', description: 'Single subagent' },
121
+ { code: '/subagent multi', description: 'Multiple subagents' },
122
+ { code: '/subagent 5', description: 'Run 5 subagents' },
123
+ ],
124
+ async execute(args, ctx) {
125
+ // Parse args: "single" or "multi" or number
126
+ const mode = args.trim().toLowerCase();
127
+ const count = parseInt(mode, 10) || (mode === 'multi' ? 3 : 1);
128
+ // Enable input queueing while subagents are running
129
+ ctx.ui.setAgentRunning(true);
130
+ ctx.ui.print({ type: 'info', message: `Starting ${String(count)} subagent simulation(s)...` });
131
+ const agentIds = [];
132
+ // Create subagents
133
+ for (let i = 0; i < count; i++) {
134
+ const id = `subagent-${String(Date.now())}-${String(i)}`;
135
+ agentIds.push(id);
136
+ ctx.ui.addSubagent(id, 'Explore', `Task ${String(i + 1)}: Search for files`);
137
+ }
138
+ // Simulate tool calls for each agent
139
+ const tools = ['Glob', 'Grep', 'Read', 'Grep', 'Read'];
140
+ const summaries = [
141
+ 'Searching for *.ts files...',
142
+ 'Looking for pattern "export"...',
143
+ 'Reading src/index.ts...',
144
+ 'Looking for imports...',
145
+ 'Reading config files...',
146
+ ];
147
+ for (let t = 0; t < tools.length; t++) {
148
+ await sleep(1000);
149
+ for (const agentId of agentIds) {
150
+ ctx.ui.updateSubagentTool(agentId, tools[t], summaries[t]);
151
+ }
152
+ }
153
+ // Complete all agents
154
+ await sleep(500);
155
+ for (const agentId of agentIds) {
156
+ ctx.ui.completeSubagent(agentId, true, 5000);
157
+ }
158
+ // Wait then commit to scrolling zone
159
+ await sleep(2000);
160
+ for (const agentId of agentIds) {
161
+ ctx.ui.commitSubagent(agentId, 'Simulation completed', true);
162
+ }
163
+ // Disable input queueing
164
+ ctx.ui.setAgentRunning(false);
165
+ ctx.ui.print({ type: 'success', message: `${String(count)} subagent simulation(s) completed` });
166
+ return true;
167
+ },
168
+ };
169
+ // =============================================================================
170
+ // Export All Debug Commands
171
+ // =============================================================================
172
+ export const debugCommands = [
173
+ sampleTodosCommand,
174
+ suggestCommand,
175
+ bashCommand,
176
+ subagentCommand,
177
+ ];
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Delegations Command Handler
3
+ *
4
+ * Opens the delegations overlay to view coordinator delegation status.
5
+ */
6
+ import type { CommandHandlerV2 } from '../types.js';
7
+ export declare const delegationsCommand: CommandHandlerV2;
8
+ export declare const delegationsCommands: CommandHandlerV2[];
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Delegations Command Handler
3
+ *
4
+ * Opens the delegations overlay to view coordinator delegation status.
5
+ */
6
+ import { DelegationsOverlayV2 } from '../../ui/overlay/index.js';
7
+ export const delegationsCommand = {
8
+ name: 'delegations',
9
+ aliases: ['del'],
10
+ description: 'View delegation status and history',
11
+ details: 'Shows delegations from the coordinator to background specialists. ' +
12
+ 'Displays active, completed, and failed delegations with timing and results.',
13
+ examples: [
14
+ { code: '/delegations', description: 'Open the delegations overlay' },
15
+ { code: '/del', description: 'Short alias' },
16
+ ],
17
+ interactions: [
18
+ '↑↓ to navigate',
19
+ 'Enter to view details',
20
+ 'c to clear completed',
21
+ 'Esc to close',
22
+ ],
23
+ async execute(_args, ctx) {
24
+ const overlay = new DelegationsOverlayV2();
25
+ await ctx.ui.showOverlay(overlay);
26
+ return true;
27
+ },
28
+ };
29
+ export const delegationsCommands = [delegationsCommand];
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Files Command for REPL V2
3
+ *
4
+ * Shows files tracked during the session (read, modified, referenced).
5
+ * Supports multi-agent teams: shows files per agent.
6
+ */
7
+ import type { CommandHandlerV2 } from '../types.js';
8
+ export declare const filesCommands: CommandHandlerV2[];