@luzmo/analytics-components-kit 1.0.9-beta.7 → 1.0.9-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ai-chat/ai-chat-events.d.ts +139 -0
- package/components/ai-chat/ai-chat-request.d.ts +25 -0
- package/components/ai-chat/ai-chat.d.ts +356 -0
- package/components/ai-chat/ai-prompt-types.d.ts +133 -0
- package/components/ai-chat/empty-state/ai-chat-empty-state.d.ts +53 -0
- package/components/ai-chat/empty-state/index.d.ts +8 -0
- package/components/ai-chat/empty-state/types.d.ts +14 -0
- package/components/ai-chat/helpers/agent-config.d.ts +12 -0
- package/components/ai-chat/helpers/elicitation-template.d.ts +20 -0
- package/components/ai-chat/index.d.ts +24 -0
- package/components/ai-chat/session/ai-chat-session-controller.d.ts +60 -0
- package/components/ai-chat/session/ai-chat-session-types.d.ts +119 -0
- package/components/ai-chat/session/ai-chat-session.d.ts +119 -0
- package/components/ai-chat/session/index.d.ts +2 -0
- package/components/ai-chat/stream/chunk-extractors.d.ts +29 -0
- package/components/ai-chat/stream/index.d.ts +53 -0
- package/components/ai-chat/stream/progress.d.ts +3 -0
- package/components/ai-chat/stream/registry.d.ts +6 -0
- package/components/ai-chat/stream/stream-processor.d.ts +2 -0
- package/components/ai-chat/stream/transport.d.ts +26 -0
- package/components/ai-chat/stream/types.d.ts +59 -0
- package/components/ai-chat/types.d.ts +24 -0
- package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +239 -0
- package/components/ai-interaction-textarea/index.d.ts +10 -0
- package/components/ai-interaction-textarea/types.d.ts +12 -0
- package/components/data-field/data-field.d.ts +31 -0
- package/components/data-field/index.d.ts +9 -0
- package/components/data-field/types.d.ts +4 -0
- package/components/data-field-level/data-field-level.d.ts +40 -0
- package/components/data-field-level/helpers/generate-preview.d.ts +9 -0
- package/components/data-field-level/index.d.ts +8 -0
- package/components/data-field-panel/data-field-panel.d.ts +231 -0
- package/components/data-field-panel/index.d.ts +9 -0
- package/components/data-field-panel/types.d.ts +27 -0
- package/components/data-fields-select/data-fields-select.d.ts +137 -0
- package/components/data-fields-select/index.d.ts +9 -0
- package/components/data-fields-select/types.d.ts +4 -0
- package/components/dataset-icon/dataset-icon.d.ts +45 -0
- package/components/dataset-icon/index.d.ts +8 -0
- package/components/dataset-icon/types.d.ts +11 -0
- package/components/dataset-selector-list/dataset-selector-list.d.ts +106 -0
- package/components/dataset-selector-list/index.d.ts +8 -0
- package/components/dataset-selector-row/dataset-selector-row.d.ts +144 -0
- package/components/dataset-selector-row/index.d.ts +9 -0
- package/components/display-settings/display-settings.d.ts +117 -0
- package/components/display-settings/index.d.ts +8 -0
- package/components/display-settings/types.d.ts +9 -0
- package/components/display-settings-binning/display-settings-binning.d.ts +32 -0
- package/components/display-settings-binning/index.d.ts +8 -0
- package/components/display-settings-datetime/display-settings-datetime.d.ts +86 -0
- package/components/display-settings-datetime/index.d.ts +8 -0
- package/components/display-settings-grand-totals/display-settings-grand-totals.d.ts +29 -0
- package/components/display-settings-grand-totals/index.d.ts +8 -0
- package/components/display-settings-numeric/display-settings-numeric.d.ts +82 -0
- package/components/display-settings-numeric/helpers/constants.d.ts +19 -0
- package/components/display-settings-numeric/index.d.ts +8 -0
- package/components/display-settings-period-over-period/display-settings-period-over-period.d.ts +76 -0
- package/components/display-settings-period-over-period/helpers/constants.d.ts +44 -0
- package/components/display-settings-period-over-period/index.d.ts +8 -0
- package/components/filter-expression-picker/filter-expression-picker.d.ts +77 -0
- package/components/filter-expression-picker/index.d.ts +7 -0
- package/components/filter-item/filter-item.d.ts +142 -0
- package/components/filter-item/index.d.ts +8 -0
- package/components/filter-parameter-picker/filter-parameter-picker.d.ts +91 -0
- package/components/filter-parameter-picker/filter-parameter-picker.helpers.d.ts +8 -0
- package/components/filter-parameter-picker/index.d.ts +9 -0
- package/components/filter-parameter-picker/types.d.ts +4 -0
- package/components/filter-value-picker/filter-value-picker.d.ts +72 -0
- package/components/filter-value-picker/index.d.ts +7 -0
- package/components/filter-value-picker-datetime/filter-value-picker-datetime.d.ts +51 -0
- package/components/filter-value-picker-datetime/index.d.ts +7 -0
- package/components/filter-value-picker-hierarchy/filter-value-picker-hierarchy.d.ts +105 -0
- package/components/filter-value-picker-hierarchy/index.d.ts +7 -0
- package/components/filter-value-picker-numeric/filter-value-picker-numeric.d.ts +89 -0
- package/components/filter-value-picker-numeric/index.d.ts +7 -0
- package/components/filters/filters.d.ts +182 -0
- package/components/filters/index.d.ts +12 -0
- package/components/filters/transformations/clean-filters.d.ts +37 -0
- package/components/filters/transformations/filter-format.d.ts +54 -0
- package/components/filters/transformations/transform-filters.d.ts +52 -0
- package/components/filters/types.d.ts +65 -0
- package/components/formula/formula.d.ts +66 -0
- package/components/formula/index.d.ts +7 -0
- package/components/formula-codemirror/formula-codemirror.d.ts +79 -0
- package/components/formula-codemirror/index.d.ts +7 -0
- package/components/formula-codemirror/pills/formula-aggregation/formula-aggregation.d.ts +125 -0
- package/components/formula-codemirror/pills/formula-aggregation/index.d.ts +7 -0
- package/components/formula-codemirror/pills/formula-empty-argument-pill/formula-empty-argument-pill.d.ts +28 -0
- package/components/formula-codemirror/pills/formula-empty-argument-pill/index.d.ts +7 -0
- package/components/formula-codemirror/pills/formula-include-exclude-panel.d.ts +38 -0
- package/components/formula-draggable-field/formula-draggable-field.d.ts +53 -0
- package/components/formula-draggable-field/index.d.ts +8 -0
- package/components/formula-draggable-field/types.d.ts +24 -0
- package/components/formula-editor/formula-aggregations-list.d.ts +21 -0
- package/components/formula-editor/formula-datasets-list.d.ts +37 -0
- package/components/formula-editor/formula-description.d.ts +17 -0
- package/components/formula-editor/formula-editor.d.ts +85 -0
- package/components/formula-editor/formula-functions-list.d.ts +28 -0
- package/components/formula-editor/index.d.ts +12 -0
- package/components/formula-field/formula-field.d.ts +20 -0
- package/components/formula-field/index.d.ts +7 -0
- package/components/interactive-viz-item/helpers/chart-helpers.d.ts +7 -0
- package/components/interactive-viz-item/index.d.ts +10 -0
- package/components/interactive-viz-item/interactive-viz-item.d.ts +97 -0
- package/components/interactive-viz-item/load-config-panel.d.ts +2 -0
- package/components/interactive-viz-item/types.d.ts +117 -0
- package/components/item-grid/actions.d.ts +3 -0
- package/components/item-grid/helpers/grid-effects.d.ts +1 -0
- package/components/item-grid/helpers/grid-events.d.ts +56 -0
- package/components/item-grid/helpers/grid-interactions.d.ts +88 -0
- package/components/item-grid/helpers/grid-item-management.d.ts +30 -0
- package/components/item-grid/helpers/grid-item-popover.d.ts +21 -0
- package/components/item-grid/helpers/grid-items.d.ts +9 -0
- package/components/item-grid/helpers/grid-keyboard-updates.d.ts +18 -0
- package/components/item-grid/helpers/grid-keydown-event.d.ts +18 -0
- package/components/item-grid/helpers/grid-popover-cleanup.d.ts +4 -0
- package/components/item-grid/helpers/grid-rendering.d.ts +69 -0
- package/components/item-grid/helpers/grid-stack-lifecycle.d.ts +26 -0
- package/components/item-grid/helpers/grid-theme.d.ts +16 -0
- package/components/item-grid/helpers/grid-update-cycle.d.ts +22 -0
- package/components/item-grid/index.d.ts +12 -0
- package/components/item-grid/item-grid-item-actions-menu.d.ts +35 -0
- package/components/item-grid/item-grid.d.ts +251 -0
- package/components/item-grid/types.d.ts +57 -0
- package/components/item-menu/item-list/item-list.d.ts +37 -0
- package/components/item-option/helpers/control-markup.d.ts +14 -0
- package/components/item-option/helpers/control-templates/action-button-group-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/color-palette-picker-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/color-picker-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/color-range-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/guidelines-template.d.ts +3 -0
- package/components/item-option/helpers/control-templates/multi-language-field-template.d.ts +8 -0
- package/components/item-option/helpers/control-templates/number-field-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/picker-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/position-picker-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/positions-number-field-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/radio-button-group.d.ts +2 -0
- package/components/item-option/helpers/control-templates/slider-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/switch-template.d.ts +2 -0
- package/components/item-option/helpers/control-templates/text-field-template.d.ts +7 -0
- package/components/item-option/helpers/enum-values.d.ts +7 -0
- package/components/item-option/helpers/generate-callback.d.ts +1 -0
- package/components/item-option/helpers/get-control-by-key.d.ts +1 -0
- package/components/item-option/helpers/get-default-value.d.ts +1 -0
- package/components/item-option/helpers/get-enum-values.d.ts +1 -0
- package/components/item-option/helpers/get-extra-label-values.d.ts +7 -0
- package/components/item-option/helpers/get-value-by-key.d.ts +1 -0
- package/components/item-option/index.d.ts +8 -0
- package/components/item-option/item-option.d.ts +59 -0
- package/components/item-option/types.d.ts +8 -0
- package/components/item-option-action-button-group/index.d.ts +8 -0
- package/components/item-option-action-button-group/item-option-action-button-group.d.ts +36 -0
- package/components/item-option-base/item-option-base.d.ts +23 -0
- package/components/item-option-color-palette-picker/index.d.ts +8 -0
- package/components/item-option-color-palette-picker/item-option-color-palette-picker.d.ts +46 -0
- package/components/item-option-color-picker/index.d.ts +8 -0
- package/components/item-option-color-picker/item-option-color-picker.d.ts +33 -0
- package/components/item-option-color-range/index.d.ts +8 -0
- package/components/item-option-color-range/item-option-color-range.d.ts +99 -0
- package/components/item-option-guidelines/helpers/guidelines-value.d.ts +12 -0
- package/components/item-option-guidelines/index.d.ts +10 -0
- package/components/item-option-guidelines/item-option-guidelines.d.ts +74 -0
- package/components/item-option-guidelines/types.d.ts +25 -0
- package/components/item-option-multi-language-field/index.d.ts +8 -0
- package/components/item-option-multi-language-field/item-option-multi-language-field.d.ts +30 -0
- package/components/item-option-number-field/index.d.ts +8 -0
- package/components/item-option-number-field/item-option-number-field.d.ts +38 -0
- package/components/item-option-panel/index.d.ts +8 -0
- package/components/item-option-panel/item-option-panel.d.ts +77 -0
- package/components/item-option-picker/index.d.ts +8 -0
- package/components/item-option-picker/item-option-picker.d.ts +29 -0
- package/components/item-option-position-picker/index.d.ts +8 -0
- package/components/item-option-position-picker/item-option-position-picker.d.ts +22 -0
- package/components/item-option-positions-number-field/index.d.ts +8 -0
- package/components/item-option-positions-number-field/item-option-positions-number-field.d.ts +44 -0
- package/components/item-option-radio-button-group/index.d.ts +8 -0
- package/components/item-option-radio-button-group/item-option-radio-button-group.d.ts +29 -0
- package/components/item-option-slider/index.d.ts +8 -0
- package/components/item-option-slider/item-option-slider.d.ts +33 -0
- package/components/item-option-switch/index.d.ts +8 -0
- package/components/item-option-switch/item-option-switch.d.ts +19 -0
- package/components/item-option-text-field/index.d.ts +8 -0
- package/components/item-option-text-field/item-option-text-field.d.ts +25 -0
- package/components/item-slot-drop/index.d.ts +11 -0
- package/components/item-slot-drop/item-slot-drop.d.ts +113 -0
- package/components/item-slot-drop/types.d.ts +5 -0
- package/components/item-slot-drop-panel/index.d.ts +8 -0
- package/components/item-slot-drop-panel/item-slot-drop-panel.d.ts +180 -0
- package/components/item-slot-picker/index.d.ts +8 -0
- package/components/item-slot-picker/item-slot-picker.d.ts +149 -0
- package/components/item-slot-picker-panel/index.d.ts +9 -0
- package/components/item-slot-picker-panel/item-slot-picker-panel.d.ts +230 -0
- package/components/slot-menu/index.d.ts +10 -0
- package/components/slot-menu/slot-menu.d.ts +148 -0
- package/components/slot-menu/types.d.ts +24 -0
- package/components/slot-menu-list/index.d.ts +8 -0
- package/components/slot-menu-list/slot-menu-list.d.ts +47 -0
- package/components/viz-item-menu/index.d.ts +8 -0
- package/components/viz-item-menu/types.d.ts +9 -0
- package/components/viz-item-menu/viz-item-menu.d.ts +85 -0
- package/package.json +1 -1
- package/react/package.json +2 -2
- package/angular/README.md +0 -40
- package/angular/components/ai-chat-empty-state.ts +0 -105
- package/angular/components/ai-chat.ts +0 -447
- package/angular/components/ai-interaction-textarea.ts +0 -290
- package/angular/components/data-field-level.ts +0 -130
- package/angular/components/data-field-panel.ts +0 -256
- package/angular/components/data-field.ts +0 -130
- package/angular/components/data-fields-select.ts +0 -226
- package/angular/components/dataset-icon.ts +0 -83
- package/angular/components/dataset-selector-list.ts +0 -147
- package/angular/components/dataset-selector-row.ts +0 -205
- package/angular/components/display-settings-binning.ts +0 -92
- package/angular/components/display-settings-datetime.ts +0 -100
- package/angular/components/display-settings-grand-totals.ts +0 -92
- package/angular/components/display-settings-numeric.ts +0 -113
- package/angular/components/display-settings-period-over-period.ts +0 -121
- package/angular/components/display-settings.ts +0 -227
- package/angular/components/filter-expression-picker.ts +0 -168
- package/angular/components/filter-item.ts +0 -207
- package/angular/components/filter-parameter-picker.ts +0 -155
- package/angular/components/filter-value-picker-datetime.ts +0 -125
- package/angular/components/filter-value-picker-hierarchy.ts +0 -146
- package/angular/components/filter-value-picker-numeric.ts +0 -146
- package/angular/components/filter-value-picker.ts +0 -160
- package/angular/components/filters.ts +0 -241
- package/angular/components/formula-editor.ts +0 -229
- package/angular/components/formula-field.ts +0 -198
- package/angular/components/formula.ts +0 -170
- package/angular/components/interactive-viz-item.ts +0 -186
- package/angular/components/item-grid-item-actions-menu.ts +0 -113
- package/angular/components/item-grid.ts +0 -242
- package/angular/components/item-option-action-button-group.ts +0 -105
- package/angular/components/item-option-color-palette-picker.ts +0 -126
- package/angular/components/item-option-color-picker.ts +0 -134
- package/angular/components/item-option-color-range.ts +0 -168
- package/angular/components/item-option-guidelines.ts +0 -84
- package/angular/components/item-option-multi-language-field.ts +0 -133
- package/angular/components/item-option-number-field.ts +0 -161
- package/angular/components/item-option-panel.ts +0 -149
- package/angular/components/item-option-picker.ts +0 -120
- package/angular/components/item-option-position-picker.ts +0 -98
- package/angular/components/item-option-positions-number-field.ts +0 -140
- package/angular/components/item-option-radio-button-group.ts +0 -119
- package/angular/components/item-option-slider.ts +0 -126
- package/angular/components/item-option-switch.ts +0 -98
- package/angular/components/item-option-text-field.ts +0 -112
- package/angular/components/item-option.ts +0 -163
- package/angular/components/item-slot-drop-panel.ts +0 -236
- package/angular/components/item-slot-drop.ts +0 -231
- package/angular/components/item-slot-picker-panel.ts +0 -299
- package/angular/components/item-slot-picker.ts +0 -241
- package/angular/components/slot-menu-list.ts +0 -121
- package/angular/components/slot-menu.ts +0 -304
- package/angular/components/viz-item-menu.ts +0 -118
- package/angular/esm/components/ai-chat-empty-state.d.ts +0 -41
- package/angular/esm/components/ai-chat-empty-state.js +0 -107
- package/angular/esm/components/ai-chat.d.ts +0 -149
- package/angular/esm/components/ai-chat.js +0 -463
- package/angular/esm/components/ai-interaction-textarea.d.ts +0 -108
- package/angular/esm/components/ai-interaction-textarea.js +0 -313
- package/angular/esm/components/data-field-level.d.ts +0 -50
- package/angular/esm/components/data-field-level.js +0 -129
- package/angular/esm/components/data-field-panel.d.ts +0 -86
- package/angular/esm/components/data-field-panel.js +0 -268
- package/angular/esm/components/data-field.d.ts +0 -50
- package/angular/esm/components/data-field.js +0 -129
- package/angular/esm/components/data-fields-select.d.ts +0 -87
- package/angular/esm/components/data-fields-select.js +0 -243
- package/angular/esm/components/dataset-icon.d.ts +0 -34
- package/angular/esm/components/dataset-icon.js +0 -86
- package/angular/esm/components/dataset-selector-list.d.ts +0 -56
- package/angular/esm/components/dataset-selector-list.js +0 -155
- package/angular/esm/components/dataset-selector-row.d.ts +0 -72
- package/angular/esm/components/dataset-selector-row.js +0 -205
- package/angular/esm/components/display-settings-binning.d.ts +0 -37
- package/angular/esm/components/display-settings-binning.js +0 -91
- package/angular/esm/components/display-settings-datetime.d.ts +0 -40
- package/angular/esm/components/display-settings-datetime.js +0 -99
- package/angular/esm/components/display-settings-grand-totals.d.ts +0 -37
- package/angular/esm/components/display-settings-grand-totals.js +0 -91
- package/angular/esm/components/display-settings-numeric.d.ts +0 -45
- package/angular/esm/components/display-settings-numeric.js +0 -115
- package/angular/esm/components/display-settings-period-over-period.d.ts +0 -50
- package/angular/esm/components/display-settings-period-over-period.js +0 -123
- package/angular/esm/components/display-settings.d.ts +0 -83
- package/angular/esm/components/display-settings.js +0 -231
- package/angular/esm/components/filter-expression-picker.d.ts +0 -64
- package/angular/esm/components/filter-expression-picker.js +0 -179
- package/angular/esm/components/filter-item.d.ts +0 -74
- package/angular/esm/components/filter-item.js +0 -222
- package/angular/esm/components/filter-parameter-picker.d.ts +0 -56
- package/angular/esm/components/filter-parameter-picker.js +0 -151
- package/angular/esm/components/filter-value-picker-datetime.d.ts +0 -47
- package/angular/esm/components/filter-value-picker-datetime.js +0 -131
- package/angular/esm/components/filter-value-picker-hierarchy.d.ts +0 -53
- package/angular/esm/components/filter-value-picker-hierarchy.js +0 -155
- package/angular/esm/components/filter-value-picker-numeric.d.ts +0 -53
- package/angular/esm/components/filter-value-picker-numeric.js +0 -155
- package/angular/esm/components/filter-value-picker.d.ts +0 -57
- package/angular/esm/components/filter-value-picker.js +0 -171
- package/angular/esm/components/filters.d.ts +0 -85
- package/angular/esm/components/filters.js +0 -251
- package/angular/esm/components/formula-editor.d.ts +0 -78
- package/angular/esm/components/formula-editor.js +0 -236
- package/angular/esm/components/formula-field.d.ts +0 -70
- package/angular/esm/components/formula-field.js +0 -209
- package/angular/esm/components/formula.d.ts +0 -60
- package/angular/esm/components/formula.js +0 -177
- package/angular/esm/components/interactive-viz-item.d.ts +0 -63
- package/angular/esm/components/interactive-viz-item.js +0 -188
- package/angular/esm/components/item-grid-item-actions-menu.d.ts +0 -45
- package/angular/esm/components/item-grid-item-actions-menu.js +0 -115
- package/angular/esm/components/item-grid.d.ts +0 -80
- package/angular/esm/components/item-grid.js +0 -245
- package/angular/esm/components/item-option-action-button-group.d.ts +0 -41
- package/angular/esm/components/item-option-action-button-group.js +0 -107
- package/angular/esm/components/item-option-color-palette-picker.d.ts +0 -48
- package/angular/esm/components/item-option-color-palette-picker.js +0 -131
- package/angular/esm/components/item-option-color-picker.d.ts +0 -51
- package/angular/esm/components/item-option-color-picker.js +0 -139
- package/angular/esm/components/item-option-color-range.d.ts +0 -66
- package/angular/esm/components/item-option-color-range.js +0 -179
- package/angular/esm/components/item-option-guidelines.d.ts +0 -34
- package/angular/esm/components/item-option-guidelines.js +0 -83
- package/angular/esm/components/item-option-multi-language-field.d.ts +0 -50
- package/angular/esm/components/item-option-multi-language-field.js +0 -139
- package/angular/esm/components/item-option-number-field.d.ts +0 -58
- package/angular/esm/components/item-option-number-field.js +0 -171
- package/angular/esm/components/item-option-panel.d.ts +0 -54
- package/angular/esm/components/item-option-panel.js +0 -155
- package/angular/esm/components/item-option-picker.d.ts +0 -46
- package/angular/esm/components/item-option-picker.js +0 -123
- package/angular/esm/components/item-option-position-picker.d.ts +0 -39
- package/angular/esm/components/item-option-position-picker.js +0 -99
- package/angular/esm/components/item-option-positions-number-field.d.ts +0 -54
- package/angular/esm/components/item-option-positions-number-field.js +0 -147
- package/angular/esm/components/item-option-radio-button-group.d.ts +0 -45
- package/angular/esm/components/item-option-radio-button-group.js +0 -123
- package/angular/esm/components/item-option-slider.d.ts +0 -46
- package/angular/esm/components/item-option-slider.js +0 -131
- package/angular/esm/components/item-option-switch.d.ts +0 -40
- package/angular/esm/components/item-option-switch.js +0 -99
- package/angular/esm/components/item-option-text-field.d.ts +0 -44
- package/angular/esm/components/item-option-text-field.js +0 -115
- package/angular/esm/components/item-option.d.ts +0 -58
- package/angular/esm/components/item-option.js +0 -171
- package/angular/esm/components/item-slot-drop-panel.d.ts +0 -82
- package/angular/esm/components/item-slot-drop-panel.js +0 -249
- package/angular/esm/components/item-slot-drop.d.ts +0 -77
- package/angular/esm/components/item-slot-drop.js +0 -227
- package/angular/esm/components/item-slot-picker-panel.d.ts +0 -97
- package/angular/esm/components/item-slot-picker-panel.js +0 -309
- package/angular/esm/components/item-slot-picker.d.ts +0 -86
- package/angular/esm/components/item-slot-picker.js +0 -259
- package/angular/esm/components/slot-menu-list.d.ts +0 -46
- package/angular/esm/components/slot-menu-list.js +0 -123
- package/angular/esm/components/slot-menu.d.ts +0 -104
- package/angular/esm/components/slot-menu.js +0 -300
- package/angular/esm/components/viz-item-menu.d.ts +0 -42
- package/angular/esm/components/viz-item-menu.js +0 -111
- package/angular/esm/index.d.ts +0 -109
- package/angular/esm/index.js +0 -217
- package/angular/index.ts +0 -223
- package/angular/package.json +0 -40
- package/angular/tsconfig.json +0 -36
- package/angular/type-fallbacks.d.ts +0 -0
- package/angular/utils/ai-prompt/attachments.d.ts +0 -10
- package/angular/utils/ai-prompt/dictation.d.ts +0 -50
- package/angular/utils/ai-prompt/image-upload.d.ts +0 -12
- package/angular/utils/ai-prompt/index.d.ts +0 -6
- package/angular/utils/ai-prompt/tests/attachments.test.d.ts +0 -1
- package/angular/utils/ai-prompt/tests/dictation.test.d.ts +0 -1
- package/angular/utils/ai-prompt/tests/image-upload.test.d.ts +0 -1
- package/angular/utils/base/base.d.ts +0 -16
- package/angular/utils/base/focus-visible.d.ts +0 -29
- package/angular/utils/base/focusable.d.ts +0 -58
- package/angular/utils/base/index.d.ts +0 -5
- package/angular/utils/base/localized-mixin.d.ts +0 -22
- package/angular/utils/base/sized-mixin.d.ts +0 -17
- package/angular/utils/color/color-palettes.d.ts +0 -17
- package/angular/utils/color/extrapolate-color.d.ts +0 -1
- package/angular/utils/create-lazy-loader.d.ts +0 -5
- package/angular/utils/data/load-data-fields-for-datasets.d.ts +0 -22
- package/angular/utils/data-broker/index.d.ts +0 -263
- package/angular/utils/data-field-types/calculate-data-field-icon.d.ts +0 -12
- package/angular/utils/data-field-types/default-acceptable-data-field-types.d.ts +0 -1
- package/angular/utils/data-field-types/tests/calculate-data-field-icon.test.d.ts +0 -1
- package/angular/utils/drag/draggable.d.ts +0 -13
- package/angular/utils/drag/pragmatic-element-adapter.d.ts +0 -2
- package/angular/utils/drag/tests/pragmatic-element-adapter.first-import.test.d.ts +0 -1
- package/angular/utils/drag/tests/pragmatic-element-adapter.test.d.ts +0 -1
- package/angular/utils/filters/expressions.d.ts +0 -15
- package/angular/utils/filters/filter-text.d.ts +0 -64
- package/angular/utils/filters/index.d.ts +0 -2
- package/angular/utils/filters/presentation.d.ts +0 -4
- package/angular/utils/filters/tests/filter-text.test.d.ts +0 -1
- package/angular/utils/formatter/calculate-duration.d.ts +0 -2
- package/angular/utils/formatter/decompose-numeric-format.d.ts +0 -11
- package/angular/utils/formatter/default-local-formats.d.ts +0 -20
- package/angular/utils/formatter/formats/cs.d.ts +0 -20
- package/angular/utils/formatter/formats/da.d.ts +0 -20
- package/angular/utils/formatter/formats/de.d.ts +0 -21
- package/angular/utils/formatter/formats/en-GB.d.ts +0 -21
- package/angular/utils/formatter/formats/en-US.d.ts +0 -1
- package/angular/utils/formatter/formats/en.d.ts +0 -1
- package/angular/utils/formatter/formats/es.d.ts +0 -54
- package/angular/utils/formatter/formats/fi.d.ts +0 -20
- package/angular/utils/formatter/formats/fr.d.ts +0 -54
- package/angular/utils/formatter/formats/he.d.ts +0 -20
- package/angular/utils/formatter/formats/hu.d.ts +0 -20
- package/angular/utils/formatter/formats/it.d.ts +0 -54
- package/angular/utils/formatter/formats/ja.d.ts +0 -20
- package/angular/utils/formatter/formats/ko.d.ts +0 -20
- package/angular/utils/formatter/formats/mk.d.ts +0 -20
- package/angular/utils/formatter/formats/nl.d.ts +0 -21
- package/angular/utils/formatter/formats/no.d.ts +0 -21
- package/angular/utils/formatter/formats/pl.d.ts +0 -20
- package/angular/utils/formatter/formats/pt.d.ts +0 -20
- package/angular/utils/formatter/formats/ru.d.ts +0 -20
- package/angular/utils/formatter/formats/sv.d.ts +0 -20
- package/angular/utils/formatter/formats/tr.d.ts +0 -21
- package/angular/utils/formatter/formats/zh-CN.d.ts +0 -20
- package/angular/utils/formatter/formats/zh-TW.d.ts +0 -20
- package/angular/utils/formatter/formatter.d.ts +0 -9
- package/angular/utils/formatter/get-dataset-name.d.ts +0 -2
- package/angular/utils/formatter/get-localized-name.d.ts +0 -4
- package/angular/utils/formatter/localize.d.ts +0 -3
- package/angular/utils/formatter/localized-template.d.ts +0 -4
- package/angular/utils/formatter/smart-datetime-formats.const.d.ts +0 -36
- package/angular/utils/formatter/tests/calculate-duration.test.d.ts +0 -1
- package/angular/utils/formatter/tests/decompose-numeric-format.test.d.ts +0 -1
- package/angular/utils/formatter/tests/default-local-formats.test.d.ts +0 -1
- package/angular/utils/formatter/tests/formatter.test.d.ts +0 -1
- package/angular/utils/formatter/tests/get-localized-name.test.d.ts +0 -1
- package/angular/utils/formatter/tests/localize.test.d.ts +0 -1
- package/angular/utils/formatter/tests/localized-template.test.d.ts +0 -1
- package/angular/utils/formula/base/formula-base.d.ts +0 -117
- package/angular/utils/formula/base/formula-input-base.d.ts +0 -62
- package/angular/utils/formula/codemirror/actions.d.ts +0 -47
- package/angular/utils/formula/codemirror/drop-cursor.d.ts +0 -15
- package/angular/utils/formula/codemirror/icon-element.d.ts +0 -7
- package/angular/utils/formula/codemirror/parser.d.ts +0 -16
- package/angular/utils/formula/codemirror/tests/actions.test.d.ts +0 -1
- package/angular/utils/formula/codemirror/theme.d.ts +0 -20
- package/angular/utils/formula/codemirror/widget.d.ts +0 -18
- package/angular/utils/formula/config/aggregations.d.ts +0 -9
- package/angular/utils/formula/config/build-datasets.d.ts +0 -10
- package/angular/utils/formula/config/expression-helpers.d.ts +0 -42
- package/angular/utils/formula/config/functions.d.ts +0 -3
- package/angular/utils/formula/config/groupings.d.ts +0 -9
- package/angular/utils/formula/config/regex.d.ts +0 -39
- package/angular/utils/formula/config/resolve-column-presentation.d.ts +0 -19
- package/angular/utils/formula/config/tests/build-datasets.test.d.ts +0 -1
- package/angular/utils/formula/config/validate-expression.d.ts +0 -19
- package/angular/utils/formula/load-formula-codemirror.d.ts +0 -4
- package/angular/utils/formula/render-explanation-tooltip.d.ts +0 -7
- package/angular/utils/formula/store/formula-display-store.d.ts +0 -93
- package/angular/utils/formula/store/formula-editor-context.d.ts +0 -8
- package/angular/utils/formula/store/formula-editor-store.d.ts +0 -46
- package/angular/utils/formula/store/tests/formula-editor-store.test.d.ts +0 -1
- package/angular/utils/formula/tests/validate-expression.test.d.ts +0 -1
- package/angular/utils/get-css-variable.d.ts +0 -1
- package/angular/utils/index.d.ts +0 -10
- package/angular/utils/localize/set-locale.d.ts +0 -7
- package/angular/utils/map-tile-providers/index.d.ts +0 -93
- package/angular/utils/set-nested-value.d.ts +0 -6
- package/angular/utils/slot-content/ad-hoc-slot-content.d.ts +0 -7
- package/angular/utils/slot-content/render-calculation-label.d.ts +0 -7
- package/angular/utils/slot-content/tests/ad-hoc-slot-content.test.d.ts +0 -1
- package/angular/utils/slot-state/slot-context.d.ts +0 -4
- package/angular/utils/slot-state/slot-store.d.ts +0 -43
- package/angular/utils/slot-state/tests/slot-store.test.d.ts +0 -1
- package/angular/utils/store/base-store.d.ts +0 -158
- package/angular/utils/store/dashboard-store.d.ts +0 -49
- package/angular/utils/store/index.d.ts +0 -135
- package/angular/utils/store/item-store.d.ts +0 -33
- package/angular/utils/store/store-registry.d.ts +0 -170
- package/angular/utils/store/tests/dashboard-store.test.d.ts +0 -1
- package/angular/utils/store/tests/item-store.test.d.ts +0 -1
- package/angular/utils/store/tests/store-registry.test.d.ts +0 -1
- package/angular/utils/store/types.d.ts +0 -270
- package/angular/utils/switch-item/index.d.ts +0 -34
- package/angular/utils/switch-item/slot-role-classification.d.ts +0 -31
- package/angular/utils/switch-item/stories/switch-item.stories.d.ts +0 -17
- package/angular/utils/switch-item/tests/slot-role-classification.test.d.ts +0 -1
- package/angular/utils/switch-item/tests/switch-item.test.d.ts +0 -1
- package/angular/utils/tests/create-lazy-loader.test.d.ts +0 -1
- package/angular/utils/tests/set-nested-value.test.d.ts +0 -1
- package/angular/utils/themes/bliss.d.ts +0 -2
- package/angular/utils/themes/classic-dark.d.ts +0 -2
- package/angular/utils/themes/classic.d.ts +0 -2
- package/angular/utils/themes/default-dark.d.ts +0 -2
- package/angular/utils/themes/default.d.ts +0 -2
- package/angular/utils/themes/index.d.ts +0 -4
- package/angular/utils/themes/orion.d.ts +0 -2
- package/angular/utils/themes/pinky.d.ts +0 -2
- package/angular/utils/themes/radiant.d.ts +0 -2
- package/angular/utils/themes/royale.d.ts +0 -2
- package/angular/utils/themes/seasonal.d.ts +0 -2
- package/angular/utils/themes/urban.d.ts +0 -2
- package/angular/utils/themes/vivid.d.ts +0 -2
- package/angular/utils/time/formats.const.d.ts +0 -4
- package/angular/utils/time/period-over-period-condition.const.d.ts +0 -8
- package/angular/utils/time/periods.const.d.ts +0 -15
- package/angular/utils/timezone/datetime-timezone.d.ts +0 -25
- package/angular/utils/timezone/tests/datetime-timezone.test.d.ts +0 -1
- package/angular/utils/transformations/convert-data-field-to-slot-content.d.ts +0 -9
- package/angular/utils/transformations/convert-datasets-to-data-fields.d.ts +0 -30
- package/angular/utils/transformations/tests/convert-data-field-to-slot-content.test.d.ts +0 -1
- package/angular/utils/transformations/tests/convert-datasets-to-data-fields.test.d.ts +0 -1
- package/angular/utils/types/tests/type-check.test.d.ts +0 -1
- package/angular/utils/types/type-check.d.ts +0 -28
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import type { ProgressTreeNode } from '@luzmo/lucero/progress-steps';
|
|
2
|
+
import type { AiSampleChart, ChatMessage } from '../../types';
|
|
3
|
+
import type { AiPromptAgent, AiPromptCustomItemInput, DashboardStatePayload } from './ai-prompt-types';
|
|
4
|
+
/**
|
|
5
|
+
* Common fields present on every streamed step event, recognized or not.
|
|
6
|
+
*/
|
|
7
|
+
export interface AiChatStepBase {
|
|
8
|
+
/** The aiprompt agent that produced this step (`item`, `dashboard`, `analyst`, `custom-item`). */
|
|
9
|
+
agent: AiPromptAgent;
|
|
10
|
+
/** Current conversation id, or `null` before the backend assigns one. */
|
|
11
|
+
conversationId: string | null;
|
|
12
|
+
/** Backend message id, when the chunk carries one. */
|
|
13
|
+
messageId?: string;
|
|
14
|
+
/** Always present — the original stream chunk that produced this step. */
|
|
15
|
+
raw: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
/** Recognized stream-step type discriminants. */
|
|
18
|
+
export type AiChatRecognizedStepType = 'decision' | 'text' | 'progress' | 'dashboard-title' | 'dashboard-layout' | 'dashboard-item' | 'chart' | 'custom-item' | 'elicitation' | 'interrupt';
|
|
19
|
+
/**
|
|
20
|
+
* Stream steps assembled into a typed `data` payload.
|
|
21
|
+
* Discriminated by `type` (when `recognized` is `true`).
|
|
22
|
+
*/
|
|
23
|
+
export type RecognizedStepEvent = (AiChatStepBase & {
|
|
24
|
+
recognized: true;
|
|
25
|
+
type: 'decision';
|
|
26
|
+
data: {
|
|
27
|
+
decision: 'create' | 'edit' | 'question';
|
|
28
|
+
};
|
|
29
|
+
}) | (AiChatStepBase & {
|
|
30
|
+
recognized: true;
|
|
31
|
+
type: 'text';
|
|
32
|
+
data: {
|
|
33
|
+
delta: string;
|
|
34
|
+
text: string;
|
|
35
|
+
};
|
|
36
|
+
}) | (AiChatStepBase & {
|
|
37
|
+
recognized: true;
|
|
38
|
+
type: 'progress';
|
|
39
|
+
data: ProgressTreeNode;
|
|
40
|
+
}) | (AiChatStepBase & {
|
|
41
|
+
recognized: true;
|
|
42
|
+
type: 'dashboard-title';
|
|
43
|
+
data: {
|
|
44
|
+
name: Record<string, string>;
|
|
45
|
+
};
|
|
46
|
+
}) | (AiChatStepBase & {
|
|
47
|
+
recognized: true;
|
|
48
|
+
type: 'dashboard-layout';
|
|
49
|
+
data: DashboardStatePayload;
|
|
50
|
+
}) | (AiChatStepBase & {
|
|
51
|
+
recognized: true;
|
|
52
|
+
type: 'dashboard-item';
|
|
53
|
+
data: {
|
|
54
|
+
slot: number;
|
|
55
|
+
chart: Record<string, unknown>;
|
|
56
|
+
};
|
|
57
|
+
}) | (AiChatStepBase & {
|
|
58
|
+
recognized: true;
|
|
59
|
+
type: 'chart';
|
|
60
|
+
data: Record<string, unknown>;
|
|
61
|
+
}) | (AiChatStepBase & {
|
|
62
|
+
recognized: true;
|
|
63
|
+
type: 'custom-item';
|
|
64
|
+
data: AiPromptCustomItemInput['value'];
|
|
65
|
+
}) | (AiChatStepBase & {
|
|
66
|
+
recognized: true;
|
|
67
|
+
type: 'elicitation';
|
|
68
|
+
data: {
|
|
69
|
+
question: string;
|
|
70
|
+
options: string[];
|
|
71
|
+
};
|
|
72
|
+
}) | (AiChatStepBase & {
|
|
73
|
+
recognized: true;
|
|
74
|
+
type: 'interrupt';
|
|
75
|
+
data: {
|
|
76
|
+
question: string;
|
|
77
|
+
};
|
|
78
|
+
});
|
|
79
|
+
/**
|
|
80
|
+
* Stream steps not (yet) modeled. Still delivered so consumers never
|
|
81
|
+
* silently lose data; `data` is a best-effort payload (often identical to `raw`).
|
|
82
|
+
*/
|
|
83
|
+
export type UnknownStepEvent = AiChatStepBase & {
|
|
84
|
+
recognized: false;
|
|
85
|
+
/** Raw chunk `type` / `asset_type`. */
|
|
86
|
+
type: string;
|
|
87
|
+
/** Best-effort payload (often `=== raw`). */
|
|
88
|
+
data: unknown;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Open union of streamed step events. Use {@link isRecognizedStep} to narrow to
|
|
92
|
+
* the typed {@link RecognizedStepEvent} set; otherwise inspect `raw`.
|
|
93
|
+
*/
|
|
94
|
+
export type AiChatStepEvent = RecognizedStepEvent | UnknownStepEvent;
|
|
95
|
+
/**
|
|
96
|
+
* Authoritative final result of a streamed response, fired exactly once.
|
|
97
|
+
*/
|
|
98
|
+
export interface AiChatCompleteEvent {
|
|
99
|
+
/** The aiprompt agent that produced this result. */
|
|
100
|
+
agent: AiPromptAgent;
|
|
101
|
+
/** Conversation id for this response. */
|
|
102
|
+
conversationId: string | null;
|
|
103
|
+
/** Final assistant message (text + flags). */
|
|
104
|
+
message: ChatMessage;
|
|
105
|
+
/** Authoritative dashboard payload (dashboard agent). */
|
|
106
|
+
dashboard?: DashboardStatePayload;
|
|
107
|
+
/** Authoritative chart payload (item agent). */
|
|
108
|
+
chart?: AiSampleChart;
|
|
109
|
+
/**
|
|
110
|
+
* Updated custom item draft (custom-item agent), present only when the agent changed it.
|
|
111
|
+
* Carries the chart document under `document` plus validation results such as `ok`.
|
|
112
|
+
*/
|
|
113
|
+
customItem?: AiPromptCustomItemInput['value'];
|
|
114
|
+
/** Dashboard name keyed by locale (dashboard agent). */
|
|
115
|
+
name?: Record<string, string>;
|
|
116
|
+
/** Forward-compat: any final assets not modeled explicitly. */
|
|
117
|
+
assets?: Record<string, unknown>;
|
|
118
|
+
/** Present when the response failed. */
|
|
119
|
+
error?: unknown;
|
|
120
|
+
/** Original terminal chunk. */
|
|
121
|
+
raw?: Record<string, unknown>;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Type guard separating the typed, recognized step set from the open passthrough.
|
|
125
|
+
* Lets consumers `switch` exhaustively on `event.type` with fully narrowed `data`.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```ts
|
|
129
|
+
* onStep: (event) => {
|
|
130
|
+
* if (!isRecognizedStep(event)) return; // forward-compatible: ignore or use event.raw
|
|
131
|
+
* switch (event.type) {
|
|
132
|
+
* case 'decision':
|
|
133
|
+
* // event.data.decision is typed
|
|
134
|
+
* break;
|
|
135
|
+
* }
|
|
136
|
+
* };
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export declare function isRecognizedStep(event: AiChatStepEvent): event is RecognizedStepEvent;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { LuzmoChart } from '../../types';
|
|
2
|
+
import type { AiPromptAgent, AiPromptCreateBody, AiPromptDeleteBody, AiPromptProperties, AiPromptSavedAgentProperties, BuildAiPromptRequestContext } from './ai-prompt-types';
|
|
3
|
+
export type { AiPromptAgent, AiPromptBuiltInAgentProperties, AiPromptImageInput, AiPromptCreateBody, AiPromptDeleteBody, AiPromptInput, AiPromptItemTask, AiPromptProperties, AiPromptPropertiesBase, AiPromptSavedAgentProperties, AiPromptScreenMode, BuildAiPromptRequestContext, DashboardStatePayload, LuzmoDashboardGeneratedEventDetail, LuzmoPromptSubmittedEventDetail, LuzmoRestoreRequestedEventDetail } from './ai-prompt-types';
|
|
4
|
+
export { AI_PROMPT_ACCEPTED_IMAGE_MIME_TYPES, AI_PROMPT_MAX_ATTACHMENTS, assertValidAiPromptAttachmentFiles, assertValidAiPromptAttachmentUrls, isAiPromptAcceptedImageFile, isAiPromptAcceptedImageMimeType, isAiPromptAcceptedImageUrl } from '../../utils/ai-prompt';
|
|
5
|
+
export declare function getAiPromptUrl(apiUrl: string, apiVersion: string): string;
|
|
6
|
+
export declare function chartToItemAsset(chart: LuzmoChart): Record<string, unknown> | null;
|
|
7
|
+
export declare function buildItemAiPromptProperties(ctx: BuildAiPromptRequestContext): AiPromptProperties;
|
|
8
|
+
export declare function buildDashboardAiPromptProperties(ctx: BuildAiPromptRequestContext): AiPromptProperties;
|
|
9
|
+
export declare function buildAnalystAiPromptProperties(ctx: BuildAiPromptRequestContext): AiPromptProperties;
|
|
10
|
+
/**
|
|
11
|
+
* Properties for the custom-item agent, which authors custom chart code. It reads no datasets
|
|
12
|
+
* and replies in markdown, which the chat renders.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildCustomItemAiPromptProperties(ctx: BuildAiPromptRequestContext): AiPromptProperties;
|
|
15
|
+
/**
|
|
16
|
+
* Properties for a saved Agent run. The agent id resolves datasets, capabilities and theme
|
|
17
|
+
* server-side, so `agent` and `task` are deliberately absent: sending either alongside
|
|
18
|
+
* `agent_id` is a 400. Chart and dashboard context still travel: a saved Agent runs as the
|
|
19
|
+
* universal agent, whose planner reads `item` and `dashboard` entries out of the current
|
|
20
|
+
* input, so dropping them would blind it to what the host is showing.
|
|
21
|
+
*/
|
|
22
|
+
export declare function buildSavedAgentAiPromptProperties(agentId: string, ctx: BuildAiPromptRequestContext): AiPromptSavedAgentProperties;
|
|
23
|
+
export declare function buildAiPromptProperties(agent: AiPromptAgent, ctx: BuildAiPromptRequestContext): AiPromptProperties;
|
|
24
|
+
export declare function buildAiPromptRequest(agent: AiPromptAgent, ctx: BuildAiPromptRequestContext): AiPromptCreateBody;
|
|
25
|
+
export declare function buildAiPromptDeleteRequest(restoreToMessageId: string, authKey: string, authToken: string, apiVersion?: string, conversationId?: string | null): AiPromptDeleteBody;
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
import '@luzmo/lucero/button';
|
|
2
|
+
import '@luzmo/lucero/chat-message';
|
|
3
|
+
import '@luzmo/lucero/icon';
|
|
4
|
+
import '@luzmo/lucero/overlay';
|
|
5
|
+
import '@luzmo/lucero/popover';
|
|
6
|
+
import '@luzmo/lucero/progress-steps';
|
|
7
|
+
import { LuzmoElement } from '../../utils/base';
|
|
8
|
+
import { type PropertyValues, TemplateResult } from 'lit';
|
|
9
|
+
import type { ChatMessage, Dataset, LuzmoChart } from '../../types';
|
|
10
|
+
import '../ai-interaction-textarea';
|
|
11
|
+
import type { AiPromptAgent, AiPromptCustomItemInput, AiPromptItemTask, AiPromptScreenMode, DashboardStatePayload } from './ai-prompt-types';
|
|
12
|
+
import type { AiChatAgentConfig } from './types';
|
|
13
|
+
import './empty-state';
|
|
14
|
+
import type { AiChatEmptyStateSuggestion } from './empty-state';
|
|
15
|
+
import type { AiChatSession } from './session/ai-chat-session';
|
|
16
|
+
declare const LuzmoAiChat_base: typeof LuzmoElement & {
|
|
17
|
+
new (...args: any[]): import("../../utils/base/sized-mixin").SizedElementInterface;
|
|
18
|
+
prototype: import("../../utils/base/sized-mixin").SizedElementInterface;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* @customElement luzmo-ai-chat
|
|
22
|
+
* @summary AI chat UI backed by AiChatSession for transcript, datasets, and streaming.
|
|
23
|
+
* @description Chat state lives in an AiChatSession. By default the element creates an internal
|
|
24
|
+
* session from auth, agent, and chart or dashboard props; optional messages and selected-datasets
|
|
25
|
+
* seed it once on connect. Pass .chatSession for a host-owned session (e.g. dashboard editor).
|
|
26
|
+
* See {@link AiChatSession} / createAiChatSession for callbacks and external fetchStreaming.
|
|
27
|
+
* @fires {CustomEvent<AiChatStepEvent>} luzmo-step - Fired for every incremental, kit-assembled event during a streamed response (decision, text, progress, dashboard-title/layout/item, chart, custom-item, elicitation, interrupt, plus forward-by-default unrecognized chunks). Use `isRecognizedStep` to narrow.
|
|
28
|
+
* @fires {CustomEvent<AiChatCompleteEvent>} luzmo-complete - Fired exactly once per response with the authoritative final result (dashboard/chart/name/customItem) or an `error`.
|
|
29
|
+
* @fires {CustomEvent<AiChatMessageSentEventDetail>} luzmo-message-sent - Fired when a user sends a message
|
|
30
|
+
* @fires {CustomEvent<AiChatDatasetsChangedEventDetail>} luzmo-datasets-changed - Fired when the selected datasets change
|
|
31
|
+
* @fires {CustomEvent<AiChatConversationIdChangedEventDetail>} luzmo-conversation-id-changed - Fired when the conversation ID is updated from the API
|
|
32
|
+
* @fires {CustomEvent<AssistantMessageActionEventDetail>} luzmo-assistant-message-action - Fired when a built-in assistant message action is activated (after confirmation when `confirm` is set)
|
|
33
|
+
* @fires {CustomEvent<void>} luzmo-stop - Fired when an in-flight prompt is stopped
|
|
34
|
+
*
|
|
35
|
+
* @attr size - Size of the chat: `s`, `m` (default), `l` or `xl`. Scales messages, progress steps, questions, the empty state and the prompt input together.
|
|
36
|
+
*
|
|
37
|
+
* Custom actions beyond built-in `ChatMessage.actions` buttons can be projected via the
|
|
38
|
+
* `assistant-message-actions` light-DOM slot on the latest assistant message.
|
|
39
|
+
* @property {string} --luzmo-ai-chat-background - Background of the chat container
|
|
40
|
+
* @property {string} --luzmo-ai-chat-border-radius - Border radius of the chat container
|
|
41
|
+
* @property {string} --luzmo-ai-chat-padding - Padding of the chat container
|
|
42
|
+
* @property {string} --luzmo-ai-chat-gap - Gap between chat sections and messages
|
|
43
|
+
* @property {string} --luzmo-ai-chat-border - Border of the chat container
|
|
44
|
+
* @property {string} --luzmo-ai-chat-box-shadow - Box shadow of the chat container
|
|
45
|
+
* @property {string} --luzmo-ai-chat-scrollbar-width - Width of the messages scrollbar
|
|
46
|
+
* @property {string} --luzmo-ai-chat-scrollbar-track-background - Background of the messages scrollbar track
|
|
47
|
+
* @property {string} --luzmo-ai-chat-scrollbar-track-border-radius - Border radius of the messages scrollbar track
|
|
48
|
+
* @property {string} --luzmo-ai-chat-scrollbar-thumb-background - Background of the messages scrollbar thumb
|
|
49
|
+
* @property {string} --luzmo-ai-chat-scrollbar-thumb-border-radius - Border radius of the messages scrollbar thumb
|
|
50
|
+
* @property {string} --luzmo-ai-chat-scrollbar-thumb-hover-background - Hover background of the messages scrollbar thumb
|
|
51
|
+
* @property {string} --luzmo-ai-chat-loading-message-color - Color of the loading spinner icon
|
|
52
|
+
* @property {string} --luzmo-ai-chat-loading-message-icon-font-size - Font size of the loading spinner icon
|
|
53
|
+
* @property {string} --luzmo-ai-chat-error-message-color - Color of assistant error messages
|
|
54
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-size - Size of the assistant context menu trigger button
|
|
55
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-border-color - Border color of the context menu trigger button
|
|
56
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-border-radius - Border radius of the context menu trigger button
|
|
57
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-background - Background of the context menu trigger button
|
|
58
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-color - Icon color of the context menu trigger button
|
|
59
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-hover-background - Hover background of the context menu trigger button
|
|
60
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-hover-border-color - Hover border color of the context menu trigger button
|
|
61
|
+
* @property {string} --luzmo-ai-chat-context-menu-trigger-hover-color - Hover icon color of the context menu trigger button
|
|
62
|
+
* @property {string} --luzmo-ai-chat-context-menu-item-font-family - Font family of context menu items
|
|
63
|
+
* @property {string} --luzmo-ai-chat-context-menu-item-hover-background - Hover background of context menu items
|
|
64
|
+
* @property {string} --luzmo-ai-chat-markdown-line-height - Line height of rendered assistant markdown
|
|
65
|
+
* @property {string} --luzmo-ai-chat-markdown-spacing - Bottom spacing between markdown blocks (paragraphs, lists, tables, etc.)
|
|
66
|
+
* @property {string} --luzmo-ai-chat-markdown-heading-spacing - Top spacing above markdown headings (and `hr` margins)
|
|
67
|
+
* @property {string} --luzmo-ai-chat-markdown-heading-font-weight - Font weight of markdown headings
|
|
68
|
+
* @property {string} --luzmo-ai-chat-markdown-list-indent - Inline start padding (indent) of markdown lists
|
|
69
|
+
* @property {string} --luzmo-ai-chat-markdown-link-color - Color of links in markdown
|
|
70
|
+
* @property {string} --luzmo-ai-chat-markdown-code-font-family - Font family of inline and block code
|
|
71
|
+
* @property {string} --luzmo-ai-chat-markdown-code-font-size - Font size of inline and block code
|
|
72
|
+
* @property {string} --luzmo-ai-chat-markdown-code-background - Background of inline code and code blocks
|
|
73
|
+
* @property {string} --luzmo-ai-chat-markdown-code-border-radius - Border radius of inline code and code blocks
|
|
74
|
+
* @property {string} --luzmo-ai-chat-markdown-border-color - Border color for blockquotes, horizontal rules, and tables
|
|
75
|
+
* @property {string} --luzmo-ai-chat-markdown-table-header-background - Background of markdown table header cells
|
|
76
|
+
* @property {string} --luzmo-ai-chat-assistant-message-actions-gap - Gap between controls in the assistant message actions footer
|
|
77
|
+
* @property {string} --luzmo-ai-chat-assistant-message-actions-margin-top - Top spacing above the assistant message actions footer
|
|
78
|
+
* @property {string} --luzmo-ai-chat-assistant-message-actions-color - Text color for assistant message actions footer content (default: `--luzmo-font-color-extra-dimmed`)
|
|
79
|
+
* @property {string} --luzmo-ai-chat-assistant-message-actions-font-style - Font style for plain text in the assistant message actions footer (default: `italic`)
|
|
80
|
+
* @property {string} --luzmo-ai-chat-assistant-message-font-family - Font family shared by assistant messages and their actions footer
|
|
81
|
+
* @property {string} --luzmo-ai-chat-assistant-message-font-size - Font size shared by assistant messages (including streaming and loading) and their actions footer; defaults to the font size of the chat `size`
|
|
82
|
+
* @property {string} --luzmo-ai-chat-assistant-message-line-height - Line height shared by assistant messages and their actions footer
|
|
83
|
+
*/
|
|
84
|
+
export declare class LuzmoAiChat extends LuzmoAiChat_base {
|
|
85
|
+
static styles: import("lit").CSSResult;
|
|
86
|
+
static tagName: string;
|
|
87
|
+
/** Light-DOM slot for optional custom actions below the latest assistant message. */
|
|
88
|
+
static readonly assistantMessageActionsSlot = "assistant-message-actions";
|
|
89
|
+
/**
|
|
90
|
+
* Live transcript is {@link AiChatSessionState.messages}. This prop optionally seeds the session on first connect.
|
|
91
|
+
*/
|
|
92
|
+
messages: ChatMessage[];
|
|
93
|
+
/**
|
|
94
|
+
* Live selection is in the session. This prop optionally seeds on first connect.
|
|
95
|
+
*/
|
|
96
|
+
selectedDatasets: Dataset[];
|
|
97
|
+
/**
|
|
98
|
+
* Placeholder text for the textarea
|
|
99
|
+
*/
|
|
100
|
+
placeholder: string;
|
|
101
|
+
/**
|
|
102
|
+
* When true, disables the entire chat interface
|
|
103
|
+
*/
|
|
104
|
+
disabled: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* When true, shows a stop control on the prompt input while a response is generating
|
|
107
|
+
*/
|
|
108
|
+
stoppable: boolean;
|
|
109
|
+
/**
|
|
110
|
+
* When true, shows context menu (3 dots) on assistant messages
|
|
111
|
+
*/
|
|
112
|
+
showAssistantContextMenu: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Auth key for DataBroker authentication
|
|
115
|
+
*/
|
|
116
|
+
authKey: string;
|
|
117
|
+
/**
|
|
118
|
+
* Auth token for DataBroker authentication
|
|
119
|
+
*/
|
|
120
|
+
authToken: string;
|
|
121
|
+
/**
|
|
122
|
+
* API URL for DataBroker
|
|
123
|
+
* @default https://api.luzmo.com
|
|
124
|
+
*/
|
|
125
|
+
apiUrl: string;
|
|
126
|
+
/**
|
|
127
|
+
* The URL of the app server for thumbnails and assets
|
|
128
|
+
* @default https://app.luzmo.com
|
|
129
|
+
*/
|
|
130
|
+
appServer: string;
|
|
131
|
+
/** When true, shows public datasets alongside the user's other datasets. */
|
|
132
|
+
includePublicDatasets: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Alias for includePublicDatasets.
|
|
135
|
+
* @deprecated Use includePublicDatasets instead.
|
|
136
|
+
*/
|
|
137
|
+
get flagOpendata(): boolean;
|
|
138
|
+
set flagOpendata(value: boolean);
|
|
139
|
+
/**
|
|
140
|
+
* When true, hides the "+ Add dataset" button in the input
|
|
141
|
+
*/
|
|
142
|
+
hideDatasetButton: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* When true, hides dataset icons in the input dataset selector and @ mention dataset headers
|
|
145
|
+
*/
|
|
146
|
+
hideDatasetIcons: boolean;
|
|
147
|
+
/**
|
|
148
|
+
* When true, hides the add-dataset button and disables removing selected datasets while keeping pills visible
|
|
149
|
+
*/
|
|
150
|
+
disableDatasetModification: boolean;
|
|
151
|
+
/**
|
|
152
|
+
* When true, hides the dataset row and add-dataset button entirely
|
|
153
|
+
*/
|
|
154
|
+
hideSelectedDatasets: boolean;
|
|
155
|
+
/**
|
|
156
|
+
* When true, hides the Agents section in the input and runs prompts without a picked agent
|
|
157
|
+
*/
|
|
158
|
+
hideAgents: boolean;
|
|
159
|
+
/**
|
|
160
|
+
* When true, disables @ trigger mentions for dataset fields in the input
|
|
161
|
+
*/
|
|
162
|
+
disableColumnMentions: boolean;
|
|
163
|
+
/**
|
|
164
|
+
* When true, a picked agent or at least one selected dataset is required before the prompt can be submitted
|
|
165
|
+
*/
|
|
166
|
+
requireDataset: boolean;
|
|
167
|
+
/** Enables image attachments (PNG/JPEG/WebP/GIF). */
|
|
168
|
+
allowImages: boolean;
|
|
169
|
+
/** Enables mic dictation; audio is transcribed via `POST /aidictation` and inserted as editable text. */
|
|
170
|
+
allowVoiceInput: boolean;
|
|
171
|
+
/** Attachment MIME types/extensions. Defaults to PNG/JPEG/WebP/GIF when `allow-images` is set. */
|
|
172
|
+
acceptedFileTypes: string[];
|
|
173
|
+
/** Optional upload override; otherwise uploads via `POST /upload` on attach. */
|
|
174
|
+
uploadAttachments?: (files: File[], options?: {
|
|
175
|
+
signal?: AbortSignal;
|
|
176
|
+
}) => Promise<string[]>;
|
|
177
|
+
/**
|
|
178
|
+
* Which aiprompt agent to use (`item`, `dashboard`, `analyst` or `custom-item`). Determines request
|
|
179
|
+
* payload and stream handling. With `agent-id` set it no longer shapes the request payload, only stream handling.
|
|
180
|
+
* Custom-item hosts must set `hide-agents` and leave `agent-id` unset to preserve draft context
|
|
181
|
+
* and internal repair prompts.
|
|
182
|
+
* @default 'item'
|
|
183
|
+
*/
|
|
184
|
+
agent: AiPromptAgent;
|
|
185
|
+
/**
|
|
186
|
+
* Typed agent selection and context. Takes precedence over legacy agent, task and context properties.
|
|
187
|
+
* Omit context to preserve the same agent's session context; use null to clear it.
|
|
188
|
+
* Undefined leaves a host session's typed configuration intact and uses legacy properties for an internal session.
|
|
189
|
+
*/
|
|
190
|
+
agentConfig?: AiChatAgentConfig;
|
|
191
|
+
/**
|
|
192
|
+
* Saved Agent id (UUID) to run the prompt as. An agent picked in the prompt box takes precedence for that prompt.
|
|
193
|
+
*/
|
|
194
|
+
agentId?: string;
|
|
195
|
+
/**
|
|
196
|
+
* Task for the item agent (`generate`, `suggest`, `describe`). Ignored when `agent-id` is set.
|
|
197
|
+
* @default 'generate'
|
|
198
|
+
*/
|
|
199
|
+
task: AiPromptItemTask;
|
|
200
|
+
/**
|
|
201
|
+
* AI model preference for item agent chart generation
|
|
202
|
+
* @default 'performance'
|
|
203
|
+
*/
|
|
204
|
+
modelPreference: 'performance' | 'quality';
|
|
205
|
+
/**
|
|
206
|
+
* Host-owned {@link AiChatSession}. The component subscribes and renders; does not abort on disconnect.
|
|
207
|
+
*/
|
|
208
|
+
chatSession: AiChatSession | null;
|
|
209
|
+
/**
|
|
210
|
+
* Conversation ID (synced into the session; updated when the API returns a new id).
|
|
211
|
+
* @default null
|
|
212
|
+
*/
|
|
213
|
+
conversationId: string | null;
|
|
214
|
+
/**
|
|
215
|
+
* Chart context for `agent="item"`.
|
|
216
|
+
* @default null
|
|
217
|
+
*/
|
|
218
|
+
chart: LuzmoChart | null;
|
|
219
|
+
/**
|
|
220
|
+
* Dashboard context for `agent="dashboard"`.
|
|
221
|
+
* @default null
|
|
222
|
+
*/
|
|
223
|
+
dashboard: DashboardStatePayload | null;
|
|
224
|
+
/**
|
|
225
|
+
* Draft context for `agent="custom-item"`, sent as its `custom-item` input. The host owns the
|
|
226
|
+
* shape: the chart document under `document`, plus fields such as `chartId`.
|
|
227
|
+
* With a host `chatSession`, the default null preserves its draft. Once this element supplies
|
|
228
|
+
* a draft, setting this property to null clears the session's custom item context.
|
|
229
|
+
* @default null
|
|
230
|
+
*/
|
|
231
|
+
customItem: AiPromptCustomItemInput['value'] | null;
|
|
232
|
+
/**
|
|
233
|
+
* Current screen mode when editing a dashboard.
|
|
234
|
+
*/
|
|
235
|
+
currentScreenMode?: AiPromptScreenMode;
|
|
236
|
+
/**
|
|
237
|
+
* Locale ID sent to the aiprompt API.
|
|
238
|
+
*/
|
|
239
|
+
localeId?: string;
|
|
240
|
+
/**
|
|
241
|
+
* Timezone ID for dashboard agent requests.
|
|
242
|
+
* @default 'UTC'
|
|
243
|
+
*/
|
|
244
|
+
timezoneId: string;
|
|
245
|
+
/**
|
|
246
|
+
* API version
|
|
247
|
+
* @default '0.1.0'
|
|
248
|
+
*/
|
|
249
|
+
apiVersion: string;
|
|
250
|
+
/**
|
|
251
|
+
* When true, uses NDJSON streaming for AI responses.
|
|
252
|
+
* When false, uses a single JSON response.
|
|
253
|
+
* @default true
|
|
254
|
+
*/
|
|
255
|
+
stream: boolean;
|
|
256
|
+
/**
|
|
257
|
+
* Loading message shown while generating and before progress steps are available.
|
|
258
|
+
* @default null
|
|
259
|
+
*/
|
|
260
|
+
loadingMessage: string | null;
|
|
261
|
+
/**
|
|
262
|
+
* Message shown in place of the assistant reply when the user stops an in-flight response.
|
|
263
|
+
* Falls back to a localized default when not set.
|
|
264
|
+
* @default null
|
|
265
|
+
*/
|
|
266
|
+
cancelledMessage: string | null;
|
|
267
|
+
/**
|
|
268
|
+
* When set, auto-submits via the session without adding a duplicate user message
|
|
269
|
+
* (assumes the prompt is already in the transcript).
|
|
270
|
+
* @default null
|
|
271
|
+
*/
|
|
272
|
+
initialPrompt: string | null;
|
|
273
|
+
/**
|
|
274
|
+
* Title for the empty state when there are no messages.
|
|
275
|
+
*/
|
|
276
|
+
emptyStateTitle: string;
|
|
277
|
+
/**
|
|
278
|
+
* Optional label above empty-state suggestion chips. Only shown when `emptyStateSuggestions` is non-empty.
|
|
279
|
+
*/
|
|
280
|
+
emptyStateSubtitle: string;
|
|
281
|
+
/**
|
|
282
|
+
* Optional suggestion chips for the empty state. When empty, only the title is shown.
|
|
283
|
+
* Each entry may include `selectedDatasets` to pre-select datasets when the chip is activated.
|
|
284
|
+
*/
|
|
285
|
+
emptyStateSuggestions: AiChatEmptyStateSuggestion[];
|
|
286
|
+
private _textareaValue;
|
|
287
|
+
private _assistantMessageActionsSlotHasContent;
|
|
288
|
+
private _pendingAssistantMessageAction;
|
|
289
|
+
private _shouldFocusAssistantMessageActionConfirm;
|
|
290
|
+
private _lastProcessedInitialPrompt;
|
|
291
|
+
private readonly _session;
|
|
292
|
+
/** Active {@link AiChatSession} (host or auto-created). Null until first bind or action. */
|
|
293
|
+
get session(): AiChatSession | null;
|
|
294
|
+
private _getRenderState;
|
|
295
|
+
private _createDomBridgeCallbacks;
|
|
296
|
+
private get _pickedAgentId();
|
|
297
|
+
/** Assistant message action buttons sit one step below the chat size, like secondary controls elsewhere in the kit. */
|
|
298
|
+
private get _oneSizeSmaller();
|
|
299
|
+
private get _resolvedAcceptedFileTypes();
|
|
300
|
+
private _buildSessionConfig;
|
|
301
|
+
private _getAgentConfig;
|
|
302
|
+
private _emitConversationIdChanged;
|
|
303
|
+
private _restoreViaSession;
|
|
304
|
+
private _handleRestoreState;
|
|
305
|
+
private _handleDatasetSelected;
|
|
306
|
+
private _handleDatasetRemoved;
|
|
307
|
+
private _handleAgentSelected;
|
|
308
|
+
private _submitViaSession;
|
|
309
|
+
private _handlePromptSubmitted;
|
|
310
|
+
private _handlePromptStopped;
|
|
311
|
+
private _handleEmptyStateSuggestionSelected;
|
|
312
|
+
private _processInitialPrompt;
|
|
313
|
+
connectedCallback(): void;
|
|
314
|
+
disconnectedCallback(): void;
|
|
315
|
+
private _scrollToBottom;
|
|
316
|
+
protected willUpdate(changedProperties: PropertyValues): void;
|
|
317
|
+
protected updated(changedProperties: Map<string, unknown>): void;
|
|
318
|
+
private _syncSession;
|
|
319
|
+
private _handleInitialPromptChange;
|
|
320
|
+
/**
|
|
321
|
+
* Parses assistant markdown into HTML and sanitizes it to prevent XSS attacks
|
|
322
|
+
* while preserving safe formatting (headings, lists, tables, code, links).
|
|
323
|
+
* @param markdownContent - The markdown string returned by the assistant
|
|
324
|
+
* @returns Sanitized HTML string safe for rendering
|
|
325
|
+
*/
|
|
326
|
+
private _renderMarkdown;
|
|
327
|
+
private _renderProgress;
|
|
328
|
+
private _isLastAiMessageWithProgress;
|
|
329
|
+
private _syncAssistantMessageActionsVisibility;
|
|
330
|
+
private _handleAssistantMessageActionsSlotChange;
|
|
331
|
+
private _setAssistantMessageActionsSlotHasContent;
|
|
332
|
+
private _isLatestAssistantMessage;
|
|
333
|
+
private _hasBuiltInAssistantMessageActions;
|
|
334
|
+
private _assistantMessageActionsFooterHasContent;
|
|
335
|
+
private _syncPendingAssistantMessageAction;
|
|
336
|
+
private _getDefaultAssistantMessageActionConfirmMessage;
|
|
337
|
+
private _isAssistantMessageActionConfirming;
|
|
338
|
+
private _getPendingAssistantMessageAction;
|
|
339
|
+
private _handleAssistantMessageAction;
|
|
340
|
+
private _handleAssistantMessageActionClick;
|
|
341
|
+
private _cancelAssistantMessageActionConfirm;
|
|
342
|
+
private _confirmAssistantMessageAction;
|
|
343
|
+
private _handleAssistantMessageActionConfirmKeydown;
|
|
344
|
+
private _focusPendingAssistantMessageActionConfirm;
|
|
345
|
+
private _renderBuiltInAssistantMessageAction;
|
|
346
|
+
private _renderAssistantMessageActionConfirm;
|
|
347
|
+
private _renderAssistantMessageActions;
|
|
348
|
+
private _renderRestoreMenu;
|
|
349
|
+
private _renderMessages;
|
|
350
|
+
private _handleElicitationSubmit;
|
|
351
|
+
private _renderStreamingResponse;
|
|
352
|
+
private _renderLoadingMessage;
|
|
353
|
+
private _renderEmptyState;
|
|
354
|
+
protected render(): TemplateResult;
|
|
355
|
+
}
|
|
356
|
+
export {};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { PromptBoxAttachment } from '@luzmo/lucero';
|
|
2
|
+
import type { Dataset, LuzmoChart } from '../../types';
|
|
3
|
+
export type AiPromptAgent = 'item' | 'dashboard' | 'analyst' | 'custom-item';
|
|
4
|
+
export type AiPromptItemTask = 'generate' | 'suggest' | 'describe';
|
|
5
|
+
export type AiPromptScreenMode = 'desktop' | 'tablet' | 'mobile';
|
|
6
|
+
/** Dashboard payload for `agent: 'dashboard'` input (views, syncScreenModes, optional theme). */
|
|
7
|
+
export interface DashboardStatePayload {
|
|
8
|
+
views: unknown[];
|
|
9
|
+
syncScreenModes?: boolean;
|
|
10
|
+
theme?: Record<string, unknown>;
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
}
|
|
13
|
+
export interface AiPromptTextInput {
|
|
14
|
+
type: 'text';
|
|
15
|
+
text: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AiPromptDatasetInput {
|
|
18
|
+
type: 'dataset';
|
|
19
|
+
id: string;
|
|
20
|
+
}
|
|
21
|
+
export interface AiPromptItemInput {
|
|
22
|
+
type: 'item';
|
|
23
|
+
value: Record<string, unknown>;
|
|
24
|
+
}
|
|
25
|
+
export interface AiPromptDashboardInput {
|
|
26
|
+
type: 'dashboard';
|
|
27
|
+
value: DashboardStatePayload;
|
|
28
|
+
current_screen_mode?: AiPromptScreenMode;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Draft context for `agent: 'custom-item'`. The host owns its shape: the chart document under
|
|
32
|
+
* `document`, plus optional fields such as `chartId`, `isExample`, `hostTheme` and `previewFrame`.
|
|
33
|
+
*/
|
|
34
|
+
export interface AiPromptCustomItemInput {
|
|
35
|
+
type: 'custom-item';
|
|
36
|
+
value: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
export interface AiPromptImageInput {
|
|
39
|
+
type: 'image';
|
|
40
|
+
url: string;
|
|
41
|
+
}
|
|
42
|
+
export type AiPromptInput = AiPromptTextInput | AiPromptDatasetInput | AiPromptItemInput | AiPromptDashboardInput | AiPromptCustomItemInput | AiPromptImageInput;
|
|
43
|
+
/** Fields both aiprompt create shapes share, whichever agent selector is used. */
|
|
44
|
+
export interface AiPromptPropertiesBase {
|
|
45
|
+
conversation_id?: string;
|
|
46
|
+
locale_id?: string;
|
|
47
|
+
timezone_id?: string;
|
|
48
|
+
text_format?: 'plain' | 'markdown';
|
|
49
|
+
stream: boolean;
|
|
50
|
+
response_mode: 'mixed';
|
|
51
|
+
input: AiPromptInput[];
|
|
52
|
+
}
|
|
53
|
+
/** Built-in agent request: `agent` (plus `task`) selects the server-side behaviour. */
|
|
54
|
+
export interface AiPromptBuiltInAgentProperties extends AiPromptPropertiesBase {
|
|
55
|
+
agent: AiPromptAgent;
|
|
56
|
+
task: AiPromptItemTask | 'generate';
|
|
57
|
+
/** Hides the prompt from the restored transcript. Custom-item agent only. */
|
|
58
|
+
internal?: boolean;
|
|
59
|
+
agent_id?: never;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Saved Agent request: the agent id resolves datasets, capabilities and theme server-side.
|
|
63
|
+
* `agent_id` combined with `agent`, `task` or `capabilities` is a 400 — it is strictly one or the other.
|
|
64
|
+
*/
|
|
65
|
+
export interface AiPromptSavedAgentProperties extends AiPromptPropertiesBase {
|
|
66
|
+
agent_id: string;
|
|
67
|
+
agent?: never;
|
|
68
|
+
task?: never;
|
|
69
|
+
}
|
|
70
|
+
export type AiPromptProperties = AiPromptBuiltInAgentProperties | AiPromptSavedAgentProperties;
|
|
71
|
+
export interface AiPromptCreateBody {
|
|
72
|
+
key: string;
|
|
73
|
+
token: string;
|
|
74
|
+
action: 'create';
|
|
75
|
+
version: string;
|
|
76
|
+
properties: AiPromptProperties;
|
|
77
|
+
}
|
|
78
|
+
export interface AiPromptDeleteBody {
|
|
79
|
+
key: string;
|
|
80
|
+
token: string;
|
|
81
|
+
action: 'delete';
|
|
82
|
+
version: string;
|
|
83
|
+
properties: {
|
|
84
|
+
agent: 'item';
|
|
85
|
+
restore_to_message_id: string;
|
|
86
|
+
conversation_id?: string;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
export interface BuildAiPromptRequestContext {
|
|
90
|
+
prompt: string;
|
|
91
|
+
datasetIds: string[];
|
|
92
|
+
authKey: string;
|
|
93
|
+
authToken: string;
|
|
94
|
+
conversationId: string | null;
|
|
95
|
+
agentId?: string;
|
|
96
|
+
apiVersion?: string;
|
|
97
|
+
stream?: boolean;
|
|
98
|
+
localeId?: string;
|
|
99
|
+
timezoneId?: string;
|
|
100
|
+
/** Session/UI preference only; not serialized on aiprompt create until the backend supports it. */
|
|
101
|
+
modelPreference?: 'performance' | 'quality';
|
|
102
|
+
chart?: LuzmoChart | null;
|
|
103
|
+
dashboard?: DashboardStatePayload | null;
|
|
104
|
+
/** Draft context for `agent: 'custom-item'`. */
|
|
105
|
+
customItem?: AiPromptCustomItemInput['value'] | null;
|
|
106
|
+
currentScreenMode?: AiPromptScreenMode;
|
|
107
|
+
task?: AiPromptItemTask;
|
|
108
|
+
attachmentUrls?: string[];
|
|
109
|
+
/** Sends `internal: true` so the prompt stays out of the restored transcript (custom-item agent only). */
|
|
110
|
+
internal?: boolean;
|
|
111
|
+
}
|
|
112
|
+
export interface LuzmoPromptSubmittedEventDetail {
|
|
113
|
+
prompt: string;
|
|
114
|
+
selectedDatasets: Dataset[];
|
|
115
|
+
datasetIds: string[];
|
|
116
|
+
agent: AiPromptAgent;
|
|
117
|
+
request: AiPromptCreateBody;
|
|
118
|
+
url: string;
|
|
119
|
+
signal?: AbortSignal;
|
|
120
|
+
attachments?: PromptBoxAttachment[];
|
|
121
|
+
attachmentUrls?: string[];
|
|
122
|
+
}
|
|
123
|
+
export interface LuzmoRestoreRequestedEventDetail {
|
|
124
|
+
apiMessageId: string;
|
|
125
|
+
messageIndex: number;
|
|
126
|
+
request: AiPromptDeleteBody;
|
|
127
|
+
url: string;
|
|
128
|
+
}
|
|
129
|
+
export interface LuzmoDashboardGeneratedEventDetail {
|
|
130
|
+
dashboard: DashboardStatePayload;
|
|
131
|
+
conversationId: string | null;
|
|
132
|
+
name?: Record<string, string>;
|
|
133
|
+
}
|