@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,178 @@
1
+ /**
2
+ * Ollama Model Auto-Detection
3
+ *
4
+ * Fetches available models from a running Ollama instance.
5
+ * Provides caching to avoid repeated API calls.
6
+ */
7
+ import { getSetting } from '../settings/index.js';
8
+ // =============================================================================
9
+ // Cache
10
+ // =============================================================================
11
+ /** Cache duration in milliseconds (30 seconds) */
12
+ const CACHE_DURATION_MS = 30_000;
13
+ /** Cached result */
14
+ let cachedResult = null;
15
+ /**
16
+ * Clear the cache (useful for testing or forcing refresh).
17
+ */
18
+ export function clearOllamaModelsCache() {
19
+ cachedResult = null;
20
+ }
21
+ // =============================================================================
22
+ // Main Function
23
+ // =============================================================================
24
+ /**
25
+ * Get the Ollama base URL from settings or environment.
26
+ */
27
+ function getOllamaBaseUrl() {
28
+ const settingUrl = getSetting('ollamaBaseUrl');
29
+ return (typeof settingUrl === 'string' ? settingUrl : null)
30
+ ?? process.env.OLLAMA_BASE_URL
31
+ ?? process.env.OLLAMA_HOST
32
+ ?? 'http://localhost:11434';
33
+ }
34
+ /**
35
+ * List all locally available Ollama models.
36
+ *
37
+ * Features:
38
+ * - Caches results for 30 seconds to avoid repeated API calls
39
+ * - Returns gracefully with error info when Ollama is not running
40
+ * - Parses model metadata (size, family, quantization)
41
+ *
42
+ * @param forceRefresh - If true, bypasses the cache
43
+ */
44
+ export async function listOllamaModels(forceRefresh = false) {
45
+ // Check cache
46
+ if (!forceRefresh && cachedResult) {
47
+ const age = Date.now() - cachedResult.fetchedAt;
48
+ if (age < CACHE_DURATION_MS) {
49
+ return cachedResult;
50
+ }
51
+ }
52
+ const ollamaHost = getOllamaBaseUrl();
53
+ try {
54
+ const response = await fetch(`${ollamaHost}/api/tags`, {
55
+ method: 'GET',
56
+ signal: AbortSignal.timeout(5000),
57
+ });
58
+ if (!response.ok) {
59
+ cachedResult = {
60
+ success: false,
61
+ models: [],
62
+ error: `Ollama returned status ${String(response.status)}`,
63
+ ollamaRunning: true, // Server responded, just with an error
64
+ fetchedAt: Date.now(),
65
+ };
66
+ return cachedResult;
67
+ }
68
+ const data = await response.json();
69
+ const models = (data.models ?? []).map(m => ({
70
+ name: m.name,
71
+ size: m.size,
72
+ modifiedAt: m.modified_at,
73
+ digest: m.digest,
74
+ details: m.details ? {
75
+ family: m.details.family,
76
+ parameterSize: m.details.parameter_size,
77
+ quantizationLevel: m.details.quantization_level,
78
+ } : undefined,
79
+ }));
80
+ // Sort by name for consistent display
81
+ models.sort((a, b) => a.name.localeCompare(b.name));
82
+ cachedResult = {
83
+ success: true,
84
+ models,
85
+ ollamaRunning: true,
86
+ fetchedAt: Date.now(),
87
+ };
88
+ return cachedResult;
89
+ }
90
+ catch (error) {
91
+ let errorMsg = 'Unknown error';
92
+ let ollamaRunning = false;
93
+ if (error instanceof Error) {
94
+ if (error.name === 'AbortError' || error.message.includes('timeout')) {
95
+ errorMsg = 'Connection timed out';
96
+ ollamaRunning = false;
97
+ }
98
+ else if (error.message.includes('ECONNREFUSED') || error.message.includes('fetch failed')) {
99
+ errorMsg = 'Ollama is not running. Start it with: ollama serve';
100
+ ollamaRunning = false;
101
+ }
102
+ else {
103
+ errorMsg = error.message;
104
+ }
105
+ }
106
+ cachedResult = {
107
+ success: false,
108
+ models: [],
109
+ error: errorMsg,
110
+ ollamaRunning,
111
+ fetchedAt: Date.now(),
112
+ };
113
+ return cachedResult;
114
+ }
115
+ }
116
+ // =============================================================================
117
+ // Helper Functions
118
+ // =============================================================================
119
+ /**
120
+ * Check if a specific model is available locally.
121
+ * Uses the cached model list for efficiency.
122
+ */
123
+ export async function isOllamaModelAvailable(modelId) {
124
+ const result = await listOllamaModels();
125
+ if (!result.success) {
126
+ return false;
127
+ }
128
+ const normalizedModelId = modelId.toLowerCase();
129
+ return result.models.some(m => {
130
+ const name = m.name.toLowerCase();
131
+ // Exact match or model without tag matches
132
+ return name === normalizedModelId ||
133
+ name.startsWith(normalizedModelId + ':') ||
134
+ normalizedModelId.startsWith(name.split(':')[0]);
135
+ });
136
+ }
137
+ /**
138
+ * Format model size for display (e.g., "4.1 GB").
139
+ */
140
+ export function formatModelSize(bytes) {
141
+ if (bytes < 1024)
142
+ return `${String(bytes)} B`;
143
+ if (bytes < 1024 * 1024)
144
+ return `${(bytes / 1024).toFixed(1)} KB`;
145
+ if (bytes < 1024 * 1024 * 1024)
146
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
147
+ return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
148
+ }
149
+ /**
150
+ * Get a friendly display name for a model.
151
+ * Capitalizes the base name and formats the tag.
152
+ */
153
+ export function getOllamaModelDisplayName(name) {
154
+ const [baseName, tag] = name.split(':');
155
+ // Capitalize first letter of each word
156
+ const formattedBase = baseName
157
+ .split(/[-_]/)
158
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
159
+ .join(' ');
160
+ if (tag) {
161
+ return `${formattedBase} (${tag})`;
162
+ }
163
+ return formattedBase;
164
+ }
165
+ /**
166
+ * Get a short description for a model based on its metadata.
167
+ */
168
+ export function getOllamaModelDescription(model) {
169
+ const parts = [];
170
+ if (model.details?.parameterSize) {
171
+ parts.push(model.details.parameterSize);
172
+ }
173
+ if (model.details?.quantizationLevel) {
174
+ parts.push(model.details.quantizationLevel);
175
+ }
176
+ parts.push(formatModelSize(model.size));
177
+ return parts.join(' · ');
178
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Provider Type Definition
3
+ *
4
+ * Re-exported from @compilr-dev/sdk — single source of truth.
5
+ */
6
+ export type { ProviderType } from '@compilr-dev/sdk';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Provider Metadata — CLI extension of SDK provider data
3
+ *
4
+ * Re-exports SDK types and data, extending ProviderMetadata with
5
+ * CLI-specific `credentialKey` for the encrypted credential store.
6
+ */
7
+ import type { ProviderType } from './provider-types.js';
8
+ import type { ProviderKey } from '../utils/credentials.js';
9
+ import { type ProviderMetadata as SdkProviderMetadata } from '@compilr-dev/sdk';
10
+ export { type OthersProviderModel, TOGETHER_MODELS, GROQ_MODELS, FIREWORKS_MODELS, PERPLEXITY_MODELS, OPENROUTER_MODELS, getModelsForOthersProvider, } from '@compilr-dev/sdk';
11
+ /**
12
+ * CLI-extended provider metadata — adds credentialKey for encrypted storage.
13
+ */
14
+ export interface ProviderMetadata extends SdkProviderMetadata {
15
+ /** Credential key for API key storage (CLI-specific) */
16
+ credentialKey: ProviderKey;
17
+ }
18
+ /**
19
+ * CLI-extended provider metadata registry.
20
+ * Merges SDK metadata with CLI credential keys.
21
+ */
22
+ export declare const PROVIDER_METADATA: Record<ProviderType, ProviderMetadata>;
23
+ /**
24
+ * Get provider metadata by type (CLI-extended with credentialKey).
25
+ */
26
+ export declare function getProviderMetadata(provider: ProviderType): ProviderMetadata;
27
+ /**
28
+ * Get all "Others" providers (for UI listing).
29
+ * Returns CLI-extended metadata with credentialKey.
30
+ */
31
+ export declare function getOthersProviders(): ProviderMetadata[];
32
+ /**
33
+ * Check if a provider is an "Others" provider.
34
+ */
35
+ export declare function isOthersProvider(provider: ProviderType): boolean;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Provider Metadata — CLI extension of SDK provider data
3
+ *
4
+ * Re-exports SDK types and data, extending ProviderMetadata with
5
+ * CLI-specific `credentialKey` for the encrypted credential store.
6
+ */
7
+ import { PROVIDER_METADATA as SDK_PROVIDER_METADATA, } from '@compilr-dev/sdk';
8
+ // Re-export SDK types that don't need CLI extensions
9
+ export { TOGETHER_MODELS, GROQ_MODELS, FIREWORKS_MODELS, PERPLEXITY_MODELS, OPENROUTER_MODELS, getModelsForOthersProvider, } from '@compilr-dev/sdk';
10
+ /**
11
+ * Credential key mapping: ProviderType → ProviderKey
12
+ */
13
+ const CREDENTIAL_KEYS = {
14
+ claude: 'anthropic',
15
+ openai: 'openai',
16
+ gemini: 'google',
17
+ ollama: 'ollama',
18
+ together: 'together',
19
+ groq: 'groq',
20
+ fireworks: 'fireworks',
21
+ perplexity: 'perplexity',
22
+ openrouter: 'openrouter',
23
+ custom: 'openai', // Custom uses openai-compatible format by default
24
+ };
25
+ /**
26
+ * CLI-extended provider metadata registry.
27
+ * Merges SDK metadata with CLI credential keys.
28
+ */
29
+ export const PROVIDER_METADATA = (() => {
30
+ const result = {};
31
+ for (const [key, sdkMeta] of Object.entries(SDK_PROVIDER_METADATA)) {
32
+ const providerType = key;
33
+ result[providerType] = {
34
+ ...sdkMeta,
35
+ credentialKey: CREDENTIAL_KEYS[providerType],
36
+ };
37
+ }
38
+ return result;
39
+ })();
40
+ /**
41
+ * Get provider metadata by type (CLI-extended with credentialKey).
42
+ */
43
+ export function getProviderMetadata(provider) {
44
+ return PROVIDER_METADATA[provider];
45
+ }
46
+ /**
47
+ * Get all "Others" providers (for UI listing).
48
+ * Returns CLI-extended metadata with credentialKey.
49
+ */
50
+ export function getOthersProviders() {
51
+ return Object.values(PROVIDER_METADATA).filter(p => p.category === 'others' && p.type !== 'custom');
52
+ }
53
+ /**
54
+ * Check if a provider is an "Others" provider.
55
+ */
56
+ export function isOthersProvider(provider) {
57
+ return PROVIDER_METADATA[provider].category === 'others';
58
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Model Types — Re-exported from @compilr-dev/sdk
3
+ */
4
+ export { type ModelTier, type TierInfo, type ProviderModelMap, MODEL_TIERS, TIER_INFO, isValidTier, } from '@compilr-dev/sdk';
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Model Types — Re-exported from @compilr-dev/sdk
3
+ */
4
+ export { MODEL_TIERS, TIER_INFO, isValidTier, } from '@compilr-dev/sdk';
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Activity Recording Module
3
+ *
4
+ * Provides a global function for tools to record team activity.
5
+ * The SharedContextManager is set by the REPL when a team is active.
6
+ */
7
+ import type { SharedContextManager, TeamActivityType } from './shared-context.js';
8
+ /**
9
+ * Set the active SharedContextManager for activity recording
10
+ * Called by the REPL when a team is initialized
11
+ */
12
+ export declare function setActiveSharedContext(ctx: SharedContextManager | null): void;
13
+ /**
14
+ * Get the active SharedContextManager
15
+ */
16
+ export declare function getActiveSharedContext(): SharedContextManager | null;
17
+ /**
18
+ * Record team activity
19
+ * Safe to call even if no team is active (will be a no-op)
20
+ */
21
+ export declare function recordTeamActivity(agentId: string, action: TeamActivityType, summary: string): void;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Activity Recording Module
3
+ *
4
+ * Provides a global function for tools to record team activity.
5
+ * The SharedContextManager is set by the REPL when a team is active.
6
+ */
7
+ // Module-level reference to the active SharedContextManager
8
+ let activeSharedContext = null;
9
+ /**
10
+ * Set the active SharedContextManager for activity recording
11
+ * Called by the REPL when a team is initialized
12
+ */
13
+ export function setActiveSharedContext(ctx) {
14
+ activeSharedContext = ctx;
15
+ }
16
+ /**
17
+ * Get the active SharedContextManager
18
+ */
19
+ export function getActiveSharedContext() {
20
+ return activeSharedContext;
21
+ }
22
+ /**
23
+ * Record team activity
24
+ * Safe to call even if no team is active (will be a no-op)
25
+ */
26
+ export function recordTeamActivity(agentId, action, summary) {
27
+ if (activeSharedContext) {
28
+ activeSharedContext.recordActivity({
29
+ agentId,
30
+ action,
31
+ summary,
32
+ });
33
+ }
34
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Agent Selection Helpers
3
+ *
4
+ * Provides functions for selecting the best agent for a task:
5
+ * - findAgentForRole: Find an agent by role (LRU selection if multiple)
6
+ * - findAgentById: Find an agent by ID
7
+ * - getAvailableSpecialists: Get all non-default agents
8
+ *
9
+ * Uses Least Recently Used (LRU) selection when multiple agents have the same role.
10
+ * This spreads work across agents and prepares for future background execution
11
+ * where we'll prefer idle agents.
12
+ */
13
+ import type { AgentTeam } from './team.js';
14
+ import type { TeamAgent } from './team-agent.js';
15
+ import type { AgentRole } from './types.js';
16
+ /**
17
+ * Find the best agent for a given role.
18
+ * If multiple agents have the same role, selects the least recently used.
19
+ *
20
+ * @param team - The agent team
21
+ * @param role - The role to find (e.g., 'arch', 'dev', 'qa')
22
+ * @returns The best matching agent, or null if none found
23
+ */
24
+ export declare function findAgentForRole(team: AgentTeam, role: AgentRole): TeamAgent | null;
25
+ /**
26
+ * Find an agent by ID.
27
+ *
28
+ * @param team - The agent team
29
+ * @param id - The agent ID (e.g., 'arch', 'dev-1', 'my-custom-agent')
30
+ * @returns The agent, or null if not found
31
+ */
32
+ export declare function findAgentById(team: AgentTeam, id: string): TeamAgent | null;
33
+ /**
34
+ * Get all specialist agents (non-default agents).
35
+ * Useful for listing available delegation targets.
36
+ *
37
+ * @param team - The agent team
38
+ * @returns Array of specialist agents
39
+ */
40
+ export declare function getAvailableSpecialists(team: AgentTeam): TeamAgent[];
41
+ /**
42
+ * Get a summary of available specialists for the coordinator.
43
+ * Returns a formatted string listing specialists by role.
44
+ *
45
+ * @param team - The agent team
46
+ * @returns Formatted string of available specialists
47
+ */
48
+ export declare function getSpecialistsSummary(team: AgentTeam): string;
49
+ /**
50
+ * Check if the team has any specialists available for delegation.
51
+ *
52
+ * @param team - The agent team
53
+ * @returns True if there are specialist agents
54
+ */
55
+ export declare function hasSpecialists(team: AgentTeam): boolean;
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Agent Selection Helpers
3
+ *
4
+ * Provides functions for selecting the best agent for a task:
5
+ * - findAgentForRole: Find an agent by role (LRU selection if multiple)
6
+ * - findAgentById: Find an agent by ID
7
+ * - getAvailableSpecialists: Get all non-default agents
8
+ *
9
+ * Uses Least Recently Used (LRU) selection when multiple agents have the same role.
10
+ * This spreads work across agents and prepares for future background execution
11
+ * where we'll prefer idle agents.
12
+ */
13
+ /**
14
+ * Find the best agent for a given role.
15
+ * If multiple agents have the same role, selects the least recently used.
16
+ *
17
+ * @param team - The agent team
18
+ * @param role - The role to find (e.g., 'arch', 'dev', 'qa')
19
+ * @returns The best matching agent, or null if none found
20
+ */
21
+ export function findAgentForRole(team, role) {
22
+ const agents = team.getAll();
23
+ // Filter to agents with matching role
24
+ const candidates = agents.filter((agent) => agent.role === role);
25
+ if (candidates.length === 0) {
26
+ return null;
27
+ }
28
+ if (candidates.length === 1) {
29
+ return candidates[0];
30
+ }
31
+ // Multiple candidates: select Least Recently Used (LRU)
32
+ // Sort by lastActivity ascending (oldest first)
33
+ candidates.sort((a, b) => a.lastActivity.getTime() - b.lastActivity.getTime());
34
+ return candidates[0];
35
+ }
36
+ /**
37
+ * Find an agent by ID.
38
+ *
39
+ * @param team - The agent team
40
+ * @param id - The agent ID (e.g., 'arch', 'dev-1', 'my-custom-agent')
41
+ * @returns The agent, or null if not found
42
+ */
43
+ export function findAgentById(team, id) {
44
+ return team.get(id) ?? null;
45
+ }
46
+ /**
47
+ * Get all specialist agents (non-default agents).
48
+ * Useful for listing available delegation targets.
49
+ *
50
+ * @param team - The agent team
51
+ * @returns Array of specialist agents
52
+ */
53
+ export function getAvailableSpecialists(team) {
54
+ return team.getAll().filter((agent) => agent.id !== 'default');
55
+ }
56
+ /**
57
+ * Get a summary of available specialists for the coordinator.
58
+ * Returns a formatted string listing specialists by role.
59
+ *
60
+ * @param team - The agent team
61
+ * @returns Formatted string of available specialists
62
+ */
63
+ export function getSpecialistsSummary(team) {
64
+ const specialists = getAvailableSpecialists(team);
65
+ if (specialists.length === 0) {
66
+ return 'No specialist agents available. Add agents via /team.';
67
+ }
68
+ // Group by role
69
+ const byRole = new Map();
70
+ for (const agent of specialists) {
71
+ const list = byRole.get(agent.role) ?? [];
72
+ list.push(agent);
73
+ byRole.set(agent.role, list);
74
+ }
75
+ const lines = [];
76
+ for (const [role, agents] of byRole) {
77
+ const agentList = agents.map((a) => `$${a.id}`).join(', ');
78
+ lines.push(`- ${role}: ${agentList}`);
79
+ }
80
+ return lines.join('\n');
81
+ }
82
+ /**
83
+ * Check if the team has any specialists available for delegation.
84
+ *
85
+ * @param team - The agent team
86
+ * @returns True if there are specialist agents
87
+ */
88
+ export function hasSpecialists(team) {
89
+ return getAvailableSpecialists(team).length > 0;
90
+ }
@@ -0,0 +1,197 @@
1
+ /**
2
+ * ArtifactStore - Storage for team artifacts
3
+ *
4
+ * Artifacts are named pieces of work that agents can publish and reference:
5
+ * - design: Architecture, API specs, data models
6
+ * - plan: Sprint plans, task breakdowns, timelines
7
+ * - review: Code reviews, security audits, feedback
8
+ * - decision: Architectural decisions, trade-off analysis
9
+ * - note: General notes, meeting summaries
10
+ */
11
+ /**
12
+ * Artifact types
13
+ */
14
+ export type ArtifactType = 'design' | 'plan' | 'review' | 'decision' | 'note';
15
+ /**
16
+ * Full artifact structure
17
+ */
18
+ export interface Artifact {
19
+ id: string;
20
+ name: string;
21
+ agent: string;
22
+ type: ArtifactType;
23
+ content: string;
24
+ summary: string;
25
+ version: number;
26
+ createdAt: Date;
27
+ updatedAt: Date;
28
+ mentions: string[];
29
+ referencedBy: string[];
30
+ }
31
+ /**
32
+ * Artifact summary for the shared context index
33
+ */
34
+ export interface ArtifactSummary {
35
+ id: string;
36
+ name: string;
37
+ agent: string;
38
+ type: ArtifactType;
39
+ summary: string;
40
+ updatedAt: Date;
41
+ }
42
+ /**
43
+ * Options for creating an artifact
44
+ */
45
+ export interface CreateArtifactOptions {
46
+ name: string;
47
+ agent: string;
48
+ type: ArtifactType;
49
+ content: string;
50
+ summary?: string;
51
+ }
52
+ /**
53
+ * Options for updating an artifact
54
+ */
55
+ export interface UpdateArtifactOptions {
56
+ content?: string;
57
+ summary?: string;
58
+ type?: ArtifactType;
59
+ }
60
+ /**
61
+ * Serialized artifact for persistence
62
+ */
63
+ export interface SerializedArtifact {
64
+ id: string;
65
+ name: string;
66
+ agent: string;
67
+ type: ArtifactType;
68
+ content: string;
69
+ summary: string;
70
+ version: number;
71
+ createdAt: string;
72
+ updatedAt: string;
73
+ mentions?: string[];
74
+ referencedBy?: string[];
75
+ }
76
+ /**
77
+ * Artifact index for persistence
78
+ */
79
+ export interface ArtifactIndex {
80
+ version: number;
81
+ artifacts: Array<{
82
+ id: string;
83
+ name: string;
84
+ agent: string;
85
+ type: ArtifactType;
86
+ summary: string;
87
+ updatedAt: string;
88
+ }>;
89
+ updatedAt: string;
90
+ }
91
+ /**
92
+ * Manages artifact storage and retrieval
93
+ */
94
+ export declare class ArtifactStore {
95
+ private readonly basePath;
96
+ private readonly artifacts;
97
+ private readonly nameToId;
98
+ private updatedAt;
99
+ constructor(basePath: string);
100
+ /**
101
+ * Get the artifacts directory path
102
+ */
103
+ private getArtifactsDir;
104
+ /**
105
+ * Get the index file path
106
+ */
107
+ private getIndexPath;
108
+ /**
109
+ * Get the path for an artifact file
110
+ */
111
+ private getArtifactPath;
112
+ /**
113
+ * Ensure artifacts directory exists
114
+ */
115
+ private ensureDir;
116
+ /**
117
+ * Create a new artifact
118
+ */
119
+ create(options: CreateArtifactOptions): Artifact;
120
+ /**
121
+ * Get an artifact by ID
122
+ */
123
+ get(id: string): Artifact | undefined;
124
+ /**
125
+ * Get an artifact by name (case-insensitive)
126
+ */
127
+ getByName(name: string): Artifact | undefined;
128
+ /**
129
+ * Update an artifact
130
+ */
131
+ update(id: string, options: UpdateArtifactOptions): Artifact | undefined;
132
+ /**
133
+ * Delete an artifact
134
+ */
135
+ delete(id: string): boolean;
136
+ /**
137
+ * Rename an artifact
138
+ */
139
+ rename(id: string, newName: string): Artifact | undefined;
140
+ /**
141
+ * List all artifacts
142
+ */
143
+ list(): Artifact[];
144
+ /**
145
+ * List artifacts by agent
146
+ */
147
+ listByAgent(agent: string): Artifact[];
148
+ /**
149
+ * List artifacts by type
150
+ */
151
+ listByType(type: ArtifactType): Artifact[];
152
+ /**
153
+ * Search artifacts by name or content
154
+ */
155
+ search(query: string): Artifact[];
156
+ /**
157
+ * Get artifact count
158
+ */
159
+ get size(): number;
160
+ /**
161
+ * Check if an artifact exists by name
162
+ */
163
+ has(name: string): boolean;
164
+ /**
165
+ * Check if an artifact exists by ID
166
+ */
167
+ hasId(id: string): boolean;
168
+ /**
169
+ * Generate a summary from content
170
+ * Simple extraction of first meaningful lines
171
+ */
172
+ private generateSummary;
173
+ /**
174
+ * Get summaries for shared context injection
175
+ */
176
+ getSummaries(): ArtifactSummary[];
177
+ /**
178
+ * Save all artifacts to disk
179
+ */
180
+ save(): void;
181
+ /**
182
+ * Save just the index file
183
+ */
184
+ private saveIndex;
185
+ /**
186
+ * Load artifacts from disk
187
+ */
188
+ load(): void;
189
+ /**
190
+ * Clear all artifacts (including from disk)
191
+ */
192
+ clear(): void;
193
+ /**
194
+ * Get the last update timestamp
195
+ */
196
+ getLastUpdated(): Date;
197
+ }