@compilr-dev/cli 0.5.0 → 0.5.2

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