@compilr-dev/cli 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (587) hide show
  1. package/LICENSE +108 -0
  2. package/README.md +237 -69
  3. package/dist/.tsbuildinfo.app +1 -0
  4. package/dist/.tsbuildinfo.data +1 -0
  5. package/dist/.tsbuildinfo.domain +1 -0
  6. package/dist/.tsbuildinfo.foundation +1 -0
  7. package/dist/agent.d.ts +61 -4
  8. package/dist/agent.js +241 -245
  9. package/dist/anchors/index.d.ts +1 -1
  10. package/dist/anchors/index.js +1 -1
  11. package/dist/anchors/project-anchors.d.ts +2 -2
  12. package/dist/anchors/project-anchors.js +1 -1
  13. package/dist/auth/api-client.d.ts +124 -0
  14. package/dist/auth/api-client.js +261 -0
  15. package/dist/auth/index.d.ts +172 -0
  16. package/dist/auth/index.js +545 -0
  17. package/dist/auth/storage.d.ts +52 -0
  18. package/dist/auth/storage.js +118 -0
  19. package/dist/changelog/index.d.ts +16 -0
  20. package/dist/changelog/index.js +24 -0
  21. package/dist/changelog/releases.d.ts +17 -0
  22. package/dist/changelog/releases.js +63 -0
  23. package/dist/commands-v2/handlers/auth.d.ts +10 -0
  24. package/dist/commands-v2/handlers/auth.js +118 -0
  25. package/dist/commands-v2/handlers/background.d.ts +14 -0
  26. package/dist/commands-v2/handlers/background.js +276 -0
  27. package/dist/commands-v2/handlers/context.js +286 -81
  28. package/dist/commands-v2/handlers/core.d.ts +1 -0
  29. package/dist/commands-v2/handlers/core.js +133 -8
  30. package/dist/commands-v2/handlers/debug.js +18 -0
  31. package/dist/commands-v2/handlers/delegations.d.ts +8 -0
  32. package/dist/commands-v2/handlers/delegations.js +29 -0
  33. package/dist/commands-v2/handlers/files.d.ts +8 -0
  34. package/dist/commands-v2/handlers/files.js +162 -0
  35. package/dist/commands-v2/handlers/filter.d.ts +9 -0
  36. package/dist/commands-v2/handlers/filter.js +130 -0
  37. package/dist/commands-v2/handlers/games.d.ts +7 -0
  38. package/dist/commands-v2/handlers/games.js +57 -0
  39. package/dist/commands-v2/handlers/index.d.ts +13 -0
  40. package/dist/commands-v2/handlers/index.js +39 -0
  41. package/dist/commands-v2/handlers/mcp.d.ts +8 -0
  42. package/dist/commands-v2/handlers/mcp.js +39 -0
  43. package/dist/commands-v2/handlers/notifications.d.ts +9 -0
  44. package/dist/commands-v2/handlers/notifications.js +34 -0
  45. package/dist/commands-v2/handlers/project.js +295 -31
  46. package/dist/commands-v2/handlers/reset.d.ts +11 -0
  47. package/dist/commands-v2/handlers/reset.js +118 -0
  48. package/dist/commands-v2/handlers/session.d.ts +161 -0
  49. package/dist/commands-v2/handlers/session.js +805 -0
  50. package/dist/commands-v2/handlers/settings.d.ts +2 -0
  51. package/dist/commands-v2/handlers/settings.js +217 -35
  52. package/dist/commands-v2/handlers/tasks.d.ts +5 -0
  53. package/dist/commands-v2/handlers/tasks.js +36 -0
  54. package/dist/commands-v2/handlers/team.d.ts +9 -0
  55. package/dist/commands-v2/handlers/team.js +549 -0
  56. package/dist/commands-v2/handlers/terminals.d.ts +9 -0
  57. package/dist/commands-v2/handlers/terminals.js +34 -0
  58. package/dist/commands-v2/index.d.ts +3 -2
  59. package/dist/commands-v2/index.js +4 -1
  60. package/dist/commands-v2/registry.d.ts +15 -0
  61. package/dist/commands-v2/registry.js +34 -0
  62. package/dist/commands-v2/types.d.ts +81 -3
  63. package/dist/commands.js +13 -0
  64. package/dist/compilr-diff-companion.vsix +0 -0
  65. package/dist/db/index.js +98 -4
  66. package/dist/db/repositories/document-repository.d.ts +2 -0
  67. package/dist/db/repositories/document-repository.js +6 -1
  68. package/dist/db/repositories/index.d.ts +2 -0
  69. package/dist/db/repositories/index.js +1 -0
  70. package/dist/db/repositories/plan-repository.d.ts +101 -0
  71. package/dist/db/repositories/plan-repository.js +275 -0
  72. package/dist/db/repositories/project-repository.d.ts +6 -0
  73. package/dist/db/repositories/project-repository.js +41 -0
  74. package/dist/db/repositories/work-item-repository.d.ts +15 -0
  75. package/dist/db/repositories/work-item-repository.js +69 -4
  76. package/dist/db/schema.d.ts +40 -3
  77. package/dist/db/schema.js +66 -3
  78. package/dist/episodes/index.d.ts +20 -0
  79. package/dist/episodes/index.js +27 -0
  80. package/dist/episodes/recorder.d.ts +51 -0
  81. package/dist/episodes/recorder.js +195 -0
  82. package/dist/episodes/significant-work.d.ts +21 -0
  83. package/dist/episodes/significant-work.js +56 -0
  84. package/dist/episodes/store.d.ts +38 -0
  85. package/dist/episodes/store.js +199 -0
  86. package/dist/episodes/types.d.ts +35 -0
  87. package/dist/episodes/types.js +6 -0
  88. package/dist/episodes/work-at-risk.d.ts +12 -0
  89. package/dist/episodes/work-at-risk.js +38 -0
  90. package/dist/episodes/work-summary-anchor.d.ts +23 -0
  91. package/dist/episodes/work-summary-anchor.js +73 -0
  92. package/dist/games/coins.d.ts +66 -0
  93. package/dist/games/coins.js +165 -0
  94. package/dist/games/game-base.d.ts +84 -0
  95. package/dist/games/game-base.js +204 -0
  96. package/dist/games/index.d.ts +16 -0
  97. package/dist/games/index.js +49 -0
  98. package/dist/games/scores.d.ts +69 -0
  99. package/dist/games/scores.js +191 -0
  100. package/dist/games/tetris/board.d.ts +59 -0
  101. package/dist/games/tetris/board.js +170 -0
  102. package/dist/games/tetris/index.d.ts +109 -0
  103. package/dist/games/tetris/index.js +610 -0
  104. package/dist/games/tetris/pieces.d.ts +44 -0
  105. package/dist/games/tetris/pieces.js +271 -0
  106. package/dist/games/tetris/renderer.d.ts +26 -0
  107. package/dist/games/tetris/renderer.js +77 -0
  108. package/dist/guide/guide-content.d.ts +23 -0
  109. package/dist/guide/guide-content.js +196 -0
  110. package/dist/guide/index.d.ts +8 -0
  111. package/dist/guide/index.js +7 -0
  112. package/dist/guide/shared-content.d.ts +37 -0
  113. package/dist/guide/shared-content.js +1272 -0
  114. package/dist/guide/tutorial-helpers.d.ts +57 -0
  115. package/dist/guide/tutorial-helpers.js +147 -0
  116. package/dist/handlers/ask-user-handlers.d.ts +32 -0
  117. package/dist/handlers/ask-user-handlers.js +104 -0
  118. package/dist/handlers/delegation-handlers.d.ts +34 -0
  119. package/dist/handlers/delegation-handlers.js +291 -0
  120. package/dist/handlers/permission-handler.d.ts +30 -0
  121. package/dist/handlers/permission-handler.js +205 -0
  122. package/dist/index.d.ts +11 -1
  123. package/dist/index.js +448 -271
  124. package/dist/input-handlers/memory-handler.d.ts +1 -1
  125. package/dist/input-handlers/memory-handler.js +2 -1
  126. package/dist/models/index.d.ts +10 -0
  127. package/dist/models/index.js +12 -0
  128. package/dist/models/model-registry.d.ts +38 -0
  129. package/dist/models/model-registry.js +69 -0
  130. package/dist/models/model-tiers.d.ts +28 -0
  131. package/dist/models/model-tiers.js +71 -0
  132. package/dist/models/model-validation.d.ts +25 -0
  133. package/dist/models/model-validation.js +291 -0
  134. package/dist/models/ollama-models.d.ts +73 -0
  135. package/dist/models/ollama-models.js +178 -0
  136. package/dist/models/provider-types.d.ts +6 -0
  137. package/dist/models/provider-types.js +1 -0
  138. package/dist/models/providers.d.ts +35 -0
  139. package/dist/models/providers.js +58 -0
  140. package/dist/models/types.d.ts +4 -0
  141. package/dist/models/types.js +4 -0
  142. package/dist/multi-agent/activity.d.ts +21 -0
  143. package/dist/multi-agent/activity.js +34 -0
  144. package/dist/multi-agent/agent-selection.d.ts +55 -0
  145. package/dist/multi-agent/agent-selection.js +90 -0
  146. package/dist/multi-agent/artifacts.d.ts +197 -0
  147. package/dist/multi-agent/artifacts.js +379 -0
  148. package/dist/multi-agent/checkpointer.d.ts +138 -0
  149. package/dist/multi-agent/checkpointer.js +471 -0
  150. package/dist/multi-agent/collision-utils.d.ts +16 -0
  151. package/dist/multi-agent/collision-utils.js +28 -0
  152. package/dist/multi-agent/context-resolver.d.ts +97 -0
  153. package/dist/multi-agent/context-resolver.js +316 -0
  154. package/dist/multi-agent/custom-agents.d.ts +83 -0
  155. package/dist/multi-agent/custom-agents.js +227 -0
  156. package/dist/multi-agent/delegation-tracker.d.ts +157 -0
  157. package/dist/multi-agent/delegation-tracker.js +243 -0
  158. package/dist/multi-agent/file-lock-hook.d.ts +29 -0
  159. package/dist/multi-agent/file-lock-hook.js +97 -0
  160. package/dist/multi-agent/file-locks.d.ts +58 -0
  161. package/dist/multi-agent/file-locks.js +194 -0
  162. package/dist/multi-agent/index.d.ts +24 -0
  163. package/dist/multi-agent/index.js +30 -0
  164. package/dist/multi-agent/mention-parser.d.ts +64 -0
  165. package/dist/multi-agent/mention-parser.js +146 -0
  166. package/dist/multi-agent/notification-manager.d.ts +84 -0
  167. package/dist/multi-agent/notification-manager.js +224 -0
  168. package/dist/multi-agent/pending-requests.d.ts +122 -0
  169. package/dist/multi-agent/pending-requests.js +155 -0
  170. package/dist/multi-agent/session-registry.d.ts +139 -0
  171. package/dist/multi-agent/session-registry.js +514 -0
  172. package/dist/multi-agent/shared-context.d.ts +293 -0
  173. package/dist/multi-agent/shared-context.js +671 -0
  174. package/dist/multi-agent/skill-requirements.d.ts +66 -0
  175. package/dist/multi-agent/skill-requirements.js +178 -0
  176. package/dist/multi-agent/task-assignment.d.ts +69 -0
  177. package/dist/multi-agent/task-assignment.js +123 -0
  178. package/dist/multi-agent/task-suggestion.d.ts +31 -0
  179. package/dist/multi-agent/task-suggestion.js +72 -0
  180. package/dist/multi-agent/team-agent.d.ts +201 -0
  181. package/dist/multi-agent/team-agent.js +488 -0
  182. package/dist/multi-agent/team.d.ts +286 -0
  183. package/dist/multi-agent/team.js +610 -0
  184. package/dist/multi-agent/tool-config.d.ts +110 -0
  185. package/dist/multi-agent/tool-config.js +661 -0
  186. package/dist/multi-agent/types.d.ts +211 -0
  187. package/dist/multi-agent/types.js +617 -0
  188. package/dist/prompts/plan-mode-prompt.d.ts +11 -0
  189. package/dist/prompts/plan-mode-prompt.js +95 -0
  190. package/dist/repl-helpers.js +5 -2
  191. package/dist/repl-v2.d.ts +401 -2
  192. package/dist/repl-v2.js +2588 -65
  193. package/dist/session/index.d.ts +6 -0
  194. package/dist/session/index.js +6 -0
  195. package/dist/session/project-session-manager.d.ts +158 -0
  196. package/dist/session/project-session-manager.js +650 -0
  197. package/dist/settings/index.d.ts +133 -13
  198. package/dist/settings/index.js +329 -24
  199. package/dist/settings/mcp-config.d.ts +76 -0
  200. package/dist/settings/mcp-config.js +143 -0
  201. package/dist/settings/paths.d.ts +4 -0
  202. package/dist/settings/paths.js +6 -0
  203. package/dist/shared-handlers.d.ts +62 -0
  204. package/dist/shared-handlers.js +48 -0
  205. package/dist/system-prompt/builder.d.ts +5 -0
  206. package/dist/system-prompt/builder.js +4 -0
  207. package/dist/system-prompt/index.d.ts +18 -0
  208. package/dist/system-prompt/index.js +18 -0
  209. package/dist/system-prompt/modules.d.ts +5 -0
  210. package/dist/system-prompt/modules.js +4 -0
  211. package/dist/tabbed-menu.js +2 -1
  212. package/dist/templates/compilr-md-import.d.ts +16 -0
  213. package/dist/templates/compilr-md-import.js +241 -0
  214. package/dist/templates/compilr-md.js +10 -61
  215. package/dist/templates/config-json.d.ts +1 -25
  216. package/dist/templates/index.d.ts +2 -0
  217. package/dist/templates/index.js +34 -73
  218. package/dist/tool-names.d.ts +113 -0
  219. package/dist/tool-names.js +239 -0
  220. package/dist/tools/ask-user-simple.d.ts +1 -1
  221. package/dist/tools/ask-user-simple.js +2 -1
  222. package/dist/tools/ask-user.d.ts +1 -1
  223. package/dist/tools/ask-user.js +2 -1
  224. package/dist/tools/backlog.d.ts +2 -2
  225. package/dist/tools/backlog.js +1 -1
  226. package/dist/tools/db-tools.d.ts +13 -61
  227. package/dist/tools/db-tools.js +12 -13
  228. package/dist/tools/delegate-background.d.ts +27 -0
  229. package/dist/tools/delegate-background.js +115 -0
  230. package/dist/tools/delegate.d.ts +22 -0
  231. package/dist/tools/delegate.js +97 -0
  232. package/dist/tools/delegation-status.d.ts +16 -0
  233. package/dist/tools/delegation-status.js +128 -0
  234. package/dist/tools/guide-tool.d.ts +12 -0
  235. package/dist/tools/guide-tool.js +59 -0
  236. package/dist/tools/handoff.d.ts +25 -0
  237. package/dist/tools/handoff.js +99 -0
  238. package/dist/tools/meta-tools.d.ts +26 -0
  239. package/dist/tools/meta-tools.js +47 -0
  240. package/dist/tools/platform-adapter.d.ts +35 -0
  241. package/dist/tools/platform-adapter.js +404 -0
  242. package/dist/tools/project-db.d.ts +5 -73
  243. package/dist/tools/project-db.js +5 -336
  244. package/dist/tools.d.ts +67 -2
  245. package/dist/tools.js +240 -48
  246. package/dist/ui/autocomplete-controller.d.ts +42 -0
  247. package/dist/ui/autocomplete-controller.js +384 -0
  248. package/dist/ui/base/index.d.ts +1 -1
  249. package/dist/ui/base/index.js +1 -1
  250. package/dist/ui/base/overlay-base-v2.d.ts +10 -0
  251. package/dist/ui/base/overlay-base-v2.js +14 -0
  252. package/dist/ui/base/render-utils.d.ts +19 -0
  253. package/dist/ui/base/render-utils.js +25 -0
  254. package/dist/ui/base/tabbed-list-overlay-v2.d.ts +16 -1
  255. package/dist/ui/base/tabbed-list-overlay-v2.js +19 -1
  256. package/dist/ui/constants/labels.d.ts +14 -0
  257. package/dist/ui/constants/labels.js +52 -0
  258. package/dist/ui/conversation-store.d.ts +55 -0
  259. package/dist/ui/conversation-store.js +107 -0
  260. package/dist/ui/conversation.js +11 -13
  261. package/dist/ui/diff.d.ts +7 -1
  262. package/dist/ui/diff.js +85 -48
  263. package/dist/ui/ephemeral.js +3 -9
  264. package/dist/ui/file-autocomplete.d.ts +24 -0
  265. package/dist/ui/file-autocomplete.js +56 -0
  266. package/dist/ui/footer-renderer.d.ts +69 -0
  267. package/dist/ui/footer-renderer.js +431 -0
  268. package/dist/ui/footer.d.ts +74 -7
  269. package/dist/ui/footer.js +173 -16
  270. package/dist/ui/input-controller.d.ts +51 -0
  271. package/dist/ui/input-controller.js +176 -0
  272. package/dist/ui/input-prompt.d.ts +19 -0
  273. package/dist/ui/input-prompt.js +206 -14
  274. package/dist/ui/keyboard-handler.d.ts +57 -0
  275. package/dist/ui/keyboard-handler.js +557 -0
  276. package/dist/ui/live-region-facade.d.ts +42 -0
  277. package/dist/ui/live-region-facade.js +205 -0
  278. package/dist/ui/live-region.d.ts +0 -4
  279. package/dist/ui/live-region.js +6 -14
  280. package/dist/ui/mascot/renderer.d.ts +1 -1
  281. package/dist/ui/mascot/renderer.js +37 -2
  282. package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
  283. package/dist/ui/overlay/data/tutorial-content.js +9 -0
  284. package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
  285. package/dist/ui/overlay/data/tutorial-registry.js +116 -0
  286. package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
  287. package/dist/ui/overlay/data/tutorial-types.js +6 -0
  288. package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
  289. package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
  290. package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
  291. package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
  292. package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
  293. package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
  294. package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
  295. package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
  296. package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
  297. package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
  298. package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
  299. package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
  300. package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
  301. package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
  302. package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
  303. package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
  304. package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
  305. package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
  306. package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
  307. package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
  308. package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
  309. package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
  310. package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
  311. package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
  312. package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
  313. package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
  314. package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
  315. package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
  316. package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
  317. package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
  318. package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
  319. package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
  320. package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
  321. package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
  322. package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
  323. package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
  324. package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
  325. package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
  326. package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
  327. package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
  328. package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
  329. package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
  330. package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
  331. package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
  332. package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
  333. package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
  334. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
  335. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
  336. package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
  337. package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
  338. package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
  339. package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
  340. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
  341. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
  342. package/dist/ui/overlay/impl/agents-overlay-v2.js +6 -17
  343. package/dist/ui/overlay/impl/anchors-overlay-v2.js +30 -64
  344. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
  345. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
  346. package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
  347. package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
  348. package/dist/ui/overlay/impl/ask-user-overlay-v2.js +2 -5
  349. package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
  350. package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
  351. package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +4 -1
  352. package/dist/ui/overlay/impl/backlog-overlay-v2.js +55 -16
  353. package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
  354. package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
  355. package/dist/ui/overlay/impl/commands-overlay-v2.js +4 -6
  356. package/dist/ui/overlay/impl/config-overlay-v2.d.ts +12 -1
  357. package/dist/ui/overlay/impl/config-overlay-v2.js +164 -100
  358. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
  359. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
  360. package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +2 -0
  361. package/dist/ui/overlay/impl/dashboard-overlay-v2.js +26 -3
  362. package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
  363. package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
  364. package/dist/ui/overlay/impl/docs-overlay-v2.js +12 -9
  365. package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +7 -0
  366. package/dist/ui/overlay/impl/document-detail-overlay-v2.js +119 -78
  367. package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
  368. package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
  369. package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
  370. package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
  371. package/dist/ui/overlay/impl/help-overlay-v2.d.ts +26 -3
  372. package/dist/ui/overlay/impl/help-overlay-v2.js +20 -42
  373. package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
  374. package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
  375. package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
  376. package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
  377. package/dist/ui/overlay/impl/model-overlay-v2.d.ts +57 -13
  378. package/dist/ui/overlay/impl/model-overlay-v2.js +1086 -61
  379. package/dist/ui/overlay/impl/new-overlay-v2.d.ts +37 -6
  380. package/dist/ui/overlay/impl/new-overlay-v2.js +715 -65
  381. package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
  382. package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
  383. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
  384. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
  385. package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
  386. package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
  387. package/dist/ui/overlay/impl/permission-overlay-v2.js +5 -5
  388. package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
  389. package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
  390. package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
  391. package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
  392. package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
  393. package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
  394. package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +1 -0
  395. package/dist/ui/overlay/impl/projects-overlay-v2.js +278 -44
  396. package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
  397. package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
  398. package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
  399. package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
  400. package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
  401. package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
  402. package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
  403. package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
  404. package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
  405. package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
  406. package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
  407. package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
  408. package/dist/ui/overlay/impl/tools-overlay-v2.js +3 -7
  409. package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +30 -16
  410. package/dist/ui/overlay/impl/tutorial-overlay-v2.js +133 -956
  411. package/dist/ui/overlay/impl/workflow-overlay-v2.d.ts +1 -0
  412. package/dist/ui/overlay/impl/workflow-overlay-v2.js +10 -4
  413. package/dist/ui/overlay/index.d.ts +20 -1
  414. package/dist/ui/overlay/index.js +19 -0
  415. package/dist/ui/overlay/types.d.ts +5 -0
  416. package/dist/ui/overlay-manager.d.ts +43 -0
  417. package/dist/ui/overlay-manager.js +238 -0
  418. package/dist/ui/overlays.js +4 -16
  419. package/dist/ui/permission-overlay.js +6 -5
  420. package/dist/ui/status-bar-controller.d.ts +33 -0
  421. package/dist/ui/status-bar-controller.js +99 -0
  422. package/dist/ui/subagent-renderer.js +3 -19
  423. package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
  424. package/dist/ui/terminal-autocomplete-utils.js +83 -0
  425. package/dist/ui/terminal-line-builders.d.ts +17 -0
  426. package/dist/ui/terminal-line-builders.js +42 -0
  427. package/dist/ui/terminal-render-item.d.ts +16 -0
  428. package/dist/ui/terminal-render-item.js +267 -0
  429. package/dist/ui/terminal-renderer.d.ts +7 -8
  430. package/dist/ui/terminal-renderer.js +7 -8
  431. package/dist/ui/terminal-types.d.ts +179 -0
  432. package/dist/ui/terminal-types.js +34 -0
  433. package/dist/ui/terminal-ui.d.ts +144 -276
  434. package/dist/ui/terminal-ui.js +384 -1861
  435. package/dist/ui/todo-zone.d.ts +19 -1
  436. package/dist/ui/todo-zone.js +71 -13
  437. package/dist/ui/tool-formatters.js +696 -1
  438. package/dist/ui/turn-metrics.d.ts +56 -0
  439. package/dist/ui/turn-metrics.js +75 -0
  440. package/dist/ui/types.d.ts +28 -0
  441. package/dist/ui/types.js +1 -0
  442. package/dist/ui/vscode-diff-ipc.d.ts +102 -0
  443. package/dist/ui/vscode-diff-ipc.js +385 -0
  444. package/dist/utils/credentials.d.ts +24 -5
  445. package/dist/utils/credentials.js +123 -9
  446. package/dist/utils/format-tokens.d.ts +13 -0
  447. package/dist/utils/format-tokens.js +18 -0
  448. package/dist/utils/git-config.d.ts +26 -0
  449. package/dist/utils/git-config.js +54 -0
  450. package/dist/utils/message-utils.d.ts +61 -0
  451. package/dist/utils/message-utils.js +72 -0
  452. package/dist/utils/model-tiers.d.ts +8 -1
  453. package/dist/utils/model-tiers.js +38 -16
  454. package/dist/utils/open-browser.d.ts +5 -0
  455. package/dist/utils/open-browser.js +32 -0
  456. package/dist/utils/path-safety.js +3 -2
  457. package/dist/utils/project-detection.d.ts +58 -0
  458. package/dist/utils/project-detection.js +424 -0
  459. package/dist/utils/project-memory.js +2 -1
  460. package/dist/utils/project-status.d.ts +2 -2
  461. package/dist/utils/startup-perf.d.ts +18 -0
  462. package/dist/utils/startup-perf.js +60 -0
  463. package/dist/utils/token-tracker.d.ts +62 -0
  464. package/dist/utils/token-tracker.js +150 -0
  465. package/dist/utils/token-types.d.ts +23 -0
  466. package/dist/utils/token-types.js +18 -0
  467. package/dist/utils/types/config-types.d.ts +32 -0
  468. package/dist/utils/types/config-types.js +8 -0
  469. package/dist/utils/update-checker.d.ts +28 -0
  470. package/dist/utils/update-checker.js +106 -0
  471. package/dist/utils/version.d.ts +7 -0
  472. package/dist/utils/version.js +10 -0
  473. package/dist/utils/vscode-detect.d.ts +39 -0
  474. package/dist/utils/vscode-detect.js +137 -0
  475. package/package.json +27 -13
  476. package/dist/commands/handler-types.d.ts +0 -68
  477. package/dist/commands/handler-types.js +0 -8
  478. package/dist/commands/handlers/agent-commands.d.ts +0 -13
  479. package/dist/commands/handlers/agent-commands.js +0 -305
  480. package/dist/commands/handlers/design-commands.d.ts +0 -15
  481. package/dist/commands/handlers/design-commands.js +0 -334
  482. package/dist/commands/handlers/index.d.ts +0 -20
  483. package/dist/commands/handlers/index.js +0 -43
  484. package/dist/commands/handlers/overlay-commands.d.ts +0 -21
  485. package/dist/commands/handlers/overlay-commands.js +0 -287
  486. package/dist/commands/handlers/project-commands.d.ts +0 -11
  487. package/dist/commands/handlers/project-commands.js +0 -167
  488. package/dist/commands/handlers/simple-commands.d.ts +0 -19
  489. package/dist/commands/handlers/simple-commands.js +0 -144
  490. package/dist/commands/registry.d.ts +0 -50
  491. package/dist/commands/registry.js +0 -75
  492. package/dist/index.old.d.ts +0 -7
  493. package/dist/index.old.js +0 -1014
  494. package/dist/repl.d.ts +0 -149
  495. package/dist/repl.js +0 -1151
  496. package/dist/templates/claude-md.d.ts +0 -7
  497. package/dist/templates/claude-md.js +0 -189
  498. package/dist/test-autocomplete.d.ts +0 -7
  499. package/dist/test-autocomplete.js +0 -85
  500. package/dist/test-tabbed-menu.d.ts +0 -7
  501. package/dist/test-tabbed-menu.js +0 -25
  502. package/dist/tool-selector.d.ts +0 -71
  503. package/dist/tool-selector.js +0 -184
  504. package/dist/tools/anchor-tools.d.ts +0 -31
  505. package/dist/tools/anchor-tools.js +0 -255
  506. package/dist/tools/backlog-wrappers.d.ts +0 -54
  507. package/dist/tools/backlog-wrappers.js +0 -338
  508. package/dist/tools/document-db.d.ts +0 -43
  509. package/dist/tools/document-db.js +0 -220
  510. package/dist/tools/workitem-db.d.ts +0 -103
  511. package/dist/tools/workitem-db.js +0 -549
  512. package/dist/ui/agents-overlay-v2.d.ts +0 -43
  513. package/dist/ui/agents-overlay-v2.js +0 -809
  514. package/dist/ui/agents-overlay.d.ts +0 -12
  515. package/dist/ui/agents-overlay.js +0 -863
  516. package/dist/ui/anchors-overlay.d.ts +0 -12
  517. package/dist/ui/anchors-overlay.js +0 -775
  518. package/dist/ui/arch-type-overlay.d.ts +0 -15
  519. package/dist/ui/arch-type-overlay.js +0 -201
  520. package/dist/ui/ask-user-overlay-v2.d.ts +0 -26
  521. package/dist/ui/ask-user-overlay-v2.js +0 -555
  522. package/dist/ui/ask-user-simple-overlay-v2.d.ts +0 -25
  523. package/dist/ui/ask-user-simple-overlay-v2.js +0 -215
  524. package/dist/ui/backlog-overlay.d.ts +0 -32
  525. package/dist/ui/backlog-overlay.js +0 -652
  526. package/dist/ui/commands-overlay-v2.d.ts +0 -33
  527. package/dist/ui/commands-overlay-v2.js +0 -441
  528. package/dist/ui/commands-overlay.d.ts +0 -16
  529. package/dist/ui/commands-overlay.js +0 -439
  530. package/dist/ui/config-overlay.d.ts +0 -35
  531. package/dist/ui/config-overlay.js +0 -707
  532. package/dist/ui/docs-overlay.d.ts +0 -17
  533. package/dist/ui/docs-overlay.js +0 -303
  534. package/dist/ui/footer-v2.d.ts +0 -222
  535. package/dist/ui/footer-v2.js +0 -1349
  536. package/dist/ui/help-overlay-v2.d.ts +0 -34
  537. package/dist/ui/help-overlay-v2.js +0 -309
  538. package/dist/ui/help-overlay.d.ts +0 -16
  539. package/dist/ui/help-overlay.js +0 -316
  540. package/dist/ui/init-overlay-v2.d.ts +0 -34
  541. package/dist/ui/init-overlay-v2.js +0 -600
  542. package/dist/ui/init-overlay.d.ts +0 -34
  543. package/dist/ui/init-overlay.js +0 -604
  544. package/dist/ui/input-prompt-v2.d.ts +0 -180
  545. package/dist/ui/input-prompt-v2.js +0 -999
  546. package/dist/ui/iteration-limit-overlay-v2.d.ts +0 -21
  547. package/dist/ui/iteration-limit-overlay-v2.js +0 -114
  548. package/dist/ui/keys-overlay-v2.d.ts +0 -41
  549. package/dist/ui/keys-overlay-v2.js +0 -248
  550. package/dist/ui/mascot-overlay-v2.d.ts +0 -41
  551. package/dist/ui/mascot-overlay-v2.js +0 -138
  552. package/dist/ui/mascot-overlay.d.ts +0 -21
  553. package/dist/ui/mascot-overlay.js +0 -146
  554. package/dist/ui/model-overlay-v2.d.ts +0 -49
  555. package/dist/ui/model-overlay-v2.js +0 -118
  556. package/dist/ui/model-overlay.d.ts +0 -27
  557. package/dist/ui/model-overlay.js +0 -221
  558. package/dist/ui/model-warning-overlay.d.ts +0 -30
  559. package/dist/ui/model-warning-overlay.js +0 -169
  560. package/dist/ui/new-overlay.d.ts +0 -34
  561. package/dist/ui/new-overlay.js +0 -604
  562. package/dist/ui/overlay/impl/init-overlay-v2.d.ts +0 -77
  563. package/dist/ui/overlay/impl/init-overlay-v2.js +0 -593
  564. package/dist/ui/overlay/overlay-types.d.ts +0 -128
  565. package/dist/ui/overlay/overlay-types.js +0 -22
  566. package/dist/ui/overlays/help-overlay-v2.d.ts +0 -28
  567. package/dist/ui/overlays/help-overlay-v2.js +0 -198
  568. package/dist/ui/overlays/index.d.ts +0 -11
  569. package/dist/ui/overlays/index.js +0 -11
  570. package/dist/ui/permission-overlay-v2.d.ts +0 -36
  571. package/dist/ui/permission-overlay-v2.js +0 -380
  572. package/dist/ui/projects-overlay.d.ts +0 -19
  573. package/dist/ui/projects-overlay.js +0 -484
  574. package/dist/ui/theme-overlay-v2.d.ts +0 -42
  575. package/dist/ui/theme-overlay-v2.js +0 -135
  576. package/dist/ui/theme-overlay.d.ts +0 -24
  577. package/dist/ui/theme-overlay.js +0 -127
  578. package/dist/ui/tools-overlay-v2.d.ts +0 -47
  579. package/dist/ui/tools-overlay-v2.js +0 -218
  580. package/dist/ui/tools-overlay.d.ts +0 -34
  581. package/dist/ui/tools-overlay.js +0 -230
  582. package/dist/ui/tutorial-overlay-v2.d.ts +0 -31
  583. package/dist/ui/tutorial-overlay-v2.js +0 -1035
  584. package/dist/ui/tutorial-overlay.d.ts +0 -11
  585. package/dist/ui/tutorial-overlay.js +0 -1034
  586. package/dist/ui/workflow-overlay.d.ts +0 -22
  587. package/dist/ui/workflow-overlay.js +0 -636
@@ -1,34 +0,0 @@
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 { TabbedListOverlayV2, BaseScreen } from './base/index.js';
14
- interface HelpItem {
15
- name: string;
16
- description: string;
17
- type: 'builtin' | 'custom';
18
- /** For custom commands */
19
- prompt?: string;
20
- location?: 'project' | 'personal';
21
- /** Index in COMMANDS array for built-in commands */
22
- commandIndex?: number;
23
- }
24
- /**
25
- * Help overlay using the new Overlay interface.
26
- * Displays available commands in a searchable, tabbed list.
27
- */
28
- export declare class HelpOverlayV2 extends TabbedListOverlayV2<HelpItem> {
29
- readonly type: "inline";
30
- readonly id = "help-overlay-v2";
31
- constructor();
32
- protected createDetailScreen(item: HelpItem): BaseScreen | null;
33
- }
34
- export {};
@@ -1,309 +0,0 @@
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 { getHelpCommands, getCommandByIndex } from '../commands.js';
16
- import { getCustomCommandRegistry } from '../commands/index.js';
17
- import { TabbedListOverlayV2, BaseScreen, stay, popScreen, closeOverlay, isEscape, isCtrlC, isClose, renderBorder, wrapText, } from './base/index.js';
18
- // =============================================================================
19
- // Constants
20
- // =============================================================================
21
- const VERSION = 'compilr.dev/agent';
22
- const PAGE_SIZE = 10;
23
- const TABS = [
24
- { id: 'all', label: 'All' },
25
- { id: 'builtin', label: 'Built-in' },
26
- { id: 'custom', label: 'Custom' },
27
- ];
28
- // =============================================================================
29
- // Detail Screens
30
- // =============================================================================
31
- /**
32
- * Built-in command detail screen
33
- */
34
- class CommandDetailScreen extends BaseScreen {
35
- item;
36
- styles;
37
- constructor(item, styles) {
38
- super();
39
- this.item = item;
40
- this.styles = styles;
41
- }
42
- render() {
43
- const s = this.styles;
44
- const cols = terminal.getTerminalWidth();
45
- const maxLineWidth = cols - 2;
46
- const border = renderBorder(cols, s);
47
- const cmd = this.item.commandIndex !== undefined
48
- ? getCommandByIndex(this.item.commandIndex)
49
- : null;
50
- const lines = [];
51
- lines.push(border);
52
- lines.push(' ' + s.primaryBold('Command Reference'));
53
- lines.push('');
54
- if (!cmd) {
55
- lines.push(s.error(' Command not found'));
56
- lines.push(border);
57
- lines.push(` ${s.muted('q/Esc Back')}`);
58
- lines.push(border);
59
- return lines;
60
- }
61
- // Helper to truncate
62
- const truncate = (line, max = maxLineWidth) => {
63
- // eslint-disable-next-line no-control-regex
64
- const stripped = line.replace(/\x1b\[[0-9;]*m/g, '');
65
- if (stripped.length <= max)
66
- return line;
67
- let visibleLen = 0;
68
- let cutIndex = 0;
69
- for (let i = 0; i < line.length; i++) {
70
- if (line[i] === '\x1b') {
71
- const end = line.indexOf('m', i);
72
- if (end !== -1) {
73
- i = end;
74
- continue;
75
- }
76
- }
77
- visibleLen++;
78
- if (visibleLen >= max - 3) {
79
- cutIndex = i + 1;
80
- break;
81
- }
82
- }
83
- return line.slice(0, cutIndex) + '...';
84
- };
85
- // Command name
86
- lines.push(chalk.bold(` /${cmd.name}`));
87
- lines.push('');
88
- // Description
89
- lines.push(' ' + s.primary('DESCRIPTION'));
90
- lines.push(truncate(' ' + cmd.description));
91
- lines.push('');
92
- // Details
93
- if (cmd.details) {
94
- lines.push(' ' + s.primary('ABOUT'));
95
- const maxWidth = Math.min(cols - 6, 70);
96
- const words = cmd.details.split(' ');
97
- let currentLine = ' ';
98
- for (const word of words) {
99
- if (currentLine.length + word.length + 1 > maxWidth) {
100
- lines.push(truncate(currentLine));
101
- currentLine = ' ' + word;
102
- }
103
- else {
104
- currentLine += (currentLine.length > 3 ? ' ' : '') + word;
105
- }
106
- }
107
- if (currentLine.length > 3) {
108
- lines.push(truncate(currentLine));
109
- }
110
- lines.push('');
111
- }
112
- // Aliases
113
- if (cmd.aliases && cmd.aliases.length > 0) {
114
- lines.push(' ' + s.primary('ALIASES'));
115
- lines.push(truncate(' ' + cmd.aliases.map((a) => `/${a}`).join(', ')));
116
- lines.push('');
117
- }
118
- // Examples
119
- if (cmd.examples && cmd.examples.length > 0) {
120
- lines.push(' ' + s.primary('EXAMPLES'));
121
- for (const example of cmd.examples) {
122
- if (example.description) {
123
- const paddedCode = example.code.padEnd(22);
124
- const exLine = ` ${s.muted(paddedCode)}${s.muted('·')} ${example.description}`;
125
- lines.push(truncate(exLine));
126
- }
127
- else {
128
- lines.push(truncate(' ' + s.muted(example.code)));
129
- }
130
- }
131
- lines.push('');
132
- }
133
- // Interactions
134
- if (cmd.interactions && cmd.interactions.length > 0) {
135
- lines.push(' ' + s.primary('INTERACTIONS'));
136
- for (const hint of cmd.interactions) {
137
- lines.push(truncate(' ' + s.muted('• ' + hint)));
138
- }
139
- lines.push('');
140
- }
141
- // Footer
142
- lines.push(border);
143
- lines.push(` ${s.muted('q/Esc Back')}`);
144
- lines.push(border);
145
- return lines;
146
- }
147
- handleKey(data) {
148
- if (isCtrlC(data)) {
149
- return closeOverlay(undefined);
150
- }
151
- if (isEscape(data) || isClose(data)) {
152
- return popScreen();
153
- }
154
- return stay(false);
155
- }
156
- /**
157
- * Minimum height for stable rendering.
158
- * Covers: header(3) + name(2) + desc(3) + about(5) + aliases(3) + examples(6) + interactions(4) + footer(3) = 29
159
- */
160
- getMinHeight() {
161
- return 25;
162
- }
163
- }
164
- /**
165
- * Custom command detail screen
166
- */
167
- class CustomCommandDetailScreen extends BaseScreen {
168
- item;
169
- styles;
170
- constructor(item, styles) {
171
- super();
172
- this.item = item;
173
- this.styles = styles;
174
- }
175
- render() {
176
- const s = this.styles;
177
- const cols = terminal.getTerminalWidth();
178
- const border = renderBorder(cols, s);
179
- const registry = getCustomCommandRegistry();
180
- const lines = [];
181
- lines.push(border);
182
- lines.push(' ' + s.primaryBold('Custom Command Details'));
183
- lines.push('');
184
- // Command name
185
- lines.push(chalk.bold(` /${this.item.name}`));
186
- lines.push('');
187
- // Location
188
- lines.push(' ' + s.primary('LOCATION'));
189
- const loc = this.item.location ?? 'personal';
190
- lines.push(` ${loc === 'project' ? 'Project' : 'Personal'} (${loc})`);
191
- lines.push('');
192
- // File path
193
- lines.push(' ' + s.primary('FILE'));
194
- const basePath = loc === 'project'
195
- ? registry.getProjectDir()
196
- : registry.getUserDir();
197
- lines.push(s.muted(` ${basePath}/${this.item.name}.md`));
198
- lines.push('');
199
- // Description
200
- lines.push(' ' + s.primary('DESCRIPTION'));
201
- lines.push(...wrapText(this.item.description, cols - 6, ' '));
202
- lines.push('');
203
- // Prompt
204
- if (this.item.prompt) {
205
- lines.push(' ' + s.primary('PROMPT TEMPLATE'));
206
- lines.push(...wrapText(this.item.prompt, cols - 6, ' '));
207
- lines.push('');
208
- }
209
- // Footer
210
- lines.push(border);
211
- lines.push(` ${s.muted('q/Esc Back')}`);
212
- lines.push(border);
213
- return lines;
214
- }
215
- handleKey(data) {
216
- if (isCtrlC(data)) {
217
- return closeOverlay(undefined);
218
- }
219
- if (isEscape(data) || isClose(data)) {
220
- return popScreen();
221
- }
222
- return stay(false);
223
- }
224
- /**
225
- * Minimum height for stable rendering.
226
- * Covers: header(3) + name(2) + location(3) + file(3) + desc(5) + prompt(5) + footer(3) = 24
227
- */
228
- getMinHeight() {
229
- return 22;
230
- }
231
- }
232
- // =============================================================================
233
- // Help Overlay V2 Class
234
- // =============================================================================
235
- /**
236
- * Help overlay using the new Overlay interface.
237
- * Displays available commands in a searchable, tabbed list.
238
- */
239
- export class HelpOverlayV2 extends TabbedListOverlayV2 {
240
- type = 'inline';
241
- id = 'help-overlay-v2';
242
- constructor() {
243
- // Build unified items list
244
- const items = [];
245
- // Add built-in commands
246
- const helpCommands = getHelpCommands();
247
- for (let i = 0; i < helpCommands.length; i++) {
248
- const cmd = helpCommands[i];
249
- items.push({
250
- name: cmd.name,
251
- description: cmd.description,
252
- type: 'builtin',
253
- commandIndex: i,
254
- });
255
- }
256
- // Add custom commands
257
- const registry = getCustomCommandRegistry();
258
- const customCommands = registry.getAll();
259
- for (const cmd of customCommands) {
260
- items.push({
261
- name: `/${cmd.name}`,
262
- description: cmd.description,
263
- type: 'custom',
264
- prompt: cmd.prompt,
265
- location: cmd.location,
266
- });
267
- }
268
- super({
269
- title: VERSION,
270
- tabs: TABS,
271
- items,
272
- pageSize: PAGE_SIZE,
273
- filterByTab: (item, tabId) => {
274
- if (tabId === 'all')
275
- return true;
276
- if (tabId === 'builtin')
277
- return item.type === 'builtin';
278
- if (tabId === 'custom')
279
- return item.type === 'custom';
280
- return true;
281
- },
282
- getSearchText: (item) => `${item.name} ${item.description}`,
283
- renderItem: (item, isSelected, styles) => {
284
- const prefix = isSelected ? styles.primary(' > ') : ' ';
285
- const name = isSelected
286
- ? styles.primary(item.name.padEnd(20))
287
- : styles.muted(item.name.padEnd(20));
288
- const desc = styles.muted(item.description);
289
- const badge = item.type === 'custom' ? styles.muted(' (custom)') : '';
290
- return prefix + name + desc + badge;
291
- },
292
- footerHints: (searchMode) => {
293
- if (searchMode) {
294
- return 'Type to filter · ↑↓/jk Navigate · Enter Details · Esc Exit search';
295
- }
296
- return 'Tab Filter · ↑↓/jk · ←→/hl Pages · / Search · Enter Details · q/Esc Close';
297
- },
298
- emptyMessage: 'No commands available.',
299
- noResultsMessage: 'No commands match the search.',
300
- });
301
- }
302
- createDetailScreen(item) {
303
- const styles = this.getStyles();
304
- if (item.type === 'builtin') {
305
- return new CommandDetailScreen(item, styles);
306
- }
307
- return new CustomCommandDetailScreen(item, styles);
308
- }
309
- }
@@ -1,16 +0,0 @@
1
- /**
2
- * Help Overlay
3
- *
4
- * Displays available commands in a searchable, categorized list.
5
- * Uses TabbedListOverlay for consistent UX patterns.
6
- *
7
- * Features:
8
- * - Tabs: All, Built-in, Custom
9
- * - Search with / toggle
10
- * - Detail view for full command information
11
- * - Info header with shortcuts
12
- */
13
- /**
14
- * Show the help overlay
15
- */
16
- export declare function showHelp(): Promise<void>;
@@ -1,316 +0,0 @@
1
- /**
2
- * Help Overlay
3
- *
4
- * Displays available commands in a searchable, categorized list.
5
- * Uses TabbedListOverlay for consistent UX patterns.
6
- *
7
- * Features:
8
- * - Tabs: All, Built-in, Custom
9
- * - Search with / toggle
10
- * - Detail view for full command information
11
- * - Info header with shortcuts
12
- */
13
- import chalk from 'chalk';
14
- import * as terminal from './terminal.js';
15
- import { getHelpCommands, getCommandByIndex } from '../commands.js';
16
- import { getCustomCommandRegistry } from '../commands/index.js';
17
- import { TabbedListOverlay, BaseScreen, stay, popScreen, closeOverlay, isEscape, isCtrlC, isClose, renderBorder, } from './base/index.js';
18
- // =============================================================================
19
- // Constants
20
- // =============================================================================
21
- const VERSION = 'compilr.dev/agent';
22
- const PAGE_SIZE = 10;
23
- const TABS = [
24
- { id: 'all', label: 'All' },
25
- { id: 'builtin', label: 'Built-in' },
26
- { id: 'custom', label: 'Custom' },
27
- ];
28
- // =============================================================================
29
- // Detail Screens
30
- // =============================================================================
31
- /**
32
- * Built-in command detail screen
33
- */
34
- class CommandDetailScreen extends BaseScreen {
35
- item;
36
- styles;
37
- constructor(item, styles) {
38
- super();
39
- this.item = item;
40
- this.styles = styles;
41
- }
42
- render() {
43
- const s = this.styles;
44
- const cols = terminal.getTerminalWidth();
45
- const maxLineWidth = cols - 2;
46
- const border = renderBorder(cols, s);
47
- const cmd = this.item.commandIndex !== undefined
48
- ? getCommandByIndex(this.item.commandIndex)
49
- : null;
50
- const lines = [];
51
- lines.push(border);
52
- lines.push(' ' + s.primaryBold('Command Reference'));
53
- lines.push('');
54
- if (!cmd) {
55
- lines.push(s.error(' Command not found'));
56
- lines.push(border);
57
- lines.push(` ${s.muted('q/Esc Back')}`);
58
- lines.push(border);
59
- return lines;
60
- }
61
- // Helper to truncate
62
- const truncate = (line, max = maxLineWidth) => {
63
- // eslint-disable-next-line no-control-regex
64
- const stripped = line.replace(/\x1b\[[0-9;]*m/g, '');
65
- if (stripped.length <= max)
66
- return line;
67
- let visibleLen = 0;
68
- let cutIndex = 0;
69
- for (let i = 0; i < line.length; i++) {
70
- if (line[i] === '\x1b') {
71
- const end = line.indexOf('m', i);
72
- if (end !== -1) {
73
- i = end;
74
- continue;
75
- }
76
- }
77
- visibleLen++;
78
- if (visibleLen >= max - 3) {
79
- cutIndex = i + 1;
80
- break;
81
- }
82
- }
83
- return line.slice(0, cutIndex) + '...';
84
- };
85
- // Command name
86
- lines.push(chalk.bold(` /${cmd.name}`));
87
- lines.push('');
88
- // Description
89
- lines.push(' ' + s.primary('DESCRIPTION'));
90
- lines.push(truncate(' ' + cmd.description));
91
- lines.push('');
92
- // Details
93
- if (cmd.details) {
94
- lines.push(' ' + s.primary('ABOUT'));
95
- const maxWidth = Math.min(cols - 6, 70);
96
- const words = cmd.details.split(' ');
97
- let currentLine = ' ';
98
- for (const word of words) {
99
- if (currentLine.length + word.length + 1 > maxWidth) {
100
- lines.push(truncate(currentLine));
101
- currentLine = ' ' + word;
102
- }
103
- else {
104
- currentLine += (currentLine.length > 3 ? ' ' : '') + word;
105
- }
106
- }
107
- if (currentLine.length > 3) {
108
- lines.push(truncate(currentLine));
109
- }
110
- lines.push('');
111
- }
112
- // Aliases
113
- if (cmd.aliases && cmd.aliases.length > 0) {
114
- lines.push(' ' + s.primary('ALIASES'));
115
- lines.push(truncate(' ' + cmd.aliases.map((a) => `/${a}`).join(', ')));
116
- lines.push('');
117
- }
118
- // Examples
119
- if (cmd.examples && cmd.examples.length > 0) {
120
- lines.push(' ' + s.primary('EXAMPLES'));
121
- for (const example of cmd.examples) {
122
- if (example.description) {
123
- const paddedCode = example.code.padEnd(22);
124
- const exLine = ` ${s.muted(paddedCode)}${s.muted('·')} ${example.description}`;
125
- lines.push(truncate(exLine));
126
- }
127
- else {
128
- lines.push(truncate(' ' + s.muted(example.code)));
129
- }
130
- }
131
- lines.push('');
132
- }
133
- // Interactions
134
- if (cmd.interactions && cmd.interactions.length > 0) {
135
- lines.push(' ' + s.primary('INTERACTIONS'));
136
- for (const hint of cmd.interactions) {
137
- lines.push(truncate(' ' + s.muted('• ' + hint)));
138
- }
139
- lines.push('');
140
- }
141
- // Footer
142
- lines.push(border);
143
- lines.push(` ${s.muted('q/Esc Back')}`);
144
- lines.push(border);
145
- return lines;
146
- }
147
- handleKey(data) {
148
- if (isCtrlC(data)) {
149
- return closeOverlay(undefined);
150
- }
151
- if (isEscape(data) || isClose(data)) {
152
- return popScreen();
153
- }
154
- return stay(false);
155
- }
156
- }
157
- /**
158
- * Custom command detail screen
159
- */
160
- class CustomCommandDetailScreen extends BaseScreen {
161
- item;
162
- styles;
163
- constructor(item, styles) {
164
- super();
165
- this.item = item;
166
- this.styles = styles;
167
- }
168
- render() {
169
- const s = this.styles;
170
- const cols = terminal.getTerminalWidth();
171
- const border = renderBorder(cols, s);
172
- const registry = getCustomCommandRegistry();
173
- const lines = [];
174
- lines.push(border);
175
- lines.push(' ' + s.primaryBold('Custom Command Details'));
176
- lines.push('');
177
- // Command name
178
- lines.push(chalk.bold(` /${this.item.name}`));
179
- lines.push('');
180
- // Location
181
- lines.push(' ' + s.primary('LOCATION'));
182
- const loc = this.item.location ?? 'personal';
183
- lines.push(` ${loc === 'project' ? 'Project' : 'Personal'} (${loc})`);
184
- lines.push('');
185
- // File path
186
- lines.push(' ' + s.primary('FILE'));
187
- const basePath = loc === 'project'
188
- ? registry.getProjectDir()
189
- : registry.getUserDir();
190
- lines.push(s.muted(` ${basePath}/${this.item.name}.md`));
191
- lines.push('');
192
- // Description
193
- lines.push(' ' + s.primary('DESCRIPTION'));
194
- lines.push(...this.wrapText(this.item.description, cols - 6, ' '));
195
- lines.push('');
196
- // Prompt
197
- if (this.item.prompt) {
198
- lines.push(' ' + s.primary('PROMPT TEMPLATE'));
199
- lines.push(...this.wrapText(this.item.prompt, cols - 6, ' '));
200
- lines.push('');
201
- }
202
- // Footer
203
- lines.push(border);
204
- lines.push(` ${s.muted('q/Esc Back')}`);
205
- lines.push(border);
206
- return lines;
207
- }
208
- handleKey(data) {
209
- if (isCtrlC(data)) {
210
- return closeOverlay(undefined);
211
- }
212
- if (isEscape(data) || isClose(data)) {
213
- return popScreen();
214
- }
215
- return stay(false);
216
- }
217
- wrapText(text, maxWidth, indent) {
218
- const words = text.split(' ');
219
- const resultLines = [];
220
- let currentLine = indent;
221
- for (const word of words) {
222
- if (currentLine.length + word.length + 1 > maxWidth) {
223
- resultLines.push(currentLine);
224
- currentLine = indent + word;
225
- }
226
- else {
227
- currentLine += (currentLine.length > indent.length ? ' ' : '') + word;
228
- }
229
- }
230
- if (currentLine.length > indent.length) {
231
- resultLines.push(currentLine);
232
- }
233
- return resultLines;
234
- }
235
- }
236
- // =============================================================================
237
- // Help Overlay Class
238
- // =============================================================================
239
- class HelpOverlay extends TabbedListOverlay {
240
- constructor() {
241
- // Build unified items list
242
- const items = [];
243
- // Add built-in commands
244
- const helpCommands = getHelpCommands();
245
- for (let i = 0; i < helpCommands.length; i++) {
246
- const cmd = helpCommands[i];
247
- items.push({
248
- name: cmd.name,
249
- description: cmd.description,
250
- type: 'builtin',
251
- commandIndex: i,
252
- });
253
- }
254
- // Add custom commands
255
- const registry = getCustomCommandRegistry();
256
- const customCommands = registry.getAll();
257
- for (const cmd of customCommands) {
258
- items.push({
259
- name: `/${cmd.name}`,
260
- description: cmd.description,
261
- type: 'custom',
262
- prompt: cmd.prompt,
263
- location: cmd.location,
264
- });
265
- }
266
- super({
267
- title: VERSION,
268
- tabs: TABS,
269
- items,
270
- pageSize: PAGE_SIZE,
271
- filterByTab: (item, tabId) => {
272
- if (tabId === 'all')
273
- return true;
274
- if (tabId === 'builtin')
275
- return item.type === 'builtin';
276
- if (tabId === 'custom')
277
- return item.type === 'custom';
278
- return true;
279
- },
280
- getSearchText: (item) => `${item.name} ${item.description}`,
281
- renderItem: (item, isSelected, styles) => {
282
- const prefix = isSelected ? styles.primary(' ❯ ') : ' ';
283
- const name = isSelected
284
- ? styles.primary(item.name.padEnd(20))
285
- : styles.muted(item.name.padEnd(20));
286
- const desc = styles.muted(item.description);
287
- const badge = item.type === 'custom' ? styles.muted(' (custom)') : '';
288
- return prefix + name + desc + badge;
289
- },
290
- footerHints: (searchMode) => {
291
- if (searchMode) {
292
- return 'Type to filter · ↑↓/jk Navigate · Enter Details · Esc Exit search';
293
- }
294
- return 'Tab Filter · ↑↓/jk · ←→/hl Pages · / Search · Enter Details · q/Esc Close';
295
- },
296
- emptyMessage: 'No commands available.',
297
- noResultsMessage: 'No commands match the search.',
298
- detailScreensFullScreen: false,
299
- });
300
- }
301
- createDetailScreen(item) {
302
- if (item.type === 'builtin') {
303
- return new CommandDetailScreen(item, this.styles);
304
- }
305
- return new CustomCommandDetailScreen(item, this.styles);
306
- }
307
- }
308
- // =============================================================================
309
- // Export Function
310
- // =============================================================================
311
- /**
312
- * Show the help overlay
313
- */
314
- export async function showHelp() {
315
- return new HelpOverlay().show();
316
- }