drizzle-cube 0.10.1 → 0.11.0

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 (314) hide show
  1. package/dist/adapters/ActivityGridChart.config-XMtoteb6.js +2 -0
  2. package/dist/adapters/ActivityGridChart.config-h1AXPvn0.cjs +1 -0
  3. package/dist/adapters/AreaChart.config-DYf9wufo.cjs +1 -0
  4. package/dist/adapters/AreaChart.config-We6b53aT.js +2 -0
  5. package/dist/adapters/BarChart.config-4SX44IYv.cjs +1 -0
  6. package/dist/adapters/BarChart.config-CwBnyptL.js +2 -0
  7. package/dist/adapters/BoxPlotChart.config-BzNe-FlW.cjs +1 -0
  8. package/dist/adapters/BoxPlotChart.config-mfAHqmcp.js +2 -0
  9. package/dist/adapters/BubbleChart.config-CBT5jMdc.cjs +1 -0
  10. package/dist/adapters/BubbleChart.config-DxG_Umal.js +2 -0
  11. package/dist/adapters/CandlestickChart.config-Cqw3XP1h.js +2 -0
  12. package/dist/adapters/CandlestickChart.config-DPSSlzUD.cjs +1 -0
  13. package/dist/adapters/DataTable.config-DS1bvaDu.js +2 -0
  14. package/dist/adapters/DataTable.config-D_NsMeyz.cjs +1 -0
  15. package/dist/adapters/DotStripChart.config-BApWn6QV.cjs +1 -0
  16. package/dist/adapters/DotStripChart.config-Bdk5-YfB.js +2 -0
  17. package/dist/adapters/FunnelChart.config-BT5up_Bg.cjs +1 -0
  18. package/dist/adapters/FunnelChart.config-ISZiz9fn.js +2 -0
  19. package/dist/adapters/GaugeChart.config-Biaq1cKc.cjs +1 -0
  20. package/dist/adapters/GaugeChart.config-BjGfB84t.js +2 -0
  21. package/dist/adapters/HeatMapChart.config-Bmca8KiH.cjs +1 -0
  22. package/dist/adapters/HeatMapChart.config-uWvR0B-N.js +2 -0
  23. package/dist/adapters/KpiDelta.config-CJeDdj_1.js +2 -0
  24. package/dist/adapters/KpiDelta.config-CKr9pAxL.cjs +1 -0
  25. package/dist/adapters/KpiNumber.config-6YLEF2fy.cjs +1 -0
  26. package/dist/adapters/KpiNumber.config-C00M46GA.js +2 -0
  27. package/dist/adapters/KpiText.config-C8Av_D2W.cjs +1 -0
  28. package/dist/adapters/KpiText.config-bKTHob0C.js +2 -0
  29. package/dist/adapters/LineChart.config-DH68HT_B.js +2 -0
  30. package/dist/adapters/LineChart.config-DPq7GvL9.cjs +1 -0
  31. package/dist/adapters/MarkdownChart.config-CaaJPO3c.js +2 -0
  32. package/dist/adapters/MarkdownChart.config-ca_UyhWJ.cjs +1 -0
  33. package/dist/adapters/MeasureProfileChart.config-C1Il0IqL.cjs +1 -0
  34. package/dist/adapters/MeasureProfileChart.config-DMOnkmb6.js +2 -0
  35. package/dist/adapters/PieChart.config-Bg-8cxWK.js +2 -0
  36. package/dist/adapters/PieChart.config-joJcF--K.cjs +1 -0
  37. package/dist/adapters/ProportionBarChart.config-B2sltKsI.cjs +1 -0
  38. package/dist/adapters/ProportionBarChart.config-BlCedy1v.js +2 -0
  39. package/dist/adapters/RadarChart.config-DD1pX6FZ.js +2 -0
  40. package/dist/adapters/RadarChart.config-DVCCLSVw.cjs +1 -0
  41. package/dist/adapters/RadialBarChart.config--VIE2jMM.js +2 -0
  42. package/dist/adapters/RadialBarChart.config-BZwyWhTg.cjs +1 -0
  43. package/dist/adapters/RecordsTable.config-CTBQc-2r.js +2 -0
  44. package/dist/adapters/RecordsTable.config-DPdO0DL5.cjs +1 -0
  45. package/dist/adapters/RetentionCombinedChart.config-PGVxnkRL.js +2 -0
  46. package/dist/adapters/RetentionCombinedChart.config-mX5PMh82.cjs +1 -0
  47. package/dist/adapters/RetentionHeatmap.config-Co-JMzBm.js +2 -0
  48. package/dist/adapters/RetentionHeatmap.config-Cub3-ksy.cjs +1 -0
  49. package/dist/adapters/SankeyChart.config-BkIyUcAE.cjs +1 -0
  50. package/dist/adapters/SankeyChart.config-DGTnRmYg.js +2 -0
  51. package/dist/adapters/ScatterChart.config-CdZrBorg.js +2 -0
  52. package/dist/adapters/ScatterChart.config-CwN9niUL.cjs +1 -0
  53. package/dist/adapters/SunburstChart.config-D0ZkRSJv.cjs +1 -0
  54. package/dist/adapters/SunburstChart.config-RF3uu5Sa.js +2 -0
  55. package/dist/adapters/TreeMapChart.config-B2Yn_V7p.cjs +1 -0
  56. package/dist/adapters/TreeMapChart.config-diJtcs4D.js +2 -0
  57. package/dist/adapters/WaterfallChart.config-B10PxftT.cjs +1 -0
  58. package/dist/adapters/WaterfallChart.config-BImlkLmR.js +2 -0
  59. package/dist/adapters/chartConfigHelpers-BhME7ow_.cjs +1 -0
  60. package/dist/adapters/{chartConfigHelpers-BsnbxA2c.js → chartConfigHelpers-BsviVhEw.js} +27 -7
  61. package/dist/adapters/{compiler-Dw5tYox7.cjs → compiler-B-yljK02.cjs} +6 -6
  62. package/dist/adapters/{compiler-C8fOs43d.js → compiler-BhityGUO.js} +197 -186
  63. package/dist/adapters/core/index.cjs +1 -1
  64. package/dist/adapters/core/index.js +1 -1
  65. package/dist/adapters/{core-BP6GiYzO.cjs → core-CQOrzBNh.cjs} +1 -1
  66. package/dist/adapters/{core-z6vXJ8nF.js → core-xZE0miIu.js} +2 -2
  67. package/dist/adapters/express/index.cjs +1 -1
  68. package/dist/adapters/express/index.js +5 -5
  69. package/dist/adapters/fastify/index.cjs +1 -1
  70. package/dist/adapters/fastify/index.js +5 -5
  71. package/dist/adapters/{handler-CI3Rt-Zt.js → handler-ByeQ0-1r.js} +237 -234
  72. package/dist/adapters/handler-DSNmfv1R.cjs +16 -0
  73. package/dist/adapters/hono/index.cjs +1 -1
  74. package/dist/adapters/hono/index.js +4 -4
  75. package/dist/adapters/mcp-app-html-CNp0VqS_.cjs +1 -0
  76. package/dist/adapters/mcp-app-html-CvWoYMO3.js +5 -0
  77. package/dist/adapters/mcp-app-html.cjs +1 -1
  78. package/dist/adapters/mcp-app-html.js +1 -1
  79. package/dist/adapters/mcp-tools.cjs +1 -1
  80. package/dist/adapters/mcp-tools.js +3 -3
  81. package/dist/adapters/{mcp-transport-DpS_e0gL.js → mcp-transport-Cy6n4uj1.js} +1 -1
  82. package/dist/adapters/{mcp-transport-Bc7-KSG_.cjs → mcp-transport-DnLP5FPL.cjs} +1 -1
  83. package/dist/adapters/nextjs/index.cjs +1 -1
  84. package/dist/adapters/nextjs/index.js +5 -5
  85. package/dist/adapters/{openai-7064EJ1j.cjs → openai-BQl0yJCS.cjs} +1 -1
  86. package/dist/adapters/{openai-CnUBYFyY.js → openai-C4HrjyJj.js} +1 -1
  87. package/dist/adapters/{openai-DpGdZL3m.js → openai-D3Nt6Bj7.js} +1 -1
  88. package/dist/adapters/{openai-B0mByiYQ.cjs → openai-z1ai-G4Q.cjs} +1 -1
  89. package/dist/adapters/{utils-CN_bxSiq.js → utils-BaxFceDq.js} +6 -1
  90. package/dist/adapters/{utils-CvC1czqb.cjs → utils-a2p2B6x8.cjs} +2 -2
  91. package/dist/adapters/utils.cjs +1 -1
  92. package/dist/adapters/utils.js +1 -1
  93. package/dist/cjs/client/charts/chartConfigHelpers.d.ts +5 -0
  94. package/dist/cjs/client/components/analyticsPortlet/usePortletQueryResults.d.ts +3 -1
  95. package/dist/cjs/client/hooks/queries/useCubeLoadQuery.d.ts +7 -0
  96. package/dist/cjs/client/hooks/queries/useMultiCubeLoadQuery.d.ts +7 -0
  97. package/dist/cjs/client/hooks/useAnalysisQuery.d.ts +6 -1
  98. package/dist/cjs/client/index.d.ts +2 -0
  99. package/dist/cjs/client/types.d.ts +3 -0
  100. package/dist/cjs/client/utils/gapFilling.d.ts +52 -0
  101. package/dist/cjs/client/utils/index.d.ts +1 -0
  102. package/dist/cjs/server/ai/query-schema.d.ts +1 -1
  103. package/dist/cjs/server/execution/result-post-processor.d.ts +4 -2
  104. package/dist/cjs/server/executor.d.ts +2 -0
  105. package/dist/cjs/server/gap-filler.d.ts +8 -43
  106. package/dist/cjs/server/types/core.d.ts +2 -0
  107. package/dist/cjs/server/types/cube.d.ts +12 -0
  108. package/dist/cjs/server/types/metadata.d.ts +5 -0
  109. package/dist/cjs/server/types/query.d.ts +2 -1
  110. package/dist/client/charts/chartConfigHelpers.d.ts +5 -0
  111. package/dist/client/charts.js +12 -12
  112. package/dist/client/chunks/{DashboardEditModal-5ZSP--FQ.js → DashboardEditModal-CIR4aqr7.js} +2360 -2548
  113. package/dist/client/chunks/DashboardEditModal-CIR4aqr7.js.map +1 -0
  114. package/dist/client/chunks/{DotStripChart-DTukhwG-.js → DotStripChart-B9IVCFPO.js} +3 -3
  115. package/dist/client/chunks/{DotStripChart-DTukhwG-.js.map → DotStripChart-B9IVCFPO.js.map} +1 -1
  116. package/dist/client/chunks/{ProportionBarChart-CPZ2cHxH.js → ProportionBarChart-DieF9AzP.js} +3 -3
  117. package/dist/client/chunks/{ProportionBarChart-CPZ2cHxH.js.map → ProportionBarChart-DieF9AzP.js.map} +1 -1
  118. package/dist/client/chunks/{RecordsTable-BC5l67Dc.js → RecordsTable-Mo3ai5_M.js} +4 -4
  119. package/dist/client/chunks/{RecordsTable-BC5l67Dc.js.map → RecordsTable-Mo3ai5_M.js.map} +1 -1
  120. package/dist/client/chunks/{RetentionCombinedChart-aj5xblfu.js → RetentionCombinedChart-Bie4ADyA.js} +3 -3
  121. package/dist/client/chunks/{RetentionCombinedChart-aj5xblfu.js.map → RetentionCombinedChart-Bie4ADyA.js.map} +1 -1
  122. package/dist/client/chunks/{RetentionHeatmap-CKckuEMF.js → RetentionHeatmap-qstIAx5B.js} +2 -2
  123. package/dist/client/chunks/{RetentionHeatmap-CKckuEMF.js.map → RetentionHeatmap-qstIAx5B.js.map} +1 -1
  124. package/dist/client/chunks/{analysis-builder-Db4umQtd.js → analysis-builder-DJNYt7CF.js} +41 -41
  125. package/dist/client/chunks/{analysis-builder-Db4umQtd.js.map → analysis-builder-DJNYt7CF.js.map} +1 -1
  126. package/dist/client/chunks/{analysis-builder-shared-BEvvX6ln.js → analysis-builder-shared-DPLR8upd.js} +487 -483
  127. package/dist/client/chunks/analysis-builder-shared-DPLR8upd.js.map +1 -0
  128. package/dist/client/chunks/{chart-activity-grid-Bbc58UJD.js → chart-activity-grid-Ly_-2B-f.js} +7 -2
  129. package/dist/client/chunks/chart-activity-grid-Ly_-2B-f.js.map +1 -0
  130. package/dist/client/chunks/{chart-area-9uCXIvMN.js → chart-area-D3l-71Wy.js} +2 -2
  131. package/dist/client/chunks/{chart-area-9uCXIvMN.js.map → chart-area-D3l-71Wy.js.map} +1 -1
  132. package/dist/client/chunks/{chart-bar-C5a1T9Ce.js → chart-bar-BaTyQOqs.js} +3 -3
  133. package/dist/client/chunks/{chart-bar-C5a1T9Ce.js.map → chart-bar-BaTyQOqs.js.map} +1 -1
  134. package/dist/client/chunks/{chart-box-plot-BbBrZsaJ.js → chart-box-plot-Cem6PHjz.js} +2 -2
  135. package/dist/client/chunks/{chart-box-plot-BbBrZsaJ.js.map → chart-box-plot-Cem6PHjz.js.map} +1 -1
  136. package/dist/client/chunks/{chart-bubble-dt5ESb7m.js → chart-bubble-DFlfqCDG.js} +2 -2
  137. package/dist/client/chunks/{chart-bubble-dt5ESb7m.js.map → chart-bubble-DFlfqCDG.js.map} +1 -1
  138. package/dist/client/chunks/{chart-candlestick-2A2J_NsK.js → chart-candlestick-BkAFBXtZ.js} +2 -2
  139. package/dist/client/chunks/{chart-candlestick-2A2J_NsK.js.map → chart-candlestick-BkAFBXtZ.js.map} +1 -1
  140. package/dist/client/chunks/{chart-config-area-DsrZCIwF.js → chart-config-area-BnsRQ-MY.js} +35 -14
  141. package/dist/client/chunks/chart-config-area-BnsRQ-MY.js.map +1 -0
  142. package/dist/client/chunks/{chart-config-bar-BixSs43E.js → chart-config-bar-G2HJJBVV.js} +8 -7
  143. package/dist/client/chunks/chart-config-bar-G2HJJBVV.js.map +1 -0
  144. package/dist/client/chunks/{chart-config-kpi-delta-Cl7k6jTj.js → chart-config-kpi-delta-BIAq1Ftg.js} +2 -2
  145. package/dist/client/chunks/{chart-config-kpi-delta-Cl7k6jTj.js.map → chart-config-kpi-delta-BIAq1Ftg.js.map} +1 -1
  146. package/dist/client/chunks/{chart-config-kpi-number-DCcnANWC.js → chart-config-kpi-number-Dgc4gIYu.js} +2 -2
  147. package/dist/client/chunks/{chart-config-kpi-number-DCcnANWC.js.map → chart-config-kpi-number-Dgc4gIYu.js.map} +1 -1
  148. package/dist/client/chunks/{chart-config-line-CBF9Px9b.js → chart-config-line-DLkRs1Zr.js} +9 -8
  149. package/dist/client/chunks/chart-config-line-DLkRs1Zr.js.map +1 -0
  150. package/dist/client/chunks/{chart-config-pie-DZLa6Eqm.js → chart-config-pie-XrHim0C8.js} +2 -2
  151. package/dist/client/chunks/{chart-config-pie-DZLa6Eqm.js.map → chart-config-pie-XrHim0C8.js.map} +1 -1
  152. package/dist/client/chunks/{chart-config-radar-DR6vHHyd.js → chart-config-radar-xNS6Juqc.js} +2 -2
  153. package/dist/client/chunks/{chart-config-radar-DR6vHHyd.js.map → chart-config-radar-xNS6Juqc.js.map} +1 -1
  154. package/dist/client/chunks/{chart-config-radial-bar-DVFou4fB.js → chart-config-radial-bar-ChUChsEe.js} +2 -2
  155. package/dist/client/chunks/{chart-config-radial-bar-DVFou4fB.js.map → chart-config-radial-bar-ChUChsEe.js.map} +1 -1
  156. package/dist/client/chunks/{chart-config-tree-map-Uhise6Bx.js → chart-config-tree-map-CnrJ7OC1.js} +2 -2
  157. package/dist/client/chunks/{chart-config-tree-map-Uhise6Bx.js.map → chart-config-tree-map-CnrJ7OC1.js.map} +1 -1
  158. package/dist/client/chunks/{chart-data-table-zSjYEy0r.js → chart-data-table-Cxd0cdAl.js} +36 -36
  159. package/dist/client/chunks/{chart-data-table-zSjYEy0r.js.map → chart-data-table-Cxd0cdAl.js.map} +1 -1
  160. package/dist/client/chunks/{chart-funnel-CuOSCsbt.js → chart-funnel-71Kn4eeF.js} +2 -2
  161. package/dist/client/chunks/{chart-funnel-CuOSCsbt.js.map → chart-funnel-71Kn4eeF.js.map} +1 -1
  162. package/dist/client/chunks/{chart-gauge-DxKeqCCD.js → chart-gauge-BddS_9oS.js} +3 -3
  163. package/dist/client/chunks/{chart-gauge-DxKeqCCD.js.map → chart-gauge-BddS_9oS.js.map} +1 -1
  164. package/dist/client/chunks/{chart-heat-map-C1dvW-ov.js → chart-heat-map-BQIsrn8m.js} +3 -3
  165. package/dist/client/chunks/{chart-heat-map-C1dvW-ov.js.map → chart-heat-map-BQIsrn8m.js.map} +1 -1
  166. package/dist/client/chunks/{chart-kpi-delta-CgehGc9d.js → chart-kpi-delta-DndbqdZT.js} +3 -3
  167. package/dist/client/chunks/{chart-kpi-delta-CgehGc9d.js.map → chart-kpi-delta-DndbqdZT.js.map} +1 -1
  168. package/dist/client/chunks/{chart-kpi-number-C31-6A6m.js → chart-kpi-number-DAbfoHMt.js} +5 -5
  169. package/dist/client/chunks/{chart-kpi-number-C31-6A6m.js.map → chart-kpi-number-DAbfoHMt.js.map} +1 -1
  170. package/dist/client/chunks/{chart-kpi-text-D2ydQIEn.js → chart-kpi-text-D8oQgpxL.js} +3 -3
  171. package/dist/client/chunks/{chart-kpi-text-D2ydQIEn.js.map → chart-kpi-text-D8oQgpxL.js.map} +1 -1
  172. package/dist/client/chunks/{chart-line-CjW9Yo03.js → chart-line-BNqjUowg.js} +3 -3
  173. package/dist/client/chunks/{chart-line-CjW9Yo03.js.map → chart-line-BNqjUowg.js.map} +1 -1
  174. package/dist/client/chunks/{chart-markdown-Cgs62had.js → chart-markdown-DtgpU3xd.js} +2 -2
  175. package/dist/client/chunks/{chart-markdown-Cgs62had.js.map → chart-markdown-DtgpU3xd.js.map} +1 -1
  176. package/dist/client/chunks/{chart-measure-profile-Cg39gYjR.js → chart-measure-profile-D5nZMWlI.js} +3 -3
  177. package/dist/client/chunks/{chart-measure-profile-Cg39gYjR.js.map → chart-measure-profile-D5nZMWlI.js.map} +1 -1
  178. package/dist/client/chunks/{chart-pie-BTb5nKd7.js → chart-pie-D8r9HCZ4.js} +3 -3
  179. package/dist/client/chunks/{chart-pie-BTb5nKd7.js.map → chart-pie-D8r9HCZ4.js.map} +1 -1
  180. package/dist/client/chunks/{chart-radar-8384sPlX.js → chart-radar-R4PuCIWp.js} +3 -3
  181. package/dist/client/chunks/{chart-radar-8384sPlX.js.map → chart-radar-R4PuCIWp.js.map} +1 -1
  182. package/dist/client/chunks/{chart-radial-bar-CuBmmOTU.js → chart-radial-bar-hmrSFa6O.js} +3 -3
  183. package/dist/client/chunks/{chart-radial-bar-CuBmmOTU.js.map → chart-radial-bar-hmrSFa6O.js.map} +1 -1
  184. package/dist/client/chunks/{chart-sankey-CoIuG7Nu.js → chart-sankey-CFXPybny.js} +2 -2
  185. package/dist/client/chunks/{chart-sankey-CoIuG7Nu.js.map → chart-sankey-CFXPybny.js.map} +1 -1
  186. package/dist/client/chunks/{chart-scatter-Bdj95OeV.js → chart-scatter-CH82md0L.js} +3 -3
  187. package/dist/client/chunks/{chart-scatter-Bdj95OeV.js.map → chart-scatter-CH82md0L.js.map} +1 -1
  188. package/dist/client/chunks/{chart-sunburst-CuG8520_.js → chart-sunburst-CTj95eEC.js} +3 -3
  189. package/dist/client/chunks/{chart-sunburst-CuG8520_.js.map → chart-sunburst-CTj95eEC.js.map} +1 -1
  190. package/dist/client/chunks/{chart-tree-map-CtJADX87.js → chart-tree-map-CmysE4bF.js} +3 -3
  191. package/dist/client/chunks/{chart-tree-map-CtJADX87.js.map → chart-tree-map-CmysE4bF.js.map} +1 -1
  192. package/dist/client/chunks/{chart-waterfall-D430fO48.js → chart-waterfall-Bv1mPvlB.js} +3 -3
  193. package/dist/client/chunks/{chart-waterfall-D430fO48.js.map → chart-waterfall-Bv1mPvlB.js.map} +1 -1
  194. package/dist/client/chunks/{charts-core-BSmlKmf0.js → charts-core-BdEQgbqN.js} +2 -2
  195. package/dist/client/chunks/{charts-core-BSmlKmf0.js.map → charts-core-BdEQgbqN.js.map} +1 -1
  196. package/dist/client/chunks/charts-loader-DoLQqFXg.js +87 -0
  197. package/dist/client/chunks/{charts-loader-Bz9yHkW1.js.map → charts-loader-DoLQqFXg.js.map} +1 -1
  198. package/dist/client/chunks/gapFilling-DKBRHcQL.js +391 -0
  199. package/dist/client/chunks/gapFilling-DKBRHcQL.js.map +1 -0
  200. package/dist/client/chunks/{nl-NL-BrqrWoAj.js → nl-NL-DVZXf8U7.js} +6 -1
  201. package/dist/client/chunks/nl-NL-DVZXf8U7.js.map +1 -0
  202. package/dist/client/chunks/{schema-visualization-D2NvjQny.js → schema-visualization-MlRrcJQH.js} +3 -3
  203. package/dist/client/chunks/{schema-visualization-D2NvjQny.js.map → schema-visualization-MlRrcJQH.js.map} +1 -1
  204. package/dist/client/chunks/{useDirtyStateTracking-DL_AnCWZ.js → useDirtyStateTracking-DSkxAJ29.js} +317 -292
  205. package/dist/client/chunks/useDirtyStateTracking-DSkxAJ29.js.map +1 -0
  206. package/dist/client/chunks/{useExplainAI-CdPWtj7E.js → useExplainAI-DRCIVcbu.js} +4 -4
  207. package/dist/client/chunks/{useExplainAI-CdPWtj7E.js.map → useExplainAI-DRCIVcbu.js.map} +1 -1
  208. package/dist/client/chunks/utils-CToHkuhU.js.map +1 -1
  209. package/dist/client/chunks/{vendor-Bpaolt6h.js → vendor-BfBpNmMa.js} +2 -2
  210. package/dist/client/chunks/{vendor-Bpaolt6h.js.map → vendor-BfBpNmMa.js.map} +1 -1
  211. package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +3 -1
  212. package/dist/client/components.js +2 -2
  213. package/dist/client/hooks/queries/useCubeLoadQuery.d.ts +7 -0
  214. package/dist/client/hooks/queries/useMultiCubeLoadQuery.d.ts +7 -0
  215. package/dist/client/hooks/useAnalysisQuery.d.ts +6 -1
  216. package/dist/client/hooks.js +3 -3
  217. package/dist/client/icons.js +1 -1
  218. package/dist/client/index.d.ts +2 -0
  219. package/dist/client/index.js +193 -192
  220. package/dist/client/index.js.map +1 -1
  221. package/dist/client/providers.js +1 -1
  222. package/dist/client/schema.js +1 -1
  223. package/dist/client/types.d.ts +3 -0
  224. package/dist/client/utils/gapFilling.d.ts +52 -0
  225. package/dist/client/utils/index.d.ts +1 -0
  226. package/dist/client/utils.js +9 -8
  227. package/dist/client/utils.js.map +1 -1
  228. package/dist/client-bundle-stats.html +1 -1
  229. package/dist/mcp-app/mcp-app.html +101 -101
  230. package/dist/server/ai/query-schema.d.ts +1 -1
  231. package/dist/server/chartConfigHelpers-BhME7ow_.cjs +1 -0
  232. package/dist/server/{chartConfigHelpers-BsnbxA2c.js → chartConfigHelpers-BsviVhEw.js} +27 -7
  233. package/dist/server/execution/result-post-processor.d.ts +4 -2
  234. package/dist/server/executor.d.ts +2 -0
  235. package/dist/server/gap-filler.d.ts +8 -43
  236. package/dist/server/index.cjs +34 -34
  237. package/dist/server/index.js +2049 -2030
  238. package/dist/server/types/core.d.ts +2 -0
  239. package/dist/server/types/cube.d.ts +12 -0
  240. package/dist/server/types/metadata.d.ts +5 -0
  241. package/dist/server/types/query.d.ts +2 -1
  242. package/package.json +1 -1
  243. package/dist/adapters/ActivityGridChart.config-BpGv0FYq.js +0 -2
  244. package/dist/adapters/ActivityGridChart.config-DWs9dRl7.cjs +0 -1
  245. package/dist/adapters/AreaChart.config-Cn8nAQqj.cjs +0 -1
  246. package/dist/adapters/AreaChart.config-NDMkAi9w.js +0 -2
  247. package/dist/adapters/BarChart.config-CuGCupRX.cjs +0 -1
  248. package/dist/adapters/BarChart.config-D4Ct_ZuS.js +0 -2
  249. package/dist/adapters/BoxPlotChart.config-BEHZDgrz.js +0 -2
  250. package/dist/adapters/BoxPlotChart.config-DnC3xk7q.cjs +0 -1
  251. package/dist/adapters/BubbleChart.config-D0ouKOKS.cjs +0 -1
  252. package/dist/adapters/BubbleChart.config-Du8aEfdQ.js +0 -2
  253. package/dist/adapters/CandlestickChart.config-B0B6dKYG.cjs +0 -1
  254. package/dist/adapters/CandlestickChart.config-DBilZaFc.js +0 -2
  255. package/dist/adapters/DataTable.config-BXalzUPO.cjs +0 -1
  256. package/dist/adapters/DataTable.config-CF8BzQHu.js +0 -2
  257. package/dist/adapters/DotStripChart.config-0ggseDij.cjs +0 -1
  258. package/dist/adapters/DotStripChart.config-CfHh0XSW.js +0 -2
  259. package/dist/adapters/FunnelChart.config-AcSpen_Q.js +0 -2
  260. package/dist/adapters/FunnelChart.config-D6k89qDc.cjs +0 -1
  261. package/dist/adapters/GaugeChart.config-B5BcrEvW.cjs +0 -1
  262. package/dist/adapters/GaugeChart.config-BChbha74.js +0 -2
  263. package/dist/adapters/HeatMapChart.config-BgkP8kiW.js +0 -2
  264. package/dist/adapters/HeatMapChart.config-Crq7vBwj.cjs +0 -1
  265. package/dist/adapters/KpiDelta.config-Cqu1WOkV.js +0 -2
  266. package/dist/adapters/KpiDelta.config-edWLG1bM.cjs +0 -1
  267. package/dist/adapters/KpiNumber.config-BLkE67us.cjs +0 -1
  268. package/dist/adapters/KpiNumber.config-DNsH72Rs.js +0 -2
  269. package/dist/adapters/KpiText.config-CAnLZYht.cjs +0 -1
  270. package/dist/adapters/KpiText.config-CQGd10Hj.js +0 -2
  271. package/dist/adapters/LineChart.config-C7l_xff-.js +0 -2
  272. package/dist/adapters/LineChart.config-DOxwtnfG.cjs +0 -1
  273. package/dist/adapters/MarkdownChart.config-BV5j1oJl.cjs +0 -1
  274. package/dist/adapters/MarkdownChart.config-CBkJAEpW.js +0 -2
  275. package/dist/adapters/MeasureProfileChart.config-CyyFz-x_.cjs +0 -1
  276. package/dist/adapters/MeasureProfileChart.config-VIvr7lq6.js +0 -2
  277. package/dist/adapters/PieChart.config-BP8OlSJ4.js +0 -2
  278. package/dist/adapters/PieChart.config-BaMxIlBa.cjs +0 -1
  279. package/dist/adapters/ProportionBarChart.config-CtZaP8Xn.js +0 -2
  280. package/dist/adapters/ProportionBarChart.config-DAyEQ8Pn.cjs +0 -1
  281. package/dist/adapters/RadarChart.config-CG07QZUT.cjs +0 -1
  282. package/dist/adapters/RadarChart.config-DJJuD-Tb.js +0 -2
  283. package/dist/adapters/RadialBarChart.config-BNgzWkot.cjs +0 -1
  284. package/dist/adapters/RadialBarChart.config-DVM_jg9B.js +0 -2
  285. package/dist/adapters/RecordsTable.config-BEQmKQ-S.cjs +0 -1
  286. package/dist/adapters/RecordsTable.config-d4s8HV9m.js +0 -2
  287. package/dist/adapters/RetentionCombinedChart.config-DJ4N-ffd.cjs +0 -1
  288. package/dist/adapters/RetentionCombinedChart.config-DV1h3rW2.js +0 -2
  289. package/dist/adapters/RetentionHeatmap.config-CIJDenRg.cjs +0 -1
  290. package/dist/adapters/RetentionHeatmap.config-P3VVn3QJ.js +0 -2
  291. package/dist/adapters/SankeyChart.config-CQ89DYf7.cjs +0 -1
  292. package/dist/adapters/SankeyChart.config-CfMmdmXJ.js +0 -2
  293. package/dist/adapters/ScatterChart.config-C4zrFpF-.cjs +0 -1
  294. package/dist/adapters/ScatterChart.config-DaJ3LVWH.js +0 -2
  295. package/dist/adapters/SunburstChart.config-1ZRhfGr0.cjs +0 -1
  296. package/dist/adapters/SunburstChart.config-DHgrSIkQ.js +0 -2
  297. package/dist/adapters/TreeMapChart.config-Cy3sAsJP.js +0 -2
  298. package/dist/adapters/TreeMapChart.config-D365WWEK.cjs +0 -1
  299. package/dist/adapters/WaterfallChart.config-DYEf1vQT.js +0 -2
  300. package/dist/adapters/WaterfallChart.config-s8pICbm8.cjs +0 -1
  301. package/dist/adapters/chartConfigHelpers-BZMu_1EP.cjs +0 -1
  302. package/dist/adapters/handler-B78akmC_.cjs +0 -16
  303. package/dist/adapters/mcp-app-html-C1fEW5oE.js +0 -5
  304. package/dist/adapters/mcp-app-html-CGk4ubE0.cjs +0 -1
  305. package/dist/client/chunks/DashboardEditModal-5ZSP--FQ.js.map +0 -1
  306. package/dist/client/chunks/analysis-builder-shared-BEvvX6ln.js.map +0 -1
  307. package/dist/client/chunks/chart-activity-grid-Bbc58UJD.js.map +0 -1
  308. package/dist/client/chunks/chart-config-area-DsrZCIwF.js.map +0 -1
  309. package/dist/client/chunks/chart-config-bar-BixSs43E.js.map +0 -1
  310. package/dist/client/chunks/chart-config-line-CBF9Px9b.js.map +0 -1
  311. package/dist/client/chunks/charts-loader-Bz9yHkW1.js +0 -87
  312. package/dist/client/chunks/nl-NL-BrqrWoAj.js.map +0 -1
  313. package/dist/client/chunks/useDirtyStateTracking-DL_AnCWZ.js.map +0 -1
  314. package/dist/server/chartConfigHelpers-BZMu_1EP.cjs +0 -1
@@ -1,8 +1,8 @@
1
- import { J as e, Y as t, _ as n, b as r, g as i, h as a, m as o, p as s } from "./utils-CN_bxSiq.js";
2
- import { D as c, E as l, O as u, T as d } from "./mcp-transport-DpS_e0gL.js";
3
- import { a as f, c as p, d as m, i as h, l as g, n as _, o as v, r as y, s as b, t as x, u as S } from "./chartConfigHelpers-BsnbxA2c.js";
1
+ import { J as e, Y as t, _ as n, b as r, g as i, h as a, m as o, p as s } from "./utils-BaxFceDq.js";
2
+ import { D as c, E as l, O as u, T as d } from "./mcp-transport-Cy6n4uj1.js";
3
+ import { a as f, c as p, d as m, f as h, i as g, l as _, n as v, o as y, r as b, s as x, t as S, u as ee } from "./chartConfigHelpers-BsviVhEw.js";
4
4
  //#region src/server/agent/agent-prompts.ts
5
- var ee = [
5
+ var te = [
6
6
  "You are an analyst agent working in a notebook backed by a drizzle-cube semantic layer.",
7
7
  "",
8
8
  "Your tools, in the order you normally use them:",
@@ -24,7 +24,7 @@ var ee = [
24
24
  ].join("\n");
25
25
  //#endregion
26
26
  //#region src/server/agent/system-prompt.ts
27
- function te(e, t) {
27
+ function ne(e, t) {
28
28
  if (t.measures && t.measures.length !== 0) {
29
29
  e.push(""), e.push("**Measures:**");
30
30
  for (let n of t.measures) {
@@ -33,7 +33,7 @@ function te(e, t) {
33
33
  }
34
34
  }
35
35
  }
36
- function ne(e, t) {
36
+ function re(e, t) {
37
37
  if (t.dimensions && t.dimensions.length !== 0) {
38
38
  e.push(""), e.push("**Dimensions:**");
39
39
  for (let n of t.dimensions) {
@@ -42,22 +42,22 @@ function ne(e, t) {
42
42
  }
43
43
  }
44
44
  }
45
- function re(e, t) {
45
+ function ie(e, t) {
46
46
  if (t.relationships && t.relationships.length !== 0) {
47
47
  e.push(""), e.push("**Joins:**");
48
48
  for (let n of t.relationships) e.push(`- → \`${n.targetCube}\` (${n.relationship})`);
49
49
  }
50
50
  }
51
- function ie(e, t) {
51
+ function ae(e, t) {
52
52
  t.meta?.eventStream && (e.push(""), e.push("**Event Stream:** Yes (supports funnel, flow, retention queries)"), t.meta.eventStream.bindingKey && e.push(`- Binding key: \`${t.name}.${t.meta.eventStream.bindingKey}\``), t.meta.eventStream.timeDimension && e.push(`- Time dimension: \`${t.name}.${t.meta.eventStream.timeDimension}\``));
53
53
  }
54
- function ae(e) {
54
+ function oe(e) {
55
55
  if (e.length === 0) return "No cubes are currently available.";
56
56
  let t = ["## Available Cubes", ""];
57
- for (let n of e) t.push(`### ${n.name}`), n.description && t.push(n.description), te(t, n), ne(t, n), re(t, n), ie(t, n), t.push("");
57
+ for (let n of e) t.push(`### ${n.name}`), n.description && t.push(n.description), ne(t, n), re(t, n), ie(t, n), ae(t, n), t.push("");
58
58
  return t.join("\n");
59
59
  }
60
- function oe(e) {
60
+ function C(e) {
61
61
  return e.messages.map((e) => e.content.text).join("\n\n");
62
62
  }
63
63
  function se(e) {
@@ -227,15 +227,15 @@ function se(e) {
227
227
  "",
228
228
  "---",
229
229
  "",
230
- ee,
230
+ te,
231
231
  "",
232
232
  "---",
233
233
  "",
234
- oe(n),
234
+ C(n),
235
235
  "",
236
236
  "---",
237
237
  "",
238
- oe(i),
238
+ C(i),
239
239
  "",
240
240
  "---",
241
241
  "",
@@ -291,12 +291,12 @@ function se(e) {
291
291
  "",
292
292
  "---",
293
293
  "",
294
- ae(e)
294
+ oe(e)
295
295
  ].join("\n");
296
296
  }
297
297
  //#endregion
298
298
  //#region src/client/components/charts/BarChart.config.ts
299
- var C = {
299
+ var w = {
300
300
  clickableElements: { bar: !0 },
301
301
  dropZones: [
302
302
  {
@@ -333,12 +333,13 @@ var C = {
333
333
  "hideHeader"
334
334
  ],
335
335
  displayOptionsConfig: [
336
- g("chart.configText.how_to_stack_multiple_bar_series"),
337
- S,
338
- y,
339
- v
336
+ ee("chart.configText.how_to_stack_multiple_bar_series"),
337
+ m,
338
+ v,
339
+ g,
340
+ x
340
341
  ]
341
- }, w = {
342
+ }, T = {
342
343
  clickableElements: { point: !0 },
343
344
  dropZones: [
344
345
  {
@@ -375,10 +376,11 @@ var C = {
375
376
  "hideHeader"
376
377
  ],
377
378
  displayOptionsConfig: [
378
- p,
379
- b(),
380
- x,
379
+ _,
380
+ p(),
381
381
  S,
382
+ v,
383
+ m,
382
384
  {
383
385
  key: "priorPeriodStyle",
384
386
  label: "chart.option.priorPeriodStyle.label",
@@ -410,10 +412,10 @@ var C = {
410
412
  step: .1,
411
413
  description: "chart.option.priorPeriodOpacity.description"
412
414
  },
413
- y,
414
- v
415
+ g,
416
+ x
415
417
  ]
416
- }, T = {
418
+ }, E = {
417
419
  dropZones: [
418
420
  {
419
421
  key: "xAxis",
@@ -449,15 +451,16 @@ var C = {
449
451
  "hideHeader"
450
452
  ],
451
453
  displayOptionsConfig: [
452
- p,
453
- b(!1),
454
- g("chart.configText.how_to_stack_multiple_area_series"),
455
- x,
454
+ _,
455
+ p(!1),
456
+ ee("chart.configText.how_to_stack_multiple_area_series"),
456
457
  S,
457
- y,
458
- v
458
+ v,
459
+ m,
460
+ g,
461
+ x
459
462
  ]
460
- }, E = {
463
+ }, D = {
461
464
  clickableElements: { slice: !0 },
462
465
  dropZones: [{
463
466
  key: "xAxis",
@@ -509,8 +512,8 @@ var C = {
509
512
  label: "chart.configText.80_percent"
510
513
  }
511
514
  ]
512
- }, m()]
513
- }, D = {
515
+ }, h()]
516
+ }, O = {
514
517
  dropZones: [
515
518
  {
516
519
  key: "xAxis",
@@ -561,7 +564,7 @@ var C = {
561
564
  type: "axisFormat",
562
565
  description: "chart.option.yAxisFormat.description"
563
566
  }]
564
- }, O = {
567
+ }, k = {
565
568
  dropZones: [
566
569
  {
567
570
  key: "xAxis",
@@ -633,7 +636,7 @@ var C = {
633
636
  type: "axisFormat",
634
637
  description: "chart.configText.number_formatting_for_y_axis_and_values"
635
638
  }]
636
- }, k = {
639
+ }, A = {
637
640
  dropZones: [
638
641
  {
639
642
  key: "xAxis",
@@ -666,8 +669,8 @@ var C = {
666
669
  "showTooltip",
667
670
  "hideHeader"
668
671
  ],
669
- displayOptionsConfig: [m()]
670
- }, A = {
672
+ displayOptionsConfig: [h()]
673
+ }, j = {
671
674
  dropZones: [{
672
675
  key: "xAxis",
673
676
  label: "chart.configText.categories",
@@ -689,8 +692,8 @@ var C = {
689
692
  "showTooltip",
690
693
  "hideHeader"
691
694
  ],
692
- displayOptionsConfig: [m()]
693
- }, j = {
695
+ displayOptionsConfig: [h()]
696
+ }, M = {
694
697
  dropZones: [
695
698
  {
696
699
  key: "xAxis",
@@ -724,9 +727,9 @@ var C = {
724
727
  "showTooltip",
725
728
  "hideHeader"
726
729
  ],
727
- displayOptionsConfig: [m("chart.configText.number_formatting_for_size_values")],
730
+ displayOptionsConfig: [h("chart.configText.number_formatting_for_size_values")],
728
731
  clickableElements: { cell: !0 }
729
- }, M = {
732
+ }, N = {
730
733
  dropZones: [{
731
734
  key: "xAxis",
732
735
  label: "chart.configText.columns",
@@ -746,7 +749,7 @@ var C = {
746
749
  type: "axisFormat",
747
750
  description: "chart.configText.number_formatting_for_numeric_values"
748
751
  }]
749
- }, N = {
752
+ }, P = {
750
753
  dropZones: [{
751
754
  key: "columns",
752
755
  label: "chart.recordsTable.dropZone.columns.label",
@@ -809,7 +812,7 @@ var C = {
809
812
  ],
810
813
  clickableElements: { row: !0 },
811
814
  recordGrain: !0
812
- }, P = {
815
+ }, F = {
813
816
  dropZones: [{
814
817
  key: "dateField",
815
818
  label: "chart.configText.time_dimension",
@@ -850,7 +853,7 @@ var C = {
850
853
  } : { isValid: !0 };
851
854
  },
852
855
  clickableElements: { cell: !0 }
853
- }, F = {
856
+ }, I = {
854
857
  dropZones: [{
855
858
  key: "yAxis",
856
859
  label: "chart.configText.value",
@@ -861,7 +864,7 @@ var C = {
861
864
  emptyText: "chart.kpiNumber.dropZone.yAxis.empty"
862
865
  }],
863
866
  displayOptionsConfig: [
864
- _,
867
+ b,
865
868
  {
866
869
  key: "target",
867
870
  label: "chart.runtime.tooltip.targetValue",
@@ -916,7 +919,7 @@ var C = {
916
919
  }
917
920
  ],
918
921
  displayOptions: ["hideHeader"]
919
- }, I = {
922
+ }, L = {
920
923
  dropZones: [{
921
924
  key: "yAxis",
922
925
  label: "chart.configText.value",
@@ -935,7 +938,7 @@ var C = {
935
938
  emptyText: "chart.kpiDelta.dropZone.xAxis.empty"
936
939
  }],
937
940
  displayOptionsConfig: [
938
- _,
941
+ b,
939
942
  {
940
943
  key: "showBaseline",
941
944
  label: "chart.option.showBaseline.label",
@@ -1008,7 +1011,7 @@ var C = {
1008
1011
  isValid: !1,
1009
1012
  message: "chart.kpiDelta.validation.measureRequired"
1010
1013
  } : { isValid: !0 }
1011
- }, L = {
1014
+ }, R = {
1012
1015
  dropZones: [{
1013
1016
  key: "yAxis",
1014
1017
  label: "chart.configText.value",
@@ -1045,7 +1048,7 @@ var C = {
1045
1048
  }
1046
1049
  ],
1047
1050
  displayOptions: ["hideHeader"]
1048
- }, R = {
1051
+ }, z = {
1049
1052
  skipQuery: !0,
1050
1053
  dropZones: [],
1051
1054
  displayOptionsConfig: [
@@ -1157,7 +1160,7 @@ var C = {
1157
1160
  description: "chart.configText.add_an_accent_colored_border_on_one_side_of_the_content"
1158
1161
  }
1159
1162
  ]
1160
- }, z = {
1163
+ }, B = {
1161
1164
  dropZones: [{
1162
1165
  key: "xAxis",
1163
1166
  label: "chart.configText.step_name",
@@ -1240,7 +1243,7 @@ var C = {
1240
1243
  description: "chart.option.showP90Time.description"
1241
1244
  }
1242
1245
  ]
1243
- }, B = {
1246
+ }, V = {
1244
1247
  dropZones: [{
1245
1248
  key: "xAxis",
1246
1249
  label: "chart.configText.event_type",
@@ -1296,7 +1299,7 @@ var C = {
1296
1299
  description: "chart.configText.hide_the_statistics_footer_below_the_chart"
1297
1300
  }
1298
1301
  ]
1299
- }, V = {
1302
+ }, H = {
1300
1303
  dropZones: [{
1301
1304
  key: "xAxis",
1302
1305
  label: "chart.configText.event_type",
@@ -1331,7 +1334,7 @@ var C = {
1331
1334
  defaultValue: !0,
1332
1335
  description: "chart.configText.hide_the_statistics_footer_below_the_chart"
1333
1336
  }]
1334
- }, H = {
1337
+ }, ce = {
1335
1338
  dropZones: [
1336
1339
  {
1337
1340
  key: "xAxis",
@@ -1412,7 +1415,7 @@ var C = {
1412
1415
  isValid: !1,
1413
1416
  message: "chart.heatmap.validation.xAxisRequired"
1414
1417
  }
1415
- }, ce = {
1418
+ }, U = {
1416
1419
  dropZones: [],
1417
1420
  displayOptionsConfig: [{
1418
1421
  key: "showLegend",
@@ -1427,7 +1430,7 @@ var C = {
1427
1430
  defaultValue: !0,
1428
1431
  description: "chart.option.showTooltip.description"
1429
1432
  }]
1430
- }, U = {
1433
+ }, W = {
1431
1434
  dropZones: [],
1432
1435
  displayOptionsConfig: [
1433
1436
  {
@@ -1473,7 +1476,7 @@ var C = {
1473
1476
  description: "chart.option.showTooltip.description"
1474
1477
  }
1475
1478
  ]
1476
- }, W = {
1479
+ }, G = {
1477
1480
  displayOptions: ["hideHeader"],
1478
1481
  dropZones: [{
1479
1482
  key: "xAxis",
@@ -1498,7 +1501,7 @@ var C = {
1498
1501
  type: "axisFormat",
1499
1502
  description: "chart.configText.number_formatting_for_the_value_axis"
1500
1503
  }]
1501
- }, G = {
1504
+ }, K = {
1502
1505
  displayOptions: [
1503
1506
  "showGrid",
1504
1507
  "showTooltip",
@@ -1609,7 +1612,7 @@ var C = {
1609
1612
  description: "chart.option.xAxisFormat.description"
1610
1613
  }
1611
1614
  ]
1612
- }, K = {
1615
+ }, le = {
1613
1616
  clickableElements: { bar: !0 },
1614
1617
  displayOptions: ["showTooltip", "hideHeader"],
1615
1618
  dropZones: [{
@@ -1658,7 +1661,7 @@ var C = {
1658
1661
  description: "chart.configText.number_formatting_for_the_y_axis"
1659
1662
  }
1660
1663
  ]
1661
- }, q = {
1664
+ }, ue = {
1662
1665
  clickableElements: { bar: !0 },
1663
1666
  displayOptions: ["hideHeader"],
1664
1667
  dropZones: [{
@@ -1720,7 +1723,7 @@ var C = {
1720
1723
  description: "chart.configText.number_formatting_for_the_price_axis"
1721
1724
  }
1722
1725
  ]
1723
- }, le = {
1726
+ }, de = {
1724
1727
  displayOptions: [
1725
1728
  "showLegend",
1726
1729
  "showTooltip",
@@ -1792,7 +1795,7 @@ var C = {
1792
1795
  description: "chart.configText.number_formatting_for_the_y_axis"
1793
1796
  }
1794
1797
  ]
1795
- }, ue = {
1798
+ }, fe = {
1796
1799
  dropZones: [{
1797
1800
  key: "xAxis",
1798
1801
  label: "chart.configText.category",
@@ -1850,7 +1853,7 @@ var C = {
1850
1853
  isValid: !1,
1851
1854
  message: "chart.proportionBar.validation.measureRequired"
1852
1855
  } : { isValid: !0 }
1853
- }, de = {
1856
+ }, pe = {
1854
1857
  clickableElements: {},
1855
1858
  displayOptions: ["hideHeader"],
1856
1859
  dropZones: [{
@@ -1903,45 +1906,45 @@ var C = {
1903
1906
  description: "chart.configText.number_formatting_for_the_displayed_value_and_axis_labels"
1904
1907
  }
1905
1908
  ]
1906
- }, J = {
1909
+ }, q = {
1907
1910
  packageName: "recharts",
1908
1911
  installCommand: "npm install recharts"
1909
- }, fe = {
1912
+ }, me = {
1910
1913
  bar: {
1911
1914
  label: "chart.bar.label",
1912
1915
  icon: "chartBar",
1913
1916
  description: "chart.bar.description",
1914
1917
  useCase: "chart.bar.useCase",
1915
- isAvailable: f,
1916
- dependencies: J,
1917
- config: async () => (await import("./BarChart.config-D4Ct_ZuS.js")).barChartConfig
1918
+ isAvailable: y,
1919
+ dependencies: q,
1920
+ config: async () => (await import("./BarChart.config-CwBnyptL.js")).barChartConfig
1918
1921
  },
1919
1922
  line: {
1920
1923
  label: "chart.line.label",
1921
1924
  icon: "chartLine",
1922
1925
  description: "chart.line.description",
1923
1926
  useCase: "chart.line.useCase",
1924
- isAvailable: f,
1925
- dependencies: J,
1926
- config: async () => (await import("./LineChart.config-C7l_xff-.js")).lineChartConfig
1927
+ isAvailable: y,
1928
+ dependencies: q,
1929
+ config: async () => (await import("./LineChart.config-DH68HT_B.js")).lineChartConfig
1927
1930
  },
1928
1931
  area: {
1929
1932
  label: "chart.area.label",
1930
1933
  icon: "chartArea",
1931
1934
  description: "chart.area.description",
1932
1935
  useCase: "chart.area.useCase",
1933
- isAvailable: f,
1934
- dependencies: J,
1935
- config: async () => (await import("./AreaChart.config-NDMkAi9w.js")).areaChartConfig
1936
+ isAvailable: y,
1937
+ dependencies: q,
1938
+ config: async () => (await import("./AreaChart.config-We6b53aT.js")).areaChartConfig
1936
1939
  },
1937
1940
  pie: {
1938
1941
  label: "chart.pie.label",
1939
1942
  icon: "chartPie",
1940
1943
  description: "chart.pie.description",
1941
1944
  useCase: "chart.pie.useCase",
1942
- isAvailable: f,
1943
- dependencies: J,
1944
- config: async () => (await import("./PieChart.config-BP8OlSJ4.js")).pieChartConfig
1945
+ isAvailable: y,
1946
+ dependencies: q,
1947
+ config: async () => (await import("./PieChart.config-Bg-8cxWK.js")).pieChartConfig
1945
1948
  },
1946
1949
  scatter: {
1947
1950
  label: "chart.scatter.label",
@@ -1955,8 +1958,8 @@ var C = {
1955
1958
  available: !1,
1956
1959
  reason: "chart.availability.scatter"
1957
1960
  } : { available: !0 },
1958
- dependencies: J,
1959
- config: async () => (await import("./ScatterChart.config-DaJ3LVWH.js")).scatterChartConfig
1961
+ dependencies: q,
1962
+ config: async () => (await import("./ScatterChart.config-CdZrBorg.js")).scatterChartConfig
1960
1963
  },
1961
1964
  bubble: {
1962
1965
  label: "chart.bubble.label",
@@ -1970,49 +1973,49 @@ var C = {
1970
1973
  available: !1,
1971
1974
  reason: "chart.availability.bubble"
1972
1975
  } : { available: !0 },
1973
- dependencies: J,
1974
- config: async () => (await import("./BubbleChart.config-Du8aEfdQ.js")).bubbleChartConfig
1976
+ dependencies: q,
1977
+ config: async () => (await import("./BubbleChart.config-DxG_Umal.js")).bubbleChartConfig
1975
1978
  },
1976
1979
  radar: {
1977
1980
  label: "chart.radar.label",
1978
1981
  icon: "chartRadar",
1979
1982
  description: "chart.radar.description",
1980
1983
  useCase: "chart.radar.useCase",
1981
- isAvailable: f,
1982
- dependencies: J,
1983
- config: async () => (await import("./RadarChart.config-DJJuD-Tb.js")).radarChartConfig
1984
+ isAvailable: y,
1985
+ dependencies: q,
1986
+ config: async () => (await import("./RadarChart.config-DD1pX6FZ.js")).radarChartConfig
1984
1987
  },
1985
1988
  radialBar: {
1986
1989
  label: "chart.radialBar.label",
1987
1990
  icon: "chartRadialBar",
1988
1991
  description: "chart.radialBar.description",
1989
1992
  useCase: "chart.radialBar.useCase",
1990
- isAvailable: f,
1991
- dependencies: J,
1992
- config: async () => (await import("./RadialBarChart.config-DVM_jg9B.js")).radialBarChartConfig
1993
+ isAvailable: y,
1994
+ dependencies: q,
1995
+ config: async () => (await import("./RadialBarChart.config--VIE2jMM.js")).radialBarChartConfig
1993
1996
  },
1994
1997
  treemap: {
1995
1998
  label: "chart.treemap.label",
1996
1999
  icon: "chartTreemap",
1997
2000
  description: "chart.treemap.description",
1998
2001
  useCase: "chart.treemap.useCase",
1999
- isAvailable: f,
2000
- dependencies: J,
2001
- config: async () => (await import("./TreeMapChart.config-Cy3sAsJP.js")).treemapChartConfig
2002
+ isAvailable: y,
2003
+ dependencies: q,
2004
+ config: async () => (await import("./TreeMapChart.config-diJtcs4D.js")).treemapChartConfig
2002
2005
  },
2003
2006
  table: {
2004
2007
  label: "chart.table.label",
2005
2008
  icon: "chartTable",
2006
2009
  description: "chart.table.description",
2007
2010
  useCase: "chart.table.useCase",
2008
- config: async () => (await import("./DataTable.config-CF8BzQHu.js")).dataTableConfig
2011
+ config: async () => (await import("./DataTable.config-DS1bvaDu.js")).dataTableConfig
2009
2012
  },
2010
2013
  recordsTable: {
2011
2014
  label: "chart.recordsTable.label",
2012
2015
  icon: "chartRecordsTable",
2013
2016
  description: "chart.recordsTable.description",
2014
2017
  useCase: "chart.recordsTable.useCase",
2015
- config: async () => (await import("./RecordsTable.config-d4s8HV9m.js")).recordsTableConfig
2018
+ config: async () => (await import("./RecordsTable.config-CTBQc-2r.js")).recordsTableConfig
2016
2019
  },
2017
2020
  activityGrid: {
2018
2021
  label: "chart.activityGrid.label",
@@ -2026,62 +2029,62 @@ var C = {
2026
2029
  available: !1,
2027
2030
  reason: "chart.availability.requiresTimeDimension"
2028
2031
  } : { available: !0 },
2029
- config: async () => (await import("./ActivityGridChart.config-BpGv0FYq.js")).activityGridChartConfig
2032
+ config: async () => (await import("./ActivityGridChart.config-XMtoteb6.js")).activityGridChartConfig
2030
2033
  },
2031
2034
  kpiNumber: {
2032
2035
  label: "chart.kpiNumber.label",
2033
2036
  icon: "chartKpiNumber",
2034
2037
  description: "chart.kpiNumber.description",
2035
2038
  useCase: "chart.kpiNumber.useCase",
2036
- isAvailable: h,
2037
- config: async () => (await import("./KpiNumber.config-DNsH72Rs.js")).kpiNumberConfig
2039
+ isAvailable: f,
2040
+ config: async () => (await import("./KpiNumber.config-C00M46GA.js")).kpiNumberConfig
2038
2041
  },
2039
2042
  kpiDelta: {
2040
2043
  label: "chart.kpiDelta.label",
2041
2044
  icon: "chartKpiDelta",
2042
2045
  description: "chart.kpiDelta.description",
2043
2046
  useCase: "chart.kpiDelta.useCase",
2044
- isAvailable: f,
2045
- config: async () => (await import("./KpiDelta.config-Cqu1WOkV.js")).kpiDeltaConfig
2047
+ isAvailable: y,
2048
+ config: async () => (await import("./KpiDelta.config-CJeDdj_1.js")).kpiDeltaConfig
2046
2049
  },
2047
2050
  kpiText: {
2048
2051
  label: "chart.kpiText.label",
2049
2052
  icon: "chartKpiText",
2050
2053
  description: "chart.kpiText.description",
2051
2054
  useCase: "chart.kpiText.useCase",
2052
- isAvailable: h,
2053
- config: async () => (await import("./KpiText.config-CQGd10Hj.js")).kpiTextConfig
2055
+ isAvailable: f,
2056
+ config: async () => (await import("./KpiText.config-bKTHob0C.js")).kpiTextConfig
2054
2057
  },
2055
2058
  markdown: {
2056
2059
  label: "chart.markdown.label",
2057
2060
  icon: "chartMarkdown",
2058
2061
  description: "chart.markdown.description",
2059
2062
  useCase: "chart.markdown.useCase",
2060
- config: async () => (await import("./MarkdownChart.config-CBkJAEpW.js")).markdownConfig
2063
+ config: async () => (await import("./MarkdownChart.config-CaaJPO3c.js")).markdownConfig
2061
2064
  },
2062
2065
  funnel: {
2063
2066
  label: "chart.funnel.label",
2064
2067
  icon: "chartFunnel",
2065
2068
  description: "chart.funnel.description",
2066
2069
  useCase: "chart.funnel.useCase",
2067
- dependencies: J,
2068
- config: async () => (await import("./FunnelChart.config-AcSpen_Q.js")).funnelChartConfig
2070
+ dependencies: q,
2071
+ config: async () => (await import("./FunnelChart.config-ISZiz9fn.js")).funnelChartConfig
2069
2072
  },
2070
2073
  sankey: {
2071
2074
  label: "chart.sankey.label",
2072
2075
  icon: "chartSankey",
2073
2076
  description: "chart.sankey.description",
2074
2077
  useCase: "chart.sankey.useCase",
2075
- dependencies: J,
2076
- config: async () => (await import("./SankeyChart.config-CfMmdmXJ.js")).sankeyChartConfig
2078
+ dependencies: q,
2079
+ config: async () => (await import("./SankeyChart.config-DGTnRmYg.js")).sankeyChartConfig
2077
2080
  },
2078
2081
  sunburst: {
2079
2082
  label: "chart.sunburst.label",
2080
2083
  icon: "chartSunburst",
2081
2084
  description: "chart.sunburst.description",
2082
2085
  useCase: "chart.sunburst.useCase",
2083
- dependencies: J,
2084
- config: async () => (await import("./SunburstChart.config-DHgrSIkQ.js")).sunburstChartConfig
2086
+ dependencies: q,
2087
+ config: async () => (await import("./SunburstChart.config-RF3uu5Sa.js")).sunburstChartConfig
2085
2088
  },
2086
2089
  heatmap: {
2087
2090
  label: "chart.heatmap.label",
@@ -2099,46 +2102,46 @@ var C = {
2099
2102
  packageName: "@nivo/heatmap",
2100
2103
  installCommand: "npm install @nivo/heatmap"
2101
2104
  },
2102
- config: async () => (await import("./HeatMapChart.config-BgkP8kiW.js")).heatmapChartConfig
2105
+ config: async () => (await import("./HeatMapChart.config-uWvR0B-N.js")).heatmapChartConfig
2103
2106
  },
2104
2107
  retentionHeatmap: {
2105
2108
  label: "chart.retentionHeatmap.label",
2106
2109
  icon: "chartRetention",
2107
2110
  description: "chart.retentionHeatmap.description",
2108
2111
  useCase: "chart.retentionHeatmap.useCase",
2109
- config: async () => (await import("./RetentionHeatmap.config-P3VVn3QJ.js")).retentionHeatmapConfig
2112
+ config: async () => (await import("./RetentionHeatmap.config-Co-JMzBm.js")).retentionHeatmapConfig
2110
2113
  },
2111
2114
  retentionCombined: {
2112
2115
  label: "chart.retentionCombined.label",
2113
2116
  icon: "chartRetention",
2114
2117
  description: "chart.retentionCombined.description",
2115
2118
  useCase: "chart.retentionCombined.useCase",
2116
- config: async () => (await import("./RetentionCombinedChart.config-DV1h3rW2.js")).retentionCombinedConfig
2119
+ config: async () => (await import("./RetentionCombinedChart.config-PGVxnkRL.js")).retentionCombinedConfig
2117
2120
  },
2118
2121
  boxPlot: {
2119
2122
  label: "chart.boxPlot.label",
2120
2123
  icon: "chartBoxPlot",
2121
2124
  description: "chart.boxPlot.description",
2122
2125
  useCase: "chart.boxPlot.useCase",
2123
- isAvailable: f,
2124
- config: async () => (await import("./BoxPlotChart.config-BEHZDgrz.js")).boxPlotChartConfig
2126
+ isAvailable: y,
2127
+ config: async () => (await import("./BoxPlotChart.config-mfAHqmcp.js")).boxPlotChartConfig
2125
2128
  },
2126
2129
  dotStrip: {
2127
2130
  label: "chart.dotStrip.label",
2128
2131
  icon: "chartDotStrip",
2129
2132
  description: "chart.dotStrip.description",
2130
2133
  useCase: "chart.dotStrip.useCase",
2131
- isAvailable: f,
2132
- config: async () => (await import("./DotStripChart.config-CfHh0XSW.js")).dotStripChartConfig
2134
+ isAvailable: y,
2135
+ config: async () => (await import("./DotStripChart.config-Bdk5-YfB.js")).dotStripChartConfig
2133
2136
  },
2134
2137
  waterfall: {
2135
2138
  label: "chart.waterfall.label",
2136
2139
  icon: "chartWaterfall",
2137
2140
  description: "chart.waterfall.description",
2138
2141
  useCase: "chart.waterfall.useCase",
2139
- isAvailable: f,
2140
- dependencies: J,
2141
- config: async () => (await import("./WaterfallChart.config-DYEf1vQT.js")).waterfallChartConfig
2142
+ isAvailable: y,
2143
+ dependencies: q,
2144
+ config: async () => (await import("./WaterfallChart.config-BImlkLmR.js")).waterfallChartConfig
2142
2145
  },
2143
2146
  candlestick: {
2144
2147
  label: "chart.candlestick.label",
@@ -2152,7 +2155,7 @@ var C = {
2152
2155
  available: !1,
2153
2156
  reason: "chart.availability.requiresDimension"
2154
2157
  } : { available: !0 },
2155
- config: async () => (await import("./CandlestickChart.config-DBilZaFc.js")).candlestickChartConfig
2158
+ config: async () => (await import("./CandlestickChart.config-Cqw3XP1h.js")).candlestickChartConfig
2156
2159
  },
2157
2160
  measureProfile: {
2158
2161
  label: "chart.measureProfile.label",
@@ -2163,31 +2166,31 @@ var C = {
2163
2166
  available: !1,
2164
2167
  reason: "chart.availability.requiresTwoMeasures"
2165
2168
  } : { available: !0 },
2166
- dependencies: J,
2167
- config: async () => (await import("./MeasureProfileChart.config-VIvr7lq6.js")).measureProfileChartConfig
2169
+ dependencies: q,
2170
+ config: async () => (await import("./MeasureProfileChart.config-DMOnkmb6.js")).measureProfileChartConfig
2168
2171
  },
2169
2172
  proportionBar: {
2170
2173
  label: "chart.proportionBar.label",
2171
2174
  icon: "chartProportionBar",
2172
2175
  description: "chart.proportionBar.description",
2173
2176
  useCase: "chart.proportionBar.useCase",
2174
- isAvailable: f,
2175
- config: async () => (await import("./ProportionBarChart.config-CtZaP8Xn.js")).proportionBarChartConfig
2177
+ isAvailable: y,
2178
+ config: async () => (await import("./ProportionBarChart.config-BlCedy1v.js")).proportionBarChartConfig
2176
2179
  },
2177
2180
  gauge: {
2178
2181
  label: "chart.gauge.label",
2179
2182
  icon: "chartGauge",
2180
2183
  description: "chart.gauge.description",
2181
2184
  useCase: "chart.gauge.useCase",
2182
- isAvailable: h,
2185
+ isAvailable: f,
2183
2186
  dependencies: {
2184
2187
  packageName: "d3-shape",
2185
2188
  installCommand: "npm install d3-shape"
2186
2189
  },
2187
- config: async () => (await import("./GaugeChart.config-BChbha74.js")).gaugeChartConfig
2190
+ config: async () => (await import("./GaugeChart.config-BjGfB84t.js")).gaugeChartConfig
2188
2191
  }
2189
2192
  };
2190
- function pe(e, t) {
2193
+ function he(e, t) {
2191
2194
  return {
2192
2195
  ...t,
2193
2196
  label: e.label,
@@ -2198,52 +2201,52 @@ function pe(e, t) {
2198
2201
  }
2199
2202
  //#endregion
2200
2203
  //#region src/client/charts/chartConfigRegistry.ts
2201
- var me = {
2202
- bar: C,
2203
- line: w,
2204
- area: T,
2205
- pie: E,
2206
- scatter: D,
2207
- bubble: O,
2208
- radar: k,
2209
- radialBar: A,
2210
- treemap: j,
2211
- table: M,
2212
- recordsTable: N,
2213
- activityGrid: P,
2214
- kpiNumber: F,
2215
- kpiDelta: I,
2216
- kpiText: L,
2217
- markdown: R,
2218
- funnel: z,
2219
- sankey: B,
2220
- sunburst: V,
2221
- heatmap: H,
2222
- retentionHeatmap: ce,
2223
- retentionCombined: U,
2224
- boxPlot: W,
2225
- dotStrip: G,
2226
- waterfall: K,
2227
- candlestick: q,
2228
- measureProfile: le,
2229
- proportionBar: ue,
2230
- gauge: de
2231
- }, Y = Object.fromEntries(Object.keys(fe).map((e) => [e, pe(fe[e], me[e])]));
2232
- function he(e) {
2233
- return Y[e]?.recordGrain === !0;
2204
+ var ge = {
2205
+ bar: w,
2206
+ line: T,
2207
+ area: E,
2208
+ pie: D,
2209
+ scatter: O,
2210
+ bubble: k,
2211
+ radar: A,
2212
+ radialBar: j,
2213
+ treemap: M,
2214
+ table: N,
2215
+ recordsTable: P,
2216
+ activityGrid: F,
2217
+ kpiNumber: I,
2218
+ kpiDelta: L,
2219
+ kpiText: R,
2220
+ markdown: z,
2221
+ funnel: B,
2222
+ sankey: V,
2223
+ sunburst: H,
2224
+ heatmap: ce,
2225
+ retentionHeatmap: U,
2226
+ retentionCombined: W,
2227
+ boxPlot: G,
2228
+ dotStrip: K,
2229
+ waterfall: le,
2230
+ candlestick: ue,
2231
+ measureProfile: de,
2232
+ proportionBar: fe,
2233
+ gauge: pe
2234
+ }, J = Object.fromEntries(Object.keys(me).map((e) => [e, he(me[e], ge[e])]));
2235
+ function _e(e) {
2236
+ return J[e]?.recordGrain === !0;
2234
2237
  }
2235
2238
  //#endregion
2236
2239
  //#region src/server/agent/chart-validation.ts
2237
- function X(e) {
2240
+ function Y(e) {
2238
2241
  return Array.isArray(e) ? e.length > 0 : !!e;
2239
2242
  }
2240
- function Z(e) {
2243
+ function X(e) {
2241
2244
  let t = e.timeDimensions ?? [];
2242
2245
  return e.ungrouped ? t : t.filter((e) => !!e.granularity);
2243
2246
  }
2244
- function ge(e, n, r, i) {
2247
+ function ve(e, n, r, i) {
2245
2248
  for (let a of e.dropZones) {
2246
- if (!a.mandatory || X(r?.[a.key])) continue;
2249
+ if (!a.mandatory || Y(r?.[a.key])) continue;
2247
2250
  let e = a.acceptTypes?.join("/") ?? "fields";
2248
2251
  i.push(t("server.validation.chart.dropZoneRequired", {
2249
2252
  key: a.key,
@@ -2253,37 +2256,37 @@ function ge(e, n, r, i) {
2253
2256
  }));
2254
2257
  }
2255
2258
  }
2256
- function _e(e, n, r) {
2257
- if (X(e?.xAxis)) return;
2258
- let i = n.dimensions ?? [], a = Z(n), o = i.length > 0 || a.length > 0;
2259
+ function ye(e, n, r) {
2260
+ if (Y(e?.xAxis)) return;
2261
+ let i = n.dimensions ?? [], a = X(n), o = i.length > 0 || a.length > 0;
2259
2262
  r.push(t(o ? "server.validation.chart.barXAxisRequired" : "server.validation.chart.barNeedsDimension"));
2260
2263
  }
2261
- function ve(e) {
2264
+ function be(e) {
2262
2265
  return Array.isArray(e) ? e : [e];
2263
2266
  }
2264
- function ye(e, n) {
2267
+ function xe(e, n) {
2265
2268
  if (!e?.xAxis || !e?.series) return;
2266
- let r = new Set(ve(e.xAxis)), i = ve(e.series).filter((e) => r.has(e));
2269
+ let r = new Set(be(e.xAxis)), i = be(e.series).filter((e) => r.has(e));
2267
2270
  i.length > 0 && n.push(t("server.validation.chart.seriesDuplicatesXAxis", { duplicates: i.join(", ") }));
2268
2271
  }
2269
- function be(e, n, r) {
2270
- he(e) && n.ungrouped !== !0 && r.push(t("server.validation.chart.recordGrainNeedsUngrouped", { chartType: e }));
2272
+ function Se(e, n, r) {
2273
+ _e(e) && n.ungrouped !== !0 && r.push(t("server.validation.chart.recordGrainNeedsUngrouped", { chartType: e }));
2271
2274
  }
2272
- function xe(e, t, n) {
2273
- let r = Y[e];
2275
+ function Ce(e, t, n) {
2276
+ let r = J[e];
2274
2277
  if (!r || r.skipQuery) return {
2275
2278
  isValid: !0,
2276
2279
  errors: []
2277
2280
  };
2278
2281
  let i = [];
2279
- return ge(r, e, t, i), be(e, n, i), e === "bar" && _e(t, n, i), ye(t, i), {
2282
+ return ve(r, e, t, i), Se(e, n, i), e === "bar" && ye(t, n, i), xe(t, i), {
2280
2283
  isValid: i.length === 0,
2281
2284
  errors: i
2282
2285
  };
2283
2286
  }
2284
- function Se(e, t, n) {
2285
- if (e !== "bar" || X(t?.xAxis)) return { chartType: e };
2286
- let r = n.dimensions ?? [], i = Z(n);
2287
+ function we(e, t, n) {
2288
+ if (e !== "bar" || Y(t?.xAxis)) return { chartType: e };
2289
+ let r = n.dimensions ?? [], i = X(n);
2287
2290
  if (r.length > 0 || i.length > 0) return { chartType: e };
2288
2291
  let a = (n.measures ?? []).length === 1 ? "kpiNumber" : "table";
2289
2292
  return {
@@ -2291,7 +2294,7 @@ function Se(e, t, n) {
2291
2294
  note: `Note: chartType was changed from "bar" to "${a}" because the query has no dimension, so a bar chart would have no category axis to label its bars. For a real bar chart, put the category in the query's dimensions and use a single measure. To plot several measures as an ordered profile instead, use "measureProfile".`
2292
2295
  };
2293
2296
  }
2294
- function Ce(e, t, n, r) {
2297
+ function Te(e, t, n, r) {
2295
2298
  if (!(e.acceptTypes ?? []).includes("measure")) return;
2296
2299
  let i = /* @__PURE__ */ new Set();
2297
2300
  for (let r of t.dropZones) {
@@ -2302,7 +2305,7 @@ function Ce(e, t, n, r) {
2302
2305
  let a = r.filter((e) => !i.has(e));
2303
2306
  a.length > 0 && (n[e.key] = a[0]);
2304
2307
  }
2305
- function we(e, t) {
2308
+ function Ee(e, t) {
2306
2309
  let n = /* @__PURE__ */ new Set();
2307
2310
  for (let [r, i] of Object.entries(e)) if (r !== t) {
2308
2311
  if (Array.isArray(i)) for (let e of i) typeof e == "string" && n.add(e);
@@ -2310,34 +2313,34 @@ function we(e, t) {
2310
2313
  }
2311
2314
  return n;
2312
2315
  }
2313
- function Te(e, t, n) {
2316
+ function De(e, t, n) {
2314
2317
  let r = e.acceptTypes ?? [], i = [];
2315
2318
  if (r.includes("dimension") && i.push(...n.dimensions), r.includes("timeDimension") && i.push(...n.timeDimFields), r.includes("measure") && i.push(...n.measures), i.length === 0) return;
2316
- let a = we(t, e.key), o = i.filter((e) => !a.has(e));
2319
+ let a = Ee(t, e.key), o = i.filter((e) => !a.has(e));
2317
2320
  if (o.length === 0) return;
2318
2321
  let s = e.maxItems ?? Infinity, c = o.slice(0, s);
2319
2322
  c.length > 0 && (t[e.key] = c);
2320
2323
  }
2321
- function Ee(e, t, n) {
2322
- let r = Y[e];
2324
+ function Oe(e, t, n) {
2325
+ let r = J[e];
2323
2326
  if (!r) return t ?? {};
2324
- let i = { ...t }, a = Z(n), o = {
2327
+ let i = { ...t }, a = X(n), o = {
2325
2328
  measures: n.measures ?? [],
2326
2329
  dimensions: n.dimensions ?? [],
2327
2330
  timeDimFields: a.map((e) => e.dimension)
2328
2331
  };
2329
- for (let e of r.dropZones) e.excludeFromInference || X(i[e.key]) || (e.key === "sizeField" || e.key === "colorField" ? Ce(e, r, i, o.measures) : Te(e, i, o));
2332
+ for (let e of r.dropZones) e.excludeFromInference || Y(i[e.key]) || (e.key === "sizeField" || e.key === "colorField" ? Te(e, r, i, o.measures) : De(e, i, o));
2330
2333
  return i;
2331
2334
  }
2332
- function De(n) {
2335
+ function ke(n) {
2333
2336
  return n ? e(n) ? t(n) : n : "";
2334
2337
  }
2335
- function Oe(e) {
2338
+ function Ae(e) {
2336
2339
  let t = ["\nChart config requirements by type:"];
2337
2340
  for (let n of e) {
2338
- let e = Y[n];
2341
+ let e = J[n];
2339
2342
  if (!e) continue;
2340
- let r = [De(e.description), De(e.useCase)].filter(Boolean).join(". "), i = r ? ` — ${r}.` : "", a = he(n) ? " Query MUST set \"ungrouped\": true, which also means one cube plus its to-one joins — an ungrouped query cannot span a hasMany relationship." : "", o = e.dropZones.filter((e) => e.mandatory);
2343
+ let r = [ke(e.description), ke(e.useCase)].filter(Boolean).join(". "), i = r ? ` — ${r}.` : "", a = _e(n) ? " Query MUST set \"ungrouped\": true, which also means one cube plus its to-one joins — an ungrouped query cannot span a hasMany relationship." : "", o = e.dropZones.filter((e) => e.mandatory);
2341
2344
  if (o.length === 0 && !e.skipQuery) {
2342
2345
  t.push(` ${n}${i}${a} chartConfig auto-inferred from query.`);
2343
2346
  continue;
@@ -2356,7 +2359,7 @@ function Oe(e) {
2356
2359
  }
2357
2360
  //#endregion
2358
2361
  //#region src/server/agent/data-shape.ts
2359
- function ke(e, t, n, r) {
2362
+ function je(e, t, n, r) {
2360
2363
  let i = /* @__PURE__ */ new Set(), a = 0, o, s, c = !0;
2361
2364
  for (let n of e) {
2362
2365
  let e = n[t];
@@ -2380,28 +2383,28 @@ function ke(e, t, n, r) {
2380
2383
  } : {}
2381
2384
  };
2382
2385
  }
2383
- function Ae(e, t) {
2386
+ function Me(e, t) {
2384
2387
  if (e.length === 0) return [];
2385
2388
  let n = [], r = /* @__PURE__ */ new Set(), i = [
2386
2389
  ["dimension", t?.dimensions],
2387
2390
  ["timeDimension", t?.timeDimensions],
2388
2391
  ["measure", t?.measures]
2389
2392
  ];
2390
- for (let [t, a] of i) for (let [i, o] of Object.entries(a ?? {})) r.add(i), n.push(ke(e, i, t, o?.type));
2391
- for (let t of Object.keys(e[0])) r.has(t) || n.push(ke(e, t, "dimension", void 0));
2393
+ for (let [t, a] of i) for (let [i, o] of Object.entries(a ?? {})) r.add(i), n.push(je(e, i, t, o?.type));
2394
+ for (let t of Object.keys(e[0])) r.has(t) || n.push(je(e, t, "dimension", void 0));
2392
2395
  return n;
2393
2396
  }
2394
2397
  //#endregion
2395
2398
  //#region src/shared/query-shape.ts
2396
- function je(e) {
2399
+ function Z(e) {
2397
2400
  if (!e || typeof e != "object") return !1;
2398
2401
  let t = (e) => Array.isArray(e) ? e.length : 0;
2399
2402
  return t(e.measures) > 0 || t(e.dimensions) > 0 || t(e.timeDimensions) > 0;
2400
2403
  }
2401
2404
  //#endregion
2402
2405
  //#region src/server/agent/tools.ts
2403
- var Me = "With a query attached, `content` is rendered as a Knap template over the result rows. Variables: `rows` (rows keyed by snake_case alias, so Employees.avgSalary becomes employees_avg_salary), `labelled` (same rows keyed by field label — use this for `{{ labelled | table }}` so column headers read well), `data` (raw rows, addressed as `{{ data[0][\"Employees.count\"] }}`), `rowCount`, `first` and `last`. Filters include sum, map, join, length, sort, reverse, slice, round, number_format, date and table. Example: `We employ {{ rows | map:\"employees_count\" | sum }} people across {{ rowCount }} teams.` A template cannot sort and then index, so rely on the query's own order via `first` and `last`.", Q = /* @__PURE__ */ "bar.line.area.pie.scatter.radar.bubble.table.kpiNumber.kpiDelta.kpiText.funnel.heatmap.sankey.sunburst.retentionHeatmap.retentionCombined.boxPlot.markdown.recordsTable.treemap.radialBar.proportionBar.dotStrip.waterfall.measureProfile.activityGrid.gauge.candlestick".split(".");
2404
- function Ne() {
2406
+ var Ne = "With a query attached, `content` is rendered as a Knap template over the result rows. Variables: `rows` (rows keyed by snake_case alias, so Employees.avgSalary becomes employees_avg_salary), `labelled` (same rows keyed by field label — use this for `{{ labelled | table }}` so column headers read well), `data` (raw rows, addressed as `{{ data[0][\"Employees.count\"] }}`), `rowCount`, `first` and `last`. Filters include sum, map, join, length, sort, reverse, slice, round, number_format, date and table. Example: `We employ {{ rows | map:\"employees_count\" | sum }} people across {{ rowCount }} teams.` A template cannot sort and then index, so rely on the query's own order via `first` and `last`.", Q = /* @__PURE__ */ "bar.line.area.pie.scatter.radar.bubble.table.kpiNumber.kpiDelta.kpiText.funnel.heatmap.sankey.sunburst.retentionHeatmap.retentionCombined.boxPlot.markdown.recordsTable.treemap.radialBar.proportionBar.dotStrip.waterfall.measureProfile.activityGrid.gauge.candlestick".split(".");
2407
+ function Pe() {
2405
2408
  return [
2406
2409
  {
2407
2410
  name: "discover_cubes",
@@ -2446,7 +2449,7 @@ function Ne() {
2446
2449
  },
2447
2450
  {
2448
2451
  name: "add_portlet",
2449
- description: "Add a chart visualization to the notebook.\n" + Oe(Q) + "\nThe query is validated before adding. The portlet fetches its own data.",
2452
+ description: "Add a chart visualization to the notebook.\n" + Ae(Q) + "\nThe query is validated before adding. The portlet fetches its own data.",
2450
2453
  parameters: {
2451
2454
  type: "object",
2452
2455
  properties: {
@@ -2502,7 +2505,7 @@ function Ne() {
2502
2505
  },
2503
2506
  content: {
2504
2507
  type: "string",
2505
- description: "Markdown body, for the \"markdown\" chart type. " + Me
2508
+ description: "Markdown body, for the \"markdown\" chart type. " + Ne
2506
2509
  },
2507
2510
  ...c,
2508
2511
  ...u
@@ -2630,7 +2633,7 @@ function Ne() {
2630
2633
  },
2631
2634
  displayConfig: {
2632
2635
  type: "object",
2633
- description: "Chart display configuration (for markdown: { content, hideHeader, transparentBackground, autoHeight }). " + Me,
2636
+ description: "Chart display configuration (for markdown: { content, hideHeader, transparentBackground, autoHeight }). " + Ne,
2634
2637
  properties: {
2635
2638
  ...c,
2636
2639
  ...u
@@ -2742,7 +2745,7 @@ function Ne() {
2742
2745
  }
2743
2746
  ];
2744
2747
  }
2745
- function Pe(e) {
2748
+ function Fe(e) {
2746
2749
  let { semanticLayer: t, securityContext: n } = e, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
2747
2750
  r.set("discover_cubes", async (e) => {
2748
2751
  let r = { cubes: (await s(t, n, {
@@ -2808,7 +2811,7 @@ function Pe(e) {
2808
2811
  rowCount: a.data.length,
2809
2812
  data: s,
2810
2813
  truncated: a.data.length > s.length,
2811
- dataShape: Ae(s, a.annotation),
2814
+ dataShape: Me(s, a.annotation),
2812
2815
  annotation: a.annotation
2813
2816
  }) + "\n[IMPORTANT: Your next response MUST start with a brief text message BEFORE any tool calls. Now call add_markdown and add_portlet to visualize these results.]" };
2814
2817
  } catch (t) {
@@ -2845,9 +2848,9 @@ function Pe(e) {
2845
2848
  let s = !!(i.funnel || i.flow || i.retention), c, l = r, u;
2846
2849
  if (s) c = e.chartConfig ?? {};
2847
2850
  else {
2848
- let t = Se(r, e.chartConfig, i);
2851
+ let t = we(r, e.chartConfig, i);
2849
2852
  l = t.chartType, u = t.note;
2850
- let n = Ee(l, e.chartConfig, i), a = xe(l, n, i);
2853
+ let n = Oe(l, e.chartConfig, i), a = Ce(l, n, i);
2851
2854
  if (!a.isValid) return { error: `Chart config invalid — fix these errors and retry:\n${a.errors.join("\n")}\n\nchartType: ${l}\nAttempted chartConfig:\n${JSON.stringify(n, null, 2)}\n\nQuery:\n${JSON.stringify(i, null, 2)}` };
2852
2855
  c = n;
2853
2856
  }
@@ -2952,7 +2955,7 @@ function Pe(e) {
2952
2955
  i.push(`Portlet "${e.title}": invalid JSON query`);
2953
2956
  continue;
2954
2957
  }
2955
- if (u = a(u), c && !je(u)) continue;
2958
+ if (u = a(u), c && !Z(u)) continue;
2956
2959
  let d = t.validateQuery(u, n);
2957
2960
  if (!d.isValid) {
2958
2961
  i.push(`Portlet "${e.title}": ${d.errors.join(", ")}`);
@@ -2962,7 +2965,7 @@ function Pe(e) {
2962
2965
  s.set(e, r);
2963
2966
  continue;
2964
2967
  }
2965
- let f = Se(r, e.chartConfig, u).chartType, p = Ee(f, e.chartConfig, u), m = xe(f, p, u);
2968
+ let f = we(r, e.chartConfig, u).chartType, p = Oe(f, e.chartConfig, u), m = Ce(f, p, u);
2966
2969
  if (!m.isValid) {
2967
2970
  i.push(`Portlet "${e.title}": ${m.errors.join(", ")}`);
2968
2971
  continue;
@@ -2990,7 +2993,7 @@ function Pe(e) {
2990
2993
  chartConfig: o.get(e) ?? e.chartConfig ?? {},
2991
2994
  displayConfig: e.displayConfig || {}
2992
2995
  } },
2993
- query: n && !je(c) ? {} : c
2996
+ query: n && !Z(c) ? {} : c
2994
2997
  };
2995
2998
  return {
2996
2999
  id: e.id,
@@ -3027,14 +3030,14 @@ function Pe(e) {
3027
3030
  }
3028
3031
  //#endregion
3029
3032
  //#region src/server/agent/providers/factory.ts
3030
- async function Fe(e, t, n) {
3033
+ async function Ie(e, t, n) {
3031
3034
  switch (e) {
3032
3035
  case "anthropic": {
3033
3036
  let { AnthropicProvider: e } = await import("./anthropic-MQlafOZv.js");
3034
3037
  return new e(t);
3035
3038
  }
3036
3039
  case "openai": {
3037
- let { OpenAIProvider: e } = await import("./openai-CnUBYFyY.js");
3040
+ let { OpenAIProvider: e } = await import("./openai-C4HrjyJj.js");
3038
3041
  return new e(t, n);
3039
3042
  }
3040
3043
  case "google": {
@@ -3046,7 +3049,7 @@ async function Fe(e, t, n) {
3046
3049
  }
3047
3050
  //#endregion
3048
3051
  //#region src/server/agent/handler-steps.ts
3049
- function Ie(e, t) {
3052
+ function Le(e, t) {
3050
3053
  if (Array.isArray(t)) for (let n of t) e.push(n);
3051
3054
  else e.push(t);
3052
3055
  }
@@ -3055,7 +3058,7 @@ function $(e) {
3055
3058
  e();
3056
3059
  } catch {}
3057
3060
  }
3058
- function Le(e, t) {
3061
+ function Re(e, t) {
3059
3062
  let n = [];
3060
3063
  if (!e || e.length === 0) return n;
3061
3064
  for (let r of e) {
@@ -3088,7 +3091,7 @@ function Le(e, t) {
3088
3091
  content: typeof e.result == "string" ? e.result : JSON.stringify(e.result ?? ""),
3089
3092
  isError: e.status === "error"
3090
3093
  }));
3091
- Ie(n, t.formatToolResults(i));
3094
+ Le(n, t.formatToolResults(i));
3092
3095
  } else e.length > 0 && n.push({
3093
3096
  role: "assistant",
3094
3097
  content: r.content
@@ -3096,22 +3099,22 @@ function Le(e, t) {
3096
3099
  }
3097
3100
  return n;
3098
3101
  }
3099
- function Re(e, t) {
3102
+ function ze(e, t) {
3100
3103
  if (e?.type === "tool_use" && t) try {
3101
3104
  e.input = JSON.parse(t);
3102
3105
  } catch {
3103
3106
  e.input = {}, e.inputParseError = !0;
3104
3107
  }
3105
3108
  }
3106
- function ze(e, t) {
3109
+ function Be(e, t) {
3107
3110
  let n = e.contentBlocks[e.contentBlocks.length - 1];
3108
3111
  n && n.type === "text" ? n.text = (n.text || "") + t : e.contentBlocks.push({
3109
3112
  type: "text",
3110
3113
  text: t
3111
3114
  });
3112
3115
  }
3113
- function Be(e, t) {
3114
- e.currentBlockIsToolUse && e.currentToolInputJson && Re(e.contentBlocks[e.contentBlocks.length - 1], e.currentToolInputJson), e.contentBlocks.push({
3116
+ function Ve(e, t) {
3117
+ e.currentBlockIsToolUse && e.currentToolInputJson && ze(e.contentBlocks[e.contentBlocks.length - 1], e.currentToolInputJson), e.contentBlocks.push({
3115
3118
  type: "tool_use",
3116
3119
  id: t.id,
3117
3120
  name: t.name,
@@ -3119,16 +3122,16 @@ function Be(e, t) {
3119
3122
  ...t.metadata ? { metadata: t.metadata } : {}
3120
3123
  }), e.currentToolInputJson = "", e.currentBlockIsToolUse = !0;
3121
3124
  }
3122
- function Ve(e, t) {
3125
+ function He(e, t) {
3123
3126
  if (t.id && t.input) {
3124
3127
  let n = e.contentBlocks.find((e) => e.type === "tool_use" && e.id === t.id);
3125
3128
  n && (n.input = t.input, t.parseError && (n.inputParseError = !0));
3126
3129
  } else if (e.currentBlockIsToolUse) {
3127
3130
  let t = e.contentBlocks[e.contentBlocks.length - 1];
3128
- t?.type === "tool_use" && e.currentToolInputJson && (Re(t, e.currentToolInputJson), e.currentToolInputJson = ""), e.currentBlockIsToolUse = !1;
3131
+ t?.type === "tool_use" && e.currentToolInputJson && (ze(t, e.currentToolInputJson), e.currentToolInputJson = ""), e.currentBlockIsToolUse = !1;
3129
3132
  }
3130
3133
  }
3131
- async function* He(e, t) {
3134
+ async function* Ue(e, t) {
3132
3135
  let n = {
3133
3136
  contentBlocks: [],
3134
3137
  currentToolInputJson: "",
@@ -3139,13 +3142,13 @@ async function* He(e, t) {
3139
3142
  let e = r;
3140
3143
  switch (e.type) {
3141
3144
  case "text_delta":
3142
- ze(n, e.text), yield {
3145
+ Be(n, e.text), yield {
3143
3146
  type: "text_delta",
3144
3147
  data: e.text
3145
3148
  };
3146
3149
  break;
3147
3150
  case "tool_use_start":
3148
- Be(n, e), yield {
3151
+ Ve(n, e), yield {
3149
3152
  type: "tool_use_start",
3150
3153
  data: {
3151
3154
  id: e.id,
@@ -3158,7 +3161,7 @@ async function* He(e, t) {
3158
3161
  n.currentToolInputJson += e.json;
3159
3162
  break;
3160
3163
  case "tool_use_end":
3161
- Ve(n, e);
3164
+ He(n, e);
3162
3165
  break;
3163
3166
  case "message_meta": e.inputTokens != null && (n.inputTokens = e.inputTokens), e.outputTokens != null && (n.outputTokens = e.outputTokens), e.stopReason && (n.stopReason = e.stopReason);
3164
3167
  }
@@ -3170,7 +3173,7 @@ async function* He(e, t) {
3170
3173
  outputTokens: n.outputTokens
3171
3174
  };
3172
3175
  }
3173
- async function* Ue(e, t) {
3176
+ async function* We(e, t) {
3174
3177
  let { executor: n, observability: r, traceId: i, turn: a } = t, o = e.name, s = e.input || {}, c = e.id;
3175
3178
  if (e.inputParseError) {
3176
3179
  let e = `Could not parse the arguments you sent for ${o} — they were not valid JSON, so the tool was not run. Call it again with well-formed JSON arguments.`;
@@ -3261,26 +3264,26 @@ async function* Ue(e, t) {
3261
3264
  };
3262
3265
  }
3263
3266
  }
3264
- async function* We(e, t) {
3267
+ async function* Ge(e, t) {
3265
3268
  let n = [];
3266
3269
  for (let r of e) {
3267
3270
  if (r.type !== "tool_use") continue;
3268
- let e = yield* Ue(r, t);
3271
+ let e = yield* We(r, t);
3269
3272
  n.push(e);
3270
3273
  }
3271
3274
  return n;
3272
3275
  }
3273
3276
  //#endregion
3274
3277
  //#region src/server/agent/handler.ts
3275
- var Ge = {
3278
+ var Ke = {
3276
3279
  anthropic: "claude-sonnet-4-6",
3277
3280
  openai: "gpt-4.1-mini",
3278
3281
  google: "gemini-3-flash-preview"
3279
3282
  };
3280
- async function* Ke(e) {
3281
- let { message: n, history: r, semanticLayer: i, securityContext: a, agentConfig: o, apiKey: s } = e, c = e.sessionId || crypto.randomUUID(), l = o.observability, u = crypto.randomUUID(), d = Date.now(), f = e.providerOverride || o.provider || "anthropic", p = e.modelOverride || o.model || Ge[f] || "claude-sonnet-4-6", m = e.baseURLOverride || o.baseURL, h = o.maxTurns || 25, g = o.maxTokens || 8192, _;
3283
+ async function* qe(e) {
3284
+ let { message: n, history: r, semanticLayer: i, securityContext: a, agentConfig: o, apiKey: s } = e, c = e.sessionId || crypto.randomUUID(), l = o.observability, u = crypto.randomUUID(), d = Date.now(), f = e.providerOverride || o.provider || "anthropic", p = e.modelOverride || o.model || Ke[f] || "claude-sonnet-4-6", m = e.baseURLOverride || o.baseURL, h = o.maxTurns || 25, g = o.maxTokens || 8192, _;
3282
3285
  try {
3283
- _ = await Fe(f, s, { baseURL: m });
3286
+ _ = await Ie(f, s, { baseURL: m });
3284
3287
  } catch (e) {
3285
3288
  console.error("[agent] Failed to create %s provider: %s", String(f).replace(/\n|\r/g, ""), String(e instanceof Error ? e.message : e).replace(/\n|\r/g, "")), yield {
3286
3289
  type: "error",
@@ -3288,7 +3291,7 @@ async function* Ke(e) {
3288
3291
  };
3289
3292
  return;
3290
3293
  }
3291
- let v = Ne(), y = Pe({
3294
+ let v = Pe(), y = Fe({
3292
3295
  semanticLayer: i,
3293
3296
  securityContext: a
3294
3297
  }), b = se(i.getMetadata(a));
@@ -3299,7 +3302,7 @@ async function* Ke(e) {
3299
3302
  model: p,
3300
3303
  historyLength: r?.length ?? 0
3301
3304
  }));
3302
- let x = Le(r, _);
3305
+ let x = Re(r, _);
3303
3306
  x.push({
3304
3307
  role: "user",
3305
3308
  content: n
@@ -3314,7 +3317,7 @@ async function* Ke(e) {
3314
3317
  system: b,
3315
3318
  tools: v,
3316
3319
  messages: x
3317
- }), r = Date.now(), { contentBlocks: i, stopReason: a, inputTokens: o, outputTokens: s } = yield* He(_, n);
3320
+ }), r = Date.now(), { contentBlocks: i, stopReason: a, inputTokens: o, outputTokens: s } = yield* Ue(_, n);
3318
3321
  if ($(() => l?.onGenerationEnd?.({
3319
3322
  traceId: u,
3320
3323
  turn: e,
@@ -3336,7 +3339,7 @@ async function* Ke(e) {
3336
3339
  break;
3337
3340
  }
3338
3341
  if (!_.shouldContinue(a)) break;
3339
- let c = yield* We(i, {
3342
+ let c = yield* Ge(i, {
3340
3343
  executor: y,
3341
3344
  observability: l,
3342
3345
  traceId: u,
@@ -3345,7 +3348,7 @@ async function* Ke(e) {
3345
3348
  yield {
3346
3349
  type: "turn_complete",
3347
3350
  data: {}
3348
- }, Ie(x, _.formatToolResults(c));
3351
+ }, Le(x, _.formatToolResults(c));
3349
3352
  }
3350
3353
  $(() => l?.onChatEnd?.({
3351
3354
  traceId: u,
@@ -3376,4 +3379,4 @@ async function* Ke(e) {
3376
3379
  }
3377
3380
  }
3378
3381
  //#endregion
3379
- export { k as C, T as D, E, w as O, A as S, D as T, F as _, K as a, M as b, U as c, V as d, B as f, I as g, L as h, Ke as handleAgentChat, q as i, C as k, ce as l, R as m, ue as n, G as o, z as p, le as r, W as s, de as t, H as u, P as v, O as w, j as x, N as y };
3382
+ export { A as C, E as D, D as E, T as O, j as S, O as T, I as _, le as a, N as b, W as c, H as d, V as f, L as g, R as h, qe as handleAgentChat, ue as i, w as k, U as l, z as m, fe as n, K as o, B as p, de as r, G as s, pe as t, ce as u, F as v, k as w, M as x, P as y };