@compilr-dev/cli 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (634) hide show
  1. package/README.md +254 -68
  2. package/dist/.tsbuildinfo.app +1 -0
  3. package/dist/.tsbuildinfo.data +1 -0
  4. package/dist/.tsbuildinfo.domain +1 -0
  5. package/dist/.tsbuildinfo.foundation +1 -0
  6. package/dist/agent.d.ts +134 -4
  7. package/dist/agent.js +345 -166
  8. package/dist/anchors/index.d.ts +9 -0
  9. package/dist/anchors/index.js +9 -0
  10. package/dist/anchors/project-anchors.d.ts +79 -0
  11. package/dist/anchors/project-anchors.js +202 -0
  12. package/dist/auth/api-client.d.ts +124 -0
  13. package/dist/auth/api-client.js +261 -0
  14. package/dist/auth/index.d.ts +172 -0
  15. package/dist/auth/index.js +545 -0
  16. package/dist/auth/storage.d.ts +52 -0
  17. package/dist/auth/storage.js +118 -0
  18. package/dist/changelog/index.d.ts +16 -0
  19. package/dist/changelog/index.js +24 -0
  20. package/dist/changelog/releases.d.ts +17 -0
  21. package/dist/changelog/releases.js +63 -0
  22. package/dist/commands/index.d.ts +2 -1
  23. package/dist/commands-v2/handlers/auth.d.ts +10 -0
  24. package/dist/commands-v2/handlers/auth.js +118 -0
  25. package/dist/commands-v2/handlers/background.d.ts +14 -0
  26. package/dist/commands-v2/handlers/background.js +276 -0
  27. package/dist/commands-v2/handlers/context.d.ts +13 -0
  28. package/dist/commands-v2/handlers/context.js +533 -0
  29. package/dist/commands-v2/handlers/core.d.ts +14 -0
  30. package/dist/commands-v2/handlers/core.js +290 -0
  31. package/dist/commands-v2/handlers/debug.d.ts +11 -0
  32. package/dist/commands-v2/handlers/debug.js +177 -0
  33. package/dist/commands-v2/handlers/delegations.d.ts +8 -0
  34. package/dist/commands-v2/handlers/delegations.js +29 -0
  35. package/dist/commands-v2/handlers/files.d.ts +8 -0
  36. package/dist/commands-v2/handlers/files.js +162 -0
  37. package/dist/commands-v2/handlers/filter.d.ts +9 -0
  38. package/dist/commands-v2/handlers/filter.js +130 -0
  39. package/dist/commands-v2/handlers/games.d.ts +7 -0
  40. package/dist/commands-v2/handlers/games.js +57 -0
  41. package/dist/commands-v2/handlers/index.d.ts +25 -0
  42. package/dist/commands-v2/handlers/index.js +63 -0
  43. package/dist/commands-v2/handlers/mcp.d.ts +8 -0
  44. package/dist/commands-v2/handlers/mcp.js +39 -0
  45. package/dist/commands-v2/handlers/notifications.d.ts +9 -0
  46. package/dist/commands-v2/handlers/notifications.js +34 -0
  47. package/dist/commands-v2/handlers/project.d.ts +22 -0
  48. package/dist/commands-v2/handlers/project.js +1035 -0
  49. package/dist/commands-v2/handlers/reset.d.ts +11 -0
  50. package/dist/commands-v2/handlers/reset.js +118 -0
  51. package/dist/commands-v2/handlers/session.d.ts +161 -0
  52. package/dist/commands-v2/handlers/session.js +805 -0
  53. package/dist/commands-v2/handlers/settings.d.ts +17 -0
  54. package/dist/commands-v2/handlers/settings.js +417 -0
  55. package/dist/commands-v2/handlers/tasks.d.ts +5 -0
  56. package/dist/commands-v2/handlers/tasks.js +36 -0
  57. package/dist/commands-v2/handlers/team.d.ts +9 -0
  58. package/dist/commands-v2/handlers/team.js +549 -0
  59. package/dist/commands-v2/handlers/terminals.d.ts +9 -0
  60. package/dist/commands-v2/handlers/terminals.js +34 -0
  61. package/dist/commands-v2/index.d.ts +14 -0
  62. package/dist/commands-v2/index.js +18 -0
  63. package/dist/commands-v2/registry.d.ts +52 -0
  64. package/dist/commands-v2/registry.js +114 -0
  65. package/dist/commands-v2/types.d.ts +153 -0
  66. package/dist/commands-v2/types.js +7 -0
  67. package/dist/commands.js +123 -7
  68. package/dist/compilr-diff-companion.vsix +0 -0
  69. package/dist/db/index.js +98 -4
  70. package/dist/db/repositories/document-repository.d.ts +2 -0
  71. package/dist/db/repositories/document-repository.js +5 -1
  72. package/dist/db/repositories/index.d.ts +2 -0
  73. package/dist/db/repositories/index.js +1 -0
  74. package/dist/db/repositories/plan-repository.d.ts +101 -0
  75. package/dist/db/repositories/plan-repository.js +275 -0
  76. package/dist/db/repositories/project-repository.d.ts +6 -0
  77. package/dist/db/repositories/project-repository.js +41 -0
  78. package/dist/db/repositories/work-item-repository.d.ts +15 -0
  79. package/dist/db/repositories/work-item-repository.js +69 -4
  80. package/dist/db/schema.d.ts +40 -3
  81. package/dist/db/schema.js +66 -3
  82. package/dist/episodes/index.d.ts +20 -0
  83. package/dist/episodes/index.js +27 -0
  84. package/dist/episodes/recorder.d.ts +51 -0
  85. package/dist/episodes/recorder.js +195 -0
  86. package/dist/episodes/significant-work.d.ts +21 -0
  87. package/dist/episodes/significant-work.js +56 -0
  88. package/dist/episodes/store.d.ts +38 -0
  89. package/dist/episodes/store.js +199 -0
  90. package/dist/episodes/types.d.ts +35 -0
  91. package/dist/episodes/types.js +6 -0
  92. package/dist/episodes/work-at-risk.d.ts +12 -0
  93. package/dist/episodes/work-at-risk.js +38 -0
  94. package/dist/episodes/work-summary-anchor.d.ts +23 -0
  95. package/dist/episodes/work-summary-anchor.js +73 -0
  96. package/dist/games/coins.d.ts +66 -0
  97. package/dist/games/coins.js +165 -0
  98. package/dist/games/game-base.d.ts +84 -0
  99. package/dist/games/game-base.js +204 -0
  100. package/dist/games/index.d.ts +16 -0
  101. package/dist/games/index.js +49 -0
  102. package/dist/games/scores.d.ts +69 -0
  103. package/dist/games/scores.js +191 -0
  104. package/dist/games/tetris/board.d.ts +59 -0
  105. package/dist/games/tetris/board.js +170 -0
  106. package/dist/games/tetris/index.d.ts +109 -0
  107. package/dist/games/tetris/index.js +610 -0
  108. package/dist/games/tetris/pieces.d.ts +44 -0
  109. package/dist/games/tetris/pieces.js +271 -0
  110. package/dist/games/tetris/renderer.d.ts +26 -0
  111. package/dist/games/tetris/renderer.js +77 -0
  112. package/dist/guide/guide-content.d.ts +23 -0
  113. package/dist/guide/guide-content.js +196 -0
  114. package/dist/guide/index.d.ts +8 -0
  115. package/dist/guide/index.js +7 -0
  116. package/dist/guide/shared-content.d.ts +37 -0
  117. package/dist/guide/shared-content.js +1272 -0
  118. package/dist/guide/tutorial-helpers.d.ts +57 -0
  119. package/dist/guide/tutorial-helpers.js +147 -0
  120. package/dist/handlers/ask-user-handlers.d.ts +32 -0
  121. package/dist/handlers/ask-user-handlers.js +104 -0
  122. package/dist/handlers/delegation-handlers.d.ts +34 -0
  123. package/dist/handlers/delegation-handlers.js +291 -0
  124. package/dist/handlers/permission-handler.d.ts +30 -0
  125. package/dist/handlers/permission-handler.js +205 -0
  126. package/dist/index.d.ts +11 -1
  127. package/dist/index.js +615 -179
  128. package/dist/input-handlers/index.d.ts +7 -0
  129. package/dist/input-handlers/index.js +7 -0
  130. package/dist/input-handlers/memory-handler.d.ts +26 -0
  131. package/dist/input-handlers/memory-handler.js +69 -0
  132. package/dist/models/index.d.ts +10 -0
  133. package/dist/models/index.js +12 -0
  134. package/dist/models/model-registry.d.ts +38 -0
  135. package/dist/models/model-registry.js +69 -0
  136. package/dist/models/model-tiers.d.ts +28 -0
  137. package/dist/models/model-tiers.js +71 -0
  138. package/dist/models/model-validation.d.ts +25 -0
  139. package/dist/models/model-validation.js +291 -0
  140. package/dist/models/ollama-models.d.ts +73 -0
  141. package/dist/models/ollama-models.js +178 -0
  142. package/dist/models/provider-types.d.ts +6 -0
  143. package/dist/models/provider-types.js +1 -0
  144. package/dist/models/providers.d.ts +35 -0
  145. package/dist/models/providers.js +58 -0
  146. package/dist/models/types.d.ts +4 -0
  147. package/dist/models/types.js +4 -0
  148. package/dist/multi-agent/activity.d.ts +21 -0
  149. package/dist/multi-agent/activity.js +34 -0
  150. package/dist/multi-agent/agent-selection.d.ts +55 -0
  151. package/dist/multi-agent/agent-selection.js +90 -0
  152. package/dist/multi-agent/artifacts.d.ts +197 -0
  153. package/dist/multi-agent/artifacts.js +379 -0
  154. package/dist/multi-agent/checkpointer.d.ts +138 -0
  155. package/dist/multi-agent/checkpointer.js +471 -0
  156. package/dist/multi-agent/collision-utils.d.ts +16 -0
  157. package/dist/multi-agent/collision-utils.js +28 -0
  158. package/dist/multi-agent/context-resolver.d.ts +97 -0
  159. package/dist/multi-agent/context-resolver.js +316 -0
  160. package/dist/multi-agent/custom-agents.d.ts +83 -0
  161. package/dist/multi-agent/custom-agents.js +227 -0
  162. package/dist/multi-agent/delegation-tracker.d.ts +157 -0
  163. package/dist/multi-agent/delegation-tracker.js +243 -0
  164. package/dist/multi-agent/file-lock-hook.d.ts +29 -0
  165. package/dist/multi-agent/file-lock-hook.js +97 -0
  166. package/dist/multi-agent/file-locks.d.ts +58 -0
  167. package/dist/multi-agent/file-locks.js +194 -0
  168. package/dist/multi-agent/index.d.ts +24 -0
  169. package/dist/multi-agent/index.js +30 -0
  170. package/dist/multi-agent/mention-parser.d.ts +64 -0
  171. package/dist/multi-agent/mention-parser.js +146 -0
  172. package/dist/multi-agent/notification-manager.d.ts +84 -0
  173. package/dist/multi-agent/notification-manager.js +224 -0
  174. package/dist/multi-agent/pending-requests.d.ts +122 -0
  175. package/dist/multi-agent/pending-requests.js +155 -0
  176. package/dist/multi-agent/session-registry.d.ts +139 -0
  177. package/dist/multi-agent/session-registry.js +514 -0
  178. package/dist/multi-agent/shared-context.d.ts +293 -0
  179. package/dist/multi-agent/shared-context.js +671 -0
  180. package/dist/multi-agent/skill-requirements.d.ts +66 -0
  181. package/dist/multi-agent/skill-requirements.js +178 -0
  182. package/dist/multi-agent/task-assignment.d.ts +69 -0
  183. package/dist/multi-agent/task-assignment.js +123 -0
  184. package/dist/multi-agent/task-suggestion.d.ts +31 -0
  185. package/dist/multi-agent/task-suggestion.js +72 -0
  186. package/dist/multi-agent/team-agent.d.ts +201 -0
  187. package/dist/multi-agent/team-agent.js +488 -0
  188. package/dist/multi-agent/team.d.ts +286 -0
  189. package/dist/multi-agent/team.js +610 -0
  190. package/dist/multi-agent/tool-config.d.ts +110 -0
  191. package/dist/multi-agent/tool-config.js +661 -0
  192. package/dist/multi-agent/types.d.ts +211 -0
  193. package/dist/multi-agent/types.js +617 -0
  194. package/dist/prompts/plan-mode-prompt.d.ts +11 -0
  195. package/dist/prompts/plan-mode-prompt.js +95 -0
  196. package/dist/repl-helpers.d.ts +63 -0
  197. package/dist/repl-helpers.js +319 -0
  198. package/dist/repl-v2.d.ts +554 -0
  199. package/dist/repl-v2.js +3286 -0
  200. package/dist/session/index.d.ts +6 -0
  201. package/dist/session/index.js +6 -0
  202. package/dist/session/project-session-manager.d.ts +158 -0
  203. package/dist/session/project-session-manager.js +650 -0
  204. package/dist/settings/index.d.ts +156 -13
  205. package/dist/settings/index.js +377 -24
  206. package/dist/settings/mcp-config.d.ts +76 -0
  207. package/dist/settings/mcp-config.js +143 -0
  208. package/dist/settings/paths.d.ts +114 -0
  209. package/dist/settings/paths.js +270 -0
  210. package/dist/shared-handlers.d.ts +62 -0
  211. package/dist/shared-handlers.js +48 -0
  212. package/dist/system-prompt/builder.d.ts +5 -0
  213. package/dist/system-prompt/builder.js +4 -0
  214. package/dist/system-prompt/index.d.ts +18 -0
  215. package/dist/system-prompt/index.js +18 -0
  216. package/dist/system-prompt/modules.d.ts +5 -0
  217. package/dist/system-prompt/modules.js +4 -0
  218. package/dist/tabbed-menu.js +2 -1
  219. package/dist/templates/compilr-md-import.d.ts +16 -0
  220. package/dist/templates/compilr-md-import.js +241 -0
  221. package/dist/templates/compilr-md.js +10 -58
  222. package/dist/templates/config-json.d.ts +1 -25
  223. package/dist/templates/index.d.ts +2 -0
  224. package/dist/templates/index.js +35 -75
  225. package/dist/themes/colors.js +3 -1
  226. package/dist/themes/registry.d.ts +5 -36
  227. package/dist/themes/registry.js +11 -95
  228. package/dist/themes/types.d.ts +3 -38
  229. package/dist/themes/types.js +2 -2
  230. package/dist/tool-names.d.ts +108 -0
  231. package/dist/tool-names.js +227 -0
  232. package/dist/tools/anchor-tools.d.ts +31 -0
  233. package/dist/tools/anchor-tools.js +255 -0
  234. package/dist/tools/artifact-tools.d.ts +42 -0
  235. package/dist/tools/artifact-tools.js +328 -0
  236. package/dist/tools/ask-user-simple.d.ts +1 -1
  237. package/dist/tools/ask-user-simple.js +2 -1
  238. package/dist/tools/ask-user.d.ts +1 -1
  239. package/dist/tools/ask-user.js +2 -1
  240. package/dist/tools/backlog-wrappers.d.ts +56 -0
  241. package/dist/tools/backlog-wrappers.js +353 -0
  242. package/dist/tools/backlog.d.ts +2 -2
  243. package/dist/tools/backlog.js +2 -2
  244. package/dist/tools/db-tools.d.ts +12 -0
  245. package/dist/tools/db-tools.js +14 -0
  246. package/dist/tools/delegate-background.d.ts +27 -0
  247. package/dist/tools/delegate-background.js +115 -0
  248. package/dist/tools/delegate.d.ts +22 -0
  249. package/dist/tools/delegate.js +97 -0
  250. package/dist/tools/delegation-status.d.ts +16 -0
  251. package/dist/tools/delegation-status.js +128 -0
  252. package/dist/tools/document-db.d.ts +43 -0
  253. package/dist/tools/document-db.js +220 -0
  254. package/dist/tools/guide-tool.d.ts +12 -0
  255. package/dist/tools/guide-tool.js +59 -0
  256. package/dist/tools/handoff.d.ts +25 -0
  257. package/dist/tools/handoff.js +99 -0
  258. package/dist/tools/meta-tools.d.ts +26 -0
  259. package/dist/tools/meta-tools.js +47 -0
  260. package/dist/tools/plan-tools.d.ts +54 -0
  261. package/dist/tools/plan-tools.js +338 -0
  262. package/dist/tools/platform-adapter.d.ts +29 -0
  263. package/dist/tools/platform-adapter.js +394 -0
  264. package/dist/tools/project-db.d.ts +34 -0
  265. package/dist/tools/project-db.js +39 -0
  266. package/dist/tools/recall-work-tool.d.ts +18 -0
  267. package/dist/tools/recall-work-tool.js +82 -0
  268. package/dist/tools/workitem-db.d.ts +135 -0
  269. package/dist/tools/workitem-db.js +730 -0
  270. package/dist/tools.d.ts +67 -2
  271. package/dist/tools.js +238 -38
  272. package/dist/ui/ask-user-overlay.d.ts +2 -2
  273. package/dist/ui/ask-user-overlay.js +443 -535
  274. package/dist/ui/ask-user-simple-overlay.d.ts +2 -2
  275. package/dist/ui/ask-user-simple-overlay.js +182 -209
  276. package/dist/ui/autocomplete-controller.d.ts +42 -0
  277. package/dist/ui/autocomplete-controller.js +384 -0
  278. package/dist/ui/base/index.d.ts +26 -0
  279. package/dist/ui/base/index.js +33 -0
  280. package/dist/ui/base/inline-overlay-utils.d.ts +217 -0
  281. package/dist/ui/base/inline-overlay-utils.js +320 -0
  282. package/dist/ui/base/inline-overlay.d.ts +159 -0
  283. package/dist/ui/base/inline-overlay.js +257 -0
  284. package/dist/ui/base/key-utils.d.ts +15 -0
  285. package/dist/ui/base/key-utils.js +30 -0
  286. package/dist/ui/base/overlay-base-v2.d.ts +203 -0
  287. package/dist/ui/base/overlay-base-v2.js +260 -0
  288. package/dist/ui/base/overlay-base.d.ts +156 -0
  289. package/dist/ui/base/overlay-base.js +238 -0
  290. package/dist/ui/base/overlay-lifecycle.d.ts +65 -0
  291. package/dist/ui/base/overlay-lifecycle.js +159 -0
  292. package/dist/ui/base/overlay-types.d.ts +185 -0
  293. package/dist/ui/base/overlay-types.js +7 -0
  294. package/dist/ui/base/render-utils.d.ts +27 -0
  295. package/dist/ui/base/render-utils.js +36 -0
  296. package/dist/ui/base/screen-stack.d.ts +148 -0
  297. package/dist/ui/base/screen-stack.js +184 -0
  298. package/dist/ui/base/tabbed-list-overlay-v2.d.ts +118 -0
  299. package/dist/ui/base/tabbed-list-overlay-v2.js +335 -0
  300. package/dist/ui/base/tabbed-list-overlay.d.ts +153 -0
  301. package/dist/ui/base/tabbed-list-overlay.js +369 -0
  302. package/dist/ui/constants/labels.d.ts +14 -0
  303. package/dist/ui/constants/labels.js +51 -0
  304. package/dist/ui/conversation-store.d.ts +55 -0
  305. package/dist/ui/conversation-store.js +107 -0
  306. package/dist/ui/conversation.d.ts +75 -4
  307. package/dist/ui/conversation.js +376 -165
  308. package/dist/ui/diff.d.ts +7 -1
  309. package/dist/ui/diff.js +85 -48
  310. package/dist/ui/ephemeral.d.ts +1 -1
  311. package/dist/ui/ephemeral.js +4 -10
  312. package/dist/ui/features/index.d.ts +34 -0
  313. package/dist/ui/features/index.js +34 -0
  314. package/dist/ui/features/input-feature.d.ts +85 -0
  315. package/dist/ui/features/input-feature.js +238 -0
  316. package/dist/ui/features/list-feature.d.ts +155 -0
  317. package/dist/ui/features/list-feature.js +244 -0
  318. package/dist/ui/features/pagination-feature.d.ts +154 -0
  319. package/dist/ui/features/pagination-feature.js +238 -0
  320. package/dist/ui/features/search-feature.d.ts +148 -0
  321. package/dist/ui/features/search-feature.js +185 -0
  322. package/dist/ui/features/tab-feature.d.ts +194 -0
  323. package/dist/ui/features/tab-feature.js +307 -0
  324. package/dist/ui/file-autocomplete.d.ts +24 -0
  325. package/dist/ui/file-autocomplete.js +56 -0
  326. package/dist/ui/footer-renderer.d.ts +69 -0
  327. package/dist/ui/footer-renderer.js +431 -0
  328. package/dist/ui/footer.d.ts +181 -7
  329. package/dist/ui/footer.js +523 -74
  330. package/dist/ui/guardrail-overlay.d.ts +29 -0
  331. package/dist/ui/guardrail-overlay.js +145 -0
  332. package/dist/ui/index.d.ts +1 -1
  333. package/dist/ui/index.js +1 -3
  334. package/dist/ui/input-controller.d.ts +51 -0
  335. package/dist/ui/input-controller.js +176 -0
  336. package/dist/ui/input-prompt.d.ts +135 -33
  337. package/dist/ui/input-prompt.js +728 -337
  338. package/dist/ui/iteration-limit-overlay.d.ts +2 -2
  339. package/dist/ui/iteration-limit-overlay.js +92 -128
  340. package/dist/ui/keyboard-handler.d.ts +57 -0
  341. package/dist/ui/keyboard-handler.js +557 -0
  342. package/dist/ui/keys-overlay.d.ts +1 -0
  343. package/dist/ui/keys-overlay.js +203 -141
  344. package/dist/ui/line-utils.d.ts +88 -0
  345. package/dist/ui/line-utils.js +150 -0
  346. package/dist/ui/live-region-facade.d.ts +42 -0
  347. package/dist/ui/live-region-facade.js +205 -0
  348. package/dist/ui/live-region.d.ts +157 -0
  349. package/dist/ui/live-region.js +379 -0
  350. package/dist/ui/mascot/expressions.d.ts +32 -0
  351. package/dist/ui/mascot/expressions.js +213 -0
  352. package/dist/ui/mascot/index.d.ts +8 -0
  353. package/dist/ui/mascot/index.js +8 -0
  354. package/dist/ui/mascot/renderer.d.ts +19 -0
  355. package/dist/ui/mascot/renderer.js +132 -0
  356. package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
  357. package/dist/ui/overlay/data/tutorial-content.js +9 -0
  358. package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
  359. package/dist/ui/overlay/data/tutorial-registry.js +116 -0
  360. package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
  361. package/dist/ui/overlay/data/tutorial-types.js +6 -0
  362. package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
  363. package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
  364. package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
  365. package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
  366. package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
  367. package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
  368. package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
  369. package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
  370. package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
  371. package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
  372. package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
  373. package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
  374. package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
  375. package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
  376. package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
  377. package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
  378. package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
  379. package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
  380. package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
  381. package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
  382. package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
  383. package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
  384. package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
  385. package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
  386. package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
  387. package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
  388. package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
  389. package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
  390. package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
  391. package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
  392. package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
  393. package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
  394. package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
  395. package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
  396. package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
  397. package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
  398. package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
  399. package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
  400. package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
  401. package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
  402. package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
  403. package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
  404. package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
  405. package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
  406. package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
  407. package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
  408. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
  409. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
  410. package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
  411. package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
  412. package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
  413. package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
  414. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
  415. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
  416. package/dist/ui/overlay/impl/agents-overlay-v2.d.ts +45 -0
  417. package/dist/ui/overlay/impl/agents-overlay-v2.js +814 -0
  418. package/dist/ui/overlay/impl/anchors-overlay-v2.d.ts +47 -0
  419. package/dist/ui/overlay/impl/anchors-overlay-v2.js +749 -0
  420. package/dist/ui/overlay/impl/arch-type-overlay-v2.d.ts +37 -0
  421. package/dist/ui/overlay/impl/arch-type-overlay-v2.js +240 -0
  422. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
  423. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
  424. package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
  425. package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
  426. package/dist/ui/overlay/impl/ask-user-overlay-v2.d.ts +72 -0
  427. package/dist/ui/overlay/impl/ask-user-overlay-v2.js +581 -0
  428. package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.d.ts +46 -0
  429. package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.js +204 -0
  430. package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
  431. package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
  432. package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +52 -0
  433. package/dist/ui/overlay/impl/backlog-overlay-v2.js +681 -0
  434. package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
  435. package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
  436. package/dist/ui/overlay/impl/commands-overlay-v2.d.ts +33 -0
  437. package/dist/ui/overlay/impl/commands-overlay-v2.js +439 -0
  438. package/dist/ui/overlay/impl/config-overlay-v2.d.ts +111 -0
  439. package/dist/ui/overlay/impl/config-overlay-v2.js +718 -0
  440. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
  441. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
  442. package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +57 -0
  443. package/dist/ui/overlay/impl/dashboard-overlay-v2.js +382 -0
  444. package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
  445. package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
  446. package/dist/ui/overlay/impl/docs-overlay-v2.d.ts +45 -0
  447. package/dist/ui/overlay/impl/docs-overlay-v2.js +117 -0
  448. package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +84 -0
  449. package/dist/ui/overlay/impl/document-detail-overlay-v2.js +1112 -0
  450. package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
  451. package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
  452. package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
  453. package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
  454. package/dist/ui/overlay/impl/guardrail-overlay-v2.d.ts +43 -0
  455. package/dist/ui/overlay/impl/guardrail-overlay-v2.js +114 -0
  456. package/dist/ui/overlay/impl/help-overlay-v2.d.ts +57 -0
  457. package/dist/ui/overlay/impl/help-overlay-v2.js +287 -0
  458. package/dist/ui/overlay/impl/init-setup-overlay-v2.d.ts +25 -0
  459. package/dist/ui/overlay/impl/init-setup-overlay-v2.js +97 -0
  460. package/dist/ui/overlay/impl/iteration-limit-overlay-v2.d.ts +35 -0
  461. package/dist/ui/overlay/impl/iteration-limit-overlay-v2.js +105 -0
  462. package/dist/ui/overlay/impl/keys-overlay-v2.d.ts +41 -0
  463. package/dist/ui/overlay/impl/keys-overlay-v2.js +248 -0
  464. package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
  465. package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
  466. package/dist/ui/overlay/impl/mascot-overlay-v2.d.ts +41 -0
  467. package/dist/ui/overlay/impl/mascot-overlay-v2.js +138 -0
  468. package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
  469. package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
  470. package/dist/ui/overlay/impl/model-overlay-v2.d.ts +93 -0
  471. package/dist/ui/overlay/impl/model-overlay-v2.js +1143 -0
  472. package/dist/ui/overlay/impl/model-warning-overlay-v2.d.ts +46 -0
  473. package/dist/ui/overlay/impl/model-warning-overlay-v2.js +132 -0
  474. package/dist/ui/overlay/impl/new-overlay-v2.d.ts +108 -0
  475. package/dist/ui/overlay/impl/new-overlay-v2.js +1243 -0
  476. package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
  477. package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
  478. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
  479. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
  480. package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
  481. package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
  482. package/dist/ui/overlay/impl/permission-overlay-v2.d.ts +36 -0
  483. package/dist/ui/overlay/impl/permission-overlay-v2.js +380 -0
  484. package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
  485. package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
  486. package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
  487. package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
  488. package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
  489. package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
  490. package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +37 -0
  491. package/dist/ui/overlay/impl/projects-overlay-v2.js +733 -0
  492. package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
  493. package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
  494. package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
  495. package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
  496. package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
  497. package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
  498. package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
  499. package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
  500. package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
  501. package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
  502. package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
  503. package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
  504. package/dist/ui/overlay/impl/theme-overlay-v2.d.ts +42 -0
  505. package/dist/ui/overlay/impl/theme-overlay-v2.js +135 -0
  506. package/dist/ui/overlay/impl/tools-overlay-v2.d.ts +47 -0
  507. package/dist/ui/overlay/impl/tools-overlay-v2.js +214 -0
  508. package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +45 -0
  509. package/dist/ui/overlay/impl/tutorial-overlay-v2.js +212 -0
  510. package/dist/ui/overlay/impl/workflow-overlay-v2.d.ts +80 -0
  511. package/dist/ui/overlay/impl/workflow-overlay-v2.js +641 -0
  512. package/dist/ui/overlay/index.d.ts +52 -0
  513. package/dist/ui/overlay/index.js +54 -0
  514. package/dist/ui/overlay/key-utils.d.ts +6 -0
  515. package/dist/ui/overlay/key-utils.js +6 -0
  516. package/dist/ui/overlay/types.d.ts +140 -0
  517. package/dist/ui/overlay/types.js +22 -0
  518. package/dist/ui/overlay-manager.d.ts +43 -0
  519. package/dist/ui/overlay-manager.js +238 -0
  520. package/dist/ui/overlays.d.ts +0 -4
  521. package/dist/ui/overlays.js +4 -460
  522. package/dist/ui/permission-overlay.d.ts +1 -1
  523. package/dist/ui/permission-overlay.js +189 -300
  524. package/dist/ui/providers/types.d.ts +178 -0
  525. package/dist/ui/providers/types.js +9 -0
  526. package/dist/ui/render-modes.d.ts +36 -0
  527. package/dist/ui/render-modes.js +44 -0
  528. package/dist/ui/startup-menu.d.ts +36 -0
  529. package/dist/ui/startup-menu.js +236 -0
  530. package/dist/ui/status-bar-controller.d.ts +33 -0
  531. package/dist/ui/status-bar-controller.js +99 -0
  532. package/dist/ui/subagent-renderer.d.ts +117 -0
  533. package/dist/ui/subagent-renderer.js +318 -0
  534. package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
  535. package/dist/ui/terminal-autocomplete-utils.js +83 -0
  536. package/dist/ui/terminal-codes.d.ts +94 -0
  537. package/dist/ui/terminal-codes.js +124 -0
  538. package/dist/ui/terminal-line-builders.d.ts +17 -0
  539. package/dist/ui/terminal-line-builders.js +42 -0
  540. package/dist/ui/terminal-render-item.d.ts +16 -0
  541. package/dist/ui/terminal-render-item.js +267 -0
  542. package/dist/ui/terminal-renderer.d.ts +220 -0
  543. package/dist/ui/terminal-renderer.js +750 -0
  544. package/dist/ui/terminal-types.d.ts +179 -0
  545. package/dist/ui/terminal-types.js +34 -0
  546. package/dist/ui/terminal-ui.d.ts +331 -0
  547. package/dist/ui/terminal-ui.js +819 -0
  548. package/dist/ui/terminal.d.ts +20 -0
  549. package/dist/ui/terminal.js +72 -0
  550. package/dist/ui/todo-zone.d.ts +19 -1
  551. package/dist/ui/todo-zone.js +124 -38
  552. package/dist/ui/tool-formatters.d.ts +16 -0
  553. package/dist/ui/tool-formatters.js +1027 -0
  554. package/dist/ui/turn-metrics.d.ts +56 -0
  555. package/dist/ui/turn-metrics.js +75 -0
  556. package/dist/ui/types.d.ts +28 -0
  557. package/dist/ui/types.js +1 -0
  558. package/dist/ui/vscode-diff-ipc.d.ts +102 -0
  559. package/dist/ui/vscode-diff-ipc.js +385 -0
  560. package/dist/utils/credentials.d.ts +24 -5
  561. package/dist/utils/credentials.js +123 -9
  562. package/dist/utils/debug-log.d.ts +28 -0
  563. package/dist/utils/debug-log.js +57 -0
  564. package/dist/utils/format-tokens.d.ts +13 -0
  565. package/dist/utils/format-tokens.js +18 -0
  566. package/dist/utils/git-config.d.ts +26 -0
  567. package/dist/utils/git-config.js +54 -0
  568. package/dist/utils/message-utils.d.ts +61 -0
  569. package/dist/utils/message-utils.js +72 -0
  570. package/dist/utils/model-tiers.d.ts +8 -1
  571. package/dist/utils/model-tiers.js +39 -17
  572. package/dist/utils/open-browser.d.ts +5 -0
  573. package/dist/utils/open-browser.js +32 -0
  574. package/dist/utils/path-safety.d.ts +56 -0
  575. package/dist/utils/path-safety.js +240 -0
  576. package/dist/utils/project-detection.d.ts +58 -0
  577. package/dist/utils/project-detection.js +424 -0
  578. package/dist/utils/project-memory.js +2 -1
  579. package/dist/utils/project-status.d.ts +2 -2
  580. package/dist/utils/startup-perf.d.ts +18 -0
  581. package/dist/utils/startup-perf.js +60 -0
  582. package/dist/utils/token-tracker.d.ts +62 -0
  583. package/dist/utils/token-tracker.js +150 -0
  584. package/dist/utils/token-types.d.ts +23 -0
  585. package/dist/utils/token-types.js +18 -0
  586. package/dist/utils/types/config-types.d.ts +32 -0
  587. package/dist/utils/types/config-types.js +8 -0
  588. package/dist/utils/update-checker.d.ts +28 -0
  589. package/dist/utils/update-checker.js +106 -0
  590. package/dist/utils/version.d.ts +7 -0
  591. package/dist/utils/version.js +10 -0
  592. package/dist/utils/vscode-detect.d.ts +39 -0
  593. package/dist/utils/vscode-detect.js +137 -0
  594. package/dist/workflow/guided-mode-injector.d.ts +42 -0
  595. package/dist/workflow/guided-mode-injector.js +191 -0
  596. package/dist/workflow/index.d.ts +8 -0
  597. package/dist/workflow/index.js +8 -0
  598. package/dist/workflow/step-criteria.d.ts +62 -0
  599. package/dist/workflow/step-criteria.js +150 -0
  600. package/dist/workflow/step-tracker.d.ts +92 -0
  601. package/dist/workflow/step-tracker.js +141 -0
  602. package/package.json +32 -12
  603. package/dist/index.old.d.ts +0 -7
  604. package/dist/index.old.js +0 -1014
  605. package/dist/repl.d.ts +0 -121
  606. package/dist/repl.js +0 -1878
  607. package/dist/templates/claude-md.d.ts +0 -7
  608. package/dist/templates/claude-md.js +0 -189
  609. package/dist/test-autocomplete.d.ts +0 -7
  610. package/dist/test-autocomplete.js +0 -85
  611. package/dist/test-tabbed-menu.d.ts +0 -7
  612. package/dist/test-tabbed-menu.js +0 -25
  613. package/dist/tool-selector.d.ts +0 -71
  614. package/dist/tool-selector.js +0 -184
  615. package/dist/ui/agents-overlay.d.ts +0 -12
  616. package/dist/ui/agents-overlay.js +0 -501
  617. package/dist/ui/arch-type-overlay.d.ts +0 -20
  618. package/dist/ui/arch-type-overlay.js +0 -229
  619. package/dist/ui/backlog-overlay.d.ts +0 -17
  620. package/dist/ui/backlog-overlay.js +0 -786
  621. package/dist/ui/commands-overlay.d.ts +0 -11
  622. package/dist/ui/commands-overlay.js +0 -410
  623. package/dist/ui/config-overlay.d.ts +0 -34
  624. package/dist/ui/config-overlay.js +0 -977
  625. package/dist/ui/init-overlay.d.ts +0 -24
  626. package/dist/ui/init-overlay.js +0 -525
  627. package/dist/ui/input-prompt-v2.d.ts +0 -179
  628. package/dist/ui/input-prompt-v2.js +0 -991
  629. package/dist/ui/model-warning-overlay.d.ts +0 -30
  630. package/dist/ui/model-warning-overlay.js +0 -171
  631. package/dist/ui/tools-overlay.d.ts +0 -26
  632. package/dist/ui/tools-overlay.js +0 -278
  633. package/dist/ui/tutorial-overlay.d.ts +0 -10
  634. package/dist/ui/tutorial-overlay.js +0 -936
@@ -1,30 +0,0 @@
1
- /**
2
- * Model Warning Overlay
3
- *
4
- * Shows a warning when the user runs a command that requires
5
- * a larger model than they're currently using.
6
- *
7
- * Offers options to:
8
- * - Switch to a recommended model
9
- * - Use a simpler alternative command
10
- * - Continue anyway
11
- * - Cancel
12
- */
13
- import type { TierLevel } from '../utils/model-tiers.js';
14
- export interface ModelWarningOptions {
15
- /** The command being run (e.g., '/design') */
16
- command: string;
17
- /** Current model ID */
18
- currentModel: string;
19
- /** Current model's tier */
20
- currentTier: TierLevel;
21
- /** Suggested upgrade model (if available) */
22
- suggestedModel?: string;
23
- /** Alternative simpler command (e.g., '/sketch') */
24
- alternativeCommand?: string;
25
- }
26
- export type ModelWarningChoice = 'switch' | 'alternative' | 'continue' | 'cancel';
27
- /**
28
- * Show the model warning overlay and return the user's choice.
29
- */
30
- export declare function showModelWarningOverlay(options: ModelWarningOptions): Promise<ModelWarningChoice>;
@@ -1,171 +0,0 @@
1
- /**
2
- * Model Warning Overlay
3
- *
4
- * Shows a warning when the user runs a command that requires
5
- * a larger model than they're currently using.
6
- *
7
- * Offers options to:
8
- * - Switch to a recommended model
9
- * - Use a simpler alternative command
10
- * - Continue anyway
11
- * - Cancel
12
- */
13
- import * as terminal from './terminal.js';
14
- import { getStyles } from '../themes/index.js';
15
- import { pauseForOverlay, resumeAfterOverlay } from './overlay-controller.js';
16
- // =============================================================================
17
- // Rendering
18
- // =============================================================================
19
- function render(options, selectedIndex, previousLineCount = 0, targetLineCount = 0) {
20
- const s = getStyles();
21
- const lines = [];
22
- const cols = terminal.getTerminalWidth();
23
- const border = s.muted('─'.repeat(Math.max(1, cols - 1)));
24
- // Clear previous render
25
- if (previousLineCount > 0) {
26
- terminal.clearLinesAbove(previousLineCount);
27
- }
28
- // Build options list
29
- const choiceOptions = [];
30
- if (options.suggestedModel) {
31
- choiceOptions.push({
32
- key: '1',
33
- label: `Switch to ${options.suggestedModel} and continue`,
34
- choice: 'switch',
35
- });
36
- }
37
- if (options.alternativeCommand) {
38
- choiceOptions.push({
39
- key: String(choiceOptions.length + 1),
40
- label: `Use ${options.alternativeCommand} instead (simpler, works with any model)`,
41
- choice: 'alternative',
42
- });
43
- }
44
- choiceOptions.push({
45
- key: String(choiceOptions.length + 1),
46
- label: 'Continue with current model anyway',
47
- choice: 'continue',
48
- });
49
- // Header
50
- lines.push(border);
51
- lines.push(' ' + s.warning('⚠ Model Recommendation'));
52
- lines.push('');
53
- // Description
54
- lines.push(` ${options.command} works best with larger models for complex`);
55
- lines.push(' multi-question workflows.');
56
- lines.push('');
57
- // Current and recommended
58
- lines.push(` Current: ${s.muted(options.currentModel)} (${options.currentTier} tier)`);
59
- if (options.suggestedModel) {
60
- lines.push(` Recommended: ${s.primary(options.suggestedModel)} (large tier)`);
61
- }
62
- lines.push('');
63
- // Separator
64
- lines.push(border);
65
- // Options
66
- for (let i = 0; i < choiceOptions.length; i++) {
67
- const opt = choiceOptions[i];
68
- const isCursor = selectedIndex === i;
69
- const prefix = isCursor ? ' ❯ ' : ' ';
70
- if (isCursor) {
71
- lines.push(s.primary(`${prefix}[${opt.key}] ${opt.label}`));
72
- }
73
- else {
74
- lines.push(s.muted(`${prefix}[${opt.key}] ${opt.label}`));
75
- }
76
- }
77
- // Footer
78
- lines.push('');
79
- lines.push(s.muted(' ↑↓ Navigate · Enter Select · Esc Cancel'));
80
- lines.push(border);
81
- // Pad with empty lines to maintain consistent height
82
- while (lines.length < targetLineCount) {
83
- lines.push('');
84
- }
85
- // Render all lines
86
- terminal.write(lines.join('\n'));
87
- return lines.length;
88
- }
89
- // =============================================================================
90
- // Main Export
91
- // =============================================================================
92
- /**
93
- * Show the model warning overlay and return the user's choice.
94
- */
95
- export async function showModelWarningOverlay(options) {
96
- // Build choice list to track what each index maps to
97
- const choices = [];
98
- if (options.suggestedModel) {
99
- choices.push('switch');
100
- }
101
- if (options.alternativeCommand) {
102
- choices.push('alternative');
103
- }
104
- choices.push('continue');
105
- let selectedIndex = 0;
106
- let lineCount = 0;
107
- let maxLineCount = 0;
108
- // Pause footer animation
109
- pauseForOverlay();
110
- // Clear and prepare
111
- terminal.clearToEndOfScreen();
112
- terminal.writeLine('');
113
- terminal.hideCursor();
114
- const wasRawMode = process.stdin.isRaw;
115
- terminal.enableRawMode();
116
- // Initial render
117
- lineCount = render(options, selectedIndex, 0);
118
- maxLineCount = Math.max(maxLineCount, lineCount);
119
- // Re-render to stabilize
120
- lineCount = render(options, selectedIndex, lineCount, lineCount);
121
- return new Promise((resolve) => {
122
- const cleanup = () => {
123
- terminal.clearLinesAbove(maxLineCount);
124
- terminal.writeLine('');
125
- terminal.showCursor();
126
- if (!wasRawMode) {
127
- terminal.disableRawMode();
128
- }
129
- process.stdin.removeListener('data', handleData);
130
- resumeAfterOverlay();
131
- };
132
- const handleData = (data) => {
133
- const isEscape = data.length === 1 && data[0] === 0x1b;
134
- const isUpArrow = data.length === 3 && data[0] === 0x1b && data[1] === 0x5b && data[2] === 0x41;
135
- const isDownArrow = data.length === 3 && data[0] === 0x1b && data[1] === 0x5b && data[2] === 0x42;
136
- const isCtrlC = data.length === 1 && data[0] === 0x03;
137
- const isEnter = data.length === 1 && (data[0] === 0x0d || data[0] === 0x0a);
138
- // Ctrl+C or Escape cancels
139
- if (isCtrlC || isEscape) {
140
- cleanup();
141
- resolve('cancel');
142
- return;
143
- }
144
- // Navigation
145
- if (isUpArrow) {
146
- selectedIndex = Math.max(0, selectedIndex - 1);
147
- }
148
- else if (isDownArrow) {
149
- selectedIndex = Math.min(choices.length - 1, selectedIndex + 1);
150
- }
151
- else if (isEnter) {
152
- cleanup();
153
- resolve(choices[selectedIndex]);
154
- return;
155
- }
156
- else if (data.length === 1 && data[0] >= 0x31 && data[0] <= 0x39) {
157
- // Number keys 1-9
158
- const numIndex = data[0] - 0x31; // 0-indexed
159
- if (numIndex < choices.length) {
160
- cleanup();
161
- resolve(choices[numIndex]);
162
- return;
163
- }
164
- }
165
- // Re-render
166
- lineCount = render(options, selectedIndex, maxLineCount, maxLineCount);
167
- maxLineCount = Math.max(maxLineCount, lineCount);
168
- };
169
- process.stdin.on('data', handleData);
170
- });
171
- }
@@ -1,26 +0,0 @@
1
- /**
2
- * Tools Overlay
3
- *
4
- * Displays available agent tools in a scrollable list with descriptions.
5
- * Supports detail view for full tool information.
6
- */
7
- export interface ToolParameter {
8
- name: string;
9
- type: string;
10
- description?: string;
11
- required: boolean;
12
- }
13
- export interface ToolPermissionInfo {
14
- level: 'once' | 'always' | 'session';
15
- description: string;
16
- }
17
- export interface ToolInfo {
18
- name: string;
19
- description?: string;
20
- parameters?: ToolParameter[];
21
- permission?: ToolPermissionInfo;
22
- }
23
- export interface ToolsOverlayResult {
24
- dismissed: boolean;
25
- }
26
- export declare function showToolsOverlay(tools: ToolInfo[]): Promise<ToolsOverlayResult>;
@@ -1,278 +0,0 @@
1
- /**
2
- * Tools Overlay
3
- *
4
- * Displays available agent tools in a scrollable list with descriptions.
5
- * Supports detail view for full tool information.
6
- */
7
- import * as terminal from './terminal.js';
8
- import { getStyles } from '../themes/index.js';
9
- // =============================================================================
10
- // Constants
11
- // =============================================================================
12
- /** Number of tools visible at once */
13
- const VISIBLE_ROWS = 12;
14
- /** Width for tool name column */
15
- const NAME_WIDTH = 18;
16
- /** Max description length in detail view */
17
- const MAX_DESCRIPTION_LENGTH = 300;
18
- /** Max parameters to show in detail view */
19
- const MAX_PARAMETERS_SHOWN = 5;
20
- // =============================================================================
21
- // Main Function
22
- // =============================================================================
23
- export async function showToolsOverlay(tools) {
24
- const s = getStyles();
25
- const stdin = process.stdin;
26
- // Sort tools alphabetically
27
- const sortedTools = [...tools].sort((a, b) => a.name.localeCompare(b.name));
28
- // State
29
- let selectedIndex = 0;
30
- let scrollOffset = 0;
31
- let lineCount = 0;
32
- let mode = 'list';
33
- // Get terminal width for layout
34
- const termWidth = terminal.getTerminalWidth();
35
- const descWidth = Math.max(20, termWidth - NAME_WIDTH - 10); // 10 for padding/cursor
36
- // Helper to truncate text
37
- const truncate = (text, maxLen) => {
38
- if (text.length <= maxLen)
39
- return text;
40
- return text.slice(0, maxLen - 1) + '…';
41
- };
42
- // Helper to get border
43
- const getBorder = () => {
44
- return s.muted('─'.repeat(Math.max(1, termWidth - 1)));
45
- };
46
- // Helper to wrap text to multiple lines
47
- const wrapText = (text, maxWidth) => {
48
- const words = text.split(' ');
49
- const lines = [];
50
- let currentLine = '';
51
- for (const word of words) {
52
- if (currentLine.length + word.length + 1 <= maxWidth) {
53
- currentLine += (currentLine ? ' ' : '') + word;
54
- }
55
- else {
56
- if (currentLine)
57
- lines.push(currentLine);
58
- currentLine = word;
59
- }
60
- }
61
- if (currentLine)
62
- lines.push(currentLine);
63
- return lines;
64
- };
65
- // Render list view
66
- const renderList = () => {
67
- // Clear previous render
68
- if (lineCount > 0) {
69
- terminal.clearLinesAbove(lineCount);
70
- }
71
- const lines = [];
72
- // Header
73
- lines.push(getBorder());
74
- const title = `Available Tools`;
75
- const countBadge = s.muted(`[${String(sortedTools.length)} tools]`);
76
- lines.push(` ${s.primaryBold(title)} ${countBadge}`);
77
- lines.push('');
78
- // Column headers
79
- const nameHeader = s.muted('Tool'.padEnd(NAME_WIDTH));
80
- const descHeader = s.muted('Description');
81
- lines.push(` ${nameHeader} ${descHeader}`);
82
- lines.push(` ${s.muted('─'.repeat(NAME_WIDTH))} ${s.muted('─'.repeat(Math.min(descWidth, 40)))}`);
83
- // Visible tools
84
- const visibleTools = sortedTools.slice(scrollOffset, scrollOffset + VISIBLE_ROWS);
85
- for (let i = 0; i < visibleTools.length; i++) {
86
- const tool = visibleTools[i];
87
- const absoluteIndex = scrollOffset + i;
88
- const isSelected = absoluteIndex === selectedIndex;
89
- const cursor = isSelected ? s.primary('❯ ') : ' ';
90
- const name = isSelected
91
- ? s.primaryBold(tool.name.padEnd(NAME_WIDTH))
92
- : s.secondary(tool.name.padEnd(NAME_WIDTH));
93
- const desc = truncate(tool.description ?? '', descWidth);
94
- const descColor = isSelected ? s.secondary(desc) : s.muted(desc);
95
- lines.push(` ${cursor}${name} ${descColor}`);
96
- }
97
- // Padding if fewer tools than VISIBLE_ROWS
98
- const emptyRows = VISIBLE_ROWS - visibleTools.length;
99
- for (let i = 0; i < emptyRows; i++) {
100
- lines.push('');
101
- }
102
- // Scroll indicator
103
- lines.push('');
104
- if (sortedTools.length > VISIBLE_ROWS) {
105
- const scrollInfo = `${String(scrollOffset + 1)}-${String(Math.min(scrollOffset + VISIBLE_ROWS, sortedTools.length))} of ${String(sortedTools.length)}`;
106
- const canUp = scrollOffset > 0;
107
- const canDown = scrollOffset + VISIBLE_ROWS < sortedTools.length;
108
- const arrows = (canUp ? '↑' : ' ') + (canDown ? '↓' : ' ');
109
- lines.push(` ${s.muted(scrollInfo)} ${s.muted(arrows)}`);
110
- }
111
- // Footer
112
- lines.push(getBorder());
113
- lines.push(` ${s.muted('↑↓ Navigate · Enter Details · Esc Close')}`);
114
- lines.push(getBorder());
115
- // Print all lines
116
- terminal.write(lines.join('\n'));
117
- return lines.length;
118
- };
119
- // Render detail view
120
- const renderDetail = () => {
121
- // Clear previous render
122
- if (lineCount > 0) {
123
- terminal.clearLinesAbove(lineCount);
124
- }
125
- const tool = sortedTools[selectedIndex];
126
- const lines = [];
127
- // Header
128
- lines.push(getBorder());
129
- lines.push(` ${s.primaryBold('Tool Details')}`);
130
- lines.push('');
131
- // Tool name
132
- lines.push(` ${s.muted('Name:')} ${s.primaryBold(tool.name)}`);
133
- lines.push('');
134
- // Permission info (if any)
135
- if (tool.permission) {
136
- const levelColor = tool.permission.level === 'once' ? s.warning : s.muted;
137
- lines.push(` ${s.muted('Permission:')} ${levelColor(tool.permission.level)} ${s.muted(`(${tool.permission.description})`)}`);
138
- lines.push('');
139
- }
140
- else {
141
- lines.push(` ${s.muted('Permission:')} ${s.success('always')} ${s.muted('(no approval required)')}`);
142
- lines.push('');
143
- }
144
- // Description (truncated if too long)
145
- lines.push(` ${s.muted('Description:')}`);
146
- let description = tool.description ?? 'No description available.';
147
- if (description.length > MAX_DESCRIPTION_LENGTH) {
148
- description = description.slice(0, MAX_DESCRIPTION_LENGTH).trim() + '...';
149
- }
150
- const wrappedDesc = wrapText(description, termWidth - 6);
151
- for (const line of wrappedDesc) {
152
- lines.push(` ${s.secondary(line)}`);
153
- }
154
- lines.push('');
155
- // Parameters (limited to avoid verbose displays)
156
- if (tool.parameters && tool.parameters.length > 0) {
157
- // Sort: required first, then optional
158
- const sorted = [...tool.parameters].sort((a, b) => {
159
- if (a.required && !b.required)
160
- return -1;
161
- if (!a.required && b.required)
162
- return 1;
163
- return 0;
164
- });
165
- const shown = sorted.slice(0, MAX_PARAMETERS_SHOWN);
166
- const hidden = sorted.length - shown.length;
167
- lines.push(` ${s.muted('Parameters:')}`);
168
- for (const param of shown) {
169
- const requiredBadge = param.required ? s.warning('*') : ' ';
170
- const typeStr = s.muted(`(${param.type})`);
171
- lines.push(` ${requiredBadge} ${s.secondary(param.name)} ${typeStr}`);
172
- }
173
- if (hidden > 0) {
174
- lines.push(` ${s.muted(` + ${String(hidden)} more optional parameters`)}`);
175
- }
176
- lines.push('');
177
- lines.push(` ${s.muted('* = required')}`);
178
- }
179
- else {
180
- lines.push(` ${s.muted('Parameters:')} ${s.muted('None')}`);
181
- }
182
- // Footer
183
- lines.push(getBorder());
184
- lines.push(` ${s.muted('Esc Back to list')}`);
185
- lines.push(getBorder());
186
- // Print all lines
187
- terminal.write(lines.join('\n'));
188
- return lines.length;
189
- };
190
- // Render based on mode
191
- const render = () => {
192
- if (mode === 'detail') {
193
- return renderDetail();
194
- }
195
- return renderList();
196
- };
197
- // Ensure selected item is visible
198
- const ensureVisible = () => {
199
- if (selectedIndex < scrollOffset) {
200
- scrollOffset = selectedIndex;
201
- }
202
- else if (selectedIndex >= scrollOffset + VISIBLE_ROWS) {
203
- scrollOffset = selectedIndex - VISIBLE_ROWS + 1;
204
- }
205
- };
206
- // Initial render
207
- lineCount = render();
208
- // Set up raw mode for keyboard input
209
- const wasRaw = stdin.isRaw;
210
- stdin.setRawMode(true);
211
- stdin.resume();
212
- return new Promise((resolve) => {
213
- const cleanup = () => {
214
- stdin.removeListener('data', handleKey);
215
- stdin.setRawMode(wasRaw);
216
- // Clear the overlay
217
- terminal.clearLinesAbove(lineCount);
218
- };
219
- const handleKey = (data) => {
220
- const key = data.toString();
221
- // Handle key presses
222
- const isEscape = key === '\x1B' && data.length === 1;
223
- const isEnter = key === '\r' || key === '\n';
224
- const isUpArrow = key === '\x1B[A';
225
- const isDownArrow = key === '\x1B[B';
226
- const isPageUp = key === '\x1B[5~';
227
- const isPageDown = key === '\x1B[6~';
228
- const isCtrlC = key === '\x03';
229
- const isQ = key === 'q' || key === 'Q';
230
- if (isCtrlC) {
231
- cleanup();
232
- resolve({ dismissed: true });
233
- return;
234
- }
235
- if (mode === 'detail') {
236
- // Detail view: Esc goes back to list
237
- if (isEscape || isQ) {
238
- mode = 'list';
239
- lineCount = render();
240
- }
241
- return;
242
- }
243
- // List view
244
- if (isEscape || isQ) {
245
- cleanup();
246
- resolve({ dismissed: true });
247
- return;
248
- }
249
- if (isEnter) {
250
- mode = 'detail';
251
- lineCount = render();
252
- return;
253
- }
254
- // Navigation
255
- if (isUpArrow && selectedIndex > 0) {
256
- selectedIndex--;
257
- ensureVisible();
258
- lineCount = render();
259
- }
260
- else if (isDownArrow && selectedIndex < sortedTools.length - 1) {
261
- selectedIndex++;
262
- ensureVisible();
263
- lineCount = render();
264
- }
265
- else if (isPageUp) {
266
- selectedIndex = Math.max(0, selectedIndex - VISIBLE_ROWS);
267
- ensureVisible();
268
- lineCount = render();
269
- }
270
- else if (isPageDown) {
271
- selectedIndex = Math.min(sortedTools.length - 1, selectedIndex + VISIBLE_ROWS);
272
- ensureVisible();
273
- lineCount = render();
274
- }
275
- };
276
- stdin.on('data', handleKey);
277
- });
278
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * Tutorial Overlay
3
- *
4
- * Interactive tutorial that guides users through the compilr.dev workflow.
5
- * Supports guided sequential tour and topic-based navigation.
6
- */
7
- export interface TutorialOverlayResult {
8
- completed: boolean;
9
- }
10
- export declare function showTutorialOverlay(): Promise<TutorialOverlayResult>;