@compilr-dev/cli 0.5.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 (591) hide show
  1. package/README.md +236 -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 +61 -4
  7. package/dist/agent.js +241 -245
  8. package/dist/anchors/index.d.ts +1 -1
  9. package/dist/anchors/index.js +1 -1
  10. package/dist/anchors/project-anchors.d.ts +2 -2
  11. package/dist/anchors/project-anchors.js +1 -1
  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-v2/handlers/auth.d.ts +10 -0
  23. package/dist/commands-v2/handlers/auth.js +118 -0
  24. package/dist/commands-v2/handlers/background.d.ts +14 -0
  25. package/dist/commands-v2/handlers/background.js +276 -0
  26. package/dist/commands-v2/handlers/context.js +266 -81
  27. package/dist/commands-v2/handlers/core.d.ts +1 -0
  28. package/dist/commands-v2/handlers/core.js +133 -8
  29. package/dist/commands-v2/handlers/debug.js +18 -0
  30. package/dist/commands-v2/handlers/delegations.d.ts +8 -0
  31. package/dist/commands-v2/handlers/delegations.js +29 -0
  32. package/dist/commands-v2/handlers/files.d.ts +8 -0
  33. package/dist/commands-v2/handlers/files.js +162 -0
  34. package/dist/commands-v2/handlers/filter.d.ts +9 -0
  35. package/dist/commands-v2/handlers/filter.js +130 -0
  36. package/dist/commands-v2/handlers/games.d.ts +7 -0
  37. package/dist/commands-v2/handlers/games.js +57 -0
  38. package/dist/commands-v2/handlers/index.d.ts +13 -0
  39. package/dist/commands-v2/handlers/index.js +39 -0
  40. package/dist/commands-v2/handlers/mcp.d.ts +8 -0
  41. package/dist/commands-v2/handlers/mcp.js +39 -0
  42. package/dist/commands-v2/handlers/notifications.d.ts +9 -0
  43. package/dist/commands-v2/handlers/notifications.js +34 -0
  44. package/dist/commands-v2/handlers/project.js +244 -23
  45. package/dist/commands-v2/handlers/reset.d.ts +11 -0
  46. package/dist/commands-v2/handlers/reset.js +118 -0
  47. package/dist/commands-v2/handlers/session.d.ts +161 -0
  48. package/dist/commands-v2/handlers/session.js +805 -0
  49. package/dist/commands-v2/handlers/settings.d.ts +2 -0
  50. package/dist/commands-v2/handlers/settings.js +217 -35
  51. package/dist/commands-v2/handlers/tasks.d.ts +5 -0
  52. package/dist/commands-v2/handlers/tasks.js +36 -0
  53. package/dist/commands-v2/handlers/team.d.ts +9 -0
  54. package/dist/commands-v2/handlers/team.js +549 -0
  55. package/dist/commands-v2/handlers/terminals.d.ts +9 -0
  56. package/dist/commands-v2/handlers/terminals.js +34 -0
  57. package/dist/commands-v2/index.d.ts +3 -2
  58. package/dist/commands-v2/index.js +4 -1
  59. package/dist/commands-v2/registry.d.ts +15 -0
  60. package/dist/commands-v2/registry.js +34 -0
  61. package/dist/commands-v2/types.d.ts +81 -3
  62. package/dist/commands.js +13 -0
  63. package/dist/compilr-diff-companion.vsix +0 -0
  64. package/dist/db/index.js +98 -4
  65. package/dist/db/repositories/document-repository.d.ts +2 -0
  66. package/dist/db/repositories/document-repository.js +5 -1
  67. package/dist/db/repositories/index.d.ts +2 -0
  68. package/dist/db/repositories/index.js +1 -0
  69. package/dist/db/repositories/plan-repository.d.ts +101 -0
  70. package/dist/db/repositories/plan-repository.js +275 -0
  71. package/dist/db/repositories/project-repository.d.ts +6 -0
  72. package/dist/db/repositories/project-repository.js +41 -0
  73. package/dist/db/repositories/work-item-repository.d.ts +15 -0
  74. package/dist/db/repositories/work-item-repository.js +69 -4
  75. package/dist/db/schema.d.ts +40 -3
  76. package/dist/db/schema.js +66 -3
  77. package/dist/episodes/index.d.ts +20 -0
  78. package/dist/episodes/index.js +27 -0
  79. package/dist/episodes/recorder.d.ts +51 -0
  80. package/dist/episodes/recorder.js +195 -0
  81. package/dist/episodes/significant-work.d.ts +21 -0
  82. package/dist/episodes/significant-work.js +56 -0
  83. package/dist/episodes/store.d.ts +38 -0
  84. package/dist/episodes/store.js +199 -0
  85. package/dist/episodes/types.d.ts +35 -0
  86. package/dist/episodes/types.js +6 -0
  87. package/dist/episodes/work-at-risk.d.ts +12 -0
  88. package/dist/episodes/work-at-risk.js +38 -0
  89. package/dist/episodes/work-summary-anchor.d.ts +23 -0
  90. package/dist/episodes/work-summary-anchor.js +73 -0
  91. package/dist/games/coins.d.ts +66 -0
  92. package/dist/games/coins.js +165 -0
  93. package/dist/games/game-base.d.ts +84 -0
  94. package/dist/games/game-base.js +204 -0
  95. package/dist/games/index.d.ts +16 -0
  96. package/dist/games/index.js +49 -0
  97. package/dist/games/scores.d.ts +69 -0
  98. package/dist/games/scores.js +191 -0
  99. package/dist/games/tetris/board.d.ts +59 -0
  100. package/dist/games/tetris/board.js +170 -0
  101. package/dist/games/tetris/index.d.ts +109 -0
  102. package/dist/games/tetris/index.js +610 -0
  103. package/dist/games/tetris/pieces.d.ts +44 -0
  104. package/dist/games/tetris/pieces.js +271 -0
  105. package/dist/games/tetris/renderer.d.ts +26 -0
  106. package/dist/games/tetris/renderer.js +77 -0
  107. package/dist/guide/guide-content.d.ts +23 -0
  108. package/dist/guide/guide-content.js +196 -0
  109. package/dist/guide/index.d.ts +8 -0
  110. package/dist/guide/index.js +7 -0
  111. package/dist/guide/shared-content.d.ts +37 -0
  112. package/dist/guide/shared-content.js +1272 -0
  113. package/dist/guide/tutorial-helpers.d.ts +57 -0
  114. package/dist/guide/tutorial-helpers.js +147 -0
  115. package/dist/handlers/ask-user-handlers.d.ts +32 -0
  116. package/dist/handlers/ask-user-handlers.js +104 -0
  117. package/dist/handlers/delegation-handlers.d.ts +34 -0
  118. package/dist/handlers/delegation-handlers.js +291 -0
  119. package/dist/handlers/permission-handler.d.ts +30 -0
  120. package/dist/handlers/permission-handler.js +205 -0
  121. package/dist/index.d.ts +11 -1
  122. package/dist/index.js +448 -271
  123. package/dist/input-handlers/memory-handler.d.ts +1 -1
  124. package/dist/input-handlers/memory-handler.js +2 -1
  125. package/dist/models/index.d.ts +10 -0
  126. package/dist/models/index.js +12 -0
  127. package/dist/models/model-registry.d.ts +38 -0
  128. package/dist/models/model-registry.js +69 -0
  129. package/dist/models/model-tiers.d.ts +28 -0
  130. package/dist/models/model-tiers.js +71 -0
  131. package/dist/models/model-validation.d.ts +25 -0
  132. package/dist/models/model-validation.js +291 -0
  133. package/dist/models/ollama-models.d.ts +73 -0
  134. package/dist/models/ollama-models.js +178 -0
  135. package/dist/models/provider-types.d.ts +6 -0
  136. package/dist/models/provider-types.js +1 -0
  137. package/dist/models/providers.d.ts +35 -0
  138. package/dist/models/providers.js +58 -0
  139. package/dist/models/types.d.ts +4 -0
  140. package/dist/models/types.js +4 -0
  141. package/dist/multi-agent/activity.d.ts +21 -0
  142. package/dist/multi-agent/activity.js +34 -0
  143. package/dist/multi-agent/agent-selection.d.ts +55 -0
  144. package/dist/multi-agent/agent-selection.js +90 -0
  145. package/dist/multi-agent/artifacts.d.ts +197 -0
  146. package/dist/multi-agent/artifacts.js +379 -0
  147. package/dist/multi-agent/checkpointer.d.ts +138 -0
  148. package/dist/multi-agent/checkpointer.js +471 -0
  149. package/dist/multi-agent/collision-utils.d.ts +16 -0
  150. package/dist/multi-agent/collision-utils.js +28 -0
  151. package/dist/multi-agent/context-resolver.d.ts +97 -0
  152. package/dist/multi-agent/context-resolver.js +316 -0
  153. package/dist/multi-agent/custom-agents.d.ts +83 -0
  154. package/dist/multi-agent/custom-agents.js +227 -0
  155. package/dist/multi-agent/delegation-tracker.d.ts +157 -0
  156. package/dist/multi-agent/delegation-tracker.js +243 -0
  157. package/dist/multi-agent/file-lock-hook.d.ts +29 -0
  158. package/dist/multi-agent/file-lock-hook.js +97 -0
  159. package/dist/multi-agent/file-locks.d.ts +58 -0
  160. package/dist/multi-agent/file-locks.js +194 -0
  161. package/dist/multi-agent/index.d.ts +24 -0
  162. package/dist/multi-agent/index.js +30 -0
  163. package/dist/multi-agent/mention-parser.d.ts +64 -0
  164. package/dist/multi-agent/mention-parser.js +146 -0
  165. package/dist/multi-agent/notification-manager.d.ts +84 -0
  166. package/dist/multi-agent/notification-manager.js +224 -0
  167. package/dist/multi-agent/pending-requests.d.ts +122 -0
  168. package/dist/multi-agent/pending-requests.js +155 -0
  169. package/dist/multi-agent/session-registry.d.ts +139 -0
  170. package/dist/multi-agent/session-registry.js +514 -0
  171. package/dist/multi-agent/shared-context.d.ts +293 -0
  172. package/dist/multi-agent/shared-context.js +671 -0
  173. package/dist/multi-agent/skill-requirements.d.ts +66 -0
  174. package/dist/multi-agent/skill-requirements.js +178 -0
  175. package/dist/multi-agent/task-assignment.d.ts +69 -0
  176. package/dist/multi-agent/task-assignment.js +123 -0
  177. package/dist/multi-agent/task-suggestion.d.ts +31 -0
  178. package/dist/multi-agent/task-suggestion.js +72 -0
  179. package/dist/multi-agent/team-agent.d.ts +201 -0
  180. package/dist/multi-agent/team-agent.js +488 -0
  181. package/dist/multi-agent/team.d.ts +286 -0
  182. package/dist/multi-agent/team.js +610 -0
  183. package/dist/multi-agent/tool-config.d.ts +110 -0
  184. package/dist/multi-agent/tool-config.js +661 -0
  185. package/dist/multi-agent/types.d.ts +211 -0
  186. package/dist/multi-agent/types.js +617 -0
  187. package/dist/prompts/plan-mode-prompt.d.ts +11 -0
  188. package/dist/prompts/plan-mode-prompt.js +95 -0
  189. package/dist/repl-helpers.js +3 -2
  190. package/dist/repl-v2.d.ts +401 -2
  191. package/dist/repl-v2.js +2577 -65
  192. package/dist/session/index.d.ts +6 -0
  193. package/dist/session/index.js +6 -0
  194. package/dist/session/project-session-manager.d.ts +158 -0
  195. package/dist/session/project-session-manager.js +650 -0
  196. package/dist/settings/index.d.ts +133 -13
  197. package/dist/settings/index.js +329 -24
  198. package/dist/settings/mcp-config.d.ts +76 -0
  199. package/dist/settings/mcp-config.js +143 -0
  200. package/dist/settings/paths.d.ts +4 -0
  201. package/dist/settings/paths.js +6 -0
  202. package/dist/shared-handlers.d.ts +62 -0
  203. package/dist/shared-handlers.js +48 -0
  204. package/dist/system-prompt/builder.d.ts +5 -0
  205. package/dist/system-prompt/builder.js +4 -0
  206. package/dist/system-prompt/index.d.ts +18 -0
  207. package/dist/system-prompt/index.js +18 -0
  208. package/dist/system-prompt/modules.d.ts +5 -0
  209. package/dist/system-prompt/modules.js +4 -0
  210. package/dist/tabbed-menu.js +2 -1
  211. package/dist/templates/compilr-md-import.d.ts +16 -0
  212. package/dist/templates/compilr-md-import.js +241 -0
  213. package/dist/templates/compilr-md.js +10 -61
  214. package/dist/templates/config-json.d.ts +1 -25
  215. package/dist/templates/index.d.ts +2 -0
  216. package/dist/templates/index.js +34 -73
  217. package/dist/tool-names.d.ts +108 -0
  218. package/dist/tool-names.js +227 -0
  219. package/dist/tools/anchor-tools.d.ts +4 -4
  220. package/dist/tools/anchor-tools.js +1 -1
  221. package/dist/tools/artifact-tools.d.ts +42 -0
  222. package/dist/tools/artifact-tools.js +328 -0
  223. package/dist/tools/ask-user-simple.d.ts +1 -1
  224. package/dist/tools/ask-user-simple.js +2 -1
  225. package/dist/tools/ask-user.d.ts +1 -1
  226. package/dist/tools/ask-user.js +2 -1
  227. package/dist/tools/backlog-wrappers.d.ts +5 -3
  228. package/dist/tools/backlog-wrappers.js +16 -1
  229. package/dist/tools/backlog.d.ts +2 -2
  230. package/dist/tools/backlog.js +1 -1
  231. package/dist/tools/db-tools.d.ts +8 -61
  232. package/dist/tools/db-tools.js +8 -13
  233. package/dist/tools/delegate-background.d.ts +27 -0
  234. package/dist/tools/delegate-background.js +115 -0
  235. package/dist/tools/delegate.d.ts +22 -0
  236. package/dist/tools/delegate.js +97 -0
  237. package/dist/tools/delegation-status.d.ts +16 -0
  238. package/dist/tools/delegation-status.js +128 -0
  239. package/dist/tools/document-db.d.ts +5 -5
  240. package/dist/tools/document-db.js +1 -1
  241. package/dist/tools/guide-tool.d.ts +12 -0
  242. package/dist/tools/guide-tool.js +59 -0
  243. package/dist/tools/handoff.d.ts +25 -0
  244. package/dist/tools/handoff.js +99 -0
  245. package/dist/tools/meta-tools.d.ts +26 -0
  246. package/dist/tools/meta-tools.js +47 -0
  247. package/dist/tools/plan-tools.d.ts +54 -0
  248. package/dist/tools/plan-tools.js +338 -0
  249. package/dist/tools/platform-adapter.d.ts +29 -0
  250. package/dist/tools/platform-adapter.js +394 -0
  251. package/dist/tools/project-db.d.ts +5 -73
  252. package/dist/tools/project-db.js +5 -336
  253. package/dist/tools/recall-work-tool.d.ts +18 -0
  254. package/dist/tools/recall-work-tool.js +82 -0
  255. package/dist/tools/workitem-db.d.ts +43 -11
  256. package/dist/tools/workitem-db.js +186 -5
  257. package/dist/tools.d.ts +67 -2
  258. package/dist/tools.js +237 -47
  259. package/dist/ui/autocomplete-controller.d.ts +42 -0
  260. package/dist/ui/autocomplete-controller.js +384 -0
  261. package/dist/ui/base/index.d.ts +1 -1
  262. package/dist/ui/base/index.js +1 -1
  263. package/dist/ui/base/overlay-base-v2.d.ts +10 -0
  264. package/dist/ui/base/overlay-base-v2.js +14 -0
  265. package/dist/ui/base/render-utils.d.ts +19 -0
  266. package/dist/ui/base/render-utils.js +25 -0
  267. package/dist/ui/base/tabbed-list-overlay-v2.d.ts +16 -1
  268. package/dist/ui/base/tabbed-list-overlay-v2.js +19 -1
  269. package/dist/ui/constants/labels.d.ts +14 -0
  270. package/dist/ui/constants/labels.js +51 -0
  271. package/dist/ui/conversation-store.d.ts +55 -0
  272. package/dist/ui/conversation-store.js +107 -0
  273. package/dist/ui/conversation.js +11 -13
  274. package/dist/ui/diff.d.ts +7 -1
  275. package/dist/ui/diff.js +85 -48
  276. package/dist/ui/ephemeral.js +3 -9
  277. package/dist/ui/file-autocomplete.d.ts +24 -0
  278. package/dist/ui/file-autocomplete.js +56 -0
  279. package/dist/ui/footer-renderer.d.ts +69 -0
  280. package/dist/ui/footer-renderer.js +431 -0
  281. package/dist/ui/footer.d.ts +74 -7
  282. package/dist/ui/footer.js +173 -16
  283. package/dist/ui/input-controller.d.ts +51 -0
  284. package/dist/ui/input-controller.js +176 -0
  285. package/dist/ui/input-prompt.d.ts +19 -0
  286. package/dist/ui/input-prompt.js +206 -14
  287. package/dist/ui/keyboard-handler.d.ts +57 -0
  288. package/dist/ui/keyboard-handler.js +557 -0
  289. package/dist/ui/live-region-facade.d.ts +42 -0
  290. package/dist/ui/live-region-facade.js +205 -0
  291. package/dist/ui/live-region.d.ts +0 -4
  292. package/dist/ui/live-region.js +6 -14
  293. package/dist/ui/mascot/renderer.d.ts +1 -1
  294. package/dist/ui/mascot/renderer.js +37 -2
  295. package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
  296. package/dist/ui/overlay/data/tutorial-content.js +9 -0
  297. package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
  298. package/dist/ui/overlay/data/tutorial-registry.js +116 -0
  299. package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
  300. package/dist/ui/overlay/data/tutorial-types.js +6 -0
  301. package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
  302. package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
  303. package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
  304. package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
  305. package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
  306. package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
  307. package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
  308. package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
  309. package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
  310. package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
  311. package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
  312. package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
  313. package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
  314. package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
  315. package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
  316. package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
  317. package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
  318. package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
  319. package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
  320. package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
  321. package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
  322. package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
  323. package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
  324. package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
  325. package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
  326. package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
  327. package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
  328. package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
  329. package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
  330. package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
  331. package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
  332. package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
  333. package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
  334. package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
  335. package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
  336. package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
  337. package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
  338. package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
  339. package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
  340. package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
  341. package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
  342. package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
  343. package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
  344. package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
  345. package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
  346. package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
  347. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
  348. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
  349. package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
  350. package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
  351. package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
  352. package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
  353. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
  354. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
  355. package/dist/ui/overlay/impl/agents-overlay-v2.js +6 -17
  356. package/dist/ui/overlay/impl/anchors-overlay-v2.js +30 -64
  357. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
  358. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
  359. package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
  360. package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
  361. package/dist/ui/overlay/impl/ask-user-overlay-v2.js +2 -5
  362. package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
  363. package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
  364. package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +4 -1
  365. package/dist/ui/overlay/impl/backlog-overlay-v2.js +55 -16
  366. package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
  367. package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
  368. package/dist/ui/overlay/impl/commands-overlay-v2.js +4 -6
  369. package/dist/ui/overlay/impl/config-overlay-v2.d.ts +12 -1
  370. package/dist/ui/overlay/impl/config-overlay-v2.js +164 -100
  371. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
  372. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
  373. package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +2 -0
  374. package/dist/ui/overlay/impl/dashboard-overlay-v2.js +26 -3
  375. package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
  376. package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
  377. package/dist/ui/overlay/impl/docs-overlay-v2.js +12 -9
  378. package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +7 -0
  379. package/dist/ui/overlay/impl/document-detail-overlay-v2.js +119 -78
  380. package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
  381. package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
  382. package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
  383. package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
  384. package/dist/ui/overlay/impl/help-overlay-v2.d.ts +26 -3
  385. package/dist/ui/overlay/impl/help-overlay-v2.js +20 -42
  386. package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
  387. package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
  388. package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
  389. package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
  390. package/dist/ui/overlay/impl/model-overlay-v2.d.ts +57 -13
  391. package/dist/ui/overlay/impl/model-overlay-v2.js +1086 -61
  392. package/dist/ui/overlay/impl/new-overlay-v2.d.ts +37 -6
  393. package/dist/ui/overlay/impl/new-overlay-v2.js +715 -65
  394. package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
  395. package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
  396. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
  397. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
  398. package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
  399. package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
  400. package/dist/ui/overlay/impl/permission-overlay-v2.js +5 -5
  401. package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
  402. package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
  403. package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
  404. package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
  405. package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
  406. package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
  407. package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +1 -0
  408. package/dist/ui/overlay/impl/projects-overlay-v2.js +278 -44
  409. package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
  410. package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
  411. package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
  412. package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
  413. package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
  414. package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
  415. package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
  416. package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
  417. package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
  418. package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
  419. package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
  420. package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
  421. package/dist/ui/overlay/impl/tools-overlay-v2.js +3 -7
  422. package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +30 -16
  423. package/dist/ui/overlay/impl/tutorial-overlay-v2.js +133 -956
  424. package/dist/ui/overlay/impl/workflow-overlay-v2.js +5 -1
  425. package/dist/ui/overlay/index.d.ts +20 -1
  426. package/dist/ui/overlay/index.js +19 -0
  427. package/dist/ui/overlay/types.d.ts +5 -0
  428. package/dist/ui/overlay-manager.d.ts +43 -0
  429. package/dist/ui/overlay-manager.js +238 -0
  430. package/dist/ui/overlays.js +4 -16
  431. package/dist/ui/permission-overlay.js +6 -5
  432. package/dist/ui/status-bar-controller.d.ts +33 -0
  433. package/dist/ui/status-bar-controller.js +99 -0
  434. package/dist/ui/subagent-renderer.js +3 -19
  435. package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
  436. package/dist/ui/terminal-autocomplete-utils.js +83 -0
  437. package/dist/ui/terminal-line-builders.d.ts +17 -0
  438. package/dist/ui/terminal-line-builders.js +42 -0
  439. package/dist/ui/terminal-render-item.d.ts +16 -0
  440. package/dist/ui/terminal-render-item.js +267 -0
  441. package/dist/ui/terminal-renderer.d.ts +7 -8
  442. package/dist/ui/terminal-renderer.js +7 -8
  443. package/dist/ui/terminal-types.d.ts +179 -0
  444. package/dist/ui/terminal-types.js +34 -0
  445. package/dist/ui/terminal-ui.d.ts +144 -276
  446. package/dist/ui/terminal-ui.js +384 -1861
  447. package/dist/ui/todo-zone.d.ts +19 -1
  448. package/dist/ui/todo-zone.js +71 -13
  449. package/dist/ui/tool-formatters.js +512 -1
  450. package/dist/ui/turn-metrics.d.ts +56 -0
  451. package/dist/ui/turn-metrics.js +75 -0
  452. package/dist/ui/types.d.ts +28 -0
  453. package/dist/ui/types.js +1 -0
  454. package/dist/ui/vscode-diff-ipc.d.ts +102 -0
  455. package/dist/ui/vscode-diff-ipc.js +385 -0
  456. package/dist/utils/credentials.d.ts +24 -5
  457. package/dist/utils/credentials.js +123 -9
  458. package/dist/utils/format-tokens.d.ts +13 -0
  459. package/dist/utils/format-tokens.js +18 -0
  460. package/dist/utils/git-config.d.ts +26 -0
  461. package/dist/utils/git-config.js +54 -0
  462. package/dist/utils/message-utils.d.ts +61 -0
  463. package/dist/utils/message-utils.js +72 -0
  464. package/dist/utils/model-tiers.d.ts +8 -1
  465. package/dist/utils/model-tiers.js +38 -16
  466. package/dist/utils/open-browser.d.ts +5 -0
  467. package/dist/utils/open-browser.js +32 -0
  468. package/dist/utils/path-safety.js +3 -2
  469. package/dist/utils/project-detection.d.ts +58 -0
  470. package/dist/utils/project-detection.js +424 -0
  471. package/dist/utils/project-memory.js +2 -1
  472. package/dist/utils/project-status.d.ts +2 -2
  473. package/dist/utils/startup-perf.d.ts +18 -0
  474. package/dist/utils/startup-perf.js +60 -0
  475. package/dist/utils/token-tracker.d.ts +62 -0
  476. package/dist/utils/token-tracker.js +150 -0
  477. package/dist/utils/token-types.d.ts +23 -0
  478. package/dist/utils/token-types.js +18 -0
  479. package/dist/utils/types/config-types.d.ts +32 -0
  480. package/dist/utils/types/config-types.js +8 -0
  481. package/dist/utils/update-checker.d.ts +28 -0
  482. package/dist/utils/update-checker.js +106 -0
  483. package/dist/utils/version.d.ts +7 -0
  484. package/dist/utils/version.js +10 -0
  485. package/dist/utils/vscode-detect.d.ts +39 -0
  486. package/dist/utils/vscode-detect.js +137 -0
  487. package/package.json +25 -12
  488. package/dist/commands/handler-types.d.ts +0 -68
  489. package/dist/commands/handler-types.js +0 -8
  490. package/dist/commands/handlers/agent-commands.d.ts +0 -13
  491. package/dist/commands/handlers/agent-commands.js +0 -305
  492. package/dist/commands/handlers/design-commands.d.ts +0 -15
  493. package/dist/commands/handlers/design-commands.js +0 -334
  494. package/dist/commands/handlers/index.d.ts +0 -20
  495. package/dist/commands/handlers/index.js +0 -43
  496. package/dist/commands/handlers/overlay-commands.d.ts +0 -21
  497. package/dist/commands/handlers/overlay-commands.js +0 -287
  498. package/dist/commands/handlers/project-commands.d.ts +0 -11
  499. package/dist/commands/handlers/project-commands.js +0 -167
  500. package/dist/commands/handlers/simple-commands.d.ts +0 -19
  501. package/dist/commands/handlers/simple-commands.js +0 -144
  502. package/dist/commands/registry.d.ts +0 -50
  503. package/dist/commands/registry.js +0 -75
  504. package/dist/index.old.d.ts +0 -7
  505. package/dist/index.old.js +0 -1014
  506. package/dist/repl.d.ts +0 -149
  507. package/dist/repl.js +0 -1151
  508. package/dist/templates/claude-md.d.ts +0 -7
  509. package/dist/templates/claude-md.js +0 -189
  510. package/dist/test-autocomplete.d.ts +0 -7
  511. package/dist/test-autocomplete.js +0 -85
  512. package/dist/test-tabbed-menu.d.ts +0 -7
  513. package/dist/test-tabbed-menu.js +0 -25
  514. package/dist/tool-selector.d.ts +0 -71
  515. package/dist/tool-selector.js +0 -184
  516. package/dist/ui/agents-overlay-v2.d.ts +0 -43
  517. package/dist/ui/agents-overlay-v2.js +0 -809
  518. package/dist/ui/agents-overlay.d.ts +0 -12
  519. package/dist/ui/agents-overlay.js +0 -863
  520. package/dist/ui/anchors-overlay.d.ts +0 -12
  521. package/dist/ui/anchors-overlay.js +0 -775
  522. package/dist/ui/arch-type-overlay.d.ts +0 -15
  523. package/dist/ui/arch-type-overlay.js +0 -201
  524. package/dist/ui/ask-user-overlay-v2.d.ts +0 -26
  525. package/dist/ui/ask-user-overlay-v2.js +0 -555
  526. package/dist/ui/ask-user-simple-overlay-v2.d.ts +0 -25
  527. package/dist/ui/ask-user-simple-overlay-v2.js +0 -215
  528. package/dist/ui/backlog-overlay.d.ts +0 -32
  529. package/dist/ui/backlog-overlay.js +0 -652
  530. package/dist/ui/commands-overlay-v2.d.ts +0 -33
  531. package/dist/ui/commands-overlay-v2.js +0 -441
  532. package/dist/ui/commands-overlay.d.ts +0 -16
  533. package/dist/ui/commands-overlay.js +0 -439
  534. package/dist/ui/config-overlay.d.ts +0 -35
  535. package/dist/ui/config-overlay.js +0 -707
  536. package/dist/ui/docs-overlay.d.ts +0 -17
  537. package/dist/ui/docs-overlay.js +0 -303
  538. package/dist/ui/footer-v2.d.ts +0 -222
  539. package/dist/ui/footer-v2.js +0 -1349
  540. package/dist/ui/help-overlay-v2.d.ts +0 -34
  541. package/dist/ui/help-overlay-v2.js +0 -309
  542. package/dist/ui/help-overlay.d.ts +0 -16
  543. package/dist/ui/help-overlay.js +0 -316
  544. package/dist/ui/init-overlay-v2.d.ts +0 -34
  545. package/dist/ui/init-overlay-v2.js +0 -600
  546. package/dist/ui/init-overlay.d.ts +0 -34
  547. package/dist/ui/init-overlay.js +0 -604
  548. package/dist/ui/input-prompt-v2.d.ts +0 -180
  549. package/dist/ui/input-prompt-v2.js +0 -999
  550. package/dist/ui/iteration-limit-overlay-v2.d.ts +0 -21
  551. package/dist/ui/iteration-limit-overlay-v2.js +0 -114
  552. package/dist/ui/keys-overlay-v2.d.ts +0 -41
  553. package/dist/ui/keys-overlay-v2.js +0 -248
  554. package/dist/ui/mascot-overlay-v2.d.ts +0 -41
  555. package/dist/ui/mascot-overlay-v2.js +0 -138
  556. package/dist/ui/mascot-overlay.d.ts +0 -21
  557. package/dist/ui/mascot-overlay.js +0 -146
  558. package/dist/ui/model-overlay-v2.d.ts +0 -49
  559. package/dist/ui/model-overlay-v2.js +0 -118
  560. package/dist/ui/model-overlay.d.ts +0 -27
  561. package/dist/ui/model-overlay.js +0 -221
  562. package/dist/ui/model-warning-overlay.d.ts +0 -30
  563. package/dist/ui/model-warning-overlay.js +0 -169
  564. package/dist/ui/new-overlay.d.ts +0 -34
  565. package/dist/ui/new-overlay.js +0 -604
  566. package/dist/ui/overlay/impl/init-overlay-v2.d.ts +0 -77
  567. package/dist/ui/overlay/impl/init-overlay-v2.js +0 -593
  568. package/dist/ui/overlay/overlay-types.d.ts +0 -128
  569. package/dist/ui/overlay/overlay-types.js +0 -22
  570. package/dist/ui/overlays/help-overlay-v2.d.ts +0 -28
  571. package/dist/ui/overlays/help-overlay-v2.js +0 -198
  572. package/dist/ui/overlays/index.d.ts +0 -11
  573. package/dist/ui/overlays/index.js +0 -11
  574. package/dist/ui/permission-overlay-v2.d.ts +0 -36
  575. package/dist/ui/permission-overlay-v2.js +0 -380
  576. package/dist/ui/projects-overlay.d.ts +0 -19
  577. package/dist/ui/projects-overlay.js +0 -484
  578. package/dist/ui/theme-overlay-v2.d.ts +0 -42
  579. package/dist/ui/theme-overlay-v2.js +0 -135
  580. package/dist/ui/theme-overlay.d.ts +0 -24
  581. package/dist/ui/theme-overlay.js +0 -127
  582. package/dist/ui/tools-overlay-v2.d.ts +0 -47
  583. package/dist/ui/tools-overlay-v2.js +0 -218
  584. package/dist/ui/tools-overlay.d.ts +0 -34
  585. package/dist/ui/tools-overlay.js +0 -230
  586. package/dist/ui/tutorial-overlay-v2.d.ts +0 -31
  587. package/dist/ui/tutorial-overlay-v2.js +0 -1035
  588. package/dist/ui/tutorial-overlay.d.ts +0 -11
  589. package/dist/ui/tutorial-overlay.js +0 -1034
  590. package/dist/ui/workflow-overlay.d.ts +0 -22
  591. 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
- }