@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
@@ -1,255 +0,0 @@
1
- /**
2
- * Anchor Tools - Agent tools for managing anchors
3
- *
4
- * Provides anchor_add and anchor_remove tools that allow
5
- * the agent to add critical context that survives compaction.
6
- */
7
- import { defineTool } from '@compilr-dev/agents';
8
- import { getGlobalAnchorManager, getAnchorManager, } from '../anchors/index.js';
9
- import { getActiveProject } from './project-db.js';
10
- // =============================================================================
11
- // anchor_add Tool
12
- // =============================================================================
13
- export const anchorAddTool = defineTool({
14
- name: 'anchor_add',
15
- description: 'Add critical information that must survive context compaction. ' +
16
- 'Use this for: project context, important decisions, user preferences, ' +
17
- 'architectural constraints, or any information that should persist across the entire conversation. ' +
18
- 'Anchors are always included at the top of the context window.',
19
- inputSchema: {
20
- type: 'object',
21
- properties: {
22
- content: {
23
- type: 'string',
24
- description: 'The critical information to preserve. Keep it concise but complete.',
25
- },
26
- priority: {
27
- type: 'string',
28
- enum: ['critical', 'safety', 'info'],
29
- description: 'Priority level. "critical" for must-never-forget info (user preferences, key constraints), ' +
30
- '"safety" for safety-related context, "info" for general helpful context.',
31
- },
32
- scope: {
33
- type: 'string',
34
- enum: ['global', 'project'],
35
- description: 'Scope for the anchor. "global" persists across all projects, ' +
36
- '"project" is specific to the current project (requires active project).',
37
- },
38
- tags: {
39
- type: 'array',
40
- items: { type: 'string' },
41
- description: 'Optional tags for categorization (e.g., ["architecture", "decision"])',
42
- },
43
- },
44
- required: ['content'],
45
- },
46
- execute: (input) => {
47
- try {
48
- // Validate content
49
- if (!input.content || input.content.trim().length === 0) {
50
- return Promise.resolve({
51
- success: false,
52
- error: 'Anchor content is required and cannot be empty',
53
- });
54
- }
55
- const content = input.content.trim();
56
- const priority = input.priority ?? 'info';
57
- const activeProject = getActiveProject();
58
- // Determine scope
59
- let scope = input.scope;
60
- if (!scope) {
61
- scope = activeProject ? 'project' : 'global';
62
- }
63
- // Validate project scope
64
- if (scope === 'project' && !activeProject) {
65
- return Promise.resolve({
66
- success: false,
67
- error: 'Cannot add project-scoped anchor: no active project. Use scope: "global" instead.',
68
- });
69
- }
70
- // Get project ID for project-scoped anchors (validated above that activeProject exists)
71
- const projectId = scope === 'project' && activeProject
72
- ? String(activeProject.id)
73
- : undefined;
74
- // Get the appropriate manager
75
- const manager = scope === 'global'
76
- ? getGlobalAnchorManager()
77
- : getAnchorManager(projectId ?? '');
78
- // Add the anchor
79
- const anchor = manager.add({
80
- content,
81
- priority,
82
- scope: 'persistent', // Anchors persist across sessions
83
- tags: input.tags,
84
- projectId,
85
- });
86
- return Promise.resolve({
87
- success: true,
88
- result: {
89
- id: anchor.id,
90
- content: anchor.content,
91
- priority: anchor.priority,
92
- scope: scope,
93
- tags: anchor.tags,
94
- message: `Anchor added successfully (${scope} scope, ${priority} priority)`,
95
- },
96
- });
97
- }
98
- catch (err) {
99
- return Promise.resolve({
100
- success: false,
101
- error: `Failed to add anchor: ${err instanceof Error ? err.message : String(err)}`,
102
- });
103
- }
104
- },
105
- });
106
- // =============================================================================
107
- // anchor_remove Tool
108
- // =============================================================================
109
- export const anchorRemoveTool = defineTool({
110
- name: 'anchor_remove',
111
- description: 'Remove an anchor by its ID. Use this to clean up outdated or no longer relevant anchors. ' +
112
- 'Use anchor_list first to see available anchors and their IDs.',
113
- inputSchema: {
114
- type: 'object',
115
- properties: {
116
- id: {
117
- type: 'string',
118
- description: 'The ID of the anchor to remove',
119
- },
120
- },
121
- required: ['id'],
122
- },
123
- execute: (input) => {
124
- try {
125
- if (!input.id || input.id.trim().length === 0) {
126
- return Promise.resolve({
127
- success: false,
128
- error: 'Anchor ID is required',
129
- });
130
- }
131
- const id = input.id.trim();
132
- const activeProject = getActiveProject();
133
- // Try to remove from project anchors first, then global
134
- let removed = false;
135
- let scope = 'unknown';
136
- if (activeProject) {
137
- const projectManager = getAnchorManager(String(activeProject.id));
138
- if (projectManager.has(id)) {
139
- removed = projectManager.remove(id);
140
- scope = 'project';
141
- }
142
- }
143
- if (!removed) {
144
- const globalManager = getGlobalAnchorManager();
145
- if (globalManager.has(id)) {
146
- removed = globalManager.remove(id);
147
- scope = 'global';
148
- }
149
- }
150
- if (!removed) {
151
- return Promise.resolve({
152
- success: false,
153
- error: `Anchor with ID "${id}" not found`,
154
- });
155
- }
156
- return Promise.resolve({
157
- success: true,
158
- result: {
159
- id,
160
- scope,
161
- message: `Anchor removed successfully (was ${scope} scope)`,
162
- },
163
- });
164
- }
165
- catch (err) {
166
- return Promise.resolve({
167
- success: false,
168
- error: `Failed to remove anchor: ${err instanceof Error ? err.message : String(err)}`,
169
- });
170
- }
171
- },
172
- });
173
- // =============================================================================
174
- // anchor_list Tool
175
- // =============================================================================
176
- export const anchorListTool = defineTool({
177
- name: 'anchor_list',
178
- description: 'List all anchors. Returns anchor IDs, content, priority, and scope. ' +
179
- 'Use this to see what persistent context is available before adding or removing anchors.',
180
- inputSchema: {
181
- type: 'object',
182
- properties: {
183
- scope: {
184
- type: 'string',
185
- enum: ['global', 'project', 'all'],
186
- description: 'Filter by scope: "global", "project", or "all" (default: "all")',
187
- },
188
- priority: {
189
- type: 'string',
190
- enum: ['critical', 'safety', 'info'],
191
- description: 'Filter by priority level',
192
- },
193
- },
194
- },
195
- execute: (input) => {
196
- try {
197
- const activeProject = getActiveProject();
198
- const scope = input.scope ?? 'all';
199
- const anchors = [];
200
- // Collect global anchors
201
- if (scope === 'global' || scope === 'all') {
202
- const globalManager = getGlobalAnchorManager();
203
- const globalAnchors = globalManager.getAll({ priority: input.priority });
204
- for (const anchor of globalAnchors) {
205
- anchors.push({
206
- id: anchor.id,
207
- content: anchor.content,
208
- priority: anchor.priority,
209
- scope: 'global',
210
- tags: anchor.tags,
211
- });
212
- }
213
- }
214
- // Collect project anchors
215
- if ((scope === 'project' || scope === 'all') && activeProject) {
216
- const projectManager = getAnchorManager(String(activeProject.id));
217
- const projectAnchors = projectManager.getAll({ priority: input.priority });
218
- for (const anchor of projectAnchors) {
219
- anchors.push({
220
- id: anchor.id,
221
- content: anchor.content,
222
- priority: anchor.priority,
223
- scope: 'project',
224
- tags: anchor.tags,
225
- });
226
- }
227
- }
228
- // Sort by priority (critical first)
229
- const priorityOrder = { critical: 0, safety: 1, info: 2 };
230
- anchors.sort((a, b) => {
231
- const pa = priorityOrder[a.priority] ?? 2;
232
- const pb = priorityOrder[b.priority] ?? 2;
233
- return pa - pb;
234
- });
235
- return Promise.resolve({
236
- success: true,
237
- result: {
238
- count: anchors.length,
239
- activeProject: activeProject?.displayName ?? null,
240
- anchors,
241
- },
242
- });
243
- }
244
- catch (err) {
245
- return Promise.resolve({
246
- success: false,
247
- error: `Failed to list anchors: ${err instanceof Error ? err.message : String(err)}`,
248
- });
249
- }
250
- },
251
- });
252
- // =============================================================================
253
- // Export all anchor tools
254
- // =============================================================================
255
- export const allAnchorTools = [anchorAddTool, anchorRemoveTool, anchorListTool];
@@ -1,54 +0,0 @@
1
- /**
2
- * Backlog Tool Wrappers
3
- *
4
- * These wrappers provide `backlog_read` and `backlog_write` tools that skills expect,
5
- * but internally delegate to the `workitem_*` database tools.
6
- *
7
- * This allows library skills (which reference backlog_*) to work seamlessly
8
- * with the CLI's database-backed workitem system.
9
- */
10
- interface BacklogReadInput {
11
- /** Get a specific item by ID */
12
- id?: string;
13
- /** Filter by status */
14
- status?: 'backlog' | 'in-progress' | 'done' | 'blocked';
15
- /** Filter by type */
16
- type?: 'feature' | 'bug' | 'chore' | 'spike';
17
- /** Filter by priority */
18
- priority?: 'critical' | 'high' | 'medium' | 'low';
19
- /** Search in title and description */
20
- search?: string;
21
- /** Maximum items to return (default: 20) */
22
- limit?: number;
23
- }
24
- export declare const backlogReadTool: import("@compilr-dev/agents").Tool<BacklogReadInput>;
25
- interface BacklogWriteInput {
26
- /** Action to perform */
27
- action: 'add' | 'update' | 'delete' | 'replace';
28
- /** Item to add or update (required for add/update) */
29
- item?: {
30
- id?: string;
31
- type?: 'feature' | 'bug' | 'chore' | 'spike';
32
- title?: string;
33
- description?: string;
34
- status?: 'backlog' | 'in-progress' | 'done' | 'blocked';
35
- priority?: 'critical' | 'high' | 'medium' | 'low';
36
- };
37
- /** Item ID to delete (required for delete) */
38
- deleteId?: string;
39
- /** Full list of items (required for replace action) */
40
- items?: Array<{
41
- id?: string;
42
- type: 'feature' | 'bug' | 'chore' | 'spike';
43
- title: string;
44
- description?: string;
45
- status?: 'backlog' | 'in-progress' | 'done' | 'blocked';
46
- priority?: 'critical' | 'high' | 'medium' | 'low';
47
- }>;
48
- }
49
- export declare const backlogWriteTool: import("@compilr-dev/agents").Tool<BacklogWriteInput>;
50
- /**
51
- * All backlog wrapper tools
52
- */
53
- export declare const backlogWrapperTools: (import("@compilr-dev/agents").Tool<BacklogReadInput> | import("@compilr-dev/agents").Tool<BacklogWriteInput>)[];
54
- export {};
@@ -1,338 +0,0 @@
1
- /**
2
- * Backlog Tool Wrappers
3
- *
4
- * These wrappers provide `backlog_read` and `backlog_write` tools that skills expect,
5
- * but internally delegate to the `workitem_*` database tools.
6
- *
7
- * This allows library skills (which reference backlog_*) to work seamlessly
8
- * with the CLI's database-backed workitem system.
9
- */
10
- import { defineTool, createSuccessResult, createErrorResult } from '@compilr-dev/agents';
11
- import { workItemRepository } from '../db/repositories/index.js';
12
- import { getActiveProject } from './project-db.js';
13
- // =============================================================================
14
- // Type Mappings (Library ↔ CLI)
15
- // =============================================================================
16
- // Library status → CLI status
17
- const STATUS_TO_CLI = {
18
- 'backlog': 'backlog',
19
- 'in-progress': 'in_progress',
20
- 'done': 'completed',
21
- 'blocked': 'skipped', // closest match
22
- };
23
- // CLI status → Library status
24
- const STATUS_TO_LIBRARY = {
25
- 'backlog': 'backlog',
26
- 'in_progress': 'in-progress',
27
- 'completed': 'done',
28
- 'skipped': 'blocked',
29
- };
30
- // Library type → CLI type
31
- const TYPE_TO_CLI = {
32
- 'feature': 'feature',
33
- 'bug': 'bug',
34
- 'chore': 'chore',
35
- 'spike': 'tech-debt', // closest match
36
- };
37
- // CLI type → Library type
38
- const TYPE_TO_LIBRARY = {
39
- 'feature': 'feature',
40
- 'bug': 'bug',
41
- 'chore': 'chore',
42
- 'tech-debt': 'spike',
43
- };
44
- export const backlogReadTool = defineTool({
45
- name: 'backlog_read',
46
- description: 'Read backlog items from the project. ' +
47
- 'Use filters to narrow results. Use id parameter to get a specific item. ' +
48
- 'Returns items sorted by priority (critical first) then by creation date.',
49
- inputSchema: {
50
- type: 'object',
51
- properties: {
52
- id: {
53
- type: 'string',
54
- description: 'Get a specific item by ID (e.g., "FEAT-001")',
55
- },
56
- status: {
57
- type: 'string',
58
- enum: ['backlog', 'in-progress', 'done', 'blocked'],
59
- description: 'Filter by status',
60
- },
61
- type: {
62
- type: 'string',
63
- enum: ['feature', 'bug', 'chore', 'spike'],
64
- description: 'Filter by item type',
65
- },
66
- search: {
67
- type: 'string',
68
- description: 'Search in title and description',
69
- },
70
- priority: {
71
- type: 'string',
72
- enum: ['critical', 'high', 'medium', 'low'],
73
- description: 'Filter by priority',
74
- },
75
- limit: {
76
- type: 'number',
77
- description: 'Maximum items to return (default: 20)',
78
- },
79
- },
80
- },
81
- execute: async (input) => {
82
- try {
83
- // Note: workItemRepository methods are synchronous, but we keep async for interface consistency
84
- await Promise.resolve();
85
- const projectId = getActiveProject()?.id;
86
- if (!projectId) {
87
- return createSuccessResult({
88
- items: [],
89
- total: 0,
90
- filtered: 0,
91
- message: 'No active project. Use /projects to select a project first.',
92
- });
93
- }
94
- // If specific ID requested, look it up directly
95
- if (input.id) {
96
- const item = workItemRepository.getByItemId(projectId, input.id);
97
- if (!item) {
98
- return createErrorResult(`Item not found: ${input.id}`);
99
- }
100
- return createSuccessResult({
101
- items: [{
102
- id: item.itemId,
103
- type: TYPE_TO_LIBRARY[item.type],
104
- title: item.title,
105
- description: item.description || '',
106
- status: STATUS_TO_LIBRARY[item.status],
107
- priority: item.priority,
108
- }],
109
- total: 1,
110
- filtered: 1,
111
- });
112
- }
113
- // Build query
114
- const queryInput = {
115
- project_id: projectId,
116
- status: input.status ? STATUS_TO_CLI[input.status] : 'all',
117
- type: input.type ? TYPE_TO_CLI[input.type] : 'all',
118
- priority: input.priority || 'all',
119
- search: input.search,
120
- limit: input.limit || 20,
121
- offset: 0,
122
- };
123
- const result = workItemRepository.query(queryInput);
124
- // Map items to library format
125
- const items = result.items.map((item) => ({
126
- id: item.itemId,
127
- type: TYPE_TO_LIBRARY[item.type],
128
- title: item.title,
129
- description: item.description || '',
130
- status: STATUS_TO_LIBRARY[item.status],
131
- priority: item.priority,
132
- createdAt: item.createdAt.toISOString(),
133
- updatedAt: item.createdAt.toISOString(), // DB doesn't track updatedAt separately
134
- }));
135
- return createSuccessResult({
136
- items,
137
- total: result.total,
138
- filtered: items.length,
139
- });
140
- }
141
- catch (error) {
142
- return createErrorResult(error instanceof Error ? error.message : String(error));
143
- }
144
- },
145
- });
146
- export const backlogWriteTool = defineTool({
147
- name: 'backlog_write',
148
- description: 'Create, update, or delete backlog items. ' +
149
- 'Actions: add (new item), update (modify existing), delete (remove), replace (full list). ' +
150
- 'IDs are auto-generated for new items based on type (e.g., FEAT-001, BUG-002).',
151
- inputSchema: {
152
- type: 'object',
153
- properties: {
154
- action: {
155
- type: 'string',
156
- enum: ['add', 'update', 'delete', 'replace'],
157
- description: 'Action to perform',
158
- },
159
- item: {
160
- type: 'object',
161
- description: 'Item to add or update (for add/update actions)',
162
- properties: {
163
- id: { type: 'string', description: 'Item ID (required for update)' },
164
- type: {
165
- type: 'string',
166
- enum: ['feature', 'bug', 'chore', 'spike'],
167
- description: 'Item type (required for add)',
168
- },
169
- title: { type: 'string', description: 'Item title' },
170
- description: { type: 'string', description: 'Detailed description' },
171
- status: {
172
- type: 'string',
173
- enum: ['backlog', 'in-progress', 'done', 'blocked'],
174
- description: 'Item status',
175
- },
176
- priority: {
177
- type: 'string',
178
- enum: ['critical', 'high', 'medium', 'low'],
179
- description: 'Priority level',
180
- },
181
- },
182
- },
183
- deleteId: {
184
- type: 'string',
185
- description: 'Item ID to delete (for delete action)',
186
- },
187
- items: {
188
- type: 'array',
189
- description: 'Full list of items (for replace action)',
190
- items: {
191
- type: 'object',
192
- },
193
- },
194
- },
195
- required: ['action'],
196
- },
197
- execute: async (input) => {
198
- try {
199
- // Note: workItemRepository methods are synchronous, but we keep async for interface consistency
200
- await Promise.resolve();
201
- const projectId = getActiveProject()?.id;
202
- if (!projectId) {
203
- return createErrorResult('No active project. Use /projects to select a project first.');
204
- }
205
- switch (input.action) {
206
- case 'add': {
207
- if (!input.item) {
208
- return createErrorResult('Item is required for add action');
209
- }
210
- if (!input.item.type) {
211
- return createErrorResult('Item type is required for add action');
212
- }
213
- if (!input.item.title) {
214
- return createErrorResult('Item title is required for add action');
215
- }
216
- const createInput = {
217
- project_id: projectId,
218
- type: TYPE_TO_CLI[input.item.type],
219
- title: input.item.title,
220
- description: input.item.description,
221
- priority: input.item.priority,
222
- };
223
- const item = workItemRepository.create(createInput);
224
- return createSuccessResult({
225
- success: true,
226
- action: 'add',
227
- itemId: item.itemId,
228
- message: `Created ${item.itemId}: "${item.title}"`,
229
- });
230
- }
231
- case 'update': {
232
- if (!input.item?.id) {
233
- return createErrorResult('Item ID is required for update action');
234
- }
235
- const existingItem = workItemRepository.getByItemId(projectId, input.item.id);
236
- if (!existingItem) {
237
- return createErrorResult(`Item not found: ${input.item.id}`);
238
- }
239
- const updateInput = {};
240
- if (input.item.status) {
241
- updateInput.status = STATUS_TO_CLI[input.item.status];
242
- }
243
- if (input.item.priority) {
244
- updateInput.priority = input.item.priority;
245
- }
246
- if (input.item.title) {
247
- updateInput.title = input.item.title;
248
- }
249
- if (input.item.description !== undefined) {
250
- updateInput.description = input.item.description;
251
- }
252
- const updated = workItemRepository.update(existingItem.id, updateInput);
253
- if (!updated) {
254
- return createErrorResult(`Failed to update item: ${input.item.id}`);
255
- }
256
- return createSuccessResult({
257
- success: true,
258
- action: 'update',
259
- itemId: input.item.id,
260
- message: `Updated ${input.item.id}`,
261
- });
262
- }
263
- case 'delete': {
264
- const deleteId = input.deleteId || input.item?.id;
265
- if (!deleteId) {
266
- return createErrorResult('deleteId or item.id is required for delete action');
267
- }
268
- const existingItem = workItemRepository.getByItemId(projectId, deleteId);
269
- if (!existingItem) {
270
- return createErrorResult(`Item not found: ${deleteId}`);
271
- }
272
- const deleted = workItemRepository.delete(existingItem.id);
273
- if (!deleted) {
274
- return createErrorResult(`Failed to delete item: ${deleteId}`);
275
- }
276
- return createSuccessResult({
277
- success: true,
278
- action: 'delete',
279
- itemId: deleteId,
280
- message: `Deleted ${deleteId}`,
281
- });
282
- }
283
- case 'replace': {
284
- if (!input.items) {
285
- return createErrorResult('Items array is required for replace action');
286
- }
287
- // Delete all existing items
288
- const existing = workItemRepository.query({
289
- project_id: projectId,
290
- limit: 1000,
291
- offset: 0,
292
- });
293
- for (const item of existing.items) {
294
- workItemRepository.delete(item.id);
295
- }
296
- // Add all new items
297
- const newIds = [];
298
- for (const newItem of input.items) {
299
- const createInput = {
300
- project_id: projectId,
301
- type: TYPE_TO_CLI[newItem.type],
302
- title: newItem.title,
303
- description: newItem.description,
304
- priority: newItem.priority,
305
- };
306
- const created = workItemRepository.create(createInput);
307
- newIds.push(created.itemId);
308
- // Update status if not backlog
309
- if (newItem.status && newItem.status !== 'backlog') {
310
- workItemRepository.update(created.id, {
311
- status: STATUS_TO_CLI[newItem.status],
312
- });
313
- }
314
- }
315
- return createSuccessResult({
316
- success: true,
317
- action: 'replace',
318
- itemCount: input.items.length,
319
- newIds,
320
- message: `Replaced backlog with ${String(input.items.length)} items`,
321
- });
322
- }
323
- default:
324
- return createErrorResult(`Unknown action: ${input.action}`);
325
- }
326
- }
327
- catch (error) {
328
- return createErrorResult(error instanceof Error ? error.message : String(error));
329
- }
330
- },
331
- });
332
- /**
333
- * All backlog wrapper tools
334
- */
335
- export const backlogWrapperTools = [
336
- backlogReadTool,
337
- backlogWriteTool,
338
- ];
@@ -1,43 +0,0 @@
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/agents").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/agents").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/agents").Tool<{
26
- project_id?: number;
27
- }>;
28
- /**
29
- * project_document_delete - Delete a project document
30
- */
31
- export declare const projectDocumentDeleteTool: import("@compilr-dev/agents").Tool<{
32
- project_id?: number;
33
- doc_type: string;
34
- }>;
35
- /**
36
- * All document tools
37
- */
38
- export declare const documentDbTools: import("@compilr-dev/agents").Tool<{
39
- project_id?: number;
40
- doc_type: string;
41
- title: string;
42
- content: string;
43
- }>[];