@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,549 +0,0 @@
1
- /**
2
- * Work Item Database Tools
3
- *
4
- * Tools for managing work items (backlog items, tasks, bugs) in the database.
5
- */
6
- import { defineTool, createSuccessResult, createErrorResult } from '@compilr-dev/agents';
7
- import { workItemRepository } from '../db/repositories/index.js';
8
- import { getActiveProject } from './project-db.js';
9
- import { getNextStep, isValidTransition, getStepCriteria, formatStepDisplay, STEP_ORDER, } from '../workflow/index.js';
10
- /**
11
- * workitem_query - Query work items with filters
12
- */
13
- export const workitemQueryTool = defineTool({
14
- name: 'workitem_query',
15
- description: 'Query work items from the backlog. Supports filtering by status, type, priority, and search. Returns paginated results.',
16
- inputSchema: {
17
- type: 'object',
18
- properties: {
19
- project_id: {
20
- type: 'number',
21
- description: 'Project ID (uses active project if not provided)',
22
- },
23
- status: {
24
- type: 'string',
25
- enum: ['backlog', 'in_progress', 'completed', 'skipped', 'all'],
26
- description: 'Filter by status (default: all)',
27
- },
28
- type: {
29
- type: 'string',
30
- enum: ['feature', 'bug', 'tech-debt', 'chore', 'all'],
31
- description: 'Filter by type (default: all)',
32
- },
33
- priority: {
34
- type: 'string',
35
- enum: ['critical', 'high', 'medium', 'low', 'all'],
36
- description: 'Filter by priority (default: all)',
37
- },
38
- search: {
39
- type: 'string',
40
- description: 'Search in title and description',
41
- },
42
- limit: {
43
- type: 'number',
44
- description: 'Maximum items to return (default: 50)',
45
- },
46
- offset: {
47
- type: 'number',
48
- description: 'Offset for pagination (default: 0)',
49
- },
50
- },
51
- required: [],
52
- },
53
- execute: async (input) => {
54
- await Promise.resolve(); // Required for async type signature
55
- try {
56
- const projectId = input.project_id || getActiveProject()?.id;
57
- if (!projectId) {
58
- return createErrorResult('No project specified and no active project. Use project_get or /projects to select a project first.');
59
- }
60
- const queryInput = {
61
- project_id: projectId,
62
- status: input.status,
63
- type: input.type,
64
- priority: input.priority,
65
- search: input.search,
66
- limit: input.limit || 50,
67
- offset: input.offset || 0,
68
- };
69
- const result = workItemRepository.query(queryInput);
70
- const items = result.items.map((item) => ({
71
- id: item.id,
72
- itemId: item.itemId,
73
- type: item.type,
74
- status: item.status,
75
- priority: item.priority,
76
- guidedStep: item.guidedStep,
77
- title: item.title,
78
- description: item.description,
79
- estimatedEffort: item.estimatedEffort,
80
- completedAt: item.completedAt?.toISOString(),
81
- commitHash: item.commitHash,
82
- createdAt: item.createdAt.toISOString(),
83
- }));
84
- return createSuccessResult({
85
- success: true,
86
- items,
87
- total: result.total,
88
- hasMore: result.hasMore,
89
- projectId,
90
- });
91
- }
92
- catch (error) {
93
- return createErrorResult(`Failed to query work items: ${error instanceof Error ? error.message : String(error)}`);
94
- }
95
- },
96
- });
97
- /**
98
- * workitem_add - Add a new work item
99
- */
100
- export const workitemAddTool = defineTool({
101
- name: 'workitem_add',
102
- description: 'Add a new work item (feature, bug, tech-debt, or chore) to the backlog.',
103
- inputSchema: {
104
- type: 'object',
105
- properties: {
106
- project_id: {
107
- type: 'number',
108
- description: 'Project ID (uses active project if not provided)',
109
- },
110
- type: {
111
- type: 'string',
112
- enum: ['feature', 'bug', 'tech-debt', 'chore'],
113
- description: 'Work item type',
114
- },
115
- title: {
116
- type: 'string',
117
- description: 'Title of the work item',
118
- },
119
- description: {
120
- type: 'string',
121
- description: 'Detailed description',
122
- },
123
- priority: {
124
- type: 'string',
125
- enum: ['critical', 'high', 'medium', 'low'],
126
- description: 'Priority (default: medium)',
127
- },
128
- estimated_effort: {
129
- type: 'string',
130
- enum: ['low', 'medium', 'high'],
131
- description: 'Estimated effort',
132
- },
133
- },
134
- required: ['type', 'title'],
135
- },
136
- execute: async (input) => {
137
- await Promise.resolve(); // Required for async type signature
138
- try {
139
- const projectId = input.project_id || getActiveProject()?.id;
140
- if (!projectId) {
141
- return createErrorResult('No project specified and no active project. Use project_get or /projects to select a project first.');
142
- }
143
- const createInput = {
144
- project_id: projectId,
145
- type: input.type,
146
- title: input.title,
147
- description: input.description,
148
- priority: input.priority,
149
- estimated_effort: input.estimated_effort,
150
- };
151
- const item = workItemRepository.create(createInput);
152
- return createSuccessResult({
153
- success: true,
154
- message: `Work item ${item.itemId} created: "${item.title}"`,
155
- item: {
156
- id: item.id,
157
- itemId: item.itemId,
158
- type: item.type,
159
- status: item.status,
160
- priority: item.priority,
161
- title: item.title,
162
- },
163
- });
164
- }
165
- catch (error) {
166
- return createErrorResult(`Failed to add work item: ${error instanceof Error ? error.message : String(error)}`);
167
- }
168
- },
169
- });
170
- /**
171
- * workitem_update - Update a work item
172
- */
173
- export const workitemUpdateTool = defineTool({
174
- name: 'workitem_update',
175
- description: 'Update an existing work item. Can update status, priority, title, description, guided step, and more.',
176
- inputSchema: {
177
- type: 'object',
178
- properties: {
179
- item_id: {
180
- type: 'string',
181
- description: 'Work item ID (e.g., "REQ-001", "BUG-002")',
182
- },
183
- project_id: {
184
- type: 'number',
185
- description: 'Project ID (uses active project if not provided)',
186
- },
187
- status: {
188
- type: 'string',
189
- enum: ['backlog', 'in_progress', 'completed', 'skipped'],
190
- description: 'Work item status',
191
- },
192
- priority: {
193
- type: 'string',
194
- enum: ['critical', 'high', 'medium', 'low'],
195
- description: 'Priority',
196
- },
197
- guided_step: {
198
- type: 'string',
199
- enum: ['plan', 'implement', 'test', 'commit', 'review'],
200
- description: 'Current step in guided mode workflow',
201
- },
202
- title: {
203
- type: 'string',
204
- description: 'Updated title',
205
- },
206
- description: {
207
- type: 'string',
208
- description: 'Updated description',
209
- },
210
- commit_hash: {
211
- type: 'string',
212
- description: 'Git commit hash when completing the item',
213
- },
214
- },
215
- required: ['item_id'],
216
- },
217
- execute: async (input) => {
218
- await Promise.resolve(); // Required for async type signature
219
- try {
220
- const projectId = input.project_id || getActiveProject()?.id;
221
- if (!projectId) {
222
- return createErrorResult('No project specified and no active project. Use project_get or /projects to select a project first.');
223
- }
224
- // Find the work item by item_id
225
- const existingItem = workItemRepository.getByItemId(projectId, input.item_id);
226
- if (!existingItem) {
227
- return createErrorResult(`Work item "${input.item_id}" not found in current project`);
228
- }
229
- const updateInput = {};
230
- if (input.status)
231
- updateInput.status = input.status;
232
- if (input.priority)
233
- updateInput.priority = input.priority;
234
- if (input.guided_step !== undefined)
235
- updateInput.guided_step = input.guided_step;
236
- if (input.title)
237
- updateInput.title = input.title;
238
- if (input.description !== undefined)
239
- updateInput.description = input.description;
240
- if (input.commit_hash)
241
- updateInput.commit_hash = input.commit_hash;
242
- const item = workItemRepository.update(existingItem.id, updateInput);
243
- if (!item) {
244
- return createErrorResult(`Failed to update work item "${input.item_id}"`);
245
- }
246
- return createSuccessResult({
247
- success: true,
248
- message: `Work item ${item.itemId} updated`,
249
- item: {
250
- id: item.id,
251
- itemId: item.itemId,
252
- type: item.type,
253
- status: item.status,
254
- priority: item.priority,
255
- guidedStep: item.guidedStep,
256
- title: item.title,
257
- completedAt: item.completedAt?.toISOString(),
258
- commitHash: item.commitHash,
259
- },
260
- });
261
- }
262
- catch (error) {
263
- return createErrorResult(`Failed to update work item: ${error instanceof Error ? error.message : String(error)}`);
264
- }
265
- },
266
- });
267
- /**
268
- * workitem_next - Get the next work item to work on
269
- */
270
- export const workitemNextTool = defineTool({
271
- name: 'workitem_next',
272
- description: 'Get the next work item to work on (highest priority backlog item). Useful for guided mode to pick the next task.',
273
- inputSchema: {
274
- type: 'object',
275
- properties: {
276
- project_id: {
277
- type: 'number',
278
- description: 'Project ID (uses active project if not provided)',
279
- },
280
- type: {
281
- type: 'string',
282
- enum: ['feature', 'bug', 'tech-debt', 'chore'],
283
- description: 'Filter by type (optional)',
284
- },
285
- },
286
- required: [],
287
- },
288
- execute: async (input) => {
289
- await Promise.resolve(); // Required for async type signature
290
- try {
291
- const projectId = input.project_id || getActiveProject()?.id;
292
- if (!projectId) {
293
- return createErrorResult('No project specified and no active project. Use project_get or /projects to select a project first.');
294
- }
295
- const item = workItemRepository.getNext(projectId, input.type);
296
- if (!item) {
297
- return createSuccessResult({
298
- success: true,
299
- item: null,
300
- message: 'No backlog items found. The backlog is empty or all items are completed.',
301
- });
302
- }
303
- return createSuccessResult({
304
- success: true,
305
- item: {
306
- id: item.id,
307
- itemId: item.itemId,
308
- type: item.type,
309
- status: item.status,
310
- priority: item.priority,
311
- title: item.title,
312
- description: item.description,
313
- estimatedEffort: item.estimatedEffort,
314
- },
315
- message: `Next item: ${item.itemId} "${item.title}" (${item.priority} priority)`,
316
- });
317
- }
318
- catch (error) {
319
- return createErrorResult(`Failed to get next work item: ${error instanceof Error ? error.message : String(error)}`);
320
- }
321
- },
322
- });
323
- /**
324
- * workitem_delete - Delete a work item
325
- */
326
- export const workitemDeleteTool = defineTool({
327
- name: 'workitem_delete',
328
- description: 'Delete a work item from the backlog.',
329
- inputSchema: {
330
- type: 'object',
331
- properties: {
332
- item_id: {
333
- type: 'string',
334
- description: 'Work item ID (e.g., "REQ-001", "BUG-002")',
335
- },
336
- project_id: {
337
- type: 'number',
338
- description: 'Project ID (uses active project if not provided)',
339
- },
340
- },
341
- required: ['item_id'],
342
- },
343
- execute: async (input) => {
344
- await Promise.resolve(); // Required for async type signature
345
- try {
346
- const projectId = input.project_id || getActiveProject()?.id;
347
- if (!projectId) {
348
- return createErrorResult('No project specified and no active project. Use project_get or /projects to select a project first.');
349
- }
350
- // Find the work item by item_id
351
- const existingItem = workItemRepository.getByItemId(projectId, input.item_id);
352
- if (!existingItem) {
353
- return createErrorResult(`Work item "${input.item_id}" not found in current project`);
354
- }
355
- const deleted = workItemRepository.delete(existingItem.id);
356
- if (!deleted) {
357
- return createErrorResult(`Failed to delete work item "${input.item_id}"`);
358
- }
359
- return createSuccessResult({
360
- success: true,
361
- message: `Work item ${input.item_id} deleted`,
362
- });
363
- }
364
- catch (error) {
365
- return createErrorResult(`Failed to delete work item: ${error instanceof Error ? error.message : String(error)}`);
366
- }
367
- },
368
- });
369
- /**
370
- * workitem_status_counts - Get work item counts by status
371
- */
372
- export const workitemStatusCountsTool = defineTool({
373
- name: 'workitem_status_counts',
374
- description: 'Get counts of work items by status for the current project. Useful for showing progress.',
375
- inputSchema: {
376
- type: 'object',
377
- properties: {
378
- project_id: {
379
- type: 'number',
380
- description: 'Project ID (uses active project if not provided)',
381
- },
382
- },
383
- required: [],
384
- },
385
- execute: async (input) => {
386
- await Promise.resolve(); // Required for async type signature
387
- try {
388
- const projectId = input.project_id || getActiveProject()?.id;
389
- if (!projectId) {
390
- return createErrorResult('No project specified and no active project. Use project_get or /projects to select a project first.');
391
- }
392
- const counts = workItemRepository.getStatusCounts(projectId);
393
- const total = counts.backlog + counts.in_progress + counts.completed + counts.skipped;
394
- const progress = total > 0 ? Math.round((counts.completed / total) * 100) : 0;
395
- return createSuccessResult({
396
- success: true,
397
- counts,
398
- total,
399
- progress,
400
- summary: `${String(counts.completed)}/${String(total)} completed (${String(progress)}%)`,
401
- });
402
- }
403
- catch (error) {
404
- return createErrorResult(`Failed to get status counts: ${error instanceof Error ? error.message : String(error)}`);
405
- }
406
- },
407
- });
408
- /**
409
- * workitem_advance_step - Advance to the next guided workflow step
410
- */
411
- export const workitemAdvanceStepTool = defineTool({
412
- name: 'workitem_advance_step',
413
- description: `Advance a work item to the next guided workflow step.
414
- Steps progress in order: ${STEP_ORDER.join(' → ')} → complete.
415
- Use this tool when the criteria for the current step are met.
416
- The agent should explicitly call this to advance - it provides visibility and audit trail.`,
417
- inputSchema: {
418
- type: 'object',
419
- properties: {
420
- item_id: {
421
- type: 'string',
422
- description: 'Work item ID (e.g., "REQ-001", "BUG-002")',
423
- },
424
- reason: {
425
- type: 'string',
426
- description: 'Why the step criteria was met (shown to user for visibility)',
427
- },
428
- force: {
429
- type: 'boolean',
430
- description: 'Skip validation and force advance (e.g., user override after test failures)',
431
- },
432
- project_id: {
433
- type: 'number',
434
- description: 'Project ID (uses active project if not provided)',
435
- },
436
- },
437
- required: ['item_id', 'reason'],
438
- },
439
- execute: async (input) => {
440
- await Promise.resolve(); // Required for async type signature
441
- try {
442
- const projectId = input.project_id || getActiveProject()?.id;
443
- if (!projectId) {
444
- return createErrorResult('No project specified and no active project. Use project_get or /projects to select a project first.');
445
- }
446
- // Find the work item
447
- const item = workItemRepository.getByItemId(projectId, input.item_id);
448
- if (!item) {
449
- return createErrorResult(`Work item "${input.item_id}" not found in current project`);
450
- }
451
- // Check if item is in progress
452
- if (item.status !== 'in_progress') {
453
- return createErrorResult(`Work item "${input.item_id}" is not in progress (status: ${item.status}). ` +
454
- 'Use workitem_update to set status to in_progress first.');
455
- }
456
- // Determine current and next step
457
- const currentStep = item.guidedStep;
458
- const nextStep = getNextStep(currentStep);
459
- // Check for valid transition (unless forced)
460
- if (!input.force && currentStep !== null) {
461
- if (!isValidTransition(currentStep, nextStep)) {
462
- return createErrorResult(`Cannot advance from ${currentStep} to ${nextStep}. ` +
463
- `Valid next step: ${getNextStep(currentStep)}. ` +
464
- 'Use force=true to override.');
465
- }
466
- }
467
- // Handle completion
468
- if (nextStep === 'complete') {
469
- // Mark item as completed
470
- const updatedItem = workItemRepository.update(item.id, {
471
- status: 'completed',
472
- guided_step: null,
473
- });
474
- if (!updatedItem) {
475
- return createErrorResult('Failed to update work item');
476
- }
477
- return createSuccessResult({
478
- success: true,
479
- item: {
480
- id: updatedItem.id,
481
- itemId: updatedItem.itemId,
482
- type: updatedItem.type,
483
- status: updatedItem.status,
484
- priority: updatedItem.priority,
485
- guidedStep: updatedItem.guidedStep,
486
- title: updatedItem.title,
487
- completedAt: updatedItem.completedAt?.toISOString(),
488
- commitHash: updatedItem.commitHash,
489
- },
490
- previous_step: currentStep,
491
- current_step: null,
492
- message: currentStep
493
- ? `✓ ${input.item_id}: ${formatStepDisplay(currentStep)} → COMPLETED`
494
- : `✓ ${input.item_id}: COMPLETED`,
495
- completed: true,
496
- reason: input.reason,
497
- next_action: 'Work item complete! Use workitem_next to pick the next item from backlog.',
498
- });
499
- }
500
- // Advance to next step (we know nextStep is not 'complete' at this point
501
- // because 'complete' case is handled above and returns early)
502
- const nextGuidedStep = nextStep;
503
- const updatedItem = workItemRepository.update(item.id, {
504
- guided_step: nextGuidedStep,
505
- });
506
- if (!updatedItem) {
507
- return createErrorResult('Failed to update work item');
508
- }
509
- // Get hints for next step
510
- const nextCriteria = getStepCriteria(nextGuidedStep);
511
- return createSuccessResult({
512
- success: true,
513
- item: {
514
- id: updatedItem.id,
515
- itemId: updatedItem.itemId,
516
- type: updatedItem.type,
517
- status: updatedItem.status,
518
- priority: updatedItem.priority,
519
- guidedStep: updatedItem.guidedStep,
520
- title: updatedItem.title,
521
- },
522
- previous_step: currentStep,
523
- current_step: nextGuidedStep,
524
- message: currentStep
525
- ? `✓ ${input.item_id}: ${formatStepDisplay(currentStep)} → ${formatStepDisplay(nextGuidedStep)}`
526
- : `✓ ${input.item_id}: Starting ${formatStepDisplay(nextGuidedStep)}`,
527
- completed: false,
528
- reason: input.reason,
529
- next_action: nextCriteria.nextActionHint,
530
- exit_criteria: nextCriteria.exitCriteria,
531
- });
532
- }
533
- catch (error) {
534
- return createErrorResult(`Failed to advance step: ${error instanceof Error ? error.message : String(error)}`);
535
- }
536
- },
537
- });
538
- /**
539
- * All work item tools
540
- */
541
- export const workitemDbTools = [
542
- workitemQueryTool,
543
- workitemAddTool,
544
- workitemUpdateTool,
545
- workitemNextTool,
546
- workitemDeleteTool,
547
- workitemStatusCountsTool,
548
- workitemAdvanceStepTool,
549
- ];
@@ -1,43 +0,0 @@
1
- /**
2
- * Agents Overlay V2
3
- *
4
- * Modal overlay for viewing and managing agent configurations.
5
- * Uses TabbedListOverlayV2 for consistent navigation patterns.
6
- *
7
- * Features:
8
- * - Built-in tab: Lists predefined agent types with detail view
9
- * - Custom tab: Lists user-defined agents with detail/edit + create new
10
- * - Wizard mode: Step-by-step agent creation
11
- */
12
- import { TabbedListOverlayV2, BaseScreen } from './base/index.js';
13
- import type { AgentLocation } from '../agents/types.js';
14
- export interface AgentsOverlayV2Result {
15
- /** Agent that was created (if any) */
16
- created?: string;
17
- /** Agent that was edited (if any) */
18
- edited?: string;
19
- /** Agent that was deleted (if any) */
20
- deleted?: string;
21
- }
22
- interface AgentItem {
23
- name: string;
24
- model: string;
25
- description: string;
26
- location?: AgentLocation;
27
- systemPrompt?: string;
28
- filePath?: string;
29
- isBuiltin: boolean;
30
- isCreateNew?: boolean;
31
- }
32
- /**
33
- * Agents overlay using TabbedListOverlayV2.
34
- * Displays agents in a searchable, tabbed list.
35
- */
36
- export declare class AgentsOverlayV2 extends TabbedListOverlayV2<AgentItem, AgentsOverlayV2Result> {
37
- readonly type: "inline";
38
- readonly id = "agents-overlay-v2";
39
- private readonly registry;
40
- constructor();
41
- protected createDetailScreen(item: AgentItem): BaseScreen | null;
42
- }
43
- export {};