@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
package/dist/agent.js CHANGED
@@ -5,178 +5,17 @@
5
5
  * ClaudeProvider, OllamaProvider, OpenAIProvider, or GeminiProvider
6
6
  * and available tools.
7
7
  */
8
- import { Agent, ClaudeProvider, OllamaProvider, OpenAIProvider, GeminiProvider, ContextManager, DEFAULT_CONTEXT_CONFIG, createTaskTool, createSuggestTool, defaultAgentTypes, TOOL_SETS, BUILTIN_GUARDRAILS, } from '@compilr-dev/agents';
9
- import { isAutoCompactEnabled } from './settings/index.js';
8
+ import { Agent, ContextManager, DEFAULT_CONTEXT_CONFIG, createTaskTool, createSuggestTool, defaultAgentTypes, TOOL_SETS, BUILTIN_GUARDRAILS, createProviderFromType, } from '@compilr-dev/sdk';
9
+ import { isAutoCompactEnabled, isDelegationEnabled, getSetting } from './settings/index.js';
10
10
  import { getApiKey } from './utils/credentials.js';
11
- import { createToolRegistry, createMinimalToolRegistry } from './tools.js';
11
+ import { createToolRegistry, createMinimalToolRegistry, getDirectTools, getMetaTools, initializeMetaTools, getToolIndexForSystemPrompt, getToolStats, setMetaToolFilter, createToolFallback, } from './tools.js';
12
12
  import { getAgentRegistry } from './agents/registry.js';
13
- const SYSTEM_PROMPT = `You are a coding assistant running in a terminal CLI.
14
-
15
- You help users with software engineering tasks: writing code, debugging, refactoring, explaining concepts, managing projects, and more.
16
-
17
- ## Tone and Style
18
-
19
- - Your output displays in a terminal. Keep responses short and concise.
20
- - Use GitHub-flavored markdown for formatting.
21
- - Only use emojis if the user explicitly requests them.
22
- - Output text to communicate. Never use tools (like bash echo) to communicate.
23
- - NEVER create files unless absolutely necessary. Always prefer editing existing files.
24
- - When referencing code, include file path and line number: src/utils.ts:42
25
-
26
- ## Professional Objectivity
27
-
28
- Prioritize technical accuracy over validating the user's beliefs. Provide direct, objective technical info without unnecessary praise or emotional validation. Disagree when necessary - objective guidance is more valuable than false agreement.
29
-
30
- Avoid phrases like "You're absolutely right!" or "Great question!" - just answer directly.
31
-
32
- ## No Time Estimates
33
-
34
- Never predict how long tasks will take. Avoid phrases like "this will take a few minutes" or "quick fix". Focus on what needs to be done, not duration.
35
-
36
- ---
37
-
38
- ## Doing Tasks
39
-
40
- When the user requests software engineering work:
41
-
42
- 1. **Read before modifying**: NEVER propose changes to code you haven't read. Always read files first.
43
- 2. **Use todo_write for complex tasks**: Track progress on multi-step work (3+ steps).
44
- 3. **Avoid over-engineering**:
45
- - Only make changes that are directly requested
46
- - Don't add features beyond what was asked
47
- - Don't add error handling for scenarios that can't happen
48
- - Don't create abstractions for one-time operations
49
- - Three similar lines is better than a premature abstraction
50
- 4. **Security awareness**: Don't introduce vulnerabilities (injection, XSS, SQL injection). If you notice insecure code, fix it immediately.
51
- 5. **Clean up completely**: If something is unused, delete it. No backwards-compatibility hacks.
52
-
53
- ## Task Management (todo_write)
54
-
55
- Use todo_write to track progress on multi-step tasks.
56
-
57
- When to use:
58
- - Tasks with 3+ distinct steps
59
- - User provides multiple tasks
60
- - Complex work requiring planning
61
-
62
- When NOT to use:
63
- - Single, trivial tasks
64
- - Purely informational questions
65
- - Tasks completable in 1-2 steps
66
-
67
- ### Example: When to use todo_write
68
-
69
- User: Fix the type errors and run the tests
70
- Assistant: I'll track this multi-step task:
71
- [Uses todo_write: "Fix type errors", "Run tests"]
72
- [Marks "Fix type errors" as in_progress]
73
- [Reads files, fixes errors]
74
- [Marks "Fix type errors" complete, "Run tests" in_progress]
75
- [Runs tests]
76
- [Marks "Run tests" complete]
77
-
78
- ### Example: When NOT to use todo_write
79
-
80
- User: What does this function do?
81
- Assistant: [Reads the file and explains directly - no todo needed for a simple question]
82
-
83
- ---
84
-
85
- ## Tool Usage
86
-
87
- IMPORTANT: Tool names are lowercase with underscores. Use them exactly as shown.
88
-
89
- ### File Operations
90
- - read_file: Read file contents (parameter: path)
91
- - write_file: Create or overwrite a file (parameters: path, content)
92
- - edit: Replace text in a file (parameters: path, old_text, new_text)
93
- - glob: Find files matching a pattern (parameters: pattern, path)
94
- - grep: Search file contents with regex (parameters: pattern, path)
95
-
96
- ### Shell
97
- - bash: Run shell commands (parameter: command)
98
- For long-running commands (dev servers), use run_in_background=true
99
- - bash_output: Get output from background shell (parameter: shell_id)
100
- - kill_shell: Terminate background shell (parameter: shell_id)
101
-
102
- ### Git
103
- - git_status: Show working tree status
104
- - git_diff: Show file differences
105
- - git_log: Show commit history
106
- - git_commit: Create a commit (parameters: message, files)
107
- - git_branch: List or manage branches
108
-
109
- ### Project Analysis
110
- - detect_project: Detect project type and framework
111
- - find_project_root: Find project root directory
112
- - run_tests: Run test suite
113
- - run_lint: Run linter
114
-
115
- ### Task Management
116
- - todo_write: Add/update todo items
117
- - todo_read: View current todo list
118
-
119
- ### User Interaction
120
- - ask_user: Ask question with multiple choice options
121
- - ask_user_simple: Ask simple yes/no or text input question
122
- - suggest: Suggest next action (appears as ghost text - user presses Tab to accept)
123
-
124
- ### Sub-agents
125
- - task: Spawn specialized sub-agent for complex tasks
126
- Types: explore, code-review, plan, debug, test-runner, refactor, security-audit, general
127
-
128
- ---
129
-
130
- ## Git Safety Protocol
131
-
132
- When working with git:
133
-
134
- 1. **Never update git config** without explicit user request
135
- 2. **Never force push** to main/master - warn if requested
136
- 3. **Never use --amend** unless:
137
- - User explicitly requested it, AND
138
- - Commit was created by you in this session, AND
139
- - Commit has NOT been pushed to remote
140
- 4. **Check before destructive operations**:
141
- - git reset --hard (loses uncommitted changes)
142
- - git checkout -- file (discards local changes)
143
- - git clean (deletes untracked files)
144
- 5. **Only commit when asked** - don't commit proactively
145
-
146
- ### Commit Workflow
147
- 1. Run git_status to see changes
148
- 2. Run git_diff to review what will be committed
149
- 3. Check recent git_log for commit message style
150
- 4. Create focused commit with clear message
151
- 5. Never commit files with secrets (.env, credentials.json)
152
-
153
- ---
154
-
155
- ## Next Action Suggestions
156
-
157
- After completing a task, call the suggest tool to recommend the next action.
158
-
159
- Good suggestions are short commands or actions:
160
- - "run npm test"
161
- - "commit the changes"
162
- - "check the error log"
163
-
164
- CALL the suggest tool - never write "suggest: ..." as text.
165
-
166
- ---
167
-
168
- ## IMPORTANT RULES (read carefully)
169
-
170
- 1. Tool names are lowercase with underscores - use exactly as shown
171
- 2. ALWAYS read files before proposing changes to them
172
- 3. After calling a tool, respond with the result - never end silently
173
- 4. Use todo_write for multi-step tasks (3+ steps)
174
- 5. Don't over-engineer - implement exactly what was asked
175
- 6. Check for security issues - fix insecure code immediately
176
- 7. Use the task tool to delegate complex work to sub-agents
177
- 8. Call suggest tool after completing tasks (don't write "suggest:" as text)
178
-
179
- Current working directory: ${process.cwd()}`;
13
+ import { SystemPromptBuilder } from './system-prompt/index.js';
14
+ import { getDefaultModelForTier, getModelContextWindow } from './models/index.js';
15
+ import { PROVIDER_METADATA } from './models/providers.js';
16
+ import { setStaticEstimates, estimateTokens, estimateJsonTokens, } from './utils/token-tracker.js';
17
+ import { createFileLockCheckHook, createFileLockAcquireHook } from './multi-agent/file-lock-hook.js';
18
+ import { getActiveProject } from './tools/project-db.js';
180
19
  /**
181
20
  * Default permission rules for potentially dangerous operations
182
21
  * Note: Tool names are lowercase (bash, write_file, edit, git_commit)
@@ -248,85 +87,57 @@ function getMergedAgentTypes() {
248
87
  }
249
88
  /**
250
89
  * Creates the appropriate LLM provider based on configuration.
90
+ * Resolves CLI-specific concerns (credentials, settings) then delegates
91
+ * provider instantiation to the SDK's createProviderFromType().
251
92
  */
252
93
  function createProvider(options) {
253
94
  const providerType = options.provider ?? 'claude';
254
- switch (providerType) {
255
- case 'ollama': {
256
- const model = options.model ?? 'llama3.1';
257
- console.log(`Using Ollama provider with model: ${model}`);
258
- const provider = new OllamaProvider({
259
- model,
260
- baseUrl: process.env.OLLAMA_BASE_URL ?? 'http://localhost:11434',
261
- });
262
- return provider;
263
- }
264
- case 'openai': {
265
- const apiKey = getApiKey('openai');
266
- if (!apiKey) {
267
- throw new Error('OpenAI API key not found.\n' +
268
- 'Run /keys to set it, or: export OPENAI_API_KEY=sk-...');
269
- }
270
- const model = options.model ?? 'gpt-4o';
271
- console.log(`Using OpenAI provider with model: ${model}`);
272
- const provider = new OpenAIProvider({ apiKey, model });
273
- return provider;
274
- }
275
- case 'gemini': {
276
- const apiKey = getApiKey('google');
277
- if (!apiKey) {
278
- throw new Error('Google AI API key not found.\n' +
279
- 'Run /keys to set it, or: export GOOGLE_API_KEY=AI...');
280
- }
281
- const model = options.model ?? 'gemini-2.0-flash';
282
- console.log(`Using Gemini provider with model: ${model}`);
283
- const provider = new GeminiProvider({ apiKey, model });
284
- return provider;
285
- }
286
- case 'claude':
287
- default: {
288
- const apiKey = getApiKey('anthropic');
289
- if (!apiKey) {
290
- throw new Error('Anthropic API key not found.\n' +
291
- 'Run /keys to set it, or: export ANTHROPIC_API_KEY=sk-ant-...\n' +
292
- 'Or use --provider ollama for local models.');
293
- }
294
- const model = options.model ?? 'claude-sonnet-4-20250514';
295
- console.log(`Using Claude provider with model: ${model}`);
296
- return new ClaudeProvider({ apiKey, model });
297
- }
95
+ const quiet = options.quiet ?? false;
96
+ const meta = PROVIDER_METADATA[providerType];
97
+ // 1. Resolve API key from CLI credential store
98
+ const apiKey = meta.requiresKey ? getApiKey(meta.credentialKey) : undefined;
99
+ if (!apiKey && meta.requiresKey) {
100
+ throw new Error(`${meta.displayName} API key not found.\n` +
101
+ `Run /keys to set it, or: export ${meta.envVar}=...` +
102
+ (providerType === 'claude' ? '\nOr use --provider ollama for local models.' : ''));
298
103
  }
299
- }
300
- /**
301
- * Returns the context window limit for each provider.
302
- */
303
- function getProviderContextLimit(provider) {
304
- switch (provider) {
305
- case 'gemini':
306
- return 1000000; // 1M tokens
307
- case 'claude':
308
- return 200000; // 200K tokens
309
- case 'openai':
310
- return 128000; // 128K tokens
311
- case 'ollama':
312
- return 32000; // Conservative default for local models
313
- default:
314
- return 200000;
104
+ // 2. Resolve model (from options or registry default for balanced tier)
105
+ const model = options.model ?? getDefaultModelForTier(providerType, 'balanced')?.id;
106
+ // 3. Resolve Ollama base URL from settings
107
+ const baseUrl = providerType === 'ollama'
108
+ ? ((typeof getSetting('ollamaBaseUrl') === 'string'
109
+ ? getSetting('ollamaBaseUrl')
110
+ : undefined) ??
111
+ process.env.OLLAMA_BASE_URL ??
112
+ 'http://localhost:11434')
113
+ : undefined;
114
+ // 4. Log (unless quiet)
115
+ if (!quiet)
116
+ console.log(`Using ${meta.displayName} with model: ${model ?? 'default'}`);
117
+ if (!quiet && providerType === 'ollama' && baseUrl !== 'http://localhost:11434') {
118
+ console.log(` Ollama server: ${baseUrl ?? ''}`);
315
119
  }
120
+ // 5. Delegate to SDK
121
+ return createProviderFromType(providerType, {
122
+ model,
123
+ apiKey: apiKey ?? undefined,
124
+ baseUrl,
125
+ siteName: providerType === 'openrouter' ? 'compilr-cli' : undefined,
126
+ });
316
127
  }
317
128
  /**
318
129
  * Creates an Agent instance configured with all tools.
319
130
  */
320
131
  export function createAgent(options = {}) {
321
132
  const provider = createProvider(options);
322
- // Create context manager with provider-appropriate limits
133
+ // Create context manager with model-specific limits
323
134
  // Uses library defaults: compact at 50%, summarize at 90%, emergency at 95%
324
135
  // Auto-compact can be disabled via settings (requires restart)
325
136
  const autoCompact = isAutoCompactEnabled();
326
137
  const contextManager = new ContextManager({
327
138
  provider,
328
139
  config: {
329
- maxContextTokens: getProviderContextLimit(options.provider),
140
+ maxContextTokens: getModelContextWindow(options.model ?? '', options.provider),
330
141
  // If auto-compact disabled, set threshold to 100% (never triggers)
331
142
  compaction: autoCompact
332
143
  ? DEFAULT_CONTEXT_CONFIG.compaction
@@ -348,15 +159,63 @@ export function createAgent(options = {}) {
348
159
  }
349
160
  }
350
161
  : undefined;
351
- // Build system prompt with optional project context and guided mode context
162
+ // Build modular system prompt based on current context
352
163
  // Note: Anchors are NOT added here - they're handled by library's AnchorManager
353
164
  // which re-injects them on every LLM call (survives compaction)
354
- let systemPrompt = SYSTEM_PROMPT;
355
- if (options.projectContext) {
356
- systemPrompt += `\n\n---\n\n## Project Context\n\nThe following is project-specific context loaded from COMPILR.md:\n\n${options.projectContext}`;
165
+ // Initialize meta-tools if enabled (needed for tool index)
166
+ let metaToolsIndex;
167
+ if (options.enableMetaTools && !options.minimal) {
168
+ initializeMetaTools();
169
+ metaToolsIndex = getToolIndexForSystemPrompt();
170
+ // Log tool stats (unless quiet mode)
171
+ if (!options.quiet) {
172
+ const stats = getToolStats();
173
+ console.log(`[Meta-tools] Direct: ${String(stats.directTools)}, ` +
174
+ `Meta: ${String(stats.metaRegistryTools)}, ` +
175
+ `Est. savings: ~${String(stats.tokenSavings)} tokens`);
176
+ }
177
+ }
178
+ let systemPrompt;
179
+ // Check if we should use minimal system prompt (for testing role identity)
180
+ if (options.useMinimalSystemPrompt && options.systemPromptAddition) {
181
+ // Skip all modules - just use the role prompt directly
182
+ systemPrompt = options.systemPromptAddition;
357
183
  }
358
- if (options.guidedModeContext) {
359
- systemPrompt += `\n\n---\n\n${options.guidedModeContext}`;
184
+ else {
185
+ // Use modular system prompt builder
186
+ // When a role-specific identity is provided (systemPromptAddition), skip the default identity module
187
+ const promptBuilder = new SystemPromptBuilder({
188
+ enableMetaTools: options.enableMetaTools && !options.minimal,
189
+ projectName: options.projectName,
190
+ projectContext: options.projectContext,
191
+ guidedModeContext: options.guidedModeContext,
192
+ planModeContext: options.planModeContext,
193
+ metaToolsIndex,
194
+ hasRoleIdentity: !!options.systemPromptAddition, // Skip default identity when role is specified
195
+ // hasGit is auto-detected by builder
196
+ });
197
+ const buildResult = promptBuilder.build();
198
+ systemPrompt = buildResult.prompt;
199
+ // Prepend role-specific system prompt (for team agents)
200
+ // The default identity module is already excluded via hasRoleIdentity flag
201
+ if (options.systemPromptAddition) {
202
+ // Extract role name from the role prompt (format: "# ROLE: ROLE_NAME")
203
+ const roleMatch = options.systemPromptAddition.match(/^#\s*ROLE:\s*(.+)$/m);
204
+ const roleName = roleMatch ? roleMatch[1].trim() : 'specialized team member';
205
+ // Put FULL role prompt at the END (recency effect is stronger than primacy)
206
+ // LLMs weight the end of context more heavily
207
+ const roleEnding = `
208
+
209
+ ---
210
+
211
+ ## YOUR ASSIGNED ROLE: ${roleName}
212
+
213
+ ${options.systemPromptAddition}
214
+
215
+ **CRITICAL**: When asked "what is your role?", "what are you?", or similar identity questions, your response should acknowledge your assigned role. For example: "In this team, I'm the ${roleName}" or "I'm operating as the ${roleName} in this session."`;
216
+ // Put role at BOTH beginning AND end, with full role prompt at the end
217
+ systemPrompt = options.systemPromptAddition + '\n\n' + systemPrompt + roleEnding;
218
+ }
360
219
  }
361
220
  const agent = new Agent({
362
221
  provider,
@@ -400,6 +259,58 @@ export function createAgent(options = {}) {
400
259
  onTriggered: options.onGuardrailTriggered,
401
260
  }
402
261
  : undefined,
262
+ // Tool result delegation — auto-summarize large results to conserve context
263
+ delegation: isDelegationEnabled()
264
+ ? {
265
+ enabled: true,
266
+ delegationThreshold: 8000,
267
+ summaryMaxTokens: 800,
268
+ resultTTL: 600_000,
269
+ maxStoredResults: 50,
270
+ strategy: 'auto',
271
+ toolOverrides: {
272
+ // Custom thresholds
273
+ bash: { threshold: 12000 },
274
+ grep: { threshold: 4000 },
275
+ git_diff: { threshold: 6000 },
276
+ // Never summarize — agent needs verbatim results
277
+ get_tool_info: { enabled: false },
278
+ list_tools: { enabled: false },
279
+ ask_user: { enabled: false },
280
+ ask_user_simple: { enabled: false },
281
+ todo_read: { enabled: false },
282
+ },
283
+ }
284
+ : undefined,
285
+ // Hooks: context pressure, file lock check/acquire
286
+ hooks: {
287
+ beforeLLM: [
288
+ (ctx) => {
289
+ const utilization = contextManager.getUtilization();
290
+ if (utilization < 0.3)
291
+ return undefined;
292
+ const pct = Math.round(utilization * 100);
293
+ let hint;
294
+ if (utilization < 0.6) {
295
+ hint = `[Context: ${String(pct)}%] Consider task() for multi-file operations.`;
296
+ }
297
+ else if (utilization < 0.8) {
298
+ hint = `[Context: ${String(pct)}% - HIGH] Prefer task() sub-agents for file reads and code search.`;
299
+ }
300
+ else {
301
+ hint = `[Context: ${String(pct)}% - CRITICAL] Use task() for ALL exploration. Do not read files directly.`;
302
+ }
303
+ const messages = [...ctx.messages];
304
+ messages.splice(1, 0, { role: 'user', content: hint });
305
+ return { messages };
306
+ },
307
+ ],
308
+ beforeTool: [createFileLockCheckHook(getActiveProject)],
309
+ afterTool: [
310
+ createFileLockAcquireHook(getActiveProject),
311
+ ...(options.episodeRecorder ? [options.episodeRecorder.createHook()] : []),
312
+ ],
313
+ },
403
314
  });
404
315
  // Load persisted anchors into the agent's AnchorManager
405
316
  if (options.enableAnchors && options.persistedAnchors) {
@@ -414,14 +325,52 @@ export function createAgent(options = {}) {
414
325
  });
415
326
  }
416
327
  }
417
- // Register tools using registerTools method
418
- const tools = options.minimal
419
- ? createMinimalToolRegistry()
420
- : createToolRegistry();
421
- // Type assertion needed for tool registry compatibility
422
- agent.registerTools(tools);
328
+ // Register tools using registerTools method (skip if noTools is set)
329
+ if (!options.noTools) {
330
+ // When meta-tools is enabled, use direct tools + meta-tools instead of all tools
331
+ let tools;
332
+ if (options.minimal) {
333
+ tools = createMinimalToolRegistry();
334
+ }
335
+ else if (options.enableMetaTools) {
336
+ // Meta-tools mode: direct tools + get_tool_info (for schema introspection)
337
+ // Meta-registry tools are accessed transparently via fallback handler
338
+ tools = [...getDirectTools(), ...getMetaTools()];
339
+ }
340
+ else {
341
+ // Legacy mode: all tools declared directly
342
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- Intentional for backward compatibility
343
+ tools = createToolRegistry();
344
+ }
345
+ // Apply tool filter if specified (filter direct tools)
346
+ if (options.toolFilter && options.toolFilter.length > 0) {
347
+ const allowedTools = new Set(options.toolFilter);
348
+ // get_tool_info is always allowed for schema introspection
349
+ const alwaysAllowed = new Set(['get_tool_info']);
350
+ tools = tools.filter((tool) => allowedTools.has(tool.definition.name) || alwaysAllowed.has(tool.definition.name));
351
+ // Also set the meta-tool filter for use_tool/list_tools filtering
352
+ setMetaToolFilter(options.toolFilter);
353
+ }
354
+ else {
355
+ // No filter - clear any previous filter
356
+ setMetaToolFilter(null);
357
+ }
358
+ // Type assertion needed for tool registry compatibility
359
+ agent.registerTools(tools);
360
+ // Register MCP tools (from external MCP servers)
361
+ // These are registered as direct tools since their schemas are unknown at build time
362
+ if (options.mcpTools && options.mcpTools.length > 0) {
363
+ agent.registerTools(options.mcpTools);
364
+ }
365
+ // Set up transparent fallback to meta-registry
366
+ // When the agent calls a tool not in direct tools (e.g., workitem_add),
367
+ // the fallback handler checks the meta-registry and executes it.
368
+ if (options.enableMetaTools && !options.minimal) {
369
+ agent.getToolRegistry().setFallbackHandler(createToolFallback());
370
+ }
371
+ }
423
372
  // Register Task tool for sub-agent spawning (only in full mode)
424
- if (!options.minimal) {
373
+ if (!options.minimal && !options.noTools) {
425
374
  // Track active subagents to correlate spawn/complete/events
426
375
  // Track active subagents by toolUseId for token counting
427
376
  const activeSubagents = new Map();
@@ -496,5 +445,52 @@ export function createAgent(options = {}) {
496
445
  });
497
446
  agent.registerTool(suggestTool);
498
447
  }
448
+ // ==========================================================================
449
+ // Calculate and store token estimates for debugging
450
+ // ==========================================================================
451
+ if (!options.quiet) {
452
+ // Calculate tool tokens from the tools we registered
453
+ let toolTokens = 0;
454
+ // Get the tools array based on options
455
+ let toolsForEstimate = [];
456
+ if (!options.noTools) {
457
+ if (options.minimal) {
458
+ toolsForEstimate = createMinimalToolRegistry();
459
+ }
460
+ else if (options.enableMetaTools) {
461
+ toolsForEstimate = [...getDirectTools(), ...getMetaTools()];
462
+ }
463
+ else {
464
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
465
+ toolsForEstimate = createToolRegistry();
466
+ }
467
+ }
468
+ for (const tool of toolsForEstimate) {
469
+ const def = tool.definition;
470
+ toolTokens += estimateJsonTokens({
471
+ name: def.name,
472
+ description: def.description,
473
+ input_schema: def.inputSchema,
474
+ });
475
+ }
476
+ // Add task tool and suggest tool estimates (if registered)
477
+ if (!options.minimal && !options.noTools) {
478
+ // Task tool has a large description with all agent types
479
+ toolTokens += 700; // Approximate for task tool
480
+ toolTokens += 200; // Approximate for suggest tool
481
+ }
482
+ // Calculate estimates
483
+ const systemTokens = estimateTokens(systemPrompt);
484
+ const roleTokens = options.systemPromptAddition
485
+ ? estimateTokens(options.systemPromptAddition) * 2 // Role appears at start and end
486
+ : 0;
487
+ const contextTokens = estimateTokens(options.projectContext);
488
+ setStaticEstimates({
489
+ system: systemTokens - roleTokens, // Subtract role since it's counted separately
490
+ role: roleTokens,
491
+ tools: toolTokens,
492
+ context: contextTokens,
493
+ });
494
+ }
499
495
  return agent;
500
496
  }
@@ -6,4 +6,4 @@
6
6
  */
7
7
  export { getAnchorManager, getGlobalAnchorManager, clearProjectAnchors, getFormattedAnchors, addAnchor, getAllAnchors, getProjectsWithAnchors, getAnchorStats, clearManagerCache, } from './project-anchors.js';
8
8
  export type { Anchor, AnchorInput, AnchorQueryOptions } from './project-anchors.js';
9
- export { AnchorManager } from '@compilr-dev/agents';
9
+ export { AnchorManager } from '@compilr-dev/sdk';
@@ -6,4 +6,4 @@
6
6
  */
7
7
  export { getAnchorManager, getGlobalAnchorManager, clearProjectAnchors, getFormattedAnchors, addAnchor, getAllAnchors, getProjectsWithAnchors, getAnchorStats, clearManagerCache, } from './project-anchors.js';
8
8
  // Re-export the AnchorManager type from agents for consumers
9
- export { AnchorManager } from '@compilr-dev/agents';
9
+ export { AnchorManager } from '@compilr-dev/sdk';
@@ -9,8 +9,8 @@
9
9
  * ├── global.json # Non-project anchors
10
10
  * └── project-{id}.json # Per-project anchors
11
11
  */
12
- import { AnchorManager } from '@compilr-dev/agents';
13
- import type { Anchor, AnchorInput, AnchorQueryOptions } from '@compilr-dev/agents';
12
+ import { AnchorManager } from '@compilr-dev/sdk';
13
+ import type { Anchor, AnchorInput, AnchorQueryOptions } from '@compilr-dev/sdk';
14
14
  export type { Anchor, AnchorInput, AnchorQueryOptions };
15
15
  /**
16
16
  * Get anchor manager for a project (or global if projectId is null)
@@ -11,7 +11,7 @@
11
11
  */
12
12
  import * as fs from 'fs';
13
13
  import * as path from 'path';
14
- import { AnchorManager } from '@compilr-dev/agents';
14
+ import { AnchorManager } from '@compilr-dev/sdk';
15
15
  import { getDataPath } from '../settings/paths.js';
16
16
  // =============================================================================
17
17
  // State