@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
@@ -1,48 +1,69 @@
1
1
  /**
2
- * Model Tier Detection
2
+ * Model Tier Detection (Capability Tiers)
3
3
  *
4
4
  * Categorizes LLM models by capability tier (small/medium/large)
5
5
  * and provides upgrade suggestions within the same provider.
6
6
  *
7
7
  * Used by commands like /design to warn users about model limitations
8
8
  * and suggest alternatives.
9
+ *
10
+ * NOTE: This is SEPARATE from the model registry in src/models/model-registry.ts.
11
+ * - Registry: Model metadata, selection UI, speed tiers (fast/balanced/powerful)
12
+ * - This file: Command capability requirements (small/medium/large)
13
+ *
14
+ * When adding new models to the registry, also update this file if the model
15
+ * should be recognized for capability tier detection.
9
16
  */
10
17
  // =============================================================================
11
18
  // Model Tier Mappings
12
19
  // =============================================================================
13
20
  const MODEL_TIERS = {
14
- // Claude (Anthropic)
21
+ // Claude (Anthropic) - 4.5 series (current)
22
+ 'claude-opus-4-5': { tier: 'large', provider: 'anthropic' },
23
+ 'claude-sonnet-4-5': { tier: 'large', provider: 'anthropic' },
24
+ 'claude-haiku-4-5': { tier: 'medium', provider: 'anthropic', suggestedUpgrade: 'claude-sonnet-4-5-20250929' },
25
+ // Claude legacy (for backward compatibility)
15
26
  'claude-3-opus': { tier: 'large', provider: 'anthropic' },
16
27
  'claude-opus-4': { tier: 'large', provider: 'anthropic' },
17
28
  'claude-sonnet-4': { tier: 'large', provider: 'anthropic' },
18
29
  'claude-3-5-sonnet': { tier: 'large', provider: 'anthropic' },
19
- 'claude-3-sonnet': { tier: 'large', provider: 'anthropic' },
20
- 'claude-3-5-haiku': { tier: 'medium', provider: 'anthropic', suggestedUpgrade: 'claude-sonnet-4-20250514' },
21
- 'claude-3-haiku': { tier: 'medium', provider: 'anthropic', suggestedUpgrade: 'claude-sonnet-4-20250514' },
22
- // OpenAI
30
+ 'claude-3-5-haiku': { tier: 'medium', provider: 'anthropic', suggestedUpgrade: 'claude-sonnet-4-5-20250929' },
31
+ 'claude-3-haiku': { tier: 'medium', provider: 'anthropic', suggestedUpgrade: 'claude-sonnet-4-5-20250929' },
32
+ // OpenAI - GPT-5 series (current)
33
+ 'gpt-5.2': { tier: 'large', provider: 'openai' },
34
+ 'gpt-5-mini': { tier: 'large', provider: 'openai' },
35
+ 'gpt-5-nano': { tier: 'medium', provider: 'openai', suggestedUpgrade: 'gpt-5-mini-2025-08-07' },
36
+ // OpenAI legacy (for backward compatibility)
23
37
  'gpt-4o': { tier: 'large', provider: 'openai' },
24
38
  'gpt-4-turbo': { tier: 'large', provider: 'openai' },
25
39
  'gpt-4': { tier: 'large', provider: 'openai' },
26
- 'gpt-4o-mini': { tier: 'medium', provider: 'openai', suggestedUpgrade: 'gpt-4o' },
27
- 'gpt-3.5-turbo': { tier: 'small', provider: 'openai', suggestedUpgrade: 'gpt-4o-mini' },
40
+ 'gpt-4o-mini': { tier: 'medium', provider: 'openai', suggestedUpgrade: 'gpt-5-mini-2025-08-07' },
41
+ 'gpt-3.5-turbo': { tier: 'small', provider: 'openai', suggestedUpgrade: 'gpt-5-nano-2025-08-07' },
28
42
  'o1': { tier: 'large', provider: 'openai' },
29
43
  'o1-mini': { tier: 'medium', provider: 'openai', suggestedUpgrade: 'o1' },
30
- 'o1-preview': { tier: 'large', provider: 'openai' },
31
- // Google (Gemini)
32
- 'gemini-1.5-pro': { tier: 'large', provider: 'google' },
33
- 'gemini-2.0-flash': { tier: 'large', provider: 'google' },
44
+ 'o3': { tier: 'large', provider: 'openai' },
45
+ 'o4-mini': { tier: 'medium', provider: 'openai', suggestedUpgrade: 'o3' },
46
+ // Google (Gemini) - 3.x series (current)
47
+ 'gemini-3-pro': { tier: 'large', provider: 'google' },
48
+ 'gemini-3-flash': { tier: 'large', provider: 'google' },
49
+ 'gemini-2.5-flash-lite': { tier: 'medium', provider: 'google', suggestedUpgrade: 'gemini-3-flash-preview' },
50
+ // Gemini legacy (for backward compatibility)
34
51
  'gemini-2.5-pro': { tier: 'large', provider: 'google' },
35
- 'gemini-2.5-flash': { tier: 'medium', provider: 'google', suggestedUpgrade: 'gemini-2.5-pro' },
36
- 'gemini-1.5-flash': { tier: 'medium', provider: 'google', suggestedUpgrade: 'gemini-1.5-pro' },
37
- 'gemini-2.0-flash-lite': { tier: 'small', provider: 'google', suggestedUpgrade: 'gemini-2.0-flash' },
52
+ 'gemini-2.5-flash': { tier: 'medium', provider: 'google', suggestedUpgrade: 'gemini-3-flash-preview' },
53
+ 'gemini-2.0-flash': { tier: 'large', provider: 'google' },
54
+ 'gemini-1.5-pro': { tier: 'large', provider: 'google' },
55
+ 'gemini-1.5-flash': { tier: 'medium', provider: 'google', suggestedUpgrade: 'gemini-3-flash-preview' },
38
56
  // Ollama / Local models (common ones)
39
- 'llama3.2': { tier: 'small', provider: 'ollama', suggestedUpgrade: 'llama3.1:70b' },
57
+ 'llama3.2:8b': { tier: 'small', provider: 'ollama', suggestedUpgrade: 'llama3.2:70b' },
58
+ 'llama3.2:70b': { tier: 'large', provider: 'ollama' },
59
+ 'llama3.2': { tier: 'small', provider: 'ollama', suggestedUpgrade: 'llama3.2:70b' },
40
60
  'llama3.1': { tier: 'medium', provider: 'ollama', suggestedUpgrade: 'llama3.1:70b' },
41
61
  'llama3.1:70b': { tier: 'large', provider: 'ollama' },
42
62
  'mistral': { tier: 'small', provider: 'ollama' },
43
63
  'mixtral': { tier: 'medium', provider: 'ollama' },
44
64
  'codellama': { tier: 'medium', provider: 'ollama' },
45
65
  'deepseek-coder': { tier: 'medium', provider: 'ollama' },
66
+ 'deepseek-coder:33b': { tier: 'large', provider: 'ollama' },
46
67
  'qwen2.5-coder': { tier: 'medium', provider: 'ollama' },
47
68
  };
48
69
  // =============================================================================
@@ -78,10 +99,11 @@ export function getCommandMinTier(command) {
78
99
  '/design': 'large',
79
100
  '/refine': 'large',
80
101
  '/arch': 'large',
102
+ '/scaffold': 'large',
81
103
  '/build': 'medium',
82
104
  '/prd': 'medium',
83
105
  '/sketch': 'small', // Simplified version - works with any model
84
- '/init': 'small',
106
+ '/new': 'small',
85
107
  '/backlog': 'small',
86
108
  '/note': 'small',
87
109
  };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Open a URL in the default browser.
3
+ * Returns true if browser was opened successfully.
4
+ */
5
+ export declare function openBrowser(url: string): Promise<boolean>;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Open a URL in the default browser.
3
+ * Returns true if browser was opened successfully.
4
+ */
5
+ import { exec } from 'child_process';
6
+ import * as os from 'os';
7
+ export function openBrowser(url) {
8
+ return new Promise((resolve) => {
9
+ const platform = os.platform();
10
+ let cmd;
11
+ switch (platform) {
12
+ case 'darwin':
13
+ cmd = `open "${url}"`;
14
+ break;
15
+ case 'win32':
16
+ cmd = `start "" "${url}"`;
17
+ break;
18
+ default:
19
+ // Linux and others
20
+ cmd = `xdg-open "${url}"`;
21
+ break;
22
+ }
23
+ exec(cmd, (error) => {
24
+ if (error) {
25
+ resolve(false);
26
+ }
27
+ else {
28
+ resolve(true);
29
+ }
30
+ });
31
+ });
32
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Path Safety Utilities
3
+ *
4
+ * Safety validation for file operations, especially deletion.
5
+ * Prevents accidental deletion of system directories or unrelated folders.
6
+ */
7
+ export interface DeleteValidation {
8
+ valid: boolean;
9
+ reason?: string;
10
+ warnings?: string[];
11
+ }
12
+ export interface CwdValidation {
13
+ matches: boolean;
14
+ projectPath: string;
15
+ cwd: string;
16
+ }
17
+ /**
18
+ * Validate a path is safe to delete
19
+ *
20
+ * @param projectPath - The path to validate for deletion
21
+ * @returns Validation result with valid flag, optional reason, and warnings
22
+ */
23
+ export declare function validateDeletePath(projectPath: string): DeleteValidation;
24
+ /**
25
+ * Validate active project matches current working directory
26
+ *
27
+ * @param project - Project with path property
28
+ * @returns Validation result with matches flag and paths
29
+ */
30
+ export declare function validateProjectCwd(project: {
31
+ path: string;
32
+ }): CwdValidation;
33
+ /**
34
+ * Check if CWD validation warning should be shown
35
+ */
36
+ export declare function shouldWarnCwdMismatch(project: {
37
+ path: string;
38
+ }): boolean;
39
+ /**
40
+ * Format a CWD mismatch warning message
41
+ */
42
+ export declare function formatCwdMismatchWarning(project: {
43
+ path: string;
44
+ }): string[];
45
+ /**
46
+ * Format delete validation result for display
47
+ */
48
+ export declare function formatDeleteValidation(validation: DeleteValidation, projectPath: string): string[];
49
+ /**
50
+ * Check if a path is within the projects directory
51
+ */
52
+ export declare function isWithinProjectsDir(targetPath: string): boolean;
53
+ /**
54
+ * Get a safe display path (truncated if too long)
55
+ */
56
+ export declare function getSafeDisplayPath(targetPath: string, maxLength?: number): string;
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Path Safety Utilities
3
+ *
4
+ * Safety validation for file operations, especially deletion.
5
+ * Prevents accidental deletion of system directories or unrelated folders.
6
+ */
7
+ import * as fs from 'fs';
8
+ import * as path from 'path';
9
+ import * as os from 'os';
10
+ import { getAllowedDeletePaths, isDeleteProtectionEnabled, isProjectMatchRequired } from '../settings/paths.js';
11
+ import { truncatePlain as truncate } from '@compilr-dev/ui-core/utils';
12
+ // =============================================================================
13
+ // Dangerous Paths
14
+ // =============================================================================
15
+ /**
16
+ * Get list of dangerous system paths that should never be deleted
17
+ */
18
+ function getDangerousPaths() {
19
+ const home = os.homedir();
20
+ return [
21
+ home, // Home directory itself
22
+ '/', // Root
23
+ '/usr',
24
+ '/bin',
25
+ '/sbin',
26
+ '/lib',
27
+ '/lib64',
28
+ '/opt',
29
+ '/etc',
30
+ '/var',
31
+ '/tmp',
32
+ '/dev',
33
+ '/proc',
34
+ '/sys',
35
+ '/boot',
36
+ '/root',
37
+ '/home', // Parent of all home directories
38
+ // macOS specific
39
+ '/System',
40
+ '/Library',
41
+ '/Applications',
42
+ '/Users',
43
+ '/Volumes',
44
+ '/private',
45
+ '/cores',
46
+ // Windows specific (when running under WSL or similar)
47
+ '/mnt/c',
48
+ '/mnt/c/Windows',
49
+ '/mnt/c/Program Files',
50
+ '/mnt/c/Program Files (x86)',
51
+ '/mnt/c/Users',
52
+ // Common temp directories
53
+ os.tmpdir(),
54
+ path.join(home, 'Desktop'),
55
+ path.join(home, 'Documents'),
56
+ path.join(home, 'Downloads'),
57
+ path.join(home, 'Pictures'),
58
+ path.join(home, 'Videos'),
59
+ path.join(home, 'Music'),
60
+ // CLI data directory should not be deleted via project delete
61
+ path.join(home, '.compilr-dev'),
62
+ ];
63
+ }
64
+ // =============================================================================
65
+ // Validation Functions
66
+ // =============================================================================
67
+ /**
68
+ * Validate a path is safe to delete
69
+ *
70
+ * @param projectPath - The path to validate for deletion
71
+ * @returns Validation result with valid flag, optional reason, and warnings
72
+ */
73
+ export function validateDeletePath(projectPath) {
74
+ const resolved = path.resolve(projectPath);
75
+ const warnings = [];
76
+ // 1. Path must be absolute (after resolve, it always is)
77
+ if (!path.isAbsolute(resolved)) {
78
+ return { valid: false, reason: 'Project path must be absolute' };
79
+ }
80
+ // 2. Check if path exists (OK to proceed if it doesn't - just skip file deletion)
81
+ if (!fs.existsSync(resolved)) {
82
+ return { valid: true, warnings: ['Path does not exist, skipping file deletion'] };
83
+ }
84
+ // 3. Prevent dangerous system paths
85
+ const dangerousPaths = getDangerousPaths();
86
+ for (const dangerous of dangerousPaths) {
87
+ const resolvedDangerous = path.resolve(dangerous);
88
+ if (resolved === resolvedDangerous) {
89
+ return {
90
+ valid: false,
91
+ reason: `Cannot delete system directory: ${resolved}`,
92
+ };
93
+ }
94
+ }
95
+ // 4. Check path is within allowed directories (if protection enabled)
96
+ if (isDeleteProtectionEnabled()) {
97
+ const allowedRoots = getAllowedDeletePaths();
98
+ const isWithinAllowed = allowedRoots.some((root) => {
99
+ const resolvedRoot = path.resolve(root);
100
+ return resolved.startsWith(resolvedRoot + path.sep) || resolved === resolvedRoot;
101
+ });
102
+ if (!isWithinAllowed) {
103
+ return {
104
+ valid: false,
105
+ reason: `Path is outside allowed directories. Configure allowedPaths in /config if needed.`,
106
+ };
107
+ }
108
+ }
109
+ // 5. Check for project markers (.compilr, .git, package.json)
110
+ const hasCompilrMarker = fs.existsSync(path.join(resolved, '.compilr'));
111
+ const hasGit = fs.existsSync(path.join(resolved, '.git'));
112
+ const hasPackageJson = fs.existsSync(path.join(resolved, 'package.json'));
113
+ const hasPyprojectToml = fs.existsSync(path.join(resolved, 'pyproject.toml'));
114
+ const hasCargoToml = fs.existsSync(path.join(resolved, 'Cargo.toml'));
115
+ const hasGoMod = fs.existsSync(path.join(resolved, 'go.mod'));
116
+ const hasProjectMarker = hasCompilrMarker || hasGit || hasPackageJson || hasPyprojectToml || hasCargoToml || hasGoMod;
117
+ if (!hasProjectMarker) {
118
+ warnings.push('Directory has no project markers (.compilr, .git, package.json, etc.)');
119
+ }
120
+ // 6. Warn if path seems too short (e.g., /home/user/a)
121
+ const pathParts = resolved.split(path.sep).filter(Boolean);
122
+ if (pathParts.length < 3) {
123
+ warnings.push('Path seems unusually short - double check this is correct');
124
+ }
125
+ // 7. Warn if path is very deep (might indicate system path)
126
+ if (pathParts.length > 15) {
127
+ warnings.push('Path is very deep - verify this is the correct project');
128
+ }
129
+ // 8. Check if path is a parent of current working directory
130
+ const cwd = process.cwd();
131
+ if (cwd.startsWith(resolved + path.sep) || cwd === resolved) {
132
+ warnings.push('This path contains or is your current working directory');
133
+ }
134
+ return { valid: true, warnings };
135
+ }
136
+ /**
137
+ * Validate active project matches current working directory
138
+ *
139
+ * @param project - Project with path property
140
+ * @returns Validation result with matches flag and paths
141
+ */
142
+ export function validateProjectCwd(project) {
143
+ const cwd = process.cwd();
144
+ const projectPath = path.resolve(project.path);
145
+ // CWD should be within or equal to project path
146
+ const matches = cwd === projectPath || cwd.startsWith(projectPath + path.sep);
147
+ return { matches, projectPath, cwd };
148
+ }
149
+ /**
150
+ * Check if CWD validation warning should be shown
151
+ */
152
+ export function shouldWarnCwdMismatch(project) {
153
+ if (!isProjectMatchRequired()) {
154
+ return false;
155
+ }
156
+ const { matches } = validateProjectCwd(project);
157
+ return !matches;
158
+ }
159
+ /**
160
+ * Format a CWD mismatch warning message
161
+ */
162
+ export function formatCwdMismatchWarning(project) {
163
+ const { projectPath, cwd } = validateProjectCwd(project);
164
+ return [
165
+ "Current directory doesn't match active project",
166
+ ` Active project: ${projectPath}`,
167
+ ` Current dir: ${cwd}`,
168
+ ` Consider: cd ${projectPath}`,
169
+ ];
170
+ }
171
+ /**
172
+ * Format delete validation result for display
173
+ */
174
+ export function formatDeleteValidation(validation, projectPath) {
175
+ const lines = [];
176
+ if (validation.valid) {
177
+ lines.push('Path is within allowed directory');
178
+ // Check for project markers
179
+ if (fs.existsSync(path.join(projectPath, '.compilr'))) {
180
+ lines.push('Project has .compilr marker');
181
+ }
182
+ else if (fs.existsSync(path.join(projectPath, '.git'))) {
183
+ lines.push('Project has .git repository');
184
+ }
185
+ else if (fs.existsSync(path.join(projectPath, 'package.json'))) {
186
+ lines.push('Project has package.json');
187
+ }
188
+ if (validation.warnings && validation.warnings.length > 0) {
189
+ lines.push('');
190
+ lines.push('Warnings:');
191
+ for (const warning of validation.warnings) {
192
+ lines.push(` - ${warning}`);
193
+ }
194
+ }
195
+ }
196
+ else {
197
+ lines.push(`Error: ${validation.reason || 'Unknown error'}`);
198
+ lines.push('');
199
+ lines.push('Allowed directories:');
200
+ for (const allowed of getAllowedDeletePaths()) {
201
+ lines.push(` - ${allowed}`);
202
+ }
203
+ lines.push('');
204
+ lines.push('Options:');
205
+ lines.push(' 1. Move the project to an allowed directory');
206
+ lines.push(' 2. Add path to allowedPaths in /config');
207
+ lines.push(' 3. Delete files manually and remove from database only');
208
+ }
209
+ return lines;
210
+ }
211
+ /**
212
+ * Check if a path is within the projects directory
213
+ */
214
+ export function isWithinProjectsDir(targetPath) {
215
+ const allowedPaths = getAllowedDeletePaths();
216
+ const resolved = path.resolve(targetPath);
217
+ return allowedPaths.some((allowed) => {
218
+ const resolvedAllowed = path.resolve(allowed);
219
+ return resolved.startsWith(resolvedAllowed + path.sep) || resolved === resolvedAllowed;
220
+ });
221
+ }
222
+ /**
223
+ * Get a safe display path (truncated if too long)
224
+ */
225
+ export function getSafeDisplayPath(targetPath, maxLength = 50) {
226
+ if (targetPath.length <= maxLength) {
227
+ return targetPath;
228
+ }
229
+ const parts = targetPath.split(path.sep);
230
+ if (parts.length <= 2) {
231
+ return truncate(targetPath, maxLength);
232
+ }
233
+ // Show first and last parts with ellipsis
234
+ const first = parts.slice(0, 2).join(path.sep);
235
+ const last = parts.slice(-2).join(path.sep);
236
+ if (first.length + last.length + 4 <= maxLength) {
237
+ return first + '/.../' + last;
238
+ }
239
+ return truncate(targetPath, maxLength);
240
+ }
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Project Detection Utilities
3
+ *
4
+ * Utilities for detecting project information from an existing directory.
5
+ * Used by the import project feature in /new wizard.
6
+ */
7
+ export interface DetectedProject {
8
+ /** Project name from package.json or folder name */
9
+ name: string;
10
+ /** Prettified display name */
11
+ displayName: string;
12
+ /** Source of the name (package.json, go.mod, folder) */
13
+ nameSource: 'package.json' | 'go.mod' | 'pyproject.toml' | 'Cargo.toml' | 'folder';
14
+ /** Detected primary language (null if unknown) */
15
+ language: string | null;
16
+ /** Detected framework (null if not detected) */
17
+ framework: string | null;
18
+ /** Detected package manager (null if not detected) */
19
+ packageManager: string | null;
20
+ /** Whether .git directory exists */
21
+ hasGit: boolean;
22
+ /** Git remote URL (null if not configured) */
23
+ gitRemote: string | null;
24
+ /** Current git branch (null if not in git repo) */
25
+ gitBranch: string | null;
26
+ /** Whether COMPILR.md exists */
27
+ hasCompilrMd: boolean;
28
+ /** Whether CLAUDE.md exists (alternative) */
29
+ hasClaudeMd: boolean;
30
+ }
31
+ export interface GitInfo {
32
+ hasGit: boolean;
33
+ remote: string | null;
34
+ branch: string | null;
35
+ }
36
+ /**
37
+ * Detect project information from a directory path
38
+ */
39
+ export declare function detectProjectInfo(projectPath: string): DetectedProject;
40
+ /**
41
+ * Detect git repository information
42
+ */
43
+ export declare function detectGitInfo(projectPath: string): GitInfo;
44
+ /**
45
+ * Get a human-readable label for detected language
46
+ */
47
+ export declare function getLanguageLabel(language: string | null): string;
48
+ /**
49
+ * Get a human-readable label for detected framework
50
+ */
51
+ export declare function getFrameworkLabel(framework: string | null): string;
52
+ /**
53
+ * Check if a path is a valid directory that can be imported
54
+ */
55
+ export declare function validateImportPath(importPath: string): {
56
+ valid: boolean;
57
+ error?: string;
58
+ };