@compilr-dev/cli 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (587) hide show
  1. package/LICENSE +108 -0
  2. package/README.md +237 -69
  3. package/dist/.tsbuildinfo.app +1 -0
  4. package/dist/.tsbuildinfo.data +1 -0
  5. package/dist/.tsbuildinfo.domain +1 -0
  6. package/dist/.tsbuildinfo.foundation +1 -0
  7. package/dist/agent.d.ts +61 -4
  8. package/dist/agent.js +241 -245
  9. package/dist/anchors/index.d.ts +1 -1
  10. package/dist/anchors/index.js +1 -1
  11. package/dist/anchors/project-anchors.d.ts +2 -2
  12. package/dist/anchors/project-anchors.js +1 -1
  13. package/dist/auth/api-client.d.ts +124 -0
  14. package/dist/auth/api-client.js +261 -0
  15. package/dist/auth/index.d.ts +172 -0
  16. package/dist/auth/index.js +545 -0
  17. package/dist/auth/storage.d.ts +52 -0
  18. package/dist/auth/storage.js +118 -0
  19. package/dist/changelog/index.d.ts +16 -0
  20. package/dist/changelog/index.js +24 -0
  21. package/dist/changelog/releases.d.ts +17 -0
  22. package/dist/changelog/releases.js +63 -0
  23. package/dist/commands-v2/handlers/auth.d.ts +10 -0
  24. package/dist/commands-v2/handlers/auth.js +118 -0
  25. package/dist/commands-v2/handlers/background.d.ts +14 -0
  26. package/dist/commands-v2/handlers/background.js +276 -0
  27. package/dist/commands-v2/handlers/context.js +286 -81
  28. package/dist/commands-v2/handlers/core.d.ts +1 -0
  29. package/dist/commands-v2/handlers/core.js +133 -8
  30. package/dist/commands-v2/handlers/debug.js +18 -0
  31. package/dist/commands-v2/handlers/delegations.d.ts +8 -0
  32. package/dist/commands-v2/handlers/delegations.js +29 -0
  33. package/dist/commands-v2/handlers/files.d.ts +8 -0
  34. package/dist/commands-v2/handlers/files.js +162 -0
  35. package/dist/commands-v2/handlers/filter.d.ts +9 -0
  36. package/dist/commands-v2/handlers/filter.js +130 -0
  37. package/dist/commands-v2/handlers/games.d.ts +7 -0
  38. package/dist/commands-v2/handlers/games.js +57 -0
  39. package/dist/commands-v2/handlers/index.d.ts +13 -0
  40. package/dist/commands-v2/handlers/index.js +39 -0
  41. package/dist/commands-v2/handlers/mcp.d.ts +8 -0
  42. package/dist/commands-v2/handlers/mcp.js +39 -0
  43. package/dist/commands-v2/handlers/notifications.d.ts +9 -0
  44. package/dist/commands-v2/handlers/notifications.js +34 -0
  45. package/dist/commands-v2/handlers/project.js +295 -31
  46. package/dist/commands-v2/handlers/reset.d.ts +11 -0
  47. package/dist/commands-v2/handlers/reset.js +118 -0
  48. package/dist/commands-v2/handlers/session.d.ts +161 -0
  49. package/dist/commands-v2/handlers/session.js +805 -0
  50. package/dist/commands-v2/handlers/settings.d.ts +2 -0
  51. package/dist/commands-v2/handlers/settings.js +217 -35
  52. package/dist/commands-v2/handlers/tasks.d.ts +5 -0
  53. package/dist/commands-v2/handlers/tasks.js +36 -0
  54. package/dist/commands-v2/handlers/team.d.ts +9 -0
  55. package/dist/commands-v2/handlers/team.js +549 -0
  56. package/dist/commands-v2/handlers/terminals.d.ts +9 -0
  57. package/dist/commands-v2/handlers/terminals.js +34 -0
  58. package/dist/commands-v2/index.d.ts +3 -2
  59. package/dist/commands-v2/index.js +4 -1
  60. package/dist/commands-v2/registry.d.ts +15 -0
  61. package/dist/commands-v2/registry.js +34 -0
  62. package/dist/commands-v2/types.d.ts +81 -3
  63. package/dist/commands.js +13 -0
  64. package/dist/compilr-diff-companion.vsix +0 -0
  65. package/dist/db/index.js +98 -4
  66. package/dist/db/repositories/document-repository.d.ts +2 -0
  67. package/dist/db/repositories/document-repository.js +6 -1
  68. package/dist/db/repositories/index.d.ts +2 -0
  69. package/dist/db/repositories/index.js +1 -0
  70. package/dist/db/repositories/plan-repository.d.ts +101 -0
  71. package/dist/db/repositories/plan-repository.js +275 -0
  72. package/dist/db/repositories/project-repository.d.ts +6 -0
  73. package/dist/db/repositories/project-repository.js +41 -0
  74. package/dist/db/repositories/work-item-repository.d.ts +15 -0
  75. package/dist/db/repositories/work-item-repository.js +69 -4
  76. package/dist/db/schema.d.ts +40 -3
  77. package/dist/db/schema.js +66 -3
  78. package/dist/episodes/index.d.ts +20 -0
  79. package/dist/episodes/index.js +27 -0
  80. package/dist/episodes/recorder.d.ts +51 -0
  81. package/dist/episodes/recorder.js +195 -0
  82. package/dist/episodes/significant-work.d.ts +21 -0
  83. package/dist/episodes/significant-work.js +56 -0
  84. package/dist/episodes/store.d.ts +38 -0
  85. package/dist/episodes/store.js +199 -0
  86. package/dist/episodes/types.d.ts +35 -0
  87. package/dist/episodes/types.js +6 -0
  88. package/dist/episodes/work-at-risk.d.ts +12 -0
  89. package/dist/episodes/work-at-risk.js +38 -0
  90. package/dist/episodes/work-summary-anchor.d.ts +23 -0
  91. package/dist/episodes/work-summary-anchor.js +73 -0
  92. package/dist/games/coins.d.ts +66 -0
  93. package/dist/games/coins.js +165 -0
  94. package/dist/games/game-base.d.ts +84 -0
  95. package/dist/games/game-base.js +204 -0
  96. package/dist/games/index.d.ts +16 -0
  97. package/dist/games/index.js +49 -0
  98. package/dist/games/scores.d.ts +69 -0
  99. package/dist/games/scores.js +191 -0
  100. package/dist/games/tetris/board.d.ts +59 -0
  101. package/dist/games/tetris/board.js +170 -0
  102. package/dist/games/tetris/index.d.ts +109 -0
  103. package/dist/games/tetris/index.js +610 -0
  104. package/dist/games/tetris/pieces.d.ts +44 -0
  105. package/dist/games/tetris/pieces.js +271 -0
  106. package/dist/games/tetris/renderer.d.ts +26 -0
  107. package/dist/games/tetris/renderer.js +77 -0
  108. package/dist/guide/guide-content.d.ts +23 -0
  109. package/dist/guide/guide-content.js +196 -0
  110. package/dist/guide/index.d.ts +8 -0
  111. package/dist/guide/index.js +7 -0
  112. package/dist/guide/shared-content.d.ts +37 -0
  113. package/dist/guide/shared-content.js +1272 -0
  114. package/dist/guide/tutorial-helpers.d.ts +57 -0
  115. package/dist/guide/tutorial-helpers.js +147 -0
  116. package/dist/handlers/ask-user-handlers.d.ts +32 -0
  117. package/dist/handlers/ask-user-handlers.js +104 -0
  118. package/dist/handlers/delegation-handlers.d.ts +34 -0
  119. package/dist/handlers/delegation-handlers.js +291 -0
  120. package/dist/handlers/permission-handler.d.ts +30 -0
  121. package/dist/handlers/permission-handler.js +205 -0
  122. package/dist/index.d.ts +11 -1
  123. package/dist/index.js +448 -271
  124. package/dist/input-handlers/memory-handler.d.ts +1 -1
  125. package/dist/input-handlers/memory-handler.js +2 -1
  126. package/dist/models/index.d.ts +10 -0
  127. package/dist/models/index.js +12 -0
  128. package/dist/models/model-registry.d.ts +38 -0
  129. package/dist/models/model-registry.js +69 -0
  130. package/dist/models/model-tiers.d.ts +28 -0
  131. package/dist/models/model-tiers.js +71 -0
  132. package/dist/models/model-validation.d.ts +25 -0
  133. package/dist/models/model-validation.js +291 -0
  134. package/dist/models/ollama-models.d.ts +73 -0
  135. package/dist/models/ollama-models.js +178 -0
  136. package/dist/models/provider-types.d.ts +6 -0
  137. package/dist/models/provider-types.js +1 -0
  138. package/dist/models/providers.d.ts +35 -0
  139. package/dist/models/providers.js +58 -0
  140. package/dist/models/types.d.ts +4 -0
  141. package/dist/models/types.js +4 -0
  142. package/dist/multi-agent/activity.d.ts +21 -0
  143. package/dist/multi-agent/activity.js +34 -0
  144. package/dist/multi-agent/agent-selection.d.ts +55 -0
  145. package/dist/multi-agent/agent-selection.js +90 -0
  146. package/dist/multi-agent/artifacts.d.ts +197 -0
  147. package/dist/multi-agent/artifacts.js +379 -0
  148. package/dist/multi-agent/checkpointer.d.ts +138 -0
  149. package/dist/multi-agent/checkpointer.js +471 -0
  150. package/dist/multi-agent/collision-utils.d.ts +16 -0
  151. package/dist/multi-agent/collision-utils.js +28 -0
  152. package/dist/multi-agent/context-resolver.d.ts +97 -0
  153. package/dist/multi-agent/context-resolver.js +316 -0
  154. package/dist/multi-agent/custom-agents.d.ts +83 -0
  155. package/dist/multi-agent/custom-agents.js +227 -0
  156. package/dist/multi-agent/delegation-tracker.d.ts +157 -0
  157. package/dist/multi-agent/delegation-tracker.js +243 -0
  158. package/dist/multi-agent/file-lock-hook.d.ts +29 -0
  159. package/dist/multi-agent/file-lock-hook.js +97 -0
  160. package/dist/multi-agent/file-locks.d.ts +58 -0
  161. package/dist/multi-agent/file-locks.js +194 -0
  162. package/dist/multi-agent/index.d.ts +24 -0
  163. package/dist/multi-agent/index.js +30 -0
  164. package/dist/multi-agent/mention-parser.d.ts +64 -0
  165. package/dist/multi-agent/mention-parser.js +146 -0
  166. package/dist/multi-agent/notification-manager.d.ts +84 -0
  167. package/dist/multi-agent/notification-manager.js +224 -0
  168. package/dist/multi-agent/pending-requests.d.ts +122 -0
  169. package/dist/multi-agent/pending-requests.js +155 -0
  170. package/dist/multi-agent/session-registry.d.ts +139 -0
  171. package/dist/multi-agent/session-registry.js +514 -0
  172. package/dist/multi-agent/shared-context.d.ts +293 -0
  173. package/dist/multi-agent/shared-context.js +671 -0
  174. package/dist/multi-agent/skill-requirements.d.ts +66 -0
  175. package/dist/multi-agent/skill-requirements.js +178 -0
  176. package/dist/multi-agent/task-assignment.d.ts +69 -0
  177. package/dist/multi-agent/task-assignment.js +123 -0
  178. package/dist/multi-agent/task-suggestion.d.ts +31 -0
  179. package/dist/multi-agent/task-suggestion.js +72 -0
  180. package/dist/multi-agent/team-agent.d.ts +201 -0
  181. package/dist/multi-agent/team-agent.js +488 -0
  182. package/dist/multi-agent/team.d.ts +286 -0
  183. package/dist/multi-agent/team.js +610 -0
  184. package/dist/multi-agent/tool-config.d.ts +110 -0
  185. package/dist/multi-agent/tool-config.js +661 -0
  186. package/dist/multi-agent/types.d.ts +211 -0
  187. package/dist/multi-agent/types.js +617 -0
  188. package/dist/prompts/plan-mode-prompt.d.ts +11 -0
  189. package/dist/prompts/plan-mode-prompt.js +95 -0
  190. package/dist/repl-helpers.js +5 -2
  191. package/dist/repl-v2.d.ts +401 -2
  192. package/dist/repl-v2.js +2588 -65
  193. package/dist/session/index.d.ts +6 -0
  194. package/dist/session/index.js +6 -0
  195. package/dist/session/project-session-manager.d.ts +158 -0
  196. package/dist/session/project-session-manager.js +650 -0
  197. package/dist/settings/index.d.ts +133 -13
  198. package/dist/settings/index.js +329 -24
  199. package/dist/settings/mcp-config.d.ts +76 -0
  200. package/dist/settings/mcp-config.js +143 -0
  201. package/dist/settings/paths.d.ts +4 -0
  202. package/dist/settings/paths.js +6 -0
  203. package/dist/shared-handlers.d.ts +62 -0
  204. package/dist/shared-handlers.js +48 -0
  205. package/dist/system-prompt/builder.d.ts +5 -0
  206. package/dist/system-prompt/builder.js +4 -0
  207. package/dist/system-prompt/index.d.ts +18 -0
  208. package/dist/system-prompt/index.js +18 -0
  209. package/dist/system-prompt/modules.d.ts +5 -0
  210. package/dist/system-prompt/modules.js +4 -0
  211. package/dist/tabbed-menu.js +2 -1
  212. package/dist/templates/compilr-md-import.d.ts +16 -0
  213. package/dist/templates/compilr-md-import.js +241 -0
  214. package/dist/templates/compilr-md.js +10 -61
  215. package/dist/templates/config-json.d.ts +1 -25
  216. package/dist/templates/index.d.ts +2 -0
  217. package/dist/templates/index.js +34 -73
  218. package/dist/tool-names.d.ts +113 -0
  219. package/dist/tool-names.js +239 -0
  220. package/dist/tools/ask-user-simple.d.ts +1 -1
  221. package/dist/tools/ask-user-simple.js +2 -1
  222. package/dist/tools/ask-user.d.ts +1 -1
  223. package/dist/tools/ask-user.js +2 -1
  224. package/dist/tools/backlog.d.ts +2 -2
  225. package/dist/tools/backlog.js +1 -1
  226. package/dist/tools/db-tools.d.ts +13 -61
  227. package/dist/tools/db-tools.js +12 -13
  228. package/dist/tools/delegate-background.d.ts +27 -0
  229. package/dist/tools/delegate-background.js +115 -0
  230. package/dist/tools/delegate.d.ts +22 -0
  231. package/dist/tools/delegate.js +97 -0
  232. package/dist/tools/delegation-status.d.ts +16 -0
  233. package/dist/tools/delegation-status.js +128 -0
  234. package/dist/tools/guide-tool.d.ts +12 -0
  235. package/dist/tools/guide-tool.js +59 -0
  236. package/dist/tools/handoff.d.ts +25 -0
  237. package/dist/tools/handoff.js +99 -0
  238. package/dist/tools/meta-tools.d.ts +26 -0
  239. package/dist/tools/meta-tools.js +47 -0
  240. package/dist/tools/platform-adapter.d.ts +35 -0
  241. package/dist/tools/platform-adapter.js +404 -0
  242. package/dist/tools/project-db.d.ts +5 -73
  243. package/dist/tools/project-db.js +5 -336
  244. package/dist/tools.d.ts +67 -2
  245. package/dist/tools.js +240 -48
  246. package/dist/ui/autocomplete-controller.d.ts +42 -0
  247. package/dist/ui/autocomplete-controller.js +384 -0
  248. package/dist/ui/base/index.d.ts +1 -1
  249. package/dist/ui/base/index.js +1 -1
  250. package/dist/ui/base/overlay-base-v2.d.ts +10 -0
  251. package/dist/ui/base/overlay-base-v2.js +14 -0
  252. package/dist/ui/base/render-utils.d.ts +19 -0
  253. package/dist/ui/base/render-utils.js +25 -0
  254. package/dist/ui/base/tabbed-list-overlay-v2.d.ts +16 -1
  255. package/dist/ui/base/tabbed-list-overlay-v2.js +19 -1
  256. package/dist/ui/constants/labels.d.ts +14 -0
  257. package/dist/ui/constants/labels.js +52 -0
  258. package/dist/ui/conversation-store.d.ts +55 -0
  259. package/dist/ui/conversation-store.js +107 -0
  260. package/dist/ui/conversation.js +11 -13
  261. package/dist/ui/diff.d.ts +7 -1
  262. package/dist/ui/diff.js +85 -48
  263. package/dist/ui/ephemeral.js +3 -9
  264. package/dist/ui/file-autocomplete.d.ts +24 -0
  265. package/dist/ui/file-autocomplete.js +56 -0
  266. package/dist/ui/footer-renderer.d.ts +69 -0
  267. package/dist/ui/footer-renderer.js +431 -0
  268. package/dist/ui/footer.d.ts +74 -7
  269. package/dist/ui/footer.js +173 -16
  270. package/dist/ui/input-controller.d.ts +51 -0
  271. package/dist/ui/input-controller.js +176 -0
  272. package/dist/ui/input-prompt.d.ts +19 -0
  273. package/dist/ui/input-prompt.js +206 -14
  274. package/dist/ui/keyboard-handler.d.ts +57 -0
  275. package/dist/ui/keyboard-handler.js +557 -0
  276. package/dist/ui/live-region-facade.d.ts +42 -0
  277. package/dist/ui/live-region-facade.js +205 -0
  278. package/dist/ui/live-region.d.ts +0 -4
  279. package/dist/ui/live-region.js +6 -14
  280. package/dist/ui/mascot/renderer.d.ts +1 -1
  281. package/dist/ui/mascot/renderer.js +37 -2
  282. package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
  283. package/dist/ui/overlay/data/tutorial-content.js +9 -0
  284. package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
  285. package/dist/ui/overlay/data/tutorial-registry.js +116 -0
  286. package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
  287. package/dist/ui/overlay/data/tutorial-types.js +6 -0
  288. package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
  289. package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
  290. package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
  291. package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
  292. package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
  293. package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
  294. package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
  295. package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
  296. package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
  297. package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
  298. package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
  299. package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
  300. package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
  301. package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
  302. package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
  303. package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
  304. package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
  305. package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
  306. package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
  307. package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
  308. package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
  309. package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
  310. package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
  311. package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
  312. package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
  313. package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
  314. package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
  315. package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
  316. package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
  317. package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
  318. package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
  319. package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
  320. package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
  321. package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
  322. package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
  323. package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
  324. package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
  325. package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
  326. package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
  327. package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
  328. package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
  329. package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
  330. package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
  331. package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
  332. package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
  333. package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
  334. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
  335. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
  336. package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
  337. package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
  338. package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
  339. package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
  340. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
  341. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
  342. package/dist/ui/overlay/impl/agents-overlay-v2.js +6 -17
  343. package/dist/ui/overlay/impl/anchors-overlay-v2.js +30 -64
  344. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
  345. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
  346. package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
  347. package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
  348. package/dist/ui/overlay/impl/ask-user-overlay-v2.js +2 -5
  349. package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
  350. package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
  351. package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +4 -1
  352. package/dist/ui/overlay/impl/backlog-overlay-v2.js +55 -16
  353. package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
  354. package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
  355. package/dist/ui/overlay/impl/commands-overlay-v2.js +4 -6
  356. package/dist/ui/overlay/impl/config-overlay-v2.d.ts +12 -1
  357. package/dist/ui/overlay/impl/config-overlay-v2.js +164 -100
  358. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
  359. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
  360. package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +2 -0
  361. package/dist/ui/overlay/impl/dashboard-overlay-v2.js +26 -3
  362. package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
  363. package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
  364. package/dist/ui/overlay/impl/docs-overlay-v2.js +12 -9
  365. package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +7 -0
  366. package/dist/ui/overlay/impl/document-detail-overlay-v2.js +119 -78
  367. package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
  368. package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
  369. package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
  370. package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
  371. package/dist/ui/overlay/impl/help-overlay-v2.d.ts +26 -3
  372. package/dist/ui/overlay/impl/help-overlay-v2.js +20 -42
  373. package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
  374. package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
  375. package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
  376. package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
  377. package/dist/ui/overlay/impl/model-overlay-v2.d.ts +57 -13
  378. package/dist/ui/overlay/impl/model-overlay-v2.js +1086 -61
  379. package/dist/ui/overlay/impl/new-overlay-v2.d.ts +37 -6
  380. package/dist/ui/overlay/impl/new-overlay-v2.js +715 -65
  381. package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
  382. package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
  383. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
  384. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
  385. package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
  386. package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
  387. package/dist/ui/overlay/impl/permission-overlay-v2.js +5 -5
  388. package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
  389. package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
  390. package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
  391. package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
  392. package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
  393. package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
  394. package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +1 -0
  395. package/dist/ui/overlay/impl/projects-overlay-v2.js +278 -44
  396. package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
  397. package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
  398. package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
  399. package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
  400. package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
  401. package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
  402. package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
  403. package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
  404. package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
  405. package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
  406. package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
  407. package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
  408. package/dist/ui/overlay/impl/tools-overlay-v2.js +3 -7
  409. package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +30 -16
  410. package/dist/ui/overlay/impl/tutorial-overlay-v2.js +133 -956
  411. package/dist/ui/overlay/impl/workflow-overlay-v2.d.ts +1 -0
  412. package/dist/ui/overlay/impl/workflow-overlay-v2.js +10 -4
  413. package/dist/ui/overlay/index.d.ts +20 -1
  414. package/dist/ui/overlay/index.js +19 -0
  415. package/dist/ui/overlay/types.d.ts +5 -0
  416. package/dist/ui/overlay-manager.d.ts +43 -0
  417. package/dist/ui/overlay-manager.js +238 -0
  418. package/dist/ui/overlays.js +4 -16
  419. package/dist/ui/permission-overlay.js +6 -5
  420. package/dist/ui/status-bar-controller.d.ts +33 -0
  421. package/dist/ui/status-bar-controller.js +99 -0
  422. package/dist/ui/subagent-renderer.js +3 -19
  423. package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
  424. package/dist/ui/terminal-autocomplete-utils.js +83 -0
  425. package/dist/ui/terminal-line-builders.d.ts +17 -0
  426. package/dist/ui/terminal-line-builders.js +42 -0
  427. package/dist/ui/terminal-render-item.d.ts +16 -0
  428. package/dist/ui/terminal-render-item.js +267 -0
  429. package/dist/ui/terminal-renderer.d.ts +7 -8
  430. package/dist/ui/terminal-renderer.js +7 -8
  431. package/dist/ui/terminal-types.d.ts +179 -0
  432. package/dist/ui/terminal-types.js +34 -0
  433. package/dist/ui/terminal-ui.d.ts +144 -276
  434. package/dist/ui/terminal-ui.js +384 -1861
  435. package/dist/ui/todo-zone.d.ts +19 -1
  436. package/dist/ui/todo-zone.js +71 -13
  437. package/dist/ui/tool-formatters.js +696 -1
  438. package/dist/ui/turn-metrics.d.ts +56 -0
  439. package/dist/ui/turn-metrics.js +75 -0
  440. package/dist/ui/types.d.ts +28 -0
  441. package/dist/ui/types.js +1 -0
  442. package/dist/ui/vscode-diff-ipc.d.ts +102 -0
  443. package/dist/ui/vscode-diff-ipc.js +385 -0
  444. package/dist/utils/credentials.d.ts +24 -5
  445. package/dist/utils/credentials.js +123 -9
  446. package/dist/utils/format-tokens.d.ts +13 -0
  447. package/dist/utils/format-tokens.js +18 -0
  448. package/dist/utils/git-config.d.ts +26 -0
  449. package/dist/utils/git-config.js +54 -0
  450. package/dist/utils/message-utils.d.ts +61 -0
  451. package/dist/utils/message-utils.js +72 -0
  452. package/dist/utils/model-tiers.d.ts +8 -1
  453. package/dist/utils/model-tiers.js +38 -16
  454. package/dist/utils/open-browser.d.ts +5 -0
  455. package/dist/utils/open-browser.js +32 -0
  456. package/dist/utils/path-safety.js +3 -2
  457. package/dist/utils/project-detection.d.ts +58 -0
  458. package/dist/utils/project-detection.js +424 -0
  459. package/dist/utils/project-memory.js +2 -1
  460. package/dist/utils/project-status.d.ts +2 -2
  461. package/dist/utils/startup-perf.d.ts +18 -0
  462. package/dist/utils/startup-perf.js +60 -0
  463. package/dist/utils/token-tracker.d.ts +62 -0
  464. package/dist/utils/token-tracker.js +150 -0
  465. package/dist/utils/token-types.d.ts +23 -0
  466. package/dist/utils/token-types.js +18 -0
  467. package/dist/utils/types/config-types.d.ts +32 -0
  468. package/dist/utils/types/config-types.js +8 -0
  469. package/dist/utils/update-checker.d.ts +28 -0
  470. package/dist/utils/update-checker.js +106 -0
  471. package/dist/utils/version.d.ts +7 -0
  472. package/dist/utils/version.js +10 -0
  473. package/dist/utils/vscode-detect.d.ts +39 -0
  474. package/dist/utils/vscode-detect.js +137 -0
  475. package/package.json +27 -13
  476. package/dist/commands/handler-types.d.ts +0 -68
  477. package/dist/commands/handler-types.js +0 -8
  478. package/dist/commands/handlers/agent-commands.d.ts +0 -13
  479. package/dist/commands/handlers/agent-commands.js +0 -305
  480. package/dist/commands/handlers/design-commands.d.ts +0 -15
  481. package/dist/commands/handlers/design-commands.js +0 -334
  482. package/dist/commands/handlers/index.d.ts +0 -20
  483. package/dist/commands/handlers/index.js +0 -43
  484. package/dist/commands/handlers/overlay-commands.d.ts +0 -21
  485. package/dist/commands/handlers/overlay-commands.js +0 -287
  486. package/dist/commands/handlers/project-commands.d.ts +0 -11
  487. package/dist/commands/handlers/project-commands.js +0 -167
  488. package/dist/commands/handlers/simple-commands.d.ts +0 -19
  489. package/dist/commands/handlers/simple-commands.js +0 -144
  490. package/dist/commands/registry.d.ts +0 -50
  491. package/dist/commands/registry.js +0 -75
  492. package/dist/index.old.d.ts +0 -7
  493. package/dist/index.old.js +0 -1014
  494. package/dist/repl.d.ts +0 -149
  495. package/dist/repl.js +0 -1151
  496. package/dist/templates/claude-md.d.ts +0 -7
  497. package/dist/templates/claude-md.js +0 -189
  498. package/dist/test-autocomplete.d.ts +0 -7
  499. package/dist/test-autocomplete.js +0 -85
  500. package/dist/test-tabbed-menu.d.ts +0 -7
  501. package/dist/test-tabbed-menu.js +0 -25
  502. package/dist/tool-selector.d.ts +0 -71
  503. package/dist/tool-selector.js +0 -184
  504. package/dist/tools/anchor-tools.d.ts +0 -31
  505. package/dist/tools/anchor-tools.js +0 -255
  506. package/dist/tools/backlog-wrappers.d.ts +0 -54
  507. package/dist/tools/backlog-wrappers.js +0 -338
  508. package/dist/tools/document-db.d.ts +0 -43
  509. package/dist/tools/document-db.js +0 -220
  510. package/dist/tools/workitem-db.d.ts +0 -103
  511. package/dist/tools/workitem-db.js +0 -549
  512. package/dist/ui/agents-overlay-v2.d.ts +0 -43
  513. package/dist/ui/agents-overlay-v2.js +0 -809
  514. package/dist/ui/agents-overlay.d.ts +0 -12
  515. package/dist/ui/agents-overlay.js +0 -863
  516. package/dist/ui/anchors-overlay.d.ts +0 -12
  517. package/dist/ui/anchors-overlay.js +0 -775
  518. package/dist/ui/arch-type-overlay.d.ts +0 -15
  519. package/dist/ui/arch-type-overlay.js +0 -201
  520. package/dist/ui/ask-user-overlay-v2.d.ts +0 -26
  521. package/dist/ui/ask-user-overlay-v2.js +0 -555
  522. package/dist/ui/ask-user-simple-overlay-v2.d.ts +0 -25
  523. package/dist/ui/ask-user-simple-overlay-v2.js +0 -215
  524. package/dist/ui/backlog-overlay.d.ts +0 -32
  525. package/dist/ui/backlog-overlay.js +0 -652
  526. package/dist/ui/commands-overlay-v2.d.ts +0 -33
  527. package/dist/ui/commands-overlay-v2.js +0 -441
  528. package/dist/ui/commands-overlay.d.ts +0 -16
  529. package/dist/ui/commands-overlay.js +0 -439
  530. package/dist/ui/config-overlay.d.ts +0 -35
  531. package/dist/ui/config-overlay.js +0 -707
  532. package/dist/ui/docs-overlay.d.ts +0 -17
  533. package/dist/ui/docs-overlay.js +0 -303
  534. package/dist/ui/footer-v2.d.ts +0 -222
  535. package/dist/ui/footer-v2.js +0 -1349
  536. package/dist/ui/help-overlay-v2.d.ts +0 -34
  537. package/dist/ui/help-overlay-v2.js +0 -309
  538. package/dist/ui/help-overlay.d.ts +0 -16
  539. package/dist/ui/help-overlay.js +0 -316
  540. package/dist/ui/init-overlay-v2.d.ts +0 -34
  541. package/dist/ui/init-overlay-v2.js +0 -600
  542. package/dist/ui/init-overlay.d.ts +0 -34
  543. package/dist/ui/init-overlay.js +0 -604
  544. package/dist/ui/input-prompt-v2.d.ts +0 -180
  545. package/dist/ui/input-prompt-v2.js +0 -999
  546. package/dist/ui/iteration-limit-overlay-v2.d.ts +0 -21
  547. package/dist/ui/iteration-limit-overlay-v2.js +0 -114
  548. package/dist/ui/keys-overlay-v2.d.ts +0 -41
  549. package/dist/ui/keys-overlay-v2.js +0 -248
  550. package/dist/ui/mascot-overlay-v2.d.ts +0 -41
  551. package/dist/ui/mascot-overlay-v2.js +0 -138
  552. package/dist/ui/mascot-overlay.d.ts +0 -21
  553. package/dist/ui/mascot-overlay.js +0 -146
  554. package/dist/ui/model-overlay-v2.d.ts +0 -49
  555. package/dist/ui/model-overlay-v2.js +0 -118
  556. package/dist/ui/model-overlay.d.ts +0 -27
  557. package/dist/ui/model-overlay.js +0 -221
  558. package/dist/ui/model-warning-overlay.d.ts +0 -30
  559. package/dist/ui/model-warning-overlay.js +0 -169
  560. package/dist/ui/new-overlay.d.ts +0 -34
  561. package/dist/ui/new-overlay.js +0 -604
  562. package/dist/ui/overlay/impl/init-overlay-v2.d.ts +0 -77
  563. package/dist/ui/overlay/impl/init-overlay-v2.js +0 -593
  564. package/dist/ui/overlay/overlay-types.d.ts +0 -128
  565. package/dist/ui/overlay/overlay-types.js +0 -22
  566. package/dist/ui/overlays/help-overlay-v2.d.ts +0 -28
  567. package/dist/ui/overlays/help-overlay-v2.js +0 -198
  568. package/dist/ui/overlays/index.d.ts +0 -11
  569. package/dist/ui/overlays/index.js +0 -11
  570. package/dist/ui/permission-overlay-v2.d.ts +0 -36
  571. package/dist/ui/permission-overlay-v2.js +0 -380
  572. package/dist/ui/projects-overlay.d.ts +0 -19
  573. package/dist/ui/projects-overlay.js +0 -484
  574. package/dist/ui/theme-overlay-v2.d.ts +0 -42
  575. package/dist/ui/theme-overlay-v2.js +0 -135
  576. package/dist/ui/theme-overlay.d.ts +0 -24
  577. package/dist/ui/theme-overlay.js +0 -127
  578. package/dist/ui/tools-overlay-v2.d.ts +0 -47
  579. package/dist/ui/tools-overlay-v2.js +0 -218
  580. package/dist/ui/tools-overlay.d.ts +0 -34
  581. package/dist/ui/tools-overlay.js +0 -230
  582. package/dist/ui/tutorial-overlay-v2.d.ts +0 -31
  583. package/dist/ui/tutorial-overlay-v2.js +0 -1035
  584. package/dist/ui/tutorial-overlay.d.ts +0 -11
  585. package/dist/ui/tutorial-overlay.js +0 -1034
  586. package/dist/ui/workflow-overlay.d.ts +0 -22
  587. package/dist/ui/workflow-overlay.js +0 -636
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compilr-dev/cli",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "AI-powered coding assistant CLI using @compilr-dev/agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -8,13 +8,17 @@
8
8
  "compilr": "dist/index.js"
9
9
  },
10
10
  "scripts": {
11
- "build": "tsc",
11
+ "build": "tsc -b && chmod +x dist/index.js",
12
12
  "start": "node dist/index.js",
13
- "dev": "tsc && node dist/index.js",
14
- "clean": "rm -rf dist",
13
+ "dev": "tsc -b && node dist/index.js",
14
+ "clean": "tsc -b --clean && rm -rf dist",
15
15
  "lint": "eslint src/",
16
16
  "lint:fix": "eslint src/ --fix",
17
- "prepublishOnly": "npm run lint && npm run build",
17
+ "build:vsix": "cd vscode-extension && npx @vscode/vsce package --out ../dist/compilr-diff-companion.vsix",
18
+ "prepublishOnly": "npm run lint && npm test && npm run build && npm run build:vsix",
19
+ "test": "vitest run",
20
+ "test:watch": "vitest",
21
+ "test:coverage": "vitest run --coverage",
18
22
  "test:scroll": "npx tsx scripts/test-scroll-regions.ts",
19
23
  "test:scroll-input": "npx tsx scripts/test-scroll-input.ts",
20
24
  "test:repl-v2": "npx tsx scripts/test-repl-v2.ts",
@@ -31,7 +35,7 @@
31
35
  "terminal"
32
36
  ],
33
37
  "author": "Carmelo Scozzola",
34
- "license": "MIT",
38
+ "license": "FSL-1.1-MIT",
35
39
  "repository": {
36
40
  "type": "git",
37
41
  "url": "git+https://github.com/compilr-dev/cli.git"
@@ -46,28 +50,38 @@
46
50
  "LICENSE"
47
51
  ],
48
52
  "engines": {
49
- "node": ">=18.0.0"
53
+ "node": ">=20.0.0"
50
54
  },
51
55
  "dependencies": {
52
- "@anthropic-ai/sdk": "^0.30.1",
53
- "@compilr-dev/agents": "^0.3.1",
56
+ "@anthropic-ai/sdk": "^0.74.0",
57
+ "@compilr-dev/agents": "^0.3.20",
54
58
  "@compilr-dev/agents-coding": "^1.0.2",
55
- "@compilr-dev/editor-core": "^0.0.1",
59
+ "@compilr-dev/editor-core": "^0.0.2",
60
+ "@compilr-dev/factory": "^0.1.4",
61
+ "@compilr-dev/sdk": "^0.1.16",
56
62
  "@compilr-dev/ui-core": "^0.0.1",
63
+ "@modelcontextprotocol/sdk": "^1.23.0",
57
64
  "better-sqlite3": "^12.5.0",
58
65
  "chalk": "^5.6.2",
66
+ "js-tiktoken": "^1.0.21",
59
67
  "marked": "^15.0.12",
60
68
  "marked-terminal": "^7.3.0",
61
69
  "picocolors": "^1.1.1",
62
- "web-tree-sitter": "^0.20.8"
70
+ "uuid": "^13.0.0"
71
+ },
72
+ "overrides": {
73
+ "minimatch": ">=10.2.1"
63
74
  },
64
75
  "devDependencies": {
65
76
  "@eslint/js": "^9.39.1",
66
77
  "@types/better-sqlite3": "^7.6.13",
67
78
  "@types/marked-terminal": "^6.1.1",
68
- "@types/node": "^22.0.0",
79
+ "@types/node": "^25.2.3",
80
+ "@types/uuid": "^10.0.0",
81
+ "@vscode/vsce": "^3.2.0",
69
82
  "eslint": "^9.39.1",
70
83
  "typescript": "^5.3.0",
71
- "typescript-eslint": "^8.48.0"
84
+ "typescript-eslint": "^8.48.0",
85
+ "vitest": "^4.0.18"
72
86
  }
73
87
  }
@@ -1,68 +0,0 @@
1
- /**
2
- * Command Handler Types
3
- *
4
- * Defines the interfaces for the command handler system.
5
- * Handlers are registered with the command registry and invoked
6
- * by REPL.handleCommand() when a slash command is entered.
7
- */
8
- import type { Agent } from '@compilr-dev/agents';
9
- import type { Footer } from '../ui/footer.js';
10
- import type { REPLState, AgentMode } from '../ui/types.js';
11
- /**
12
- * Context passed to command handlers.
13
- * Contains all dependencies needed to execute commands.
14
- */
15
- export interface CommandContext {
16
- agent: Agent;
17
- model: string;
18
- currentModel: string;
19
- provider: string;
20
- version: string;
21
- footer: Footer;
22
- state: REPLState;
23
- startTime: Date;
24
- sessionInputTokens: number;
25
- sessionOutputTokens: number;
26
- sessionRequests: number;
27
- onModeChange?: (mode: AgentMode) => void;
28
- setShouldReturnToMenu: (value: boolean) => void;
29
- processMessage: (message: string, options?: {
30
- displayMessage?: string;
31
- }) => Promise<void>;
32
- handleCommand: (command: string, args: string) => Promise<boolean>;
33
- setModel: (model: string) => void;
34
- showTools: () => Promise<void>;
35
- showTokens: () => void;
36
- showContext: () => void;
37
- showStatus: () => void;
38
- showTodos: () => void;
39
- handleCompact: () => Promise<void>;
40
- handleExport: (args: string) => Promise<void>;
41
- reloadProjectAnchors: (oldProjectId: string | null, newProjectId: string) => void;
42
- }
43
- /**
44
- * Interface for a command handler.
45
- */
46
- export interface CommandHandler {
47
- /** Primary command name (without leading slash) */
48
- name: string;
49
- /** Optional aliases that resolve to this command */
50
- aliases?: string[];
51
- /** Short description for help text */
52
- description: string;
53
- /**
54
- * Execute the command.
55
- *
56
- * @param args - Arguments passed after the command (e.g., "/build REQ-001" -> "REQ-001")
57
- * @param ctx - Command context with dependencies
58
- * @returns true to continue REPL, false to exit
59
- */
60
- execute(args: string, ctx: CommandContext): Promise<boolean>;
61
- }
62
- /**
63
- * Result of executing a command.
64
- * - true: Command handled successfully, continue REPL
65
- * - false: Exit REPL (e.g., /exit command)
66
- * - null: Command not found in registry
67
- */
68
- export type CommandResult = boolean | null;
@@ -1,8 +0,0 @@
1
- /**
2
- * Command Handler Types
3
- *
4
- * Defines the interfaces for the command handler system.
5
- * Handlers are registered with the command registry and invoked
6
- * by REPL.handleCommand() when a slash command is entered.
7
- */
8
- export {};
@@ -1,13 +0,0 @@
1
- /**
2
- * Agent Commands
3
- *
4
- * Commands that delegate work to the agent via processMessage:
5
- * - build, note, prd, scaffold, workflow
6
- */
7
- import type { CommandHandler } from '../handler-types.js';
8
- export declare const noteCommand: CommandHandler;
9
- export declare const prdCommand: CommandHandler;
10
- export declare const workflowCommand: CommandHandler;
11
- export declare const scaffoldCommand: CommandHandler;
12
- export declare const buildCommand: CommandHandler;
13
- export declare const agentCommands: CommandHandler[];
@@ -1,305 +0,0 @@
1
- /**
2
- * Agent Commands
3
- *
4
- * Commands that delegate work to the agent via processMessage:
5
- * - build, note, prd, scaffold, workflow
6
- */
7
- import fs from 'node:fs';
8
- import * as conversation from '../../ui/conversation.js';
9
- import { showWorkflowOverlay } from '../../ui/workflow-overlay.js';
10
- import { findBacklogPath, parseBacklogItems } from '../../tools/backlog.js';
11
- import { detectCompilrProject, getSkillPrompt, hasProjectFoundation, selectBuildItem, getUnmetDependencies, } from '../../repl-helpers.js';
12
- // =============================================================================
13
- // Note Command
14
- // =============================================================================
15
- export const noteCommand = {
16
- name: 'note',
17
- description: 'Create a session note',
18
- async execute(args, ctx) {
19
- // Check if project is initialized
20
- const noteProject = detectCompilrProject();
21
- if (!noteProject.found) {
22
- conversation.printError('No .compilr project found. Run /new first.');
23
- return true;
24
- }
25
- // Get session-notes skill prompt
26
- const notePrompt = getSkillPrompt('session-notes');
27
- if (!notePrompt) {
28
- conversation.printError('Session-notes skill not found.');
29
- return true;
30
- }
31
- // Check for optional title argument
32
- const noteTitle = args.trim();
33
- conversation.printInfo('📝 Creating session note...');
34
- conversation.printInfo('');
35
- // Resume footer animation before processing message
36
- ctx.footer.resumeAnimation();
37
- // Build message based on whether title was provided
38
- const titleInstruction = noteTitle
39
- ? `The session title is: "${noteTitle}"`
40
- : 'Please ask me for a title using ask_user_simple, or generate one from the session summary.';
41
- await ctx.processMessage(`I want to create a session note capturing what we've done.
42
-
43
- ${notePrompt}
44
-
45
- ${titleInstruction}
46
-
47
- Review the conversation context to understand what was accomplished, then create the session note file.`, {
48
- displayMessage: noteTitle
49
- ? `Create session note: "${noteTitle}"`
50
- : 'Create a session note for this session.',
51
- });
52
- return true;
53
- },
54
- };
55
- // =============================================================================
56
- // PRD Command
57
- // =============================================================================
58
- export const prdCommand = {
59
- name: 'prd',
60
- description: 'Update the Product Requirements Document',
61
- async execute(args, ctx) {
62
- // Check if project is initialized
63
- const prdProject = detectCompilrProject();
64
- if (!prdProject.found) {
65
- conversation.printError('No .compilr project found. Run /new first.');
66
- return true;
67
- }
68
- // Get prd skill prompt
69
- const prdPrompt = getSkillPrompt('prd');
70
- if (!prdPrompt) {
71
- conversation.printError('PRD skill not found.');
72
- return true;
73
- }
74
- // Check for optional section argument
75
- const prdSection = args.trim().toLowerCase();
76
- const validSections = ['vision', 'scope', 'technical', 'success'];
77
- const sectionInstruction = validSections.includes(prdSection)
78
- ? `The user wants to update the "${prdSection}" section specifically.`
79
- : 'Ask the user which section they want to update using ask_user_simple.';
80
- conversation.printInfo('📄 Opening PRD for updates...');
81
- conversation.printInfo('');
82
- // Resume footer animation before processing message
83
- ctx.footer.resumeAnimation();
84
- await ctx.processMessage(`I want to update the Product Requirements Document.
85
-
86
- ${prdPrompt}
87
-
88
- ${sectionInstruction}
89
-
90
- Start by reading the existing PRD.md file to understand current state.`, {
91
- displayMessage: prdSection
92
- ? `Update PRD: ${prdSection} section`
93
- : 'Update the Product Requirements Document',
94
- });
95
- return true;
96
- },
97
- };
98
- // =============================================================================
99
- // Workflow Command
100
- // =============================================================================
101
- export const workflowCommand = {
102
- name: 'workflow',
103
- description: 'Show the workflow overlay',
104
- async execute(_args, ctx) {
105
- // Loop: workflow → command → back to workflow → etc.
106
- // User presses Esc in workflow to exit back to REPL
107
- let stayInWorkflow = true;
108
- while (stayInWorkflow) {
109
- // Result may be undefined if user cancelled with Esc (base overlay casts undefined to TResult)
110
- const result = await showWorkflowOverlay();
111
- if (result?.command) {
112
- // User selected a command from workflow, run it
113
- await ctx.handleCommand(result.command.slice(1), ''); // Remove leading /, no args
114
- // After command completes, loop back to workflow
115
- }
116
- else {
117
- // User cancelled workflow (Esc), exit to REPL
118
- stayInWorkflow = false;
119
- }
120
- }
121
- return true;
122
- },
123
- };
124
- // =============================================================================
125
- // Scaffold Command
126
- // =============================================================================
127
- export const scaffoldCommand = {
128
- name: 'scaffold',
129
- description: 'Create project scaffold/foundation',
130
- async execute(_args, ctx) {
131
- // Check if project is initialized
132
- const scaffoldProject = detectCompilrProject();
133
- if (!scaffoldProject.found) {
134
- conversation.printError('No .compilr project found. Run /new first.');
135
- return true;
136
- }
137
- // Get project path for context
138
- const projectPathForScaffold = scaffoldProject.projectPath || process.cwd();
139
- const scaffoldPathContext = `**IMPORTANT: Project Directory**
140
- All code files MUST be created in: ${projectPathForScaffold}
141
- Do NOT create files in the current working directory if it differs from the project path.
142
- `;
143
- // Check if foundation already exists
144
- const foundationExists = hasProjectFoundation();
145
- if (foundationExists) {
146
- // Let agent confirm with user
147
- conversation.printInfo('🔍 Project files detected...');
148
- conversation.printInfo('');
149
- ctx.footer.resumeAnimation();
150
- await ctx.processMessage(`User wants to create a project scaffold, but a foundation may already exist.
151
-
152
- ${scaffoldPathContext}
153
-
154
- Use detect_project to analyze the current state. Then use ask_user_simple:
155
- "Project files already exist. What would you like to do?"
156
- - "Continue anyway (may overwrite)"
157
- - "Cancel"
158
-
159
- If continuing, read COMPILR.md and PRD.md for tech stack info, then create the scaffold:
160
-
161
- ${getSkillPrompt('scaffold') ?? ''}`, { displayMessage: 'Create project scaffold (foundation exists).' });
162
- return true;
163
- }
164
- // Get scaffold skill prompt
165
- const scaffoldPrompt = getSkillPrompt('scaffold');
166
- if (!scaffoldPrompt) {
167
- conversation.printError('Scaffold skill not found.');
168
- return true;
169
- }
170
- conversation.printInfo('🏗️ Creating project scaffold...');
171
- conversation.printInfo('');
172
- ctx.footer.resumeAnimation();
173
- await ctx.processMessage(`I want to create the project scaffold (foundation).
174
-
175
- ${scaffoldPathContext}
176
-
177
- ${scaffoldPrompt}
178
-
179
- Read COMPILR.md and PRD.md first to understand the tech stack, then create the appropriate scaffold.`, { displayMessage: 'Create project scaffold.' });
180
- return true;
181
- },
182
- };
183
- // =============================================================================
184
- // Build Command
185
- // =============================================================================
186
- export const buildCommand = {
187
- name: 'build',
188
- description: 'Build a backlog item',
189
- async execute(args, ctx) {
190
- const itemId = args.trim() || undefined;
191
- // Handle /build scaffold - redirect to scaffold handler
192
- if (itemId?.toLowerCase() === 'scaffold') {
193
- return ctx.handleCommand('scaffold', '');
194
- }
195
- // Check if project is initialized
196
- const buildProject = detectCompilrProject();
197
- if (!buildProject.found) {
198
- conversation.printError('No .compilr project found. Run /new first.');
199
- return true;
200
- }
201
- // Read backlog using the shared path detection
202
- const buildBacklogPath = findBacklogPath();
203
- if (!buildBacklogPath) {
204
- conversation.printError('No backlog found. Run /design or /sketch first.');
205
- return true;
206
- }
207
- // Parse backlog items
208
- let buildItems = [];
209
- try {
210
- const backlogContent = fs.readFileSync(buildBacklogPath, 'utf-8');
211
- buildItems = parseBacklogItems(backlogContent);
212
- }
213
- catch {
214
- conversation.printError('Failed to read backlog file.');
215
- return true;
216
- }
217
- if (buildItems.length === 0) {
218
- conversation.printError('No backlog items found. Run /design or /sketch first.');
219
- return true;
220
- }
221
- // Get project path for context
222
- const projectPathForBuild = buildProject.projectPath || process.cwd();
223
- const projectPathContext = `**IMPORTANT: Project Directory**
224
- All code files MUST be created in: ${projectPathForBuild}
225
- Do NOT create files in the current working directory if it differs from the project path.
226
- `;
227
- // Check foundation
228
- const foundationExists = hasProjectFoundation();
229
- if (!foundationExists) {
230
- // Let agent handle foundation check via skill
231
- conversation.printInfo('🔍 Checking project foundation...');
232
- conversation.printInfo('');
233
- ctx.footer.resumeAnimation();
234
- await ctx.processMessage(`I want to build a feature from the backlog, but first check if the project has a foundation.
235
-
236
- ${projectPathContext}
237
-
238
- Use detect_project to check the current state. If there's no code foundation (no src/, no package.json or equivalent), use ask_user_simple to ask:
239
- "No project foundation detected. Would you like to:"
240
- - "Create scaffold first (recommended)"
241
- - "Proceed with feature anyway"
242
- - "Cancel"
243
-
244
- If user chooses scaffold, read COMPILR.md and PRD.md for tech stack info, then create the project scaffold following these guidelines:
245
-
246
- ${getSkillPrompt('scaffold') ?? ''}
247
-
248
- After scaffold is done (or if user chose to proceed anyway), continue with building the feature.`, { displayMessage: 'Check project foundation before building.' });
249
- return true;
250
- }
251
- // Select item
252
- const item = selectBuildItem(buildItems, itemId);
253
- if (!item) {
254
- if (itemId) {
255
- const existingItem = buildItems.find(i => i.id.toUpperCase() === itemId.toUpperCase());
256
- if (existingItem) {
257
- conversation.printError(`Item ${itemId} is already ${existingItem.status === '✅' ? 'completed' : 'in progress'}.`);
258
- }
259
- else {
260
- conversation.printError(`Item ${itemId} not found in backlog.`);
261
- }
262
- }
263
- else {
264
- conversation.printInfo('No pending items in backlog. All done! 🎉');
265
- }
266
- return true;
267
- }
268
- // Check dependencies
269
- const unmetDeps = getUnmetDependencies(item, buildItems);
270
- const depsWarning = unmetDeps.length > 0
271
- ? `\n\n**⚠️ UNMET DEPENDENCIES:**\n${unmetDeps.map(d => `- ${d.id}: ${d.title} (${d.status})`).join('\n')}\n\nThese items are not yet completed. Ask user to confirm before proceeding.`
272
- : '';
273
- // Get build skill prompt and replace placeholders
274
- const buildPromptTemplate = getSkillPrompt('build');
275
- if (!buildPromptTemplate) {
276
- conversation.printError('Build skill not found.');
277
- return true;
278
- }
279
- const buildPrompt = buildPromptTemplate
280
- .replace(/\{\{item_id\}\}/g, item.id)
281
- .replace(/\{\{item_title\}\}/g, item.title)
282
- .replace(/\{\{item_description\}\}/g, item.description)
283
- .replace(/\{\{item_type\}\}/g, item.type)
284
- .replace(/\{\{item_priority\}\}/g, item.priority);
285
- conversation.printInfo(`🔨 Building ${item.id}: ${item.title}`);
286
- conversation.printInfo('');
287
- ctx.footer.resumeAnimation();
288
- await ctx.processMessage(`I want to implement backlog item ${item.id}.
289
-
290
- ${projectPathContext}
291
-
292
- ${buildPrompt}${depsWarning}`, { displayMessage: `Build ${item.id}: ${item.title}` });
293
- return true;
294
- },
295
- };
296
- // =============================================================================
297
- // Export All Agent Commands
298
- // =============================================================================
299
- export const agentCommands = [
300
- buildCommand,
301
- noteCommand,
302
- prdCommand,
303
- scaffoldCommand,
304
- workflowCommand,
305
- ];
@@ -1,15 +0,0 @@
1
- /**
2
- * Design Commands
3
- *
4
- * Commands for project design and requirements:
5
- * - design: Full project design workflow
6
- * - sketch: Quick project outline
7
- * - refine: Refine existing requirements
8
- * - arch: Create architecture documentation
9
- */
10
- import type { CommandHandler } from '../handler-types.js';
11
- export declare const designCommand: CommandHandler;
12
- export declare const sketchCommand: CommandHandler;
13
- export declare const refineCommand: CommandHandler;
14
- export declare const archCommand: CommandHandler;
15
- export declare const designCommands: CommandHandler[];