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

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 (236) hide show
  1. package/components/ai-chat/ai-chat-request.d.ts +11 -0
  2. package/components/ai-chat/ai-chat.d.ts +59 -54
  3. package/components/ai-chat/ai-prompt-types.d.ts +93 -0
  4. package/components/ai-chat/index.cjs +1 -1
  5. package/components/ai-chat/index.d.ts +9 -4
  6. package/components/ai-chat/index.js +2 -2
  7. package/components/ai-chat/session/ai-chat-session-controller.d.ts +51 -0
  8. package/components/ai-chat/session/ai-chat-session-types.d.ts +86 -0
  9. package/components/ai-chat/session/ai-chat-session.d.ts +81 -0
  10. package/components/ai-chat/session/index.d.ts +2 -0
  11. package/components/ai-chat/{ai-chat-streaming.d.ts → stream/ai-chat-streaming.d.ts} +6 -0
  12. package/components/ai-chat/stream/analyst-handler.d.ts +3 -0
  13. package/components/ai-chat/stream/dashboard-handler.d.ts +4 -0
  14. package/components/ai-chat/stream/index.d.ts +8 -0
  15. package/components/ai-chat/stream/item-handler.d.ts +2 -0
  16. package/components/ai-chat/stream/registry.d.ts +5 -0
  17. package/components/ai-chat/stream/shared.d.ts +10 -0
  18. package/components/ai-chat/stream/types.d.ts +26 -0
  19. package/components/ai-chat-CY73iYCg.cjs +154 -0
  20. package/components/ai-chat-DVU9XiA2.js +1788 -0
  21. package/components/ai-interaction-textarea/index.cjs +1 -1
  22. package/components/ai-interaction-textarea/index.js +1 -1
  23. package/components/{ai-interaction-textarea-BXmgedJt.js → ai-interaction-textarea-DI98QoMZ.js} +3 -3
  24. package/components/{ai-interaction-textarea-CogE101T.cjs → ai-interaction-textarea-DqWt823F.cjs} +1 -1
  25. package/components/{base-BAzY-whv.js → base-D3ehdFno.js} +1 -1
  26. package/components/{base-CbpjVnVy.cjs → base-HUGXYn6t.cjs} +1 -1
  27. package/components/data-field/index.cjs +1 -1
  28. package/components/data-field/index.js +1 -1
  29. package/components/{data-field-97uH3l6o.cjs → data-field-DSzU9Apl.cjs} +1 -1
  30. package/components/{data-field-tfAMLb-d.js → data-field-DwSYggPc.js} +3 -3
  31. package/components/data-field-level/index.cjs +1 -1
  32. package/components/data-field-level/index.js +1 -1
  33. package/components/{data-field-level-BsDTHrJ6.js → data-field-level-BquNqRm1.js} +1 -1
  34. package/components/{data-field-level-6npuFtQo.cjs → data-field-level-CYUtLiIi.cjs} +1 -1
  35. package/components/data-field-panel/index.cjs +1 -1
  36. package/components/data-field-panel/index.js +1 -1
  37. package/components/{data-field-panel-Dv5nfM0z.cjs → data-field-panel-B_83HNyI.cjs} +1 -1
  38. package/components/{data-field-panel-P2t8d6sG.js → data-field-panel-Bqslx0EB.js} +3 -3
  39. package/components/data-fields-select/index.cjs +1 -1
  40. package/components/data-fields-select/index.js +1 -1
  41. package/components/{data-fields-select-B7vJTdZO.cjs → data-fields-select-BZj1cpL5.cjs} +1 -1
  42. package/components/{data-fields-select-DHnnYhbr.js → data-fields-select-t1ikPTLw.js} +1 -1
  43. package/components/dataset-selector-list/index.cjs +1 -1
  44. package/components/dataset-selector-list/index.js +1 -1
  45. package/components/{dataset-selector-list-DbCmavOc.cjs → dataset-selector-list-Bta-CGoN.cjs} +1 -1
  46. package/components/{dataset-selector-list-CXnDkIe2.js → dataset-selector-list-Ho8JnQp7.js} +1 -1
  47. package/components/dataset-selector-row/index.cjs +1 -1
  48. package/components/dataset-selector-row/index.js +1 -1
  49. package/components/{dataset-selector-row-BONcmdL2.js → dataset-selector-row-8hgsmMRg.js} +1 -1
  50. package/components/{dataset-selector-row-Bm60zTbF.cjs → dataset-selector-row-CKhHK1H5.cjs} +1 -1
  51. package/components/{de-B8ds_DbE.cjs → de-CVLDoWlp.cjs} +1 -1
  52. package/components/{de-DMnvmNFg.js → de-D2bZwq4D.js} +6 -1
  53. package/components/display-settings/index.cjs +1 -1
  54. package/components/display-settings/index.js +1 -1
  55. package/components/{display-settings-BLf7lBww.cjs → display-settings-Bmb0HUlu.cjs} +1 -1
  56. package/components/{display-settings-BLMrlvMS.js → display-settings-Di9dXtUM.js} +1 -1
  57. package/components/display-settings-binning/index.cjs +1 -1
  58. package/components/display-settings-binning/index.js +1 -1
  59. package/components/{display-settings-binning-hCJ0qkt5.js → display-settings-binning-B8qUIt6T.js} +2 -2
  60. package/components/{display-settings-binning-BAg6FoqJ.cjs → display-settings-binning-CpwCqvwm.cjs} +1 -1
  61. package/components/display-settings-datetime/index.cjs +1 -1
  62. package/components/display-settings-datetime/index.js +1 -1
  63. package/components/{display-settings-datetime-BzeNlKLC.cjs → display-settings-datetime-3M3DvzTN.cjs} +1 -1
  64. package/components/{display-settings-datetime-CCxok7d7.js → display-settings-datetime-C8JfjDJK.js} +2 -2
  65. package/components/display-settings-grand-totals/index.cjs +1 -1
  66. package/components/display-settings-grand-totals/index.js +1 -1
  67. package/components/{display-settings-grand-totals-HDpr3IJ5.cjs → display-settings-grand-totals-DMDa6C5k.cjs} +1 -1
  68. package/components/{display-settings-grand-totals-C1N1cehl.js → display-settings-grand-totals-kyfMh55D.js} +2 -2
  69. package/components/display-settings-numeric/index.cjs +1 -1
  70. package/components/display-settings-numeric/index.js +1 -1
  71. package/components/{display-settings-numeric-DSs20wUu.cjs → display-settings-numeric-B51KddXI.cjs} +1 -1
  72. package/components/{display-settings-numeric-oyCfBAGV.js → display-settings-numeric-Cw8Nx5s9.js} +2 -2
  73. package/components/display-settings-period-over-period/index.cjs +1 -1
  74. package/components/display-settings-period-over-period/index.js +1 -1
  75. package/components/{display-settings-period-over-period-h8bA3V5C.js → display-settings-period-over-period-B2AN0rwz.js} +2 -2
  76. package/components/{display-settings-period-over-period-CcX7vQnt.cjs → display-settings-period-over-period-CjjA2NqZ.cjs} +1 -1
  77. package/components/{es-Cc258uTs.js → es-9-jszdOJ.js} +6 -1
  78. package/components/{es-DGC51Dm9.cjs → es-Byjf7YBI.cjs} +1 -1
  79. package/components/filter-expression-picker/index.cjs +1 -1
  80. package/components/filter-expression-picker/index.js +1 -1
  81. package/components/{filter-expression-picker-DQP5lkn4.js → filter-expression-picker-Brn-vNUd.js} +1 -1
  82. package/components/{filter-expression-picker-BMJkgHu9.cjs → filter-expression-picker-DCFZKpBE.cjs} +1 -1
  83. package/components/filter-item/index.cjs +1 -1
  84. package/components/filter-item/index.js +1 -1
  85. package/components/{filter-item-BXcYNAAm.js → filter-item-BlSQe2nu.js} +4 -4
  86. package/components/{filter-item-D9m378Qo.cjs → filter-item-Cjrhb1RR.cjs} +1 -1
  87. package/components/filter-value-picker/index.cjs +1 -1
  88. package/components/filter-value-picker/index.js +1 -1
  89. package/components/{filter-value-picker-YIkbsWDP.cjs → filter-value-picker-BCckBdal.cjs} +1 -1
  90. package/components/{filter-value-picker-B-dzcjEo.js → filter-value-picker-CBetCjIs.js} +4 -4
  91. package/components/filter-value-picker-datetime/index.cjs +1 -1
  92. package/components/filter-value-picker-datetime/index.js +1 -1
  93. package/components/{filter-value-picker-datetime-BJMcnoKH.js → filter-value-picker-datetime-CT63jJDI.js} +1 -1
  94. package/components/{filter-value-picker-datetime-BrrmcjIE.cjs → filter-value-picker-datetime-CxM6HXe3.cjs} +1 -1
  95. package/components/filter-value-picker-hierarchy/index.cjs +1 -1
  96. package/components/filter-value-picker-hierarchy/index.js +1 -1
  97. package/components/{filter-value-picker-hierarchy-B9gDxYna.cjs → filter-value-picker-hierarchy-C5QZXiQz.cjs} +1 -1
  98. package/components/{filter-value-picker-hierarchy-UdDq0CZG.js → filter-value-picker-hierarchy-CAORy2A-.js} +2 -2
  99. package/components/filter-value-picker-numeric/index.cjs +1 -1
  100. package/components/filter-value-picker-numeric/index.js +1 -1
  101. package/components/{filter-value-picker-numeric-D_dgITCq.cjs → filter-value-picker-numeric-CtOfHaJR.cjs} +1 -1
  102. package/components/{filter-value-picker-numeric-EK515Z-Y.js → filter-value-picker-numeric-Fao-PKN7.js} +1 -1
  103. package/components/filters/index.cjs +1 -1
  104. package/components/filters/index.js +1 -1
  105. package/components/{filters-H2scDNLi.js → filters-CtWut3ce.js} +2 -2
  106. package/components/{filters-8ehwgopC.cjs → filters-DI0GTL9k.cjs} +1 -1
  107. package/components/{fr-BoZFY3Qe.cjs → fr-BVxPTfyF.cjs} +1 -1
  108. package/components/{fr-B32d4zcX.js → fr-DLf99-F8.js} +6 -1
  109. package/components/{get-dataset-name-CrWWViwN.cjs → get-dataset-name-CvZduuOo.cjs} +1 -1
  110. package/components/{get-dataset-name-7FdLQo10.js → get-dataset-name-EKmxKZU9.js} +1 -1
  111. package/components/index.cjs +1 -1
  112. package/components/index.js +58 -58
  113. package/components/item-grid/helpers/grid-item-popover.d.ts +7 -1
  114. package/components/item-grid/helpers/grid-rendering.d.ts +7 -1
  115. package/components/item-grid/index.cjs +1 -1
  116. package/components/item-grid/index.js +1 -1
  117. package/components/item-grid/item-grid.d.ts +8 -0
  118. package/components/{item-grid-CxblVEy3.cjs → item-grid-Bcez8lwg.cjs} +7 -7
  119. package/components/{item-grid-B-IFwriA.js → item-grid-DgxtJ0eX.js} +574 -564
  120. package/components/item-option/index.cjs +1 -1
  121. package/components/item-option/index.js +1 -1
  122. package/components/{item-option-ChsD18x9.cjs → item-option-BgYyAKSW.cjs} +1 -1
  123. package/components/{item-option-Buxnv89s.js → item-option-DjiTHr0r.js} +1 -1
  124. package/components/item-option-action-button-group/index.cjs +1 -1
  125. package/components/item-option-action-button-group/index.js +1 -1
  126. package/components/{item-option-action-button-group-Cw9EDbG-.cjs → item-option-action-button-group-DdqzgR08.cjs} +1 -1
  127. package/components/{item-option-action-button-group-QO_darH9.js → item-option-action-button-group-U5GCtFjg.js} +1 -1
  128. package/components/{item-option-base-DjQ5poaH.cjs → item-option-base-BeIdCZMp.cjs} +1 -1
  129. package/components/{item-option-base-DMmga0dv.js → item-option-base-DM3U9dbW.js} +1 -1
  130. package/components/item-option-color-palette-picker/index.cjs +1 -1
  131. package/components/item-option-color-palette-picker/index.js +1 -1
  132. package/components/{item-option-color-palette-picker-CiE_aWRI.js → item-option-color-palette-picker-BsMZ3IUR.js} +1 -1
  133. package/components/{item-option-color-palette-picker-gZvk4ODA.cjs → item-option-color-palette-picker-oj8nSb-q.cjs} +1 -1
  134. package/components/item-option-color-picker/index.cjs +1 -1
  135. package/components/item-option-color-picker/index.js +1 -1
  136. package/components/{item-option-color-picker-DCnGqBgT.cjs → item-option-color-picker-BJKGTrIi.cjs} +1 -1
  137. package/components/{item-option-color-picker-CUskqN3R.js → item-option-color-picker-B_pemZKJ.js} +1 -1
  138. package/components/item-option-color-range/index.cjs +1 -1
  139. package/components/item-option-color-range/index.js +1 -1
  140. package/components/{item-option-color-range-B24EAbUi.cjs → item-option-color-range-BOegJZim.cjs} +1 -1
  141. package/components/{item-option-color-range-BgHXTDvx.js → item-option-color-range-DW3rdMt5.js} +1 -1
  142. package/components/item-option-multi-language-field/index.cjs +1 -1
  143. package/components/item-option-multi-language-field/index.js +1 -1
  144. package/components/{item-option-multi-language-field-DDIu7Hns.cjs → item-option-multi-language-field-BQZ4Lmiy.cjs} +1 -1
  145. package/components/{item-option-multi-language-field-qngZBXHT.js → item-option-multi-language-field-CeYgkRzs.js} +1 -1
  146. package/components/item-option-number-field/index.cjs +1 -1
  147. package/components/item-option-number-field/index.js +1 -1
  148. package/components/{item-option-number-field-Cd-cfpaq.js → item-option-number-field-CFQyJG_w.js} +1 -1
  149. package/components/{item-option-number-field-CqrO1Xu0.cjs → item-option-number-field-T2L2jFCf.cjs} +1 -1
  150. package/components/item-option-panel/index.cjs +1 -1
  151. package/components/item-option-panel/index.js +1 -1
  152. package/components/{item-option-panel-B26_sDcj.cjs → item-option-panel-BOJmKPgY.cjs} +1 -1
  153. package/components/{item-option-panel-DZiOx_sn.js → item-option-panel-ChOItFmc.js} +2 -2
  154. package/components/item-option-picker/index.cjs +1 -1
  155. package/components/item-option-picker/index.js +1 -1
  156. package/components/{item-option-picker-B86AqAWp.cjs → item-option-picker-3krQktmk.cjs} +1 -1
  157. package/components/{item-option-picker-LRahjZUz.js → item-option-picker-IBP7QFLA.js} +1 -1
  158. package/components/item-option-position-picker/index.cjs +1 -1
  159. package/components/item-option-position-picker/index.js +1 -1
  160. package/components/{item-option-position-picker-Cbi2OygH.cjs → item-option-position-picker-BiLRWUWK.cjs} +1 -1
  161. package/components/{item-option-position-picker-NUpUlyPV.js → item-option-position-picker-DF54K_Mw.js} +1 -1
  162. package/components/item-option-positions-number-field/index.cjs +1 -1
  163. package/components/item-option-positions-number-field/index.js +1 -1
  164. package/components/{item-option-positions-number-field-BbIkX6wM.cjs → item-option-positions-number-field-B6qxN1x7.cjs} +1 -1
  165. package/components/{item-option-positions-number-field-ClPil6MM.js → item-option-positions-number-field-Dchzu5NS.js} +1 -1
  166. package/components/item-option-radio-button-group/index.cjs +1 -1
  167. package/components/item-option-radio-button-group/index.js +1 -1
  168. package/components/{item-option-radio-button-group-Bdd9sU4p.js → item-option-radio-button-group-BiOpqNXX.js} +1 -1
  169. package/components/{item-option-radio-button-group-BtYYhQyI.cjs → item-option-radio-button-group-DzI_2jB3.cjs} +1 -1
  170. package/components/item-option-slider/index.cjs +1 -1
  171. package/components/item-option-slider/index.js +1 -1
  172. package/components/{item-option-slider-32oGS1fd.cjs → item-option-slider-6E4VgJpv.cjs} +1 -1
  173. package/components/{item-option-slider-BJ7gVQXP.js → item-option-slider-Dba7mmcA.js} +1 -1
  174. package/components/item-option-switch/index.cjs +1 -1
  175. package/components/item-option-switch/index.js +1 -1
  176. package/components/{item-option-switch-BMVlfdx5.js → item-option-switch-BAYX5lTr.js} +1 -1
  177. package/components/{item-option-switch-BFk3biK9.cjs → item-option-switch-Dt4pzFNi.cjs} +1 -1
  178. package/components/item-option-text-field/index.cjs +1 -1
  179. package/components/item-option-text-field/index.js +1 -1
  180. package/components/{item-option-text-field-CWvgQ3pJ.cjs → item-option-text-field-BLOz4LvH.cjs} +1 -1
  181. package/components/{item-option-text-field-BoXwVo-B.js → item-option-text-field-CHalqTt1.js} +1 -1
  182. package/components/item-slot-drop/index.cjs +1 -1
  183. package/components/item-slot-drop/index.js +1 -1
  184. package/components/{item-slot-drop-CYRVCWF0.cjs → item-slot-drop-CNeF_Qmg.cjs} +1 -1
  185. package/components/{item-slot-drop-C0GmOMQY.js → item-slot-drop-n6UHgA-Q.js} +4 -4
  186. package/components/item-slot-drop-panel/index.cjs +1 -1
  187. package/components/item-slot-drop-panel/index.js +1 -1
  188. package/components/{item-slot-drop-panel-CoRFds3a.cjs → item-slot-drop-panel-Bh6PlCJx.cjs} +1 -1
  189. package/components/{item-slot-drop-panel-Ci3Soo16.js → item-slot-drop-panel-Hhp9_pDd.js} +3 -3
  190. package/components/item-slot-picker/index.cjs +1 -1
  191. package/components/item-slot-picker/index.js +1 -1
  192. package/components/{item-slot-picker-CmnJSYIF.cjs → item-slot-picker-7oF3vLwb.cjs} +1 -1
  193. package/components/{item-slot-picker-D1_NbL1A.js → item-slot-picker-BAMVwHtd.js} +5 -5
  194. package/components/item-slot-picker-panel/index.cjs +1 -1
  195. package/components/item-slot-picker-panel/index.js +1 -1
  196. package/components/{item-slot-picker-panel-B8VvKhRF.js → item-slot-picker-panel-BYCDx6Hk.js} +3 -3
  197. package/components/{item-slot-picker-panel-DzKodYTM.cjs → item-slot-picker-panel-C6mMlurQ.cjs} +1 -1
  198. package/components/{localized-mixin-DZuGq2Fm.js → localized-mixin-CpYxJczB.js} +1 -1
  199. package/components/{localized-mixin-Dujo7nlJ.cjs → localized-mixin-CxGNXOcg.cjs} +1 -1
  200. package/components/{nl-C9Ad2LdA.cjs → nl-D4uOyZ6h.cjs} +1 -1
  201. package/components/{nl-hCQgb1fB.js → nl-QLEhlKsI.js} +6 -1
  202. package/components/{set-locale-CXnxhP_B.js → set-locale-wsrhUZVV.js} +4 -4
  203. package/components/{set-locale-MCuEsOOu.cjs → set-locale-xSK2Wd4D.cjs} +1 -1
  204. package/components/slot-menu/index.cjs +1 -1
  205. package/components/slot-menu/index.js +1 -1
  206. package/components/{slot-menu-CYNYwJnU.js → slot-menu-B431N66z.js} +3 -3
  207. package/components/{slot-menu-CDAAPyFj.cjs → slot-menu-CIQRPLvx.cjs} +1 -1
  208. package/components/slot-menu-list/index.cjs +1 -1
  209. package/components/slot-menu-list/index.js +1 -1
  210. package/components/{slot-menu-list-DbWiuJDF.cjs → slot-menu-list-BROocU0s.cjs} +1 -1
  211. package/components/{slot-menu-list-DL-x5Ggl.js → slot-menu-list-Cdh09ie0.js} +1 -1
  212. package/components/utils/base.cjs +1 -1
  213. package/components/utils/base.js +2 -2
  214. package/components/{utils-BACUV6sE.js → utils-CJ3Vy98n.js} +1 -1
  215. package/components/{utils-DKSE_5u1.cjs → utils-iY1cKQaF.cjs} +1 -1
  216. package/components/utils.cjs +1 -1
  217. package/components/utils.js +2 -2
  218. package/components/viz-item-menu/index.cjs +1 -1
  219. package/components/viz-item-menu/index.js +1 -1
  220. package/components/{viz-item-menu-DXoKwAhV.js → viz-item-menu--FyB_XCf.js} +1 -1
  221. package/components/{viz-item-menu-yr7TQY8-.cjs → viz-item-menu-D20StIE_.cjs} +1 -1
  222. package/custom-elements.json +1460 -157
  223. package/package.json +1 -1
  224. package/react/components/ai-chat/stream/index.ts +1 -0
  225. package/react/components/ai-chat/stream/types.ts +29 -0
  226. package/react/components/ai-chat.component.ts +12 -12
  227. package/react/esm/components/ai-chat/stream/index.d.ts +1 -0
  228. package/react/esm/components/ai-chat/stream/index.js +1 -0
  229. package/react/esm/components/ai-chat/stream/types.d.ts +26 -0
  230. package/react/esm/components/ai-chat/stream/types.js +1 -0
  231. package/react/esm/components/ai-chat.component.d.ts +8 -8
  232. package/react/esm/components/ai-chat.component.js +8 -8
  233. package/types/ai-chat.types.d.ts +1 -1
  234. package/components/ai-chat/request-contract.d.ts +0 -56
  235. package/components/ai-chat-D9yB7Sw_.cjs +0 -151
  236. package/components/ai-chat-DkfD3BDG.js +0 -1258
@@ -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,28 +660,17 @@
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",
383
- "type": {
384
- "text": "ProgressTreeNode | null"
385
- },
386
- "default": "null",
387
- "description": "Progress tree for external request mode. Ignored in internal mode.",
388
- "attribute": "progress"
389
- },
390
- {
391
- "kind": "field",
392
- "name": "progressCollapsed",
668
+ "name": "session",
393
669
  "type": {
394
- "text": "boolean"
670
+ "text": "AiChatSession | null"
395
671
  },
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"
672
+ "description": "Active AiChatSession (host or auto-created). Null until first bind or action.",
673
+ "readonly": true
399
674
  },
400
675
  {
401
676
  "type": {
@@ -600,45 +875,45 @@
600
875
  ],
601
876
  "events": [
602
877
  {
603
- "name": "luzmo-response-received",
878
+ "name": "luzmo-message-sent",
604
879
  "type": {
605
880
  "text": "CustomEvent"
606
881
  },
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."
882
+ "description": "Fired when a user sends a message"
608
883
  },
609
884
  {
610
- "name": "luzmo-chart-generated",
885
+ "name": "luzmo-datasets-changed",
611
886
  "type": {
612
887
  "text": "CustomEvent"
613
- },
614
- "description": "Fired when the AI generates a chart (includes generatedChart in response)"
888
+ }
615
889
  },
616
890
  {
617
- "name": "luzmo-message-sent",
891
+ "name": "luzmo-chart-generated",
618
892
  "type": {
619
893
  "text": "CustomEvent"
620
894
  },
621
- "description": "Fired when a user sends a message"
895
+ "description": "Fired when agent is `item` and a chart asset is ready"
622
896
  },
623
897
  {
624
- "name": "luzmo-restore-requested",
898
+ "name": "luzmo-dashboard-generated",
625
899
  "type": {
626
900
  "text": "CustomEvent"
627
901
  },
628
- "description": "Fired when a restore action is triggered in external mode"
902
+ "description": "Fired when agent is `dashboard` and a dashboard asset is ready"
629
903
  },
630
904
  {
631
- "name": "luzmo-datasets-changed",
905
+ "name": "luzmo-response-received",
632
906
  "type": {
633
907
  "text": "CustomEvent"
634
- }
908
+ },
909
+ "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
910
  },
636
911
  {
637
- "name": "luzmo-prompt-submitted",
912
+ "name": "luzmo-conversation-id-changed",
638
913
  "type": {
639
914
  "text": "CustomEvent"
640
915
  },
641
- "description": "Fired when request-mode is set to external so the host can execute the API request lifecycle."
916
+ "description": "Fired when the conversation ID is updated from the API"
642
917
  }
643
918
  ],
644
919
  "attributes": [
@@ -648,7 +923,7 @@
648
923
  "text": "ChatMessage[]"
649
924
  },
650
925
  "default": "[]",
651
- "description": "Array of chat messages to display",
926
+ "description": "Live transcript is AiChatSession.state.messages. This prop optionally seeds the session on first connect.",
652
927
  "fieldName": "messages"
653
928
  },
654
929
  {
@@ -657,7 +932,7 @@
657
932
  "text": "Dataset[]"
658
933
  },
659
934
  "default": "[]",
660
- "description": "Array of selected datasets for the input",
935
+ "description": "Live selection is in the session. This prop optionally seeds on first connect.",
661
936
  "fieldName": "selectedDatasets"
662
937
  },
663
938
  {
@@ -787,31 +1062,31 @@
787
1062
  "fieldName": "requireDataset"
788
1063
  },
789
1064
  {
790
- "name": "model-preference",
1065
+ "name": "agent",
791
1066
  "type": {
792
- "text": "'performance' | 'quality'"
1067
+ "text": "AiPromptAgent"
793
1068
  },
794
- "default": "'performance'",
795
- "description": "AI model preference for chart generation",
796
- "fieldName": "modelPreference"
1069
+ "default": "'item'",
1070
+ "description": "Which aiprompt agent to use. Determines request payload and stream handling.",
1071
+ "fieldName": "agent"
797
1072
  },
798
1073
  {
799
- "name": "request-mode",
1074
+ "name": "task",
800
1075
  "type": {
801
- "text": "'internal' | 'external'"
1076
+ "text": "AiPromptItemTask"
802
1077
  },
803
- "default": "'internal'",
804
- "description": "Controls if API calls are handled internally or by the host application.",
805
- "fieldName": "requestMode"
1078
+ "default": "'generate'",
1079
+ "description": "Task for the item agent (`generate`, `suggest`, `describe`).",
1080
+ "fieldName": "task"
806
1081
  },
807
1082
  {
808
- "name": "is-generating",
1083
+ "name": "model-preference",
809
1084
  "type": {
810
- "text": "boolean"
1085
+ "text": "'performance' | 'quality'"
811
1086
  },
812
- "default": "false",
813
- "description": "Used only in external request mode to reflect request lifecycle in the UI.",
814
- "fieldName": "isGenerating"
1087
+ "default": "'performance'",
1088
+ "description": "AI model preference for item agent chart generation",
1089
+ "fieldName": "modelPreference"
815
1090
  },
816
1091
  {
817
1092
  "name": "conversation-id",
@@ -819,7 +1094,7 @@
819
1094
  "text": "string | null"
820
1095
  },
821
1096
  "default": "null",
822
- "description": "Conversation ID",
1097
+ "description": "Conversation ID (synced into the session; updated when the API returns a new id).",
823
1098
  "fieldName": "conversationId"
824
1099
  },
825
1100
  {
@@ -828,9 +1103,43 @@
828
1103
  "text": "LuzmoChart | null"
829
1104
  },
830
1105
  "default": "null",
831
- "description": "vizItem",
1106
+ "description": "Chart context for `agent=\"item\"`.",
832
1107
  "fieldName": "chart"
833
1108
  },
1109
+ {
1110
+ "name": "dashboard",
1111
+ "type": {
1112
+ "text": "DashboardStatePayload | null"
1113
+ },
1114
+ "default": "null",
1115
+ "description": "Dashboard context for `agent=\"dashboard\"`.",
1116
+ "fieldName": "dashboard"
1117
+ },
1118
+ {
1119
+ "name": "current-screen-mode",
1120
+ "type": {
1121
+ "text": "AiPromptScreenMode | undefined"
1122
+ },
1123
+ "description": "Current screen mode when editing a dashboard.",
1124
+ "fieldName": "currentScreenMode"
1125
+ },
1126
+ {
1127
+ "name": "locale-id",
1128
+ "type": {
1129
+ "text": "string | undefined"
1130
+ },
1131
+ "description": "Locale ID sent to the aiprompt API.",
1132
+ "fieldName": "localeId"
1133
+ },
1134
+ {
1135
+ "name": "timezone-id",
1136
+ "type": {
1137
+ "text": "string"
1138
+ },
1139
+ "default": "'UTC'",
1140
+ "description": "Timezone ID for dashboard agent requests.",
1141
+ "fieldName": "timezoneId"
1142
+ },
834
1143
  {
835
1144
  "name": "api-version",
836
1145
  "type": {
@@ -855,116 +1164,1028 @@
855
1164
  "text": "string | null"
856
1165
  },
857
1166
  "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.",
1167
+ "description": "Loading message shown while generating and before progress steps are available.",
859
1168
  "fieldName": "loadingMessage"
860
1169
  },
861
1170
  {
862
- "name": "initial-prompt",
1171
+ "name": "initial-prompt",
1172
+ "type": {
1173
+ "text": "string | null"
1174
+ },
1175
+ "default": "null",
1176
+ "description": "When set, auto-submits via the session without adding a duplicate user message\n(assumes the prompt is already in the transcript).",
1177
+ "fieldName": "initialPrompt"
1178
+ }
1179
+ ],
1180
+ "superclass": {
1181
+ "name": "LuzmoElement",
1182
+ "package": "@utils/base"
1183
+ },
1184
+ "tagName": "luzmo-ai-chat",
1185
+ "customElement": true,
1186
+ "summary": "AI chat UI backed by AiChatSession for transcript, datasets, and streaming."
1187
+ }
1188
+ ],
1189
+ "exports": [
1190
+ {
1191
+ "kind": "js",
1192
+ "name": "LuzmoAiChat",
1193
+ "declaration": {
1194
+ "name": "LuzmoAiChat",
1195
+ "module": "src/components/ai-chat/ai-chat.ts"
1196
+ }
1197
+ }
1198
+ ]
1199
+ },
1200
+ {
1201
+ "kind": "javascript-module",
1202
+ "path": "src/components/ai-chat/ai-prompt-types.ts",
1203
+ "declarations": [],
1204
+ "exports": []
1205
+ },
1206
+ {
1207
+ "kind": "javascript-module",
1208
+ "path": "src/components/ai-chat/session/ai-chat-session-controller.ts",
1209
+ "declarations": [
1210
+ {
1211
+ "kind": "class",
1212
+ "description": "Single AiChatSession slot for `luzmo-ai-chat`.\nThe chat component uses current, state, and requireSession only.",
1213
+ "name": "AiChatSessionController",
1214
+ "members": [
1215
+ {
1216
+ "kind": "field",
1217
+ "name": "current",
1218
+ "type": {
1219
+ "text": "AiChatSession | null"
1220
+ },
1221
+ "readonly": true
1222
+ },
1223
+ {
1224
+ "kind": "field",
1225
+ "name": "state",
1226
+ "type": {
1227
+ "text": "Readonly<AiChatSessionState>"
1228
+ },
1229
+ "readonly": true
1230
+ },
1231
+ {
1232
+ "kind": "field",
1233
+ "name": "ownsCurrentSession",
1234
+ "type": {
1235
+ "text": "boolean"
1236
+ },
1237
+ "readonly": true
1238
+ },
1239
+ {
1240
+ "kind": "method",
1241
+ "name": "setSession",
1242
+ "return": {
1243
+ "type": {
1244
+ "text": "void"
1245
+ }
1246
+ },
1247
+ "parameters": [
1248
+ {
1249
+ "name": "session",
1250
+ "type": {
1251
+ "text": "AiChatSession | null"
1252
+ }
1253
+ }
1254
+ ],
1255
+ "description": "Use an app-provided session (e.g. from `.chatSession`).\nPass `null` to clear it; an owned session may be created later via requireSession."
1256
+ },
1257
+ {
1258
+ "kind": "method",
1259
+ "name": "syncProperties",
1260
+ "return": {
1261
+ "type": {
1262
+ "text": "void"
1263
+ }
1264
+ },
1265
+ "parameters": [
1266
+ {
1267
+ "name": "changedProperties",
1268
+ "type": {
1269
+ "text": "Map<string, unknown>"
1270
+ }
1271
+ }
1272
+ ],
1273
+ "description": "Sync config / seed props after Lit `updated`.\nCall after handling `chatSession` via setSession."
1274
+ },
1275
+ {
1276
+ "kind": "method",
1277
+ "name": "requireSession",
1278
+ "return": {
1279
+ "type": {
1280
+ "text": "AiChatSession"
1281
+ }
1282
+ }
1283
+ },
1284
+ {
1285
+ "kind": "method",
1286
+ "name": "connect",
1287
+ "return": {
1288
+ "type": {
1289
+ "text": "void"
1290
+ }
1291
+ },
1292
+ "description": "Re-attach UI bridge and state subscription after teardown on reconnect."
1293
+ },
1294
+ {
1295
+ "kind": "method",
1296
+ "name": "teardown",
1297
+ "return": {
1298
+ "type": {
1299
+ "text": "void"
1300
+ }
1301
+ }
1302
+ }
1303
+ ]
1304
+ }
1305
+ ],
1306
+ "exports": [
1307
+ {
1308
+ "kind": "js",
1309
+ "name": "AiChatSessionController",
1310
+ "declaration": {
1311
+ "name": "AiChatSessionController",
1312
+ "module": "src/components/ai-chat/session/ai-chat-session-controller.ts"
1313
+ }
1314
+ }
1315
+ ]
1316
+ },
1317
+ {
1318
+ "kind": "javascript-module",
1319
+ "path": "src/components/ai-chat/session/ai-chat-session-types.ts",
1320
+ "declarations": [],
1321
+ "exports": [
1322
+ {
1323
+ "kind": "js",
1324
+ "name": "AiPromptCreateBody",
1325
+ "declaration": {
1326
+ "name": "AiPromptCreateBody",
1327
+ "module": "src/components/ai-chat/session/ai-chat-session-types.ts"
1328
+ }
1329
+ },
1330
+ {
1331
+ "kind": "js",
1332
+ "name": "AiPromptDeleteBody",
1333
+ "declaration": {
1334
+ "name": "AiPromptDeleteBody",
1335
+ "module": "src/components/ai-chat/session/ai-chat-session-types.ts"
1336
+ }
1337
+ },
1338
+ {
1339
+ "kind": "js",
1340
+ "name": "LuzmoPromptSubmittedEventDetail",
1341
+ "declaration": {
1342
+ "name": "LuzmoPromptSubmittedEventDetail",
1343
+ "module": "src/components/ai-chat/session/ai-chat-session-types.ts"
1344
+ }
1345
+ },
1346
+ {
1347
+ "kind": "js",
1348
+ "name": "LuzmoRestoreRequestedEventDetail",
1349
+ "declaration": {
1350
+ "name": "LuzmoRestoreRequestedEventDetail",
1351
+ "module": "src/components/ai-chat/session/ai-chat-session-types.ts"
1352
+ }
1353
+ }
1354
+ ]
1355
+ },
1356
+ {
1357
+ "kind": "javascript-module",
1358
+ "path": "src/components/ai-chat/session/ai-chat-session.ts",
1359
+ "declarations": [
1360
+ {
1361
+ "kind": "class",
1362
+ "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.",
1363
+ "name": "AiChatSession",
1364
+ "members": [
1365
+ {
1366
+ "kind": "field",
1367
+ "name": "state",
1368
+ "type": {
1369
+ "text": "Readonly<AiChatSessionState>"
1370
+ },
1371
+ "readonly": true
1372
+ },
1373
+ {
1374
+ "kind": "field",
1375
+ "name": "isGenerating",
1376
+ "type": {
1377
+ "text": "boolean"
1378
+ },
1379
+ "readonly": true
1380
+ },
1381
+ {
1382
+ "kind": "method",
1383
+ "name": "subscribe",
1384
+ "return": {
1385
+ "type": {
1386
+ "text": "() => void"
1387
+ }
1388
+ },
1389
+ "parameters": [
1390
+ {
1391
+ "name": "listener",
1392
+ "type": {
1393
+ "text": "(state: AiChatSessionState) => void"
1394
+ }
1395
+ }
1396
+ ],
1397
+ "description": "Subscribe to full session state (for `luzmo-ai-chat` rendering). Returns an unsubscribe function.\nThe listener is invoked immediately with the current state."
1398
+ },
1399
+ {
1400
+ "kind": "method",
1401
+ "name": "setUiBridge",
1402
+ "return": {
1403
+ "type": {
1404
+ "text": "void"
1405
+ }
1406
+ },
1407
+ "parameters": [
1408
+ {
1409
+ "name": "bridge",
1410
+ "type": {
1411
+ "text": "AiChatSessionCallbacks"
1412
+ }
1413
+ }
1414
+ ],
1415
+ "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."
1416
+ },
1417
+ {
1418
+ "kind": "method",
1419
+ "name": "updateConfig",
1420
+ "return": {
1421
+ "type": {
1422
+ "text": "void"
1423
+ }
1424
+ },
1425
+ "parameters": [
1426
+ {
1427
+ "name": "partial",
1428
+ "type": {
1429
+ "text": "Partial<AiChatSessionConfig>"
1430
+ }
1431
+ }
1432
+ ],
1433
+ "description": "Merge config (chart, conversationId, agent, …) without aborting an in-flight request."
1434
+ },
1435
+ {
1436
+ "kind": "method",
1437
+ "name": "setSelectedDatasets",
1438
+ "return": {
1439
+ "type": {
1440
+ "text": "void"
1441
+ }
1442
+ },
1443
+ "parameters": [
1444
+ {
1445
+ "name": "datasets",
1446
+ "type": {
1447
+ "text": "Dataset[]"
1448
+ }
1449
+ }
1450
+ ],
1451
+ "description": "Replace the full dataset selection (e.g. when the dashboard context changes)."
1452
+ },
1453
+ {
1454
+ "kind": "method",
1455
+ "name": "addDataset",
1456
+ "return": {
1457
+ "type": {
1458
+ "text": "void"
1459
+ }
1460
+ },
1461
+ "parameters": [
1462
+ {
1463
+ "name": "dataset",
1464
+ "type": {
1465
+ "text": "Dataset"
1466
+ }
1467
+ }
1468
+ ]
1469
+ },
1470
+ {
1471
+ "kind": "method",
1472
+ "name": "removeDataset",
1473
+ "return": {
1474
+ "type": {
1475
+ "text": "void"
1476
+ }
1477
+ },
1478
+ "parameters": [
1479
+ {
1480
+ "name": "datasetId",
1481
+ "type": {
1482
+ "text": "string"
1483
+ }
1484
+ }
1485
+ ]
1486
+ },
1487
+ {
1488
+ "kind": "method",
1489
+ "name": "isDatasetRequirementMet",
1490
+ "return": {
1491
+ "type": {
1492
+ "text": "boolean"
1493
+ }
1494
+ }
1495
+ },
1496
+ {
1497
+ "kind": "method",
1498
+ "name": "getAiPromptUrl",
1499
+ "return": {
1500
+ "type": {
1501
+ "text": "string"
1502
+ }
1503
+ }
1504
+ },
1505
+ {
1506
+ "kind": "method",
1507
+ "name": "buildRequestBody",
1508
+ "return": {
1509
+ "type": {
1510
+ "text": "AiPromptCreateBody"
1511
+ }
1512
+ },
1513
+ "parameters": [
1514
+ {
1515
+ "name": "prompt",
1516
+ "type": {
1517
+ "text": "string"
1518
+ }
1519
+ },
1520
+ {
1521
+ "name": "datasetIds",
1522
+ "type": {
1523
+ "text": "string[]"
1524
+ }
1525
+ }
1526
+ ]
1527
+ },
1528
+ {
1529
+ "kind": "method",
1530
+ "name": "buildPromptSubmittedDetail",
1531
+ "return": {
1532
+ "type": {
1533
+ "text": "LuzmoPromptSubmittedEventDetail"
1534
+ }
1535
+ },
1536
+ "parameters": [
1537
+ {
1538
+ "name": "prompt",
1539
+ "type": {
1540
+ "text": "string"
1541
+ }
1542
+ },
1543
+ {
1544
+ "name": "selectedDatasets",
1545
+ "type": {
1546
+ "text": "Dataset[]"
1547
+ }
1548
+ },
1549
+ {
1550
+ "name": "datasetIds",
1551
+ "type": {
1552
+ "text": "string[]"
1553
+ }
1554
+ }
1555
+ ],
1556
+ "description": "Same payload passed to AiChatSessionCallbacks.onPromptSubmitted."
1557
+ },
1558
+ {
1559
+ "kind": "method",
1560
+ "name": "submit",
1561
+ "return": {
1562
+ "type": {
1563
+ "text": "Promise<void>"
1564
+ }
1565
+ },
1566
+ "parameters": [
1567
+ {
1568
+ "name": "params",
1569
+ "type": {
1570
+ "text": "AiChatSessionSubmitParams"
1571
+ }
1572
+ }
1573
+ ],
1574
+ "description": "Append the user prompt (unless `skipUserMessage`), start streaming, and update state."
1575
+ },
1576
+ {
1577
+ "kind": "method",
1578
+ "name": "restore",
1579
+ "return": {
1580
+ "type": {
1581
+ "text": "Promise<AiChatSessionRestoreResult>"
1582
+ }
1583
+ },
1584
+ "parameters": [
1585
+ {
1586
+ "name": "params",
1587
+ "type": {
1588
+ "text": "AiChatSessionRestoreParams"
1589
+ }
1590
+ }
1591
+ ],
1592
+ "description": "Item agent only — restore conversation to a prior API message."
1593
+ },
1594
+ {
1595
+ "kind": "method",
1596
+ "name": "buildRestoreRequest",
1597
+ "return": {
1598
+ "type": {
1599
+ "text": "AiPromptDeleteBody"
1600
+ }
1601
+ },
1602
+ "parameters": [
1603
+ {
1604
+ "name": "restoreToMessageId",
1605
+ "type": {
1606
+ "text": "string"
1607
+ }
1608
+ }
1609
+ ]
1610
+ },
1611
+ {
1612
+ "kind": "method",
1613
+ "name": "abort",
1614
+ "return": {
1615
+ "type": {
1616
+ "text": "void"
1617
+ }
1618
+ },
1619
+ "description": "Cancel the in-flight fetch. Does not clear conversation state."
1620
+ }
1621
+ ]
1622
+ },
1623
+ {
1624
+ "kind": "variable",
1625
+ "name": "aiMessage",
1626
+ "type": {
1627
+ "text": "ChatMessage"
1628
+ },
1629
+ "default": "{ id: params.aiMessageId ?? generateMessageId(), type: 'ai', message: '' }"
1630
+ },
1631
+ {
1632
+ "kind": "function",
1633
+ "name": "createAiChatSession",
1634
+ "return": {
1635
+ "type": {
1636
+ "text": "AiChatSession"
1637
+ }
1638
+ },
1639
+ "parameters": [
1640
+ {
1641
+ "name": "config",
1642
+ "type": {
1643
+ "text": "AiChatSessionConfig"
1644
+ }
1645
+ },
1646
+ {
1647
+ "name": "callbacks",
1648
+ "optional": true,
1649
+ "type": {
1650
+ "text": "AiChatSessionCallbacks"
1651
+ }
1652
+ }
1653
+ ]
1654
+ }
1655
+ ],
1656
+ "exports": [
1657
+ {
1658
+ "kind": "js",
1659
+ "name": "AiChatSession",
1660
+ "declaration": {
1661
+ "name": "AiChatSession",
1662
+ "module": "src/components/ai-chat/session/ai-chat-session.ts"
1663
+ }
1664
+ },
1665
+ {
1666
+ "kind": "js",
1667
+ "name": "createAiChatSession",
1668
+ "declaration": {
1669
+ "name": "createAiChatSession",
1670
+ "module": "src/components/ai-chat/session/ai-chat-session.ts"
1671
+ }
1672
+ }
1673
+ ]
1674
+ },
1675
+ {
1676
+ "kind": "javascript-module",
1677
+ "path": "src/components/ai-chat/stream/ai-chat-streaming.ts",
1678
+ "declarations": [
1679
+ {
1680
+ "kind": "function",
1681
+ "name": "createInitialProgress",
1682
+ "return": {
1683
+ "type": {
1684
+ "text": "ProgressTreeNode"
1685
+ }
1686
+ }
1687
+ },
1688
+ {
1689
+ "kind": "function",
1690
+ "name": "hasProgressChunk",
1691
+ "return": {
1692
+ "type": {
1693
+ "text": "boolean"
1694
+ }
1695
+ },
1696
+ "parameters": [
1697
+ {
1698
+ "name": "value",
1699
+ "type": {
1700
+ "text": "Record<string, unknown>"
1701
+ }
1702
+ }
1703
+ ]
1704
+ },
1705
+ {
1706
+ "kind": "function",
1707
+ "name": "fetchStreamingResponse",
1708
+ "return": {
1709
+ "type": {
1710
+ "text": "Promise<StreamingResponse>"
1711
+ }
1712
+ },
1713
+ "parameters": [
1714
+ {
1715
+ "name": "options",
1716
+ "type": {
1717
+ "text": "StreamingRequestOptions"
1718
+ }
1719
+ }
1720
+ ]
1721
+ },
1722
+ {
1723
+ "kind": "function",
1724
+ "name": "parseStreamLine",
1725
+ "return": {
1726
+ "type": {
1727
+ "text": "Record<string, unknown> | null"
1728
+ }
1729
+ },
1730
+ "parameters": [
1731
+ {
1732
+ "name": "line",
1733
+ "type": {
1734
+ "text": "string"
1735
+ }
1736
+ }
1737
+ ],
1738
+ "description": "Parse one line from an aiprompt response stream.\nSupports plain NDJSON (`{\"type\":\"progress\",...}`) and SSE (`data: {...}`)."
1739
+ },
1740
+ {
1741
+ "kind": "function",
1742
+ "name": "readNdjsonStream",
1743
+ "return": {
1744
+ "type": {
1745
+ "text": "Promise<void>"
1746
+ }
1747
+ },
1748
+ "parameters": [
1749
+ {
1750
+ "name": "body",
1751
+ "type": {
1752
+ "text": "ReadableStream<Uint8Array>"
1753
+ }
1754
+ },
1755
+ {
1756
+ "name": "onChunk",
1757
+ "type": {
1758
+ "text": "(chunk: Record<string, unknown>) => void"
1759
+ }
1760
+ }
1761
+ ],
1762
+ "description": "Read NDJSON or SSE (`data:`) chunks from a streaming aiprompt response body."
1763
+ }
1764
+ ],
1765
+ "exports": [
1766
+ {
1767
+ "kind": "js",
1768
+ "name": "createInitialProgress",
1769
+ "declaration": {
1770
+ "name": "createInitialProgress",
1771
+ "module": "src/components/ai-chat/stream/ai-chat-streaming.ts"
1772
+ }
1773
+ },
1774
+ {
1775
+ "kind": "js",
1776
+ "name": "hasProgressChunk",
1777
+ "declaration": {
1778
+ "name": "hasProgressChunk",
1779
+ "module": "src/components/ai-chat/stream/ai-chat-streaming.ts"
1780
+ }
1781
+ },
1782
+ {
1783
+ "kind": "js",
1784
+ "name": "fetchStreamingResponse",
1785
+ "declaration": {
1786
+ "name": "fetchStreamingResponse",
1787
+ "module": "src/components/ai-chat/stream/ai-chat-streaming.ts"
1788
+ }
1789
+ },
1790
+ {
1791
+ "kind": "js",
1792
+ "name": "parseStreamLine",
1793
+ "declaration": {
1794
+ "name": "parseStreamLine",
1795
+ "module": "src/components/ai-chat/stream/ai-chat-streaming.ts"
1796
+ }
1797
+ },
1798
+ {
1799
+ "kind": "js",
1800
+ "name": "readNdjsonStream",
1801
+ "declaration": {
1802
+ "name": "readNdjsonStream",
1803
+ "module": "src/components/ai-chat/stream/ai-chat-streaming.ts"
1804
+ }
1805
+ }
1806
+ ]
1807
+ },
1808
+ {
1809
+ "kind": "javascript-module",
1810
+ "path": "src/components/ai-chat/stream/analyst-handler.ts",
1811
+ "declarations": [
1812
+ {
1813
+ "kind": "function",
1814
+ "name": "processAnalystStreamChunk",
1815
+ "return": {
1816
+ "type": {
1817
+ "text": "void"
1818
+ }
1819
+ },
1820
+ "parameters": [
1821
+ {
1822
+ "name": "chunk",
1823
+ "type": {
1824
+ "text": "Record<string, unknown>"
1825
+ }
1826
+ },
1827
+ {
1828
+ "name": "ctx",
1829
+ "type": {
1830
+ "text": "StreamHandlerContext"
1831
+ }
1832
+ }
1833
+ ],
1834
+ "description": "Minimal analyst stream handling: text, progress, and errors."
1835
+ }
1836
+ ],
1837
+ "exports": [
1838
+ {
1839
+ "kind": "js",
1840
+ "name": "processAnalystStreamChunk",
1841
+ "declaration": {
1842
+ "name": "processAnalystStreamChunk",
1843
+ "module": "src/components/ai-chat/stream/analyst-handler.ts"
1844
+ }
1845
+ }
1846
+ ]
1847
+ },
1848
+ {
1849
+ "kind": "javascript-module",
1850
+ "path": "src/components/ai-chat/stream/dashboard-handler.ts",
1851
+ "declarations": [
1852
+ {
1853
+ "kind": "function",
1854
+ "name": "processDashboardStreamChunk",
1855
+ "return": {
1856
+ "type": {
1857
+ "text": "void"
1858
+ }
1859
+ },
1860
+ "parameters": [
1861
+ {
1862
+ "name": "chunk",
1863
+ "type": {
1864
+ "text": "Record<string, unknown>"
1865
+ }
1866
+ },
1867
+ {
1868
+ "name": "ctx",
1869
+ "type": {
1870
+ "text": "StreamHandlerContext"
1871
+ }
1872
+ }
1873
+ ]
1874
+ },
1875
+ {
1876
+ "kind": "function",
1877
+ "name": "getDashboardSnapshot",
1878
+ "return": {
1879
+ "type": {
1880
+ "text": "DashboardStatePayload | null"
1881
+ }
1882
+ },
1883
+ "parameters": [
1884
+ {
1885
+ "name": "state",
1886
+ "type": {
1887
+ "text": "StreamHandlerContext['state']"
1888
+ }
1889
+ }
1890
+ ]
1891
+ }
1892
+ ],
1893
+ "exports": [
1894
+ {
1895
+ "kind": "js",
1896
+ "name": "processDashboardStreamChunk",
1897
+ "declaration": {
1898
+ "name": "processDashboardStreamChunk",
1899
+ "module": "src/components/ai-chat/stream/dashboard-handler.ts"
1900
+ }
1901
+ },
1902
+ {
1903
+ "kind": "js",
1904
+ "name": "getDashboardSnapshot",
1905
+ "declaration": {
1906
+ "name": "getDashboardSnapshot",
1907
+ "module": "src/components/ai-chat/stream/dashboard-handler.ts"
1908
+ }
1909
+ }
1910
+ ]
1911
+ },
1912
+ {
1913
+ "kind": "javascript-module",
1914
+ "path": "src/components/ai-chat/stream/item-handler.ts",
1915
+ "declarations": [
1916
+ {
1917
+ "kind": "function",
1918
+ "name": "processItemStreamChunk",
1919
+ "return": {
1920
+ "type": {
1921
+ "text": "void"
1922
+ }
1923
+ },
1924
+ "parameters": [
1925
+ {
1926
+ "name": "chunk",
863
1927
  "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"
1928
+ "text": "Record<string, unknown>"
1929
+ }
869
1930
  },
870
1931
  {
871
- "name": "progress",
1932
+ "name": "ctx",
872
1933
  "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
- },
1934
+ "text": "StreamHandlerContext"
1935
+ }
1936
+ }
1937
+ ]
1938
+ }
1939
+ ],
1940
+ "exports": [
1941
+ {
1942
+ "kind": "js",
1943
+ "name": "processItemStreamChunk",
1944
+ "declaration": {
1945
+ "name": "processItemStreamChunk",
1946
+ "module": "src/components/ai-chat/stream/item-handler.ts"
1947
+ }
1948
+ }
1949
+ ]
1950
+ },
1951
+ {
1952
+ "kind": "javascript-module",
1953
+ "path": "src/components/ai-chat/stream/registry.ts",
1954
+ "declarations": [
1955
+ {
1956
+ "kind": "function",
1957
+ "name": "createStreamHandler",
1958
+ "return": {
1959
+ "type": {
1960
+ "text": "StreamChunkProcessor"
1961
+ }
1962
+ },
1963
+ "parameters": [
879
1964
  {
880
- "name": "progress-collapsed",
1965
+ "name": "agent",
881
1966
  "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"
1967
+ "text": "AiPromptAgent"
1968
+ }
887
1969
  }
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"
1970
+ ]
900
1971
  },
901
1972
  {
902
- "kind": "variable",
903
- "name": "messageIndex"
1973
+ "kind": "function",
1974
+ "name": "createInitialStreamState",
1975
+ "return": {
1976
+ "type": {
1977
+ "text": "StreamHandlerContext['state']"
1978
+ }
1979
+ }
904
1980
  }
905
1981
  ],
906
1982
  "exports": [
907
1983
  {
908
1984
  "kind": "js",
909
- "name": "LuzmoAiChat",
1985
+ "name": "createStreamHandler",
910
1986
  "declaration": {
911
- "name": "LuzmoAiChat",
912
- "module": "src/components/ai-chat/ai-chat.ts"
1987
+ "name": "createStreamHandler",
1988
+ "module": "src/components/ai-chat/stream/registry.ts"
1989
+ }
1990
+ },
1991
+ {
1992
+ "kind": "js",
1993
+ "name": "createInitialStreamState",
1994
+ "declaration": {
1995
+ "name": "createInitialStreamState",
1996
+ "module": "src/components/ai-chat/stream/registry.ts"
913
1997
  }
914
1998
  }
915
1999
  ]
916
2000
  },
917
2001
  {
918
2002
  "kind": "javascript-module",
919
- "path": "src/components/ai-chat/request-contract.ts",
2003
+ "path": "src/components/ai-chat/stream/shared.ts",
920
2004
  "declarations": [
921
2005
  {
922
2006
  "kind": "function",
923
- "name": "buildAiMessageRequest",
2007
+ "name": "extractInlineStreamText",
924
2008
  "return": {
925
2009
  "type": {
926
- "text": "AiMessageRequestBody"
2010
+ "text": "string"
927
2011
  }
928
2012
  },
929
2013
  "parameters": [
930
2014
  {
931
- "name": "options",
2015
+ "name": "chunk",
932
2016
  "type": {
933
- "text": "BuildAiMessageRequestOptions"
2017
+ "text": "Record<string, unknown>"
934
2018
  }
935
2019
  }
936
2020
  ]
937
2021
  },
938
2022
  {
939
2023
  "kind": "function",
940
- "name": "buildAiMessageDeleteRequest",
2024
+ "name": "extractStreamText",
941
2025
  "return": {
942
2026
  "type": {
943
- "text": "AiMessageDeleteRequestBody"
2027
+ "text": "string"
944
2028
  }
945
2029
  },
946
2030
  "parameters": [
947
2031
  {
948
- "name": "restoreToMessageId",
2032
+ "name": "chunk",
949
2033
  "type": {
950
- "text": "string"
2034
+ "text": "Record<string, unknown>"
2035
+ }
2036
+ }
2037
+ ]
2038
+ },
2039
+ {
2040
+ "kind": "function",
2041
+ "name": "isStreamDone",
2042
+ "return": {
2043
+ "type": {
2044
+ "text": "boolean"
2045
+ }
2046
+ },
2047
+ "parameters": [
2048
+ {
2049
+ "name": "chunk",
2050
+ "type": {
2051
+ "text": "Record<string, unknown>"
2052
+ }
2053
+ }
2054
+ ]
2055
+ },
2056
+ {
2057
+ "kind": "function",
2058
+ "name": "applyConversationId",
2059
+ "return": {
2060
+ "type": {
2061
+ "text": "void"
2062
+ }
2063
+ },
2064
+ "parameters": [
2065
+ {
2066
+ "name": "chunk",
2067
+ "type": {
2068
+ "text": "Record<string, unknown>"
951
2069
  }
952
2070
  },
953
2071
  {
954
- "name": "authKey",
2072
+ "name": "ctx",
955
2073
  "type": {
956
- "text": "string"
2074
+ "text": "StreamHandlerContext"
2075
+ }
2076
+ }
2077
+ ]
2078
+ },
2079
+ {
2080
+ "kind": "function",
2081
+ "name": "handleSharedProgress",
2082
+ "return": {
2083
+ "type": {
2084
+ "text": "boolean"
2085
+ }
2086
+ },
2087
+ "parameters": [
2088
+ {
2089
+ "name": "chunk",
2090
+ "type": {
2091
+ "text": "Record<string, unknown>"
957
2092
  }
958
2093
  },
959
2094
  {
960
- "name": "authToken",
2095
+ "name": "ctx",
2096
+ "type": {
2097
+ "text": "StreamHandlerContext"
2098
+ }
2099
+ }
2100
+ ]
2101
+ },
2102
+ {
2103
+ "kind": "function",
2104
+ "name": "handleSharedError",
2105
+ "return": {
2106
+ "type": {
2107
+ "text": "boolean"
2108
+ }
2109
+ },
2110
+ "parameters": [
2111
+ {
2112
+ "name": "chunk",
2113
+ "type": {
2114
+ "text": "Record<string, unknown>"
2115
+ }
2116
+ },
2117
+ {
2118
+ "name": "ctx",
2119
+ "type": {
2120
+ "text": "StreamHandlerContext"
2121
+ }
2122
+ }
2123
+ ]
2124
+ },
2125
+ {
2126
+ "kind": "function",
2127
+ "name": "appendStreamText",
2128
+ "return": {
2129
+ "type": {
2130
+ "text": "void"
2131
+ }
2132
+ },
2133
+ "parameters": [
2134
+ {
2135
+ "name": "ctx",
2136
+ "type": {
2137
+ "text": "StreamHandlerContext"
2138
+ }
2139
+ },
2140
+ {
2141
+ "name": "textContent",
961
2142
  "type": {
962
2143
  "text": "string"
963
2144
  }
2145
+ }
2146
+ ]
2147
+ },
2148
+ {
2149
+ "kind": "function",
2150
+ "name": "finalizeTextResponse",
2151
+ "return": {
2152
+ "type": {
2153
+ "text": "void"
2154
+ }
2155
+ },
2156
+ "parameters": [
2157
+ {
2158
+ "name": "ctx",
2159
+ "type": {
2160
+ "text": "StreamHandlerContext"
2161
+ }
964
2162
  },
965
2163
  {
966
- "name": "apiVersion",
967
- "default": "'0.1.0'"
2164
+ "name": "isDone",
2165
+ "type": {
2166
+ "text": "boolean"
2167
+ }
2168
+ },
2169
+ {
2170
+ "name": "hadTextInChunk",
2171
+ "default": "false"
2172
+ }
2173
+ ]
2174
+ },
2175
+ {
2176
+ "kind": "function",
2177
+ "name": "extractChartFromChunk",
2178
+ "return": {
2179
+ "type": {
2180
+ "text": "Record<string, unknown> | null"
2181
+ }
2182
+ },
2183
+ "parameters": [
2184
+ {
2185
+ "name": "chunk",
2186
+ "type": {
2187
+ "text": "Record<string, unknown>"
2188
+ }
968
2189
  }
969
2190
  ]
970
2191
  }
@@ -972,22 +2193,84 @@
972
2193
  "exports": [
973
2194
  {
974
2195
  "kind": "js",
975
- "name": "buildAiMessageRequest",
2196
+ "name": "extractInlineStreamText",
2197
+ "declaration": {
2198
+ "name": "extractInlineStreamText",
2199
+ "module": "src/components/ai-chat/stream/shared.ts"
2200
+ }
2201
+ },
2202
+ {
2203
+ "kind": "js",
2204
+ "name": "extractStreamText",
2205
+ "declaration": {
2206
+ "name": "extractStreamText",
2207
+ "module": "src/components/ai-chat/stream/shared.ts"
2208
+ }
2209
+ },
2210
+ {
2211
+ "kind": "js",
2212
+ "name": "isStreamDone",
2213
+ "declaration": {
2214
+ "name": "isStreamDone",
2215
+ "module": "src/components/ai-chat/stream/shared.ts"
2216
+ }
2217
+ },
2218
+ {
2219
+ "kind": "js",
2220
+ "name": "applyConversationId",
2221
+ "declaration": {
2222
+ "name": "applyConversationId",
2223
+ "module": "src/components/ai-chat/stream/shared.ts"
2224
+ }
2225
+ },
2226
+ {
2227
+ "kind": "js",
2228
+ "name": "handleSharedProgress",
2229
+ "declaration": {
2230
+ "name": "handleSharedProgress",
2231
+ "module": "src/components/ai-chat/stream/shared.ts"
2232
+ }
2233
+ },
2234
+ {
2235
+ "kind": "js",
2236
+ "name": "handleSharedError",
2237
+ "declaration": {
2238
+ "name": "handleSharedError",
2239
+ "module": "src/components/ai-chat/stream/shared.ts"
2240
+ }
2241
+ },
2242
+ {
2243
+ "kind": "js",
2244
+ "name": "appendStreamText",
976
2245
  "declaration": {
977
- "name": "buildAiMessageRequest",
978
- "module": "src/components/ai-chat/request-contract.ts"
2246
+ "name": "appendStreamText",
2247
+ "module": "src/components/ai-chat/stream/shared.ts"
979
2248
  }
980
2249
  },
981
2250
  {
982
2251
  "kind": "js",
983
- "name": "buildAiMessageDeleteRequest",
2252
+ "name": "finalizeTextResponse",
984
2253
  "declaration": {
985
- "name": "buildAiMessageDeleteRequest",
986
- "module": "src/components/ai-chat/request-contract.ts"
2254
+ "name": "finalizeTextResponse",
2255
+ "module": "src/components/ai-chat/stream/shared.ts"
2256
+ }
2257
+ },
2258
+ {
2259
+ "kind": "js",
2260
+ "name": "extractChartFromChunk",
2261
+ "declaration": {
2262
+ "name": "extractChartFromChunk",
2263
+ "module": "src/components/ai-chat/stream/shared.ts"
987
2264
  }
988
2265
  }
989
2266
  ]
990
2267
  },
2268
+ {
2269
+ "kind": "javascript-module",
2270
+ "path": "src/components/ai-chat/stream/types.ts",
2271
+ "declarations": [],
2272
+ "exports": []
2273
+ },
991
2274
  {
992
2275
  "kind": "javascript-module",
993
2276
  "path": "src/components/ai-interaction-textarea/ai-interaction-textarea.ts",
@@ -6285,6 +7568,17 @@
6285
7568
  "attribute": "view-mode",
6286
7569
  "reflects": true
6287
7570
  },
7571
+ {
7572
+ "kind": "field",
7573
+ "name": "itemActionsDocumentPopover",
7574
+ "type": {
7575
+ "text": "boolean"
7576
+ },
7577
+ "default": "true",
7578
+ "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.",
7579
+ "attribute": "item-actions-document-popover",
7580
+ "reflects": true
7581
+ },
6288
7582
  {
6289
7583
  "kind": "field",
6290
7584
  "name": "placementItemActionsMenu",
@@ -6482,6 +7776,15 @@
6482
7776
  "description": "Whether the grid is in view mode. When true, dragging, resizing and action buttons are disabled.",
6483
7777
  "fieldName": "viewMode"
6484
7778
  },
7779
+ {
7780
+ "name": "item-actions-document-popover",
7781
+ "type": {
7782
+ "text": "boolean"
7783
+ },
7784
+ "default": "true",
7785
+ "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.",
7786
+ "fieldName": "itemActionsDocumentPopover"
7787
+ },
6485
7788
  {
6486
7789
  "name": "placement-item-actions-menu",
6487
7790
  "type": {
@@ -7096,7 +8399,7 @@
7096
8399
  },
7097
8400
  "parameters": [
7098
8401
  {
7099
- "name": "{\n element,\n activeActions,\n getGridItemById,\n placementItemActionsMenu,\n renderOverlayContent,\n removeItemActionsMenuPopover\n}",
8402
+ "name": "{\n element,\n activeActions,\n getGridItemById,\n placementItemActionsMenu,\n renderOverlayContent,\n removeItemActionsMenuPopover,\n itemActionsDocumentPopover = true\n}",
7100
8403
  "type": {
7101
8404
  "text": "CreateItemActionsMenuPopoverArgs"
7102
8405
  }
@@ -7511,7 +8814,7 @@
7511
8814
  },
7512
8815
  "parameters": [
7513
8816
  {
7514
- "name": "{\n item,\n activeActions,\n defaultItemActionsMenu,\n placementItemActionsMenu,\n language,\n handleAction\n}",
8817
+ "name": "{\n item,\n activeActions,\n defaultItemActionsMenu,\n placementItemActionsMenu,\n language,\n handleAction,\n itemActionsDocumentPopover = true\n}",
7515
8818
  "type": {
7516
8819
  "text": "RenderOverlayContentArgs"
7517
8820
  }