@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,287 @@
1
+ /**
2
+ * Help Overlay V2
3
+ *
4
+ * Displays available commands in a searchable, categorized list.
5
+ * Uses TabbedListOverlayV2 for the new Overlay interface.
6
+ *
7
+ * Features:
8
+ * - Tabs: All, Built-in, Custom
9
+ * - Search with / toggle
10
+ * - Detail view for full command information
11
+ * - Works with TerminalUI's overlay management
12
+ */
13
+ import chalk from 'chalk';
14
+ import * as terminal from '../../terminal.js';
15
+ import { getCustomCommandRegistry } from '../../../commands/index.js';
16
+ import { TabbedListOverlayV2, BaseScreen, stay, popScreen, closeOverlay, isEscape, isCtrlC, isClose, renderBorder, wrapText, truncateAnsi, } from '../../base/index.js';
17
+ // =============================================================================
18
+ // Constants
19
+ // =============================================================================
20
+ const VERSION = 'compilr.dev/agent';
21
+ const PAGE_SIZE = 10;
22
+ const TABS = [
23
+ { id: 'all', label: 'All' },
24
+ { id: 'builtin', label: 'Built-in' },
25
+ { id: 'custom', label: 'Custom' },
26
+ ];
27
+ // =============================================================================
28
+ // Detail Screens
29
+ // =============================================================================
30
+ /**
31
+ * Built-in command detail screen
32
+ */
33
+ class CommandDetailScreen extends BaseScreen {
34
+ item;
35
+ styles;
36
+ getCommand;
37
+ constructor(item, styles, getCommand) {
38
+ super();
39
+ this.item = item;
40
+ this.styles = styles;
41
+ this.getCommand = getCommand;
42
+ }
43
+ render() {
44
+ const s = this.styles;
45
+ const cols = terminal.getTerminalWidth();
46
+ const maxLineWidth = cols - 2;
47
+ const border = renderBorder(cols, s);
48
+ const cmd = this.item.commandName
49
+ ? this.getCommand(this.item.commandName)
50
+ : null;
51
+ const lines = [];
52
+ lines.push(border);
53
+ lines.push(' ' + s.primaryBold('Command Reference'));
54
+ lines.push('');
55
+ if (!cmd) {
56
+ lines.push(s.error(' Command not found'));
57
+ lines.push(border);
58
+ lines.push(` ${s.muted('q/Esc Back')}`);
59
+ lines.push(border);
60
+ return lines;
61
+ }
62
+ // Command name
63
+ lines.push(chalk.bold(` /${cmd.name}`));
64
+ lines.push('');
65
+ // Description
66
+ lines.push(' ' + s.primary('DESCRIPTION'));
67
+ lines.push(truncateAnsi(' ' + cmd.description, maxLineWidth));
68
+ lines.push('');
69
+ // Details
70
+ if (cmd.details) {
71
+ lines.push(' ' + s.primary('ABOUT'));
72
+ const maxWidth = Math.min(cols - 6, 70);
73
+ const words = cmd.details.split(' ');
74
+ let currentLine = ' ';
75
+ for (const word of words) {
76
+ if (currentLine.length + word.length + 1 > maxWidth) {
77
+ lines.push(truncateAnsi(currentLine, maxLineWidth));
78
+ currentLine = ' ' + word;
79
+ }
80
+ else {
81
+ currentLine += (currentLine.length > 3 ? ' ' : '') + word;
82
+ }
83
+ }
84
+ if (currentLine.length > 3) {
85
+ lines.push(truncateAnsi(currentLine, maxLineWidth));
86
+ }
87
+ lines.push('');
88
+ }
89
+ // Aliases
90
+ if (cmd.aliases && cmd.aliases.length > 0) {
91
+ lines.push(' ' + s.primary('ALIASES'));
92
+ lines.push(truncateAnsi(' ' + cmd.aliases.map((a) => `/${a}`).join(', '), maxLineWidth));
93
+ lines.push('');
94
+ }
95
+ // Examples
96
+ if (cmd.examples && cmd.examples.length > 0) {
97
+ lines.push(' ' + s.primary('EXAMPLES'));
98
+ for (const example of cmd.examples) {
99
+ if (example.description) {
100
+ const paddedCode = example.code.padEnd(22);
101
+ const exLine = ` ${s.muted(paddedCode)}${s.muted('·')} ${example.description}`;
102
+ lines.push(truncateAnsi(exLine, maxLineWidth));
103
+ }
104
+ else {
105
+ lines.push(truncateAnsi(' ' + s.muted(example.code), maxLineWidth));
106
+ }
107
+ }
108
+ lines.push('');
109
+ }
110
+ // Interactions
111
+ if (cmd.interactions && cmd.interactions.length > 0) {
112
+ lines.push(' ' + s.primary('INTERACTIONS'));
113
+ for (const hint of cmd.interactions) {
114
+ lines.push(truncateAnsi(' ' + s.muted('• ' + hint), maxLineWidth));
115
+ }
116
+ lines.push('');
117
+ }
118
+ // Footer
119
+ lines.push(border);
120
+ lines.push(` ${s.muted('q/Esc Back')}`);
121
+ lines.push(border);
122
+ return lines;
123
+ }
124
+ handleKey(data) {
125
+ if (isCtrlC(data)) {
126
+ return closeOverlay(undefined);
127
+ }
128
+ if (isEscape(data) || isClose(data)) {
129
+ return popScreen();
130
+ }
131
+ return stay(false);
132
+ }
133
+ /**
134
+ * Minimum height for stable rendering.
135
+ * Covers: header(3) + name(2) + desc(3) + about(5) + aliases(3) + examples(6) + interactions(4) + footer(3) = 29
136
+ */
137
+ getMinHeight() {
138
+ return 25;
139
+ }
140
+ }
141
+ /**
142
+ * Custom command detail screen
143
+ */
144
+ class CustomCommandDetailScreen extends BaseScreen {
145
+ item;
146
+ styles;
147
+ constructor(item, styles) {
148
+ super();
149
+ this.item = item;
150
+ this.styles = styles;
151
+ }
152
+ render() {
153
+ const s = this.styles;
154
+ const cols = terminal.getTerminalWidth();
155
+ const border = renderBorder(cols, s);
156
+ const registry = getCustomCommandRegistry();
157
+ const lines = [];
158
+ lines.push(border);
159
+ lines.push(' ' + s.primaryBold('Custom Command Details'));
160
+ lines.push('');
161
+ // Command name
162
+ lines.push(chalk.bold(` /${this.item.name}`));
163
+ lines.push('');
164
+ // Location
165
+ lines.push(' ' + s.primary('LOCATION'));
166
+ const loc = this.item.location ?? 'personal';
167
+ lines.push(` ${loc === 'project' ? 'Project' : 'Personal'} (${loc})`);
168
+ lines.push('');
169
+ // File path
170
+ lines.push(' ' + s.primary('FILE'));
171
+ const basePath = loc === 'project'
172
+ ? registry.getProjectDir()
173
+ : registry.getUserDir();
174
+ lines.push(s.muted(` ${basePath}/${this.item.name}.md`));
175
+ lines.push('');
176
+ // Description
177
+ lines.push(' ' + s.primary('DESCRIPTION'));
178
+ lines.push(...wrapText(this.item.description, cols - 6, ' '));
179
+ lines.push('');
180
+ // Prompt
181
+ if (this.item.prompt) {
182
+ lines.push(' ' + s.primary('PROMPT TEMPLATE'));
183
+ lines.push(...wrapText(this.item.prompt, cols - 6, ' '));
184
+ lines.push('');
185
+ }
186
+ // Footer
187
+ lines.push(border);
188
+ lines.push(` ${s.muted('q/Esc Back')}`);
189
+ lines.push(border);
190
+ return lines;
191
+ }
192
+ handleKey(data) {
193
+ if (isCtrlC(data)) {
194
+ return closeOverlay(undefined);
195
+ }
196
+ if (isEscape(data) || isClose(data)) {
197
+ return popScreen();
198
+ }
199
+ return stay(false);
200
+ }
201
+ /**
202
+ * Minimum height for stable rendering.
203
+ * Covers: header(3) + name(2) + location(3) + file(3) + desc(5) + prompt(5) + footer(3) = 24
204
+ */
205
+ getMinHeight() {
206
+ return 22;
207
+ }
208
+ }
209
+ // =============================================================================
210
+ // Help Overlay V2 Class
211
+ // =============================================================================
212
+ /**
213
+ * Help overlay using the new Overlay interface.
214
+ * Displays available commands in a searchable, tabbed list.
215
+ */
216
+ export class HelpOverlayV2 extends TabbedListOverlayV2 {
217
+ type = 'inline';
218
+ id = 'help-overlay-v2';
219
+ getCommandDetail;
220
+ constructor(options) {
221
+ // Build unified items list
222
+ const items = [];
223
+ // Add built-in commands
224
+ const helpCommands = options.getHelpCommands();
225
+ for (const cmd of helpCommands) {
226
+ items.push({
227
+ name: cmd.name,
228
+ description: cmd.description,
229
+ type: 'builtin',
230
+ commandName: cmd.name.startsWith('/') ? cmd.name.slice(1) : cmd.name,
231
+ });
232
+ }
233
+ // Add custom commands
234
+ const registry = getCustomCommandRegistry();
235
+ const customCommands = registry.getAll();
236
+ for (const cmd of customCommands) {
237
+ items.push({
238
+ name: `/${cmd.name}`,
239
+ description: cmd.description,
240
+ type: 'custom',
241
+ prompt: cmd.prompt,
242
+ location: cmd.location,
243
+ });
244
+ }
245
+ super({
246
+ title: VERSION,
247
+ tabs: TABS,
248
+ items,
249
+ pageSize: PAGE_SIZE,
250
+ filterByTab: (item, tabId) => {
251
+ if (tabId === 'all')
252
+ return true;
253
+ if (tabId === 'builtin')
254
+ return item.type === 'builtin';
255
+ if (tabId === 'custom')
256
+ return item.type === 'custom';
257
+ return true;
258
+ },
259
+ getSearchText: (item) => `${item.name} ${item.description}`,
260
+ renderItem: (item, isSelected, styles) => {
261
+ const prefix = isSelected ? styles.primary(' > ') : ' ';
262
+ const name = isSelected
263
+ ? styles.primary(item.name.padEnd(20))
264
+ : styles.muted(item.name.padEnd(20));
265
+ const desc = styles.muted(item.description);
266
+ const badge = item.type === 'custom' ? styles.muted(' (custom)') : '';
267
+ return prefix + name + desc + badge;
268
+ },
269
+ footerHints: (searchMode) => {
270
+ if (searchMode) {
271
+ return 'Type to filter · ↑↓/jk Navigate · Enter Details · Esc Exit search';
272
+ }
273
+ return 'Tab Filter · ↑↓/jk · ←→/hl Pages · / Search · Enter Details · q/Esc Close';
274
+ },
275
+ emptyMessage: 'No commands available.',
276
+ noResultsMessage: 'No commands match the search.',
277
+ });
278
+ this.getCommandDetail = options.getCommand;
279
+ }
280
+ createDetailScreen(item) {
281
+ const styles = this.getStyles();
282
+ if (item.type === 'builtin') {
283
+ return new CommandDetailScreen(item, styles, this.getCommandDetail);
284
+ }
285
+ return new CustomCommandDetailScreen(item, styles);
286
+ }
287
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Init Setup Overlay V2 (Placeholder)
3
+ *
4
+ * Shows current CLI configuration status and directs users to /config.
5
+ * This is a placeholder - full setup wizard will be implemented in a future session.
6
+ *
7
+ * Displays:
8
+ * - API key status for each provider
9
+ * - Current settings summary
10
+ * - Instructions for configuration
11
+ */
12
+ import { BaseOverlayV2 } from '../../base/overlay-base-v2.js';
13
+ import type { OverlayAction, KeyEvent, RenderContext } from '../types.js';
14
+ type InitSetupState = Record<string, never>;
15
+ export interface InitSetupResultV2 {
16
+ dismissed: boolean;
17
+ }
18
+ export declare class InitSetupOverlayV2 extends BaseOverlayV2<InitSetupState, InitSetupResultV2> {
19
+ readonly type: "inline";
20
+ readonly id = "init-setup-overlay-v2";
21
+ constructor();
22
+ protected renderContent(_context: RenderContext): string[];
23
+ handleKey(_key: KeyEvent): OverlayAction<InitSetupResultV2>;
24
+ }
25
+ export {};
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Init Setup Overlay V2 (Placeholder)
3
+ *
4
+ * Shows current CLI configuration status and directs users to /config.
5
+ * This is a placeholder - full setup wizard will be implemented in a future session.
6
+ *
7
+ * Displays:
8
+ * - API key status for each provider
9
+ * - Current settings summary
10
+ * - Instructions for configuration
11
+ */
12
+ import { BaseOverlayV2 } from '../../base/overlay-base-v2.js';
13
+ import { renderBorder } from '../../base/index.js';
14
+ import { hasApiKey, getMaskedKey, isKeyFromEnv } from '../../../utils/credentials.js';
15
+ import { getSettings } from '../../../settings/index.js';
16
+ import * as terminal from '../../terminal.js';
17
+ // =============================================================================
18
+ // Init Setup Overlay V2
19
+ // =============================================================================
20
+ export class InitSetupOverlayV2 extends BaseOverlayV2 {
21
+ type = 'inline';
22
+ id = 'init-setup-overlay-v2';
23
+ constructor() {
24
+ super({});
25
+ this.minHeight = 24;
26
+ }
27
+ renderContent(_context) {
28
+ const s = this.getStyles();
29
+ const cols = terminal.getTerminalWidth();
30
+ const border = renderBorder(cols, s);
31
+ const lines = [];
32
+ const settings = getSettings();
33
+ // Header
34
+ lines.push(border);
35
+ lines.push(` ${s.primaryBold('CLI SETUP STATUS')}`);
36
+ lines.push(border);
37
+ lines.push('');
38
+ // API Keys Section
39
+ lines.push(` ${s.secondary('API Keys')}`);
40
+ lines.push('');
41
+ const providers = [
42
+ { key: 'anthropic', name: 'Anthropic (Claude)', envVar: 'ANTHROPIC_API_KEY' },
43
+ { key: 'openai', name: 'OpenAI', envVar: 'OPENAI_API_KEY' },
44
+ { key: 'google', name: 'Google AI (Gemini)', envVar: 'GOOGLE_API_KEY' },
45
+ ];
46
+ for (const provider of providers) {
47
+ const has = hasApiKey(provider.key);
48
+ const fromEnv = isKeyFromEnv(provider.key);
49
+ const masked = getMaskedKey(provider.key);
50
+ let status;
51
+ if (has) {
52
+ if (fromEnv) {
53
+ status = s.success(`✓ From env (${provider.envVar})`);
54
+ }
55
+ else {
56
+ status = s.success(`✓ Configured (${masked ?? '***'})`);
57
+ }
58
+ }
59
+ else {
60
+ status = s.muted('○ Not configured');
61
+ }
62
+ lines.push(` ${provider.name.padEnd(22)} ${status}`);
63
+ }
64
+ // Ollama (always available)
65
+ lines.push(` ${'Ollama (Local)'.padEnd(22)} ${s.muted('○ No key needed')}`);
66
+ lines.push('');
67
+ // Current Settings Summary
68
+ lines.push(` ${s.secondary('Current Settings')}`);
69
+ lines.push('');
70
+ lines.push(` Default provider: ${s.primary(settings.defaultProvider)}`);
71
+ lines.push(` Default model: ${s.primary(settings.defaultModel ?? 'auto')}`);
72
+ lines.push(` Startup mode: ${s.primary(settings.startupMode)}`);
73
+ lines.push(` Project auto-open: ${s.primary(settings.projectStartup)}`);
74
+ lines.push('');
75
+ // Instructions
76
+ lines.push(border);
77
+ lines.push('');
78
+ lines.push(` ${s.secondary('To configure the CLI:')}`);
79
+ lines.push('');
80
+ lines.push(` ${s.primary('/config')} Open settings overlay`);
81
+ lines.push(` ${s.primary('/keys')} Manage API keys`);
82
+ lines.push(` ${s.primary('/theme')} Change color theme`);
83
+ lines.push(` ${s.primary('/model')} Select AI model`);
84
+ lines.push('');
85
+ lines.push(s.muted(' Settings are stored in ~/.compilr-dev/'));
86
+ lines.push('');
87
+ // Footer
88
+ lines.push(border);
89
+ lines.push(s.muted(' Press any key to close'));
90
+ lines.push(border);
91
+ return lines;
92
+ }
93
+ handleKey(_key) {
94
+ // Any key closes
95
+ return this.close({ dismissed: true });
96
+ }
97
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Iteration Limit Overlay V2
3
+ *
4
+ * Modal overlay shown when the agent reaches its iteration limit.
5
+ * Uses BaseOverlayV2 for TerminalUI integration.
6
+ */
7
+ import { BaseOverlayV2 } from '../../base/index.js';
8
+ import type { RenderContext, OverlayAction, KeyEvent } from '../types.js';
9
+ export type IterationLimitResultV2 = {
10
+ continue: true;
11
+ additionalIterations: number;
12
+ } | {
13
+ continue: false;
14
+ };
15
+ export interface IterationLimitOptionsV2 {
16
+ iteration: number;
17
+ maxIterations: number;
18
+ toolCallCount: number;
19
+ }
20
+ interface IterationLimitState {
21
+ selectedIndex: number;
22
+ }
23
+ export declare class IterationLimitOverlayV2 extends BaseOverlayV2<IterationLimitState, IterationLimitResultV2> {
24
+ readonly type: "inline";
25
+ readonly id = "iteration-limit-overlay-v2";
26
+ private readonly options;
27
+ constructor(options: IterationLimitOptionsV2);
28
+ protected renderContent(context: RenderContext): string[];
29
+ handleKey(key: KeyEvent): OverlayAction<IterationLimitResultV2>;
30
+ /**
31
+ * Summary shown after overlay closes.
32
+ */
33
+ getCloseSummary(result: IterationLimitResultV2): string | null;
34
+ }
35
+ export {};
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Iteration Limit Overlay V2
3
+ *
4
+ * Modal overlay shown when the agent reaches its iteration limit.
5
+ * Uses BaseOverlayV2 for TerminalUI integration.
6
+ */
7
+ import chalk from 'chalk';
8
+ import { BaseOverlayV2, renderBorder } from '../../base/index.js';
9
+ // =============================================================================
10
+ // Constants
11
+ // =============================================================================
12
+ const OPTIONS = [
13
+ { label: 'Yes, continue (+10 iterations)', key: '1', result: { continue: true, additionalIterations: 10 } },
14
+ { label: 'Yes, continue (+20 iterations)', key: '2', result: { continue: true, additionalIterations: 20 } },
15
+ { label: 'No, stop here', key: 'n', result: { continue: false } },
16
+ ];
17
+ // =============================================================================
18
+ // Overlay Implementation
19
+ // =============================================================================
20
+ export class IterationLimitOverlayV2 extends BaseOverlayV2 {
21
+ type = 'inline';
22
+ id = 'iteration-limit-overlay-v2';
23
+ options;
24
+ constructor(options) {
25
+ super({
26
+ selectedIndex: 0, // Default to "Yes, continue (+10)"
27
+ });
28
+ this.options = options;
29
+ this.minHeight = 14; // Prevent jitter
30
+ }
31
+ renderContent(context) {
32
+ const s = context.styles;
33
+ const lines = [];
34
+ const cols = context.width;
35
+ const border = renderBorder(cols, s);
36
+ // Header
37
+ lines.push(border);
38
+ lines.push(' ' + s.warning('!') + ' ' + chalk.bold('Iteration Limit Reached'));
39
+ lines.push('');
40
+ // Stats
41
+ lines.push(' Iterations: ' + s.primary(String(this.options.iteration)) + ' / ' + s.muted(String(this.options.maxIterations)));
42
+ lines.push(' Tool calls: ' + s.primary(String(this.options.toolCallCount)));
43
+ lines.push('');
44
+ lines.push(' ' + s.muted('The agent has reached its iteration limit.'));
45
+ lines.push(' ' + s.muted('Would you like to continue?'));
46
+ lines.push('');
47
+ // Options
48
+ for (let i = 0; i < OPTIONS.length; i++) {
49
+ const isCursor = this.state.selectedIndex === i;
50
+ const prefix = isCursor ? ' > ' : ' ';
51
+ const key = `[${OPTIONS[i].key}] `;
52
+ if (isCursor) {
53
+ lines.push(s.primary(prefix + key + OPTIONS[i].label));
54
+ }
55
+ else {
56
+ lines.push(s.muted(prefix + key + OPTIONS[i].label));
57
+ }
58
+ }
59
+ // Footer
60
+ lines.push('');
61
+ lines.push(s.muted(' Up/Down Navigate | Enter Select | 1/2/n Quick select'));
62
+ // Bottom border
63
+ lines.push(border);
64
+ return lines;
65
+ }
66
+ handleKey(key) {
67
+ // Ctrl+C or Escape = stop
68
+ if ((key.ctrl && key.name === 'c') || key.name === 'escape') {
69
+ return this.close({ continue: false });
70
+ }
71
+ // Quick keys
72
+ if (key.char === '1') {
73
+ return this.close({ continue: true, additionalIterations: 10 });
74
+ }
75
+ if (key.char === '2') {
76
+ return this.close({ continue: true, additionalIterations: 20 });
77
+ }
78
+ if (key.char?.toLowerCase() === 'n') {
79
+ return this.close({ continue: false });
80
+ }
81
+ // Arrow navigation
82
+ if (key.name === 'up') {
83
+ this.state.selectedIndex = Math.max(0, this.state.selectedIndex - 1);
84
+ return this.rerender();
85
+ }
86
+ if (key.name === 'down') {
87
+ this.state.selectedIndex = Math.min(OPTIONS.length - 1, this.state.selectedIndex + 1);
88
+ return this.rerender();
89
+ }
90
+ if (key.name === 'return') {
91
+ return this.close(OPTIONS[this.state.selectedIndex].result);
92
+ }
93
+ return this.noAction();
94
+ }
95
+ /**
96
+ * Summary shown after overlay closes.
97
+ */
98
+ getCloseSummary(result) {
99
+ const s = this.getStyles();
100
+ if (result.continue) {
101
+ return s.muted('Iteration limit: ') + s.success(`Continuing (+${String(result.additionalIterations)})`);
102
+ }
103
+ return s.muted('Iteration limit: ') + s.error('Stopped');
104
+ }
105
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Keys Overlay V2
3
+ *
4
+ * API key management overlay using the new Overlay interface.
5
+ * Shows status of all providers and allows setting/deleting keys.
6
+ *
7
+ * Features:
8
+ * - List all providers with key status
9
+ * - Set new API keys
10
+ * - Delete stored keys
11
+ * - Works with TerminalUI's overlay management
12
+ */
13
+ import { BaseOverlayV2 } from '../../base/index.js';
14
+ import { getAllProviderStatuses } from '../../../utils/credentials.js';
15
+ import type { RenderContext, OverlayAction, KeyEvent } from '../index.js';
16
+ export interface KeysOverlayV2Result {
17
+ /** Whether any keys were changed */
18
+ changed: boolean;
19
+ }
20
+ interface KeysState {
21
+ selectedIndex: number;
22
+ changed: boolean;
23
+ providers: ReturnType<typeof getAllProviderStatuses>;
24
+ }
25
+ /**
26
+ * Keys overlay using the new Overlay interface.
27
+ * Manages API keys for LLM providers.
28
+ */
29
+ export declare class KeysOverlayV2 extends BaseOverlayV2<KeysState, KeysOverlayV2Result> {
30
+ readonly type: "inline";
31
+ readonly id = "keys-overlay-v2";
32
+ private readonly screenStack;
33
+ constructor();
34
+ protected renderContent(_context: RenderContext): string[];
35
+ render(context: RenderContext): {
36
+ lines: string[];
37
+ minHeight?: number;
38
+ };
39
+ handleKey(key: KeyEvent): OverlayAction<KeysOverlayV2Result>;
40
+ }
41
+ export {};