@compilr-dev/cli 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (634) hide show
  1. package/README.md +254 -68
  2. package/dist/.tsbuildinfo.app +1 -0
  3. package/dist/.tsbuildinfo.data +1 -0
  4. package/dist/.tsbuildinfo.domain +1 -0
  5. package/dist/.tsbuildinfo.foundation +1 -0
  6. package/dist/agent.d.ts +134 -4
  7. package/dist/agent.js +345 -166
  8. package/dist/anchors/index.d.ts +9 -0
  9. package/dist/anchors/index.js +9 -0
  10. package/dist/anchors/project-anchors.d.ts +79 -0
  11. package/dist/anchors/project-anchors.js +202 -0
  12. package/dist/auth/api-client.d.ts +124 -0
  13. package/dist/auth/api-client.js +261 -0
  14. package/dist/auth/index.d.ts +172 -0
  15. package/dist/auth/index.js +545 -0
  16. package/dist/auth/storage.d.ts +52 -0
  17. package/dist/auth/storage.js +118 -0
  18. package/dist/changelog/index.d.ts +16 -0
  19. package/dist/changelog/index.js +24 -0
  20. package/dist/changelog/releases.d.ts +17 -0
  21. package/dist/changelog/releases.js +63 -0
  22. package/dist/commands/index.d.ts +2 -1
  23. package/dist/commands-v2/handlers/auth.d.ts +10 -0
  24. package/dist/commands-v2/handlers/auth.js +118 -0
  25. package/dist/commands-v2/handlers/background.d.ts +14 -0
  26. package/dist/commands-v2/handlers/background.js +276 -0
  27. package/dist/commands-v2/handlers/context.d.ts +13 -0
  28. package/dist/commands-v2/handlers/context.js +533 -0
  29. package/dist/commands-v2/handlers/core.d.ts +14 -0
  30. package/dist/commands-v2/handlers/core.js +290 -0
  31. package/dist/commands-v2/handlers/debug.d.ts +11 -0
  32. package/dist/commands-v2/handlers/debug.js +177 -0
  33. package/dist/commands-v2/handlers/delegations.d.ts +8 -0
  34. package/dist/commands-v2/handlers/delegations.js +29 -0
  35. package/dist/commands-v2/handlers/files.d.ts +8 -0
  36. package/dist/commands-v2/handlers/files.js +162 -0
  37. package/dist/commands-v2/handlers/filter.d.ts +9 -0
  38. package/dist/commands-v2/handlers/filter.js +130 -0
  39. package/dist/commands-v2/handlers/games.d.ts +7 -0
  40. package/dist/commands-v2/handlers/games.js +57 -0
  41. package/dist/commands-v2/handlers/index.d.ts +25 -0
  42. package/dist/commands-v2/handlers/index.js +63 -0
  43. package/dist/commands-v2/handlers/mcp.d.ts +8 -0
  44. package/dist/commands-v2/handlers/mcp.js +39 -0
  45. package/dist/commands-v2/handlers/notifications.d.ts +9 -0
  46. package/dist/commands-v2/handlers/notifications.js +34 -0
  47. package/dist/commands-v2/handlers/project.d.ts +22 -0
  48. package/dist/commands-v2/handlers/project.js +1035 -0
  49. package/dist/commands-v2/handlers/reset.d.ts +11 -0
  50. package/dist/commands-v2/handlers/reset.js +118 -0
  51. package/dist/commands-v2/handlers/session.d.ts +161 -0
  52. package/dist/commands-v2/handlers/session.js +805 -0
  53. package/dist/commands-v2/handlers/settings.d.ts +17 -0
  54. package/dist/commands-v2/handlers/settings.js +417 -0
  55. package/dist/commands-v2/handlers/tasks.d.ts +5 -0
  56. package/dist/commands-v2/handlers/tasks.js +36 -0
  57. package/dist/commands-v2/handlers/team.d.ts +9 -0
  58. package/dist/commands-v2/handlers/team.js +549 -0
  59. package/dist/commands-v2/handlers/terminals.d.ts +9 -0
  60. package/dist/commands-v2/handlers/terminals.js +34 -0
  61. package/dist/commands-v2/index.d.ts +14 -0
  62. package/dist/commands-v2/index.js +18 -0
  63. package/dist/commands-v2/registry.d.ts +52 -0
  64. package/dist/commands-v2/registry.js +114 -0
  65. package/dist/commands-v2/types.d.ts +153 -0
  66. package/dist/commands-v2/types.js +7 -0
  67. package/dist/commands.js +123 -7
  68. package/dist/compilr-diff-companion.vsix +0 -0
  69. package/dist/db/index.js +98 -4
  70. package/dist/db/repositories/document-repository.d.ts +2 -0
  71. package/dist/db/repositories/document-repository.js +5 -1
  72. package/dist/db/repositories/index.d.ts +2 -0
  73. package/dist/db/repositories/index.js +1 -0
  74. package/dist/db/repositories/plan-repository.d.ts +101 -0
  75. package/dist/db/repositories/plan-repository.js +275 -0
  76. package/dist/db/repositories/project-repository.d.ts +6 -0
  77. package/dist/db/repositories/project-repository.js +41 -0
  78. package/dist/db/repositories/work-item-repository.d.ts +15 -0
  79. package/dist/db/repositories/work-item-repository.js +69 -4
  80. package/dist/db/schema.d.ts +40 -3
  81. package/dist/db/schema.js +66 -3
  82. package/dist/episodes/index.d.ts +20 -0
  83. package/dist/episodes/index.js +27 -0
  84. package/dist/episodes/recorder.d.ts +51 -0
  85. package/dist/episodes/recorder.js +195 -0
  86. package/dist/episodes/significant-work.d.ts +21 -0
  87. package/dist/episodes/significant-work.js +56 -0
  88. package/dist/episodes/store.d.ts +38 -0
  89. package/dist/episodes/store.js +199 -0
  90. package/dist/episodes/types.d.ts +35 -0
  91. package/dist/episodes/types.js +6 -0
  92. package/dist/episodes/work-at-risk.d.ts +12 -0
  93. package/dist/episodes/work-at-risk.js +38 -0
  94. package/dist/episodes/work-summary-anchor.d.ts +23 -0
  95. package/dist/episodes/work-summary-anchor.js +73 -0
  96. package/dist/games/coins.d.ts +66 -0
  97. package/dist/games/coins.js +165 -0
  98. package/dist/games/game-base.d.ts +84 -0
  99. package/dist/games/game-base.js +204 -0
  100. package/dist/games/index.d.ts +16 -0
  101. package/dist/games/index.js +49 -0
  102. package/dist/games/scores.d.ts +69 -0
  103. package/dist/games/scores.js +191 -0
  104. package/dist/games/tetris/board.d.ts +59 -0
  105. package/dist/games/tetris/board.js +170 -0
  106. package/dist/games/tetris/index.d.ts +109 -0
  107. package/dist/games/tetris/index.js +610 -0
  108. package/dist/games/tetris/pieces.d.ts +44 -0
  109. package/dist/games/tetris/pieces.js +271 -0
  110. package/dist/games/tetris/renderer.d.ts +26 -0
  111. package/dist/games/tetris/renderer.js +77 -0
  112. package/dist/guide/guide-content.d.ts +23 -0
  113. package/dist/guide/guide-content.js +196 -0
  114. package/dist/guide/index.d.ts +8 -0
  115. package/dist/guide/index.js +7 -0
  116. package/dist/guide/shared-content.d.ts +37 -0
  117. package/dist/guide/shared-content.js +1272 -0
  118. package/dist/guide/tutorial-helpers.d.ts +57 -0
  119. package/dist/guide/tutorial-helpers.js +147 -0
  120. package/dist/handlers/ask-user-handlers.d.ts +32 -0
  121. package/dist/handlers/ask-user-handlers.js +104 -0
  122. package/dist/handlers/delegation-handlers.d.ts +34 -0
  123. package/dist/handlers/delegation-handlers.js +291 -0
  124. package/dist/handlers/permission-handler.d.ts +30 -0
  125. package/dist/handlers/permission-handler.js +205 -0
  126. package/dist/index.d.ts +11 -1
  127. package/dist/index.js +615 -179
  128. package/dist/input-handlers/index.d.ts +7 -0
  129. package/dist/input-handlers/index.js +7 -0
  130. package/dist/input-handlers/memory-handler.d.ts +26 -0
  131. package/dist/input-handlers/memory-handler.js +69 -0
  132. package/dist/models/index.d.ts +10 -0
  133. package/dist/models/index.js +12 -0
  134. package/dist/models/model-registry.d.ts +38 -0
  135. package/dist/models/model-registry.js +69 -0
  136. package/dist/models/model-tiers.d.ts +28 -0
  137. package/dist/models/model-tiers.js +71 -0
  138. package/dist/models/model-validation.d.ts +25 -0
  139. package/dist/models/model-validation.js +291 -0
  140. package/dist/models/ollama-models.d.ts +73 -0
  141. package/dist/models/ollama-models.js +178 -0
  142. package/dist/models/provider-types.d.ts +6 -0
  143. package/dist/models/provider-types.js +1 -0
  144. package/dist/models/providers.d.ts +35 -0
  145. package/dist/models/providers.js +58 -0
  146. package/dist/models/types.d.ts +4 -0
  147. package/dist/models/types.js +4 -0
  148. package/dist/multi-agent/activity.d.ts +21 -0
  149. package/dist/multi-agent/activity.js +34 -0
  150. package/dist/multi-agent/agent-selection.d.ts +55 -0
  151. package/dist/multi-agent/agent-selection.js +90 -0
  152. package/dist/multi-agent/artifacts.d.ts +197 -0
  153. package/dist/multi-agent/artifacts.js +379 -0
  154. package/dist/multi-agent/checkpointer.d.ts +138 -0
  155. package/dist/multi-agent/checkpointer.js +471 -0
  156. package/dist/multi-agent/collision-utils.d.ts +16 -0
  157. package/dist/multi-agent/collision-utils.js +28 -0
  158. package/dist/multi-agent/context-resolver.d.ts +97 -0
  159. package/dist/multi-agent/context-resolver.js +316 -0
  160. package/dist/multi-agent/custom-agents.d.ts +83 -0
  161. package/dist/multi-agent/custom-agents.js +227 -0
  162. package/dist/multi-agent/delegation-tracker.d.ts +157 -0
  163. package/dist/multi-agent/delegation-tracker.js +243 -0
  164. package/dist/multi-agent/file-lock-hook.d.ts +29 -0
  165. package/dist/multi-agent/file-lock-hook.js +97 -0
  166. package/dist/multi-agent/file-locks.d.ts +58 -0
  167. package/dist/multi-agent/file-locks.js +194 -0
  168. package/dist/multi-agent/index.d.ts +24 -0
  169. package/dist/multi-agent/index.js +30 -0
  170. package/dist/multi-agent/mention-parser.d.ts +64 -0
  171. package/dist/multi-agent/mention-parser.js +146 -0
  172. package/dist/multi-agent/notification-manager.d.ts +84 -0
  173. package/dist/multi-agent/notification-manager.js +224 -0
  174. package/dist/multi-agent/pending-requests.d.ts +122 -0
  175. package/dist/multi-agent/pending-requests.js +155 -0
  176. package/dist/multi-agent/session-registry.d.ts +139 -0
  177. package/dist/multi-agent/session-registry.js +514 -0
  178. package/dist/multi-agent/shared-context.d.ts +293 -0
  179. package/dist/multi-agent/shared-context.js +671 -0
  180. package/dist/multi-agent/skill-requirements.d.ts +66 -0
  181. package/dist/multi-agent/skill-requirements.js +178 -0
  182. package/dist/multi-agent/task-assignment.d.ts +69 -0
  183. package/dist/multi-agent/task-assignment.js +123 -0
  184. package/dist/multi-agent/task-suggestion.d.ts +31 -0
  185. package/dist/multi-agent/task-suggestion.js +72 -0
  186. package/dist/multi-agent/team-agent.d.ts +201 -0
  187. package/dist/multi-agent/team-agent.js +488 -0
  188. package/dist/multi-agent/team.d.ts +286 -0
  189. package/dist/multi-agent/team.js +610 -0
  190. package/dist/multi-agent/tool-config.d.ts +110 -0
  191. package/dist/multi-agent/tool-config.js +661 -0
  192. package/dist/multi-agent/types.d.ts +211 -0
  193. package/dist/multi-agent/types.js +617 -0
  194. package/dist/prompts/plan-mode-prompt.d.ts +11 -0
  195. package/dist/prompts/plan-mode-prompt.js +95 -0
  196. package/dist/repl-helpers.d.ts +63 -0
  197. package/dist/repl-helpers.js +319 -0
  198. package/dist/repl-v2.d.ts +554 -0
  199. package/dist/repl-v2.js +3286 -0
  200. package/dist/session/index.d.ts +6 -0
  201. package/dist/session/index.js +6 -0
  202. package/dist/session/project-session-manager.d.ts +158 -0
  203. package/dist/session/project-session-manager.js +650 -0
  204. package/dist/settings/index.d.ts +156 -13
  205. package/dist/settings/index.js +377 -24
  206. package/dist/settings/mcp-config.d.ts +76 -0
  207. package/dist/settings/mcp-config.js +143 -0
  208. package/dist/settings/paths.d.ts +114 -0
  209. package/dist/settings/paths.js +270 -0
  210. package/dist/shared-handlers.d.ts +62 -0
  211. package/dist/shared-handlers.js +48 -0
  212. package/dist/system-prompt/builder.d.ts +5 -0
  213. package/dist/system-prompt/builder.js +4 -0
  214. package/dist/system-prompt/index.d.ts +18 -0
  215. package/dist/system-prompt/index.js +18 -0
  216. package/dist/system-prompt/modules.d.ts +5 -0
  217. package/dist/system-prompt/modules.js +4 -0
  218. package/dist/tabbed-menu.js +2 -1
  219. package/dist/templates/compilr-md-import.d.ts +16 -0
  220. package/dist/templates/compilr-md-import.js +241 -0
  221. package/dist/templates/compilr-md.js +10 -58
  222. package/dist/templates/config-json.d.ts +1 -25
  223. package/dist/templates/index.d.ts +2 -0
  224. package/dist/templates/index.js +35 -75
  225. package/dist/themes/colors.js +3 -1
  226. package/dist/themes/registry.d.ts +5 -36
  227. package/dist/themes/registry.js +11 -95
  228. package/dist/themes/types.d.ts +3 -38
  229. package/dist/themes/types.js +2 -2
  230. package/dist/tool-names.d.ts +108 -0
  231. package/dist/tool-names.js +227 -0
  232. package/dist/tools/anchor-tools.d.ts +31 -0
  233. package/dist/tools/anchor-tools.js +255 -0
  234. package/dist/tools/artifact-tools.d.ts +42 -0
  235. package/dist/tools/artifact-tools.js +328 -0
  236. package/dist/tools/ask-user-simple.d.ts +1 -1
  237. package/dist/tools/ask-user-simple.js +2 -1
  238. package/dist/tools/ask-user.d.ts +1 -1
  239. package/dist/tools/ask-user.js +2 -1
  240. package/dist/tools/backlog-wrappers.d.ts +56 -0
  241. package/dist/tools/backlog-wrappers.js +353 -0
  242. package/dist/tools/backlog.d.ts +2 -2
  243. package/dist/tools/backlog.js +2 -2
  244. package/dist/tools/db-tools.d.ts +12 -0
  245. package/dist/tools/db-tools.js +14 -0
  246. package/dist/tools/delegate-background.d.ts +27 -0
  247. package/dist/tools/delegate-background.js +115 -0
  248. package/dist/tools/delegate.d.ts +22 -0
  249. package/dist/tools/delegate.js +97 -0
  250. package/dist/tools/delegation-status.d.ts +16 -0
  251. package/dist/tools/delegation-status.js +128 -0
  252. package/dist/tools/document-db.d.ts +43 -0
  253. package/dist/tools/document-db.js +220 -0
  254. package/dist/tools/guide-tool.d.ts +12 -0
  255. package/dist/tools/guide-tool.js +59 -0
  256. package/dist/tools/handoff.d.ts +25 -0
  257. package/dist/tools/handoff.js +99 -0
  258. package/dist/tools/meta-tools.d.ts +26 -0
  259. package/dist/tools/meta-tools.js +47 -0
  260. package/dist/tools/plan-tools.d.ts +54 -0
  261. package/dist/tools/plan-tools.js +338 -0
  262. package/dist/tools/platform-adapter.d.ts +29 -0
  263. package/dist/tools/platform-adapter.js +394 -0
  264. package/dist/tools/project-db.d.ts +34 -0
  265. package/dist/tools/project-db.js +39 -0
  266. package/dist/tools/recall-work-tool.d.ts +18 -0
  267. package/dist/tools/recall-work-tool.js +82 -0
  268. package/dist/tools/workitem-db.d.ts +135 -0
  269. package/dist/tools/workitem-db.js +730 -0
  270. package/dist/tools.d.ts +67 -2
  271. package/dist/tools.js +238 -38
  272. package/dist/ui/ask-user-overlay.d.ts +2 -2
  273. package/dist/ui/ask-user-overlay.js +443 -535
  274. package/dist/ui/ask-user-simple-overlay.d.ts +2 -2
  275. package/dist/ui/ask-user-simple-overlay.js +182 -209
  276. package/dist/ui/autocomplete-controller.d.ts +42 -0
  277. package/dist/ui/autocomplete-controller.js +384 -0
  278. package/dist/ui/base/index.d.ts +26 -0
  279. package/dist/ui/base/index.js +33 -0
  280. package/dist/ui/base/inline-overlay-utils.d.ts +217 -0
  281. package/dist/ui/base/inline-overlay-utils.js +320 -0
  282. package/dist/ui/base/inline-overlay.d.ts +159 -0
  283. package/dist/ui/base/inline-overlay.js +257 -0
  284. package/dist/ui/base/key-utils.d.ts +15 -0
  285. package/dist/ui/base/key-utils.js +30 -0
  286. package/dist/ui/base/overlay-base-v2.d.ts +203 -0
  287. package/dist/ui/base/overlay-base-v2.js +260 -0
  288. package/dist/ui/base/overlay-base.d.ts +156 -0
  289. package/dist/ui/base/overlay-base.js +238 -0
  290. package/dist/ui/base/overlay-lifecycle.d.ts +65 -0
  291. package/dist/ui/base/overlay-lifecycle.js +159 -0
  292. package/dist/ui/base/overlay-types.d.ts +185 -0
  293. package/dist/ui/base/overlay-types.js +7 -0
  294. package/dist/ui/base/render-utils.d.ts +27 -0
  295. package/dist/ui/base/render-utils.js +36 -0
  296. package/dist/ui/base/screen-stack.d.ts +148 -0
  297. package/dist/ui/base/screen-stack.js +184 -0
  298. package/dist/ui/base/tabbed-list-overlay-v2.d.ts +118 -0
  299. package/dist/ui/base/tabbed-list-overlay-v2.js +335 -0
  300. package/dist/ui/base/tabbed-list-overlay.d.ts +153 -0
  301. package/dist/ui/base/tabbed-list-overlay.js +369 -0
  302. package/dist/ui/constants/labels.d.ts +14 -0
  303. package/dist/ui/constants/labels.js +51 -0
  304. package/dist/ui/conversation-store.d.ts +55 -0
  305. package/dist/ui/conversation-store.js +107 -0
  306. package/dist/ui/conversation.d.ts +75 -4
  307. package/dist/ui/conversation.js +376 -165
  308. package/dist/ui/diff.d.ts +7 -1
  309. package/dist/ui/diff.js +85 -48
  310. package/dist/ui/ephemeral.d.ts +1 -1
  311. package/dist/ui/ephemeral.js +4 -10
  312. package/dist/ui/features/index.d.ts +34 -0
  313. package/dist/ui/features/index.js +34 -0
  314. package/dist/ui/features/input-feature.d.ts +85 -0
  315. package/dist/ui/features/input-feature.js +238 -0
  316. package/dist/ui/features/list-feature.d.ts +155 -0
  317. package/dist/ui/features/list-feature.js +244 -0
  318. package/dist/ui/features/pagination-feature.d.ts +154 -0
  319. package/dist/ui/features/pagination-feature.js +238 -0
  320. package/dist/ui/features/search-feature.d.ts +148 -0
  321. package/dist/ui/features/search-feature.js +185 -0
  322. package/dist/ui/features/tab-feature.d.ts +194 -0
  323. package/dist/ui/features/tab-feature.js +307 -0
  324. package/dist/ui/file-autocomplete.d.ts +24 -0
  325. package/dist/ui/file-autocomplete.js +56 -0
  326. package/dist/ui/footer-renderer.d.ts +69 -0
  327. package/dist/ui/footer-renderer.js +431 -0
  328. package/dist/ui/footer.d.ts +181 -7
  329. package/dist/ui/footer.js +523 -74
  330. package/dist/ui/guardrail-overlay.d.ts +29 -0
  331. package/dist/ui/guardrail-overlay.js +145 -0
  332. package/dist/ui/index.d.ts +1 -1
  333. package/dist/ui/index.js +1 -3
  334. package/dist/ui/input-controller.d.ts +51 -0
  335. package/dist/ui/input-controller.js +176 -0
  336. package/dist/ui/input-prompt.d.ts +135 -33
  337. package/dist/ui/input-prompt.js +728 -337
  338. package/dist/ui/iteration-limit-overlay.d.ts +2 -2
  339. package/dist/ui/iteration-limit-overlay.js +92 -128
  340. package/dist/ui/keyboard-handler.d.ts +57 -0
  341. package/dist/ui/keyboard-handler.js +557 -0
  342. package/dist/ui/keys-overlay.d.ts +1 -0
  343. package/dist/ui/keys-overlay.js +203 -141
  344. package/dist/ui/line-utils.d.ts +88 -0
  345. package/dist/ui/line-utils.js +150 -0
  346. package/dist/ui/live-region-facade.d.ts +42 -0
  347. package/dist/ui/live-region-facade.js +205 -0
  348. package/dist/ui/live-region.d.ts +157 -0
  349. package/dist/ui/live-region.js +379 -0
  350. package/dist/ui/mascot/expressions.d.ts +32 -0
  351. package/dist/ui/mascot/expressions.js +213 -0
  352. package/dist/ui/mascot/index.d.ts +8 -0
  353. package/dist/ui/mascot/index.js +8 -0
  354. package/dist/ui/mascot/renderer.d.ts +19 -0
  355. package/dist/ui/mascot/renderer.js +132 -0
  356. package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
  357. package/dist/ui/overlay/data/tutorial-content.js +9 -0
  358. package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
  359. package/dist/ui/overlay/data/tutorial-registry.js +116 -0
  360. package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
  361. package/dist/ui/overlay/data/tutorial-types.js +6 -0
  362. package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
  363. package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
  364. package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
  365. package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
  366. package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
  367. package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
  368. package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
  369. package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
  370. package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
  371. package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
  372. package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
  373. package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
  374. package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
  375. package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
  376. package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
  377. package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
  378. package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
  379. package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
  380. package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
  381. package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
  382. package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
  383. package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
  384. package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
  385. package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
  386. package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
  387. package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
  388. package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
  389. package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
  390. package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
  391. package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
  392. package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
  393. package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
  394. package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
  395. package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
  396. package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
  397. package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
  398. package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
  399. package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
  400. package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
  401. package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
  402. package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
  403. package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
  404. package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
  405. package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
  406. package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
  407. package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
  408. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
  409. package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
  410. package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
  411. package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
  412. package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
  413. package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
  414. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
  415. package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
  416. package/dist/ui/overlay/impl/agents-overlay-v2.d.ts +45 -0
  417. package/dist/ui/overlay/impl/agents-overlay-v2.js +814 -0
  418. package/dist/ui/overlay/impl/anchors-overlay-v2.d.ts +47 -0
  419. package/dist/ui/overlay/impl/anchors-overlay-v2.js +749 -0
  420. package/dist/ui/overlay/impl/arch-type-overlay-v2.d.ts +37 -0
  421. package/dist/ui/overlay/impl/arch-type-overlay-v2.js +240 -0
  422. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
  423. package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
  424. package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
  425. package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
  426. package/dist/ui/overlay/impl/ask-user-overlay-v2.d.ts +72 -0
  427. package/dist/ui/overlay/impl/ask-user-overlay-v2.js +581 -0
  428. package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.d.ts +46 -0
  429. package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.js +204 -0
  430. package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
  431. package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
  432. package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +52 -0
  433. package/dist/ui/overlay/impl/backlog-overlay-v2.js +681 -0
  434. package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
  435. package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
  436. package/dist/ui/overlay/impl/commands-overlay-v2.d.ts +33 -0
  437. package/dist/ui/overlay/impl/commands-overlay-v2.js +439 -0
  438. package/dist/ui/overlay/impl/config-overlay-v2.d.ts +111 -0
  439. package/dist/ui/overlay/impl/config-overlay-v2.js +718 -0
  440. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
  441. package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
  442. package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +57 -0
  443. package/dist/ui/overlay/impl/dashboard-overlay-v2.js +382 -0
  444. package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
  445. package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
  446. package/dist/ui/overlay/impl/docs-overlay-v2.d.ts +45 -0
  447. package/dist/ui/overlay/impl/docs-overlay-v2.js +117 -0
  448. package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +84 -0
  449. package/dist/ui/overlay/impl/document-detail-overlay-v2.js +1112 -0
  450. package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
  451. package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
  452. package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
  453. package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
  454. package/dist/ui/overlay/impl/guardrail-overlay-v2.d.ts +43 -0
  455. package/dist/ui/overlay/impl/guardrail-overlay-v2.js +114 -0
  456. package/dist/ui/overlay/impl/help-overlay-v2.d.ts +57 -0
  457. package/dist/ui/overlay/impl/help-overlay-v2.js +287 -0
  458. package/dist/ui/overlay/impl/init-setup-overlay-v2.d.ts +25 -0
  459. package/dist/ui/overlay/impl/init-setup-overlay-v2.js +97 -0
  460. package/dist/ui/overlay/impl/iteration-limit-overlay-v2.d.ts +35 -0
  461. package/dist/ui/overlay/impl/iteration-limit-overlay-v2.js +105 -0
  462. package/dist/ui/overlay/impl/keys-overlay-v2.d.ts +41 -0
  463. package/dist/ui/overlay/impl/keys-overlay-v2.js +248 -0
  464. package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
  465. package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
  466. package/dist/ui/overlay/impl/mascot-overlay-v2.d.ts +41 -0
  467. package/dist/ui/overlay/impl/mascot-overlay-v2.js +138 -0
  468. package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
  469. package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
  470. package/dist/ui/overlay/impl/model-overlay-v2.d.ts +93 -0
  471. package/dist/ui/overlay/impl/model-overlay-v2.js +1143 -0
  472. package/dist/ui/overlay/impl/model-warning-overlay-v2.d.ts +46 -0
  473. package/dist/ui/overlay/impl/model-warning-overlay-v2.js +132 -0
  474. package/dist/ui/overlay/impl/new-overlay-v2.d.ts +108 -0
  475. package/dist/ui/overlay/impl/new-overlay-v2.js +1243 -0
  476. package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
  477. package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
  478. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
  479. package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
  480. package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
  481. package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
  482. package/dist/ui/overlay/impl/permission-overlay-v2.d.ts +36 -0
  483. package/dist/ui/overlay/impl/permission-overlay-v2.js +380 -0
  484. package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
  485. package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
  486. package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
  487. package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
  488. package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
  489. package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
  490. package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +37 -0
  491. package/dist/ui/overlay/impl/projects-overlay-v2.js +733 -0
  492. package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
  493. package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
  494. package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
  495. package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
  496. package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
  497. package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
  498. package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
  499. package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
  500. package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
  501. package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
  502. package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
  503. package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
  504. package/dist/ui/overlay/impl/theme-overlay-v2.d.ts +42 -0
  505. package/dist/ui/overlay/impl/theme-overlay-v2.js +135 -0
  506. package/dist/ui/overlay/impl/tools-overlay-v2.d.ts +47 -0
  507. package/dist/ui/overlay/impl/tools-overlay-v2.js +214 -0
  508. package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +45 -0
  509. package/dist/ui/overlay/impl/tutorial-overlay-v2.js +212 -0
  510. package/dist/ui/overlay/impl/workflow-overlay-v2.d.ts +80 -0
  511. package/dist/ui/overlay/impl/workflow-overlay-v2.js +641 -0
  512. package/dist/ui/overlay/index.d.ts +52 -0
  513. package/dist/ui/overlay/index.js +54 -0
  514. package/dist/ui/overlay/key-utils.d.ts +6 -0
  515. package/dist/ui/overlay/key-utils.js +6 -0
  516. package/dist/ui/overlay/types.d.ts +140 -0
  517. package/dist/ui/overlay/types.js +22 -0
  518. package/dist/ui/overlay-manager.d.ts +43 -0
  519. package/dist/ui/overlay-manager.js +238 -0
  520. package/dist/ui/overlays.d.ts +0 -4
  521. package/dist/ui/overlays.js +4 -460
  522. package/dist/ui/permission-overlay.d.ts +1 -1
  523. package/dist/ui/permission-overlay.js +189 -300
  524. package/dist/ui/providers/types.d.ts +178 -0
  525. package/dist/ui/providers/types.js +9 -0
  526. package/dist/ui/render-modes.d.ts +36 -0
  527. package/dist/ui/render-modes.js +44 -0
  528. package/dist/ui/startup-menu.d.ts +36 -0
  529. package/dist/ui/startup-menu.js +236 -0
  530. package/dist/ui/status-bar-controller.d.ts +33 -0
  531. package/dist/ui/status-bar-controller.js +99 -0
  532. package/dist/ui/subagent-renderer.d.ts +117 -0
  533. package/dist/ui/subagent-renderer.js +318 -0
  534. package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
  535. package/dist/ui/terminal-autocomplete-utils.js +83 -0
  536. package/dist/ui/terminal-codes.d.ts +94 -0
  537. package/dist/ui/terminal-codes.js +124 -0
  538. package/dist/ui/terminal-line-builders.d.ts +17 -0
  539. package/dist/ui/terminal-line-builders.js +42 -0
  540. package/dist/ui/terminal-render-item.d.ts +16 -0
  541. package/dist/ui/terminal-render-item.js +267 -0
  542. package/dist/ui/terminal-renderer.d.ts +220 -0
  543. package/dist/ui/terminal-renderer.js +750 -0
  544. package/dist/ui/terminal-types.d.ts +179 -0
  545. package/dist/ui/terminal-types.js +34 -0
  546. package/dist/ui/terminal-ui.d.ts +331 -0
  547. package/dist/ui/terminal-ui.js +819 -0
  548. package/dist/ui/terminal.d.ts +20 -0
  549. package/dist/ui/terminal.js +72 -0
  550. package/dist/ui/todo-zone.d.ts +19 -1
  551. package/dist/ui/todo-zone.js +124 -38
  552. package/dist/ui/tool-formatters.d.ts +16 -0
  553. package/dist/ui/tool-formatters.js +1027 -0
  554. package/dist/ui/turn-metrics.d.ts +56 -0
  555. package/dist/ui/turn-metrics.js +75 -0
  556. package/dist/ui/types.d.ts +28 -0
  557. package/dist/ui/types.js +1 -0
  558. package/dist/ui/vscode-diff-ipc.d.ts +102 -0
  559. package/dist/ui/vscode-diff-ipc.js +385 -0
  560. package/dist/utils/credentials.d.ts +24 -5
  561. package/dist/utils/credentials.js +123 -9
  562. package/dist/utils/debug-log.d.ts +28 -0
  563. package/dist/utils/debug-log.js +57 -0
  564. package/dist/utils/format-tokens.d.ts +13 -0
  565. package/dist/utils/format-tokens.js +18 -0
  566. package/dist/utils/git-config.d.ts +26 -0
  567. package/dist/utils/git-config.js +54 -0
  568. package/dist/utils/message-utils.d.ts +61 -0
  569. package/dist/utils/message-utils.js +72 -0
  570. package/dist/utils/model-tiers.d.ts +8 -1
  571. package/dist/utils/model-tiers.js +39 -17
  572. package/dist/utils/open-browser.d.ts +5 -0
  573. package/dist/utils/open-browser.js +32 -0
  574. package/dist/utils/path-safety.d.ts +56 -0
  575. package/dist/utils/path-safety.js +240 -0
  576. package/dist/utils/project-detection.d.ts +58 -0
  577. package/dist/utils/project-detection.js +424 -0
  578. package/dist/utils/project-memory.js +2 -1
  579. package/dist/utils/project-status.d.ts +2 -2
  580. package/dist/utils/startup-perf.d.ts +18 -0
  581. package/dist/utils/startup-perf.js +60 -0
  582. package/dist/utils/token-tracker.d.ts +62 -0
  583. package/dist/utils/token-tracker.js +150 -0
  584. package/dist/utils/token-types.d.ts +23 -0
  585. package/dist/utils/token-types.js +18 -0
  586. package/dist/utils/types/config-types.d.ts +32 -0
  587. package/dist/utils/types/config-types.js +8 -0
  588. package/dist/utils/update-checker.d.ts +28 -0
  589. package/dist/utils/update-checker.js +106 -0
  590. package/dist/utils/version.d.ts +7 -0
  591. package/dist/utils/version.js +10 -0
  592. package/dist/utils/vscode-detect.d.ts +39 -0
  593. package/dist/utils/vscode-detect.js +137 -0
  594. package/dist/workflow/guided-mode-injector.d.ts +42 -0
  595. package/dist/workflow/guided-mode-injector.js +191 -0
  596. package/dist/workflow/index.d.ts +8 -0
  597. package/dist/workflow/index.js +8 -0
  598. package/dist/workflow/step-criteria.d.ts +62 -0
  599. package/dist/workflow/step-criteria.js +150 -0
  600. package/dist/workflow/step-tracker.d.ts +92 -0
  601. package/dist/workflow/step-tracker.js +141 -0
  602. package/package.json +32 -12
  603. package/dist/index.old.d.ts +0 -7
  604. package/dist/index.old.js +0 -1014
  605. package/dist/repl.d.ts +0 -121
  606. package/dist/repl.js +0 -1878
  607. package/dist/templates/claude-md.d.ts +0 -7
  608. package/dist/templates/claude-md.js +0 -189
  609. package/dist/test-autocomplete.d.ts +0 -7
  610. package/dist/test-autocomplete.js +0 -85
  611. package/dist/test-tabbed-menu.d.ts +0 -7
  612. package/dist/test-tabbed-menu.js +0 -25
  613. package/dist/tool-selector.d.ts +0 -71
  614. package/dist/tool-selector.js +0 -184
  615. package/dist/ui/agents-overlay.d.ts +0 -12
  616. package/dist/ui/agents-overlay.js +0 -501
  617. package/dist/ui/arch-type-overlay.d.ts +0 -20
  618. package/dist/ui/arch-type-overlay.js +0 -229
  619. package/dist/ui/backlog-overlay.d.ts +0 -17
  620. package/dist/ui/backlog-overlay.js +0 -786
  621. package/dist/ui/commands-overlay.d.ts +0 -11
  622. package/dist/ui/commands-overlay.js +0 -410
  623. package/dist/ui/config-overlay.d.ts +0 -34
  624. package/dist/ui/config-overlay.js +0 -977
  625. package/dist/ui/init-overlay.d.ts +0 -24
  626. package/dist/ui/init-overlay.js +0 -525
  627. package/dist/ui/input-prompt-v2.d.ts +0 -179
  628. package/dist/ui/input-prompt-v2.js +0 -991
  629. package/dist/ui/model-warning-overlay.d.ts +0 -30
  630. package/dist/ui/model-warning-overlay.js +0 -171
  631. package/dist/ui/tools-overlay.d.ts +0 -26
  632. package/dist/ui/tools-overlay.js +0 -278
  633. package/dist/ui/tutorial-overlay.d.ts +0 -10
  634. package/dist/ui/tutorial-overlay.js +0 -936
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Delegation Status Tool - Coordinator Mode
3
+ *
4
+ * Read-only tool for the coordinator to query delegation progress.
5
+ * Queries the DelegationTracker singleton and returns formatted status.
6
+ */
7
+ interface DelegationStatusInput {
8
+ /** Specific delegation ID (e.g., "del_abc12345") */
9
+ delegation_id?: string;
10
+ /** Filter by target agent (e.g., "dev") */
11
+ agent_id?: string;
12
+ /** Filter by status: active (pending+running), completed, failed, all. Default: active */
13
+ status?: 'active' | 'completed' | 'failed' | 'all';
14
+ }
15
+ export declare const delegationStatusTool: import("@compilr-dev/sdk").Tool<DelegationStatusInput>;
16
+ export {};
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Delegation Status Tool - Coordinator Mode
3
+ *
4
+ * Read-only tool for the coordinator to query delegation progress.
5
+ * Queries the DelegationTracker singleton and returns formatted status.
6
+ */
7
+ import { defineTool } from '@compilr-dev/sdk';
8
+ import { getDelegationTracker } from '../multi-agent/delegation-tracker.js';
9
+ // =============================================================================
10
+ // Helpers
11
+ // =============================================================================
12
+ function formatDuration(from, to) {
13
+ const endTime = to ?? new Date();
14
+ const ms = endTime.getTime() - from.getTime();
15
+ const seconds = Math.floor(ms / 1000);
16
+ const minutes = Math.floor(seconds / 60);
17
+ const hours = Math.floor(minutes / 60);
18
+ if (hours > 0) {
19
+ return `${String(hours)}h ${String(minutes % 60)}m`;
20
+ }
21
+ else if (minutes > 0) {
22
+ return `${String(minutes)}m ${String(seconds % 60)}s`;
23
+ }
24
+ else {
25
+ return `${String(seconds)}s`;
26
+ }
27
+ }
28
+ function formatDelegation(d) {
29
+ const entry = {
30
+ id: d.id,
31
+ targetAgent: d.targetAgentId,
32
+ task: d.task.length > 100 ? d.task.slice(0, 100) + '...' : d.task,
33
+ status: d.status,
34
+ duration: formatDuration(d.createdAt, d.completedAt),
35
+ };
36
+ if (d.todoIndex !== undefined) {
37
+ entry.todoIndex = d.todoIndex;
38
+ }
39
+ if (d.result) {
40
+ entry.result = {
41
+ success: d.result.success,
42
+ summary: d.result.summary,
43
+ artifactIds: d.result.artifactIds,
44
+ ...(d.result.error ? { error: d.result.error } : {}),
45
+ };
46
+ }
47
+ return entry;
48
+ }
49
+ // =============================================================================
50
+ // Tool Definition
51
+ // =============================================================================
52
+ export const delegationStatusTool = defineTool({
53
+ name: 'delegation_status',
54
+ description: 'Query the status of tasks delegated via delegate_background. ' +
55
+ 'Returns active delegations by default (pending and running). ' +
56
+ 'Use delegation_id for a specific delegation, agent_id to filter by agent, ' +
57
+ 'or status to see completed/failed/all delegations. ' +
58
+ 'Note: Only tracks delegate_background calls, not foreground delegate.',
59
+ inputSchema: {
60
+ type: 'object',
61
+ properties: {
62
+ delegation_id: {
63
+ type: 'string',
64
+ description: 'Specific delegation ID (e.g., "del_abc12345")',
65
+ },
66
+ agent_id: {
67
+ type: 'string',
68
+ description: 'Filter by target agent (e.g., "dev", "arch")',
69
+ },
70
+ status: {
71
+ type: 'string',
72
+ enum: ['active', 'completed', 'failed', 'all'],
73
+ description: 'Filter by status. Default: "active" (pending + running)',
74
+ },
75
+ },
76
+ },
77
+ execute: async (input) => {
78
+ const tracker = await Promise.resolve(getDelegationTracker());
79
+ // Single delegation lookup
80
+ if (input.delegation_id) {
81
+ const delegation = tracker.get(input.delegation_id);
82
+ if (!delegation) {
83
+ return {
84
+ success: false,
85
+ error: `Delegation ${input.delegation_id} not found`,
86
+ };
87
+ }
88
+ return {
89
+ success: true,
90
+ result: {
91
+ delegations: [formatDelegation(delegation)],
92
+ stats: tracker.getStats(),
93
+ },
94
+ };
95
+ }
96
+ // Get all delegations then filter
97
+ let delegations;
98
+ if (input.agent_id) {
99
+ delegations = tracker.getByAgent(input.agent_id);
100
+ }
101
+ else {
102
+ delegations = tracker.getAll();
103
+ }
104
+ // Apply status filter
105
+ const filter = input.status ?? 'active';
106
+ if (filter !== 'all') {
107
+ delegations = delegations.filter((d) => {
108
+ switch (filter) {
109
+ case 'active':
110
+ return d.status === 'pending' || d.status === 'running';
111
+ case 'completed':
112
+ return d.status === 'completed';
113
+ case 'failed':
114
+ return d.status === 'failed';
115
+ default:
116
+ return true;
117
+ }
118
+ });
119
+ }
120
+ return {
121
+ success: true,
122
+ result: {
123
+ delegations: delegations.map(formatDelegation),
124
+ stats: tracker.getStats(),
125
+ },
126
+ };
127
+ },
128
+ });
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Document Database Tools
3
+ *
4
+ * Tools for managing project documents (PRD, architecture, design notes) in the database.
5
+ */
6
+ /**
7
+ * project_document_add - Add or update a project document
8
+ */
9
+ export declare const projectDocumentAddTool: import("@compilr-dev/sdk").Tool<{
10
+ project_id?: number;
11
+ doc_type: string;
12
+ title: string;
13
+ content: string;
14
+ }>;
15
+ /**
16
+ * project_document_get - Get a project document
17
+ */
18
+ export declare const projectDocumentGetTool: import("@compilr-dev/sdk").Tool<{
19
+ project_id?: number;
20
+ doc_type: string;
21
+ }>;
22
+ /**
23
+ * project_document_list - List all documents for a project
24
+ */
25
+ export declare const projectDocumentListTool: import("@compilr-dev/sdk").Tool<{
26
+ project_id?: number;
27
+ }>;
28
+ /**
29
+ * project_document_delete - Delete a project document
30
+ */
31
+ export declare const projectDocumentDeleteTool: import("@compilr-dev/sdk").Tool<{
32
+ project_id?: number;
33
+ doc_type: string;
34
+ }>;
35
+ /**
36
+ * All document tools
37
+ */
38
+ export declare const documentDbTools: import("@compilr-dev/sdk").Tool<{
39
+ project_id?: number;
40
+ doc_type: string;
41
+ title: string;
42
+ content: string;
43
+ }>[];
@@ -0,0 +1,220 @@
1
+ /**
2
+ * Document Database Tools
3
+ *
4
+ * Tools for managing project documents (PRD, architecture, design notes) in the database.
5
+ */
6
+ import { defineTool, createSuccessResult, createErrorResult } from '@compilr-dev/sdk';
7
+ import { documentRepository } from '../db/repositories/index.js';
8
+ import { getActiveProject } from './project-db.js';
9
+ /**
10
+ * project_document_add - Add or update a project document
11
+ */
12
+ export const projectDocumentAddTool = defineTool({
13
+ name: 'project_document_add',
14
+ description: 'Add or update a project document (PRD, architecture, design, notes). If a document of the same type exists, it will be updated.',
15
+ inputSchema: {
16
+ type: 'object',
17
+ properties: {
18
+ project_id: {
19
+ type: 'number',
20
+ description: 'Project ID (uses active project if not provided)',
21
+ },
22
+ doc_type: {
23
+ type: 'string',
24
+ enum: ['prd', 'architecture', 'design', 'notes'],
25
+ description: 'Document type',
26
+ },
27
+ title: {
28
+ type: 'string',
29
+ description: 'Document title',
30
+ },
31
+ content: {
32
+ type: 'string',
33
+ description: 'Document content (markdown)',
34
+ },
35
+ },
36
+ required: ['doc_type', 'title', 'content'],
37
+ },
38
+ execute: async (input) => {
39
+ await Promise.resolve(); // Required for async type signature
40
+ try {
41
+ const projectId = input.project_id || getActiveProject()?.id;
42
+ if (!projectId) {
43
+ return createErrorResult('No project specified and no active project. Use project_get or /projects to select a project first.');
44
+ }
45
+ const createInput = {
46
+ project_id: projectId,
47
+ doc_type: input.doc_type,
48
+ title: input.title,
49
+ content: input.content,
50
+ };
51
+ const doc = documentRepository.upsert(createInput);
52
+ return createSuccessResult({
53
+ success: true,
54
+ message: `Document "${doc.title}" saved`,
55
+ document: {
56
+ id: doc.id,
57
+ docType: doc.docType,
58
+ title: doc.title,
59
+ contentLength: doc.content.length,
60
+ updatedAt: doc.updatedAt.toISOString(),
61
+ },
62
+ });
63
+ }
64
+ catch (error) {
65
+ return createErrorResult(`Failed to save document: ${error instanceof Error ? error.message : String(error)}`);
66
+ }
67
+ },
68
+ });
69
+ /**
70
+ * project_document_get - Get a project document
71
+ */
72
+ export const projectDocumentGetTool = defineTool({
73
+ name: 'project_document_get',
74
+ description: 'Get a project document by type. Returns the document content.',
75
+ inputSchema: {
76
+ type: 'object',
77
+ properties: {
78
+ project_id: {
79
+ type: 'number',
80
+ description: 'Project ID (uses active project if not provided)',
81
+ },
82
+ doc_type: {
83
+ type: 'string',
84
+ enum: ['prd', 'architecture', 'design', 'notes'],
85
+ description: 'Document type to retrieve',
86
+ },
87
+ },
88
+ required: ['doc_type'],
89
+ },
90
+ execute: async (input) => {
91
+ await Promise.resolve(); // Required for async type signature
92
+ try {
93
+ const projectId = input.project_id || getActiveProject()?.id;
94
+ if (!projectId) {
95
+ return createErrorResult('No project specified and no active project. Use project_get or /projects to select a project first.');
96
+ }
97
+ const doc = documentRepository.getByType(projectId, input.doc_type);
98
+ if (!doc) {
99
+ return createSuccessResult({
100
+ success: true,
101
+ document: null,
102
+ message: `No ${input.doc_type} document found for this project`,
103
+ });
104
+ }
105
+ return createSuccessResult({
106
+ success: true,
107
+ document: {
108
+ id: doc.id,
109
+ docType: doc.docType,
110
+ title: doc.title,
111
+ content: doc.content,
112
+ createdAt: doc.createdAt.toISOString(),
113
+ updatedAt: doc.updatedAt.toISOString(),
114
+ },
115
+ });
116
+ }
117
+ catch (error) {
118
+ return createErrorResult(`Failed to get document: ${error instanceof Error ? error.message : String(error)}`);
119
+ }
120
+ },
121
+ });
122
+ /**
123
+ * project_document_list - List all documents for a project
124
+ */
125
+ export const projectDocumentListTool = defineTool({
126
+ name: 'project_document_list',
127
+ description: 'List all documents for a project. Returns document metadata without full content.',
128
+ inputSchema: {
129
+ type: 'object',
130
+ properties: {
131
+ project_id: {
132
+ type: 'number',
133
+ description: 'Project ID (uses active project if not provided)',
134
+ },
135
+ },
136
+ required: [],
137
+ },
138
+ execute: async (input) => {
139
+ await Promise.resolve(); // Required for async type signature
140
+ try {
141
+ const projectId = input.project_id || getActiveProject()?.id;
142
+ if (!projectId) {
143
+ return createErrorResult('No project specified and no active project. Use project_get or /projects to select a project first.');
144
+ }
145
+ const docs = documentRepository.listByProject(projectId);
146
+ const documents = docs.map((doc) => ({
147
+ id: doc.id,
148
+ docType: doc.docType,
149
+ title: doc.title,
150
+ contentLength: doc.content.length,
151
+ createdAt: doc.createdAt.toISOString(),
152
+ updatedAt: doc.updatedAt.toISOString(),
153
+ }));
154
+ return createSuccessResult({
155
+ success: true,
156
+ documents,
157
+ count: documents.length,
158
+ });
159
+ }
160
+ catch (error) {
161
+ return createErrorResult(`Failed to list documents: ${error instanceof Error ? error.message : String(error)}`);
162
+ }
163
+ },
164
+ });
165
+ /**
166
+ * project_document_delete - Delete a project document
167
+ */
168
+ export const projectDocumentDeleteTool = defineTool({
169
+ name: 'project_document_delete',
170
+ description: 'Delete a project document by type.',
171
+ inputSchema: {
172
+ type: 'object',
173
+ properties: {
174
+ project_id: {
175
+ type: 'number',
176
+ description: 'Project ID (uses active project if not provided)',
177
+ },
178
+ doc_type: {
179
+ type: 'string',
180
+ enum: ['prd', 'architecture', 'design', 'notes'],
181
+ description: 'Document type to delete',
182
+ },
183
+ },
184
+ required: ['doc_type'],
185
+ },
186
+ execute: async (input) => {
187
+ await Promise.resolve(); // Required for async type signature
188
+ try {
189
+ const projectId = input.project_id || getActiveProject()?.id;
190
+ if (!projectId) {
191
+ return createErrorResult('No project specified and no active project. Use project_get or /projects to select a project first.');
192
+ }
193
+ // Find the document first
194
+ const doc = documentRepository.getByType(projectId, input.doc_type);
195
+ if (!doc) {
196
+ return createErrorResult(`No ${input.doc_type} document found for this project`);
197
+ }
198
+ const deleted = documentRepository.delete(doc.id);
199
+ if (!deleted) {
200
+ return createErrorResult(`Failed to delete ${input.doc_type} document`);
201
+ }
202
+ return createSuccessResult({
203
+ success: true,
204
+ message: `Document "${doc.title}" deleted`,
205
+ });
206
+ }
207
+ catch (error) {
208
+ return createErrorResult(`Failed to delete document: ${error instanceof Error ? error.message : String(error)}`);
209
+ }
210
+ },
211
+ });
212
+ /**
213
+ * All document tools
214
+ */
215
+ export const documentDbTools = [
216
+ projectDocumentAddTool,
217
+ projectDocumentGetTool,
218
+ projectDocumentListTool,
219
+ projectDocumentDeleteTool,
220
+ ];
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Compilr Guide Tool
3
+ *
4
+ * Provides documentation about the CLI for the AI agent.
5
+ * The agent can call this tool to answer user questions about how to use the CLI.
6
+ */
7
+ interface GuideInput {
8
+ query?: string;
9
+ list_topics?: boolean;
10
+ }
11
+ export declare const guideTool: import("@compilr-dev/sdk").Tool<GuideInput>;
12
+ export {};
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Compilr Guide Tool
3
+ *
4
+ * Provides documentation about the CLI for the AI agent.
5
+ * The agent can call this tool to answer user questions about how to use the CLI.
6
+ */
7
+ import { defineTool } from '@compilr-dev/sdk';
8
+ import { searchGuide, getGuideTopics } from '../guide/index.js';
9
+ export const guideTool = defineTool({
10
+ name: 'compilr_guide',
11
+ description: 'Get documentation about Compilr Dev CLI features and commands. ' +
12
+ 'Use this to answer user questions about how to use the CLI. ' +
13
+ 'Query by topic (e.g., "creating-project", "team-agents") or command (e.g., "/design", "/backlog").',
14
+ inputSchema: {
15
+ type: 'object',
16
+ properties: {
17
+ query: {
18
+ type: 'string',
19
+ description: 'Topic or command to look up. Examples: "creating-project", "/design", "team-agents", "workflow"',
20
+ },
21
+ list_topics: {
22
+ type: 'boolean',
23
+ description: 'Set to true to list all available topics',
24
+ },
25
+ },
26
+ },
27
+ execute: (input) => {
28
+ if (input.list_topics) {
29
+ const topics = getGuideTopics();
30
+ return Promise.resolve({
31
+ success: true,
32
+ result: { output: `Available guide topics:\n\n${topics.map(t => `- ${t}`).join('\n')}` },
33
+ });
34
+ }
35
+ if (!input.query) {
36
+ return Promise.resolve({
37
+ success: true,
38
+ result: { output: 'Please provide a query (topic or command) or set list_topics=true to see all topics.' },
39
+ });
40
+ }
41
+ const results = searchGuide(input.query);
42
+ if (results.length === 0) {
43
+ const topics = getGuideTopics();
44
+ return Promise.resolve({
45
+ success: true,
46
+ result: { output: `No guide found for "${input.query}".\n\nAvailable topics:\n${topics.map(t => `- ${t}`).join('\n')}` },
47
+ });
48
+ }
49
+ // Format results
50
+ const formatted = results
51
+ .map((entry) => `## ${entry.title}\n\n${entry.content}\n`)
52
+ .join('\n---\n\n');
53
+ return Promise.resolve({
54
+ success: true,
55
+ result: { output: formatted },
56
+ });
57
+ },
58
+ silent: true,
59
+ });
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Handoff Tool - Multi-Agent Task Handoff
3
+ *
4
+ * Allows any agent to hand off the current task to another agent.
5
+ * Available to all agents (specialists and coordinator).
6
+ *
7
+ * Flow:
8
+ * 1. Agent calls handoff(agentId, task, reason?)
9
+ * 2. CLI shows approval prompt (unless auto-approve is enabled)
10
+ * 3. If approved: auto-switch to target agent, inject task
11
+ * 4. If denied: return "User declined" to current agent
12
+ *
13
+ * One-hop rule: If this agent was itself handed a task, it cannot
14
+ * re-hand it off (except back to the coordinator/default).
15
+ */
16
+ interface HandoffInput {
17
+ /** Target agent ID (e.g., 'arch', 'dev', 'qa', 'default') */
18
+ agentId: string;
19
+ /** Task description for the target agent */
20
+ task: string;
21
+ /** Optional reason for handoff (shown to user for context) */
22
+ reason?: string;
23
+ }
24
+ export declare const handoffTool: import("@compilr-dev/sdk").Tool<HandoffInput>;
25
+ export {};
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Handoff Tool - Multi-Agent Task Handoff
3
+ *
4
+ * Allows any agent to hand off the current task to another agent.
5
+ * Available to all agents (specialists and coordinator).
6
+ *
7
+ * Flow:
8
+ * 1. Agent calls handoff(agentId, task, reason?)
9
+ * 2. CLI shows approval prompt (unless auto-approve is enabled)
10
+ * 3. If approved: auto-switch to target agent, inject task
11
+ * 4. If denied: return "User declined" to current agent
12
+ *
13
+ * One-hop rule: If this agent was itself handed a task, it cannot
14
+ * re-hand it off (except back to the coordinator/default).
15
+ */
16
+ import { defineTool } from '@compilr-dev/sdk';
17
+ import { getHandoffHandler } from '../shared-handlers.js';
18
+ // =============================================================================
19
+ // Tool Definition
20
+ // =============================================================================
21
+ export const handoffTool = defineTool({
22
+ name: 'handoff',
23
+ description: 'Hand off the current task to another team agent. ' +
24
+ 'Use this when a task is outside your expertise or would benefit from another specialist. ' +
25
+ 'The user will be asked to approve the handoff before switching. ' +
26
+ 'Example: hand off architecture questions to $arch, implementation to $dev, testing to $qa.',
27
+ inputSchema: {
28
+ type: 'object',
29
+ properties: {
30
+ agentId: {
31
+ type: 'string',
32
+ description: 'Target agent ID (e.g., "arch", "dev", "qa", "default")',
33
+ },
34
+ task: {
35
+ type: 'string',
36
+ description: 'Task description for the target agent - be specific and clear',
37
+ },
38
+ reason: {
39
+ type: 'string',
40
+ description: 'Why this agent is better suited for the task (shown to user)',
41
+ },
42
+ },
43
+ required: ['agentId', 'task'],
44
+ },
45
+ execute: async (input) => {
46
+ try {
47
+ // Validate input
48
+ if (!input.agentId || input.agentId.trim().length === 0) {
49
+ return {
50
+ success: false,
51
+ error: 'Agent ID is required',
52
+ };
53
+ }
54
+ if (!input.task || input.task.trim().length === 0) {
55
+ return {
56
+ success: false,
57
+ error: 'Task description is required',
58
+ };
59
+ }
60
+ // Get the handoff handler from shared-handlers
61
+ const handoffHandler = getHandoffHandler();
62
+ if (!handoffHandler) {
63
+ return {
64
+ success: false,
65
+ error: 'Handoff handler not initialized. ' +
66
+ 'This tool requires multi-agent mode with a team.',
67
+ };
68
+ }
69
+ // Execute handoff (shows approval prompt, switches if approved)
70
+ const result = await handoffHandler({
71
+ agentId: input.agentId.trim(),
72
+ task: input.task.trim(),
73
+ reason: input.reason?.trim(),
74
+ });
75
+ if (result.error) {
76
+ return {
77
+ success: false,
78
+ error: result.error,
79
+ };
80
+ }
81
+ const output = {
82
+ handedOff: result.success,
83
+ message: result.declined
84
+ ? 'User declined the handoff. Continue handling the task yourself.'
85
+ : `Task handed off to $${input.agentId}. They will handle it from here.`,
86
+ };
87
+ return {
88
+ success: true,
89
+ result: output,
90
+ };
91
+ }
92
+ catch (err) {
93
+ return {
94
+ success: false,
95
+ error: `Handoff failed: ${err instanceof Error ? err.message : String(err)}`,
96
+ };
97
+ }
98
+ },
99
+ });
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Meta-Tools for Dynamic Tool Loading
3
+ *
4
+ * Thin singleton wrapper over @compilr-dev/sdk's MetaToolsRegistry.
5
+ * Provides the same module-level API used by the CLI while delegating
6
+ * all logic to the SDK's class-based implementation.
7
+ *
8
+ * Instead of declaring all 49 tools (~15K tokens), we declare:
9
+ * 1. A small set of "direct" tools (always available)
10
+ * 2. A get_tool_info meta-tool (always available)
11
+ * 3. A tool index in the system prompt
12
+ * 4. A transparent fallback handler that routes calls to the registry
13
+ */
14
+ import { type Tool, type ToolExecutionResult } from '@compilr-dev/sdk';
15
+ export declare function setMetaToolFilter(filter: string[] | null | undefined): void;
16
+ export declare function getMetaToolFilter(): Set<string> | null;
17
+ export declare function initializeMetaToolRegistry(tools: Tool[]): void;
18
+ export declare function getRegisteredMetaTools(): Tool[];
19
+ export declare function getMetaToolCount(): number;
20
+ export declare function generateToolIndex(): string;
21
+ export declare const listToolsTool: Tool<object>;
22
+ export declare const getToolInfoTool: Tool<object>;
23
+ export declare const useToolTool: Tool<object>;
24
+ export declare const metaTools: Tool<object>[];
25
+ export declare function createMetaToolFallback(): (name: string, input: Record<string, unknown>) => Promise<ToolExecutionResult | null>;
26
+ export declare const META_TOOLS_SYSTEM_PROMPT_PREFIX = "\n## Tool Index (Specialized Tools)\n\nThese tools are called **exactly like direct tools** \u2014 just use the tool name with parameters. No special syntax or wrapper needed. The system routes them automatically.\n\n**IMPORTANT \u2014 These are CLI system tools, NOT your project's backend. Never use localhost/curl to access them.**\n\n**Parameter Rules:**\n- For **zero-parameter calls**: call the tool directly (e.g., `workitem_query()`, `git_status()`).\n- For **calls WITH parameters**: you MUST call `get_tool_info(\"tool_name\")` first to get the exact JSON schema. The signatures below are summaries only \u2014 do NOT guess parameter structure from them.\n- After a failed tool call, always call `get_tool_info()` before retrying.\n\n";
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Meta-Tools for Dynamic Tool Loading
3
+ *
4
+ * Thin singleton wrapper over @compilr-dev/sdk's MetaToolsRegistry.
5
+ * Provides the same module-level API used by the CLI while delegating
6
+ * all logic to the SDK's class-based implementation.
7
+ *
8
+ * Instead of declaring all 49 tools (~15K tokens), we declare:
9
+ * 1. A small set of "direct" tools (always available)
10
+ * 2. A get_tool_info meta-tool (always available)
11
+ * 3. A tool index in the system prompt
12
+ * 4. A transparent fallback handler that routes calls to the registry
13
+ */
14
+ import { MetaToolsRegistry, createMetaTools, META_TOOLS_SYSTEM_PROMPT_PREFIX as SDK_META_TOOLS_SYSTEM_PROMPT_PREFIX, } from '@compilr-dev/sdk';
15
+ // Singleton registry for the CLI process
16
+ const registry = new MetaToolsRegistry();
17
+ const metaToolSet = createMetaTools(registry);
18
+ // =============================================================================
19
+ // Module-level API (same signatures as before)
20
+ // =============================================================================
21
+ export function setMetaToolFilter(filter) {
22
+ registry.setFilter(filter);
23
+ }
24
+ export function getMetaToolFilter() {
25
+ return registry.getFilter();
26
+ }
27
+ export function initializeMetaToolRegistry(tools) {
28
+ registry.initialize(tools);
29
+ }
30
+ export function getRegisteredMetaTools() {
31
+ return registry.getRegisteredTools();
32
+ }
33
+ export function getMetaToolCount() {
34
+ return registry.getToolCount();
35
+ }
36
+ export function generateToolIndex() {
37
+ return registry.generateToolIndex();
38
+ }
39
+ // Re-export tool instances
40
+ export const listToolsTool = metaToolSet.listToolsTool;
41
+ export const getToolInfoTool = metaToolSet.getToolInfoTool;
42
+ export const useToolTool = metaToolSet.useToolTool;
43
+ export const metaTools = [listToolsTool, getToolInfoTool, useToolTool];
44
+ export function createMetaToolFallback() {
45
+ return metaToolSet.createFallback();
46
+ }
47
+ export const META_TOOLS_SYSTEM_PROMPT_PREFIX = SDK_META_TOOLS_SYSTEM_PROMPT_PREFIX;