@metabase/cli 0.3.0 → 0.3.1-alpha.support-worktrees.b634907

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 (247) hide show
  1. package/dist/{add-collection-B3Ty8SzB.mjs → add-collection-CxzzDG4z.mjs} +6 -5
  2. package/dist/{alert-DT-ee7yf.mjs → alert-CQ7Az16h.mjs} +7 -7
  3. package/dist/{alerts-Bf2RH_p_.mjs → alerts-DmwyyBfW.mjs} +7 -6
  4. package/dist/{append-DFzQRPMd.mjs → append-B0avMkvW.mjs} +6 -4
  5. package/dist/{archive-Cd29QC0c.mjs → archive-BPSNe0Ul.mjs} +4 -3
  6. package/dist/{archive-Dr9Xnx_Z.mjs → archive-BQ50OZ7y.mjs} +6 -5
  7. package/dist/{archive-B6eXiyER.mjs → archive-BVblae-p.mjs} +4 -3
  8. package/dist/{archive-C7w49Grr.mjs → archive-BZEu6UfT.mjs} +6 -5
  9. package/dist/{archive-lQqs13Uz.mjs → archive-CMTHh4-w.mjs} +4 -3
  10. package/dist/archive-CqOKKrb2.mjs +38 -0
  11. package/dist/{archive-CwAdlv63.mjs → archive-Cvrkz8F8.mjs} +5 -4
  12. package/dist/archive-DCjdICg7.mjs +38 -0
  13. package/dist/{archive-4tmm946K.mjs → archive-DCyeRNfV.mjs} +4 -3
  14. package/dist/{archive-gid9Y09v.mjs → archive-DFofUIEC.mjs} +4 -3
  15. package/dist/{archive-ByvA49Kz.mjs → archive-THcEfy9B.mjs} +5 -4
  16. package/dist/{auth-Dltxua89.mjs → auth-BEEkuu4J.mjs} +5 -5
  17. package/dist/{body-Cur4NJt9.mjs → body-DxRSAMNC.mjs} +1 -1
  18. package/dist/branch-BSeGrtP7.mjs +28 -0
  19. package/dist/{branches-DchlyU0i.mjs → branches-CmWc8NyL.mjs} +4 -3
  20. package/dist/{cancel-BMQa5R1Z.mjs → cancel-DrQqmxvn.mjs} +4 -3
  21. package/dist/cancel-task-BMQXtjW5.mjs +34 -0
  22. package/dist/{card-zyUkr2nS.mjs → card-BEeafd4Y.mjs} +1 -1
  23. package/dist/{card-DZxRmver.mjs → card-CrBGUkGQ.mjs} +1 -0
  24. package/dist/card-RlzLDB2z.mjs +24 -0
  25. package/dist/{cards-SccWvRQD.mjs → cards-M_6X8wCI.mjs} +7 -6
  26. package/dist/cli.mjs +142 -46
  27. package/dist/{client-BqhzKdLM.mjs → client-DYD8WZYy.mjs} +241 -75
  28. package/dist/collection-Bhe20ckt.mjs +20 -0
  29. package/dist/{collection-CfulNRBG.mjs → collection-BxE7OzcQ.mjs} +6 -3
  30. package/dist/{collection-CGoVLvcD.mjs → collection-CJHqsFKP.mjs} +1 -1
  31. package/dist/{collection-namespace-GwydWBF3.mjs → collection-namespace-CEoQ7G08.mjs} +1 -1
  32. package/dist/content-translation-BrHOrmj9.mjs +5 -0
  33. package/dist/content-translation-C8MlXPOF.mjs +12 -0
  34. package/dist/{create-BOLwWt8Q.mjs → create-BA_tTDEk.mjs} +5 -4
  35. package/dist/{create-DF4QtgDL.mjs → create-BLWwN0uw.mjs} +5 -4
  36. package/dist/{create-DV-Ln5Mo.mjs → create-BqpkCjx4.mjs} +4 -3
  37. package/dist/{create-BNQ_DytP.mjs → create-BupBEwR2.mjs} +12 -7
  38. package/dist/{create-C79vErX0.mjs → create-ByuJ6T4k.mjs} +7 -6
  39. package/dist/{create-Beh-2uoN.mjs → create-C2XFfbjx.mjs} +4 -3
  40. package/dist/{create-CCh_LyW9.mjs → create-C7iooS6W.mjs} +14 -8
  41. package/dist/{create-CAWytBE5.mjs → create-CJ7Am4Gc.mjs} +5 -4
  42. package/dist/{create-DJmXXQoq.mjs → create-CY-SzM66.mjs} +16 -11
  43. package/dist/{create-CD008jdE.mjs → create-CoubLR5o.mjs} +8 -7
  44. package/dist/{create-CAQV2g6V.mjs → create-D0anrINz.mjs} +14 -9
  45. package/dist/create-DwrhcI8r2.mjs +144 -0
  46. package/dist/create-branch-B3BMpF1g.mjs +49 -0
  47. package/dist/{create-i14Wv3Tj.mjs → create-hTc131aX.mjs} +4 -3
  48. package/dist/{create-tQbnuz-I.mjs → create-ldrghMd1.mjs} +4 -3
  49. package/dist/{create-CHQx7jq4.mjs → create-myI6doga.mjs} +5 -4
  50. package/dist/{create-zeveFdnd.mjs → create-z-oMrlfT.mjs} +5 -4
  51. package/dist/{csv-B2Jgb1GM.mjs → csv-DBNzJiWK.mjs} +6 -4
  52. package/dist/{current-task-MpBFGttd.mjs → current-task-YzemU0Ic.mjs} +12 -7
  53. package/dist/{dashboard-BHJBoaG7.mjs → dashboard-B1mpfCq_.mjs} +10 -10
  54. package/dist/{dashboard-CsIFFpzK.mjs → dashboard-BlbNszi8.mjs} +1 -1
  55. package/dist/{dashboard-BCpSq_G-.mjs → dashboard-CKUR8ZpQ.mjs} +1 -0
  56. package/dist/{db-DsfojyeH.mjs → db-1tLH3nYI.mjs} +7 -7
  57. package/dist/{delete-DFmX7jTp.mjs → delete-CD_-B4Kq.mjs} +5 -4
  58. package/dist/{delete-BApOjQvl.mjs → delete-CpKH5ia4.mjs} +5 -4
  59. package/dist/delete-D_OgiI4v.mjs +86 -0
  60. package/dist/{delete-Ob06PPie.mjs → delete-DjAUp9mk.mjs} +5 -4
  61. package/dist/{delete-Ck0q4Dzp.mjs → delete-QNgBV6eS.mjs} +10 -5
  62. package/dist/{delete-B8e01xAG.mjs → delete-eAUB7p-f.mjs} +10 -5
  63. package/dist/{delete-runtime-D74s6vhu.mjs → delete-runtime-b2_ZMSjj.mjs} +1 -1
  64. package/dist/{delete-table-DuyhGrvA.mjs → delete-table-DamlxnSO.mjs} +10 -5
  65. package/dist/dependencies-DEx0BsZ3.mjs +41 -0
  66. package/dist/dirty-dC1-Ud0G.mjs +40 -0
  67. package/dist/document-DOJbBWLF.mjs +19 -0
  68. package/dist/download-C4v7u-AV.mjs +29 -0
  69. package/dist/{eid-WTZmDdsr.mjs → eid-CP35PdEF.mjs} +4 -3
  70. package/dist/{events-Bn7jh5lP.mjs → events-DmbzKIh_.mjs} +5 -4
  71. package/dist/{export-BjfoZRDJ.mjs → export-i8D6laBG.mjs} +25 -12
  72. package/dist/export-preflight-B5MvYhm3.mjs +67 -0
  73. package/dist/{field-Zau6Hc6X.mjs → field-BKn9bt7I.mjs} +5 -5
  74. package/dist/{fields-CBBa-Prp.mjs → fields-8_p81BqN.mjs} +5 -4
  75. package/dist/{get-DdsoHaKH.mjs → get-B0g6VMBC.mjs} +4 -3
  76. package/dist/{get-DRvsATp-.mjs → get-BBOfshz1.mjs} +4 -3
  77. package/dist/{get-CDMGbgrh.mjs → get-BHGgXqUq.mjs} +4 -3
  78. package/dist/{get-Dn9ZiSZr.mjs → get-BbHPFNqr.mjs} +4 -3
  79. package/dist/{get-CnbUCzDM.mjs → get-Bds6Izxk.mjs} +4 -3
  80. package/dist/{get-B7sMgsFs.mjs → get-BvW21ujw.mjs} +4 -3
  81. package/dist/{get-Dmj9Ygz1.mjs → get-CAzSP-7o.mjs} +4 -3
  82. package/dist/{get-CvI--9S_.mjs → get-CNEQK0-9.mjs} +5 -4
  83. package/dist/{get-D_h-G9bn.mjs → get-CPTbySa7.mjs} +4 -3
  84. package/dist/{get-B_xdF1kq.mjs → get-CWf46UFu.mjs} +6 -5
  85. package/dist/get-Cfagmy1i.mjs +42 -0
  86. package/dist/{get-CDJFVvhj.mjs → get-DFkbi5L3.mjs} +3 -2
  87. package/dist/{get-DYO1kywc.mjs → get-DnCE7K0y.mjs} +5 -4
  88. package/dist/{get-DY03Azx9.mjs → get-DvLuY5Xu.mjs} +17 -9
  89. package/dist/get-DwdMvWXU.mjs +44 -0
  90. package/dist/{get-DmpB6J9g.mjs → get-N4dOaTsp.mjs} +5 -4
  91. package/dist/get-jV8G90Zy.mjs +42 -0
  92. package/dist/get-mGEv-kag.mjs +33 -0
  93. package/dist/{get-run-Cnux9ln0.mjs → get-run-4Ng8_awa.mjs} +6 -5
  94. package/dist/{get-Bz99dAxK.mjs → get-vrccOMBk.mjs} +6 -5
  95. package/dist/{get-00lyLv6R.mjs → get-vvs0qzzM.mjs} +4 -3
  96. package/dist/{git-sync-BDnxPrqU.mjs → git-sync-DLzJrdMi.mjs} +22 -3
  97. package/dist/git-sync-DjoaNmRM.mjs +29 -0
  98. package/dist/{git-sync-DxD_ng48.mjs → git-sync-LQIVMNxO.mjs} +31 -2
  99. package/dist/{group-DBM87IgC.mjs → group-YN6jj2AN.mjs} +3 -2
  100. package/dist/{has-remote-changes-C684Redh.mjs → has-remote-changes-BXPGI9xG.mjs} +14 -6
  101. package/dist/{import-Rmmttboo.mjs → import-BoxOkA-G.mjs} +28 -11
  102. package/dist/{is-dirty-DYeJYhBz.mjs → is-dirty-Cwxq4_gd.mjs} +15 -6
  103. package/dist/{items-CQlPXBXE.mjs → items-Cv6iAzrI.mjs} +17 -9
  104. package/dist/{library-Bsm5KsFF.mjs → library-CRaOhJnj.mjs} +5 -5
  105. package/dist/{library-ClLgrAXy.mjs → library-Cfw6eF35.mjs} +1 -1
  106. package/dist/{library-DfYAT2Ep.mjs → library-fhVn1KDC.mjs} +1 -1
  107. package/dist/{list-CMpoc2TN.mjs → list--2T-GUEF.mjs} +5 -4
  108. package/dist/list-5Iojbr_p.mjs +37 -0
  109. package/dist/{list-CNUiF8Z7.mjs → list-9uvk9dIA.mjs} +4 -3
  110. package/dist/{list-CQwOgIlj.mjs → list-BBp9XjYs.mjs} +4 -3
  111. package/dist/list-BD4onDqO.mjs +37 -0
  112. package/dist/{list-BpFp9Wre.mjs → list-BLJkJp5a.mjs} +4 -3
  113. package/dist/{list-BtmsNOEn.mjs → list-BwkfWtP2.mjs} +4 -3
  114. package/dist/list-C2yL7-CH.mjs +45 -0
  115. package/dist/{list-BP3MPq-M.mjs → list-C8J3n8B8.mjs} +4 -3
  116. package/dist/list-CbbKip6U.mjs +32 -0
  117. package/dist/{list-UhpKG6_m.mjs → list-CtZAu4im.mjs} +5 -4
  118. package/dist/{list-BtkWNtvY.mjs → list-DOZNpX4b.mjs} +5 -4
  119. package/dist/{list-DF2rvoO1.mjs → list-DOaWCx8S.mjs} +18 -9
  120. package/dist/list-Dg2XeDON.mjs +47 -0
  121. package/dist/{list-CQDprvW0.mjs → list-DhrapAcy.mjs} +6 -5
  122. package/dist/{list-BzVTHOoH.mjs → list-L2U1l6R4.mjs} +4 -3
  123. package/dist/{list-DE9FM957.mjs → list-WSJLnunb.mjs} +4 -3
  124. package/dist/{list-B4hJuMhA.mjs → list-oAAgU5uE.mjs} +16 -9
  125. package/dist/{list-B8nAGwP4.mjs → list-tutXEQRW.mjs} +5 -4
  126. package/dist/{login-CGHeSjlP.mjs → login-DqWRF3Og.mjs} +6 -5
  127. package/dist/{logout-DAxOlbv4.mjs → logout-ChCz1bkf.mjs} +3 -2
  128. package/dist/{measure-BsYv0p26.mjs → measure-C5dIdFj1.mjs} +6 -6
  129. package/dist/{network-error-CEb9ymDW.mjs → network-error-D6CiOEBw.mjs} +10 -2
  130. package/dist/{notification-Fcq1fIPw.mjs → notification-DVrLkjFT.mjs} +1 -1
  131. package/dist/{parameter-values-CJTdqd8c.mjs → parameter-values-Dy4cBs5y.mjs} +4 -3
  132. package/dist/{parse-id-C_jmKFaa.mjs → parse-id-DDCn3VXx.mjs} +1 -1
  133. package/dist/{parse-ref-ibKVB0J4.mjs → parse-ref-Wv21Roup.mjs} +6 -2
  134. package/dist/{path-B5gHvrYL.mjs → path-IYhuzjQV.mjs} +5 -4
  135. package/dist/pin-BuZ_kg-u.mjs +62 -0
  136. package/dist/{preflight-YpPQo-sa.mjs → preflight-HLUVr2Yf.mjs} +2 -2
  137. package/dist/{publish-DijrxaCW.mjs → publish-CMkCSt8i.mjs} +5 -4
  138. package/dist/{pulse-DhG6I9mI.mjs → pulse-a-83M4DV.mjs} +1 -1
  139. package/dist/{query-BbqECzmF.mjs → query-Bka77J62.mjs} +9 -13
  140. package/dist/{query-result-DBDwk8TS.mjs → query-result-E4Q-Gra6.mjs} +1 -1
  141. package/dist/{query-Dc__-KJH.mjs → query-tWQAV9pb.mjs} +8 -7
  142. package/dist/{remove-collection-BOnxYvhj.mjs → remove-collection-BV9wRQZD.mjs} +6 -5
  143. package/dist/{render-CI93iP0I.mjs → render-DHjCcUXn.mjs} +7 -1
  144. package/dist/{replace-Cq4CxVa-.mjs → replace-mt47dlRV.mjs} +6 -4
  145. package/dist/{rescan-values-Dr_j416g.mjs → rescan-values-6cRjcpTs.mjs} +4 -3
  146. package/dist/{run-DdGJ544X.mjs → run-BmGmC-GQ.mjs} +4 -3
  147. package/dist/{run-C3DkS6NP.mjs → run-DI_pDxji.mjs} +6 -5
  148. package/dist/{runs-CUNWiidL.mjs → runs-9Fu0mug5.mjs} +7 -6
  149. package/dist/{runtime-DiKyBxOw.mjs → runtime-CNAZ_FuR.mjs} +104 -9
  150. package/dist/{schema-tables-CV386fnC.mjs → schema-tables-CLG0mtQb.mjs} +5 -4
  151. package/dist/{schemas-DM-UqZBQ.mjs → schemas-Cm5NWy59.mjs} +5 -4
  152. package/dist/scope-DsGuWG5w.mjs +11 -0
  153. package/dist/{search-DmGScXs8.mjs → search-CljYyf2F.mjs} +14 -8
  154. package/dist/{segment-BzUGM2Fr.mjs → segment-IRzlQggt.mjs} +6 -6
  155. package/dist/{selectors-DGDn0Hto.mjs → selectors-D4iOP5uB.mjs} +2 -2
  156. package/dist/{send-CVxxEpDB.mjs → send-D7DBnQbu.mjs} +4 -3
  157. package/dist/{set-DFolTjbd.mjs → set-DKN8fuC6.mjs} +4 -3
  158. package/dist/{set-active-BD8L1lPX.mjs → set-active-CkE0Eiqh.mjs} +3 -2
  159. package/dist/{setting-DyhaeICs.mjs → setting-CN4l8N-b.mjs} +4 -4
  160. package/dist/{setup-BbDQN8fe.mjs → setup-BpTptmdO.mjs} +4 -3
  161. package/dist/{skills--vK6J-e4.mjs → skills-BSAiLI3Z.mjs} +3 -3
  162. package/dist/{skills-DTCrMcix.mjs → skills-hVKSOCUf.mjs} +1 -1
  163. package/dist/{snippet-CyKAgIZl.mjs → snippet-BxgvQ09J.mjs} +5 -2
  164. package/dist/{snippet-oJLaYW9V.mjs → snippet-DecHB4Dn.mjs} +1 -1
  165. package/dist/snippet-LlHz3FdJ.mjs +19 -0
  166. package/dist/{stash-D0S4JmAz.mjs → stash-DJs6A6BA.mjs} +7 -6
  167. package/dist/{status-BhswxJL1.mjs → status-DtwBDRtc.mjs} +44 -16
  168. package/dist/{status-hL1am-HV.mjs → status-N_2EaWb7.mjs} +16 -7
  169. package/dist/stream-McixcoUl.mjs +7 -0
  170. package/dist/{subscription-_d5fB45F.mjs → subscription-BnGDp1oy.mjs} +6 -6
  171. package/dist/{subscriptions-s4TF6Ax3.mjs → subscriptions-BfFwV__x.mjs} +7 -6
  172. package/dist/{summary-CsPvcUwW.mjs → summary-CHiq-4mz.mjs} +4 -3
  173. package/dist/{sync-schema-DaZ_MV-u.mjs → sync-schema-DhnM-rpm.mjs} +5 -4
  174. package/dist/{sync-task-BACcrs0i.mjs → sync-task-G1K47Nvn.mjs} +1 -1
  175. package/dist/{table-DYoC1kPn.mjs → table-BQaiCSNS.mjs} +5 -5
  176. package/dist/timeline-C2VW0Ph6.mjs +21 -0
  177. package/dist/{timeline-event-CNQdCTDg.mjs → timeline-event-B7H1y8s8.mjs} +6 -6
  178. package/dist/{transform-D3QX0jxA.mjs → transform-BvOEn41C.mjs} +4 -1
  179. package/dist/{transform-DoTyyXAu.mjs → transform-CiDOJGBW.mjs} +2 -2
  180. package/dist/transform-DAf0Y02t.mjs +28 -0
  181. package/dist/transform-job-ntiT5Rrh.mjs +22 -0
  182. package/dist/{transform-tag-Dmb4u3-Q.mjs → transform-tag-DiXWRCQG.mjs} +1 -1
  183. package/dist/{transform-tag-_tgwlsdB.mjs → transform-tag-Dip51YBa.mjs} +5 -5
  184. package/dist/{transform-tag-CcElGp3C.mjs → transform-tag-jBVd6wXd.mjs} +9 -4
  185. package/dist/{transforms-oU4zizbO.mjs → transforms-C-jYgS6z.mjs} +7 -6
  186. package/dist/tree-DtyJhD54.mjs +36 -0
  187. package/dist/unpin-DxbXmLtW.mjs +45 -0
  188. package/dist/{unpublish-BUl9RU5C.mjs → unpublish-BokbnLng.mjs} +4 -3
  189. package/dist/{update-BiFDBcEH.mjs → update-AZSXMJqu.mjs} +14 -8
  190. package/dist/{update-BCS5FxKr.mjs → update-B9DcRSBQ.mjs} +18 -12
  191. package/dist/{update-bD_Jh5-s.mjs → update-BBQInyiJ.mjs} +6 -5
  192. package/dist/{update-BzMDeZiU.mjs → update-BCGE5UYC.mjs} +6 -5
  193. package/dist/{update-tX9mKBN_.mjs → update-BErxnZrj.mjs} +9 -8
  194. package/dist/{update-C4YJQFDS.mjs → update-BRXKLeJH.mjs} +5 -4
  195. package/dist/{update-cYkvbqK8.mjs → update-Bc8s1TL1.mjs} +5 -4
  196. package/dist/{update-BZPllQoR.mjs → update-C4PbAYgW.mjs} +5 -4
  197. package/dist/{update-CVPAwJaH.mjs → update-CKL2FtoX.mjs} +6 -5
  198. package/dist/{update-Nfi44RrE.mjs → update-CPEU8ZEu.mjs} +6 -5
  199. package/dist/{update-CmDTljK-.mjs → update-CfQoYVTc.mjs} +5 -4
  200. package/dist/{update-CO4m4wH3.mjs → update-CpLEEbiJ.mjs} +8 -7
  201. package/dist/{update-D-NE60AV.mjs → update-D9OTkZhw.mjs} +5 -4
  202. package/dist/{update-dashcard-C3TuYO_k.mjs → update-dashcard-St-dGcE3.mjs} +7 -6
  203. package/dist/{update-CHNSUHK4.mjs → update-e7lyQPxq.mjs} +14 -8
  204. package/dist/{update-CvOO8TED.mjs → update-rkbpH0lF.mjs} +5 -4
  205. package/dist/{upgrade-DXMV4AyP.mjs → upgrade-CUoRHfVg.mjs} +4 -3
  206. package/dist/upload-BPd1Uzxc.mjs +43 -0
  207. package/dist/upload-C3z5ZaXA.mjs +24 -0
  208. package/dist/{upload-CH632qW6.mjs → upload-CD555ui1.mjs} +1 -24
  209. package/dist/upload-Dc3QLhZw.mjs +13 -0
  210. package/dist/{uuid-BJkDWj9p.mjs → uuid-CFN8LIkP.mjs} +3 -2
  211. package/dist/{validate-query-DaGYSmpQ.mjs → validate-query-Chc43ezW.mjs} +1 -1
  212. package/dist/{values-Dxf1JEoA.mjs → values-BL_U-Zdw.mjs} +4 -3
  213. package/dist/{verify-K96rItG5.mjs → verify-DnBaRmkI.mjs} +3 -3
  214. package/dist/{wait-flags-DWEF9tX4.mjs → wait-flags-DzytMEG8.mjs} +2 -2
  215. package/dist/{wait-DoMDH226.mjs → wait-mPoOZxrw.mjs} +12 -7
  216. package/dist/{window-BkvrP0gB.mjs → window-DSb1tqSe.mjs} +1 -1
  217. package/dist/worktree-ChdDlG3Q.mjs +25 -0
  218. package/dist/worktree-DC0kTxxQ.mjs +20 -0
  219. package/dist/worktree-xAro1xAB.mjs +24 -0
  220. package/package.json +1 -1
  221. package/skill-data/core/SKILL.md +17 -14
  222. package/skill-data/dashboard/SKILL.md +2 -2
  223. package/skill-data/git-sync/SKILL.md +91 -1
  224. package/skill-data/transform/SKILL.md +9 -1
  225. package/dist/archive-BxNPHxOY.mjs +0 -32
  226. package/dist/archive-ChORH5JH.mjs +0 -32
  227. package/dist/cancel-task-C5CU1pxU.mjs +0 -28
  228. package/dist/card-CHI2bmds.mjs +0 -24
  229. package/dist/collection-CY0AB99E.mjs +0 -20
  230. package/dist/create-branch-CYo6jZth.mjs +0 -35
  231. package/dist/dependencies-Bj3QrGIm.mjs +0 -36
  232. package/dist/dirty-DNYoM6Bp.mjs +0 -31
  233. package/dist/document-BbskZPTT.mjs +0 -19
  234. package/dist/get-ByBOq30r.mjs +0 -31
  235. package/dist/get-C2-Q3iQ5.mjs +0 -31
  236. package/dist/get-DkWO0EI0.mjs +0 -36
  237. package/dist/git-sync-MQQYRYLg.mjs +0 -28
  238. package/dist/list-BOET6zhP.mjs +0 -36
  239. package/dist/list-C5Zs8nrb.mjs +0 -28
  240. package/dist/list-CKK-s3Ty.mjs +0 -28
  241. package/dist/list-DMKDsBRd.mjs +0 -38
  242. package/dist/snippet-DRwKb2x7.mjs +0 -19
  243. package/dist/timeline-xlDbEKWg.mjs +0 -21
  244. package/dist/transform-Bs0EWijQ.mjs +0 -28
  245. package/dist/transform-job-BcLChRup.mjs +0 -22
  246. package/dist/tree-CH-f3bjP.mjs +0 -27
  247. package/dist/upload-Dey_8rLf.mjs +0 -13
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: git-sync
3
- description: Round-trip Metabase content (cards, dashboards, transforms, snippets, collections, Library-published table/field metadata) between an instance and a git remote via `mb git-sync …` — status, dirty / has-remote-changes checks, import, export (with branch guard), branches, stash, add/remove a collection from sync. Load when the user wants to "import the latest changes", "export to git", "push my changes to the repo", "open a PR with my Metabase changes", "git sync", "dirty check", "stash before pulling", "add a collection to sync", or anything `mb git-sync …`.
3
+ description: Round-trip Metabase content (cards, dashboards, transforms, snippets, collections, Library-published table/field metadata) between an instance and a git remote via `mb git-sync …` — status, dirty / has-remote-changes checks, import, export (with branch guard), branches, stash, add/remove a collection from sync. Load when the user wants to "import the latest changes", "export to git", "push my changes to the repo", "open a PR with my Metabase changes", "git sync", "dirty check", "stash before pulling", "add a collection to sync", or anything `mb git-sync …` / `mb worktree …`. Also covers worktrees — isolated per-branch checkouts of transforms and other content — for "work on this branch in isolation", "create a worktree", "pin the profile to a worktree", "export the worktree and open a PR".
4
4
  allowed-tools: Read, Write, Edit, Bash, AskUserQuestion
5
5
  ---
6
6
 
@@ -40,6 +40,7 @@ Pulls the configured branch and applies it to the instance. Polls until the task
40
40
  | `--branch <name>` | Defaults to the `remote-sync-branch` setting; override per-call. |
41
41
  | `--no-wait` | Return as soon as the task is queued; combine with `mb git-sync wait` later. |
42
42
  | `--force` | **Discards local Metabase-side dirty changes** (lossy). Confirm with the user first. |
43
+ | `--merge` | Three-way merge remote changes instead of failing on divergence. Confirm first. |
43
44
  | `--timeout <ms>` | Polling deadline. Default 600 000. |
44
45
  | `--interval <ms>` | Polling cadence. Default 2 000. |
45
46
 
@@ -62,6 +63,7 @@ Pushes Metabase-side changes back to the configured remote. `-m` is the commit m
62
63
  | `--branch <name>` | Push to a specific branch instead of the configured one. |
63
64
  | `-m, --message <s>` | Commit message. |
64
65
  | `--force` | Force-push / overwrite remote. Confirm with the user. |
66
+ | `--merge` | Three-way merge instead of failing on divergence. |
65
67
  | `--no-wait` | Don't poll. |
66
68
 
67
69
  Workflow:
@@ -96,6 +98,94 @@ mb git-sync stash --profile <n> # export current state
96
98
 
97
99
  `stash` is the safe move when the instance has team work you don't want to lose, but you need to pivot to a different branch (`import` would discard, `export --force` would overwrite). It exports current state to a fresh branch first.
98
100
 
101
+ ## Worktrees (isolated branch checkouts)
102
+
103
+ A **worktree** is a self-contained checkout of one branch's content inside the same instance. Transforms, transform tags, snippets, `transforms`-namespace collections, the Library, cards, dashboards, and documents are tagged with the worktree's id; tables and fields stay shared with the main app. It is how a chain of transforms gets built, exported, and reviewed as a PR without touching production content. Admin-only, and needs Metabase v64+ with the `remote_sync` feature.
104
+
105
+ Two hard limits, up front:
106
+
107
+ - **A worktree's transforms cannot be run.** `mb transform run` refuses while a worktree scope is in force, and the server rejects the run anyway. There is no workaround to find — run the transform in the main app after the branch is merged and imported, and say so rather than trying to validate the SQL by running it in the worktree.
108
+ - **A worktree is bound to its branch for life.** No branch switching inside one; a different branch means a different worktree.
109
+
110
+ ### Where am I? Check before touching import/export
111
+
112
+ ```bash
113
+ mb auth status --profile <n> --json | jq '.worktree' # {id, branch} when the profile is pinned, else null
114
+ mb git-sync status --profile <n> --json | jq '.worktree' # the scope this command ran under
115
+ mb worktree list --profile <n> --json # every worktree on the instance
116
+ ```
117
+
118
+ A pinned profile pushes to the worktree's branch; an unpinned one pushes to whatever `remote-sync-branch` points at. Confusing the two is how worktree work lands on the team's tracked branch, so read the pin before the first `export`.
119
+
120
+ ### Preconditions before creating one
121
+
122
+ 1. **The user named the branch.** Create a worktree only for a branch the user asked you to work on.
123
+ 2. **A branch holds at most one worktree.** Check `mb worktree list --json` first; a duplicate fails with the server's `A worktree for branch '<b>' already exists.` — reuse it with `mb worktree pin <branch>` instead.
124
+ 3. **A pinned profile is already confined.** `mb worktree create` for any other branch is refused, because a second worktree from a pinned session would escape the pin.
125
+
126
+ ### The workflow
127
+
128
+ ```bash
129
+ # 1. Create the worktree and pin the profile to it. Mints the branch on the remote when missing
130
+ # (--no-checkout, so the main app's tracked branch is untouched), then pulls the branch in.
131
+ mb worktree create feat/order-metrics --pin --profile <n> --json
132
+
133
+ # 2. Edit transforms. Scoped commands need no extra flag once the profile is pinned.
134
+ mb transform create --file ./.scratch/transform.json --profile <n> --json
135
+ mb transform list --profile <n> --json # only this worktree's transforms
136
+ mb transform update <id> --file ./.scratch/patch.json --profile <n> --json
137
+
138
+ # 3. Read state before pushing — same rule as the main app.
139
+ mb git-sync status --profile <n> --json # branch, dirty flag, current task, all scoped
140
+ mb git-sync dirty --profile <n> --json # exactly what will be committed
141
+
142
+ # 4. Dry-run the push, read the answer, then push.
143
+ mb git-sync export-preflight --profile <n> --json
144
+ mb git-sync export -m "add order metrics transforms" --profile <n>
145
+
146
+ # 5. Open the PR from the branch with plain git / gh, and let a human review and merge it.
147
+
148
+ # 6. Retire the worktree once the PR is merged. This clears the pin it was holding.
149
+ mb worktree delete feat/order-metrics --profile <n> --json
150
+ ```
151
+
152
+ `export-preflight` answers `{has_changes, clean, conflicts, summary: {added, updated, removed}, force_push_casualties: {deleted, overwritten}, reason}`. Read it before every worktree export: `clean: true` with empty `conflicts` is a push that applies as-is; a non-empty `conflicts` or `force_push_casualties` is a conversation with the user, not a `--force`.
153
+
154
+ The main app pulls the merged branch from a **different, unpinned** profile — `git-sync import` into the main app and `transform run` are both main-app operations and a pinned profile refuses them:
155
+
156
+ ```bash
157
+ mb git-sync import --profile <main-app-profile>
158
+ mb transform run <id> --wait --profile <main-app-profile> --json
159
+ ```
160
+
161
+ ### Scope precedence and what a pinned profile refuses
162
+
163
+ The scope comes from `--worktree <id|branch>`, else `MB_WORKTREE`, else the profile's pin. **The pin is a lock, not a default:** while it stands, the flag and the env var may only re-state it, and naming a different worktree exits 2 with `profile "<p>" is pinned to worktree <id> (<branch>); refusing --worktree <x>`.
164
+
165
+ Under a scope, a command that changes or runs main-app state refuses before any request and exits 2 — `transform run` / `cancel`, `card` / `library` writes, and the main-app git-sync verbs `stash`, `create-branch`, `add-collection`, `remove-collection`:
166
+
167
+ ```
168
+ transform run is not available inside a worktree (scope: worktree 3 (feat/order-metrics) from the profile pin); it changes main-app content. Unpin the profile (`mb worktree unpin`) or drop MB_WORKTREE to run it against the main app.
169
+ ```
170
+
171
+ Two more refusals belong to the scope:
172
+
173
+ - Fetching a row that lives elsewhere: `transform 12 is not in worktree 3 (feat/order-metrics); refusing to touch main-app content`.
174
+ - `--branch` on `import` / `export` / `export-preflight`: `a worktree is pinned to its branch; drop --branch`.
175
+
176
+ ### Confirmations these flags need
177
+
178
+ - `--force` (on `import`, `export`, and `worktree delete`) and `--merge` (on `import` / `export`) are **lossy or history-rewriting** — ask the user first, with `AskUserQuestion`, naming what gets discarded. `export-preflight`'s `force_push_casualties` is the list to show them.
179
+ - `mb worktree delete` refuses a worktree holding unpushed changes: `worktree <id> (<branch>) has unpushed changes; push them with mb git-sync export or pass --force to discard`. Export first, or ask before forcing — the content in a worktree exists nowhere else once it is gone.
180
+
181
+ ### Don't (worktrees)
182
+
183
+ - **Don't unpin to reach the main app.** The pin is the isolation boundary a harness put there; `mb worktree unpin` to get past a refusal turns an isolated session into one that can write production content. Report the refusal and what you would need instead.
184
+ - **Don't run a worktree's transforms**, and don't route around the refusal with `mb query`, a native card, or a second profile. Validate the query shape with `--dry-run` (see `mbql`) and run it for real in the main app after the merge.
185
+ - **Don't create worktrees for branches you were not asked to touch.** A worktree checks a whole branch's content into the instance; an unwanted one is content to clean up, not a free experiment.
186
+ - **Don't `git-sync export` from the main app while the work lives in a worktree.** It pushes the main app's state to the tracked branch and the worktree's edits are not in it. Check `.worktree` in `git-sync status` before exporting.
187
+ - **Don't hand-write the branch's YAML in the repo to "help" the PR.** Worktree content round-trips through `export` exactly like main-app content — see the first entry of the general "Don't" list below.
188
+
99
189
  ## Polling and cancelling
100
190
 
101
191
  ```bash
@@ -48,7 +48,7 @@ mb transform run "$TRANSFORM_ID" --wait --profile <name> --json
48
48
  - `--wait` polls until status is `succeeded` or `failed`. Without it you get only `{message: "Transform run started", run_id, final: null}` and must poll yourself — don't put bare `transform run` in a tight loop; let `--wait` do the polling.
49
49
  - `--sync` implies `--wait`, then waits until the run registers its output table (the run registers it itself — no `db sync-schema` needed), adding `target_table_id` to the envelope. Use it when you'll build MBQL on the output (see "Inspect").
50
50
  - The `--json` envelope is shape-stable: `{message, run_id, final}` (plus `target_table_id` under `--sync` — a number, or `null` if the table didn't register before the timeout). `final` is `null` when `--wait` is omitted or the run never started, otherwise a full `TransformRun` with `status` and `message`. On a failed run (`final.status` ∈ {`failed`, `timeout`, `canceled`}) the CLI exits 1 and writes a one-line `transform run <id> failed` to stderr; the failure detail lives only in `final.message` on stdout, so `jq -r '.final.message'` is where to look.
51
- - `transform create --json` returns the agent-facing compact projection: `{id, name, description, source_type, target: {type, database, schema, name}, target_db_id}`. Read `target.schema`/`target.name` directly off it — no follow-up `transform get`.
51
+ - `transform create --json` returns the agent-facing compact projection: `{id, name, description, source_type, target: {type, database, schema, name}, target_db_id, worktree_id}`. Read `target.schema`/`target.name` directly off it — no follow-up `transform get`.
52
52
  - If a transform with the same `name` already has a YAML representation on disk under the configured remote-sync repo, `create` mints a `_2` suffix on the exported filename (the new transform gets a fresh `entity_id`; the prior one isn't touched). For "iterate on the same concept", prefer `transform update <id>` — see "Iterating on a failing transform".
53
53
  - **`collection_id` only accepts a collection in the `:transforms` namespace.** Transforms aren't filed next to cards and dashboards — a normal analytics collection id fails create/update with `collection_id: A Transform can only go in Collections in the :transforms namespace.` Omit `collection_id` to leave the transform uncollected (the common case), or provision one with `mb collection create --body '{"name":"…"}' --namespace transforms --json` (see `core`) and pass the returned `id`. Cards and dashboards you build **on top of** the output table go in ordinary collections — so "put the transform and its dashboard in collection X" means _X holds the dashboard + cards; the transform stays in the transforms namespace._
54
54
 
@@ -71,6 +71,14 @@ On `target_table_id: null` (still syncing when the poll timed out; exit 0) re-po
71
71
 
72
72
  Columns and types are inferred from the result set; change the SELECT shape and the next run fails on a column mismatch — drop the table first (`transform delete-table <id>`). A changed shape also needs a re-run with `--sync` before MBQL sees the new/renamed columns.
73
73
 
74
+ ## Editing transforms safely in a worktree
75
+
76
+ A **worktree** is an isolated checkout of one git branch's content inside the same instance — the way to build a chain of transforms for PR review without touching production transforms or their tables. The lifecycle (create → pin → export-preflight → export → PR → delete) lives in the `git-sync` skill, section "Worktrees": **`mb skills get git-sync`**. What matters while authoring:
77
+
78
+ - **`worktree_id` says where a transform lives.** `transform get` and `transform list` carry it: an integer for a worktree's transform, `null` for a main-app one. Read it before editing anything you did not create in this session — under a scope, `update` / `delete` / `delete-table` of a main-app transform is refused with `transform <id> is not in worktree <n> (<branch>); refusing to touch main-app content`.
79
+ - **The scope is implicit once the profile is pinned.** With `--worktree <id|branch>`, `MB_WORKTREE`, or a pin in force, `transform list` shows only that worktree's transforms and `transform create` files what it creates into it. Without a scope both address the main app, whose listing excludes every worktree's rows.
80
+ - **`transform run` is refused under a scope**, and the server rejects worktree runs anyway: `transform run is not available inside a worktree (…); it changes main-app content.` The create → run → fix loop therefore does not close inside a worktree. Validate the query with `--dry-run` (see `mbql`) before creating, iterate the body with `transform update`, and run it in the main app once the branch is merged and imported. Don't unpin, don't switch to another profile, and don't stand in a run with `mb query` — tell the user the run waits for the merge.
81
+
74
82
  ## Inspect runs and cancel an in-flight run
75
83
 
76
84
  ```bash
@@ -1,32 +0,0 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, c as renderSummary } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-DiKyBxOw.mjs";
3
- import { t as parseId } from "./parse-id-C_jmKFaa.mjs";
4
- import { r as Collection } from "./collection-CfulNRBG.mjs";
5
- import { n as collectionView } from "./collection-CGoVLvcD.mjs";
6
- //#region src/commands/collection/archive.ts
7
- var archive_default = defineMetabaseCommand({
8
- meta: {
9
- name: "archive",
10
- description: "Archive (soft-delete) a collection by id"
11
- },
12
- capabilities: { minVersion: 58 },
13
- args: {
14
- ...outputFlags,
15
- ...profileFlag,
16
- ...connectionFlags,
17
- id: {
18
- type: "positional",
19
- description: "Collection id",
20
- required: true
21
- }
22
- },
23
- outputSchema: Collection,
24
- examples: ["mb collection archive 4", "mb collection archive 4 --json"],
25
- async run({ args, ctx, getClient }) {
26
- const id = parseId(args.id);
27
- const updated = await (await getClient()).collection.archive(id);
28
- renderSummary(updated, collectionView, `Archived collection ${updated.id} "${updated.name}".`, ctx);
29
- }
30
- });
31
- //#endregion
32
- export { archive_default as default };
@@ -1,32 +0,0 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, c as renderSummary } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-DiKyBxOw.mjs";
3
- import { t as parseId } from "./parse-id-C_jmKFaa.mjs";
4
- import { t as Snippet } from "./snippet-CyKAgIZl.mjs";
5
- import { t as snippetView } from "./snippet-oJLaYW9V.mjs";
6
- //#region src/commands/snippet/archive.ts
7
- var archive_default = defineMetabaseCommand({
8
- meta: {
9
- name: "archive",
10
- description: "Archive (soft-delete) a native query snippet by id"
11
- },
12
- capabilities: { minVersion: 58 },
13
- args: {
14
- ...outputFlags,
15
- ...profileFlag,
16
- ...connectionFlags,
17
- id: {
18
- type: "positional",
19
- description: "Snippet id",
20
- required: true
21
- }
22
- },
23
- outputSchema: Snippet,
24
- examples: ["mb snippet archive 1", "mb snippet archive 1 --json"],
25
- async run({ args, ctx, getClient }) {
26
- const id = parseId(args.id);
27
- const updated = await (await getClient()).snippet.archive(id);
28
- renderSummary(updated, snippetView, `Archived snippet ${updated.id} "${updated.name}".`, ctx);
29
- }
30
- });
31
- //#endregion
32
- export { archive_default as default };
@@ -1,28 +0,0 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, c as renderSummary } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-DiKyBxOw.mjs";
3
- import { l as SyncTask } from "./git-sync-BDnxPrqU.mjs";
4
- import { c as syncTaskView } from "./git-sync-DxD_ng48.mjs";
5
- //#region src/commands/git-sync/cancel-task.ts
6
- var cancel_task_default = defineMetabaseCommand({
7
- meta: {
8
- name: "cancel-task",
9
- description: "Cancel the running git-sync task"
10
- },
11
- capabilities: {
12
- minVersion: 60,
13
- tokenFeature: "remote_sync"
14
- },
15
- args: {
16
- ...outputFlags,
17
- ...profileFlag,
18
- ...connectionFlags
19
- },
20
- outputSchema: SyncTask,
21
- examples: ["mb git-sync cancel-task", "mb git-sync cancel-task --json"],
22
- async run({ ctx, getClient }) {
23
- const task = await (await getClient()).gitSync.cancelTask();
24
- renderSummary(task, syncTaskView, `Requested cancellation of ${task.sync_task_type} task #${task.id}.`, ctx);
25
- }
26
- });
27
- //#endregion
28
- export { cancel_task_default as default };
@@ -1,24 +0,0 @@
1
- import { t as defineCommandGroup } from "./group-DBM87IgC.mjs";
2
- //#region src/commands/card/index.ts
3
- var card_default = defineCommandGroup({
4
- name: "card",
5
- description: "Manage Metabase cards (questions, models, metrics)",
6
- skills: [{
7
- skill: "mbql",
8
- purpose: "author the dataset_query"
9
- }, {
10
- skill: "visualization",
11
- purpose: "choose display and visualization_settings"
12
- }],
13
- subCommands: {
14
- list: () => import("./list-B4hJuMhA.mjs").then((mod) => mod.default),
15
- get: () => import("./get-B_xdF1kq.mjs").then((mod) => mod.default),
16
- query: () => import("./query-BbqECzmF.mjs").then((mod) => mod.default),
17
- alerts: () => import("./alerts-Bf2RH_p_.mjs").then((mod) => mod.default),
18
- create: () => import("./create-C79vErX0.mjs").then((mod) => mod.default),
19
- update: () => import("./update-CO4m4wH3.mjs").then((mod) => mod.default),
20
- archive: () => import("./archive-C7w49Grr.mjs").then((mod) => mod.default)
21
- }
22
- });
23
- //#endregion
24
- export { card_default as default };
@@ -1,20 +0,0 @@
1
- import { t as defineCommandGroup } from "./group-DBM87IgC.mjs";
2
- //#region src/commands/collection/index.ts
3
- var collection_default = defineCommandGroup({
4
- name: "collection",
5
- description: "Manage Metabase collections",
6
- skills: [{
7
- skill: "core",
8
- purpose: "collection ref forms and the transforms namespace"
9
- }],
10
- subCommands: {
11
- list: () => import("./list-DMKDsBRd.mjs").then((mod) => mod.default),
12
- get: () => import("./get-DkWO0EI0.mjs").then((mod) => mod.default),
13
- items: () => import("./items-CQlPXBXE.mjs").then((mod) => mod.default),
14
- tree: () => import("./tree-CH-f3bjP.mjs").then((mod) => mod.default),
15
- create: () => import("./create-CAQV2g6V.mjs").then((mod) => mod.default),
16
- archive: () => import("./archive-BxNPHxOY.mjs").then((mod) => mod.default)
17
- }
18
- });
19
- //#endregion
20
- export { collection_default as default };
@@ -1,35 +0,0 @@
1
- import { i as ConfigError } from "./predicates-Bkm2IoeX.mjs";
2
- import { F as outputFlags, I as profileFlag, M as connectionFlags, c as renderSummary } from "./cli.mjs";
3
- import { t as defineMetabaseCommand } from "./runtime-DiKyBxOw.mjs";
4
- import { t as SyncBranchCreated } from "./git-sync-BDnxPrqU.mjs";
5
- import { t as syncBranchCreatedView } from "./git-sync-DxD_ng48.mjs";
6
- //#region src/commands/git-sync/create-branch.ts
7
- var create_branch_default = defineMetabaseCommand({
8
- meta: {
9
- name: "create-branch",
10
- description: "Create a new branch on the git remote and switch git-sync to it"
11
- },
12
- capabilities: {
13
- minVersion: 60,
14
- tokenFeature: "remote_sync"
15
- },
16
- args: {
17
- ...outputFlags,
18
- ...profileFlag,
19
- ...connectionFlags,
20
- name: {
21
- type: "positional",
22
- description: "Branch name",
23
- required: true
24
- }
25
- },
26
- outputSchema: SyncBranchCreated,
27
- examples: ["mb git-sync create-branch feat/dashboards", "mb git-sync create-branch feat/x --json"],
28
- async run({ args, ctx, getClient }) {
29
- const name = args.name.trim();
30
- if (name === "") throw new ConfigError("invalid name: branch name must not be blank");
31
- renderSummary(await (await getClient()).gitSync.createBranch({ name }), syncBranchCreatedView, `Created branch "${name}" and switched git-sync to it.`, ctx);
32
- }
33
- });
34
- //#endregion
35
- export { create_branch_default as default };
@@ -1,36 +0,0 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, N as listFlags, R as listEnvelopeSchema, s as renderList } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-DiKyBxOw.mjs";
3
- import { t as parseId } from "./parse-id-C_jmKFaa.mjs";
4
- import { n as windowList } from "./window-BkvrP0gB.mjs";
5
- import { n as TransformCompact } from "./transform-D3QX0jxA.mjs";
6
- import { n as transformView } from "./transform-DoTyyXAu.mjs";
7
- //#region src/commands/transform/dependencies.ts
8
- const TransformDependenciesEnvelope = listEnvelopeSchema(TransformCompact);
9
- var dependencies_default = defineMetabaseCommand({
10
- meta: {
11
- name: "dependencies",
12
- description: "List the transforms a transform depends on"
13
- },
14
- details: "Returns the upstream transforms in this transform's dependency graph — the ones that must run before it. The positional id is a transform id.",
15
- capabilities: { minVersion: 59 },
16
- args: {
17
- ...outputFlags,
18
- ...listFlags,
19
- ...profileFlag,
20
- ...connectionFlags,
21
- id: {
22
- type: "positional",
23
- description: "Transform id",
24
- required: true
25
- }
26
- },
27
- outputSchema: TransformDependenciesEnvelope,
28
- examples: ["mb transform dependencies 1", "mb transform dependencies 1 --json"],
29
- async run({ args, ctx, getClient }) {
30
- const id = parseId(args.id);
31
- const { data } = await (await getClient()).transform.dependencies(id);
32
- renderList(windowList(data, ctx.range), transformView, ctx);
33
- }
34
- });
35
- //#endregion
36
- export { dependencies_default as default };
@@ -1,31 +0,0 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, N as listFlags, R as listEnvelopeSchema, s as renderList } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-DiKyBxOw.mjs";
3
- import { n as windowList } from "./window-BkvrP0gB.mjs";
4
- import { r as SyncDirtyItemCompact } from "./git-sync-BDnxPrqU.mjs";
5
- import { n as syncDirtyItemView } from "./git-sync-DxD_ng48.mjs";
6
- //#region src/commands/git-sync/dirty.ts
7
- const SyncDirtyListEnvelope = listEnvelopeSchema(SyncDirtyItemCompact);
8
- var dirty_default = defineMetabaseCommand({
9
- meta: {
10
- name: "dirty",
11
- description: "List objects with unsynced local changes"
12
- },
13
- capabilities: {
14
- minVersion: 60,
15
- tokenFeature: "remote_sync"
16
- },
17
- args: {
18
- ...outputFlags,
19
- ...listFlags,
20
- ...profileFlag,
21
- ...connectionFlags
22
- },
23
- outputSchema: SyncDirtyListEnvelope,
24
- examples: ["mb git-sync dirty", "mb git-sync dirty --json"],
25
- async run({ ctx, getClient }) {
26
- const { data } = await (await getClient()).gitSync.dirty();
27
- renderList(windowList(data, ctx.range), syncDirtyItemView, ctx);
28
- }
29
- });
30
- //#endregion
31
- export { dirty_default as default };
@@ -1,19 +0,0 @@
1
- import { t as defineCommandGroup } from "./group-DBM87IgC.mjs";
2
- //#region src/commands/document/index.ts
3
- var document_default = defineCommandGroup({
4
- name: "document",
5
- description: "Manage Metabase documents",
6
- skills: [{
7
- skill: "document",
8
- purpose: "author the ProseMirror document body"
9
- }],
10
- subCommands: {
11
- list: () => import("./list-CNUiF8Z7.mjs").then((mod) => mod.default),
12
- get: () => import("./get-D_h-G9bn.mjs").then((mod) => mod.default),
13
- create: () => import("./create-tQbnuz-I.mjs").then((mod) => mod.default),
14
- update: () => import("./update-D-NE60AV.mjs").then((mod) => mod.default),
15
- archive: () => import("./archive-lQqs13Uz.mjs").then((mod) => mod.default)
16
- }
17
- });
18
- //#endregion
19
- export { document_default as default };
@@ -1,31 +0,0 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, o as renderItem } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-DiKyBxOw.mjs";
3
- import { t as parseId } from "./parse-id-C_jmKFaa.mjs";
4
- import { t as Transform } from "./transform-D3QX0jxA.mjs";
5
- import { n as transformView } from "./transform-DoTyyXAu.mjs";
6
- //#region src/commands/transform/get.ts
7
- var get_default = defineMetabaseCommand({
8
- meta: {
9
- name: "get",
10
- description: "Get a transform by id"
11
- },
12
- capabilities: { minVersion: 59 },
13
- args: {
14
- ...outputFlags,
15
- ...profileFlag,
16
- ...connectionFlags,
17
- id: {
18
- type: "positional",
19
- description: "Transform id",
20
- required: true
21
- }
22
- },
23
- outputSchema: Transform,
24
- examples: ["mb transform get 1", "mb transform get 1 --json"],
25
- async run({ args, ctx, getClient }) {
26
- const id = parseId(args.id);
27
- renderItem(await (await getClient()).transform.get(id), transformView, ctx);
28
- }
29
- });
30
- //#endregion
31
- export { get_default as default };
@@ -1,31 +0,0 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, o as renderItem } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-DiKyBxOw.mjs";
3
- import { t as parseId } from "./parse-id-C_jmKFaa.mjs";
4
- import { t as Snippet } from "./snippet-CyKAgIZl.mjs";
5
- import { t as snippetView } from "./snippet-oJLaYW9V.mjs";
6
- //#region src/commands/snippet/get.ts
7
- var get_default = defineMetabaseCommand({
8
- meta: {
9
- name: "get",
10
- description: "Get a native query snippet by id"
11
- },
12
- capabilities: { minVersion: 58 },
13
- args: {
14
- ...outputFlags,
15
- ...profileFlag,
16
- ...connectionFlags,
17
- id: {
18
- type: "positional",
19
- description: "Snippet id",
20
- required: true
21
- }
22
- },
23
- outputSchema: Snippet,
24
- examples: ["mb snippet get 1", "mb snippet get 1 --json"],
25
- async run({ args, ctx, getClient }) {
26
- const id = parseId(args.id);
27
- renderItem(await (await getClient()).snippet.get(id), snippetView, ctx);
28
- }
29
- });
30
- //#endregion
31
- export { get_default as default };
@@ -1,36 +0,0 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, o as renderItem } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-DiKyBxOw.mjs";
3
- import { r as Collection } from "./collection-CfulNRBG.mjs";
4
- import { n as collectionView } from "./collection-CGoVLvcD.mjs";
5
- import { t as parseCollectionRef } from "./parse-ref-ibKVB0J4.mjs";
6
- //#region src/commands/collection/get.ts
7
- var get_default = defineMetabaseCommand({
8
- meta: {
9
- name: "get",
10
- description: "Get a collection by id, 21-char entity id, or \"root\"/\"trash\""
11
- },
12
- capabilities: { minVersion: 58 },
13
- args: {
14
- ...outputFlags,
15
- ...profileFlag,
16
- ...connectionFlags,
17
- id: {
18
- type: "positional",
19
- description: "Collection id, 21-char entity id, or one of: \"root\", \"trash\"",
20
- required: true
21
- }
22
- },
23
- outputSchema: Collection,
24
- examples: [
25
- "mb collection get 4",
26
- "mb collection get root --json",
27
- "mb collection get trash --json",
28
- "mb collection get voo1If9y8Sld0lXej6xl0 --json"
29
- ],
30
- async run({ args, ctx, getClient }) {
31
- const ref = parseCollectionRef(args.id);
32
- renderItem(await (await getClient()).collection.get(ref), collectionView, ctx);
33
- }
34
- });
35
- //#endregion
36
- export { get_default as default };
@@ -1,28 +0,0 @@
1
- import { t as defineCommandGroup } from "./group-DBM87IgC.mjs";
2
- //#region src/commands/git-sync/index.ts
3
- var git_sync_default = defineCommandGroup({
4
- name: "git-sync",
5
- description: "Sync Metabase content with a git remote",
6
- skills: [{
7
- skill: "git-sync",
8
- purpose: "import/export round-trip and dirty checks"
9
- }],
10
- subCommands: {
11
- status: () => import("./status-BhswxJL1.mjs").then((mod) => mod.default),
12
- "is-dirty": () => import("./is-dirty-DYeJYhBz.mjs").then((mod) => mod.default),
13
- "has-remote-changes": () => import("./has-remote-changes-C684Redh.mjs").then((mod) => mod.default),
14
- dirty: () => import("./dirty-DNYoM6Bp.mjs").then((mod) => mod.default),
15
- "current-task": () => import("./current-task-MpBFGttd.mjs").then((mod) => mod.default),
16
- "cancel-task": () => import("./cancel-task-C5CU1pxU.mjs").then((mod) => mod.default),
17
- wait: () => import("./wait-DoMDH226.mjs").then((mod) => mod.default),
18
- import: () => import("./import-Rmmttboo.mjs").then((mod) => mod.default),
19
- export: () => import("./export-BjfoZRDJ.mjs").then((mod) => mod.default),
20
- stash: () => import("./stash-D0S4JmAz.mjs").then((mod) => mod.default),
21
- branches: () => import("./branches-DchlyU0i.mjs").then((mod) => mod.default),
22
- "create-branch": () => import("./create-branch-CYo6jZth.mjs").then((mod) => mod.default),
23
- "add-collection": () => import("./add-collection-B3Ty8SzB.mjs").then((mod) => mod.default),
24
- "remove-collection": () => import("./remove-collection-BOnxYvhj.mjs").then((mod) => mod.default)
25
- }
26
- });
27
- //#endregion
28
- export { git_sync_default as default };
@@ -1,36 +0,0 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, N as listFlags, R as listEnvelopeSchema, s as renderList } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-DiKyBxOw.mjs";
3
- import { n as windowList } from "./window-BkvrP0gB.mjs";
4
- import { n as SnippetCompact } from "./snippet-CyKAgIZl.mjs";
5
- import { t as snippetView } from "./snippet-oJLaYW9V.mjs";
6
- //#region src/commands/snippet/list.ts
7
- const SnippetListEnvelope = listEnvelopeSchema(SnippetCompact);
8
- var list_default = defineMetabaseCommand({
9
- meta: {
10
- name: "list",
11
- description: "List native query snippets"
12
- },
13
- capabilities: { minVersion: 58 },
14
- args: {
15
- ...outputFlags,
16
- ...listFlags,
17
- ...profileFlag,
18
- ...connectionFlags,
19
- archived: {
20
- type: "boolean",
21
- description: "Show archived snippets instead of active ones"
22
- }
23
- },
24
- outputSchema: SnippetListEnvelope,
25
- examples: [
26
- "mb snippet list",
27
- "mb snippet list --json",
28
- "mb snippet list --archived --json"
29
- ],
30
- async run({ args, ctx, getClient }) {
31
- const { data, total } = await (await getClient()).snippet.list({ archived: args.archived || void 0 });
32
- renderList(windowList(data, ctx.range, total), snippetView, ctx);
33
- }
34
- });
35
- //#endregion
36
- export { list_default as default };
@@ -1,28 +0,0 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, N as listFlags, R as listEnvelopeSchema, s as renderList } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-DiKyBxOw.mjs";
3
- import { n as windowList } from "./window-BkvrP0gB.mjs";
4
- import { n as TransformCompact } from "./transform-D3QX0jxA.mjs";
5
- import { n as transformView } from "./transform-DoTyyXAu.mjs";
6
- //#region src/commands/transform/list.ts
7
- const TransformListEnvelope = listEnvelopeSchema(TransformCompact);
8
- var list_default = defineMetabaseCommand({
9
- meta: {
10
- name: "list",
11
- description: "List transforms"
12
- },
13
- capabilities: { minVersion: 59 },
14
- args: {
15
- ...outputFlags,
16
- ...listFlags,
17
- ...profileFlag,
18
- ...connectionFlags
19
- },
20
- outputSchema: TransformListEnvelope,
21
- examples: ["mb transform list", "mb transform list --json"],
22
- async run({ ctx, getClient }) {
23
- const { data } = await (await getClient()).transform.list();
24
- renderList(windowList(data, ctx.range), transformView, ctx);
25
- }
26
- });
27
- //#endregion
28
- export { list_default as default };
@@ -1,28 +0,0 @@
1
- import { F as outputFlags, I as profileFlag, M as connectionFlags, N as listFlags, R as listEnvelopeSchema, s as renderList } from "./cli.mjs";
2
- import { t as defineMetabaseCommand } from "./runtime-DiKyBxOw.mjs";
3
- import { n as windowList } from "./window-BkvrP0gB.mjs";
4
- import { n as TransformTagCompact } from "./transform-tag-CcElGp3C.mjs";
5
- import { t as transformTagView } from "./transform-tag-Dmb4u3-Q.mjs";
6
- //#region src/commands/transform-tag/list.ts
7
- const TransformTagListEnvelope = listEnvelopeSchema(TransformTagCompact);
8
- var list_default = defineMetabaseCommand({
9
- meta: {
10
- name: "list",
11
- description: "List transform tags"
12
- },
13
- capabilities: { minVersion: 59 },
14
- args: {
15
- ...outputFlags,
16
- ...listFlags,
17
- ...profileFlag,
18
- ...connectionFlags
19
- },
20
- outputSchema: TransformTagListEnvelope,
21
- examples: ["mb transform-tag list", "mb transform-tag list --json"],
22
- async run({ ctx, getClient }) {
23
- const { data } = await (await getClient()).transformTag.list();
24
- renderList(windowList(data, ctx.range), transformTagView, ctx);
25
- }
26
- });
27
- //#endregion
28
- export { list_default as default };