@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
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Token Tracker
3
+ *
4
+ * Tracks token usage breakdown for debugging and optimization.
5
+ * Estimates are calculated when the agent is created and updated
6
+ * as context changes (messages added, etc.).
7
+ */
8
+ import { getEncoding } from 'js-tiktoken';
9
+ import { formatTokens } from './format-tokens.js';
10
+ // Lazy-initialized tiktoken encoder
11
+ let encoder = null;
12
+ function getEncoder() {
13
+ if (!encoder) {
14
+ encoder = getEncoding('cl100k_base');
15
+ }
16
+ return encoder;
17
+ }
18
+ // =============================================================================
19
+ // Singleton State
20
+ // =============================================================================
21
+ let currentEstimates = {
22
+ system: 0,
23
+ role: 0,
24
+ tools: 0,
25
+ context: 0,
26
+ history: 0,
27
+ };
28
+ let lastCacheRead = 0;
29
+ let lastCacheCreation = 0;
30
+ // =============================================================================
31
+ // Estimation Helpers
32
+ // =============================================================================
33
+ /**
34
+ * Count tokens using tiktoken (cl100k_base encoding)
35
+ */
36
+ export function estimateTokens(text) {
37
+ if (!text)
38
+ return 0;
39
+ return getEncoder().encode(text).length;
40
+ }
41
+ /**
42
+ * Count tokens for a JSON object (tool definition, etc.)
43
+ */
44
+ export function estimateJsonTokens(obj) {
45
+ const json = JSON.stringify(obj);
46
+ return getEncoder().encode(json).length;
47
+ }
48
+ // =============================================================================
49
+ // Public API
50
+ // =============================================================================
51
+ /**
52
+ * Set static token estimates (called at agent creation)
53
+ */
54
+ export function setStaticEstimates(estimates) {
55
+ currentEstimates = {
56
+ ...currentEstimates,
57
+ ...estimates,
58
+ };
59
+ }
60
+ /**
61
+ * Update history token estimate (called before each request)
62
+ */
63
+ export function updateHistoryEstimate(historyTokens) {
64
+ currentEstimates.history = historyTokens;
65
+ }
66
+ /**
67
+ * Update cache info from API response
68
+ */
69
+ export function updateCacheInfo(cacheRead, cacheCreation) {
70
+ lastCacheRead = cacheRead;
71
+ lastCacheCreation = cacheCreation;
72
+ }
73
+ /**
74
+ * Get current breakdown for display
75
+ */
76
+ export function getTokenBreakdown() {
77
+ return {
78
+ system: currentEstimates.system,
79
+ role: currentEstimates.role,
80
+ tools: currentEstimates.tools,
81
+ context: currentEstimates.context,
82
+ history: currentEstimates.history,
83
+ cacheRead: lastCacheRead > 0 ? lastCacheRead : undefined,
84
+ cacheCreation: lastCacheCreation > 0 ? lastCacheCreation : undefined,
85
+ };
86
+ }
87
+ /**
88
+ * Get total estimated tokens
89
+ */
90
+ export function getTotalEstimate() {
91
+ return (currentEstimates.system +
92
+ currentEstimates.role +
93
+ currentEstimates.tools +
94
+ currentEstimates.context +
95
+ currentEstimates.history);
96
+ }
97
+ /**
98
+ * Reset all estimates (for new agent/session)
99
+ */
100
+ export function resetEstimates() {
101
+ currentEstimates = {
102
+ system: 0,
103
+ role: 0,
104
+ tools: 0,
105
+ context: 0,
106
+ history: 0,
107
+ };
108
+ lastCacheRead = 0;
109
+ lastCacheCreation = 0;
110
+ }
111
+ /**
112
+ * Format breakdown for display (compact form)
113
+ * Example: "sys:2k role:1k tools:12k ctx:0.4k hist:3k"
114
+ */
115
+ export function formatBreakdownCompact() {
116
+ const parts = [];
117
+ if (currentEstimates.system > 0) {
118
+ parts.push(`sys:${formatTokens(currentEstimates.system)}`);
119
+ }
120
+ if (currentEstimates.role > 0) {
121
+ parts.push(`role:${formatTokens(currentEstimates.role)}`);
122
+ }
123
+ if (currentEstimates.tools > 0) {
124
+ parts.push(`tools:${formatTokens(currentEstimates.tools)}`);
125
+ }
126
+ if (currentEstimates.context > 0) {
127
+ parts.push(`ctx:${formatTokens(currentEstimates.context)}`);
128
+ }
129
+ if (currentEstimates.history > 0) {
130
+ parts.push(`hist:${formatTokens(currentEstimates.history)}`);
131
+ }
132
+ return parts.join(' ');
133
+ }
134
+ /**
135
+ * Format cache info for display
136
+ * Example: "cached:18k new:5k"
137
+ */
138
+ export function formatCacheInfo() {
139
+ if (lastCacheRead === 0 && lastCacheCreation === 0) {
140
+ return null;
141
+ }
142
+ const parts = [];
143
+ if (lastCacheRead > 0) {
144
+ parts.push(`cached:${formatTokens(lastCacheRead)}`);
145
+ }
146
+ if (lastCacheCreation > 0) {
147
+ parts.push(`new:${formatTokens(lastCacheCreation)}`);
148
+ }
149
+ return parts.join(' ');
150
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Token Breakdown Types
3
+ *
4
+ * Extracted from ui/types.ts so foundation-layer code (token-tracker)
5
+ * can reference it without importing from the domain layer.
6
+ */
7
+ /**
8
+ * Detailed breakdown of input token components.
9
+ * Helps debug and optimize token usage.
10
+ */
11
+ export interface TokenBreakdown {
12
+ system: number;
13
+ role: number;
14
+ tools: number;
15
+ context: number;
16
+ history: number;
17
+ cacheRead?: number;
18
+ cacheCreation?: number;
19
+ }
20
+ /**
21
+ * Create an empty token breakdown
22
+ */
23
+ export declare function emptyTokenBreakdown(): TokenBreakdown;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Token Breakdown Types
3
+ *
4
+ * Extracted from ui/types.ts so foundation-layer code (token-tracker)
5
+ * can reference it without importing from the domain layer.
6
+ */
7
+ /**
8
+ * Create an empty token breakdown
9
+ */
10
+ export function emptyTokenBreakdown() {
11
+ return {
12
+ system: 0,
13
+ role: 0,
14
+ tools: 0,
15
+ context: 0,
16
+ history: 0,
17
+ };
18
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Compilr Config Types
3
+ *
4
+ * Extracted from templates/config-json.ts so foundation-layer code
5
+ * (utils/project-status) can reference it without importing from
6
+ * the data layer.
7
+ */
8
+ export interface CompilrConfig {
9
+ version: string;
10
+ project: {
11
+ name: string;
12
+ description: string;
13
+ createdAt: string;
14
+ };
15
+ paths: {
16
+ /** Absolute path to the project/code repository */
17
+ project: string;
18
+ /** Absolute path to the docs repository (two-repo pattern only) */
19
+ docs: string | null;
20
+ /** Directory where .compilr/config.json lives (for reference) */
21
+ workflowRoot: string;
22
+ };
23
+ settings: {
24
+ repoPattern: 'single' | 'two-repo';
25
+ techStack: string;
26
+ codingStandards: string;
27
+ };
28
+ sessions: {
29
+ count: number;
30
+ lastSession: string | null;
31
+ };
32
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Compilr Config Types
3
+ *
4
+ * Extracted from templates/config-json.ts so foundation-layer code
5
+ * (utils/project-status) can reference it without importing from
6
+ * the data layer.
7
+ */
8
+ export {};
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Update checker utility
3
+ *
4
+ * Queries npm registry to check for new versions of @compilr-dev/cli
5
+ */
6
+ export interface UpdateInfo {
7
+ currentVersion: string;
8
+ latestVersion: string;
9
+ updateAvailable: boolean;
10
+ releaseUrl: string;
11
+ npmUrl: string;
12
+ }
13
+ /**
14
+ * Check npm registry for the latest version
15
+ */
16
+ export declare function checkForUpdates(): Promise<UpdateInfo>;
17
+ /**
18
+ * Format update notification message
19
+ */
20
+ export declare function formatUpdateMessage(info: UpdateInfo): string;
21
+ /**
22
+ * Perform the update via npm
23
+ * Returns true if update was successful
24
+ */
25
+ export declare function performUpdate(): Promise<{
26
+ success: boolean;
27
+ message: string;
28
+ }>;
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Update checker utility
3
+ *
4
+ * Queries npm registry to check for new versions of @compilr-dev/cli
5
+ */
6
+ import { VERSION } from './version.js';
7
+ /**
8
+ * Check npm registry for the latest version
9
+ */
10
+ export async function checkForUpdates() {
11
+ const packageName = '@compilr-dev/cli';
12
+ const registryUrl = `https://registry.npmjs.org/${packageName}/latest`;
13
+ try {
14
+ const response = await fetch(registryUrl, {
15
+ headers: {
16
+ Accept: 'application/json',
17
+ },
18
+ // Short timeout to not block startup
19
+ signal: AbortSignal.timeout(5000),
20
+ });
21
+ if (!response.ok) {
22
+ throw new Error(`Registry returned ${String(response.status)}`);
23
+ }
24
+ const data = (await response.json());
25
+ const latestVersion = data.version;
26
+ return {
27
+ currentVersion: VERSION,
28
+ latestVersion,
29
+ updateAvailable: isNewerVersion(latestVersion, VERSION),
30
+ releaseUrl: `https://github.com/compilr-dev/cli/releases/tag/v${latestVersion}`,
31
+ npmUrl: `https://www.npmjs.com/package/${packageName}`,
32
+ };
33
+ }
34
+ catch {
35
+ // Network error or timeout - return no update available
36
+ return {
37
+ currentVersion: VERSION,
38
+ latestVersion: VERSION,
39
+ updateAvailable: false,
40
+ releaseUrl: '',
41
+ npmUrl: `https://www.npmjs.com/package/${packageName}`,
42
+ };
43
+ }
44
+ }
45
+ /**
46
+ * Compare semantic versions
47
+ * Returns true if version1 > version2
48
+ */
49
+ function isNewerVersion(version1, version2) {
50
+ const v1Parts = version1.split('.').map(Number);
51
+ const v2Parts = version2.split('.').map(Number);
52
+ for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
53
+ const v1 = v1Parts[i] || 0;
54
+ const v2 = v2Parts[i] || 0;
55
+ if (v1 > v2)
56
+ return true;
57
+ if (v1 < v2)
58
+ return false;
59
+ }
60
+ return false;
61
+ }
62
+ /**
63
+ * Format update notification message
64
+ */
65
+ export function formatUpdateMessage(info) {
66
+ if (!info.updateAvailable) {
67
+ return '';
68
+ }
69
+ return [
70
+ `Update available: v${info.currentVersion} → v${info.latestVersion}`,
71
+ `Run: npm update -g @compilr-dev/cli`,
72
+ ].join('\n');
73
+ }
74
+ /**
75
+ * Perform the update via npm
76
+ * Returns true if update was successful
77
+ */
78
+ export async function performUpdate() {
79
+ const { spawn } = await import('child_process');
80
+ return new Promise((resolve) => {
81
+ const child = spawn('npm', ['update', '-g', '@compilr-dev/cli'], {
82
+ stdio: 'inherit',
83
+ shell: true,
84
+ });
85
+ child.on('close', (code) => {
86
+ if (code === 0) {
87
+ resolve({
88
+ success: true,
89
+ message: 'Update completed. Please restart the CLI.',
90
+ });
91
+ }
92
+ else {
93
+ resolve({
94
+ success: false,
95
+ message: `Update failed with exit code ${String(code ?? 'unknown')}. Try running: npm update -g @compilr-dev/cli`,
96
+ });
97
+ }
98
+ });
99
+ child.on('error', (error) => {
100
+ resolve({
101
+ success: false,
102
+ message: `Update failed: ${error.message}. Try running: npm update -g @compilr-dev/cli`,
103
+ });
104
+ });
105
+ });
106
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Version Constant
3
+ *
4
+ * Reads the version from package.json so foundation-layer code
5
+ * (update-checker) doesn't need to import from the app-layer index.ts.
6
+ */
7
+ export declare const VERSION: string;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Version Constant
3
+ *
4
+ * Reads the version from package.json so foundation-layer code
5
+ * (update-checker) doesn't need to import from the app-layer index.ts.
6
+ */
7
+ import { createRequire } from 'module';
8
+ const require = createRequire(import.meta.url);
9
+ const pkg = require('../../package.json');
10
+ export const VERSION = pkg.version;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * VS Code Detection & Extension Auto-Install
3
+ *
4
+ * Detects whether the CLI is running inside VS Code's integrated terminal
5
+ * and manages installation of the compilr-diff-companion extension.
6
+ *
7
+ * Foundation layer — no imports from domain or app layers.
8
+ */
9
+ /**
10
+ * Check if the CLI is running inside VS Code's integrated terminal.
11
+ * Checks multiple env vars that VS Code sets.
12
+ */
13
+ export declare function isInVSCode(): boolean;
14
+ /**
15
+ * Check if the `code` CLI command is available on PATH.
16
+ * Cached after first call.
17
+ */
18
+ export declare function isCodeCliAvailable(): boolean;
19
+ /**
20
+ * Check if VS Code diff integration is available (in VS Code + code CLI works).
21
+ */
22
+ export declare function isVSDiffAvailable(): boolean;
23
+ /** Result of ensureExtensionInstalled() */
24
+ export interface ExtensionInstallResult {
25
+ /** Whether the extension is installed and ready */
26
+ installed: boolean;
27
+ /** Whether a fresh install/upgrade just happened (reload needed to activate) */
28
+ needsReload: boolean;
29
+ }
30
+ /**
31
+ * Ensure the compilr-diff-companion extension is installed (and up to date).
32
+ *
33
+ * - If not installed: installs the bundled VSIX → needsReload = true
34
+ * - If installed but older version: upgrades → needsReload = true
35
+ * - If already current: no-op → needsReload = false
36
+ *
37
+ * Runs silently. Result is cached for the session — only runs once.
38
+ */
39
+ export declare function ensureExtensionInstalled(): Promise<ExtensionInstallResult>;
@@ -0,0 +1,137 @@
1
+ /**
2
+ * VS Code Detection & Extension Auto-Install
3
+ *
4
+ * Detects whether the CLI is running inside VS Code's integrated terminal
5
+ * and manages installation of the compilr-diff-companion extension.
6
+ *
7
+ * Foundation layer — no imports from domain or app layers.
8
+ */
9
+ import { execSync } from 'child_process';
10
+ import * as path from 'path';
11
+ import { fileURLToPath } from 'url';
12
+ // =============================================================================
13
+ // Detection (cached at module level — env vars don't change mid-session)
14
+ // =============================================================================
15
+ let _isInVSCode = null;
16
+ let _isCodeCliAvailable = null;
17
+ /**
18
+ * Check if the CLI is running inside VS Code's integrated terminal.
19
+ * Checks multiple env vars that VS Code sets.
20
+ */
21
+ export function isInVSCode() {
22
+ if (_isInVSCode !== null)
23
+ return _isInVSCode;
24
+ _isInVSCode = Boolean(process.env.TERM_PROGRAM === 'vscode' ||
25
+ process.env.VSCODE_GIT_IPC_HANDLE ||
26
+ process.env.VSCODE_INJECTION);
27
+ return _isInVSCode;
28
+ }
29
+ /**
30
+ * Check if the `code` CLI command is available on PATH.
31
+ * Cached after first call.
32
+ */
33
+ export function isCodeCliAvailable() {
34
+ if (_isCodeCliAvailable !== null)
35
+ return _isCodeCliAvailable;
36
+ try {
37
+ execSync('which code', { stdio: ['pipe', 'pipe', 'pipe'] });
38
+ _isCodeCliAvailable = true;
39
+ }
40
+ catch {
41
+ _isCodeCliAvailable = false;
42
+ }
43
+ return _isCodeCliAvailable;
44
+ }
45
+ /**
46
+ * Check if VS Code diff integration is available (in VS Code + code CLI works).
47
+ */
48
+ export function isVSDiffAvailable() {
49
+ return isInVSCode() && isCodeCliAvailable();
50
+ }
51
+ // =============================================================================
52
+ // Extension Version
53
+ // =============================================================================
54
+ /** Version of the bundled extension (must match vscode-extension/package.json) */
55
+ const BUNDLED_EXTENSION_VERSION = '0.0.2';
56
+ /**
57
+ * Get the installed version of the compilr-diff-companion extension.
58
+ * Returns null if not installed.
59
+ */
60
+ function getInstalledExtensionVersion() {
61
+ try {
62
+ const output = execSync('code --list-extensions --show-versions', {
63
+ encoding: 'utf-8',
64
+ stdio: ['pipe', 'pipe', 'pipe'],
65
+ timeout: 10_000,
66
+ });
67
+ for (const line of output.split('\n')) {
68
+ if (line.startsWith('compilr.compilr-diff-companion@')) {
69
+ return line.split('@')[1].trim();
70
+ }
71
+ }
72
+ }
73
+ catch {
74
+ // code CLI not available or failed
75
+ }
76
+ return null;
77
+ }
78
+ // =============================================================================
79
+ // Extension Install
80
+ // =============================================================================
81
+ let _extensionCheckDone = false;
82
+ /**
83
+ * Ensure the compilr-diff-companion extension is installed (and up to date).
84
+ *
85
+ * - If not installed: installs the bundled VSIX → needsReload = true
86
+ * - If installed but older version: upgrades → needsReload = true
87
+ * - If already current: no-op → needsReload = false
88
+ *
89
+ * Runs silently. Result is cached for the session — only runs once.
90
+ */
91
+ export function ensureExtensionInstalled() {
92
+ if (_extensionCheckDone)
93
+ return Promise.resolve({ installed: true, needsReload: false });
94
+ try {
95
+ const installedVersion = getInstalledExtensionVersion();
96
+ // Skip if already at or above bundled version
97
+ if (installedVersion && compareVersions(installedVersion, BUNDLED_EXTENSION_VERSION) >= 0) {
98
+ _extensionCheckDone = true;
99
+ return Promise.resolve({ installed: true, needsReload: false });
100
+ }
101
+ // Resolve VSIX path relative to this module's compiled location
102
+ // In dist/: dist/utils/vscode-detect.js -> dist/compilr-diff-companion.vsix
103
+ const __filename = fileURLToPath(import.meta.url);
104
+ const __dirname = path.dirname(__filename);
105
+ const vsixPath = path.resolve(__dirname, '..', 'compilr-diff-companion.vsix');
106
+ execSync(`code --install-extension "${vsixPath}" --force`, {
107
+ stdio: ['pipe', 'pipe', 'pipe'],
108
+ timeout: 30_000,
109
+ });
110
+ _extensionCheckDone = true;
111
+ // Extension was just installed/upgraded — needs VS Code reload to activate
112
+ return Promise.resolve({ installed: true, needsReload: true });
113
+ }
114
+ catch {
115
+ // Silent failure — VS Code diff is optional
116
+ return Promise.resolve({ installed: false, needsReload: false });
117
+ }
118
+ }
119
+ /**
120
+ * Compare two semver strings. Returns:
121
+ * -1 if a < b
122
+ * 0 if a == b
123
+ * 1 if a > b
124
+ */
125
+ function compareVersions(a, b) {
126
+ const pa = a.split('.').map(Number);
127
+ const pb = b.split('.').map(Number);
128
+ for (let i = 0; i < 3; i++) {
129
+ const va = pa[i] ?? 0;
130
+ const vb = pb[i] ?? 0;
131
+ if (va < vb)
132
+ return -1;
133
+ if (va > vb)
134
+ return 1;
135
+ }
136
+ return 0;
137
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compilr-dev/cli",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "AI-powered coding assistant CLI using @compilr-dev/agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -8,13 +8,17 @@
8
8
  "compilr": "dist/index.js"
9
9
  },
10
10
  "scripts": {
11
- "build": "tsc",
11
+ "build": "tsc -b && chmod +x dist/index.js",
12
12
  "start": "node dist/index.js",
13
- "dev": "tsc && node dist/index.js",
14
- "clean": "rm -rf dist",
13
+ "dev": "tsc -b && node dist/index.js",
14
+ "clean": "tsc -b --clean && rm -rf dist",
15
15
  "lint": "eslint src/",
16
16
  "lint:fix": "eslint src/ --fix",
17
- "prepublishOnly": "npm run lint && npm run build",
17
+ "build:vsix": "cd vscode-extension && npx @vscode/vsce package --out ../dist/compilr-diff-companion.vsix",
18
+ "prepublishOnly": "npm run lint && npm test && npm run build && npm run build:vsix",
19
+ "test": "vitest run",
20
+ "test:watch": "vitest",
21
+ "test:coverage": "vitest run --coverage",
18
22
  "test:scroll": "npx tsx scripts/test-scroll-regions.ts",
19
23
  "test:scroll-input": "npx tsx scripts/test-scroll-input.ts",
20
24
  "test:repl-v2": "npx tsx scripts/test-repl-v2.ts",
@@ -46,28 +50,37 @@
46
50
  "LICENSE"
47
51
  ],
48
52
  "engines": {
49
- "node": ">=18.0.0"
53
+ "node": ">=20.0.0"
50
54
  },
51
55
  "dependencies": {
52
- "@anthropic-ai/sdk": "^0.30.1",
53
- "@compilr-dev/agents": "^0.3.1",
56
+ "@anthropic-ai/sdk": "^0.74.0",
57
+ "@compilr-dev/agents": "^0.3.16",
54
58
  "@compilr-dev/agents-coding": "^1.0.2",
55
- "@compilr-dev/editor-core": "^0.0.1",
59
+ "@compilr-dev/editor-core": "^0.0.2",
60
+ "@compilr-dev/sdk": "^0.1.11",
56
61
  "@compilr-dev/ui-core": "^0.0.1",
62
+ "@modelcontextprotocol/sdk": "^1.23.0",
57
63
  "better-sqlite3": "^12.5.0",
58
64
  "chalk": "^5.6.2",
65
+ "js-tiktoken": "^1.0.21",
59
66
  "marked": "^15.0.12",
60
67
  "marked-terminal": "^7.3.0",
61
68
  "picocolors": "^1.1.1",
62
- "web-tree-sitter": "^0.20.8"
69
+ "uuid": "^13.0.0"
70
+ },
71
+ "overrides": {
72
+ "minimatch": ">=10.2.1"
63
73
  },
64
74
  "devDependencies": {
65
75
  "@eslint/js": "^9.39.1",
66
76
  "@types/better-sqlite3": "^7.6.13",
67
77
  "@types/marked-terminal": "^6.1.1",
68
- "@types/node": "^22.0.0",
78
+ "@types/node": "^25.2.3",
79
+ "@types/uuid": "^10.0.0",
80
+ "@vscode/vsce": "^3.2.0",
69
81
  "eslint": "^9.39.1",
70
82
  "typescript": "^5.3.0",
71
- "typescript-eslint": "^8.48.0"
83
+ "typescript-eslint": "^8.48.0",
84
+ "vitest": "^4.0.18"
72
85
  }
73
86
  }