@proletariat/cli 0.3.72 → 0.3.74

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 (402) hide show
  1. package/dist/commands/action/create.js +1 -0
  2. package/dist/commands/action/create.js.map +1 -1
  3. package/dist/commands/action/delete.js +1 -1
  4. package/dist/commands/action/delete.js.map +1 -1
  5. package/dist/commands/action/run.js +1 -1
  6. package/dist/commands/action/run.js.map +1 -1
  7. package/dist/commands/action/show.js +1 -0
  8. package/dist/commands/action/show.js.map +1 -1
  9. package/dist/commands/action/update.js +1 -1
  10. package/dist/commands/action/update.js.map +1 -1
  11. package/dist/commands/agent/auth.js +4 -0
  12. package/dist/commands/agent/auth.js.map +1 -1
  13. package/dist/commands/agent/cleanup.js +1 -1
  14. package/dist/commands/agent/cleanup.js.map +1 -1
  15. package/dist/commands/agent/discover.js +1 -0
  16. package/dist/commands/agent/discover.js.map +1 -1
  17. package/dist/commands/agent/index.js +2 -0
  18. package/dist/commands/agent/index.js.map +1 -1
  19. package/dist/commands/agent/rebuild.js +1 -1
  20. package/dist/commands/agent/rebuild.js.map +1 -1
  21. package/dist/commands/agent/remove.js +1 -1
  22. package/dist/commands/agent/remove.js.map +1 -1
  23. package/dist/commands/agent/restart.js +1 -1
  24. package/dist/commands/agent/restart.js.map +1 -1
  25. package/dist/commands/agent/visit.js +1 -1
  26. package/dist/commands/agent/visit.js.map +1 -1
  27. package/dist/commands/asana/connect.js +6 -5
  28. package/dist/commands/asana/connect.js.map +1 -1
  29. package/dist/commands/asana/import.js +4 -4
  30. package/dist/commands/asana/import.js.map +1 -1
  31. package/dist/commands/asana/sync.js +3 -3
  32. package/dist/commands/asana/sync.js.map +1 -1
  33. package/dist/commands/autocomplete/setup.js +2 -1
  34. package/dist/commands/autocomplete/setup.js.map +1 -1
  35. package/dist/commands/board/index.js +1 -0
  36. package/dist/commands/board/index.js.map +1 -1
  37. package/dist/commands/board/view.js +1 -1
  38. package/dist/commands/board/view.js.map +1 -1
  39. package/dist/commands/branch/create.js +1 -1
  40. package/dist/commands/branch/create.js.map +1 -1
  41. package/dist/commands/branch/validate.js +2 -0
  42. package/dist/commands/branch/validate.js.map +1 -1
  43. package/dist/commands/branch/where.js +1 -0
  44. package/dist/commands/branch/where.js.map +1 -1
  45. package/dist/commands/category/create.js +3 -0
  46. package/dist/commands/category/create.js.map +1 -1
  47. package/dist/commands/category/delete.js +3 -0
  48. package/dist/commands/category/delete.js.map +1 -1
  49. package/dist/commands/category/rename.js +6 -0
  50. package/dist/commands/category/rename.js.map +1 -1
  51. package/dist/commands/claude/index.js +5 -5
  52. package/dist/commands/claude/index.js.map +1 -1
  53. package/dist/commands/claude/open.js +5 -0
  54. package/dist/commands/claude/open.js.map +1 -1
  55. package/dist/commands/commit.js +1 -1
  56. package/dist/commands/commit.js.map +1 -1
  57. package/dist/commands/config/index.js +6 -1
  58. package/dist/commands/config/index.js.map +1 -1
  59. package/dist/commands/dashboard.js +1 -0
  60. package/dist/commands/dashboard.js.map +1 -1
  61. package/dist/commands/diet.js +1 -0
  62. package/dist/commands/diet.js.map +1 -1
  63. package/dist/commands/docker/clean.js +2 -0
  64. package/dist/commands/docker/clean.js.map +1 -1
  65. package/dist/commands/docker/index.js +1 -0
  66. package/dist/commands/docker/index.js.map +1 -1
  67. package/dist/commands/docker/logs.js +6 -0
  68. package/dist/commands/docker/logs.js.map +1 -1
  69. package/dist/commands/docker/prune.js +1 -0
  70. package/dist/commands/docker/prune.js.map +1 -1
  71. package/dist/commands/docker/restart.js +5 -0
  72. package/dist/commands/docker/restart.js.map +1 -1
  73. package/dist/commands/docker/start.js +4 -0
  74. package/dist/commands/docker/start.js.map +1 -1
  75. package/dist/commands/docker/stop.js +4 -0
  76. package/dist/commands/docker/stop.js.map +1 -1
  77. package/dist/commands/epic/activate.js +1 -1
  78. package/dist/commands/epic/activate.js.map +1 -1
  79. package/dist/commands/epic/archive.js +1 -1
  80. package/dist/commands/epic/archive.js.map +1 -1
  81. package/dist/commands/epic/create.js +4 -0
  82. package/dist/commands/epic/create.js.map +1 -1
  83. package/dist/commands/epic/delete.js +1 -1
  84. package/dist/commands/epic/delete.js.map +1 -1
  85. package/dist/commands/epic/move.js +1 -1
  86. package/dist/commands/epic/move.js.map +1 -1
  87. package/dist/commands/epic/progress.js +1 -0
  88. package/dist/commands/epic/progress.js.map +1 -1
  89. package/dist/commands/epic/project.js +1 -1
  90. package/dist/commands/epic/project.js.map +1 -1
  91. package/dist/commands/epic/reorder.js +1 -1
  92. package/dist/commands/epic/reorder.js.map +1 -1
  93. package/dist/commands/epic/spec.js +1 -1
  94. package/dist/commands/epic/spec.js.map +1 -1
  95. package/dist/commands/epic/ticket.js +1 -1
  96. package/dist/commands/epic/ticket.js.map +1 -1
  97. package/dist/commands/epic/view.js +1 -1
  98. package/dist/commands/epic/view.js.map +1 -1
  99. package/dist/commands/execution/config.js +7 -1
  100. package/dist/commands/execution/config.js.map +1 -1
  101. package/dist/commands/execution/list.js +1 -0
  102. package/dist/commands/execution/list.js.map +1 -1
  103. package/dist/commands/execution/logs.js +1 -0
  104. package/dist/commands/execution/logs.js.map +1 -1
  105. package/dist/commands/execution/stop.js +2 -0
  106. package/dist/commands/execution/stop.js.map +1 -1
  107. package/dist/commands/execution/view.js +3 -1
  108. package/dist/commands/execution/view.js.map +1 -1
  109. package/dist/commands/feedback/list.js +2 -0
  110. package/dist/commands/feedback/list.js.map +1 -1
  111. package/dist/commands/feedback/submit.js +2 -0
  112. package/dist/commands/feedback/submit.js.map +1 -1
  113. package/dist/commands/feedback/view.js +2 -0
  114. package/dist/commands/feedback/view.js.map +1 -1
  115. package/dist/commands/gh/login.js +1 -1
  116. package/dist/commands/gh/login.js.map +1 -1
  117. package/dist/commands/gh/token.js +1 -1
  118. package/dist/commands/gh/token.js.map +1 -1
  119. package/dist/commands/linear/auth.js +4 -4
  120. package/dist/commands/linear/auth.js.map +1 -1
  121. package/dist/commands/linear/connect.js +10 -5
  122. package/dist/commands/linear/connect.js.map +1 -1
  123. package/dist/commands/linear/import.js +4 -3
  124. package/dist/commands/linear/import.js.map +1 -1
  125. package/dist/commands/linear/sync.js +3 -3
  126. package/dist/commands/linear/sync.js.map +1 -1
  127. package/dist/commands/link/create.js +1 -1
  128. package/dist/commands/link/create.js.map +1 -1
  129. package/dist/commands/link/list.js +1 -1
  130. package/dist/commands/link/list.js.map +1 -1
  131. package/dist/commands/link/remove.js +1 -1
  132. package/dist/commands/link/remove.js.map +1 -1
  133. package/dist/commands/media/add.js +2 -1
  134. package/dist/commands/media/add.js.map +1 -1
  135. package/dist/commands/media/index.js +2 -0
  136. package/dist/commands/media/index.js.map +1 -1
  137. package/dist/commands/media/list.js +1 -0
  138. package/dist/commands/media/list.js.map +1 -1
  139. package/dist/commands/media/preprocess.js +1 -1
  140. package/dist/commands/media/preprocess.js.map +1 -1
  141. package/dist/commands/media/remove.js +2 -1
  142. package/dist/commands/media/remove.js.map +1 -1
  143. package/dist/commands/media/show.js +1 -1
  144. package/dist/commands/media/show.js.map +1 -1
  145. package/dist/commands/monday/connect.js +4 -4
  146. package/dist/commands/monday/connect.js.map +1 -1
  147. package/dist/commands/monday/sync.js +4 -4
  148. package/dist/commands/monday/sync.js.map +1 -1
  149. package/dist/commands/new.js +1 -0
  150. package/dist/commands/new.js.map +1 -1
  151. package/dist/commands/orchestrator/start.js +2 -0
  152. package/dist/commands/orchestrator/start.js.map +1 -1
  153. package/dist/commands/phase/delete.js +1 -1
  154. package/dist/commands/phase/delete.js.map +1 -1
  155. package/dist/commands/phase/move.js +1 -1
  156. package/dist/commands/phase/move.js.map +1 -1
  157. package/dist/commands/phase/template/delete.js +1 -0
  158. package/dist/commands/phase/template/delete.js.map +1 -1
  159. package/dist/commands/phase/update.js +1 -1
  160. package/dist/commands/phase/update.js.map +1 -1
  161. package/dist/commands/pmo/init.js +2 -2
  162. package/dist/commands/pmo/init.js.map +1 -1
  163. package/dist/commands/pr/checks.js +1 -1
  164. package/dist/commands/pr/checks.js.map +1 -1
  165. package/dist/commands/pr/create.js +1 -1
  166. package/dist/commands/pr/create.js.map +1 -1
  167. package/dist/commands/pr/index.js +1 -1
  168. package/dist/commands/pr/index.js.map +1 -1
  169. package/dist/commands/pr/link.js +3 -3
  170. package/dist/commands/pr/link.js.map +1 -1
  171. package/dist/commands/pr/list.js +1 -1
  172. package/dist/commands/pr/list.js.map +1 -1
  173. package/dist/commands/pr/merge.js +1 -1
  174. package/dist/commands/pr/merge.js.map +1 -1
  175. package/dist/commands/pr/status.js +1 -1
  176. package/dist/commands/pr/status.js.map +1 -1
  177. package/dist/commands/priority/add.js +2 -2
  178. package/dist/commands/priority/add.js.map +1 -1
  179. package/dist/commands/priority/remove.js +2 -2
  180. package/dist/commands/priority/remove.js.map +1 -1
  181. package/dist/commands/priority/set.js +2 -2
  182. package/dist/commands/priority/set.js.map +1 -1
  183. package/dist/commands/project/archive.js +1 -1
  184. package/dist/commands/project/archive.js.map +1 -1
  185. package/dist/commands/project/create.js +4 -0
  186. package/dist/commands/project/create.js.map +1 -1
  187. package/dist/commands/project/delete.js +1 -1
  188. package/dist/commands/project/delete.js.map +1 -1
  189. package/dist/commands/project/spec.js +1 -1
  190. package/dist/commands/project/spec.js.map +1 -1
  191. package/dist/commands/project/unarchive.js +1 -1
  192. package/dist/commands/project/unarchive.js.map +1 -1
  193. package/dist/commands/project/update.js +1 -1
  194. package/dist/commands/project/update.js.map +1 -1
  195. package/dist/commands/project/view.js +1 -1
  196. package/dist/commands/project/view.js.map +1 -1
  197. package/dist/commands/pull.js +3 -0
  198. package/dist/commands/pull.js.map +1 -1
  199. package/dist/commands/qa/index.js +4 -4
  200. package/dist/commands/qa/index.js.map +1 -1
  201. package/dist/commands/repo/add.js +1 -1
  202. package/dist/commands/repo/add.js.map +1 -1
  203. package/dist/commands/repo/create.js +1 -1
  204. package/dist/commands/repo/create.js.map +1 -1
  205. package/dist/commands/repo/remove.js +2 -2
  206. package/dist/commands/repo/remove.js.map +1 -1
  207. package/dist/commands/repo/view.js +1 -1
  208. package/dist/commands/repo/view.js.map +1 -1
  209. package/dist/commands/roadmap/create.js +1 -0
  210. package/dist/commands/roadmap/create.js.map +1 -1
  211. package/dist/commands/self-update.d.ts +17 -0
  212. package/dist/commands/self-update.js +183 -0
  213. package/dist/commands/self-update.js.map +1 -0
  214. package/dist/commands/session/create.js +4 -0
  215. package/dist/commands/session/create.js.map +1 -1
  216. package/dist/commands/session/exec.js +4 -0
  217. package/dist/commands/session/exec.js.map +1 -1
  218. package/dist/commands/session/health.js +2 -0
  219. package/dist/commands/session/health.js.map +1 -1
  220. package/dist/commands/session/inspect.js +3 -0
  221. package/dist/commands/session/inspect.js.map +1 -1
  222. package/dist/commands/session/peek.js +1 -0
  223. package/dist/commands/session/peek.js.map +1 -1
  224. package/dist/commands/session/restart.js +4 -0
  225. package/dist/commands/session/restart.js.map +1 -1
  226. package/dist/commands/shortcut/connect.js +4 -4
  227. package/dist/commands/shortcut/connect.js.map +1 -1
  228. package/dist/commands/staff/remove.js +1 -1
  229. package/dist/commands/staff/remove.js.map +1 -1
  230. package/dist/commands/status/delete.js +2 -1
  231. package/dist/commands/status/delete.js.map +1 -1
  232. package/dist/commands/status/list.js +1 -0
  233. package/dist/commands/status/list.js.map +1 -1
  234. package/dist/commands/status/move.js +2 -1
  235. package/dist/commands/status/move.js.map +1 -1
  236. package/dist/commands/status/update.js +1 -1
  237. package/dist/commands/status/update.js.map +1 -1
  238. package/dist/commands/telemetry/disable.js +1 -0
  239. package/dist/commands/telemetry/disable.js.map +1 -1
  240. package/dist/commands/telemetry/enable.js +1 -0
  241. package/dist/commands/telemetry/enable.js.map +1 -1
  242. package/dist/commands/telemetry/index.js +1 -0
  243. package/dist/commands/telemetry/index.js.map +1 -1
  244. package/dist/commands/template/apply.js +2 -2
  245. package/dist/commands/template/apply.js.map +1 -1
  246. package/dist/commands/template/delete.js +1 -0
  247. package/dist/commands/template/delete.js.map +1 -1
  248. package/dist/commands/template/save.js +1 -0
  249. package/dist/commands/template/save.js.map +1 -1
  250. package/dist/commands/template/update.js +1 -0
  251. package/dist/commands/template/update.js.map +1 -1
  252. package/dist/commands/ticket/complete.js +1 -1
  253. package/dist/commands/ticket/complete.js.map +1 -1
  254. package/dist/commands/ticket/create.js +14 -4
  255. package/dist/commands/ticket/create.js.map +1 -1
  256. package/dist/commands/ticket/delete.js +23 -8
  257. package/dist/commands/ticket/delete.js.map +1 -1
  258. package/dist/commands/ticket/edit.js +2 -2
  259. package/dist/commands/ticket/edit.js.map +1 -1
  260. package/dist/commands/ticket/link/block.js +1 -1
  261. package/dist/commands/ticket/link/block.js.map +1 -1
  262. package/dist/commands/ticket/link/duplicates.js +1 -1
  263. package/dist/commands/ticket/link/duplicates.js.map +1 -1
  264. package/dist/commands/ticket/link/relates.js +1 -1
  265. package/dist/commands/ticket/link/relates.js.map +1 -1
  266. package/dist/commands/ticket/list.d.ts +0 -8
  267. package/dist/commands/ticket/list.js +15 -121
  268. package/dist/commands/ticket/list.js.map +1 -1
  269. package/dist/commands/ticket/move.js +34 -7
  270. package/dist/commands/ticket/move.js.map +1 -1
  271. package/dist/commands/ticket/resolve.js +2 -2
  272. package/dist/commands/ticket/resolve.js.map +1 -1
  273. package/dist/commands/ticket/status.js +1 -1
  274. package/dist/commands/ticket/status.js.map +1 -1
  275. package/dist/commands/ticket/template/delete.js +1 -0
  276. package/dist/commands/ticket/template/delete.js.map +1 -1
  277. package/dist/commands/ticket/template/save.js +1 -0
  278. package/dist/commands/ticket/template/save.js.map +1 -1
  279. package/dist/commands/ticket/update.js +1 -0
  280. package/dist/commands/ticket/update.js.map +1 -1
  281. package/dist/commands/ticket/view.js +1 -1
  282. package/dist/commands/ticket/view.js.map +1 -1
  283. package/dist/commands/tools/add.js +6 -0
  284. package/dist/commands/tools/add.js.map +1 -1
  285. package/dist/commands/tools/remove.js +3 -0
  286. package/dist/commands/tools/remove.js.map +1 -1
  287. package/dist/commands/trello/configure.js +5 -5
  288. package/dist/commands/trello/configure.js.map +1 -1
  289. package/dist/commands/trello/import.js +4 -4
  290. package/dist/commands/trello/import.js.map +1 -1
  291. package/dist/commands/trello/sync.js +3 -3
  292. package/dist/commands/trello/sync.js.map +1 -1
  293. package/dist/commands/version/bump.js +3 -0
  294. package/dist/commands/version/bump.js.map +1 -1
  295. package/dist/commands/work/complete.js +34 -1
  296. package/dist/commands/work/complete.js.map +1 -1
  297. package/dist/commands/work/hooks/add.js +7 -0
  298. package/dist/commands/work/hooks/add.js.map +1 -1
  299. package/dist/commands/work/hooks/list.js +2 -0
  300. package/dist/commands/work/hooks/list.js.map +1 -1
  301. package/dist/commands/work/hooks/remove.js +4 -0
  302. package/dist/commands/work/hooks/remove.js.map +1 -1
  303. package/dist/commands/work/hooks/toggle.js +4 -0
  304. package/dist/commands/work/hooks/toggle.js.map +1 -1
  305. package/dist/commands/work/ready.js +44 -5
  306. package/dist/commands/work/ready.js.map +1 -1
  307. package/dist/commands/work/resolve.js +1 -1
  308. package/dist/commands/work/resolve.js.map +1 -1
  309. package/dist/commands/work/review.js +3 -1
  310. package/dist/commands/work/review.js.map +1 -1
  311. package/dist/commands/work/revise.js +1 -1
  312. package/dist/commands/work/revise.js.map +1 -1
  313. package/dist/commands/work/source/set.js +3 -0
  314. package/dist/commands/work/source/set.js.map +1 -1
  315. package/dist/commands/work/source.js +1 -0
  316. package/dist/commands/work/source.js.map +1 -1
  317. package/dist/commands/work/spawn.js +2 -1
  318. package/dist/commands/work/spawn.js.map +1 -1
  319. package/dist/commands/work/start.js +71 -18
  320. package/dist/commands/work/start.js.map +1 -1
  321. package/dist/commands/work/watch.js +1 -1
  322. package/dist/commands/work/watch.js.map +1 -1
  323. package/dist/commands/workflow/delete.js +1 -1
  324. package/dist/commands/workflow/delete.js.map +1 -1
  325. package/dist/commands/workflow/setup.js +5 -0
  326. package/dist/commands/workflow/setup.js.map +1 -1
  327. package/dist/commands/workflow/switch.js +1 -1
  328. package/dist/commands/workflow/switch.js.map +1 -1
  329. package/dist/commands/workflow/view.js +1 -1
  330. package/dist/commands/workflow/view.js.map +1 -1
  331. package/dist/commands/workflow-rule/create.js +1 -0
  332. package/dist/commands/workflow-rule/create.js.map +1 -1
  333. package/dist/commands/workflow-rule/delete.js +1 -1
  334. package/dist/commands/workflow-rule/delete.js.map +1 -1
  335. package/dist/commands/workflow-rule/update.js +1 -1
  336. package/dist/commands/workflow-rule/update.js.map +1 -1
  337. package/dist/commands/workspace/add.js +5 -0
  338. package/dist/commands/workspace/add.js.map +1 -1
  339. package/dist/commands/workspace/remove.js +1 -1
  340. package/dist/commands/workspace/remove.js.map +1 -1
  341. package/dist/hooks/init.js +35 -7
  342. package/dist/hooks/init.js.map +1 -1
  343. package/dist/hooks/postrun.d.ts +6 -4
  344. package/dist/hooks/postrun.js +25 -18
  345. package/dist/hooks/postrun.js.map +1 -1
  346. package/dist/lib/execution/commit-validation.d.ts +58 -0
  347. package/dist/lib/execution/commit-validation.js +252 -0
  348. package/dist/lib/execution/commit-validation.js.map +1 -0
  349. package/dist/lib/execution/config.js +3 -0
  350. package/dist/lib/execution/config.js.map +1 -1
  351. package/dist/lib/execution/context.d.ts +1 -1
  352. package/dist/lib/execution/context.js +5 -3
  353. package/dist/lib/execution/context.js.map +1 -1
  354. package/dist/lib/execution/runners/devcontainer.js +29 -13
  355. package/dist/lib/execution/runners/devcontainer.js.map +1 -1
  356. package/dist/lib/execution/storage.d.ts +20 -3
  357. package/dist/lib/execution/storage.js +27 -6
  358. package/dist/lib/execution/storage.js.map +1 -1
  359. package/dist/lib/flags/resolver.js +3 -6
  360. package/dist/lib/flags/resolver.js.map +1 -1
  361. package/dist/lib/linear/client.d.ts +4 -0
  362. package/dist/lib/linear/client.js +12 -0
  363. package/dist/lib/linear/client.js.map +1 -1
  364. package/dist/lib/onboarding/wizard.js +3 -3
  365. package/dist/lib/onboarding/wizard.js.map +1 -1
  366. package/dist/lib/pmo/base-command.d.ts +21 -1
  367. package/dist/lib/pmo/base-command.js +28 -4
  368. package/dist/lib/pmo/base-command.js.map +1 -1
  369. package/dist/lib/prompt-command.js +1 -1
  370. package/dist/lib/prompt-command.js.map +1 -1
  371. package/dist/lib/prompt-json.d.ts +19 -11
  372. package/dist/lib/prompt-json.js +32 -17
  373. package/dist/lib/prompt-json.js.map +1 -1
  374. package/dist/lib/providers/index.d.ts +11 -0
  375. package/dist/lib/providers/index.js +11 -0
  376. package/dist/lib/providers/index.js.map +1 -0
  377. package/dist/lib/providers/linear-provider.d.ts +26 -0
  378. package/dist/lib/providers/linear-provider.js +339 -0
  379. package/dist/lib/providers/linear-provider.js.map +1 -0
  380. package/dist/lib/providers/pmo-provider.d.ts +20 -0
  381. package/dist/lib/providers/pmo-provider.js +83 -0
  382. package/dist/lib/providers/pmo-provider.js.map +1 -0
  383. package/dist/lib/providers/resolver.d.ts +44 -0
  384. package/dist/lib/providers/resolver.js +82 -0
  385. package/dist/lib/providers/resolver.js.map +1 -0
  386. package/dist/lib/providers/types.d.ts +136 -0
  387. package/dist/lib/providers/types.js +12 -0
  388. package/dist/lib/providers/types.js.map +1 -0
  389. package/dist/lib/update-check.d.ts +8 -2
  390. package/dist/lib/update-check.js +42 -2
  391. package/dist/lib/update-check.js.map +1 -1
  392. package/dist/lib/update-prompt.d.ts +3 -3
  393. package/dist/lib/update-prompt.js +39 -14
  394. package/dist/lib/update-prompt.js.map +1 -1
  395. package/dist/lib/work-lifecycle/index.d.ts +1 -0
  396. package/dist/lib/work-lifecycle/index.js +1 -0
  397. package/dist/lib/work-lifecycle/index.js.map +1 -1
  398. package/dist/lib/work-lifecycle/post-execution.d.ts +40 -9
  399. package/dist/lib/work-lifecycle/post-execution.js +61 -9
  400. package/dist/lib/work-lifecycle/post-execution.js.map +1 -1
  401. package/oclif.manifest.json +2726 -2675
  402. package/package.json +1 -1
@@ -15,6 +15,7 @@
15
15
  * - EXIT_ERROR (1): Command failed with an error
16
16
  * - EXIT_NEEDS_INPUT (2): Command needs additional input (prompt required)
17
17
  */
18
+ import { Errors } from '@oclif/core';
18
19
  /**
19
20
  * Exit code for successful command completion
20
21
  */
@@ -231,11 +232,12 @@ export function createMetadata(command, flags) {
231
232
  };
232
233
  }
233
234
  /**
234
- * Output a prompt configuration as JSON and exit
235
+ * Output a prompt configuration as JSON and halt command execution
235
236
  *
236
237
  * Use this when a command would normally show an interactive prompt.
237
238
  * Outputs the prompt config so agents can understand what input is needed,
238
- * then exits with EXIT_NEEDS_INPUT (2) to signal the command needs more input.
239
+ * then throws oclif ExitError to stop execution while still allowing
240
+ * postrun hooks to fire (unlike process.exit which bypasses them).
239
241
  *
240
242
  * @param config - Prompt configuration
241
243
  * @param metadata - Command metadata
@@ -247,14 +249,15 @@ export function outputPromptAsJson(config, metadata) {
247
249
  metadata,
248
250
  };
249
251
  console.log(JSON.stringify(output, null, 2));
250
- process.exit(EXIT_NEEDS_INPUT);
252
+ process.exitCode = EXIT_NEEDS_INPUT;
253
+ throw new Errors.ExitError(EXIT_NEEDS_INPUT);
251
254
  }
252
255
  /**
253
- * Output success result as JSON and exit
256
+ * Output success result as JSON and halt command execution
254
257
  *
255
258
  * Use this when all required data was provided via flags
256
- * and no prompt is needed. Exits with EXIT_SUCCESS (0) to signal
257
- * successful command completion.
259
+ * and no prompt is needed. Throws oclif ExitError to stop execution
260
+ * while still allowing postrun hooks to fire.
258
261
  *
259
262
  * @param result - Command-specific result data
260
263
  * @param metadata - Command metadata
@@ -268,14 +271,16 @@ export function outputSuccessAsJson(result, metadata) {
268
271
  metadata,
269
272
  };
270
273
  console.log(JSON.stringify(output, null, 2));
271
- process.exit(EXIT_SUCCESS);
274
+ process.exitCode = EXIT_SUCCESS;
275
+ throw new Errors.ExitError(EXIT_SUCCESS);
272
276
  }
273
277
  /**
274
- * Output error as JSON and exit
278
+ * Output error as JSON and halt command execution
275
279
  *
276
280
  * Use this when an error occurs and --json flag is active.
277
- * Provides structured error output for programmatic handling,
278
- * then exits with EXIT_ERROR (1).
281
+ * Provides structured error output for programmatic handling.
282
+ * Throws oclif ExitError to stop execution while still allowing
283
+ * postrun hooks to fire.
279
284
  *
280
285
  * @param code - Machine-readable error code (e.g., "NO_TICKETS_AVAILABLE")
281
286
  * @param message - Human-readable error message
@@ -291,7 +296,8 @@ export function outputErrorAsJson(code, message, metadata) {
291
296
  metadata,
292
297
  };
293
298
  console.log(JSON.stringify(output, null, 2));
294
- process.exit(EXIT_ERROR);
299
+ process.exitCode = EXIT_ERROR;
300
+ throw new Errors.ExitError(EXIT_ERROR);
295
301
  }
296
302
  /**
297
303
  * Convert inquirer choices to PromptChoice format
@@ -370,10 +376,12 @@ export function buildFormPromptConfig(fields) {
370
376
  };
371
377
  }
372
378
  /**
373
- * Output a successful dry-run result as JSON and exit
379
+ * Output a successful dry-run result as JSON and halt command execution
374
380
  *
375
381
  * Use this when --dry-run is set and all validation passes.
376
382
  * Shows what would be created without actually creating it.
383
+ * Throws oclif ExitError to stop execution while still allowing
384
+ * postrun hooks to fire.
377
385
  *
378
386
  * @param entityType - Type of entity that would be created (e.g., "ticket", "project")
379
387
  * @param wouldCreate - Data about what would be created
@@ -390,13 +398,16 @@ export function outputDryRunSuccessAsJson(entityType, wouldCreate, metadata) {
390
398
  metadata,
391
399
  };
392
400
  console.log(JSON.stringify(output, null, 2));
393
- process.exit(EXIT_SUCCESS);
401
+ process.exitCode = EXIT_SUCCESS;
402
+ throw new Errors.ExitError(EXIT_SUCCESS);
394
403
  }
395
404
  /**
396
- * Output a dry-run validation failure as JSON and exit
405
+ * Output a dry-run validation failure as JSON and halt command execution
397
406
  *
398
407
  * Use this when --dry-run is set and validation fails.
399
408
  * Shows the validation errors without attempting to create.
409
+ * Throws oclif ExitError to stop execution while still allowing
410
+ * postrun hooks to fire.
400
411
  *
401
412
  * @param errors - Array of validation errors
402
413
  * @param metadata - Command metadata
@@ -409,13 +420,16 @@ export function outputDryRunErrorsAsJson(errors, metadata) {
409
420
  metadata,
410
421
  };
411
422
  console.log(JSON.stringify(output, null, 2));
412
- process.exit(EXIT_ERROR);
423
+ process.exitCode = EXIT_ERROR;
424
+ throw new Errors.ExitError(EXIT_ERROR);
413
425
  }
414
426
  /**
415
- * Output a confirmation needed response as JSON and exit
427
+ * Output a confirmation needed response as JSON and halt command execution
416
428
  *
417
429
  * Use this in non-TTY mode when all required flags are provided but --yes is not set.
418
430
  * This allows agents to preview what will happen before confirming execution.
431
+ * Throws oclif ExitError to stop execution while still allowing
432
+ * postrun hooks to fire.
419
433
  *
420
434
  * @param plan - Details of what will happen if confirmed
421
435
  * @param confirmCommand - The full command to run with --yes to execute
@@ -431,7 +445,8 @@ export function outputConfirmationNeededAsJson(plan, confirmCommand, message, me
431
445
  metadata,
432
446
  };
433
447
  console.log(JSON.stringify(output, null, 2));
434
- process.exit(EXIT_NEEDS_INPUT);
448
+ process.exitCode = EXIT_NEEDS_INPUT;
449
+ throw new Errors.ExitError(EXIT_NEEDS_INPUT);
435
450
  }
436
451
  /**
437
452
  * Output execution result as JSON (non-exiting version)
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-json.js","sourceRoot":"","sources":["../../src/lib/prompt-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAA;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAA;AAE3B;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAA;AAuMjC;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,qBAAqB;IACrB,kBAAkB;CACV,CAAA;AAIV;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAuC;IAC/E,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC;IACtC,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;IAC5D,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC;IACpC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC;IACxC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,CAAC;IAC/E,gBAAgB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC;CACjD,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;QAC/C,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,MAAM,GAAG,GAA8B,CAAA;IAE7C,2BAA2B;IAC3B,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAc,CAAA;IAClC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAwB,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,2BAA2B,IAAI,sBAAsB,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClG,OAAO,MAAM,CAAA;IACf,CAAC;IAED,sCAAsC;IACtC,MAAM,cAAc,GAAG,6BAA6B,CAAC,IAAwB,CAAC,CAAA;IAC9E,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,oCAAoC,IAAI,MAAM,KAAK,EAAE,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,UAAU,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAmC,CAAA;QAC3D,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACrE,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;YAClD,CAAC;YACD,IAAI,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACjE,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,IAAI,KAAK,QAAQ,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAiC,CAAA;QACvD,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAgC,CAAA;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;YAC5C,CAAC;YACD,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC/D,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;QAC5D,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;QACnC,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAqBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,QAAQ;IACtB,mFAAmF;IACnF,6EAA6E;IAC7E,gCAAgC;IAChC,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;QAClF,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QACtE,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAA;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAC/C,mCAAmC;IACnC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,4EAA4E;IAC5E,OAAO,QAAQ,EAAE,CAAA;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,KAAyB;IACvD,mCAAmC;IACnC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,4EAA4E;IAC5E,OAAO,QAAQ,EAAE,CAAA;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,KAA8B;IAE9B,sCAAsC;IACtC,MAAM,aAAa,GAA4B,EAAE,CAAA;IACjD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,2CAA2C;QAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAoB,EACpB,QAAwB;IAExB,MAAM,MAAM,GAAqB;QAC/B,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,MAAM;QACd,QAAQ;KACT,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5C,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA+B,EAC/B,QAAwB;IAExB,MAAM,MAAM,GAAsB;QAChC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,IAAI;QACb,MAAM;QACN,QAAQ;KACT,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5C,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAC5B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,OAAe,EACf,QAAwB;IAExB,MAAM,MAAM,GAAoB;QAC9B,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI;YACJ,OAAO;SACR;QACD,QAAQ;KACT,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAiH;IAEjH,MAAM,UAAU,GAAmB,EAAE,CAAA;IAErC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,4EAA4E;QAC5E,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,MAAM,IAAI,MAAM;YACf,MAA2B,CAAC,IAAI,KAAK,WAAW,EACjD,CAAC;YACD,SAAQ;QACV,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YAChD,SAAQ;QACV,CAAC;QAED,wBAAwB;QACxB,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,MAAM,IAAI,MAAM;YAChB,OAAO,IAAI,MAAM,EACjB,CAAC;YACD,MAAM,GAAG,GAAG,MAAwF,CAAA;YACpG,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;gBACxB,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtE,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;aAC3D,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAwE,EACxE,IAAY,EACZ,OAAe,EACf,OAAkH,EAClH,YAA0C;IAE1C,MAAM,MAAM,GAAiB;QAC3B,IAAI;QACJ,IAAI;QACJ,OAAO;KACR,CAAA;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,GAAG,YAAY,CAAA;IAC/B,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAmB;IAEnB,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM;KACP,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAkB,EAClB,WAAoC,EACpC,QAAwB;IAExB,MAAM,MAAM,GAAqB;QAC/B,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,IAAI;QACX,WAAW,EAAE;YACX,IAAI,EAAE,UAAU;YAChB,GAAG,WAAW;SACf;QACD,QAAQ;KACT,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5C,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAC5B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAA+C,EAC/C,QAAwB;IAExB,MAAM,MAAM,GAAqB;QAC/B,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,KAAK;QACZ,MAAM;QACN,QAAQ;KACT,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAC1B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,8BAA8B,CAC5C,IAA6B,EAC7B,cAAsB,EACtB,OAAe,EACf,QAAwB;IAExB,MAAM,MAAM,GAAiC;QAC3C,IAAI,EAAE,qBAAqB;QAC3B,IAAI;QACJ,eAAe,EAAE,cAAc;QAC/B,OAAO;QACP,QAAQ;KACT,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5C,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;AAChC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,2BAA2B,CACzC,UAOE,EACF,YAAoB,EACpB,SAAiB,EACjB,QAAwB;IAExB,MAAM,MAAM,GAA8B;QACxC,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE;YACN,UAAU;YACV,YAAY;YACZ,SAAS;SACV;QACD,QAAQ;KACT,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAC9C,CAAC"}
1
+ {"version":3,"file":"prompt-json.js","sourceRoot":"","sources":["../../src/lib/prompt-json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Ticket Providers — public API.
3
+ *
4
+ * Unified provider interface for all ticket operations across backends.
5
+ * provider.moveTicket(), .listTickets(), .createTicket(), .deleteTicket()
6
+ * — same interface whether Linear, Jira, or local PMO.
7
+ */
8
+ export type { TicketProvider, TicketProviderName, ProviderResult, ProviderMoveResult, ProviderDeleteResult, ProviderListResult, ProviderCreateResult, ProviderGetResult, ProviderContext, ProviderStorage, } from './types.js';
9
+ export { PMOTicketProvider } from './pmo-provider.js';
10
+ export { LinearTicketProvider } from './linear-provider.js';
11
+ export { resolveTicketProvider, resolveProjectProvider } from './resolver.js';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Ticket Providers — public API.
3
+ *
4
+ * Unified provider interface for all ticket operations across backends.
5
+ * provider.moveTicket(), .listTickets(), .createTicket(), .deleteTicket()
6
+ * — same interface whether Linear, Jira, or local PMO.
7
+ */
8
+ export { PMOTicketProvider } from './pmo-provider.js';
9
+ export { LinearTicketProvider } from './linear-provider.js';
10
+ export { resolveTicketProvider, resolveProjectProvider } from './resolver.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Linear Ticket Provider
3
+ *
4
+ * Writes ticket operations directly to Linear via API,
5
+ * then updates local PMO to keep it in sync.
6
+ *
7
+ * Emits work:status_changed with source='linear' so the outbound sync
8
+ * handler skips Linear (avoiding double-write).
9
+ */
10
+ import type Database from 'better-sqlite3';
11
+ import type { TicketFilter, CreateTicketInput } from '../pmo/types.js';
12
+ import type { TicketProvider, ProviderMoveResult, ProviderDeleteResult, ProviderListResult, ProviderCreateResult, ProviderGetResult, ProviderStorage } from './types.js';
13
+ export declare class LinearTicketProvider implements TicketProvider {
14
+ private db;
15
+ private storage;
16
+ private projectId;
17
+ private ticketStatusCategory;
18
+ readonly name: "linear";
19
+ constructor(db: Database.Database, storage: ProviderStorage, projectId: string, ticketStatusCategory: string | null);
20
+ private getApiKeyOrFail;
21
+ moveTicket(ticketId: string, newState: string): Promise<ProviderMoveResult>;
22
+ deleteTicket(ticketId: string): Promise<ProviderDeleteResult>;
23
+ listTickets(projectId?: string, filter?: TicketFilter): Promise<ProviderListResult>;
24
+ createTicket(projectId: string, input: CreateTicketInput): Promise<ProviderCreateResult>;
25
+ getTicket(ticketId: string): Promise<ProviderGetResult>;
26
+ }
@@ -0,0 +1,339 @@
1
+ /**
2
+ * Linear Ticket Provider
3
+ *
4
+ * Writes ticket operations directly to Linear via API,
5
+ * then updates local PMO to keep it in sync.
6
+ *
7
+ * Emits work:status_changed with source='linear' so the outbound sync
8
+ * handler skips Linear (avoiding double-write).
9
+ */
10
+ import { LinearClient } from '../linear/client.js';
11
+ import { LinearMapper } from '../linear/mapper.js';
12
+ import { getLinearApiKey, loadLinearConfig } from '../linear/config.js';
13
+ import { findMatchingLinearState } from '../external-issues/outbound-sync.js';
14
+ import { listLinearIssues } from '../external-issues/linear.js';
15
+ import { PMO_PRIORITY_TO_LINEAR, LINEAR_PRIORITY_TO_PMO } from '../linear/types.js';
16
+ export class LinearTicketProvider {
17
+ db;
18
+ storage;
19
+ projectId;
20
+ ticketStatusCategory;
21
+ name = 'linear';
22
+ constructor(db, storage, projectId, ticketStatusCategory) {
23
+ this.db = db;
24
+ this.storage = storage;
25
+ this.projectId = projectId;
26
+ this.ticketStatusCategory = ticketStatusCategory;
27
+ }
28
+ getApiKeyOrFail() {
29
+ const apiKey = getLinearApiKey(this.db);
30
+ if (!apiKey)
31
+ throw new Error('Linear API key not configured');
32
+ return apiKey;
33
+ }
34
+ async moveTicket(ticketId, newState) {
35
+ // 1. Get Linear API key
36
+ const apiKey = getLinearApiKey(this.db);
37
+ if (!apiKey) {
38
+ return { success: false, provider: 'linear', error: 'Linear API key not configured' };
39
+ }
40
+ // 2. Look up Linear mapping for this PMO ticket
41
+ const mapper = new LinearMapper(this.db);
42
+ const mapping = mapper.getByTicketId(ticketId);
43
+ if (!mapping) {
44
+ return { success: false, provider: 'linear', error: `No Linear mapping for ticket ${ticketId}` };
45
+ }
46
+ // 3. Get Linear team's workflow states
47
+ const client = new LinearClient(apiKey);
48
+ let team;
49
+ try {
50
+ team = await client.getTeamByKey(mapping.linearTeamKey);
51
+ }
52
+ catch (error) {
53
+ return {
54
+ success: false,
55
+ provider: 'linear',
56
+ error: `Failed to get Linear team: ${error instanceof Error ? error.message : String(error)}`,
57
+ };
58
+ }
59
+ if (!team) {
60
+ return { success: false, provider: 'linear', error: `Linear team not found: ${mapping.linearTeamKey}` };
61
+ }
62
+ let states;
63
+ try {
64
+ states = await client.listStates(team.id);
65
+ }
66
+ catch (error) {
67
+ return {
68
+ success: false,
69
+ provider: 'linear',
70
+ error: `Failed to list Linear states: ${error instanceof Error ? error.message : String(error)}`,
71
+ };
72
+ }
73
+ // 4. Find the matching Linear state for the target PMO state
74
+ // Map PMO status category to Linear state type for category matching
75
+ const categoryType = mapPMOStateToLinearType(newState);
76
+ const matchingState = findMatchingLinearState(states, newState, categoryType);
77
+ if (!matchingState) {
78
+ return {
79
+ success: false,
80
+ provider: 'linear',
81
+ error: `No matching Linear state for "${newState}" (category: ${categoryType})`,
82
+ };
83
+ }
84
+ // 5. Update the issue state on Linear
85
+ try {
86
+ await client.updateIssueState(mapping.linearIssueId, matchingState.id);
87
+ }
88
+ catch (error) {
89
+ return {
90
+ success: false,
91
+ provider: 'linear',
92
+ error: `Failed to update Linear issue: ${error instanceof Error ? error.message : String(error)}`,
93
+ };
94
+ }
95
+ // 6. Also update local PMO to keep it in sync
96
+ try {
97
+ await this.storage.moveTicket(this.projectId, ticketId, newState);
98
+ }
99
+ catch {
100
+ // Non-fatal: Linear is the source of truth, local PMO is best-effort
101
+ }
102
+ // 7. Post a comment about the status change
103
+ try {
104
+ await client.addComment(mapping.linearIssueId, `Status updated to **${newState}** (via prlt post-execution transition)`);
105
+ }
106
+ catch {
107
+ // Non-fatal: comment is informational
108
+ }
109
+ // 8. Update sync timestamp
110
+ try {
111
+ mapper.updateSyncTimestamp(ticketId);
112
+ }
113
+ catch {
114
+ // Non-fatal
115
+ }
116
+ return { success: true, provider: 'linear' };
117
+ }
118
+ async deleteTicket(ticketId) {
119
+ let apiKey;
120
+ try {
121
+ apiKey = this.getApiKeyOrFail();
122
+ }
123
+ catch {
124
+ return { success: false, provider: 'linear', error: 'Linear API key not configured' };
125
+ }
126
+ // Look up Linear mapping
127
+ const mapper = new LinearMapper(this.db);
128
+ const mapping = mapper.getByTicketId(ticketId);
129
+ if (mapping) {
130
+ // Archive the issue in Linear
131
+ const client = new LinearClient(apiKey);
132
+ try {
133
+ await client.archiveIssue(mapping.linearIssueId);
134
+ }
135
+ catch (error) {
136
+ return {
137
+ success: false,
138
+ provider: 'linear',
139
+ error: `Failed to archive Linear issue: ${error instanceof Error ? error.message : String(error)}`,
140
+ };
141
+ }
142
+ // Remove the mapping
143
+ try {
144
+ mapper.deleteMapping(ticketId);
145
+ }
146
+ catch {
147
+ // Non-fatal
148
+ }
149
+ }
150
+ // Also delete the local PMO mirror
151
+ try {
152
+ await this.storage.deleteTicket(ticketId);
153
+ }
154
+ catch {
155
+ // Non-fatal if Linear archive succeeded
156
+ }
157
+ return { success: true, provider: 'linear' };
158
+ }
159
+ async listTickets(projectId, filter) {
160
+ let apiKey;
161
+ try {
162
+ apiKey = this.getApiKeyOrFail();
163
+ }
164
+ catch {
165
+ return { success: false, provider: 'linear', tickets: [], error: 'Linear API key not configured' };
166
+ }
167
+ const linearConfig = loadLinearConfig(this.db);
168
+ const team = linearConfig?.defaultTeamKey || process.env.PRLT_LINEAR_TEAM;
169
+ try {
170
+ const envelopes = await listLinearIssues({ apiKey, team }, { limit: 50 });
171
+ let tickets = envelopes.map(envelope => ({
172
+ id: envelope.source.externalKey,
173
+ title: envelope.title,
174
+ description: envelope.description || undefined,
175
+ priority: envelope.priority || undefined,
176
+ category: envelope.category || undefined,
177
+ projectId: envelope.projectKey,
178
+ projectName: envelope.projectKey,
179
+ statusId: envelope.status,
180
+ statusName: envelope.status,
181
+ owner: envelope.assignee || undefined,
182
+ assignee: envelope.assignee || undefined,
183
+ subtasks: [],
184
+ labels: envelope.labels,
185
+ metadata: {
186
+ external_source: envelope.source.name,
187
+ external_key: envelope.source.externalKey,
188
+ external_id: envelope.source.externalId,
189
+ external_url: envelope.source.url,
190
+ },
191
+ createdAt: new Date(),
192
+ updatedAt: new Date(),
193
+ }));
194
+ // Apply client-side filters
195
+ if (filter?.priority) {
196
+ tickets = tickets.filter(t => t.priority === filter.priority);
197
+ }
198
+ if (filter?.column) {
199
+ tickets = tickets.filter(t => t.statusName === filter.column);
200
+ }
201
+ if (filter?.category) {
202
+ tickets = tickets.filter(t => t.category === filter.category);
203
+ }
204
+ if (filter?.search) {
205
+ const term = filter.search.toLowerCase();
206
+ tickets = tickets.filter(t => t.title.toLowerCase().includes(term) ||
207
+ (t.description || '').toLowerCase().includes(term));
208
+ }
209
+ if (filter?.label) {
210
+ const label = filter.label.toLowerCase();
211
+ tickets = tickets.filter(t => t.labels.some(l => l.toLowerCase() === label));
212
+ }
213
+ return { success: true, provider: 'linear', tickets };
214
+ }
215
+ catch (error) {
216
+ return {
217
+ success: false,
218
+ provider: 'linear',
219
+ tickets: [],
220
+ error: error instanceof Error ? error.message : String(error),
221
+ };
222
+ }
223
+ }
224
+ async createTicket(projectId, input) {
225
+ let apiKey;
226
+ try {
227
+ apiKey = this.getApiKeyOrFail();
228
+ }
229
+ catch {
230
+ return { success: false, provider: 'linear', error: 'Linear API key not configured' };
231
+ }
232
+ const client = new LinearClient(apiKey);
233
+ const linearConfig = loadLinearConfig(this.db);
234
+ const teamKey = linearConfig?.defaultTeamKey || process.env.PRLT_LINEAR_TEAM;
235
+ if (!teamKey) {
236
+ return { success: false, provider: 'linear', error: 'Linear team key is required. Set PRLT_LINEAR_TEAM.' };
237
+ }
238
+ const team = await client.getTeamByKey(teamKey);
239
+ if (!team) {
240
+ return { success: false, provider: 'linear', error: `Linear team "${teamKey}" not found.` };
241
+ }
242
+ try {
243
+ // Map PMO priority to Linear priority number
244
+ const linearPriority = input.priority ? PMO_PRIORITY_TO_LINEAR[input.priority] : undefined;
245
+ // Create the issue in Linear
246
+ const issue = await client.createIssue({
247
+ teamId: team.id,
248
+ title: input.title,
249
+ description: input.description,
250
+ priority: linearPriority,
251
+ });
252
+ // Create local PMO mirror ticket
253
+ const mirrorDescription = [
254
+ input.description || '',
255
+ '',
256
+ '---',
257
+ `_Created in Linear: [${issue.identifier}](${issue.url})_`,
258
+ ].join('\n').trim();
259
+ const mirrorPriority = input.priority || LINEAR_PRIORITY_TO_PMO[issue.priority] || undefined;
260
+ const pmoTicket = await this.storage.createTicket(projectId, {
261
+ ...input,
262
+ title: issue.title,
263
+ description: mirrorDescription,
264
+ priority: mirrorPriority,
265
+ metadata: {
266
+ ...input.metadata,
267
+ 'external_source': 'linear',
268
+ 'external_id': issue.id,
269
+ 'external_key': issue.identifier,
270
+ 'external_url': issue.url,
271
+ 'linear.issue_id': issue.id,
272
+ 'linear.identifier': issue.identifier,
273
+ 'linear.url': issue.url,
274
+ 'linear.team': issue.team.key,
275
+ 'linear.state': issue.state.name,
276
+ },
277
+ });
278
+ // Create mapping record for sync operations
279
+ const mapper = new LinearMapper(this.db);
280
+ mapper.createMapping({
281
+ pmoTicketId: pmoTicket.id,
282
+ linearIssueId: issue.id,
283
+ linearIdentifier: issue.identifier,
284
+ linearTeamKey: issue.team.key,
285
+ linearUrl: issue.url,
286
+ syncDirection: 'outbound',
287
+ createdAt: new Date(),
288
+ });
289
+ return { success: true, provider: 'linear', ticket: pmoTicket };
290
+ }
291
+ catch (error) {
292
+ return {
293
+ success: false,
294
+ provider: 'linear',
295
+ error: error instanceof Error ? error.message : String(error),
296
+ };
297
+ }
298
+ }
299
+ async getTicket(ticketId) {
300
+ // For getTicket, use local PMO since we maintain mirrors
301
+ // This avoids unnecessary API calls for reads
302
+ try {
303
+ const ticket = await this.storage.getTicket(ticketId);
304
+ return { success: true, provider: 'linear', ticket };
305
+ }
306
+ catch (error) {
307
+ return {
308
+ success: false,
309
+ provider: 'linear',
310
+ error: error instanceof Error ? error.message : String(error),
311
+ };
312
+ }
313
+ }
314
+ }
315
+ /**
316
+ * Map a PMO status name to the most likely Linear state type.
317
+ * Used as a fallback when exact name matching fails.
318
+ */
319
+ function mapPMOStateToLinearType(stateName) {
320
+ const lower = stateName.toLowerCase();
321
+ if (lower.includes('review') || lower.includes('in progress') || lower.includes('started')) {
322
+ return 'started';
323
+ }
324
+ if (lower.includes('done') || lower.includes('complete') || lower.includes('merged')) {
325
+ return 'completed';
326
+ }
327
+ if (lower.includes('backlog')) {
328
+ return 'backlog';
329
+ }
330
+ if (lower.includes('cancel')) {
331
+ return 'canceled';
332
+ }
333
+ if (lower.includes('triage')) {
334
+ return 'triage';
335
+ }
336
+ // Default to started for unknown states (most post-execution transitions go forward)
337
+ return 'started';
338
+ }
339
+ //# sourceMappingURL=linear-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear-provider.js","sourceRoot":"","sources":["../../../src/lib/providers/linear-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAYnF,MAAM,OAAO,oBAAoB;IAIrB;IACA;IACA;IACA;IAND,IAAI,GAAG,QAAiB,CAAA;IAEjC,YACU,EAAqB,EACrB,OAAwB,EACxB,SAAiB,EACjB,oBAAmC;QAHnC,OAAE,GAAF,EAAE,CAAmB;QACrB,YAAO,GAAP,OAAO,CAAiB;QACxB,cAAS,GAAT,SAAS,CAAQ;QACjB,yBAAoB,GAApB,oBAAoB,CAAe;IAC1C,CAAC;IAEI,eAAe;QACrB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAC7D,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,QAAgB;QACjD,wBAAwB;QACxB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;QACvF,CAAC;QAED,gDAAgD;QAChD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,gCAAgC,QAAQ,EAAE,EAAE,CAAA;QAClG,CAAC;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QAEvC,IAAI,IAAsD,CAAA;QAC1D,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC9F,CAAA;QACH,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,OAAO,CAAC,aAAa,EAAE,EAAE,CAAA;QACzG,CAAC;QAED,IAAI,MAAyD,CAAA;QAC7D,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACjG,CAAA;QACH,CAAC;QAED,6DAA6D;QAC7D,qEAAqE;QACrE,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAA;QACtD,MAAM,aAAa,GAAG,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAE7E,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,iCAAiC,QAAQ,gBAAgB,YAAY,GAAG;aAChF,CAAA;QACH,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAClG,CAAA;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,UAAU,CACrB,OAAO,CAAC,aAAa,EACrB,uBAAuB,QAAQ,yCAAyC,CACzE,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;QACxC,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC;YACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,IAAI,MAAc,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;QACvF,CAAC;QAED,yBAAyB;QACzB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAE9C,IAAI,OAAO,EAAE,CAAC;YACZ,8BAA8B;YAC9B,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;YACvC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBACnG,CAAA;YACH,CAAC;YAED,qBAAqB;YACrB,IAAI,CAAC;gBACH,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAkB,EAAE,MAAqB;QACzD,IAAI,MAAc,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;QACpG,CAAC;QAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9C,MAAM,IAAI,GAAG,YAAY,EAAE,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA;QAEzE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;YAEzE,IAAI,OAAO,GAAa,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACjD,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;gBAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,SAAS;gBAC9C,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;gBACxC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;gBACxC,SAAS,EAAE,QAAQ,CAAC,UAAU;gBAC9B,WAAW,EAAE,QAAQ,CAAC,UAAU;gBAChC,QAAQ,EAAE,QAAQ,CAAC,MAAM;gBACzB,UAAU,EAAE,QAAQ,CAAC,MAAM;gBAC3B,KAAK,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;gBACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;gBACxC,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE;oBACR,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;oBACrC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;oBACzC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;oBACvC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG;iBAClC;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC,CAAA;YAEH,4BAA4B;YAC5B,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACrB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC/D,CAAC;YACD,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;gBACnB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,CAAA;YAC/D,CAAC;YACD,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACrB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC/D,CAAC;YACD,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;gBACxC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC3B,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACpC,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CACnD,CAAA;YACH,CAAC;YACD,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;gBACxC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC,CAAA;YAC9E,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,KAAwB;QAC5D,IAAI,MAAc,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;QACvF,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAG,YAAY,EAAE,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA;QAE5E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAA;QAC5G,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,OAAO,cAAc,EAAE,CAAA;QAC7F,CAAC;QAED,IAAI,CAAC;YACH,6CAA6C;YAC7C,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAE1F,6BAA6B;YAC7B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;gBACrC,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,QAAQ,EAAE,cAAc;aACzB,CAAC,CAAA;YAEF,iCAAiC;YACjC,MAAM,iBAAiB,GAAG;gBACxB,KAAK,CAAC,WAAW,IAAI,EAAE;gBACvB,EAAE;gBACF,KAAK;gBACL,wBAAwB,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,GAAG,IAAI;aAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;YAEnB,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,IAAI,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAA;YAE5F,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE;gBAC3D,GAAG,KAAK;gBACR,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,iBAAiB;gBAC9B,QAAQ,EAAE,cAAc;gBACxB,QAAQ,EAAE;oBACR,GAAG,KAAK,CAAC,QAAQ;oBACjB,iBAAiB,EAAE,QAAQ;oBAC3B,aAAa,EAAE,KAAK,CAAC,EAAE;oBACvB,cAAc,EAAE,KAAK,CAAC,UAAU;oBAChC,cAAc,EAAE,KAAK,CAAC,GAAG;oBACzB,iBAAiB,EAAE,KAAK,CAAC,EAAE;oBAC3B,mBAAmB,EAAE,KAAK,CAAC,UAAU;oBACrC,YAAY,EAAE,KAAK,CAAC,GAAG;oBACvB,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG;oBAC7B,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;iBACjC;aACF,CAAC,CAAA;YAEF,4CAA4C;YAC5C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACxC,MAAM,CAAC,aAAa,CAAC;gBACnB,WAAW,EAAE,SAAS,CAAC,EAAE;gBACzB,aAAa,EAAE,KAAK,CAAC,EAAE;gBACvB,gBAAgB,EAAE,KAAK,CAAC,UAAU;gBAClC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG;gBAC7B,SAAS,EAAE,KAAK,CAAC,GAAG;gBACpB,aAAa,EAAE,UAAU;gBACzB,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAA;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,yDAAyD;QACzD,8CAA8C;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAA;QACH,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,SAAiB;IAChD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;IACrC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3F,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrF,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,qFAAqF;IACrF,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * PMO Ticket Provider
3
+ *
4
+ * Default provider for users without external integrations.
5
+ * Wraps the existing PMO storage calls.
6
+ * Emits ticket:status_changed events via the storage layer.
7
+ */
8
+ import type { TicketFilter, CreateTicketInput } from '../pmo/types.js';
9
+ import type { TicketProvider, ProviderMoveResult, ProviderDeleteResult, ProviderListResult, ProviderCreateResult, ProviderGetResult, ProviderStorage } from './types.js';
10
+ export declare class PMOTicketProvider implements TicketProvider {
11
+ private storage;
12
+ private projectId;
13
+ readonly name: "pmo";
14
+ constructor(storage: ProviderStorage, projectId: string);
15
+ moveTicket(ticketId: string, newState: string): Promise<ProviderMoveResult>;
16
+ deleteTicket(ticketId: string): Promise<ProviderDeleteResult>;
17
+ listTickets(projectId?: string, filter?: TicketFilter): Promise<ProviderListResult>;
18
+ createTicket(projectId: string, input: CreateTicketInput): Promise<ProviderCreateResult>;
19
+ getTicket(ticketId: string): Promise<ProviderGetResult>;
20
+ }