drizzle-cube 0.8.0 → 0.8.2

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 (329) hide show
  1. package/dist/adapters/ActivityGridChart.config-Bc7mPqcf.cjs +1 -0
  2. package/dist/adapters/ActivityGridChart.config-Dd2YDeaM.js +2 -0
  3. package/dist/adapters/AreaChart.config-BqNusnpg.js +2 -0
  4. package/dist/adapters/AreaChart.config-dI84V34B.cjs +1 -0
  5. package/dist/adapters/BarChart.config-B9MQjgLJ.cjs +1 -0
  6. package/dist/adapters/BarChart.config-Cq_qcxBA.js +2 -0
  7. package/dist/adapters/BoxPlotChart.config-XmtRN2xq.cjs +1 -0
  8. package/dist/adapters/BoxPlotChart.config-Zc-JGV-W.js +2 -0
  9. package/dist/adapters/BubbleChart.config-CU_18uxb.js +2 -0
  10. package/dist/adapters/BubbleChart.config-CbhOzA6-.cjs +1 -0
  11. package/dist/adapters/CandlestickChart.config-Bwo3uaa-.js +2 -0
  12. package/dist/adapters/CandlestickChart.config-CmRBlWFv.cjs +1 -0
  13. package/dist/adapters/DataTable.config-7JNSj6qQ.js +2 -0
  14. package/dist/adapters/DataTable.config-DNxm1sYk.cjs +1 -0
  15. package/dist/adapters/DotStripChart.config-B7Dl-T1h.js +2 -0
  16. package/dist/adapters/DotStripChart.config-Co4g1fpZ.cjs +1 -0
  17. package/dist/adapters/FunnelChart.config-D1TpuGtL.cjs +1 -0
  18. package/dist/adapters/FunnelChart.config-vuZScOHQ.js +2 -0
  19. package/dist/adapters/GaugeChart.config-BMgUHKhC.cjs +1 -0
  20. package/dist/adapters/GaugeChart.config-zdpFydo6.js +2 -0
  21. package/dist/adapters/HeatMapChart.config-4XMab1zq.js +2 -0
  22. package/dist/adapters/HeatMapChart.config-C-Ns6QBq.cjs +1 -0
  23. package/dist/adapters/KpiDelta.config-BGdqsHcc.js +2 -0
  24. package/dist/adapters/KpiDelta.config-DuNxrGIi.cjs +1 -0
  25. package/dist/adapters/KpiNumber.config-CkPWpcSz.js +2 -0
  26. package/dist/adapters/KpiNumber.config-DMGmuA3i.cjs +1 -0
  27. package/dist/adapters/KpiText.config-Bvtuv8vE.js +2 -0
  28. package/dist/adapters/KpiText.config-DOMLO16U.cjs +1 -0
  29. package/dist/adapters/LineChart.config-CJmTSmZ1.js +2 -0
  30. package/dist/adapters/LineChart.config-CrkGu0aa.cjs +1 -0
  31. package/dist/adapters/MarkdownChart.config-BgY5Xc97.cjs +1 -0
  32. package/dist/adapters/MarkdownChart.config-Cm6G4Yuh.js +2 -0
  33. package/dist/adapters/MeasureProfileChart.config-BYwDo_ox.cjs +1 -0
  34. package/dist/adapters/MeasureProfileChart.config-Dt7npubZ.js +2 -0
  35. package/dist/adapters/PieChart.config-BRbPctBN.cjs +1 -0
  36. package/dist/adapters/PieChart.config-HZofeody.js +2 -0
  37. package/dist/adapters/ProportionBarChart.config-B_rTtGZr.cjs +1 -0
  38. package/dist/adapters/ProportionBarChart.config-ChCSoM0L.js +2 -0
  39. package/dist/adapters/RadarChart.config-B9OdMEib.js +2 -0
  40. package/dist/adapters/RadarChart.config-BOgPD2Kz.cjs +1 -0
  41. package/dist/adapters/RadialBarChart.config-CeP7jEbq.js +2 -0
  42. package/dist/adapters/RadialBarChart.config-sivA1Jmo.cjs +1 -0
  43. package/dist/adapters/RecordsTable.config-BInSgo-G.js +2 -0
  44. package/dist/adapters/RecordsTable.config-CVmxLdjz.cjs +1 -0
  45. package/dist/adapters/RetentionCombinedChart.config-8ry7gh6X.cjs +1 -0
  46. package/dist/adapters/RetentionCombinedChart.config-Bxtxnlcf.js +2 -0
  47. package/dist/adapters/RetentionHeatmap.config-DCtOD8dO.js +2 -0
  48. package/dist/adapters/RetentionHeatmap.config-i-LgmmIT.cjs +1 -0
  49. package/dist/adapters/SankeyChart.config-DfpeHfNT.cjs +1 -0
  50. package/dist/adapters/SankeyChart.config-hfM0ACm1.js +2 -0
  51. package/dist/adapters/ScatterChart.config-BD2vfOZ6.js +2 -0
  52. package/dist/adapters/ScatterChart.config-CdpvRueF.cjs +1 -0
  53. package/dist/adapters/SunburstChart.config-Boyt88L_.cjs +1 -0
  54. package/dist/adapters/SunburstChart.config-BvrofzMv.js +2 -0
  55. package/dist/adapters/TreeMapChart.config-DBrqwtqT.js +2 -0
  56. package/dist/adapters/TreeMapChart.config-KcRLlZAG.cjs +1 -0
  57. package/dist/adapters/WaterfallChart.config-CuCGaIl5.cjs +1 -0
  58. package/dist/adapters/WaterfallChart.config-DZ8H0V2L.js +2 -0
  59. package/dist/adapters/{compiler-CQJ5GOwF.js → compiler-BFLAXV7W.js} +1160 -1861
  60. package/dist/adapters/compiler-DG6dLFQU.cjs +166 -0
  61. package/dist/adapters/core/index.cjs +1 -1
  62. package/dist/adapters/core/index.js +1 -1
  63. package/dist/adapters/{core-DgTGXxDu.cjs → core-CrJu6vJY.cjs} +1 -1
  64. package/dist/adapters/{core-DXkuSUBg.js → core-l3KMTu9u.js} +3 -3
  65. package/dist/adapters/express/index.cjs +1 -1
  66. package/dist/adapters/express/index.js +5 -5
  67. package/dist/adapters/fastify/index.cjs +1 -1
  68. package/dist/adapters/fastify/index.js +23 -23
  69. package/dist/{server/google-eKAc20al.js → adapters/google-DRY7jnOh.js} +46 -28
  70. package/dist/adapters/{google-BhvizbFR.cjs → google-PsZzwedr.cjs} +2 -2
  71. package/dist/adapters/handler-CRGZ8gd2.cjs +25 -0
  72. package/dist/adapters/{handler-CphYSZRh.js → handler-DESp4wPg.js} +454 -237
  73. package/dist/adapters/hono/index.cjs +1 -1
  74. package/dist/adapters/hono/index.js +4 -4
  75. package/dist/adapters/mcp-tools.cjs +1 -1
  76. package/dist/adapters/mcp-tools.js +2 -2
  77. package/dist/adapters/mcp-transport-BqdBHmXL.js +730 -0
  78. package/dist/adapters/mcp-transport-D8xZJLPD.cjs +42 -0
  79. package/dist/adapters/nextjs/index.cjs +1 -1
  80. package/dist/adapters/nextjs/index.js +5 -5
  81. package/dist/adapters/{openai-CBrN4nxl.js → openai-BJyU4kvE.js} +3 -3
  82. package/dist/adapters/{openai-CSzWluuv.cjs → openai-DH9MtcLA.cjs} +1 -1
  83. package/dist/adapters/{openai-D-VMcPao.js → openai-DK_KWiI7.js} +1 -1
  84. package/dist/adapters/{openai-CI9vGKSf.cjs → openai-GO3M7Hwi.cjs} +2 -2
  85. package/dist/adapters/{utils-DkmShl5f.js → utils-BhlkVCzZ.js} +1985 -1122
  86. package/dist/adapters/utils-C1JpSDOX.cjs +128 -0
  87. package/dist/adapters/utils.cjs +1 -1
  88. package/dist/adapters/utils.d.ts +17 -3
  89. package/dist/adapters/utils.js +1 -1
  90. package/dist/cjs/adapters/utils.d.ts +17 -3
  91. package/dist/cjs/client/charts/chartConfigRegistry.d.ts +7 -0
  92. package/dist/cjs/client/charts/chartConfigs.d.ts +17 -1
  93. package/dist/cjs/client/client/CubeClient.d.ts +11 -1
  94. package/dist/cjs/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +4 -2
  95. package/dist/cjs/client/components/AnalysisBuilder/ColumnFormatsEditor.d.ts +10 -0
  96. package/dist/cjs/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +3 -2
  97. package/dist/cjs/client/components/AnalysisBuilder/utils/queryUtils.d.ts +7 -1
  98. package/dist/cjs/client/components/analyticsPortlet/PortletChart.d.ts +2 -1
  99. package/dist/cjs/client/components/analyticsPortlet/PortletChartView.d.ts +4 -1
  100. package/dist/cjs/client/components/analyticsPortlet/usePortletDeadMembers.d.ts +24 -0
  101. package/dist/cjs/client/components/analyticsPortlet/usePortletPagination.d.ts +21 -0
  102. package/dist/cjs/client/components/charts/DotStripChart.config.d.ts +15 -0
  103. package/dist/cjs/client/components/charts/DotStripChart.d.ts +4 -0
  104. package/dist/cjs/client/components/charts/DotStripChart.helpers.d.ts +91 -0
  105. package/dist/cjs/client/components/charts/RecordsTable.config.d.ts +10 -0
  106. package/dist/cjs/client/components/charts/RecordsTable.d.ts +4 -0
  107. package/dist/cjs/client/components/charts/recordsTableHooks.d.ts +68 -0
  108. package/dist/cjs/client/icons/types.d.ts +2 -0
  109. package/dist/cjs/client/index.d.ts +2 -2
  110. package/dist/cjs/client/types.d.ts +97 -1
  111. package/dist/cjs/client/utils/recordsTableUtils.d.ts +71 -0
  112. package/dist/cjs/client/utils/rowLinkUtils.d.ts +35 -0
  113. package/dist/cjs/server/agent/chart-validation.d.ts +1 -1
  114. package/dist/cjs/server/ai/chart-schema.d.ts +117 -0
  115. package/dist/cjs/server/ai/discovery-helpers.d.ts +14 -0
  116. package/dist/cjs/server/ai/discovery.d.ts +6 -0
  117. package/dist/cjs/server/ai/query-schema.d.ts +1 -1
  118. package/dist/cjs/server/attribute-dimensions.d.ts +11 -8
  119. package/dist/cjs/server/builders/group-by-builder.d.ts +15 -0
  120. package/dist/cjs/server/compiler.d.ts +3 -4
  121. package/dist/cjs/server/executor.d.ts +15 -0
  122. package/dist/cjs/server/index.d.ts +2 -0
  123. package/dist/cjs/server/query-handlers.d.ts +1 -0
  124. package/dist/cjs/server/query-validator.d.ts +36 -4
  125. package/dist/cjs/server/types/core.d.ts +5 -0
  126. package/dist/cjs/server/types/cube.d.ts +12 -0
  127. package/dist/cjs/server/types/query.d.ts +8 -0
  128. package/dist/cli/index.cjs +134 -52
  129. package/dist/client/charts/chartConfigRegistry.d.ts +7 -0
  130. package/dist/client/charts/chartConfigs.d.ts +17 -1
  131. package/dist/client/charts.js +13 -13
  132. package/dist/client/chunks/{DashboardEditModal-9An5EDAz.js → DashboardEditModal-BliiIHcI.js} +1653 -1188
  133. package/dist/client/chunks/DashboardEditModal-BliiIHcI.js.map +1 -0
  134. package/dist/client/chunks/DotStripChart-ChwsVeRU.js +408 -0
  135. package/dist/client/chunks/DotStripChart-ChwsVeRU.js.map +1 -0
  136. package/dist/client/chunks/{ProportionBarChart-BVcbGY2C.js → ProportionBarChart-D-Qt9nkF.js} +3 -3
  137. package/dist/client/chunks/{ProportionBarChart-BVcbGY2C.js.map → ProportionBarChart-D-Qt9nkF.js.map} +1 -1
  138. package/dist/client/chunks/RecordsTable-aG-QYXOH.js +556 -0
  139. package/dist/client/chunks/RecordsTable-aG-QYXOH.js.map +1 -0
  140. package/dist/client/chunks/{RetentionCombinedChart-D68Rvdi-.js → RetentionCombinedChart-BRZ9w7ah.js} +3 -3
  141. package/dist/client/chunks/{RetentionCombinedChart-D68Rvdi-.js.map → RetentionCombinedChart-BRZ9w7ah.js.map} +1 -1
  142. package/dist/client/chunks/{RetentionHeatmap-CE7BAjrB.js → RetentionHeatmap-LkTt89pK.js} +2 -2
  143. package/dist/client/chunks/{RetentionHeatmap-CE7BAjrB.js.map → RetentionHeatmap-LkTt89pK.js.map} +1 -1
  144. package/dist/client/chunks/{analysis-builder-D1pYvvwc.js → analysis-builder-C0gJ3kDD.js} +169 -168
  145. package/dist/client/chunks/{analysis-builder-D1pYvvwc.js.map → analysis-builder-C0gJ3kDD.js.map} +1 -1
  146. package/dist/client/chunks/{analysis-builder-shared-BQvwUc6z.js → analysis-builder-shared-dqcpl_WL.js} +965 -954
  147. package/dist/client/chunks/analysis-builder-shared-dqcpl_WL.js.map +1 -0
  148. package/dist/client/chunks/{chart-activity-grid-DvD_4wJz.js → chart-activity-grid-CJzxC18G.js} +175 -84
  149. package/dist/client/chunks/chart-activity-grid-CJzxC18G.js.map +1 -0
  150. package/dist/client/chunks/{chart-area-DPp3hSOK.js → chart-area-C66dgy84.js} +21 -21
  151. package/dist/client/chunks/{chart-area-DPp3hSOK.js.map → chart-area-C66dgy84.js.map} +1 -1
  152. package/dist/client/chunks/{chart-bar-Od3pOyZ0.js → chart-bar-D9kiSOCT.js} +5 -5
  153. package/dist/client/chunks/{chart-bar-Od3pOyZ0.js.map → chart-bar-D9kiSOCT.js.map} +1 -1
  154. package/dist/client/chunks/{chart-box-plot-l0iFn2n2.js → chart-box-plot-FsLIMisc.js} +2 -2
  155. package/dist/client/chunks/{chart-box-plot-l0iFn2n2.js.map → chart-box-plot-FsLIMisc.js.map} +1 -1
  156. package/dist/client/chunks/{chart-bubble-Dl0RcP8N.js → chart-bubble-BzyvrqKs.js} +2 -2
  157. package/dist/client/chunks/{chart-bubble-Dl0RcP8N.js.map → chart-bubble-BzyvrqKs.js.map} +1 -1
  158. package/dist/client/chunks/{chart-candlestick-DZMqbscF.js → chart-candlestick-6lD35bLw.js} +2 -2
  159. package/dist/client/chunks/{chart-candlestick-DZMqbscF.js.map → chart-candlestick-6lD35bLw.js.map} +1 -1
  160. package/dist/client/chunks/{chart-data-table-DgiNBOWf.js → chart-data-table-Cou9qOab.js} +1222 -1029
  161. package/dist/client/chunks/chart-data-table-Cou9qOab.js.map +1 -0
  162. package/dist/client/chunks/{chart-funnel-YLZlyN1X.js → chart-funnel-B0775aaT.js} +2 -2
  163. package/dist/client/chunks/{chart-funnel-YLZlyN1X.js.map → chart-funnel-B0775aaT.js.map} +1 -1
  164. package/dist/client/chunks/{chart-gauge-BsqE2wwF.js → chart-gauge-pf-2E8w9.js} +3 -3
  165. package/dist/client/chunks/{chart-gauge-BsqE2wwF.js.map → chart-gauge-pf-2E8w9.js.map} +1 -1
  166. package/dist/client/chunks/{chart-heat-map-BsND8RM_.js → chart-heat-map-EzVGe6fl.js} +3 -3
  167. package/dist/client/chunks/{chart-heat-map-BsND8RM_.js.map → chart-heat-map-EzVGe6fl.js.map} +1 -1
  168. package/dist/client/chunks/{chart-kpi-delta-m0azuva-.js → chart-kpi-delta-lfskDdx4.js} +3 -3
  169. package/dist/client/chunks/{chart-kpi-delta-m0azuva-.js.map → chart-kpi-delta-lfskDdx4.js.map} +1 -1
  170. package/dist/client/chunks/{chart-kpi-number-6JS15SqF.js → chart-kpi-number-BnsofbTf.js} +5 -5
  171. package/dist/client/chunks/{chart-kpi-number-6JS15SqF.js.map → chart-kpi-number-BnsofbTf.js.map} +1 -1
  172. package/dist/client/chunks/{chart-kpi-text-BqX8p8Jn.js → chart-kpi-text-U5EdmdkV.js} +3 -3
  173. package/dist/client/chunks/{chart-kpi-text-BqX8p8Jn.js.map → chart-kpi-text-U5EdmdkV.js.map} +1 -1
  174. package/dist/client/chunks/{chart-line-NCmpxBfE.js → chart-line-IwXqPY80.js} +3 -3
  175. package/dist/client/chunks/{chart-line-NCmpxBfE.js.map → chart-line-IwXqPY80.js.map} +1 -1
  176. package/dist/client/chunks/{chart-markdown-ZOobqiiX.js → chart-markdown-yxN_xBP9.js} +2 -2
  177. package/dist/client/chunks/{chart-markdown-ZOobqiiX.js.map → chart-markdown-yxN_xBP9.js.map} +1 -1
  178. package/dist/client/chunks/{chart-measure-profile-CBAZaicJ.js → chart-measure-profile-Bs4vhBJQ.js} +3 -3
  179. package/dist/client/chunks/{chart-measure-profile-CBAZaicJ.js.map → chart-measure-profile-Bs4vhBJQ.js.map} +1 -1
  180. package/dist/client/chunks/{chart-pie-ChrasEI8.js → chart-pie-LDJfDXfX.js} +15 -15
  181. package/dist/client/chunks/{chart-pie-ChrasEI8.js.map → chart-pie-LDJfDXfX.js.map} +1 -1
  182. package/dist/client/chunks/{chart-radar-CxSVF7yL.js → chart-radar-BZY6TP9m.js} +13 -13
  183. package/dist/client/chunks/{chart-radar-CxSVF7yL.js.map → chart-radar-BZY6TP9m.js.map} +1 -1
  184. package/dist/client/chunks/{chart-radial-bar--SN0Wph0.js → chart-radial-bar-aga05X7h.js} +3 -3
  185. package/dist/client/chunks/{chart-radial-bar--SN0Wph0.js.map → chart-radial-bar-aga05X7h.js.map} +1 -1
  186. package/dist/client/chunks/{chart-sankey-CDOSGg9r.js → chart-sankey-MRCoWFd4.js} +2 -2
  187. package/dist/client/chunks/{chart-sankey-CDOSGg9r.js.map → chart-sankey-MRCoWFd4.js.map} +1 -1
  188. package/dist/client/chunks/{chart-scatter-DgcEF-kI.js → chart-scatter-DP-nn9hH.js} +3 -3
  189. package/dist/client/chunks/{chart-scatter-DgcEF-kI.js.map → chart-scatter-DP-nn9hH.js.map} +1 -1
  190. package/dist/client/chunks/{chart-sunburst-MB-jlGBm.js → chart-sunburst-DE4EX7zi.js} +3 -3
  191. package/dist/client/chunks/{chart-sunburst-MB-jlGBm.js.map → chart-sunburst-DE4EX7zi.js.map} +1 -1
  192. package/dist/client/chunks/{chart-tree-map-DeDXveVd.js → chart-tree-map-C3O6uQcP.js} +3 -3
  193. package/dist/client/chunks/{chart-tree-map-DeDXveVd.js.map → chart-tree-map-C3O6uQcP.js.map} +1 -1
  194. package/dist/client/chunks/{chart-waterfall-ur4vkO1j.js → chart-waterfall-DU2Fg_7P.js} +3 -3
  195. package/dist/client/chunks/{chart-waterfall-ur4vkO1j.js.map → chart-waterfall-DU2Fg_7P.js.map} +1 -1
  196. package/dist/client/chunks/charts-core-DnirPG1F.js +190 -0
  197. package/dist/client/chunks/charts-core-DnirPG1F.js.map +1 -0
  198. package/dist/client/chunks/charts-loader-tCSbqT7H.js +87 -0
  199. package/dist/client/chunks/charts-loader-tCSbqT7H.js.map +1 -0
  200. package/dist/client/chunks/{en-US-BE6VoG0o.js → en-US-HP6FHuNy.js} +3 -1
  201. package/dist/client/chunks/{en-US-BE6VoG0o.js.map → en-US-HP6FHuNy.js.map} +1 -1
  202. package/dist/client/chunks/{nl-NL-CMXHDBr0.js → nl-NL-B9VnaVAm.js} +89 -1
  203. package/dist/client/chunks/nl-NL-B9VnaVAm.js.map +1 -0
  204. package/dist/client/chunks/{schema-visualization-BEbFtUIL.js → schema-visualization-o1zzuMQy.js} +3 -3
  205. package/dist/client/chunks/{schema-visualization-BEbFtUIL.js.map → schema-visualization-o1zzuMQy.js.map} +1 -1
  206. package/dist/client/chunks/{useDirtyStateTracking-CSDg96Rw.js → useDirtyStateTracking-DTYbmRBn.js} +15 -15
  207. package/dist/client/chunks/{useDirtyStateTracking-CSDg96Rw.js.map → useDirtyStateTracking-DTYbmRBn.js.map} +1 -1
  208. package/dist/client/chunks/{useExplainAI-BnkoZ-zS.js → useExplainAI-MuC9jBn-.js} +16 -16
  209. package/dist/client/chunks/{useExplainAI-BnkoZ-zS.js.map → useExplainAI-MuC9jBn-.js.map} +1 -1
  210. package/dist/client/chunks/{vendor-BmJDaduD.js → vendor-XQT9APIq.js} +49 -49
  211. package/dist/client/chunks/{vendor-BmJDaduD.js.map → vendor-XQT9APIq.js.map} +1 -1
  212. package/dist/client/client/CubeClient.d.ts +11 -1
  213. package/dist/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +4 -2
  214. package/dist/client/components/AnalysisBuilder/ColumnFormatsEditor.d.ts +10 -0
  215. package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +3 -2
  216. package/dist/client/components/AnalysisBuilder/utils/queryUtils.d.ts +7 -1
  217. package/dist/client/components/analyticsPortlet/PortletChart.d.ts +2 -1
  218. package/dist/client/components/analyticsPortlet/PortletChartView.d.ts +4 -1
  219. package/dist/client/components/analyticsPortlet/usePortletDeadMembers.d.ts +24 -0
  220. package/dist/client/components/analyticsPortlet/usePortletPagination.d.ts +21 -0
  221. package/dist/client/components/charts/DotStripChart.config.d.ts +15 -0
  222. package/dist/client/components/charts/DotStripChart.d.ts +4 -0
  223. package/dist/client/components/charts/DotStripChart.helpers.d.ts +91 -0
  224. package/dist/client/components/charts/RecordsTable.config.d.ts +10 -0
  225. package/dist/client/components/charts/RecordsTable.d.ts +4 -0
  226. package/dist/client/components/charts/recordsTableHooks.d.ts +68 -0
  227. package/dist/client/components.js +1 -1
  228. package/dist/client/hooks.js +3 -3
  229. package/dist/client/icons/types.d.ts +2 -0
  230. package/dist/client/icons.js +2 -2
  231. package/dist/client/index.d.ts +2 -2
  232. package/dist/client/index.js +213 -213
  233. package/dist/client/providers.js +1 -1
  234. package/dist/client/schema.js +1 -1
  235. package/dist/client/styles.css +1 -1
  236. package/dist/client/types.d.ts +97 -1
  237. package/dist/client/utils/recordsTableUtils.d.ts +71 -0
  238. package/dist/client/utils/rowLinkUtils.d.ts +35 -0
  239. package/dist/client/utils.js +14 -14
  240. package/dist/client-bundle-stats.html +1 -1
  241. package/dist/mcp-app/mcp-app.html +101 -101
  242. package/dist/server/agent/chart-validation.d.ts +1 -1
  243. package/dist/server/ai/chart-schema.d.ts +117 -0
  244. package/dist/server/ai/discovery-helpers.d.ts +14 -0
  245. package/dist/server/ai/discovery.d.ts +6 -0
  246. package/dist/server/ai/query-schema.d.ts +1 -1
  247. package/dist/server/attribute-dimensions.d.ts +11 -8
  248. package/dist/server/builders/group-by-builder.d.ts +15 -0
  249. package/dist/server/compiler.d.ts +3 -4
  250. package/dist/server/executor.d.ts +15 -0
  251. package/dist/{adapters/google-eKAc20al.js → server/google-DRY7jnOh.js} +46 -28
  252. package/dist/server/{google-BhvizbFR.cjs → google-PsZzwedr.cjs} +2 -2
  253. package/dist/server/index.cjs +34 -34
  254. package/dist/server/index.d.ts +2 -0
  255. package/dist/server/index.js +1913 -1445
  256. package/dist/server/query-handlers.d.ts +1 -0
  257. package/dist/server/query-validator.d.ts +36 -4
  258. package/dist/server/types/core.d.ts +5 -0
  259. package/dist/server/types/cube.d.ts +12 -0
  260. package/dist/server/types/query.d.ts +8 -0
  261. package/package.json +1 -1
  262. package/dist/adapters/ActivityGridChart.config-BQhBE_Mr.js +0 -2
  263. package/dist/adapters/ActivityGridChart.config-C3tSuOGV.cjs +0 -1
  264. package/dist/adapters/AreaChart.config-3cme8HyQ.js +0 -2
  265. package/dist/adapters/AreaChart.config-BSxrT52Z.cjs +0 -1
  266. package/dist/adapters/BarChart.config-BKS8IecE.cjs +0 -1
  267. package/dist/adapters/BarChart.config-lt_7PdIi.js +0 -2
  268. package/dist/adapters/BoxPlotChart.config-B7qvRnrF.cjs +0 -1
  269. package/dist/adapters/BoxPlotChart.config-Dv6ECj2j.js +0 -2
  270. package/dist/adapters/BubbleChart.config-BrIH7OAy.cjs +0 -1
  271. package/dist/adapters/BubbleChart.config-Fhotb7Pg.js +0 -2
  272. package/dist/adapters/CandlestickChart.config-CWH41FmF.cjs +0 -1
  273. package/dist/adapters/CandlestickChart.config-RPtXuxsX.js +0 -2
  274. package/dist/adapters/DataTable.config-71L0GzlT.js +0 -2
  275. package/dist/adapters/DataTable.config-BsOMQq3J.cjs +0 -1
  276. package/dist/adapters/FunnelChart.config-Cqte9C04.cjs +0 -1
  277. package/dist/adapters/FunnelChart.config-DJtwWeNz.js +0 -2
  278. package/dist/adapters/GaugeChart.config-WkwZ9VdS.cjs +0 -1
  279. package/dist/adapters/GaugeChart.config-vpVQlP5B.js +0 -2
  280. package/dist/adapters/HeatMapChart.config-DcmkDl07.cjs +0 -1
  281. package/dist/adapters/HeatMapChart.config-DsmMgGxJ.js +0 -2
  282. package/dist/adapters/KpiDelta.config-DVy561BH.js +0 -2
  283. package/dist/adapters/KpiDelta.config-dpqwLHNE.cjs +0 -1
  284. package/dist/adapters/KpiNumber.config-927l8nq8.js +0 -2
  285. package/dist/adapters/KpiNumber.config-BqFBMfPf.cjs +0 -1
  286. package/dist/adapters/KpiText.config-C-fZXuHq.cjs +0 -1
  287. package/dist/adapters/KpiText.config-CWoXuhMA.js +0 -2
  288. package/dist/adapters/LineChart.config-DTp7pqOY.js +0 -2
  289. package/dist/adapters/LineChart.config-DUGvSjcH.cjs +0 -1
  290. package/dist/adapters/MarkdownChart.config-23Dmv2Ty.cjs +0 -1
  291. package/dist/adapters/MarkdownChart.config-Cb2TnS0I.js +0 -2
  292. package/dist/adapters/MeasureProfileChart.config-B2qbWdhy.cjs +0 -1
  293. package/dist/adapters/MeasureProfileChart.config-CvBCeI5b.js +0 -2
  294. package/dist/adapters/PieChart.config-BzJb13QA.js +0 -2
  295. package/dist/adapters/PieChart.config-plCn5Ehr.cjs +0 -1
  296. package/dist/adapters/ProportionBarChart.config-1r-_moBH.cjs +0 -1
  297. package/dist/adapters/ProportionBarChart.config-CN6TtHTp.js +0 -2
  298. package/dist/adapters/RadarChart.config-BYhdj9M7.js +0 -2
  299. package/dist/adapters/RadarChart.config-CeUMP-1g.cjs +0 -1
  300. package/dist/adapters/RadialBarChart.config-B88yXNsq.cjs +0 -1
  301. package/dist/adapters/RadialBarChart.config-ZMK9HMoh.js +0 -2
  302. package/dist/adapters/RetentionCombinedChart.config-B5yvgUHM.cjs +0 -1
  303. package/dist/adapters/RetentionCombinedChart.config-Dd-YMdK8.js +0 -2
  304. package/dist/adapters/RetentionHeatmap.config-BYzDleoV.cjs +0 -1
  305. package/dist/adapters/RetentionHeatmap.config-Dvj7yTB0.js +0 -2
  306. package/dist/adapters/SankeyChart.config-CPFRmgFb.cjs +0 -1
  307. package/dist/adapters/SankeyChart.config-ClgqXM1N.js +0 -2
  308. package/dist/adapters/ScatterChart.config-CvJiqPa5.cjs +0 -1
  309. package/dist/adapters/ScatterChart.config-DLZ3rYMq.js +0 -2
  310. package/dist/adapters/SunburstChart.config-C_1V5hoQ.cjs +0 -1
  311. package/dist/adapters/SunburstChart.config-FNU75NCg.js +0 -2
  312. package/dist/adapters/TreeMapChart.config-CprZk_YF.js +0 -2
  313. package/dist/adapters/TreeMapChart.config-DNwd0ge9.cjs +0 -1
  314. package/dist/adapters/WaterfallChart.config-BBhcN_Fh.cjs +0 -1
  315. package/dist/adapters/WaterfallChart.config-H7s6SSV3.js +0 -2
  316. package/dist/adapters/compiler-BaLO10VN.cjs +0 -166
  317. package/dist/adapters/handler-DrRT6c14.cjs +0 -25
  318. package/dist/adapters/mcp-transport-BGkSz-ZT.cjs +0 -40
  319. package/dist/adapters/mcp-transport-fJud19xz.js +0 -606
  320. package/dist/adapters/utils-BY0-KFyI.cjs +0 -128
  321. package/dist/client/chunks/DashboardEditModal-9An5EDAz.js.map +0 -1
  322. package/dist/client/chunks/analysis-builder-shared-BQvwUc6z.js.map +0 -1
  323. package/dist/client/chunks/chart-activity-grid-DvD_4wJz.js.map +0 -1
  324. package/dist/client/chunks/chart-data-table-DgiNBOWf.js.map +0 -1
  325. package/dist/client/chunks/charts-core-BAH5pkSB.js +0 -215
  326. package/dist/client/chunks/charts-core-BAH5pkSB.js.map +0 -1
  327. package/dist/client/chunks/charts-loader-eToV8je7.js +0 -85
  328. package/dist/client/chunks/charts-loader-eToV8je7.js.map +0 -1
  329. package/dist/client/chunks/nl-NL-CMXHDBr0.js.map +0 -1
@@ -1,7 +1,8 @@
1
- import { O as e, _ as t, g as n, h as r, m as i, p as a, v as o, x as s } from "./utils-DkmShl5f.js";
2
- import { a as c, c as l, d as u, i as d, l as f, n as p, o as m, r as h, s as g, t as _, u as v } from "./chartConfigHelpers-BsnbxA2c.js";
1
+ import { A as e, _ as t, g as n, h as r, k as i, m as a, p as o, v as s, x as c } from "./utils-BhlkVCzZ.js";
2
+ import { E as l, T as u } from "./mcp-transport-BqdBHmXL.js";
3
+ import { a as d, c as f, d as p, i as m, l as h, n as g, o as _, r as v, s as y, t as b, u as x } from "./chartConfigHelpers-BsnbxA2c.js";
3
4
  //#region src/server/agent/system-prompt.ts
4
- function y(e, t) {
5
+ function S(e, t) {
5
6
  if (!(!t.measures || t.measures.length === 0)) {
6
7
  e.push(""), e.push("**Measures:**");
7
8
  for (let n of t.measures) {
@@ -10,7 +11,7 @@ function y(e, t) {
10
11
  }
11
12
  }
12
13
  }
13
- function b(e, t) {
14
+ function ee(e, t) {
14
15
  if (!(!t.dimensions || t.dimensions.length === 0)) {
15
16
  e.push(""), e.push("**Dimensions:**");
16
17
  for (let n of t.dimensions) {
@@ -19,25 +20,25 @@ function b(e, t) {
19
20
  }
20
21
  }
21
22
  }
22
- function x(e, t) {
23
+ function te(e, t) {
23
24
  if (!(!t.relationships || t.relationships.length === 0)) {
24
25
  e.push(""), e.push("**Joins:**");
25
26
  for (let n of t.relationships) e.push(`- → \`${n.targetCube}\` (${n.relationship})`);
26
27
  }
27
28
  }
28
- function S(e, t) {
29
+ function ne(e, t) {
29
30
  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}\``));
30
31
  }
31
- function ee(e) {
32
+ function re(e) {
32
33
  if (e.length === 0) return "No cubes are currently available.";
33
34
  let t = ["## Available Cubes", ""];
34
- for (let n of e) t.push(`### ${n.name}`), n.description && t.push(n.description), y(t, n), b(t, n), x(t, n), S(t, n), t.push("");
35
+ for (let n of e) t.push(`### ${n.name}`), n.description && t.push(n.description), S(t, n), ee(t, n), te(t, n), ne(t, n), t.push("");
35
36
  return t.join("\n");
36
37
  }
37
38
  function C(e) {
38
39
  return e.messages.map((e) => e.content.text).join("\n\n");
39
40
  }
40
- function te(e) {
41
+ function ie(e) {
41
42
  return [
42
43
  "# Drizzle Cube Analytics Agent",
43
44
  "",
@@ -182,7 +183,7 @@ function te(e) {
182
183
  "",
183
184
  "---",
184
185
  "",
185
- C(o),
186
+ C(s),
186
187
  "",
187
188
  "---",
188
189
  "",
@@ -198,7 +199,7 @@ function te(e) {
198
199
  "- Dashboard grid is 12 columns wide",
199
200
  "- KPI cards: w=3, h=3 — place at the top in a row of 4",
200
201
  "- Overview charts (bar, line, area): w=6, h=4",
201
- "- Wide charts (heatmap, table): w=12, h=5",
202
+ "- Wide charts (heatmap, table, recordsTable): w=12, h=5",
202
203
  "- Section headers (markdown): w=12, h=1",
203
204
  "",
204
205
  "### Section Headers",
@@ -241,12 +242,12 @@ function te(e) {
241
242
  "",
242
243
  "---",
243
244
  "",
244
- ee(e)
245
+ re(e)
245
246
  ].join("\n");
246
247
  }
247
248
  //#endregion
248
249
  //#region src/client/components/charts/BarChart.config.ts
249
- var w = {
250
+ var ae = {
250
251
  clickableElements: { bar: !0 },
251
252
  dropZones: [
252
253
  {
@@ -283,12 +284,12 @@ var w = {
283
284
  "hideHeader"
284
285
  ],
285
286
  displayOptionsConfig: [
286
- f("chart.configText.how_to_stack_multiple_bar_series"),
287
+ h("chart.configText.how_to_stack_multiple_bar_series"),
288
+ x,
287
289
  v,
288
- h,
289
- m
290
+ _
290
291
  ]
291
- }, ne = {
292
+ }, oe = {
292
293
  clickableElements: { point: !0 },
293
294
  dropZones: [
294
295
  {
@@ -325,10 +326,10 @@ var w = {
325
326
  "hideHeader"
326
327
  ],
327
328
  displayOptionsConfig: [
328
- l,
329
- g(),
330
- _,
331
- v,
329
+ f,
330
+ y(),
331
+ b,
332
+ x,
332
333
  {
333
334
  key: "priorPeriodStyle",
334
335
  label: "chart.option.priorPeriodStyle.label",
@@ -360,10 +361,10 @@ var w = {
360
361
  step: .1,
361
362
  description: "chart.option.priorPeriodOpacity.description"
362
363
  },
363
- h,
364
- m
364
+ v,
365
+ _
365
366
  ]
366
- }, re = {
367
+ }, w = {
367
368
  dropZones: [
368
369
  {
369
370
  key: "xAxis",
@@ -399,15 +400,15 @@ var w = {
399
400
  "hideHeader"
400
401
  ],
401
402
  displayOptionsConfig: [
402
- l,
403
- g(!1),
404
- f("chart.configText.how_to_stack_multiple_area_series"),
405
- _,
403
+ f,
404
+ y(!1),
405
+ h("chart.configText.how_to_stack_multiple_area_series"),
406
+ b,
407
+ x,
406
408
  v,
407
- h,
408
- m
409
+ _
409
410
  ]
410
- }, ie = {
411
+ }, T = {
411
412
  clickableElements: { slice: !0 },
412
413
  dropZones: [{
413
414
  key: "xAxis",
@@ -459,8 +460,8 @@ var w = {
459
460
  label: "chart.configText.80_percent"
460
461
  }
461
462
  ]
462
- }, u()]
463
- }, T = {
463
+ }, p()]
464
+ }, E = {
464
465
  dropZones: [
465
466
  {
466
467
  key: "xAxis",
@@ -511,7 +512,7 @@ var w = {
511
512
  type: "axisFormat",
512
513
  description: "chart.option.yAxisFormat.description"
513
514
  }]
514
- }, E = {
515
+ }, D = {
515
516
  dropZones: [
516
517
  {
517
518
  key: "xAxis",
@@ -583,7 +584,7 @@ var w = {
583
584
  type: "axisFormat",
584
585
  description: "chart.configText.number_formatting_for_y_axis_and_values"
585
586
  }]
586
- }, D = {
587
+ }, O = {
587
588
  dropZones: [
588
589
  {
589
590
  key: "xAxis",
@@ -616,8 +617,8 @@ var w = {
616
617
  "showTooltip",
617
618
  "hideHeader"
618
619
  ],
619
- displayOptionsConfig: [u()]
620
- }, O = {
620
+ displayOptionsConfig: [p()]
621
+ }, k = {
621
622
  dropZones: [{
622
623
  key: "xAxis",
623
624
  label: "chart.configText.categories",
@@ -639,8 +640,8 @@ var w = {
639
640
  "showTooltip",
640
641
  "hideHeader"
641
642
  ],
642
- displayOptionsConfig: [u()]
643
- }, k = {
643
+ displayOptionsConfig: [p()]
644
+ }, A = {
644
645
  dropZones: [
645
646
  {
646
647
  key: "xAxis",
@@ -674,9 +675,9 @@ var w = {
674
675
  "showTooltip",
675
676
  "hideHeader"
676
677
  ],
677
- displayOptionsConfig: [u("chart.configText.number_formatting_for_size_values")],
678
+ displayOptionsConfig: [p("chart.configText.number_formatting_for_size_values")],
678
679
  clickableElements: { cell: !0 }
679
- }, A = {
680
+ }, j = {
680
681
  dropZones: [{
681
682
  key: "xAxis",
682
683
  label: "chart.configText.columns",
@@ -696,7 +697,70 @@ var w = {
696
697
  type: "axisFormat",
697
698
  description: "chart.configText.number_formatting_for_numeric_values"
698
699
  }]
699
- }, j = {
700
+ }, M = {
701
+ dropZones: [{
702
+ key: "columns",
703
+ label: "chart.recordsTable.dropZone.columns.label",
704
+ description: "chart.recordsTable.dropZone.columns.description",
705
+ mandatory: !1,
706
+ acceptTypes: [
707
+ "dimension",
708
+ "timeDimension",
709
+ "measure"
710
+ ],
711
+ emptyText: "chart.recordsTable.dropZone.columns.empty"
712
+ }, {
713
+ key: "hiddenColumns",
714
+ label: "chart.recordsTable.dropZone.hiddenColumns.label",
715
+ description: "chart.recordsTable.dropZone.hiddenColumns.description",
716
+ mandatory: !1,
717
+ acceptTypes: [
718
+ "dimension",
719
+ "timeDimension",
720
+ "measure"
721
+ ],
722
+ emptyText: "chart.recordsTable.dropZone.hiddenColumns.empty",
723
+ excludeFromInference: !0
724
+ }],
725
+ displayOptions: ["hideHeader"],
726
+ displayOptionsConfig: [
727
+ {
728
+ key: "columnFormats",
729
+ label: "chart.recordsTable.option.columnFormats.label",
730
+ type: "columnFormats",
731
+ description: "chart.recordsTable.option.columnFormats.description"
732
+ },
733
+ {
734
+ key: "rowLink",
735
+ label: "chart.recordsTable.option.rowLink.label",
736
+ type: "rowLink",
737
+ description: "chart.recordsTable.option.rowLink.description"
738
+ },
739
+ {
740
+ key: "pageSize",
741
+ label: "chart.recordsTable.option.pageSize.label",
742
+ type: "select",
743
+ defaultValue: 25,
744
+ description: "chart.recordsTable.option.pageSize.description",
745
+ options: [
746
+ {
747
+ value: 25,
748
+ label: "chart.recordsTable.option.pageSize.option.25"
749
+ },
750
+ {
751
+ value: 50,
752
+ label: "chart.recordsTable.option.pageSize.option.50"
753
+ },
754
+ {
755
+ value: 100,
756
+ label: "chart.recordsTable.option.pageSize.option.100"
757
+ }
758
+ ]
759
+ }
760
+ ],
761
+ clickableElements: { row: !0 },
762
+ recordGrain: !0
763
+ }, N = {
700
764
  dropZones: [{
701
765
  key: "dateField",
702
766
  label: "chart.configText.time_dimension",
@@ -737,7 +801,7 @@ var w = {
737
801
  } : { isValid: !0 };
738
802
  },
739
803
  clickableElements: { cell: !0 }
740
- }, M = {
804
+ }, P = {
741
805
  dropZones: [{
742
806
  key: "yAxis",
743
807
  label: "chart.configText.value",
@@ -748,7 +812,7 @@ var w = {
748
812
  emptyText: "chart.kpiNumber.dropZone.yAxis.empty"
749
813
  }],
750
814
  displayOptionsConfig: [
751
- p,
815
+ g,
752
816
  {
753
817
  key: "target",
754
818
  label: "chart.runtime.tooltip.targetValue",
@@ -803,7 +867,7 @@ var w = {
803
867
  }
804
868
  ],
805
869
  displayOptions: ["hideHeader"]
806
- }, N = {
870
+ }, F = {
807
871
  dropZones: [{
808
872
  key: "yAxis",
809
873
  label: "chart.configText.value",
@@ -822,7 +886,7 @@ var w = {
822
886
  emptyText: "chart.kpiDelta.dropZone.xAxis.empty"
823
887
  }],
824
888
  displayOptionsConfig: [
825
- p,
889
+ g,
826
890
  {
827
891
  key: "showBaseline",
828
892
  label: "chart.option.showBaseline.label",
@@ -895,7 +959,7 @@ var w = {
895
959
  isValid: !1,
896
960
  message: "chart.kpiDelta.validation.measureRequired"
897
961
  } : { isValid: !0 }
898
- }, P = {
962
+ }, I = {
899
963
  dropZones: [{
900
964
  key: "yAxis",
901
965
  label: "chart.configText.value",
@@ -932,7 +996,7 @@ var w = {
932
996
  }
933
997
  ],
934
998
  displayOptions: ["hideHeader"]
935
- }, F = {
999
+ }, L = {
936
1000
  skipQuery: !0,
937
1001
  dropZones: [],
938
1002
  displayOptionsConfig: [
@@ -1039,7 +1103,7 @@ var w = {
1039
1103
  description: "chart.configText.add_an_accent_colored_border_on_one_side_of_the_content"
1040
1104
  }
1041
1105
  ]
1042
- }, I = {
1106
+ }, R = {
1043
1107
  dropZones: [{
1044
1108
  key: "xAxis",
1045
1109
  label: "chart.configText.step_name",
@@ -1122,7 +1186,7 @@ var w = {
1122
1186
  description: "chart.option.showP90Time.description"
1123
1187
  }
1124
1188
  ]
1125
- }, L = {
1189
+ }, z = {
1126
1190
  dropZones: [{
1127
1191
  key: "xAxis",
1128
1192
  label: "chart.configText.event_type",
@@ -1178,7 +1242,7 @@ var w = {
1178
1242
  description: "chart.configText.hide_the_statistics_footer_below_the_chart"
1179
1243
  }
1180
1244
  ]
1181
- }, R = {
1245
+ }, se = {
1182
1246
  dropZones: [{
1183
1247
  key: "xAxis",
1184
1248
  label: "chart.configText.event_type",
@@ -1213,7 +1277,7 @@ var w = {
1213
1277
  defaultValue: !0,
1214
1278
  description: "chart.configText.hide_the_statistics_footer_below_the_chart"
1215
1279
  }]
1216
- }, z = {
1280
+ }, B = {
1217
1281
  dropZones: [
1218
1282
  {
1219
1283
  key: "xAxis",
@@ -1294,7 +1358,7 @@ var w = {
1294
1358
  isValid: !1,
1295
1359
  message: "chart.heatmap.validation.xAxisRequired"
1296
1360
  }
1297
- }, B = {
1361
+ }, V = {
1298
1362
  dropZones: [],
1299
1363
  displayOptionsConfig: [{
1300
1364
  key: "showLegend",
@@ -1309,7 +1373,7 @@ var w = {
1309
1373
  defaultValue: !0,
1310
1374
  description: "chart.option.showTooltip.description"
1311
1375
  }]
1312
- }, V = {
1376
+ }, H = {
1313
1377
  dropZones: [],
1314
1378
  displayOptionsConfig: [
1315
1379
  {
@@ -1355,7 +1419,7 @@ var w = {
1355
1419
  description: "chart.option.showTooltip.description"
1356
1420
  }
1357
1421
  ]
1358
- }, H = {
1422
+ }, U = {
1359
1423
  displayOptions: ["hideHeader"],
1360
1424
  dropZones: [{
1361
1425
  key: "xAxis",
@@ -1380,7 +1444,118 @@ var w = {
1380
1444
  type: "axisFormat",
1381
1445
  description: "chart.configText.number_formatting_for_the_value_axis"
1382
1446
  }]
1383
- }, U = {
1447
+ }, W = {
1448
+ displayOptions: [
1449
+ "showGrid",
1450
+ "showTooltip",
1451
+ "hideHeader"
1452
+ ],
1453
+ dropZones: [
1454
+ {
1455
+ key: "xAxis",
1456
+ label: "chart.dotStrip.dropZone.xAxis.label",
1457
+ description: "chart.dotStrip.dropZone.xAxis.description",
1458
+ mandatory: !0,
1459
+ maxItems: 1,
1460
+ acceptTypes: ["dimension", "timeDimension"],
1461
+ emptyText: "chart.dotStrip.dropZone.xAxis.empty"
1462
+ },
1463
+ {
1464
+ key: "yAxis",
1465
+ label: "chart.dotStrip.dropZone.yAxis.label",
1466
+ description: "chart.dotStrip.dropZone.yAxis.description",
1467
+ mandatory: !0,
1468
+ maxItems: 1,
1469
+ acceptTypes: ["measure"],
1470
+ emptyText: "chart.dotStrip.dropZone.yAxis.empty"
1471
+ },
1472
+ {
1473
+ key: "series",
1474
+ label: "chart.dotStrip.dropZone.series.label",
1475
+ description: "chart.dotStrip.dropZone.series.description",
1476
+ mandatory: !1,
1477
+ maxItems: 1,
1478
+ acceptTypes: ["dimension"],
1479
+ emptyText: "chart.dotStrip.dropZone.series.empty"
1480
+ }
1481
+ ],
1482
+ clickableElements: { point: !0 },
1483
+ displayOptionsConfig: [
1484
+ {
1485
+ key: "showMedianMarker",
1486
+ label: "chart.option.showMedianMarker.label",
1487
+ type: "boolean",
1488
+ defaultValue: !0,
1489
+ description: "chart.option.showMedianMarker.description"
1490
+ },
1491
+ {
1492
+ key: "showBandStats",
1493
+ label: "chart.option.showBandStats.label",
1494
+ type: "boolean",
1495
+ defaultValue: !0,
1496
+ description: "chart.option.showBandStats.description"
1497
+ },
1498
+ {
1499
+ key: "showExtremeLabels",
1500
+ label: "chart.option.showExtremeLabels.label",
1501
+ type: "boolean",
1502
+ defaultValue: !1,
1503
+ description: "chart.option.showExtremeLabels.description"
1504
+ },
1505
+ {
1506
+ key: "dotSize",
1507
+ label: "chart.option.dotSize.label",
1508
+ type: "select",
1509
+ defaultValue: "medium",
1510
+ options: [
1511
+ {
1512
+ value: "small",
1513
+ label: "chart.option.dotSize.small"
1514
+ },
1515
+ {
1516
+ value: "medium",
1517
+ label: "chart.option.dotSize.medium"
1518
+ },
1519
+ {
1520
+ value: "large",
1521
+ label: "chart.option.dotSize.large"
1522
+ }
1523
+ ],
1524
+ description: "chart.option.dotSize.description"
1525
+ },
1526
+ {
1527
+ key: "bandSort",
1528
+ label: "chart.option.bandSort.label",
1529
+ type: "select",
1530
+ defaultValue: "none",
1531
+ options: [
1532
+ {
1533
+ value: "none",
1534
+ label: "chart.option.bandSort.none"
1535
+ },
1536
+ {
1537
+ value: "valueDesc",
1538
+ label: "chart.option.bandSort.valueDesc"
1539
+ },
1540
+ {
1541
+ value: "valueAsc",
1542
+ label: "chart.option.bandSort.valueAsc"
1543
+ },
1544
+ {
1545
+ value: "count",
1546
+ label: "chart.option.bandSort.count"
1547
+ }
1548
+ ],
1549
+ description: "chart.option.bandSort.description"
1550
+ },
1551
+ {
1552
+ key: "xAxisFormat",
1553
+ label: "chart.option.xAxisFormat.label",
1554
+ type: "axisFormat",
1555
+ description: "chart.option.xAxisFormat.description"
1556
+ }
1557
+ ]
1558
+ }, G = {
1384
1559
  clickableElements: { bar: !0 },
1385
1560
  displayOptions: ["showTooltip", "hideHeader"],
1386
1561
  dropZones: [{
@@ -1429,7 +1604,7 @@ var w = {
1429
1604
  description: "chart.configText.number_formatting_for_the_y_axis"
1430
1605
  }
1431
1606
  ]
1432
- }, W = {
1607
+ }, K = {
1433
1608
  clickableElements: { bar: !0 },
1434
1609
  displayOptions: ["hideHeader"],
1435
1610
  dropZones: [{
@@ -1491,7 +1666,7 @@ var w = {
1491
1666
  description: "chart.configText.number_formatting_for_the_price_axis"
1492
1667
  }
1493
1668
  ]
1494
- }, G = {
1669
+ }, q = {
1495
1670
  displayOptions: [
1496
1671
  "showLegend",
1497
1672
  "showTooltip",
@@ -1563,7 +1738,7 @@ var w = {
1563
1738
  description: "chart.configText.number_formatting_for_the_y_axis"
1564
1739
  }
1565
1740
  ]
1566
- }, K = {
1741
+ }, J = {
1567
1742
  dropZones: [{
1568
1743
  key: "xAxis",
1569
1744
  label: "chart.configText.category",
@@ -1621,7 +1796,7 @@ var w = {
1621
1796
  isValid: !1,
1622
1797
  message: "chart.proportionBar.validation.measureRequired"
1623
1798
  } : { isValid: !0 }
1624
- }, q = {
1799
+ }, ce = {
1625
1800
  clickableElements: {},
1626
1801
  displayOptions: ["hideHeader"],
1627
1802
  dropZones: [{
@@ -1674,45 +1849,45 @@ var w = {
1674
1849
  description: "chart.configText.number_formatting_for_the_displayed_value_and_axis_labels"
1675
1850
  }
1676
1851
  ]
1677
- }, J = {
1852
+ }, Y = {
1678
1853
  packageName: "recharts",
1679
1854
  installCommand: "npm install recharts"
1680
- }, Y = {
1855
+ }, le = {
1681
1856
  bar: {
1682
1857
  label: "chart.bar.label",
1683
1858
  icon: "chartBar",
1684
1859
  description: "chart.bar.description",
1685
1860
  useCase: "chart.bar.useCase",
1686
- isAvailable: c,
1687
- dependencies: J,
1688
- config: async () => (await import("./BarChart.config-lt_7PdIi.js")).barChartConfig
1861
+ isAvailable: d,
1862
+ dependencies: Y,
1863
+ config: async () => (await import("./BarChart.config-Cq_qcxBA.js")).barChartConfig
1689
1864
  },
1690
1865
  line: {
1691
1866
  label: "chart.line.label",
1692
1867
  icon: "chartLine",
1693
1868
  description: "chart.line.description",
1694
1869
  useCase: "chart.line.useCase",
1695
- isAvailable: c,
1696
- dependencies: J,
1697
- config: async () => (await import("./LineChart.config-DTp7pqOY.js")).lineChartConfig
1870
+ isAvailable: d,
1871
+ dependencies: Y,
1872
+ config: async () => (await import("./LineChart.config-CJmTSmZ1.js")).lineChartConfig
1698
1873
  },
1699
1874
  area: {
1700
1875
  label: "chart.area.label",
1701
1876
  icon: "chartArea",
1702
1877
  description: "chart.area.description",
1703
1878
  useCase: "chart.area.useCase",
1704
- isAvailable: c,
1705
- dependencies: J,
1706
- config: async () => (await import("./AreaChart.config-3cme8HyQ.js")).areaChartConfig
1879
+ isAvailable: d,
1880
+ dependencies: Y,
1881
+ config: async () => (await import("./AreaChart.config-BqNusnpg.js")).areaChartConfig
1707
1882
  },
1708
1883
  pie: {
1709
1884
  label: "chart.pie.label",
1710
1885
  icon: "chartPie",
1711
1886
  description: "chart.pie.description",
1712
1887
  useCase: "chart.pie.useCase",
1713
- isAvailable: c,
1714
- dependencies: J,
1715
- config: async () => (await import("./PieChart.config-BzJb13QA.js")).pieChartConfig
1888
+ isAvailable: d,
1889
+ dependencies: Y,
1890
+ config: async () => (await import("./PieChart.config-HZofeody.js")).pieChartConfig
1716
1891
  },
1717
1892
  scatter: {
1718
1893
  label: "chart.scatter.label",
@@ -1726,8 +1901,8 @@ var w = {
1726
1901
  available: !1,
1727
1902
  reason: "chart.availability.scatter"
1728
1903
  } : { available: !0 },
1729
- dependencies: J,
1730
- config: async () => (await import("./ScatterChart.config-DLZ3rYMq.js")).scatterChartConfig
1904
+ dependencies: Y,
1905
+ config: async () => (await import("./ScatterChart.config-BD2vfOZ6.js")).scatterChartConfig
1731
1906
  },
1732
1907
  bubble: {
1733
1908
  label: "chart.bubble.label",
@@ -1741,42 +1916,49 @@ var w = {
1741
1916
  available: !1,
1742
1917
  reason: "chart.availability.bubble"
1743
1918
  } : { available: !0 },
1744
- dependencies: J,
1745
- config: async () => (await import("./BubbleChart.config-Fhotb7Pg.js")).bubbleChartConfig
1919
+ dependencies: Y,
1920
+ config: async () => (await import("./BubbleChart.config-CU_18uxb.js")).bubbleChartConfig
1746
1921
  },
1747
1922
  radar: {
1748
1923
  label: "chart.radar.label",
1749
1924
  icon: "chartRadar",
1750
1925
  description: "chart.radar.description",
1751
1926
  useCase: "chart.radar.useCase",
1752
- isAvailable: c,
1753
- dependencies: J,
1754
- config: async () => (await import("./RadarChart.config-BYhdj9M7.js")).radarChartConfig
1927
+ isAvailable: d,
1928
+ dependencies: Y,
1929
+ config: async () => (await import("./RadarChart.config-B9OdMEib.js")).radarChartConfig
1755
1930
  },
1756
1931
  radialBar: {
1757
1932
  label: "chart.radialBar.label",
1758
1933
  icon: "chartRadialBar",
1759
1934
  description: "chart.radialBar.description",
1760
1935
  useCase: "chart.radialBar.useCase",
1761
- isAvailable: c,
1762
- dependencies: J,
1763
- config: async () => (await import("./RadialBarChart.config-ZMK9HMoh.js")).radialBarChartConfig
1936
+ isAvailable: d,
1937
+ dependencies: Y,
1938
+ config: async () => (await import("./RadialBarChart.config-CeP7jEbq.js")).radialBarChartConfig
1764
1939
  },
1765
1940
  treemap: {
1766
1941
  label: "chart.treemap.label",
1767
1942
  icon: "chartTreemap",
1768
1943
  description: "chart.treemap.description",
1769
1944
  useCase: "chart.treemap.useCase",
1770
- isAvailable: c,
1771
- dependencies: J,
1772
- config: async () => (await import("./TreeMapChart.config-CprZk_YF.js")).treemapChartConfig
1945
+ isAvailable: d,
1946
+ dependencies: Y,
1947
+ config: async () => (await import("./TreeMapChart.config-DBrqwtqT.js")).treemapChartConfig
1773
1948
  },
1774
1949
  table: {
1775
1950
  label: "chart.table.label",
1776
1951
  icon: "chartTable",
1777
1952
  description: "chart.table.description",
1778
1953
  useCase: "chart.table.useCase",
1779
- config: async () => (await import("./DataTable.config-71L0GzlT.js")).dataTableConfig
1954
+ config: async () => (await import("./DataTable.config-7JNSj6qQ.js")).dataTableConfig
1955
+ },
1956
+ recordsTable: {
1957
+ label: "chart.recordsTable.label",
1958
+ icon: "chartRecordsTable",
1959
+ description: "chart.recordsTable.description",
1960
+ useCase: "chart.recordsTable.useCase",
1961
+ config: async () => (await import("./RecordsTable.config-BInSgo-G.js")).recordsTableConfig
1780
1962
  },
1781
1963
  activityGrid: {
1782
1964
  label: "chart.activityGrid.label",
@@ -1790,62 +1972,62 @@ var w = {
1790
1972
  available: !1,
1791
1973
  reason: "chart.availability.requiresTimeDimension"
1792
1974
  } : { available: !0 },
1793
- config: async () => (await import("./ActivityGridChart.config-BQhBE_Mr.js")).activityGridChartConfig
1975
+ config: async () => (await import("./ActivityGridChart.config-Dd2YDeaM.js")).activityGridChartConfig
1794
1976
  },
1795
1977
  kpiNumber: {
1796
1978
  label: "chart.kpiNumber.label",
1797
1979
  icon: "chartKpiNumber",
1798
1980
  description: "chart.kpiNumber.description",
1799
1981
  useCase: "chart.kpiNumber.useCase",
1800
- isAvailable: d,
1801
- config: async () => (await import("./KpiNumber.config-927l8nq8.js")).kpiNumberConfig
1982
+ isAvailable: m,
1983
+ config: async () => (await import("./KpiNumber.config-CkPWpcSz.js")).kpiNumberConfig
1802
1984
  },
1803
1985
  kpiDelta: {
1804
1986
  label: "chart.kpiDelta.label",
1805
1987
  icon: "chartKpiDelta",
1806
1988
  description: "chart.kpiDelta.description",
1807
1989
  useCase: "chart.kpiDelta.useCase",
1808
- isAvailable: c,
1809
- config: async () => (await import("./KpiDelta.config-DVy561BH.js")).kpiDeltaConfig
1990
+ isAvailable: d,
1991
+ config: async () => (await import("./KpiDelta.config-BGdqsHcc.js")).kpiDeltaConfig
1810
1992
  },
1811
1993
  kpiText: {
1812
1994
  label: "chart.kpiText.label",
1813
1995
  icon: "chartKpiText",
1814
1996
  description: "chart.kpiText.description",
1815
1997
  useCase: "chart.kpiText.useCase",
1816
- isAvailable: d,
1817
- config: async () => (await import("./KpiText.config-CWoXuhMA.js")).kpiTextConfig
1998
+ isAvailable: m,
1999
+ config: async () => (await import("./KpiText.config-Bvtuv8vE.js")).kpiTextConfig
1818
2000
  },
1819
2001
  markdown: {
1820
2002
  label: "chart.markdown.label",
1821
2003
  icon: "chartMarkdown",
1822
2004
  description: "chart.markdown.description",
1823
2005
  useCase: "chart.markdown.useCase",
1824
- config: async () => (await import("./MarkdownChart.config-Cb2TnS0I.js")).markdownConfig
2006
+ config: async () => (await import("./MarkdownChart.config-Cm6G4Yuh.js")).markdownConfig
1825
2007
  },
1826
2008
  funnel: {
1827
2009
  label: "chart.funnel.label",
1828
2010
  icon: "chartFunnel",
1829
2011
  description: "chart.funnel.description",
1830
2012
  useCase: "chart.funnel.useCase",
1831
- dependencies: J,
1832
- config: async () => (await import("./FunnelChart.config-DJtwWeNz.js")).funnelChartConfig
2013
+ dependencies: Y,
2014
+ config: async () => (await import("./FunnelChart.config-vuZScOHQ.js")).funnelChartConfig
1833
2015
  },
1834
2016
  sankey: {
1835
2017
  label: "chart.sankey.label",
1836
2018
  icon: "chartSankey",
1837
2019
  description: "chart.sankey.description",
1838
2020
  useCase: "chart.sankey.useCase",
1839
- dependencies: J,
1840
- config: async () => (await import("./SankeyChart.config-ClgqXM1N.js")).sankeyChartConfig
2021
+ dependencies: Y,
2022
+ config: async () => (await import("./SankeyChart.config-hfM0ACm1.js")).sankeyChartConfig
1841
2023
  },
1842
2024
  sunburst: {
1843
2025
  label: "chart.sunburst.label",
1844
2026
  icon: "chartSunburst",
1845
2027
  description: "chart.sunburst.description",
1846
2028
  useCase: "chart.sunburst.useCase",
1847
- dependencies: J,
1848
- config: async () => (await import("./SunburstChart.config-FNU75NCg.js")).sunburstChartConfig
2029
+ dependencies: Y,
2030
+ config: async () => (await import("./SunburstChart.config-BvrofzMv.js")).sunburstChartConfig
1849
2031
  },
1850
2032
  heatmap: {
1851
2033
  label: "chart.heatmap.label",
@@ -1863,38 +2045,46 @@ var w = {
1863
2045
  packageName: "@nivo/heatmap",
1864
2046
  installCommand: "npm install @nivo/heatmap"
1865
2047
  },
1866
- config: async () => (await import("./HeatMapChart.config-DsmMgGxJ.js")).heatmapChartConfig
2048
+ config: async () => (await import("./HeatMapChart.config-4XMab1zq.js")).heatmapChartConfig
1867
2049
  },
1868
2050
  retentionHeatmap: {
1869
2051
  label: "chart.retentionHeatmap.label",
1870
2052
  icon: "chartRetention",
1871
2053
  description: "chart.retentionHeatmap.description",
1872
2054
  useCase: "chart.retentionHeatmap.useCase",
1873
- config: async () => (await import("./RetentionHeatmap.config-Dvj7yTB0.js")).retentionHeatmapConfig
2055
+ config: async () => (await import("./RetentionHeatmap.config-DCtOD8dO.js")).retentionHeatmapConfig
1874
2056
  },
1875
2057
  retentionCombined: {
1876
2058
  label: "chart.retentionCombined.label",
1877
2059
  icon: "chartRetention",
1878
2060
  description: "chart.retentionCombined.description",
1879
2061
  useCase: "chart.retentionCombined.useCase",
1880
- config: async () => (await import("./RetentionCombinedChart.config-Dd-YMdK8.js")).retentionCombinedConfig
2062
+ config: async () => (await import("./RetentionCombinedChart.config-Bxtxnlcf.js")).retentionCombinedConfig
1881
2063
  },
1882
2064
  boxPlot: {
1883
2065
  label: "chart.boxPlot.label",
1884
2066
  icon: "chartBoxPlot",
1885
2067
  description: "chart.boxPlot.description",
1886
2068
  useCase: "chart.boxPlot.useCase",
1887
- isAvailable: c,
1888
- config: async () => (await import("./BoxPlotChart.config-Dv6ECj2j.js")).boxPlotChartConfig
2069
+ isAvailable: d,
2070
+ config: async () => (await import("./BoxPlotChart.config-Zc-JGV-W.js")).boxPlotChartConfig
2071
+ },
2072
+ dotStrip: {
2073
+ label: "chart.dotStrip.label",
2074
+ icon: "chartDotStrip",
2075
+ description: "chart.dotStrip.description",
2076
+ useCase: "chart.dotStrip.useCase",
2077
+ isAvailable: d,
2078
+ config: async () => (await import("./DotStripChart.config-B7Dl-T1h.js")).dotStripChartConfig
1889
2079
  },
1890
2080
  waterfall: {
1891
2081
  label: "chart.waterfall.label",
1892
2082
  icon: "chartWaterfall",
1893
2083
  description: "chart.waterfall.description",
1894
2084
  useCase: "chart.waterfall.useCase",
1895
- isAvailable: c,
1896
- dependencies: J,
1897
- config: async () => (await import("./WaterfallChart.config-H7s6SSV3.js")).waterfallChartConfig
2085
+ isAvailable: d,
2086
+ dependencies: Y,
2087
+ config: async () => (await import("./WaterfallChart.config-DZ8H0V2L.js")).waterfallChartConfig
1898
2088
  },
1899
2089
  candlestick: {
1900
2090
  label: "chart.candlestick.label",
@@ -1908,7 +2098,7 @@ var w = {
1908
2098
  available: !1,
1909
2099
  reason: "chart.availability.requiresDimension"
1910
2100
  } : { available: !0 },
1911
- config: async () => (await import("./CandlestickChart.config-RPtXuxsX.js")).candlestickChartConfig
2101
+ config: async () => (await import("./CandlestickChart.config-Bwo3uaa-.js")).candlestickChartConfig
1912
2102
  },
1913
2103
  measureProfile: {
1914
2104
  label: "chart.measureProfile.label",
@@ -1919,31 +2109,31 @@ var w = {
1919
2109
  available: !1,
1920
2110
  reason: "chart.availability.requiresTwoMeasures"
1921
2111
  } : { available: !0 },
1922
- dependencies: J,
1923
- config: async () => (await import("./MeasureProfileChart.config-CvBCeI5b.js")).measureProfileChartConfig
2112
+ dependencies: Y,
2113
+ config: async () => (await import("./MeasureProfileChart.config-Dt7npubZ.js")).measureProfileChartConfig
1924
2114
  },
1925
2115
  proportionBar: {
1926
2116
  label: "chart.proportionBar.label",
1927
2117
  icon: "chartProportionBar",
1928
2118
  description: "chart.proportionBar.description",
1929
2119
  useCase: "chart.proportionBar.useCase",
1930
- isAvailable: c,
1931
- config: async () => (await import("./ProportionBarChart.config-CN6TtHTp.js")).proportionBarChartConfig
2120
+ isAvailable: d,
2121
+ config: async () => (await import("./ProportionBarChart.config-ChCSoM0L.js")).proportionBarChartConfig
1932
2122
  },
1933
2123
  gauge: {
1934
2124
  label: "chart.gauge.label",
1935
2125
  icon: "chartGauge",
1936
2126
  description: "chart.gauge.description",
1937
2127
  useCase: "chart.gauge.useCase",
1938
- isAvailable: d,
2128
+ isAvailable: m,
1939
2129
  dependencies: {
1940
2130
  packageName: "d3-shape",
1941
2131
  installCommand: "npm install d3-shape"
1942
2132
  },
1943
- config: async () => (await import("./GaugeChart.config-vpVQlP5B.js")).gaugeChartConfig
2133
+ config: async () => (await import("./GaugeChart.config-zdpFydo6.js")).gaugeChartConfig
1944
2134
  }
1945
2135
  };
1946
- function ae(e, t) {
2136
+ function ue(e, t) {
1947
2137
  return {
1948
2138
  ...t,
1949
2139
  label: e.label,
@@ -1954,41 +2144,46 @@ function ae(e, t) {
1954
2144
  }
1955
2145
  //#endregion
1956
2146
  //#region src/client/charts/chartConfigRegistry.ts
1957
- var oe = {
1958
- bar: w,
1959
- line: ne,
1960
- area: re,
1961
- pie: ie,
1962
- scatter: T,
1963
- bubble: E,
1964
- radar: D,
1965
- radialBar: O,
1966
- treemap: k,
1967
- table: A,
1968
- activityGrid: j,
1969
- kpiNumber: M,
1970
- kpiDelta: N,
1971
- kpiText: P,
1972
- markdown: F,
1973
- funnel: I,
1974
- sankey: L,
1975
- sunburst: R,
1976
- heatmap: z,
1977
- retentionHeatmap: B,
1978
- retentionCombined: V,
1979
- boxPlot: H,
1980
- waterfall: U,
1981
- candlestick: W,
1982
- measureProfile: G,
1983
- proportionBar: K,
1984
- gauge: q
1985
- }, X = Object.fromEntries(Object.keys(Y).map((e) => [e, ae(Y[e], oe[e])]));
2147
+ var de = {
2148
+ bar: ae,
2149
+ line: oe,
2150
+ area: w,
2151
+ pie: T,
2152
+ scatter: E,
2153
+ bubble: D,
2154
+ radar: O,
2155
+ radialBar: k,
2156
+ treemap: A,
2157
+ table: j,
2158
+ recordsTable: M,
2159
+ activityGrid: N,
2160
+ kpiNumber: P,
2161
+ kpiDelta: F,
2162
+ kpiText: I,
2163
+ markdown: L,
2164
+ funnel: R,
2165
+ sankey: z,
2166
+ sunburst: se,
2167
+ heatmap: B,
2168
+ retentionHeatmap: V,
2169
+ retentionCombined: H,
2170
+ boxPlot: U,
2171
+ dotStrip: W,
2172
+ waterfall: G,
2173
+ candlestick: K,
2174
+ measureProfile: q,
2175
+ proportionBar: J,
2176
+ gauge: ce
2177
+ }, X = Object.fromEntries(Object.keys(le).map((e) => [e, ue(le[e], de[e])]));
2178
+ function fe(e) {
2179
+ return X[e]?.recordGrain === !0;
2180
+ }
1986
2181
  //#endregion
1987
2182
  //#region src/server/agent/chart-validation.ts
1988
2183
  function Z(e) {
1989
2184
  return Array.isArray(e) ? e.length > 0 : !!e;
1990
2185
  }
1991
- function se(t, n, r, i) {
2186
+ function pe(t, n, r, i) {
1992
2187
  for (let a of t.dropZones) {
1993
2188
  if (!a.mandatory || Z(r?.[a.key])) continue;
1994
2189
  let t = a.acceptTypes?.join("/") ?? "fields";
@@ -2000,32 +2195,35 @@ function se(t, n, r, i) {
2000
2195
  }));
2001
2196
  }
2002
2197
  }
2003
- function ce(t, n, r) {
2198
+ function me(t, n, r) {
2004
2199
  if (Z(t?.xAxis)) return;
2005
2200
  let i = n.dimensions ?? [], a = n.timeDimensions ?? [], o = i.length > 0 || a.length > 0;
2006
2201
  r.push(e(o ? "server.validation.chart.barXAxisRequired" : "server.validation.chart.barNeedsDimension"));
2007
2202
  }
2008
- function le(e) {
2203
+ function he(e) {
2009
2204
  return Array.isArray(e) ? e : [e];
2010
2205
  }
2011
- function ue(t, n) {
2206
+ function ge(t, n) {
2012
2207
  if (!t?.xAxis || !t?.series) return;
2013
- let r = new Set(le(t.xAxis)), i = le(t.series).filter((e) => r.has(e));
2208
+ let r = new Set(he(t.xAxis)), i = he(t.series).filter((e) => r.has(e));
2014
2209
  i.length > 0 && n.push(e("server.validation.chart.seriesDuplicatesXAxis", { duplicates: i.join(", ") }));
2015
2210
  }
2016
- function de(e, t, n) {
2211
+ function _e(t, n, r) {
2212
+ fe(t) && n.ungrouped !== !0 && r.push(e("server.validation.chart.recordGrainNeedsUngrouped", { chartType: t }));
2213
+ }
2214
+ function ve(e, t, n) {
2017
2215
  let r = X[e];
2018
2216
  if (!r || r.skipQuery) return {
2019
2217
  isValid: !0,
2020
2218
  errors: []
2021
2219
  };
2022
2220
  let i = [];
2023
- return se(r, e, t, i), e === "bar" && ce(t, n, i), ue(t, i), {
2221
+ return pe(r, e, t, i), _e(e, n, i), e === "bar" && me(t, n, i), ge(t, i), {
2024
2222
  isValid: i.length === 0,
2025
2223
  errors: i
2026
2224
  };
2027
2225
  }
2028
- function fe(e, t, n, r) {
2226
+ function ye(e, t, n, r) {
2029
2227
  if (!(e.acceptTypes ?? []).includes("measure")) return;
2030
2228
  let i = /* @__PURE__ */ new Set();
2031
2229
  for (let r of t.dropZones) {
@@ -2036,7 +2234,7 @@ function fe(e, t, n, r) {
2036
2234
  let a = r.filter((e) => !i.has(e));
2037
2235
  a.length > 0 && (n[e.key] = a[0]);
2038
2236
  }
2039
- function pe(e, t, n) {
2237
+ function be(e, t, n) {
2040
2238
  let r = e.acceptTypes ?? [], i = [];
2041
2239
  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;
2042
2240
  let a = i;
@@ -2047,7 +2245,7 @@ function pe(e, t, n) {
2047
2245
  let o = e.maxItems ?? Infinity, s = a.slice(0, o);
2048
2246
  s.length > 0 && (t[e.key] = s);
2049
2247
  }
2050
- function me(e, t, n) {
2248
+ function xe(e, t, n) {
2051
2249
  let r = X[e];
2052
2250
  if (!r) return t ?? {};
2053
2251
  let i = { ...t }, a = n.timeDimensions ?? [], o = {
@@ -2055,28 +2253,31 @@ function me(e, t, n) {
2055
2253
  dimensions: n.dimensions ?? [],
2056
2254
  timeDimFields: a.map((e) => e.dimension)
2057
2255
  };
2058
- for (let e of r.dropZones) Z(i[e.key]) || (e.key === "sizeField" || e.key === "colorField" ? fe(e, r, i, o.measures) : pe(e, i, o));
2256
+ for (let e of r.dropZones) e.excludeFromInference || Z(i[e.key]) || (e.key === "sizeField" || e.key === "colorField" ? ye(e, r, i, o.measures) : be(e, i, o));
2059
2257
  return i;
2060
2258
  }
2061
- function he(e) {
2259
+ function Se(t) {
2260
+ return t ? i(t) ? e(t) : t : "";
2261
+ }
2262
+ function Ce(e) {
2062
2263
  let t = ["\nChart config requirements by type:"];
2063
2264
  for (let n of e) {
2064
2265
  let e = X[n];
2065
2266
  if (!e) continue;
2066
- let r = [e.description ?? "", e.useCase ?? ""].filter(Boolean).join(". "), i = r ? ` — ${r}.` : "", a = e.dropZones.filter((e) => e.mandatory);
2067
- if (a.length === 0 && !e.skipQuery) {
2068
- t.push(` ${n}${i} chartConfig auto-inferred from query.`);
2267
+ let r = [Se(e.description), Se(e.useCase)].filter(Boolean).join(". "), i = r ? ` — ${r}.` : "", a = fe(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);
2268
+ if (o.length === 0 && !e.skipQuery) {
2269
+ t.push(` ${n}${i}${a} chartConfig auto-inferred from query.`);
2069
2270
  continue;
2070
2271
  }
2071
2272
  if (e.skipQuery) {
2072
2273
  t.push(` ${n}${i} No query needed.`);
2073
2274
  continue;
2074
2275
  }
2075
- let o = a.map((e) => {
2276
+ let s = o.map((e) => {
2076
2277
  let t = e.acceptTypes?.join("/") ?? "any", n = e.maxItems ? ` (max ${e.maxItems})` : "";
2077
2278
  return `${e.key}=[${t}]${n}`;
2078
2279
  });
2079
- t.push(` ${n}${i} Requires ${o.join(", ")}.`);
2280
+ t.push(` ${n}${i}${a} Requires ${s.join(", ")}.`);
2080
2281
  }
2081
2282
  return t.join("\n");
2082
2283
  }
@@ -2100,9 +2301,10 @@ var Q = [
2100
2301
  "retentionHeatmap",
2101
2302
  "retentionCombined",
2102
2303
  "boxPlot",
2103
- "markdown"
2304
+ "markdown",
2305
+ "recordsTable"
2104
2306
  ];
2105
- function ge() {
2307
+ function we() {
2106
2308
  return [
2107
2309
  {
2108
2310
  name: "discover_cubes",
@@ -2142,12 +2344,12 @@ function ge() {
2142
2344
  description: "Execute a semantic query and return data results. Supports standard queries (measures/dimensions) and analysis modes (funnel/flow/retention). Only provide ONE mode per call.",
2143
2345
  parameters: {
2144
2346
  type: "object",
2145
- properties: s
2347
+ properties: c
2146
2348
  }
2147
2349
  },
2148
2350
  {
2149
2351
  name: "add_portlet",
2150
- description: "Add a chart visualization to the notebook.\n" + he(Q) + "\nThe query is validated before adding. The portlet fetches its own data.",
2352
+ description: "Add a chart visualization to the notebook.\n" + Ce(Q) + "\nThe query is validated before adding. The portlet fetches its own data.",
2151
2353
  parameters: {
2152
2354
  type: "object",
2153
2355
  properties: {
@@ -2184,7 +2386,8 @@ function ge() {
2184
2386
  yAxisAssignment: {
2185
2387
  type: "object",
2186
2388
  description: "Dual Y-axis: map measure fields to \"left\" or \"right\" axis. Only for bar, line, area charts with 2+ measures of different scales. Example: {\"Sales.revenue\": \"left\", \"Sales.conversionRate\": \"right\"}"
2187
- }
2389
+ },
2390
+ ...u
2188
2391
  },
2189
2392
  description: "Chart axis configuration"
2190
2393
  },
@@ -2198,7 +2401,8 @@ function ge() {
2198
2401
  orientation: {
2199
2402
  type: "string",
2200
2403
  enum: ["horizontal", "vertical"]
2201
- }
2404
+ },
2405
+ ...l
2202
2406
  },
2203
2407
  description: "Chart display configuration"
2204
2408
  }
@@ -2280,13 +2484,15 @@ function ge() {
2280
2484
  items: { type: "string" }
2281
2485
  },
2282
2486
  sizeField: { type: "string" },
2283
- colorField: { type: "string" }
2487
+ colorField: { type: "string" },
2488
+ ...u
2284
2489
  },
2285
2490
  description: "Chart axis configuration"
2286
2491
  },
2287
2492
  displayConfig: {
2288
2493
  type: "object",
2289
- description: "Chart display configuration (for markdown: { content, hideHeader, transparentBackground, autoHeight })"
2494
+ description: "Chart display configuration (for markdown: { content, hideHeader, transparentBackground, autoHeight })",
2495
+ properties: l
2290
2496
  },
2291
2497
  dashboardFilterMapping: {
2292
2498
  type: "array",
@@ -2394,10 +2600,10 @@ function ge() {
2394
2600
  }
2395
2601
  ];
2396
2602
  }
2397
- function _e(e) {
2398
- let { semanticLayer: t, securityContext: n } = e, o = /* @__PURE__ */ new Map();
2399
- o.set("discover_cubes", async (e) => {
2400
- let r = { cubes: (await a(t, n, {
2603
+ function Te(e) {
2604
+ let { semanticLayer: t, securityContext: n } = e, i = /* @__PURE__ */ new Map();
2605
+ i.set("discover_cubes", async (e) => {
2606
+ let r = { cubes: (await o(t, n, {
2401
2607
  topic: e.topic,
2402
2608
  intent: e.intent,
2403
2609
  limit: e.limit,
@@ -2409,6 +2615,7 @@ function _e(e) {
2409
2615
  relevanceScore: e.relevanceScore,
2410
2616
  suggestedMeasures: e.suggestedMeasures,
2411
2617
  suggestedDimensions: e.suggestedDimensions,
2618
+ ...e.fieldTitles ? { fieldTitles: e.fieldTitles } : {},
2412
2619
  capabilities: e.capabilities,
2413
2620
  ...e.capabilities.funnel || e.capabilities.flow || e.capabilities.retention ? { analysisConfig: {
2414
2621
  candidateBindingKeys: e.analysisConfig?.candidateBindingKeys?.map((e) => e.dimension) ?? [],
@@ -2417,7 +2624,7 @@ function _e(e) {
2417
2624
  } } : {}
2418
2625
  })) };
2419
2626
  return { result: JSON.stringify(r) + "\n[IMPORTANT: Your next response MUST start with a brief text message BEFORE any tool calls.]" };
2420
- }), o.set("get_cube_metadata", async () => {
2627
+ }), i.set("get_cube_metadata", async () => {
2421
2628
  let e = t.getMetadata(n);
2422
2629
  return { result: JSON.stringify(e) };
2423
2630
  });
@@ -2430,7 +2637,7 @@ function _e(e) {
2430
2637
  let n = s.get(e), r = t === "measures" ? n?.measures : n?.dimensions;
2431
2638
  return !r || r.length === 0 ? "" : ` Available ${t}: ${r.slice(0, 5).map((e) => `"${e}"`).join(", ")}`;
2432
2639
  };
2433
- return o.set("execute_query", async (e) => {
2640
+ return i.set("execute_query", async (e) => {
2434
2641
  try {
2435
2642
  let r = (e, t) => {
2436
2643
  if (!Array.isArray(e)) return;
@@ -2443,8 +2650,8 @@ function _e(e) {
2443
2650
  if (n.length > 0) throw Error(`Invalid ${t}:\n${n.join("\n")}`);
2444
2651
  };
2445
2652
  r(e.measures, "measures"), r(e.dimensions, "dimensions");
2446
- let a;
2447
- a = e.funnel ? { funnel: e.funnel } : e.flow ? { flow: e.flow } : e.retention ? { retention: e.retention } : {
2653
+ let i;
2654
+ i = e.funnel ? { funnel: e.funnel } : e.flow ? { flow: e.flow } : e.retention ? { retention: e.retention } : {
2448
2655
  measures: e.measures,
2449
2656
  dimensions: e.dimensions,
2450
2657
  filters: e.filters,
@@ -2454,7 +2661,7 @@ function _e(e) {
2454
2661
  offset: e.offset,
2455
2662
  ungrouped: e.ungrouped
2456
2663
  };
2457
- let o = await i(t, n, { query: a });
2664
+ let o = await a(t, n, { query: i });
2458
2665
  return { result: JSON.stringify({
2459
2666
  rowCount: o.data.length,
2460
2667
  data: o.data,
@@ -2477,7 +2684,7 @@ function _e(e) {
2477
2684
  isError: !0
2478
2685
  };
2479
2686
  }
2480
- }), o.set("add_portlet", async (e) => {
2687
+ }), i.set("add_portlet", async (e) => {
2481
2688
  let i = {
2482
2689
  number: "kpiNumber",
2483
2690
  retention: "retentionHeatmap"
@@ -2499,7 +2706,7 @@ function _e(e) {
2499
2706
  let s = !!(a.funnel || a.flow || a.retention), c;
2500
2707
  if (s) c = e.chartConfig ?? {};
2501
2708
  else {
2502
- let t = me(i, e.chartConfig, a), n = de(i, t, a);
2709
+ let t = xe(i, e.chartConfig, a), n = ve(i, t, a);
2503
2710
  if (!n.isValid) return {
2504
2711
  result: `Chart config invalid — fix these errors and retry:\n${n.errors.join("\n")}`,
2505
2712
  isError: !0
@@ -2509,7 +2716,7 @@ function _e(e) {
2509
2716
  let l = `portlet-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`, u = {
2510
2717
  id: l,
2511
2718
  title: e.title,
2512
- query: e.query,
2719
+ query: JSON.stringify(a),
2513
2720
  chartType: i,
2514
2721
  chartConfig: c,
2515
2722
  displayConfig: e.displayConfig
@@ -2521,7 +2728,7 @@ function _e(e) {
2521
2728
  data: u
2522
2729
  }
2523
2730
  };
2524
- }), o.set("add_markdown", async (e) => {
2731
+ }), i.set("add_markdown", async (e) => {
2525
2732
  let t = `markdown-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`, n = e.content || e.text || e.markdown || "", r = {
2526
2733
  id: t,
2527
2734
  title: e.title,
@@ -2534,59 +2741,69 @@ function _e(e) {
2534
2741
  data: r
2535
2742
  }
2536
2743
  };
2537
- }), o.set("save_as_dashboard", async (e) => {
2744
+ }), i.set("save_as_dashboard", async (e) => {
2538
2745
  try {
2539
2746
  let i = e.portlets;
2540
2747
  if (!i || i.length === 0) return {
2541
2748
  result: "Dashboard must contain at least one portlet.",
2542
2749
  isError: !0
2543
2750
  };
2544
- let a = [];
2751
+ let a = [], o = /* @__PURE__ */ new Map();
2545
2752
  for (let e of i) {
2546
- if (e.chartType === "markdown") continue;
2547
- let i = e.query;
2548
- if (!i) {
2753
+ let i = e.chartType;
2754
+ if (i === "markdown") continue;
2755
+ let s = e.query;
2756
+ if (!s) {
2549
2757
  a.push(`Portlet "${e.title}": missing query`);
2550
2758
  continue;
2551
2759
  }
2552
- let o;
2760
+ let c;
2553
2761
  try {
2554
- o = JSON.parse(i);
2762
+ c = JSON.parse(s);
2555
2763
  } catch {
2556
2764
  a.push(`Portlet "${e.title}": invalid JSON query`);
2557
2765
  continue;
2558
2766
  }
2559
- o = r(o);
2560
- let s = t.validateQuery(o, n);
2561
- s.isValid || a.push(`Portlet "${e.title}": ${s.errors.join(", ")}`);
2767
+ c = r(c);
2768
+ let l = t.validateQuery(c, n);
2769
+ if (!l.isValid) {
2770
+ a.push(`Portlet "${e.title}": ${l.errors.join(", ")}`);
2771
+ continue;
2772
+ }
2773
+ let u = xe(i, e.chartConfig, c), d = ve(i, u, c);
2774
+ if (!d.isValid) {
2775
+ a.push(`Portlet "${e.title}": ${d.errors.join(", ")}`);
2776
+ continue;
2777
+ }
2778
+ o.set(e, u);
2562
2779
  }
2563
2780
  if (a.length > 0) return {
2564
2781
  result: `Dashboard has invalid portlets — fix these errors and retry:\n${a.join("\n")}`,
2565
2782
  isError: !0
2566
2783
  };
2567
- let o = {
2784
+ let s = {
2568
2785
  portlets: i.map((e) => {
2569
- let t = e.chartType, n = t === "markdown", r = n ? "query" : e.analysisType || "query", i = r === "funnel" ? "funnel" : r === "flow" ? "flow" : r === "retention" ? "retention" : "query", a = e.query || "{}", o;
2786
+ let t = e.chartType, n = t === "markdown", r = n ? "query" : e.analysisType || "query", i = r === "funnel" ? "funnel" : r === "flow" ? "flow" : r === "retention" ? "retention" : "query", a = e.query || "{}", s;
2570
2787
  try {
2571
- o = JSON.parse(a);
2788
+ s = JSON.parse(a);
2572
2789
  } catch {
2573
- o = {};
2790
+ s = {};
2574
2791
  }
2575
- let s = {
2792
+ let c = {
2576
2793
  version: 1,
2577
2794
  analysisType: i,
2578
2795
  activeView: "chart",
2579
2796
  charts: { [i]: {
2580
2797
  chartType: t,
2581
- chartConfig: e.chartConfig || {},
2798
+ chartConfig: o.get(e) ?? e.chartConfig ?? {},
2582
2799
  displayConfig: e.displayConfig || {}
2583
2800
  } },
2584
- query: n ? {} : o
2801
+ query: n ? {} : s
2585
2802
  };
2586
2803
  return {
2587
2804
  id: e.id,
2588
2805
  title: e.title,
2589
- analysisConfig: s,
2806
+ analysisConfig: c,
2590
2807
  dashboardFilterMapping: e.dashboardFilterMapping,
2591
2808
  w: e.w,
2592
2809
  h: e.h,
@@ -2596,15 +2813,15 @@ function _e(e) {
2596
2813
  }),
2597
2814
  filters: e.filters,
2598
2815
  colorPalette: e.colorPalette
2599
- }, s = e.title;
2816
+ }, c = e.title;
2600
2817
  return {
2601
- result: `Dashboard "${s}" created with ${o.portlets.length} portlets and ${o.filters?.length || 0} filters.`,
2818
+ result: `Dashboard "${c}" created with ${s.portlets.length} portlets and ${s.filters?.length || 0} filters.`,
2602
2819
  sideEffect: {
2603
2820
  type: "dashboard_saved",
2604
2821
  data: {
2605
- title: s,
2822
+ title: c,
2606
2823
  description: e.description,
2607
- dashboardConfig: o
2824
+ dashboardConfig: s
2608
2825
  }
2609
2826
  }
2610
2827
  };
@@ -2614,22 +2831,22 @@ function _e(e) {
2614
2831
  isError: !0
2615
2832
  };
2616
2833
  }
2617
- }), o;
2834
+ }), i;
2618
2835
  }
2619
2836
  //#endregion
2620
2837
  //#region src/server/agent/providers/factory.ts
2621
- async function ve(e, t, n) {
2838
+ async function Ee(e, t, n) {
2622
2839
  switch (e) {
2623
2840
  case "anthropic": {
2624
2841
  let { AnthropicProvider: e } = await import("./anthropic-CZh4hB-m.js");
2625
2842
  return new e(t);
2626
2843
  }
2627
2844
  case "openai": {
2628
- let { OpenAIProvider: e } = await import("./openai-D-VMcPao.js");
2845
+ let { OpenAIProvider: e } = await import("./openai-DK_KWiI7.js");
2629
2846
  return new e(t, n);
2630
2847
  }
2631
2848
  case "google": {
2632
- let { GoogleProvider: e } = await import("./google-eKAc20al.js");
2849
+ let { GoogleProvider: e } = await import("./google-DRY7jnOh.js");
2633
2850
  return new e(t);
2634
2851
  }
2635
2852
  default: throw Error(`Unknown LLM provider: "${e}". Supported providers: anthropic, openai, google`);
@@ -2637,7 +2854,7 @@ async function ve(e, t, n) {
2637
2854
  }
2638
2855
  //#endregion
2639
2856
  //#region src/server/agent/handler-steps.ts
2640
- function ye(e, t) {
2857
+ function De(e, t) {
2641
2858
  if (Array.isArray(t)) for (let n of t) e.push(n);
2642
2859
  else e.push(t);
2643
2860
  }
@@ -2646,7 +2863,7 @@ function $(e) {
2646
2863
  e();
2647
2864
  } catch {}
2648
2865
  }
2649
- function be(e, t) {
2866
+ function Oe(e, t) {
2650
2867
  let n = [];
2651
2868
  if (!e || e.length === 0) return n;
2652
2869
  for (let r of e) {
@@ -2679,7 +2896,7 @@ function be(e, t) {
2679
2896
  content: typeof e.result == "string" ? e.result : JSON.stringify(e.result ?? ""),
2680
2897
  isError: e.status === "error"
2681
2898
  }));
2682
- ye(n, t.formatToolResults(i));
2899
+ De(n, t.formatToolResults(i));
2683
2900
  } else e.length > 0 && n.push({
2684
2901
  role: "assistant",
2685
2902
  content: r.content
@@ -2687,21 +2904,21 @@ function be(e, t) {
2687
2904
  }
2688
2905
  return n;
2689
2906
  }
2690
- function xe(e, t) {
2907
+ function ke(e, t) {
2691
2908
  if (!(e?.type !== "tool_use" || !t)) try {
2692
2909
  e.input = JSON.parse(t);
2693
2910
  } catch {
2694
2911
  e.input = {};
2695
2912
  }
2696
2913
  }
2697
- function Se(e, t) {
2914
+ function Ae(e, t) {
2698
2915
  let n = e.contentBlocks[e.contentBlocks.length - 1];
2699
2916
  n && n.type === "text" ? n.text = (n.text || "") + t : e.contentBlocks.push({
2700
2917
  type: "text",
2701
2918
  text: t
2702
2919
  });
2703
2920
  }
2704
- function Ce(e, t) {
2921
+ function je(e, t) {
2705
2922
  if (e.currentBlockIsToolUse && e.currentToolInputJson) {
2706
2923
  let t = e.contentBlocks[e.contentBlocks.length - 1];
2707
2924
  if (t?.type === "tool_use") try {
@@ -2716,16 +2933,16 @@ function Ce(e, t) {
2716
2933
  ...t.metadata ? { metadata: t.metadata } : {}
2717
2934
  }), e.currentToolInputJson = "", e.currentBlockIsToolUse = !0;
2718
2935
  }
2719
- function we(e, t) {
2936
+ function Me(e, t) {
2720
2937
  if (t.id && t.input) {
2721
2938
  let n = e.contentBlocks.find((e) => e.type === "tool_use" && e.id === t.id);
2722
2939
  n && (n.input = t.input);
2723
2940
  } else if (e.currentBlockIsToolUse) {
2724
2941
  let t = e.contentBlocks[e.contentBlocks.length - 1];
2725
- t?.type === "tool_use" && e.currentToolInputJson && (xe(t, e.currentToolInputJson), e.currentToolInputJson = ""), e.currentBlockIsToolUse = !1;
2942
+ t?.type === "tool_use" && e.currentToolInputJson && (ke(t, e.currentToolInputJson), e.currentToolInputJson = ""), e.currentBlockIsToolUse = !1;
2726
2943
  }
2727
2944
  }
2728
- async function* Te(e, t) {
2945
+ async function* Ne(e, t) {
2729
2946
  let n = {
2730
2947
  contentBlocks: [],
2731
2948
  currentToolInputJson: "",
@@ -2736,13 +2953,13 @@ async function* Te(e, t) {
2736
2953
  let e = r;
2737
2954
  switch (e.type) {
2738
2955
  case "text_delta":
2739
- Se(n, e.text), yield {
2956
+ Ae(n, e.text), yield {
2740
2957
  type: "text_delta",
2741
2958
  data: e.text
2742
2959
  };
2743
2960
  break;
2744
2961
  case "tool_use_start":
2745
- Ce(n, e), yield {
2962
+ je(n, e), yield {
2746
2963
  type: "tool_use_start",
2747
2964
  data: {
2748
2965
  id: e.id,
@@ -2755,7 +2972,7 @@ async function* Te(e, t) {
2755
2972
  n.currentToolInputJson += e.json;
2756
2973
  break;
2757
2974
  case "tool_use_end":
2758
- we(n, e);
2975
+ Me(n, e);
2759
2976
  break;
2760
2977
  case "message_meta": e.inputTokens != null && (n.inputTokens = e.inputTokens), e.outputTokens != null && (n.outputTokens = e.outputTokens), e.stopReason && (n.stopReason = e.stopReason);
2761
2978
  }
@@ -2767,7 +2984,7 @@ async function* Te(e, t) {
2767
2984
  outputTokens: n.outputTokens
2768
2985
  };
2769
2986
  }
2770
- async function* Ee(e, t) {
2987
+ async function* Pe(e, t) {
2771
2988
  let { executor: n, observability: r, traceId: i, turn: a } = t, o = e.name, s = e.input || {}, c = e.id, l = n.get(o);
2772
2989
  if (!l) return yield {
2773
2990
  type: "tool_use_result",
@@ -2832,26 +3049,26 @@ async function* Ee(e, t) {
2832
3049
  };
2833
3050
  }
2834
3051
  }
2835
- async function* De(e, t) {
3052
+ async function* Fe(e, t) {
2836
3053
  let n = [];
2837
3054
  for (let r of e) {
2838
3055
  if (r.type !== "tool_use") continue;
2839
- let e = yield* Ee(r, t);
3056
+ let e = yield* Pe(r, t);
2840
3057
  n.push(e);
2841
3058
  }
2842
3059
  return n;
2843
3060
  }
2844
3061
  //#endregion
2845
3062
  //#region src/server/agent/handler.ts
2846
- var Oe = {
3063
+ var Ie = {
2847
3064
  anthropic: "claude-sonnet-4-6",
2848
3065
  openai: "gpt-4.1-mini",
2849
3066
  google: "gemini-3-flash-preview"
2850
3067
  };
2851
- async function* ke(t) {
2852
- let { message: n, history: r, semanticLayer: i, securityContext: a, agentConfig: o, apiKey: s } = t, c = t.sessionId || crypto.randomUUID(), l = o.observability, u = crypto.randomUUID(), d = Date.now(), f = t.providerOverride || o.provider || "anthropic", p = t.modelOverride || o.model || Oe[f] || "claude-sonnet-4-6", m = t.baseURLOverride || o.baseURL, h = o.maxTurns || 25, g = o.maxTokens || 4096, _;
3068
+ async function* Le(t) {
3069
+ let { message: n, history: r, semanticLayer: i, securityContext: a, agentConfig: o, apiKey: s } = t, c = t.sessionId || crypto.randomUUID(), l = o.observability, u = crypto.randomUUID(), d = Date.now(), f = t.providerOverride || o.provider || "anthropic", p = t.modelOverride || o.model || Ie[f] || "claude-sonnet-4-6", m = t.baseURLOverride || o.baseURL, h = o.maxTurns || 25, g = o.maxTokens || 4096, _;
2853
3070
  try {
2854
- _ = await ve(f, s, { baseURL: m });
3071
+ _ = await Ee(f, s, { baseURL: m });
2855
3072
  } catch (t) {
2856
3073
  console.error("[agent] Failed to create %s provider: %s", String(f).replace(/\n|\r/g, ""), String(t instanceof Error ? t.message : t).replace(/\n|\r/g, "")), yield {
2857
3074
  type: "error",
@@ -2859,10 +3076,10 @@ async function* ke(t) {
2859
3076
  };
2860
3077
  return;
2861
3078
  }
2862
- let v = ge(), y = _e({
3079
+ let v = we(), y = Te({
2863
3080
  semanticLayer: i,
2864
3081
  securityContext: a
2865
- }), b = te(i.getMetadata(a));
3082
+ }), b = ie(i.getMetadata(a));
2866
3083
  t.systemContext && (b += `\n\n## User Context\n\n${t.systemContext}`), $(() => l?.onChatStart?.({
2867
3084
  traceId: u,
2868
3085
  sessionId: c,
@@ -2870,7 +3087,7 @@ async function* ke(t) {
2870
3087
  model: p,
2871
3088
  historyLength: r?.length ?? 0
2872
3089
  }));
2873
- let x = be(r, _);
3090
+ let x = Oe(r, _);
2874
3091
  x.push({
2875
3092
  role: "user",
2876
3093
  content: n
@@ -2885,7 +3102,7 @@ async function* ke(t) {
2885
3102
  system: b,
2886
3103
  tools: v,
2887
3104
  messages: x
2888
- }), n = Date.now(), { contentBlocks: r, stopReason: i, inputTokens: a, outputTokens: o } = yield* Te(_, t);
3105
+ }), n = Date.now(), { contentBlocks: r, stopReason: i, inputTokens: a, outputTokens: o } = yield* Ne(_, t);
2889
3106
  if ($(() => l?.onGenerationEnd?.({
2890
3107
  traceId: u,
2891
3108
  turn: e,
@@ -2900,7 +3117,7 @@ async function* ke(t) {
2900
3117
  role: "assistant",
2901
3118
  content: r
2902
3119
  }), !_.shouldContinue(i)) break;
2903
- let s = yield* De(r, {
3120
+ let s = yield* Fe(r, {
2904
3121
  executor: y,
2905
3122
  observability: l,
2906
3123
  traceId: u,
@@ -2909,7 +3126,7 @@ async function* ke(t) {
2909
3126
  yield {
2910
3127
  type: "turn_complete",
2911
3128
  data: {}
2912
- }, ye(x, _.formatToolResults(s));
3129
+ }, De(x, _.formatToolResults(s));
2913
3130
  }
2914
3131
  $(() => l?.onChatEnd?.({
2915
3132
  traceId: u,
@@ -2940,4 +3157,4 @@ async function* ke(t) {
2940
3157
  }
2941
3158
  }
2942
3159
  //#endregion
2943
- export { T as C, w as D, ne as E, E as S, re as T, j as _, U as a, O as b, B as c, L as d, I as f, M as g, N as h, ke as handleAgentChat, W as i, z as l, P as m, K as n, H as o, F as p, G as r, V as s, q as t, R as u, A as v, ie as w, D as x, k as y };
3160
+ export { O as C, w as D, T as E, oe as O, k as S, E as T, P as _, G as a, j as b, H as c, se as d, z as f, F as g, I as h, Le as handleAgentChat, K as i, ae as k, V as l, L as m, J as n, W as o, R as p, q as r, U as s, ce as t, B as u, N as v, D as w, A as x, M as y };