@iota-uz/sdk 0.20.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat-ui/PHOSPHOR-LICENSE +21 -0
- package/dist/chat-ui/animations/index.d.ts +4 -0
- package/dist/chat-ui/animations/variants.d.ts +322 -0
- package/dist/chat-ui/api/csrf.d.ts +20 -0
- package/dist/chat-ui/components/ActivityTrace.d.ts +12 -0
- package/dist/chat-ui/components/Alert.d.ts +13 -0
- package/dist/chat-ui/components/AllChatsList.d.ts +9 -0
- package/dist/chat-ui/components/ArchiveBanner.d.ts +9 -0
- package/dist/chat-ui/components/ArchivedChatList.d.ts +12 -0
- package/dist/chat-ui/components/AssistantMessage.d.ts +149 -0
- package/dist/chat-ui/components/AssistantTurnView.d.ts +25 -0
- package/dist/chat-ui/components/AttachmentGrid.d.ts +19 -0
- package/dist/chat-ui/components/AttachmentPreview.d.ts +14 -0
- package/dist/chat-ui/components/AttachmentUpload.d.ts +14 -0
- package/dist/chat-ui/components/AvatarStack.d.ts +21 -0
- package/dist/chat-ui/components/BiChatLayout.d.ts +19 -0
- package/dist/chat-ui/components/ChartCard.d.ts +17 -0
- package/dist/chat-ui/components/ChatHeader.d.ts +31 -0
- package/dist/chat-ui/components/ChatSession.d.ts +51 -0
- package/dist/chat-ui/components/CodeBlock.d.ts +26 -0
- package/dist/chat-ui/components/CodeOutputsPanel.d.ts +8 -0
- package/dist/chat-ui/components/CompactionDoodle.d.ts +7 -0
- package/dist/chat-ui/components/ConfirmModal.d.ts +23 -0
- package/dist/chat-ui/components/ConfirmationStep.d.ts +13 -0
- package/dist/chat-ui/components/DataTableCell.d.ts +11 -0
- package/dist/chat-ui/components/DataTableFooter.d.ts +9 -0
- package/dist/chat-ui/components/DataTableHeader.d.ts +15 -0
- package/dist/chat-ui/components/DataTableToolbar.d.ts +17 -0
- package/dist/chat-ui/components/DateGroupHeader.d.ts +11 -0
- package/dist/chat-ui/components/DateSeparator.d.ts +6 -0
- package/dist/chat-ui/components/DebugPanel.d.ts +7 -0
- package/dist/chat-ui/components/DownloadCard.d.ts +7 -0
- package/dist/chat-ui/components/EditableText.d.ts +30 -0
- package/dist/chat-ui/components/EmptyState.d.ts +19 -0
- package/dist/chat-ui/components/ErrorBoundary.d.ts +23 -0
- package/dist/chat-ui/components/FullscreenOverlay.d.ts +9 -0
- package/dist/chat-ui/components/ImageModal.d.ts +13 -0
- package/dist/chat-ui/components/InlineDialog.d.ts +16 -0
- package/dist/chat-ui/components/InlineQuestionForm.d.ts +7 -0
- package/dist/chat-ui/components/InteractiveTableCard.d.ts +18 -0
- package/dist/chat-ui/components/LoadingSpinner.d.ts +11 -0
- package/dist/chat-ui/components/MarkdownRenderer.d.ts +13 -0
- package/dist/chat-ui/components/Menu.d.ts +29 -0
- package/dist/chat-ui/components/MessageActions.d.ts +17 -0
- package/dist/chat-ui/components/MessageInput.d.ts +39 -0
- package/dist/chat-ui/components/MessageList.d.ts +12 -0
- package/dist/chat-ui/components/MessageQueueList.d.ts +9 -0
- package/dist/chat-ui/components/ModelSelector.d.ts +2 -0
- package/dist/chat-ui/components/PermissionGuard.d.ts +47 -0
- package/dist/chat-ui/components/QuestionForm.d.ts +10 -0
- package/dist/chat-ui/components/QuestionStep.d.ts +15 -0
- package/dist/chat-ui/components/RetryActionArea.d.ts +7 -0
- package/dist/chat-ui/components/ScreenReaderAnnouncer.d.ts +22 -0
- package/dist/chat-ui/components/ScrollToBottomButton.d.ts +12 -0
- package/dist/chat-ui/components/SearchInput.d.ts +27 -0
- package/dist/chat-ui/components/SessionArtifactList.d.ts +9 -0
- package/dist/chat-ui/components/SessionArtifactPreview.d.ts +7 -0
- package/dist/chat-ui/components/SessionArtifactPreviewModal.d.ts +13 -0
- package/dist/chat-ui/components/SessionArtifactsPanel.d.ts +13 -0
- package/dist/chat-ui/components/SessionItem.d.ts +18 -0
- package/dist/chat-ui/components/SessionMembersModal.d.ts +10 -0
- package/dist/chat-ui/components/SessionSkeleton.d.ts +6 -0
- package/dist/chat-ui/components/Sidebar.d.ts +22 -0
- package/dist/chat-ui/components/Skeleton.d.ts +63 -0
- package/dist/chat-ui/components/SkipLink.d.ts +2 -0
- package/dist/chat-ui/components/SourcesPanel.d.ts +7 -0
- package/dist/chat-ui/components/StreamError.d.ts +15 -0
- package/dist/chat-ui/components/StreamingCursor.d.ts +4 -0
- package/dist/chat-ui/components/SystemMessage.d.ts +10 -0
- package/dist/chat-ui/components/TabBar.d.ts +15 -0
- package/dist/chat-ui/components/TabbedChartGroup.d.ts +6 -0
- package/dist/chat-ui/components/TabbedTableGroup.d.ts +8 -0
- package/dist/chat-ui/components/TableExportButton.d.ts +13 -0
- package/dist/chat-ui/components/TableWithExport.d.ts +15 -0
- package/dist/chat-ui/components/Toast.d.ts +15 -0
- package/dist/chat-ui/components/ToastContainer.d.ts +10 -0
- package/dist/chat-ui/components/TouchContextMenu.d.ts +18 -0
- package/dist/chat-ui/components/Transition.d.ts +11 -0
- package/dist/chat-ui/components/TurnBubble.d.ts +51 -0
- package/dist/chat-ui/components/TypingIndicator.d.ts +13 -0
- package/dist/chat-ui/components/UserAvatar.d.ts +21 -0
- package/dist/chat-ui/components/UserFilter.d.ts +12 -0
- package/dist/chat-ui/components/UserMessage.d.ts +86 -0
- package/dist/chat-ui/components/UserTurnView.d.ts +25 -0
- package/dist/chat-ui/components/WelcomeContent.d.ts +17 -0
- package/dist/chat-ui/config/ConfigContext.d.ts +61 -0
- package/dist/chat-ui/context/ChatContext.d.ts +42 -0
- package/dist/chat-ui/context/IotaContext.d.ts +21 -0
- package/dist/chat-ui/context/chatHelpers.d.ts +18 -0
- package/dist/chat-ui/context/externalSnapshot.d.ts +4 -0
- package/dist/chat-ui/data/ArtifactManager.d.ts +23 -0
- package/dist/chat-ui/data/AttachmentUploader.d.ts +25 -0
- package/dist/chat-ui/data/HttpDataSource.d.ts +109 -0
- package/dist/chat-ui/data/ManagedHttpDataSource.d.ts +26 -0
- package/dist/chat-ui/data/MessageTransport.d.ts +88 -0
- package/dist/chat-ui/data/SessionManager.d.ts +52 -0
- package/dist/chat-ui/data/applet-rpc.d.ts +29 -0
- package/dist/chat-ui/data/mappers.d.ts +33 -0
- package/dist/chat-ui/data/openManagedEventSource.d.ts +54 -0
- package/dist/chat-ui/data/rpc.generated.d.ts +421 -0
- package/dist/chat-ui/hooks/createHorizontalSwipe.d.ts +27 -0
- package/dist/chat-ui/hooks/createReducedMotion.d.ts +1 -0
- package/dist/chat-ui/hooks/useActiveRuns.d.ts +47 -0
- package/dist/chat-ui/hooks/useAttachments.d.ts +80 -0
- package/dist/chat-ui/hooks/useAutoScroll.d.ts +51 -0
- package/dist/chat-ui/hooks/useBichatRouter.d.ts +40 -0
- package/dist/chat-ui/hooks/useBranding.d.ts +16 -0
- package/dist/chat-ui/hooks/useDataTable.d.ts +54 -0
- package/dist/chat-ui/hooks/useFocusTrap.d.ts +17 -0
- package/dist/chat-ui/hooks/useHttpDataSourceConfigFromApplet.d.ts +19 -0
- package/dist/chat-ui/hooks/useImageGallery.d.ts +67 -0
- package/dist/chat-ui/hooks/useKeyboardShortcuts.d.ts +23 -0
- package/dist/chat-ui/hooks/useLongPress.d.ts +22 -0
- package/dist/chat-ui/hooks/useMarkdownCopy.d.ts +46 -0
- package/dist/chat-ui/hooks/useMessageActions.d.ts +53 -0
- package/dist/chat-ui/hooks/useMessageListScroll.d.ts +22 -0
- package/dist/chat-ui/hooks/useModalLock.d.ts +1 -0
- package/dist/chat-ui/hooks/useScrollToBottom.d.ts +22 -0
- package/dist/chat-ui/hooks/useSidebarState.d.ts +8 -0
- package/dist/chat-ui/hooks/useToast.d.ts +43 -0
- package/dist/chat-ui/hooks/useTranslation.d.ts +4 -0
- package/dist/chat-ui/icons/index.d.ts +93 -0
- package/dist/chat-ui/icons.js +975 -0
- package/dist/chat-ui/index.d.ts +122 -0
- package/dist/chat-ui/index.js +51821 -0
- package/dist/chat-ui/machine/ChatMachine.d.ts +191 -0
- package/dist/chat-ui/machine/hitlLifecycle.d.ts +7 -0
- package/dist/chat-ui/machine/index.d.ts +2 -0
- package/dist/chat-ui/machine/selectors.d.ts +5 -0
- package/dist/chat-ui/machine/types.d.ts +127 -0
- package/dist/chat-ui/styles.css +1 -0
- package/dist/chat-ui/theme/themes.d.ts +6 -0
- package/dist/chat-ui/theme/types.d.ts +38 -0
- package/dist/chat-ui/types/applet/index.d.ts +82 -0
- package/dist/chat-ui/types/data-source.d.ts +81 -0
- package/dist/chat-ui/types/index.d.ts +719 -0
- package/dist/chat-ui/types/iota.d.ts +76 -0
- package/dist/chat-ui/utils/RateLimiter.d.ts +28 -0
- package/dist/chat-ui/utils/activitySteps.d.ts +15 -0
- package/dist/chat-ui/utils/artifactHelpers.d.ts +7 -0
- package/dist/chat-ui/utils/assistantTurnState.d.ts +4 -0
- package/dist/chat-ui/utils/chartSpec.d.ts +15 -0
- package/dist/chat-ui/utils/citationProcessor.d.ts +38 -0
- package/dist/chat-ui/utils/columnTypes.d.ts +9 -0
- package/dist/chat-ui/utils/cssLength.d.ts +1 -0
- package/dist/chat-ui/utils/dateFormatting.d.ts +13 -0
- package/dist/chat-ui/utils/debugMetrics.d.ts +5 -0
- package/dist/chat-ui/utils/debugModeStorage.d.ts +2 -0
- package/dist/chat-ui/utils/debugTrace.d.ts +4 -0
- package/dist/chat-ui/utils/errorDisplay.d.ts +23 -0
- package/dist/chat-ui/utils/eventNames.d.ts +27 -0
- package/dist/chat-ui/utils/fileUtils.d.ts +48 -0
- package/dist/chat-ui/utils/markdownMath.d.ts +9 -0
- package/dist/chat-ui/utils/markdownStream.d.ts +8 -0
- package/dist/chat-ui/utils/questionFormUtils.d.ts +18 -0
- package/dist/chat-ui/utils/queueStorage.d.ts +4 -0
- package/dist/chat-ui/utils/reasoningEffortStorage.d.ts +3 -0
- package/dist/chat-ui/utils/sessionGrouping.d.ts +7 -0
- package/dist/chat-ui/utils/sseParser.d.ts +34 -0
- package/dist/chat-ui/utils/tableSpec.d.ts +6 -0
- package/dist/chat-ui/utils/textBlocks.d.ts +43 -0
- package/dist/chat-ui/utils/toolLabels.d.ts +17 -0
- package/dist/client-host/{applet.d.ts → bichat-config.d.ts} +2 -16
- package/dist/client-host/bichat-config.d.ts.map +1 -0
- package/dist/client-host/{applet.js → bichat-config.js} +0 -8
- package/dist/client-host/identity.d.ts +4 -4
- package/dist/client-host/identity.js +2 -2
- package/dist/client-host/index.d.ts +7 -4
- package/dist/client-host/index.d.ts.map +1 -1
- package/dist/client-host/index.js +7 -4
- package/dist/client-host/solid-index.d.ts +1 -0
- package/dist/client-host/solid-index.d.ts.map +1 -1
- package/dist/client-host/solid-index.js +1 -0
- package/dist/client-host/solid-streaming.d.ts.map +1 -1
- package/dist/lens/CascadePanel-BXaSLD9I.js +700 -0
- package/dist/lens/ChartDataEquivalent-Uo4RCCqz.js +92 -0
- package/dist/lens/ChartPanel-BYIblvtO.js +981 -0
- package/dist/lens/CoveragePanel-CBxW7l_N.js +195 -0
- package/dist/lens/DashboardPanels.d.ts +4 -1
- package/dist/lens/DashboardPanels.d.ts.map +1 -1
- package/dist/lens/GaugePanel-Gm3y4QBi.js +39 -0
- package/dist/lens/LensDashboard.d.ts +7 -2
- package/dist/lens/LensDashboard.d.ts.map +1 -1
- package/dist/lens/MapPanel-Fr67rBRo.js +256 -0
- package/dist/lens/MetricFlowPanel-DFGBh3hI.js +135 -0
- package/dist/lens/MetricHierarchyPanel-DKiQ8e3m.js +121 -0
- package/dist/lens/MetricRelationshipPanel-YC3Cg9Id.js +120 -0
- package/dist/lens/PrintReport-BPI_jNyw.js +1876 -0
- package/dist/lens/TablePanel-Bh8dWK4d.js +946 -0
- package/dist/lens/{adapter-BwEwcw2W.js → adapter-DIzUDxuh.js} +384 -384
- package/dist/lens/contract/schemas.d.ts.map +1 -1
- package/dist/lens/contract/types.d.ts +1 -1
- package/dist/lens/contract/types.d.ts.map +1 -1
- package/dist/lens/controls/Calendar.d.ts +1 -1
- package/dist/lens/controls/Calendar.d.ts.map +1 -1
- package/dist/lens/controls/CompareFilterControl.d.ts +2 -2
- package/dist/lens/controls/CompareFilterControl.d.ts.map +1 -1
- package/dist/lens/controls/FacetFilterMenu.d.ts +2 -2
- package/dist/lens/controls/FacetFilterMenu.d.ts.map +1 -1
- package/dist/lens/controls/FilterBar.d.ts +3 -3
- package/dist/lens/controls/FilterBar.d.ts.map +1 -1
- package/dist/lens/controls/PeriodFilterControl.d.ts +2 -1
- package/dist/lens/controls/PeriodFilterControl.d.ts.map +1 -1
- package/dist/lens/controls/SegmentedFilterControl.d.ts +2 -2
- package/dist/lens/controls/SegmentedFilterControl.d.ts.map +1 -1
- package/dist/lens/controls/facetOptions.d.ts +5 -5
- package/dist/lens/controls/facetOptions.d.ts.map +1 -1
- package/dist/lens/element.d.ts +1 -1
- package/dist/lens/element.d.ts.map +1 -1
- package/dist/lens/explore/ContextMiniChart.d.ts +2 -1
- package/dist/lens/explore/ContextMiniChart.d.ts.map +1 -1
- package/dist/lens/explore/DrillOverlay.d.ts +2 -1
- package/dist/lens/explore/DrillOverlay.d.ts.map +1 -1
- package/dist/lens/explore/ExplorePanel.d.ts +2 -1
- package/dist/lens/explore/ExplorePanel.d.ts.map +1 -1
- package/dist/lens/explore/FocusContextHeader.d.ts +2 -1
- package/dist/lens/explore/FocusContextHeader.d.ts.map +1 -1
- package/dist/lens/explore/LensSelector.d.ts +2 -1
- package/dist/lens/explore/LensSelector.d.ts.map +1 -1
- package/dist/lens/explore/SourceDataDisclosure.d.ts +3 -3
- package/dist/lens/explore/SourceDataDisclosure.d.ts.map +1 -1
- package/dist/lens/icons.d.ts +36 -35
- package/dist/lens/icons.d.ts.map +1 -1
- package/dist/lens/{index-B6anZ5Pr.js → index-2qUA4koZ.js} +1 -1
- package/dist/lens/index-DW4iQi93.js +13171 -0
- package/dist/lens/index.d.ts +3 -1
- package/dist/lens/index.d.ts.map +1 -1
- package/dist/lens/index.js +14 -9
- package/dist/lens/{install-D5OiGDnd.js → install-C-b2Bm4Y.js} +1 -1
- package/dist/lens/{install-CsNOaFxV.js → install-C7rGzRvO.js} +1 -1
- package/dist/lens/{install-CumkiUJn.js → install-Ce8R_Bl2.js} +1 -1
- package/dist/lens/{install-VEXJv-Wi.js → install-Czhlaw4u.js} +1 -1
- package/dist/lens/keys-BC7G1vyT.js +91 -0
- package/dist/lens/metricViews-DSoDe0GU.js +210 -0
- package/dist/lens/panels/CascadePanel.d.ts +1 -1
- package/dist/lens/panels/CascadePanel.d.ts.map +1 -1
- package/dist/lens/panels/ChartDataEquivalent.d.ts +1 -1
- package/dist/lens/panels/ChartDataEquivalent.d.ts.map +1 -1
- package/dist/lens/panels/ChartHost.d.ts +1 -1
- package/dist/lens/panels/ChartHost.d.ts.map +1 -1
- package/dist/lens/panels/ChartPanel.d.ts +2 -1
- package/dist/lens/panels/ChartPanel.d.ts.map +1 -1
- package/dist/lens/panels/CopyValueButton.d.ts +1 -1
- package/dist/lens/panels/CopyValueButton.d.ts.map +1 -1
- package/dist/lens/panels/CoveragePanel.d.ts +1 -1
- package/dist/lens/panels/CoveragePanel.d.ts.map +1 -1
- package/dist/lens/panels/ExportMenu.d.ts +1 -1
- package/dist/lens/panels/ExportMenu.d.ts.map +1 -1
- package/dist/lens/panels/GaugePanel.d.ts +1 -1
- package/dist/lens/panels/GaugePanel.d.ts.map +1 -1
- package/dist/lens/panels/InfoTip.d.ts +2 -1
- package/dist/lens/panels/InfoTip.d.ts.map +1 -1
- package/dist/lens/panels/MapPanel.d.ts +1 -1
- package/dist/lens/panels/MapPanel.d.ts.map +1 -1
- package/dist/lens/panels/MetricFlowPanel.d.ts +1 -1
- package/dist/lens/panels/MetricFlowPanel.d.ts.map +1 -1
- package/dist/lens/panels/MetricHierarchyPanel.d.ts +2 -1
- package/dist/lens/panels/MetricHierarchyPanel.d.ts.map +1 -1
- package/dist/lens/panels/MetricRelationshipPanel.d.ts +1 -1
- package/dist/lens/panels/MetricRelationshipPanel.d.ts.map +1 -1
- package/dist/lens/panels/PanelExportMenu.d.ts +2 -2
- package/dist/lens/panels/PanelExportMenu.d.ts.map +1 -1
- package/dist/lens/panels/PanelFrame.d.ts +6 -6
- package/dist/lens/panels/PanelFrame.d.ts.map +1 -1
- package/dist/lens/panels/PanelOverlay.d.ts +4 -4
- package/dist/lens/panels/PanelOverlay.d.ts.map +1 -1
- package/dist/lens/panels/QualityChip.d.ts +8 -4
- package/dist/lens/panels/QualityChip.d.ts.map +1 -1
- package/dist/lens/panels/ShareSliceButton.d.ts +1 -1
- package/dist/lens/panels/ShareSliceButton.d.ts.map +1 -1
- package/dist/lens/panels/Skeleton.d.ts +13 -13
- package/dist/lens/panels/Skeleton.d.ts.map +1 -1
- package/dist/lens/panels/StatPanel.d.ts +11 -11
- package/dist/lens/panels/StatPanel.d.ts.map +1 -1
- package/dist/lens/panels/StatValueTicker.d.ts +2 -2
- package/dist/lens/panels/StatValueTicker.d.ts.map +1 -1
- package/dist/lens/panels/TablePanel.d.ts +2 -1
- package/dist/lens/panels/TablePanel.d.ts.map +1 -1
- package/dist/lens/panels/WaterfallPlot.d.ts +3 -3
- package/dist/lens/panels/WaterfallPlot.d.ts.map +1 -1
- package/dist/lens/panels/actions.d.ts +16 -13
- package/dist/lens/panels/actions.d.ts.map +1 -1
- package/dist/lens/panels/context.d.ts +5 -5
- package/dist/lens/panels/context.d.ts.map +1 -1
- package/dist/lens/panels/focusTrap.d.ts +4 -0
- package/dist/lens/panels/focusTrap.d.ts.map +1 -0
- package/dist/lens/panels/overlayContainer.d.ts +18 -0
- package/dist/lens/panels/overlayContainer.d.ts.map +1 -0
- package/dist/lens/panels/registry.d.ts +23 -23
- package/dist/lens/panels/registry.d.ts.map +1 -1
- package/dist/lens/panels/useIsClamped.d.ts +2 -2
- package/dist/lens/panels/useIsClamped.d.ts.map +1 -1
- package/dist/lens/panels/useMenuButton.d.ts +21 -14
- package/dist/lens/panels/useMenuButton.d.ts.map +1 -1
- package/dist/lens/{prefetch-C_qYKOTU.js → prefetch-Caqfl7sC.js} +2 -2
- package/dist/lens/{prefetchPanels-CD4C-A5q.js → prefetchPanels-B-09akeK.js} +1 -1
- package/dist/lens/print/PrintReport.d.ts +4 -3
- package/dist/lens/print/PrintReport.d.ts.map +1 -1
- package/dist/lens/print/formula.d.ts +3 -2
- package/dist/lens/print/formula.d.ts.map +1 -1
- package/dist/lens/print/quality.d.ts +3 -2
- package/dist/lens/print/quality.d.ts.map +1 -1
- package/dist/lens/{print-Iu804kRb.js → print-CcDZyjFC.js} +1 -1
- package/dist/lens/reports/contract/schemas.d.ts +17 -0
- package/dist/lens/reports/contract/schemas.d.ts.map +1 -0
- package/dist/lens/reports/contract/types.d.ts +42 -0
- package/dist/lens/reports/contract/types.d.ts.map +1 -0
- package/dist/lens/reports/draft.d.ts +28 -0
- package/dist/lens/reports/draft.d.ts.map +1 -0
- package/dist/lens/runtime/drawer.d.ts +3 -3
- package/dist/lens/runtime/drawer.d.ts.map +1 -1
- package/dist/lens/runtime/overlayContainer.d.ts +2 -2
- package/dist/lens/runtime/overlayContainer.d.ts.map +1 -1
- package/dist/lens/runtime/provider.d.ts +23 -23
- package/dist/lens/runtime/provider.d.ts.map +1 -1
- package/dist/lens/{scales-CWTA0tSQ.js → scales-DOCY7Afr.js} +1 -1
- package/dist/lens/style.css +1 -1
- package/dist/sdk-identity.cjs +3 -3
- package/dist/sdk-identity.js +3 -3
- package/dist/sdk-identity.json +2 -2
- package/package.json +11 -10
- package/dist/client-host/applet.d.ts.map +0 -1
- package/dist/client-host/portals.d.ts +0 -30
- package/dist/client-host/portals.d.ts.map +0 -1
- package/dist/client-host/portals.js +0 -84
- package/dist/client-host/route.d.ts +0 -17
- package/dist/client-host/route.d.ts.map +0 -1
- package/dist/client-host/route.js +0 -19
- package/dist/client-host/rpc.d.ts +0 -15
- package/dist/client-host/rpc.d.ts.map +0 -1
- package/dist/client-host/rpc.js +0 -28
- package/dist/lens/CascadePanel-Sd2OKQx-.js +0 -574
- package/dist/lens/ChartDataEquivalent-DgCAb4Ov.js +0 -53
- package/dist/lens/ChartPanel-CiAahY9O.js +0 -709
- package/dist/lens/CoveragePanel-DeeKg8gF.js +0 -131
- package/dist/lens/GaugePanel-8rsf_XHS.js +0 -43
- package/dist/lens/MapPanel-Bq0mfVCB.js +0 -179
- package/dist/lens/MetricFlowPanel-ZBJqPFpc.js +0 -70
- package/dist/lens/MetricHierarchyPanel-DStGwvVU.js +0 -72
- package/dist/lens/MetricRelationshipPanel-D6ItmGCS.js +0 -54
- package/dist/lens/PrintReport-Dr-6xXVr.js +0 -1367
- package/dist/lens/TablePanel-CzLP8gG0.js +0 -619
- package/dist/lens/index-R9mnOHaj.js +0 -11000
- package/dist/lens/keys-6_gqLhcv.js +0 -78
- package/dist/lens/metricViews-De-9pff-.js +0 -170
- package/dist/lens/runtime/focusTrap.d.ts +0 -4
- package/dist/lens/runtime/focusTrap.d.ts.map +0 -1
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChatMachine — framework-agnostic state machine for BiChat.
|
|
3
|
+
*
|
|
4
|
+
* Owns all async logic that was previously in ChatContext.tsx:
|
|
5
|
+
* - Session fetch (with race-condition guards)
|
|
6
|
+
* - Message sending + streaming
|
|
7
|
+
* - Slash commands (/debug, /clear, /compact)
|
|
8
|
+
* - HITL question submission / rejection
|
|
9
|
+
* - Message queue (auto-drain)
|
|
10
|
+
* - Rate limiting
|
|
11
|
+
* - Abort / cancel
|
|
12
|
+
*
|
|
13
|
+
* Zero React dependency. Designed for `useSyncExternalStore`:
|
|
14
|
+
* three subscribe/getSnapshot pairs map to the existing 3-context split.
|
|
15
|
+
*/
|
|
16
|
+
import type { CodeOutput, Attachment, QuestionAnswers } from "../types";
|
|
17
|
+
import type { ChatMachineConfig, SessionSnapshot, MessagingSnapshot, InputSnapshot } from "./types";
|
|
18
|
+
type Listener = () => void;
|
|
19
|
+
export declare class ChatMachine {
|
|
20
|
+
private dataSource;
|
|
21
|
+
private rateLimiter;
|
|
22
|
+
private onSessionCreated?;
|
|
23
|
+
private state;
|
|
24
|
+
private abortController;
|
|
25
|
+
private lastSendAttempt;
|
|
26
|
+
/** Prevents fetchSession effect from clobbering state while stream is active. */
|
|
27
|
+
private sendingSessionId;
|
|
28
|
+
/**
|
|
29
|
+
* Monotonic counter bumped on every real session switch. An async op (send
|
|
30
|
+
* stream, post-stream sync, queue drain, resume, HITL) captures it at start
|
|
31
|
+
* and re-checks before writing to the single shared `state.messaging`; a stale
|
|
32
|
+
* epoch means the user navigated to a different session, so the write is
|
|
33
|
+
* dropped instead of bleeding into / clobbering the now-visible session.
|
|
34
|
+
*/
|
|
35
|
+
private viewEpoch;
|
|
36
|
+
private fetchCancelled;
|
|
37
|
+
private disposed;
|
|
38
|
+
private reasoningEffortOptions;
|
|
39
|
+
private reasoningEffortOptionSet;
|
|
40
|
+
/** Memoized sessionDebugUsage — avoids unnecessary session re-renders during streaming. */
|
|
41
|
+
private lastSessionDebugUsage;
|
|
42
|
+
/** Interval handle for passive polling when another tab has an active stream. */
|
|
43
|
+
private passivePollingId;
|
|
44
|
+
private sessionListeners;
|
|
45
|
+
private messagingListeners;
|
|
46
|
+
private inputListeners;
|
|
47
|
+
private cachedSessionSnapshot;
|
|
48
|
+
private cachedMessagingSnapshot;
|
|
49
|
+
private cachedInputSnapshot;
|
|
50
|
+
private sessionSnapshotVersion;
|
|
51
|
+
private messagingSnapshotVersion;
|
|
52
|
+
private inputSnapshotVersion;
|
|
53
|
+
private lastSessionSnapshotVersion;
|
|
54
|
+
private lastMessagingSnapshotVersion;
|
|
55
|
+
private lastInputSnapshotVersion;
|
|
56
|
+
readonly setError: (error: string | null) => void;
|
|
57
|
+
readonly retryFetchSession: () => void;
|
|
58
|
+
readonly sendMessage: (content: string, attachments?: Attachment[]) => Promise<void>;
|
|
59
|
+
readonly handleRegenerate: (turnId: string, model?: string) => Promise<void>;
|
|
60
|
+
readonly handleEdit: (turnId: string, newContent: string) => Promise<void>;
|
|
61
|
+
readonly handleCopy: (text: string) => Promise<void>;
|
|
62
|
+
readonly handleSubmitQuestionAnswers: (answers: QuestionAnswers) => void;
|
|
63
|
+
readonly handleRejectPendingQuestion: () => Promise<void>;
|
|
64
|
+
readonly retryLastMessage: () => Promise<void>;
|
|
65
|
+
readonly clearStreamError: () => void;
|
|
66
|
+
readonly cancel: () => void;
|
|
67
|
+
readonly setCodeOutputs: (outputs: CodeOutput[]) => void;
|
|
68
|
+
readonly setMessage: (message: string) => void;
|
|
69
|
+
readonly setInputError: (error: string | null) => void;
|
|
70
|
+
readonly handleSubmit: (e: {
|
|
71
|
+
preventDefault: () => void;
|
|
72
|
+
}, attachments?: Attachment[]) => void;
|
|
73
|
+
readonly handleUnqueue: () => {
|
|
74
|
+
content: string;
|
|
75
|
+
attachments: Attachment[];
|
|
76
|
+
} | null;
|
|
77
|
+
readonly enqueueMessage: (content: string, attachments: Attachment[]) => boolean;
|
|
78
|
+
readonly removeQueueItem: (index: number) => void;
|
|
79
|
+
readonly updateQueueItem: (index: number, content: string) => void;
|
|
80
|
+
readonly setReasoningEffort: (effort: string) => void;
|
|
81
|
+
readonly setModel: (model: string | undefined) => void;
|
|
82
|
+
constructor(config: ChatMachineConfig);
|
|
83
|
+
private buildReasoningEffortOptions;
|
|
84
|
+
private sanitizeReasoningEffort;
|
|
85
|
+
/**
|
|
86
|
+
* Set the active session ID. Triggers fetch when transitioning to a real
|
|
87
|
+
* session, or resets state for 'new'/undefined.
|
|
88
|
+
*/
|
|
89
|
+
setSessionId(id: string | undefined): void;
|
|
90
|
+
/**
|
|
91
|
+
* Update mutable config that may change across parent re-renders.
|
|
92
|
+
* Called from the React provider's useEffect to keep the machine in sync.
|
|
93
|
+
*/
|
|
94
|
+
updateConfig(config: Pick<ChatMachineConfig, "dataSource" | "onSessionCreated">): void;
|
|
95
|
+
dispose(): void;
|
|
96
|
+
subscribeSession: (listener: Listener) => (() => void);
|
|
97
|
+
getSessionSnapshot: () => SessionSnapshot;
|
|
98
|
+
subscribeMessaging: (listener: Listener) => (() => void);
|
|
99
|
+
getMessagingSnapshot: () => MessagingSnapshot;
|
|
100
|
+
subscribeInput: (listener: Listener) => (() => void);
|
|
101
|
+
getInputSnapshot: () => InputSnapshot;
|
|
102
|
+
private _updateSession;
|
|
103
|
+
private _notifySession;
|
|
104
|
+
private _updateMessaging;
|
|
105
|
+
private _notifyMessaging;
|
|
106
|
+
private _updateInput;
|
|
107
|
+
private _notifyInput;
|
|
108
|
+
private _persistQueue;
|
|
109
|
+
/**
|
|
110
|
+
* True while `epoch` is still the active view — i.e. the machine has not been
|
|
111
|
+
* disposed and no session switch has happened since `epoch` was captured.
|
|
112
|
+
* Async ops gate their writes to the shared messaging state on this.
|
|
113
|
+
*/
|
|
114
|
+
private _isCurrentEpoch;
|
|
115
|
+
/** A send can't start while generating, mid-resume, or with an open question. */
|
|
116
|
+
private _isBlockedForSend;
|
|
117
|
+
/**
|
|
118
|
+
* Send the next queued message, but only if we still own the view (`epoch`)
|
|
119
|
+
* and nothing is blocking (an in-flight generation or an open question). The
|
|
120
|
+
* item is dequeued optimistically and restored to the front if it turns out we
|
|
121
|
+
* can't send when the deferred tick fires — so a queued message is never
|
|
122
|
+
* silently dropped.
|
|
123
|
+
*/
|
|
124
|
+
private _drainQueueIfReady;
|
|
125
|
+
private _setDebugModeForSession;
|
|
126
|
+
private _hydrateDebugModeForSession;
|
|
127
|
+
private _setReasoningEffort;
|
|
128
|
+
private _setModel;
|
|
129
|
+
private _fetchSessionIfNeeded;
|
|
130
|
+
/**
|
|
131
|
+
* Sets turns from fetch, preserving pending user-only turns if server hasn't caught up.
|
|
132
|
+
* Applies `turns` + optional `pendingQuestion` in a single messaging update to avoid
|
|
133
|
+
* transient intermediate UI states between separate notifications.
|
|
134
|
+
*/
|
|
135
|
+
private _setTurnsFromFetch;
|
|
136
|
+
/**
|
|
137
|
+
* After fetch: if backend has an active stream, either resume (same-browser) or poll (passive).
|
|
138
|
+
*/
|
|
139
|
+
private _checkStreamStatusAndResumeOrPoll;
|
|
140
|
+
private _stopPassivePolling;
|
|
141
|
+
private _startPassivePolling;
|
|
142
|
+
private _runResumeStream;
|
|
143
|
+
private _resumeAcceptedRunOrPoll;
|
|
144
|
+
private _setError;
|
|
145
|
+
private _retryFetchSession;
|
|
146
|
+
private _clearStreamError;
|
|
147
|
+
private _notifySessionsUpdated;
|
|
148
|
+
private _cancel;
|
|
149
|
+
private _setCodeOutputs;
|
|
150
|
+
private _setMessage;
|
|
151
|
+
private _setInputError;
|
|
152
|
+
private _executeSlashCommand;
|
|
153
|
+
private _insertOptimisticTurn;
|
|
154
|
+
private _resolveSendSession;
|
|
155
|
+
private _syncSessionFromServer;
|
|
156
|
+
private _runSendStream;
|
|
157
|
+
private _ensureSessionSyncAfterStream;
|
|
158
|
+
private _finalizeSuccessfulSend;
|
|
159
|
+
private _handleSendError;
|
|
160
|
+
private _preservePartialAssistant;
|
|
161
|
+
/**
|
|
162
|
+
* Public entry point (no options). Calls _sendMessageCore internally.
|
|
163
|
+
*/
|
|
164
|
+
private _sendMessage;
|
|
165
|
+
/**
|
|
166
|
+
* Internal entry point with options (for regenerate/edit).
|
|
167
|
+
*/
|
|
168
|
+
private _sendMessageDirect;
|
|
169
|
+
/**
|
|
170
|
+
* Core send-message logic. Handles slash commands, rate limiting, streaming,
|
|
171
|
+
* session creation, optimistic turns, and auto-queue-drain.
|
|
172
|
+
*/
|
|
173
|
+
private _sendMessageCore;
|
|
174
|
+
private _handleThinkingChunk;
|
|
175
|
+
private _handleToolStart;
|
|
176
|
+
private _handleToolEnd;
|
|
177
|
+
/** Match a step to a tool_end event. Use callId when present; fall back to name + agentName. */
|
|
178
|
+
private _matchStep;
|
|
179
|
+
private _retryLastMessage;
|
|
180
|
+
private _handleRegenerate;
|
|
181
|
+
private _handleEdit;
|
|
182
|
+
private _handleCopy;
|
|
183
|
+
private _handleSubmitQuestionAnswers;
|
|
184
|
+
private _handleRejectPendingQuestion;
|
|
185
|
+
private _handleSubmit;
|
|
186
|
+
private _handleUnqueue;
|
|
187
|
+
private _enqueueMessage;
|
|
188
|
+
private _removeQueueItem;
|
|
189
|
+
private _updateQueueItem;
|
|
190
|
+
}
|
|
191
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ConversationTurn, PendingQuestion, StreamInterruptPayload } from "../types";
|
|
2
|
+
export declare function normalizeQuestionType(rawType: unknown): "SINGLE_CHOICE" | "MULTIPLE_CHOICE";
|
|
3
|
+
export declare function isOpenQuestionStatus(status: PendingQuestion["status"] | undefined): boolean;
|
|
4
|
+
export declare function shouldPromptForHumanInput(status: PendingQuestion["status"] | undefined): boolean;
|
|
5
|
+
export declare function pendingQuestionFromInterrupt(interrupt: StreamInterruptPayload | undefined, fallbackTurnId: string): PendingQuestion | null;
|
|
6
|
+
export declare function resolvePendingQuestionTurnIndex(turns: ConversationTurn[], pendingQuestion: PendingQuestion | null): number;
|
|
7
|
+
export declare function applyTurnLifecycleForPendingQuestion(turns: ConversationTurn[], pendingQuestion: PendingQuestion | null): ConversationTurn[];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ChatMachineState, SessionSnapshot, MessagingSnapshot, InputSnapshot } from './types';
|
|
2
|
+
export declare function deriveDebugMode(state: ChatMachineState): boolean;
|
|
3
|
+
export declare function deriveSessionSnapshot(state: ChatMachineState, methods: Pick<SessionSnapshot, 'setError' | 'retryFetchSession' | 'setReasoningEffort' | 'setModel'>): SessionSnapshot;
|
|
4
|
+
export declare function deriveMessagingSnapshot(state: ChatMachineState, methods: Pick<MessagingSnapshot, 'sendMessage' | 'handleRegenerate' | 'handleEdit' | 'handleCopy' | 'handleSubmitQuestionAnswers' | 'handleRejectPendingQuestion' | 'retryLastMessage' | 'clearStreamError' | 'cancel' | 'setCodeOutputs'>): MessagingSnapshot;
|
|
5
|
+
export declare function deriveInputSnapshot(state: ChatMachineState, methods: Pick<InputSnapshot, 'setMessage' | 'setInputError' | 'handleSubmit' | 'handleUnqueue' | 'enqueueMessage' | 'removeQueueItem' | 'updateQueueItem'>): InputSnapshot;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal types for the ChatMachine.
|
|
3
|
+
*
|
|
4
|
+
* These are implementation details — consumers use the existing
|
|
5
|
+
* ChatSessionStateValue / ChatMessagingStateValue / ChatInputStateValue
|
|
6
|
+
* types via the public hooks.
|
|
7
|
+
*/
|
|
8
|
+
import type { Session, ConversationTurn, PendingQuestion, CodeOutput, QueuedMessage, Attachment, ActivityStep, ChatDataSource, SessionDebugUsage, DebugLimits, SendMessageOptions, QuestionAnswers } from '../types';
|
|
9
|
+
import type { RateLimiter } from '../utils/RateLimiter';
|
|
10
|
+
export interface ChatMachineConfig {
|
|
11
|
+
dataSource: ChatDataSource;
|
|
12
|
+
rateLimiter: RateLimiter;
|
|
13
|
+
onSessionCreated?: (sessionId: string) => void;
|
|
14
|
+
}
|
|
15
|
+
export interface SessionState {
|
|
16
|
+
currentSessionId: string | undefined;
|
|
17
|
+
session: Session | null;
|
|
18
|
+
fetching: boolean;
|
|
19
|
+
error: string | null;
|
|
20
|
+
errorRetryable: boolean;
|
|
21
|
+
debugModeBySession: Record<string, boolean>;
|
|
22
|
+
debugLimits: DebugLimits | null;
|
|
23
|
+
reasoningEffort: string | undefined;
|
|
24
|
+
reasoningEffortOptions?: string[];
|
|
25
|
+
model: string | undefined;
|
|
26
|
+
}
|
|
27
|
+
export interface MessagingState {
|
|
28
|
+
turns: ConversationTurn[];
|
|
29
|
+
streamingContent: string;
|
|
30
|
+
isStreaming: boolean;
|
|
31
|
+
streamError: string | null;
|
|
32
|
+
streamErrorRetryable: boolean;
|
|
33
|
+
loading: boolean;
|
|
34
|
+
pendingQuestion: PendingQuestion | null;
|
|
35
|
+
codeOutputs: CodeOutput[];
|
|
36
|
+
isCompacting: boolean;
|
|
37
|
+
artifactsInvalidationTrigger: number;
|
|
38
|
+
/** Ephemeral: accumulated reasoning/thinking content during streaming. */
|
|
39
|
+
thinkingContent: string;
|
|
40
|
+
/** Ephemeral: ordered list of activity steps (thinking, tools, delegations). */
|
|
41
|
+
activeSteps: ActivityStep[];
|
|
42
|
+
/** True when another tab/device has an active stream; show "generation in progress" and poll. */
|
|
43
|
+
generationInProgress: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface InputState {
|
|
46
|
+
message: string;
|
|
47
|
+
inputError: string | null;
|
|
48
|
+
messageQueue: QueuedMessage[];
|
|
49
|
+
}
|
|
50
|
+
export interface ChatMachineState {
|
|
51
|
+
session: SessionState;
|
|
52
|
+
messaging: MessagingState;
|
|
53
|
+
input: InputState;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Mirrors ChatSessionStateValue. Methods are stable (bound once on
|
|
57
|
+
* machine construction) so they never trigger re-renders by identity change.
|
|
58
|
+
*/
|
|
59
|
+
export interface SessionSnapshot {
|
|
60
|
+
session: Session | null;
|
|
61
|
+
currentSessionId?: string;
|
|
62
|
+
fetching: boolean;
|
|
63
|
+
error: string | null;
|
|
64
|
+
errorRetryable: boolean;
|
|
65
|
+
debugMode: boolean;
|
|
66
|
+
sessionDebugUsage: SessionDebugUsage;
|
|
67
|
+
debugLimits: DebugLimits | null;
|
|
68
|
+
reasoningEffort: string | undefined;
|
|
69
|
+
reasoningEffortOptions: string[] | undefined;
|
|
70
|
+
model: string | undefined;
|
|
71
|
+
setError: (error: string | null) => void;
|
|
72
|
+
retryFetchSession: () => void;
|
|
73
|
+
setReasoningEffort: (effort: string) => void;
|
|
74
|
+
setModel: (model: string | undefined) => void;
|
|
75
|
+
}
|
|
76
|
+
/** Superset of ChatMessagingStateValue used internally by the state machine; includes internal-only fields such as generationInProgress. */
|
|
77
|
+
export interface MessagingSnapshot {
|
|
78
|
+
turns: ConversationTurn[];
|
|
79
|
+
streamingContent: string;
|
|
80
|
+
isStreaming: boolean;
|
|
81
|
+
streamError: string | null;
|
|
82
|
+
streamErrorRetryable: boolean;
|
|
83
|
+
loading: boolean;
|
|
84
|
+
pendingQuestion: PendingQuestion | null;
|
|
85
|
+
codeOutputs: CodeOutput[];
|
|
86
|
+
isCompacting: boolean;
|
|
87
|
+
compactionSummary: string | null;
|
|
88
|
+
artifactsInvalidationTrigger: number;
|
|
89
|
+
thinkingContent: string;
|
|
90
|
+
activeSteps: ActivityStep[];
|
|
91
|
+
generationInProgress: boolean;
|
|
92
|
+
showActivityTrace: boolean;
|
|
93
|
+
showTypingIndicator: boolean;
|
|
94
|
+
sendMessage: (content: string, attachments?: Attachment[]) => Promise<void>;
|
|
95
|
+
handleRegenerate?: (turnId: string, model?: string) => Promise<void>;
|
|
96
|
+
handleEdit?: (turnId: string, newContent: string) => Promise<void>;
|
|
97
|
+
handleCopy: (text: string) => Promise<void>;
|
|
98
|
+
handleSubmitQuestionAnswers: (answers: QuestionAnswers) => void;
|
|
99
|
+
handleRejectPendingQuestion: () => Promise<void>;
|
|
100
|
+
retryLastMessage: () => Promise<void>;
|
|
101
|
+
clearStreamError: () => void;
|
|
102
|
+
cancel: () => void;
|
|
103
|
+
setCodeOutputs: (outputs: CodeOutput[]) => void;
|
|
104
|
+
}
|
|
105
|
+
/** Mirrors ChatInputStateValue. */
|
|
106
|
+
export interface InputSnapshot {
|
|
107
|
+
message: string;
|
|
108
|
+
inputError: string | null;
|
|
109
|
+
messageQueue: QueuedMessage[];
|
|
110
|
+
setMessage: (message: string) => void;
|
|
111
|
+
setInputError: (error: string | null) => void;
|
|
112
|
+
handleSubmit: (e: {
|
|
113
|
+
preventDefault: () => void;
|
|
114
|
+
}, attachments?: Attachment[]) => void;
|
|
115
|
+
handleUnqueue: () => {
|
|
116
|
+
content: string;
|
|
117
|
+
attachments: Attachment[];
|
|
118
|
+
} | null;
|
|
119
|
+
enqueueMessage: (content: string, attachments: Attachment[]) => boolean;
|
|
120
|
+
removeQueueItem: (index: number) => void;
|
|
121
|
+
updateQueueItem: (index: number, content: string) => void;
|
|
122
|
+
}
|
|
123
|
+
export interface LastSendAttempt {
|
|
124
|
+
content: string;
|
|
125
|
+
attachments: Attachment[];
|
|
126
|
+
options?: SendMessageOptions;
|
|
127
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root,:host{--bichat-spacing-0: 0;--bichat-spacing-px: 1px;--bichat-spacing-0_5: .125rem;--bichat-spacing-1: .25rem;--bichat-spacing-1_5: .375rem;--bichat-spacing-2: .5rem;--bichat-spacing-2_5: .625rem;--bichat-spacing-3: .75rem;--bichat-spacing-3_5: .875rem;--bichat-spacing-4: 1rem;--bichat-spacing-5: 1.25rem;--bichat-spacing-6: 1.5rem;--bichat-spacing-7: 1.75rem;--bichat-spacing-8: 2rem;--bichat-spacing-9: 2.25rem;--bichat-spacing-10: 2.5rem;--bichat-spacing-12: 3rem;--bichat-spacing-14: 3.5rem;--bichat-spacing-16: 4rem;--bichat-spacing-xs: var(--bichat-spacing-1);--bichat-spacing-sm: var(--bichat-spacing-2);--bichat-spacing-md: var(--bichat-spacing-4);--bichat-spacing-lg: var(--bichat-spacing-6);--bichat-spacing-xl: var(--bichat-spacing-8);--bichat-spacing-2xl: var(--bichat-spacing-12);--bichat-color-gray-50: #f9fafb;--bichat-color-gray-100: #f3f4f6;--bichat-color-gray-200: #e5e7eb;--bichat-color-gray-300: #d1d5db;--bichat-color-gray-400: #9ca3af;--bichat-color-gray-500: #6b7280;--bichat-color-gray-600: #4b5563;--bichat-color-gray-700: #374151;--bichat-color-gray-800: #1f2937;--bichat-color-gray-900: #111827;--bichat-color-gray-950: #030712;--bichat-color-primary-50: #eff6ff;--bichat-color-primary-100: #dbeafe;--bichat-color-primary-200: #bfdbfe;--bichat-color-primary-300: #93c5fd;--bichat-color-primary-400: #60a5fa;--bichat-color-primary-500: #3b82f6;--bichat-color-primary-600: #2563eb;--bichat-color-primary-700: #1d4ed8;--bichat-color-primary-800: #1e40af;--bichat-color-primary-900: #1e3a8a;--bichat-color-primary-950: #172554;--bichat-color-success-50: #f0fdf4;--bichat-color-success-500: #22c55e;--bichat-color-success-600: #16a34a;--bichat-color-success-700: #15803d;--bichat-color-error-50: #fef2f2;--bichat-color-error-500: #ef4444;--bichat-color-error-600: #dc2626;--bichat-color-error-700: #b91c1c;--bichat-color-warning-50: #fffbeb;--bichat-color-warning-500: #f59e0b;--bichat-color-warning-600: #d97706;--bichat-color-warning-700: #b45309;--bichat-color-info-50: #eff6ff;--bichat-color-info-500: #3b82f6;--bichat-color-info-600: #2563eb;--bichat-color-info-700: #1d4ed8;--bichat-color-bg: var(--bichat-color-gray-50);--bichat-color-bg-subtle: var(--bichat-color-gray-100);--bichat-color-bg-muted: var(--bichat-color-gray-200);--bichat-color-surface: #ffffff;--bichat-color-surface-raised: #ffffff;--bichat-color-surface-overlay: rgba(255, 255, 255, .9);--bichat-color-text: var(--bichat-color-gray-900);--bichat-color-text-secondary: var(--bichat-color-gray-600);--bichat-color-text-muted: var(--bichat-color-gray-500);--bichat-color-text-disabled: var(--bichat-color-gray-400);--bichat-color-text-inverse: #ffffff;--bichat-color-code-text: var(--bichat-color-gray-800);--bichat-color-code-bg: var(--bichat-color-gray-100);--bichat-color-text-icon: var(--bichat-color-gray-500);--bichat-color-border: var(--bichat-color-gray-200);--bichat-color-border-subtle: var(--bichat-color-gray-100);--bichat-color-border-strong: var(--bichat-color-gray-300);--bichat-color-border-brand: var(--bichat-color-primary-500);--bichat-color-border-danger: var(--bichat-color-error-500);--bichat-color-border-warning: var(--bichat-color-warning-500);--bichat-color-border-success: var(--bichat-color-success-500);--bichat-color-border-disabled: var(--bichat-color-gray-200);--bichat-color-accent: var(--bichat-color-primary-600);--bichat-color-accent-hover: var(--bichat-color-primary-700);--bichat-color-accent-muted: var(--bichat-color-primary-100);--bichat-color-user-bubble-bg: var(--bichat-color-primary-600);--bichat-color-user-bubble-text: #ffffff;--bichat-color-user-bubble-border: transparent;--bichat-color-assistant-bubble-bg: var(--bichat-color-surface);--bichat-color-assistant-bubble-text: var(--bichat-color-text);--bichat-color-assistant-bubble-border: var(--bichat-color-border);--bichat-color-system-bubble-bg: var(--bichat-color-bg-subtle);--bichat-color-system-bubble-text: var(--bichat-color-text-secondary);--bichat-color-input-bg: var(--bichat-color-surface);--bichat-color-input-text: var(--bichat-color-text);--bichat-color-input-border: var(--bichat-color-border);--bichat-color-input-focus-border: var(--bichat-color-accent);--bichat-color-input-placeholder: var(--bichat-color-text-muted);--bichat-font-family: "Gilroy", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--bichat-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--bichat-font-size-xs: .75rem;--bichat-font-size-sm: .875rem;--bichat-font-size-base: 1rem;--bichat-font-size-lg: 1.125rem;--bichat-font-size-xl: 1.25rem;--bichat-font-size-2xl: 1.5rem;--bichat-font-size-3xl: 1.875rem;--bichat-font-weight-normal: 400;--bichat-font-weight-medium: 500;--bichat-font-weight-semibold: 600;--bichat-font-weight-bold: 700;--bichat-line-height-tight: 1.25;--bichat-line-height-normal: 1.5;--bichat-line-height-relaxed: 1.625;--bichat-letter-spacing-tight: -.025em;--bichat-letter-spacing-normal: 0;--bichat-letter-spacing-wide: .025em;--bichat-radius-none: 0;--bichat-radius-sm: .125rem;--bichat-radius-default: .25rem;--bichat-radius-md: .375rem;--bichat-radius-lg: .5rem;--bichat-radius-xl: .75rem;--bichat-radius-2xl: 1rem;--bichat-radius-3xl: 1.5rem;--bichat-radius-full: 9999px;--bichat-radius-bubble: var(--bichat-radius-2xl);--bichat-radius-bubble-tail: var(--bichat-radius-sm);--bichat-radius-button: var(--bichat-radius-lg);--bichat-radius-input: var(--bichat-radius-lg);--bichat-radius-card: var(--bichat-radius-xl);--bichat-radius-modal: var(--bichat-radius-2xl);--bichat-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--bichat-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--bichat-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--bichat-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--bichat-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--bichat-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--bichat-shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--bichat-shadow-none: 0 0 #0000;--bichat-ring-width: 2px;--bichat-ring-offset: 2px;--bichat-ring-color: var(--bichat-color-primary-500);--bichat-focus-ring: 0 0 0 var(--bichat-ring-width) var(--bichat-ring-color);--bichat-focus-ring-offset: 0 0 0 var(--bichat-ring-offset) var(--bichat-color-surface);--bichat-transition-fast: .1s;--bichat-transition-normal: .15s;--bichat-transition-slow: .2s;--bichat-transition-slower: .3s;--bichat-ease-default: cubic-bezier(.4, 0, .2, 1);--bichat-ease-in: cubic-bezier(.4, 0, 1, 1);--bichat-ease-out: cubic-bezier(0, 0, .2, 1);--bichat-ease-in-out: cubic-bezier(.4, 0, .2, 1);--bichat-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--bichat-z-base: 0;--bichat-z-dropdown: 10;--bichat-z-sticky: 20;--bichat-z-overlay: 30;--bichat-z-modal: 40;--bichat-z-popover: 50;--bichat-z-toast: 60;--bichat-z-tooltip: 70;--bichat-avatar-size-sm: 1.5rem;--bichat-avatar-size-md: 2rem;--bichat-avatar-size-lg: 2.5rem;--bichat-avatar-size-xl: 3rem;--bichat-bubble-max-width: 75%;--bichat-bubble-assistant-max-width: 85%;--bichat-input-min-height: 2.5rem;--bichat-input-max-height: 12rem;--bichat-color-chart-grid: rgba(148, 163, 184, .15);--bichat-primary: var(--bichat-color-primary-500);--bichat-bg: var(--bichat-color-bg);--bichat-text: var(--bichat-color-text);--bichat-border: var(--bichat-color-border);--bichat-bubble-user: var(--bichat-color-user-bubble-bg);--bichat-bubble-assistant: var(--bichat-color-assistant-bubble-bg)}.dark,[data-theme=dark]{--bichat-color-bg: var(--bichat-color-gray-900);--bichat-color-bg-subtle: var(--bichat-color-gray-800);--bichat-color-bg-muted: var(--bichat-color-gray-700);--bichat-color-surface: var(--bichat-color-gray-800);--bichat-color-surface-raised: var(--bichat-color-gray-750, #2d3748);--bichat-color-surface-overlay: rgba(31, 41, 55, .9);--bichat-color-text: var(--bichat-color-gray-100);--bichat-color-text-secondary: var(--bichat-color-gray-300);--bichat-color-text-muted: var(--bichat-color-gray-400);--bichat-color-text-disabled: var(--bichat-color-gray-500);--bichat-color-code-text: var(--bichat-color-gray-200);--bichat-color-code-bg: var(--bichat-color-gray-800);--bichat-color-text-icon: var(--bichat-color-gray-400);--bichat-color-border: var(--bichat-color-gray-700);--bichat-color-border-subtle: var(--bichat-color-gray-800);--bichat-color-border-strong: var(--bichat-color-gray-600);--bichat-color-border-brand: var(--bichat-color-primary-400);--bichat-color-border-danger: var(--bichat-color-error-600);--bichat-color-border-warning: var(--bichat-color-warning-500);--bichat-color-border-success: var(--bichat-color-success-600);--bichat-color-border-disabled: var(--bichat-color-gray-800);--bichat-color-accent-muted: var(--bichat-color-primary-900);--bichat-color-user-bubble-bg: var(--bichat-color-primary-700);--bichat-color-assistant-bubble-bg: var(--bichat-color-gray-800);--bichat-color-assistant-bubble-border: var(--bichat-color-gray-700);--bichat-color-system-bubble-bg: var(--bichat-color-gray-800);--bichat-color-input-bg: var(--bichat-color-gray-800);--bichat-color-input-border: var(--bichat-color-gray-700);--bichat-bg: var(--bichat-color-bg);--bichat-text: var(--bichat-color-text);--bichat-border: var(--bichat-color-border);--bichat-bubble-assistant: var(--bichat-color-assistant-bubble-bg);--bichat-color-chart-grid: rgba(148, 163, 184, .1);--bichat-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px -1px rgba(0, 0, 0, .3);--bichat-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--bichat-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4)}.bichat-session{background-color:var(--bichat-color-bg);color:var(--bichat-color-text);font-family:var(--bichat-font-family);font-size:var(--bichat-font-size-base);line-height:var(--bichat-line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:host button,:host [role=button],:host [role=tab],.bichat-session button,.bichat-session [role=button],.bichat-session [role=tab],bi-chat-root button,bi-chat-root [role=button],bi-chat-root [role=tab]{cursor:pointer}:host button:disabled,:host [role=button][aria-disabled=true],.bichat-session button:disabled,.bichat-session [role=button][aria-disabled=true],bi-chat-root button:disabled,bi-chat-root [role=button][aria-disabled=true]{cursor:not-allowed}.bichat-session button:focus-visible,.bichat-session a:focus-visible,.bichat-session input:focus-visible,.bichat-session textarea:focus-visible,.bichat-session [role=button]:focus-visible,.bichat-session [role=menuitem]:focus-visible,.bichat-session [role=tab]:focus-visible,.bichat-session select:focus-visible,.bichat-session [tabindex]:not([tabindex="-1"]):focus-visible,bi-chat-root button:focus-visible,bi-chat-root a:focus-visible,bi-chat-root input:focus-visible,bi-chat-root textarea:focus-visible,bi-chat-root [role=button]:focus-visible,bi-chat-root [role=menuitem]:focus-visible,bi-chat-root [role=tab]:focus-visible,bi-chat-root select:focus-visible,bi-chat-root [tabindex]:not([tabindex="-1"]):focus-visible{outline:none;box-shadow:var(--bichat-focus-ring-offset),var(--bichat-focus-ring);border-radius:inherit}.dark .bichat-session button:focus-visible,.dark .bichat-session a:focus-visible,.dark .bichat-session input:focus-visible,.dark .bichat-session textarea:focus-visible,.dark .bichat-session [role=button]:focus-visible,.dark .bichat-session [role=menuitem]:focus-visible,.dark .bichat-session [role=tab]:focus-visible,.dark .bichat-session select:focus-visible,.dark .bichat-session [tabindex]:not([tabindex="-1"]):focus-visible,.dark bi-chat-root button:focus-visible,.dark bi-chat-root a:focus-visible,.dark bi-chat-root input:focus-visible,.dark bi-chat-root textarea:focus-visible,.dark bi-chat-root [role=button]:focus-visible,.dark bi-chat-root [role=menuitem]:focus-visible,.dark bi-chat-root [role=tab]:focus-visible,.dark bi-chat-root select:focus-visible,.dark bi-chat-root [tabindex]:not([tabindex="-1"]):focus-visible{--bichat-focus-ring: 0 0 0 var(--bichat-ring-width) var(--bichat-color-primary-400)}.bichat-messages::-webkit-scrollbar{width:8px}.bichat-messages::-webkit-scrollbar-track{background:transparent}.bichat-messages::-webkit-scrollbar-thumb{background:var(--bichat-color-gray-300);border-radius:var(--bichat-radius-full)}.bichat-messages::-webkit-scrollbar-thumb:hover{background:var(--bichat-color-gray-400)}.dark .bichat-messages::-webkit-scrollbar-thumb{background:var(--bichat-color-gray-600)}.dark .bichat-messages::-webkit-scrollbar-thumb:hover{background:var(--bichat-color-gray-500)}@keyframes bichat-pulse{0%,to{opacity:1}50%{opacity:0}}@keyframes bichat-bounce{0%,to{transform:translateY(0);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(-25%);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bichat-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bichat-fade-in{0%{opacity:0}to{opacity:1}}@keyframes bichat-slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-pulse{animation:bichat-pulse 1s var(--bichat-ease-in-out) infinite}.animate-bounce{animation:bichat-bounce 1s infinite}.animate-spin{animation:bichat-spin 1s linear infinite}.animate-fade-in{animation:bichat-fade-in var(--bichat-transition-normal) var(--bichat-ease-out)}.animate-slide-up{animation:bichat-slide-up var(--bichat-transition-slow) var(--bichat-ease-out)}.bichat-thinking-shimmer{-webkit-mask-image:linear-gradient(-45deg,rgba(0,0,0,1) 20%,rgba(0,0,0,1) 40%,rgba(0,0,0,.2) 50%,rgba(0,0,0,1) 60%,rgba(0,0,0,1) 80%);mask-image:linear-gradient(-45deg,#000 20%,#000 40%,#0003,#000 60%,#000 80%);-webkit-mask-size:300% 100%;mask-size:300% 100%;animation:bichat-thinking-shimmer 4.5s linear infinite}.dark .bichat-thinking-shimmer{-webkit-mask-image:linear-gradient(-45deg,rgba(0,0,0,1) 15%,rgba(0,0,0,1) 35%,rgba(0,0,0,.3) 50%,rgba(0,0,0,1) 65%,rgba(0,0,0,1) 85%);mask-image:linear-gradient(-45deg,#000 15%,#000 35%,#0000004d,#000 65%,#000 85%)}@keyframes bichat-toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (prefers-reduced-motion: reduce){.bichat-thinking-shimmer,.animate-pulse,.animate-bounce,.animate-spin,.animate-fade-in,.animate-slide-up{animation:none}}@keyframes bichat-thinking-shimmer{0%{-webkit-mask-position:130% 0;mask-position:130% 0}to{-webkit-mask-position:-30% 0;mask-position:-30% 0}}.prose{color:var(--bichat-color-text);font-size:var(--bichat-font-size-base);line-height:var(--bichat-line-height-relaxed)}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:var(--bichat-color-text);font-weight:var(--bichat-font-weight-semibold);margin-top:1.5em;margin-bottom:.5em;line-height:var(--bichat-line-height-tight)}.prose h1{font-size:1.625rem;font-weight:var(--bichat-font-weight-bold)}.prose h2{font-size:1.375rem;margin-top:2em}.prose h3{font-size:var(--bichat-font-size-lg);font-weight:var(--bichat-font-weight-semibold)}.prose h4{font-size:var(--bichat-font-size-base)}.prose>*+h2{margin-top:2em}.prose p{margin-top:.75em;margin-bottom:.75em}.prose strong{font-weight:var(--bichat-font-weight-semibold);color:var(--bichat-color-text)}.prose code{background-color:var(--bichat-color-code-bg);color:var(--bichat-color-code-text);padding:.2em .5em;border-radius:var(--bichat-radius-md);border:1px solid var(--bichat-color-border-subtle);font-family:var(--bichat-font-family-mono);font-size:.875em}.prose pre{background-color:var(--bichat-color-code-bg);color:var(--bichat-color-gray-100);padding:var(--bichat-spacing-4);border-radius:var(--bichat-radius-lg);overflow-x:auto;margin-top:1em;margin-bottom:1em;font-family:var(--bichat-font-family-mono);font-size:var(--bichat-font-size-sm);line-height:var(--bichat-line-height-relaxed)}.prose pre code{background-color:transparent;padding:0;color:inherit;font-size:inherit;border-radius:0;border:none}.prose a{color:var(--bichat-color-accent);text-decoration:none;font-weight:var(--bichat-font-weight-medium)}.prose a:hover{text-decoration:underline}.prose ul,.prose ol{margin-top:.75em;margin-bottom:.75em;padding-left:1.5em}.prose ul{list-style-type:disc}.prose ol{list-style-type:decimal}.prose li{margin-top:.25em;margin-bottom:.25em}.prose li>ul,.prose li>ol{margin-top:.25em;margin-bottom:.25em}.prose blockquote{border-left:4px solid var(--bichat-color-border-strong);padding-left:var(--bichat-spacing-4);margin-left:0;font-style:italic;color:var(--bichat-color-text-secondary)}.prose hr{border:0;border-top:1px solid var(--bichat-color-border);margin:2em 0}.prose table{width:100%;border-collapse:collapse;margin-top:1em;margin-bottom:1em;font-size:var(--bichat-font-size-sm)}.prose th,.prose td{border:1px solid var(--bichat-color-border);padding:var(--bichat-spacing-2) var(--bichat-spacing-3);text-align:left}.prose th{background-color:var(--bichat-color-bg-subtle);font-weight:var(--bichat-font-weight-semibold)}.prose tbody tr:nth-child(2n){background-color:var(--bichat-color-bg-subtle)}.markdown-content math[display=block]{display:block;overflow-x:auto;overflow-y:hidden;padding:.25rem 0}.bichat-focus-ring:focus-visible{outline:none;box-shadow:0 0 0 var(--bichat-ring-offset) var(--bichat-color-bg),0 0 0 calc(var(--bichat-ring-offset) + var(--bichat-ring-width)) var(--bichat-ring-color)}.bichat-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.bichat-code{color:#24292e;background:#fff;font-family:JetBrains Mono,Fira Code,Menlo,monospace}.dark .bichat-code{color:#d4d4d4;background:#1e1e1e}.bichat-code .token.comment,.bichat-code .token.prolog{color:#6a737d}.bichat-code .token.keyword,.bichat-code .token.operator{color:#d73a49}.bichat-code .token.string{color:#032f62}.bichat-code .token.function,.bichat-code .token.class-name{color:#6f42c1}.bichat-code .token.number,.bichat-code .token.boolean{color:#005cc5}.dark .bichat-code .token.comment{color:#6a9955}.dark .bichat-code .token.keyword{color:#569cd6}.dark .bichat-code .token.string{color:#ce9178}.dark .bichat-code .token.function{color:#dcdcaa}.dark .bichat-code .token.number,.dark .bichat-code .token.boolean{color:#b5cea8}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme system type definitions
|
|
3
|
+
*/
|
|
4
|
+
export interface Theme {
|
|
5
|
+
name: string;
|
|
6
|
+
colors: ThemeColors;
|
|
7
|
+
spacing: ThemeSpacing;
|
|
8
|
+
borderRadius: ThemeBorderRadius;
|
|
9
|
+
}
|
|
10
|
+
export interface ThemeColors {
|
|
11
|
+
background: string;
|
|
12
|
+
surface: string;
|
|
13
|
+
primary: string;
|
|
14
|
+
secondary: string;
|
|
15
|
+
text: string;
|
|
16
|
+
textMuted: string;
|
|
17
|
+
border: string;
|
|
18
|
+
error: string;
|
|
19
|
+
success: string;
|
|
20
|
+
warning: string;
|
|
21
|
+
userBubble: string;
|
|
22
|
+
assistantBubble: string;
|
|
23
|
+
userText: string;
|
|
24
|
+
assistantText: string;
|
|
25
|
+
}
|
|
26
|
+
export interface ThemeSpacing {
|
|
27
|
+
xs: string;
|
|
28
|
+
sm: string;
|
|
29
|
+
md: string;
|
|
30
|
+
lg: string;
|
|
31
|
+
xl: string;
|
|
32
|
+
}
|
|
33
|
+
export interface ThemeBorderRadius {
|
|
34
|
+
sm: string;
|
|
35
|
+
md: string;
|
|
36
|
+
lg: string;
|
|
37
|
+
full: string;
|
|
38
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript type definitions for IOTA SDK Applet Core
|
|
3
|
+
* Matches Go backend types from pkg/applet/types.go
|
|
4
|
+
*/
|
|
5
|
+
export interface InitialContext {
|
|
6
|
+
user: UserContext;
|
|
7
|
+
tenant: TenantContext;
|
|
8
|
+
locale: LocaleContext;
|
|
9
|
+
config: AppConfig;
|
|
10
|
+
route: RouteContext;
|
|
11
|
+
session: SessionContext;
|
|
12
|
+
error: ErrorContext | null;
|
|
13
|
+
extensions?: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
export interface UserContext {
|
|
16
|
+
id: number;
|
|
17
|
+
email: string;
|
|
18
|
+
firstName: string;
|
|
19
|
+
lastName: string;
|
|
20
|
+
permissions: string[];
|
|
21
|
+
}
|
|
22
|
+
export interface TenantContext {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
}
|
|
26
|
+
export interface LocaleContext {
|
|
27
|
+
language: string;
|
|
28
|
+
translations: Record<string, string>;
|
|
29
|
+
}
|
|
30
|
+
export interface AppConfig {
|
|
31
|
+
graphQLEndpoint?: string;
|
|
32
|
+
streamEndpoint?: string;
|
|
33
|
+
restEndpoint?: string;
|
|
34
|
+
basePath?: string;
|
|
35
|
+
assetsBasePath?: string;
|
|
36
|
+
rpcUIEndpoint?: string;
|
|
37
|
+
shellMode?: 'embedded' | 'standalone';
|
|
38
|
+
}
|
|
39
|
+
export interface RouteContext {
|
|
40
|
+
path: string;
|
|
41
|
+
params: Record<string, string>;
|
|
42
|
+
query: Record<string, string>;
|
|
43
|
+
}
|
|
44
|
+
export interface SessionContext {
|
|
45
|
+
expiresAt: number;
|
|
46
|
+
refreshURL: string;
|
|
47
|
+
csrfToken: string;
|
|
48
|
+
}
|
|
49
|
+
export interface ErrorContext {
|
|
50
|
+
supportEmail?: string;
|
|
51
|
+
debugMode: boolean;
|
|
52
|
+
errorCodes?: Record<string, string>;
|
|
53
|
+
retryConfig?: RetryConfig;
|
|
54
|
+
}
|
|
55
|
+
export interface RetryConfig {
|
|
56
|
+
maxAttempts: number;
|
|
57
|
+
backoffMs: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Hook return types
|
|
61
|
+
*/
|
|
62
|
+
export interface TranslationHook {
|
|
63
|
+
t: (key: string, params?: Record<string, unknown>) => string;
|
|
64
|
+
language: string;
|
|
65
|
+
}
|
|
66
|
+
export interface PermissionsHook {
|
|
67
|
+
hasPermission: (permission: string) => boolean;
|
|
68
|
+
hasAnyPermission: (...permissions: string[]) => boolean;
|
|
69
|
+
permissions: string[];
|
|
70
|
+
}
|
|
71
|
+
export interface SessionHook {
|
|
72
|
+
isExpiringSoon: boolean;
|
|
73
|
+
refreshSession: () => Promise<void>;
|
|
74
|
+
csrfToken: string;
|
|
75
|
+
expiresAt: number;
|
|
76
|
+
}
|
|
77
|
+
export interface StreamingHook {
|
|
78
|
+
isStreaming: boolean;
|
|
79
|
+
processStream: <T>(generator: AsyncGenerator<T>, onChunk: (chunk: T) => void, signal?: AbortSignal) => Promise<void>;
|
|
80
|
+
cancel: () => void;
|
|
81
|
+
reset: () => void;
|
|
82
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Split data source interfaces for BiChat.
|
|
3
|
+
*
|
|
4
|
+
* ChatDataSource was a single interface mixing CRUD, streaming, artifacts,
|
|
5
|
+
* and admin. These focused interfaces let consumers implement only what
|
|
6
|
+
* they need. ChatDataSource keeps the same shape (with optional artifact
|
|
7
|
+
* and admin methods) for backwards compatibility — it is NOT a strict
|
|
8
|
+
* intersection of these interfaces.
|
|
9
|
+
*/
|
|
10
|
+
import type { Session, SessionMember, SessionListResult, SessionUser, ConversationTurn, PendingQuestion, Attachment, StreamChunk, QuestionAnswers, SendMessageOptions, SessionArtifact, AsyncRunAccepted } from './index';
|
|
11
|
+
export interface SessionStore {
|
|
12
|
+
createSession(): Promise<Session>;
|
|
13
|
+
fetchSession(id: string): Promise<{
|
|
14
|
+
session: Session;
|
|
15
|
+
turns: ConversationTurn[];
|
|
16
|
+
pendingQuestion?: PendingQuestion | null;
|
|
17
|
+
} | null>;
|
|
18
|
+
listSessions(options?: {
|
|
19
|
+
limit?: number;
|
|
20
|
+
offset?: number;
|
|
21
|
+
includeArchived?: boolean;
|
|
22
|
+
}): Promise<SessionListResult>;
|
|
23
|
+
archiveSession(sessionId: string): Promise<Session>;
|
|
24
|
+
unarchiveSession(sessionId: string): Promise<Session>;
|
|
25
|
+
pinSession(sessionId: string): Promise<Session>;
|
|
26
|
+
unpinSession(sessionId: string): Promise<Session>;
|
|
27
|
+
deleteSession(sessionId: string): Promise<void>;
|
|
28
|
+
renameSession(sessionId: string, title: string): Promise<Session>;
|
|
29
|
+
regenerateSessionTitle(sessionId: string): Promise<Session>;
|
|
30
|
+
clearSessionHistory(sessionId: string): Promise<{
|
|
31
|
+
success: boolean;
|
|
32
|
+
deletedMessages: number;
|
|
33
|
+
deletedArtifacts: number;
|
|
34
|
+
}>;
|
|
35
|
+
compactSessionHistory(sessionId: string): Promise<AsyncRunAccepted>;
|
|
36
|
+
}
|
|
37
|
+
export interface MessageTransport {
|
|
38
|
+
sendMessage(sessionId: string, content: string, attachments?: Attachment[], signal?: AbortSignal, options?: SendMessageOptions): AsyncGenerator<StreamChunk>;
|
|
39
|
+
submitQuestionAnswers(sessionId: string, questionId: string, answers: QuestionAnswers): Promise<{
|
|
40
|
+
success: boolean;
|
|
41
|
+
data?: AsyncRunAccepted;
|
|
42
|
+
error?: string;
|
|
43
|
+
}>;
|
|
44
|
+
rejectPendingQuestion(sessionId: string): Promise<{
|
|
45
|
+
success: boolean;
|
|
46
|
+
data?: AsyncRunAccepted;
|
|
47
|
+
error?: string;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
50
|
+
export interface ArtifactStore {
|
|
51
|
+
fetchSessionArtifacts(sessionId: string, options?: {
|
|
52
|
+
limit?: number;
|
|
53
|
+
offset?: number;
|
|
54
|
+
}): Promise<{
|
|
55
|
+
artifacts: SessionArtifact[];
|
|
56
|
+
hasMore?: boolean;
|
|
57
|
+
nextOffset?: number;
|
|
58
|
+
}>;
|
|
59
|
+
uploadSessionArtifacts(sessionId: string, files: File[]): Promise<{
|
|
60
|
+
artifacts: SessionArtifact[];
|
|
61
|
+
}>;
|
|
62
|
+
renameSessionArtifact(artifactId: string, name: string, description?: string): Promise<SessionArtifact>;
|
|
63
|
+
deleteSessionArtifact(artifactId: string): Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
export interface AdminStore {
|
|
66
|
+
listUsers(): Promise<SessionUser[]>;
|
|
67
|
+
listAllSessions(options?: {
|
|
68
|
+
limit?: number;
|
|
69
|
+
offset?: number;
|
|
70
|
+
includeArchived?: boolean;
|
|
71
|
+
userId?: string | null;
|
|
72
|
+
}): Promise<{
|
|
73
|
+
sessions: Session[];
|
|
74
|
+
total: number;
|
|
75
|
+
hasMore: boolean;
|
|
76
|
+
}>;
|
|
77
|
+
listSessionMembers(sessionId: string): Promise<SessionMember[]>;
|
|
78
|
+
addSessionMember(sessionId: string, userId: string, role: 'editor' | 'viewer'): Promise<void>;
|
|
79
|
+
updateSessionMemberRole(sessionId: string, userId: string, role: 'editor' | 'viewer'): Promise<void>;
|
|
80
|
+
removeSessionMember(sessionId: string, userId: string): Promise<void>;
|
|
81
|
+
}
|