@proletariat/cli 0.3.92 → 0.3.94

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 (588) hide show
  1. package/dist/commands/action/create.d.ts +1 -1
  2. package/dist/commands/action/delete.d.ts +1 -1
  3. package/dist/commands/action/index.d.ts +1 -1
  4. package/dist/commands/action/list.d.ts +1 -1
  5. package/dist/commands/action/run.d.ts +1 -1
  6. package/dist/commands/action/show.d.ts +1 -1
  7. package/dist/commands/action/update.d.ts +1 -1
  8. package/dist/commands/agent/auth.js +2 -6
  9. package/dist/commands/agent/auth.js.map +1 -1
  10. package/dist/commands/agent/cleanup.d.ts +1 -1
  11. package/dist/commands/agent/cleanup.js +5 -5
  12. package/dist/commands/agent/cleanup.js.map +1 -1
  13. package/dist/commands/{project/list.d.ts → agent/gc.d.ts} +4 -3
  14. package/dist/commands/agent/gc.js +75 -0
  15. package/dist/commands/agent/gc.js.map +1 -0
  16. package/dist/commands/agent/index.d.ts +1 -1
  17. package/dist/commands/agent/list.d.ts +1 -1
  18. package/dist/commands/agent/list.js +2 -2
  19. package/dist/commands/agent/list.js.map +1 -1
  20. package/dist/commands/agent/login.d.ts +1 -1
  21. package/dist/commands/agent/rebuild.d.ts +1 -1
  22. package/dist/commands/agent/remove.d.ts +1 -1
  23. package/dist/commands/agent/restart.d.ts +1 -1
  24. package/dist/commands/agent/shell.d.ts +1 -1
  25. package/dist/commands/agent/shell.js +3 -5
  26. package/dist/commands/agent/shell.js.map +1 -1
  27. package/dist/commands/agent/staff/index.d.ts +1 -1
  28. package/dist/commands/agent/staff/remove.d.ts +1 -1
  29. package/dist/commands/agent/status.d.ts +1 -1
  30. package/dist/commands/agent/visit.d.ts +1 -1
  31. package/dist/commands/asana/import.d.ts +1 -1
  32. package/dist/commands/branch/create.d.ts +1 -1
  33. package/dist/commands/branch/create.js +2 -2
  34. package/dist/commands/branch/create.js.map +1 -1
  35. package/dist/commands/branch/index.d.ts +1 -1
  36. package/dist/commands/branch/list.d.ts +1 -1
  37. package/dist/commands/branch/validate.d.ts +1 -1
  38. package/dist/commands/branch/where.d.ts +1 -1
  39. package/dist/commands/claude/index.js +2 -2
  40. package/dist/commands/claude/index.js.map +1 -1
  41. package/dist/commands/claude/open.js +11 -5
  42. package/dist/commands/claude/open.js.map +1 -1
  43. package/dist/commands/config/index.js +88 -7
  44. package/dist/commands/config/index.js.map +1 -1
  45. package/dist/commands/db/repair.js +2 -2
  46. package/dist/commands/db/repair.js.map +1 -1
  47. package/dist/commands/diet.d.ts +1 -1
  48. package/dist/commands/docker/clean.js +2 -4
  49. package/dist/commands/docker/clean.js.map +1 -1
  50. package/dist/commands/docker/index.js +4 -4
  51. package/dist/commands/docker/index.js.map +1 -1
  52. package/dist/commands/docker/list.js +2 -4
  53. package/dist/commands/docker/list.js.map +1 -1
  54. package/dist/commands/docker/logs.js +2 -4
  55. package/dist/commands/docker/logs.js.map +1 -1
  56. package/dist/commands/docker/rebuild-cache.d.ts +12 -0
  57. package/dist/commands/docker/rebuild-cache.js +144 -0
  58. package/dist/commands/docker/rebuild-cache.js.map +1 -0
  59. package/dist/commands/docker/restart.js +2 -4
  60. package/dist/commands/docker/restart.js.map +1 -1
  61. package/dist/commands/docker/shell.js +2 -4
  62. package/dist/commands/docker/shell.js.map +1 -1
  63. package/dist/commands/docker/start.js +2 -4
  64. package/dist/commands/docker/start.js.map +1 -1
  65. package/dist/commands/docker/stop.js +2 -4
  66. package/dist/commands/docker/stop.js.map +1 -1
  67. package/dist/commands/docker/sync.js +2 -4
  68. package/dist/commands/docker/sync.js.map +1 -1
  69. package/dist/commands/execution/config.d.ts +1 -1
  70. package/dist/commands/execution/config.js +39 -0
  71. package/dist/commands/execution/config.js.map +1 -1
  72. package/dist/commands/execution/index.d.ts +1 -1
  73. package/dist/commands/execution/list.d.ts +1 -1
  74. package/dist/commands/execution/list.js +2 -4
  75. package/dist/commands/execution/list.js.map +1 -1
  76. package/dist/commands/execution/logs.d.ts +1 -1
  77. package/dist/commands/execution/logs.js +2 -4
  78. package/dist/commands/execution/logs.js.map +1 -1
  79. package/dist/commands/execution/stop.d.ts +1 -1
  80. package/dist/commands/execution/stop.js +2 -4
  81. package/dist/commands/execution/stop.js.map +1 -1
  82. package/dist/commands/execution/view.d.ts +1 -1
  83. package/dist/commands/execution/view.js +2 -4
  84. package/dist/commands/execution/view.js.map +1 -1
  85. package/dist/commands/gh/login.js +2 -1
  86. package/dist/commands/gh/login.js.map +1 -1
  87. package/dist/commands/gh/status.js +18 -2
  88. package/dist/commands/gh/status.js.map +1 -1
  89. package/dist/commands/{ticket/bulk.d.ts → hook/export.d.ts} +8 -5
  90. package/dist/commands/hook/export.js +52 -0
  91. package/dist/commands/hook/export.js.map +1 -0
  92. package/dist/commands/hook/fire.d.ts +29 -0
  93. package/dist/commands/hook/fire.js +139 -0
  94. package/dist/commands/hook/fire.js.map +1 -0
  95. package/dist/commands/{project → hook}/index.d.ts +5 -5
  96. package/dist/commands/hook/index.js +53 -0
  97. package/dist/commands/hook/index.js.map +1 -0
  98. package/dist/commands/{board/index.d.ts → hook/list.d.ts} +10 -12
  99. package/dist/commands/hook/list.js +136 -0
  100. package/dist/commands/hook/list.js.map +1 -0
  101. package/dist/commands/{project/archive.d.ts → hook/preset.d.ts} +11 -7
  102. package/dist/commands/hook/preset.js +76 -0
  103. package/dist/commands/hook/preset.js.map +1 -0
  104. package/dist/commands/linear/auth.d.ts +1 -1
  105. package/dist/commands/linear/connect.d.ts +1 -1
  106. package/dist/commands/linear/import.d.ts +1 -1
  107. package/dist/commands/linear/status.d.ts +1 -1
  108. package/dist/commands/linear/sync.d.ts +1 -1
  109. package/dist/commands/mcp-server.d.ts +8 -2
  110. package/dist/commands/mcp-server.js +17 -31
  111. package/dist/commands/mcp-server.js.map +1 -1
  112. package/dist/commands/monday/connect.d.ts +1 -1
  113. package/dist/commands/monday/sync.d.ts +1 -1
  114. package/dist/commands/orchestrate/index.d.ts +35 -0
  115. package/dist/commands/orchestrate/index.js +267 -0
  116. package/dist/commands/orchestrate/index.js.map +1 -0
  117. package/dist/commands/orchestrator/attach.js +2 -3
  118. package/dist/commands/orchestrator/attach.js.map +1 -1
  119. package/dist/commands/orchestrator/index.d.ts +1 -1
  120. package/dist/commands/orchestrator/start.d.ts +3 -3
  121. package/dist/commands/orchestrator/start.js +32 -43
  122. package/dist/commands/orchestrator/start.js.map +1 -1
  123. package/dist/commands/orchestrator/stop.js +21 -26
  124. package/dist/commands/orchestrator/stop.js.map +1 -1
  125. package/dist/commands/pr/checks.d.ts +1 -1
  126. package/dist/commands/pr/close.d.ts +1 -1
  127. package/dist/commands/pr/create.d.ts +1 -1
  128. package/dist/commands/pr/index.d.ts +1 -1
  129. package/dist/commands/pr/link.d.ts +1 -1
  130. package/dist/commands/pr/list.d.ts +1 -1
  131. package/dist/commands/pr/merge.d.ts +1 -1
  132. package/dist/commands/pr/status.d.ts +1 -1
  133. package/dist/commands/pull.d.ts +1 -1
  134. package/dist/commands/qa/index.js +3 -3
  135. package/dist/commands/qa/index.js.map +1 -1
  136. package/dist/commands/repo/add.d.ts +1 -1
  137. package/dist/commands/repo/create.d.ts +1 -1
  138. package/dist/commands/repo/fix-remotes.d.ts +1 -1
  139. package/dist/commands/repo/index.d.ts +1 -1
  140. package/dist/commands/repo/list.d.ts +1 -1
  141. package/dist/commands/repo/remove.d.ts +1 -1
  142. package/dist/commands/repo/view.d.ts +1 -1
  143. package/dist/commands/session/attach.d.ts +1 -1
  144. package/dist/commands/session/attach.js +5 -7
  145. package/dist/commands/session/attach.js.map +1 -1
  146. package/dist/commands/session/cleanup.d.ts +1 -1
  147. package/dist/commands/session/cleanup.js +2 -4
  148. package/dist/commands/session/cleanup.js.map +1 -1
  149. package/dist/commands/session/create.d.ts +1 -1
  150. package/dist/commands/session/exec.d.ts +1 -1
  151. package/dist/commands/session/exec.js +2 -3
  152. package/dist/commands/session/exec.js.map +1 -1
  153. package/dist/commands/session/health.d.ts +1 -1
  154. package/dist/commands/session/health.js +2 -4
  155. package/dist/commands/session/health.js.map +1 -1
  156. package/dist/commands/session/index.d.ts +1 -1
  157. package/dist/commands/session/inspect.d.ts +1 -1
  158. package/dist/commands/session/inspect.js +2 -3
  159. package/dist/commands/session/inspect.js.map +1 -1
  160. package/dist/commands/session/list.d.ts +1 -1
  161. package/dist/commands/session/list.js +2 -4
  162. package/dist/commands/session/list.js.map +1 -1
  163. package/dist/commands/session/peek.d.ts +1 -1
  164. package/dist/commands/session/peek.js +3 -6
  165. package/dist/commands/session/peek.js.map +1 -1
  166. package/dist/commands/session/poke.js +2 -4
  167. package/dist/commands/session/poke.js.map +1 -1
  168. package/dist/commands/session/prune.d.ts +1 -1
  169. package/dist/commands/session/prune.js +2 -4
  170. package/dist/commands/session/prune.js.map +1 -1
  171. package/dist/commands/session/report.d.ts +1 -1
  172. package/dist/commands/session/report.js +2 -4
  173. package/dist/commands/session/report.js.map +1 -1
  174. package/dist/commands/session/restart.d.ts +1 -1
  175. package/dist/commands/session/restart.js +2 -3
  176. package/dist/commands/session/restart.js.map +1 -1
  177. package/dist/commands/shortcut/connect.d.ts +1 -1
  178. package/dist/commands/support/logs.d.ts +1 -1
  179. package/dist/commands/ticket/create.d.ts +4 -5
  180. package/dist/commands/ticket/create.js +69 -88
  181. package/dist/commands/ticket/create.js.map +1 -1
  182. package/dist/commands/ticket/delete.d.ts +1 -1
  183. package/dist/commands/ticket/edit.d.ts +1 -1
  184. package/dist/commands/ticket/edit.js +22 -14
  185. package/dist/commands/ticket/edit.js.map +1 -1
  186. package/dist/commands/ticket/index.d.ts +1 -1
  187. package/dist/commands/ticket/index.js +6 -36
  188. package/dist/commands/ticket/index.js.map +1 -1
  189. package/dist/commands/ticket/list.d.ts +1 -1
  190. package/dist/commands/ticket/move.d.ts +1 -1
  191. package/dist/commands/ticket/show.d.ts +8 -7
  192. package/dist/commands/ticket/show.js +101 -8
  193. package/dist/commands/ticket/show.js.map +1 -1
  194. package/dist/commands/ticket/update.d.ts +1 -1
  195. package/dist/commands/ticket/update.js +31 -14
  196. package/dist/commands/ticket/update.js.map +1 -1
  197. package/dist/commands/trello/configure.d.ts +1 -1
  198. package/dist/commands/trello/import.d.ts +1 -1
  199. package/dist/commands/trello/sync.d.ts +1 -1
  200. package/dist/commands/work/asana.d.ts +1 -1
  201. package/dist/commands/work/complete.d.ts +1 -1
  202. package/dist/commands/work/complete.js +2 -3
  203. package/dist/commands/work/complete.js.map +1 -1
  204. package/dist/commands/work/groom.d.ts +1 -1
  205. package/dist/commands/work/hooks/add.d.ts +1 -1
  206. package/dist/commands/work/hooks/add.js +2 -4
  207. package/dist/commands/work/hooks/add.js.map +1 -1
  208. package/dist/commands/work/hooks/index.d.ts +1 -1
  209. package/dist/commands/work/hooks/list.d.ts +1 -1
  210. package/dist/commands/work/hooks/list.js +2 -4
  211. package/dist/commands/work/hooks/list.js.map +1 -1
  212. package/dist/commands/work/hooks/remove.d.ts +1 -1
  213. package/dist/commands/work/hooks/remove.js +2 -4
  214. package/dist/commands/work/hooks/remove.js.map +1 -1
  215. package/dist/commands/work/hooks/toggle.d.ts +1 -1
  216. package/dist/commands/work/hooks/toggle.js +2 -4
  217. package/dist/commands/work/hooks/toggle.js.map +1 -1
  218. package/dist/commands/work/implement.d.ts +1 -1
  219. package/dist/commands/work/index.d.ts +1 -1
  220. package/dist/commands/work/index.js +4 -0
  221. package/dist/commands/work/index.js.map +1 -1
  222. package/dist/commands/work/jira.d.ts +1 -1
  223. package/dist/commands/work/linear.d.ts +1 -1
  224. package/dist/commands/work/peek.d.ts +1 -1
  225. package/dist/commands/work/ready.d.ts +1 -1
  226. package/dist/commands/work/ready.js +2 -3
  227. package/dist/commands/work/ready.js.map +1 -1
  228. package/dist/commands/work/rebase.d.ts +33 -0
  229. package/dist/commands/work/rebase.js +394 -0
  230. package/dist/commands/work/rebase.js.map +1 -0
  231. package/dist/commands/work/resolve.d.ts +1 -1
  232. package/dist/commands/work/review.d.ts +1 -1
  233. package/dist/commands/work/ship.d.ts +2 -1
  234. package/dist/commands/work/ship.js +49 -4
  235. package/dist/commands/work/ship.js.map +1 -1
  236. package/dist/commands/work/shortcut.d.ts +1 -1
  237. package/dist/commands/work/source/set.d.ts +1 -1
  238. package/dist/commands/work/source.d.ts +1 -1
  239. package/dist/commands/work/spawn.d.ts +1 -1
  240. package/dist/commands/work/spawn.js +2 -4
  241. package/dist/commands/work/spawn.js.map +1 -1
  242. package/dist/commands/work/start.d.ts +8 -1
  243. package/dist/commands/work/start.js +190 -22
  244. package/dist/commands/work/start.js.map +1 -1
  245. package/dist/commands/work/status.d.ts +1 -1
  246. package/dist/commands/work/stop.d.ts +1 -1
  247. package/dist/commands/work/stop.js +2 -4
  248. package/dist/commands/work/stop.js.map +1 -1
  249. package/dist/commands/work/watch.d.ts +1 -1
  250. package/dist/commands/work/watch.js +2 -4
  251. package/dist/commands/work/watch.js.map +1 -1
  252. package/dist/hooks/init.js +2 -2
  253. package/dist/hooks/init.js.map +1 -1
  254. package/dist/lib/agents/commands.d.ts +9 -3
  255. package/dist/lib/agents/commands.js +103 -88
  256. package/dist/lib/agents/commands.js.map +1 -1
  257. package/dist/lib/asana/config.js +13 -7
  258. package/dist/lib/asana/config.js.map +1 -1
  259. package/dist/lib/clickup/client.d.ts +92 -0
  260. package/dist/lib/clickup/client.js +150 -0
  261. package/dist/lib/clickup/client.js.map +1 -0
  262. package/dist/lib/clickup/config.d.ts +41 -0
  263. package/dist/lib/clickup/config.js +104 -0
  264. package/dist/lib/clickup/config.js.map +1 -0
  265. package/dist/lib/clickup/index.d.ts +4 -0
  266. package/dist/lib/clickup/index.js +4 -0
  267. package/dist/lib/clickup/index.js.map +1 -0
  268. package/dist/lib/clickup/types.d.ts +104 -0
  269. package/dist/lib/clickup/types.js +34 -0
  270. package/dist/lib/clickup/types.js.map +1 -0
  271. package/dist/lib/dashboard/server.js +1 -1
  272. package/dist/lib/dashboard/server.js.map +1 -1
  273. package/dist/lib/database/agents.d.ts +62 -4
  274. package/dist/lib/database/agents.js +161 -8
  275. package/dist/lib/database/agents.js.map +1 -1
  276. package/dist/lib/database/credential-store.d.ts +64 -0
  277. package/dist/lib/database/credential-store.js +306 -0
  278. package/dist/lib/database/credential-store.js.map +1 -0
  279. package/dist/lib/database/db-safety.js +4 -4
  280. package/dist/lib/database/db-safety.js.map +1 -1
  281. package/dist/lib/database/drizzle-schema.d.ts +2 -2
  282. package/dist/lib/database/drizzle-schema.js +2 -1
  283. package/dist/lib/database/drizzle-schema.js.map +1 -1
  284. package/dist/lib/database/index.d.ts +2 -1
  285. package/dist/lib/database/index.js +3 -1
  286. package/dist/lib/database/index.js.map +1 -1
  287. package/dist/lib/database/migrations/0013_agent_lifecycle_states.d.ts +11 -0
  288. package/dist/lib/database/migrations/0013_agent_lifecycle_states.js +47 -0
  289. package/dist/lib/database/migrations/0013_agent_lifecycle_states.js.map +1 -0
  290. package/dist/lib/database/migrations/0014_agent_work_lifecycle.d.ts +10 -0
  291. package/dist/lib/database/migrations/0014_agent_work_lifecycle.js +31 -0
  292. package/dist/lib/database/migrations/0014_agent_work_lifecycle.js.map +1 -0
  293. package/dist/lib/database/migrations/0015_orchestrate_hooks.d.ts +8 -0
  294. package/dist/lib/database/migrations/0015_orchestrate_hooks.js +35 -0
  295. package/dist/lib/database/migrations/0015_orchestrate_hooks.js.map +1 -0
  296. package/dist/lib/database/migrations/0016_schema_catchup.d.ts +15 -0
  297. package/dist/lib/database/migrations/0016_schema_catchup.js +154 -0
  298. package/dist/lib/database/migrations/0016_schema_catchup.js.map +1 -0
  299. package/dist/lib/database/migrations/index.js +8 -0
  300. package/dist/lib/database/migrations/index.js.map +1 -1
  301. package/dist/lib/database/pmo-bootstrap.d.ts +7 -0
  302. package/dist/lib/database/pmo-bootstrap.js +47 -22
  303. package/dist/lib/database/pmo-bootstrap.js.map +1 -1
  304. package/dist/lib/database/workspace-schema.d.ts +1 -1
  305. package/dist/lib/database/workspace-schema.js +3 -1
  306. package/dist/lib/database/workspace-schema.js.map +1 -1
  307. package/dist/lib/database/workspace.js +4 -0
  308. package/dist/lib/database/workspace.js.map +1 -1
  309. package/dist/lib/events/events.d.ts +28 -0
  310. package/dist/lib/events/index.d.ts +1 -1
  311. package/dist/lib/events/index.js.map +1 -1
  312. package/dist/lib/execution/config.d.ts +2 -0
  313. package/dist/lib/execution/config.js +14 -0
  314. package/dist/lib/execution/config.js.map +1 -1
  315. package/dist/lib/execution/devcontainer.js +51 -0
  316. package/dist/lib/execution/devcontainer.js.map +1 -1
  317. package/dist/lib/execution/runners/devcontainer-tmux.js +1 -1
  318. package/dist/lib/execution/runners/devcontainer-tmux.js.map +1 -1
  319. package/dist/lib/execution/runners/devcontainer.js +9 -1
  320. package/dist/lib/execution/runners/devcontainer.js.map +1 -1
  321. package/dist/lib/execution/runners/docker-credentials.d.ts +8 -0
  322. package/dist/lib/execution/runners/docker-credentials.js +20 -3
  323. package/dist/lib/execution/runners/docker-credentials.js.map +1 -1
  324. package/dist/lib/execution/runners/docker-management.d.ts +54 -0
  325. package/dist/lib/execution/runners/docker-management.js +194 -7
  326. package/dist/lib/execution/runners/docker-management.js.map +1 -1
  327. package/dist/lib/execution/runners/index.d.ts +1 -1
  328. package/dist/lib/execution/runners/index.js +1 -1
  329. package/dist/lib/execution/runners/index.js.map +1 -1
  330. package/dist/lib/execution/runners/shared.d.ts +23 -1
  331. package/dist/lib/execution/runners/shared.js +112 -1
  332. package/dist/lib/execution/runners/shared.js.map +1 -1
  333. package/dist/lib/execution/session-utils.d.ts +4 -0
  334. package/dist/lib/execution/session-utils.js +34 -24
  335. package/dist/lib/execution/session-utils.js.map +1 -1
  336. package/dist/lib/execution/spawner.js +8 -1
  337. package/dist/lib/execution/spawner.js.map +1 -1
  338. package/dist/lib/execution/types.js +1 -1
  339. package/dist/lib/external-issues/types.d.ts +3 -3
  340. package/dist/lib/external-issues/types.js +1 -1
  341. package/dist/lib/external-issues/types.js.map +1 -1
  342. package/dist/lib/jira/config.js +10 -4
  343. package/dist/lib/jira/config.js.map +1 -1
  344. package/dist/lib/linear/client.d.ts +13 -0
  345. package/dist/lib/linear/client.js +37 -0
  346. package/dist/lib/linear/client.js.map +1 -1
  347. package/dist/lib/linear/config.js +13 -8
  348. package/dist/lib/linear/config.js.map +1 -1
  349. package/dist/lib/mcp/generator.d.ts +26 -0
  350. package/dist/lib/mcp/generator.js +219 -0
  351. package/dist/lib/mcp/generator.js.map +1 -0
  352. package/dist/lib/mcp/index.d.ts +1 -0
  353. package/dist/lib/mcp/index.js +1 -0
  354. package/dist/lib/mcp/index.js.map +1 -1
  355. package/dist/lib/mcp/tools/index.d.ts +0 -11
  356. package/dist/lib/mcp/tools/index.js +0 -11
  357. package/dist/lib/mcp/tools/index.js.map +1 -1
  358. package/dist/lib/mcp/tools/overrides/index.d.ts +23 -0
  359. package/dist/lib/mcp/tools/overrides/index.js +30 -0
  360. package/dist/lib/mcp/tools/overrides/index.js.map +1 -0
  361. package/dist/lib/mcp/tools/overrides/tmux.d.ts +11 -0
  362. package/dist/lib/mcp/tools/overrides/tmux.js +184 -0
  363. package/dist/lib/mcp/tools/overrides/tmux.js.map +1 -0
  364. package/dist/lib/mcp/tools/overrides/work-start.d.ts +12 -0
  365. package/dist/lib/mcp/tools/overrides/work-start.js +108 -0
  366. package/dist/lib/mcp/tools/overrides/work-start.js.map +1 -0
  367. package/dist/lib/mcp/tools/ticket.js +10 -48
  368. package/dist/lib/mcp/tools/ticket.js.map +1 -1
  369. package/dist/lib/monday/config.js +11 -5
  370. package/dist/lib/monday/config.js.map +1 -1
  371. package/dist/lib/orchestrate/actions.d.ts +20 -0
  372. package/dist/lib/orchestrate/actions.js +194 -0
  373. package/dist/lib/orchestrate/actions.js.map +1 -0
  374. package/dist/lib/orchestrate/config-loader.d.ts +31 -0
  375. package/dist/lib/orchestrate/config-loader.js +201 -0
  376. package/dist/lib/orchestrate/config-loader.js.map +1 -0
  377. package/dist/lib/orchestrate/engine.d.ts +94 -0
  378. package/dist/lib/orchestrate/engine.js +290 -0
  379. package/dist/lib/orchestrate/engine.js.map +1 -0
  380. package/dist/lib/orchestrate/index.d.ts +16 -0
  381. package/dist/lib/orchestrate/index.js +14 -0
  382. package/dist/lib/orchestrate/index.js.map +1 -0
  383. package/dist/lib/orchestrate/poller.d.ts +58 -0
  384. package/dist/lib/orchestrate/poller.js +282 -0
  385. package/dist/lib/orchestrate/poller.js.map +1 -0
  386. package/dist/lib/orchestrate/presets.d.ts +27 -0
  387. package/dist/lib/orchestrate/presets.js +65 -0
  388. package/dist/lib/orchestrate/presets.js.map +1 -0
  389. package/dist/lib/orchestrate/types.d.ts +93 -0
  390. package/dist/lib/orchestrate/types.js +46 -0
  391. package/dist/lib/orchestrate/types.js.map +1 -0
  392. package/dist/lib/pmo/base-command.d.ts +20 -152
  393. package/dist/lib/pmo/base-command.js +32 -198
  394. package/dist/lib/pmo/base-command.js.map +1 -1
  395. package/dist/lib/pmo/index.d.ts +1 -0
  396. package/dist/lib/pmo/index.js +3 -0
  397. package/dist/lib/pmo/index.js.map +1 -1
  398. package/dist/lib/pmo/storage/base.d.ts +0 -18
  399. package/dist/lib/pmo/storage/base.js +0 -231
  400. package/dist/lib/pmo/storage/base.js.map +1 -1
  401. package/dist/lib/pmo/storage/index.d.ts +1 -76
  402. package/dist/lib/pmo/storage/index.js +1 -215
  403. package/dist/lib/pmo/storage/index.js.map +1 -1
  404. package/dist/lib/pmo/storage/specs.js.map +1 -1
  405. package/dist/lib/pmo/storage/tickets.d.ts +2 -2
  406. package/dist/lib/pmo/storage/tickets.js +4 -34
  407. package/dist/lib/pmo/storage/tickets.js.map +1 -1
  408. package/dist/lib/pmo/types.d.ts +0 -37
  409. package/dist/lib/pr/index.d.ts +28 -0
  410. package/dist/lib/pr/index.js +100 -0
  411. package/dist/lib/pr/index.js.map +1 -1
  412. package/dist/lib/providers/clickup-provider.d.ts +28 -0
  413. package/dist/lib/providers/clickup-provider.js +353 -0
  414. package/dist/lib/providers/clickup-provider.js.map +1 -0
  415. package/dist/lib/providers/event-emitting-provider.d.ts +4 -2
  416. package/dist/lib/providers/event-emitting-provider.js +12 -0
  417. package/dist/lib/providers/event-emitting-provider.js.map +1 -1
  418. package/dist/lib/providers/index.d.ts +1 -1
  419. package/dist/lib/providers/index.js.map +1 -1
  420. package/dist/lib/providers/linear-provider.d.ts +4 -2
  421. package/dist/lib/providers/linear-provider.js +106 -0
  422. package/dist/lib/providers/linear-provider.js.map +1 -1
  423. package/dist/lib/providers/pmo-provider.d.ts +4 -2
  424. package/dist/lib/providers/pmo-provider.js +26 -0
  425. package/dist/lib/providers/pmo-provider.js.map +1 -1
  426. package/dist/lib/providers/resolver.d.ts +1 -1
  427. package/dist/lib/providers/resolver.js +16 -5
  428. package/dist/lib/providers/resolver.js.map +1 -1
  429. package/dist/lib/providers/types.d.ts +31 -2
  430. package/dist/lib/runners/claude-code-runner.js +13 -4
  431. package/dist/lib/runners/claude-code-runner.js.map +1 -1
  432. package/dist/lib/runtime-command.d.ts +219 -0
  433. package/dist/lib/runtime-command.js +320 -0
  434. package/dist/lib/runtime-command.js.map +1 -0
  435. package/dist/lib/shortcut/config.js +13 -7
  436. package/dist/lib/shortcut/config.js.map +1 -1
  437. package/dist/lib/telemetry/analytics.d.ts +1 -1
  438. package/dist/lib/telemetry/analytics.js +16 -8
  439. package/dist/lib/telemetry/analytics.js.map +1 -1
  440. package/dist/lib/trello/config.js +17 -12
  441. package/dist/lib/trello/config.js.map +1 -1
  442. package/dist/lib/update-check.d.ts +8 -3
  443. package/dist/lib/update-check.js +16 -5
  444. package/dist/lib/update-check.js.map +1 -1
  445. package/dist/lib/work-lifecycle/events.d.ts +1 -1
  446. package/dist/lib/work-lifecycle/hooks/types.d.ts +3 -2
  447. package/dist/lib/work-lifecycle/hooks/types.js +12 -0
  448. package/dist/lib/work-lifecycle/hooks/types.js.map +1 -1
  449. package/dist/lib/work-source/config.d.ts +1 -1
  450. package/dist/lib/work-source/config.js +11 -1
  451. package/dist/lib/work-source/config.js.map +1 -1
  452. package/dist/lib/work-source/provider-sources.js +6 -1
  453. package/dist/lib/work-source/provider-sources.js.map +1 -1
  454. package/oclif.manifest.json +2682 -3839
  455. package/package.json +1 -1
  456. package/dist/commands/board/index.js +0 -263
  457. package/dist/commands/board/index.js.map +0 -1
  458. package/dist/commands/board/view.d.ts +0 -15
  459. package/dist/commands/board/view.js +0 -137
  460. package/dist/commands/board/view.js.map +0 -1
  461. package/dist/commands/board/watch.d.ts +0 -15
  462. package/dist/commands/board/watch.js +0 -59
  463. package/dist/commands/board/watch.js.map +0 -1
  464. package/dist/commands/dashboard/index.d.ts +0 -14
  465. package/dist/commands/dashboard/index.js +0 -117
  466. package/dist/commands/dashboard/index.js.map +0 -1
  467. package/dist/commands/dashboard.d.ts +0 -38
  468. package/dist/commands/dashboard.js +0 -353
  469. package/dist/commands/dashboard.js.map +0 -1
  470. package/dist/commands/pmo/init.d.ts +0 -28
  471. package/dist/commands/pmo/init.js +0 -410
  472. package/dist/commands/pmo/init.js.map +0 -1
  473. package/dist/commands/project/archive.js +0 -79
  474. package/dist/commands/project/archive.js.map +0 -1
  475. package/dist/commands/project/create.d.ts +0 -24
  476. package/dist/commands/project/create.js +0 -191
  477. package/dist/commands/project/create.js.map +0 -1
  478. package/dist/commands/project/delete.d.ts +0 -18
  479. package/dist/commands/project/delete.js +0 -115
  480. package/dist/commands/project/delete.js.map +0 -1
  481. package/dist/commands/project/index.js +0 -60
  482. package/dist/commands/project/index.js.map +0 -1
  483. package/dist/commands/project/list.js +0 -115
  484. package/dist/commands/project/list.js.map +0 -1
  485. package/dist/commands/project/spec.d.ts +0 -19
  486. package/dist/commands/project/spec.js +0 -218
  487. package/dist/commands/project/spec.js.map +0 -1
  488. package/dist/commands/project/unarchive.d.ts +0 -17
  489. package/dist/commands/project/unarchive.js +0 -55
  490. package/dist/commands/project/unarchive.js.map +0 -1
  491. package/dist/commands/project/update.d.ts +0 -19
  492. package/dist/commands/project/update.js +0 -161
  493. package/dist/commands/project/update.js.map +0 -1
  494. package/dist/commands/project/view.d.ts +0 -17
  495. package/dist/commands/project/view.js +0 -107
  496. package/dist/commands/project/view.js.map +0 -1
  497. package/dist/commands/ticket/bulk.js +0 -141
  498. package/dist/commands/ticket/bulk.js.map +0 -1
  499. package/dist/commands/ticket/cancel.d.ts +0 -17
  500. package/dist/commands/ticket/cancel.js +0 -206
  501. package/dist/commands/ticket/cancel.js.map +0 -1
  502. package/dist/commands/ticket/category.d.ts +0 -15
  503. package/dist/commands/ticket/category.js +0 -64
  504. package/dist/commands/ticket/category.js.map +0 -1
  505. package/dist/commands/ticket/complete.d.ts +0 -17
  506. package/dist/commands/ticket/complete.js +0 -178
  507. package/dist/commands/ticket/complete.js.map +0 -1
  508. package/dist/commands/ticket/epic.d.ts +0 -21
  509. package/dist/commands/ticket/epic.js +0 -306
  510. package/dist/commands/ticket/epic.js.map +0 -1
  511. package/dist/commands/ticket/link/block.d.ts +0 -15
  512. package/dist/commands/ticket/link/block.js +0 -96
  513. package/dist/commands/ticket/link/block.js.map +0 -1
  514. package/dist/commands/ticket/link/duplicates.d.ts +0 -15
  515. package/dist/commands/ticket/link/duplicates.js +0 -96
  516. package/dist/commands/ticket/link/duplicates.js.map +0 -1
  517. package/dist/commands/ticket/link/index.d.ts +0 -14
  518. package/dist/commands/ticket/link/index.js +0 -99
  519. package/dist/commands/ticket/link/index.js.map +0 -1
  520. package/dist/commands/ticket/link/relates.d.ts +0 -15
  521. package/dist/commands/ticket/link/relates.js +0 -96
  522. package/dist/commands/ticket/link/relates.js.map +0 -1
  523. package/dist/commands/ticket/project.d.ts +0 -19
  524. package/dist/commands/ticket/project.js +0 -257
  525. package/dist/commands/ticket/project.js.map +0 -1
  526. package/dist/commands/ticket/reassign.d.ts +0 -20
  527. package/dist/commands/ticket/reassign.js +0 -311
  528. package/dist/commands/ticket/reassign.js.map +0 -1
  529. package/dist/commands/ticket/resolve.d.ts +0 -68
  530. package/dist/commands/ticket/resolve.js +0 -296
  531. package/dist/commands/ticket/resolve.js.map +0 -1
  532. package/dist/commands/ticket/spec.d.ts +0 -19
  533. package/dist/commands/ticket/spec.js +0 -260
  534. package/dist/commands/ticket/spec.js.map +0 -1
  535. package/dist/commands/ticket/status.d.ts +0 -14
  536. package/dist/commands/ticket/status.js +0 -84
  537. package/dist/commands/ticket/status.js.map +0 -1
  538. package/dist/commands/ticket/view.d.ts +0 -14
  539. package/dist/commands/ticket/view.js +0 -109
  540. package/dist/commands/ticket/view.js.map +0 -1
  541. package/dist/lib/mcp/tools/board.d.ts +0 -6
  542. package/dist/lib/mcp/tools/board.js +0 -190
  543. package/dist/lib/mcp/tools/board.js.map +0 -1
  544. package/dist/lib/mcp/tools/category.d.ts +0 -6
  545. package/dist/lib/mcp/tools/category.js +0 -85
  546. package/dist/lib/mcp/tools/category.js.map +0 -1
  547. package/dist/lib/mcp/tools/epic.d.ts +0 -6
  548. package/dist/lib/mcp/tools/epic.js +0 -184
  549. package/dist/lib/mcp/tools/epic.js.map +0 -1
  550. package/dist/lib/mcp/tools/label.d.ts +0 -6
  551. package/dist/lib/mcp/tools/label.js +0 -339
  552. package/dist/lib/mcp/tools/label.js.map +0 -1
  553. package/dist/lib/mcp/tools/phase.d.ts +0 -6
  554. package/dist/lib/mcp/tools/phase.js +0 -132
  555. package/dist/lib/mcp/tools/phase.js.map +0 -1
  556. package/dist/lib/mcp/tools/project.d.ts +0 -6
  557. package/dist/lib/mcp/tools/project.js +0 -197
  558. package/dist/lib/mcp/tools/project.js.map +0 -1
  559. package/dist/lib/mcp/tools/roadmap.d.ts +0 -6
  560. package/dist/lib/mcp/tools/roadmap.js +0 -124
  561. package/dist/lib/mcp/tools/roadmap.js.map +0 -1
  562. package/dist/lib/mcp/tools/status.d.ts +0 -6
  563. package/dist/lib/mcp/tools/status.js +0 -110
  564. package/dist/lib/mcp/tools/status.js.map +0 -1
  565. package/dist/lib/mcp/tools/template.d.ts +0 -6
  566. package/dist/lib/mcp/tools/template.js +0 -108
  567. package/dist/lib/mcp/tools/template.js.map +0 -1
  568. package/dist/lib/mcp/tools/view.d.ts +0 -6
  569. package/dist/lib/mcp/tools/view.js +0 -77
  570. package/dist/lib/mcp/tools/view.js.map +0 -1
  571. package/dist/lib/mcp/tools/workflow.d.ts +0 -6
  572. package/dist/lib/mcp/tools/workflow.js +0 -96
  573. package/dist/lib/mcp/tools/workflow.js.map +0 -1
  574. package/dist/lib/pmo/storage/categories.d.ts +0 -50
  575. package/dist/lib/pmo/storage/categories.js +0 -206
  576. package/dist/lib/pmo/storage/categories.js.map +0 -1
  577. package/dist/lib/pmo/storage/labels.d.ts +0 -55
  578. package/dist/lib/pmo/storage/labels.js +0 -347
  579. package/dist/lib/pmo/storage/labels.js.map +0 -1
  580. package/dist/lib/pmo/storage/phases.d.ts +0 -65
  581. package/dist/lib/pmo/storage/phases.js +0 -393
  582. package/dist/lib/pmo/storage/phases.js.map +0 -1
  583. package/dist/lib/pmo/storage/roadmaps.d.ts +0 -64
  584. package/dist/lib/pmo/storage/roadmaps.js +0 -373
  585. package/dist/lib/pmo/storage/roadmaps.js.map +0 -1
  586. package/dist/lib/pmo/storage/views.d.ts +0 -57
  587. package/dist/lib/pmo/storage/views.js +0 -456
  588. package/dist/lib/pmo/storage/views.js.map +0 -1
@@ -0,0 +1,219 @@
1
+ /**
2
+ * MCP Tool Auto-Generator
3
+ *
4
+ * Walks oclif command definitions and auto-generates MCP tool registrations.
5
+ * Each generated tool calls `ctx.runCommand('prlt <command> --json')` to invoke
6
+ * the CLI command, routing through the proper provider adapter.
7
+ *
8
+ * Manual overrides in `tools/overrides/` take precedence over generated tools.
9
+ */
10
+ import { z } from 'zod';
11
+ import { strictTool, textResponse, errorResponse } from './helpers.js';
12
+ /**
13
+ * Commands excluded from auto-generation.
14
+ * These are oclif internals, the MCP server itself, or commands
15
+ * that don't make sense as MCP tools.
16
+ */
17
+ const EXCLUDED_COMMANDS = new Set([
18
+ // MCP server itself (would be recursive)
19
+ 'mcp-server',
20
+ // oclif plugin commands
21
+ 'plugins',
22
+ 'plugins:inspect',
23
+ 'plugins:install',
24
+ 'plugins:add',
25
+ 'plugins:link',
26
+ 'plugins:reset',
27
+ 'plugins:uninstall',
28
+ 'plugins:unlink',
29
+ 'plugins:remove',
30
+ 'plugins:update',
31
+ // oclif built-ins
32
+ 'help',
33
+ 'commands',
34
+ 'autocomplete',
35
+ 'autocomplete:setup',
36
+ // Self-update (not useful for MCP)
37
+ 'update',
38
+ 'self-update',
39
+ ]);
40
+ /**
41
+ * Convert an oclif command ID to an MCP tool name.
42
+ * E.g., "ticket:list" → "ticket_list", "agent:staff:add" → "agent_staff_add"
43
+ */
44
+ export function commandIdToToolName(commandId) {
45
+ return commandId.replace(/:/g, '_').replace(/-/g, '_');
46
+ }
47
+ /**
48
+ * Convert an MCP tool name back to CLI command args.
49
+ * Uses the original command ID (with colons) and the oclif topic separator (space).
50
+ * E.g., "ticket:list" → "ticket list"
51
+ */
52
+ function commandIdToCliArgs(commandId) {
53
+ return commandId.replace(/:/g, ' ');
54
+ }
55
+ /**
56
+ * Build a Zod schema shape from oclif flag and arg definitions.
57
+ */
58
+ function buildZodSchema(command) {
59
+ const shape = {};
60
+ // Add args as schema parameters
61
+ if (command.args) {
62
+ for (const [name, arg] of Object.entries(command.args)) {
63
+ const argName = toSnakeCase(name);
64
+ let schema = z.string();
65
+ if (arg.options && arg.options.length > 0) {
66
+ schema = z.enum(arg.options);
67
+ }
68
+ schema = schema.describe(arg.description || `Positional argument: ${name}`);
69
+ if (!arg.required) {
70
+ schema = schema.optional();
71
+ }
72
+ shape[argName] = schema;
73
+ }
74
+ }
75
+ // Add flags as schema parameters
76
+ if (command.flags) {
77
+ for (const [name, flag] of Object.entries(command.flags)) {
78
+ // Skip internal/meta flags that we handle automatically
79
+ if (name === 'json' || name === 'machine')
80
+ continue;
81
+ const paramName = toSnakeCase(name);
82
+ if (flag.type === 'boolean') {
83
+ let schema = z.boolean().describe(flag.description || `Flag: --${name}`);
84
+ schema = schema.optional();
85
+ shape[paramName] = schema;
86
+ }
87
+ else {
88
+ // option type - string value
89
+ let schema;
90
+ if (flag.options && flag.options.length > 0) {
91
+ schema = z.enum(flag.options);
92
+ }
93
+ else {
94
+ schema = z.string();
95
+ }
96
+ schema = schema.describe(flag.description || `Option: --${name}`);
97
+ schema = schema.optional();
98
+ shape[paramName] = schema;
99
+ }
100
+ }
101
+ }
102
+ return shape;
103
+ }
104
+ /**
105
+ * Convert a kebab-case or camelCase name to snake_case.
106
+ */
107
+ function toSnakeCase(name) {
108
+ return name
109
+ .replace(/-/g, '_')
110
+ .replace(/([a-z])([A-Z])/g, '$1_$2')
111
+ .toLowerCase();
112
+ }
113
+ /**
114
+ * Convert a snake_case param name back to kebab-case flag name.
115
+ */
116
+ function snakeCaseToKebab(name) {
117
+ return name.replace(/_/g, '-');
118
+ }
119
+ /**
120
+ * Shell-escape a string value for safe inclusion in a command.
121
+ */
122
+ function shellEscape(value) {
123
+ // If the value contains special characters, wrap in single quotes
124
+ // and escape any single quotes within
125
+ if (/[^a-zA-Z0-9_\-./:@=]/.test(value)) {
126
+ return `'${value.replace(/'/g, "'\\''")}'`;
127
+ }
128
+ return value;
129
+ }
130
+ /**
131
+ * Build a CLI command string from a command definition and params.
132
+ */
133
+ function buildCommandString(command, params) {
134
+ const parts = ['prlt', ...commandIdToCliArgs(command.id).split(' ')];
135
+ // Separate arg names from flag names
136
+ const argNames = new Set(Object.keys(command.args || {}).map(toSnakeCase));
137
+ const flagDefs = command.flags || {};
138
+ // Add positional args first (in definition order)
139
+ if (command.args) {
140
+ for (const [name] of Object.entries(command.args)) {
141
+ const paramName = toSnakeCase(name);
142
+ const value = params[paramName];
143
+ if (value !== undefined && value !== null && value !== '') {
144
+ parts.push(shellEscape(String(value)));
145
+ }
146
+ }
147
+ }
148
+ // Add flags
149
+ for (const [paramName, value] of Object.entries(params)) {
150
+ // Skip args (already handled) and undefined values
151
+ if (argNames.has(paramName) || value === undefined || value === null)
152
+ continue;
153
+ const flagName = snakeCaseToKebab(paramName);
154
+ // Look up the original flag definition
155
+ const flagDef = flagDefs[flagName];
156
+ if (!flagDef)
157
+ continue;
158
+ if (flagDef.type === 'boolean') {
159
+ if (value === true) {
160
+ parts.push(`--${flagName}`);
161
+ }
162
+ }
163
+ else {
164
+ // option type
165
+ parts.push(`--${flagName}`, shellEscape(String(value)));
166
+ }
167
+ }
168
+ // Always add --json for structured output if the command supports it
169
+ const hasJsonFlag = 'json' in flagDefs || 'machine' in flagDefs;
170
+ if (hasJsonFlag) {
171
+ parts.push('--json');
172
+ }
173
+ return parts.join(' ');
174
+ }
175
+ /**
176
+ * Check if a command should be excluded from auto-generation.
177
+ */
178
+ function isExcluded(command) {
179
+ // Explicit exclusion list
180
+ if (EXCLUDED_COMMANDS.has(command.id))
181
+ return true;
182
+ // Exclude hidden commands
183
+ if (command.hidden)
184
+ return true;
185
+ return false;
186
+ }
187
+ /**
188
+ * Register auto-generated MCP tools from oclif command definitions.
189
+ *
190
+ * @param server - MCP server instance
191
+ * @param ctx - MCP tool context
192
+ * @param commands - Array of oclif command definitions from config.commands
193
+ * @param overrideNames - Set of tool names that have manual overrides (skip generation)
194
+ */
195
+ export function registerAutoGeneratedTools(server, ctx, commands, overrideNames) {
196
+ for (const command of commands) {
197
+ const toolName = commandIdToToolName(command.id);
198
+ // Skip if override exists
199
+ if (overrideNames.has(toolName))
200
+ continue;
201
+ // Skip excluded commands
202
+ if (isExcluded(command))
203
+ continue;
204
+ // Build Zod schema from command metadata
205
+ const schema = buildZodSchema(command);
206
+ // Register the tool
207
+ strictTool(server, toolName, command.description || `Run: prlt ${commandIdToCliArgs(command.id)}`, schema, async (params) => {
208
+ try {
209
+ const cmdString = buildCommandString(command, params);
210
+ const output = ctx.runCommand(cmdString);
211
+ return textResponse(output);
212
+ }
213
+ catch (error) {
214
+ return errorResponse(error);
215
+ }
216
+ });
217
+ }
218
+ }
219
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/lib/mcp/generator.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@
3
3
  */
4
4
  export * from './types.js';
5
5
  export * from './helpers.js';
6
+ export * from './generator.js';
6
7
  export * from './tools/index.js';
@@ -3,5 +3,6 @@
3
3
  */
4
4
  export * from './types.js';
5
5
  export * from './helpers.js';
6
+ export * from './generator.js';
6
7
  export * from './tools/index.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA"}
@@ -2,19 +2,8 @@
2
2
  * MCP Tools - Export all tool registrars
3
3
  */
4
4
  export { registerTicketTools } from './ticket.js';
5
- export { registerProjectTools } from './project.js';
6
- export { registerBoardTools } from './board.js';
7
- export { registerEpicTools } from './epic.js';
8
5
  export { registerWorkTools } from './work.js';
9
- export { registerWorkflowTools } from './workflow.js';
10
- export { registerStatusTools } from './status.js';
11
- export { registerPhaseTools } from './phase.js';
12
6
  export { registerActionTools } from './action.js';
13
- export { registerRoadmapTools } from './roadmap.js';
14
- export { registerCategoryTools } from './category.js';
15
- export { registerTemplateTools } from './template.js';
16
- export { registerViewTools } from './view.js';
17
7
  export { registerDietTools } from './diet.js';
18
- export { registerLabelTools } from './label.js';
19
8
  export { registerTmuxTools } from './tmux.js';
20
9
  export { registerAgentTools, registerDockerTools, registerRepoTools, registerBranchTools, registerGitHubTools, registerInitTools, registerUtilityTools, } from './cli-passthrough.js';
@@ -2,20 +2,9 @@
2
2
  * MCP Tools - Export all tool registrars
3
3
  */
4
4
  export { registerTicketTools } from './ticket.js';
5
- export { registerProjectTools } from './project.js';
6
- export { registerBoardTools } from './board.js';
7
- export { registerEpicTools } from './epic.js';
8
5
  export { registerWorkTools } from './work.js';
9
- export { registerWorkflowTools } from './workflow.js';
10
- export { registerStatusTools } from './status.js';
11
- export { registerPhaseTools } from './phase.js';
12
6
  export { registerActionTools } from './action.js';
13
- export { registerRoadmapTools } from './roadmap.js';
14
- export { registerCategoryTools } from './category.js';
15
- export { registerTemplateTools } from './template.js';
16
- export { registerViewTools } from './view.js';
17
7
  export { registerDietTools } from './diet.js';
18
- export { registerLabelTools } from './label.js';
19
8
  export { registerTmuxTools } from './tmux.js';
20
9
  // CLI passthrough tools
21
10
  export { registerAgentTools, registerDockerTools, registerRepoTools, registerBranchTools, registerGitHubTools, registerInitTools, registerUtilityTools, } from './cli-passthrough.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/mcp/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAE7C,wBAAwB;AACxB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/mcp/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAE7C,wBAAwB;AACxB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * MCP Tool Overrides Index
3
+ *
4
+ * Manual override implementations that take precedence over auto-generated tools.
5
+ * Add overrides here for tools that need custom MCP logic (e.g., direct tmux
6
+ * interaction, in-process workspace context, streaming, etc.).
7
+ *
8
+ * To add a new override:
9
+ * 1. Create a file in this directory exporting a registrar function and tool names
10
+ * 2. Import and register it below
11
+ * 3. Add the tool names to `overrideToolNames`
12
+ */
13
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
14
+ import type { McpToolContext } from '../../types.js';
15
+ /**
16
+ * Set of tool names that have manual overrides.
17
+ * The auto-generator will skip these names.
18
+ */
19
+ export declare const overrideToolNames: Set<string>;
20
+ /**
21
+ * Register all manually overridden MCP tools.
22
+ */
23
+ export declare function registerOverrideTools(server: McpServer, ctx: McpToolContext): void;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * MCP Tool Overrides Index
3
+ *
4
+ * Manual override implementations that take precedence over auto-generated tools.
5
+ * Add overrides here for tools that need custom MCP logic (e.g., direct tmux
6
+ * interaction, in-process workspace context, streaming, etc.).
7
+ *
8
+ * To add a new override:
9
+ * 1. Create a file in this directory exporting a registrar function and tool names
10
+ * 2. Import and register it below
11
+ * 3. Add the tool names to `overrideToolNames`
12
+ */
13
+ import { tmuxOverrideNames, registerTmuxOverrides } from './tmux.js';
14
+ import { workStartOverrideNames, registerWorkStartOverride } from './work-start.js';
15
+ /**
16
+ * Set of tool names that have manual overrides.
17
+ * The auto-generator will skip these names.
18
+ */
19
+ export const overrideToolNames = new Set([
20
+ ...tmuxOverrideNames,
21
+ ...workStartOverrideNames,
22
+ ]);
23
+ /**
24
+ * Register all manually overridden MCP tools.
25
+ */
26
+ export function registerOverrideTools(server, ctx) {
27
+ registerTmuxOverrides(server, ctx);
28
+ registerWorkStartOverride(server, ctx);
29
+ }
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/mcp/tools/overrides/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAEnF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAgB,IAAI,GAAG,CAAC;IACpD,GAAG,iBAAiB;IACpB,GAAG,sBAAsB;CAC1B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,GAAmB;IAC1E,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAClC,yBAAyB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AACxC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * MCP Tmux Tool Overrides
3
+ *
4
+ * These tools interact directly with tmux (not through CLI commands),
5
+ * so they need custom MCP implementations rather than auto-generation.
6
+ */
7
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
8
+ import type { McpToolContext } from '../../types.js';
9
+ /** Tool names provided by this override module. */
10
+ export declare const tmuxOverrideNames: string[];
11
+ export declare function registerTmuxOverrides(server: McpServer, _ctx: McpToolContext): void;
@@ -0,0 +1,184 @@
1
+ /**
2
+ * MCP Tmux Tool Overrides
3
+ *
4
+ * These tools interact directly with tmux (not through CLI commands),
5
+ * so they need custom MCP implementations rather than auto-generation.
6
+ */
7
+ import { z } from 'zod';
8
+ import { execFileSync } from 'node:child_process';
9
+ import { errorResponse, strictTool, successResponse } from '../../helpers.js';
10
+ const TMUX_ENV = { ...process.env, TERM: process.env.TERM || 'xterm-256color' };
11
+ /**
12
+ * Execute a tmux command with args passed as an array (no shell interpretation).
13
+ */
14
+ function runTmux(args, timeoutMs = 10_000) {
15
+ return execFileSync('tmux', args, {
16
+ encoding: 'utf-8',
17
+ timeout: timeoutMs,
18
+ env: TMUX_ENV,
19
+ }).trim();
20
+ }
21
+ /** Validate session name — alphanumeric, hyphens, underscores, dots only. */
22
+ function validateSessionName(name) {
23
+ if (!/^[a-zA-Z0-9_.-]+$/.test(name)) {
24
+ throw new Error(`Invalid session name: "${name}". Only alphanumeric, hyphens, underscores, and dots allowed.`);
25
+ }
26
+ }
27
+ /**
28
+ * Check if a tmux session exists.
29
+ */
30
+ function sessionExists(sessionName) {
31
+ try {
32
+ runTmux(['has-session', '-t', sessionName]);
33
+ return true;
34
+ }
35
+ catch {
36
+ return false;
37
+ }
38
+ }
39
+ /** Tool names provided by this override module. */
40
+ export const tmuxOverrideNames = [
41
+ 'tmux_send_keys',
42
+ 'tmux_capture_pane',
43
+ 'tmux_start_session',
44
+ 'tmux_list_sessions',
45
+ 'tmux_kill_session',
46
+ ];
47
+ export function registerTmuxOverrides(server, _ctx) {
48
+ // ── tmux_send_keys ───────────────────────────────────────────────────
49
+ strictTool(server, 'tmux_send_keys', 'Send keystrokes to a tmux session. Supports text input and special keys like Enter, Escape, Up, Down, Left, Right, C-c (Ctrl+C), Tab, BSpace, etc. Use this to interact with interactive CLI menus and prompts.', {
50
+ session: z.string().describe('Tmux session name to send keys to'),
51
+ keys: z.string().describe('Keys to send. Text is sent literally; special keys: Enter, Escape, Up, Down, Left, Right, C-c, C-d, Tab, BSpace, Space, Home, End, PPage, NPage'),
52
+ literal: z.boolean().optional().describe('If true, send keys as literal text (disables special key lookup). Default false.'),
53
+ delay_ms: z.number().optional().describe('Milliseconds to wait after sending keys before returning (default 100). Useful to let the UI render.'),
54
+ }, async (params) => {
55
+ try {
56
+ validateSessionName(params.session);
57
+ if (!sessionExists(params.session)) {
58
+ return errorResponse(new Error(`Tmux session not found: ${params.session}`));
59
+ }
60
+ const args = ['send-keys', '-t', params.session];
61
+ if (params.literal)
62
+ args.push('-l');
63
+ args.push(params.keys);
64
+ runTmux(args);
65
+ // Wait for UI to render
66
+ const delay = Math.min(params.delay_ms ?? 100, 30_000);
67
+ if (delay > 0) {
68
+ await new Promise((resolve) => setTimeout(resolve, delay));
69
+ }
70
+ return successResponse({ sent: params.keys, session: params.session });
71
+ }
72
+ catch (error) {
73
+ return errorResponse(error);
74
+ }
75
+ });
76
+ // ── tmux_capture_pane ────────────────────────────────────────────────
77
+ strictTool(server, 'tmux_capture_pane', 'Capture the current visible content of a tmux pane. Returns the terminal screen text, useful for reading CLI output, menu states, error messages, and interactive prompt displays.', {
78
+ session: z.string().describe('Tmux session name to capture from'),
79
+ start_line: z.number().optional().describe('Start line for capture (negative = scrollback). Default: beginning of visible pane.'),
80
+ end_line: z.number().optional().describe('End line for capture. Default: end of visible pane.'),
81
+ escape_sequences: z.boolean().optional().describe('If true, include ANSI escape sequences in output. Default false (plain text).'),
82
+ }, async (params) => {
83
+ try {
84
+ validateSessionName(params.session);
85
+ if (!sessionExists(params.session)) {
86
+ return errorResponse(new Error(`Tmux session not found: ${params.session}`));
87
+ }
88
+ const args = ['capture-pane', '-t', params.session, '-p'];
89
+ if (params.escape_sequences)
90
+ args.push('-e');
91
+ if (params.start_line !== undefined)
92
+ args.push('-S', String(params.start_line));
93
+ if (params.end_line !== undefined)
94
+ args.push('-E', String(params.end_line));
95
+ const content = runTmux(args);
96
+ return successResponse({
97
+ session: params.session,
98
+ content,
99
+ lines: content.split('\n').length,
100
+ });
101
+ }
102
+ catch (error) {
103
+ return errorResponse(error);
104
+ }
105
+ });
106
+ // ── tmux_start_session ───────────────────────────────────────────────
107
+ strictTool(server, 'tmux_start_session', 'Start a new tmux session, optionally running a command inside it. Use this to launch a CLI session for exploratory testing.', {
108
+ session: z.string().describe('Name for the new tmux session'),
109
+ command: z.string().optional().describe('Command to run in the session (e.g., "prlt" to launch the CLI)'),
110
+ width: z.number().optional().describe('Terminal width in columns (default 120)'),
111
+ height: z.number().optional().describe('Terminal height in rows (default 40)'),
112
+ }, async (params) => {
113
+ try {
114
+ validateSessionName(params.session);
115
+ if (sessionExists(params.session)) {
116
+ return errorResponse(new Error(`Tmux session already exists: ${params.session}`));
117
+ }
118
+ const width = params.width ?? 120;
119
+ const height = params.height ?? 40;
120
+ const args = ['new-session', '-d', '-s', params.session, '-x', String(width), '-y', String(height)];
121
+ if (params.command)
122
+ args.push(params.command);
123
+ runTmux(args);
124
+ // Give the session a moment to initialize
125
+ await new Promise((resolve) => setTimeout(resolve, 500));
126
+ return successResponse({
127
+ session: params.session,
128
+ width,
129
+ height,
130
+ command: params.command || '(default shell)',
131
+ });
132
+ }
133
+ catch (error) {
134
+ return errorResponse(error);
135
+ }
136
+ });
137
+ // ── tmux_list_sessions ───────────────────────────────────────────────
138
+ strictTool(server, 'tmux_list_sessions', 'List all active tmux sessions with their status and dimensions.', {}, async () => {
139
+ try {
140
+ let output;
141
+ try {
142
+ output = runTmux(['list-sessions', '-F', '#{session_name}|#{session_width}|#{session_height}|#{session_windows}|#{session_created}']);
143
+ }
144
+ catch {
145
+ // No sessions running
146
+ return successResponse({ sessions: [] });
147
+ }
148
+ const sessions = output.split('\n').filter(Boolean).map((line) => {
149
+ const [name, width, height, windows, created] = line.split('|');
150
+ return {
151
+ name,
152
+ width: parseInt(width, 10),
153
+ height: parseInt(height, 10),
154
+ windows: parseInt(windows, 10),
155
+ created: new Date(parseInt(created, 10) * 1000).toISOString(),
156
+ };
157
+ });
158
+ return successResponse({ sessions });
159
+ }
160
+ catch (error) {
161
+ return errorResponse(error);
162
+ }
163
+ });
164
+ // ── tmux_kill_session ────────────────────────────────────────────────
165
+ strictTool(server, 'tmux_kill_session', 'Kill (terminate) a tmux session and all processes running in it.', {
166
+ session: z.string().describe('Name of the tmux session to kill'),
167
+ }, async (params) => {
168
+ try {
169
+ validateSessionName(params.session);
170
+ if (!sessionExists(params.session)) {
171
+ return errorResponse(new Error(`Tmux session not found: ${params.session}`));
172
+ }
173
+ runTmux(['kill-session', '-t', params.session]);
174
+ return successResponse({
175
+ killed: params.session,
176
+ message: `Session "${params.session}" terminated`,
177
+ });
178
+ }
179
+ catch (error) {
180
+ return errorResponse(error);
181
+ }
182
+ });
183
+ }
184
+ //# sourceMappingURL=tmux.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../../../../src/lib/mcp/tools/overrides/tmux.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * MCP Work Start Override
3
+ *
4
+ * The work_start tool requires in-process workspace context for agent spawning
5
+ * (ephemeral agent creation, execution storage, etc.), so it cannot be
6
+ * auto-generated as a simple CLI passthrough.
7
+ */
8
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
+ import type { McpToolContext } from '../../types.js';
10
+ /** Tool names provided by this override module. */
11
+ export declare const workStartOverrideNames: string[];
12
+ export declare function registerWorkStartOverride(server: McpServer, ctx: McpToolContext): void;