@mgamadeus/ddd-agents 0.0.0-stage → 0.1.0-alpha.21
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/LICENSE +21 -0
- package/README.md +14 -2
- package/dist/chat.js +5263 -0
- package/dist/chat.js.map +1 -0
- package/dist/chunks/AgentsConversationClientContext-C4T7g_Qk.js +22 -0
- package/dist/chunks/AgentsConversationClientContext-C4T7g_Qk.js.map +1 -0
- package/dist/chunks/ConversationMarkdown-W7NHglmL.js +399 -0
- package/dist/chunks/ConversationMarkdown-W7NHglmL.js.map +1 -0
- package/dist/chunks/WebSearchResultsConversationWidget-BvnLWHyi.js +5059 -0
- package/dist/chunks/WebSearchResultsConversationWidget-BvnLWHyi.js.map +1 -0
- package/dist/chunks/canvas-behaviours-BRFR1ALE.js +45 -0
- package/dist/chunks/canvas-behaviours-BRFR1ALE.js.map +1 -0
- package/dist/chunks/canvas-feature-flags-BmmxC3bz.js +11 -0
- package/dist/chunks/canvas-feature-flags-BmmxC3bz.js.map +1 -0
- package/dist/chunks/canvasBodies-9SuF6NAB.js +289 -0
- package/dist/chunks/canvasBodies-9SuF6NAB.js.map +1 -0
- package/dist/chunks/d3-7.6.1.min.js-DTmPafrl.js +6 -0
- package/dist/chunks/d3-7.6.1.min.js-DTmPafrl.js.map +1 -0
- package/dist/chunks/decide-canvas-open-Ct-wnNEJ.js +20 -0
- package/dist/chunks/decide-canvas-open-Ct-wnNEJ.js.map +1 -0
- package/dist/chunks/widget-image-readiness-signal-DeOuL89j.js +25 -0
- package/dist/chunks/widget-image-readiness-signal-DeOuL89j.js.map +1 -0
- package/dist/chunks/widget-name-resolver-DyIY6Zu4.js +9736 -0
- package/dist/chunks/widget-name-resolver-DyIY6Zu4.js.map +1 -0
- package/dist/chunks/withPollingChangeSubscription-BLDAWF-o.js +251 -0
- package/dist/chunks/withPollingChangeSubscription-BLDAWF-o.js.map +1 -0
- package/dist/client-testing.js +346 -0
- package/dist/client-testing.js.map +1 -0
- package/dist/client.js +16 -0
- package/dist/client.js.map +1 -0
- package/dist/contract.js +31 -0
- package/dist/contract.js.map +1 -0
- package/dist/image-render.js +334 -0
- package/dist/image-render.js.map +1 -0
- package/dist/index.js +80 -0
- package/dist/index.js.map +1 -0
- package/dist/kit.js +13 -0
- package/dist/kit.js.map +1 -0
- package/dist/preview.js +733 -0
- package/dist/preview.js.map +1 -0
- package/dist/renderer.js +115 -0
- package/dist/renderer.js.map +1 -0
- package/dist/styles.css +6768 -0
- package/dist/types/chat/AgentChat/AgentChat.d.ts +37 -0
- package/dist/types/chat/AgentChatActivityHistory/AgentChatActivityHistory.d.ts +6 -0
- package/dist/types/chat/AgentChatActivityIndicator/AgentChatActivityIndicator.d.ts +8 -0
- package/dist/types/chat/CanvasPane/CanvasPane.d.ts +15 -0
- package/dist/types/chat/CanvasResizeHandle/CanvasResizeHandle.d.ts +10 -0
- package/dist/types/chat/CanvasResizeHandle/use-canvas-resize.d.ts +43 -0
- package/dist/types/chat/ConversationClosedBar/ConversationClosedBar.d.ts +10 -0
- package/dist/types/chat/ConversationErrorCard/ConversationErrorCard.d.ts +13 -0
- package/dist/types/chat/ConversationIntroCard/ConversationIntroCard.d.ts +10 -0
- package/dist/types/chat/ConversationLoadingStates.d.ts +2 -0
- package/dist/types/chat/ConversationMessage/ConversationCallMarkerChip/ConversationCallMarkerChip.d.ts +14 -0
- package/dist/types/chat/ConversationMessage/ConversationCallMarkerChip/VoiceBarsIcon/VoiceBarsIcon.d.ts +8 -0
- package/dist/types/chat/ConversationMessage/ConversationMessageSystem/ConversationMessageSystem.d.ts +8 -0
- package/dist/types/chat/ConversationMessage/ConversationMessageSystem/ConversationMessageSystemHeader/ConversationMessageSystemHeader.d.ts +9 -0
- package/dist/types/chat/ConversationMessage/ConversationMessageUser/ConversationMessageUser.d.ts +7 -0
- package/dist/types/chat/ConversationMessage/ConversationMessageUser/ConversationMessageUserWidgets.d.ts +14 -0
- package/dist/types/chat/ConversationMessage/ConversationMessageWidgets/ConversationMessageHeader/ConversationMessageHeader.d.ts +7 -0
- package/dist/types/chat/ConversationMessage/ConversationMessageWidgets/ConversationMessageThinking/ConversationMessageThinking.d.ts +7 -0
- package/dist/types/chat/ConversationMessage/ConversationMessageWidgets/ConversationMessageWidgets.d.ts +29 -0
- package/dist/types/chat/ConversationMessage/ConversationMessageWidgets/copyRichToClipboard.d.ts +1 -0
- package/dist/types/chat/ConversationMessage/ConversationMessageWidgets/hooks/useFreshMessageBlockReveal.d.ts +14 -0
- package/dist/types/chat/ConversationMessage/ConversationMessageWidgets/hooks/useStreamingText.d.ts +8 -0
- package/dist/types/chat/ConversationMessage/ConversationMessageWidgets/hooks/useTypewriter.d.ts +12 -0
- package/dist/types/chat/ConversationMessage/ConversationTaskInstructionDisclosure/ConversationTaskInstructionDisclosure.d.ts +12 -0
- package/dist/types/chat/ConversationMessageInput/ConversationMessageInput.d.ts +111 -0
- package/dist/types/chat/ConversationMessageInput/ConversationMessageInputAttachments/ConversationMessageInputAttachmentPreviewCard.d.ts +34 -0
- package/dist/types/chat/ConversationMessageInput/ConversationMessageInputAttachments/ConversationMessageInputAttachmentsErrorBox.d.ts +22 -0
- package/dist/types/chat/ConversationMessageInput/ConversationMessageInputAttachments/ConversationMessageInputAttachmentsPreviewStrip.d.ts +12 -0
- package/dist/types/chat/ConversationMessageInput/ConversationMessageInputAttachments/convert-bytes-to-size-string.d.ts +2 -0
- package/dist/types/chat/ConversationMessageInput/ConversationMessageInputComposerWidgets/ConversationMessageInputComposerWidgets.d.ts +12 -0
- package/dist/types/chat/ConversationMessageList/ConversationMessageList.d.ts +75 -0
- package/dist/types/chat/ConversationScrollToLatestMessageButton/ConversationScrollToLatestMessageButton.d.ts +6 -0
- package/dist/types/chat/ConversationSuggestionCard/ConversationSuggestionCard.d.ts +7 -0
- package/dist/types/chat/ConversationView.d.ts +216 -0
- package/dist/types/chat/ConversationViewBody/ConversationViewBody.d.ts +214 -0
- package/dist/types/chat/ConversationViewBody/hooks/useIsMessagesBottomOutOfView.d.ts +2 -0
- package/dist/types/chat/ConversationViewBody/hooks/usePinQuestionOnSend.d.ts +24 -0
- package/dist/types/chat/assistant-message-has-renderable-markdown.d.ts +13 -0
- package/dist/types/chat/chat-assistant-identity.d.ts +24 -0
- package/dist/types/chat/chat-message.d.ts +11 -0
- package/dist/types/chat/controller/AgentChatController.d.ts +97 -0
- package/dist/types/chat/controller/activity-ticker.d.ts +120 -0
- package/dist/types/chat/controller/changed-messages-request.d.ts +12 -0
- package/dist/types/chat/controller/chat-scroll-target.d.ts +10 -0
- package/dist/types/chat/controller/conversation-change-signal-rules.d.ts +64 -0
- package/dist/types/chat/controller/derive-agent-activity.d.ts +31 -0
- package/dist/types/chat/controller/merge-activity-elements.d.ts +25 -0
- package/dist/types/chat/controller/pending-start-request.d.ts +38 -0
- package/dist/types/chat/controller/use-activity-ticker.d.ts +60 -0
- package/dist/types/chat/controller/use-conversation-activity.d.ts +38 -0
- package/dist/types/chat/controller/use-conversation-live-updates.d.ts +30 -0
- package/dist/types/chat/controller/use-conversation-message-pages.d.ts +24 -0
- package/dist/types/chat/controller/use-conversation-scroll-jump.d.ts +47 -0
- package/dist/types/chat/controller/use-conversation-search.d.ts +31 -0
- package/dist/types/chat/controller/use-conversation-signals.d.ts +44 -0
- package/dist/types/chat/controller/use-debounced-semantic-search.d.ts +15 -0
- package/dist/types/chat/conversation-send-message.d.ts +43 -0
- package/dist/types/chat/last-wire-message-is-unanswered-user-message.d.ts +22 -0
- package/dist/types/chat/normalize-server-message-to-markdown.d.ts +23 -0
- package/dist/types/chat/store/agents-chat-state.d.ts +132 -0
- package/dist/types/chat/store/conversation-error-type.d.ts +32 -0
- package/dist/types/chat/store/create-agents-chat-store.d.ts +23 -0
- package/dist/types/chat/store/index.d.ts +5 -0
- package/dist/types/chat/store/merge-chat-messages.d.ts +20 -0
- package/dist/types/chat/store/reduce-agents-chat-state.d.ts +7 -0
- package/dist/types/chat/store/use-agents-chat-store.d.ts +22 -0
- package/dist/types/chat/strip-pre-call-message-marker.d.ts +12 -0
- package/dist/types/chat/use-canvas-shell-transitions.d.ts +25 -0
- package/dist/types/client/AgentsConversationClient.d.ts +93 -0
- package/dist/types/client/AgentsConversationClientContext.d.ts +17 -0
- package/dist/types/client/polling/createPollingConversationChangeSubscription.d.ts +62 -0
- package/dist/types/client/polling/withPollingChangeSubscription.d.ts +11 -0
- package/dist/types/client/testing/createInMemoryAgentsConversationClient.d.ts +139 -0
- package/dist/types/contract/conversation.d.ts +370 -0
- package/dist/types/entries/chat.d.ts +21 -0
- package/dist/types/entries/client-testing.d.ts +1 -0
- package/dist/types/entries/client.d.ts +4 -0
- package/dist/types/entries/contract.d.ts +1 -0
- package/dist/types/entries/image-render.d.ts +9 -0
- package/dist/types/entries/index.d.ts +9 -0
- package/dist/types/entries/kit.d.ts +4 -0
- package/dist/types/entries/preview.d.ts +8 -0
- package/dist/types/entries/renderer.d.ts +15 -0
- package/dist/types/entries/widgets.d.ts +16 -0
- package/dist/types/image-render/ComposedViewEmailDataTimes/ComposedViewEmailDataTimes.d.ts +15 -0
- package/dist/types/image-render/WidgetImageRender.d.ts +55 -0
- package/dist/types/image-render/WidgetImageRenderContext.d.ts +14 -0
- package/dist/types/image-render/composed-view-data-times.d.ts +20 -0
- package/dist/types/image-render/frozen-widget-requests.d.ts +2 -0
- package/dist/types/image-render/live-widget-requests.d.ts +4 -0
- package/dist/types/image-render/widget-image-google-map.d.ts +7 -0
- package/dist/types/image-render/widget-image-readiness-signal.d.ts +16 -0
- package/dist/types/image-render/widget-image-readiness.d.ts +9 -0
- package/dist/types/image-render/widget-image-render.types.d.ts +47 -0
- package/dist/types/kit/ComposedViewConversationWidget.d.ts +14 -0
- package/dist/types/kit/ComposedViewDataSourceLoader.d.ts +20 -0
- package/dist/types/kit/ComposedViewRenderer.d.ts +30 -0
- package/dist/types/kit/ComposedViewSlotErrorBoundary.d.ts +23 -0
- package/dist/types/kit/ModelText/ModelText.d.ts +12 -0
- package/dist/types/kit/components/embedding/EmbeddedConversationWidget.d.ts +26 -0
- package/dist/types/kit/components/map/map-full-screen-instance.d.ts +26 -0
- package/dist/types/kit/components/map/map-presentation-context.d.ts +8 -0
- package/dist/types/kit/components/text/shared/text-node-values.d.ts +39 -0
- package/dist/types/kit/composed-view-component-types.d.ts +61 -0
- package/dist/types/kit/composed-view-components.d.ts +7 -0
- package/dist/types/kit/composed-view-tones.d.ts +20 -0
- package/dist/types/kit/entity-detail/EntityDetailCanvasBody.d.ts +9 -0
- package/dist/types/kit/entity-detail/entity-detail-bodies.d.ts +32 -0
- package/dist/types/kit/entity-detail/entity-detail-name.d.ts +9 -0
- package/dist/types/kit/hooks/use-debounced-value.d.ts +2 -0
- package/dist/types/kit/map-full-screen/MapFullScreenCanvasBody.d.ts +11 -0
- package/dist/types/preview/WidgetPreviewHost.d.ts +20 -0
- package/dist/types/preview/preview-stub-components.d.ts +3 -0
- package/dist/types/preview/widget-preview-fixtures.d.ts +17 -0
- package/dist/types/preview/widget-preview-hydration.d.ts +10 -0
- package/dist/types/preview/widget-preview-readiness.d.ts +27 -0
- package/dist/types/preview/widget-preview-requests.d.ts +16 -0
- package/dist/types/preview/widget-preview-signal.d.ts +10 -0
- package/dist/types/preview/widget-preview.types.d.ts +134 -0
- package/dist/types/provider/AgentsProvider.d.ts +33 -0
- package/dist/types/provider/class-names.d.ts +7 -0
- package/dist/types/provider/components/default-components.d.ts +3 -0
- package/dist/types/provider/components/icon-names.d.ts +9 -0
- package/dist/types/provider/components/index.d.ts +39 -0
- package/dist/types/provider/components/types.d.ts +463 -0
- package/dist/types/provider/environment.d.ts +262 -0
- package/dist/types/provider/index.d.ts +4 -0
- package/dist/types/renderer/ConversationDeepLinkedWidget.d.ts +18 -0
- package/dist/types/renderer/ConversationMarkdown.d.ts +21 -0
- package/dist/types/renderer/ConversationWidgetActions/ConversationWidgetActions.d.ts +7 -0
- package/dist/types/renderer/ConversationWidgetCallbacksContext.d.ts +234 -0
- package/dist/types/renderer/ConversationWidgetContext.d.ts +32 -0
- package/dist/types/renderer/ConversationWidgetErrorBoundary.d.ts +25 -0
- package/dist/types/renderer/ConversationWidgetHost.d.ts +36 -0
- package/dist/types/renderer/ConversationWidgetRenderContext.d.ts +3 -0
- package/dist/types/renderer/MarkdownLink.d.ts +6 -0
- package/dist/types/renderer/WindowedWidget/WindowedWidget.d.ts +16 -0
- package/dist/types/renderer/_access/ConversationWidgetFeatureGate.d.ts +21 -0
- package/dist/types/renderer/_agent-space/ConversationWidgetAgentSpaceFrame.d.ts +12 -0
- package/dist/types/renderer/_agent-space/ConversationWidgetAgentSpaceHeader.d.ts +15 -0
- package/dist/types/renderer/_agent-space/agent-space-name.hydrator.d.ts +7 -0
- package/dist/types/renderer/_agent-space/declared-agent-space-key-field-name.d.ts +8 -0
- package/dist/types/renderer/_agent-space/use-resolved-conversation-widget-agent-space-key.d.ts +16 -0
- package/dist/types/renderer/_agent-space/widget-agent-space-key-attribute.d.ts +13 -0
- package/dist/types/renderer/balanced-json-object.d.ts +12 -0
- package/dist/types/renderer/canvas/CanvasRestoreOnMount.d.ts +19 -0
- package/dist/types/renderer/canvas/canvas-behaviours.d.ts +84 -0
- package/dist/types/renderer/canvas/canvas-body-props.d.ts +18 -0
- package/dist/types/renderer/canvas/canvas-feature-flags.d.ts +11 -0
- package/dist/types/renderer/canvas/canvas-reducers.d.ts +46 -0
- package/dist/types/renderer/canvas/canvas-state.d.ts +107 -0
- package/dist/types/renderer/canvas/canvasBodies.d.ts +19 -0
- package/dist/types/renderer/canvas/canvasStorage.d.ts +25 -0
- package/dist/types/renderer/canvas/decide-canvas-open.d.ts +32 -0
- package/dist/types/renderer/canvas/entity-detail-instance.d.ts +27 -0
- package/dist/types/renderer/canvas/find-widget-fences-in-markdown.d.ts +32 -0
- package/dist/types/renderer/canvas/use-anchor-widget-payload.d.ts +8 -0
- package/dist/types/renderer/composer-widget-fence.d.ts +30 -0
- package/dist/types/renderer/conversation-composer-widget.d.ts +13 -0
- package/dist/types/renderer/conversation-widget-props.d.ts +54 -0
- package/dist/types/renderer/conversation-widget-state-partition.d.ts +31 -0
- package/dist/types/renderer/conversationWidgetAstPlugin.d.ts +11 -0
- package/dist/types/renderer/conversationWidgetRegistry.d.ts +74 -0
- package/dist/types/renderer/detect-unrendered-widgets.d.ts +42 -0
- package/dist/types/renderer/markdown-contains-widget.d.ts +13 -0
- package/dist/types/renderer/reference-naked-widget-json.d.ts +1 -0
- package/dist/types/renderer/remarkWidgetFencePlugin.d.ts +22 -0
- package/dist/types/renderer/render-report/widget-render-report-collector.d.ts +57 -0
- package/dist/types/renderer/render-report/widget-render-report.d.ts +29 -0
- package/dist/types/renderer/repair-malformed-widget-fences.d.ts +11 -0
- package/dist/types/renderer/resolve-deep-linkable-widget.d.ts +25 -0
- package/dist/types/renderer/restoreTextDirectivesPlugin.d.ts +12 -0
- package/dist/types/renderer/widget-click-signal-sources.d.ts +15 -0
- package/dist/types/renderer/widget-fence-json.d.ts +16 -0
- package/dist/types/renderer/widget-fence-syntax.d.ts +25 -0
- package/dist/types/renderer/widget-hydration/index.d.ts +8 -0
- package/dist/types/renderer/widget-hydration/section-hydration.d.ts +41 -0
- package/dist/types/renderer/widget-hydration/use-widget-hydration.d.ts +27 -0
- package/dist/types/renderer/widget-hydration/widget-hydration-state-store.d.ts +27 -0
- package/dist/types/renderer/widget-hydration/widget-hydration.reducer.d.ts +39 -0
- package/dist/types/renderer/widget-hydration/widget-hydration.registry.d.ts +7 -0
- package/dist/types/renderer/widget-hydration/widget-hydration.slice.d.ts +8 -0
- package/dist/types/renderer/widget-hydration/widget-hydration.types.d.ts +27 -0
- package/dist/types/renderer/widget-name-resolver.d.ts +22 -0
- package/dist/types/renderer/widget-tree/bounded-json.d.ts +23 -0
- package/dist/types/renderer/widget-tree/composed-node-schema.d.ts +143 -0
- package/dist/types/renderer/widget-tree/composed-view-data-sources.d.ts +41 -0
- package/dist/types/renderer/widget-tree/composed-view-tree.d.ts +111 -0
- package/dist/types/renderer/widget-tree/expression/evaluate-expression.d.ts +65 -0
- package/dist/types/renderer/widget-tree/expression/parse-expression.d.ts +71 -0
- package/dist/types/renderer/widget-tree/resolve-composed-view-values.d.ts +49 -0
- package/dist/types/renderer/widget-tree/use-composed-view-state.d.ts +16 -0
- package/dist/types/renderer/widget-windowing.d.ts +25 -0
- package/dist/types/widgets/CanvasWidgetCard/CanvasWidgetCard.d.ts +79 -0
- package/dist/types/widgets/CanvasWidgetCard/CanvasWidgetSwitch.d.ts +61 -0
- package/dist/types/widgets/CanvasWidgetCard/canvas-for-message-widget.d.ts +8 -0
- package/dist/types/widgets/CanvasWidgetCard/use-canvas-viable.d.ts +15 -0
- package/dist/types/widgets/ClockConversationWidget/ClockConversationWidget.d.ts +11 -0
- package/dist/types/widgets/ClockConversationWidget/ClockWidget/AnalogClockFace.d.ts +12 -0
- package/dist/types/widgets/ClockConversationWidget/ClockWidget/ClockRow.d.ts +23 -0
- package/dist/types/widgets/ClockConversationWidget/ClockWidget/ClockWidget.d.ts +21 -0
- package/dist/types/widgets/ClockConversationWidget/ClockWidget/DayNightGlyph.d.ts +8 -0
- package/dist/types/widgets/ClockConversationWidget/shared/clock-time.d.ts +52 -0
- package/dist/types/widgets/ClockConversationWidget/shared/clock-widget-payload.d.ts +23 -0
- package/dist/types/widgets/ClockConversationWidget/shared/use-clock-settings.d.ts +18 -0
- package/dist/types/widgets/ConceptExplainerConversationWidget/ConceptExplainerConversationWidget.d.ts +14 -0
- package/dist/types/widgets/ConceptExplainerConversationWidget/ConceptExplainerWidget/ConceptExplainerWidget.d.ts +27 -0
- package/dist/types/widgets/ConceptExplainerConversationWidget/shared/ConceptExplainerTextView.d.ts +11 -0
- package/dist/types/widgets/ConceptExplainerConversationWidget/shared/concept-explainer-type.d.ts +89 -0
- package/dist/types/widgets/ConceptExplainerConversationWidget/shared/concept-explainer-types.d.ts +17 -0
- package/dist/types/widgets/ConceptExplainerConversationWidget/shared/concept-explainer-widget-payload.d.ts +25 -0
- package/dist/types/widgets/ConceptExplainerConversationWidget/shared/use-concept-explainer-language.d.ts +8 -0
- package/dist/types/widgets/ConversationSearchResultsConversationWidget/ConversationSearchResultsCanvas.d.ts +9 -0
- package/dist/types/widgets/ConversationSearchResultsConversationWidget/ConversationSearchResultsCanvasBody.d.ts +7 -0
- package/dist/types/widgets/ConversationSearchResultsConversationWidget/ConversationSearchResultsConversationWidget.d.ts +15 -0
- package/dist/types/widgets/ConversationSearchResultsConversationWidget/shared/conversation-search-results-widget-payload.d.ts +42 -0
- package/dist/types/widgets/ConversationSearchResultsConversationWidget/shared/search-hit-excerpt.d.ts +1 -0
- package/dist/types/widgets/CurrencyConverterConversationWidget/CurrencyConverterConversationWidget.d.ts +8 -0
- package/dist/types/widgets/CurrencyConverterConversationWidget/CurrencyConverterWidget/CurrencyConverterWidget.d.ts +17 -0
- package/dist/types/widgets/CurrencyConverterConversationWidget/CurrencyConverterWidget/CurrencyLabel/CurrencyLabel.d.ts +9 -0
- package/dist/types/widgets/CurrencyConverterConversationWidget/shared/currency-converter-widget-payload.d.ts +22 -0
- package/dist/types/widgets/CurrencyConverterConversationWidget/shared/currency-display.d.ts +30 -0
- package/dist/types/widgets/CustomVisualizationConversationWidget/CustomVisualizationConversationWidget.d.ts +11 -0
- package/dist/types/widgets/CustomVisualizationConversationWidget/CustomVisualizationWidget/CustomVisualizationFrame.d.ts +14 -0
- package/dist/types/widgets/CustomVisualizationConversationWidget/CustomVisualizationWidget/CustomVisualizationWidget.d.ts +15 -0
- package/dist/types/widgets/CustomVisualizationConversationWidget/shared/custom-visualization-frame-protocol.d.ts +77 -0
- package/dist/types/widgets/CustomVisualizationConversationWidget/shared/custom-visualization-libraries.d.ts +25 -0
- package/dist/types/widgets/CustomVisualizationConversationWidget/shared/custom-visualization-sandbox-config.d.ts +21 -0
- package/dist/types/widgets/CustomVisualizationConversationWidget/shared/custom-visualization-widget-payload.d.ts +55 -0
- package/dist/types/widgets/CustomVisualizationConversationWidget/shared/read-custom-visualization-theme.d.ts +5 -0
- package/dist/types/widgets/EntityMentionConversationWidget/EntityMentionAskButton/EntityMentionAskButton.d.ts +13 -0
- package/dist/types/widgets/EntityMentionConversationWidget/EntityMentionCard/EntityMentionCard.d.ts +11 -0
- package/dist/types/widgets/EntityMentionConversationWidget/EntityMentionConversationWidget.d.ts +9 -0
- package/dist/types/widgets/EntityMentionConversationWidget/shared/entity-mention-presentation.d.ts +4 -0
- package/dist/types/widgets/EntityMentionConversationWidget/shared/entity-mention.d.ts +33 -0
- package/dist/types/widgets/EntityMentionConversationWidget/shared/use-entity-mention-composer.d.ts +17 -0
- package/dist/types/widgets/MultiChoiceConversationWidget/MultiChoiceConversationWidget.d.ts +2 -0
- package/dist/types/widgets/MultiChoiceConversationWidget/shared/multi-choice-widget-payload.d.ts +16 -0
- package/dist/types/widgets/QuickRepliesConversationWidget/QuickRepliesConversationWidget.d.ts +38 -0
- package/dist/types/widgets/QuickRepliesConversationWidget/shared/quick-replies-widget-payload.d.ts +20 -0
- package/dist/types/widgets/SuggestedActions/SuggestedActions.d.ts +10 -0
- package/dist/types/widgets/ToolTraceConversationWidget/ToolTraceConversationWidget.d.ts +8 -0
- package/dist/types/widgets/WebSearchResultsConversationWidget/SourceFavicon.d.ts +10 -0
- package/dist/types/widgets/WebSearchResultsConversationWidget/WebSearchAnswer.d.ts +6 -0
- package/dist/types/widgets/WebSearchResultsConversationWidget/WebSearchReferences.d.ts +12 -0
- package/dist/types/widgets/WebSearchResultsConversationWidget/WebSearchResultsCanvas.d.ts +10 -0
- package/dist/types/widgets/WebSearchResultsConversationWidget/WebSearchResultsCanvasBody.d.ts +7 -0
- package/dist/types/widgets/WebSearchResultsConversationWidget/WebSearchResultsConversationWidget.d.ts +14 -0
- package/dist/types/widgets/WebSearchResultsConversationWidget/WebSearchSourcesList.d.ts +10 -0
- package/dist/types/widgets/WebSearchResultsConversationWidget/shared/display-hostname.d.ts +9 -0
- package/dist/types/widgets/WebSearchResultsConversationWidget/shared/web-search-results-widget-payload.d.ts +30 -0
- package/dist/types/widgets/WritingDraftConversationWidget/WritingDraftConversationWidget.d.ts +14 -0
- package/dist/types/widgets/WritingDraftConversationWidget/WritingDraftWidget/WritingDraftBody.d.ts +9 -0
- package/dist/types/widgets/WritingDraftConversationWidget/WritingDraftWidget/WritingDraftWidget.d.ts +44 -0
- package/dist/types/widgets/WritingDraftConversationWidget/shared/draft-mail-link.d.ts +17 -0
- package/dist/types/widgets/WritingDraftConversationWidget/shared/draft-plain-text.d.ts +7 -0
- package/dist/types/widgets/WritingDraftConversationWidget/shared/remark-draft-line-breaks.d.ts +13 -0
- package/dist/types/widgets/WritingDraftConversationWidget/shared/writing-draft-widget-payload.d.ts +23 -0
- package/dist/types/widgets/_shared/ConversationWidgetButton.d.ts +4 -0
- package/dist/types/widgets/_shared/DonePill.d.ts +14 -0
- package/dist/types/widgets/_shared/modern/WidgetKpiValue.d.ts +24 -0
- package/dist/types/widgets/_shared/modern/WidgetListRow.d.ts +14 -0
- package/dist/types/widgets/_shared/modern/WidgetStatusChip.d.ts +8 -0
- package/dist/types/widgets/_shared/modern/WidgetSurface.d.ts +13 -0
- package/dist/types/widgets/_shared/modern/WidgetSurfaceSkeleton.d.ts +11 -0
- package/dist/types/widgets/_shared/modern/index.d.ts +16 -0
- package/dist/types/widgets/_shared/skeleton-primitives.d.ts +20 -0
- package/dist/types/widgets/_shared/use-stack-when-wrapped.d.ts +6 -0
- package/dist/types/widgets/_shared/widget-payload-validation.d.ts +22 -0
- package/dist/widgets.js +84 -0
- package/dist/widgets.js.map +1 -0
- package/package.json +147 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const normalizeSearchHitExcerpt: (rawExcerpt: unknown) => string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PayloadConversationWidgetProps } from "../../renderer/conversation-widget-props";
|
|
2
|
+
/**
|
|
3
|
+
* `CurrencyConverter`: a currency conversion at the dated rate `getCurrencyExchangeRate` returned.
|
|
4
|
+
* DATA-COMPLETE — the block carries the rate and its day; the widget never fetches. A block without a usable currency
|
|
5
|
+
* pair or rate renders nothing and reports `failed`, so the model answers in prose instead of pointing at a widget
|
|
6
|
+
* that is not there.
|
|
7
|
+
*/
|
|
8
|
+
export declare const CurrencyConverterConversationWidget: (props: PayloadConversationWidgetProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type CurrencyConverterPayload } from "../shared/currency-converter-widget-payload";
|
|
2
|
+
export interface CurrencyConverterWidgetProps {
|
|
3
|
+
conversion: CurrencyConverterPayload;
|
|
4
|
+
/** The app's UI language (`de`, `en_US`); numbers, dates and currency names follow it. */
|
|
5
|
+
languageCode?: string;
|
|
6
|
+
/** The e-mail capture: the amount is plain text and there is no swap button. */
|
|
7
|
+
isStatic?: boolean;
|
|
8
|
+
testId?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The currency converter (ChatGPT's `CurrencyConverterWidgetWithSource`): the title above one
|
|
12
|
+
* elevated card with two rows — the amount in the first currency (editable) and its value in the second, a round swap
|
|
13
|
+
* button on the hairline between them — and a footer with the rate and the day it is of. Changing the amount and
|
|
14
|
+
* swapping the currencies recompute in the browser from the one delivered rate; the rate is dated, so the widget says
|
|
15
|
+
* "Rate of <day>" and never "live". The currencies are the delivered pair only — there is no picker.
|
|
16
|
+
*/
|
|
17
|
+
export declare const CurrencyConverterWidget: (props: CurrencyConverterWidgetProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface CurrencyLabelProps {
|
|
2
|
+
currencyCode: string;
|
|
3
|
+
locale: string;
|
|
4
|
+
/** Id of the name line, so the amount field beside it can be named by it. */
|
|
5
|
+
nameId?: string;
|
|
6
|
+
testId?: string;
|
|
7
|
+
}
|
|
8
|
+
/** One currency of the converter: a round flag badge, the ISO code and the currency's name in the UI language. */
|
|
9
|
+
export declare const CurrencyLabel: (props: CurrencyLabelProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `CurrencyConverter` payload: two ISO 4217 codes, the amount, the rate the tool returned and
|
|
3
|
+
* the day the rate is of. DATA-COMPLETE — the widget never re-fetches a rate. The parser is alias-tolerant (a model
|
|
4
|
+
* that transcribes the block may rename a field) and never throws: an unusable payload gives `null`.
|
|
5
|
+
*/
|
|
6
|
+
export interface CurrencyConverterPayload {
|
|
7
|
+
/** ISO 4217, upper case (`EUR`). */
|
|
8
|
+
fromCurrency: string;
|
|
9
|
+
/** ISO 4217, upper case (`USD`). */
|
|
10
|
+
toCurrency: string;
|
|
11
|
+
/** The amount in `fromCurrency` shown first; 1 when the block carries none. */
|
|
12
|
+
amount: number;
|
|
13
|
+
/** 1 `fromCurrency` = `rate` `toCurrency`; always finite and > 0. */
|
|
14
|
+
rate: number;
|
|
15
|
+
/** The day the rate is of (`Y-m-d`); `undefined` when the block carries no valid day. */
|
|
16
|
+
rateDate?: string;
|
|
17
|
+
}
|
|
18
|
+
/** The largest amount the widget accepts — beyond it the float maths stops being exact to the cent. */
|
|
19
|
+
export declare const MAX_CURRENCY_CONVERTER_AMOUNT = 1000000000000;
|
|
20
|
+
/** A finite number, or a numeric string (`"1,12"` and `"1.12"` both read as 1.12). */
|
|
21
|
+
export declare const readCurrencyConverterNumber: (value: unknown) => number | undefined;
|
|
22
|
+
export declare const parseCurrencyConverterPayload: (payload: string | undefined) => CurrencyConverterPayload | null;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How a currency and its numbers read for the owner — all from the browser's `Intl`, in the app's
|
|
3
|
+
* UI language: the currency's name ("US-Dollar"), its symbol ("$"), its flag, an amount, a rate and the day of a rate.
|
|
4
|
+
*/
|
|
5
|
+
/** The locale the numbers are written in: the app's UI language, `en` when it is unset or invalid. */
|
|
6
|
+
export declare const toCurrencyLocale: (languageCode: string | undefined) => string;
|
|
7
|
+
/** The currency's name in the locale ("Euro", "US-Dollar"); the code itself when the browser knows no name. */
|
|
8
|
+
export declare const readCurrencyName: (currencyCode: string, locale: string) => string;
|
|
9
|
+
/** The currency's narrow symbol ("€", "$", "CHF"); the code when there is none. */
|
|
10
|
+
export declare const readCurrencySymbol: (currencyCode: string, locale: string) => string;
|
|
11
|
+
/**
|
|
12
|
+
* The flag emoji of the currency's country — the first two letters of an ISO 4217 code are the ISO 3166 country
|
|
13
|
+
* (`USD` → US); the euro takes the EU flag. Decorative only: the name next to it carries the meaning.
|
|
14
|
+
*/
|
|
15
|
+
export declare const readCurrencyFlag: (currencyCode: string) => string;
|
|
16
|
+
/** An amount with the currency's own number of decimals (2 for EUR, 0 for JPY), grouped for the locale. */
|
|
17
|
+
export declare const formatCurrencyAmount: (amount: number, currencyCode: string, locale: string) => string;
|
|
18
|
+
/** An exact figure without currency rounding (a rate, the exact product): up to six significant digits after rounding. */
|
|
19
|
+
export declare const formatExactNumber: (value: number, locale: string) => string;
|
|
20
|
+
/** The day of a rate (`2026-10-25`) in the locale's medium date style ("25.10.2026", "Oct 25, 2026"). */
|
|
21
|
+
export declare const formatRateDate: (rateDate: string, locale: string) => string;
|
|
22
|
+
/** The amount as it rests in the field: grouped for the locale (`1,250,000`, `1.250.000`), its decimals kept. */
|
|
23
|
+
export declare const formatEditableAmount: (amount: number, locale: string) => string;
|
|
24
|
+
/**
|
|
25
|
+
* The amount the owner typed, or undefined when it is no number: spaces and apostrophes are dropped. When both `.` and
|
|
26
|
+
* `,` occur the LAST one is the decimal mark (`1,250.75`, `1.250,75`); a mark that repeats groups thousands; a lone
|
|
27
|
+
* mark is the decimal mark, except the locale's own grouping mark between a 1-3 digit head and exactly three digits
|
|
28
|
+
* (`1,250` in English is 1250, `1.250` in German too).
|
|
29
|
+
*/
|
|
30
|
+
export declare const parseTypedAmount: (typedText: string, locale?: string) => number | undefined;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { PayloadConversationWidgetProps } from "../../renderer/conversation-widget-props";
|
|
2
|
+
type CustomVisualizationConversationWidgetProps = PayloadConversationWidgetProps;
|
|
3
|
+
/**
|
|
4
|
+
* A visualization the model wrote itself — its own HTML, CSS and JavaScript with the data in the block. DATA-COMPLETE and sandboxed: the code runs in an iframe without same-origin rights
|
|
5
|
+
* under a policy that loads nothing from the network; only allow-listed libraries come along. For what no kit node of
|
|
6
|
+
* `ComposedView` can express (a canvas animation, a custom projection) — never for a table, a chart or a map.
|
|
7
|
+
* Reports `pending` until the script ran, `mounted` then, `failed` for a block it does not run, a script error or a
|
|
8
|
+
* frame that stopped responding. In the e-mail it renders a static preview without the frame.
|
|
9
|
+
*/
|
|
10
|
+
export declare const CustomVisualizationConversationWidget: (props: CustomVisualizationConversationWidgetProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CustomVisualizationPayload } from "../shared/custom-visualization-widget-payload";
|
|
2
|
+
export interface CustomVisualizationFrameProps {
|
|
3
|
+
payload: CustomVisualizationPayload;
|
|
4
|
+
testId?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The model's visualization in its sandbox: an iframe `sandbox="allow-scripts"` (never same-origin,
|
|
8
|
+
* top-navigation, popups or forms) on the configured frame page, which holds the policy `default-src 'none'`. The host
|
|
9
|
+
* sends ONE render message (html, css, script, the allow-listed library sources, the block's data, the chat's colours)
|
|
10
|
+
* and from then on only listens: heights (clamped, rate-limited), heartbeats, "ready" and script errors — from this
|
|
11
|
+
* frame's `contentWindow` with this instance's token only. A frame that stops beating (an endless loop) or never gets
|
|
12
|
+
* ready is removed and the block reports `failed`; a script error reports `failed` and leaves what rendered.
|
|
13
|
+
*/
|
|
14
|
+
export declare const CustomVisualizationFrame: (props: CustomVisualizationFrameProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CustomVisualizationPayload } from "../shared/custom-visualization-widget-payload";
|
|
2
|
+
/** The live widget: the header and the sandboxed frame on one elevated card. */
|
|
3
|
+
export declare const CustomVisualizationWidget: (props: {
|
|
4
|
+
payload: CustomVisualizationPayload;
|
|
5
|
+
testId?: string;
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
/**
|
|
8
|
+
* The e-mail form (in e-mail only a static preview renders): no frame and no script — the header and one
|
|
9
|
+
* flat tile saying the visualization is interactive and lives in the conversation.
|
|
10
|
+
*/
|
|
11
|
+
export declare const CustomVisualizationStaticPreview: (props: {
|
|
12
|
+
title: string;
|
|
13
|
+
description: string;
|
|
14
|
+
testId?: string;
|
|
15
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The message protocol between the chat and the sandbox frame of a CustomVisualization. The frame
|
|
3
|
+
* (`sandbox-frame/custom-visualization-frame.html`) runs the model's code on an opaque origin; everything it says is
|
|
4
|
+
* untrusted. The host therefore accepts a message only when it comes from the frame's own `contentWindow`, names the
|
|
5
|
+
* channel and the per-instance token, has exactly the keys of its type, stays under a size limit and — for a height —
|
|
6
|
+
* carries a finite number, which the host clamps. A message is never a command: the host reads a height, a heartbeat,
|
|
7
|
+
* "ready" and an error line, nothing else.
|
|
8
|
+
*/
|
|
9
|
+
export declare const CUSTOM_VISUALIZATION_FRAME_CHANNEL = "agents-custom-visualization";
|
|
10
|
+
/** The global the visualization's script reads (`window.AGENTS_VISUALIZATION.data`, `.colorScheme`). */
|
|
11
|
+
export declare const CUSTOM_VISUALIZATION_GLOBAL_NAME = "AGENTS_VISUALIZATION";
|
|
12
|
+
/** The prefix of the theme variables the frame sets (`--agents-fg`, `--agents-accent`, …). */
|
|
13
|
+
export declare const CUSTOM_VISUALIZATION_THEME_VARIABLE_PREFIX = "--agents-";
|
|
14
|
+
/** The frame posts a heartbeat every second; this long without one (an endless loop) and the host removes the frame. */
|
|
15
|
+
export declare const CUSTOM_VISUALIZATION_HEARTBEAT_TIMEOUT_MS = 5000;
|
|
16
|
+
/** From the frame's mount until its "ready" (libraries + script ran); longer and the host removes the frame. */
|
|
17
|
+
export declare const CUSTOM_VISUALIZATION_READY_TIMEOUT_MS = 15000;
|
|
18
|
+
/** How often the host checks the two deadlines above. */
|
|
19
|
+
export declare const CUSTOM_VISUALIZATION_WATCHDOG_INTERVAL_MS = 500;
|
|
20
|
+
/** The frame's height is clamped to this range (CSS px). */
|
|
21
|
+
export declare const CUSTOM_VISUALIZATION_MIN_HEIGHT_PX = 80;
|
|
22
|
+
export declare const CUSTOM_VISUALIZATION_MAX_HEIGHT_PX = 1200;
|
|
23
|
+
/** At most this many height messages are applied per second; the rest are ignored. */
|
|
24
|
+
export declare const CUSTOM_VISUALIZATION_MAX_HEIGHT_MESSAGES_PER_SECOND = 20;
|
|
25
|
+
/** A message whose JSON is longer than this is ignored. */
|
|
26
|
+
export declare const CUSTOM_VISUALIZATION_MAX_MESSAGE_CHARS = 1024;
|
|
27
|
+
/** The frame cuts an error line to this length; a longer one is ignored as malformed. */
|
|
28
|
+
export declare const CUSTOM_VISUALIZATION_MAX_ERROR_MESSAGE_CHARS = 300;
|
|
29
|
+
export type CustomVisualizationFrameMessage = {
|
|
30
|
+
type: "heartbeat";
|
|
31
|
+
} | {
|
|
32
|
+
type: "ready";
|
|
33
|
+
} | {
|
|
34
|
+
type: "height";
|
|
35
|
+
height: number;
|
|
36
|
+
} | {
|
|
37
|
+
type: "error";
|
|
38
|
+
message: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* The frame message `event` carries, or null when it is not one: another window sent it, the token or channel is not
|
|
42
|
+
* this instance's, a key is missing or extra, the message is too large, or a value has the wrong type.
|
|
43
|
+
*/
|
|
44
|
+
export declare const readCustomVisualizationFrameMessage: (event: Pick<MessageEvent, "data" | "source">, expectedSource: MessageEventSource | null, expectedToken: string) => CustomVisualizationFrameMessage | null;
|
|
45
|
+
/** A height the frame asked for, as the host applies it: rounded up and clamped to the allowed range. */
|
|
46
|
+
export declare const clampCustomVisualizationHeight: (requestedHeight: number) => number;
|
|
47
|
+
/**
|
|
48
|
+
* Whether one more height message may be applied now: keeps the times of the applied ones of the last second in
|
|
49
|
+
* `appliedAtTimes` (mutated) and refuses beyond {@link CUSTOM_VISUALIZATION_MAX_HEIGHT_MESSAGES_PER_SECOND}.
|
|
50
|
+
*/
|
|
51
|
+
export declare const admitCustomVisualizationHeightMessage: (appliedAtTimes: number[], now: number) => boolean;
|
|
52
|
+
/** A fresh per-instance token: 128 random bits as hex. */
|
|
53
|
+
export declare const createCustomVisualizationInstanceToken: () => string;
|
|
54
|
+
/** The one message the host sends: everything the frame shows and runs. */
|
|
55
|
+
export interface CustomVisualizationRenderMessage {
|
|
56
|
+
channel: typeof CUSTOM_VISUALIZATION_FRAME_CHANNEL;
|
|
57
|
+
type: "render";
|
|
58
|
+
token: string;
|
|
59
|
+
html: string;
|
|
60
|
+
css: string;
|
|
61
|
+
script: string;
|
|
62
|
+
librarySources: string[];
|
|
63
|
+
data: unknown;
|
|
64
|
+
/** The theme variables under the package's prefix (`--agents-fg` → a resolved colour). */
|
|
65
|
+
theme: Record<string, string>;
|
|
66
|
+
colorScheme: "light" | "dark";
|
|
67
|
+
/**
|
|
68
|
+
* Further names the frame defines the same frozen global under, beside `AGENTS_VISUALIZATION` — the names the app
|
|
69
|
+
* declares (`AgentsEnvironment.sandboxLegacyAliases.visualizationGlobalNames`). Empty without a declaration.
|
|
70
|
+
*/
|
|
71
|
+
visualizationGlobalNames: string[];
|
|
72
|
+
/**
|
|
73
|
+
* Further prefixes the frame sets every theme variable under, beside `--agents-` — the prefixes the app declares
|
|
74
|
+
* (`AgentsEnvironment.sandboxLegacyAliases.themeVariablePrefixes`). Empty without a declaration.
|
|
75
|
+
*/
|
|
76
|
+
themeVariablePrefixes: string[];
|
|
77
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The fixed allow-list of libraries a CustomVisualization may ask for (libraries from a fixed allow-list
|
|
3
|
+
* served by us). Each bundle is a pinned copy in `sandbox-frame/libraries/` (stored as `.txt`, so linters and type
|
|
4
|
+
* checks skip the minified code), loaded lazily into its own chunk of our build and handed to the sandbox frame inside
|
|
5
|
+
* the render message — the frame loads no script from any URL. The SHA-256 of each file is pinned here and checked by
|
|
6
|
+
* `sandbox-frame/_custom-visualization-frame.spec.ts`, so a changed bundle is a deliberate re-pin. A block that names a
|
|
7
|
+
* library outside this list is not run (it reports `failed`).
|
|
8
|
+
*/
|
|
9
|
+
export interface CustomVisualizationLibrary {
|
|
10
|
+
/** The name the block writes in `libraries`. */
|
|
11
|
+
name: string;
|
|
12
|
+
version: string;
|
|
13
|
+
/** The global the bundle defines in the frame (`window.d3`). */
|
|
14
|
+
globalName: string;
|
|
15
|
+
/** The bundle file in `sandbox-frame/libraries/`. */
|
|
16
|
+
fileName: string;
|
|
17
|
+
/** SHA-256 of the file, hex. */
|
|
18
|
+
sha256: string;
|
|
19
|
+
loadSource: () => Promise<string>;
|
|
20
|
+
}
|
|
21
|
+
export declare const CUSTOM_VISUALIZATION_LIBRARIES: readonly CustomVisualizationLibrary[];
|
|
22
|
+
export declare const CUSTOM_VISUALIZATION_LIBRARY_NAMES: readonly string[];
|
|
23
|
+
export declare const findCustomVisualizationLibrary: (libraryName: string) => CustomVisualizationLibrary | undefined;
|
|
24
|
+
/** The sources of the named libraries, in the given order; every name must be on the allow-list. */
|
|
25
|
+
export declare const loadCustomVisualizationLibrarySources: (libraryNames: readonly string[]) => Promise<string[]>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the sandbox frame of a CustomVisualization is served from — committed configuration, no
|
|
3
|
+
* environment switch.
|
|
4
|
+
*
|
|
5
|
+
* `frameUrl: null` (the default) uses the frame page our own build emits (`app-build/assets/custom-visualization-frame-
|
|
6
|
+
* <hash>.html`, the Vite dev server's copy locally): the app's own origin. The frame is still sandboxed
|
|
7
|
+
* (`sandbox="allow-scripts"`, an opaque origin: no cookies, no storage, no access to the chat's DOM), and Chromium puts
|
|
8
|
+
* a sandboxed frame into a process of its own; a browser that does not (Safari, a Chromium without site isolation) runs
|
|
9
|
+
* it in the chat's process, so an endless loop in the model's script can freeze the chat before the watchdog removes
|
|
10
|
+
* the frame.
|
|
11
|
+
*
|
|
12
|
+
* Set `frameUrl` to the absolute URL of the same `custom-visualization-frame.html` on a host of ANOTHER registrable
|
|
13
|
+
* domain (a separate site — a subdomain of the app's domain is the same site) to have every browser with site isolation
|
|
14
|
+
* run it out of process. The file is self-contained (no relative references); the libraries travel in the render
|
|
15
|
+
* message, so that host serves this one static file and nothing else.
|
|
16
|
+
*/
|
|
17
|
+
export declare const CUSTOM_VISUALIZATION_SANDBOX_CONFIG: {
|
|
18
|
+
frameUrl: string | null;
|
|
19
|
+
};
|
|
20
|
+
/** The frame URL the widget loads. */
|
|
21
|
+
export declare const resolveCustomVisualizationFrameUrl: () => string;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The payload of a CustomVisualization block: the model's own HTML, CSS and JavaScript plus the data the
|
|
3
|
+
* script draws, run in a sandboxed frame. DATA-COMPLETE: the block carries everything; the frame fetches nothing.
|
|
4
|
+
* Mirrors the backend class `CustomVisualizationConversationWidget` (fields, the source cap and its measure).
|
|
5
|
+
*/
|
|
6
|
+
export interface CustomVisualizationPayload {
|
|
7
|
+
title: string;
|
|
8
|
+
description: string;
|
|
9
|
+
html: string;
|
|
10
|
+
css: string;
|
|
11
|
+
script: string;
|
|
12
|
+
/** Names on the allow-list (`custom-visualization-libraries.ts`), loaded before the script. */
|
|
13
|
+
libraries: string[];
|
|
14
|
+
/** Any JSON the script reads as `window.AGENTS_VISUALIZATION.data`; null when the block has none. */
|
|
15
|
+
data: unknown;
|
|
16
|
+
/** The frame's height before the frame reports its own (CSS px, clamped). */
|
|
17
|
+
initialHeight: number;
|
|
18
|
+
}
|
|
19
|
+
export type CustomVisualizationPayloadProblem = {
|
|
20
|
+
code: "NO_CONTENT";
|
|
21
|
+
detail: string;
|
|
22
|
+
} | {
|
|
23
|
+
code: "SOURCE_TOO_LARGE";
|
|
24
|
+
detail: string;
|
|
25
|
+
} | {
|
|
26
|
+
code: "UNKNOWN_LIBRARY";
|
|
27
|
+
detail: string;
|
|
28
|
+
};
|
|
29
|
+
export type ParsedCustomVisualizationPayload = {
|
|
30
|
+
isValid: true;
|
|
31
|
+
payload: CustomVisualizationPayload;
|
|
32
|
+
sourceBytes: number;
|
|
33
|
+
} | {
|
|
34
|
+
isValid: false;
|
|
35
|
+
problem: CustomVisualizationPayloadProblem;
|
|
36
|
+
title: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* The most source a block may carry: the UTF-8 bytes of `html` + `css` + `script` + the JSON of `data`. Backend twin:
|
|
40
|
+
* `CustomVisualizationConversationWidget::MAX_SOURCE_BYTES`.
|
|
41
|
+
*/
|
|
42
|
+
export declare const CUSTOM_VISUALIZATION_MAX_SOURCE_BYTES = 65536;
|
|
43
|
+
/** The frame's height when the block names none. */
|
|
44
|
+
export declare const CUSTOM_VISUALIZATION_DEFAULT_HEIGHT_PX = 360;
|
|
45
|
+
/**
|
|
46
|
+
* The bytes the source cap counts: `html`, `css`, `script` and the compact JSON of `data` (nothing for no data), as
|
|
47
|
+
* UTF-8 — the backend's `measureSourceBytes()` counts the same.
|
|
48
|
+
*/
|
|
49
|
+
export declare const measureCustomVisualizationSourceBytes: (payload: Pick<CustomVisualizationPayload, "html" | "css" | "script" | "data">) => number;
|
|
50
|
+
/**
|
|
51
|
+
* Reads a block's payload. Alias-tolerant (`markup` / `styles` / `js` / `code`, `subtitle` / `caption`, `libs`,
|
|
52
|
+
* `initialHeight`), never throws: a malformed payload, a block without HTML and script, a source above the cap or a
|
|
53
|
+
* library outside the allow-list comes back invalid with the problem the widget reports.
|
|
54
|
+
*/
|
|
55
|
+
export declare const parseCustomVisualizationPayload: (rawPayload: string | undefined) => ParsedCustomVisualizationPayload;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { EntityMentionTarget } from "../shared/entity-mention";
|
|
2
|
+
export interface EntityMentionAskButtonProps extends EntityMentionTarget {
|
|
3
|
+
testId?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* The detail panel's "Ask about this" button (ChatGPT's "Anschlussfrage stellen"):
|
|
7
|
+
* puts the entity into the chat input as an `EntityMention` chip and sends NOTHING — the owner writes the question,
|
|
8
|
+
* the chip rides in that message as a fence, and the backend reads which entity the question is about. Not a
|
|
9
|
+
* next-step CTA: it posts no prompt. A second click on the same entity changes nothing; the
|
|
10
|
+
* label turns into "Added to your message". Mounted by the `entityDetail` canvas (the shell or a domain body) with
|
|
11
|
+
* the entity the panel shows; renders nothing in the e-mail capture or for a target that names no entity.
|
|
12
|
+
*/
|
|
13
|
+
export declare const EntityMentionAskButton: (props: EntityMentionAskButtonProps) => import("react/jsx-runtime").JSX.Element | null;
|
package/dist/types/widgets/EntityMentionConversationWidget/EntityMentionCard/EntityMentionCard.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EntityMentionFields } from "../shared/entity-mention";
|
|
2
|
+
export interface EntityMentionCardProps {
|
|
3
|
+
mention: EntityMentionFields;
|
|
4
|
+
testId?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The read-only echo of ONE mentioned entity above the owner's own message: a small elevated card with the entity
|
|
8
|
+
* type's icon in a rounded tile, the caption "Asking about" and the entity's name below it. The name is business
|
|
9
|
+
* content (`ModelText`: never translated, never parsed as markup); without one the line names the type ("This review").
|
|
10
|
+
*/
|
|
11
|
+
export declare const EntityMentionCard: (props: EntityMentionCardProps) => import("react/jsx-runtime").JSX.Element;
|
package/dist/types/widgets/EntityMentionConversationWidget/EntityMentionConversationWidget.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PayloadConversationWidgetProps } from "../../renderer/conversation-widget-props";
|
|
2
|
+
/**
|
|
3
|
+
* The registry `component` of `EntityMention`: the read-only echo of the entity the owner asked
|
|
4
|
+
* about, shown above the prose of the owner's OWN message (`ConversationMessageUserWidgets`) — the entity's card (type icon,
|
|
5
|
+
* "Asking about", name) in place of the composer's chip. The owner put it there with the detail panel's "Ask about this" button
|
|
6
|
+
* (`EntityMentionAskButton`); the agent never writes it. A payload that names no entity renders nothing and reports
|
|
7
|
+
* `failed INVALID_PROP`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const EntityMentionConversationWidget: (props: PayloadConversationWidgetProps) => import("react/jsx-runtime").JSX.Element | null;
|
package/dist/types/widgets/EntityMentionConversationWidget/shared/entity-mention-presentation.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type AgentsIconName } from "../../../provider/components";
|
|
2
|
+
export declare const FALLBACK_ENTITY_LABEL = "About this entry";
|
|
3
|
+
export declare const entityTypeIcon: (entityType: string) => AgentsIconName;
|
|
4
|
+
export declare const entityTypeFallbackLabel: (entityType: string) => string;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare const ENTITY_MENTION_WIDGET_NAME = "EntityMention";
|
|
2
|
+
/** Most entities one message mentions — one more "Ask about this" drops the oldest mention. */
|
|
3
|
+
export declare const MAX_ENTITY_MENTIONS_PER_MESSAGE = 5;
|
|
4
|
+
/** Longest display name carried into the message (the name is shown, never trusted — the id identifies). */
|
|
5
|
+
export declare const MAX_ENTITY_MENTION_LABEL_LENGTH = 120;
|
|
6
|
+
export interface EntityMentionFields {
|
|
7
|
+
entityType: string;
|
|
8
|
+
entityId: string;
|
|
9
|
+
/** The entity's name as the panel showed it; null when the opener knew none. */
|
|
10
|
+
label: string | null;
|
|
11
|
+
/** The key of the agent space the entity belongs to; null = the chat's agent space. */
|
|
12
|
+
agentSpaceKey: number | null;
|
|
13
|
+
}
|
|
14
|
+
/** What an opener (the detail panel's button) knows about the entity. */
|
|
15
|
+
export interface EntityMentionTarget {
|
|
16
|
+
entityType: string;
|
|
17
|
+
entityId: string | number;
|
|
18
|
+
label?: string | null;
|
|
19
|
+
agentSpaceKey?: number | null;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The mention a fence's fields (or a composer widget's fields) carry, or null when they name no entity. Tolerates the
|
|
23
|
+
* spellings a copy might use (`type`/`kind` for the type, `id` for the id, `name`/`title` for the label).
|
|
24
|
+
*/
|
|
25
|
+
export declare const normalizeEntityMentionFields: (fields: unknown) => EntityMentionFields | null;
|
|
26
|
+
/** The mention a widget `payload` (the fence's JSON string) carries, or null. */
|
|
27
|
+
export declare const parseEntityMentionPayload: (payload: string | undefined) => EntityMentionFields | null;
|
|
28
|
+
/** The composer widget's fields for an opener's target, or null for a target that names no entity. */
|
|
29
|
+
export declare const buildEntityMentionFields: (target: EntityMentionTarget) => EntityMentionFields | null;
|
|
30
|
+
/** The fields as the fence carries them: a null label or agent space key is not written. */
|
|
31
|
+
export declare const toEntityMentionWireFields: (mention: EntityMentionFields) => Record<string, unknown>;
|
|
32
|
+
/** Identity of a mention: one entity is mentioned once per message. */
|
|
33
|
+
export declare const entityMentionKey: (mention: Pick<EntityMentionFields, "entityType" | "entityId">) => string;
|
package/dist/types/widgets/EntityMentionConversationWidget/shared/use-entity-mention-composer.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EntityMentionTarget } from "./entity-mention";
|
|
2
|
+
export interface UseEntityMentionComposerResult {
|
|
3
|
+
/** Whether this entity is already mentioned in the composer. */
|
|
4
|
+
isMentioned: (target: EntityMentionTarget) => boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Puts the entity into the composer as an `EntityMention` chip — once per entity (a second click is a no-op); past
|
|
7
|
+
* {@link MAX_ENTITY_MENTIONS_PER_MESSAGE} the new entity takes the place of the oldest mention (one write: a remove
|
|
8
|
+
* and an add in one event would both read the list before either). Sends nothing: the owner writes the question.
|
|
9
|
+
* Returns false for a target that names no entity.
|
|
10
|
+
*/
|
|
11
|
+
mentionEntity: (target: EntityMentionTarget) => boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The opener side of the `EntityMention` composer widget: what the detail panel's "Ask about this"
|
|
15
|
+
* button calls. Reads and writes the composer widgets of the chat's widget context; the composer strip renders them.
|
|
16
|
+
*/
|
|
17
|
+
export declare const useEntityMentionComposer: () => UseEntityMentionComposerResult;
|
package/dist/types/widgets/MultiChoiceConversationWidget/shared/multi-choice-widget-payload.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface MultiChoiceOption {
|
|
2
|
+
label: string;
|
|
3
|
+
sublabel?: string;
|
|
4
|
+
value: string;
|
|
5
|
+
selected?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface MultiChoicePayload {
|
|
8
|
+
title?: string;
|
|
9
|
+
subtitle?: string;
|
|
10
|
+
options: MultiChoiceOption[];
|
|
11
|
+
selectAllLabel?: string;
|
|
12
|
+
confirmLabelTemplate?: string;
|
|
13
|
+
confirmAction?: string;
|
|
14
|
+
}
|
|
15
|
+
/** The `MultiChoice` fence payload: an object with an `options` list; anything else renders nothing. */
|
|
16
|
+
export declare const parseMultiChoicePayload: (raw: string) => MultiChoicePayload | null;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { PayloadConversationWidgetProps } from "../../renderer/conversation-widget-props";
|
|
2
|
+
type QuickRepliesConversationWidgetProps = PayloadConversationWidgetProps;
|
|
3
|
+
/**
|
|
4
|
+
* A "placeholder option" is a QuickReplies option that is a TEMPLATE with a blank rather than a complete answer the
|
|
5
|
+
* owner could send as-is (the backend has a hard rule against this — this predicate is the widget's
|
|
6
|
+
* own backstop, since a malformed agent turn can still emit one). Three tells, any one is enough: an ellipsis
|
|
7
|
+
* (`…` or `...`), a bracketed/underscore blank (`[...]`, `[…]`, `___`),
|
|
8
|
+
* or the option simply ending in a colon (introduces an answer it never supplies). Clicking such an option must
|
|
9
|
+
* never send its literal text — see `handleClick` below.
|
|
10
|
+
*/
|
|
11
|
+
export declare const isQuickReplyPlaceholderOption: (option: string) => boolean;
|
|
12
|
+
/**
|
|
13
|
+
* The text a placeholder-option click puts into the composer: every blank marker removed, trailing whitespace
|
|
14
|
+
* trimmed, then ONE trailing space so the owner's cursor lands ready to type (e.g. `"Yes, we deliver to these
|
|
15
|
+
* areas: …"` → `"Yes, we deliver to these areas: "`). A colon-only ending (no separate marker) is left as-is before
|
|
16
|
+
* the trailing space is added — the colon is the prompt, not the blank.
|
|
17
|
+
*/
|
|
18
|
+
export declare const stripQuickReplyPlaceholderMarker: (option: string) => string;
|
|
19
|
+
/**
|
|
20
|
+
* The closed-question answer pills (a backend hard rule): two to five short options, each a
|
|
21
|
+
* complete answer the owner could also type. A click posts that option's text as the owner's message — single pick,
|
|
22
|
+
* never a multi-select (that is `MultiChoiceConversationWidget`).
|
|
23
|
+
*
|
|
24
|
+
* A placeholder option (`isQuickReplyPlaceholderOption`) is the one exception: it never sends. The click instead
|
|
25
|
+
* puts the stripped text into the composer and focuses it (`prefillComposer`), so the owner completes the sentence
|
|
26
|
+
* themselves instead of the literal blank going out as their message.
|
|
27
|
+
*
|
|
28
|
+
* Locks only once the host CONFIRMS the send was accepted (`sendMessageToChat`'s `void | Promise<boolean>`
|
|
29
|
+
* contract) — a rejected send (a closed conversation, an in-flight start) leaves the pills clickable again, and a
|
|
30
|
+
* second click while one is already in flight is ignored. Once locked, the pills give way to one pill naming the
|
|
31
|
+
* chosen answer (`DonePill`).
|
|
32
|
+
*
|
|
33
|
+
* Bound to its own host message (`messageId`): once a NEWER owner message exists in the conversation (the owner
|
|
34
|
+
* typed past it, or answered a later question), the widget goes inert — `interactive` alone does not catch this,
|
|
35
|
+
* since it stays true for the rest of the live session, not just until the next owner message.
|
|
36
|
+
*/
|
|
37
|
+
export declare const QuickRepliesConversationWidget: (props: QuickRepliesConversationWidgetProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
38
|
+
export {};
|
package/dist/types/widgets/QuickRepliesConversationWidget/shared/quick-replies-widget-payload.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `QuickReplies` fence payload (a backend hard rule): a closed question answered by SHORT
|
|
3
|
+
* pills, each a complete answer the owner could also type. Validated strictly — an invalid payload renders nothing
|
|
4
|
+
* (the widget's own kill switch, same as an unresolved wire name).
|
|
5
|
+
*/
|
|
6
|
+
export interface QuickRepliesPayload {
|
|
7
|
+
options: string[];
|
|
8
|
+
}
|
|
9
|
+
export declare const QUICK_REPLIES_MIN_OPTIONS = 2;
|
|
10
|
+
export declare const QUICK_REPLIES_MAX_OPTIONS = 5;
|
|
11
|
+
/** Longer options are cut with an ellipsis for DISPLAY only — the click still sends the option in full. */
|
|
12
|
+
export declare const QUICK_REPLIES_MAX_DISPLAY_LENGTH = 60;
|
|
13
|
+
/**
|
|
14
|
+
* `options` must be an array of 2 to 5 strings, each non-empty after trimming and unique (case-insensitive) — a
|
|
15
|
+
* malformed shape or a violated bound drops the whole widget. Options are NOT silently deduplicated: a payload the
|
|
16
|
+
* agent got wrong (two options that only differ by case) is invalid, not quietly repaired.
|
|
17
|
+
*/
|
|
18
|
+
export declare const parseQuickRepliesPayload: (raw: string) => QuickRepliesPayload | null;
|
|
19
|
+
/** The rendered pill label — never what is sent (the click always sends the full, untruncated option text). */
|
|
20
|
+
export declare const truncateQuickReplyLabel: (option: string) => string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseConversationWidgetProps } from "../../renderer/conversation-widget-props";
|
|
2
|
+
export interface SuggestedAction {
|
|
3
|
+
displayText: string;
|
|
4
|
+
userAction: string;
|
|
5
|
+
}
|
|
6
|
+
interface SuggestedActionsProps extends BaseConversationWidgetProps {
|
|
7
|
+
options: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const SuggestedActions: ({ options, interactive }: SuggestedActionsProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PayloadConversationWidgetProps } from "../../renderer/conversation-widget-props";
|
|
2
|
+
type ToolTraceConversationWidgetProps = PayloadConversationWidgetProps;
|
|
3
|
+
/**
|
|
4
|
+
* Renders a muted single-line trace for a tool_use assistant part.
|
|
5
|
+
* Renders both on live delivery and history replay — never executes.
|
|
6
|
+
*/
|
|
7
|
+
export declare const ToolTraceConversationWidget: (props: ToolTraceConversationWidgetProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Best-effort hostname for an untitled source, so the link still reads as a place rather than a raw URL. */
|
|
2
|
+
export declare const hostnameOf: (url: string) => string;
|
|
3
|
+
/**
|
|
4
|
+
* The site's favicon (the small per-site icon WhatsApp/Slack show on a link), resolved from the Google favicon service
|
|
5
|
+
* by domain. Falls back to the generic link glyph if the icon fails to load (no favicon, offline) — never a broken
|
|
6
|
+
* image.
|
|
7
|
+
*/
|
|
8
|
+
export declare const SourceFavicon: ({ hostname }: {
|
|
9
|
+
hostname: string;
|
|
10
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type WebSearchAnswerProps = {
|
|
2
|
+
answer: string;
|
|
3
|
+
};
|
|
4
|
+
/** The answer body — rendered as markdown so headings, lists and inline links from the provider show properly. */
|
|
5
|
+
export declare const WebSearchAnswer: (props: WebSearchAnswerProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { WebSearchResultSource } from "./shared/web-search-results-widget-payload";
|
|
2
|
+
export interface WebSearchReferencesProps {
|
|
3
|
+
sources: WebSearchResultSource[];
|
|
4
|
+
testId?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The references of a web research answer the agent wrote itself: one link chip per page it used — the
|
|
8
|
+
* site's favicon and its name (the page title instead when several pages of one site are listed, so no two chips read
|
|
9
|
+
* the same), the page title on hover — placed by the agent under its own prose answer. Each opens the
|
|
10
|
+
* page in a new tab. A chip wears the agent tray pill surface (Scheduled / Done) so the sources belong to the board.
|
|
11
|
+
*/
|
|
12
|
+
export declare const WebSearchReferences: (props: WebSearchReferencesProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { WebSearchResultSource } from "./shared/web-search-results-widget-payload";
|
|
2
|
+
type WebSearchResultsCanvasProps = {
|
|
3
|
+
query: string;
|
|
4
|
+
answer: string;
|
|
5
|
+
sources: WebSearchResultSource[];
|
|
6
|
+
provider?: string;
|
|
7
|
+
};
|
|
8
|
+
/** The canvas body — the full answer + sources, scrollable + inset like the other canvas widgets. */
|
|
9
|
+
export declare const WebSearchResultsCanvas: (props: WebSearchResultsCanvasProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CanvasBodyProps } from "../../renderer/canvas/canvas-body-props";
|
|
2
|
+
/**
|
|
3
|
+
* The `webSearchResults` CANVAS BODY (`canvasBodies.tsx`): re-reads the `WebSearchResults` fence of the anchor message
|
|
4
|
+
* — the answer and its cited sources the inline widget rendered from — and shows them in the canvas. Renders nothing
|
|
5
|
+
* when the anchor message no longer carries the fence.
|
|
6
|
+
*/
|
|
7
|
+
export declare const WebSearchResultsCanvasBody: ({ canvas, anchorMessageMarkdown }: CanvasBodyProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PayloadConversationWidgetProps } from "../../renderer/conversation-widget-props";
|
|
2
|
+
type WebSearchResultsConversationWidgetProps = PayloadConversationWidgetProps;
|
|
3
|
+
/**
|
|
4
|
+
* The references of a web research answer: the agent writes its answer as prose and puts this widget under it with the
|
|
5
|
+
* pages it used (`sources` only) — rendered as link chips with each site's favicon ({@link WebSearchReferences}).
|
|
6
|
+
* DATA-COMPLETE: it renders entirely from the payload; it NEVER re-runs the search.
|
|
7
|
+
*
|
|
8
|
+
* Legacy form (older stored messages): a payload with an `answer` renders the full answer card below.
|
|
9
|
+
*
|
|
10
|
+
* Renders INLINE in the message (answer markdown + the cited sources, each with its site favicon). It only opens in the
|
|
11
|
+
* canvas side panel if the agent explicitly sets `display: "canvas"` — by default a web answer stays inline.
|
|
12
|
+
*/
|
|
13
|
+
export declare const WebSearchResultsConversationWidget: (props: WebSearchResultsConversationWidgetProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { WebSearchResultSource } from "./shared/web-search-results-widget-payload";
|
|
2
|
+
type WebSearchSourcesListProps = {
|
|
3
|
+
sources: WebSearchResultSource[];
|
|
4
|
+
provider?: string;
|
|
5
|
+
testId?: string;
|
|
6
|
+
};
|
|
7
|
+
/** The cited sources — a numbered list of links, each opening in a new tab with the site's favicon; falls back to the
|
|
8
|
+
* hostname when untitled. */
|
|
9
|
+
export declare const WebSearchSourcesList: (props: WebSearchSourcesListProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
export {};
|