@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,114 @@
1
+ /**
2
+ * Command Registry for REPL V2
3
+ *
4
+ * Central registry for all V2 command handlers.
5
+ * Handles command resolution (including aliases) and execution.
6
+ */
7
+ // =============================================================================
8
+ // Registry State
9
+ // =============================================================================
10
+ const handlers = new Map();
11
+ const aliasMap = new Map();
12
+ // =============================================================================
13
+ // Registry Functions
14
+ // =============================================================================
15
+ /**
16
+ * Register a command handler.
17
+ */
18
+ export function registerCommand(handler) {
19
+ handlers.set(handler.name, handler);
20
+ // Register aliases
21
+ if (handler.aliases) {
22
+ for (const alias of handler.aliases) {
23
+ aliasMap.set(alias, handler.name);
24
+ }
25
+ }
26
+ }
27
+ /**
28
+ * Register multiple command handlers.
29
+ */
30
+ export function registerCommands(handlerList) {
31
+ for (const handler of handlerList) {
32
+ registerCommand(handler);
33
+ }
34
+ }
35
+ /**
36
+ * Get a command handler by name or alias.
37
+ */
38
+ export function getCommand(nameOrAlias) {
39
+ // Try direct lookup first
40
+ const handler = handlers.get(nameOrAlias);
41
+ if (handler)
42
+ return handler;
43
+ // Try alias lookup
44
+ const resolvedName = aliasMap.get(nameOrAlias);
45
+ if (resolvedName) {
46
+ return handlers.get(resolvedName);
47
+ }
48
+ return undefined;
49
+ }
50
+ /**
51
+ * Execute a command by name or alias.
52
+ *
53
+ * @returns true to continue, false to exit, null if command not found
54
+ */
55
+ export async function executeCommand(nameOrAlias, args, ctx) {
56
+ const handler = getCommand(nameOrAlias);
57
+ if (!handler) {
58
+ return null; // Command not found
59
+ }
60
+ return handler.execute(args, ctx);
61
+ }
62
+ /**
63
+ * Get all registered command names (excluding aliases).
64
+ */
65
+ export function getCommandNames() {
66
+ return Array.from(handlers.keys());
67
+ }
68
+ /**
69
+ * Check if a command exists (by name or alias).
70
+ */
71
+ export function hasCommand(nameOrAlias) {
72
+ return handlers.has(nameOrAlias) || aliasMap.has(nameOrAlias);
73
+ }
74
+ /**
75
+ * Clear all registered commands (for testing).
76
+ */
77
+ export function clearCommands() {
78
+ handlers.clear();
79
+ aliasMap.clear();
80
+ }
81
+ /**
82
+ * Get all commands formatted for autocomplete.
83
+ * Filters out internal/tool commands (those with underscores or camelCase).
84
+ */
85
+ export function getAutocompleteCommands() {
86
+ const commands = [];
87
+ for (const [name, handler] of handlers) {
88
+ // Skip internal commands (tools, debug commands with underscores/camelCase)
89
+ if (name.includes('_') || /[A-Z]/.test(name))
90
+ continue;
91
+ commands.push({
92
+ command: `/${name}`,
93
+ description: handler.description,
94
+ });
95
+ }
96
+ return commands.sort((a, b) => a.command.localeCompare(b.command));
97
+ }
98
+ /**
99
+ * Get all commands formatted for help display.
100
+ */
101
+ export function getHelpCommands() {
102
+ const commands = [];
103
+ for (const [name, handler] of handlers) {
104
+ // Skip internal commands
105
+ if (name.includes('_') || /[A-Z]/.test(name))
106
+ continue;
107
+ const aliases = handler.aliases?.length ? ` (also /${handler.aliases.join(', /')})` : '';
108
+ commands.push({
109
+ name: `/${name}`,
110
+ description: `${handler.description}${aliases}`,
111
+ });
112
+ }
113
+ return commands.sort((a, b) => a.name.localeCompare(b.name));
114
+ }
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Command Handler Types for REPL V2
3
+ *
4
+ * Command system for the new TerminalUI-based REPL.
5
+ * Uses TerminalUI instead of Footer, with real agent integration.
6
+ */
7
+ import type { Agent, ContextManager } from '@compilr-dev/sdk';
8
+ import type { TerminalUI, AgentMessage } from '../ui/terminal-ui.js';
9
+ import type { AgentTeam } from '../multi-agent/index.js';
10
+ import type { BackgroundSessionInfo } from '../multi-agent/types.js';
11
+ export type { BackgroundSessionInfo };
12
+ /**
13
+ * Context passed to V2 command handlers.
14
+ * Provides access to agent, UI, and session information.
15
+ */
16
+ export interface CommandContextV2 {
17
+ /** TerminalUI instance for output and overlays */
18
+ ui: TerminalUI;
19
+ /** CLI version string */
20
+ version: string;
21
+ /** Update available info (if any) */
22
+ updateAvailable?: {
23
+ current: string;
24
+ latest: string;
25
+ } | null;
26
+ /** Re-print the welcome screen (logo + hints for REPL mode) */
27
+ printWelcome: () => Promise<void>;
28
+ /** Print just the logo (for dashboard mode) */
29
+ printLogo: () => void;
30
+ /** Session restoration info from startup (one-shot, cleared after first read) */
31
+ consumeRestoredSessionInfo: () => string | null;
32
+ /** The main agent instance (may be undefined in simulation mode) */
33
+ agent?: Agent;
34
+ /** The multi-agent team (if multi-agent mode is enabled) */
35
+ team?: AgentTeam;
36
+ /**
37
+ * Replace the current team with a new one (after project switch).
38
+ * Returns the old team so it can be saved if needed.
39
+ */
40
+ setTeam?: (team: AgentTeam) => AgentTeam | undefined;
41
+ /**
42
+ * Agent factory function for creating new agents.
43
+ * Used when switching projects to create new team.
44
+ */
45
+ agentFactory?: (config: Record<string, unknown>, systemPromptAddition?: string, useMinimalSystemPrompt?: boolean, noTools?: boolean) => Promise<Agent>;
46
+ /**
47
+ * Replace the current agent with a restored one.
48
+ * Used by /resume command to restore from a saved session.
49
+ */
50
+ restoreAgent?: (agent: Agent) => void;
51
+ /** Current LLM model ID */
52
+ model?: string;
53
+ /** Current LLM provider (claude, openai, gemini, ollama) */
54
+ provider?: string;
55
+ /** Get the context manager from agent (for token/context stats) */
56
+ getContextManager?: () => ContextManager | null;
57
+ /** Get conversation history from agent */
58
+ getHistory?: () => Array<{
59
+ role: string;
60
+ content: unknown;
61
+ }>;
62
+ /**
63
+ * Queue a message to be sent to the agent after the command returns.
64
+ * The displayMessage (if provided) is shown to the user, while the
65
+ * full message is sent to the agent.
66
+ */
67
+ queueAgentMessage: (options: AgentMessage) => void;
68
+ /** Session start time */
69
+ startTime?: Date;
70
+ /** Total input tokens used in session */
71
+ sessionInputTokens?: number;
72
+ /** Total output tokens used in session */
73
+ sessionOutputTokens?: number;
74
+ /** Total requests in session */
75
+ sessionRequests?: number;
76
+ /**
77
+ * Get information about all running background sessions.
78
+ */
79
+ getBackgroundSessions?: () => BackgroundSessionInfo[];
80
+ /**
81
+ * Bring a background agent to the foreground.
82
+ * The current foreground agent (if any) will continue running but output will be minimized.
83
+ * @param agentId - The agent to bring to foreground
84
+ * @returns true if successful, false if agent not found
85
+ */
86
+ bringToForeground?: (agentId: string) => Promise<boolean>;
87
+ /**
88
+ * Switch the active agent (consolidated switching).
89
+ * Performs team switch, agent ref update, tool filter, footer, session tracking, telemetry.
90
+ * Callers handle their own messaging.
91
+ * @param agentId - The agent to switch to
92
+ */
93
+ switchAgent?: (agentId: string) => Promise<void>;
94
+ /**
95
+ * Kill/cancel a background agent.
96
+ * @param agentId - The agent to kill
97
+ * @returns true if successful, false if agent not found
98
+ */
99
+ killBackgroundAgent?: (agentId: string) => boolean;
100
+ /**
101
+ * Send the current foreground agent to background without aborting it.
102
+ * The agent continues running; the user regains the input prompt.
103
+ * @returns The agent ID that was sent to background, or null if no foreground session
104
+ */
105
+ sendForegroundToBackground?: () => string | null;
106
+ /**
107
+ * Clear all message queues for all agents.
108
+ * Used by /reset to clear queued messages along with conversation history.
109
+ * @returns Total number of messages cleared
110
+ */
111
+ clearAllQueues?: () => number;
112
+ }
113
+ /**
114
+ * Example usage for a command.
115
+ */
116
+ export interface CommandExample {
117
+ /** The command to run (e.g., '/backlog') */
118
+ code: string;
119
+ /** What this example demonstrates */
120
+ description?: string;
121
+ }
122
+ /**
123
+ * Interface for a V2 command handler.
124
+ */
125
+ export interface CommandHandlerV2 {
126
+ /** Primary command name (without leading slash) */
127
+ name: string;
128
+ /** Optional aliases that resolve to this command */
129
+ aliases?: string[];
130
+ /** Short description for help text and autocomplete */
131
+ description: string;
132
+ /** Detailed explanation of what the command does (for help detail view) */
133
+ details?: string;
134
+ /** Usage examples with optional descriptions */
135
+ examples?: CommandExample[];
136
+ /** UI interaction hints (keyboard shortcuts, navigation) */
137
+ interactions?: string[];
138
+ /**
139
+ * Execute the command.
140
+ *
141
+ * @param args - Arguments passed after the command
142
+ * @param ctx - Command context with dependencies
143
+ * @returns true to continue REPL, false to exit
144
+ */
145
+ execute(args: string, ctx: CommandContextV2): Promise<boolean>;
146
+ }
147
+ /**
148
+ * Result of executing a command.
149
+ * - true: Command handled successfully, continue REPL
150
+ * - false: Exit REPL (e.g., /exit command)
151
+ * - null: Command not found in registry
152
+ */
153
+ export type CommandResultV2 = boolean | null;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Command Handler Types for REPL V2
3
+ *
4
+ * Command system for the new TerminalUI-based REPL.
5
+ * Uses TerminalUI instead of Footer, with real agent integration.
6
+ */
7
+ export {};
package/dist/commands.js CHANGED
@@ -21,6 +21,20 @@ export const COMMANDS = [
21
21
  'Esc to close',
22
22
  ],
23
23
  },
24
+ {
25
+ name: 'anchors',
26
+ description: 'View and manage anchors (persistent context)',
27
+ details: 'Anchors are critical pieces of information that survive context compaction. They are always included at the top of the context window. Manage both global anchors and project-specific anchors.',
28
+ examples: [{ code: '/anchors' }],
29
+ interactions: [
30
+ '↑/↓ to navigate anchors',
31
+ '[a] Add new anchor',
32
+ '[e] or Enter to edit',
33
+ '[d] to delete',
34
+ '[r] to refresh',
35
+ 'Esc to close',
36
+ ],
37
+ },
24
38
  {
25
39
  name: 'arch',
26
40
  description: 'Create architecture documentation (ADRs, diagrams, etc.)',
@@ -103,9 +117,23 @@ export const COMMANDS = [
103
117
  {
104
118
  name: 'design',
105
119
  description: 'Design your project and populate the backlog',
106
- details: 'Comprehensive requirements gathering workflow. The agent guides you through vision, features, and technical context phases, then creates a PRD and populates the backlog with 5-15 items. Best used after /init.',
120
+ details: 'Comprehensive requirements gathering workflow. The agent guides you through vision, features, and technical context phases, then creates a PRD and populates the backlog with 5-15 items. Best used after /new.',
107
121
  examples: [{ code: '/design' }],
108
122
  },
123
+ {
124
+ name: 'docs',
125
+ description: 'View project documents (PRD, architecture, etc.)',
126
+ details: 'Opens an overlay to browse and read documents stored in the database for the active project. Documents are created by /design, /arch, and other workflow commands.',
127
+ examples: [
128
+ { code: '/docs', description: 'List all documents' },
129
+ ],
130
+ interactions: [
131
+ '↑/↓ or j/k to navigate',
132
+ 'Enter to view document',
133
+ '↑/↓ to scroll content',
134
+ 'Esc to go back or close',
135
+ ],
136
+ },
109
137
  {
110
138
  name: 'exit',
111
139
  description: 'Exit the REPL',
@@ -152,21 +180,70 @@ export const COMMANDS = [
152
180
  ],
153
181
  },
154
182
  {
155
- name: 'init',
156
- description: 'Initialize a new project with structured workflow',
183
+ name: 'menu',
184
+ description: 'Return to Project Dashboard',
185
+ 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.',
186
+ examples: [{ code: '/menu' }],
187
+ interactions: [
188
+ '↑/↓ or j/k to navigate',
189
+ '←/→ or h/l to switch tabs (Dashboard ↔ More)',
190
+ 'Enter to select, q/Esc to exit',
191
+ 'n for /new, p for projects, c for chat, w for workflow',
192
+ ],
193
+ },
194
+ {
195
+ name: 'new',
196
+ description: 'Create a new project with structured workflow',
157
197
  details: 'Interactive wizard to scaffold a new project. Asks about project name, type, tech stack, and documentation preferences. Creates project structure with COMPILR.md, backlog, and optional separate docs repo.',
158
- examples: [{ code: '/init' }],
198
+ examples: [{ code: '/new' }],
159
199
  interactions: [
160
200
  '8-step wizard (0-7)',
161
201
  '↑/↓ for selection steps, type for input steps',
162
202
  'Enter to confirm, Esc to go back',
163
203
  ],
164
204
  },
205
+ {
206
+ name: 'init',
207
+ description: 'View CLI setup status (placeholder)',
208
+ details: 'Shows current CLI configuration status including API keys, provider settings, and startup preferences. Directs users to /config, /keys, and other commands for configuration. Full setup wizard coming in a future release.',
209
+ examples: [{ code: '/init' }],
210
+ },
211
+ {
212
+ name: 'mascot',
213
+ description: 'Select mascot expression',
214
+ details: 'Opens the mascot selector overlay. Choose the mascot expression shown in the CLI. Options include various expressions, random (changes each startup), or none.',
215
+ examples: [{ code: '/mascot' }],
216
+ interactions: [
217
+ '↑/↓ or j/k to navigate options',
218
+ 'Enter/Space to select mascot',
219
+ 'q/Esc to close without changing',
220
+ ],
221
+ },
222
+ {
223
+ name: 'mcp',
224
+ description: 'View MCP servers and tools',
225
+ details: 'Opens the MCP (Model Context Protocol) servers overlay. View connected external tool servers, their discovered tools, and manage connections (restart/disconnect). Configure servers in ~/.compilr-dev/mcp.json.',
226
+ examples: [{ code: '/mcp' }],
227
+ interactions: [
228
+ 'Enter to view server details and tools',
229
+ 'r to restart a server',
230
+ 'd to disconnect a server',
231
+ '/ to search',
232
+ 'Esc to close',
233
+ ],
234
+ },
165
235
  {
166
236
  name: 'model',
167
- description: 'Show the current model',
168
- details: 'Displays the currently active LLM model (e.g., claude-3-5-sonnet, gpt-4o).',
237
+ description: 'Select LLM model',
238
+ details: 'Opens the model selector overlay. Choose from Claude, OpenAI, Gemini, or Ollama models. Changes within the same provider apply immediately; switching providers requires restart.',
169
239
  examples: [{ code: '/model' }],
240
+ interactions: [
241
+ 'Tab/Shift+Tab to switch providers',
242
+ '1-4 for quick provider selection',
243
+ '↑/↓ or j/k to navigate models',
244
+ 'Enter to select model',
245
+ 'Esc to close',
246
+ ],
170
247
  },
171
248
  {
172
249
  name: 'note',
@@ -193,6 +270,21 @@ export const COMMANDS = [
193
270
  { code: '/prd scope', description: 'Update scope section' },
194
271
  ],
195
272
  },
273
+ {
274
+ name: 'projects',
275
+ description: 'View and manage projects',
276
+ details: 'Opens an interactive overlay to browse, filter, and manage projects tracked in the database. You can view details, open projects, archive, restore, or delete them.',
277
+ examples: [{ code: '/projects' }],
278
+ interactions: [
279
+ 'Tab cycles: All → Active → Paused → Completed → Archived',
280
+ '↑/↓ or j/k to navigate',
281
+ 'Enter to view details and actions',
282
+ 'x to archive/restore project',
283
+ 'd to delete project',
284
+ 'a to show/hide archived',
285
+ 'Esc to close',
286
+ ],
287
+ },
196
288
  {
197
289
  name: 'refine',
198
290
  description: 'Refine and expand existing requirements',
@@ -220,6 +312,19 @@ export const COMMANDS = [
220
312
  details: 'Displays current session status including CLI version, active model, mode, and context usage.',
221
313
  examples: [{ code: '/status' }],
222
314
  },
315
+ {
316
+ name: 'theme',
317
+ description: 'Select UI theme',
318
+ details: 'Opens the theme selector overlay. Browse themes with tabs for Curated, All, Dark, and Light. Themes are terminal color schemes that change the UI appearance.',
319
+ examples: [{ code: '/theme' }],
320
+ interactions: [
321
+ 'Tab cycles: Curated → All → Dark → Light',
322
+ '↑/↓ or j/k to navigate, ←/→ for pages',
323
+ '/ to search themes by name',
324
+ '1-9,0 for quick selection (Curated tab)',
325
+ 'Enter/Space to select, q/Esc to close',
326
+ ],
327
+ },
223
328
  {
224
329
  name: 'todos',
225
330
  description: 'List current todo items',
@@ -238,10 +343,21 @@ export const COMMANDS = [
238
343
  details: 'Shows all tools available to the agent including file operations, bash, git, and custom tools.',
239
344
  examples: [{ code: '/tools' }],
240
345
  },
346
+ {
347
+ name: 'workflow',
348
+ description: 'Show workflow status and next steps',
349
+ details: 'Displays the current project workflow status, progress through phases (init → design → backlog → scaffold → build), and recommended next actions. Helps you understand where you are in the development process.',
350
+ examples: [{ code: '/workflow' }],
351
+ interactions: [
352
+ '↑/↓ to navigate actions',
353
+ 'Enter to run selected action',
354
+ 'Esc to close',
355
+ ],
356
+ },
241
357
  {
242
358
  name: 'tutorial',
243
359
  description: 'Interactive tutorial for the workflow',
244
- details: 'Opens an interactive tutorial that guides you through the compilr.dev workflow. Choose a guided tour to learn everything step-by-step, or jump directly to specific topics like /init, /design, or /build.',
360
+ details: 'Opens an interactive tutorial that guides you through the compilr.dev workflow. Choose a guided tour to learn everything step-by-step, or jump directly to specific topics like /new, /design, or /build.',
245
361
  examples: [{ code: '/tutorial' }],
246
362
  interactions: [
247
363
  '↑/↓ to navigate options and topics',
Binary file
package/dist/db/index.js CHANGED
@@ -49,6 +49,8 @@ export function getDb() {
49
49
  dbInstance.pragma('foreign_keys = ON');
50
50
  // Enable WAL mode for better concurrency
51
51
  dbInstance.pragma('journal_mode = WAL');
52
+ // Prevent SQLITE_BUSY under concurrent access (multi-terminal)
53
+ dbInstance.pragma('busy_timeout = 5000');
52
54
  // Initialize schema if needed
53
55
  initializeSchema(dbInstance);
54
56
  return dbInstance;
@@ -81,10 +83,102 @@ function initializeSchema(db) {
81
83
  * Run database migrations from one version to another
82
84
  */
83
85
  function runMigrations(db, fromVersion, toVersion) {
84
- // Future migrations go here
85
- // For now, just update the version
86
- if (fromVersion < toVersion) {
87
- db.prepare('INSERT INTO schema_version (version) VALUES (?)').run(toVersion);
86
+ // Migration from v1 to v2: Add plan columns to project_documents
87
+ if (fromVersion < 2 && toVersion >= 2) {
88
+ // Add status column (for plans)
89
+ db.exec(`
90
+ ALTER TABLE project_documents ADD COLUMN status TEXT;
91
+ `);
92
+ // Add work_item_id column (for linking plans to work items)
93
+ db.exec(`
94
+ ALTER TABLE project_documents ADD COLUMN work_item_id INTEGER
95
+ REFERENCES work_items(id) ON DELETE SET NULL;
96
+ `);
97
+ // Add indexes for the new columns
98
+ db.exec(`
99
+ CREATE INDEX IF NOT EXISTS idx_project_documents_status ON project_documents(status);
100
+ CREATE INDEX IF NOT EXISTS idx_project_documents_work_item ON project_documents(work_item_id);
101
+ `);
102
+ db.prepare('INSERT INTO schema_version (version) VALUES (?)').run(2);
103
+ }
104
+ // Migration from v2 to v3: Add owner column to work_items
105
+ if (fromVersion < 3 && toVersion >= 3) {
106
+ // Add owner column for multi-agent task assignment
107
+ db.exec(`
108
+ ALTER TABLE work_items ADD COLUMN owner TEXT;
109
+ `);
110
+ // Add index for owner queries
111
+ db.exec(`
112
+ CREATE INDEX IF NOT EXISTS idx_work_items_owner ON work_items(owner);
113
+ `);
114
+ db.prepare('INSERT INTO schema_version (version) VALUES (?)').run(3);
115
+ }
116
+ // Migration from v3 to v4: Add terminal_sessions table (multi-terminal awareness)
117
+ if (fromVersion < 4 && toVersion >= 4) {
118
+ db.exec(`
119
+ CREATE TABLE IF NOT EXISTS terminal_sessions (
120
+ id TEXT PRIMARY KEY,
121
+ project_id INTEGER,
122
+ pid INTEGER NOT NULL,
123
+ tty_path TEXT,
124
+ label TEXT,
125
+ started_at DATETIME DEFAULT CURRENT_TIMESTAMP,
126
+ last_heartbeat DATETIME DEFAULT CURRENT_TIMESTAMP,
127
+ active_agent TEXT DEFAULT 'default',
128
+ agents_json TEXT DEFAULT '[]',
129
+ status TEXT DEFAULT 'active',
130
+ FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE SET NULL
131
+ );
132
+ `);
133
+ db.exec(`
134
+ CREATE INDEX IF NOT EXISTS idx_terminal_sessions_project ON terminal_sessions(project_id);
135
+ CREATE INDEX IF NOT EXISTS idx_terminal_sessions_status ON terminal_sessions(status);
136
+ `);
137
+ db.prepare('INSERT INTO schema_version (version) VALUES (?)').run(4);
138
+ }
139
+ // Migration from v4 to v5: Add file_locks table (multi-terminal file lock awareness)
140
+ if (fromVersion < 5 && toVersion >= 5) {
141
+ db.exec(`
142
+ CREATE TABLE IF NOT EXISTS file_locks (
143
+ path TEXT NOT NULL,
144
+ project_id INTEGER NOT NULL,
145
+ session_id TEXT NOT NULL,
146
+ agent_id TEXT NOT NULL,
147
+ locked_at DATETIME DEFAULT CURRENT_TIMESTAMP,
148
+ PRIMARY KEY (path, project_id),
149
+ FOREIGN KEY (session_id) REFERENCES terminal_sessions(id) ON DELETE CASCADE,
150
+ FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE
151
+ );
152
+ `);
153
+ db.exec(`
154
+ CREATE INDEX IF NOT EXISTS idx_file_locks_session ON file_locks(session_id);
155
+ `);
156
+ db.prepare('INSERT INTO schema_version (version) VALUES (?)').run(5);
157
+ }
158
+ // Migration from v5 to v6: Add session_notifications table (cross-session notifications)
159
+ if (fromVersion < 6 && toVersion >= 6) {
160
+ db.exec(`
161
+ CREATE TABLE IF NOT EXISTS session_notifications (
162
+ id TEXT PRIMARY KEY,
163
+ project_id INTEGER NOT NULL,
164
+ from_session_id TEXT NOT NULL,
165
+ to_session_id TEXT,
166
+ type TEXT NOT NULL,
167
+ title TEXT NOT NULL,
168
+ message TEXT,
169
+ payload_json TEXT,
170
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
171
+ read_at DATETIME,
172
+ FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE,
173
+ FOREIGN KEY (from_session_id) REFERENCES terminal_sessions(id) ON DELETE CASCADE
174
+ );
175
+ `);
176
+ db.exec(`
177
+ CREATE INDEX IF NOT EXISTS idx_session_notifications_project ON session_notifications(project_id);
178
+ CREATE INDEX IF NOT EXISTS idx_session_notifications_to_session ON session_notifications(to_session_id);
179
+ CREATE INDEX IF NOT EXISTS idx_session_notifications_unread ON session_notifications(read_at);
180
+ `);
181
+ db.prepare('INSERT INTO schema_version (version) VALUES (?)').run(6);
88
182
  }
89
183
  }
90
184
  /**
@@ -22,6 +22,8 @@ export interface ProjectDocument {
22
22
  content: string;
23
23
  createdAt: Date;
24
24
  updatedAt: Date;
25
+ status: string | null;
26
+ workItemId: number | null;
25
27
  }
26
28
  export declare const documentRepository: {
27
29
  /**
@@ -16,6 +16,8 @@ function recordToDocument(record) {
16
16
  content: record.content,
17
17
  createdAt: new Date(record.created_at),
18
18
  updatedAt: new Date(record.updated_at),
19
+ status: record.status,
20
+ workItemId: record.work_item_id,
19
21
  };
20
22
  }
21
23
  export const documentRepository = {
@@ -105,7 +107,8 @@ export const documentRepository = {
105
107
  WHEN 'architecture' THEN 2
106
108
  WHEN 'design' THEN 3
107
109
  WHEN 'notes' THEN 4
108
- ELSE 5
110
+ WHEN 'plan' THEN 5
111
+ ELSE 6
109
112
  END,
110
113
  created_at ASC
111
114
  `)
@@ -175,6 +178,7 @@ export const documentRepository = {
175
178
  architecture: 0,
176
179
  design: 0,
177
180
  notes: 0,
181
+ plan: 0,
178
182
  };
179
183
  for (const row of results) {
180
184
  counts[row.doc_type] = row.count;
@@ -7,3 +7,5 @@ export { workItemRepository } from './work-item-repository.js';
7
7
  export type { CreateWorkItemInput, UpdateWorkItemInput, QueryWorkItemsInput, WorkItem, } from './work-item-repository.js';
8
8
  export { documentRepository } from './document-repository.js';
9
9
  export type { CreateDocumentInput, UpdateDocumentInput, ProjectDocument, } from './document-repository.js';
10
+ export { planRepository } from './plan-repository.js';
11
+ export type { CreatePlanInput, UpdatePlanInput, ListPlansOptions, Plan, PlanSummary, PlanWithWorkItem, } from './plan-repository.js';
@@ -4,3 +4,4 @@
4
4
  export { projectRepository } from './project-repository.js';
5
5
  export { workItemRepository } from './work-item-repository.js';
6
6
  export { documentRepository } from './document-repository.js';
7
+ export { planRepository } from './plan-repository.js';