@compilr-dev/cli 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (634) hide show
  1. package/README.md +254 -68
  2. package/dist/.tsbuildinfo.app +1 -0
  3. package/dist/.tsbuildinfo.data +1 -0
  4. package/dist/.tsbuildinfo.domain +1 -0
  5. package/dist/.tsbuildinfo.foundation +1 -0
  6. package/dist/agent.d.ts +134 -4
  7. package/dist/agent.js +345 -166
  8. package/dist/anchors/index.d.ts +9 -0
  9. package/dist/anchors/index.js +9 -0
  10. package/dist/anchors/project-anchors.d.ts +79 -0
  11. package/dist/anchors/project-anchors.js +202 -0
  12. package/dist/auth/api-client.d.ts +124 -0
  13. package/dist/auth/api-client.js +261 -0
  14. package/dist/auth/index.d.ts +172 -0
  15. package/dist/auth/index.js +545 -0
  16. package/dist/auth/storage.d.ts +52 -0
  17. package/dist/auth/storage.js +118 -0
  18. package/dist/changelog/index.d.ts +16 -0
  19. package/dist/changelog/index.js +24 -0
  20. package/dist/changelog/releases.d.ts +17 -0
  21. package/dist/changelog/releases.js +63 -0
  22. package/dist/commands/index.d.ts +2 -1
  23. package/dist/commands-v2/handlers/auth.d.ts +10 -0
  24. package/dist/commands-v2/handlers/auth.js +118 -0
  25. package/dist/commands-v2/handlers/background.d.ts +14 -0
  26. package/dist/commands-v2/handlers/background.js +276 -0
  27. package/dist/commands-v2/handlers/context.d.ts +13 -0
  28. package/dist/commands-v2/handlers/context.js +533 -0
  29. package/dist/commands-v2/handlers/core.d.ts +14 -0
  30. package/dist/commands-v2/handlers/core.js +290 -0
  31. package/dist/commands-v2/handlers/debug.d.ts +11 -0
  32. package/dist/commands-v2/handlers/debug.js +177 -0
  33. package/dist/commands-v2/handlers/delegations.d.ts +8 -0
  34. package/dist/commands-v2/handlers/delegations.js +29 -0
  35. package/dist/commands-v2/handlers/files.d.ts +8 -0
  36. package/dist/commands-v2/handlers/files.js +162 -0
  37. package/dist/commands-v2/handlers/filter.d.ts +9 -0
  38. package/dist/commands-v2/handlers/filter.js +130 -0
  39. package/dist/commands-v2/handlers/games.d.ts +7 -0
  40. package/dist/commands-v2/handlers/games.js +57 -0
  41. package/dist/commands-v2/handlers/index.d.ts +25 -0
  42. package/dist/commands-v2/handlers/index.js +63 -0
  43. package/dist/commands-v2/handlers/mcp.d.ts +8 -0
  44. package/dist/commands-v2/handlers/mcp.js +39 -0
  45. package/dist/commands-v2/handlers/notifications.d.ts +9 -0
  46. package/dist/commands-v2/handlers/notifications.js +34 -0
  47. package/dist/commands-v2/handlers/project.d.ts +22 -0
  48. package/dist/commands-v2/handlers/project.js +1035 -0
  49. package/dist/commands-v2/handlers/reset.d.ts +11 -0
  50. package/dist/commands-v2/handlers/reset.js +118 -0
  51. package/dist/commands-v2/handlers/session.d.ts +161 -0
  52. package/dist/commands-v2/handlers/session.js +805 -0
  53. package/dist/commands-v2/handlers/settings.d.ts +17 -0
  54. package/dist/commands-v2/handlers/settings.js +417 -0
  55. package/dist/commands-v2/handlers/tasks.d.ts +5 -0
  56. package/dist/commands-v2/handlers/tasks.js +36 -0
  57. package/dist/commands-v2/handlers/team.d.ts +9 -0
  58. package/dist/commands-v2/handlers/team.js +549 -0
  59. package/dist/commands-v2/handlers/terminals.d.ts +9 -0
  60. package/dist/commands-v2/handlers/terminals.js +34 -0
  61. package/dist/commands-v2/index.d.ts +14 -0
  62. package/dist/commands-v2/index.js +18 -0
  63. package/dist/commands-v2/registry.d.ts +52 -0
  64. package/dist/commands-v2/registry.js +114 -0
  65. package/dist/commands-v2/types.d.ts +153 -0
  66. package/dist/commands-v2/types.js +7 -0
  67. package/dist/commands.js +123 -7
  68. package/dist/compilr-diff-companion.vsix +0 -0
  69. package/dist/db/index.js +98 -4
  70. package/dist/db/repositories/document-repository.d.ts +2 -0
  71. package/dist/db/repositories/document-repository.js +5 -1
  72. package/dist/db/repositories/index.d.ts +2 -0
  73. package/dist/db/repositories/index.js +1 -0
  74. package/dist/db/repositories/plan-repository.d.ts +101 -0
  75. package/dist/db/repositories/plan-repository.js +275 -0
  76. package/dist/db/repositories/project-repository.d.ts +6 -0
  77. package/dist/db/repositories/project-repository.js +41 -0
  78. package/dist/db/repositories/work-item-repository.d.ts +15 -0
  79. package/dist/db/repositories/work-item-repository.js +69 -4
  80. package/dist/db/schema.d.ts +40 -3
  81. package/dist/db/schema.js +66 -3
  82. package/dist/episodes/index.d.ts +20 -0
  83. package/dist/episodes/index.js +27 -0
  84. package/dist/episodes/recorder.d.ts +51 -0
  85. package/dist/episodes/recorder.js +195 -0
  86. package/dist/episodes/significant-work.d.ts +21 -0
  87. package/dist/episodes/significant-work.js +56 -0
  88. package/dist/episodes/store.d.ts +38 -0
  89. package/dist/episodes/store.js +199 -0
  90. package/dist/episodes/types.d.ts +35 -0
  91. package/dist/episodes/types.js +6 -0
  92. package/dist/episodes/work-at-risk.d.ts +12 -0
  93. package/dist/episodes/work-at-risk.js +38 -0
  94. package/dist/episodes/work-summary-anchor.d.ts +23 -0
  95. package/dist/episodes/work-summary-anchor.js +73 -0
  96. package/dist/games/coins.d.ts +66 -0
  97. package/dist/games/coins.js +165 -0
  98. package/dist/games/game-base.d.ts +84 -0
  99. package/dist/games/game-base.js +204 -0
  100. package/dist/games/index.d.ts +16 -0
  101. package/dist/games/index.js +49 -0
  102. package/dist/games/scores.d.ts +69 -0
  103. package/dist/games/scores.js +191 -0
  104. package/dist/games/tetris/board.d.ts +59 -0
  105. package/dist/games/tetris/board.js +170 -0
  106. package/dist/games/tetris/index.d.ts +109 -0
  107. package/dist/games/tetris/index.js +610 -0
  108. package/dist/games/tetris/pieces.d.ts +44 -0
  109. package/dist/games/tetris/pieces.js +271 -0
  110. package/dist/games/tetris/renderer.d.ts +26 -0
  111. package/dist/games/tetris/renderer.js +77 -0
  112. package/dist/guide/guide-content.d.ts +23 -0
  113. package/dist/guide/guide-content.js +196 -0
  114. package/dist/guide/index.d.ts +8 -0
  115. package/dist/guide/index.js +7 -0
  116. package/dist/guide/shared-content.d.ts +37 -0
  117. package/dist/guide/shared-content.js +1272 -0
  118. package/dist/guide/tutorial-helpers.d.ts +57 -0
  119. package/dist/guide/tutorial-helpers.js +147 -0
  120. package/dist/handlers/ask-user-handlers.d.ts +32 -0
  121. package/dist/handlers/ask-user-handlers.js +104 -0
  122. package/dist/handlers/delegation-handlers.d.ts +34 -0
  123. package/dist/handlers/delegation-handlers.js +291 -0
  124. package/dist/handlers/permission-handler.d.ts +30 -0
  125. package/dist/handlers/permission-handler.js +205 -0
  126. package/dist/index.d.ts +11 -1
  127. package/dist/index.js +615 -179
  128. package/dist/input-handlers/index.d.ts +7 -0
  129. package/dist/input-handlers/index.js +7 -0
  130. package/dist/input-handlers/memory-handler.d.ts +26 -0
  131. package/dist/input-handlers/memory-handler.js +69 -0
  132. package/dist/models/index.d.ts +10 -0
  133. package/dist/models/index.js +12 -0
  134. package/dist/models/model-registry.d.ts +38 -0
  135. package/dist/models/model-registry.js +69 -0
  136. package/dist/models/model-tiers.d.ts +28 -0
  137. package/dist/models/model-tiers.js +71 -0
  138. package/dist/models/model-validation.d.ts +25 -0
  139. package/dist/models/model-validation.js +291 -0
  140. package/dist/models/ollama-models.d.ts +73 -0
  141. package/dist/models/ollama-models.js +178 -0
  142. package/dist/models/provider-types.d.ts +6 -0
  143. package/dist/models/provider-types.js +1 -0
  144. package/dist/models/providers.d.ts +35 -0
  145. package/dist/models/providers.js +58 -0
  146. package/dist/models/types.d.ts +4 -0
  147. package/dist/models/types.js +4 -0
  148. package/dist/multi-agent/activity.d.ts +21 -0
  149. package/dist/multi-agent/activity.js +34 -0
  150. package/dist/multi-agent/agent-selection.d.ts +55 -0
  151. package/dist/multi-agent/agent-selection.js +90 -0
  152. package/dist/multi-agent/artifacts.d.ts +197 -0
  153. package/dist/multi-agent/artifacts.js +379 -0
  154. package/dist/multi-agent/checkpointer.d.ts +138 -0
  155. package/dist/multi-agent/checkpointer.js +471 -0
  156. package/dist/multi-agent/collision-utils.d.ts +16 -0
  157. package/dist/multi-agent/collision-utils.js +28 -0
  158. package/dist/multi-agent/context-resolver.d.ts +97 -0
  159. package/dist/multi-agent/context-resolver.js +316 -0
  160. package/dist/multi-agent/custom-agents.d.ts +83 -0
  161. package/dist/multi-agent/custom-agents.js +227 -0
  162. package/dist/multi-agent/delegation-tracker.d.ts +157 -0
  163. package/dist/multi-agent/delegation-tracker.js +243 -0
  164. package/dist/multi-agent/file-lock-hook.d.ts +29 -0
  165. package/dist/multi-agent/file-lock-hook.js +97 -0
  166. package/dist/multi-agent/file-locks.d.ts +58 -0
  167. package/dist/multi-agent/file-locks.js +194 -0
  168. package/dist/multi-agent/index.d.ts +24 -0
  169. package/dist/multi-agent/index.js +30 -0
  170. package/dist/multi-agent/mention-parser.d.ts +64 -0
  171. package/dist/multi-agent/mention-parser.js +146 -0
  172. package/dist/multi-agent/notification-manager.d.ts +84 -0
  173. package/dist/multi-agent/notification-manager.js +224 -0
  174. package/dist/multi-agent/pending-requests.d.ts +122 -0
  175. package/dist/multi-agent/pending-requests.js +155 -0
  176. package/dist/multi-agent/session-registry.d.ts +139 -0
  177. package/dist/multi-agent/session-registry.js +514 -0
  178. package/dist/multi-agent/shared-context.d.ts +293 -0
  179. package/dist/multi-agent/shared-context.js +671 -0
  180. package/dist/multi-agent/skill-requirements.d.ts +66 -0
  181. package/dist/multi-agent/skill-requirements.js +178 -0
  182. package/dist/multi-agent/task-assignment.d.ts +69 -0
  183. package/dist/multi-agent/task-assignment.js +123 -0
  184. package/dist/multi-agent/task-suggestion.d.ts +31 -0
  185. package/dist/multi-agent/task-suggestion.js +72 -0
  186. package/dist/multi-agent/team-agent.d.ts +201 -0
  187. package/dist/multi-agent/team-agent.js +488 -0
  188. package/dist/multi-agent/team.d.ts +286 -0
  189. package/dist/multi-agent/team.js +610 -0
  190. package/dist/multi-agent/tool-config.d.ts +110 -0
  191. package/dist/multi-agent/tool-config.js +661 -0
  192. package/dist/multi-agent/types.d.ts +211 -0
  193. package/dist/multi-agent/types.js +617 -0
  194. package/dist/prompts/plan-mode-prompt.d.ts +11 -0
  195. package/dist/prompts/plan-mode-prompt.js +95 -0
  196. package/dist/repl-helpers.d.ts +63 -0
  197. package/dist/repl-helpers.js +319 -0
  198. package/dist/repl-v2.d.ts +554 -0
  199. package/dist/repl-v2.js +3286 -0
  200. package/dist/session/index.d.ts +6 -0
  201. package/dist/session/index.js +6 -0
  202. package/dist/session/project-session-manager.d.ts +158 -0
  203. package/dist/session/project-session-manager.js +650 -0
  204. package/dist/settings/index.d.ts +156 -13
  205. package/dist/settings/index.js +377 -24
  206. package/dist/settings/mcp-config.d.ts +76 -0
  207. package/dist/settings/mcp-config.js +143 -0
  208. package/dist/settings/paths.d.ts +114 -0
  209. package/dist/settings/paths.js +270 -0
  210. package/dist/shared-handlers.d.ts +62 -0
  211. package/dist/shared-handlers.js +48 -0
  212. package/dist/system-prompt/builder.d.ts +5 -0
  213. package/dist/system-prompt/builder.js +4 -0
  214. package/dist/system-prompt/index.d.ts +18 -0
  215. package/dist/system-prompt/index.js +18 -0
  216. package/dist/system-prompt/modules.d.ts +5 -0
  217. package/dist/system-prompt/modules.js +4 -0
  218. package/dist/tabbed-menu.js +2 -1
  219. package/dist/templates/compilr-md-import.d.ts +16 -0
  220. package/dist/templates/compilr-md-import.js +241 -0
  221. package/dist/templates/compilr-md.js +10 -58
  222. package/dist/templates/config-json.d.ts +1 -25
  223. package/dist/templates/index.d.ts +2 -0
  224. package/dist/templates/index.js +35 -75
  225. package/dist/themes/colors.js +3 -1
  226. package/dist/themes/registry.d.ts +5 -36
  227. package/dist/themes/registry.js +11 -95
  228. package/dist/themes/types.d.ts +3 -38
  229. package/dist/themes/types.js +2 -2
  230. package/dist/tool-names.d.ts +108 -0
  231. package/dist/tool-names.js +227 -0
  232. package/dist/tools/anchor-tools.d.ts +31 -0
  233. package/dist/tools/anchor-tools.js +255 -0
  234. package/dist/tools/artifact-tools.d.ts +42 -0
  235. package/dist/tools/artifact-tools.js +328 -0
  236. package/dist/tools/ask-user-simple.d.ts +1 -1
  237. package/dist/tools/ask-user-simple.js +2 -1
  238. package/dist/tools/ask-user.d.ts +1 -1
  239. package/dist/tools/ask-user.js +2 -1
  240. package/dist/tools/backlog-wrappers.d.ts +56 -0
  241. package/dist/tools/backlog-wrappers.js +353 -0
  242. package/dist/tools/backlog.d.ts +2 -2
  243. package/dist/tools/backlog.js +2 -2
  244. package/dist/tools/db-tools.d.ts +12 -0
  245. package/dist/tools/db-tools.js +14 -0
  246. package/dist/tools/delegate-background.d.ts +27 -0
  247. package/dist/tools/delegate-background.js +115 -0
  248. package/dist/tools/delegate.d.ts +22 -0
  249. package/dist/tools/delegate.js +97 -0
  250. package/dist/tools/delegation-status.d.ts +16 -0
  251. package/dist/tools/delegation-status.js +128 -0
  252. package/dist/tools/document-db.d.ts +43 -0
  253. package/dist/tools/document-db.js +220 -0
  254. package/dist/tools/guide-tool.d.ts +12 -0
  255. package/dist/tools/guide-tool.js +59 -0
  256. package/dist/tools/handoff.d.ts +25 -0
  257. package/dist/tools/handoff.js +99 -0
  258. package/dist/tools/meta-tools.d.ts +26 -0
  259. package/dist/tools/meta-tools.js +47 -0
  260. package/dist/tools/plan-tools.d.ts +54 -0
  261. package/dist/tools/plan-tools.js +338 -0
  262. package/dist/tools/platform-adapter.d.ts +29 -0
  263. package/dist/tools/platform-adapter.js +394 -0
  264. package/dist/tools/project-db.d.ts +34 -0
  265. package/dist/tools/project-db.js +39 -0
  266. package/dist/tools/recall-work-tool.d.ts +18 -0
  267. package/dist/tools/recall-work-tool.js +82 -0
  268. package/dist/tools/workitem-db.d.ts +135 -0
  269. package/dist/tools/workitem-db.js +730 -0
  270. package/dist/tools.d.ts +67 -2
  271. package/dist/tools.js +238 -38
  272. package/dist/ui/ask-user-overlay.d.ts +2 -2
  273. package/dist/ui/ask-user-overlay.js +443 -535
  274. package/dist/ui/ask-user-simple-overlay.d.ts +2 -2
  275. package/dist/ui/ask-user-simple-overlay.js +182 -209
  276. package/dist/ui/autocomplete-controller.d.ts +42 -0
  277. package/dist/ui/autocomplete-controller.js +384 -0
  278. package/dist/ui/base/index.d.ts +26 -0
  279. package/dist/ui/base/index.js +33 -0
  280. package/dist/ui/base/inline-overlay-utils.d.ts +217 -0
  281. package/dist/ui/base/inline-overlay-utils.js +320 -0
  282. package/dist/ui/base/inline-overlay.d.ts +159 -0
  283. package/dist/ui/base/inline-overlay.js +257 -0
  284. package/dist/ui/base/key-utils.d.ts +15 -0
  285. package/dist/ui/base/key-utils.js +30 -0
  286. package/dist/ui/base/overlay-base-v2.d.ts +203 -0
  287. package/dist/ui/base/overlay-base-v2.js +260 -0
  288. package/dist/ui/base/overlay-base.d.ts +156 -0
  289. package/dist/ui/base/overlay-base.js +238 -0
  290. package/dist/ui/base/overlay-lifecycle.d.ts +65 -0
  291. package/dist/ui/base/overlay-lifecycle.js +159 -0
  292. package/dist/ui/base/overlay-types.d.ts +185 -0
  293. package/dist/ui/base/overlay-types.js +7 -0
  294. package/dist/ui/base/render-utils.d.ts +27 -0
  295. package/dist/ui/base/render-utils.js +36 -0
  296. package/dist/ui/base/screen-stack.d.ts +148 -0
  297. package/dist/ui/base/screen-stack.js +184 -0
  298. package/dist/ui/base/tabbed-list-overlay-v2.d.ts +118 -0
  299. package/dist/ui/base/tabbed-list-overlay-v2.js +335 -0
  300. package/dist/ui/base/tabbed-list-overlay.d.ts +153 -0
  301. package/dist/ui/base/tabbed-list-overlay.js +369 -0
  302. package/dist/ui/constants/labels.d.ts +14 -0
  303. package/dist/ui/constants/labels.js +51 -0
  304. package/dist/ui/conversation-store.d.ts +55 -0
  305. package/dist/ui/conversation-store.js +107 -0
  306. package/dist/ui/conversation.d.ts +75 -4
  307. package/dist/ui/conversation.js +376 -165
  308. package/dist/ui/diff.d.ts +7 -1
  309. package/dist/ui/diff.js +85 -48
  310. package/dist/ui/ephemeral.d.ts +1 -1
  311. package/dist/ui/ephemeral.js +4 -10
  312. package/dist/ui/features/index.d.ts +34 -0
  313. package/dist/ui/features/index.js +34 -0
  314. package/dist/ui/features/input-feature.d.ts +85 -0
  315. package/dist/ui/features/input-feature.js +238 -0
  316. package/dist/ui/features/list-feature.d.ts +155 -0
  317. package/dist/ui/features/list-feature.js +244 -0
  318. package/dist/ui/features/pagination-feature.d.ts +154 -0
  319. package/dist/ui/features/pagination-feature.js +238 -0
  320. package/dist/ui/features/search-feature.d.ts +148 -0
  321. package/dist/ui/features/search-feature.js +185 -0
  322. package/dist/ui/features/tab-feature.d.ts +194 -0
  323. package/dist/ui/features/tab-feature.js +307 -0
  324. package/dist/ui/file-autocomplete.d.ts +24 -0
  325. package/dist/ui/file-autocomplete.js +56 -0
  326. package/dist/ui/footer-renderer.d.ts +69 -0
  327. package/dist/ui/footer-renderer.js +431 -0
  328. package/dist/ui/footer.d.ts +181 -7
  329. package/dist/ui/footer.js +523 -74
  330. package/dist/ui/guardrail-overlay.d.ts +29 -0
  331. package/dist/ui/guardrail-overlay.js +145 -0
  332. package/dist/ui/index.d.ts +1 -1
  333. package/dist/ui/index.js +1 -3
  334. package/dist/ui/input-controller.d.ts +51 -0
  335. package/dist/ui/input-controller.js +176 -0
  336. package/dist/ui/input-prompt.d.ts +135 -33
  337. package/dist/ui/input-prompt.js +728 -337
  338. package/dist/ui/iteration-limit-overlay.d.ts +2 -2
  339. package/dist/ui/iteration-limit-overlay.js +92 -128
  340. package/dist/ui/keyboard-handler.d.ts +57 -0
  341. package/dist/ui/keyboard-handler.js +557 -0
  342. package/dist/ui/keys-overlay.d.ts +1 -0
  343. package/dist/ui/keys-overlay.js +203 -141
  344. package/dist/ui/line-utils.d.ts +88 -0
  345. package/dist/ui/line-utils.js +150 -0
  346. package/dist/ui/live-region-facade.d.ts +42 -0
  347. package/dist/ui/live-region-facade.js +205 -0
  348. package/dist/ui/live-region.d.ts +157 -0
  349. package/dist/ui/live-region.js +379 -0
  350. package/dist/ui/mascot/expressions.d.ts +32 -0
  351. package/dist/ui/mascot/expressions.js +213 -0
  352. package/dist/ui/mascot/index.d.ts +8 -0
  353. package/dist/ui/mascot/index.js +8 -0
  354. package/dist/ui/mascot/renderer.d.ts +19 -0
  355. package/dist/ui/mascot/renderer.js +132 -0
  356. package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
  357. package/dist/ui/overlay/data/tutorial-content.js +9 -0
  358. package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
  359. package/dist/ui/overlay/data/tutorial-registry.js +116 -0
  360. package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
  361. package/dist/ui/overlay/data/tutorial-types.js +6 -0
  362. package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
  363. package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
  364. package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
  365. package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
  366. package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
  367. package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
  368. package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
  369. package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
  370. package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
  371. package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
  372. package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
  373. package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
  374. package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
  375. package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
  376. package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
  377. package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
  378. package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
  379. package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
  380. package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
  381. package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
  382. package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
  383. package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
  384. package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
  385. package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
  386. package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
  387. package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
  388. package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
  389. package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
  390. package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
  391. package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
  392. package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
  393. package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
  394. package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
  395. package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
  396. package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
  397. package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
  398. package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
  399. package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
  400. package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
  401. package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
  402. package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
  403. package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
  404. package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
  405. package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
  406. package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
  407. package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
  408. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
  409. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
  410. package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
  411. package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
  412. package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
  413. package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
  414. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
  415. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
  416. package/dist/ui/overlay/impl/agents-overlay-v2.d.ts +45 -0
  417. package/dist/ui/overlay/impl/agents-overlay-v2.js +814 -0
  418. package/dist/ui/overlay/impl/anchors-overlay-v2.d.ts +47 -0
  419. package/dist/ui/overlay/impl/anchors-overlay-v2.js +749 -0
  420. package/dist/ui/overlay/impl/arch-type-overlay-v2.d.ts +37 -0
  421. package/dist/ui/overlay/impl/arch-type-overlay-v2.js +240 -0
  422. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
  423. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
  424. package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
  425. package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
  426. package/dist/ui/overlay/impl/ask-user-overlay-v2.d.ts +72 -0
  427. package/dist/ui/overlay/impl/ask-user-overlay-v2.js +581 -0
  428. package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.d.ts +46 -0
  429. package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.js +204 -0
  430. package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
  431. package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
  432. package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +52 -0
  433. package/dist/ui/overlay/impl/backlog-overlay-v2.js +681 -0
  434. package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
  435. package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
  436. package/dist/ui/overlay/impl/commands-overlay-v2.d.ts +33 -0
  437. package/dist/ui/overlay/impl/commands-overlay-v2.js +439 -0
  438. package/dist/ui/overlay/impl/config-overlay-v2.d.ts +111 -0
  439. package/dist/ui/overlay/impl/config-overlay-v2.js +718 -0
  440. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
  441. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
  442. package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +57 -0
  443. package/dist/ui/overlay/impl/dashboard-overlay-v2.js +382 -0
  444. package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
  445. package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
  446. package/dist/ui/overlay/impl/docs-overlay-v2.d.ts +45 -0
  447. package/dist/ui/overlay/impl/docs-overlay-v2.js +117 -0
  448. package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +84 -0
  449. package/dist/ui/overlay/impl/document-detail-overlay-v2.js +1112 -0
  450. package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
  451. package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
  452. package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
  453. package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
  454. package/dist/ui/overlay/impl/guardrail-overlay-v2.d.ts +43 -0
  455. package/dist/ui/overlay/impl/guardrail-overlay-v2.js +114 -0
  456. package/dist/ui/overlay/impl/help-overlay-v2.d.ts +57 -0
  457. package/dist/ui/overlay/impl/help-overlay-v2.js +287 -0
  458. package/dist/ui/overlay/impl/init-setup-overlay-v2.d.ts +25 -0
  459. package/dist/ui/overlay/impl/init-setup-overlay-v2.js +97 -0
  460. package/dist/ui/overlay/impl/iteration-limit-overlay-v2.d.ts +35 -0
  461. package/dist/ui/overlay/impl/iteration-limit-overlay-v2.js +105 -0
  462. package/dist/ui/overlay/impl/keys-overlay-v2.d.ts +41 -0
  463. package/dist/ui/overlay/impl/keys-overlay-v2.js +248 -0
  464. package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
  465. package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
  466. package/dist/ui/overlay/impl/mascot-overlay-v2.d.ts +41 -0
  467. package/dist/ui/overlay/impl/mascot-overlay-v2.js +138 -0
  468. package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
  469. package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
  470. package/dist/ui/overlay/impl/model-overlay-v2.d.ts +93 -0
  471. package/dist/ui/overlay/impl/model-overlay-v2.js +1143 -0
  472. package/dist/ui/overlay/impl/model-warning-overlay-v2.d.ts +46 -0
  473. package/dist/ui/overlay/impl/model-warning-overlay-v2.js +132 -0
  474. package/dist/ui/overlay/impl/new-overlay-v2.d.ts +108 -0
  475. package/dist/ui/overlay/impl/new-overlay-v2.js +1243 -0
  476. package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
  477. package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
  478. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
  479. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
  480. package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
  481. package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
  482. package/dist/ui/overlay/impl/permission-overlay-v2.d.ts +36 -0
  483. package/dist/ui/overlay/impl/permission-overlay-v2.js +380 -0
  484. package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
  485. package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
  486. package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
  487. package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
  488. package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
  489. package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
  490. package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +37 -0
  491. package/dist/ui/overlay/impl/projects-overlay-v2.js +733 -0
  492. package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
  493. package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
  494. package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
  495. package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
  496. package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
  497. package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
  498. package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
  499. package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
  500. package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
  501. package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
  502. package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
  503. package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
  504. package/dist/ui/overlay/impl/theme-overlay-v2.d.ts +42 -0
  505. package/dist/ui/overlay/impl/theme-overlay-v2.js +135 -0
  506. package/dist/ui/overlay/impl/tools-overlay-v2.d.ts +47 -0
  507. package/dist/ui/overlay/impl/tools-overlay-v2.js +214 -0
  508. package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +45 -0
  509. package/dist/ui/overlay/impl/tutorial-overlay-v2.js +212 -0
  510. package/dist/ui/overlay/impl/workflow-overlay-v2.d.ts +80 -0
  511. package/dist/ui/overlay/impl/workflow-overlay-v2.js +641 -0
  512. package/dist/ui/overlay/index.d.ts +52 -0
  513. package/dist/ui/overlay/index.js +54 -0
  514. package/dist/ui/overlay/key-utils.d.ts +6 -0
  515. package/dist/ui/overlay/key-utils.js +6 -0
  516. package/dist/ui/overlay/types.d.ts +140 -0
  517. package/dist/ui/overlay/types.js +22 -0
  518. package/dist/ui/overlay-manager.d.ts +43 -0
  519. package/dist/ui/overlay-manager.js +238 -0
  520. package/dist/ui/overlays.d.ts +0 -4
  521. package/dist/ui/overlays.js +4 -460
  522. package/dist/ui/permission-overlay.d.ts +1 -1
  523. package/dist/ui/permission-overlay.js +189 -300
  524. package/dist/ui/providers/types.d.ts +178 -0
  525. package/dist/ui/providers/types.js +9 -0
  526. package/dist/ui/render-modes.d.ts +36 -0
  527. package/dist/ui/render-modes.js +44 -0
  528. package/dist/ui/startup-menu.d.ts +36 -0
  529. package/dist/ui/startup-menu.js +236 -0
  530. package/dist/ui/status-bar-controller.d.ts +33 -0
  531. package/dist/ui/status-bar-controller.js +99 -0
  532. package/dist/ui/subagent-renderer.d.ts +117 -0
  533. package/dist/ui/subagent-renderer.js +318 -0
  534. package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
  535. package/dist/ui/terminal-autocomplete-utils.js +83 -0
  536. package/dist/ui/terminal-codes.d.ts +94 -0
  537. package/dist/ui/terminal-codes.js +124 -0
  538. package/dist/ui/terminal-line-builders.d.ts +17 -0
  539. package/dist/ui/terminal-line-builders.js +42 -0
  540. package/dist/ui/terminal-render-item.d.ts +16 -0
  541. package/dist/ui/terminal-render-item.js +267 -0
  542. package/dist/ui/terminal-renderer.d.ts +220 -0
  543. package/dist/ui/terminal-renderer.js +750 -0
  544. package/dist/ui/terminal-types.d.ts +179 -0
  545. package/dist/ui/terminal-types.js +34 -0
  546. package/dist/ui/terminal-ui.d.ts +331 -0
  547. package/dist/ui/terminal-ui.js +819 -0
  548. package/dist/ui/terminal.d.ts +20 -0
  549. package/dist/ui/terminal.js +72 -0
  550. package/dist/ui/todo-zone.d.ts +19 -1
  551. package/dist/ui/todo-zone.js +124 -38
  552. package/dist/ui/tool-formatters.d.ts +16 -0
  553. package/dist/ui/tool-formatters.js +1027 -0
  554. package/dist/ui/turn-metrics.d.ts +56 -0
  555. package/dist/ui/turn-metrics.js +75 -0
  556. package/dist/ui/types.d.ts +28 -0
  557. package/dist/ui/types.js +1 -0
  558. package/dist/ui/vscode-diff-ipc.d.ts +102 -0
  559. package/dist/ui/vscode-diff-ipc.js +385 -0
  560. package/dist/utils/credentials.d.ts +24 -5
  561. package/dist/utils/credentials.js +123 -9
  562. package/dist/utils/debug-log.d.ts +28 -0
  563. package/dist/utils/debug-log.js +57 -0
  564. package/dist/utils/format-tokens.d.ts +13 -0
  565. package/dist/utils/format-tokens.js +18 -0
  566. package/dist/utils/git-config.d.ts +26 -0
  567. package/dist/utils/git-config.js +54 -0
  568. package/dist/utils/message-utils.d.ts +61 -0
  569. package/dist/utils/message-utils.js +72 -0
  570. package/dist/utils/model-tiers.d.ts +8 -1
  571. package/dist/utils/model-tiers.js +39 -17
  572. package/dist/utils/open-browser.d.ts +5 -0
  573. package/dist/utils/open-browser.js +32 -0
  574. package/dist/utils/path-safety.d.ts +56 -0
  575. package/dist/utils/path-safety.js +240 -0
  576. package/dist/utils/project-detection.d.ts +58 -0
  577. package/dist/utils/project-detection.js +424 -0
  578. package/dist/utils/project-memory.js +2 -1
  579. package/dist/utils/project-status.d.ts +2 -2
  580. package/dist/utils/startup-perf.d.ts +18 -0
  581. package/dist/utils/startup-perf.js +60 -0
  582. package/dist/utils/token-tracker.d.ts +62 -0
  583. package/dist/utils/token-tracker.js +150 -0
  584. package/dist/utils/token-types.d.ts +23 -0
  585. package/dist/utils/token-types.js +18 -0
  586. package/dist/utils/types/config-types.d.ts +32 -0
  587. package/dist/utils/types/config-types.js +8 -0
  588. package/dist/utils/update-checker.d.ts +28 -0
  589. package/dist/utils/update-checker.js +106 -0
  590. package/dist/utils/version.d.ts +7 -0
  591. package/dist/utils/version.js +10 -0
  592. package/dist/utils/vscode-detect.d.ts +39 -0
  593. package/dist/utils/vscode-detect.js +137 -0
  594. package/dist/workflow/guided-mode-injector.d.ts +42 -0
  595. package/dist/workflow/guided-mode-injector.js +191 -0
  596. package/dist/workflow/index.d.ts +8 -0
  597. package/dist/workflow/index.js +8 -0
  598. package/dist/workflow/step-criteria.d.ts +62 -0
  599. package/dist/workflow/step-criteria.js +150 -0
  600. package/dist/workflow/step-tracker.d.ts +92 -0
  601. package/dist/workflow/step-tracker.js +141 -0
  602. package/package.json +32 -12
  603. package/dist/index.old.d.ts +0 -7
  604. package/dist/index.old.js +0 -1014
  605. package/dist/repl.d.ts +0 -121
  606. package/dist/repl.js +0 -1878
  607. package/dist/templates/claude-md.d.ts +0 -7
  608. package/dist/templates/claude-md.js +0 -189
  609. package/dist/test-autocomplete.d.ts +0 -7
  610. package/dist/test-autocomplete.js +0 -85
  611. package/dist/test-tabbed-menu.d.ts +0 -7
  612. package/dist/test-tabbed-menu.js +0 -25
  613. package/dist/tool-selector.d.ts +0 -71
  614. package/dist/tool-selector.js +0 -184
  615. package/dist/ui/agents-overlay.d.ts +0 -12
  616. package/dist/ui/agents-overlay.js +0 -501
  617. package/dist/ui/arch-type-overlay.d.ts +0 -20
  618. package/dist/ui/arch-type-overlay.js +0 -229
  619. package/dist/ui/backlog-overlay.d.ts +0 -17
  620. package/dist/ui/backlog-overlay.js +0 -786
  621. package/dist/ui/commands-overlay.d.ts +0 -11
  622. package/dist/ui/commands-overlay.js +0 -410
  623. package/dist/ui/config-overlay.d.ts +0 -34
  624. package/dist/ui/config-overlay.js +0 -977
  625. package/dist/ui/init-overlay.d.ts +0 -24
  626. package/dist/ui/init-overlay.js +0 -525
  627. package/dist/ui/input-prompt-v2.d.ts +0 -179
  628. package/dist/ui/input-prompt-v2.js +0 -991
  629. package/dist/ui/model-warning-overlay.d.ts +0 -30
  630. package/dist/ui/model-warning-overlay.js +0 -171
  631. package/dist/ui/tools-overlay.d.ts +0 -26
  632. package/dist/ui/tools-overlay.js +0 -278
  633. package/dist/ui/tutorial-overlay.d.ts +0 -10
  634. package/dist/ui/tutorial-overlay.js +0 -936
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Mascot Renderer
3
+ *
4
+ * Handles rendering the mascot alongside the logo and applying colors.
5
+ */
6
+ import { getStyles } from '../../themes/index.js';
7
+ import { getExpressionForSetting } from './expressions.js';
8
+ import { getTerminalWidth } from '../terminal.js';
9
+ function stripAnsi(str) {
10
+ // eslint-disable-next-line no-control-regex
11
+ return str.replace(/\x1B\[[0-9;]*[a-zA-Z]/g, '');
12
+ }
13
+ // The compilr logo (6 lines to match mascot height)
14
+ const LOGO_LINES = [
15
+ " ___ ___ _ __ ___ _ __ (_) |_ __",
16
+ " / __|/ _ \\| '_ ` _ \\| '_ \\| | | '__|",
17
+ " | (__| (_) | | | | | | |_) | | | |",
18
+ " \\___|\\___/|_| |_| |_| .__/|_|_|_|",
19
+ " | | .dev",
20
+ " |_|",
21
+ ];
22
+ /**
23
+ * Combine two sets of lines horizontally with a gap
24
+ */
25
+ export function combineHorizontally(left, right, gap) {
26
+ const maxLines = Math.max(left.length, right.length);
27
+ const leftWidth = Math.max(...left.map((l) => l.length));
28
+ const result = [];
29
+ for (let i = 0; i < maxLines; i++) {
30
+ const leftLine = (left[i] || '').padEnd(leftWidth);
31
+ const rightLine = right[i] || '';
32
+ result.push(leftLine + ' '.repeat(gap) + rightLine);
33
+ }
34
+ return result;
35
+ }
36
+ /**
37
+ * Render mascot with logo side by side
38
+ * Returns the combined lines ready for output
39
+ *
40
+ * @param mascotSetting - The mascot setting (expression or 'none'/'random')
41
+ * @param version - Version string to append to logo
42
+ * @param projectName - Optional active project name to show
43
+ */
44
+ export function renderMascotWithLogo(mascotSetting, version, projectName, highlights) {
45
+ const s = getStyles();
46
+ // Get mascot expression (or null for 'none')
47
+ const mascotLines = getExpressionForSetting(mascotSetting);
48
+ // Create logo lines with version
49
+ const logoWithVersion = [...LOGO_LINES];
50
+ logoWithVersion[5] = ` |_| v${version}`;
51
+ // Add tagline and project info below logo
52
+ const tagline = '@compilr-dev/cli - AI-powered coding assistant';
53
+ let result;
54
+ if (mascotLines) {
55
+ // Combine mascot + logo horizontally (5 space gap)
56
+ result = combineHorizontally(mascotLines, logoWithVersion, 5);
57
+ // Add empty line and tagline
58
+ result.push('');
59
+ result.push(tagline);
60
+ }
61
+ else {
62
+ // No mascot - just show logo
63
+ result = [...logoWithVersion];
64
+ result.push('');
65
+ result.push(tagline);
66
+ }
67
+ // Add project info if available
68
+ if (projectName) {
69
+ result.push('');
70
+ result.push(`Project: ${projectName}`);
71
+ }
72
+ // Apply colors: mascot gets secondary color, logo gets accent
73
+ const colored = result.map((line, index) => {
74
+ if (!mascotLines) {
75
+ // No mascot - color the logo with accent
76
+ if (index < logoWithVersion.length) {
77
+ return s.primary(line);
78
+ }
79
+ // Tagline and project info get muted color
80
+ if (line.startsWith('Project:')) {
81
+ return s.muted(line);
82
+ }
83
+ return s.muted(line);
84
+ }
85
+ // With mascot - split the line at the gap point
86
+ const mascotWidth = Math.max(...mascotLines.map((l) => l.length));
87
+ const gap = 5;
88
+ if (index < mascotLines.length) {
89
+ // Lines that have mascot + logo
90
+ const mascotPart = line.slice(0, mascotWidth);
91
+ const logoPart = line.slice(mascotWidth + gap);
92
+ return s.secondary(mascotPart) + ' '.repeat(gap) + s.primary(logoPart);
93
+ }
94
+ else if (line.startsWith('Project:')) {
95
+ return s.muted(line);
96
+ }
97
+ else if (line === tagline) {
98
+ return s.muted(line);
99
+ }
100
+ return line;
101
+ });
102
+ // Append "What's New" highlights column (wide terminals only)
103
+ if (highlights && highlights.length > 0) {
104
+ const termWidth = getTerminalWidth();
105
+ const baseWidth = Math.max(...colored.map((l) => stripAnsi(l).length));
106
+ const highlightsGap = 3;
107
+ const minHighlightsCol = 25;
108
+ if (termWidth >= baseWidth + highlightsGap + minHighlightsCol) {
109
+ // Build styled highlights column (6 lines to match mascot height)
110
+ const hlLines = [];
111
+ hlLines.push(s.primaryBold("[^_^] What's New"));
112
+ hlLines.push(s.muted('───────────────────'));
113
+ for (const h of highlights.slice(0, 3)) {
114
+ hlLines.push(`${s.secondary('+')} ${h}`);
115
+ }
116
+ hlLines.push(s.muted('/changelog for more'));
117
+ while (hlLines.length < 6) {
118
+ hlLines.push('');
119
+ }
120
+ // Append highlights to the first 6 lines of the colored result
121
+ return colored.map((line, i) => {
122
+ if (i < hlLines.length && hlLines[i]) {
123
+ const visualLen = stripAnsi(line).length;
124
+ const pad = Math.max(1, baseWidth - visualLen + highlightsGap);
125
+ return line + ' '.repeat(pad) + hlLines[i];
126
+ }
127
+ return line;
128
+ });
129
+ }
130
+ }
131
+ return colored;
132
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Tutorial Content
3
+ *
4
+ * Re-exports the tutorial registry for use by tutorial-overlay-v2.
5
+ * This file maintains backward compatibility while the actual content
6
+ * is now organized in separate files under ./tutorials/.
7
+ */
8
+ export type { TutorialPage, TutorialItem, TutorialTab } from './tutorial-types.js';
9
+ export { buildTutorialRegistry as buildTutorialContent } from './tutorial-registry.js';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Tutorial Content
3
+ *
4
+ * Re-exports the tutorial registry for use by tutorial-overlay-v2.
5
+ * This file maintains backward compatibility while the actual content
6
+ * is now organized in separate files under ./tutorials/.
7
+ */
8
+ // Re-export the builder from the registry
9
+ export { buildTutorialRegistry as buildTutorialContent } from './tutorial-registry.js';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Tutorial Registry
3
+ *
4
+ * Combines all individual tutorials into the tab structure.
5
+ * Add new tutorials here as they are created.
6
+ */
7
+ import type { ThemeStyleFunctions } from '../../../themes/index.js';
8
+ import type { TutorialTab } from './tutorial-types.js';
9
+ /**
10
+ * Build all tutorial content organized into tabs.
11
+ */
12
+ export declare function buildTutorialRegistry(s: ThemeStyleFunctions): TutorialTab[];
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Tutorial Registry
3
+ *
4
+ * Combines all individual tutorials into the tab structure.
5
+ * Add new tutorials here as they are created.
6
+ */
7
+ // Import individual tutorials
8
+ import { welcomeTutorial } from './tutorials/basics/welcome.js';
9
+ import { firstProjectTutorial } from './tutorials/basics/first-project.js';
10
+ import { firstConversationTutorial } from './tutorials/basics/first-conversation.js';
11
+ import { navigationTutorial } from './tutorials/basics/navigation.js';
12
+ import { newProjectTutorial } from './tutorials/projects/new-project.js';
13
+ import { managingProjectsTutorial } from './tutorials/projects/managing-projects.js';
14
+ import { sessionManagementTutorial } from './tutorials/projects/session-management.js';
15
+ import { anchorsTutorial } from './tutorials/projects/anchors.js';
16
+ import { importProjectTutorial } from './tutorials/projects/import-project.js';
17
+ import { designTutorial } from './tutorials/planning/design.js';
18
+ import { backlogTutorial } from './tutorials/planning/backlog.js';
19
+ import { sketchTutorial } from './tutorials/planning/sketch.js';
20
+ import { scaffoldTutorial } from './tutorials/planning/scaffold.js';
21
+ import { buildTutorial } from './tutorials/planning/build.js';
22
+ import { prdTutorial } from './tutorials/planning/prd.js';
23
+ import { archTutorial } from './tutorials/planning/arch.js';
24
+ import { docsTutorial } from './tutorials/planning/docs.js';
25
+ import { teamOverviewTutorial } from './tutorials/teams/team-overview.js';
26
+ import { workingWithAgentsTutorial } from './tutorials/teams/working-with-agents.js';
27
+ import { backgroundExecutionTutorial } from './tutorials/teams/background-execution.js';
28
+ import { taskAssignmentTutorial } from './tutorials/teams/task-assignment.js';
29
+ import { multiTerminalTutorial } from './tutorials/teams/multi-terminal.js';
30
+ import { modelSelectionTutorial } from './tutorials/config/model-selection.js';
31
+ import { settingsConfigTutorial } from './tutorials/config/settings-config.js';
32
+ import { contextManagementTutorial } from './tutorials/config/context-management.js';
33
+ import { permissionsSafetyTutorial } from './tutorials/config/permissions-safety.js';
34
+ import { mcpServersTutorial } from './tutorials/config/mcp-servers.js';
35
+ // =============================================================================
36
+ // Registry Builder
37
+ // =============================================================================
38
+ /**
39
+ * Build all tutorial content organized into tabs.
40
+ */
41
+ export function buildTutorialRegistry(s) {
42
+ return [
43
+ // =========================================================================
44
+ // Tab 1: Basics
45
+ // =========================================================================
46
+ {
47
+ id: 'basics',
48
+ label: 'Basics',
49
+ items: [
50
+ welcomeTutorial(s),
51
+ firstProjectTutorial(s),
52
+ firstConversationTutorial(s),
53
+ navigationTutorial(s),
54
+ ],
55
+ },
56
+ // =========================================================================
57
+ // Tab 2: Projects
58
+ // =========================================================================
59
+ {
60
+ id: 'projects',
61
+ label: 'Projects',
62
+ items: [
63
+ newProjectTutorial(s),
64
+ importProjectTutorial(s),
65
+ managingProjectsTutorial(s),
66
+ sessionManagementTutorial(s),
67
+ anchorsTutorial(s),
68
+ ],
69
+ },
70
+ // =========================================================================
71
+ // Tab 3: Plan & Build
72
+ // =========================================================================
73
+ {
74
+ id: 'plan-build',
75
+ label: 'Plan & Build',
76
+ items: [
77
+ designTutorial(s),
78
+ sketchTutorial(s),
79
+ backlogTutorial(s),
80
+ prdTutorial(s),
81
+ archTutorial(s),
82
+ docsTutorial(s),
83
+ scaffoldTutorial(s),
84
+ buildTutorial(s),
85
+ ],
86
+ },
87
+ // =========================================================================
88
+ // Tab 4: Teams
89
+ // =========================================================================
90
+ {
91
+ id: 'teams',
92
+ label: 'Teams',
93
+ items: [
94
+ teamOverviewTutorial(s),
95
+ workingWithAgentsTutorial(s),
96
+ backgroundExecutionTutorial(s),
97
+ taskAssignmentTutorial(s),
98
+ multiTerminalTutorial(s),
99
+ ],
100
+ },
101
+ // =========================================================================
102
+ // Tab 5: Config
103
+ // =========================================================================
104
+ {
105
+ id: 'config',
106
+ label: 'Config',
107
+ items: [
108
+ modelSelectionTutorial(s),
109
+ settingsConfigTutorial(s),
110
+ contextManagementTutorial(s),
111
+ permissionsSafetyTutorial(s),
112
+ mcpServersTutorial(s),
113
+ ],
114
+ },
115
+ ];
116
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Tutorial Types
3
+ *
4
+ * Shared types for the tutorial system.
5
+ */
6
+ import type { ThemeStyleFunctions } from '../../../themes/index.js';
7
+ /**
8
+ * A single page within a tutorial.
9
+ * Each tutorial can have multiple pages that the user navigates through.
10
+ */
11
+ export interface TutorialPage {
12
+ title: string;
13
+ lines: string[];
14
+ }
15
+ /**
16
+ * A tutorial item representing a complete tutorial topic.
17
+ */
18
+ export interface TutorialItem {
19
+ id: string;
20
+ title: string;
21
+ description: string;
22
+ pages: TutorialPage[];
23
+ }
24
+ /**
25
+ * A tab grouping related tutorials together.
26
+ */
27
+ export interface TutorialTab {
28
+ id: string;
29
+ label: string;
30
+ items: TutorialItem[];
31
+ }
32
+ /**
33
+ * Function signature for building a tutorial with theme styles.
34
+ */
35
+ export type TutorialBuilder = (s: ThemeStyleFunctions) => TutorialItem;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Tutorial Types
3
+ *
4
+ * Shared types for the tutorial system.
5
+ */
6
+ export {};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Your First Conversation Tutorial
3
+ *
4
+ * How to interact with the AI in REPL mode.
5
+ */
6
+ import type { TutorialBuilder } from '../../tutorial-types.js';
7
+ export declare const firstConversationTutorial: TutorialBuilder;
@@ -0,0 +1,220 @@
1
+ /**
2
+ * Your First Conversation Tutorial
3
+ *
4
+ * How to interact with the AI in REPL mode.
5
+ */
6
+ export const firstConversationTutorial = (s) => ({
7
+ id: 'first-conversation',
8
+ title: 'Your First Conversation',
9
+ description: 'How to chat with the AI assistant',
10
+ pages: [
11
+ // Page 1: Starting from Dashboard
12
+ {
13
+ title: 'Starting from Dashboard',
14
+ lines: [
15
+ '',
16
+ ` After creating a project, you'll see the Dashboard:`,
17
+ '',
18
+ ` ${s.muted('─'.repeat(50))}`,
19
+ ` ${s.muted('Dashboard')} │ ${s.muted('More')}`,
20
+ ` ${s.muted('─'.repeat(50))}`,
21
+ '',
22
+ ` ${s.secondary('CURRENT PROJECT')}`,
23
+ ` ${s.primaryBold('★ My First Project')}`,
24
+ ` ${s.muted('/workspace/projects/my-first-project │ active │ flexible')}`,
25
+ '',
26
+ ` ${s.secondary('ACTIONS')}`,
27
+ ` ${s.primary('❯')} Continue with My First Project ${s.muted('Resume working on current project')}`,
28
+ '',
29
+ ` ${s.muted('↑↓/jk Navigate Enter Select q Quit')}`,
30
+ '',
31
+ ` Press ${s.primary('Enter')} to continue with your project.`,
32
+ '',
33
+ ],
34
+ },
35
+ // Page 2: The REPL
36
+ {
37
+ title: 'The REPL',
38
+ lines: [
39
+ '',
40
+ ` After pressing Enter, you'll see the REPL (Read-Eval-Print Loop):`,
41
+ '',
42
+ ` ${s.muted('✓ Agent connected')}`,
43
+ '',
44
+ ` ${s.muted('Model: gemini-2.5-flash')}`,
45
+ ` ${s.muted('Provider: gemini')}`,
46
+ ` ${s.muted('[^_^] Switched to project: My First Project')}`,
47
+ '',
48
+ ` ${s.muted('─'.repeat(40))}`,
49
+ ` ${s.primary('compilr>')} ${s.muted('█')}`,
50
+ ` ${s.muted('─'.repeat(40))}`,
51
+ ` ${s.muted('mode: Normal Project: My First Project')}`,
52
+ '',
53
+ ` Type your message and press ${s.primary('Enter')} to chat with the AI.`,
54
+ '',
55
+ ],
56
+ },
57
+ // Page 3: File References
58
+ {
59
+ title: 'File References with @',
60
+ lines: [
61
+ '',
62
+ ` Reference files by typing ${s.primary('@')} followed by a path:`,
63
+ '',
64
+ ` ${s.primary('compilr>')} Fix the bug in ${s.secondary('@src/utils.ts')}`,
65
+ '',
66
+ ` ${s.secondary('Autocomplete:')} Press ${s.primary('Tab')} after ${s.primary('@')} to see matches.`,
67
+ '',
68
+ ` ${s.primary('compilr>')} Explain ${s.secondary('@src/')}`,
69
+ ` ${s.muted('src/index.ts')}`,
70
+ ` ${s.muted('src/utils.ts')}`,
71
+ ` ${s.muted('src/config.ts')}`,
72
+ '',
73
+ ` ${s.secondary('Multiple files:')}`,
74
+ '',
75
+ ` ${s.primary('compilr>')} Compare ${s.secondary('@src/old.ts')} with ${s.secondary('@src/new.ts')}`,
76
+ '',
77
+ ` The AI will read the files and understand the context.`,
78
+ '',
79
+ ],
80
+ },
81
+ // Page 4: Slash Commands
82
+ {
83
+ title: 'Slash Commands',
84
+ lines: [
85
+ '',
86
+ ` Commands start with ${s.primary('/')}:`,
87
+ '',
88
+ ` ${s.primary('/help')} Show available commands`,
89
+ ` ${s.primary('/clear')} Clear the screen`,
90
+ ` ${s.primary('/exit')} Exit the CLI`,
91
+ ` ${s.primary('/design')} Start requirements gathering`,
92
+ ` ${s.primary('/backlog')} View your work items`,
93
+ '',
94
+ ` ${s.secondary('Autocomplete:')} Type ${s.primary('/')} and press ${s.primary('Tab')}`,
95
+ '',
96
+ ` ${s.primary('compilr>')} /he`,
97
+ ` ${s.muted('/help')}`,
98
+ ` ${s.muted('/health')}`,
99
+ '',
100
+ ` ${s.warning('TIP:')} Run ${s.primary('/help')} to see all commands,`,
101
+ ` or ${s.primary('/tutorial')} to browse these guides!`,
102
+ '',
103
+ ],
104
+ },
105
+ // Page 5: What the AI Can Do
106
+ {
107
+ title: 'What the AI Can Do',
108
+ lines: [
109
+ '',
110
+ ` The AI can help with:`,
111
+ '',
112
+ ` ${s.success('✓')} ${s.primary('Read files')} - Understand your code`,
113
+ ` ${s.success('✓')} ${s.primary('Write files')} - Create or modify code`,
114
+ ` ${s.success('✓')} ${s.primary('Run commands')} - Execute shell commands`,
115
+ ` ${s.success('✓')} ${s.primary('Search code')} - Find patterns in your codebase`,
116
+ ` ${s.success('✓')} ${s.primary('Git operations')} - Commit, diff, status`,
117
+ ` ${s.success('✓')} ${s.primary('Answer questions')} - Explain code, debug issues`,
118
+ '',
119
+ ` ${s.secondary('Example requests:')}`,
120
+ '',
121
+ ` ${s.muted('"Create a login component"')}`,
122
+ ` ${s.muted('"Why is this test failing?"')}`,
123
+ ` ${s.muted('"Refactor this function to use async/await"')}`,
124
+ '',
125
+ ],
126
+ },
127
+ // Page 6: Permission Prompts
128
+ {
129
+ title: 'Permission Prompts',
130
+ lines: [
131
+ '',
132
+ ` The AI asks permission before making changes:`,
133
+ '',
134
+ ` ┌─ Permission Required ───────────────────────┐`,
135
+ ` │ │`,
136
+ ` │ The agent wants to create a file: │`,
137
+ ` │ ${s.primary('src/components/Login.tsx')} │`,
138
+ ` │ │`,
139
+ ` │ ${s.success('[Allow]')} ${s.muted('[Allow Always]')} ${s.error('[Deny]')} │`,
140
+ ` │ │`,
141
+ ` └─────────────────────────────────────────────┘`,
142
+ '',
143
+ ` ${s.success('Allow')} - Approve this specific action`,
144
+ ` ${s.muted('Allow Always')} - Auto-approve this tool for the session`,
145
+ ` ${s.error('Deny')} - Reject this action`,
146
+ '',
147
+ ` ${s.muted('You\'re always in control of what changes are made.')}`,
148
+ '',
149
+ ],
150
+ },
151
+ // Page 7: Stopping and Canceling
152
+ {
153
+ title: 'Stopping and Canceling',
154
+ lines: [
155
+ '',
156
+ ` ${s.secondary('While the AI is working:')}`,
157
+ '',
158
+ ` ${s.primary('Esc')} Stop the current operation`,
159
+ ` ${s.muted('The AI will finish its current thought')}`,
160
+ '',
161
+ ` ${s.primary('Ctrl+C')} Force stop immediately`,
162
+ ` ${s.muted('Use when Esc doesn\'t respond')}`,
163
+ '',
164
+ ` ${s.secondary('While typing:')}`,
165
+ '',
166
+ ` ${s.primary('Ctrl+C')} Clear current input`,
167
+ ` ${s.primary('Ctrl+C')} ${s.muted('twice')} Exit the CLI`,
168
+ '',
169
+ ` ${s.warning('TIP:')} If the AI is taking too long, just press Esc.`,
170
+ ` You can continue the conversation afterward.`,
171
+ '',
172
+ ],
173
+ },
174
+ // Page 8: Context and Memory
175
+ {
176
+ title: 'Context and Memory',
177
+ lines: [
178
+ '',
179
+ ` The AI remembers your conversation within a session.`,
180
+ '',
181
+ ` ${s.secondary('What the AI knows:')}`,
182
+ ` ${s.muted('•')} Your project info (from COMPILR.md)`,
183
+ ` ${s.muted('•')} Files you've referenced`,
184
+ ` ${s.muted('•')} Previous messages in this session`,
185
+ ` ${s.muted('•')} Anchors (persistent notes)`,
186
+ '',
187
+ ` ${s.secondary('Context commands:')}`,
188
+ ` ${s.primary('/context')} See current context usage`,
189
+ ` ${s.primary('/compact')} Summarize old messages (free up space)`,
190
+ ` ${s.primary('/anchors')} View/add persistent notes`,
191
+ '',
192
+ ` ${s.muted('Sessions auto-save. Use')} ${s.primary('/resume')} ${s.muted('to continue later.')}`,
193
+ '',
194
+ ],
195
+ },
196
+ // Page 9: Next Steps
197
+ {
198
+ title: 'Next Steps',
199
+ lines: [
200
+ '',
201
+ ` ${s.secondary('You\'re ready to start building!')}`,
202
+ '',
203
+ ` ${s.primary('Recommended workflow:')}`,
204
+ '',
205
+ ` ${s.muted('1.')} Run ${s.primary('/design')} to plan your features`,
206
+ ` ${s.muted('The AI will help create a PRD and backlog')}`,
207
+ '',
208
+ ` ${s.muted('2.')} Run ${s.primary('/backlog')} to see your work items`,
209
+ ` ${s.muted('Pick one to start building')}`,
210
+ '',
211
+ ` ${s.muted('3.')} Ask the AI to implement features`,
212
+ ` ${s.muted('"Build the user authentication from REQ-001"')}`,
213
+ '',
214
+ ` ${s.warning('TIP:')} Browse the other tutorials to learn about`,
215
+ ` ${s.primary('/design')}, ${s.primary('/backlog')}, and team agents!`,
216
+ '',
217
+ ],
218
+ },
219
+ ],
220
+ });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Your First Project Tutorial
3
+ *
4
+ * Guides users through the dashboard and /new wizard.
5
+ */
6
+ import type { TutorialBuilder } from '../../tutorial-types.js';
7
+ export declare const firstProjectTutorial: TutorialBuilder;