@metabase/cli 0.1.15 → 0.1.17

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 (217) hide show
  1. package/README.md +69 -32
  2. package/dist/{add-collection-CXhrMjXU.mjs → add-collection-C-t9SQBk.mjs} +5 -5
  3. package/dist/add-collection-Dek6kiRI.mjs +11 -0
  4. package/dist/{archive-BUwiCFnd.mjs → archive-C7dnyzVY.mjs} +9 -7
  5. package/dist/{archive-Blc1dz8Z.mjs → archive-CaoUUTIb.mjs} +8 -7
  6. package/dist/{archive-D-Ovk0-E.mjs → archive-D1FX-sbU.mjs} +7 -6
  7. package/dist/{archive-CQiaCBSj.mjs → archive-DS-KEB4a.mjs} +7 -6
  8. package/dist/{archive-yTvDRQUZ.mjs → archive-LG8u7ec5.mjs} +7 -6
  9. package/dist/{archive-BxGSR7El.mjs → archive-qSOcACQo.mjs} +8 -6
  10. package/dist/{archive-Drt-rWvU.mjs → archive-wNXwIiF0.mjs} +8 -7
  11. package/dist/auth-Kv2MRkRk.mjs +22 -0
  12. package/dist/{body-B9XTTDEu.mjs → body-IcJ5kFtk.mjs} +3 -3
  13. package/dist/{branches-Ct3PK5U3.mjs → branches-BlNCTmFB.mjs} +7 -6
  14. package/dist/{cancel-tST8Bh0w.mjs → cancel-BnveTPNw.mjs} +6 -5
  15. package/dist/{cancel-task-BHnzRQKL.mjs → cancel-task-CSVI8Zgl.mjs} +7 -6
  16. package/dist/{capabilities-BX1rnVuH.mjs → capabilities-N0jo5U7S.mjs} +1 -1
  17. package/dist/card-Bp58WEUF.mjs +26 -0
  18. package/dist/{card-wCPcuKSi.mjs → card-DEmcRlNO.mjs} +6 -5
  19. package/dist/{cards-BySIFsLG.mjs → cards-CMgGA8OZ.mjs} +8 -6
  20. package/dist/cli.mjs +54 -26
  21. package/dist/collection-D8TI20Ir.mjs +23 -0
  22. package/dist/{collection-namespace-D8ohM5gD.mjs → collection-namespace-CsaxEqOb.mjs} +2 -2
  23. package/dist/command-augment-DdZIfx1V.mjs +11 -0
  24. package/dist/{create-HZ-9GMLx.mjs → create-AeWNv0v-.mjs} +9 -8
  25. package/dist/create-B1xfaZJB.mjs +35 -0
  26. package/dist/{create-DxDD6n1d.mjs → create-B6LQutd0.mjs} +17 -12
  27. package/dist/{create-C7FPeJqF.mjs → create-B79M8YpX.mjs} +10 -9
  28. package/dist/{create-DGxZmbxh.mjs → create-Bg_uMu0p.mjs} +9 -8
  29. package/dist/{create-C43RQYgj.mjs → create-BpkWlgoR.mjs} +18 -12
  30. package/dist/{create-DnT1Sayk.mjs → create-C7u3umLj.mjs} +9 -8
  31. package/dist/{create-4mAGsBd0.mjs → create-FZOrCw5k.mjs} +21 -12
  32. package/dist/{create-fIDFkdox.mjs → create-I5Cv-MBa.mjs} +16 -11
  33. package/dist/{create-D3cVDtxM.mjs → create-LHqwcVbS.mjs} +16 -11
  34. package/dist/{create-BDWthCYq.mjs → create-SHKlj0z3.mjs} +9 -8
  35. package/dist/{create-branch-jPE7nW-E.mjs → create-branch-CGyT99Ny.mjs} +7 -6
  36. package/dist/{current-task-rW54KJax.mjs → current-task-C-0hw2Ae.mjs} +7 -6
  37. package/dist/dashboard-C9pQCnX6.mjs +28 -0
  38. package/dist/{dashboard-B4bn3z6t.mjs → dashboard-DOplbKyQ.mjs} +7 -5
  39. package/dist/{database-BmsxuRmO.mjs → database-D9fftP-i.mjs} +1 -1
  40. package/dist/db-DWykmBOh.mjs +28 -0
  41. package/dist/{delete-BWO6uB4P.mjs → delete--NYYN6wv.mjs} +8 -7
  42. package/dist/{delete-CeigtfRI.mjs → delete-Do3nn9sl.mjs} +8 -7
  43. package/dist/{delete-runtime-PzLFavb0.mjs → delete-runtime-B0ha5QR4.mjs} +3 -3
  44. package/dist/{delete-CBwztF6P.mjs → delete-tCVrYjKD.mjs} +8 -7
  45. package/dist/{delete-table-BXzvDEPG.mjs → delete-table-CWSGPw0i.mjs} +8 -7
  46. package/dist/{dependencies-D2N9eqm1.mjs → dependencies-CyFocD8I.mjs} +7 -6
  47. package/dist/{dirty-DoEZRSGB.mjs → dirty-BXM0YJ_a.mjs} +7 -6
  48. package/dist/document-DNDm8_Py.mjs +22 -0
  49. package/dist/{eid-1mROiwJr.mjs → eid-p-zn_1RJ.mjs} +13 -7
  50. package/dist/{error-D5bZ5BUX.mjs → error-5H_tcfL8.mjs} +2 -2
  51. package/dist/{export-Bgv5B4_F.mjs → export-B_8wghyo.mjs} +9 -8
  52. package/dist/field-CFt1-KDR.mjs +21 -0
  53. package/dist/{fields-VA7tXHJz.mjs → fields-BsufL9kv.mjs} +8 -7
  54. package/dist/{get-DAsaor0n.mjs → get-4lufgahL.mjs} +7 -6
  55. package/dist/{get-B8etVxWD.mjs → get-68P-L4ja.mjs} +7 -6
  56. package/dist/{get-qnGGGRTa.mjs → get-B45uYMAs.mjs} +8 -6
  57. package/dist/get-B67pe00Z.mjs +36 -0
  58. package/dist/{get-DvQoDU2m.mjs → get-BJoZkATD.mjs} +7 -6
  59. package/dist/{get-BgIE_YEg.mjs → get-BTKeO4vE.mjs} +7 -6
  60. package/dist/{get-RQFSmnpY.mjs → get-C7mq17-2.mjs} +7 -6
  61. package/dist/{get-CGkhSY5L.mjs → get-CDLa6LiC.mjs} +9 -8
  62. package/dist/{get-D9o38nK5.mjs → get-CPw0ROO4.mjs} +7 -6
  63. package/dist/{get-Wj88mnhn.mjs → get-Cl5Ak73C.mjs} +9 -7
  64. package/dist/{get-CqnCaosn.mjs → get-D3k2JUsa.mjs} +7 -6
  65. package/dist/{get-C-UeGtgW.mjs → get-DTqBuIf3.mjs} +6 -5
  66. package/dist/{get-eUYDNALt.mjs → get-DeLnNVQE.mjs} +8 -7
  67. package/dist/{get-DLRBq8kR.mjs → get-Df_3LCVC.mjs} +7 -6
  68. package/dist/{get-BtAD26gc.mjs → get-DurjkUKJ.mjs} +7 -6
  69. package/dist/{get-run-CATz-XMS.mjs → get-run-Dq4qfGfD.mjs} +7 -6
  70. package/dist/git-sync-ByvjqSiy.mjs +31 -0
  71. package/dist/group-BNE_RiH5.mjs +28 -0
  72. package/dist/{has-remote-changes-B6YEMC90.mjs → has-remote-changes-E-4N_O_t.mjs} +7 -6
  73. package/dist/{import-Bl2Wj9Xf.mjs → import-Dg0j3HCP.mjs} +9 -8
  74. package/dist/{input-BXWgdKiS.mjs → input-7Sj85_K7.mjs} +1 -1
  75. package/dist/is-dirty-D7UMN0mt.mjs +10 -0
  76. package/dist/{is-dirty-D9MoFj0T.mjs → is-dirty-DWw1yBeR.mjs} +4 -4
  77. package/dist/{items-LjtICjvX.mjs → items-CQtt9X4M.mjs} +9 -8
  78. package/dist/{key-C8q5oIr5.mjs → key-bltP32Pm.mjs} +1 -1
  79. package/dist/library-B5AvpACG.mjs +24 -0
  80. package/dist/{list-ChK06rJh.mjs → list-B1uVWy6A.mjs} +8 -6
  81. package/dist/{list-DaJk60dd.mjs → list-BAOTQHst.mjs} +6 -5
  82. package/dist/{list-C410Ptw_.mjs → list-BF-W4jOZ.mjs} +9 -7
  83. package/dist/{list-DMik04Dh.mjs → list-BFVuPodI.mjs} +6 -5
  84. package/dist/{list-DfoNv0gb.mjs → list-BHAWYZ1z.mjs} +6 -5
  85. package/dist/{list-DcjenlTM.mjs → list-BKUvhAs4.mjs} +6 -5
  86. package/dist/{list-Dq86BAMG.mjs → list-BgUWqZa2.mjs} +8 -7
  87. package/dist/{list-CfWblVHJ.mjs → list-C4bALfCs.mjs} +7 -6
  88. package/dist/{list-CoRX8Ruc.mjs → list-C9O2RY5u.mjs} +6 -5
  89. package/dist/{list-cnqPlJgC.mjs → list-CfqpDTna.mjs} +6 -5
  90. package/dist/{list-C6U3Ftg8.mjs → list-CvhVYOVl.mjs} +7 -6
  91. package/dist/{list-B5Q7E2Km.mjs → list-D3TSAqwl.mjs} +6 -5
  92. package/dist/list-D5Gdz8hi.mjs +100 -0
  93. package/dist/{list-Bjp9nd0o.mjs → list-DG0FIhTK.mjs} +6 -5
  94. package/dist/{list-DtrfE0sF.mjs → list-KxQNqp4T.mjs} +8 -7
  95. package/dist/{login-Cn2UtFUt.mjs → login-Bt6j6yBM.mjs} +10 -9
  96. package/dist/{logout-_HXgEmqA.mjs → logout-ANkL02p0.mjs} +6 -5
  97. package/dist/{manifest-DYeLri80.mjs → manifest-BVf8P4bl.mjs} +9 -2
  98. package/dist/measure-CgFwtL1r.mjs +25 -0
  99. package/dist/{metadata-8yqT8OZI.mjs → metadata-ClehtgZj.mjs} +9 -8
  100. package/dist/{metadata-DHODjg1d.mjs → metadata-DplshwI3.mjs} +8 -7
  101. package/dist/{command-augment-CAur0XOQ.mjs → notice-DyVl5aYB.mjs} +1 -11
  102. package/dist/parameter-CiJ4CwWE.mjs +118 -0
  103. package/dist/parameter-values-D4J8Ctu0.mjs +56 -0
  104. package/dist/{parse-enum-BatHQ-Gs.mjs → parse-enum-BL9i_brN.mjs} +1 -1
  105. package/dist/{parse-id-DNPeV0Iu.mjs → parse-id-D4LeTUsP.mjs} +1 -1
  106. package/dist/{parse-ref-CZr1bYIl.mjs → parse-ref-CB_KvF9h.mjs} +1 -1
  107. package/dist/{path-BflajM08.mjs → path-5nQgdvrs.mjs} +6 -5
  108. package/dist/{poll-CYkX02Bm.mjs → poll-BpAJpvb-.mjs} +2 -2
  109. package/dist/{poll-task-oXpl3wzp.mjs → poll-task-TilgciQn.mjs} +2 -2
  110. package/dist/{preflight-BdJr2amA.mjs → preflight-OfHU3Toi.mjs} +4 -4
  111. package/dist/{process-DsGf7Mg5.mjs → process-j8UHMHc2.mjs} +1 -1
  112. package/dist/{prompt-Bc_bHSD0.mjs → prompt-C85xd9HR.mjs} +1 -1
  113. package/dist/publish-DKiqyDwo.mjs +67 -0
  114. package/dist/{query-CxTjguwp.mjs → query-BWJ5h1g3.mjs} +19 -13
  115. package/dist/{query-DWQaN7hO.mjs → query-CQ3xXa9P.mjs} +10 -8
  116. package/dist/{query-result-L5_NrwQR.mjs → query-result-D6mfoVfQ.mjs} +1 -1
  117. package/dist/{remove-collection-BwcFi8Fs.mjs → remove-collection-CO-aMzTO.mjs} +9 -8
  118. package/dist/{rescan-values-B9Qtsd32.mjs → rescan-values-DpL6LGAK.mjs} +9 -8
  119. package/dist/resolve-Dj2MTBkn.mjs +84 -0
  120. package/dist/{run-C-vftXCu.mjs → run-DUcdaZs3.mjs} +6 -5
  121. package/dist/{run-3eFtdI2Z.mjs → run-QYJ-mAaG.mjs} +9 -8
  122. package/dist/{runs-CpRTkn1W.mjs → runs-DgasTnGd.mjs} +8 -7
  123. package/dist/{runtime-C1QgWHM7.mjs → runtime-BJtuxWM8.mjs} +5 -3
  124. package/dist/{schema-tables-rdeupgsu.mjs → schema-tables-ooYjimrV.mjs} +8 -7
  125. package/dist/{schemas-Cr7RjYqV.mjs → schemas-HjFPzsd-.mjs} +6 -5
  126. package/dist/{search-D7Yq2MDu.mjs → search-vaT5EwhG.mjs} +11 -5
  127. package/dist/segment-BPC725mo.mjs +25 -0
  128. package/dist/{selectors-DPc2ZDdd.mjs → selectors-DlmZpo2L.mjs} +4 -4
  129. package/dist/{set-X2N6x7pe.mjs → set-CLHJauzG.mjs} +9 -8
  130. package/dist/{set-active-BoBa3pOw.mjs → set-active-oZOUe9V7.mjs} +6 -5
  131. package/dist/setting-DHYO-W5g.mjs +20 -0
  132. package/dist/{setup-C47WUieB.mjs → setup-D1de5Sbc.mjs} +8 -7
  133. package/dist/{skills-CJ8g8fhQ.mjs → skills-B6gfH0iR.mjs} +1 -1
  134. package/dist/{skills-Po0YPVU5.mjs → skills-NhgVypJ7.mjs} +3 -3
  135. package/dist/snippet-DtLmHr2J.mjs +22 -0
  136. package/dist/{stash-BV4sEp73.mjs → stash-DoRwelwY.mjs} +9 -8
  137. package/dist/{status-BKF9rRnk.mjs → status-BpMOlfsA.mjs} +8 -7
  138. package/dist/{status-Cf8c0NON.mjs → status-CmRgHTrV.mjs} +6 -5
  139. package/dist/{summary-RgLcBcEh.mjs → summary-BEu7pmpq.mjs} +7 -6
  140. package/dist/{sync-schema-DKEel2Sv.mjs → sync-schema-DTUXubMg.mjs} +11 -10
  141. package/dist/table-B1iBqmNu.mjs +22 -0
  142. package/dist/{table-qDD2kApF.mjs → table-DE3i82T_.mjs} +9 -2
  143. package/dist/transform-BuIooRQh.mjs +31 -0
  144. package/dist/transform-job-C3yz0krA.mjs +25 -0
  145. package/dist/transform-tag-CJD6mJUe.mjs +21 -0
  146. package/dist/{transforms-BOQ9CG0l.mjs → transforms-CWvMpLc9.mjs} +7 -6
  147. package/dist/{tree-CF8mscd9.mjs → tree-D18vYSe4.mjs} +6 -5
  148. package/dist/{unpublish-CmaRNjK3.mjs → unpublish-CJbL4ZsC.mjs} +20 -18
  149. package/dist/{update-Kz4kyqY_.mjs → update-7DacwIvi.mjs} +10 -9
  150. package/dist/{update-CgQOSuZt.mjs → update-BjjZIe2W.mjs} +10 -9
  151. package/dist/{update-nwXgVNQa.mjs → update-Bos8nnv0.mjs} +18 -13
  152. package/dist/{update-BXZBEeUp.mjs → update-BvsvyBw9.mjs} +17 -12
  153. package/dist/{update-DQPg0_-d.mjs → update-CSxwZ2us.mjs} +11 -10
  154. package/dist/{update-BuypOaXq.mjs → update-Ck0Kxv8u.mjs} +10 -9
  155. package/dist/{update-B59h7KmS.mjs → update-DV7IY7IQ.mjs} +10 -9
  156. package/dist/{update-DERsb0eO.mjs → update-DhOfrW1j.mjs} +19 -13
  157. package/dist/{update-DR4WkAET.mjs → update-Doia9MP_.mjs} +17 -12
  158. package/dist/{update-rhfPHALN.mjs → update-Dxa_6H2A.mjs} +22 -13
  159. package/dist/{update-dashcard-BJVeSGvO.mjs → update-dashcard-CZUWZhal.mjs} +11 -9
  160. package/dist/{update-DoQpy9SA.mjs → update-mr9todHq.mjs} +10 -9
  161. package/dist/{upgrade-CNrkJF6s.mjs → upgrade-CBW8V9qZ.mjs} +7 -6
  162. package/dist/{uuid-Dpl3ALKq.mjs → uuid-D6JVJ-R1.mjs} +10 -5
  163. package/dist/{validate-VawhJ5Sc.mjs → validate-BqNW4Sk1.mjs} +2 -2
  164. package/dist/{validate-query-CSV-TTnd.mjs → validate-query-CcZVKYPV.mjs} +3 -3
  165. package/dist/{values-DMYpkoEH.mjs → values-DBvuGnnA.mjs} +7 -6
  166. package/dist/{verify-By9ZYzx4.mjs → verify-LIShMNZ2.mjs} +2 -2
  167. package/dist/{wait-BzIAj8lJ.mjs → wait-DUHze3_B.mjs} +8 -7
  168. package/dist/{wait-flags-DQrxnlwv.mjs → wait-flags-Ybpt98PK.mjs} +2 -2
  169. package/package.json +1 -1
  170. package/skill-data/core/SKILL.md +45 -57
  171. package/skill-data/data-workflow/SKILL.md +116 -0
  172. package/skill-data/{data-analysis/SKILL.md → data-workflow/references/answering-questions.md} +7 -13
  173. package/skill-data/{data-transformation/SKILL.md → data-workflow/references/building-clean-tables.md} +46 -48
  174. package/skill-data/{semantic-layer/SKILL.md → data-workflow/references/reusable-definitions.md} +29 -54
  175. package/skill-data/document/SKILL.md +10 -20
  176. package/skill-data/git-sync/SKILL.md +36 -36
  177. package/skill-data/mbql/SKILL.md +3 -15
  178. package/skill-data/mbql/references/operators.md +9 -0
  179. package/skill-data/transform/SKILL.md +26 -42
  180. package/skill-data/visualization/SKILL.md +6 -6
  181. package/skill-data/visualization/references/settings.md +12 -0
  182. package/skills/metabase-cli/SKILL.md +2 -2
  183. package/dist/add-collection-Bnuh0d4j.mjs +0 -10
  184. package/dist/auth-Bkue4Psy.mjs +0 -19
  185. package/dist/card-faWo9ZWU.mjs +0 -20
  186. package/dist/collection-DcRz7fmf.mjs +0 -20
  187. package/dist/dashboard-pXAxJTTx.mjs +0 -21
  188. package/dist/db-CmHHj5eI.mjs +0 -22
  189. package/dist/document-DQIhL75C.mjs +0 -19
  190. package/dist/field-B-UcqFzm.mjs +0 -18
  191. package/dist/git-sync-CwOvcUI2.mjs +0 -28
  192. package/dist/is-dirty-MT0BT4CS.mjs +0 -9
  193. package/dist/list-Cx8JxS2C.mjs +0 -42
  194. package/dist/measure-BIAoqgcS.mjs +0 -19
  195. package/dist/publish-CGUkIqSm.mjs +0 -70
  196. package/dist/segment-BN8sFunv.mjs +0 -19
  197. package/dist/setting-zZjcOPyE.mjs +0 -17
  198. package/dist/snippet-DK0ZA8m5.mjs +0 -19
  199. package/dist/table-COAKXNuj.mjs +0 -21
  200. package/dist/transform-Bto4U82j.mjs +0 -25
  201. package/dist/transform-job-_fW1y2tg.mjs +0 -22
  202. package/dist/transform-tag-C8n1oTr1.mjs +0 -18
  203. package/skill-data/robot-data-engineer/SKILL.md +0 -142
  204. /package/dist/{body-flags-D7q87Btw.mjs → body-flags-DWTTxJpP.mjs} +0 -0
  205. /package/dist/{collection-Deiziuu2.mjs → collection-DrLpA1SO.mjs} +0 -0
  206. /package/dist/{document-qfwR0r63.mjs → document-1W7NRaO_.mjs} +0 -0
  207. /package/dist/{field-E0IBy4Uw.mjs → field-CMY_LWUe.mjs} +0 -0
  208. /package/dist/{measure-JJAdFoqK.mjs → measure-DoJvtCaA.mjs} +0 -0
  209. /package/dist/{paginate-BexjkjbY.mjs → paginate-FVZUxL4J.mjs} +0 -0
  210. /package/dist/{render-CkuFkWlQ.mjs → render-BTKnWL0d.mjs} +0 -0
  211. /package/dist/{revision-message-flag-C7zBeWEt.mjs → revision-message-flag-CHrJgFFx.mjs} +0 -0
  212. /package/dist/{segment-B9SEv9V_.mjs → segment-TXktTCfU.mjs} +0 -0
  213. /package/dist/{setting-i0pugNHl.mjs → setting-m46MUtW5.mjs} +0 -0
  214. /package/dist/{snippet-NNzqlksR.mjs → snippet-CtA2Pkoa.mjs} +0 -0
  215. /package/dist/{transform-n376akp8.mjs → transform-DEF38FWe.mjs} +0 -0
  216. /package/dist/{transform-job-C8lIS-7Q.mjs → transform-job-CtixL4An.mjs} +0 -0
  217. /package/dist/{transform-tag-DB46AhAj.mjs → transform-tag-rsIrckCM.mjs} +0 -0
package/README.md CHANGED
@@ -469,38 +469,7 @@ mb table update 42 --file patch.json
469
469
  echo '{"description":"Customer dimension"}' | mb table update 42
470
470
  ```
471
471
 
472
- ### `mb table publish`
473
-
474
- Publish tables to a library collection (`POST /api/ee/data-studio/table/publish-tables`), surfacing them as trusted data sources. The selected tables and every upstream table they depend on are set to the target `library-data` collection. Select tables with `--table-ids`, whole databases with `--db-ids`, or schemas with `--schemas` — the filters are combined. Requires the `library` premium feature.
475
-
476
- ```sh
477
- mb table publish --collection-id 12 --table-ids 1,2,3
478
- mb table publish --collection-id 12 --db-ids 1 --json
479
- mb table publish --collection-id 12 --schemas 1:public,1:analytics
480
- ```
481
-
482
- | Flag | Description |
483
- | ---------------------- | ----------------------------------------------------------------- |
484
- | `--collection-id <id>` | Target library collection id (required). |
485
- | `--table-ids <ids>` | Comma-separated table ids. |
486
- | `--db-ids <ids>` | Comma-separated database ids. |
487
- | `--schemas <ids>` | Comma-separated schema ids, each `<db-id>:<schema>` (`1:public`). |
488
-
489
- ### `mb table unpublish`
490
-
491
- Unpublish tables from the library (`POST /api/ee/data-studio/table/unpublish-tables`). Clears the library collection for the selected tables and every downstream table that depends on them. Same selector flags as `publish` (minus `--collection-id`). Requires the `library` premium feature.
492
-
493
- ```sh
494
- mb table unpublish --table-ids 1,2,3
495
- mb table unpublish --db-ids 1 --json
496
- mb table unpublish --schemas 1:public,1:analytics
497
- ```
498
-
499
- | Flag | Description |
500
- | ------------------- | ----------------------------------------------------------------- |
501
- | `--table-ids <ids>` | Comma-separated table ids. |
502
- | `--db-ids <ids>` | Comma-separated database ids. |
503
- | `--schemas <ids>` | Comma-separated schema ids, each `<db-id>:<schema>` (`1:public`). |
472
+ Publish status surfaces on the table itself — `table get`/`table list` carry `is_published` (and `collection_id` under `--full`). Publishing tables to the Library is done with [`mb library publish`](#library).
504
473
 
505
474
  ## Fields
506
475
 
@@ -660,6 +629,27 @@ mb dashboard cards 1
660
629
  mb dashboard cards 1 --json
661
630
  ```
662
631
 
632
+ #### Dashboard parameters (filters)
633
+
634
+ A dashboard's `parameters` are its filter widgets. They're typed (`Parameter` schema): an invalid `type` is rejected at the CLI boundary with a message that echoes the full allowed enum (`string/=`, `string/contains`, `number/between`, `date/range`, `category`, `id`, `temporal-unit`, …).
635
+
636
+ Read them off the dashboard with `mb dashboard get <id> --fields parameters --json` (or `--full` for the whole record). There is no separate read verb — they're part of the dashboard.
637
+
638
+ Editing replaces the **whole** `parameters` array, so it's a read-modify-write loop: read the current set, modify it, and send it all back via `mb dashboard create`/`mb dashboard update --body '{"parameters":[…]}'`; omitting a parameter deletes it. Each parameter's `id` is a descriptive string you choose (reuse the `slug`, e.g. `order_status`), unique within the dashboard — Metabase stores any non-blank string as-is, so there is no need to generate a random id (use `mb uuid` only if you genuinely want an opaque one). Bind a parameter to a card column through a dashcard's `parameter_mappings`, whose `parameter_id` must match a parameter `id` exactly.
639
+
640
+ ### `mb dashboard parameter-values <dashboard-id> <parameter-id>`
641
+
642
+ Fetch the selectable values for one dashboard parameter (`{values, has_more_values}`). Values come from the parameter's static list, its source card, or — for a parameter mapped to a field — the field's live distinct values (chain-filtered).
643
+
644
+ ```sh
645
+ mb dashboard parameter-values 1 order_status --json
646
+ mb dashboard parameter-values 1 order_status --query Cam --json
647
+ ```
648
+
649
+ | Flag | Description |
650
+ | ------------------ | -------------------------------------------------------------------------------------- |
651
+ | `--query <substr>` | Case-insensitive substring search (first 1000 matches) instead of the full value list. |
652
+
663
653
  ### `mb dashboard create`
664
654
 
665
655
  The body accepts the same dashboard-level fields as the underlying `POST /api/dashboard` (`name`, `description`, `parameters`, `cache_ttl`, `collection_id`, `collection_position`). It also accepts optional `dashcards` and `tabs`: when either is present, the CLI chains a `PUT /api/dashboard/:id` after the create and returns the updated dashboard with its dashcards/tabs applied. Use a negative `id` on a dashcard to indicate one the server should newly create.
@@ -991,6 +981,53 @@ mb collection archive 4
991
981
  mb collection archive 4 --json
992
982
  ```
993
983
 
984
+ ## Library
985
+
986
+ Curate the Metabase **Library** — a governed subtree (`library-data` "Data" for published tables, `library-metrics` "Metrics" for official metrics, under a `library` root). Tables published to Data appear first when people pick a data source and rank up in search, steering everyone toward trusted, analysis-ready tables. Requires the `library` premium feature (Pro/Enterprise) and admin or data-analyst permission (Curate alone won't publish tables). Publish status surfaces on the table via `is_published` (`table get`/`table list`).
987
+
988
+ ### `mb library get`
989
+
990
+ Show the Library and its Data/Metrics collection ids (`GET /api/ee/library/`). Errors if the Library hasn't been created yet.
991
+
992
+ ```sh
993
+ mb library get
994
+ mb library get --json
995
+ ```
996
+
997
+ ### `mb library create`
998
+
999
+ Create the Library subtree (`POST /api/ee/library/`). Idempotent — returns the existing Library when it's already there.
1000
+
1001
+ ```sh
1002
+ mb library create
1003
+ mb library create --json
1004
+ ```
1005
+
1006
+ ### `mb library publish`
1007
+
1008
+ Publish tables (and their upstream dependencies) into the Library's Data collection (`POST /api/ee/data-studio/table/publish-tables`). The target Data collection is resolved automatically and the Library is created if it doesn't exist yet — there's no collection id to pass.
1009
+
1010
+ ```sh
1011
+ mb library publish --table-ids 1,2,3
1012
+ mb library publish --db-ids 1 --json
1013
+ mb library publish --schemas 1:public,1:analytics
1014
+ ```
1015
+
1016
+ | Flag | Description |
1017
+ | ------------------- | ----------------------------------------------------------------- |
1018
+ | `--table-ids <ids>` | Comma-separated table ids. |
1019
+ | `--db-ids <ids>` | Comma-separated database ids. |
1020
+ | `--schemas <ids>` | Comma-separated schema ids, each `<db-id>:<schema>` (`1:public`). |
1021
+
1022
+ ### `mb library unpublish`
1023
+
1024
+ Unpublish tables (and their downstream dependents) from the Library (`POST /api/ee/data-studio/table/unpublish-tables`). Same selector flags as `publish`.
1025
+
1026
+ ```sh
1027
+ mb library unpublish --table-ids 1,2,3
1028
+ mb library unpublish --db-ids 1 --json
1029
+ ```
1030
+
994
1031
  ## Documents
995
1032
 
996
1033
  CRUD on `/api/document`. A document is a rich-text page that mixes prose with embedded saved questions (`cardEmbed`) and inline links to Metabase entities (`smartLink`). The body is a [TipTap](https://tiptap.dev/) (ProseMirror) JSON tree stored under `content_type: application/json+vnd.prose-mirror`. The agent-facing format reference lives in the bundled `document` skill (`mb skills get document`). It's a baseline OSS feature — no elevated server version or premium token required.
@@ -1,8 +1,8 @@
1
- import { connectionFlags, outputFlags, profileFlag } from "./error-D5bZ5BUX.mjs";
2
- import { defineMetabaseCommand } from "./runtime-C1QgWHM7.mjs";
3
- import { renderSummary } from "./capabilities-BX1rnVuH.mjs";
4
- import { parseId } from "./parse-id-DNPeV0Iu.mjs";
5
- import { REMOTE_SYNC_PATHS } from "./poll-task-oXpl3wzp.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag } from "./error-5H_tcfL8.mjs";
2
+ import { defineMetabaseCommand } from "./runtime-BJtuxWM8.mjs";
3
+ import { renderSummary } from "./capabilities-N0jo5U7S.mjs";
4
+ import { parseId } from "./parse-id-D4LeTUsP.mjs";
5
+ import { REMOTE_SYNC_PATHS } from "./poll-task-TilgciQn.mjs";
6
6
  import { z } from "zod";
7
7
 
8
8
  //#region src/commands/git-sync/add-collection.ts
@@ -0,0 +1,11 @@
1
+ import "./notice-DyVl5aYB.mjs";
2
+ import "./error-5H_tcfL8.mjs";
3
+ import "./command-augment-DdZIfx1V.mjs";
4
+ import "./runtime-BJtuxWM8.mjs";
5
+ import "./capabilities-N0jo5U7S.mjs";
6
+ import "./parse-id-D4LeTUsP.mjs";
7
+ import "./poll-BpAJpvb-.mjs";
8
+ import "./poll-task-TilgciQn.mjs";
9
+ import { SyncSettingsUpdateResult, add_collection_default, setCollectionRemoteSynced, syncSettingsUpdateView } from "./add-collection-C-t9SQBk.mjs";
10
+
11
+ export { add_collection_default as default };
@@ -1,10 +1,12 @@
1
- import "./command-augment-CAur0XOQ.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-D5bZ5BUX.mjs";
3
- import { defineMetabaseCommand } from "./runtime-C1QgWHM7.mjs";
4
- import { renderSummary } from "./capabilities-BX1rnVuH.mjs";
5
- import "./field-E0IBy4Uw.mjs";
6
- import { Card, cardView } from "./card-wCPcuKSi.mjs";
7
- import { parseId } from "./parse-id-DNPeV0Iu.mjs";
1
+ import "./notice-DyVl5aYB.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-5H_tcfL8.mjs";
3
+ import "./command-augment-DdZIfx1V.mjs";
4
+ import { defineMetabaseCommand } from "./runtime-BJtuxWM8.mjs";
5
+ import { renderSummary } from "./capabilities-N0jo5U7S.mjs";
6
+ import "./field-CMY_LWUe.mjs";
7
+ import "./parameter-CiJ4CwWE.mjs";
8
+ import { Card, cardView } from "./card-DEmcRlNO.mjs";
9
+ import { parseId } from "./parse-id-D4LeTUsP.mjs";
8
10
 
9
11
  //#region src/commands/card/archive.ts
10
12
  var archive_default = defineMetabaseCommand({
@@ -1,10 +1,11 @@
1
- import "./command-augment-CAur0XOQ.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-D5bZ5BUX.mjs";
3
- import { defineMetabaseCommand } from "./runtime-C1QgWHM7.mjs";
4
- import { renderSummary } from "./capabilities-BX1rnVuH.mjs";
5
- import { parseId } from "./parse-id-DNPeV0Iu.mjs";
6
- import { revisionMessageFlag } from "./revision-message-flag-C7zBeWEt.mjs";
7
- import { Segment, segmentView } from "./segment-B9SEv9V_.mjs";
1
+ import "./notice-DyVl5aYB.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-5H_tcfL8.mjs";
3
+ import "./command-augment-DdZIfx1V.mjs";
4
+ import { defineMetabaseCommand } from "./runtime-BJtuxWM8.mjs";
5
+ import { renderSummary } from "./capabilities-N0jo5U7S.mjs";
6
+ import { parseId } from "./parse-id-D4LeTUsP.mjs";
7
+ import { revisionMessageFlag } from "./revision-message-flag-CHrJgFFx.mjs";
8
+ import { Segment, segmentView } from "./segment-TXktTCfU.mjs";
8
9
 
9
10
  //#region src/commands/segment/archive.ts
10
11
  var archive_default = defineMetabaseCommand({
@@ -1,9 +1,10 @@
1
- import "./command-augment-CAur0XOQ.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-D5bZ5BUX.mjs";
3
- import { defineMetabaseCommand } from "./runtime-C1QgWHM7.mjs";
4
- import { renderSummary } from "./capabilities-BX1rnVuH.mjs";
5
- import { parseId } from "./parse-id-DNPeV0Iu.mjs";
6
- import { Snippet, snippetView } from "./snippet-NNzqlksR.mjs";
1
+ import "./notice-DyVl5aYB.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-5H_tcfL8.mjs";
3
+ import "./command-augment-DdZIfx1V.mjs";
4
+ import { defineMetabaseCommand } from "./runtime-BJtuxWM8.mjs";
5
+ import { renderSummary } from "./capabilities-N0jo5U7S.mjs";
6
+ import { parseId } from "./parse-id-D4LeTUsP.mjs";
7
+ import { Snippet, snippetView } from "./snippet-CtA2Pkoa.mjs";
7
8
 
8
9
  //#region src/commands/snippet/archive.ts
9
10
  var archive_default = defineMetabaseCommand({
@@ -1,9 +1,10 @@
1
- import "./command-augment-CAur0XOQ.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-D5bZ5BUX.mjs";
3
- import { defineMetabaseCommand } from "./runtime-C1QgWHM7.mjs";
4
- import { renderSummary } from "./capabilities-BX1rnVuH.mjs";
5
- import { parseId } from "./parse-id-DNPeV0Iu.mjs";
6
- import { Collection, collectionView } from "./collection-Deiziuu2.mjs";
1
+ import "./notice-DyVl5aYB.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-5H_tcfL8.mjs";
3
+ import "./command-augment-DdZIfx1V.mjs";
4
+ import { defineMetabaseCommand } from "./runtime-BJtuxWM8.mjs";
5
+ import { renderSummary } from "./capabilities-N0jo5U7S.mjs";
6
+ import { parseId } from "./parse-id-D4LeTUsP.mjs";
7
+ import { Collection, collectionView } from "./collection-DrLpA1SO.mjs";
7
8
 
8
9
  //#region src/commands/collection/archive.ts
9
10
  var archive_default = defineMetabaseCommand({
@@ -1,9 +1,10 @@
1
- import "./command-augment-CAur0XOQ.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-D5bZ5BUX.mjs";
3
- import { defineMetabaseCommand } from "./runtime-C1QgWHM7.mjs";
4
- import { renderSummary } from "./capabilities-BX1rnVuH.mjs";
5
- import { parseId } from "./parse-id-DNPeV0Iu.mjs";
6
- import { Document, documentView } from "./document-qfwR0r63.mjs";
1
+ import "./notice-DyVl5aYB.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-5H_tcfL8.mjs";
3
+ import "./command-augment-DdZIfx1V.mjs";
4
+ import { defineMetabaseCommand } from "./runtime-BJtuxWM8.mjs";
5
+ import { renderSummary } from "./capabilities-N0jo5U7S.mjs";
6
+ import { parseId } from "./parse-id-D4LeTUsP.mjs";
7
+ import { Document, documentView } from "./document-1W7NRaO_.mjs";
7
8
 
8
9
  //#region src/commands/document/archive.ts
9
10
  var archive_default = defineMetabaseCommand({
@@ -1,9 +1,11 @@
1
- import "./command-augment-CAur0XOQ.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-D5bZ5BUX.mjs";
3
- import { defineMetabaseCommand } from "./runtime-C1QgWHM7.mjs";
4
- import { renderSummary } from "./capabilities-BX1rnVuH.mjs";
5
- import { parseId } from "./parse-id-DNPeV0Iu.mjs";
6
- import { Dashboard, dashboardView } from "./dashboard-B4bn3z6t.mjs";
1
+ import "./notice-DyVl5aYB.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-5H_tcfL8.mjs";
3
+ import "./command-augment-DdZIfx1V.mjs";
4
+ import { defineMetabaseCommand } from "./runtime-BJtuxWM8.mjs";
5
+ import { renderSummary } from "./capabilities-N0jo5U7S.mjs";
6
+ import "./parameter-CiJ4CwWE.mjs";
7
+ import { parseId } from "./parse-id-D4LeTUsP.mjs";
8
+ import { Dashboard, dashboardView } from "./dashboard-DOplbKyQ.mjs";
7
9
 
8
10
  //#region src/commands/dashboard/archive.ts
9
11
  var archive_default = defineMetabaseCommand({
@@ -1,10 +1,11 @@
1
- import "./command-augment-CAur0XOQ.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-D5bZ5BUX.mjs";
3
- import { defineMetabaseCommand } from "./runtime-C1QgWHM7.mjs";
4
- import { renderSummary } from "./capabilities-BX1rnVuH.mjs";
5
- import { parseId } from "./parse-id-DNPeV0Iu.mjs";
6
- import { Measure, measureView } from "./measure-JJAdFoqK.mjs";
7
- import { revisionMessageFlag } from "./revision-message-flag-C7zBeWEt.mjs";
1
+ import "./notice-DyVl5aYB.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-5H_tcfL8.mjs";
3
+ import "./command-augment-DdZIfx1V.mjs";
4
+ import { defineMetabaseCommand } from "./runtime-BJtuxWM8.mjs";
5
+ import { renderSummary } from "./capabilities-N0jo5U7S.mjs";
6
+ import { parseId } from "./parse-id-D4LeTUsP.mjs";
7
+ import { Measure, measureView } from "./measure-DoJvtCaA.mjs";
8
+ import { revisionMessageFlag } from "./revision-message-flag-CHrJgFFx.mjs";
8
9
 
9
10
  //#region src/commands/measure/archive.ts
10
11
  var archive_default = defineMetabaseCommand({
@@ -0,0 +1,22 @@
1
+ import "./command-augment-DdZIfx1V.mjs";
2
+ import { defineCommandGroup } from "./group-BNE_RiH5.mjs";
3
+
4
+ //#region src/commands/auth/index.ts
5
+ var auth_default = defineCommandGroup({
6
+ name: "auth",
7
+ description: "Authenticate against a Metabase instance",
8
+ defaultCommand: "login",
9
+ skills: [{
10
+ skill: "core",
11
+ purpose: "authentication and named profiles"
12
+ }],
13
+ subCommands: {
14
+ login: () => import("./login-Bt6j6yBM.mjs").then((m) => m.default),
15
+ status: () => import("./status-CmRgHTrV.mjs").then((m) => m.default),
16
+ list: () => import("./list-CvhVYOVl.mjs").then((m) => m.default),
17
+ logout: () => import("./logout-ANkL02p0.mjs").then((m) => m.default)
18
+ }
19
+ });
20
+
21
+ //#endregion
22
+ export { auth_default as default };
@@ -1,6 +1,6 @@
1
- import { ConfigError } from "./command-augment-CAur0XOQ.mjs";
2
- import { parseJson } from "./runtime-C1QgWHM7.mjs";
3
- import { DEFAULT_FLAG_NAME, readInput } from "./input-BXWgdKiS.mjs";
1
+ import { ConfigError } from "./notice-DyVl5aYB.mjs";
2
+ import { parseJson } from "./runtime-BJtuxWM8.mjs";
3
+ import { DEFAULT_FLAG_NAME, readInput } from "./input-7Sj85_K7.mjs";
4
4
 
5
5
  //#region src/runtime/body.ts
6
6
  async function readBody(sources, schema) {
@@ -1,9 +1,10 @@
1
- import "./command-augment-CAur0XOQ.mjs";
2
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-D5bZ5BUX.mjs";
3
- import { defineMetabaseCommand } from "./runtime-C1QgWHM7.mjs";
4
- import { renderList } from "./capabilities-BX1rnVuH.mjs";
5
- import "./poll-CYkX02Bm.mjs";
6
- import { REMOTE_SYNC_PATHS } from "./poll-task-oXpl3wzp.mjs";
1
+ import "./notice-DyVl5aYB.mjs";
2
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-5H_tcfL8.mjs";
3
+ import "./command-augment-DdZIfx1V.mjs";
4
+ import { defineMetabaseCommand } from "./runtime-BJtuxWM8.mjs";
5
+ import { renderList } from "./capabilities-N0jo5U7S.mjs";
6
+ import "./poll-BpAJpvb-.mjs";
7
+ import { REMOTE_SYNC_PATHS } from "./poll-task-TilgciQn.mjs";
7
8
  import { z } from "zod";
8
9
 
9
10
  //#region src/commands/git-sync/branches.ts
@@ -1,8 +1,9 @@
1
- import "./command-augment-CAur0XOQ.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-D5bZ5BUX.mjs";
3
- import { defineMetabaseCommand } from "./runtime-C1QgWHM7.mjs";
4
- import { renderSummary } from "./capabilities-BX1rnVuH.mjs";
5
- import { parseId } from "./parse-id-DNPeV0Iu.mjs";
1
+ import "./notice-DyVl5aYB.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-5H_tcfL8.mjs";
3
+ import "./command-augment-DdZIfx1V.mjs";
4
+ import { defineMetabaseCommand } from "./runtime-BJtuxWM8.mjs";
5
+ import { renderSummary } from "./capabilities-N0jo5U7S.mjs";
6
+ import { parseId } from "./parse-id-D4LeTUsP.mjs";
6
7
  import { z } from "zod";
7
8
 
8
9
  //#region src/commands/transform/cancel.ts
@@ -1,9 +1,10 @@
1
- import "./command-augment-CAur0XOQ.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-D5bZ5BUX.mjs";
3
- import { defineMetabaseCommand } from "./runtime-C1QgWHM7.mjs";
4
- import { renderSummary } from "./capabilities-BX1rnVuH.mjs";
5
- import "./poll-CYkX02Bm.mjs";
6
- import { REMOTE_SYNC_PATHS, SyncTask, syncTaskView } from "./poll-task-oXpl3wzp.mjs";
1
+ import "./notice-DyVl5aYB.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-5H_tcfL8.mjs";
3
+ import "./command-augment-DdZIfx1V.mjs";
4
+ import { defineMetabaseCommand } from "./runtime-BJtuxWM8.mjs";
5
+ import { renderSummary } from "./capabilities-N0jo5U7S.mjs";
6
+ import "./poll-BpAJpvb-.mjs";
7
+ import { REMOTE_SYNC_PATHS, SyncTask, syncTaskView } from "./poll-task-TilgciQn.mjs";
7
8
 
8
9
  //#region src/commands/git-sync/cancel-task.ts
9
10
  var cancel_task_default = defineMetabaseCommand({
@@ -1,4 +1,4 @@
1
- import { ConfigError, itemOversizeMessage, listTruncationNotice, warn } from "./command-augment-CAur0XOQ.mjs";
1
+ import { ConfigError, itemOversizeMessage, listTruncationNotice, warn } from "./notice-DyVl5aYB.mjs";
2
2
  import { z } from "zod";
3
3
  import Table from "cli-table3";
4
4
 
@@ -0,0 +1,26 @@
1
+ import "./command-augment-DdZIfx1V.mjs";
2
+ import { defineCommandGroup } from "./group-BNE_RiH5.mjs";
3
+
4
+ //#region src/commands/card/index.ts
5
+ var card_default = defineCommandGroup({
6
+ name: "card",
7
+ description: "Manage Metabase cards (questions, models, metrics)",
8
+ skills: [{
9
+ skill: "mbql",
10
+ purpose: "author the dataset_query"
11
+ }, {
12
+ skill: "visualization",
13
+ purpose: "choose display and visualization_settings"
14
+ }],
15
+ subCommands: {
16
+ list: () => import("./list-BF-W4jOZ.mjs").then((mod) => mod.default),
17
+ get: () => import("./get-Cl5Ak73C.mjs").then((mod) => mod.default),
18
+ query: () => import("./query-CQ3xXa9P.mjs").then((mod) => mod.default),
19
+ create: () => import("./create-FZOrCw5k.mjs").then((mod) => mod.default),
20
+ update: () => import("./update-Dxa_6H2A.mjs").then((mod) => mod.default),
21
+ archive: () => import("./archive-C7dnyzVY.mjs").then((mod) => mod.default)
22
+ }
23
+ });
24
+
25
+ //#endregion
26
+ export { card_default as default };
@@ -1,4 +1,5 @@
1
- import { FieldBaseType, FieldSemanticType } from "./field-E0IBy4Uw.mjs";
1
+ import { FieldBaseType, FieldSemanticType } from "./field-CMY_LWUe.mjs";
2
+ import { Parameter, ParameterMapping } from "./parameter-CiJ4CwWE.mjs";
2
3
  import { z } from "zod";
3
4
 
4
5
  //#region src/domain/card.ts
@@ -79,8 +80,8 @@ const CardCreateInput = z.object({
79
80
  collection_id: z.number().int().positive().nullable().optional(),
80
81
  collection_position: z.number().int().positive().nullable().optional(),
81
82
  dashboard_id: z.number().int().positive().nullable().optional(),
82
- parameters: z.array(z.unknown()).optional(),
83
- parameter_mappings: z.array(z.unknown()).optional()
83
+ parameters: z.array(Parameter).optional(),
84
+ parameter_mappings: z.array(ParameterMapping).optional()
84
85
  }).loose();
85
86
  const CardUpdateInput = z.object({
86
87
  name: z.string().min(1).optional(),
@@ -99,8 +100,8 @@ const CardUpdateInput = z.object({
99
100
  cache_ttl: z.number().int().positive().nullable().optional(),
100
101
  dashboard_id: z.number().int().positive().nullable().optional(),
101
102
  dashboard_tab_id: z.number().int().positive().nullable().optional(),
102
- parameters: z.array(z.unknown()).optional(),
103
- parameter_mappings: z.array(z.unknown()).optional(),
103
+ parameters: z.array(Parameter).optional(),
104
+ parameter_mappings: z.array(ParameterMapping).optional(),
104
105
  result_metadata: z.array(z.unknown()).nullable().optional()
105
106
  }).loose();
106
107
  const QueryColumn = z.object({
@@ -1,9 +1,11 @@
1
- import "./command-augment-CAur0XOQ.mjs";
2
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-D5bZ5BUX.mjs";
3
- import { defineMetabaseCommand } from "./runtime-C1QgWHM7.mjs";
4
- import { renderList } from "./capabilities-BX1rnVuH.mjs";
5
- import { parseId } from "./parse-id-DNPeV0Iu.mjs";
6
- import { DashboardDetail, DashcardCompact, dashcardView } from "./dashboard-B4bn3z6t.mjs";
1
+ import "./notice-DyVl5aYB.mjs";
2
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-5H_tcfL8.mjs";
3
+ import "./command-augment-DdZIfx1V.mjs";
4
+ import { defineMetabaseCommand } from "./runtime-BJtuxWM8.mjs";
5
+ import { renderList } from "./capabilities-N0jo5U7S.mjs";
6
+ import "./parameter-CiJ4CwWE.mjs";
7
+ import { parseId } from "./parse-id-D4LeTUsP.mjs";
8
+ import { DashboardDetail, DashcardCompact, dashcardView } from "./dashboard-DOplbKyQ.mjs";
7
9
 
8
10
  //#region src/commands/dashboard/cards.ts
9
11
  const DashcardListEnvelope = listEnvelopeSchema(DashcardCompact);
package/dist/cli.mjs CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { ConfigError, flagConsumesValue, getMetabaseAugment, normalizeFlag, resolveCitty, toAliasArray } from "./command-augment-CAur0XOQ.mjs";
3
- import { connectionFlags, outputFlags, package_default, profileFlag, reportError } from "./error-D5bZ5BUX.mjs";
2
+ import { ConfigError, flagConsumesValue, normalizeFlag, resolveCitty, toAliasArray } from "./notice-DyVl5aYB.mjs";
3
+ import { connectionFlags, outputFlags, package_default, profileFlag, reportError } from "./error-5H_tcfL8.mjs";
4
+ import { getMetabaseAugment, setMetabaseAugment } from "./command-augment-DdZIfx1V.mjs";
4
5
  import { defineCommand, renderUsage, runMain } from "citty";
5
6
 
6
7
  //#region src/commands/global-flags.ts
@@ -58,32 +59,46 @@ const main = defineCommand({
58
59
  description: package_default.description
59
60
  },
60
61
  subCommands: {
61
- auth: () => import("./auth-Bkue4Psy.mjs").then((mod) => mod.default),
62
- db: () => import("./db-CmHHj5eI.mjs").then((mod) => mod.default),
63
- table: () => import("./table-COAKXNuj.mjs").then((mod) => mod.default),
64
- field: () => import("./field-B-UcqFzm.mjs").then((mod) => mod.default),
65
- card: () => import("./card-faWo9ZWU.mjs").then((mod) => mod.default),
66
- dashboard: () => import("./dashboard-pXAxJTTx.mjs").then((mod) => mod.default),
67
- collection: () => import("./collection-DcRz7fmf.mjs").then((mod) => mod.default),
68
- document: () => import("./document-DQIhL75C.mjs").then((mod) => mod.default),
69
- transform: () => import("./transform-Bto4U82j.mjs").then((mod) => mod.default),
70
- "transform-job": () => import("./transform-job-_fW1y2tg.mjs").then((mod) => mod.default),
71
- "transform-tag": () => import("./transform-tag-C8n1oTr1.mjs").then((mod) => mod.default),
72
- setting: () => import("./setting-zZjcOPyE.mjs").then((mod) => mod.default),
73
- search: () => import("./search-D7Yq2MDu.mjs").then((mod) => mod.default),
74
- "git-sync": () => import("./git-sync-CwOvcUI2.mjs").then((mod) => mod.default),
75
- setup: () => import("./setup-C47WUieB.mjs").then((mod) => mod.default),
76
- snippet: () => import("./snippet-DK0ZA8m5.mjs").then((mod) => mod.default),
77
- segment: () => import("./segment-BN8sFunv.mjs").then((mod) => mod.default),
78
- measure: () => import("./measure-BIAoqgcS.mjs").then((mod) => mod.default),
79
- eid: () => import("./eid-1mROiwJr.mjs").then((mod) => mod.default),
80
- query: () => import("./query-CxTjguwp.mjs").then((mod) => mod.default),
81
- uuid: () => import("./uuid-Dpl3ALKq.mjs").then((mod) => mod.default),
82
- upgrade: () => import("./upgrade-CNrkJF6s.mjs").then((mod) => mod.default),
83
- skills: () => import("./skills-Po0YPVU5.mjs").then((mod) => mod.default),
84
- __manifest: () => import("./manifest-DYeLri80.mjs").then((mod) => mod.createManifestCommand(main))
62
+ auth: () => import("./auth-Kv2MRkRk.mjs").then((mod) => mod.default),
63
+ db: () => import("./db-DWykmBOh.mjs").then((mod) => mod.default),
64
+ table: () => import("./table-B1iBqmNu.mjs").then((mod) => mod.default),
65
+ field: () => import("./field-CFt1-KDR.mjs").then((mod) => mod.default),
66
+ card: () => import("./card-Bp58WEUF.mjs").then((mod) => mod.default),
67
+ dashboard: () => import("./dashboard-C9pQCnX6.mjs").then((mod) => mod.default),
68
+ collection: () => import("./collection-D8TI20Ir.mjs").then((mod) => mod.default),
69
+ library: () => import("./library-B5AvpACG.mjs").then((mod) => mod.default),
70
+ document: () => import("./document-DNDm8_Py.mjs").then((mod) => mod.default),
71
+ transform: () => import("./transform-BuIooRQh.mjs").then((mod) => mod.default),
72
+ "transform-job": () => import("./transform-job-C3yz0krA.mjs").then((mod) => mod.default),
73
+ "transform-tag": () => import("./transform-tag-CJD6mJUe.mjs").then((mod) => mod.default),
74
+ setting: () => import("./setting-DHYO-W5g.mjs").then((mod) => mod.default),
75
+ search: () => import("./search-vaT5EwhG.mjs").then((mod) => mod.default),
76
+ "git-sync": () => import("./git-sync-ByvjqSiy.mjs").then((mod) => mod.default),
77
+ setup: () => import("./setup-D1de5Sbc.mjs").then((mod) => mod.default),
78
+ snippet: () => import("./snippet-DtLmHr2J.mjs").then((mod) => mod.default),
79
+ segment: () => import("./segment-BPC725mo.mjs").then((mod) => mod.default),
80
+ measure: () => import("./measure-CgFwtL1r.mjs").then((mod) => mod.default),
81
+ eid: () => import("./eid-p-zn_1RJ.mjs").then((mod) => mod.default),
82
+ query: () => import("./query-BWJ5h1g3.mjs").then((mod) => mod.default),
83
+ uuid: () => import("./uuid-D6JVJ-R1.mjs").then((mod) => mod.default),
84
+ upgrade: () => import("./upgrade-CBW8V9qZ.mjs").then((mod) => mod.default),
85
+ skills: () => import("./skills-NhgVypJ7.mjs").then((mod) => mod.default),
86
+ __manifest: () => import("./manifest-BVf8P4bl.mjs").then((mod) => mod.createManifestCommand(main))
85
87
  }
86
88
  });
89
+ setMetabaseAugment(main, {
90
+ examples: [],
91
+ details: null,
92
+ skills: [{
93
+ skill: "core",
94
+ purpose: "auth, conventions, and per-resource footguns"
95
+ }, {
96
+ skill: "data-workflow",
97
+ purpose: "guided end-to-end: raw data → clean tables → metrics → answers → dashboards"
98
+ }],
99
+ outputSchema: null,
100
+ capabilities: null
101
+ });
87
102
  var main_default = main;
88
103
 
89
104
  //#endregion
@@ -102,6 +117,8 @@ const CLI_NAME = "mb";
102
117
  const HELP_FLAG_SPEC = "-h, --help";
103
118
  const HELP_FLAG_DESCRIPTION = "Show help for this command";
104
119
  const GETTING_STARTED_HINT = `First time? Run \`${CLI_NAME} auth login\` to connect to a Metabase instance.`;
120
+ const SKILLS_HEADER = "AGENT SKILLS";
121
+ const SKILLS_LIST_ITEM = `${CLI_NAME} skills list — every bundled skill`;
105
122
  async function showUsage(cmd, parent, breadcrumb) {
106
123
  const raw = (await renderUsage(cmd, parent)).replace(ANSI_PATTERN, "");
107
124
  const lines = raw.split("\n").map((line) => line.replace(TRAILING_WHITESPACE, ""));
@@ -114,6 +131,7 @@ async function showUsage(cmd, parent, breadcrumb) {
114
131
  const augment = getMetabaseAugment(cmd);
115
132
  const details = augment?.details ?? null;
116
133
  const examples = augment?.examples ?? [];
134
+ const skills = augment?.skills ?? [];
117
135
  const transformed = transformBody(lines, {
118
136
  cittyName,
119
137
  breadcrumb: breadcrumb ?? cittyName,
@@ -122,6 +140,7 @@ async function showUsage(cmd, parent, breadcrumb) {
122
140
  const body = withDetails(transformed, details).join("\n").trimEnd();
123
141
  const sections = [body];
124
142
  if (examples.length > 0) sections.push(renderExamples(examples));
143
+ if (skills.length > 0) sections.push(renderSkillsSection(skills, isRoot));
125
144
  if (isRoot) sections.push(GETTING_STARTED_HINT);
126
145
  process.stdout.write(sections.join("\n\n") + "\n");
127
146
  }
@@ -173,6 +192,15 @@ function optionLayout(row) {
173
192
  descStart: flagEnd + gapRemainder
174
193
  };
175
194
  }
195
+ function renderSkillsSection(skills, includeListPointer) {
196
+ const items = skills.map((p) => `${LINE_PREFIX}mb skills get ${p.skill} — ${p.purpose}`);
197
+ if (includeListPointer) items.push(`${LINE_PREFIX}${SKILLS_LIST_ITEM}`);
198
+ return [
199
+ SKILLS_HEADER,
200
+ "",
201
+ ...items
202
+ ].join("\n");
203
+ }
176
204
  function withDetails(lines, details) {
177
205
  if (details === null) return lines;
178
206
  const [first, ...rest] = lines;
@@ -0,0 +1,23 @@
1
+ import "./command-augment-DdZIfx1V.mjs";
2
+ import { defineCommandGroup } from "./group-BNE_RiH5.mjs";
3
+
4
+ //#region src/commands/collection/index.ts
5
+ var collection_default = defineCommandGroup({
6
+ name: "collection",
7
+ description: "Manage Metabase collections",
8
+ skills: [{
9
+ skill: "core",
10
+ purpose: "collection ref forms and the transforms namespace"
11
+ }],
12
+ subCommands: {
13
+ list: () => import("./list-C4bALfCs.mjs").then((mod) => mod.default),
14
+ get: () => import("./get-4lufgahL.mjs").then((mod) => mod.default),
15
+ items: () => import("./items-CQtt9X4M.mjs").then((mod) => mod.default),
16
+ tree: () => import("./tree-D18vYSe4.mjs").then((mod) => mod.default),
17
+ create: () => import("./create-B79M8YpX.mjs").then((mod) => mod.default),
18
+ archive: () => import("./archive-DS-KEB4a.mjs").then((mod) => mod.default)
19
+ }
20
+ });
21
+
22
+ //#endregion
23
+ export { collection_default as default };
@@ -1,5 +1,5 @@
1
- import { ConfigError } from "./command-augment-CAur0XOQ.mjs";
2
- import { HttpError } from "./runtime-C1QgWHM7.mjs";
1
+ import { ConfigError } from "./notice-DyVl5aYB.mjs";
2
+ import { HttpError } from "./runtime-BJtuxWM8.mjs";
3
3
 
4
4
  //#region src/commands/transform/collection-namespace.ts
5
5
  const TRANSFORMS_NAMESPACE_HINT = "transforms can only be filed in a :transforms-namespace collection. Create one with `mb collection create --body '{\"name\":\"…\"}' --namespace transforms` and pass its id as collection_id, or omit collection_id to leave the transform uncollected.";