@proletariat/cli 0.3.52 → 0.3.54

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 (854) hide show
  1. package/README.md +39 -7
  2. package/bin/run.js +21 -11
  3. package/bin/validate-better-sqlite3.cjs +17 -6
  4. package/dist/commands/action/create.js +1 -0
  5. package/dist/commands/action/create.js.map +1 -0
  6. package/dist/commands/action/delete.js +1 -0
  7. package/dist/commands/action/delete.js.map +1 -0
  8. package/dist/commands/action/index.js +1 -0
  9. package/dist/commands/action/index.js.map +1 -0
  10. package/dist/commands/action/list.js +1 -0
  11. package/dist/commands/action/list.js.map +1 -0
  12. package/dist/commands/action/run.js +1 -0
  13. package/dist/commands/action/run.js.map +1 -0
  14. package/dist/commands/action/show.js +1 -0
  15. package/dist/commands/action/show.js.map +1 -0
  16. package/dist/commands/action/update.js +1 -0
  17. package/dist/commands/action/update.js.map +1 -0
  18. package/dist/commands/agent/auth.js +1 -0
  19. package/dist/commands/agent/auth.js.map +1 -0
  20. package/dist/commands/agent/cleanup.js +1 -0
  21. package/dist/commands/agent/cleanup.js.map +1 -0
  22. package/dist/commands/agent/discover.js +1 -0
  23. package/dist/commands/agent/discover.js.map +1 -0
  24. package/dist/commands/agent/index.js +1 -0
  25. package/dist/commands/agent/index.js.map +1 -0
  26. package/dist/commands/agent/list.js +1 -0
  27. package/dist/commands/agent/list.js.map +1 -0
  28. package/dist/commands/agent/login.js +1 -0
  29. package/dist/commands/agent/login.js.map +1 -0
  30. package/dist/commands/agent/rebuild.js +1 -0
  31. package/dist/commands/agent/rebuild.js.map +1 -0
  32. package/dist/commands/agent/remove.js +1 -0
  33. package/dist/commands/agent/remove.js.map +1 -0
  34. package/dist/commands/agent/restart.js +1 -0
  35. package/dist/commands/agent/restart.js.map +1 -0
  36. package/dist/commands/agent/shell.js +5 -1
  37. package/dist/commands/agent/shell.js.map +1 -0
  38. package/dist/commands/agent/staff/add.js +1 -0
  39. package/dist/commands/agent/staff/add.js.map +1 -0
  40. package/dist/commands/agent/staff/index.js +1 -0
  41. package/dist/commands/agent/staff/index.js.map +1 -0
  42. package/dist/commands/agent/staff/list.js +1 -0
  43. package/dist/commands/agent/staff/list.js.map +1 -0
  44. package/dist/commands/agent/staff/remove.js +1 -0
  45. package/dist/commands/agent/staff/remove.js.map +1 -0
  46. package/dist/commands/agent/status.js +1 -0
  47. package/dist/commands/agent/status.js.map +1 -0
  48. package/dist/commands/agent/themes/add-names.js +1 -0
  49. package/dist/commands/agent/themes/add-names.js.map +1 -0
  50. package/dist/commands/agent/themes/create.js +1 -0
  51. package/dist/commands/agent/themes/create.js.map +1 -0
  52. package/dist/commands/agent/themes/index.js +1 -0
  53. package/dist/commands/agent/themes/index.js.map +1 -0
  54. package/dist/commands/agent/themes/list.js +1 -0
  55. package/dist/commands/agent/themes/list.js.map +1 -0
  56. package/dist/commands/agent/themes/set.js +1 -0
  57. package/dist/commands/agent/themes/set.js.map +1 -0
  58. package/dist/commands/agent/visit.js +1 -0
  59. package/dist/commands/agent/visit.js.map +1 -0
  60. package/dist/commands/agents/themes/add-names.js +1 -0
  61. package/dist/commands/agents/themes/add-names.js.map +1 -0
  62. package/dist/commands/agents/themes/create.js +1 -0
  63. package/dist/commands/agents/themes/create.js.map +1 -0
  64. package/dist/commands/agents/themes/list.js +1 -0
  65. package/dist/commands/agents/themes/list.js.map +1 -0
  66. package/dist/commands/asana/connect.js +1 -0
  67. package/dist/commands/asana/connect.js.map +1 -0
  68. package/dist/commands/asana/sync.js +1 -0
  69. package/dist/commands/asana/sync.js.map +1 -0
  70. package/dist/commands/autocomplete/setup.js +1 -0
  71. package/dist/commands/autocomplete/setup.js.map +1 -0
  72. package/dist/commands/board/index.js +1 -0
  73. package/dist/commands/board/index.js.map +1 -0
  74. package/dist/commands/board/view.js +1 -0
  75. package/dist/commands/board/view.js.map +1 -0
  76. package/dist/commands/board/watch.js +1 -0
  77. package/dist/commands/board/watch.js.map +1 -0
  78. package/dist/commands/branch/create.js +1 -0
  79. package/dist/commands/branch/create.js.map +1 -0
  80. package/dist/commands/branch/index.js +1 -0
  81. package/dist/commands/branch/index.js.map +1 -0
  82. package/dist/commands/branch/list.js +1 -0
  83. package/dist/commands/branch/list.js.map +1 -0
  84. package/dist/commands/branch/validate.js +1 -0
  85. package/dist/commands/branch/validate.js.map +1 -0
  86. package/dist/commands/branch/where.js +1 -0
  87. package/dist/commands/branch/where.js.map +1 -0
  88. package/dist/commands/caffeinate/index.js +1 -0
  89. package/dist/commands/caffeinate/index.js.map +1 -0
  90. package/dist/commands/caffeinate/start.js +1 -0
  91. package/dist/commands/caffeinate/start.js.map +1 -0
  92. package/dist/commands/caffeinate/status.js +1 -0
  93. package/dist/commands/caffeinate/status.js.map +1 -0
  94. package/dist/commands/caffeinate/stop.js +1 -0
  95. package/dist/commands/caffeinate/stop.js.map +1 -0
  96. package/dist/commands/category/create.js +1 -0
  97. package/dist/commands/category/create.js.map +1 -0
  98. package/dist/commands/category/delete.js +1 -0
  99. package/dist/commands/category/delete.js.map +1 -0
  100. package/dist/commands/category/index.js +1 -0
  101. package/dist/commands/category/index.js.map +1 -0
  102. package/dist/commands/category/list.js +1 -0
  103. package/dist/commands/category/list.js.map +1 -0
  104. package/dist/commands/category/rename.js +1 -0
  105. package/dist/commands/category/rename.js.map +1 -0
  106. package/dist/commands/claude/index.js +11 -5
  107. package/dist/commands/claude/index.js.map +1 -0
  108. package/dist/commands/claude/open.js +1 -0
  109. package/dist/commands/claude/open.js.map +1 -0
  110. package/dist/commands/commit.js +1 -0
  111. package/dist/commands/commit.js.map +1 -0
  112. package/dist/commands/config/index.js +1 -0
  113. package/dist/commands/config/index.js.map +1 -0
  114. package/dist/commands/diet.js +1 -0
  115. package/dist/commands/diet.js.map +1 -0
  116. package/dist/commands/docker/clean.js +1 -0
  117. package/dist/commands/docker/clean.js.map +1 -0
  118. package/dist/commands/docker/index.js +1 -0
  119. package/dist/commands/docker/index.js.map +1 -0
  120. package/dist/commands/docker/list.js +1 -0
  121. package/dist/commands/docker/list.js.map +1 -0
  122. package/dist/commands/docker/logs.js +4 -1
  123. package/dist/commands/docker/logs.js.map +1 -0
  124. package/dist/commands/docker/prune.js +1 -0
  125. package/dist/commands/docker/prune.js.map +1 -0
  126. package/dist/commands/docker/restart.js +1 -0
  127. package/dist/commands/docker/restart.js.map +1 -0
  128. package/dist/commands/docker/shell.js +4 -1
  129. package/dist/commands/docker/shell.js.map +1 -0
  130. package/dist/commands/docker/start.js +1 -0
  131. package/dist/commands/docker/start.js.map +1 -0
  132. package/dist/commands/docker/status.js +1 -0
  133. package/dist/commands/docker/status.js.map +1 -0
  134. package/dist/commands/docker/stop.js +1 -0
  135. package/dist/commands/docker/stop.js.map +1 -0
  136. package/dist/commands/docker/sync.js +1 -0
  137. package/dist/commands/docker/sync.js.map +1 -0
  138. package/dist/commands/epic/activate.js +1 -0
  139. package/dist/commands/epic/activate.js.map +1 -0
  140. package/dist/commands/epic/archive.js +1 -0
  141. package/dist/commands/epic/archive.js.map +1 -0
  142. package/dist/commands/epic/create.js +1 -0
  143. package/dist/commands/epic/create.js.map +1 -0
  144. package/dist/commands/epic/delete.js +1 -0
  145. package/dist/commands/epic/delete.js.map +1 -0
  146. package/dist/commands/epic/index.js +1 -0
  147. package/dist/commands/epic/index.js.map +1 -0
  148. package/dist/commands/epic/list.js +1 -0
  149. package/dist/commands/epic/list.js.map +1 -0
  150. package/dist/commands/epic/move.js +1 -0
  151. package/dist/commands/epic/move.js.map +1 -0
  152. package/dist/commands/epic/progress.js +1 -0
  153. package/dist/commands/epic/progress.js.map +1 -0
  154. package/dist/commands/epic/project.js +1 -0
  155. package/dist/commands/epic/project.js.map +1 -0
  156. package/dist/commands/epic/reorder.js +1 -0
  157. package/dist/commands/epic/reorder.js.map +1 -0
  158. package/dist/commands/epic/show.js +1 -0
  159. package/dist/commands/epic/show.js.map +1 -0
  160. package/dist/commands/epic/spec.js +1 -0
  161. package/dist/commands/epic/spec.js.map +1 -0
  162. package/dist/commands/epic/ticket.js +1 -0
  163. package/dist/commands/epic/ticket.js.map +1 -0
  164. package/dist/commands/epic/view.js +1 -0
  165. package/dist/commands/epic/view.js.map +1 -0
  166. package/dist/commands/execution/config.js +1 -0
  167. package/dist/commands/execution/config.js.map +1 -0
  168. package/dist/commands/execution/index.js +1 -0
  169. package/dist/commands/execution/index.js.map +1 -0
  170. package/dist/commands/execution/kill.js +1 -0
  171. package/dist/commands/execution/kill.js.map +1 -0
  172. package/dist/commands/execution/list.js +1 -0
  173. package/dist/commands/execution/list.js.map +1 -0
  174. package/dist/commands/execution/logs.js +4 -5
  175. package/dist/commands/execution/logs.js.map +1 -0
  176. package/dist/commands/execution/stop.js +1 -0
  177. package/dist/commands/execution/stop.js.map +1 -0
  178. package/dist/commands/execution/view.js +1 -0
  179. package/dist/commands/execution/view.js.map +1 -0
  180. package/dist/commands/feedback/index.js +1 -0
  181. package/dist/commands/feedback/index.js.map +1 -0
  182. package/dist/commands/feedback/list.js +1 -0
  183. package/dist/commands/feedback/list.js.map +1 -0
  184. package/dist/commands/feedback/submit.js +1 -0
  185. package/dist/commands/feedback/submit.js.map +1 -0
  186. package/dist/commands/feedback/view.js +1 -0
  187. package/dist/commands/feedback/view.js.map +1 -0
  188. package/dist/commands/gh/index.js +1 -0
  189. package/dist/commands/gh/index.js.map +1 -0
  190. package/dist/commands/gh/login.js +4 -1
  191. package/dist/commands/gh/login.js.map +1 -0
  192. package/dist/commands/gh/status.js +1 -0
  193. package/dist/commands/gh/status.js.map +1 -0
  194. package/dist/commands/gh/token.js +1 -0
  195. package/dist/commands/gh/token.js.map +1 -0
  196. package/dist/commands/init.js +1 -0
  197. package/dist/commands/init.js.map +1 -0
  198. package/dist/commands/label/create.js +1 -0
  199. package/dist/commands/label/create.js.map +1 -0
  200. package/dist/commands/label/delete.js +1 -0
  201. package/dist/commands/label/delete.js.map +1 -0
  202. package/dist/commands/label/group/create.js +1 -0
  203. package/dist/commands/label/group/create.js.map +1 -0
  204. package/dist/commands/label/group/list.js +1 -0
  205. package/dist/commands/label/group/list.js.map +1 -0
  206. package/dist/commands/label/index.js +1 -0
  207. package/dist/commands/label/index.js.map +1 -0
  208. package/dist/commands/label/list.js +1 -0
  209. package/dist/commands/label/list.js.map +1 -0
  210. package/dist/commands/linear/auth.d.ts +1 -0
  211. package/dist/commands/linear/auth.js +7 -5
  212. package/dist/commands/linear/auth.js.map +1 -0
  213. package/dist/commands/linear/connect.d.ts +17 -0
  214. package/dist/commands/linear/connect.js +298 -0
  215. package/dist/commands/linear/connect.js.map +1 -0
  216. package/dist/commands/linear/import.js +3 -2
  217. package/dist/commands/linear/import.js.map +1 -0
  218. package/dist/commands/linear/status.js +42 -5
  219. package/dist/commands/linear/status.js.map +1 -0
  220. package/dist/commands/linear/sync.js +3 -2
  221. package/dist/commands/linear/sync.js.map +1 -0
  222. package/dist/commands/link/create.js +1 -0
  223. package/dist/commands/link/create.js.map +1 -0
  224. package/dist/commands/link/index.js +1 -0
  225. package/dist/commands/link/index.js.map +1 -0
  226. package/dist/commands/link/list.js +1 -0
  227. package/dist/commands/link/list.js.map +1 -0
  228. package/dist/commands/link/remove.js +1 -0
  229. package/dist/commands/link/remove.js.map +1 -0
  230. package/dist/commands/mcp-server.js +1 -0
  231. package/dist/commands/mcp-server.js.map +1 -0
  232. package/dist/commands/monday/connect.js +1 -0
  233. package/dist/commands/monday/connect.js.map +1 -0
  234. package/dist/commands/monday/sync.js +1 -0
  235. package/dist/commands/monday/sync.js.map +1 -0
  236. package/dist/commands/orchestrator/attach.js +50 -13
  237. package/dist/commands/orchestrator/attach.js.map +1 -0
  238. package/dist/commands/orchestrator/index.js +1 -0
  239. package/dist/commands/orchestrator/index.js.map +1 -0
  240. package/dist/commands/orchestrator/start.d.ts +9 -0
  241. package/dist/commands/orchestrator/start.js +55 -15
  242. package/dist/commands/orchestrator/start.js.map +1 -0
  243. package/dist/commands/orchestrator/status.js +63 -28
  244. package/dist/commands/orchestrator/status.js.map +1 -0
  245. package/dist/commands/orchestrator/stop.js +65 -17
  246. package/dist/commands/orchestrator/stop.js.map +1 -0
  247. package/dist/commands/phase/create.js +1 -0
  248. package/dist/commands/phase/create.js.map +1 -0
  249. package/dist/commands/phase/delete.js +1 -0
  250. package/dist/commands/phase/delete.js.map +1 -0
  251. package/dist/commands/phase/list.js +1 -0
  252. package/dist/commands/phase/list.js.map +1 -0
  253. package/dist/commands/phase/move.js +1 -0
  254. package/dist/commands/phase/move.js.map +1 -0
  255. package/dist/commands/phase/template/apply.js +1 -0
  256. package/dist/commands/phase/template/apply.js.map +1 -0
  257. package/dist/commands/phase/template/create.js +1 -0
  258. package/dist/commands/phase/template/create.js.map +1 -0
  259. package/dist/commands/phase/template/delete.js +1 -0
  260. package/dist/commands/phase/template/delete.js.map +1 -0
  261. package/dist/commands/phase/template/list.js +1 -0
  262. package/dist/commands/phase/template/list.js.map +1 -0
  263. package/dist/commands/phase/template/update.js +1 -0
  264. package/dist/commands/phase/template/update.js.map +1 -0
  265. package/dist/commands/phase/update.js +1 -0
  266. package/dist/commands/phase/update.js.map +1 -0
  267. package/dist/commands/pmo/init.js +1 -0
  268. package/dist/commands/pmo/init.js.map +1 -0
  269. package/dist/commands/pr/create.js +4 -0
  270. package/dist/commands/pr/create.js.map +1 -0
  271. package/dist/commands/pr/index.js +1 -0
  272. package/dist/commands/pr/index.js.map +1 -0
  273. package/dist/commands/pr/link.js +1 -0
  274. package/dist/commands/pr/link.js.map +1 -0
  275. package/dist/commands/pr/list.js +1 -0
  276. package/dist/commands/pr/list.js.map +1 -0
  277. package/dist/commands/pr/status.js +1 -0
  278. package/dist/commands/pr/status.js.map +1 -0
  279. package/dist/commands/priority/add.js +1 -0
  280. package/dist/commands/priority/add.js.map +1 -0
  281. package/dist/commands/priority/list.js +1 -0
  282. package/dist/commands/priority/list.js.map +1 -0
  283. package/dist/commands/priority/remove.js +1 -0
  284. package/dist/commands/priority/remove.js.map +1 -0
  285. package/dist/commands/priority/set.js +1 -0
  286. package/dist/commands/priority/set.js.map +1 -0
  287. package/dist/commands/project/archive.js +1 -0
  288. package/dist/commands/project/archive.js.map +1 -0
  289. package/dist/commands/project/create.js +1 -0
  290. package/dist/commands/project/create.js.map +1 -0
  291. package/dist/commands/project/delete.js +1 -0
  292. package/dist/commands/project/delete.js.map +1 -0
  293. package/dist/commands/project/index.js +1 -0
  294. package/dist/commands/project/index.js.map +1 -0
  295. package/dist/commands/project/list.js +1 -0
  296. package/dist/commands/project/list.js.map +1 -0
  297. package/dist/commands/project/spec.js +1 -0
  298. package/dist/commands/project/spec.js.map +1 -0
  299. package/dist/commands/project/unarchive.js +1 -0
  300. package/dist/commands/project/unarchive.js.map +1 -0
  301. package/dist/commands/project/update.js +1 -0
  302. package/dist/commands/project/update.js.map +1 -0
  303. package/dist/commands/project/view.js +1 -0
  304. package/dist/commands/project/view.js.map +1 -0
  305. package/dist/commands/pull.js +1 -0
  306. package/dist/commands/pull.js.map +1 -0
  307. package/dist/commands/qa/index.js +11 -5
  308. package/dist/commands/qa/index.js.map +1 -0
  309. package/dist/commands/repo/add.js +1 -0
  310. package/dist/commands/repo/add.js.map +1 -0
  311. package/dist/commands/repo/create.js +1 -0
  312. package/dist/commands/repo/create.js.map +1 -0
  313. package/dist/commands/repo/index.js +1 -0
  314. package/dist/commands/repo/index.js.map +1 -0
  315. package/dist/commands/repo/list.js +1 -0
  316. package/dist/commands/repo/list.js.map +1 -0
  317. package/dist/commands/repo/remove.js +1 -0
  318. package/dist/commands/repo/remove.js.map +1 -0
  319. package/dist/commands/repo/view.js +1 -0
  320. package/dist/commands/repo/view.js.map +1 -0
  321. package/dist/commands/roadmap/add-project.js +1 -0
  322. package/dist/commands/roadmap/add-project.js.map +1 -0
  323. package/dist/commands/roadmap/create.js +1 -0
  324. package/dist/commands/roadmap/create.js.map +1 -0
  325. package/dist/commands/roadmap/delete.js +1 -0
  326. package/dist/commands/roadmap/delete.js.map +1 -0
  327. package/dist/commands/roadmap/generate.js +1 -0
  328. package/dist/commands/roadmap/generate.js.map +1 -0
  329. package/dist/commands/roadmap/index.js +1 -0
  330. package/dist/commands/roadmap/index.js.map +1 -0
  331. package/dist/commands/roadmap/list.js +1 -0
  332. package/dist/commands/roadmap/list.js.map +1 -0
  333. package/dist/commands/roadmap/remove-project.js +1 -0
  334. package/dist/commands/roadmap/remove-project.js.map +1 -0
  335. package/dist/commands/roadmap/reorder.js +1 -0
  336. package/dist/commands/roadmap/reorder.js.map +1 -0
  337. package/dist/commands/roadmap/update.js +1 -0
  338. package/dist/commands/roadmap/update.js.map +1 -0
  339. package/dist/commands/roadmap/view.js +1 -0
  340. package/dist/commands/roadmap/view.js.map +1 -0
  341. package/dist/commands/session/attach.js +1 -0
  342. package/dist/commands/session/attach.js.map +1 -0
  343. package/dist/commands/session/create.js +2 -1
  344. package/dist/commands/session/create.js.map +1 -0
  345. package/dist/commands/session/health.js +5 -7
  346. package/dist/commands/session/health.js.map +1 -0
  347. package/dist/commands/session/index.js +1 -0
  348. package/dist/commands/session/index.js.map +1 -0
  349. package/dist/commands/session/list.js +1 -0
  350. package/dist/commands/session/list.js.map +1 -0
  351. package/dist/commands/session/peek.js +1 -0
  352. package/dist/commands/session/peek.js.map +1 -0
  353. package/dist/commands/session/poke.js +20 -1
  354. package/dist/commands/session/poke.js.map +1 -0
  355. package/dist/commands/spec/create.js +1 -0
  356. package/dist/commands/spec/create.js.map +1 -0
  357. package/dist/commands/spec/delete.js +1 -0
  358. package/dist/commands/spec/delete.js.map +1 -0
  359. package/dist/commands/spec/edit.js +1 -0
  360. package/dist/commands/spec/edit.js.map +1 -0
  361. package/dist/commands/spec/index.js +1 -0
  362. package/dist/commands/spec/index.js.map +1 -0
  363. package/dist/commands/spec/link/depends.js +1 -0
  364. package/dist/commands/spec/link/depends.js.map +1 -0
  365. package/dist/commands/spec/link/index.js +1 -0
  366. package/dist/commands/spec/link/index.js.map +1 -0
  367. package/dist/commands/spec/link/remove.js +1 -0
  368. package/dist/commands/spec/link/remove.js.map +1 -0
  369. package/dist/commands/spec/list.js +1 -0
  370. package/dist/commands/spec/list.js.map +1 -0
  371. package/dist/commands/spec/plan.js +1 -0
  372. package/dist/commands/spec/plan.js.map +1 -0
  373. package/dist/commands/spec/ticket.js +1 -0
  374. package/dist/commands/spec/ticket.js.map +1 -0
  375. package/dist/commands/spec/view.js +1 -0
  376. package/dist/commands/spec/view.js.map +1 -0
  377. package/dist/commands/staff/add.js +1 -0
  378. package/dist/commands/staff/add.js.map +1 -0
  379. package/dist/commands/staff/index.js +1 -0
  380. package/dist/commands/staff/index.js.map +1 -0
  381. package/dist/commands/staff/list.js +1 -0
  382. package/dist/commands/staff/list.js.map +1 -0
  383. package/dist/commands/staff/remove.js +1 -0
  384. package/dist/commands/staff/remove.js.map +1 -0
  385. package/dist/commands/status/category.js +1 -0
  386. package/dist/commands/status/category.js.map +1 -0
  387. package/dist/commands/status/create.js +1 -0
  388. package/dist/commands/status/create.js.map +1 -0
  389. package/dist/commands/status/delete.js +1 -0
  390. package/dist/commands/status/delete.js.map +1 -0
  391. package/dist/commands/status/index.js +1 -0
  392. package/dist/commands/status/index.js.map +1 -0
  393. package/dist/commands/status/list.js +1 -0
  394. package/dist/commands/status/list.js.map +1 -0
  395. package/dist/commands/status/move.js +1 -0
  396. package/dist/commands/status/move.js.map +1 -0
  397. package/dist/commands/status/update.js +1 -0
  398. package/dist/commands/status/update.js.map +1 -0
  399. package/dist/commands/support/book.js +1 -0
  400. package/dist/commands/support/book.js.map +1 -0
  401. package/dist/commands/support/discord.js +1 -0
  402. package/dist/commands/support/discord.js.map +1 -0
  403. package/dist/commands/support/docs.js +1 -0
  404. package/dist/commands/support/docs.js.map +1 -0
  405. package/dist/commands/support/index.js +1 -0
  406. package/dist/commands/support/index.js.map +1 -0
  407. package/dist/commands/support/issues.js +1 -0
  408. package/dist/commands/support/issues.js.map +1 -0
  409. package/dist/commands/support/logs.js +1 -0
  410. package/dist/commands/support/logs.js.map +1 -0
  411. package/dist/commands/telemetry/disable.d.ts +10 -0
  412. package/dist/commands/telemetry/disable.js +27 -0
  413. package/dist/commands/telemetry/disable.js.map +1 -0
  414. package/dist/commands/telemetry/enable.d.ts +10 -0
  415. package/dist/commands/telemetry/enable.js +27 -0
  416. package/dist/commands/telemetry/enable.js.map +1 -0
  417. package/dist/commands/telemetry/index.d.ts +10 -0
  418. package/dist/commands/telemetry/index.js +41 -0
  419. package/dist/commands/telemetry/index.js.map +1 -0
  420. package/dist/commands/telemetry/status.d.ts +10 -0
  421. package/dist/commands/telemetry/status.js +42 -0
  422. package/dist/commands/telemetry/status.js.map +1 -0
  423. package/dist/commands/template/apply.js +1 -0
  424. package/dist/commands/template/apply.js.map +1 -0
  425. package/dist/commands/template/create.js +1 -0
  426. package/dist/commands/template/create.js.map +1 -0
  427. package/dist/commands/template/delete.js +1 -0
  428. package/dist/commands/template/delete.js.map +1 -0
  429. package/dist/commands/template/index.js +1 -0
  430. package/dist/commands/template/index.js.map +1 -0
  431. package/dist/commands/template/list.js +1 -0
  432. package/dist/commands/template/list.js.map +1 -0
  433. package/dist/commands/template/save.js +1 -0
  434. package/dist/commands/template/save.js.map +1 -0
  435. package/dist/commands/template/update.js +1 -0
  436. package/dist/commands/template/update.js.map +1 -0
  437. package/dist/commands/terminal/title.js +1 -0
  438. package/dist/commands/terminal/title.js.map +1 -0
  439. package/dist/commands/theme/add-names.js +1 -0
  440. package/dist/commands/theme/add-names.js.map +1 -0
  441. package/dist/commands/theme/create.js +1 -0
  442. package/dist/commands/theme/create.js.map +1 -0
  443. package/dist/commands/theme/index.js +1 -0
  444. package/dist/commands/theme/index.js.map +1 -0
  445. package/dist/commands/theme/list.js +1 -0
  446. package/dist/commands/theme/list.js.map +1 -0
  447. package/dist/commands/theme/set.js +1 -0
  448. package/dist/commands/theme/set.js.map +1 -0
  449. package/dist/commands/ticket/bulk.js +1 -0
  450. package/dist/commands/ticket/bulk.js.map +1 -0
  451. package/dist/commands/ticket/category.js +1 -0
  452. package/dist/commands/ticket/category.js.map +1 -0
  453. package/dist/commands/ticket/complete.js +1 -0
  454. package/dist/commands/ticket/complete.js.map +1 -0
  455. package/dist/commands/ticket/create.js +1 -0
  456. package/dist/commands/ticket/create.js.map +1 -0
  457. package/dist/commands/ticket/delete.js +1 -0
  458. package/dist/commands/ticket/delete.js.map +1 -0
  459. package/dist/commands/ticket/edit.js +1 -0
  460. package/dist/commands/ticket/edit.js.map +1 -0
  461. package/dist/commands/ticket/epic.js +1 -0
  462. package/dist/commands/ticket/epic.js.map +1 -0
  463. package/dist/commands/ticket/index.js +1 -0
  464. package/dist/commands/ticket/index.js.map +1 -0
  465. package/dist/commands/ticket/link/block.js +1 -0
  466. package/dist/commands/ticket/link/block.js.map +1 -0
  467. package/dist/commands/ticket/link/duplicates.js +1 -0
  468. package/dist/commands/ticket/link/duplicates.js.map +1 -0
  469. package/dist/commands/ticket/link/index.js +1 -0
  470. package/dist/commands/ticket/link/index.js.map +1 -0
  471. package/dist/commands/ticket/link/relates.js +1 -0
  472. package/dist/commands/ticket/link/relates.js.map +1 -0
  473. package/dist/commands/ticket/list.js +1 -0
  474. package/dist/commands/ticket/list.js.map +1 -0
  475. package/dist/commands/ticket/move.js +1 -0
  476. package/dist/commands/ticket/move.js.map +1 -0
  477. package/dist/commands/ticket/project.js +1 -0
  478. package/dist/commands/ticket/project.js.map +1 -0
  479. package/dist/commands/ticket/reassign.js +1 -0
  480. package/dist/commands/ticket/reassign.js.map +1 -0
  481. package/dist/commands/ticket/resolve.js +1 -0
  482. package/dist/commands/ticket/resolve.js.map +1 -0
  483. package/dist/commands/ticket/show.js +1 -0
  484. package/dist/commands/ticket/show.js.map +1 -0
  485. package/dist/commands/ticket/spec.js +1 -0
  486. package/dist/commands/ticket/spec.js.map +1 -0
  487. package/dist/commands/ticket/status.js +1 -0
  488. package/dist/commands/ticket/status.js.map +1 -0
  489. package/dist/commands/ticket/template/apply.js +1 -0
  490. package/dist/commands/ticket/template/apply.js.map +1 -0
  491. package/dist/commands/ticket/template/delete.js +1 -0
  492. package/dist/commands/ticket/template/delete.js.map +1 -0
  493. package/dist/commands/ticket/template/list.js +1 -0
  494. package/dist/commands/ticket/template/list.js.map +1 -0
  495. package/dist/commands/ticket/template/save.js +1 -0
  496. package/dist/commands/ticket/template/save.js.map +1 -0
  497. package/dist/commands/ticket/update.js +1 -0
  498. package/dist/commands/ticket/update.js.map +1 -0
  499. package/dist/commands/ticket/view.js +1 -0
  500. package/dist/commands/ticket/view.js.map +1 -0
  501. package/dist/commands/whoami.js +1 -0
  502. package/dist/commands/whoami.js.map +1 -0
  503. package/dist/commands/work/complete.js +6 -0
  504. package/dist/commands/work/complete.js.map +1 -0
  505. package/dist/commands/work/index.js +1 -0
  506. package/dist/commands/work/index.js.map +1 -0
  507. package/dist/commands/work/jira.js +2 -1
  508. package/dist/commands/work/jira.js.map +1 -0
  509. package/dist/commands/work/linear.js +2 -1
  510. package/dist/commands/work/linear.js.map +1 -0
  511. package/dist/commands/work/ready.js +1 -0
  512. package/dist/commands/work/ready.js.map +1 -0
  513. package/dist/commands/work/resolve.js +1 -0
  514. package/dist/commands/work/resolve.js.map +1 -0
  515. package/dist/commands/work/review.js +2 -1
  516. package/dist/commands/work/review.js.map +1 -0
  517. package/dist/commands/work/revise.js +2 -1
  518. package/dist/commands/work/revise.js.map +1 -0
  519. package/dist/commands/work/source/set.js +1 -0
  520. package/dist/commands/work/source/set.js.map +1 -0
  521. package/dist/commands/work/source.js +1 -0
  522. package/dist/commands/work/source.js.map +1 -0
  523. package/dist/commands/work/spawn-all.js +2 -1
  524. package/dist/commands/work/spawn-all.js.map +1 -0
  525. package/dist/commands/work/spawn.d.ts +5 -0
  526. package/dist/commands/work/spawn.js +274 -29
  527. package/dist/commands/work/spawn.js.map +1 -0
  528. package/dist/commands/work/start.d.ts +1 -0
  529. package/dist/commands/work/start.js +388 -235
  530. package/dist/commands/work/start.js.map +1 -0
  531. package/dist/commands/work/status.js +1 -0
  532. package/dist/commands/work/status.js.map +1 -0
  533. package/dist/commands/work/watch.js +5 -8
  534. package/dist/commands/work/watch.js.map +1 -0
  535. package/dist/commands/workflow/create.js +1 -0
  536. package/dist/commands/workflow/create.js.map +1 -0
  537. package/dist/commands/workflow/delete.js +1 -0
  538. package/dist/commands/workflow/delete.js.map +1 -0
  539. package/dist/commands/workflow/index.js +1 -0
  540. package/dist/commands/workflow/index.js.map +1 -0
  541. package/dist/commands/workflow/list.js +1 -0
  542. package/dist/commands/workflow/list.js.map +1 -0
  543. package/dist/commands/workflow/show.js +1 -0
  544. package/dist/commands/workflow/show.js.map +1 -0
  545. package/dist/commands/workflow/switch.js +1 -0
  546. package/dist/commands/workflow/switch.js.map +1 -0
  547. package/dist/commands/workflow/view.js +1 -0
  548. package/dist/commands/workflow/view.js.map +1 -0
  549. package/dist/commands/workspace/add.js +1 -0
  550. package/dist/commands/workspace/add.js.map +1 -0
  551. package/dist/commands/workspace/list.js +1 -0
  552. package/dist/commands/workspace/list.js.map +1 -0
  553. package/dist/commands/workspace/prune.js +1 -0
  554. package/dist/commands/workspace/prune.js.map +1 -0
  555. package/dist/commands/workspace/remove.js +1 -0
  556. package/dist/commands/workspace/remove.js.map +1 -0
  557. package/dist/commands/workspace/use.js +1 -0
  558. package/dist/commands/workspace/use.js.map +1 -0
  559. package/dist/hooks/init.d.ts +6 -1
  560. package/dist/hooks/init.js +34 -2
  561. package/dist/hooks/init.js.map +1 -0
  562. package/dist/hooks/postrun.d.ts +9 -0
  563. package/dist/hooks/postrun.js +30 -0
  564. package/dist/hooks/postrun.js.map +1 -0
  565. package/dist/index.js +1 -0
  566. package/dist/index.js.map +1 -0
  567. package/dist/lib/agents/commands.js +1 -0
  568. package/dist/lib/agents/commands.js.map +1 -0
  569. package/dist/lib/agents/index.js +1 -0
  570. package/dist/lib/agents/index.js.map +1 -0
  571. package/dist/lib/asana/client.js +1 -0
  572. package/dist/lib/asana/client.js.map +1 -0
  573. package/dist/lib/asana/config.js +1 -0
  574. package/dist/lib/asana/config.js.map +1 -0
  575. package/dist/lib/asana/index.js +1 -0
  576. package/dist/lib/asana/index.js.map +1 -0
  577. package/dist/lib/asana/mapper.js +1 -0
  578. package/dist/lib/asana/mapper.js.map +1 -0
  579. package/dist/lib/asana/sync.js +1 -0
  580. package/dist/lib/asana/sync.js.map +1 -0
  581. package/dist/lib/asana/types.js +1 -0
  582. package/dist/lib/asana/types.js.map +1 -0
  583. package/dist/lib/branch/index.js +1 -0
  584. package/dist/lib/branch/index.js.map +1 -0
  585. package/dist/lib/caffeinate.js +1 -0
  586. package/dist/lib/caffeinate.js.map +1 -0
  587. package/dist/lib/colors.js +1 -0
  588. package/dist/lib/colors.js.map +1 -0
  589. package/dist/lib/commands/docker-command.js +1 -0
  590. package/dist/lib/commands/docker-command.js.map +1 -0
  591. package/dist/lib/database/drizzle-schema.js +1 -0
  592. package/dist/lib/database/drizzle-schema.js.map +1 -0
  593. package/dist/lib/database/drizzle.js +10 -1
  594. package/dist/lib/database/drizzle.js.map +1 -0
  595. package/dist/lib/database/index.js +42 -5
  596. package/dist/lib/database/index.js.map +1 -0
  597. package/dist/lib/database/native-validation.d.ts +17 -0
  598. package/dist/lib/database/native-validation.js +51 -6
  599. package/dist/lib/database/native-validation.js.map +1 -0
  600. package/dist/lib/docker/resolve.js +1 -0
  601. package/dist/lib/docker/resolve.js.map +1 -0
  602. package/dist/lib/execution/codex-adapter.js +1 -0
  603. package/dist/lib/execution/codex-adapter.js.map +1 -0
  604. package/dist/lib/execution/config.js +1 -0
  605. package/dist/lib/execution/config.js.map +1 -0
  606. package/dist/lib/execution/context.js +1 -0
  607. package/dist/lib/execution/context.js.map +1 -0
  608. package/dist/lib/execution/devcontainer.js +1 -0
  609. package/dist/lib/execution/devcontainer.js.map +1 -0
  610. package/dist/lib/execution/index.js +1 -0
  611. package/dist/lib/execution/index.js.map +1 -0
  612. package/dist/lib/execution/runners.d.ts +4 -3
  613. package/dist/lib/execution/runners.js +84 -25
  614. package/dist/lib/execution/runners.js.map +1 -0
  615. package/dist/lib/execution/session-utils.js +1 -0
  616. package/dist/lib/execution/session-utils.js.map +1 -0
  617. package/dist/lib/execution/spawner.js +1 -0
  618. package/dist/lib/execution/spawner.js.map +1 -0
  619. package/dist/lib/execution/storage.js +1 -0
  620. package/dist/lib/execution/storage.js.map +1 -0
  621. package/dist/lib/execution/types.d.ts +3 -1
  622. package/dist/lib/execution/types.js +1 -0
  623. package/dist/lib/execution/types.js.map +1 -0
  624. package/dist/lib/external-issues/adapters.js +1 -0
  625. package/dist/lib/external-issues/adapters.js.map +1 -0
  626. package/dist/lib/external-issues/index.d.ts +1 -0
  627. package/dist/lib/external-issues/index.js +3 -0
  628. package/dist/lib/external-issues/index.js.map +1 -0
  629. package/dist/lib/external-issues/jira.js +1 -0
  630. package/dist/lib/external-issues/jira.js.map +1 -0
  631. package/dist/lib/external-issues/linear.js +13 -0
  632. package/dist/lib/external-issues/linear.js.map +1 -0
  633. package/dist/lib/external-issues/mapper.js +1 -0
  634. package/dist/lib/external-issues/mapper.js.map +1 -0
  635. package/dist/lib/external-issues/mapping-store.js +1 -0
  636. package/dist/lib/external-issues/mapping-store.js.map +1 -0
  637. package/dist/lib/external-issues/redact.d.ts +50 -0
  638. package/dist/lib/external-issues/redact.js +130 -0
  639. package/dist/lib/external-issues/redact.js.map +1 -0
  640. package/dist/lib/external-issues/types.d.ts +1 -1
  641. package/dist/lib/external-issues/types.js +1 -0
  642. package/dist/lib/external-issues/types.js.map +1 -0
  643. package/dist/lib/external-issues/validation.js +1 -0
  644. package/dist/lib/external-issues/validation.js.map +1 -0
  645. package/dist/lib/external-issues/work-start.js +1 -0
  646. package/dist/lib/external-issues/work-start.js.map +1 -0
  647. package/dist/lib/flags/index.js +1 -0
  648. package/dist/lib/flags/index.js.map +1 -0
  649. package/dist/lib/flags/resolver.js +4 -2
  650. package/dist/lib/flags/resolver.js.map +1 -0
  651. package/dist/lib/init/index.js +1 -0
  652. package/dist/lib/init/index.js.map +1 -0
  653. package/dist/lib/jira/config.d.ts +33 -0
  654. package/dist/lib/jira/config.js +97 -0
  655. package/dist/lib/jira/config.js.map +1 -0
  656. package/dist/lib/jira/index.d.ts +7 -0
  657. package/dist/lib/jira/index.js +7 -0
  658. package/dist/lib/jira/index.js.map +1 -0
  659. package/dist/lib/linear/client.js +1 -0
  660. package/dist/lib/linear/client.js.map +1 -0
  661. package/dist/lib/linear/config.js +1 -0
  662. package/dist/lib/linear/config.js.map +1 -0
  663. package/dist/lib/linear/index.js +1 -0
  664. package/dist/lib/linear/index.js.map +1 -0
  665. package/dist/lib/linear/mapper.js +1 -0
  666. package/dist/lib/linear/mapper.js.map +1 -0
  667. package/dist/lib/linear/sync.js +1 -0
  668. package/dist/lib/linear/sync.js.map +1 -0
  669. package/dist/lib/linear/types.js +1 -0
  670. package/dist/lib/linear/types.js.map +1 -0
  671. package/dist/lib/machine-config.js +1 -0
  672. package/dist/lib/machine-config.js.map +1 -0
  673. package/dist/lib/mcp/helpers.js +1 -0
  674. package/dist/lib/mcp/helpers.js.map +1 -0
  675. package/dist/lib/mcp/index.js +1 -0
  676. package/dist/lib/mcp/index.js.map +1 -0
  677. package/dist/lib/mcp/tools/action.js +1 -0
  678. package/dist/lib/mcp/tools/action.js.map +1 -0
  679. package/dist/lib/mcp/tools/board.js +1 -0
  680. package/dist/lib/mcp/tools/board.js.map +1 -0
  681. package/dist/lib/mcp/tools/category.js +1 -0
  682. package/dist/lib/mcp/tools/category.js.map +1 -0
  683. package/dist/lib/mcp/tools/cli-passthrough.js +1 -0
  684. package/dist/lib/mcp/tools/cli-passthrough.js.map +1 -0
  685. package/dist/lib/mcp/tools/diet.js +1 -0
  686. package/dist/lib/mcp/tools/diet.js.map +1 -0
  687. package/dist/lib/mcp/tools/epic.js +1 -0
  688. package/dist/lib/mcp/tools/epic.js.map +1 -0
  689. package/dist/lib/mcp/tools/index.js +1 -0
  690. package/dist/lib/mcp/tools/index.js.map +1 -0
  691. package/dist/lib/mcp/tools/label.js +1 -0
  692. package/dist/lib/mcp/tools/label.js.map +1 -0
  693. package/dist/lib/mcp/tools/phase.js +1 -0
  694. package/dist/lib/mcp/tools/phase.js.map +1 -0
  695. package/dist/lib/mcp/tools/project.js +1 -0
  696. package/dist/lib/mcp/tools/project.js.map +1 -0
  697. package/dist/lib/mcp/tools/roadmap.js +1 -0
  698. package/dist/lib/mcp/tools/roadmap.js.map +1 -0
  699. package/dist/lib/mcp/tools/spec.js +1 -0
  700. package/dist/lib/mcp/tools/spec.js.map +1 -0
  701. package/dist/lib/mcp/tools/status.js +1 -0
  702. package/dist/lib/mcp/tools/status.js.map +1 -0
  703. package/dist/lib/mcp/tools/template.js +1 -0
  704. package/dist/lib/mcp/tools/template.js.map +1 -0
  705. package/dist/lib/mcp/tools/ticket.js +1 -0
  706. package/dist/lib/mcp/tools/ticket.js.map +1 -0
  707. package/dist/lib/mcp/tools/tmux.js +1 -0
  708. package/dist/lib/mcp/tools/tmux.js.map +1 -0
  709. package/dist/lib/mcp/tools/view.js +1 -0
  710. package/dist/lib/mcp/tools/view.js.map +1 -0
  711. package/dist/lib/mcp/tools/work.js +1 -0
  712. package/dist/lib/mcp/tools/work.js.map +1 -0
  713. package/dist/lib/mcp/tools/workflow.js +1 -0
  714. package/dist/lib/mcp/tools/workflow.js.map +1 -0
  715. package/dist/lib/mcp/types.js +1 -0
  716. package/dist/lib/mcp/types.js.map +1 -0
  717. package/dist/lib/monday/client.js +1 -0
  718. package/dist/lib/monday/client.js.map +1 -0
  719. package/dist/lib/monday/config.js +1 -0
  720. package/dist/lib/monday/config.js.map +1 -0
  721. package/dist/lib/monday/index.js +1 -0
  722. package/dist/lib/monday/index.js.map +1 -0
  723. package/dist/lib/monday/mapper.js +1 -0
  724. package/dist/lib/monday/mapper.js.map +1 -0
  725. package/dist/lib/monday/sync.js +1 -0
  726. package/dist/lib/monday/sync.js.map +1 -0
  727. package/dist/lib/monday/types.js +1 -0
  728. package/dist/lib/monday/types.js.map +1 -0
  729. package/dist/lib/multiline-input.js +1 -0
  730. package/dist/lib/multiline-input.js.map +1 -0
  731. package/dist/lib/pmo/base-command.js +8 -6
  732. package/dist/lib/pmo/base-command.js.map +1 -0
  733. package/dist/lib/pmo/create-spec-folders.js +1 -0
  734. package/dist/lib/pmo/create-spec-folders.js.map +1 -0
  735. package/dist/lib/pmo/diet.js +1 -0
  736. package/dist/lib/pmo/diet.js.map +1 -0
  737. package/dist/lib/pmo/epic-files.js +1 -0
  738. package/dist/lib/pmo/epic-files.js.map +1 -0
  739. package/dist/lib/pmo/find-pmo.js +6 -1
  740. package/dist/lib/pmo/find-pmo.js.map +1 -0
  741. package/dist/lib/pmo/index.js +1 -0
  742. package/dist/lib/pmo/index.js.map +1 -0
  743. package/dist/lib/pmo/markdown.js +1 -0
  744. package/dist/lib/pmo/markdown.js.map +1 -0
  745. package/dist/lib/pmo/pmo-context.js +1 -0
  746. package/dist/lib/pmo/pmo-context.js.map +1 -0
  747. package/dist/lib/pmo/schema.js +1 -0
  748. package/dist/lib/pmo/schema.js.map +1 -0
  749. package/dist/lib/pmo/spec-parser.js +1 -0
  750. package/dist/lib/pmo/spec-parser.js.map +1 -0
  751. package/dist/lib/pmo/spec-types.js +1 -0
  752. package/dist/lib/pmo/spec-types.js.map +1 -0
  753. package/dist/lib/pmo/storage/actions.js +1 -0
  754. package/dist/lib/pmo/storage/actions.js.map +1 -0
  755. package/dist/lib/pmo/storage/base.js +1 -0
  756. package/dist/lib/pmo/storage/base.js.map +1 -0
  757. package/dist/lib/pmo/storage/categories.js +1 -0
  758. package/dist/lib/pmo/storage/categories.js.map +1 -0
  759. package/dist/lib/pmo/storage/dependencies.js +1 -0
  760. package/dist/lib/pmo/storage/dependencies.js.map +1 -0
  761. package/dist/lib/pmo/storage/epics.js +1 -0
  762. package/dist/lib/pmo/storage/epics.js.map +1 -0
  763. package/dist/lib/pmo/storage/helpers.js +1 -0
  764. package/dist/lib/pmo/storage/helpers.js.map +1 -0
  765. package/dist/lib/pmo/storage/index.js +1 -0
  766. package/dist/lib/pmo/storage/index.js.map +1 -0
  767. package/dist/lib/pmo/storage/labels.js +1 -0
  768. package/dist/lib/pmo/storage/labels.js.map +1 -0
  769. package/dist/lib/pmo/storage/phases.js +1 -0
  770. package/dist/lib/pmo/storage/phases.js.map +1 -0
  771. package/dist/lib/pmo/storage/projects.js +1 -0
  772. package/dist/lib/pmo/storage/projects.js.map +1 -0
  773. package/dist/lib/pmo/storage/roadmaps.js +1 -0
  774. package/dist/lib/pmo/storage/roadmaps.js.map +1 -0
  775. package/dist/lib/pmo/storage/specs.js +1 -0
  776. package/dist/lib/pmo/storage/specs.js.map +1 -0
  777. package/dist/lib/pmo/storage/statuses.js +1 -0
  778. package/dist/lib/pmo/storage/statuses.js.map +1 -0
  779. package/dist/lib/pmo/storage/subtasks.js +1 -0
  780. package/dist/lib/pmo/storage/subtasks.js.map +1 -0
  781. package/dist/lib/pmo/storage/templates.js +1 -0
  782. package/dist/lib/pmo/storage/templates.js.map +1 -0
  783. package/dist/lib/pmo/storage/tickets.js +1 -0
  784. package/dist/lib/pmo/storage/tickets.js.map +1 -0
  785. package/dist/lib/pmo/storage/types.js +1 -0
  786. package/dist/lib/pmo/storage/types.js.map +1 -0
  787. package/dist/lib/pmo/storage/views.js +1 -0
  788. package/dist/lib/pmo/storage/views.js.map +1 -0
  789. package/dist/lib/pmo/storage-sqlite.js +1 -0
  790. package/dist/lib/pmo/storage-sqlite.js.map +1 -0
  791. package/dist/lib/pmo/sync-manager.js +1 -0
  792. package/dist/lib/pmo/sync-manager.js.map +1 -0
  793. package/dist/lib/pmo/templates-builtin.js +1 -0
  794. package/dist/lib/pmo/templates-builtin.js.map +1 -0
  795. package/dist/lib/pmo/types.js +1 -0
  796. package/dist/lib/pmo/types.js.map +1 -0
  797. package/dist/lib/pmo/utils.js +1 -0
  798. package/dist/lib/pmo/utils.js.map +1 -0
  799. package/dist/lib/pmo/watcher.d.ts +1 -1
  800. package/dist/lib/pmo/watcher.js +6 -7
  801. package/dist/lib/pmo/watcher.js.map +1 -0
  802. package/dist/lib/pr/index.js +1 -0
  803. package/dist/lib/pr/index.js.map +1 -0
  804. package/dist/lib/prompt-command.js +4 -2
  805. package/dist/lib/prompt-command.js.map +1 -0
  806. package/dist/lib/prompt-json.d.ts +5 -0
  807. package/dist/lib/prompt-json.js +1 -0
  808. package/dist/lib/prompt-json.js.map +1 -0
  809. package/dist/lib/repos/git.js +1 -0
  810. package/dist/lib/repos/git.js.map +1 -0
  811. package/dist/lib/repos/index.js +1 -0
  812. package/dist/lib/repos/index.js.map +1 -0
  813. package/dist/lib/signal-handler.d.ts +59 -0
  814. package/dist/lib/signal-handler.js +156 -0
  815. package/dist/lib/signal-handler.js.map +1 -0
  816. package/dist/lib/string-utils.js +1 -0
  817. package/dist/lib/string-utils.js.map +1 -0
  818. package/dist/lib/styles.js +1 -0
  819. package/dist/lib/styles.js.map +1 -0
  820. package/dist/lib/telemetry/analytics.d.ts +105 -0
  821. package/dist/lib/telemetry/analytics.js +289 -0
  822. package/dist/lib/telemetry/analytics.js.map +1 -0
  823. package/dist/lib/telemetry/feature-flags.d.ts +53 -0
  824. package/dist/lib/telemetry/feature-flags.js +83 -0
  825. package/dist/lib/telemetry/feature-flags.js.map +1 -0
  826. package/dist/lib/telemetry.d.ts +63 -0
  827. package/dist/lib/telemetry.js +217 -0
  828. package/dist/lib/telemetry.js.map +1 -0
  829. package/dist/lib/terminal.js +1 -0
  830. package/dist/lib/terminal.js.map +1 -0
  831. package/dist/lib/themes.js +1 -0
  832. package/dist/lib/themes.js.map +1 -0
  833. package/dist/lib/ui/BoardUI.js +1 -0
  834. package/dist/lib/ui/BoardUI.js.map +1 -0
  835. package/dist/lib/ui/ClaimTicketUI.js +1 -0
  836. package/dist/lib/ui/ClaimTicketUI.js.map +1 -0
  837. package/dist/lib/ui/CreateTicketUI.js +1 -0
  838. package/dist/lib/ui/CreateTicketUI.js.map +1 -0
  839. package/dist/lib/update-check.d.ts +83 -0
  840. package/dist/lib/update-check.js +275 -0
  841. package/dist/lib/update-check.js.map +1 -0
  842. package/dist/lib/update-prompt.d.ts +47 -0
  843. package/dist/lib/update-prompt.js +163 -0
  844. package/dist/lib/update-prompt.js.map +1 -0
  845. package/dist/lib/work-source/config.js +9 -0
  846. package/dist/lib/work-source/config.js.map +1 -0
  847. package/dist/lib/work-source/index.js +1 -0
  848. package/dist/lib/work-source/index.js.map +1 -0
  849. package/dist/lib/workspace-config.js +1 -0
  850. package/dist/lib/workspace-config.js.map +1 -0
  851. package/dist/lib/workspace.js +1 -0
  852. package/dist/lib/workspace.js.map +1 -0
  853. package/oclif.manifest.json +3540 -3282
  854. package/package.json +10 -10
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Centralized signal handler for graceful CLI shutdown
3
+ *
4
+ * Manages SIGINT (Ctrl+C) and SIGTERM handling across the CLI:
5
+ * - Runs registered cleanup callbacks in LIFO order
6
+ * - Kills tracked child processes
7
+ * - Exits with code 130 (standard Unix SIGINT convention)
8
+ * - Prevents ERR_USE_AFTER_CLOSE from dangling inquirer prompts
9
+ *
10
+ * Usage:
11
+ * ```typescript
12
+ * import { onShutdown, trackChildProcess } from '../lib/signal-handler.js'
13
+ *
14
+ * // Register cleanup (returns unregister function)
15
+ * const unregister = onShutdown(async () => {
16
+ * db.close()
17
+ * })
18
+ *
19
+ * // Track a child process for automatic cleanup
20
+ * trackChildProcess(childProc)
21
+ * ```
22
+ */
23
+ const cleanupCallbacks = [];
24
+ const trackedProcesses = new Set();
25
+ let isShuttingDown = false;
26
+ let installed = false;
27
+ /**
28
+ * Run all cleanup callbacks and exit.
29
+ * Called on SIGINT or SIGTERM.
30
+ */
31
+ async function shutdown() {
32
+ if (isShuttingDown)
33
+ return;
34
+ isShuttingDown = true;
35
+ // Kill tracked child processes first
36
+ for (const child of trackedProcesses) {
37
+ try {
38
+ if (child.pid && !child.killed) {
39
+ child.kill('SIGTERM');
40
+ }
41
+ }
42
+ catch {
43
+ // Process may have already exited
44
+ }
45
+ }
46
+ trackedProcesses.clear();
47
+ // Run cleanup callbacks in LIFO order (most recent first)
48
+ const callbacks = [...cleanupCallbacks].reverse();
49
+ for (const cb of callbacks) {
50
+ try {
51
+ await cb();
52
+ }
53
+ catch {
54
+ // Swallow errors during cleanup
55
+ }
56
+ }
57
+ cleanupCallbacks.length = 0;
58
+ // Exit with 130 = 128 + 2 (SIGINT)
59
+ process.exit(130);
60
+ }
61
+ /**
62
+ * Install global signal handlers. Called once at CLI startup.
63
+ * Safe to call multiple times (idempotent).
64
+ */
65
+ export function installSignalHandlers() {
66
+ if (installed)
67
+ return;
68
+ installed = true;
69
+ process.on('SIGINT', () => {
70
+ // Write a newline to avoid dangling prompt characters
71
+ if (process.stdout.isTTY) {
72
+ process.stdout.write('\n');
73
+ }
74
+ void shutdown();
75
+ });
76
+ process.on('SIGTERM', () => {
77
+ void shutdown();
78
+ });
79
+ }
80
+ /**
81
+ * Register a cleanup callback to run on shutdown.
82
+ * Callbacks run in LIFO order (most recently registered runs first).
83
+ *
84
+ * @returns Unregister function to remove the callback
85
+ */
86
+ export function onShutdown(fn) {
87
+ cleanupCallbacks.push(fn);
88
+ return () => {
89
+ const idx = cleanupCallbacks.indexOf(fn);
90
+ if (idx !== -1) {
91
+ cleanupCallbacks.splice(idx, 1);
92
+ }
93
+ };
94
+ }
95
+ /**
96
+ * Track a child process for automatic cleanup on shutdown.
97
+ * The process will receive SIGTERM when the CLI exits.
98
+ *
99
+ * Automatically removes itself from tracking when it exits.
100
+ */
101
+ export function trackChildProcess(child) {
102
+ trackedProcesses.add(child);
103
+ child.on('exit', () => {
104
+ trackedProcesses.delete(child);
105
+ });
106
+ child.on('error', () => {
107
+ trackedProcesses.delete(child);
108
+ });
109
+ }
110
+ /**
111
+ * Check if the process is currently shutting down.
112
+ * Useful for avoiding work after SIGINT.
113
+ */
114
+ export function isExiting() {
115
+ return isShuttingDown;
116
+ }
117
+ /**
118
+ * Wrap an inquirer prompt call to handle SIGINT gracefully.
119
+ * On SIGINT during a prompt, triggers the shutdown sequence
120
+ * instead of letting inquirer throw ERR_USE_AFTER_CLOSE.
121
+ *
122
+ * @param promptFn - Function that calls inquirer.prompt()
123
+ * @returns The prompt result
124
+ */
125
+ export async function withSignalSafePrompt(promptFn) {
126
+ if (isShuttingDown) {
127
+ // If already shutting down, just exit
128
+ process.exit(130);
129
+ }
130
+ try {
131
+ return await promptFn();
132
+ }
133
+ catch (error) {
134
+ // Check if this is a prompt close error from SIGINT
135
+ if (isShuttingDown) {
136
+ // We're already in shutdown, just wait for it
137
+ await new Promise(() => {
138
+ // Never resolves - shutdown() will call process.exit
139
+ });
140
+ // Unreachable, but satisfies TypeScript
141
+ throw error;
142
+ }
143
+ // Check for readline/inquirer close errors that indicate SIGINT
144
+ const message = error instanceof Error ? error.message : String(error);
145
+ if (message.includes('ERR_USE_AFTER_CLOSE') ||
146
+ message.includes('readline was closed')) {
147
+ // Inquirer's readline was closed by SIGINT - trigger clean shutdown
148
+ void shutdown();
149
+ await new Promise(() => { });
150
+ throw error; // Unreachable
151
+ }
152
+ // Re-throw other errors normally
153
+ throw error;
154
+ }
155
+ }
156
+ //# sourceMappingURL=signal-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-handler.js","sourceRoot":"","sources":["../../src/lib/signal-handler.ts"],"names":[],"mappings":"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"}
@@ -14,3 +14,4 @@ export function visualPadEnd(str, width) {
14
14
  return str;
15
15
  return str + ' '.repeat(width - visWidth);
16
16
  }
17
+ //# sourceMappingURL=string-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-utils.js","sourceRoot":"","sources":["../../src/lib/string-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,WAAW,MAAM,cAAc,CAAA;AAEtC;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,KAAa;IACrD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,QAAQ,IAAI,KAAK;QAAE,OAAO,GAAG,CAAA;IACjC,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAA;AAC3C,CAAC"}
@@ -266,3 +266,4 @@ export function getPrefix(type) {
266
266
  }
267
267
  return prefix[type];
268
268
  }
269
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/lib/styles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Product Analytics (Statsig) & Event Tracking
3
+ *
4
+ * Provides anonymous usage analytics for the CLI using Statsig client SDK.
5
+ * All data is anonymous — identified by a machine UUID only, no PII is ever sent.
6
+ *
7
+ * Telemetry can be disabled via:
8
+ * - `prlt telemetry disable`
9
+ * - `DO_NOT_TRACK=1` environment variable
10
+ * - `PRLT_TELEMETRY_DISABLED=1` environment variable
11
+ *
12
+ * Privacy:
13
+ * - Anonymous machine ID (UUID) stored in ~/.proletariat/telemetry.json
14
+ * - No file paths, usernames, or ticket content ever sent
15
+ * - Events are fired async and never block command execution
16
+ */
17
+ /**
18
+ * Check if telemetry is disabled by environment variables or config.
19
+ */
20
+ export declare function isTelemetryEnabled(): boolean;
21
+ /**
22
+ * Enable telemetry.
23
+ */
24
+ export declare function enableTelemetry(): void;
25
+ /**
26
+ * Disable telemetry.
27
+ */
28
+ export declare function disableTelemetry(): void;
29
+ /**
30
+ * Get current telemetry status for display.
31
+ */
32
+ export declare function getTelemetryStatus(): {
33
+ enabled: boolean;
34
+ machineId: string;
35
+ envOverride: boolean;
36
+ envVar?: string;
37
+ };
38
+ /**
39
+ * Get the anonymous machine ID for this installation.
40
+ */
41
+ export declare function getMachineId(): string;
42
+ /**
43
+ * Initialize the Statsig SDK. Called from the init hook.
44
+ * No-op if telemetry is disabled.
45
+ */
46
+ export declare function initAnalytics(version: string): Promise<void>;
47
+ /**
48
+ * Track an analytics event. Fire-and-forget — never blocks.
49
+ *
50
+ * @param eventName - Event name (e.g., 'command_run')
51
+ * @param value - Optional numeric or string value
52
+ * @param metadata - Event-specific metadata
53
+ */
54
+ export declare function trackEvent(eventName: string, value?: string | number | null, metadata?: Record<string, unknown> | null): void;
55
+ /**
56
+ * Track a command execution.
57
+ */
58
+ export declare function trackCommandRun(options: {
59
+ command: string;
60
+ durationMs: number;
61
+ success: boolean;
62
+ flags?: string[];
63
+ }): void;
64
+ /**
65
+ * Track an agent being spawned.
66
+ */
67
+ export declare function trackAgentSpawned(options: {
68
+ executor: string;
69
+ environment: string;
70
+ action: string;
71
+ ephemeral: boolean;
72
+ }): void;
73
+ /**
74
+ * Track an orchestrator being started.
75
+ */
76
+ export declare function trackOrchestratorStarted(options: {
77
+ executor: string;
78
+ name: string;
79
+ displayMode: string;
80
+ }): void;
81
+ /**
82
+ * Track work being completed.
83
+ */
84
+ export declare function trackWorkCompleted(options: {
85
+ durationMs: number;
86
+ prCreated: boolean;
87
+ }): void;
88
+ /**
89
+ * Track a PR being created.
90
+ */
91
+ export declare function trackPRCreated(options: {
92
+ source: 'prlt' | 'manual';
93
+ }): void;
94
+ /**
95
+ * Track an MCP tool call.
96
+ */
97
+ export declare function trackMCPToolCalled(options: {
98
+ toolName: string;
99
+ success: boolean;
100
+ }): void;
101
+ /**
102
+ * Flush pending events and shut down the Statsig client.
103
+ * Called from the postrun hook. Times out to avoid blocking CLI exit.
104
+ */
105
+ export declare function shutdownAnalytics(): Promise<void>;
@@ -0,0 +1,289 @@
1
+ /**
2
+ * Product Analytics (Statsig) & Event Tracking
3
+ *
4
+ * Provides anonymous usage analytics for the CLI using Statsig client SDK.
5
+ * All data is anonymous — identified by a machine UUID only, no PII is ever sent.
6
+ *
7
+ * Telemetry can be disabled via:
8
+ * - `prlt telemetry disable`
9
+ * - `DO_NOT_TRACK=1` environment variable
10
+ * - `PRLT_TELEMETRY_DISABLED=1` environment variable
11
+ *
12
+ * Privacy:
13
+ * - Anonymous machine ID (UUID) stored in ~/.proletariat/telemetry.json
14
+ * - No file paths, usernames, or ticket content ever sent
15
+ * - Events are fired async and never block command execution
16
+ */
17
+ import * as fs from 'node:fs';
18
+ import * as path from 'node:path';
19
+ import * as crypto from 'node:crypto';
20
+ import { getMachineConfigDir, ensureMachineConfigDir } from '../machine-config.js';
21
+ // Statsig client SDK key (public — safe to embed in open source repos)
22
+ const STATSIG_CLIENT_KEY = 'client-kvxMxRhn9NFSmH8orl7e2W9nYTfWVS7Kjf7yRTdIecc';
23
+ // Flush timeout — don't let analytics delay CLI exit
24
+ const FLUSH_TIMEOUT_MS = 2000;
25
+ // Module-level state
26
+ let statsigClient = null;
27
+ let telemetryConfig = null;
28
+ let cliVersion = null;
29
+ // ─── Telemetry Config ────────────────────────────────────────────────────────
30
+ function getTelemetryConfigPath() {
31
+ return path.join(getMachineConfigDir(), 'telemetry.json');
32
+ }
33
+ function readTelemetryConfig() {
34
+ if (telemetryConfig)
35
+ return telemetryConfig;
36
+ const configPath = getTelemetryConfigPath();
37
+ if (fs.existsSync(configPath)) {
38
+ try {
39
+ const content = fs.readFileSync(configPath, 'utf-8');
40
+ telemetryConfig = JSON.parse(content);
41
+ return telemetryConfig;
42
+ }
43
+ catch {
44
+ // Fall through to create new config
45
+ }
46
+ }
47
+ // Create new config with generated machine ID
48
+ telemetryConfig = {
49
+ enabled: true,
50
+ noticeShown: false,
51
+ machineId: crypto.randomUUID(),
52
+ createdAt: new Date().toISOString(),
53
+ updatedAt: new Date().toISOString(),
54
+ };
55
+ writeTelemetryConfig(telemetryConfig);
56
+ return telemetryConfig;
57
+ }
58
+ function writeTelemetryConfig(config) {
59
+ ensureMachineConfigDir();
60
+ const configPath = getTelemetryConfigPath();
61
+ const tempPath = `${configPath}.tmp.${process.pid}`;
62
+ try {
63
+ fs.writeFileSync(tempPath, JSON.stringify(config, null, 2), 'utf-8');
64
+ fs.renameSync(tempPath, configPath);
65
+ }
66
+ catch {
67
+ try {
68
+ if (fs.existsSync(tempPath))
69
+ fs.unlinkSync(tempPath);
70
+ }
71
+ catch {
72
+ // Ignore cleanup errors
73
+ }
74
+ }
75
+ }
76
+ // ─── Opt-out Detection ───────────────────────────────────────────────────────
77
+ /**
78
+ * Check if telemetry is disabled by environment variables or config.
79
+ */
80
+ export function isTelemetryEnabled() {
81
+ // Environment variable opt-outs (standard + prlt-specific)
82
+ if (process.env.DO_NOT_TRACK === '1' || process.env.DO_NOT_TRACK === 'true')
83
+ return false;
84
+ if (process.env.PRLT_TELEMETRY_DISABLED === '1' || process.env.PRLT_TELEMETRY_DISABLED === 'true')
85
+ return false;
86
+ // Config-based opt-out
87
+ const config = readTelemetryConfig();
88
+ return config.enabled;
89
+ }
90
+ /**
91
+ * Enable telemetry.
92
+ */
93
+ export function enableTelemetry() {
94
+ const config = readTelemetryConfig();
95
+ config.enabled = true;
96
+ config.updatedAt = new Date().toISOString();
97
+ telemetryConfig = config;
98
+ writeTelemetryConfig(config);
99
+ }
100
+ /**
101
+ * Disable telemetry.
102
+ */
103
+ export function disableTelemetry() {
104
+ const config = readTelemetryConfig();
105
+ config.enabled = false;
106
+ config.updatedAt = new Date().toISOString();
107
+ telemetryConfig = config;
108
+ writeTelemetryConfig(config);
109
+ }
110
+ /**
111
+ * Get current telemetry status for display.
112
+ */
113
+ export function getTelemetryStatus() {
114
+ const config = readTelemetryConfig();
115
+ // Check for env var overrides
116
+ if (process.env.DO_NOT_TRACK === '1' || process.env.DO_NOT_TRACK === 'true') {
117
+ return { enabled: false, machineId: config.machineId, envOverride: true, envVar: 'DO_NOT_TRACK' };
118
+ }
119
+ if (process.env.PRLT_TELEMETRY_DISABLED === '1' || process.env.PRLT_TELEMETRY_DISABLED === 'true') {
120
+ return { enabled: false, machineId: config.machineId, envOverride: true, envVar: 'PRLT_TELEMETRY_DISABLED' };
121
+ }
122
+ return { enabled: config.enabled, machineId: config.machineId, envOverride: false };
123
+ }
124
+ // ─── First-Run Notice ────────────────────────────────────────────────────────
125
+ /**
126
+ * Show a one-time notice that telemetry is active.
127
+ * Only shown in interactive TTY sessions.
128
+ */
129
+ function showTelemetryNotice() {
130
+ const config = readTelemetryConfig();
131
+ if (config.noticeShown)
132
+ return;
133
+ if (!process.stdout.isTTY) {
134
+ // Mark as shown so we don't try again, but don't print in non-TTY
135
+ config.noticeShown = true;
136
+ writeTelemetryConfig(config);
137
+ return;
138
+ }
139
+ console.log('');
140
+ console.log('Proletariat collects anonymous usage analytics to improve the CLI.');
141
+ console.log('Only command names and durations are tracked — no values, arguments, or personal data.');
142
+ console.log('You can opt out at any time:');
143
+ console.log('');
144
+ console.log(' prlt telemetry disable');
145
+ console.log('');
146
+ config.noticeShown = true;
147
+ telemetryConfig = config;
148
+ writeTelemetryConfig(config);
149
+ }
150
+ // ─── Machine ID ──────────────────────────────────────────────────────────────
151
+ /**
152
+ * Get the anonymous machine ID for this installation.
153
+ */
154
+ export function getMachineId() {
155
+ return readTelemetryConfig().machineId;
156
+ }
157
+ // ─── Statsig Client ──────────────────────────────────────────────────────────
158
+ /**
159
+ * Initialize the Statsig SDK. Called from the init hook.
160
+ * No-op if telemetry is disabled.
161
+ */
162
+ export async function initAnalytics(version) {
163
+ cliVersion = version;
164
+ if (!isTelemetryEnabled())
165
+ return;
166
+ showTelemetryNotice();
167
+ try {
168
+ const { StatsigClient: StatsigClientClass } = await import('@statsig/js-client');
169
+ const client = new StatsigClientClass(STATSIG_CLIENT_KEY, { userID: getMachineId(), custom: { cli_version: version } });
170
+ await client.initializeAsync();
171
+ statsigClient = client;
172
+ // Share Statsig client with feature-flags for synchronous gate checks
173
+ const { setStatsigClient } = await import('./feature-flags.js');
174
+ setStatsigClient(client);
175
+ }
176
+ catch {
177
+ // If Statsig can't initialize, fail silently — analytics should never break the CLI
178
+ statsigClient = null;
179
+ }
180
+ }
181
+ // ─── Event Tracking ──────────────────────────────────────────────────────────
182
+ /**
183
+ * Track an analytics event. Fire-and-forget — never blocks.
184
+ *
185
+ * @param eventName - Event name (e.g., 'command_run')
186
+ * @param value - Optional numeric or string value
187
+ * @param metadata - Event-specific metadata
188
+ */
189
+ export function trackEvent(eventName, value, metadata) {
190
+ if (!statsigClient || !isTelemetryEnabled())
191
+ return;
192
+ try {
193
+ // Convert metadata values to strings as required by the client SDK
194
+ const stringMetadata = metadata
195
+ ? Object.fromEntries(Object.entries({ ...metadata, cli_version: cliVersion }).map(([k, v]) => [k, String(v)]))
196
+ : cliVersion
197
+ ? { cli_version: cliVersion }
198
+ : null;
199
+ statsigClient.logEvent(eventName, value, stringMetadata);
200
+ }
201
+ catch {
202
+ // Never let analytics errors affect the CLI
203
+ }
204
+ }
205
+ /**
206
+ * Track a command execution.
207
+ */
208
+ export function trackCommandRun(options) {
209
+ trackEvent('command_run', options.durationMs, {
210
+ command: options.command,
211
+ success: options.success,
212
+ flags_used: (options.flags ?? []).join(','),
213
+ });
214
+ }
215
+ /**
216
+ * Track an agent being spawned.
217
+ */
218
+ export function trackAgentSpawned(options) {
219
+ trackEvent('agent_spawned', null, {
220
+ executor: options.executor,
221
+ environment: options.environment,
222
+ action: options.action,
223
+ ephemeral: String(options.ephemeral),
224
+ });
225
+ }
226
+ /**
227
+ * Track an orchestrator being started.
228
+ */
229
+ export function trackOrchestratorStarted(options) {
230
+ trackEvent('orchestrator_started', null, {
231
+ executor: options.executor,
232
+ name: options.name,
233
+ display_mode: options.displayMode,
234
+ });
235
+ }
236
+ /**
237
+ * Track work being completed.
238
+ */
239
+ export function trackWorkCompleted(options) {
240
+ trackEvent('work_completed', options.durationMs, {
241
+ pr_created: String(options.prCreated),
242
+ });
243
+ }
244
+ /**
245
+ * Track a PR being created.
246
+ */
247
+ export function trackPRCreated(options) {
248
+ trackEvent('pr_created', null, {
249
+ source: options.source,
250
+ });
251
+ }
252
+ /**
253
+ * Track an MCP tool call.
254
+ */
255
+ export function trackMCPToolCalled(options) {
256
+ trackEvent('mcp_tool_called', null, {
257
+ tool_name: options.toolName,
258
+ success: String(options.success),
259
+ });
260
+ }
261
+ // ─── Shutdown ────────────────────────────────────────────────────────────────
262
+ /**
263
+ * Flush pending events and shut down the Statsig client.
264
+ * Called from the postrun hook. Times out to avoid blocking CLI exit.
265
+ */
266
+ export async function shutdownAnalytics() {
267
+ if (!statsigClient)
268
+ return;
269
+ try {
270
+ // Give the client a moment to flush, but don't block the CLI
271
+ await new Promise((resolve) => setTimeout(resolve, FLUSH_TIMEOUT_MS));
272
+ statsigClient.shutdown();
273
+ }
274
+ catch {
275
+ // Never let shutdown errors affect the CLI
276
+ }
277
+ finally {
278
+ statsigClient = null;
279
+ // Clear feature-flags module reference
280
+ try {
281
+ const { setStatsigClient } = await import('./feature-flags.js');
282
+ setStatsigClient(null);
283
+ }
284
+ catch {
285
+ // Ignore
286
+ }
287
+ }
288
+ }
289
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../src/lib/telemetry/analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Feature Flags (Statsig Feature Gates)
3
+ *
4
+ * Wraps Statsig feature gate checks with a simple API for the CLI.
5
+ * Feature flags are evaluated locally after SDK initialization,
6
+ * so checks are near-instant after the initial fetch.
7
+ *
8
+ * Usage:
9
+ * import { isEnabled } from '../lib/telemetry/feature-flags.js'
10
+ * if (isEnabled('new_board_view')) { ... }
11
+ *
12
+ * Feature flags require Statsig to be initialized (via initAnalytics).
13
+ * If Statsig is unavailable or telemetry is disabled, all flags return false.
14
+ */
15
+ interface StatsigClientRef {
16
+ checkGate(gateName: string): boolean;
17
+ getDynamicConfig(configName: string): {
18
+ get(key: string, defaultValue: unknown): unknown;
19
+ };
20
+ }
21
+ /**
22
+ * Set the Statsig client reference (called from analytics.ts after init).
23
+ * @internal
24
+ */
25
+ export declare function setStatsigClient(client: StatsigClientRef | null): void;
26
+ /**
27
+ * Check if a feature gate is enabled for the current machine.
28
+ *
29
+ * Uses Statsig's local evaluation (near-zero latency after init).
30
+ * Returns false if Statsig is not initialized or telemetry is disabled.
31
+ *
32
+ * @param gateName - The feature gate name (e.g., 'new_board_view')
33
+ * @returns Whether the gate is enabled
34
+ */
35
+ export declare function isEnabled(gateName: string): boolean;
36
+ /**
37
+ * Get a dynamic config value from Statsig.
38
+ *
39
+ * Useful for remote configuration (not just boolean flags).
40
+ * Returns the default value if Statsig is unavailable.
41
+ *
42
+ * @param configName - The dynamic config name
43
+ * @param key - The key within the config
44
+ * @param defaultValue - Default value if unavailable
45
+ * @returns The config value, or the default
46
+ */
47
+ export declare function getConfigValue<T>(configName: string, key: string, defaultValue: T): T;
48
+ /**
49
+ * Clear the local flag cache.
50
+ * Useful for testing or when you want to force re-evaluation.
51
+ */
52
+ export declare function clearFlagCache(): void;
53
+ export {};