@luzmo/analytics-components-kit 1.0.3-beta.5 → 1.0.3-beta.7

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 (249) hide show
  1. package/components/ai-chat/ai-chat-request.d.ts +11 -0
  2. package/components/ai-chat/ai-chat.d.ts +72 -51
  3. package/components/ai-chat/ai-prompt-types.d.ts +93 -0
  4. package/components/ai-chat/empty-state/ai-chat-empty-state.d.ts +46 -0
  5. package/components/ai-chat/empty-state/index.d.ts +8 -0
  6. package/components/ai-chat/empty-state/types.d.ts +14 -0
  7. package/components/ai-chat/index.cjs +1 -1
  8. package/components/ai-chat/index.d.ts +11 -4
  9. package/components/ai-chat/index.js +2 -2
  10. package/components/ai-chat/session/ai-chat-session-controller.d.ts +51 -0
  11. package/components/ai-chat/session/ai-chat-session-types.d.ts +86 -0
  12. package/components/ai-chat/session/ai-chat-session.d.ts +81 -0
  13. package/components/ai-chat/session/index.d.ts +2 -0
  14. package/components/ai-chat/{ai-chat-streaming.d.ts → stream/ai-chat-streaming.d.ts} +6 -0
  15. package/components/ai-chat/stream/analyst-handler.d.ts +3 -0
  16. package/components/ai-chat/stream/dashboard-handler.d.ts +4 -0
  17. package/components/ai-chat/stream/index.d.ts +8 -0
  18. package/components/ai-chat/stream/item-handler.d.ts +2 -0
  19. package/components/ai-chat/stream/registry.d.ts +5 -0
  20. package/components/ai-chat/stream/shared.d.ts +10 -0
  21. package/components/ai-chat/stream/types.d.ts +26 -0
  22. package/components/ai-chat-BITPlYbm.cjs +178 -0
  23. package/components/ai-chat-D6fgbjA2.js +1861 -0
  24. package/components/ai-interaction-textarea/index.cjs +1 -1
  25. package/components/ai-interaction-textarea/index.js +1 -1
  26. package/components/{ai-interaction-textarea-BXmgedJt.js → ai-interaction-textarea-C1DMkiX9.js} +3 -3
  27. package/components/{ai-interaction-textarea-CogE101T.cjs → ai-interaction-textarea-wt2weV1c.cjs} +1 -1
  28. package/components/{base-BAzY-whv.js → base-D82dU2vv.js} +1 -1
  29. package/components/{base-CbpjVnVy.cjs → base-iNk9N4Tk.cjs} +1 -1
  30. package/components/data-field/index.cjs +1 -1
  31. package/components/data-field/index.js +1 -1
  32. package/components/{data-field-tfAMLb-d.js → data-field-2gH1_AhT.js} +3 -3
  33. package/components/{data-field-97uH3l6o.cjs → data-field-DDO-2ESu.cjs} +1 -1
  34. package/components/data-field-level/index.cjs +1 -1
  35. package/components/data-field-level/index.js +1 -1
  36. package/components/{data-field-level-BsDTHrJ6.js → data-field-level-2h8s8KK1.js} +1 -1
  37. package/components/{data-field-level-6npuFtQo.cjs → data-field-level-COl8ZWdN.cjs} +1 -1
  38. package/components/data-field-panel/index.cjs +1 -1
  39. package/components/data-field-panel/index.js +1 -1
  40. package/components/{data-field-panel-Dv5nfM0z.cjs → data-field-panel-CgfuCAp8.cjs} +1 -1
  41. package/components/{data-field-panel-P2t8d6sG.js → data-field-panel-P9QrDHMI.js} +3 -3
  42. package/components/data-fields-select/index.cjs +1 -1
  43. package/components/data-fields-select/index.js +1 -1
  44. package/components/{data-fields-select-DHnnYhbr.js → data-fields-select-1I8-Brdz.js} +1 -1
  45. package/components/{data-fields-select-B7vJTdZO.cjs → data-fields-select-Cudq0iLk.cjs} +1 -1
  46. package/components/dataset-selector-list/index.cjs +1 -1
  47. package/components/dataset-selector-list/index.js +1 -1
  48. package/components/{dataset-selector-list-DbCmavOc.cjs → dataset-selector-list-BxGYITHM.cjs} +1 -1
  49. package/components/{dataset-selector-list-CXnDkIe2.js → dataset-selector-list-DmbQl9uz.js} +1 -1
  50. package/components/dataset-selector-row/index.cjs +1 -1
  51. package/components/dataset-selector-row/index.js +1 -1
  52. package/components/{dataset-selector-row-Bm60zTbF.cjs → dataset-selector-row-BgGa4uFN.cjs} +1 -1
  53. package/components/{dataset-selector-row-BONcmdL2.js → dataset-selector-row-CaTsyi1d.js} +1 -1
  54. package/components/{de-DMnvmNFg.js → de-DFS1MvFY.js} +6 -1
  55. package/components/de-DWpyMlmz.cjs +20 -0
  56. package/components/display-settings/index.cjs +1 -1
  57. package/components/display-settings/index.js +1 -1
  58. package/components/{display-settings-BLf7lBww.cjs → display-settings-Bfz2tg_G.cjs} +1 -1
  59. package/components/{display-settings-BLMrlvMS.js → display-settings-DWoUj0P7.js} +1 -1
  60. package/components/display-settings-binning/index.cjs +1 -1
  61. package/components/display-settings-binning/index.js +1 -1
  62. package/components/{display-settings-binning-hCJ0qkt5.js → display-settings-binning-BIBzOWZA.js} +2 -2
  63. package/components/{display-settings-binning-BAg6FoqJ.cjs → display-settings-binning-Cf1QlQy6.cjs} +1 -1
  64. package/components/display-settings-datetime/index.cjs +1 -1
  65. package/components/display-settings-datetime/index.js +1 -1
  66. package/components/{display-settings-datetime-BzeNlKLC.cjs → display-settings-datetime-C76Et2ED.cjs} +1 -1
  67. package/components/{display-settings-datetime-CCxok7d7.js → display-settings-datetime-DGlj31eD.js} +2 -2
  68. package/components/display-settings-grand-totals/index.cjs +1 -1
  69. package/components/display-settings-grand-totals/index.js +1 -1
  70. package/components/{display-settings-grand-totals-HDpr3IJ5.cjs → display-settings-grand-totals-By98iKXS.cjs} +1 -1
  71. package/components/{display-settings-grand-totals-C1N1cehl.js → display-settings-grand-totals-ZWO02WXj.js} +2 -2
  72. package/components/display-settings-numeric/index.cjs +1 -1
  73. package/components/display-settings-numeric/index.js +1 -1
  74. package/components/{display-settings-numeric-DSs20wUu.cjs → display-settings-numeric-BPKl9ljn.cjs} +1 -1
  75. package/components/{display-settings-numeric-oyCfBAGV.js → display-settings-numeric-DHvjUxmC.js} +2 -2
  76. package/components/display-settings-period-over-period/index.cjs +1 -1
  77. package/components/display-settings-period-over-period/index.js +1 -1
  78. package/components/{display-settings-period-over-period-h8bA3V5C.js → display-settings-period-over-period-CPsfL-OC.js} +2 -2
  79. package/components/{display-settings-period-over-period-CcX7vQnt.cjs → display-settings-period-over-period-CYwa8_dX.cjs} +1 -1
  80. package/components/es-Bm4nseZH.cjs +20 -0
  81. package/components/{es-Cc258uTs.js → es-C1prodbH.js} +6 -1
  82. package/components/filter-expression-picker/index.cjs +1 -1
  83. package/components/filter-expression-picker/index.js +1 -1
  84. package/components/{filter-expression-picker-BMJkgHu9.cjs → filter-expression-picker-CJB_jgcc.cjs} +1 -1
  85. package/components/{filter-expression-picker-DQP5lkn4.js → filter-expression-picker-DbIwoTsX.js} +1 -1
  86. package/components/filter-item/index.cjs +1 -1
  87. package/components/filter-item/index.js +1 -1
  88. package/components/{filter-item-BXcYNAAm.js → filter-item-BGtJwvjk.js} +4 -4
  89. package/components/{filter-item-D9m378Qo.cjs → filter-item-as8Ocmp3.cjs} +1 -1
  90. package/components/filter-value-picker/index.cjs +1 -1
  91. package/components/filter-value-picker/index.js +1 -1
  92. package/components/{filter-value-picker-YIkbsWDP.cjs → filter-value-picker-BL-1pN_G.cjs} +1 -1
  93. package/components/{filter-value-picker-B-dzcjEo.js → filter-value-picker-BrYCGFst.js} +4 -4
  94. package/components/filter-value-picker-datetime/index.cjs +1 -1
  95. package/components/filter-value-picker-datetime/index.js +1 -1
  96. package/components/{filter-value-picker-datetime-BJMcnoKH.js → filter-value-picker-datetime-BPtF1l_J.js} +1 -1
  97. package/components/{filter-value-picker-datetime-BrrmcjIE.cjs → filter-value-picker-datetime-wXHf2Ybs.cjs} +1 -1
  98. package/components/filter-value-picker-hierarchy/index.cjs +1 -1
  99. package/components/filter-value-picker-hierarchy/index.js +1 -1
  100. package/components/{filter-value-picker-hierarchy-UdDq0CZG.js → filter-value-picker-hierarchy-CDhpfB2Y.js} +2 -2
  101. package/components/{filter-value-picker-hierarchy-B9gDxYna.cjs → filter-value-picker-hierarchy-Cmw2p2K6.cjs} +1 -1
  102. package/components/filter-value-picker-numeric/index.cjs +1 -1
  103. package/components/filter-value-picker-numeric/index.js +1 -1
  104. package/components/{filter-value-picker-numeric-EK515Z-Y.js → filter-value-picker-numeric-BEvT5oKu.js} +1 -1
  105. package/components/{filter-value-picker-numeric-D_dgITCq.cjs → filter-value-picker-numeric-UwkCyHGV.cjs} +1 -1
  106. package/components/filters/index.cjs +1 -1
  107. package/components/filters/index.js +1 -1
  108. package/components/{filters-8ehwgopC.cjs → filters-DdB5-4Db.cjs} +1 -1
  109. package/components/{filters-H2scDNLi.js → filters-ltvxQR-K.js} +2 -2
  110. package/components/{fr-B32d4zcX.js → fr-BMYUCp2R.js} +6 -1
  111. package/components/fr-BPTbVsj0.cjs +20 -0
  112. package/components/{get-dataset-name-7FdLQo10.js → get-dataset-name-BfFHT__k.js} +1 -1
  113. package/components/{get-dataset-name-CrWWViwN.cjs → get-dataset-name-Cl6mPSex.cjs} +1 -1
  114. package/components/index.cjs +1 -1
  115. package/components/index.js +58 -58
  116. package/components/item-grid/helpers/grid-item-popover.d.ts +7 -1
  117. package/components/item-grid/helpers/grid-rendering.d.ts +7 -1
  118. package/components/item-grid/index.cjs +1 -1
  119. package/components/item-grid/index.js +1 -1
  120. package/components/item-grid/item-grid.d.ts +8 -0
  121. package/components/{item-grid-CxblVEy3.cjs → item-grid-DR36E_MC.cjs} +7 -7
  122. package/components/{item-grid-B-IFwriA.js → item-grid-Q0Ggl_US.js} +574 -564
  123. package/components/item-option/index.cjs +1 -1
  124. package/components/item-option/index.js +1 -1
  125. package/components/{item-option-ChsD18x9.cjs → item-option-CbvYq_WJ.cjs} +1 -1
  126. package/components/{item-option-Buxnv89s.js → item-option-DI3KO7QY.js} +1 -1
  127. package/components/item-option-action-button-group/index.cjs +1 -1
  128. package/components/item-option-action-button-group/index.js +1 -1
  129. package/components/{item-option-action-button-group-Cw9EDbG-.cjs → item-option-action-button-group-BnMVlPWX.cjs} +1 -1
  130. package/components/{item-option-action-button-group-QO_darH9.js → item-option-action-button-group-D6IwxNDf.js} +1 -1
  131. package/components/{item-option-base-DjQ5poaH.cjs → item-option-base-CKQPWveC.cjs} +1 -1
  132. package/components/{item-option-base-DMmga0dv.js → item-option-base-DH5wKqEF.js} +1 -1
  133. package/components/item-option-color-palette-picker/index.cjs +1 -1
  134. package/components/item-option-color-palette-picker/index.js +1 -1
  135. package/components/{item-option-color-palette-picker-gZvk4ODA.cjs → item-option-color-palette-picker-h-3xHsR4.cjs} +1 -1
  136. package/components/{item-option-color-palette-picker-CiE_aWRI.js → item-option-color-palette-picker-n_OxJNd9.js} +1 -1
  137. package/components/item-option-color-picker/index.cjs +1 -1
  138. package/components/item-option-color-picker/index.js +1 -1
  139. package/components/{item-option-color-picker-CUskqN3R.js → item-option-color-picker-C1x5vS5d.js} +1 -1
  140. package/components/{item-option-color-picker-DCnGqBgT.cjs → item-option-color-picker-C6LZkkBG.cjs} +1 -1
  141. package/components/item-option-color-range/index.cjs +1 -1
  142. package/components/item-option-color-range/index.js +1 -1
  143. package/components/{item-option-color-range-BgHXTDvx.js → item-option-color-range-B2jermJT.js} +1 -1
  144. package/components/{item-option-color-range-B24EAbUi.cjs → item-option-color-range-DBiG8jhK.cjs} +1 -1
  145. package/components/item-option-multi-language-field/index.cjs +1 -1
  146. package/components/item-option-multi-language-field/index.js +1 -1
  147. package/components/{item-option-multi-language-field-qngZBXHT.js → item-option-multi-language-field-BmJY3dG0.js} +1 -1
  148. package/components/{item-option-multi-language-field-DDIu7Hns.cjs → item-option-multi-language-field-DDeFZMwX.cjs} +1 -1
  149. package/components/item-option-number-field/index.cjs +1 -1
  150. package/components/item-option-number-field/index.js +1 -1
  151. package/components/{item-option-number-field-Cd-cfpaq.js → item-option-number-field-B5ed4vvs.js} +1 -1
  152. package/components/{item-option-number-field-CqrO1Xu0.cjs → item-option-number-field-BJo-SKQB.cjs} +1 -1
  153. package/components/item-option-panel/index.cjs +1 -1
  154. package/components/item-option-panel/index.js +1 -1
  155. package/components/{item-option-panel-DZiOx_sn.js → item-option-panel-B8BKxNPg.js} +2 -2
  156. package/components/{item-option-panel-B26_sDcj.cjs → item-option-panel-Dm34avUG.cjs} +1 -1
  157. package/components/item-option-picker/index.cjs +1 -1
  158. package/components/item-option-picker/index.js +1 -1
  159. package/components/{item-option-picker-LRahjZUz.js → item-option-picker-C8evzSOb.js} +1 -1
  160. package/components/{item-option-picker-B86AqAWp.cjs → item-option-picker-DlbKU1wY.cjs} +1 -1
  161. package/components/item-option-position-picker/index.cjs +1 -1
  162. package/components/item-option-position-picker/index.js +1 -1
  163. package/components/{item-option-position-picker-NUpUlyPV.js → item-option-position-picker-Bue5o0fT.js} +1 -1
  164. package/components/{item-option-position-picker-Cbi2OygH.cjs → item-option-position-picker-CB4Y0Z6D.cjs} +1 -1
  165. package/components/item-option-positions-number-field/index.cjs +1 -1
  166. package/components/item-option-positions-number-field/index.js +1 -1
  167. package/components/{item-option-positions-number-field-BbIkX6wM.cjs → item-option-positions-number-field-Bbru1yNj.cjs} +1 -1
  168. package/components/{item-option-positions-number-field-ClPil6MM.js → item-option-positions-number-field-CdK1WdMx.js} +1 -1
  169. package/components/item-option-radio-button-group/index.cjs +1 -1
  170. package/components/item-option-radio-button-group/index.js +1 -1
  171. package/components/{item-option-radio-button-group-BtYYhQyI.cjs → item-option-radio-button-group-BCiDl5wB.cjs} +1 -1
  172. package/components/{item-option-radio-button-group-Bdd9sU4p.js → item-option-radio-button-group-BlQxNUIM.js} +1 -1
  173. package/components/item-option-slider/index.cjs +1 -1
  174. package/components/item-option-slider/index.js +1 -1
  175. package/components/{item-option-slider-BJ7gVQXP.js → item-option-slider-CX8XWUEP.js} +1 -1
  176. package/components/{item-option-slider-32oGS1fd.cjs → item-option-slider-Db-HdZ9C.cjs} +1 -1
  177. package/components/item-option-switch/index.cjs +1 -1
  178. package/components/item-option-switch/index.js +1 -1
  179. package/components/{item-option-switch-BMVlfdx5.js → item-option-switch-1wVCBJpo.js} +1 -1
  180. package/components/{item-option-switch-BFk3biK9.cjs → item-option-switch-BI0b6qMP.cjs} +1 -1
  181. package/components/item-option-text-field/index.cjs +1 -1
  182. package/components/item-option-text-field/index.js +1 -1
  183. package/components/{item-option-text-field-CWvgQ3pJ.cjs → item-option-text-field-Cuo1cBWG.cjs} +1 -1
  184. package/components/{item-option-text-field-BoXwVo-B.js → item-option-text-field-c8PsVNYB.js} +1 -1
  185. package/components/item-slot-drop/index.cjs +1 -1
  186. package/components/item-slot-drop/index.js +1 -1
  187. package/components/{item-slot-drop-CYRVCWF0.cjs → item-slot-drop-2SpLWjPC.cjs} +1 -1
  188. package/components/{item-slot-drop-C0GmOMQY.js → item-slot-drop-Cpf4DnI4.js} +4 -4
  189. package/components/item-slot-drop-panel/index.cjs +1 -1
  190. package/components/item-slot-drop-panel/index.js +1 -1
  191. package/components/{item-slot-drop-panel-Ci3Soo16.js → item-slot-drop-panel-C77wRsvJ.js} +3 -3
  192. package/components/{item-slot-drop-panel-CoRFds3a.cjs → item-slot-drop-panel-ClEOXFHz.cjs} +1 -1
  193. package/components/item-slot-picker/index.cjs +1 -1
  194. package/components/item-slot-picker/index.js +1 -1
  195. package/components/{item-slot-picker-D1_NbL1A.js → item-slot-picker-BEPRIyMJ.js} +5 -5
  196. package/components/{item-slot-picker-CmnJSYIF.cjs → item-slot-picker-B_l4VnV_.cjs} +1 -1
  197. package/components/item-slot-picker-panel/index.cjs +1 -1
  198. package/components/item-slot-picker-panel/index.js +1 -1
  199. package/components/{item-slot-picker-panel-B8VvKhRF.js → item-slot-picker-panel-B4tCFh38.js} +3 -3
  200. package/components/{item-slot-picker-panel-DzKodYTM.cjs → item-slot-picker-panel-BCzV9MAV.cjs} +1 -1
  201. package/components/{localized-mixin-Dujo7nlJ.cjs → localized-mixin-AEA3w4H0.cjs} +1 -1
  202. package/components/{localized-mixin-DZuGq2Fm.js → localized-mixin-XqTi4F7d.js} +1 -1
  203. package/components/nl-BE6MZtti.cjs +20 -0
  204. package/components/{nl-hCQgb1fB.js → nl-DzdJmn0w.js} +6 -1
  205. package/components/{set-locale-CXnxhP_B.js → set-locale-B8CaHx6q.js} +4 -4
  206. package/components/{set-locale-MCuEsOOu.cjs → set-locale-CFD7fxS3.cjs} +1 -1
  207. package/components/slot-menu/index.cjs +1 -1
  208. package/components/slot-menu/index.js +1 -1
  209. package/components/{slot-menu-CDAAPyFj.cjs → slot-menu-C8446xNy.cjs} +1 -1
  210. package/components/{slot-menu-CYNYwJnU.js → slot-menu-DuJRaqmC.js} +3 -3
  211. package/components/slot-menu-list/index.cjs +1 -1
  212. package/components/slot-menu-list/index.js +1 -1
  213. package/components/{slot-menu-list-DbWiuJDF.cjs → slot-menu-list-B6A6w2d9.cjs} +1 -1
  214. package/components/{slot-menu-list-DL-x5Ggl.js → slot-menu-list-Zzwr6h1J.js} +1 -1
  215. package/components/utils/base.cjs +1 -1
  216. package/components/utils/base.js +2 -2
  217. package/components/{utils-DKSE_5u1.cjs → utils-1SB0pExj.cjs} +1 -1
  218. package/components/{utils-BACUV6sE.js → utils-sAvG9cHu.js} +1 -1
  219. package/components/utils.cjs +1 -1
  220. package/components/utils.js +2 -2
  221. package/components/viz-item-menu/index.cjs +1 -1
  222. package/components/viz-item-menu/index.js +1 -1
  223. package/components/{viz-item-menu-yr7TQY8-.cjs → viz-item-menu-B4mavjZ5.cjs} +1 -1
  224. package/components/{viz-item-menu-DXoKwAhV.js → viz-item-menu-CEcwbasZ.js} +1 -1
  225. package/custom-elements.json +1743 -156
  226. package/package.json +1 -1
  227. package/react/components/ai-chat/empty-state/index.ts +1 -0
  228. package/react/components/ai-chat/empty-state/types.ts +16 -0
  229. package/react/components/ai-chat/stream/index.ts +1 -0
  230. package/react/components/ai-chat/stream/types.ts +29 -0
  231. package/react/components/ai-chat.component.ts +12 -12
  232. package/react/esm/components/ai-chat/empty-state/index.d.ts +1 -0
  233. package/react/esm/components/ai-chat/empty-state/index.js +1 -0
  234. package/react/esm/components/ai-chat/empty-state/types.d.ts +14 -0
  235. package/react/esm/components/ai-chat/empty-state/types.js +1 -0
  236. package/react/esm/components/ai-chat/stream/index.d.ts +1 -0
  237. package/react/esm/components/ai-chat/stream/index.js +1 -0
  238. package/react/esm/components/ai-chat/stream/types.d.ts +26 -0
  239. package/react/esm/components/ai-chat/stream/types.js +1 -0
  240. package/react/esm/components/ai-chat.component.d.ts +8 -8
  241. package/react/esm/components/ai-chat.component.js +8 -8
  242. package/types/ai-chat.types.d.ts +1 -1
  243. package/components/ai-chat/request-contract.d.ts +0 -56
  244. package/components/ai-chat-D9yB7Sw_.cjs +0 -151
  245. package/components/ai-chat-DkfD3BDG.js +0 -1258
  246. package/components/de-B8ds_DbE.cjs +0 -20
  247. package/components/es-DGC51Dm9.cjs +0 -20
  248. package/components/fr-BoZFY3Qe.cjs +0 -20
  249. package/components/nl-C9Ad2LdA.cjs +0 -20
@@ -4,70 +4,181 @@
4
4
  "modules": [
5
5
  {
6
6
  "kind": "javascript-module",
7
- "path": "src/components/ai-chat/ai-chat-streaming.ts",
7
+ "path": "src/components/ai-chat/ai-chat-request.ts",
8
8
  "declarations": [
9
9
  {
10
10
  "kind": "function",
11
- "name": "createInitialProgress",
11
+ "name": "getAiPromptUrl",
12
12
  "return": {
13
13
  "type": {
14
- "text": "ProgressTreeNode"
14
+ "text": "string"
15
15
  }
16
- }
16
+ },
17
+ "parameters": [
18
+ {
19
+ "name": "apiUrl",
20
+ "type": {
21
+ "text": "string"
22
+ }
23
+ },
24
+ {
25
+ "name": "apiVersion",
26
+ "type": {
27
+ "text": "string"
28
+ }
29
+ }
30
+ ]
17
31
  },
18
32
  {
19
33
  "kind": "function",
20
- "name": "hasProgressChunk",
34
+ "name": "chartToItemAsset",
21
35
  "return": {
22
36
  "type": {
23
- "text": "boolean"
37
+ "text": "Record<string, unknown> | null"
24
38
  }
25
39
  },
26
40
  "parameters": [
27
41
  {
28
- "name": "value",
42
+ "name": "chart",
29
43
  "type": {
30
- "text": "Record<string, unknown>"
44
+ "text": "LuzmoChart"
31
45
  }
32
46
  }
33
47
  ]
34
48
  },
35
49
  {
36
50
  "kind": "function",
37
- "name": "fetchStreamingResponse",
51
+ "name": "buildItemAiPromptProperties",
38
52
  "return": {
39
53
  "type": {
40
- "text": "Promise<StreamingResponse>"
54
+ "text": "AiPromptProperties"
41
55
  }
42
56
  },
43
57
  "parameters": [
44
58
  {
45
- "name": "options",
59
+ "name": "ctx",
46
60
  "type": {
47
- "text": "StreamingRequestOptions"
61
+ "text": "BuildAiPromptRequestContext"
48
62
  }
49
63
  }
50
64
  ]
51
65
  },
52
66
  {
53
67
  "kind": "function",
54
- "name": "readNdjsonStream",
68
+ "name": "buildDashboardAiPromptProperties",
55
69
  "return": {
56
70
  "type": {
57
- "text": "Promise<void>"
71
+ "text": "AiPromptProperties"
58
72
  }
59
73
  },
60
74
  "parameters": [
61
75
  {
62
- "name": "body",
76
+ "name": "ctx",
63
77
  "type": {
64
- "text": "ReadableStream<Uint8Array>"
78
+ "text": "BuildAiPromptRequestContext"
79
+ }
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "kind": "function",
85
+ "name": "buildAnalystAiPromptProperties",
86
+ "return": {
87
+ "type": {
88
+ "text": "AiPromptProperties"
89
+ }
90
+ },
91
+ "parameters": [
92
+ {
93
+ "name": "ctx",
94
+ "type": {
95
+ "text": "BuildAiPromptRequestContext"
96
+ }
97
+ }
98
+ ]
99
+ },
100
+ {
101
+ "kind": "function",
102
+ "name": "buildAiPromptProperties",
103
+ "return": {
104
+ "type": {
105
+ "text": "AiPromptProperties"
106
+ }
107
+ },
108
+ "parameters": [
109
+ {
110
+ "name": "agent",
111
+ "type": {
112
+ "text": "AiPromptAgent"
65
113
  }
66
114
  },
67
115
  {
68
- "name": "onChunk",
116
+ "name": "ctx",
69
117
  "type": {
70
- "text": "(chunk: Record<string, unknown>) => void"
118
+ "text": "BuildAiPromptRequestContext"
119
+ }
120
+ }
121
+ ]
122
+ },
123
+ {
124
+ "kind": "function",
125
+ "name": "buildAiPromptRequest",
126
+ "return": {
127
+ "type": {
128
+ "text": "AiPromptCreateBody"
129
+ }
130
+ },
131
+ "parameters": [
132
+ {
133
+ "name": "agent",
134
+ "type": {
135
+ "text": "AiPromptAgent"
136
+ }
137
+ },
138
+ {
139
+ "name": "ctx",
140
+ "type": {
141
+ "text": "BuildAiPromptRequestContext"
142
+ }
143
+ }
144
+ ]
145
+ },
146
+ {
147
+ "kind": "function",
148
+ "name": "buildAiPromptDeleteRequest",
149
+ "return": {
150
+ "type": {
151
+ "text": "AiPromptDeleteBody"
152
+ }
153
+ },
154
+ "parameters": [
155
+ {
156
+ "name": "restoreToMessageId",
157
+ "type": {
158
+ "text": "string"
159
+ }
160
+ },
161
+ {
162
+ "name": "authKey",
163
+ "type": {
164
+ "text": "string"
165
+ }
166
+ },
167
+ {
168
+ "name": "authToken",
169
+ "type": {
170
+ "text": "string"
171
+ }
172
+ },
173
+ {
174
+ "name": "apiVersion",
175
+ "default": "'0.1.0'"
176
+ },
177
+ {
178
+ "name": "conversationId",
179
+ "default": "null",
180
+ "type": {
181
+ "text": "string | null"
71
182
  }
72
183
  }
73
184
  ]
@@ -76,34 +187,162 @@
76
187
  "exports": [
77
188
  {
78
189
  "kind": "js",
79
- "name": "createInitialProgress",
190
+ "name": "AiPromptAgent",
80
191
  "declaration": {
81
- "name": "createInitialProgress",
82
- "module": "src/components/ai-chat/ai-chat-streaming.ts"
192
+ "name": "AiPromptAgent",
193
+ "module": "./ai-prompt-types"
83
194
  }
84
195
  },
85
196
  {
86
197
  "kind": "js",
87
- "name": "hasProgressChunk",
198
+ "name": "AiPromptCreateBody",
88
199
  "declaration": {
89
- "name": "hasProgressChunk",
90
- "module": "src/components/ai-chat/ai-chat-streaming.ts"
200
+ "name": "AiPromptCreateBody",
201
+ "module": "./ai-prompt-types"
91
202
  }
92
203
  },
93
204
  {
94
205
  "kind": "js",
95
- "name": "fetchStreamingResponse",
206
+ "name": "AiPromptDeleteBody",
96
207
  "declaration": {
97
- "name": "fetchStreamingResponse",
98
- "module": "src/components/ai-chat/ai-chat-streaming.ts"
208
+ "name": "AiPromptDeleteBody",
209
+ "module": "./ai-prompt-types"
99
210
  }
100
211
  },
101
212
  {
102
213
  "kind": "js",
103
- "name": "readNdjsonStream",
214
+ "name": "AiPromptInput",
104
215
  "declaration": {
105
- "name": "readNdjsonStream",
106
- "module": "src/components/ai-chat/ai-chat-streaming.ts"
216
+ "name": "AiPromptInput",
217
+ "module": "./ai-prompt-types"
218
+ }
219
+ },
220
+ {
221
+ "kind": "js",
222
+ "name": "AiPromptItemTask",
223
+ "declaration": {
224
+ "name": "AiPromptItemTask",
225
+ "module": "./ai-prompt-types"
226
+ }
227
+ },
228
+ {
229
+ "kind": "js",
230
+ "name": "AiPromptProperties",
231
+ "declaration": {
232
+ "name": "AiPromptProperties",
233
+ "module": "./ai-prompt-types"
234
+ }
235
+ },
236
+ {
237
+ "kind": "js",
238
+ "name": "AiPromptScreenMode",
239
+ "declaration": {
240
+ "name": "AiPromptScreenMode",
241
+ "module": "./ai-prompt-types"
242
+ }
243
+ },
244
+ {
245
+ "kind": "js",
246
+ "name": "BuildAiPromptRequestContext",
247
+ "declaration": {
248
+ "name": "BuildAiPromptRequestContext",
249
+ "module": "./ai-prompt-types"
250
+ }
251
+ },
252
+ {
253
+ "kind": "js",
254
+ "name": "DashboardStatePayload",
255
+ "declaration": {
256
+ "name": "DashboardStatePayload",
257
+ "module": "./ai-prompt-types"
258
+ }
259
+ },
260
+ {
261
+ "kind": "js",
262
+ "name": "LuzmoDashboardGeneratedEventDetail",
263
+ "declaration": {
264
+ "name": "LuzmoDashboardGeneratedEventDetail",
265
+ "module": "./ai-prompt-types"
266
+ }
267
+ },
268
+ {
269
+ "kind": "js",
270
+ "name": "LuzmoPromptSubmittedEventDetail",
271
+ "declaration": {
272
+ "name": "LuzmoPromptSubmittedEventDetail",
273
+ "module": "./ai-prompt-types"
274
+ }
275
+ },
276
+ {
277
+ "kind": "js",
278
+ "name": "LuzmoRestoreRequestedEventDetail",
279
+ "declaration": {
280
+ "name": "LuzmoRestoreRequestedEventDetail",
281
+ "module": "./ai-prompt-types"
282
+ }
283
+ },
284
+ {
285
+ "kind": "js",
286
+ "name": "getAiPromptUrl",
287
+ "declaration": {
288
+ "name": "getAiPromptUrl",
289
+ "module": "src/components/ai-chat/ai-chat-request.ts"
290
+ }
291
+ },
292
+ {
293
+ "kind": "js",
294
+ "name": "chartToItemAsset",
295
+ "declaration": {
296
+ "name": "chartToItemAsset",
297
+ "module": "src/components/ai-chat/ai-chat-request.ts"
298
+ }
299
+ },
300
+ {
301
+ "kind": "js",
302
+ "name": "buildItemAiPromptProperties",
303
+ "declaration": {
304
+ "name": "buildItemAiPromptProperties",
305
+ "module": "src/components/ai-chat/ai-chat-request.ts"
306
+ }
307
+ },
308
+ {
309
+ "kind": "js",
310
+ "name": "buildDashboardAiPromptProperties",
311
+ "declaration": {
312
+ "name": "buildDashboardAiPromptProperties",
313
+ "module": "src/components/ai-chat/ai-chat-request.ts"
314
+ }
315
+ },
316
+ {
317
+ "kind": "js",
318
+ "name": "buildAnalystAiPromptProperties",
319
+ "declaration": {
320
+ "name": "buildAnalystAiPromptProperties",
321
+ "module": "src/components/ai-chat/ai-chat-request.ts"
322
+ }
323
+ },
324
+ {
325
+ "kind": "js",
326
+ "name": "buildAiPromptProperties",
327
+ "declaration": {
328
+ "name": "buildAiPromptProperties",
329
+ "module": "src/components/ai-chat/ai-chat-request.ts"
330
+ }
331
+ },
332
+ {
333
+ "kind": "js",
334
+ "name": "buildAiPromptRequest",
335
+ "declaration": {
336
+ "name": "buildAiPromptRequest",
337
+ "module": "src/components/ai-chat/ai-chat-request.ts"
338
+ }
339
+ },
340
+ {
341
+ "kind": "js",
342
+ "name": "buildAiPromptDeleteRequest",
343
+ "declaration": {
344
+ "name": "buildAiPromptDeleteRequest",
345
+ "module": "src/components/ai-chat/ai-chat-request.ts"
107
346
  }
108
347
  }
109
348
  ]
@@ -133,7 +372,7 @@
133
372
  "text": "ChatMessage[]"
134
373
  },
135
374
  "default": "[]",
136
- "description": "Array of chat messages to display",
375
+ "description": "Live transcript is AiChatSession.state.messages. This prop optionally seeds the session on first connect.",
137
376
  "attribute": "messages"
138
377
  },
139
378
  {
@@ -143,7 +382,7 @@
143
382
  "text": "Dataset[]"
144
383
  },
145
384
  "default": "[]",
146
- "description": "Array of selected datasets for the input",
385
+ "description": "Live selection is in the session. This prop optionally seeds on first connect.",
147
386
  "attribute": "selected-datasets"
148
387
  },
149
388
  {
@@ -289,33 +528,42 @@
289
528
  },
290
529
  {
291
530
  "kind": "field",
292
- "name": "modelPreference",
531
+ "name": "agent",
293
532
  "type": {
294
- "text": "'performance' | 'quality'"
533
+ "text": "AiPromptAgent"
295
534
  },
296
- "default": "'performance'",
297
- "description": "AI model preference for chart generation",
298
- "attribute": "model-preference"
535
+ "default": "'item'",
536
+ "description": "Which aiprompt agent to use. Determines request payload and stream handling.",
537
+ "attribute": "agent"
299
538
  },
300
539
  {
301
540
  "kind": "field",
302
- "name": "requestMode",
541
+ "name": "task",
303
542
  "type": {
304
- "text": "'internal' | 'external'"
543
+ "text": "AiPromptItemTask"
305
544
  },
306
- "default": "'internal'",
307
- "description": "Controls if API calls are handled internally or by the host application.",
308
- "attribute": "request-mode"
545
+ "default": "'generate'",
546
+ "description": "Task for the item agent (`generate`, `suggest`, `describe`).",
547
+ "attribute": "task"
309
548
  },
310
549
  {
311
550
  "kind": "field",
312
- "name": "isGenerating",
551
+ "name": "modelPreference",
313
552
  "type": {
314
- "text": "boolean"
553
+ "text": "'performance' | 'quality'"
315
554
  },
316
- "default": "false",
317
- "description": "Used only in external request mode to reflect request lifecycle in the UI.",
318
- "attribute": "is-generating"
555
+ "default": "'performance'",
556
+ "description": "AI model preference for item agent chart generation",
557
+ "attribute": "model-preference"
558
+ },
559
+ {
560
+ "kind": "field",
561
+ "name": "chatSession",
562
+ "type": {
563
+ "text": "AiChatSession | null"
564
+ },
565
+ "default": "null",
566
+ "description": "Host-owned AiChatSession. The component subscribes and renders; does not abort on disconnect."
319
567
  },
320
568
  {
321
569
  "kind": "field",
@@ -324,7 +572,7 @@
324
572
  "text": "string | null"
325
573
  },
326
574
  "default": "null",
327
- "description": "Conversation ID",
575
+ "description": "Conversation ID (synced into the session; updated when the API returns a new id).",
328
576
  "attribute": "conversation-id"
329
577
  },
330
578
  {
@@ -334,9 +582,47 @@
334
582
  "text": "LuzmoChart | null"
335
583
  },
336
584
  "default": "null",
337
- "description": "vizItem",
585
+ "description": "Chart context for `agent=\"item\"`.",
338
586
  "attribute": "chart"
339
587
  },
588
+ {
589
+ "kind": "field",
590
+ "name": "dashboard",
591
+ "type": {
592
+ "text": "DashboardStatePayload | null"
593
+ },
594
+ "default": "null",
595
+ "description": "Dashboard context for `agent=\"dashboard\"`.",
596
+ "attribute": "dashboard"
597
+ },
598
+ {
599
+ "kind": "field",
600
+ "name": "currentScreenMode",
601
+ "type": {
602
+ "text": "AiPromptScreenMode | undefined"
603
+ },
604
+ "description": "Current screen mode when editing a dashboard.",
605
+ "attribute": "current-screen-mode"
606
+ },
607
+ {
608
+ "kind": "field",
609
+ "name": "localeId",
610
+ "type": {
611
+ "text": "string | undefined"
612
+ },
613
+ "description": "Locale ID sent to the aiprompt API.",
614
+ "attribute": "locale-id"
615
+ },
616
+ {
617
+ "kind": "field",
618
+ "name": "timezoneId",
619
+ "type": {
620
+ "text": "string"
621
+ },
622
+ "default": "'UTC'",
623
+ "description": "Timezone ID for dashboard agent requests.",
624
+ "attribute": "timezone-id"
625
+ },
340
626
  {
341
627
  "kind": "field",
342
628
  "name": "apiVersion",
@@ -364,7 +650,7 @@
364
650
  "text": "string | null"
365
651
  },
366
652
  "default": "null",
367
- "description": "Loading message shown while generating and before progress steps are available.\nOnly effective in external request mode; in internal mode, progress steps\nare initialized immediately.",
653
+ "description": "Loading message shown while generating and before progress steps are available.",
368
654
  "attribute": "loading-message"
369
655
  },
370
656
  {
@@ -374,36 +660,54 @@
374
660
  "text": "string | null"
375
661
  },
376
662
  "default": "null",
377
- "description": "When set, the component auto-submits this prompt via the streaming API\nwithout adding a duplicate user message (assumes it is already in `messages`).\nUseful when the prompt originates from an external source (e.g. a dropdown).",
663
+ "description": "When set, auto-submits via the session without adding a duplicate user message\n(assumes the prompt is already in the transcript).",
378
664
  "attribute": "initial-prompt"
379
665
  },
380
666
  {
381
667
  "kind": "field",
382
- "name": "progress",
668
+ "name": "emptyStateTitle",
383
669
  "type": {
384
- "text": "ProgressTreeNode | null"
670
+ "text": "string"
385
671
  },
386
- "default": "null",
387
- "description": "Progress tree for external request mode. Ignored in internal mode.",
388
- "attribute": "progress"
672
+ "default": "''",
673
+ "description": "Title for the empty state when there are no messages.",
674
+ "attribute": "empty-state-title"
389
675
  },
390
676
  {
391
677
  "kind": "field",
392
- "name": "progressCollapsed",
678
+ "name": "emptyStateSubtitle",
393
679
  "type": {
394
- "text": "boolean"
680
+ "text": "string"
395
681
  },
396
- "default": "false",
397
- "description": "Whether progress steps should be shown collapsed.\nOnly used in external request mode. Ignored in internal mode.",
398
- "attribute": "progress-collapsed"
682
+ "default": "''",
683
+ "description": "Optional label above empty-state suggestion chips. Only shown when `emptyStateSuggestions` is non-empty.",
684
+ "attribute": "empty-state-subtitle"
399
685
  },
400
686
  {
687
+ "kind": "field",
688
+ "name": "emptyStateSuggestions",
401
689
  "type": {
402
- "text": "string"
690
+ "text": "AiChatEmptyStateSuggestion[]"
403
691
  },
404
- "description": "Background of the chat container",
405
- "name": "--luzmo-ai-chat-background",
406
- "kind": "field"
692
+ "default": "[]",
693
+ "description": "Optional suggestion chips for the empty state. When empty, only the title is shown.\nEach entry may include `selectedDatasets` to pre-select datasets when the chip is activated."
694
+ },
695
+ {
696
+ "kind": "field",
697
+ "name": "session",
698
+ "type": {
699
+ "text": "AiChatSession | null"
700
+ },
701
+ "description": "Active AiChatSession (host or auto-created). Null until first bind or action.",
702
+ "readonly": true
703
+ },
704
+ {
705
+ "type": {
706
+ "text": "string"
707
+ },
708
+ "description": "Background of the chat container",
709
+ "name": "--luzmo-ai-chat-background",
710
+ "kind": "field"
407
711
  },
408
712
  {
409
713
  "type": {
@@ -600,45 +904,45 @@
600
904
  ],
601
905
  "events": [
602
906
  {
603
- "name": "luzmo-response-received",
907
+ "name": "luzmo-message-sent",
604
908
  "type": {
605
909
  "text": "CustomEvent"
606
910
  },
607
- "description": "Fired when an AI text response is received. For chart responses, this event is only fired if the response includes a `message` field. For error responses, this event is always fired with the error explanation."
911
+ "description": "Fired when a user sends a message"
608
912
  },
609
913
  {
610
- "name": "luzmo-chart-generated",
914
+ "name": "luzmo-datasets-changed",
611
915
  "type": {
612
916
  "text": "CustomEvent"
613
- },
614
- "description": "Fired when the AI generates a chart (includes generatedChart in response)"
917
+ }
615
918
  },
616
919
  {
617
- "name": "luzmo-message-sent",
920
+ "name": "luzmo-chart-generated",
618
921
  "type": {
619
922
  "text": "CustomEvent"
620
923
  },
621
- "description": "Fired when a user sends a message"
924
+ "description": "Fired when agent is `item` and a chart asset is ready"
622
925
  },
623
926
  {
624
- "name": "luzmo-restore-requested",
927
+ "name": "luzmo-dashboard-generated",
625
928
  "type": {
626
929
  "text": "CustomEvent"
627
930
  },
628
- "description": "Fired when a restore action is triggered in external mode"
931
+ "description": "Fired when agent is `dashboard` and a dashboard asset is ready"
629
932
  },
630
933
  {
631
- "name": "luzmo-datasets-changed",
934
+ "name": "luzmo-response-received",
632
935
  "type": {
633
936
  "text": "CustomEvent"
634
- }
937
+ },
938
+ "description": "Fired when an AI text response is received. For chart responses, this event is only fired if the response includes a `message` field. For error responses, this event is always fired with the error explanation."
635
939
  },
636
940
  {
637
- "name": "luzmo-prompt-submitted",
941
+ "name": "luzmo-conversation-id-changed",
638
942
  "type": {
639
943
  "text": "CustomEvent"
640
944
  },
641
- "description": "Fired when request-mode is set to external so the host can execute the API request lifecycle."
945
+ "description": "Fired when the conversation ID is updated from the API"
642
946
  }
643
947
  ],
644
948
  "attributes": [
@@ -648,7 +952,7 @@
648
952
  "text": "ChatMessage[]"
649
953
  },
650
954
  "default": "[]",
651
- "description": "Array of chat messages to display",
955
+ "description": "Live transcript is AiChatSession.state.messages. This prop optionally seeds the session on first connect.",
652
956
  "fieldName": "messages"
653
957
  },
654
958
  {
@@ -657,7 +961,7 @@
657
961
  "text": "Dataset[]"
658
962
  },
659
963
  "default": "[]",
660
- "description": "Array of selected datasets for the input",
964
+ "description": "Live selection is in the session. This prop optionally seeds on first connect.",
661
965
  "fieldName": "selectedDatasets"
662
966
  },
663
967
  {
@@ -787,31 +1091,31 @@
787
1091
  "fieldName": "requireDataset"
788
1092
  },
789
1093
  {
790
- "name": "model-preference",
1094
+ "name": "agent",
791
1095
  "type": {
792
- "text": "'performance' | 'quality'"
1096
+ "text": "AiPromptAgent"
793
1097
  },
794
- "default": "'performance'",
795
- "description": "AI model preference for chart generation",
796
- "fieldName": "modelPreference"
1098
+ "default": "'item'",
1099
+ "description": "Which aiprompt agent to use. Determines request payload and stream handling.",
1100
+ "fieldName": "agent"
797
1101
  },
798
1102
  {
799
- "name": "request-mode",
1103
+ "name": "task",
800
1104
  "type": {
801
- "text": "'internal' | 'external'"
1105
+ "text": "AiPromptItemTask"
802
1106
  },
803
- "default": "'internal'",
804
- "description": "Controls if API calls are handled internally or by the host application.",
805
- "fieldName": "requestMode"
1107
+ "default": "'generate'",
1108
+ "description": "Task for the item agent (`generate`, `suggest`, `describe`).",
1109
+ "fieldName": "task"
806
1110
  },
807
1111
  {
808
- "name": "is-generating",
1112
+ "name": "model-preference",
809
1113
  "type": {
810
- "text": "boolean"
1114
+ "text": "'performance' | 'quality'"
811
1115
  },
812
- "default": "false",
813
- "description": "Used only in external request mode to reflect request lifecycle in the UI.",
814
- "fieldName": "isGenerating"
1116
+ "default": "'performance'",
1117
+ "description": "AI model preference for item agent chart generation",
1118
+ "fieldName": "modelPreference"
815
1119
  },
816
1120
  {
817
1121
  "name": "conversation-id",
@@ -819,7 +1123,7 @@
819
1123
  "text": "string | null"
820
1124
  },
821
1125
  "default": "null",
822
- "description": "Conversation ID",
1126
+ "description": "Conversation ID (synced into the session; updated when the API returns a new id).",
823
1127
  "fieldName": "conversationId"
824
1128
  },
825
1129
  {
@@ -828,9 +1132,43 @@
828
1132
  "text": "LuzmoChart | null"
829
1133
  },
830
1134
  "default": "null",
831
- "description": "vizItem",
1135
+ "description": "Chart context for `agent=\"item\"`.",
832
1136
  "fieldName": "chart"
833
1137
  },
1138
+ {
1139
+ "name": "dashboard",
1140
+ "type": {
1141
+ "text": "DashboardStatePayload | null"
1142
+ },
1143
+ "default": "null",
1144
+ "description": "Dashboard context for `agent=\"dashboard\"`.",
1145
+ "fieldName": "dashboard"
1146
+ },
1147
+ {
1148
+ "name": "current-screen-mode",
1149
+ "type": {
1150
+ "text": "AiPromptScreenMode | undefined"
1151
+ },
1152
+ "description": "Current screen mode when editing a dashboard.",
1153
+ "fieldName": "currentScreenMode"
1154
+ },
1155
+ {
1156
+ "name": "locale-id",
1157
+ "type": {
1158
+ "text": "string | undefined"
1159
+ },
1160
+ "description": "Locale ID sent to the aiprompt API.",
1161
+ "fieldName": "localeId"
1162
+ },
1163
+ {
1164
+ "name": "timezone-id",
1165
+ "type": {
1166
+ "text": "string"
1167
+ },
1168
+ "default": "'UTC'",
1169
+ "description": "Timezone ID for dashboard agent requests.",
1170
+ "fieldName": "timezoneId"
1171
+ },
834
1172
  {
835
1173
  "name": "api-version",
836
1174
  "type": {
@@ -855,116 +1193,1283 @@
855
1193
  "text": "string | null"
856
1194
  },
857
1195
  "default": "null",
858
- "description": "Loading message shown while generating and before progress steps are available.\nOnly effective in external request mode; in internal mode, progress steps\nare initialized immediately.",
1196
+ "description": "Loading message shown while generating and before progress steps are available.",
859
1197
  "fieldName": "loadingMessage"
860
1198
  },
861
1199
  {
862
- "name": "initial-prompt",
1200
+ "name": "initial-prompt",
1201
+ "type": {
1202
+ "text": "string | null"
1203
+ },
1204
+ "default": "null",
1205
+ "description": "When set, auto-submits via the session without adding a duplicate user message\n(assumes the prompt is already in the transcript).",
1206
+ "fieldName": "initialPrompt"
1207
+ },
1208
+ {
1209
+ "name": "empty-state-title",
1210
+ "type": {
1211
+ "text": "string"
1212
+ },
1213
+ "default": "''",
1214
+ "description": "Title for the empty state when there are no messages.",
1215
+ "fieldName": "emptyStateTitle"
1216
+ },
1217
+ {
1218
+ "name": "empty-state-subtitle",
1219
+ "type": {
1220
+ "text": "string"
1221
+ },
1222
+ "default": "''",
1223
+ "description": "Optional label above empty-state suggestion chips. Only shown when `emptyStateSuggestions` is non-empty.",
1224
+ "fieldName": "emptyStateSubtitle"
1225
+ }
1226
+ ],
1227
+ "superclass": {
1228
+ "name": "LuzmoElement",
1229
+ "package": "@utils/base"
1230
+ },
1231
+ "tagName": "luzmo-ai-chat",
1232
+ "customElement": true,
1233
+ "summary": "AI chat UI backed by AiChatSession for transcript, datasets, and streaming."
1234
+ }
1235
+ ],
1236
+ "exports": [
1237
+ {
1238
+ "kind": "js",
1239
+ "name": "LuzmoAiChat",
1240
+ "declaration": {
1241
+ "name": "LuzmoAiChat",
1242
+ "module": "src/components/ai-chat/ai-chat.ts"
1243
+ }
1244
+ }
1245
+ ]
1246
+ },
1247
+ {
1248
+ "kind": "javascript-module",
1249
+ "path": "src/components/ai-chat/ai-prompt-types.ts",
1250
+ "declarations": [],
1251
+ "exports": []
1252
+ },
1253
+ {
1254
+ "kind": "javascript-module",
1255
+ "path": "src/components/ai-chat/empty-state/ai-chat-empty-state.ts",
1256
+ "declarations": [
1257
+ {
1258
+ "kind": "class",
1259
+ "description": "",
1260
+ "name": "LuzmoAiChatEmptyState",
1261
+ "members": [
1262
+ {
1263
+ "kind": "field",
1264
+ "name": "tagName",
1265
+ "type": {
1266
+ "text": "string"
1267
+ },
1268
+ "static": true,
1269
+ "default": "'luzmo-ai-chat-empty-state'"
1270
+ },
1271
+ {
1272
+ "kind": "field",
1273
+ "name": "title",
1274
+ "description": "Heading shown above the suggestions.",
1275
+ "attribute": "title"
1276
+ },
1277
+ {
1278
+ "kind": "field",
1279
+ "name": "subtitle",
1280
+ "type": {
1281
+ "text": "string"
1282
+ },
1283
+ "default": "''",
1284
+ "description": "Supporting text shown above suggestion chips when `suggestions` is non-empty.",
1285
+ "attribute": "subtitle"
1286
+ },
1287
+ {
1288
+ "kind": "field",
1289
+ "name": "suggestions",
1290
+ "type": {
1291
+ "text": "AiChatEmptyStateSuggestion[]"
1292
+ },
1293
+ "default": "[]",
1294
+ "description": "Suggestion chips rendered with https://lucero.luzmo.com/ | Lucero `luzmo-suggestion` (`variant=\"prompt\"`).",
1295
+ "attribute": "suggestions"
1296
+ },
1297
+ {
1298
+ "kind": "field",
1299
+ "name": "disabled",
1300
+ "type": {
1301
+ "text": "boolean"
1302
+ },
1303
+ "default": "false",
1304
+ "description": "When true, suggestion chips cannot be activated.",
1305
+ "attribute": "disabled",
1306
+ "reflects": true
1307
+ },
1308
+ {
1309
+ "type": {
1310
+ "text": "string"
1311
+ },
1312
+ "description": "Gap between the title and the actions block",
1313
+ "name": "--luzmo-ai-chat-empty-state-header-actions-gap",
1314
+ "kind": "field"
1315
+ },
1316
+ {
1317
+ "type": {
1318
+ "text": "string"
1319
+ },
1320
+ "description": "Gap between the actions label and suggestion chips",
1321
+ "name": "--luzmo-ai-chat-empty-state-actions-gap",
1322
+ "kind": "field"
1323
+ },
1324
+ {
1325
+ "type": {
1326
+ "text": "string"
1327
+ },
1328
+ "description": "Gap between suggestion chips",
1329
+ "name": "--luzmo-ai-chat-empty-state-suggestions-gap",
1330
+ "kind": "field"
1331
+ },
1332
+ {
1333
+ "type": {
1334
+ "text": "string"
1335
+ },
1336
+ "description": "Maximum content width",
1337
+ "name": "--luzmo-ai-chat-empty-state-max-width",
1338
+ "kind": "field"
1339
+ },
1340
+ {
1341
+ "type": {
1342
+ "text": "string"
1343
+ },
1344
+ "description": "Vertical padding",
1345
+ "name": "--luzmo-ai-chat-empty-state-padding-block",
1346
+ "kind": "field"
1347
+ },
1348
+ {
1349
+ "type": {
1350
+ "text": "string"
1351
+ },
1352
+ "description": "Horizontal padding",
1353
+ "name": "--luzmo-ai-chat-empty-state-padding-inline",
1354
+ "kind": "field"
1355
+ },
1356
+ {
1357
+ "type": {
1358
+ "text": "string"
1359
+ },
1360
+ "description": "Title font size",
1361
+ "name": "--luzmo-ai-chat-empty-state-title-font-size",
1362
+ "kind": "field"
1363
+ },
1364
+ {
1365
+ "type": {
1366
+ "text": "string"
1367
+ },
1368
+ "description": "Title font weight",
1369
+ "name": "--luzmo-ai-chat-empty-state-title-font-weight",
1370
+ "kind": "field"
1371
+ },
1372
+ {
1373
+ "type": {
1374
+ "text": "string"
1375
+ },
1376
+ "description": "Title line height",
1377
+ "name": "--luzmo-ai-chat-empty-state-title-line-height",
1378
+ "kind": "field"
1379
+ },
1380
+ {
1381
+ "type": {
1382
+ "text": "string"
1383
+ },
1384
+ "description": "Title text color",
1385
+ "name": "--luzmo-ai-chat-empty-state-title-color",
1386
+ "kind": "field"
1387
+ },
1388
+ {
1389
+ "type": {
1390
+ "text": "string"
1391
+ },
1392
+ "description": "Subtitle font size",
1393
+ "name": "--luzmo-ai-chat-empty-state-subtitle-font-size",
1394
+ "kind": "field"
1395
+ },
1396
+ {
1397
+ "type": {
1398
+ "text": "string"
1399
+ },
1400
+ "description": "Subtitle font weight",
1401
+ "name": "--luzmo-ai-chat-empty-state-subtitle-font-weight",
1402
+ "kind": "field"
1403
+ },
1404
+ {
1405
+ "type": {
1406
+ "text": "string"
1407
+ },
1408
+ "description": "Subtitle line height",
1409
+ "name": "--luzmo-ai-chat-empty-state-subtitle-line-height",
1410
+ "kind": "field"
1411
+ },
1412
+ {
1413
+ "type": {
1414
+ "text": "string"
1415
+ },
1416
+ "description": "Subtitle text color (`--luzmo-font-color-dimmed`)",
1417
+ "name": "--luzmo-ai-chat-empty-state-subtitle-color",
1418
+ "kind": "field"
1419
+ }
1420
+ ],
1421
+ "events": [
1422
+ {
1423
+ "name": "luzmo-suggestion-selected",
1424
+ "type": {
1425
+ "text": "CustomEvent"
1426
+ },
1427
+ "description": "Fired when the user selects a suggestion chip. `event.detail`: `{ label, prompt, selectedDatasets? }`."
1428
+ }
1429
+ ],
1430
+ "attributes": [
1431
+ {
1432
+ "name": "title",
1433
+ "description": "Heading shown above the suggestions.",
1434
+ "fieldName": "title"
1435
+ },
1436
+ {
1437
+ "name": "subtitle",
1438
+ "type": {
1439
+ "text": "string"
1440
+ },
1441
+ "default": "''",
1442
+ "description": "Supporting text shown above suggestion chips when `suggestions` is non-empty.",
1443
+ "fieldName": "subtitle"
1444
+ },
1445
+ {
1446
+ "name": "suggestions",
1447
+ "type": {
1448
+ "text": "AiChatEmptyStateSuggestion[]"
1449
+ },
1450
+ "default": "[]",
1451
+ "description": "Suggestion chips rendered with https://lucero.luzmo.com/ | Lucero `luzmo-suggestion` (`variant=\"prompt\"`).",
1452
+ "fieldName": "suggestions"
1453
+ },
1454
+ {
1455
+ "name": "disabled",
1456
+ "type": {
1457
+ "text": "boolean"
1458
+ },
1459
+ "default": "false",
1460
+ "description": "When true, suggestion chips cannot be activated.",
1461
+ "fieldName": "disabled"
1462
+ }
1463
+ ],
1464
+ "superclass": {
1465
+ "name": "LuzmoElement",
1466
+ "package": "@utils/base"
1467
+ },
1468
+ "tagName": "luzmo-ai-chat-empty-state",
1469
+ "customElement": true,
1470
+ "summary": "Empty state for AI chat with title, subtitle, and prompt suggestions."
1471
+ }
1472
+ ],
1473
+ "exports": [
1474
+ {
1475
+ "kind": "js",
1476
+ "name": "LuzmoAiChatEmptyState",
1477
+ "declaration": {
1478
+ "name": "LuzmoAiChatEmptyState",
1479
+ "module": "src/components/ai-chat/empty-state/ai-chat-empty-state.ts"
1480
+ }
1481
+ }
1482
+ ]
1483
+ },
1484
+ {
1485
+ "kind": "javascript-module",
1486
+ "path": "src/components/ai-chat/empty-state/types.ts",
1487
+ "declarations": [],
1488
+ "exports": []
1489
+ },
1490
+ {
1491
+ "kind": "javascript-module",
1492
+ "path": "src/components/ai-chat/session/ai-chat-session-controller.ts",
1493
+ "declarations": [
1494
+ {
1495
+ "kind": "class",
1496
+ "description": "Single AiChatSession slot for `luzmo-ai-chat`.\nThe chat component uses current, state, and requireSession only.",
1497
+ "name": "AiChatSessionController",
1498
+ "members": [
1499
+ {
1500
+ "kind": "field",
1501
+ "name": "current",
1502
+ "type": {
1503
+ "text": "AiChatSession | null"
1504
+ },
1505
+ "readonly": true
1506
+ },
1507
+ {
1508
+ "kind": "field",
1509
+ "name": "state",
1510
+ "type": {
1511
+ "text": "Readonly<AiChatSessionState>"
1512
+ },
1513
+ "readonly": true
1514
+ },
1515
+ {
1516
+ "kind": "field",
1517
+ "name": "ownsCurrentSession",
1518
+ "type": {
1519
+ "text": "boolean"
1520
+ },
1521
+ "readonly": true
1522
+ },
1523
+ {
1524
+ "kind": "method",
1525
+ "name": "setSession",
1526
+ "return": {
1527
+ "type": {
1528
+ "text": "void"
1529
+ }
1530
+ },
1531
+ "parameters": [
1532
+ {
1533
+ "name": "session",
1534
+ "type": {
1535
+ "text": "AiChatSession | null"
1536
+ }
1537
+ }
1538
+ ],
1539
+ "description": "Use an app-provided session (e.g. from `.chatSession`).\nPass `null` to clear it; an owned session may be created later via requireSession."
1540
+ },
1541
+ {
1542
+ "kind": "method",
1543
+ "name": "syncProperties",
1544
+ "return": {
1545
+ "type": {
1546
+ "text": "void"
1547
+ }
1548
+ },
1549
+ "parameters": [
1550
+ {
1551
+ "name": "changedProperties",
1552
+ "type": {
1553
+ "text": "Map<string, unknown>"
1554
+ }
1555
+ }
1556
+ ],
1557
+ "description": "Sync config / seed props after Lit `updated`.\nCall after handling `chatSession` via setSession."
1558
+ },
1559
+ {
1560
+ "kind": "method",
1561
+ "name": "requireSession",
1562
+ "return": {
1563
+ "type": {
1564
+ "text": "AiChatSession"
1565
+ }
1566
+ }
1567
+ },
1568
+ {
1569
+ "kind": "method",
1570
+ "name": "connect",
1571
+ "return": {
1572
+ "type": {
1573
+ "text": "void"
1574
+ }
1575
+ },
1576
+ "description": "Re-attach UI bridge and state subscription after teardown on reconnect."
1577
+ },
1578
+ {
1579
+ "kind": "method",
1580
+ "name": "teardown",
1581
+ "return": {
1582
+ "type": {
1583
+ "text": "void"
1584
+ }
1585
+ }
1586
+ }
1587
+ ]
1588
+ }
1589
+ ],
1590
+ "exports": [
1591
+ {
1592
+ "kind": "js",
1593
+ "name": "AiChatSessionController",
1594
+ "declaration": {
1595
+ "name": "AiChatSessionController",
1596
+ "module": "src/components/ai-chat/session/ai-chat-session-controller.ts"
1597
+ }
1598
+ }
1599
+ ]
1600
+ },
1601
+ {
1602
+ "kind": "javascript-module",
1603
+ "path": "src/components/ai-chat/session/ai-chat-session-types.ts",
1604
+ "declarations": [],
1605
+ "exports": [
1606
+ {
1607
+ "kind": "js",
1608
+ "name": "AiPromptCreateBody",
1609
+ "declaration": {
1610
+ "name": "AiPromptCreateBody",
1611
+ "module": "src/components/ai-chat/session/ai-chat-session-types.ts"
1612
+ }
1613
+ },
1614
+ {
1615
+ "kind": "js",
1616
+ "name": "AiPromptDeleteBody",
1617
+ "declaration": {
1618
+ "name": "AiPromptDeleteBody",
1619
+ "module": "src/components/ai-chat/session/ai-chat-session-types.ts"
1620
+ }
1621
+ },
1622
+ {
1623
+ "kind": "js",
1624
+ "name": "LuzmoPromptSubmittedEventDetail",
1625
+ "declaration": {
1626
+ "name": "LuzmoPromptSubmittedEventDetail",
1627
+ "module": "src/components/ai-chat/session/ai-chat-session-types.ts"
1628
+ }
1629
+ },
1630
+ {
1631
+ "kind": "js",
1632
+ "name": "LuzmoRestoreRequestedEventDetail",
1633
+ "declaration": {
1634
+ "name": "LuzmoRestoreRequestedEventDetail",
1635
+ "module": "src/components/ai-chat/session/ai-chat-session-types.ts"
1636
+ }
1637
+ }
1638
+ ]
1639
+ },
1640
+ {
1641
+ "kind": "javascript-module",
1642
+ "path": "src/components/ai-chat/session/ai-chat-session.ts",
1643
+ "declarations": [
1644
+ {
1645
+ "kind": "class",
1646
+ "description": "Headless chat controller: transcript, datasets, streaming, and API calls without a DOM host.\nUse with `luzmo-ai-chat` via `.chatSession` for the same simplicity as internal mode,\nwhile keeping the session alive when the panel unmounts.",
1647
+ "name": "AiChatSession",
1648
+ "members": [
1649
+ {
1650
+ "kind": "field",
1651
+ "name": "state",
1652
+ "type": {
1653
+ "text": "Readonly<AiChatSessionState>"
1654
+ },
1655
+ "readonly": true
1656
+ },
1657
+ {
1658
+ "kind": "field",
1659
+ "name": "isGenerating",
1660
+ "type": {
1661
+ "text": "boolean"
1662
+ },
1663
+ "readonly": true
1664
+ },
1665
+ {
1666
+ "kind": "method",
1667
+ "name": "subscribe",
1668
+ "return": {
1669
+ "type": {
1670
+ "text": "() => void"
1671
+ }
1672
+ },
1673
+ "parameters": [
1674
+ {
1675
+ "name": "listener",
1676
+ "type": {
1677
+ "text": "(state: AiChatSessionState) => void"
1678
+ }
1679
+ }
1680
+ ],
1681
+ "description": "Subscribe to full session state (for `luzmo-ai-chat` rendering). Returns an unsubscribe function.\nThe listener is invoked immediately with the current state."
1682
+ },
1683
+ {
1684
+ "kind": "method",
1685
+ "name": "setUiBridge",
1686
+ "return": {
1687
+ "type": {
1688
+ "text": "void"
1689
+ }
1690
+ },
1691
+ "parameters": [
1692
+ {
1693
+ "name": "bridge",
1694
+ "type": {
1695
+ "text": "AiChatSessionCallbacks"
1696
+ }
1697
+ }
1698
+ ],
1699
+ "description": "Wire `luzmo-ai-chat` DOM event bridging. Safe to call again when hot-swapping the same\nsession back onto the component — replaces the previous bridge instead of stacking it."
1700
+ },
1701
+ {
1702
+ "kind": "method",
1703
+ "name": "updateConfig",
1704
+ "return": {
1705
+ "type": {
1706
+ "text": "void"
1707
+ }
1708
+ },
1709
+ "parameters": [
1710
+ {
1711
+ "name": "partial",
1712
+ "type": {
1713
+ "text": "Partial<AiChatSessionConfig>"
1714
+ }
1715
+ }
1716
+ ],
1717
+ "description": "Merge config (chart, conversationId, agent, …) without aborting an in-flight request."
1718
+ },
1719
+ {
1720
+ "kind": "method",
1721
+ "name": "setSelectedDatasets",
1722
+ "return": {
1723
+ "type": {
1724
+ "text": "void"
1725
+ }
1726
+ },
1727
+ "parameters": [
1728
+ {
1729
+ "name": "datasets",
1730
+ "type": {
1731
+ "text": "Dataset[]"
1732
+ }
1733
+ }
1734
+ ],
1735
+ "description": "Replace the full dataset selection (e.g. when the dashboard context changes)."
1736
+ },
1737
+ {
1738
+ "kind": "method",
1739
+ "name": "addDataset",
1740
+ "return": {
1741
+ "type": {
1742
+ "text": "void"
1743
+ }
1744
+ },
1745
+ "parameters": [
1746
+ {
1747
+ "name": "dataset",
1748
+ "type": {
1749
+ "text": "Dataset"
1750
+ }
1751
+ }
1752
+ ]
1753
+ },
1754
+ {
1755
+ "kind": "method",
1756
+ "name": "removeDataset",
1757
+ "return": {
1758
+ "type": {
1759
+ "text": "void"
1760
+ }
1761
+ },
1762
+ "parameters": [
1763
+ {
1764
+ "name": "datasetId",
1765
+ "type": {
1766
+ "text": "string"
1767
+ }
1768
+ }
1769
+ ]
1770
+ },
1771
+ {
1772
+ "kind": "method",
1773
+ "name": "isDatasetRequirementMet",
1774
+ "return": {
1775
+ "type": {
1776
+ "text": "boolean"
1777
+ }
1778
+ }
1779
+ },
1780
+ {
1781
+ "kind": "method",
1782
+ "name": "getAiPromptUrl",
1783
+ "return": {
1784
+ "type": {
1785
+ "text": "string"
1786
+ }
1787
+ }
1788
+ },
1789
+ {
1790
+ "kind": "method",
1791
+ "name": "buildRequestBody",
1792
+ "return": {
1793
+ "type": {
1794
+ "text": "AiPromptCreateBody"
1795
+ }
1796
+ },
1797
+ "parameters": [
1798
+ {
1799
+ "name": "prompt",
1800
+ "type": {
1801
+ "text": "string"
1802
+ }
1803
+ },
1804
+ {
1805
+ "name": "datasetIds",
1806
+ "type": {
1807
+ "text": "string[]"
1808
+ }
1809
+ }
1810
+ ]
1811
+ },
1812
+ {
1813
+ "kind": "method",
1814
+ "name": "buildPromptSubmittedDetail",
1815
+ "return": {
1816
+ "type": {
1817
+ "text": "LuzmoPromptSubmittedEventDetail"
1818
+ }
1819
+ },
1820
+ "parameters": [
1821
+ {
1822
+ "name": "prompt",
1823
+ "type": {
1824
+ "text": "string"
1825
+ }
1826
+ },
1827
+ {
1828
+ "name": "selectedDatasets",
1829
+ "type": {
1830
+ "text": "Dataset[]"
1831
+ }
1832
+ },
1833
+ {
1834
+ "name": "datasetIds",
1835
+ "type": {
1836
+ "text": "string[]"
1837
+ }
1838
+ }
1839
+ ],
1840
+ "description": "Same payload passed to AiChatSessionCallbacks.onPromptSubmitted."
1841
+ },
1842
+ {
1843
+ "kind": "method",
1844
+ "name": "submit",
1845
+ "return": {
1846
+ "type": {
1847
+ "text": "Promise<void>"
1848
+ }
1849
+ },
1850
+ "parameters": [
1851
+ {
1852
+ "name": "params",
1853
+ "type": {
1854
+ "text": "AiChatSessionSubmitParams"
1855
+ }
1856
+ }
1857
+ ],
1858
+ "description": "Append the user prompt (unless `skipUserMessage`), start streaming, and update state."
1859
+ },
1860
+ {
1861
+ "kind": "method",
1862
+ "name": "restore",
1863
+ "return": {
1864
+ "type": {
1865
+ "text": "Promise<AiChatSessionRestoreResult>"
1866
+ }
1867
+ },
1868
+ "parameters": [
1869
+ {
1870
+ "name": "params",
1871
+ "type": {
1872
+ "text": "AiChatSessionRestoreParams"
1873
+ }
1874
+ }
1875
+ ],
1876
+ "description": "Item agent only — restore conversation to a prior API message."
1877
+ },
1878
+ {
1879
+ "kind": "method",
1880
+ "name": "buildRestoreRequest",
1881
+ "return": {
1882
+ "type": {
1883
+ "text": "AiPromptDeleteBody"
1884
+ }
1885
+ },
1886
+ "parameters": [
1887
+ {
1888
+ "name": "restoreToMessageId",
1889
+ "type": {
1890
+ "text": "string"
1891
+ }
1892
+ }
1893
+ ]
1894
+ },
1895
+ {
1896
+ "kind": "method",
1897
+ "name": "abort",
1898
+ "return": {
1899
+ "type": {
1900
+ "text": "void"
1901
+ }
1902
+ },
1903
+ "description": "Cancel the in-flight fetch. Does not clear conversation state."
1904
+ }
1905
+ ]
1906
+ },
1907
+ {
1908
+ "kind": "variable",
1909
+ "name": "aiMessage",
1910
+ "type": {
1911
+ "text": "ChatMessage"
1912
+ },
1913
+ "default": "{ id: params.aiMessageId ?? generateMessageId(), type: 'ai', message: '' }"
1914
+ },
1915
+ {
1916
+ "kind": "function",
1917
+ "name": "createAiChatSession",
1918
+ "return": {
1919
+ "type": {
1920
+ "text": "AiChatSession"
1921
+ }
1922
+ },
1923
+ "parameters": [
1924
+ {
1925
+ "name": "config",
1926
+ "type": {
1927
+ "text": "AiChatSessionConfig"
1928
+ }
1929
+ },
1930
+ {
1931
+ "name": "callbacks",
1932
+ "optional": true,
1933
+ "type": {
1934
+ "text": "AiChatSessionCallbacks"
1935
+ }
1936
+ }
1937
+ ]
1938
+ }
1939
+ ],
1940
+ "exports": [
1941
+ {
1942
+ "kind": "js",
1943
+ "name": "AiChatSession",
1944
+ "declaration": {
1945
+ "name": "AiChatSession",
1946
+ "module": "src/components/ai-chat/session/ai-chat-session.ts"
1947
+ }
1948
+ },
1949
+ {
1950
+ "kind": "js",
1951
+ "name": "createAiChatSession",
1952
+ "declaration": {
1953
+ "name": "createAiChatSession",
1954
+ "module": "src/components/ai-chat/session/ai-chat-session.ts"
1955
+ }
1956
+ }
1957
+ ]
1958
+ },
1959
+ {
1960
+ "kind": "javascript-module",
1961
+ "path": "src/components/ai-chat/stream/ai-chat-streaming.ts",
1962
+ "declarations": [
1963
+ {
1964
+ "kind": "function",
1965
+ "name": "createInitialProgress",
1966
+ "return": {
1967
+ "type": {
1968
+ "text": "ProgressTreeNode"
1969
+ }
1970
+ }
1971
+ },
1972
+ {
1973
+ "kind": "function",
1974
+ "name": "hasProgressChunk",
1975
+ "return": {
1976
+ "type": {
1977
+ "text": "boolean"
1978
+ }
1979
+ },
1980
+ "parameters": [
1981
+ {
1982
+ "name": "value",
1983
+ "type": {
1984
+ "text": "Record<string, unknown>"
1985
+ }
1986
+ }
1987
+ ]
1988
+ },
1989
+ {
1990
+ "kind": "function",
1991
+ "name": "fetchStreamingResponse",
1992
+ "return": {
1993
+ "type": {
1994
+ "text": "Promise<StreamingResponse>"
1995
+ }
1996
+ },
1997
+ "parameters": [
1998
+ {
1999
+ "name": "options",
2000
+ "type": {
2001
+ "text": "StreamingRequestOptions"
2002
+ }
2003
+ }
2004
+ ]
2005
+ },
2006
+ {
2007
+ "kind": "function",
2008
+ "name": "parseStreamLine",
2009
+ "return": {
2010
+ "type": {
2011
+ "text": "Record<string, unknown> | null"
2012
+ }
2013
+ },
2014
+ "parameters": [
2015
+ {
2016
+ "name": "line",
2017
+ "type": {
2018
+ "text": "string"
2019
+ }
2020
+ }
2021
+ ],
2022
+ "description": "Parse one line from an aiprompt response stream.\nSupports plain NDJSON (`{\"type\":\"progress\",...}`) and SSE (`data: {...}`)."
2023
+ },
2024
+ {
2025
+ "kind": "function",
2026
+ "name": "readNdjsonStream",
2027
+ "return": {
2028
+ "type": {
2029
+ "text": "Promise<void>"
2030
+ }
2031
+ },
2032
+ "parameters": [
2033
+ {
2034
+ "name": "body",
2035
+ "type": {
2036
+ "text": "ReadableStream<Uint8Array>"
2037
+ }
2038
+ },
2039
+ {
2040
+ "name": "onChunk",
2041
+ "type": {
2042
+ "text": "(chunk: Record<string, unknown>) => void"
2043
+ }
2044
+ }
2045
+ ],
2046
+ "description": "Read NDJSON or SSE (`data:`) chunks from a streaming aiprompt response body."
2047
+ }
2048
+ ],
2049
+ "exports": [
2050
+ {
2051
+ "kind": "js",
2052
+ "name": "createInitialProgress",
2053
+ "declaration": {
2054
+ "name": "createInitialProgress",
2055
+ "module": "src/components/ai-chat/stream/ai-chat-streaming.ts"
2056
+ }
2057
+ },
2058
+ {
2059
+ "kind": "js",
2060
+ "name": "hasProgressChunk",
2061
+ "declaration": {
2062
+ "name": "hasProgressChunk",
2063
+ "module": "src/components/ai-chat/stream/ai-chat-streaming.ts"
2064
+ }
2065
+ },
2066
+ {
2067
+ "kind": "js",
2068
+ "name": "fetchStreamingResponse",
2069
+ "declaration": {
2070
+ "name": "fetchStreamingResponse",
2071
+ "module": "src/components/ai-chat/stream/ai-chat-streaming.ts"
2072
+ }
2073
+ },
2074
+ {
2075
+ "kind": "js",
2076
+ "name": "parseStreamLine",
2077
+ "declaration": {
2078
+ "name": "parseStreamLine",
2079
+ "module": "src/components/ai-chat/stream/ai-chat-streaming.ts"
2080
+ }
2081
+ },
2082
+ {
2083
+ "kind": "js",
2084
+ "name": "readNdjsonStream",
2085
+ "declaration": {
2086
+ "name": "readNdjsonStream",
2087
+ "module": "src/components/ai-chat/stream/ai-chat-streaming.ts"
2088
+ }
2089
+ }
2090
+ ]
2091
+ },
2092
+ {
2093
+ "kind": "javascript-module",
2094
+ "path": "src/components/ai-chat/stream/analyst-handler.ts",
2095
+ "declarations": [
2096
+ {
2097
+ "kind": "function",
2098
+ "name": "processAnalystStreamChunk",
2099
+ "return": {
2100
+ "type": {
2101
+ "text": "void"
2102
+ }
2103
+ },
2104
+ "parameters": [
2105
+ {
2106
+ "name": "chunk",
2107
+ "type": {
2108
+ "text": "Record<string, unknown>"
2109
+ }
2110
+ },
2111
+ {
2112
+ "name": "ctx",
2113
+ "type": {
2114
+ "text": "StreamHandlerContext"
2115
+ }
2116
+ }
2117
+ ],
2118
+ "description": "Minimal analyst stream handling: text, progress, and errors."
2119
+ }
2120
+ ],
2121
+ "exports": [
2122
+ {
2123
+ "kind": "js",
2124
+ "name": "processAnalystStreamChunk",
2125
+ "declaration": {
2126
+ "name": "processAnalystStreamChunk",
2127
+ "module": "src/components/ai-chat/stream/analyst-handler.ts"
2128
+ }
2129
+ }
2130
+ ]
2131
+ },
2132
+ {
2133
+ "kind": "javascript-module",
2134
+ "path": "src/components/ai-chat/stream/dashboard-handler.ts",
2135
+ "declarations": [
2136
+ {
2137
+ "kind": "function",
2138
+ "name": "processDashboardStreamChunk",
2139
+ "return": {
2140
+ "type": {
2141
+ "text": "void"
2142
+ }
2143
+ },
2144
+ "parameters": [
2145
+ {
2146
+ "name": "chunk",
2147
+ "type": {
2148
+ "text": "Record<string, unknown>"
2149
+ }
2150
+ },
2151
+ {
2152
+ "name": "ctx",
2153
+ "type": {
2154
+ "text": "StreamHandlerContext"
2155
+ }
2156
+ }
2157
+ ]
2158
+ },
2159
+ {
2160
+ "kind": "function",
2161
+ "name": "getDashboardSnapshot",
2162
+ "return": {
2163
+ "type": {
2164
+ "text": "DashboardStatePayload | null"
2165
+ }
2166
+ },
2167
+ "parameters": [
2168
+ {
2169
+ "name": "state",
2170
+ "type": {
2171
+ "text": "StreamHandlerContext['state']"
2172
+ }
2173
+ }
2174
+ ]
2175
+ }
2176
+ ],
2177
+ "exports": [
2178
+ {
2179
+ "kind": "js",
2180
+ "name": "processDashboardStreamChunk",
2181
+ "declaration": {
2182
+ "name": "processDashboardStreamChunk",
2183
+ "module": "src/components/ai-chat/stream/dashboard-handler.ts"
2184
+ }
2185
+ },
2186
+ {
2187
+ "kind": "js",
2188
+ "name": "getDashboardSnapshot",
2189
+ "declaration": {
2190
+ "name": "getDashboardSnapshot",
2191
+ "module": "src/components/ai-chat/stream/dashboard-handler.ts"
2192
+ }
2193
+ }
2194
+ ]
2195
+ },
2196
+ {
2197
+ "kind": "javascript-module",
2198
+ "path": "src/components/ai-chat/stream/item-handler.ts",
2199
+ "declarations": [
2200
+ {
2201
+ "kind": "function",
2202
+ "name": "processItemStreamChunk",
2203
+ "return": {
2204
+ "type": {
2205
+ "text": "void"
2206
+ }
2207
+ },
2208
+ "parameters": [
2209
+ {
2210
+ "name": "chunk",
863
2211
  "type": {
864
- "text": "string | null"
865
- },
866
- "default": "null",
867
- "description": "When set, the component auto-submits this prompt via the streaming API\nwithout adding a duplicate user message (assumes it is already in `messages`).\nUseful when the prompt originates from an external source (e.g. a dropdown).",
868
- "fieldName": "initialPrompt"
2212
+ "text": "Record<string, unknown>"
2213
+ }
869
2214
  },
870
2215
  {
871
- "name": "progress",
2216
+ "name": "ctx",
872
2217
  "type": {
873
- "text": "ProgressTreeNode | null"
874
- },
875
- "default": "null",
876
- "description": "Progress tree for external request mode. Ignored in internal mode.",
877
- "fieldName": "progress"
878
- },
2218
+ "text": "StreamHandlerContext"
2219
+ }
2220
+ }
2221
+ ]
2222
+ }
2223
+ ],
2224
+ "exports": [
2225
+ {
2226
+ "kind": "js",
2227
+ "name": "processItemStreamChunk",
2228
+ "declaration": {
2229
+ "name": "processItemStreamChunk",
2230
+ "module": "src/components/ai-chat/stream/item-handler.ts"
2231
+ }
2232
+ }
2233
+ ]
2234
+ },
2235
+ {
2236
+ "kind": "javascript-module",
2237
+ "path": "src/components/ai-chat/stream/registry.ts",
2238
+ "declarations": [
2239
+ {
2240
+ "kind": "function",
2241
+ "name": "createStreamHandler",
2242
+ "return": {
2243
+ "type": {
2244
+ "text": "StreamChunkProcessor"
2245
+ }
2246
+ },
2247
+ "parameters": [
879
2248
  {
880
- "name": "progress-collapsed",
2249
+ "name": "agent",
881
2250
  "type": {
882
- "text": "boolean"
883
- },
884
- "default": "false",
885
- "description": "Whether progress steps should be shown collapsed.\nOnly used in external request mode. Ignored in internal mode.",
886
- "fieldName": "progressCollapsed"
2251
+ "text": "AiPromptAgent"
2252
+ }
887
2253
  }
888
- ],
889
- "superclass": {
890
- "name": "LuzmoElement",
891
- "package": "@utils/base"
892
- },
893
- "tagName": "luzmo-ai-chat",
894
- "customElement": true,
895
- "summary": "A complete AI chat interface combining messages display and input"
896
- },
897
- {
898
- "kind": "variable",
899
- "name": "request"
2254
+ ]
900
2255
  },
901
2256
  {
902
- "kind": "variable",
903
- "name": "messageIndex"
2257
+ "kind": "function",
2258
+ "name": "createInitialStreamState",
2259
+ "return": {
2260
+ "type": {
2261
+ "text": "StreamHandlerContext['state']"
2262
+ }
2263
+ }
904
2264
  }
905
2265
  ],
906
2266
  "exports": [
907
2267
  {
908
2268
  "kind": "js",
909
- "name": "LuzmoAiChat",
2269
+ "name": "createStreamHandler",
910
2270
  "declaration": {
911
- "name": "LuzmoAiChat",
912
- "module": "src/components/ai-chat/ai-chat.ts"
2271
+ "name": "createStreamHandler",
2272
+ "module": "src/components/ai-chat/stream/registry.ts"
2273
+ }
2274
+ },
2275
+ {
2276
+ "kind": "js",
2277
+ "name": "createInitialStreamState",
2278
+ "declaration": {
2279
+ "name": "createInitialStreamState",
2280
+ "module": "src/components/ai-chat/stream/registry.ts"
913
2281
  }
914
2282
  }
915
2283
  ]
916
2284
  },
917
2285
  {
918
2286
  "kind": "javascript-module",
919
- "path": "src/components/ai-chat/request-contract.ts",
2287
+ "path": "src/components/ai-chat/stream/shared.ts",
920
2288
  "declarations": [
921
2289
  {
922
2290
  "kind": "function",
923
- "name": "buildAiMessageRequest",
2291
+ "name": "extractInlineStreamText",
924
2292
  "return": {
925
2293
  "type": {
926
- "text": "AiMessageRequestBody"
2294
+ "text": "string"
927
2295
  }
928
2296
  },
929
2297
  "parameters": [
930
2298
  {
931
- "name": "options",
2299
+ "name": "chunk",
932
2300
  "type": {
933
- "text": "BuildAiMessageRequestOptions"
2301
+ "text": "Record<string, unknown>"
934
2302
  }
935
2303
  }
936
2304
  ]
937
2305
  },
938
2306
  {
939
2307
  "kind": "function",
940
- "name": "buildAiMessageDeleteRequest",
2308
+ "name": "extractStreamText",
941
2309
  "return": {
942
2310
  "type": {
943
- "text": "AiMessageDeleteRequestBody"
2311
+ "text": "string"
944
2312
  }
945
2313
  },
946
2314
  "parameters": [
947
2315
  {
948
- "name": "restoreToMessageId",
2316
+ "name": "chunk",
949
2317
  "type": {
950
- "text": "string"
2318
+ "text": "Record<string, unknown>"
2319
+ }
2320
+ }
2321
+ ]
2322
+ },
2323
+ {
2324
+ "kind": "function",
2325
+ "name": "isStreamDone",
2326
+ "return": {
2327
+ "type": {
2328
+ "text": "boolean"
2329
+ }
2330
+ },
2331
+ "parameters": [
2332
+ {
2333
+ "name": "chunk",
2334
+ "type": {
2335
+ "text": "Record<string, unknown>"
2336
+ }
2337
+ }
2338
+ ]
2339
+ },
2340
+ {
2341
+ "kind": "function",
2342
+ "name": "applyConversationId",
2343
+ "return": {
2344
+ "type": {
2345
+ "text": "void"
2346
+ }
2347
+ },
2348
+ "parameters": [
2349
+ {
2350
+ "name": "chunk",
2351
+ "type": {
2352
+ "text": "Record<string, unknown>"
951
2353
  }
952
2354
  },
953
2355
  {
954
- "name": "authKey",
2356
+ "name": "ctx",
955
2357
  "type": {
956
- "text": "string"
2358
+ "text": "StreamHandlerContext"
2359
+ }
2360
+ }
2361
+ ]
2362
+ },
2363
+ {
2364
+ "kind": "function",
2365
+ "name": "handleSharedProgress",
2366
+ "return": {
2367
+ "type": {
2368
+ "text": "boolean"
2369
+ }
2370
+ },
2371
+ "parameters": [
2372
+ {
2373
+ "name": "chunk",
2374
+ "type": {
2375
+ "text": "Record<string, unknown>"
957
2376
  }
958
2377
  },
959
2378
  {
960
- "name": "authToken",
2379
+ "name": "ctx",
2380
+ "type": {
2381
+ "text": "StreamHandlerContext"
2382
+ }
2383
+ }
2384
+ ]
2385
+ },
2386
+ {
2387
+ "kind": "function",
2388
+ "name": "handleSharedError",
2389
+ "return": {
2390
+ "type": {
2391
+ "text": "boolean"
2392
+ }
2393
+ },
2394
+ "parameters": [
2395
+ {
2396
+ "name": "chunk",
2397
+ "type": {
2398
+ "text": "Record<string, unknown>"
2399
+ }
2400
+ },
2401
+ {
2402
+ "name": "ctx",
2403
+ "type": {
2404
+ "text": "StreamHandlerContext"
2405
+ }
2406
+ }
2407
+ ]
2408
+ },
2409
+ {
2410
+ "kind": "function",
2411
+ "name": "appendStreamText",
2412
+ "return": {
2413
+ "type": {
2414
+ "text": "void"
2415
+ }
2416
+ },
2417
+ "parameters": [
2418
+ {
2419
+ "name": "ctx",
2420
+ "type": {
2421
+ "text": "StreamHandlerContext"
2422
+ }
2423
+ },
2424
+ {
2425
+ "name": "textContent",
961
2426
  "type": {
962
2427
  "text": "string"
963
2428
  }
2429
+ }
2430
+ ]
2431
+ },
2432
+ {
2433
+ "kind": "function",
2434
+ "name": "finalizeTextResponse",
2435
+ "return": {
2436
+ "type": {
2437
+ "text": "void"
2438
+ }
2439
+ },
2440
+ "parameters": [
2441
+ {
2442
+ "name": "ctx",
2443
+ "type": {
2444
+ "text": "StreamHandlerContext"
2445
+ }
964
2446
  },
965
2447
  {
966
- "name": "apiVersion",
967
- "default": "'0.1.0'"
2448
+ "name": "isDone",
2449
+ "type": {
2450
+ "text": "boolean"
2451
+ }
2452
+ },
2453
+ {
2454
+ "name": "hadTextInChunk",
2455
+ "default": "false"
2456
+ }
2457
+ ]
2458
+ },
2459
+ {
2460
+ "kind": "function",
2461
+ "name": "extractChartFromChunk",
2462
+ "return": {
2463
+ "type": {
2464
+ "text": "Record<string, unknown> | null"
2465
+ }
2466
+ },
2467
+ "parameters": [
2468
+ {
2469
+ "name": "chunk",
2470
+ "type": {
2471
+ "text": "Record<string, unknown>"
2472
+ }
968
2473
  }
969
2474
  ]
970
2475
  }
@@ -972,22 +2477,84 @@
972
2477
  "exports": [
973
2478
  {
974
2479
  "kind": "js",
975
- "name": "buildAiMessageRequest",
2480
+ "name": "extractInlineStreamText",
2481
+ "declaration": {
2482
+ "name": "extractInlineStreamText",
2483
+ "module": "src/components/ai-chat/stream/shared.ts"
2484
+ }
2485
+ },
2486
+ {
2487
+ "kind": "js",
2488
+ "name": "extractStreamText",
2489
+ "declaration": {
2490
+ "name": "extractStreamText",
2491
+ "module": "src/components/ai-chat/stream/shared.ts"
2492
+ }
2493
+ },
2494
+ {
2495
+ "kind": "js",
2496
+ "name": "isStreamDone",
2497
+ "declaration": {
2498
+ "name": "isStreamDone",
2499
+ "module": "src/components/ai-chat/stream/shared.ts"
2500
+ }
2501
+ },
2502
+ {
2503
+ "kind": "js",
2504
+ "name": "applyConversationId",
2505
+ "declaration": {
2506
+ "name": "applyConversationId",
2507
+ "module": "src/components/ai-chat/stream/shared.ts"
2508
+ }
2509
+ },
2510
+ {
2511
+ "kind": "js",
2512
+ "name": "handleSharedProgress",
2513
+ "declaration": {
2514
+ "name": "handleSharedProgress",
2515
+ "module": "src/components/ai-chat/stream/shared.ts"
2516
+ }
2517
+ },
2518
+ {
2519
+ "kind": "js",
2520
+ "name": "handleSharedError",
2521
+ "declaration": {
2522
+ "name": "handleSharedError",
2523
+ "module": "src/components/ai-chat/stream/shared.ts"
2524
+ }
2525
+ },
2526
+ {
2527
+ "kind": "js",
2528
+ "name": "appendStreamText",
976
2529
  "declaration": {
977
- "name": "buildAiMessageRequest",
978
- "module": "src/components/ai-chat/request-contract.ts"
2530
+ "name": "appendStreamText",
2531
+ "module": "src/components/ai-chat/stream/shared.ts"
979
2532
  }
980
2533
  },
981
2534
  {
982
2535
  "kind": "js",
983
- "name": "buildAiMessageDeleteRequest",
2536
+ "name": "finalizeTextResponse",
984
2537
  "declaration": {
985
- "name": "buildAiMessageDeleteRequest",
986
- "module": "src/components/ai-chat/request-contract.ts"
2538
+ "name": "finalizeTextResponse",
2539
+ "module": "src/components/ai-chat/stream/shared.ts"
2540
+ }
2541
+ },
2542
+ {
2543
+ "kind": "js",
2544
+ "name": "extractChartFromChunk",
2545
+ "declaration": {
2546
+ "name": "extractChartFromChunk",
2547
+ "module": "src/components/ai-chat/stream/shared.ts"
987
2548
  }
988
2549
  }
989
2550
  ]
990
2551
  },
2552
+ {
2553
+ "kind": "javascript-module",
2554
+ "path": "src/components/ai-chat/stream/types.ts",
2555
+ "declarations": [],
2556
+ "exports": []
2557
+ },
991
2558
  {
992
2559
  "kind": "javascript-module",
993
2560
  "path": "src/components/ai-interaction-textarea/ai-interaction-textarea.ts",
@@ -6285,6 +7852,17 @@
6285
7852
  "attribute": "view-mode",
6286
7853
  "reflects": true
6287
7854
  },
7855
+ {
7856
+ "kind": "field",
7857
+ "name": "itemActionsDocumentPopover",
7858
+ "type": {
7859
+ "text": "boolean"
7860
+ },
7861
+ "default": "true",
7862
+ "description": "When true (default), the item actions menu uses the Document Popover API (`popover=\"manual\"`),\nwhich paints in the top layer. Set to false when embedding the grid next to another UI that\nalso uses a document popover (e.g. an analyst side pane) so the actions menu stays in normal\nstacking with `position: fixed` + Floating UI instead.",
7863
+ "attribute": "item-actions-document-popover",
7864
+ "reflects": true
7865
+ },
6288
7866
  {
6289
7867
  "kind": "field",
6290
7868
  "name": "placementItemActionsMenu",
@@ -6482,6 +8060,15 @@
6482
8060
  "description": "Whether the grid is in view mode. When true, dragging, resizing and action buttons are disabled.",
6483
8061
  "fieldName": "viewMode"
6484
8062
  },
8063
+ {
8064
+ "name": "item-actions-document-popover",
8065
+ "type": {
8066
+ "text": "boolean"
8067
+ },
8068
+ "default": "true",
8069
+ "description": "When true (default), the item actions menu uses the Document Popover API (`popover=\"manual\"`),\nwhich paints in the top layer. Set to false when embedding the grid next to another UI that\nalso uses a document popover (e.g. an analyst side pane) so the actions menu stays in normal\nstacking with `position: fixed` + Floating UI instead.",
8070
+ "fieldName": "itemActionsDocumentPopover"
8071
+ },
6485
8072
  {
6486
8073
  "name": "placement-item-actions-menu",
6487
8074
  "type": {
@@ -7096,7 +8683,7 @@
7096
8683
  },
7097
8684
  "parameters": [
7098
8685
  {
7099
- "name": "{\n element,\n activeActions,\n getGridItemById,\n placementItemActionsMenu,\n renderOverlayContent,\n removeItemActionsMenuPopover\n}",
8686
+ "name": "{\n element,\n activeActions,\n getGridItemById,\n placementItemActionsMenu,\n renderOverlayContent,\n removeItemActionsMenuPopover,\n itemActionsDocumentPopover = true\n}",
7100
8687
  "type": {
7101
8688
  "text": "CreateItemActionsMenuPopoverArgs"
7102
8689
  }
@@ -7511,7 +9098,7 @@
7511
9098
  },
7512
9099
  "parameters": [
7513
9100
  {
7514
- "name": "{\n item,\n activeActions,\n defaultItemActionsMenu,\n placementItemActionsMenu,\n language,\n handleAction\n}",
9101
+ "name": "{\n item,\n activeActions,\n defaultItemActionsMenu,\n placementItemActionsMenu,\n language,\n handleAction,\n itemActionsDocumentPopover = true\n}",
7515
9102
  "type": {
7516
9103
  "text": "RenderOverlayContentArgs"
7517
9104
  }