@proletariat/cli 0.3.51 → 0.3.53

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 (883) hide show
  1. package/README.md +28 -0
  2. package/bin/run.js +21 -11
  3. package/dist/commands/action/create.js +1 -0
  4. package/dist/commands/action/create.js.map +1 -0
  5. package/dist/commands/action/delete.js +1 -0
  6. package/dist/commands/action/delete.js.map +1 -0
  7. package/dist/commands/action/index.js +1 -0
  8. package/dist/commands/action/index.js.map +1 -0
  9. package/dist/commands/action/list.js +1 -0
  10. package/dist/commands/action/list.js.map +1 -0
  11. package/dist/commands/action/run.js +1 -0
  12. package/dist/commands/action/run.js.map +1 -0
  13. package/dist/commands/action/show.js +1 -0
  14. package/dist/commands/action/show.js.map +1 -0
  15. package/dist/commands/action/update.js +1 -0
  16. package/dist/commands/action/update.js.map +1 -0
  17. package/dist/commands/agent/auth.js +1 -0
  18. package/dist/commands/agent/auth.js.map +1 -0
  19. package/dist/commands/agent/cleanup.js +1 -0
  20. package/dist/commands/agent/cleanup.js.map +1 -0
  21. package/dist/commands/agent/discover.js +1 -0
  22. package/dist/commands/agent/discover.js.map +1 -0
  23. package/dist/commands/agent/index.js +1 -0
  24. package/dist/commands/agent/index.js.map +1 -0
  25. package/dist/commands/agent/list.js +1 -0
  26. package/dist/commands/agent/list.js.map +1 -0
  27. package/dist/commands/agent/login.js +1 -0
  28. package/dist/commands/agent/login.js.map +1 -0
  29. package/dist/commands/agent/rebuild.js +1 -0
  30. package/dist/commands/agent/rebuild.js.map +1 -0
  31. package/dist/commands/agent/remove.js +1 -0
  32. package/dist/commands/agent/remove.js.map +1 -0
  33. package/dist/commands/agent/restart.js +1 -0
  34. package/dist/commands/agent/restart.js.map +1 -0
  35. package/dist/commands/agent/shell.js +5 -1
  36. package/dist/commands/agent/shell.js.map +1 -0
  37. package/dist/commands/agent/staff/add.js +1 -0
  38. package/dist/commands/agent/staff/add.js.map +1 -0
  39. package/dist/commands/agent/staff/index.js +1 -0
  40. package/dist/commands/agent/staff/index.js.map +1 -0
  41. package/dist/commands/agent/staff/list.js +1 -0
  42. package/dist/commands/agent/staff/list.js.map +1 -0
  43. package/dist/commands/agent/staff/remove.js +1 -0
  44. package/dist/commands/agent/staff/remove.js.map +1 -0
  45. package/dist/commands/agent/status.js +2 -0
  46. package/dist/commands/agent/status.js.map +1 -0
  47. package/dist/commands/agent/themes/add-names.js +1 -0
  48. package/dist/commands/agent/themes/add-names.js.map +1 -0
  49. package/dist/commands/agent/themes/create.js +1 -0
  50. package/dist/commands/agent/themes/create.js.map +1 -0
  51. package/dist/commands/agent/themes/index.js +1 -0
  52. package/dist/commands/agent/themes/index.js.map +1 -0
  53. package/dist/commands/agent/themes/list.js +1 -0
  54. package/dist/commands/agent/themes/list.js.map +1 -0
  55. package/dist/commands/agent/themes/set.js +1 -0
  56. package/dist/commands/agent/themes/set.js.map +1 -0
  57. package/dist/commands/agent/visit.js +1 -0
  58. package/dist/commands/agent/visit.js.map +1 -0
  59. package/dist/commands/agents/themes/add-names.js +1 -0
  60. package/dist/commands/agents/themes/add-names.js.map +1 -0
  61. package/dist/commands/agents/themes/create.js +1 -0
  62. package/dist/commands/agents/themes/create.js.map +1 -0
  63. package/dist/commands/agents/themes/list.js +1 -0
  64. package/dist/commands/agents/themes/list.js.map +1 -0
  65. package/dist/commands/asana/connect.d.ts +15 -0
  66. package/dist/commands/asana/connect.js +268 -0
  67. package/dist/commands/asana/connect.js.map +1 -0
  68. package/dist/commands/asana/sync.d.ts +15 -0
  69. package/dist/commands/asana/sync.js +190 -0
  70. package/dist/commands/asana/sync.js.map +1 -0
  71. package/dist/commands/autocomplete/setup.js +1 -0
  72. package/dist/commands/autocomplete/setup.js.map +1 -0
  73. package/dist/commands/board/index.js +1 -0
  74. package/dist/commands/board/index.js.map +1 -0
  75. package/dist/commands/board/view.js +1 -0
  76. package/dist/commands/board/view.js.map +1 -0
  77. package/dist/commands/board/watch.js +1 -0
  78. package/dist/commands/board/watch.js.map +1 -0
  79. package/dist/commands/branch/create.js +1 -0
  80. package/dist/commands/branch/create.js.map +1 -0
  81. package/dist/commands/branch/index.js +1 -0
  82. package/dist/commands/branch/index.js.map +1 -0
  83. package/dist/commands/branch/list.js +1 -0
  84. package/dist/commands/branch/list.js.map +1 -0
  85. package/dist/commands/branch/validate.js +1 -0
  86. package/dist/commands/branch/validate.js.map +1 -0
  87. package/dist/commands/branch/where.js +1 -0
  88. package/dist/commands/branch/where.js.map +1 -0
  89. package/dist/commands/caffeinate/index.js +1 -0
  90. package/dist/commands/caffeinate/index.js.map +1 -0
  91. package/dist/commands/caffeinate/start.js +1 -0
  92. package/dist/commands/caffeinate/start.js.map +1 -0
  93. package/dist/commands/caffeinate/status.js +1 -0
  94. package/dist/commands/caffeinate/status.js.map +1 -0
  95. package/dist/commands/caffeinate/stop.js +1 -0
  96. package/dist/commands/caffeinate/stop.js.map +1 -0
  97. package/dist/commands/category/create.js +1 -0
  98. package/dist/commands/category/create.js.map +1 -0
  99. package/dist/commands/category/delete.js +1 -0
  100. package/dist/commands/category/delete.js.map +1 -0
  101. package/dist/commands/category/index.js +1 -0
  102. package/dist/commands/category/index.js.map +1 -0
  103. package/dist/commands/category/list.js +1 -0
  104. package/dist/commands/category/list.js.map +1 -0
  105. package/dist/commands/category/rename.js +1 -0
  106. package/dist/commands/category/rename.js.map +1 -0
  107. package/dist/commands/claude/index.js +11 -5
  108. package/dist/commands/claude/index.js.map +1 -0
  109. package/dist/commands/claude/open.js +1 -0
  110. package/dist/commands/claude/open.js.map +1 -0
  111. package/dist/commands/commit.js +1 -0
  112. package/dist/commands/commit.js.map +1 -0
  113. package/dist/commands/config/index.js +8 -1
  114. package/dist/commands/config/index.js.map +1 -0
  115. package/dist/commands/diet.js +1 -0
  116. package/dist/commands/diet.js.map +1 -0
  117. package/dist/commands/docker/clean.js +1 -0
  118. package/dist/commands/docker/clean.js.map +1 -0
  119. package/dist/commands/docker/index.js +1 -0
  120. package/dist/commands/docker/index.js.map +1 -0
  121. package/dist/commands/docker/list.js +1 -0
  122. package/dist/commands/docker/list.js.map +1 -0
  123. package/dist/commands/docker/logs.js +4 -1
  124. package/dist/commands/docker/logs.js.map +1 -0
  125. package/dist/commands/docker/prune.js +1 -0
  126. package/dist/commands/docker/prune.js.map +1 -0
  127. package/dist/commands/docker/restart.js +1 -0
  128. package/dist/commands/docker/restart.js.map +1 -0
  129. package/dist/commands/docker/shell.js +4 -1
  130. package/dist/commands/docker/shell.js.map +1 -0
  131. package/dist/commands/docker/start.js +1 -0
  132. package/dist/commands/docker/start.js.map +1 -0
  133. package/dist/commands/docker/status.js +1 -0
  134. package/dist/commands/docker/status.js.map +1 -0
  135. package/dist/commands/docker/stop.js +1 -0
  136. package/dist/commands/docker/stop.js.map +1 -0
  137. package/dist/commands/docker/sync.js +1 -0
  138. package/dist/commands/docker/sync.js.map +1 -0
  139. package/dist/commands/epic/activate.js +1 -0
  140. package/dist/commands/epic/activate.js.map +1 -0
  141. package/dist/commands/epic/archive.js +1 -0
  142. package/dist/commands/epic/archive.js.map +1 -0
  143. package/dist/commands/epic/create.js +1 -0
  144. package/dist/commands/epic/create.js.map +1 -0
  145. package/dist/commands/epic/delete.js +1 -0
  146. package/dist/commands/epic/delete.js.map +1 -0
  147. package/dist/commands/epic/index.js +1 -0
  148. package/dist/commands/epic/index.js.map +1 -0
  149. package/dist/commands/epic/list.js +1 -0
  150. package/dist/commands/epic/list.js.map +1 -0
  151. package/dist/commands/epic/move.js +1 -0
  152. package/dist/commands/epic/move.js.map +1 -0
  153. package/dist/commands/epic/progress.js +1 -0
  154. package/dist/commands/epic/progress.js.map +1 -0
  155. package/dist/commands/epic/project.js +1 -0
  156. package/dist/commands/epic/project.js.map +1 -0
  157. package/dist/commands/epic/reorder.js +1 -0
  158. package/dist/commands/epic/reorder.js.map +1 -0
  159. package/dist/commands/epic/show.js +1 -0
  160. package/dist/commands/epic/show.js.map +1 -0
  161. package/dist/commands/epic/spec.js +1 -0
  162. package/dist/commands/epic/spec.js.map +1 -0
  163. package/dist/commands/epic/ticket.js +1 -0
  164. package/dist/commands/epic/ticket.js.map +1 -0
  165. package/dist/commands/epic/view.js +1 -0
  166. package/dist/commands/epic/view.js.map +1 -0
  167. package/dist/commands/execution/config.js +1 -0
  168. package/dist/commands/execution/config.js.map +1 -0
  169. package/dist/commands/execution/index.js +1 -0
  170. package/dist/commands/execution/index.js.map +1 -0
  171. package/dist/commands/execution/kill.js +1 -0
  172. package/dist/commands/execution/kill.js.map +1 -0
  173. package/dist/commands/execution/list.js +4 -0
  174. package/dist/commands/execution/list.js.map +1 -0
  175. package/dist/commands/execution/logs.js +4 -5
  176. package/dist/commands/execution/logs.js.map +1 -0
  177. package/dist/commands/execution/stop.js +1 -0
  178. package/dist/commands/execution/stop.js.map +1 -0
  179. package/dist/commands/execution/view.js +11 -0
  180. package/dist/commands/execution/view.js.map +1 -0
  181. package/dist/commands/feedback/index.js +1 -0
  182. package/dist/commands/feedback/index.js.map +1 -0
  183. package/dist/commands/feedback/list.js +1 -0
  184. package/dist/commands/feedback/list.js.map +1 -0
  185. package/dist/commands/feedback/submit.js +1 -0
  186. package/dist/commands/feedback/submit.js.map +1 -0
  187. package/dist/commands/feedback/view.js +1 -0
  188. package/dist/commands/feedback/view.js.map +1 -0
  189. package/dist/commands/gh/index.js +1 -0
  190. package/dist/commands/gh/index.js.map +1 -0
  191. package/dist/commands/gh/login.js +4 -1
  192. package/dist/commands/gh/login.js.map +1 -0
  193. package/dist/commands/gh/status.js +1 -0
  194. package/dist/commands/gh/status.js.map +1 -0
  195. package/dist/commands/gh/token.js +1 -0
  196. package/dist/commands/gh/token.js.map +1 -0
  197. package/dist/commands/init.js +1 -0
  198. package/dist/commands/init.js.map +1 -0
  199. package/dist/commands/label/create.js +1 -0
  200. package/dist/commands/label/create.js.map +1 -0
  201. package/dist/commands/label/delete.js +1 -0
  202. package/dist/commands/label/delete.js.map +1 -0
  203. package/dist/commands/label/group/create.js +1 -0
  204. package/dist/commands/label/group/create.js.map +1 -0
  205. package/dist/commands/label/group/list.js +1 -0
  206. package/dist/commands/label/group/list.js.map +1 -0
  207. package/dist/commands/label/index.js +1 -0
  208. package/dist/commands/label/index.js.map +1 -0
  209. package/dist/commands/label/list.js +1 -0
  210. package/dist/commands/label/list.js.map +1 -0
  211. package/dist/commands/linear/auth.d.ts +1 -0
  212. package/dist/commands/linear/auth.js +7 -5
  213. package/dist/commands/linear/auth.js.map +1 -0
  214. package/dist/commands/linear/connect.d.ts +17 -0
  215. package/dist/commands/linear/connect.js +298 -0
  216. package/dist/commands/linear/connect.js.map +1 -0
  217. package/dist/commands/linear/import.js +3 -2
  218. package/dist/commands/linear/import.js.map +1 -0
  219. package/dist/commands/linear/status.js +42 -5
  220. package/dist/commands/linear/status.js.map +1 -0
  221. package/dist/commands/linear/sync.js +3 -2
  222. package/dist/commands/linear/sync.js.map +1 -0
  223. package/dist/commands/link/create.js +1 -0
  224. package/dist/commands/link/create.js.map +1 -0
  225. package/dist/commands/link/index.js +1 -0
  226. package/dist/commands/link/index.js.map +1 -0
  227. package/dist/commands/link/list.js +1 -0
  228. package/dist/commands/link/list.js.map +1 -0
  229. package/dist/commands/link/remove.js +1 -0
  230. package/dist/commands/link/remove.js.map +1 -0
  231. package/dist/commands/mcp-server.js +1 -0
  232. package/dist/commands/mcp-server.js.map +1 -0
  233. package/dist/commands/monday/connect.d.ts +16 -0
  234. package/dist/commands/monday/connect.js +213 -0
  235. package/dist/commands/monday/connect.js.map +1 -0
  236. package/dist/commands/monday/sync.d.ts +14 -0
  237. package/dist/commands/monday/sync.js +179 -0
  238. package/dist/commands/monday/sync.js.map +1 -0
  239. package/dist/commands/orchestrator/attach.js +50 -13
  240. package/dist/commands/orchestrator/attach.js.map +1 -0
  241. package/dist/commands/orchestrator/index.js +1 -0
  242. package/dist/commands/orchestrator/index.js.map +1 -0
  243. package/dist/commands/orchestrator/start.d.ts +15 -0
  244. package/dist/commands/orchestrator/start.js +187 -13
  245. package/dist/commands/orchestrator/start.js.map +1 -0
  246. package/dist/commands/orchestrator/status.js +63 -28
  247. package/dist/commands/orchestrator/status.js.map +1 -0
  248. package/dist/commands/orchestrator/stop.js +65 -17
  249. package/dist/commands/orchestrator/stop.js.map +1 -0
  250. package/dist/commands/phase/create.js +1 -0
  251. package/dist/commands/phase/create.js.map +1 -0
  252. package/dist/commands/phase/delete.js +1 -0
  253. package/dist/commands/phase/delete.js.map +1 -0
  254. package/dist/commands/phase/list.js +1 -0
  255. package/dist/commands/phase/list.js.map +1 -0
  256. package/dist/commands/phase/move.js +1 -0
  257. package/dist/commands/phase/move.js.map +1 -0
  258. package/dist/commands/phase/template/apply.js +1 -0
  259. package/dist/commands/phase/template/apply.js.map +1 -0
  260. package/dist/commands/phase/template/create.js +1 -0
  261. package/dist/commands/phase/template/create.js.map +1 -0
  262. package/dist/commands/phase/template/delete.js +1 -0
  263. package/dist/commands/phase/template/delete.js.map +1 -0
  264. package/dist/commands/phase/template/list.js +1 -0
  265. package/dist/commands/phase/template/list.js.map +1 -0
  266. package/dist/commands/phase/template/update.js +1 -0
  267. package/dist/commands/phase/template/update.js.map +1 -0
  268. package/dist/commands/phase/update.js +1 -0
  269. package/dist/commands/phase/update.js.map +1 -0
  270. package/dist/commands/pmo/init.js +1 -0
  271. package/dist/commands/pmo/init.js.map +1 -0
  272. package/dist/commands/pr/create.js +4 -0
  273. package/dist/commands/pr/create.js.map +1 -0
  274. package/dist/commands/pr/index.js +1 -0
  275. package/dist/commands/pr/index.js.map +1 -0
  276. package/dist/commands/pr/link.js +1 -0
  277. package/dist/commands/pr/link.js.map +1 -0
  278. package/dist/commands/pr/list.js +1 -0
  279. package/dist/commands/pr/list.js.map +1 -0
  280. package/dist/commands/pr/status.js +1 -0
  281. package/dist/commands/pr/status.js.map +1 -0
  282. package/dist/commands/priority/add.js +1 -0
  283. package/dist/commands/priority/add.js.map +1 -0
  284. package/dist/commands/priority/list.js +1 -0
  285. package/dist/commands/priority/list.js.map +1 -0
  286. package/dist/commands/priority/remove.js +1 -0
  287. package/dist/commands/priority/remove.js.map +1 -0
  288. package/dist/commands/priority/set.js +1 -0
  289. package/dist/commands/priority/set.js.map +1 -0
  290. package/dist/commands/project/archive.js +1 -0
  291. package/dist/commands/project/archive.js.map +1 -0
  292. package/dist/commands/project/create.js +1 -0
  293. package/dist/commands/project/create.js.map +1 -0
  294. package/dist/commands/project/delete.js +1 -0
  295. package/dist/commands/project/delete.js.map +1 -0
  296. package/dist/commands/project/index.js +1 -0
  297. package/dist/commands/project/index.js.map +1 -0
  298. package/dist/commands/project/list.js +1 -0
  299. package/dist/commands/project/list.js.map +1 -0
  300. package/dist/commands/project/spec.js +1 -0
  301. package/dist/commands/project/spec.js.map +1 -0
  302. package/dist/commands/project/unarchive.js +1 -0
  303. package/dist/commands/project/unarchive.js.map +1 -0
  304. package/dist/commands/project/update.js +1 -0
  305. package/dist/commands/project/update.js.map +1 -0
  306. package/dist/commands/project/view.js +1 -0
  307. package/dist/commands/project/view.js.map +1 -0
  308. package/dist/commands/pull.js +1 -0
  309. package/dist/commands/pull.js.map +1 -0
  310. package/dist/commands/qa/index.js +11 -5
  311. package/dist/commands/qa/index.js.map +1 -0
  312. package/dist/commands/repo/add.js +1 -0
  313. package/dist/commands/repo/add.js.map +1 -0
  314. package/dist/commands/repo/create.js +1 -0
  315. package/dist/commands/repo/create.js.map +1 -0
  316. package/dist/commands/repo/index.js +1 -0
  317. package/dist/commands/repo/index.js.map +1 -0
  318. package/dist/commands/repo/list.js +1 -0
  319. package/dist/commands/repo/list.js.map +1 -0
  320. package/dist/commands/repo/remove.js +1 -0
  321. package/dist/commands/repo/remove.js.map +1 -0
  322. package/dist/commands/repo/view.js +1 -0
  323. package/dist/commands/repo/view.js.map +1 -0
  324. package/dist/commands/roadmap/add-project.js +1 -0
  325. package/dist/commands/roadmap/add-project.js.map +1 -0
  326. package/dist/commands/roadmap/create.js +1 -0
  327. package/dist/commands/roadmap/create.js.map +1 -0
  328. package/dist/commands/roadmap/delete.js +1 -0
  329. package/dist/commands/roadmap/delete.js.map +1 -0
  330. package/dist/commands/roadmap/generate.js +1 -0
  331. package/dist/commands/roadmap/generate.js.map +1 -0
  332. package/dist/commands/roadmap/index.js +1 -0
  333. package/dist/commands/roadmap/index.js.map +1 -0
  334. package/dist/commands/roadmap/list.js +1 -0
  335. package/dist/commands/roadmap/list.js.map +1 -0
  336. package/dist/commands/roadmap/remove-project.js +1 -0
  337. package/dist/commands/roadmap/remove-project.js.map +1 -0
  338. package/dist/commands/roadmap/reorder.js +1 -0
  339. package/dist/commands/roadmap/reorder.js.map +1 -0
  340. package/dist/commands/roadmap/update.js +1 -0
  341. package/dist/commands/roadmap/update.js.map +1 -0
  342. package/dist/commands/roadmap/view.js +1 -0
  343. package/dist/commands/roadmap/view.js.map +1 -0
  344. package/dist/commands/session/attach.js +1 -0
  345. package/dist/commands/session/attach.js.map +1 -0
  346. package/dist/commands/session/create.js +2 -1
  347. package/dist/commands/session/create.js.map +1 -0
  348. package/dist/commands/session/health.js +5 -7
  349. package/dist/commands/session/health.js.map +1 -0
  350. package/dist/commands/session/index.js +1 -0
  351. package/dist/commands/session/index.js.map +1 -0
  352. package/dist/commands/session/list.js +7 -5
  353. package/dist/commands/session/list.js.map +1 -0
  354. package/dist/commands/session/peek.js +1 -0
  355. package/dist/commands/session/peek.js.map +1 -0
  356. package/dist/commands/session/poke.js +20 -1
  357. package/dist/commands/session/poke.js.map +1 -0
  358. package/dist/commands/spec/create.js +1 -0
  359. package/dist/commands/spec/create.js.map +1 -0
  360. package/dist/commands/spec/delete.js +1 -0
  361. package/dist/commands/spec/delete.js.map +1 -0
  362. package/dist/commands/spec/edit.js +1 -0
  363. package/dist/commands/spec/edit.js.map +1 -0
  364. package/dist/commands/spec/index.js +1 -0
  365. package/dist/commands/spec/index.js.map +1 -0
  366. package/dist/commands/spec/link/depends.js +1 -0
  367. package/dist/commands/spec/link/depends.js.map +1 -0
  368. package/dist/commands/spec/link/index.js +1 -0
  369. package/dist/commands/spec/link/index.js.map +1 -0
  370. package/dist/commands/spec/link/remove.js +1 -0
  371. package/dist/commands/spec/link/remove.js.map +1 -0
  372. package/dist/commands/spec/list.js +1 -0
  373. package/dist/commands/spec/list.js.map +1 -0
  374. package/dist/commands/spec/plan.js +1 -0
  375. package/dist/commands/spec/plan.js.map +1 -0
  376. package/dist/commands/spec/ticket.js +1 -0
  377. package/dist/commands/spec/ticket.js.map +1 -0
  378. package/dist/commands/spec/view.js +1 -0
  379. package/dist/commands/spec/view.js.map +1 -0
  380. package/dist/commands/staff/add.js +1 -0
  381. package/dist/commands/staff/add.js.map +1 -0
  382. package/dist/commands/staff/index.js +1 -0
  383. package/dist/commands/staff/index.js.map +1 -0
  384. package/dist/commands/staff/list.js +1 -0
  385. package/dist/commands/staff/list.js.map +1 -0
  386. package/dist/commands/staff/remove.js +1 -0
  387. package/dist/commands/staff/remove.js.map +1 -0
  388. package/dist/commands/status/category.js +1 -0
  389. package/dist/commands/status/category.js.map +1 -0
  390. package/dist/commands/status/create.js +1 -0
  391. package/dist/commands/status/create.js.map +1 -0
  392. package/dist/commands/status/delete.js +1 -0
  393. package/dist/commands/status/delete.js.map +1 -0
  394. package/dist/commands/status/index.js +1 -0
  395. package/dist/commands/status/index.js.map +1 -0
  396. package/dist/commands/status/list.js +1 -0
  397. package/dist/commands/status/list.js.map +1 -0
  398. package/dist/commands/status/move.js +1 -0
  399. package/dist/commands/status/move.js.map +1 -0
  400. package/dist/commands/status/update.js +1 -0
  401. package/dist/commands/status/update.js.map +1 -0
  402. package/dist/commands/support/book.js +1 -0
  403. package/dist/commands/support/book.js.map +1 -0
  404. package/dist/commands/support/discord.js +1 -0
  405. package/dist/commands/support/discord.js.map +1 -0
  406. package/dist/commands/support/docs.js +1 -0
  407. package/dist/commands/support/docs.js.map +1 -0
  408. package/dist/commands/support/index.js +1 -0
  409. package/dist/commands/support/index.js.map +1 -0
  410. package/dist/commands/support/issues.js +1 -0
  411. package/dist/commands/support/issues.js.map +1 -0
  412. package/dist/commands/support/logs.js +1 -0
  413. package/dist/commands/support/logs.js.map +1 -0
  414. package/dist/commands/telemetry/disable.d.ts +10 -0
  415. package/dist/commands/telemetry/disable.js +27 -0
  416. package/dist/commands/telemetry/disable.js.map +1 -0
  417. package/dist/commands/telemetry/enable.d.ts +10 -0
  418. package/dist/commands/telemetry/enable.js +27 -0
  419. package/dist/commands/telemetry/enable.js.map +1 -0
  420. package/dist/commands/telemetry/index.d.ts +10 -0
  421. package/dist/commands/telemetry/index.js +41 -0
  422. package/dist/commands/telemetry/index.js.map +1 -0
  423. package/dist/commands/telemetry/status.d.ts +10 -0
  424. package/dist/commands/telemetry/status.js +42 -0
  425. package/dist/commands/telemetry/status.js.map +1 -0
  426. package/dist/commands/template/apply.js +1 -0
  427. package/dist/commands/template/apply.js.map +1 -0
  428. package/dist/commands/template/create.js +1 -0
  429. package/dist/commands/template/create.js.map +1 -0
  430. package/dist/commands/template/delete.js +1 -0
  431. package/dist/commands/template/delete.js.map +1 -0
  432. package/dist/commands/template/index.js +1 -0
  433. package/dist/commands/template/index.js.map +1 -0
  434. package/dist/commands/template/list.js +1 -0
  435. package/dist/commands/template/list.js.map +1 -0
  436. package/dist/commands/template/save.js +1 -0
  437. package/dist/commands/template/save.js.map +1 -0
  438. package/dist/commands/template/update.js +1 -0
  439. package/dist/commands/template/update.js.map +1 -0
  440. package/dist/commands/terminal/title.js +1 -0
  441. package/dist/commands/terminal/title.js.map +1 -0
  442. package/dist/commands/theme/add-names.js +1 -0
  443. package/dist/commands/theme/add-names.js.map +1 -0
  444. package/dist/commands/theme/create.js +1 -0
  445. package/dist/commands/theme/create.js.map +1 -0
  446. package/dist/commands/theme/index.js +1 -0
  447. package/dist/commands/theme/index.js.map +1 -0
  448. package/dist/commands/theme/list.js +1 -0
  449. package/dist/commands/theme/list.js.map +1 -0
  450. package/dist/commands/theme/set.js +1 -0
  451. package/dist/commands/theme/set.js.map +1 -0
  452. package/dist/commands/ticket/bulk.js +1 -0
  453. package/dist/commands/ticket/bulk.js.map +1 -0
  454. package/dist/commands/ticket/category.js +1 -0
  455. package/dist/commands/ticket/category.js.map +1 -0
  456. package/dist/commands/ticket/complete.js +1 -0
  457. package/dist/commands/ticket/complete.js.map +1 -0
  458. package/dist/commands/ticket/create.js +1 -0
  459. package/dist/commands/ticket/create.js.map +1 -0
  460. package/dist/commands/ticket/delete.js +1 -0
  461. package/dist/commands/ticket/delete.js.map +1 -0
  462. package/dist/commands/ticket/edit.js +1 -0
  463. package/dist/commands/ticket/edit.js.map +1 -0
  464. package/dist/commands/ticket/epic.js +1 -0
  465. package/dist/commands/ticket/epic.js.map +1 -0
  466. package/dist/commands/ticket/index.js +1 -0
  467. package/dist/commands/ticket/index.js.map +1 -0
  468. package/dist/commands/ticket/link/block.js +1 -0
  469. package/dist/commands/ticket/link/block.js.map +1 -0
  470. package/dist/commands/ticket/link/duplicates.js +1 -0
  471. package/dist/commands/ticket/link/duplicates.js.map +1 -0
  472. package/dist/commands/ticket/link/index.js +1 -0
  473. package/dist/commands/ticket/link/index.js.map +1 -0
  474. package/dist/commands/ticket/link/relates.js +1 -0
  475. package/dist/commands/ticket/link/relates.js.map +1 -0
  476. package/dist/commands/ticket/list.js +1 -0
  477. package/dist/commands/ticket/list.js.map +1 -0
  478. package/dist/commands/ticket/move.js +1 -0
  479. package/dist/commands/ticket/move.js.map +1 -0
  480. package/dist/commands/ticket/project.js +1 -0
  481. package/dist/commands/ticket/project.js.map +1 -0
  482. package/dist/commands/ticket/reassign.js +1 -0
  483. package/dist/commands/ticket/reassign.js.map +1 -0
  484. package/dist/commands/ticket/resolve.js +1 -0
  485. package/dist/commands/ticket/resolve.js.map +1 -0
  486. package/dist/commands/ticket/show.js +1 -0
  487. package/dist/commands/ticket/show.js.map +1 -0
  488. package/dist/commands/ticket/spec.js +1 -0
  489. package/dist/commands/ticket/spec.js.map +1 -0
  490. package/dist/commands/ticket/status.js +1 -0
  491. package/dist/commands/ticket/status.js.map +1 -0
  492. package/dist/commands/ticket/template/apply.js +1 -0
  493. package/dist/commands/ticket/template/apply.js.map +1 -0
  494. package/dist/commands/ticket/template/delete.js +1 -0
  495. package/dist/commands/ticket/template/delete.js.map +1 -0
  496. package/dist/commands/ticket/template/list.js +1 -0
  497. package/dist/commands/ticket/template/list.js.map +1 -0
  498. package/dist/commands/ticket/template/save.js +1 -0
  499. package/dist/commands/ticket/template/save.js.map +1 -0
  500. package/dist/commands/ticket/update.js +1 -0
  501. package/dist/commands/ticket/update.js.map +1 -0
  502. package/dist/commands/ticket/view.js +1 -0
  503. package/dist/commands/ticket/view.js.map +1 -0
  504. package/dist/commands/whoami.js +1 -0
  505. package/dist/commands/whoami.js.map +1 -0
  506. package/dist/commands/work/complete.js +6 -0
  507. package/dist/commands/work/complete.js.map +1 -0
  508. package/dist/commands/work/index.js +8 -0
  509. package/dist/commands/work/index.js.map +1 -0
  510. package/dist/commands/work/jira.d.ts +28 -0
  511. package/dist/commands/work/jira.js +226 -0
  512. package/dist/commands/work/jira.js.map +1 -0
  513. package/dist/commands/work/linear.js +1 -0
  514. package/dist/commands/work/linear.js.map +1 -0
  515. package/dist/commands/work/ready.js +1 -0
  516. package/dist/commands/work/ready.js.map +1 -0
  517. package/dist/commands/work/resolve.js +1 -0
  518. package/dist/commands/work/resolve.js.map +1 -0
  519. package/dist/commands/work/review.js +1 -0
  520. package/dist/commands/work/review.js.map +1 -0
  521. package/dist/commands/work/revise.js +1 -0
  522. package/dist/commands/work/revise.js.map +1 -0
  523. package/dist/commands/work/source/set.d.ts +12 -0
  524. package/dist/commands/work/source/set.js +53 -0
  525. package/dist/commands/work/source/set.js.map +1 -0
  526. package/dist/commands/work/source.d.ts +11 -0
  527. package/dist/commands/work/source.js +54 -0
  528. package/dist/commands/work/source.js.map +1 -0
  529. package/dist/commands/work/spawn-all.js +1 -0
  530. package/dist/commands/work/spawn-all.js.map +1 -0
  531. package/dist/commands/work/spawn.d.ts +6 -0
  532. package/dist/commands/work/spawn.js +344 -34
  533. package/dist/commands/work/spawn.js.map +1 -0
  534. package/dist/commands/work/start.d.ts +9 -0
  535. package/dist/commands/work/start.js +619 -228
  536. package/dist/commands/work/start.js.map +1 -0
  537. package/dist/commands/work/status.js +1 -0
  538. package/dist/commands/work/status.js.map +1 -0
  539. package/dist/commands/work/watch.js +5 -8
  540. package/dist/commands/work/watch.js.map +1 -0
  541. package/dist/commands/workflow/create.js +1 -0
  542. package/dist/commands/workflow/create.js.map +1 -0
  543. package/dist/commands/workflow/delete.js +1 -0
  544. package/dist/commands/workflow/delete.js.map +1 -0
  545. package/dist/commands/workflow/index.js +1 -0
  546. package/dist/commands/workflow/index.js.map +1 -0
  547. package/dist/commands/workflow/list.js +1 -0
  548. package/dist/commands/workflow/list.js.map +1 -0
  549. package/dist/commands/workflow/show.js +1 -0
  550. package/dist/commands/workflow/show.js.map +1 -0
  551. package/dist/commands/workflow/switch.js +1 -0
  552. package/dist/commands/workflow/switch.js.map +1 -0
  553. package/dist/commands/workflow/view.js +1 -0
  554. package/dist/commands/workflow/view.js.map +1 -0
  555. package/dist/commands/workspace/add.js +1 -0
  556. package/dist/commands/workspace/add.js.map +1 -0
  557. package/dist/commands/workspace/list.js +1 -0
  558. package/dist/commands/workspace/list.js.map +1 -0
  559. package/dist/commands/workspace/prune.js +1 -0
  560. package/dist/commands/workspace/prune.js.map +1 -0
  561. package/dist/commands/workspace/remove.js +1 -0
  562. package/dist/commands/workspace/remove.js.map +1 -0
  563. package/dist/commands/workspace/use.js +1 -0
  564. package/dist/commands/workspace/use.js.map +1 -0
  565. package/dist/hooks/init.d.ts +6 -1
  566. package/dist/hooks/init.js +34 -2
  567. package/dist/hooks/init.js.map +1 -0
  568. package/dist/hooks/postrun.d.ts +9 -0
  569. package/dist/hooks/postrun.js +30 -0
  570. package/dist/hooks/postrun.js.map +1 -0
  571. package/dist/index.js +1 -0
  572. package/dist/index.js.map +1 -0
  573. package/dist/lib/agents/commands.js +1 -0
  574. package/dist/lib/agents/commands.js.map +1 -0
  575. package/dist/lib/agents/index.js +1 -0
  576. package/dist/lib/agents/index.js.map +1 -0
  577. package/dist/lib/asana/client.d.ts +15 -0
  578. package/dist/lib/asana/client.js +121 -0
  579. package/dist/lib/asana/client.js.map +1 -0
  580. package/dist/lib/asana/config.d.ts +9 -0
  581. package/dist/lib/asana/config.js +62 -0
  582. package/dist/lib/asana/config.js.map +1 -0
  583. package/dist/lib/asana/index.d.ts +5 -0
  584. package/dist/lib/asana/index.js +5 -0
  585. package/dist/lib/asana/index.js.map +1 -0
  586. package/dist/lib/asana/mapper.d.ts +13 -0
  587. package/dist/lib/asana/mapper.js +71 -0
  588. package/dist/lib/asana/mapper.js.map +1 -0
  589. package/dist/lib/asana/sync.d.ts +13 -0
  590. package/dist/lib/asana/sync.js +37 -0
  591. package/dist/lib/asana/sync.js.map +1 -0
  592. package/dist/lib/asana/types.d.ts +40 -0
  593. package/dist/lib/asana/types.js +2 -0
  594. package/dist/lib/asana/types.js.map +1 -0
  595. package/dist/lib/branch/index.js +1 -0
  596. package/dist/lib/branch/index.js.map +1 -0
  597. package/dist/lib/caffeinate.js +1 -0
  598. package/dist/lib/caffeinate.js.map +1 -0
  599. package/dist/lib/colors.js +1 -0
  600. package/dist/lib/colors.js.map +1 -0
  601. package/dist/lib/commands/docker-command.js +1 -0
  602. package/dist/lib/commands/docker-command.js.map +1 -0
  603. package/dist/lib/database/drizzle-schema.d.ts +393 -0
  604. package/dist/lib/database/drizzle-schema.js +46 -0
  605. package/dist/lib/database/drizzle-schema.js.map +1 -0
  606. package/dist/lib/database/drizzle.js +1 -0
  607. package/dist/lib/database/drizzle.js.map +1 -0
  608. package/dist/lib/database/index.js +1 -0
  609. package/dist/lib/database/index.js.map +1 -0
  610. package/dist/lib/database/native-validation.js +1 -0
  611. package/dist/lib/database/native-validation.js.map +1 -0
  612. package/dist/lib/docker/resolve.js +1 -0
  613. package/dist/lib/docker/resolve.js.map +1 -0
  614. package/dist/lib/execution/codex-adapter.js +1 -0
  615. package/dist/lib/execution/codex-adapter.js.map +1 -0
  616. package/dist/lib/execution/config.d.ts +10 -0
  617. package/dist/lib/execution/config.js +20 -0
  618. package/dist/lib/execution/config.js.map +1 -0
  619. package/dist/lib/execution/context.js +1 -0
  620. package/dist/lib/execution/context.js.map +1 -0
  621. package/dist/lib/execution/devcontainer.js +1 -0
  622. package/dist/lib/execution/devcontainer.js.map +1 -0
  623. package/dist/lib/execution/index.js +1 -0
  624. package/dist/lib/execution/index.js.map +1 -0
  625. package/dist/lib/execution/runners.d.ts +10 -0
  626. package/dist/lib/execution/runners.js +162 -7
  627. package/dist/lib/execution/runners.js.map +1 -0
  628. package/dist/lib/execution/session-utils.js +1 -0
  629. package/dist/lib/execution/session-utils.js.map +1 -0
  630. package/dist/lib/execution/spawner.js +27 -0
  631. package/dist/lib/execution/spawner.js.map +1 -0
  632. package/dist/lib/execution/storage.d.ts +4 -0
  633. package/dist/lib/execution/storage.js +9 -3
  634. package/dist/lib/execution/storage.js.map +1 -0
  635. package/dist/lib/execution/types.d.ts +6 -0
  636. package/dist/lib/execution/types.js +1 -0
  637. package/dist/lib/execution/types.js.map +1 -0
  638. package/dist/lib/external-issues/adapters.d.ts +18 -1
  639. package/dist/lib/external-issues/adapters.js +50 -1
  640. package/dist/lib/external-issues/adapters.js.map +1 -0
  641. package/dist/lib/external-issues/index.d.ts +5 -1
  642. package/dist/lib/external-issues/index.js +8 -0
  643. package/dist/lib/external-issues/index.js.map +1 -0
  644. package/dist/lib/external-issues/jira.d.ts +23 -0
  645. package/dist/lib/external-issues/jira.js +224 -0
  646. package/dist/lib/external-issues/jira.js.map +1 -0
  647. package/dist/lib/external-issues/linear.js +17 -3
  648. package/dist/lib/external-issues/linear.js.map +1 -0
  649. package/dist/lib/external-issues/mapper.d.ts +3 -2
  650. package/dist/lib/external-issues/mapper.js +6 -2
  651. package/dist/lib/external-issues/mapper.js.map +1 -0
  652. package/dist/lib/external-issues/mapping-store.d.ts +12 -0
  653. package/dist/lib/external-issues/mapping-store.js +165 -0
  654. package/dist/lib/external-issues/mapping-store.js.map +1 -0
  655. package/dist/lib/external-issues/redact.d.ts +50 -0
  656. package/dist/lib/external-issues/redact.js +130 -0
  657. package/dist/lib/external-issues/redact.js.map +1 -0
  658. package/dist/lib/external-issues/types.d.ts +35 -1
  659. package/dist/lib/external-issues/types.js +1 -0
  660. package/dist/lib/external-issues/types.js.map +1 -0
  661. package/dist/lib/external-issues/validation.js +12 -0
  662. package/dist/lib/external-issues/validation.js.map +1 -0
  663. package/dist/lib/external-issues/work-start.d.ts +10 -0
  664. package/dist/lib/external-issues/work-start.js +13 -0
  665. package/dist/lib/external-issues/work-start.js.map +1 -0
  666. package/dist/lib/flags/index.js +1 -0
  667. package/dist/lib/flags/index.js.map +1 -0
  668. package/dist/lib/flags/resolver.js +4 -2
  669. package/dist/lib/flags/resolver.js.map +1 -0
  670. package/dist/lib/init/index.js +1 -0
  671. package/dist/lib/init/index.js.map +1 -0
  672. package/dist/lib/jira/config.d.ts +33 -0
  673. package/dist/lib/jira/config.js +97 -0
  674. package/dist/lib/jira/config.js.map +1 -0
  675. package/dist/lib/jira/index.d.ts +7 -0
  676. package/dist/lib/jira/index.js +7 -0
  677. package/dist/lib/jira/index.js.map +1 -0
  678. package/dist/lib/linear/client.js +1 -0
  679. package/dist/lib/linear/client.js.map +1 -0
  680. package/dist/lib/linear/config.js +1 -0
  681. package/dist/lib/linear/config.js.map +1 -0
  682. package/dist/lib/linear/index.js +1 -0
  683. package/dist/lib/linear/index.js.map +1 -0
  684. package/dist/lib/linear/mapper.d.ts +2 -0
  685. package/dist/lib/linear/mapper.js +67 -2
  686. package/dist/lib/linear/mapper.js.map +1 -0
  687. package/dist/lib/linear/sync.js +1 -0
  688. package/dist/lib/linear/sync.js.map +1 -0
  689. package/dist/lib/linear/types.js +1 -0
  690. package/dist/lib/linear/types.js.map +1 -0
  691. package/dist/lib/machine-config.js +1 -0
  692. package/dist/lib/machine-config.js.map +1 -0
  693. package/dist/lib/mcp/helpers.js +1 -0
  694. package/dist/lib/mcp/helpers.js.map +1 -0
  695. package/dist/lib/mcp/index.js +1 -0
  696. package/dist/lib/mcp/index.js.map +1 -0
  697. package/dist/lib/mcp/tools/action.js +1 -0
  698. package/dist/lib/mcp/tools/action.js.map +1 -0
  699. package/dist/lib/mcp/tools/board.js +1 -0
  700. package/dist/lib/mcp/tools/board.js.map +1 -0
  701. package/dist/lib/mcp/tools/category.js +1 -0
  702. package/dist/lib/mcp/tools/category.js.map +1 -0
  703. package/dist/lib/mcp/tools/cli-passthrough.js +1 -0
  704. package/dist/lib/mcp/tools/cli-passthrough.js.map +1 -0
  705. package/dist/lib/mcp/tools/diet.js +1 -0
  706. package/dist/lib/mcp/tools/diet.js.map +1 -0
  707. package/dist/lib/mcp/tools/epic.js +1 -0
  708. package/dist/lib/mcp/tools/epic.js.map +1 -0
  709. package/dist/lib/mcp/tools/index.js +1 -0
  710. package/dist/lib/mcp/tools/index.js.map +1 -0
  711. package/dist/lib/mcp/tools/label.js +1 -0
  712. package/dist/lib/mcp/tools/label.js.map +1 -0
  713. package/dist/lib/mcp/tools/phase.js +1 -0
  714. package/dist/lib/mcp/tools/phase.js.map +1 -0
  715. package/dist/lib/mcp/tools/project.js +1 -0
  716. package/dist/lib/mcp/tools/project.js.map +1 -0
  717. package/dist/lib/mcp/tools/roadmap.js +1 -0
  718. package/dist/lib/mcp/tools/roadmap.js.map +1 -0
  719. package/dist/lib/mcp/tools/spec.js +1 -0
  720. package/dist/lib/mcp/tools/spec.js.map +1 -0
  721. package/dist/lib/mcp/tools/status.js +1 -0
  722. package/dist/lib/mcp/tools/status.js.map +1 -0
  723. package/dist/lib/mcp/tools/template.js +1 -0
  724. package/dist/lib/mcp/tools/template.js.map +1 -0
  725. package/dist/lib/mcp/tools/ticket.js +1 -0
  726. package/dist/lib/mcp/tools/ticket.js.map +1 -0
  727. package/dist/lib/mcp/tools/tmux.js +1 -0
  728. package/dist/lib/mcp/tools/tmux.js.map +1 -0
  729. package/dist/lib/mcp/tools/view.js +1 -0
  730. package/dist/lib/mcp/tools/view.js.map +1 -0
  731. package/dist/lib/mcp/tools/work.js +1 -0
  732. package/dist/lib/mcp/tools/work.js.map +1 -0
  733. package/dist/lib/mcp/tools/workflow.js +1 -0
  734. package/dist/lib/mcp/tools/workflow.js.map +1 -0
  735. package/dist/lib/mcp/types.js +1 -0
  736. package/dist/lib/mcp/types.js.map +1 -0
  737. package/dist/lib/monday/client.d.ts +14 -0
  738. package/dist/lib/monday/client.js +114 -0
  739. package/dist/lib/monday/client.js.map +1 -0
  740. package/dist/lib/monday/config.d.ts +10 -0
  741. package/dist/lib/monday/config.js +65 -0
  742. package/dist/lib/monday/config.js.map +1 -0
  743. package/dist/lib/monday/index.d.ts +5 -0
  744. package/dist/lib/monday/index.js +5 -0
  745. package/dist/lib/monday/index.js.map +1 -0
  746. package/dist/lib/monday/mapper.d.ts +14 -0
  747. package/dist/lib/monday/mapper.js +90 -0
  748. package/dist/lib/monday/mapper.js.map +1 -0
  749. package/dist/lib/monday/sync.d.ts +13 -0
  750. package/dist/lib/monday/sync.js +46 -0
  751. package/dist/lib/monday/sync.js.map +1 -0
  752. package/dist/lib/monday/types.d.ts +38 -0
  753. package/dist/lib/monday/types.js +5 -0
  754. package/dist/lib/monday/types.js.map +1 -0
  755. package/dist/lib/multiline-input.js +1 -0
  756. package/dist/lib/multiline-input.js.map +1 -0
  757. package/dist/lib/pmo/base-command.js +8 -6
  758. package/dist/lib/pmo/base-command.js.map +1 -0
  759. package/dist/lib/pmo/create-spec-folders.js +1 -0
  760. package/dist/lib/pmo/create-spec-folders.js.map +1 -0
  761. package/dist/lib/pmo/diet.js +1 -0
  762. package/dist/lib/pmo/diet.js.map +1 -0
  763. package/dist/lib/pmo/epic-files.js +1 -0
  764. package/dist/lib/pmo/epic-files.js.map +1 -0
  765. package/dist/lib/pmo/find-pmo.js +1 -0
  766. package/dist/lib/pmo/find-pmo.js.map +1 -0
  767. package/dist/lib/pmo/index.js +1 -0
  768. package/dist/lib/pmo/index.js.map +1 -0
  769. package/dist/lib/pmo/markdown.js +1 -0
  770. package/dist/lib/pmo/markdown.js.map +1 -0
  771. package/dist/lib/pmo/pmo-context.js +1 -0
  772. package/dist/lib/pmo/pmo-context.js.map +1 -0
  773. package/dist/lib/pmo/schema.d.ts +10 -1
  774. package/dist/lib/pmo/schema.js +74 -0
  775. package/dist/lib/pmo/schema.js.map +1 -0
  776. package/dist/lib/pmo/spec-parser.js +1 -0
  777. package/dist/lib/pmo/spec-parser.js.map +1 -0
  778. package/dist/lib/pmo/spec-types.js +1 -0
  779. package/dist/lib/pmo/spec-types.js.map +1 -0
  780. package/dist/lib/pmo/storage/actions.js +1 -0
  781. package/dist/lib/pmo/storage/actions.js.map +1 -0
  782. package/dist/lib/pmo/storage/base.js +33 -0
  783. package/dist/lib/pmo/storage/base.js.map +1 -0
  784. package/dist/lib/pmo/storage/categories.js +1 -0
  785. package/dist/lib/pmo/storage/categories.js.map +1 -0
  786. package/dist/lib/pmo/storage/dependencies.js +1 -0
  787. package/dist/lib/pmo/storage/dependencies.js.map +1 -0
  788. package/dist/lib/pmo/storage/epics.js +1 -0
  789. package/dist/lib/pmo/storage/epics.js.map +1 -0
  790. package/dist/lib/pmo/storage/helpers.js +1 -0
  791. package/dist/lib/pmo/storage/helpers.js.map +1 -0
  792. package/dist/lib/pmo/storage/index.js +1 -0
  793. package/dist/lib/pmo/storage/index.js.map +1 -0
  794. package/dist/lib/pmo/storage/labels.js +1 -0
  795. package/dist/lib/pmo/storage/labels.js.map +1 -0
  796. package/dist/lib/pmo/storage/phases.js +1 -0
  797. package/dist/lib/pmo/storage/phases.js.map +1 -0
  798. package/dist/lib/pmo/storage/projects.js +1 -0
  799. package/dist/lib/pmo/storage/projects.js.map +1 -0
  800. package/dist/lib/pmo/storage/roadmaps.js +1 -0
  801. package/dist/lib/pmo/storage/roadmaps.js.map +1 -0
  802. package/dist/lib/pmo/storage/specs.js +1 -0
  803. package/dist/lib/pmo/storage/specs.js.map +1 -0
  804. package/dist/lib/pmo/storage/statuses.js +1 -0
  805. package/dist/lib/pmo/storage/statuses.js.map +1 -0
  806. package/dist/lib/pmo/storage/subtasks.js +1 -0
  807. package/dist/lib/pmo/storage/subtasks.js.map +1 -0
  808. package/dist/lib/pmo/storage/templates.js +1 -0
  809. package/dist/lib/pmo/storage/templates.js.map +1 -0
  810. package/dist/lib/pmo/storage/tickets.js +1 -0
  811. package/dist/lib/pmo/storage/tickets.js.map +1 -0
  812. package/dist/lib/pmo/storage/types.js +1 -0
  813. package/dist/lib/pmo/storage/types.js.map +1 -0
  814. package/dist/lib/pmo/storage/views.js +1 -0
  815. package/dist/lib/pmo/storage/views.js.map +1 -0
  816. package/dist/lib/pmo/storage-sqlite.js +1 -0
  817. package/dist/lib/pmo/storage-sqlite.js.map +1 -0
  818. package/dist/lib/pmo/sync-manager.js +1 -0
  819. package/dist/lib/pmo/sync-manager.js.map +1 -0
  820. package/dist/lib/pmo/templates-builtin.js +1 -0
  821. package/dist/lib/pmo/templates-builtin.js.map +1 -0
  822. package/dist/lib/pmo/types.js +1 -0
  823. package/dist/lib/pmo/types.js.map +1 -0
  824. package/dist/lib/pmo/utils.js +1 -0
  825. package/dist/lib/pmo/utils.js.map +1 -0
  826. package/dist/lib/pmo/watcher.d.ts +1 -1
  827. package/dist/lib/pmo/watcher.js +6 -7
  828. package/dist/lib/pmo/watcher.js.map +1 -0
  829. package/dist/lib/pr/index.js +1 -0
  830. package/dist/lib/pr/index.js.map +1 -0
  831. package/dist/lib/prompt-command.js +4 -2
  832. package/dist/lib/prompt-command.js.map +1 -0
  833. package/dist/lib/prompt-json.d.ts +16 -0
  834. package/dist/lib/prompt-json.js +1 -0
  835. package/dist/lib/prompt-json.js.map +1 -0
  836. package/dist/lib/repos/git.js +1 -0
  837. package/dist/lib/repos/git.js.map +1 -0
  838. package/dist/lib/repos/index.js +1 -0
  839. package/dist/lib/repos/index.js.map +1 -0
  840. package/dist/lib/signal-handler.d.ts +59 -0
  841. package/dist/lib/signal-handler.js +156 -0
  842. package/dist/lib/signal-handler.js.map +1 -0
  843. package/dist/lib/string-utils.js +1 -0
  844. package/dist/lib/string-utils.js.map +1 -0
  845. package/dist/lib/styles.js +1 -0
  846. package/dist/lib/styles.js.map +1 -0
  847. package/dist/lib/telemetry/analytics.d.ts +105 -0
  848. package/dist/lib/telemetry/analytics.js +289 -0
  849. package/dist/lib/telemetry/analytics.js.map +1 -0
  850. package/dist/lib/telemetry/feature-flags.d.ts +53 -0
  851. package/dist/lib/telemetry/feature-flags.js +83 -0
  852. package/dist/lib/telemetry/feature-flags.js.map +1 -0
  853. package/dist/lib/telemetry.d.ts +63 -0
  854. package/dist/lib/telemetry.js +217 -0
  855. package/dist/lib/telemetry.js.map +1 -0
  856. package/dist/lib/terminal.js +1 -0
  857. package/dist/lib/terminal.js.map +1 -0
  858. package/dist/lib/themes.js +1 -0
  859. package/dist/lib/themes.js.map +1 -0
  860. package/dist/lib/ui/BoardUI.js +1 -0
  861. package/dist/lib/ui/BoardUI.js.map +1 -0
  862. package/dist/lib/ui/ClaimTicketUI.js +1 -0
  863. package/dist/lib/ui/ClaimTicketUI.js.map +1 -0
  864. package/dist/lib/ui/CreateTicketUI.js +1 -0
  865. package/dist/lib/ui/CreateTicketUI.js.map +1 -0
  866. package/dist/lib/update-check.d.ts +83 -0
  867. package/dist/lib/update-check.js +275 -0
  868. package/dist/lib/update-check.js.map +1 -0
  869. package/dist/lib/update-prompt.d.ts +47 -0
  870. package/dist/lib/update-prompt.js +163 -0
  871. package/dist/lib/update-prompt.js.map +1 -0
  872. package/dist/lib/work-source/config.d.ts +14 -0
  873. package/dist/lib/work-source/config.js +79 -0
  874. package/dist/lib/work-source/config.js.map +1 -0
  875. package/dist/lib/work-source/index.d.ts +1 -0
  876. package/dist/lib/work-source/index.js +2 -0
  877. package/dist/lib/work-source/index.js.map +1 -0
  878. package/dist/lib/workspace-config.js +1 -0
  879. package/dist/lib/workspace-config.js.map +1 -0
  880. package/dist/lib/workspace.js +1 -0
  881. package/dist/lib/workspace.js.map +1 -0
  882. package/oclif.manifest.json +2164 -1331
  883. package/package.json +9 -9
@@ -0,0 +1,224 @@
1
+ import { ExternalIssueAdapterError, toNormalizedEnvelope, } from './types.js';
2
+ import { JiraIssueAdapter } from './adapters.js';
3
+ const DEFAULT_JIRA_API_PATH = '/rest/api/3';
4
+ const JIRA_ISSUE_FIELDS = [
5
+ 'summary',
6
+ 'description',
7
+ 'labels',
8
+ 'priority',
9
+ 'status',
10
+ 'project',
11
+ 'issuetype',
12
+ 'assignee',
13
+ ];
14
+ function normalizeBaseUrl(value) {
15
+ const trimmed = value.trim().replace(/\/+$/, '');
16
+ if (/^https?:\/\//i.test(trimmed)) {
17
+ return trimmed;
18
+ }
19
+ return `https://${trimmed}`;
20
+ }
21
+ function ensureJiraConfig(config) {
22
+ const baseUrl = config.baseUrl
23
+ || config.host
24
+ || process.env.PRLT_JIRA_BASE_URL
25
+ || process.env.JIRA_BASE_URL
26
+ || process.env.PRLT_JIRA_HOST
27
+ || process.env.JIRA_HOST;
28
+ const email = config.email || process.env.PRLT_JIRA_EMAIL || process.env.JIRA_EMAIL || '';
29
+ const apiToken = config.apiToken || process.env.PRLT_JIRA_API_TOKEN || process.env.JIRA_API_TOKEN;
30
+ const projectKey = config.projectKey || process.env.PRLT_JIRA_PROJECT || process.env.JIRA_PROJECT_KEY || '';
31
+ const jql = config.jql || process.env.PRLT_JIRA_JQL || '';
32
+ if (!baseUrl) {
33
+ throw new ExternalIssueAdapterError('MISSING_CONFIG', 'Missing Jira base URL. Set PRLT_JIRA_BASE_URL/JIRA_BASE_URL or PRLT_JIRA_HOST/JIRA_HOST.');
34
+ }
35
+ if (!apiToken) {
36
+ throw new ExternalIssueAdapterError('MISSING_CONFIG', 'Missing Jira API token. Set PRLT_JIRA_API_TOKEN or JIRA_API_TOKEN.');
37
+ }
38
+ return {
39
+ baseUrl: normalizeBaseUrl(baseUrl),
40
+ host: normalizeBaseUrl(baseUrl),
41
+ email,
42
+ apiToken,
43
+ projectKey,
44
+ jql,
45
+ };
46
+ }
47
+ function ensureIssueKey(key) {
48
+ const trimmed = key.trim().toUpperCase();
49
+ if (!/^[A-Z][A-Z0-9_]*-\d+$/.test(trimmed)) {
50
+ throw new ExternalIssueAdapterError('BAD_PAYLOAD', `Invalid Jira issue key: "${key}".`);
51
+ }
52
+ return trimmed;
53
+ }
54
+ function buildAuthHeader(config) {
55
+ if (config.email) {
56
+ const token = Buffer.from(`${config.email}:${config.apiToken}`).toString('base64');
57
+ return `Basic ${token}`;
58
+ }
59
+ return `Bearer ${config.apiToken}`;
60
+ }
61
+ function buildListJql(config, explicitJql) {
62
+ const jql = explicitJql?.trim() || config.jql.trim();
63
+ if (jql.length > 0) {
64
+ return jql;
65
+ }
66
+ const projectKey = config.projectKey.trim();
67
+ if (!projectKey) {
68
+ throw new ExternalIssueAdapterError('MISSING_CONFIG', 'Missing Jira project key/JQL. Pass --project-key or --jql, or set PRLT_JIRA_PROJECT/PRLT_JIRA_JQL.');
69
+ }
70
+ return `project = "${projectKey}" AND statusCategory != Done ORDER BY updated DESC`;
71
+ }
72
+ function getErrorMessage(payload, fallback) {
73
+ if (!payload || typeof payload !== 'object') {
74
+ return fallback;
75
+ }
76
+ const errorMessages = payload.errorMessages;
77
+ if (Array.isArray(errorMessages) && typeof errorMessages[0] === 'string' && errorMessages[0].trim()) {
78
+ return errorMessages[0].trim();
79
+ }
80
+ return fallback;
81
+ }
82
+ async function parseJsonOrThrow(response) {
83
+ try {
84
+ return await response.json();
85
+ }
86
+ catch {
87
+ throw new ExternalIssueAdapterError('BAD_PAYLOAD', 'Jira response was not valid JSON.');
88
+ }
89
+ }
90
+ function deriveJiraCategory(envelope) {
91
+ const typeValue = envelope.item_type?.trim().toLowerCase() || '';
92
+ if (typeValue === 'bug' || typeValue === 'incident') {
93
+ return 'bug';
94
+ }
95
+ if (typeValue === 'task' || typeValue === 'story' || typeValue === 'issue') {
96
+ return 'feature';
97
+ }
98
+ return 'feature';
99
+ }
100
+ function ensureIssueShape(issue) {
101
+ if (!issue.id || !issue.key || !issue.fields) {
102
+ throw new ExternalIssueAdapterError('BAD_PAYLOAD', 'Jira issue payload is missing required fields (id, key, fields).', issue);
103
+ }
104
+ }
105
+ export function normalizeJiraIssue(rawIssue) {
106
+ if (!rawIssue || typeof rawIssue !== 'object') {
107
+ throw new ExternalIssueAdapterError('BAD_PAYLOAD', 'Jira issue payload is invalid.', rawIssue);
108
+ }
109
+ const issue = rawIssue;
110
+ ensureIssueShape(issue);
111
+ const adapter = new JiraIssueAdapter();
112
+ return adapter.normalize(issue);
113
+ }
114
+ export function normalizeJiraIssueToEnvelope(rawIssue) {
115
+ const envelope = normalizeJiraIssue(rawIssue);
116
+ return toNormalizedEnvelope(envelope, deriveJiraCategory(envelope));
117
+ }
118
+ export function buildJiraTicketDescription(envelope) {
119
+ const body = envelope.description.trim();
120
+ const metadataLines = [
121
+ `- Source: ${envelope.source.name}`,
122
+ `- External key: ${envelope.source.externalKey}`,
123
+ `- External id: ${envelope.source.externalId}`,
124
+ `- URL: ${envelope.source.url}`,
125
+ `- Status: ${envelope.status}`,
126
+ `- Priority: ${envelope.priority || 'Unset'}`,
127
+ `- Labels: ${envelope.labels.length > 0 ? envelope.labels.join(', ') : 'None'}`,
128
+ ];
129
+ const parts = [
130
+ body,
131
+ '## External Issue Context',
132
+ metadataLines.join('\n'),
133
+ ].filter(Boolean);
134
+ return parts.join('\n\n');
135
+ }
136
+ export function buildJiraMetadata(envelope) {
137
+ return {
138
+ external_source: envelope.source.name,
139
+ external_key: envelope.source.externalKey,
140
+ external_id: envelope.source.externalId,
141
+ external_url: envelope.source.url,
142
+ external_raw: JSON.stringify(envelope.source.raw),
143
+ };
144
+ }
145
+ export function buildJiraSpawnContextMessage(envelope, additionalMessage) {
146
+ const lines = [
147
+ `External issue source: ${envelope.source.name}`,
148
+ `External issue key: ${envelope.source.externalKey}`,
149
+ `External issue id: ${envelope.source.externalId}`,
150
+ `External issue URL: ${envelope.source.url}`,
151
+ ];
152
+ if (additionalMessage?.trim()) {
153
+ lines.push('', additionalMessage.trim());
154
+ }
155
+ return lines.join('\n');
156
+ }
157
+ export function buildJiraIssueChoiceCommand(issueKey, projectId) {
158
+ let command = `prlt work jira --issue ${issueKey} --json`;
159
+ if (projectId) {
160
+ command += ` -P ${projectId}`;
161
+ }
162
+ return command;
163
+ }
164
+ export async function getJiraIssueByKey(configInput, issueKey, options) {
165
+ const config = ensureJiraConfig(configInput);
166
+ const fetchImpl = options?.fetchImpl || fetch;
167
+ const key = ensureIssueKey(issueKey);
168
+ const baseApiUrl = `${config.baseUrl}${DEFAULT_JIRA_API_PATH}`;
169
+ const fields = encodeURIComponent(JIRA_ISSUE_FIELDS.join(','));
170
+ const issueUrl = `${baseApiUrl}/issue/${encodeURIComponent(key)}?fields=${fields}`;
171
+ const response = await fetchImpl(issueUrl, {
172
+ method: 'GET',
173
+ headers: {
174
+ Accept: 'application/json',
175
+ Authorization: buildAuthHeader(config),
176
+ },
177
+ });
178
+ if (response.status === 401 || response.status === 403) {
179
+ throw new ExternalIssueAdapterError('AUTH_FAILED', 'Jira authentication failed. Verify your Jira credentials.');
180
+ }
181
+ if (response.status === 404) {
182
+ return null;
183
+ }
184
+ const payload = await parseJsonOrThrow(response);
185
+ if (!response.ok) {
186
+ const msg = getErrorMessage(payload, `Jira request failed with status ${response.status}.`);
187
+ throw new ExternalIssueAdapterError('REQUEST_FAILED', msg, payload);
188
+ }
189
+ return normalizeJiraIssueToEnvelope(payload);
190
+ }
191
+ export async function listJiraIssues(configInput, options) {
192
+ const config = ensureJiraConfig(configInput);
193
+ const fetchImpl = options?.fetchImpl || fetch;
194
+ const limit = Math.max(1, Math.min(options?.limit ?? 20, 100));
195
+ const jql = buildListJql(config, options?.jql);
196
+ const baseApiUrl = `${config.baseUrl}${DEFAULT_JIRA_API_PATH}`;
197
+ const response = await fetchImpl(`${baseApiUrl}/search`, {
198
+ method: 'POST',
199
+ headers: {
200
+ 'Content-Type': 'application/json',
201
+ Accept: 'application/json',
202
+ Authorization: buildAuthHeader(config),
203
+ },
204
+ body: JSON.stringify({
205
+ jql,
206
+ maxResults: limit,
207
+ fields: JIRA_ISSUE_FIELDS,
208
+ }),
209
+ });
210
+ if (response.status === 401 || response.status === 403) {
211
+ throw new ExternalIssueAdapterError('AUTH_FAILED', 'Jira authentication failed. Verify your Jira credentials.');
212
+ }
213
+ const payload = await parseJsonOrThrow(response);
214
+ if (!response.ok) {
215
+ const msg = getErrorMessage(payload, `Jira request failed with status ${response.status}.`);
216
+ throw new ExternalIssueAdapterError('REQUEST_FAILED', msg, payload);
217
+ }
218
+ const data = payload;
219
+ if (!Array.isArray(data.issues)) {
220
+ throw new ExternalIssueAdapterError('BAD_PAYLOAD', 'Jira response payload was missing issues array.', payload);
221
+ }
222
+ return data.issues.map(normalizeJiraIssueToEnvelope);
223
+ }
224
+ //# sourceMappingURL=jira.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.js","sourceRoot":"","sources":["../../../src/lib/external-issues/jira.ts"],"names":[],"mappings":"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"}
@@ -65,14 +65,15 @@ function priorityFromLinear(value) {
65
65
  return null;
66
66
  }
67
67
  }
68
- function ensureLinearConfig(config) {
68
+ function ensureLinearConfig(config, options) {
69
69
  const apiKey = config.apiKey || process.env.LINEAR_API_KEY || process.env.PRLT_LINEAR_API_KEY;
70
70
  const team = config.team || process.env.PRLT_LINEAR_TEAM || process.env.LINEAR_TEAM_KEY;
71
71
  const apiUrl = config.apiUrl || process.env.PRLT_LINEAR_API_URL || DEFAULT_LINEAR_API_URL;
72
72
  if (!apiKey) {
73
73
  throw new ExternalIssueAdapterError('MISSING_CONFIG', 'Missing Linear API key. Set LINEAR_API_KEY or PRLT_LINEAR_API_KEY.');
74
74
  }
75
- if (!team) {
75
+ const requireTeam = options?.requireTeam ?? true;
76
+ if (requireTeam && !team) {
76
77
  throw new ExternalIssueAdapterError('MISSING_CONFIG', 'Missing Linear team key. Pass --team or set PRLT_LINEAR_TEAM.');
77
78
  }
78
79
  return { apiKey, team, apiUrl };
@@ -180,7 +181,7 @@ export function buildLinearIssueChoiceCommand(issueIdentifier, projectId) {
180
181
  * Fetch a single Linear issue by identifier (for example, ENG-123) and normalize it.
181
182
  */
182
183
  export async function getLinearIssueByIdentifier(configInput, identifier, options) {
183
- const config = ensureLinearConfig(configInput);
184
+ const config = ensureLinearConfig(configInput, { requireTeam: false });
184
185
  const fetchImpl = options?.fetchImpl || fetch;
185
186
  const response = await fetchImpl(config.apiUrl, {
186
187
  method: 'POST',
@@ -198,6 +199,9 @@ export async function getLinearIssueByIdentifier(configInput, identifier, option
198
199
  if (response.status === 401 || response.status === 403) {
199
200
  throw new ExternalIssueAdapterError('AUTH_FAILED', 'Linear authentication failed. Verify your LINEAR_API_KEY token.');
200
201
  }
202
+ if (response.status === 429) {
203
+ throw new ExternalIssueAdapterError('RATE_LIMITED', 'Linear API rate limit exceeded. Wait a moment and try again.');
204
+ }
201
205
  if (!response.ok) {
202
206
  throw new ExternalIssueAdapterError('REQUEST_FAILED', `Linear request failed with status ${response.status}.`);
203
207
  }
@@ -211,6 +215,9 @@ export async function getLinearIssueByIdentifier(configInput, identifier, option
211
215
  if (/not found/i.test(message)) {
212
216
  return null;
213
217
  }
218
+ if (/rate.?limit|too many requests|throttl/i.test(message)) {
219
+ throw new ExternalIssueAdapterError('RATE_LIMITED', `Linear API rate limit exceeded: ${message}`);
220
+ }
214
221
  throw new ExternalIssueAdapterError('REQUEST_FAILED', `Linear API error: ${message}`);
215
222
  }
216
223
  const node = payload.data?.issue;
@@ -242,6 +249,9 @@ export async function listLinearIssues(configInput, options) {
242
249
  if (response.status === 401 || response.status === 403) {
243
250
  throw new ExternalIssueAdapterError('AUTH_FAILED', 'Linear authentication failed. Verify your LINEAR_API_KEY token.');
244
251
  }
252
+ if (response.status === 429) {
253
+ throw new ExternalIssueAdapterError('RATE_LIMITED', 'Linear API rate limit exceeded. Wait a moment and try again.');
254
+ }
245
255
  if (!response.ok) {
246
256
  throw new ExternalIssueAdapterError('REQUEST_FAILED', `Linear request failed with status ${response.status}.`);
247
257
  }
@@ -251,6 +261,9 @@ export async function listLinearIssues(configInput, options) {
251
261
  if (/auth|token|forbidden|unauthorized/i.test(message)) {
252
262
  throw new ExternalIssueAdapterError('AUTH_FAILED', `Linear authentication failed: ${message}`);
253
263
  }
264
+ if (/rate.?limit|too many requests|throttl/i.test(message)) {
265
+ throw new ExternalIssueAdapterError('RATE_LIMITED', `Linear API rate limit exceeded: ${message}`);
266
+ }
254
267
  throw new ExternalIssueAdapterError('REQUEST_FAILED', `Linear API error: ${message}`);
255
268
  }
256
269
  const nodes = payload.data?.issues?.nodes;
@@ -259,3 +272,4 @@ export async function listLinearIssues(configInput, options) {
259
272
  }
260
273
  return nodes.map(normalizeLinearIssueToEnvelope);
261
274
  }
275
+ //# sourceMappingURL=linear.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear.js","sourceRoot":"","sources":["../../../src/lib/external-issues/linear.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,8 @@ import type { IssueEnvelope, IssueSpawnContext } from './types.js';
15
15
  * The mapping is deterministic: the same IssueEnvelope always produces
16
16
  * the same IssueSpawnContext.
17
17
  *
18
- * @param envelope - Validated IssueEnvelope
18
+ * @param input - IssueEnvelope-like input
19
19
  * @returns Spawn context with prompt and metadata
20
+ * @throws ExternalIssueError when input fails IssueEnvelope validation
20
21
  */
21
- export declare function mapToSpawnContext(envelope: IssueEnvelope): IssueSpawnContext;
22
+ export declare function mapToSpawnContext(input: IssueEnvelope | unknown): IssueSpawnContext;
@@ -4,6 +4,7 @@
4
4
  * Deterministically maps an IssueEnvelope to spawn context data
5
5
  * (prompt text + metadata) for agent execution.
6
6
  */
7
+ import { validateOrThrow } from './validation.js';
7
8
  /**
8
9
  * Map an IssueEnvelope to spawn context data.
9
10
  *
@@ -14,10 +15,12 @@
14
15
  * The mapping is deterministic: the same IssueEnvelope always produces
15
16
  * the same IssueSpawnContext.
16
17
  *
17
- * @param envelope - Validated IssueEnvelope
18
+ * @param input - IssueEnvelope-like input
18
19
  * @returns Spawn context with prompt and metadata
20
+ * @throws ExternalIssueError when input fails IssueEnvelope validation
19
21
  */
20
- export function mapToSpawnContext(envelope) {
22
+ export function mapToSpawnContext(input) {
23
+ const envelope = validateOrThrow(input);
21
24
  const prompt = buildPrompt(envelope);
22
25
  const metadata = buildMetadata(envelope);
23
26
  return { prompt, metadata };
@@ -84,3 +87,4 @@ function buildMetadata(envelope) {
84
87
  }
85
88
  return metadata;
86
89
  }
90
+ //# sourceMappingURL=mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../src/lib/external-issues/mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import Database from 'better-sqlite3';
2
+ import { type ExternalExecutionMapping, type ExternalMappingProvider, type UpsertExternalExecutionMappingInput } from './types.js';
3
+ export declare class ExternalExecutionMappingStore {
4
+ private db;
5
+ constructor(db: Database.Database);
6
+ private ensureTables;
7
+ upsertMapping(input: UpsertExternalExecutionMappingInput): ExternalExecutionMapping;
8
+ getByExternalId(provider: ExternalMappingProvider, externalId: string): ExternalExecutionMapping | null;
9
+ getByExternalKey(provider: ExternalMappingProvider, externalKey: string): ExternalExecutionMapping | null;
10
+ findByExecutionId(executionId: string): ExternalExecutionMapping[];
11
+ private rowToMapping;
12
+ }
@@ -0,0 +1,165 @@
1
+ import { PMO_TABLES } from '../pmo/schema.js';
2
+ const T = PMO_TABLES;
3
+ function parseDate(value) {
4
+ return value ? new Date(value) : null;
5
+ }
6
+ function parseSnapshot(value) {
7
+ if (!value)
8
+ return null;
9
+ try {
10
+ const parsed = JSON.parse(value);
11
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
12
+ return parsed;
13
+ }
14
+ }
15
+ catch {
16
+ // Keep compatibility if old/invalid values are present.
17
+ }
18
+ return null;
19
+ }
20
+ export class ExternalExecutionMappingStore {
21
+ db;
22
+ constructor(db) {
23
+ this.db = db;
24
+ this.ensureTables();
25
+ }
26
+ ensureTables() {
27
+ this.db.exec(`
28
+ CREATE TABLE IF NOT EXISTS ${T.external_execution_map} (
29
+ provider TEXT NOT NULL CHECK (provider IN ('linear', 'jira', 'asana', 'monday', 'pmo')),
30
+ external_id TEXT NOT NULL,
31
+ external_key TEXT,
32
+ canonical_url TEXT,
33
+ latest_state_snapshot TEXT,
34
+ last_synced_at TIMESTAMP,
35
+ last_spawned_at TIMESTAMP,
36
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
37
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
38
+ PRIMARY KEY (provider, external_id)
39
+ );
40
+
41
+ CREATE TABLE IF NOT EXISTS ${T.external_execution_links} (
42
+ provider TEXT NOT NULL,
43
+ external_id TEXT NOT NULL,
44
+ execution_id TEXT NOT NULL,
45
+ linked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
46
+ PRIMARY KEY (provider, external_id, execution_id),
47
+ FOREIGN KEY (provider, external_id)
48
+ REFERENCES ${T.external_execution_map}(provider, external_id)
49
+ ON DELETE CASCADE
50
+ );
51
+
52
+ CREATE TABLE IF NOT EXISTS ${T.external_execution_prs} (
53
+ provider TEXT NOT NULL,
54
+ external_id TEXT NOT NULL,
55
+ pr_url TEXT NOT NULL,
56
+ linked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
57
+ PRIMARY KEY (provider, external_id, pr_url),
58
+ FOREIGN KEY (provider, external_id)
59
+ REFERENCES ${T.external_execution_map}(provider, external_id)
60
+ ON DELETE CASCADE
61
+ );
62
+
63
+ CREATE INDEX IF NOT EXISTS idx_pmo_external_execution_map_external_key
64
+ ON ${T.external_execution_map}(provider, external_key);
65
+ CREATE INDEX IF NOT EXISTS idx_pmo_external_execution_links_execution_id
66
+ ON ${T.external_execution_links}(execution_id);
67
+ CREATE INDEX IF NOT EXISTS idx_pmo_external_execution_prs_pr_url
68
+ ON ${T.external_execution_prs}(pr_url);
69
+ `);
70
+ }
71
+ upsertMapping(input) {
72
+ const snapshot = input.latestStateSnapshot === undefined
73
+ ? null
74
+ : JSON.stringify(input.latestStateSnapshot);
75
+ const lastSyncedAt = input.lastSyncedAt?.toISOString() ?? null;
76
+ const lastSpawnedAt = input.lastSpawnedAt?.toISOString() ?? null;
77
+ this.db.transaction(() => {
78
+ this.db.prepare(`
79
+ INSERT INTO ${T.external_execution_map}
80
+ (provider, external_id, external_key, canonical_url, latest_state_snapshot, last_synced_at, last_spawned_at, created_at, updated_at)
81
+ VALUES (?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
82
+ ON CONFLICT(provider, external_id) DO UPDATE SET
83
+ external_key = COALESCE(excluded.external_key, ${T.external_execution_map}.external_key),
84
+ canonical_url = COALESCE(excluded.canonical_url, ${T.external_execution_map}.canonical_url),
85
+ latest_state_snapshot = COALESCE(excluded.latest_state_snapshot, ${T.external_execution_map}.latest_state_snapshot),
86
+ last_synced_at = COALESCE(excluded.last_synced_at, ${T.external_execution_map}.last_synced_at),
87
+ last_spawned_at = COALESCE(excluded.last_spawned_at, ${T.external_execution_map}.last_spawned_at),
88
+ updated_at = CURRENT_TIMESTAMP
89
+ `).run(input.provider, input.externalId, input.externalKey ?? null, input.canonicalUrl ?? null, snapshot, lastSyncedAt, lastSpawnedAt);
90
+ if (input.executionId) {
91
+ this.db.prepare(`
92
+ INSERT OR IGNORE INTO ${T.external_execution_links}
93
+ (provider, external_id, execution_id, linked_at)
94
+ VALUES (?, ?, ?, CURRENT_TIMESTAMP)
95
+ `).run(input.provider, input.externalId, input.executionId);
96
+ }
97
+ if (input.prUrl) {
98
+ this.db.prepare(`
99
+ INSERT OR IGNORE INTO ${T.external_execution_prs}
100
+ (provider, external_id, pr_url, linked_at)
101
+ VALUES (?, ?, ?, CURRENT_TIMESTAMP)
102
+ `).run(input.provider, input.externalId, input.prUrl);
103
+ }
104
+ })();
105
+ return this.getByExternalId(input.provider, input.externalId);
106
+ }
107
+ getByExternalId(provider, externalId) {
108
+ const row = this.db.prepare(`
109
+ SELECT * FROM ${T.external_execution_map}
110
+ WHERE provider = ? AND external_id = ?
111
+ `).get(provider, externalId);
112
+ if (!row)
113
+ return null;
114
+ return this.rowToMapping(row);
115
+ }
116
+ getByExternalKey(provider, externalKey) {
117
+ const row = this.db.prepare(`
118
+ SELECT * FROM ${T.external_execution_map}
119
+ WHERE provider = ? AND external_key = ?
120
+ `).get(provider, externalKey);
121
+ if (!row)
122
+ return null;
123
+ return this.rowToMapping(row);
124
+ }
125
+ findByExecutionId(executionId) {
126
+ const rows = this.db.prepare(`
127
+ SELECT m.*
128
+ FROM ${T.external_execution_map} m
129
+ INNER JOIN ${T.external_execution_links} l
130
+ ON m.provider = l.provider
131
+ AND m.external_id = l.external_id
132
+ WHERE l.execution_id = ?
133
+ ORDER BY m.updated_at DESC
134
+ `).all(executionId);
135
+ return rows.map((row) => this.rowToMapping(row));
136
+ }
137
+ rowToMapping(row) {
138
+ const executionIds = this.db.prepare(`
139
+ SELECT execution_id AS value
140
+ FROM ${T.external_execution_links}
141
+ WHERE provider = ? AND external_id = ?
142
+ ORDER BY linked_at DESC
143
+ `).all(row.provider, row.external_id);
144
+ const prUrls = this.db.prepare(`
145
+ SELECT pr_url AS value
146
+ FROM ${T.external_execution_prs}
147
+ WHERE provider = ? AND external_id = ?
148
+ ORDER BY linked_at DESC
149
+ `).all(row.provider, row.external_id);
150
+ return {
151
+ provider: row.provider,
152
+ externalId: row.external_id,
153
+ externalKey: row.external_key,
154
+ canonicalUrl: row.canonical_url,
155
+ latestStateSnapshot: parseSnapshot(row.latest_state_snapshot),
156
+ executionIds: executionIds.map((r) => r.value),
157
+ prUrls: prUrls.map((r) => r.value),
158
+ lastSyncedAt: parseDate(row.last_synced_at),
159
+ lastSpawnedAt: parseDate(row.last_spawned_at),
160
+ createdAt: new Date(row.created_at),
161
+ updatedAt: new Date(row.updated_at),
162
+ };
163
+ }
164
+ }
165
+ //# sourceMappingURL=mapping-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping-store.js","sourceRoot":"","sources":["../../../src/lib/external-issues/mapping-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Credential Redaction Utilities for External Issue Spawn
3
+ *
4
+ * Ensures that API tokens, credentials, and other secrets are never
5
+ * leaked into logs, CLI output, stored metadata, or error messages.
6
+ */
7
+ /**
8
+ * Redact known credential patterns from a string.
9
+ *
10
+ * Replaces matching substrings with `[REDACTED]`.
11
+ *
12
+ * @param input - String that may contain credentials
13
+ * @returns Sanitized string with credentials replaced
14
+ */
15
+ export declare function redactCredentials(input: string): string;
16
+ /**
17
+ * Check whether a string contains any known credential patterns.
18
+ *
19
+ * @param input - String to scan
20
+ * @returns Array of detected credential labels (empty if clean)
21
+ */
22
+ export declare function detectCredentials(input: string): string[];
23
+ /**
24
+ * Check whether a string contains any live secret values from the current environment.
25
+ *
26
+ * Looks up each SECRET_ENV_VAR in process.env and tests whether
27
+ * the input contains that value literally.
28
+ *
29
+ * @param input - String to scan
30
+ * @returns Array of env var names whose values appear in the input (empty if clean)
31
+ */
32
+ export declare function detectEnvSecrets(input: string): string[];
33
+ /**
34
+ * Scan a metadata record for credential leaks.
35
+ *
36
+ * Checks both keys and values for patterns that look like secrets.
37
+ *
38
+ * @param metadata - Key-value record to scan
39
+ * @returns Array of issues found (empty if clean)
40
+ */
41
+ export declare function auditMetadata(metadata: Record<string, string>): string[];
42
+ /**
43
+ * Assert that a string is free of credentials.
44
+ * Throws if any credentials are detected.
45
+ *
46
+ * @param input - String to check
47
+ * @param context - Description of what is being checked (for error message)
48
+ * @throws Error if credentials are found
49
+ */
50
+ export declare function assertNoCredentials(input: string, context: string): void;