@metabase/cli 0.1.6 → 0.1.8

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 (195) hide show
  1. package/README.md +14 -14
  2. package/dist/{add-collection-BU8r3r2M.mjs → add-collection-CwrbKmC1.mjs} +8 -6
  3. package/dist/add-collection-DxtuNxeP.mjs +11 -0
  4. package/dist/{archive-DMPS8Kih.mjs → archive-BAjGIzhn.mjs} +7 -7
  5. package/dist/{archive-C1enZgKV.mjs → archive-BO3DOWI4.mjs} +6 -6
  6. package/dist/{archive-CRhiBpPJ.mjs → archive-BpKZsGAm.mjs} +7 -7
  7. package/dist/{archive-lWgqiFAt.mjs → archive-BzvqQd34.mjs} +6 -6
  8. package/dist/{archive-CDA0KxL8.mjs → archive-DqUtqRut.mjs} +6 -6
  9. package/dist/{archive-BNinrUak.mjs → archive-ZnnJc2iT.mjs} +7 -7
  10. package/dist/auth-B9B4pUaH.mjs +19 -0
  11. package/dist/{body-DjdFxjpg.mjs → body-DDYKoyMt.mjs} +1 -1
  12. package/dist/{branches-B1WRfG7-.mjs → branches-DjiGsjAz.mjs} +5 -5
  13. package/dist/{cancel-Dl_Ho056.mjs → cancel-BwtDQ2MR.mjs} +6 -6
  14. package/dist/{cancel-task-CdigdCaO.mjs → cancel-task-uJp18RvR.mjs} +6 -6
  15. package/dist/card-D54unw6r.mjs +20 -0
  16. package/dist/{card-DlCAaAPq.mjs → card-ezYiriML.mjs} +1 -1
  17. package/dist/{cards-BGiJS675.mjs → cards-z68PANDD.mjs} +5 -5
  18. package/dist/cli.mjs +24 -24
  19. package/dist/collection-B5kIKRTL.mjs +20 -0
  20. package/dist/{create-BYlIju0b.mjs → create-4EAGYVyp.mjs} +7 -7
  21. package/dist/{create-BTcpaop_.mjs → create-6XE7GYxk.mjs} +6 -6
  22. package/dist/{create-BNiva__H.mjs → create-7JOWFxqu.mjs} +8 -8
  23. package/dist/{create-dhxPxfF3.mjs → create-BzK59YlR.mjs} +10 -10
  24. package/dist/{create-CHF313Qg.mjs → create-C8gA-XP2.mjs} +8 -6
  25. package/dist/{create-DGth_uOp.mjs → create-CQ4Vg4Ge.mjs} +7 -7
  26. package/dist/{create-CwGtmwqm.mjs → create-DHWfmO2L.mjs} +7 -7
  27. package/dist/{create-CzzrbL0u.mjs → create-Dd_Gyg_F.mjs} +6 -6
  28. package/dist/{create-Be_0Vier.mjs → create-GVfCQU3B.mjs} +6 -6
  29. package/dist/{create-branch-DKZkoQ64.mjs → create-branch-CdWGiREu.mjs} +6 -6
  30. package/dist/{credentials-dzeq7ckm.mjs → credentials-CFA9iGZG.mjs} +9 -9
  31. package/dist/{current-task-CCRzm0_7.mjs → current-task-nPs-iCLi.mjs} +7 -7
  32. package/dist/dashboard-lw6IFfOs.mjs +21 -0
  33. package/dist/{database-CIXwHKjK.mjs → database-BPT6BrmF.mjs} +3 -3
  34. package/dist/{database-lH-B3G1I.mjs → database-BXiue1in.mjs} +1 -1
  35. package/dist/db-CBCj8sBg.mjs +22 -0
  36. package/dist/{delete-ZjnV35OJ.mjs → delete-CJqLgr6w.mjs} +7 -5
  37. package/dist/{delete-CM3jnAeQ.mjs → delete-CiV6f69N.mjs} +12 -8
  38. package/dist/{delete-Dimc-2y8.mjs → delete-Do1agSiL.mjs} +7 -5
  39. package/dist/{delete-runtime-B6RQo_pw.mjs → delete-runtime-uuYbd4k2.mjs} +5 -5
  40. package/dist/{delete-table-agZJpivt.mjs → delete-table-ZiJDpMFT.mjs} +7 -5
  41. package/dist/{deprovision-CwxcIT3k.mjs → deprovision-C-qEnh-P.mjs} +11 -9
  42. package/dist/{dirty-D4d0yHqj.mjs → dirty-BnTG7w7v.mjs} +5 -5
  43. package/dist/{docker-Oq80q3tu.mjs → docker-B-QQWThD.mjs} +3 -3
  44. package/dist/{eid-BXzaQh0o.mjs → eid-CwQ_smOD.mjs} +10 -5
  45. package/dist/{error-C9S6PN3-.mjs → error-CTVL5CdB.mjs} +3 -2
  46. package/dist/{export-DTygoXBP.mjs → export-DR2cC4rL.mjs} +10 -9
  47. package/dist/field-DJmQ2pul.mjs +18 -0
  48. package/dist/{field-yomXlkvl.mjs → field-E0IBy4Uw.mjs} +12 -3
  49. package/dist/{fields-CoQi99gv.mjs → fields-Ck31lDz9.mjs} +6 -6
  50. package/dist/{get-C3HdQ91a.mjs → get-BFJ3VBPa.mjs} +5 -5
  51. package/dist/{get-DSWFjy7O.mjs → get-BNKsNCcx.mjs} +5 -5
  52. package/dist/{get-C2p383Qc.mjs → get-BPOd0Rm8.mjs} +5 -5
  53. package/dist/{get-CzuzeKSe.mjs → get-BZiu-u-9.mjs} +7 -7
  54. package/dist/{get-Bzys7vgp.mjs → get-C71ypFQk.mjs} +5 -5
  55. package/dist/{get-C_w1kvN3.mjs → get-CICzGFSW.mjs} +6 -6
  56. package/dist/{get-CP3Z3NiH.mjs → get-CyG_P55z.mjs} +6 -6
  57. package/dist/{get-lb7q3JYs.mjs → get-DauAF3sm.mjs} +5 -5
  58. package/dist/{get-DQTZG_NP.mjs → get-DxqzDKKK.mjs} +5 -5
  59. package/dist/{get-D3SbEQSE.mjs → get-DyArILlF.mjs} +6 -6
  60. package/dist/{get-Ddr0XLh7.mjs → get-F338MOK-.mjs} +5 -5
  61. package/dist/{get-DFxZXaKz.mjs → get-GWRprk7k.mjs} +5 -5
  62. package/dist/{get-Hc93A0Yz.mjs → get-pO0wiy1e.mjs} +5 -5
  63. package/dist/{get-run-B7sKdaDU.mjs → get-run-DhM_PyVy.mjs} +5 -5
  64. package/dist/git-sync-rmjYOGFK.mjs +28 -0
  65. package/dist/{has-remote-changes-BY10-nnE.mjs → has-remote-changes-Ca0exJmb.mjs} +7 -6
  66. package/dist/{import-CiMz4Wz-.mjs → import-DjclIzGP.mjs} +11 -9
  67. package/dist/{is-dirty-BZOaryxT.mjs → is-dirty-Cke0a1ie.mjs} +5 -5
  68. package/dist/is-dirty-DFGgGLDi.mjs +10 -0
  69. package/dist/{items-BWfvkY-J.mjs → items-BSpapmCU.mjs} +7 -7
  70. package/dist/{license-Dxarh-gG.mjs → license-j0tDQLKI.mjs} +3 -3
  71. package/dist/{list-Brgh-Z2v.mjs → list-BI1PfPjn.mjs} +4 -4
  72. package/dist/{list-D4sFiqX8.mjs → list-BRXGDSMo.mjs} +5 -5
  73. package/dist/{list-DXH7TlkU.mjs → list-Br77Mw6U.mjs} +4 -4
  74. package/dist/{list-sD5N3fGk.mjs → list-Brt4oKO7.mjs} +6 -6
  75. package/dist/{list--OYdUTtu.mjs → list-CEE9yKNp.mjs} +4 -4
  76. package/dist/{list-DZ8fNUoQ.mjs → list-D1qhCQn0.mjs} +6 -6
  77. package/dist/{list-SOG0whQ-.mjs → list-DUyWON1F.mjs} +4 -4
  78. package/dist/{list-Clz5igWg.mjs → list-DWWGcUTg.mjs} +5 -5
  79. package/dist/{list-CL7eCOQE.mjs → list-DmO4ADQq.mjs} +4 -4
  80. package/dist/{list-BI4zr8LW.mjs → list-Fjjtpghb.mjs} +5 -5
  81. package/dist/{list-2j7GsXsl.mjs → list-V5IuMr_5.mjs} +4 -4
  82. package/dist/{list-C3hfovHv.mjs → list-bVlCwg8g.mjs} +4 -4
  83. package/dist/{list-zSO0DMw-.mjs → list-evetBTcH.mjs} +4 -4
  84. package/dist/{list-d58BprgJ.mjs → list-fIV-P6wP.mjs} +4 -4
  85. package/dist/{login-Bm2AnCez.mjs → login-BJGhZLgZ.mjs} +13 -9
  86. package/dist/{logout-BlyRJODO.mjs → logout-BAGLqtnV.mjs} +8 -7
  87. package/dist/{logs-CywPikkL.mjs → logs-jx5b_YDk.mjs} +6 -6
  88. package/dist/{manifest-BBR46KFM.mjs → manifest-BNh0Lw6p.mjs} +1 -1
  89. package/dist/measure-BfgxqewH.mjs +19 -0
  90. package/dist/{metadata-DqiI2q9q.mjs → metadata-B-GOcWqL.mjs} +6 -6
  91. package/dist/{metadata-B8ZSF9LA.mjs → metadata-DJAdsOoh.mjs} +7 -7
  92. package/dist/{parse-id-lk_K-CEF.mjs → parse-id-D1LTTt9L.mjs} +1 -1
  93. package/dist/{parse-schemas-BqUdWUwq.mjs → parse-schemas-DDK9nXuh.mjs} +1 -1
  94. package/dist/{path-AEtZ3mBq.mjs → path-D5kX-msX.mjs} +5 -5
  95. package/dist/{poll-DHKDpCiq.mjs → poll-DxpnK1wW.mjs} +1 -1
  96. package/dist/{poll-task-Cooi0lQV.mjs → poll-task-D8mG49IN.mjs} +19 -3
  97. package/dist/{preflight-aXV5LyDs.mjs → preflight-Df_FqJ6o.mjs} +3 -3
  98. package/dist/{provision-UWcNDoDe.mjs → provision-BJd6zO1D.mjs} +12 -11
  99. package/dist/ps-CpyHEvv7.mjs +11 -0
  100. package/dist/{ps-CJU0EbrC.mjs → ps-dEqRGeB3.mjs} +4 -4
  101. package/dist/{query-BlsVNZpD.mjs → query-OIuumiXN.mjs} +9 -8
  102. package/dist/query-result-ABPLz6I4.mjs +19 -0
  103. package/dist/{query-AaKzYnTY.mjs → query-zWFRDH3T.mjs} +9 -7
  104. package/dist/{remove-BFWun0e8.mjs → remove-BNQ1c6hB.mjs} +8 -7
  105. package/dist/{remove-collection-CoCmrrQs.mjs → remove-collection-BxmiXWKz.mjs} +10 -8
  106. package/dist/{render-CfznwleY.mjs → render-0_GsapXa.mjs} +39 -9
  107. package/dist/{render-OQn3iRsI.mjs → render-khznBlla.mjs} +1 -1
  108. package/dist/{rescan-values-C0FDsjT7.mjs → rescan-values-M7g81KIl.mjs} +9 -9
  109. package/dist/{run-B4Wn43zm.mjs → run-DTsx8bLb.mjs} +14 -13
  110. package/dist/{runs-Bbaszr18.mjs → runs-CqfJIuh_.mjs} +6 -6
  111. package/dist/{runtime-Dmv5VtUK.mjs → runtime-B40L_bj8.mjs} +7 -11
  112. package/dist/{schema-tables-CaWinbuK.mjs → schema-tables-CjBRF0_0.mjs} +6 -6
  113. package/dist/{schemas-DUgGpAyB.mjs → schemas-GIIbek2O.mjs} +4 -4
  114. package/dist/{search-BLrBXLUk.mjs → search-h78uOYec.mjs} +4 -4
  115. package/dist/segment-CoElN2b-.mjs +19 -0
  116. package/dist/{set-DfGsta5O.mjs → set-BRDxcLcQ.mjs} +8 -7
  117. package/dist/{set-B8cUbRLD.mjs → set-Dclba9xF.mjs} +4 -4
  118. package/dist/setting-mKzZJpQY.mjs +17 -0
  119. package/dist/{setup-C9ikBRw_.mjs → setup-WTIT2WbM.mjs} +5 -5
  120. package/dist/{skills-CiN1OQ8W.mjs → skills-BkregMyb.mjs} +1 -1
  121. package/dist/{skills-CUHIcQS6.mjs → skills-tMYd5d9v.mjs} +3 -3
  122. package/dist/snippet-B84H3tfp.mjs +19 -0
  123. package/dist/{start-3PX3ahjT.mjs → start-B7ByBicB.mjs} +12 -11
  124. package/dist/{stash-EIDcSvpF.mjs → stash-DxoAJzcK.mjs} +11 -9
  125. package/dist/{status-B0_MiZEf.mjs → status-B1dc3bbQ.mjs} +4 -4
  126. package/dist/{status-95ElRAu9.mjs → status-D0Ukfodl.mjs} +10 -7
  127. package/dist/{status-CEplmC44.mjs → status-DAzD1Cn_.mjs} +4 -4
  128. package/dist/{stop-CQ0XGrN8.mjs → stop-Cvexagxh.mjs} +13 -9
  129. package/dist/{summary-C12LiEuJ.mjs → summary-3qOMUcEX.mjs} +5 -5
  130. package/dist/{sync-schema-Ba8M3DiX.mjs → sync-schema-CrmVX1cy.mjs} +9 -9
  131. package/dist/table-B0fRQv91.mjs +19 -0
  132. package/dist/{table-C7a5V6Zn.mjs → table-qDD2kApF.mjs} +1 -1
  133. package/dist/transform-K_kp6Rdm.mjs +24 -0
  134. package/dist/transform-job-CuNN8zgv.mjs +19 -0
  135. package/dist/{tree-Des2ZG9d.mjs → tree-DsnIPFyE.mjs} +4 -4
  136. package/dist/{update-F6DmZncY.mjs → update-BEtl9LpG.mjs} +7 -7
  137. package/dist/{update-njHe3j-s.mjs → update-BRLcnSwK.mjs} +8 -8
  138. package/dist/{update-Bx54nWEI.mjs → update-Baya6OkO.mjs} +10 -10
  139. package/dist/{update-DBi5U8zb.mjs → update-BsgHRoZ8.mjs} +9 -9
  140. package/dist/{update-CyIZdbIQ.mjs → update-CLsqoEJ8.mjs} +7 -7
  141. package/dist/{update-_QfgNa53.mjs → update-CZEd_Eej.mjs} +8 -8
  142. package/dist/{update-mYVnoYNV.mjs → update-DPouQi4U.mjs} +8 -8
  143. package/dist/{update-DSgceARZ.mjs → update-DWn-nLPo.mjs} +7 -7
  144. package/dist/{update-DzAN4SPj.mjs → update-UaPqSfPN.mjs} +8 -8
  145. package/dist/{update-dashcard-wpSjv4M7.mjs → update-dashcard-DK9X91ha.mjs} +7 -7
  146. package/dist/{update-DHZubok3.mjs → update-hiJdbbsb.mjs} +12 -11
  147. package/dist/{upgrade-iAuvhX-W.mjs → upgrade-UqdvTikR.mjs} +11 -25
  148. package/dist/{url-DWaT6WIZ.mjs → url-LMJZRDv4.mjs} +8 -8
  149. package/dist/{uuid-CMKnS8-z.mjs → uuid-BWCaWG4O.mjs} +3 -3
  150. package/dist/{validate-query-Cw6WE5Y8.mjs → validate-query-CYvOP8Ld.mjs} +1 -1
  151. package/dist/{values-BfSTAbzc.mjs → values-D_wycrcr.mjs} +14 -6
  152. package/dist/{verify-D5YtTqqp.mjs → verify-D7hb6VMy.mjs} +1 -1
  153. package/dist/{wait-Bv3Tsnv4.mjs → wait-B5IpNFCG.mjs} +8 -8
  154. package/dist/{wait-8yV9_WIo.mjs → wait-DHjXk3jD.mjs} +2 -2
  155. package/dist/{wait-flags-Dzq9BGQY.mjs → wait-flags-CNIeSq0_.mjs} +2 -2
  156. package/dist/workspace-Bt8n3ojY.mjs +25 -0
  157. package/dist/{workspace-credentials-BXpABsNZ.mjs → workspace-credentials-8CBMQJFz.mjs} +1 -1
  158. package/package.json +1 -1
  159. package/skill-data/visualization/SKILL.md +158 -0
  160. package/skill-data/visualization/references/settings.md +414 -0
  161. package/dist/add-collection-C0w6ACQF.mjs +0 -11
  162. package/dist/auth-CzXb_zB2.mjs +0 -19
  163. package/dist/card-DP4rfoOi.mjs +0 -21
  164. package/dist/collection-tY18ezvn.mjs +0 -21
  165. package/dist/dashboard-ChM_Tu0l.mjs +0 -22
  166. package/dist/db-DrQn_i3W.mjs +0 -22
  167. package/dist/field-Z6Pcxf4n.mjs +0 -19
  168. package/dist/git-sync-CiGAad76.mjs +0 -28
  169. package/dist/is-dirty-Ume4oV0j.mjs +0 -10
  170. package/dist/measure-C44EK_xt.mjs +0 -20
  171. package/dist/ps-DEroLgbI.mjs +0 -11
  172. package/dist/segment-B3Uwwcsm.mjs +0 -20
  173. package/dist/setting-D2p2MA7f.mjs +0 -18
  174. package/dist/snippet-B7D0uWlz.mjs +0 -20
  175. package/dist/table-e6h8SLVX.mjs +0 -20
  176. package/dist/transform-BMYh1lsC.mjs +0 -25
  177. package/dist/transform-job-Cm7z5TfH.mjs +0 -20
  178. package/dist/workspace-CKLZrR7l.mjs +0 -26
  179. package/skill-data/viz/SKILL.md +0 -137
  180. package/skill-data/viz/references/settings.md +0 -312
  181. /package/dist/{collection-B3sPXRLs.mjs → collection-Bcy8cWYH.mjs} +0 -0
  182. /package/dist/{dashboard-FY5UzJ_Z.mjs → dashboard-B4bn3z6t.mjs} +0 -0
  183. /package/dist/{key-C2XG394c.mjs → key-vkNkH82H.mjs} +0 -0
  184. /package/dist/{measure-ClESGxIb.mjs → measure-Bt3InQsA.mjs} +0 -0
  185. /package/dist/{paginate-Dfm9eO9A.mjs → paginate-BexjkjbY.mjs} +0 -0
  186. /package/dist/{parse-ref-BiETXmvm.mjs → parse-ref-DKag6a6I.mjs} +0 -0
  187. /package/dist/{process-C7V8LJ-j.mjs → process-CM7Uu5q_.mjs} +0 -0
  188. /package/dist/{revision-message-flag-WmsIzUOM.mjs → revision-message-flag-DY29-cgz.mjs} +0 -0
  189. /package/dist/{segment-Be2v4ilr.mjs → segment-DhBmcr_E.mjs} +0 -0
  190. /package/dist/{setting-oL97SNeO.mjs → setting-BzCng1Ub.mjs} +0 -0
  191. /package/dist/{snippet-COggaWxx.mjs → snippet-bi_0XbNT.mjs} +0 -0
  192. /package/dist/{transform-GTW3G-01.mjs → transform-BKahefz_.mjs} +0 -0
  193. /package/dist/{transform-job-DeTDPMxt.mjs → transform-job-DjhoJbiV.mjs} +0 -0
  194. /package/dist/{workspace-BBXJczJK.mjs → workspace-D8HtUN0y.mjs} +0 -0
  195. /package/dist/{yaml-YTQiYJ9s.mjs → yaml-Gv6wRFMF.mjs} +0 -0
@@ -81,17 +81,33 @@ function setPath(target, parts, value) {
81
81
 
82
82
  //#endregion
83
83
  //#region src/output/table.ts
84
+ const PLAIN_TABLE_STYLE = {
85
+ head: [],
86
+ border: []
87
+ };
84
88
  function renderTable(rows, columns) {
85
89
  const head = columns.map((column) => column.label ?? column.key);
86
90
  const widths = columns.map((column) => column.width ?? null);
87
91
  const hasWidth = widths.some((width) => width !== null);
88
92
  const table = new Table(hasWidth ? {
89
93
  head,
90
- colWidths: widths
91
- } : { head });
94
+ colWidths: widths,
95
+ style: PLAIN_TABLE_STYLE
96
+ } : {
97
+ head,
98
+ style: PLAIN_TABLE_STYLE
99
+ });
92
100
  for (const row of rows) table.push(columns.map((column) => formatCell(row, column)));
93
101
  return table.toString();
94
102
  }
103
+ function renderRows(head, rows) {
104
+ const table = new Table({
105
+ head: [...head],
106
+ style: PLAIN_TABLE_STYLE
107
+ });
108
+ for (const row of rows) table.push([...row]);
109
+ return table.toString();
110
+ }
95
111
  function formatCell(row, column) {
96
112
  const value = row[column.key];
97
113
  if (column.format !== void 0) return column.format(value);
@@ -117,17 +133,17 @@ function renderItem(item, view, opts) {
117
133
  assertItemWithinMaxBytes(body, opts.maxBytes);
118
134
  process.stdout.write(body);
119
135
  }
120
- function renderScalar(item, view, scalarText, opts) {
136
+ function renderSummary(item, view, summaryText, opts) {
121
137
  if (opts.format === "json" || opts.fields !== void 0 || opts.full) {
122
138
  renderItem(item, view, opts);
123
139
  return;
124
140
  }
125
- const body = scalarText + "\n";
141
+ const body = (typeof summaryText === "function" ? summaryText() : summaryText) + "\n";
126
142
  assertItemWithinMaxBytes(body, opts.maxBytes);
127
143
  process.stdout.write(body);
128
144
  }
129
145
  function renderList(envelope, view, opts) {
130
- if (opts.format === "json" || opts.fields !== void 0) {
146
+ if (opts.format === "json") {
131
147
  renderJsonEnvelope(envelope, view, opts);
132
148
  return;
133
149
  }
@@ -135,10 +151,24 @@ function renderList(envelope, view, opts) {
135
151
  process.stdout.write("(no results)\n");
136
152
  return;
137
153
  }
154
+ if (opts.fields !== void 0) {
155
+ renderProjectedTable(envelope, view, opts.fields, opts.maxBytes);
156
+ return;
157
+ }
138
158
  const capped = capListEnvelope(envelope, opts.maxBytes);
139
159
  process.stdout.write(renderTable(capped.data, view.tableColumns) + "\n");
140
160
  if (capped.truncated !== void 0) warn(listTruncationNotice(capped.truncated.bytes));
141
161
  }
162
+ function renderProjectedTable(envelope, view, fields, maxBytes) {
163
+ const projectedItems = envelope.data.map((item) => applyProjection(item, view, false, fields));
164
+ const capped = capListEnvelope({
165
+ ...envelope,
166
+ data: projectedItems
167
+ }, maxBytes);
168
+ const rows = capped.data.map((item) => fields.map((path) => formatScalar(pickPath(item, path.split(".")))));
169
+ process.stdout.write(renderRows(fields, rows) + "\n");
170
+ if (capped.truncated !== void 0) warn(listTruncationNotice(capped.truncated.bytes));
171
+ }
142
172
  function renderJsonEnvelope(envelope, view, opts) {
143
173
  const projectedItems = envelope.data.map((item) => applyProjection(item, view, opts.full, opts.fields));
144
174
  const projectedEnvelope = {
@@ -150,9 +180,9 @@ function renderJsonEnvelope(envelope, view, opts) {
150
180
  if (capped.truncated !== void 0) warn(listTruncationNotice(capped.truncated.bytes));
151
181
  }
152
182
  function renderItemBody(item, view, projected, opts) {
153
- if (opts.format === "json" || opts.fields !== void 0) return JSON.stringify(projected, null, 2);
154
- if (!opts.full) return renderKeyValueLines(columnPairs(item, view.tableColumns));
155
- return renderKeyValueLines(objectPairs(projected));
183
+ if (opts.format === "json") return JSON.stringify(projected, null, 2);
184
+ if (opts.fields !== void 0 || opts.full) return renderKeyValueLines(objectPairs(projected));
185
+ return renderKeyValueLines(columnPairs(item, view.tableColumns));
156
186
  }
157
187
  function columnPairs(item, columns) {
158
188
  return columns.map((column) => [column.label ?? column.key, formatCell(item, column)]);
@@ -177,4 +207,4 @@ function assertItemWithinMaxBytes(body, maxBytes) {
177
207
  }
178
208
 
179
209
  //#endregion
180
- export { formatScalar, renderItem, renderList, renderScalar, writeJson, writeText };
210
+ export { formatScalar, renderItem, renderList, renderRows, renderSummary, writeJson, writeText };
@@ -29,4 +29,4 @@ function renderTimestamp(value) {
29
29
  }
30
30
 
31
31
  //#endregion
32
- export { renderTimestamp, renderUserName, renderUserRole, renderVersionTag };
32
+ export { EMPTY_CELL, renderTimestamp, renderUserName, renderUserRole, renderVersionTag };
@@ -1,12 +1,12 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
4
4
  import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import "./field-yomXlkvl.mjs";
7
- import { parseId } from "./parse-id-lk_K-CEF.mjs";
8
- import "./table-C7a5V6Zn.mjs";
9
- import { DatabaseSyncResult, databaseSyncResultView } from "./database-lH-B3G1I.mjs";
5
+ import { renderSummary } from "./render-0_GsapXa.mjs";
6
+ import "./field-E0IBy4Uw.mjs";
7
+ import { parseId } from "./parse-id-D1LTTt9L.mjs";
8
+ import "./table-qDD2kApF.mjs";
9
+ import { DatabaseSyncResult, databaseSyncResultView } from "./database-BXiue1in.mjs";
10
10
  import { z } from "zod";
11
11
 
12
12
  //#region src/commands/db/rescan-values.ts
@@ -33,10 +33,10 @@ var rescan_values_default = defineMetabaseCommand({
33
33
  const id = parseId(args.id);
34
34
  const client = await getClient();
35
35
  const response = await client.requestParsed(RescanValuesApiResponse, `/api/database/${id}/rescan_values`, { method: "POST" });
36
- renderItem({
36
+ renderSummary({
37
37
  id,
38
38
  status: response.status
39
- }, databaseSyncResultView, ctx);
39
+ }, databaseSyncResultView, `Field-values rescan queued for database ${id}.`, ctx);
40
40
  }
41
41
  });
42
42
 
@@ -1,12 +1,12 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
4
4
  import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import { parseId } from "./parse-id-lk_K-CEF.mjs";
7
- import { pollUntil } from "./poll-DHKDpCiq.mjs";
8
- import { parseWaitFlags, waitFlags } from "./wait-flags-Dzq9BGQY.mjs";
9
- import { TransformRun } from "./transform-GTW3G-01.mjs";
5
+ import { renderSummary } from "./render-0_GsapXa.mjs";
6
+ import { parseId } from "./parse-id-D1LTTt9L.mjs";
7
+ import { pollUntil } from "./poll-DxpnK1wW.mjs";
8
+ import { parseWaitFlags, waitFlags } from "./wait-flags-CNIeSq0_.mjs";
9
+ import { TransformRun } from "./transform-BKahefz_.mjs";
10
10
  import { z } from "zod";
11
11
 
12
12
  //#region src/commands/transform/run.ts
@@ -65,28 +65,29 @@ var run_default = defineMetabaseCommand({
65
65
  const client = await getClient();
66
66
  const kickoff = await client.requestParsed(TransformRunKickoff, `/api/transform/${id}/run`, { method: "POST" });
67
67
  if (!wait.enabled) {
68
- renderItem({
68
+ const started = kickoff.run_id === null ? kickoff.message : `Started run ${kickoff.run_id} for transform ${id}.`;
69
+ renderSummary({
69
70
  message: kickoff.message,
70
71
  run_id: kickoff.run_id,
71
72
  final: null
72
- }, transformRunResultView, ctx);
73
+ }, transformRunResultView, started, ctx);
73
74
  return;
74
75
  }
75
76
  if (kickoff.run_id === null) {
76
- renderItem({
77
+ renderSummary({
77
78
  message: kickoff.message,
78
79
  run_id: null,
79
80
  final: null
80
- }, transformRunResultView, ctx);
81
+ }, transformRunResultView, kickoff.message, ctx);
81
82
  throw new Error(`transform run did not start: ${kickoff.message}`);
82
83
  }
83
84
  const runId = kickoff.run_id;
84
85
  const final = await pollUntil(async () => client.requestParsed(TransformRun, `/api/transform/run/${runId}`), (run) => RUN_TERMINAL_STATUSES.has(run.status), wait.schedule);
85
- renderItem({
86
+ renderSummary({
86
87
  message: kickoff.message,
87
88
  run_id: runId,
88
89
  final
89
- }, transformRunResultView, ctx);
90
+ }, transformRunResultView, `Run ${runId} of transform ${id} ${final.status}.`, ctx);
90
91
  if (RUN_FAILURE_STATUSES.has(final.status)) throw new Error(`transform run ${runId} ${final.status}`);
91
92
  }
92
93
  });
@@ -1,11 +1,11 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
2
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
4
4
  import "./capabilities-7e9MgquN.mjs";
5
- import { renderList } from "./render-CfznwleY.mjs";
6
- import { parseId } from "./parse-id-lk_K-CEF.mjs";
7
- import { collectPaginated } from "./paginate-Dfm9eO9A.mjs";
8
- import { TransformRun, TransformRunCompact, transformRunView } from "./transform-GTW3G-01.mjs";
5
+ import { renderList } from "./render-0_GsapXa.mjs";
6
+ import { parseId } from "./parse-id-D1LTTt9L.mjs";
7
+ import { collectPaginated } from "./paginate-BexjkjbY.mjs";
8
+ import { TransformRun, TransformRunCompact, transformRunView } from "./transform-BKahefz_.mjs";
9
9
 
10
10
  //#region src/commands/transform/runs.ts
11
11
  const TransformRunListEnvelope = listEnvelopeSchema(TransformRunCompact);
@@ -1,5 +1,5 @@
1
1
  import { AbortError, ConfigError, MetabaseError, NetworkError, ResponseShapeError, TimeoutError, ValidationError, errorMessage, flagConsumesValue, isNotFoundError, normalizeFlag, setMetabaseAugment, toAliasArray } from "./command-augment-BH9qgQ5u.mjs";
2
- import { DEFAULT_MAX_BYTES, package_default, reportError } from "./error-C9S6PN3-.mjs";
2
+ import { DEFAULT_MAX_BYTES, package_default, reportError } from "./error-CTVL5CdB.mjs";
3
3
  import { BASELINE_CAPABILITIES, isPlainObject, warn } from "./capabilities-7e9MgquN.mjs";
4
4
  import { defineCommand } from "citty";
5
5
  import { z } from "zod";
@@ -885,10 +885,6 @@ async function readBodyForError(response) {
885
885
  //#region src/core/version/probe.ts
886
886
  const PROBE_PATH = "/api/session/properties";
887
887
  const PROBE_TIMEOUT_MS = 1e4;
888
- const EMPTY_SERVER_INFO = Object.freeze({
889
- version: null,
890
- tokenFeatures: null
891
- });
892
888
  async function probeServer(client, opts = {}) {
893
889
  const properties = await client.requestParsed(SessionProperties, PROBE_PATH, {
894
890
  timeoutMs: PROBE_TIMEOUT_MS,
@@ -1252,20 +1248,20 @@ async function loadServerInfo(getResolvedConfig) {
1252
1248
  };
1253
1249
  }
1254
1250
  const NO_OP_ENFORCER = async () => {};
1255
- const PROBE_HINT = " Run `mb auth list` (or `mb auth login`) to populate the version cache.";
1251
+ const NO_PROBE_DATA_WARNING = "Could not detect Metabase server version. Proceeding without preflight check; failures may produce confusing errors. Run `mb auth list` (or `mb auth login`) to populate the version cache.";
1256
1252
  function createPreflightEnforcer(required, getServerInfo, skip) {
1257
1253
  if (required === null || skip || isPreflightSkipped() || isBaseline(required)) return NO_OP_ENFORCER;
1258
1254
  let done = false;
1259
1255
  return async () => {
1260
1256
  if (done) return;
1261
1257
  done = true;
1262
- const info = await getServerInfo() ?? EMPTY_SERVER_INFO;
1263
- const failure = checkCapabilities(info, required);
1264
- if (failure === null) return;
1265
- if (failure.reason === "unknown-version") {
1266
- warn(failure.detail + PROBE_HINT);
1258
+ const info = await getServerInfo();
1259
+ if (info === null) {
1260
+ warn(NO_PROBE_DATA_WARNING);
1267
1261
  return;
1268
1262
  }
1263
+ const failure = checkCapabilities(info, required);
1264
+ if (failure === null || failure.reason === "unknown-version") return;
1269
1265
  throw new CapabilityError(failure);
1270
1266
  };
1271
1267
  }
@@ -1,11 +1,11 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
2
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-CTVL5CdB.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
4
4
  import "./capabilities-7e9MgquN.mjs";
5
- import { renderList } from "./render-CfznwleY.mjs";
6
- import "./field-yomXlkvl.mjs";
7
- import { parseId } from "./parse-id-lk_K-CEF.mjs";
8
- import { Table, TableCompact, tableView } from "./table-C7a5V6Zn.mjs";
5
+ import { renderList } from "./render-0_GsapXa.mjs";
6
+ import "./field-E0IBy4Uw.mjs";
7
+ import { parseId } from "./parse-id-D1LTTt9L.mjs";
8
+ import { Table, TableCompact, tableView } from "./table-qDD2kApF.mjs";
9
9
  import { z } from "zod";
10
10
 
11
11
  //#region src/commands/db/schema-tables.ts
@@ -1,9 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
2
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-CTVL5CdB.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
4
4
  import "./capabilities-7e9MgquN.mjs";
5
- import { renderList } from "./render-CfznwleY.mjs";
6
- import { parseId } from "./parse-id-lk_K-CEF.mjs";
5
+ import { renderList } from "./render-0_GsapXa.mjs";
6
+ import { parseId } from "./parse-id-D1LTTt9L.mjs";
7
7
  import { z } from "zod";
8
8
 
9
9
  //#region src/commands/db/schemas.ts
@@ -1,9 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand, parseEnumCsv } from "./runtime-Dmv5VtUK.mjs";
2
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
3
+ import { defineMetabaseCommand, parseEnumCsv } from "./runtime-B40L_bj8.mjs";
4
4
  import "./capabilities-7e9MgquN.mjs";
5
- import { renderList } from "./render-CfznwleY.mjs";
6
- import { parseId } from "./parse-id-lk_K-CEF.mjs";
5
+ import { renderList } from "./render-0_GsapXa.mjs";
6
+ import { parseId } from "./parse-id-D1LTTt9L.mjs";
7
7
  import { z } from "zod";
8
8
 
9
9
  //#region src/domain/search.ts
@@ -0,0 +1,19 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/segment/index.ts
4
+ var segment_default = defineCommand({
5
+ meta: {
6
+ name: "segment",
7
+ description: "Manage Metabase segments"
8
+ },
9
+ subCommands: {
10
+ list: () => import("./list-DUyWON1F.mjs").then((mod) => mod.default),
11
+ get: () => import("./get-C71ypFQk.mjs").then((mod) => mod.default),
12
+ create: () => import("./create-CQ4Vg4Ge.mjs").then((mod) => mod.default),
13
+ update: () => import("./update-BRLcnSwK.mjs").then((mod) => mod.default),
14
+ archive: () => import("./archive-BAjGIzhn.mjs").then((mod) => mod.default)
15
+ }
16
+ });
17
+
18
+ //#endregion
19
+ export { segment_default as default };
@@ -1,12 +1,12 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
4
4
  import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
5
+ import { formatScalar, renderSummary } from "./render-0_GsapXa.mjs";
6
6
  import "./input-cMSEqISy.mjs";
7
- import { readBody } from "./body-DjdFxjpg.mjs";
8
- import { SettingValue, settingValueView } from "./setting-oL97SNeO.mjs";
9
- import { parseSettingKey, rethrowSettingError } from "./key-C2XG394c.mjs";
7
+ import { readBody } from "./body-DDYKoyMt.mjs";
8
+ import { SettingValue, settingValueView } from "./setting-BzCng1Ub.mjs";
9
+ import { parseSettingKey, rethrowSettingError } from "./key-vkNkH82H.mjs";
10
10
  import { z } from "zod";
11
11
 
12
12
  //#region src/commands/setting/set.ts
@@ -60,7 +60,8 @@ var set_default = defineMetabaseCommand({
60
60
  key,
61
61
  value
62
62
  };
63
- renderItem(item, settingValueView, ctx);
63
+ const message = value === null ? `Cleared "${key}".` : `Set "${key}" to ${formatScalar(value)}.`;
64
+ renderSummary(item, settingValueView, message, ctx);
64
65
  }
65
66
  });
66
67
 
@@ -1,8 +1,8 @@
1
1
  import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
- import { outputFlags } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand, keyringFallbackWarning, readEnvLicenseToken, writeLicense } from "./runtime-Dmv5VtUK.mjs";
2
+ import { outputFlags } from "./error-CTVL5CdB.mjs";
3
+ import { defineMetabaseCommand, keyringFallbackWarning, readEnvLicenseToken, writeLicense } from "./runtime-B40L_bj8.mjs";
4
4
  import { warn } from "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
5
+ import { renderSummary } from "./render-0_GsapXa.mjs";
6
6
  import { promptPassword } from "./prompt-CFKoys7k.mjs";
7
7
  import { readInput } from "./input-cMSEqISy.mjs";
8
8
  import { z } from "zod";
@@ -41,7 +41,7 @@ var set_default = defineMetabaseCommand({
41
41
  const location = await writeLicense(token);
42
42
  if (location.backend === "file") warn(keyringFallbackWarning(location, "license"));
43
43
  const result = { stored: true };
44
- renderItem(result, licenseSetView, ctx);
44
+ renderSummary(result, licenseSetView, "License token stored.", ctx);
45
45
  }
46
46
  });
47
47
  async function resolveToken(positional) {
@@ -0,0 +1,17 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/setting/index.ts
4
+ var setting_default = defineCommand({
5
+ meta: {
6
+ name: "setting",
7
+ description: "Inspect and update Metabase settings"
8
+ },
9
+ subCommands: {
10
+ list: () => import("./list-V5IuMr_5.mjs").then((m) => m.default),
11
+ get: () => import("./get-DyArILlF.mjs").then((m) => m.default),
12
+ set: () => import("./set-BRDxcLcQ.mjs").then((m) => m.default)
13
+ }
14
+ });
15
+
16
+ //#endregion
17
+ export { setting_default as default };
@@ -1,10 +1,10 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
4
4
  import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
5
+ import { renderSummary } from "./render-0_GsapXa.mjs";
6
6
  import "./input-cMSEqISy.mjs";
7
- import { readBody } from "./body-DjdFxjpg.mjs";
7
+ import { readBody } from "./body-DDYKoyMt.mjs";
8
8
  import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
9
9
  import { z } from "zod";
10
10
 
@@ -64,7 +64,7 @@ var setup_default = defineMetabaseCommand({
64
64
  method: "POST",
65
65
  body
66
66
  });
67
- renderItem(result, setupResultView, ctx);
67
+ renderSummary(result, setupResultView, "Metabase setup complete.", ctx);
68
68
  }
69
69
  });
70
70
 
@@ -1,5 +1,5 @@
1
1
  import { ConfigError, isNotFoundError } from "./command-augment-BH9qgQ5u.mjs";
2
- import { parseYamlResult } from "./yaml-YTQiYJ9s.mjs";
2
+ import { parseYamlResult } from "./yaml-Gv6wRFMF.mjs";
3
3
  import { z } from "zod";
4
4
  import { closeSync, openSync, readFileSync, readSync, readdirSync, statSync } from "node:fs";
5
5
  import { dirname, join, resolve } from "node:path";
@@ -8,9 +8,9 @@ var skills_default = defineCommand({
8
8
  },
9
9
  default: "list",
10
10
  subCommands: {
11
- list: () => import("./list-Clz5igWg.mjs").then((m) => m.default),
12
- get: () => import("./get-DFxZXaKz.mjs").then((m) => m.default),
13
- path: () => import("./path-AEtZ3mBq.mjs").then((m) => m.default)
11
+ list: () => import("./list-DWWGcUTg.mjs").then((m) => m.default),
12
+ get: () => import("./get-GWRprk7k.mjs").then((m) => m.default),
13
+ path: () => import("./path-D5kX-msX.mjs").then((m) => m.default)
14
14
  }
15
15
  });
16
16
 
@@ -0,0 +1,19 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/snippet/index.ts
4
+ var snippet_default = defineCommand({
5
+ meta: {
6
+ name: "snippet",
7
+ description: "Manage Metabase native query snippets"
8
+ },
9
+ subCommands: {
10
+ list: () => import("./list-CEE9yKNp.mjs").then((mod) => mod.default),
11
+ get: () => import("./get-F338MOK-.mjs").then((mod) => mod.default),
12
+ create: () => import("./create-GVfCQU3B.mjs").then((mod) => mod.default),
13
+ update: () => import("./update-BEtl9LpG.mjs").then((mod) => mod.default),
14
+ archive: () => import("./archive-BO3DOWI4.mjs").then((mod) => mod.default)
15
+ }
16
+ });
17
+
18
+ //#endregion
19
+ export { snippet_default as default };
@@ -1,15 +1,15 @@
1
1
  import { ConfigError, errorMessage } from "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { createClient, defineMetabaseCommand, localUrl, parseInteger, parseOptionalInteger, resolveLicenseToken } from "./runtime-Dmv5VtUK.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
3
+ import { createClient, defineMetabaseCommand, localUrl, parseInteger, parseOptionalInteger, resolveLicenseToken } from "./runtime-B40L_bj8.mjs";
4
4
  import { warn } from "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import { parseId } from "./parse-id-lk_K-CEF.mjs";
7
- import { pollUntil } from "./poll-DHKDpCiq.mjs";
8
- import "./yaml-YTQiYJ9s.mjs";
9
- import { runProcess } from "./process-C7V8LJ-j.mjs";
10
- import { Workspace } from "./workspace-BBXJczJK.mjs";
11
- import { CONTAINER_REPO_DIR, checkDockerReady, containerLifecycleStatus, containerNameFor, pullImage, removeContainer, runWorkspaceContainer, scrubContainerConfig, waitForConfigConsumed } from "./docker-Oq80q3tu.mjs";
12
- import { REPO_SYNC_MODES, RepoSyncMode, buildCredentialsJson, generateWorkspaceCredentials, injectCredentialsIntoConfig, injectRepoSettingsIntoConfig } from "./workspace-credentials-BXpABsNZ.mjs";
5
+ import { renderSummary } from "./render-0_GsapXa.mjs";
6
+ import { parseId } from "./parse-id-D1LTTt9L.mjs";
7
+ import { pollUntil } from "./poll-DxpnK1wW.mjs";
8
+ import "./yaml-Gv6wRFMF.mjs";
9
+ import { runProcess } from "./process-CM7Uu5q_.mjs";
10
+ import { Workspace } from "./workspace-D8HtUN0y.mjs";
11
+ import { CONTAINER_REPO_DIR, checkDockerReady, containerLifecycleStatus, containerNameFor, pullImage, removeContainer, runWorkspaceContainer, scrubContainerConfig, waitForConfigConsumed } from "./docker-B-QQWThD.mjs";
12
+ import { REPO_SYNC_MODES, RepoSyncMode, buildCredentialsJson, generateWorkspaceCredentials, injectCredentialsIntoConfig, injectRepoSettingsIntoConfig } from "./workspace-credentials-8CBMQJFz.mjs";
13
13
  import { z } from "zod";
14
14
  import { resolve } from "node:path";
15
15
  import { stat } from "node:fs/promises";
@@ -257,7 +257,8 @@ var start_default = defineMetabaseCommand({
257
257
  url: localUrl(hostPort),
258
258
  image
259
259
  };
260
- renderItem(result, startResultView, ctx);
260
+ const message = result.state === "running" ? `Workspace ${workspaceId} "${workspace.name}" is running at ${result.url}.` : `Workspace ${workspaceId} "${workspace.name}" is starting — container is up, instance still booting. Check \`mb workspace ps\` or rerun with --wait.`;
261
+ renderSummary(result, startResultView, message, ctx);
261
262
  }
262
263
  });
263
264
  function resolveDefaultImage(version) {
@@ -1,12 +1,12 @@
1
1
  import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
4
4
  import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import "./parse-id-lk_K-CEF.mjs";
7
- import { REMOTE_SYNC_PATHS, SyncTask, pollSyncTask, throwIfFailedTask } from "./poll-task-Cooi0lQV.mjs";
8
- import "./poll-DHKDpCiq.mjs";
9
- import { gitSyncWaitFlags, parseWaitFlags } from "./wait-flags-Dzq9BGQY.mjs";
5
+ import { renderSummary } from "./render-0_GsapXa.mjs";
6
+ import "./parse-id-D1LTTt9L.mjs";
7
+ import { REMOTE_SYNC_PATHS, SyncTask, formatSyncTask, pollSyncTask, throwIfFailedTask } from "./poll-task-D8mG49IN.mjs";
8
+ import "./poll-DxpnK1wW.mjs";
9
+ import { gitSyncWaitFlags, parseWaitFlags } from "./wait-flags-CNIeSq0_.mjs";
10
10
  import { z } from "zod";
11
11
 
12
12
  //#region src/commands/git-sync/stash.ts
@@ -89,7 +89,7 @@ var stash_default = defineMetabaseCommand({
89
89
  message: kickoff.message,
90
90
  task_id: kickoff.task_id
91
91
  };
92
- renderItem(result$1, syncStashView, ctx);
92
+ renderSummary(result$1, syncStashView, `Started stash to branch "${newBranch}" (task #${kickoff.task_id}).`, ctx);
93
93
  return;
94
94
  }
95
95
  const final = await pollSyncTask(client, wait.schedule);
@@ -99,7 +99,9 @@ var stash_default = defineMetabaseCommand({
99
99
  task_id: kickoff.task_id,
100
100
  final
101
101
  };
102
- renderItem(result, syncStashView, ctx);
102
+ const succeeded = final === null || final.status === "successful";
103
+ const text = succeeded ? `Stashed Metabase state to branch "${newBranch}" (task #${kickoff.task_id}).` : formatSyncTask(final);
104
+ renderSummary(result, syncStashView, text, ctx);
103
105
  throwIfFailedTask(final, "stash");
104
106
  }
105
107
  });
@@ -1,9 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { ParsedVersionSchema, ProbedUser, ProfileLastFailure, TokenFeatures, defineMetabaseCommand, originOnly, readProfileRecord, resolveProfileName } from "./runtime-Dmv5VtUK.mjs";
2
+ import { outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
3
+ import { ParsedVersionSchema, ProbedUser, ProfileLastFailure, TokenFeatures, defineMetabaseCommand, originOnly, readProfileRecord, resolveProfileName } from "./runtime-B40L_bj8.mjs";
4
4
  import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import { renderTimestamp, renderUserName, renderUserRole, renderVersionTag } from "./render-OQn3iRsI.mjs";
5
+ import { renderItem } from "./render-0_GsapXa.mjs";
6
+ import { renderTimestamp, renderUserName, renderUserRole, renderVersionTag } from "./render-khznBlla.mjs";
7
7
  import { z } from "zod";
8
8
 
9
9
  //#region src/commands/auth/status.ts
@@ -1,11 +1,11 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
4
4
  import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import { REMOTE_SYNC_PATHS, SyncTask, fetchCurrentTask, fetchOptionalParsed } from "./poll-task-Cooi0lQV.mjs";
7
- import "./poll-DHKDpCiq.mjs";
8
- import { IsDirtyResult } from "./is-dirty-BZOaryxT.mjs";
5
+ import { renderSummary } from "./render-0_GsapXa.mjs";
6
+ import { REMOTE_SYNC_PATHS, SyncTask, fetchCurrentTask, fetchOptionalParsed, formatSyncTask } from "./poll-task-D8mG49IN.mjs";
7
+ import "./poll-DxpnK1wW.mjs";
8
+ import { IsDirtyResult } from "./is-dirty-Cke0a1ie.mjs";
9
9
  import { z } from "zod";
10
10
 
11
11
  //#region src/commands/git-sync/status.ts
@@ -60,7 +60,10 @@ var status_default = defineMetabaseCommand({
60
60
  is_dirty: isDirty.is_dirty,
61
61
  current_task: currentTask
62
62
  };
63
- renderItem(summary, syncStatusView, ctx);
63
+ const branchPart = branch === null ? "git-sync branch not set" : `Branch ${branch}`;
64
+ const dirtyPart = isDirty.is_dirty ? "Metabase has unsynced local changes" : "in sync with the remote";
65
+ const taskPart = currentTask === null ? "No task running." : formatSyncTask(currentTask);
66
+ renderSummary(summary, syncStatusView, `${branchPart} — ${dirtyPart}. ${taskPart}`, ctx);
64
67
  }
65
68
  });
66
69
 
@@ -1,8 +1,8 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { outputFlags } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand, readLicense } from "./runtime-Dmv5VtUK.mjs";
2
+ import { outputFlags } from "./error-CTVL5CdB.mjs";
3
+ import { defineMetabaseCommand, readLicense } from "./runtime-B40L_bj8.mjs";
4
4
  import "./capabilities-7e9MgquN.mjs";
5
- import { renderScalar } from "./render-CfznwleY.mjs";
5
+ import { renderSummary } from "./render-0_GsapXa.mjs";
6
6
  import { z } from "zod";
7
7
 
8
8
  //#region src/commands/workspace/license/status.ts
@@ -26,7 +26,7 @@ var status_default = defineMetabaseCommand({
26
26
  async run({ ctx }) {
27
27
  const present = await readLicense() !== null;
28
28
  const summary = present ? "A license token is stored." : "No license token stored.";
29
- renderScalar({ present }, licenseStatusView, summary, ctx);
29
+ renderSummary({ present }, licenseStatusView, summary, ctx);
30
30
  }
31
31
  });
32
32