@ai-matrx/chat 0.1.74 → 0.2.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/CHANGELOG.md +43 -0
- package/dist/action-requests/components/ActionRequestAnswerForm.d.ts +57 -0
- package/dist/action-requests/components/ActionRequestAnswerForm.js +554 -0
- package/dist/action-requests/components/ActionRequestInlineAnswer.d.ts +6 -0
- package/dist/action-requests/components/ActionRequestInlineAnswer.js +42 -0
- package/dist/action-requests/components/ParkedOnPersonCard.d.ts +6 -0
- package/dist/action-requests/components/ParkedOnPersonCard.js +77 -0
- package/dist/action-requests/components/spendAmount.d.ts +26 -0
- package/dist/action-requests/components/spendAmount.js +29 -0
- package/dist/action-requests/hooks/usePendingActionRequest.d.ts +22 -0
- package/dist/action-requests/hooks/usePendingActionRequest.js +66 -0
- package/dist/action-requests/hooks/useToolAction.d.ts +40 -0
- package/dist/action-requests/hooks/useToolAction.js +197 -0
- package/dist/action-requests/render-types.d.ts +280 -0
- package/dist/action-requests/render-types.js +0 -0
- package/dist/action-requests/screen-run.d.ts +70 -0
- package/dist/action-requests/screen-run.js +36 -0
- package/dist/action-requests/self-service.d.ts +26 -0
- package/dist/action-requests/self-service.js +28 -0
- package/dist/agent-copy/AlchemySurfaceBridge.d.ts +14 -0
- package/dist/agent-copy/AlchemySurfaceBridge.js +48 -0
- package/dist/agent-copy/alchemy-session.d.ts +46 -0
- package/dist/agent-copy/alchemy-session.js +32 -0
- package/dist/agent-copy/buildAgentPayload.d.ts +2 -0
- package/dist/agent-copy/buildAgentPayload.js +8 -0
- package/dist/agent-copy/clipboard.d.ts +8 -0
- package/dist/agent-copy/clipboard.js +19 -0
- package/dist/agent-copy/export.d.ts +37 -0
- package/dist/agent-copy/export.js +88 -0
- package/dist/agent-copy/page-capture/pageCapture.d.ts +153 -0
- package/dist/agent-copy/page-capture/pageCapture.js +411 -0
- package/dist/agents/addressing/agentAddress.d.ts +176 -0
- package/dist/agents/addressing/agentAddress.js +69 -0
- package/dist/agents/addressing/agentAddressCache.d.ts +45 -0
- package/dist/agents/addressing/agentAddressCache.js +90 -0
- package/dist/agents/addressing/useAgentHref.d.ts +29 -0
- package/dist/agents/addressing/useAgentHref.js +71 -0
- package/dist/agents/agent-context/buildAgentBuilderContextData.d.ts +26 -0
- package/dist/agents/agent-context/buildAgentBuilderContextData.js +31 -0
- package/dist/agents/agent-context/resource-reference.d.ts +21 -0
- package/dist/agents/agent-context/resource-reference.js +31 -0
- package/dist/agents/agents-hub-catalog-filter-contract.d.ts +26 -0
- package/dist/agents/agents-hub-catalog-filter-contract.js +143 -0
- package/dist/agents/api/fetch-pending-calls.d.ts +41 -0
- package/dist/agents/api/fetch-pending-calls.js +73 -0
- package/dist/agents/api/person-declined-tool-output.d.ts +46 -0
- package/dist/agents/api/person-declined-tool-output.js +18 -0
- package/dist/agents/api/settle-client-tool-call.d.ts +45 -0
- package/dist/agents/api/settle-client-tool-call.js +70 -0
- package/dist/agents/api/submit-tool-results.d.ts +106 -0
- package/dist/agents/api/submit-tool-results.js +264 -0
- package/dist/agents/components/AutoSubmitForm.d.ts +5 -0
- package/dist/agents/components/AutoSubmitForm.js +16 -0
- package/dist/agents/components/agent-widgets/AgentChatBubble.d.ts +6 -0
- package/dist/agents/components/agent-widgets/AgentChatBubble.js +67 -0
- package/dist/agents/components/agent-widgets/AgentChatHistorySidebar.d.ts +5 -0
- package/dist/agents/components/agent-widgets/AgentChatHistorySidebar.js +131 -0
- package/dist/agents/components/agent-widgets/AgentCompactModal.d.ts +6 -0
- package/dist/agents/components/agent-widgets/AgentCompactModal.js +44 -0
- package/dist/agents/components/agent-widgets/AgentFlexiblePanel.d.ts +8 -0
- package/dist/agents/components/agent-widgets/AgentFlexiblePanel.js +48 -0
- package/dist/agents/components/agent-widgets/AgentFloatingChat.d.ts +8 -0
- package/dist/agents/components/agent-widgets/AgentFloatingChat.js +48 -0
- package/dist/agents/components/agent-widgets/AgentFullModal.d.ts +6 -0
- package/dist/agents/components/agent-widgets/AgentFullModal.js +43 -0
- package/dist/agents/components/agent-widgets/AgentInlineOverlay.d.ts +6 -0
- package/dist/agents/components/agent-widgets/AgentInlineOverlay.js +88 -0
- package/dist/agents/components/agent-widgets/AgentPanelOverlay.d.ts +6 -0
- package/dist/agents/components/agent-widgets/AgentPanelOverlay.js +45 -0
- package/dist/agents/components/agent-widgets/AgentSidebarOverlay.d.ts +6 -0
- package/dist/agents/components/agent-widgets/AgentSidebarOverlay.js +45 -0
- package/dist/agents/components/agent-widgets/AgentToastOverlay.d.ts +7 -0
- package/dist/agents/components/agent-widgets/AgentToastOverlay.js +190 -0
- package/dist/agents/components/agent-widgets/ChatCollapsible.d.ts +6 -0
- package/dist/agents/components/agent-widgets/ChatCollapsible.js +150 -0
- package/dist/agents/components/agent-widgets/chat-assistant/AgentChatAssistant.d.ts +7 -0
- package/dist/agents/components/agent-widgets/chat-assistant/AgentChatAssistant.js +162 -0
- package/dist/agents/components/agent-widgets/chat-assistant/AssistantCardStack.d.ts +11 -0
- package/dist/agents/components/agent-widgets/chat-assistant/AssistantCardStack.js +131 -0
- package/dist/agents/components/agent-widgets/chat-assistant/AssistantControlBar.d.ts +12 -0
- package/dist/agents/components/agent-widgets/chat-assistant/AssistantControlBar.js +82 -0
- package/dist/agents/components/agent-widgets/chat-assistant/AssistantMessageCard.d.ts +7 -0
- package/dist/agents/components/agent-widgets/chat-assistant/AssistantMessageCard.js +33 -0
- package/dist/agents/components/agent-widgets/chat-assistant/ChatAssistantVariableInputs.d.ts +6 -0
- package/dist/agents/components/agent-widgets/chat-assistant/ChatAssistantVariableInputs.js +199 -0
- package/dist/agents/components/agent-widgets/chat-assistant/CompactAssistantInput.d.ts +5 -0
- package/dist/agents/components/agent-widgets/chat-assistant/CompactAssistantInput.js +224 -0
- package/dist/agents/components/agent-widgets/chat-assistant/StatusCard.d.ts +6 -0
- package/dist/agents/components/agent-widgets/chat-assistant/StatusCard.js +21 -0
- package/dist/agents/components/agent-widgets/chat-assistant/UserMessageCard.d.ts +6 -0
- package/dist/agents/components/agent-widgets/chat-assistant/UserMessageCard.js +11 -0
- package/dist/agents/components/agent-widgets/chat-assistant/VariableInputCard.d.ts +12 -0
- package/dist/agents/components/agent-widgets/chat-assistant/VariableInputCard.js +7 -0
- package/dist/agents/components/agent-widgets/chat-assistant/useAssistantHeartbeat.d.ts +7 -0
- package/dist/agents/components/agent-widgets/chat-assistant/useAssistantHeartbeat.js +43 -0
- package/dist/agents/components/agent-widgets/execution-gates/AgentGateInput.d.ts +7 -0
- package/dist/agents/components/agent-widgets/execution-gates/AgentGateInput.js +150 -0
- package/dist/agents/components/agent-widgets/execution-gates/PreExecutionCard.d.ts +4 -0
- package/dist/agents/components/agent-widgets/execution-gates/PreExecutionCard.js +81 -0
- package/dist/agents/components/agent-widgets/useAgentShellAddress.d.ts +2 -0
- package/dist/agents/components/agent-widgets/useAgentShellAddress.js +17 -0
- package/dist/agents/components/ambient-assistant/ScrollAssistantLauncher.d.ts +13 -0
- package/dist/agents/components/ambient-assistant/ScrollAssistantLauncher.js +91 -0
- package/dist/agents/components/ambient-assistant/ScrollAssistantLauncherImpl.d.ts +4 -0
- package/dist/agents/components/ambient-assistant/ScrollAssistantLauncherImpl.js +249 -0
- package/dist/agents/components/ambient-assistant/ScrollVoiceAssistantLauncherImpl.d.ts +1 -0
- package/dist/agents/components/ambient-assistant/ScrollVoiceAssistantLauncherImpl.js +440 -0
- package/dist/agents/components/ambient-assistant/ambientAssistantMandates.d.ts +32 -0
- package/dist/agents/components/ambient-assistant/ambientAssistantMandates.js +67 -0
- package/dist/agents/components/ambient-assistant/ambientAssistantSuppression.d.ts +4 -0
- package/dist/agents/components/ambient-assistant/ambientAssistantSuppression.js +32 -0
- package/dist/agents/components/ambient-assistant/intelligence-places.d.ts +2 -0
- package/dist/agents/components/ambient-assistant/intelligence-places.js +26 -0
- package/dist/agents/components/chat/ChatConversationRoom.d.ts +38 -0
- package/dist/agents/components/chat/ChatConversationRoom.js +71 -0
- package/dist/agents/components/chat/ChatConversationSurface.d.ts +26 -0
- package/dist/agents/components/chat/ChatConversationSurface.js +456 -0
- package/dist/agents/components/chat/ChatHistorySidebar.d.ts +52 -0
- package/dist/agents/components/chat/ChatHistorySidebar.js +41 -0
- package/dist/agents/components/chat/ChatIncognitoHeaderButton.d.ts +1 -0
- package/dist/agents/components/chat/ChatIncognitoHeaderButton.js +24 -0
- package/dist/agents/components/chat/ChatIncognitoProvider.d.ts +10 -0
- package/dist/agents/components/chat/ChatIncognitoProvider.js +59 -0
- package/dist/agents/components/chat/ChatNewClient.d.ts +42 -0
- package/dist/agents/components/chat/ChatNewClient.js +96 -0
- package/dist/agents/components/chat/ChatNewHeader.d.ts +8 -0
- package/dist/agents/components/chat/ChatNewHeader.js +28 -0
- package/dist/agents/components/chat/ChatRoomClient.d.ts +120 -0
- package/dist/agents/components/chat/ChatRoomClient.js +543 -0
- package/dist/agents/components/chat/ChatRoomSkeleton.d.ts +7 -0
- package/dist/agents/components/chat/ChatRoomSkeleton.js +69 -0
- package/dist/agents/components/chat/ChatRunHeader.d.ts +33 -0
- package/dist/agents/components/chat/ChatRunHeader.js +96 -0
- package/dist/agents/components/chat/ChatSidebarMenu.d.ts +11 -0
- package/dist/agents/components/chat/ChatSidebarMenu.js +316 -0
- package/dist/agents/components/chat/ConversationAttachmentsChip.d.ts +3 -0
- package/dist/agents/components/chat/ConversationAttachmentsChip.js +84 -0
- package/dist/agents/components/chat/ConversationPageMenu.d.ts +10 -0
- package/dist/agents/components/chat/ConversationPageMenu.js +197 -0
- package/dist/agents/components/chat/ConversationRecordsChip.d.ts +3 -0
- package/dist/agents/components/chat/ConversationRecordsChip.js +50 -0
- package/dist/agents/components/chat/ConversationRoomNotice.d.ts +3 -0
- package/dist/agents/components/chat/ConversationRoomNotice.js +76 -0
- package/dist/agents/components/chat/NewChatGreeting.d.ts +25 -0
- package/dist/agents/components/chat/NewChatGreeting.js +70 -0
- package/dist/agents/components/chat/PinnedAgentsSection.d.ts +24 -0
- package/dist/agents/components/chat/PinnedAgentsSection.js +105 -0
- package/dist/agents/components/chat/SandboxPanel.d.ts +5 -0
- package/dist/agents/components/chat/SandboxPanel.js +418 -0
- package/dist/agents/components/chat/agent-context/buildChatContextData.d.ts +103 -0
- package/dist/agents/components/chat/agent-context/buildChatContextData.js +102 -0
- package/dist/agents/components/chat/agent-context/buildChatRunConfiguration.d.ts +25 -0
- package/dist/agents/components/chat/agent-context/buildChatRunConfiguration.js +53 -0
- package/dist/agents/components/chat/agent-context/chatAgentWrites.d.ts +67 -0
- package/dist/agents/components/chat/agent-context/chatAgentWrites.js +242 -0
- package/dist/agents/components/chat/agent-context/chatComposerTextMenu.d.ts +16 -0
- package/dist/agents/components/chat/agent-context/chatComposerTextMenu.js +30 -0
- package/dist/agents/components/chat/agent-context/chatTranscriptScope.d.ts +103 -0
- package/dist/agents/components/chat/agent-context/chatTranscriptScope.js +94 -0
- package/dist/agents/components/chat/begin-fresh-chat.d.ts +67 -0
- package/dist/agents/components/chat/begin-fresh-chat.js +137 -0
- package/dist/agents/components/chat/chat-draft-transfer.d.ts +55 -0
- package/dist/agents/components/chat/chat-draft-transfer.js +68 -0
- package/dist/agents/components/chat/chat-incognito.routes.d.ts +2 -0
- package/dist/agents/components/chat/chat-incognito.routes.js +8 -0
- package/dist/agents/components/chat/chat-quick-actions.config.d.ts +27 -0
- package/dist/agents/components/chat/chat-quick-actions.config.js +7 -0
- package/dist/agents/components/chat/conversation-email-entrance.d.ts +23 -0
- package/dist/agents/components/chat/conversation-email-entrance.js +19 -0
- package/dist/agents/components/chat/in-place-chat-host.d.ts +19 -0
- package/dist/agents/components/chat/in-place-chat-host.js +39 -0
- package/dist/agents/components/chat/intelligence-places.d.ts +2 -0
- package/dist/agents/components/chat/intelligence-places.js +78 -0
- package/dist/agents/components/chat/new-chat-about.d.ts +57 -0
- package/dist/agents/components/chat/new-chat-about.js +65 -0
- package/dist/agents/components/chat/sandbox-insight/SandboxActivityFeed.d.ts +14 -0
- package/dist/agents/components/chat/sandbox-insight/SandboxActivityFeed.js +117 -0
- package/dist/agents/components/chat/sandbox-insight/SandboxCanvasBody.d.ts +43 -0
- package/dist/agents/components/chat/sandbox-insight/SandboxCanvasBody.js +193 -0
- package/dist/agents/components/chat/sandbox-insight/SandboxCanvasOpener.d.ts +4 -0
- package/dist/agents/components/chat/sandbox-insight/SandboxCanvasOpener.js +126 -0
- package/dist/agents/components/chat/sandbox-insight/liveSourceReachability.d.ts +59 -0
- package/dist/agents/components/chat/sandbox-insight/liveSourceReachability.js +12 -0
- package/dist/agents/components/chat/sandbox-insight/revealMemory.d.ts +39 -0
- package/dist/agents/components/chat/sandbox-insight/revealMemory.js +67 -0
- package/dist/agents/components/chat/sandbox-insight/sandbox-activity.d.ts +46 -0
- package/dist/agents/components/chat/sandbox-insight/sandbox-activity.js +120 -0
- package/dist/agents/components/chat/sandbox-insight/sandboxCanvasMemory.d.ts +19 -0
- package/dist/agents/components/chat/sandbox-insight/sandboxCanvasMemory.js +18 -0
- package/dist/agents/components/chat/sandbox-insight/useOpenSandboxCanvas.d.ts +84 -0
- package/dist/agents/components/chat/sandbox-insight/useOpenSandboxCanvas.js +76 -0
- package/dist/agents/components/chat/useCanvasScopedToConversation.d.ts +14 -0
- package/dist/agents/components/chat/useCanvasScopedToConversation.js +64 -0
- package/dist/agents/components/chat/usePreparedResourceSeed.d.ts +19 -0
- package/dist/agents/components/chat/usePreparedResourceSeed.js +40 -0
- package/dist/agents/components/coming-soon/AgentComingSoonContent.d.ts +11 -0
- package/dist/agents/components/coming-soon/AgentComingSoonContent.js +43 -0
- package/dist/agents/components/context-items/ContextItemViewer.d.ts +11 -0
- package/dist/agents/components/context-items/ContextItemViewer.js +109 -0
- package/dist/agents/components/context-items/bodies/BookmarkReferenceBody.d.ts +12 -0
- package/dist/agents/components/context-items/bodies/BookmarkReferenceBody.js +20 -0
- package/dist/agents/components/context-items/bodies/ContextInputBody.d.ts +3 -0
- package/dist/agents/components/context-items/bodies/ContextInputBody.js +37 -0
- package/dist/agents/components/context-items/bodies/ContextLayerBodies.d.ts +4 -0
- package/dist/agents/components/context-items/bodies/ContextLayerBodies.js +183 -0
- package/dist/agents/components/context-items/bodies/DataBody.d.ts +2 -0
- package/dist/agents/components/context-items/bodies/DataBody.js +18 -0
- package/dist/agents/components/context-items/bodies/EntityReferenceBody.d.ts +3 -0
- package/dist/agents/components/context-items/bodies/EntityReferenceBody.js +44 -0
- package/dist/agents/components/context-items/bodies/GenericBody.d.ts +12 -0
- package/dist/agents/components/context-items/bodies/GenericBody.js +42 -0
- package/dist/agents/components/context-items/bodies/MediaBody.d.ts +3 -0
- package/dist/agents/components/context-items/bodies/MediaBody.js +101 -0
- package/dist/agents/components/context-items/bodies/NoteBody.d.ts +3 -0
- package/dist/agents/components/context-items/bodies/NoteBody.js +15 -0
- package/dist/agents/components/context-items/bodies/ProcessedDocumentBody.d.ts +2 -0
- package/dist/agents/components/context-items/bodies/ProcessedDocumentBody.js +56 -0
- package/dist/agents/components/context-items/bodies/ProcessedDocumentTitle.d.ts +2 -0
- package/dist/agents/components/context-items/bodies/ProcessedDocumentTitle.js +48 -0
- package/dist/agents/components/context-items/bodies/RemarkBody.d.ts +2 -0
- package/dist/agents/components/context-items/bodies/RemarkBody.js +19 -0
- package/dist/agents/components/context-items/bodies/ResourceSnapshotView.d.ts +7 -0
- package/dist/agents/components/context-items/bodies/ResourceSnapshotView.js +16 -0
- package/dist/agents/components/context-items/bodies/TaskBody.d.ts +1 -0
- package/dist/agents/components/context-items/bodies/TaskBody.js +11 -0
- package/dist/agents/components/context-items/bodies/UnregisteredBody.d.ts +7 -0
- package/dist/agents/components/context-items/bodies/UnregisteredBody.js +15 -0
- package/dist/agents/components/context-items/bodies/WebpageBody.d.ts +3 -0
- package/dist/agents/components/context-items/bodies/WebpageBody.js +81 -0
- package/dist/agents/components/context-items/bodies/WorkingDocumentBody.d.ts +6 -0
- package/dist/agents/components/context-items/bodies/WorkingDocumentBody.js +58 -0
- package/dist/agents/components/context-items/context-item-block-types.d.ts +16 -0
- package/dist/agents/components/context-items/context-item-block-types.js +43 -0
- package/dist/agents/components/context-items/contextItemsTab.d.ts +42 -0
- package/dist/agents/components/context-items/contextItemsTab.js +79 -0
- package/dist/agents/components/context-items/normalize.d.ts +37 -0
- package/dist/agents/components/context-items/normalize.js +321 -0
- package/dist/agents/components/context-items/recontext.d.ts +25 -0
- package/dist/agents/components/context-items/recontext.js +21 -0
- package/dist/agents/components/context-items/registry.d.ts +34 -0
- package/dist/agents/components/context-items/registry.js +369 -0
- package/dist/agents/components/context-items/remark-display.d.ts +13 -0
- package/dist/agents/components/context-items/remark-display.js +24 -0
- package/dist/agents/components/context-items/types.d.ts +162 -0
- package/dist/agents/components/context-items/types.js +0 -0
- package/dist/agents/components/context-items/useActiveContextLayerItems.d.ts +8 -0
- package/dist/agents/components/context-items/useActiveContextLayerItems.js +105 -0
- package/dist/agents/components/context-policies-display/ContextPolicyChip.d.ts +12 -0
- package/dist/agents/components/context-policies-display/ContextPolicyChip.js +51 -0
- package/dist/agents/components/context-policies-display/ContextPolicyChipStrip.d.ts +12 -0
- package/dist/agents/components/context-policies-display/ContextPolicyChipStrip.js +66 -0
- package/dist/agents/components/context-policies-display/ContextPolicyDetail.d.ts +13 -0
- package/dist/agents/components/context-policies-display/ContextPolicyDetail.js +127 -0
- package/dist/agents/components/context-policies-display/ContextPolicyItemsPopover.d.ts +11 -0
- package/dist/agents/components/context-policies-display/ContextPolicyItemsPopover.js +98 -0
- package/dist/agents/components/context-policies-display/ContextPolicyTile.d.ts +16 -0
- package/dist/agents/components/context-policies-display/ContextPolicyTile.js +45 -0
- package/dist/agents/components/context-policies-display/ContextRulesPanel.d.ts +14 -0
- package/dist/agents/components/context-policies-display/ContextRulesPanel.js +116 -0
- package/dist/agents/components/context-policies-display/ContextValueBody.d.ts +8 -0
- package/dist/agents/components/context-policies-display/ContextValueBody.js +83 -0
- package/dist/agents/components/context-policies-display/MessageContextReceipt.d.ts +67 -0
- package/dist/agents/components/context-policies-display/MessageContextReceipt.js +211 -0
- package/dist/agents/components/context-policies-display/ValueCountPill.d.ts +20 -0
- package/dist/agents/components/context-policies-display/ValueCountPill.js +24 -0
- package/dist/agents/components/context-policies-display/contextEntryLabel.d.ts +4 -0
- package/dist/agents/components/context-policies-display/contextEntryLabel.js +9 -0
- package/dist/agents/components/context-policies-display/contextPolicyIcons.d.ts +5 -0
- package/dist/agents/components/context-policies-display/contextPolicyIcons.js +43 -0
- package/dist/agents/components/context-policies-display/contextPolicyPreview.d.ts +14 -0
- package/dist/agents/components/context-policies-display/contextPolicyPreview.js +62 -0
- package/dist/agents/components/context-policies-display/contextPolicyTile.theme.d.ts +9 -0
- package/dist/agents/components/context-policies-display/contextPolicyTile.theme.js +71 -0
- package/dist/agents/components/context-policies-display/contextValueTab.d.ts +32 -0
- package/dist/agents/components/context-policies-display/contextValueTab.js +63 -0
- package/dist/agents/components/context-policies-display/contextValueUtils.d.ts +15 -0
- package/dist/agents/components/context-policies-display/contextValueUtils.js +49 -0
- package/dist/agents/components/context-policies-display/knownContextValues.d.ts +56 -0
- package/dist/agents/components/context-policies-display/knownContextValues.js +220 -0
- package/dist/agents/components/context-policies-display/war-room-context-key.d.ts +2 -0
- package/dist/agents/components/context-policies-display/war-room-context-key.js +4 -0
- package/dist/agents/components/context-preview/AttachedContextSection.d.ts +3 -0
- package/dist/agents/components/context-preview/AttachedContextSection.js +315 -0
- package/dist/agents/components/context-preview/ContextCompareView.d.ts +42 -0
- package/dist/agents/components/context-preview/ContextCompareView.js +754 -0
- package/dist/agents/components/context-preview/ContextPreviewPanel.d.ts +5 -0
- package/dist/agents/components/context-preview/ContextPreviewPanel.js +445 -0
- package/dist/agents/components/context-preview/SystemItemsLine.d.ts +15 -0
- package/dist/agents/components/context-preview/SystemItemsLine.js +36 -0
- package/dist/agents/components/context-preview/inspector/ContextInspector.d.ts +18 -0
- package/dist/agents/components/context-preview/inspector/ContextInspector.js +262 -0
- package/dist/agents/components/context-preview/inspector/ContextParityLastRun.d.ts +30 -0
- package/dist/agents/components/context-preview/inspector/ContextParityLastRun.js +127 -0
- package/dist/agents/components/context-preview/inspector/selection.d.ts +70 -0
- package/dist/agents/components/context-preview/inspector/selection.js +81 -0
- package/dist/agents/components/context-preview/useContextPreview.d.ts +41 -0
- package/dist/agents/components/context-preview/useContextPreview.js +97 -0
- package/dist/agents/components/conversation-actions/conversation-verbs.d.ts +36 -0
- package/dist/agents/components/conversation-actions/conversation-verbs.js +88 -0
- package/dist/agents/components/conversation-actions/conversationActionRegistry.d.ts +84 -0
- package/dist/agents/components/conversation-actions/conversationActionRegistry.js +280 -0
- package/dist/agents/components/conversation-actions/rename/ConversationRenameDialogHost.d.ts +1 -0
- package/dist/agents/components/conversation-actions/rename/ConversationRenameDialogHost.js +9 -0
- package/dist/agents/components/conversation-actions/rename/ConversationRenameDialogHostImpl.d.ts +7 -0
- package/dist/agents/components/conversation-actions/rename/ConversationRenameDialogHostImpl.js +38 -0
- package/dist/agents/components/conversation-actions/rename/conversationRenameOpener.d.ts +12 -0
- package/dist/agents/components/conversation-actions/rename/conversationRenameOpener.js +8 -0
- package/dist/agents/components/conversation-history/ConversationHistorySidebar.d.ts +153 -0
- package/dist/agents/components/conversation-history/ConversationHistorySidebar.js +1110 -0
- package/dist/agents/components/conversation-history/ConversationLaneToggles.d.ts +28 -0
- package/dist/agents/components/conversation-history/ConversationLaneToggles.js +92 -0
- package/dist/agents/components/conversation-history/ConversationPickerWindow.d.ts +20 -0
- package/dist/agents/components/conversation-history/ConversationPickerWindow.js +74 -0
- package/dist/agents/components/conversation-history/ConversationSearchStatus.d.ts +9 -0
- package/dist/agents/components/conversation-history/ConversationSearchStatus.js +41 -0
- package/dist/agents/components/conversation-history/ConversationSourceFilterTree.d.ts +14 -0
- package/dist/agents/components/conversation-history/ConversationSourceFilterTree.js +725 -0
- package/dist/agents/components/conversation-history/ConversationTrashSection.d.ts +7 -0
- package/dist/agents/components/conversation-history/ConversationTrashSection.js +106 -0
- package/dist/agents/components/conversation-history/useConversationServerSearch.d.ts +31 -0
- package/dist/agents/components/conversation-history/useConversationServerSearch.js +183 -0
- package/dist/agents/components/custom-agent/CustomAgentWindow.d.ts +8 -0
- package/dist/agents/components/custom-agent/CustomAgentWindow.js +244 -0
- package/dist/agents/components/custom-agent/custom-agent-plan.d.ts +39 -0
- package/dist/agents/components/custom-agent/custom-agent-plan.js +85 -0
- package/dist/agents/components/custom-agent/session.d.ts +12 -0
- package/dist/agents/components/custom-agent/session.js +19 -0
- package/dist/agents/components/debug/DebugSessionActivator.d.ts +1 -0
- package/dist/agents/components/debug/DebugSessionActivator.js +19 -0
- package/dist/agents/components/debug/RoutingPanel.d.ts +3 -0
- package/dist/agents/components/debug/RoutingPanel.js +112 -0
- package/dist/agents/components/debug/SandboxFileViewer.d.ts +10 -0
- package/dist/agents/components/debug/SandboxFileViewer.js +104 -0
- package/dist/agents/components/debug/SandboxInsightPanel.d.ts +3 -0
- package/dist/agents/components/debug/SandboxInsightPanel.js +56 -0
- package/dist/agents/components/debug/StreamDebugFloating.d.ts +17 -0
- package/dist/agents/components/debug/StreamDebugFloating.js +40 -0
- package/dist/agents/components/debug/StreamDebugPanel.d.ts +18 -0
- package/dist/agents/components/debug/StreamDebugPanel.js +1587 -0
- package/dist/agents/components/inputs/AgentVariablesInline.d.ts +12 -0
- package/dist/agents/components/inputs/AgentVariablesInline.js +415 -0
- package/dist/agents/components/inputs/BoundVariableChips.d.ts +5 -0
- package/dist/agents/components/inputs/BoundVariableChips.js +284 -0
- package/dist/agents/components/inputs/DataBoundVariableChips.d.ts +3 -0
- package/dist/agents/components/inputs/DataBoundVariableChips.js +68 -0
- package/dist/agents/components/inputs/PreExecutionAgentInput.d.ts +5 -0
- package/dist/agents/components/inputs/PreExecutionAgentInput.js +52 -0
- package/dist/agents/components/inputs/RowChoicesButton.d.ts +9 -0
- package/dist/agents/components/inputs/RowChoicesButton.js +66 -0
- package/dist/agents/components/inputs/collapsed-row.d.ts +46 -0
- package/dist/agents/components/inputs/collapsed-row.js +42 -0
- package/dist/agents/components/inputs/input-components/AudioVariableInput.d.ts +4 -0
- package/dist/agents/components/inputs/input-components/AudioVariableInput.js +11 -0
- package/dist/agents/components/inputs/input-components/CheckboxGroupInput.d.ts +14 -0
- package/dist/agents/components/inputs/input-components/CheckboxGroupInput.js +148 -0
- package/dist/agents/components/inputs/input-components/CurrencyVariableInput.d.ts +15 -0
- package/dist/agents/components/inputs/input-components/CurrencyVariableInput.js +98 -0
- package/dist/agents/components/inputs/input-components/DocumentVariableInput.d.ts +4 -0
- package/dist/agents/components/inputs/input-components/DocumentVariableInput.js +11 -0
- package/dist/agents/components/inputs/input-components/ImageVariableInput.d.ts +4 -0
- package/dist/agents/components/inputs/input-components/ImageVariableInput.js +11 -0
- package/dist/agents/components/inputs/input-components/MediaVariableInput.d.ts +15 -0
- package/dist/agents/components/inputs/input-components/MediaVariableInput.js +333 -0
- package/dist/agents/components/inputs/input-components/NumberInput.d.ts +19 -0
- package/dist/agents/components/inputs/input-components/NumberInput.js +102 -0
- package/dist/agents/components/inputs/input-components/PicklistVariableInput.d.ts +24 -0
- package/dist/agents/components/inputs/input-components/PicklistVariableInput.js +168 -0
- package/dist/agents/components/inputs/input-components/PillToggleInput.d.ts +17 -0
- package/dist/agents/components/inputs/input-components/PillToggleInput.js +19 -0
- package/dist/agents/components/inputs/input-components/RadioGroupInput.d.ts +17 -0
- package/dist/agents/components/inputs/input-components/RadioGroupInput.js +97 -0
- package/dist/agents/components/inputs/input-components/ScalarVariableInput.d.ts +11 -0
- package/dist/agents/components/inputs/input-components/ScalarVariableInput.js +115 -0
- package/dist/agents/components/inputs/input-components/SelectInput.d.ts +20 -0
- package/dist/agents/components/inputs/input-components/SelectInput.js +175 -0
- package/dist/agents/components/inputs/input-components/SliderInput.d.ts +20 -0
- package/dist/agents/components/inputs/input-components/SliderInput.js +54 -0
- package/dist/agents/components/inputs/input-components/TableVariableInput.d.ts +14 -0
- package/dist/agents/components/inputs/input-components/TableVariableInput.js +71 -0
- package/dist/agents/components/inputs/input-components/TextareaInput.d.ts +27 -0
- package/dist/agents/components/inputs/input-components/TextareaInput.js +55 -0
- package/dist/agents/components/inputs/input-components/ToggleInput.d.ts +17 -0
- package/dist/agents/components/inputs/input-components/ToggleInput.js +61 -0
- package/dist/agents/components/inputs/input-components/VariableInputComponent.d.ts +46 -0
- package/dist/agents/components/inputs/input-components/VariableInputComponent.js +388 -0
- package/dist/agents/components/inputs/input-components/VideoVariableInput.d.ts +4 -0
- package/dist/agents/components/inputs/input-components/VideoVariableInput.js +11 -0
- package/dist/agents/components/inputs/input-components/YoutubeVariableInput.d.ts +14 -0
- package/dist/agents/components/inputs/input-components/YoutubeVariableInput.js +91 -0
- package/dist/agents/components/inputs/input-components/focusWithoutScroll.d.ts +10 -0
- package/dist/agents/components/inputs/input-components/focusWithoutScroll.js +6 -0
- package/dist/agents/components/inputs/input-components/useContainerColumns.d.ts +17 -0
- package/dist/agents/components/inputs/input-components/useContainerColumns.js +22 -0
- package/dist/agents/components/inputs/input-components/variablePlaceholder.d.ts +27 -0
- package/dist/agents/components/inputs/input-components/variablePlaceholder.js +6 -0
- package/dist/agents/components/inputs/resources/AttachedDocumentChip.d.ts +21 -0
- package/dist/agents/components/inputs/resources/AttachedDocumentChip.js +178 -0
- package/dist/agents/components/inputs/resources/AttachedDocumentChips.d.ts +10 -0
- package/dist/agents/components/inputs/resources/AttachedDocumentChips.js +344 -0
- package/dist/agents/components/inputs/resources/ResourceFamilyPolicyEditor.d.ts +14 -0
- package/dist/agents/components/inputs/resources/ResourceFamilyPolicyEditor.js +277 -0
- package/dist/agents/components/inputs/resources/SmartAgentResourceChips.d.ts +12 -0
- package/dist/agents/components/inputs/resources/SmartAgentResourceChips.js +313 -0
- package/dist/agents/components/inputs/resources/SmartAgentResourcePickerButton.d.ts +18 -0
- package/dist/agents/components/inputs/resources/SmartAgentResourcePickerButton.js +66 -0
- package/dist/agents/components/inputs/resources/attach-resource.d.ts +34 -0
- package/dist/agents/components/inputs/resources/attach-resource.js +349 -0
- package/dist/agents/components/inputs/resources/attached-documents.d.ts +86 -0
- package/dist/agents/components/inputs/resources/attached-documents.js +104 -0
- package/dist/agents/components/inputs/resources/resource-family-policy.d.ts +9 -0
- package/dist/agents/components/inputs/resources/resource-family-policy.js +84 -0
- package/dist/agents/components/inputs/resources/resource-family-words.d.ts +29 -0
- package/dist/agents/components/inputs/resources/resource-family-words.js +71 -0
- package/dist/agents/components/inputs/resources/useAttachedFileIds.d.ts +4 -0
- package/dist/agents/components/inputs/resources/useAttachedFileIds.js +46 -0
- package/dist/agents/components/inputs/resources/usePasteImageResource.d.ts +17 -0
- package/dist/agents/components/inputs/resources/usePasteImageResource.js +162 -0
- package/dist/agents/components/inputs/smart-input/AgentMicrophoneButton.d.ts +52 -0
- package/dist/agents/components/inputs/smart-input/AgentMicrophoneButton.js +99 -0
- package/dist/agents/components/inputs/smart-input/AgentTextarea.d.ts +66 -0
- package/dist/agents/components/inputs/smart-input/AgentTextarea.js +364 -0
- package/dist/agents/components/inputs/smart-input/ChatConnectionsStrip.d.ts +24 -0
- package/dist/agents/components/inputs/smart-input/ChatConnectionsStrip.js +278 -0
- package/dist/agents/components/inputs/smart-input/ComposerChip.d.ts +63 -0
- package/dist/agents/components/inputs/smart-input/ComposerChip.js +184 -0
- package/dist/agents/components/inputs/smart-input/ComposerDraftNotice.d.ts +6 -0
- package/dist/agents/components/inputs/smart-input/ComposerDraftNotice.js +35 -0
- package/dist/agents/components/inputs/smart-input/ComposerToolsNotice.d.ts +6 -0
- package/dist/agents/components/inputs/smart-input/ComposerToolsNotice.js +52 -0
- package/dist/agents/components/inputs/smart-input/ComputeLensBar.d.ts +7 -0
- package/dist/agents/components/inputs/smart-input/ComputeLensBar.js +229 -0
- package/dist/agents/components/inputs/smart-input/ContextDocsMenu.d.ts +9 -0
- package/dist/agents/components/inputs/smart-input/ContextDocsMenu.js +247 -0
- package/dist/agents/components/inputs/smart-input/ConversationContextChip.d.ts +56 -0
- package/dist/agents/components/inputs/smart-input/ConversationContextChip.js +224 -0
- package/dist/agents/components/inputs/smart-input/ConversationContextRail.d.ts +44 -0
- package/dist/agents/components/inputs/smart-input/ConversationContextRail.js +461 -0
- package/dist/agents/components/inputs/smart-input/DesktopPresenceIndicator.d.ts +5 -0
- package/dist/agents/components/inputs/smart-input/DesktopPresenceIndicator.js +101 -0
- package/dist/agents/components/inputs/smart-input/InboxQueueStrip.d.ts +30 -0
- package/dist/agents/components/inputs/smart-input/InboxQueueStrip.js +296 -0
- package/dist/agents/components/inputs/smart-input/InputActionButtons.d.ts +81 -0
- package/dist/agents/components/inputs/smart-input/InputActionButtons.js +275 -0
- package/dist/agents/components/inputs/smart-input/PlusAttachMenu.d.ts +19 -0
- package/dist/agents/components/inputs/smart-input/PlusAttachMenu.js +304 -0
- package/dist/agents/components/inputs/smart-input/QuicksetPanel.d.ts +8 -0
- package/dist/agents/components/inputs/smart-input/QuicksetPanel.js +312 -0
- package/dist/agents/components/inputs/smart-input/RunControlsMenu.d.ts +31 -0
- package/dist/agents/components/inputs/smart-input/RunControlsMenu.js +264 -0
- package/dist/agents/components/inputs/smart-input/RunControlsTabPanel.d.ts +67 -0
- package/dist/agents/components/inputs/smart-input/RunControlsTabPanel.js +306 -0
- package/dist/agents/components/inputs/smart-input/RunPicksSurface.d.ts +90 -0
- package/dist/agents/components/inputs/smart-input/RunPicksSurface.js +274 -0
- package/dist/agents/components/inputs/smart-input/RunSkillPicker.d.ts +3 -0
- package/dist/agents/components/inputs/smart-input/RunSkillPicker.js +191 -0
- package/dist/agents/components/inputs/smart-input/RunToolPicker.d.ts +3 -0
- package/dist/agents/components/inputs/smart-input/RunToolPicker.js +267 -0
- package/dist/agents/components/inputs/smart-input/ShapeChipsRow.d.ts +23 -0
- package/dist/agents/components/inputs/smart-input/ShapeChipsRow.js +68 -0
- package/dist/agents/components/inputs/smart-input/SmartAgentInput.d.ts +48 -0
- package/dist/agents/components/inputs/smart-input/SmartAgentInput.js +80 -0
- package/dist/agents/components/inputs/smart-input/SmartAgentInputStacked.d.ts +44 -0
- package/dist/agents/components/inputs/smart-input/SmartAgentInputStacked.js +348 -0
- package/dist/agents/components/inputs/smart-input/SmartInputFileDropTarget.d.ts +8 -0
- package/dist/agents/components/inputs/smart-input/SmartInputFileDropTarget.js +62 -0
- package/dist/agents/components/inputs/smart-input/UninitializedShell.d.ts +2 -0
- package/dist/agents/components/inputs/smart-input/UninitializedShell.js +30 -0
- package/dist/agents/components/inputs/smart-input/ViewOnlyComposerBar.d.ts +1 -0
- package/dist/agents/components/inputs/smart-input/ViewOnlyComposerBar.js +21 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerAgentPill.d.ts +15 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerAgentPill.js +284 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerChipsRow.d.ts +9 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerChipsRow.js +91 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerConnectPromo.d.ts +5 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerConnectPromo.js +55 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerConnectorsPanel.d.ts +5 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerConnectorsPanel.js +168 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerEffortPill.d.ts +28 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerEffortPill.js +119 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerMenu.d.ts +131 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerMenu.js +362 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerMenuSheet.d.ts +21 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerMenuSheet.js +72 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerMetaRow.d.ts +35 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerMetaRow.js +103 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerModeSwitch.d.ts +9 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerModeSwitch.js +99 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerOutput.d.ts +10 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerOutput.js +368 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerPlusMenu.d.ts +64 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerPlusMenu.js +520 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerSplash.d.ts +28 -0
- package/dist/agents/components/inputs/smart-input/composer/ComposerSplash.js +151 -0
- package/dist/agents/components/inputs/smart-input/composer/agent-output-filter.d.ts +27 -0
- package/dist/agents/components/inputs/smart-input/composer/agent-output-filter.js +43 -0
- package/dist/agents/components/inputs/smart-input/composer/already-answering.d.ts +9 -0
- package/dist/agents/components/inputs/smart-input/composer/already-answering.js +10 -0
- package/dist/agents/components/inputs/smart-input/composer/composer-chip.d.ts +16 -0
- package/dist/agents/components/inputs/smart-input/composer/composer-chip.js +13 -0
- package/dist/agents/components/inputs/smart-input/composer/composer-mode-cookie.d.ts +57 -0
- package/dist/agents/components/inputs/smart-input/composer/composer-mode-cookie.js +43 -0
- package/dist/agents/components/inputs/smart-input/composer/composer-mode-visibility.d.ts +24 -0
- package/dist/agents/components/inputs/smart-input/composer/composer-mode-visibility.js +50 -0
- package/dist/agents/components/inputs/smart-input/composer/composer-types.d.ts +86 -0
- package/dist/agents/components/inputs/smart-input/composer/composer-types.js +14 -0
- package/dist/agents/components/inputs/smart-input/composer/output-selection.d.ts +107 -0
- package/dist/agents/components/inputs/smart-input/composer/output-selection.js +186 -0
- package/dist/agents/components/inputs/smart-input/composer/useCompactInputMaxHeight.d.ts +6 -0
- package/dist/agents/components/inputs/smart-input/composer/useCompactInputMaxHeight.js +25 -0
- package/dist/agents/components/inputs/smart-input/composer/useComposerAgent.d.ts +26 -0
- package/dist/agents/components/inputs/smart-input/composer/useComposerAgent.js +87 -0
- package/dist/agents/components/inputs/smart-input/composer/useComposerAgentFilter.d.ts +6 -0
- package/dist/agents/components/inputs/smart-input/composer/useComposerAgentFilter.js +20 -0
- package/dist/agents/components/inputs/smart-input/composer/useComposerFold.d.ts +14 -0
- package/dist/agents/components/inputs/smart-input/composer/useComposerFold.js +21 -0
- package/dist/agents/components/inputs/smart-input/composer/useComposerMode.d.ts +8 -0
- package/dist/agents/components/inputs/smart-input/composer/useComposerMode.js +55 -0
- package/dist/agents/components/inputs/smart-input/composer/useOutputShapeCatalog.d.ts +37 -0
- package/dist/agents/components/inputs/smart-input/composer/useOutputShapeCatalog.js +151 -0
- package/dist/agents/components/inputs/smart-input/prepend-template-to-draft.d.ts +5 -0
- package/dist/agents/components/inputs/smart-input/prepend-template-to-draft.js +9 -0
- package/dist/agents/components/inputs/smart-input/run-tool-catalog.d.ts +23 -0
- package/dist/agents/components/inputs/smart-input/run-tool-catalog.js +35 -0
- package/dist/agents/components/inputs/smart-input/shape-chips.d.ts +29 -0
- package/dist/agents/components/inputs/smart-input/shape-chips.js +10 -0
- package/dist/agents/components/inputs/smart-input/textarea-line-grid.d.ts +17 -0
- package/dist/agents/components/inputs/smart-input/textarea-line-grid.js +17 -0
- package/dist/agents/components/inputs/smart-input/use-compute-target-actions.d.ts +34 -0
- package/dist/agents/components/inputs/smart-input/use-compute-target-actions.js +130 -0
- package/dist/agents/components/inputs/smart-input/useCompanionValuesPreview.d.ts +3 -0
- package/dist/agents/components/inputs/smart-input/useCompanionValuesPreview.js +40 -0
- package/dist/agents/components/inputs/smart-input/useConversationDisplayRows.d.ts +12 -0
- package/dist/agents/components/inputs/smart-input/useConversationDisplayRows.js +65 -0
- package/dist/agents/components/inputs/variable-input-variations/AgentVariableCards.d.ts +6 -0
- package/dist/agents/components/inputs/variable-input-variations/AgentVariableCards.js +282 -0
- package/dist/agents/components/inputs/variable-input-variations/AgentVariableForm.d.ts +5 -0
- package/dist/agents/components/inputs/variable-input-variations/AgentVariableForm.js +439 -0
- package/dist/agents/components/inputs/variable-input-variations/AgentVariablesGuided.d.ts +8 -0
- package/dist/agents/components/inputs/variable-input-variations/AgentVariablesGuided.js +708 -0
- package/dist/agents/components/inputs/variable-input-variations/AgentVariablesStacked.d.ts +5 -0
- package/dist/agents/components/inputs/variable-input-variations/AgentVariablesStacked.js +83 -0
- package/dist/agents/components/inputs/variable-input-variations/AgentVariablesWizard.d.ts +9 -0
- package/dist/agents/components/inputs/variable-input-variations/AgentVariablesWizard.js +127 -0
- package/dist/agents/components/inputs/variable-input-variations/SmartAgentVariables.d.ts +12 -0
- package/dist/agents/components/inputs/variable-input-variations/SmartAgentVariables.js +67 -0
- package/dist/agents/components/inputs/variable-input-variations/variable-input-options.d.ts +29 -0
- package/dist/agents/components/inputs/variable-input-variations/variable-input-options.js +259 -0
- package/dist/agents/components/live-run/LiveRunDisplay.d.ts +39 -0
- package/dist/agents/components/live-run/LiveRunDisplay.js +138 -0
- package/dist/agents/components/live-run/LiveRunProgress.d.ts +33 -0
- package/dist/agents/components/live-run/LiveRunProgress.js +146 -0
- package/dist/agents/components/live-run/RunSetDisplay.d.ts +48 -0
- package/dist/agents/components/live-run/RunSetDisplay.js +87 -0
- package/dist/agents/components/live-run/useLiveRunStatus.d.ts +18 -0
- package/dist/agents/components/live-run/useLiveRunStatus.js +109 -0
- package/dist/agents/components/memory/components/AgentMemoryAllView.d.ts +6 -0
- package/dist/agents/components/memory/components/AgentMemoryAllView.js +78 -0
- package/dist/agents/components/memory/components/AgentMemoryBody.d.ts +6 -0
- package/dist/agents/components/memory/components/AgentMemoryBody.js +19 -0
- package/dist/agents/components/memory/components/AgentMemoryEditor.d.ts +8 -0
- package/dist/agents/components/memory/components/AgentMemoryEditor.js +82 -0
- package/dist/agents/components/memory/components/AgentMemoryFooter.d.ts +6 -0
- package/dist/agents/components/memory/components/AgentMemoryFooter.js +94 -0
- package/dist/agents/components/memory/components/AgentMemoryInlinePanel.d.ts +1 -0
- package/dist/agents/components/memory/components/AgentMemoryInlinePanel.js +34 -0
- package/dist/agents/components/memory/components/AgentMemorySidebar.d.ts +6 -0
- package/dist/agents/components/memory/components/AgentMemorySidebar.js +196 -0
- package/dist/agents/components/memory/hooks/useAgentMemories.d.ts +82 -0
- package/dist/agents/components/memory/hooks/useAgentMemories.js +221 -0
- package/dist/agents/components/memory/service/agent-memory.service.d.ts +19 -0
- package/dist/agents/components/memory/service/agent-memory.service.js +90 -0
- package/dist/agents/components/memory/types.d.ts +34 -0
- package/dist/agents/components/memory/types.js +21 -0
- package/dist/agents/components/messages-display/AgentConversationDisplay.d.ts +16 -0
- package/dist/agents/components/messages-display/AgentConversationDisplay.js +413 -0
- package/dist/agents/components/messages-display/MessageAttachmentStrip.d.ts +9 -0
- package/dist/agents/components/messages-display/MessageAttachmentStrip.js +59 -0
- package/dist/agents/components/messages-display/MessageTimestamp.d.ts +14 -0
- package/dist/agents/components/messages-display/MessageTimestamp.js +65 -0
- package/dist/agents/components/messages-display/TranscriptIntegrityCopyButton.d.ts +7 -0
- package/dist/agents/components/messages-display/TranscriptIntegrityCopyButton.js +81 -0
- package/dist/agents/components/messages-display/assistant/AgentAssistantMessage.d.ts +45 -0
- package/dist/agents/components/messages-display/assistant/AgentAssistantMessage.js +523 -0
- package/dist/agents/components/messages-display/assistant/AgentEmptyMessageDisplay.d.ts +3 -0
- package/dist/agents/components/messages-display/assistant/AgentEmptyMessageDisplay.js +70 -0
- package/dist/agents/components/messages-display/assistant/AssistantMessageFooter.d.ts +69 -0
- package/dist/agents/components/messages-display/assistant/AssistantMessageFooter.js +248 -0
- package/dist/agents/components/messages-display/assistant/AssistantNoAnswer.d.ts +24 -0
- package/dist/agents/components/messages-display/assistant/AssistantNoAnswer.js +42 -0
- package/dist/agents/components/messages-display/assistant/AssistantTurnGroup.d.ts +22 -0
- package/dist/agents/components/messages-display/assistant/AssistantTurnGroup.js +145 -0
- package/dist/agents/components/messages-display/assistant/BreathingOrb.d.ts +20 -0
- package/dist/agents/components/messages-display/assistant/BreathingOrb.js +83 -0
- package/dist/agents/components/messages-display/assistant/InPlaceAnswerEditor.d.ts +13 -0
- package/dist/agents/components/messages-display/assistant/InPlaceAnswerEditor.js +116 -0
- package/dist/agents/components/messages-display/assistant/ProviderRetryCard.d.ts +23 -0
- package/dist/agents/components/messages-display/assistant/ProviderRetryCard.js +162 -0
- package/dist/agents/components/messages-display/assistant/answerless-turn.d.ts +156 -0
- package/dist/agents/components/messages-display/assistant/answerless-turn.js +47 -0
- package/dist/agents/components/messages-display/assistant/collapse-by-request-id.d.ts +63 -0
- package/dist/agents/components/messages-display/assistant/collapse-by-request-id.js +49 -0
- package/dist/agents/components/messages-display/assistant/continue-in-chat.d.ts +9 -0
- package/dist/agents/components/messages-display/assistant/continue-in-chat.js +10 -0
- package/dist/agents/components/messages-display/assistant/empty-state-instruction.d.ts +24 -0
- package/dist/agents/components/messages-display/assistant/empty-state-instruction.js +15 -0
- package/dist/agents/components/messages-display/citations/MessageCitationsContext.d.ts +21 -0
- package/dist/agents/components/messages-display/citations/MessageCitationsContext.js +18 -0
- package/dist/agents/components/messages-display/citations/MessageSourcesRow.d.ts +7 -0
- package/dist/agents/components/messages-display/citations/MessageSourcesRow.js +46 -0
- package/dist/agents/components/messages-display/citations/citation-source.d.ts +10 -0
- package/dist/agents/components/messages-display/citations/citation-source.js +34 -0
- package/dist/agents/components/messages-display/conversation-tools/ConversationFindBar.d.ts +16 -0
- package/dist/agents/components/messages-display/conversation-tools/ConversationFindBar.js +142 -0
- package/dist/agents/components/messages-display/conversation-tools/FollowUpSuggestions.d.ts +22 -0
- package/dist/agents/components/messages-display/conversation-tools/FollowUpSuggestions.js +40 -0
- package/dist/agents/components/messages-display/conversation-tools/conversation-view-state.d.ts +11 -0
- package/dist/agents/components/messages-display/conversation-tools/conversation-view-state.js +47 -0
- package/dist/agents/components/messages-display/conversation-tools/find-in-conversation.d.ts +31 -0
- package/dist/agents/components/messages-display/conversation-tools/find-in-conversation.js +54 -0
- package/dist/agents/components/messages-display/conversation-tools/message-keyboard-nav.d.ts +1 -0
- package/dist/agents/components/messages-display/conversation-tools/message-keyboard-nav.js +20 -0
- package/dist/agents/components/messages-display/conversation-tools/pinned-filter.d.ts +17 -0
- package/dist/agents/components/messages-display/conversation-tools/pinned-filter.js +25 -0
- package/dist/agents/components/messages-display/conversation-tools/useMessageListInteractions.d.ts +4 -0
- package/dist/agents/components/messages-display/conversation-tools/useMessageListInteractions.js +136 -0
- package/dist/agents/components/messages-display/display-groups.d.ts +92 -0
- package/dist/agents/components/messages-display/display-groups.js +217 -0
- package/dist/agents/components/messages-display/hydrateConversationForReading.d.ts +16 -0
- package/dist/agents/components/messages-display/hydrateConversationForReading.js +26 -0
- package/dist/agents/components/messages-display/message-options/DeleteMessageDialog.d.ts +15 -0
- package/dist/agents/components/messages-display/message-options/DeleteMessageDialog.js +111 -0
- package/dist/agents/components/messages-display/message-options/EditHistoryDialog.d.ts +8 -0
- package/dist/agents/components/messages-display/message-options/EditHistoryDialog.js +252 -0
- package/dist/agents/components/messages-display/message-options/buildTaskSeedFromMessage.d.ts +34 -0
- package/dist/agents/components/messages-display/message-options/buildTaskSeedFromMessage.js +56 -0
- package/dist/agents/components/messages-display/message-options/convertibleContent.d.ts +17 -0
- package/dist/agents/components/messages-display/message-options/convertibleContent.js +26 -0
- package/dist/agents/components/messages-display/message-options/openAssistantMessageEditor.d.ts +25 -0
- package/dist/agents/components/messages-display/message-options/openAssistantMessageEditor.js +25 -0
- package/dist/agents/components/messages-display/message-options/pending-source.d.ts +12 -0
- package/dist/agents/components/messages-display/message-options/pending-source.js +0 -0
- package/dist/agents/components/messages-display/message-options/promptForkOutcome.d.ts +7 -0
- package/dist/agents/components/messages-display/message-options/promptForkOutcome.js +28 -0
- package/dist/agents/components/messages-display/message-options/resolveAssistantEditTarget.d.ts +23 -0
- package/dist/agents/components/messages-display/message-options/resolveAssistantEditTarget.js +24 -0
- package/dist/agents/components/messages-display/message-options/shareMessageAsWebpage.d.ts +27 -0
- package/dist/agents/components/messages-display/message-options/shareMessageAsWebpage.js +34 -0
- package/dist/agents/components/messages-display/message-options/userEditActions.d.ts +31 -0
- package/dist/agents/components/messages-display/message-options/userEditActions.js +50 -0
- package/dist/agents/components/messages-display/transcript-integrity-report.d.ts +83 -0
- package/dist/agents/components/messages-display/transcript-integrity-report.js +202 -0
- package/dist/agents/components/messages-display/user/AgentUserMessage.d.ts +32 -0
- package/dist/agents/components/messages-display/user/AgentUserMessage.js +408 -0
- package/dist/agents/components/messages-display/user/CollabNoteMessage.d.ts +23 -0
- package/dist/agents/components/messages-display/user/CollabNoteMessage.js +53 -0
- package/dist/agents/components/messages-display/user/FirstTurnVariables.d.ts +33 -0
- package/dist/agents/components/messages-display/user/FirstTurnVariables.js +109 -0
- package/dist/agents/components/messages-display/user/PendingSendMessage.d.ts +5 -0
- package/dist/agents/components/messages-display/user/PendingSendMessage.js +106 -0
- package/dist/agents/components/messages-display/user/RemarksTranscriptView.d.ts +13 -0
- package/dist/agents/components/messages-display/user/RemarksTranscriptView.js +85 -0
- package/dist/agents/components/messages-display/user/ResourceAttachmentTile.d.ts +36 -0
- package/dist/agents/components/messages-display/user/ResourceAttachmentTile.js +294 -0
- package/dist/agents/components/messages-display/user/ResourceEditableToggleSamples.d.ts +1 -0
- package/dist/agents/components/messages-display/user/ResourceEditableToggleSamples.js +67 -0
- package/dist/agents/components/messages-display/user/UserActionBar.d.ts +35 -0
- package/dist/agents/components/messages-display/user/UserActionBar.js +268 -0
- package/dist/agents/components/messages-display/user/UserMessageAttachmentStyleComparison.d.ts +7 -0
- package/dist/agents/components/messages-display/user/UserMessageAttachmentStyleComparison.js +146 -0
- package/dist/agents/components/messages-display/user/UserMessageChipsDemo.d.ts +1 -0
- package/dist/agents/components/messages-display/user/UserMessageChipsDemo.js +335 -0
- package/dist/agents/components/messages-display/user/UserMessageHybridTileSamples.d.ts +6 -0
- package/dist/agents/components/messages-display/user/UserMessageHybridTileSamples.js +575 -0
- package/dist/agents/components/messages-display/user/compact-chip-label.d.ts +14 -0
- package/dist/agents/components/messages-display/user/compact-chip-label.js +15 -0
- package/dist/agents/components/messages-display/user/literal-user-text.d.ts +17 -0
- package/dist/agents/components/messages-display/user/literal-user-text.js +31 -0
- package/dist/agents/components/messages-display/user/resourceAttachmentTile.theme.d.ts +12 -0
- package/dist/agents/components/messages-display/user/resourceAttachmentTile.theme.js +151 -0
- package/dist/agents/components/messages-display/user/useCollapsibleMessageText.d.ts +31 -0
- package/dist/agents/components/messages-display/user/useCollapsibleMessageText.js +51 -0
- package/dist/agents/components/messages-display/user/userMessageChipsDemoData.d.ts +53 -0
- package/dist/agents/components/messages-display/user/userMessageChipsDemoData.js +618 -0
- package/dist/agents/components/model/AgentModelPanel.d.ts +4 -0
- package/dist/agents/components/model/AgentModelPanel.js +9 -0
- package/dist/agents/components/model-tiers/ModelTierIdentityList.d.ts +15 -0
- package/dist/agents/components/model-tiers/ModelTierIdentityList.js +64 -0
- package/dist/agents/components/notifications/ImageArrivalPeek.d.ts +34 -0
- package/dist/agents/components/notifications/ImageArrivalPeek.js +113 -0
- package/dist/agents/components/notifications/ImageArrivalPeekHost.d.ts +27 -0
- package/dist/agents/components/notifications/ImageArrivalPeekHost.js +53 -0
- package/dist/agents/components/notifications/useImageArrivalPeeks.d.ts +33 -0
- package/dist/agents/components/notifications/useImageArrivalPeeks.js +50 -0
- package/dist/agents/components/observational-memory/ObservationalMemoryCore.d.ts +27 -0
- package/dist/agents/components/observational-memory/ObservationalMemoryCore.js +79 -0
- package/dist/agents/components/observational-memory/components/MemoryControls.d.ts +9 -0
- package/dist/agents/components/observational-memory/components/MemoryControls.js +149 -0
- package/dist/agents/components/observational-memory/components/MemoryCostCard.d.ts +23 -0
- package/dist/agents/components/observational-memory/components/MemoryCostCard.js +208 -0
- package/dist/agents/components/observational-memory/components/MemoryEventTimeline.d.ts +9 -0
- package/dist/agents/components/observational-memory/components/MemoryEventTimeline.js +216 -0
- package/dist/agents/components/observational-memory/components/MemoryOverviewCard.d.ts +7 -0
- package/dist/agents/components/observational-memory/components/MemoryOverviewCard.js +157 -0
- package/dist/agents/components/observational-memory/components/MemoryStateInspector.d.ts +21 -0
- package/dist/agents/components/observational-memory/components/MemoryStateInspector.js +538 -0
- package/dist/agents/components/observational-memory/components/format.d.ts +11 -0
- package/dist/agents/components/observational-memory/components/format.js +29 -0
- package/dist/agents/components/run/AgentRunHeader.d.ts +10 -0
- package/dist/agents/components/run/AgentRunHeader.js +64 -0
- package/dist/agents/components/run/AgentRunnerPage.d.ts +46 -0
- package/dist/agents/components/run/AgentRunnerPage.js +330 -0
- package/dist/agents/components/run/AgentStatusIndicator.d.ts +6 -0
- package/dist/agents/components/run/AgentStatusIndicator.js +19 -0
- package/dist/agents/components/run/AssistantError.d.ts +32 -0
- package/dist/agents/components/run/AssistantError.js +128 -0
- package/dist/agents/components/run/AssistantWarning.d.ts +7 -0
- package/dist/agents/components/run/AssistantWarning.js +32 -0
- package/dist/agents/components/run/GenerationJobCard.d.ts +22 -0
- package/dist/agents/components/run/GenerationJobCard.js +123 -0
- package/dist/agents/components/run/RunJobWorkingLine.d.ts +6 -0
- package/dist/agents/components/run/RunJobWorkingLine.js +55 -0
- package/dist/agents/components/run/agent-run-variable-write.d.ts +12 -0
- package/dist/agents/components/run/agent-run-variable-write.js +32 -0
- package/dist/agents/components/run/friendlyStreamError.d.ts +49 -0
- package/dist/agents/components/run/friendlyStreamError.js +60 -0
- package/dist/agents/components/run/run-sidebar/AgentRunsSidebar.d.ts +15 -0
- package/dist/agents/components/run/run-sidebar/AgentRunsSidebar.js +201 -0
- package/dist/agents/components/run/run-sidebar/SidebarHeader.d.ts +21 -0
- package/dist/agents/components/run/run-sidebar/SidebarHeader.js +50 -0
- package/dist/agents/components/run/useVideoSecondPoints.d.ts +5 -0
- package/dist/agents/components/run/useVideoSecondPoints.js +45 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/AdvancedRunSettings.d.ts +16 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/AdvancedRunSettings.js +140 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/ComplexityBadge.d.ts +11 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/ComplexityBadge.js +43 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/bands.d.ts +19 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/bands.js +16 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/engine.d.ts +16 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/engine.js +34 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/index.d.ts +8 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/index.js +7 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/artifact-skills.d.ts +10 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/artifact-skills.js +42 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/attributes.d.ts +18 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/attributes.js +57 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/constraints.d.ts +23 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/constraints.js +116 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/importance.d.ts +17 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/importance.js +87 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/input-modes.d.ts +12 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/input-modes.js +24 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/primary-output.d.ts +8 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/primary-output.js +20 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/thinking.d.ts +9 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/thinking.js +22 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/tools.d.ts +9 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/rules/tools.js +44 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/types.d.ts +55 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/algorithm/types.js +0 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/constants.d.ts +64 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/constants.js +129 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/index.d.ts +6 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/index.js +32 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/primitives.d.ts +61 -0
- package/dist/agents/components/run-controls/AdvancedRunSettings/primitives.js +200 -0
- package/dist/agents/components/run-controls/AgentExecutionTestModal.d.ts +36 -0
- package/dist/agents/components/run-controls/AgentExecutionTestModal.js +435 -0
- package/dist/agents/components/run-controls/AgentLauncherSidebarTester.d.ts +6 -0
- package/dist/agents/components/run-controls/AgentLauncherSidebarTester.js +127 -0
- package/dist/agents/components/run-controls/AgentWidgetInvokerTester.d.ts +6 -0
- package/dist/agents/components/run-controls/AgentWidgetInvokerTester.js +84 -0
- package/dist/agents/components/run-controls/ContextPoliciesTab.d.ts +7 -0
- package/dist/agents/components/run-controls/ContextPoliciesTab.js +499 -0
- package/dist/agents/components/run-controls/CreatorRunPanel.d.ts +22 -0
- package/dist/agents/components/run-controls/CreatorRunPanel.js +108 -0
- package/dist/agents/components/run-controls/CreatorRunTabContent.d.ts +30 -0
- package/dist/agents/components/run-controls/CreatorRunTabContent.js +319 -0
- package/dist/agents/components/run-controls/PayloadTab.d.ts +5 -0
- package/dist/agents/components/run-controls/PayloadTab.js +378 -0
- package/dist/agents/components/run-controls/RunConfigOverrides.d.ts +68 -0
- package/dist/agents/components/run-controls/RunConfigOverrides.js +502 -0
- package/dist/agents/components/run-controls/RunInputCapabilities.d.ts +6 -0
- package/dist/agents/components/run-controls/RunInputCapabilities.js +64 -0
- package/dist/agents/components/run-controls/RunModelPicker.d.ts +13 -0
- package/dist/agents/components/run-controls/RunModelPicker.js +121 -0
- package/dist/agents/components/run-controls/RunSettingsEditor.d.ts +9 -0
- package/dist/agents/components/run-controls/RunSettingsEditor.js +473 -0
- package/dist/agents/components/run-controls/RunSettingsModal.d.ts +5 -0
- package/dist/agents/components/run-controls/RunSettingsModal.js +22 -0
- package/dist/agents/components/run-controls/SimpleRunSettings/CapabilityGrid.d.ts +18 -0
- package/dist/agents/components/run-controls/SimpleRunSettings/CapabilityGrid.js +64 -0
- package/dist/agents/components/run-controls/SimpleRunSettings/ReasoningLevelSelector.d.ts +18 -0
- package/dist/agents/components/run-controls/SimpleRunSettings/ReasoningLevelSelector.js +31 -0
- package/dist/agents/components/run-controls/SimpleRunSettings/SimpleRunSettings.d.ts +28 -0
- package/dist/agents/components/run-controls/SimpleRunSettings/SimpleRunSettings.js +95 -0
- package/dist/agents/components/run-controls/SimpleRunSettings/SimpleRunSettingsButton.d.ts +19 -0
- package/dist/agents/components/run-controls/SimpleRunSettings/SimpleRunSettingsButton.js +89 -0
- package/dist/agents/components/run-controls/SimpleRunSettings/capabilities.d.ts +47 -0
- package/dist/agents/components/run-controls/SimpleRunSettings/capabilities.js +122 -0
- package/dist/agents/components/run-controls/StoredModelOverridesField.d.ts +26 -0
- package/dist/agents/components/run-controls/StoredModelOverridesField.js +125 -0
- package/dist/agents/components/run-controls/SurfaceSimulatorSelect.d.ts +10 -0
- package/dist/agents/components/run-controls/SurfaceSimulatorSelect.js +214 -0
- package/dist/agents/components/run-controls/TesterSettingsPanel.d.ts +71 -0
- package/dist/agents/components/run-controls/TesterSettingsPanel.js +470 -0
- package/dist/agents/components/run-controls/panels/BackendTargetPanel.d.ts +28 -0
- package/dist/agents/components/run-controls/panels/BackendTargetPanel.js +142 -0
- package/dist/agents/components/run-controls/panels/ClientMetricsPanel.d.ts +6 -0
- package/dist/agents/components/run-controls/panels/ClientMetricsPanel.js +101 -0
- package/dist/agents/components/run-controls/panels/ModelContextPanel.d.ts +4 -0
- package/dist/agents/components/run-controls/panels/ModelContextPanel.js +211 -0
- package/dist/agents/components/run-controls/panels/RequestStatsPanel.d.ts +6 -0
- package/dist/agents/components/run-controls/panels/RequestStatsPanel.js +126 -0
- package/dist/agents/components/run-controls/panels/SessionStatsPanel.d.ts +4 -0
- package/dist/agents/components/run-controls/panels/SessionStatsPanel.js +103 -0
- package/dist/agents/components/run-controls/panels/shared.d.ts +149 -0
- package/dist/agents/components/run-controls/panels/shared.js +110 -0
- package/dist/agents/components/send-to-agent/SendToAgentWindow.d.ts +9 -0
- package/dist/agents/components/send-to-agent/SendToAgentWindow.js +219 -0
- package/dist/agents/components/send-to-agent/send-to-agent-plan.d.ts +65 -0
- package/dist/agents/components/send-to-agent/send-to-agent-plan.js +128 -0
- package/dist/agents/components/shared/AgentConversationColumn.d.ts +119 -0
- package/dist/agents/components/shared/AgentConversationColumn.js +354 -0
- package/dist/agents/components/shared/AgentDuplicateOutcomeDialog.d.ts +33 -0
- package/dist/agents/components/shared/AgentDuplicateOutcomeDialog.js +142 -0
- package/dist/agents/components/shared/AgentHeader.d.ts +25 -0
- package/dist/agents/components/shared/AgentHeader.js +66 -0
- package/dist/agents/components/shared/AgentHeaderMobile.d.ts +13 -0
- package/dist/agents/components/shared/AgentHeaderMobile.js +265 -0
- package/dist/agents/components/shared/AgentModeController.d.ts +24 -0
- package/dist/agents/components/shared/AgentModeController.js +175 -0
- package/dist/agents/components/shared/AgentNewRunButton.d.ts +5 -0
- package/dist/agents/components/shared/AgentNewRunButton.js +32 -0
- package/dist/agents/components/shared/AgentOptionsMenu.d.ts +8 -0
- package/dist/agents/components/shared/AgentOptionsMenu.js +826 -0
- package/dist/agents/components/shared/AgentPlanningIndicator.d.ts +8 -0
- package/dist/agents/components/shared/AgentPlanningIndicator.js +18 -0
- package/dist/agents/components/shared/AgentReferenceCopyButton.d.ts +6 -0
- package/dist/agents/components/shared/AgentReferenceCopyButton.js +25 -0
- package/dist/agents/components/shared/AgentSaveStatus.d.ts +7 -0
- package/dist/agents/components/shared/AgentSaveStatus.js +107 -0
- package/dist/agents/components/shared/AgentSaveTapButton.d.ts +18 -0
- package/dist/agents/components/shared/AgentSaveTapButton.js +105 -0
- package/dist/agents/components/shared/AgentSelectorIsland.d.ts +17 -0
- package/dist/agents/components/shared/AgentSelectorIsland.js +67 -0
- package/dist/agents/components/shared/AutoInjectionSwitch.d.ts +46 -0
- package/dist/agents/components/shared/AutoInjectionSwitch.js +105 -0
- package/dist/agents/components/shared/DesktopFilterPanel.d.ts +41 -0
- package/dist/agents/components/shared/DesktopFilterPanel.js +295 -0
- package/dist/agents/components/shared/OlderMessagesSentinel.d.ts +43 -0
- package/dist/agents/components/shared/OlderMessagesSentinel.js +251 -0
- package/dist/agents/components/shared/StreamProfilerOverlay.d.ts +1 -0
- package/dist/agents/components/shared/StreamProfilerOverlay.js +88 -0
- package/dist/agents/components/shared/agent-route-context.d.ts +3 -0
- package/dist/agents/components/shared/agent-route-context.js +8 -0
- package/dist/agents/components/shared/assistant-message-layout.d.ts +8 -0
- package/dist/agents/components/shared/assistant-message-layout.js +6 -0
- package/dist/agents/components/shared/transcript-audience.d.ts +28 -0
- package/dist/agents/components/shared/transcript-audience.js +27 -0
- package/dist/agents/components/shared/useAgentSaveAction.d.ts +33 -0
- package/dist/agents/components/shared/useAgentSaveAction.js +179 -0
- package/dist/agents/components/shell/AgentBuildSidebarExtras.d.ts +6 -0
- package/dist/agents/components/shell/AgentBuildSidebarExtras.js +30 -0
- package/dist/agents/components/shell/AgentRunSidebarMenu.d.ts +5 -0
- package/dist/agents/components/shell/AgentRunSidebarMenu.js +250 -0
- package/dist/agents/components/shell/AgentsListHeader.d.ts +1 -0
- package/dist/agents/components/shell/AgentsListHeader.js +69 -0
- package/dist/agents/components/shell/agent-run-route.d.ts +10 -0
- package/dist/agents/components/shell/agent-run-route.js +33 -0
- package/dist/agents/components/smart/AgentRunWrapper.d.ts +13 -0
- package/dist/agents/components/smart/AgentRunWrapper.js +122 -0
- package/dist/agents/components/smart/AgentRunner.d.ts +12 -0
- package/dist/agents/components/smart/AgentRunner.js +176 -0
- package/dist/agents/components/smart/CreateWithAiTabs.d.ts +79 -0
- package/dist/agents/components/smart/CreateWithAiTabs.js +160 -0
- package/dist/agents/components/undo-history/AgentEditHistory.d.ts +9 -0
- package/dist/agents/components/undo-history/AgentEditHistory.js +244 -0
- package/dist/agents/components/unused/AgentSharedHeader.d.ts +3 -0
- package/dist/agents/components/unused/AgentSharedHeader.js +134 -0
- package/dist/agents/components/widgets/AgentWidgetsPage.d.ts +11 -0
- package/dist/agents/components/widgets/AgentWidgetsPage.js +571 -0
- package/dist/agents/components/widgets/WidgetVariableInputs.d.ts +8 -0
- package/dist/agents/components/widgets/WidgetVariableInputs.js +80 -0
- package/dist/agents/components/widgets/build-widget-launch.d.ts +70 -0
- package/dist/agents/components/widgets/build-widget-launch.js +90 -0
- package/dist/agents/components/working-document/DocumentLinkPicker.d.ts +20 -0
- package/dist/agents/components/working-document/DocumentLinkPicker.js +223 -0
- package/dist/agents/components/working-document/ScratchpadQuickPanel.d.ts +5 -0
- package/dist/agents/components/working-document/ScratchpadQuickPanel.js +56 -0
- package/dist/agents/components/working-document/ScratchpadSwitcherMenu.d.ts +11 -0
- package/dist/agents/components/working-document/ScratchpadSwitcherMenu.js +128 -0
- package/dist/agents/components/working-document/WorkingDocumentAgentDiff.d.ts +8 -0
- package/dist/agents/components/working-document/WorkingDocumentAgentDiff.js +32 -0
- package/dist/agents/components/working-document/WorkingDocumentEditor.d.ts +34 -0
- package/dist/agents/components/working-document/WorkingDocumentEditor.js +241 -0
- package/dist/agents/components/working-document/WorkingDocumentLatestVersionDiff.d.ts +7 -0
- package/dist/agents/components/working-document/WorkingDocumentLatestVersionDiff.js +62 -0
- package/dist/agents/components/working-document/WorkingDocumentPanel.d.ts +47 -0
- package/dist/agents/components/working-document/WorkingDocumentPanel.js +405 -0
- package/dist/agents/components/working-document/WorkingDocumentVersionHistory.d.ts +15 -0
- package/dist/agents/components/working-document/WorkingDocumentVersionHistory.js +213 -0
- package/dist/agents/components/working-document/WorkingDocumentViewControls.d.ts +41 -0
- package/dist/agents/components/working-document/WorkingDocumentViewControls.js +121 -0
- package/dist/agents/components/working-document/documents-workspace/DocumentsListRail.d.ts +28 -0
- package/dist/agents/components/working-document/documents-workspace/DocumentsListRail.js +215 -0
- package/dist/agents/components/working-document/documents-workspace/DocumentsWorkspace.d.ts +15 -0
- package/dist/agents/components/working-document/documents-workspace/DocumentsWorkspace.js +451 -0
- package/dist/agents/components/working-document/editor-mode.d.ts +1 -0
- package/dist/agents/components/working-document/editor-mode.js +0 -0
- package/dist/agents/components/working-document/markdown-headings.d.ts +31 -0
- package/dist/agents/components/working-document/markdown-headings.js +65 -0
- package/dist/agents/components/working-document/useWorkingDocumentSurfaceScope.d.ts +15 -0
- package/dist/agents/components/working-document/useWorkingDocumentSurfaceScope.js +89 -0
- package/dist/agents/components/working-document/useWorkingDocumentVersions.d.ts +13 -0
- package/dist/agents/components/working-document/useWorkingDocumentVersions.js +71 -0
- package/dist/agents/components/working-document/workingDocumentSurface.d.ts +78 -0
- package/dist/agents/components/working-document/workingDocumentSurface.js +106 -0
- package/dist/agents/components/working-document/workingDocumentViewStore.d.ts +22 -0
- package/dist/agents/components/working-document/workingDocumentViewStore.js +53 -0
- package/dist/agents/connectors/attachable-resources.d.ts +151 -0
- package/dist/agents/connectors/attachable-resources.js +63 -0
- package/dist/agents/connectors/attachments.slice.d.ts +121 -0
- package/dist/agents/connectors/attachments.slice.js +266 -0
- package/dist/agents/connectors/chat-connections.d.ts +76 -0
- package/dist/agents/connectors/chat-connections.js +53 -0
- package/dist/agents/connectors/connection-state.d.ts +79 -0
- package/dist/agents/connectors/connection-state.js +136 -0
- package/dist/agents/connectors/run-attachments.d.ts +68 -0
- package/dist/agents/connectors/run-attachments.js +85 -0
- package/dist/agents/constants/agent-identity-metadata.d.ts +88 -0
- package/dist/agents/constants/agent-identity-metadata.js +131 -0
- package/dist/agents/constants/agent-settings-surface.d.ts +29 -0
- package/dist/agents/constants/agent-settings-surface.js +6 -0
- package/dist/agents/constants/agent-system-competitors.d.ts +9 -0
- package/dist/agents/constants/agent-system-competitors.js +125 -0
- package/dist/agents/constants/blank-agent.d.ts +38 -0
- package/dist/agents/constants/blank-agent.js +28 -0
- package/dist/agents/constants/local-agent-templates.d.ts +11 -0
- package/dist/agents/constants/local-agent-templates.js +76 -0
- package/dist/agents/constants/system-agent-registry.d.ts +30 -0
- package/dist/agents/constants/system-agent-registry.js +27 -0
- package/dist/agents/constants/system-shortcuts.d.ts +93 -0
- package/dist/agents/constants/system-shortcuts.js +40 -0
- package/dist/agents/conversation-export/conversation-markdown.d.ts +14 -0
- package/dist/agents/conversation-export/conversation-markdown.js +34 -0
- package/dist/agents/conversation-export/conversation-transfer-rows.d.ts +27 -0
- package/dist/agents/conversation-export/conversation-transfer-rows.js +43 -0
- package/dist/agents/conversation-export/conversation-transfer.d.ts +71 -0
- package/dist/agents/conversation-export/conversation-transfer.js +268 -0
- package/dist/agents/conversation-export/document-markdown.d.ts +2 -0
- package/dist/agents/conversation-export/document-markdown.js +8 -0
- package/dist/agents/conversation-export/load-full-history.d.ts +5 -0
- package/dist/agents/conversation-export/load-full-history.js +26 -0
- package/dist/agents/conversation-export/turn-trust-strip.d.ts +9 -0
- package/dist/agents/conversation-export/turn-trust-strip.js +10 -0
- package/dist/agents/cost.d.ts +5 -0
- package/dist/agents/cost.js +6 -0
- package/dist/agents/decision-answers/DecisionAnswers.d.ts +16 -0
- package/dist/agents/decision-answers/DecisionAnswers.js +226 -0
- package/dist/agents/decision-questions/types.d.ts +79 -0
- package/dist/agents/decision-questions/types.js +40 -0
- package/dist/agents/format.d.ts +204 -0
- package/dist/agents/format.js +298 -0
- package/dist/agents/hooks/documentBridgeOwnership.d.ts +6 -0
- package/dist/agents/hooks/documentBridgeOwnership.js +18 -0
- package/dist/agents/hooks/mcp-connection-route.d.ts +12 -0
- package/dist/agents/hooks/mcp-connection-route.js +16 -0
- package/dist/agents/hooks/message-crud/useMessageActions.d.ts +29 -0
- package/dist/agents/hooks/message-crud/useMessageActions.js +119 -0
- package/dist/agents/hooks/useAgentAutoSave.d.ts +1 -0
- package/dist/agents/hooks/useAgentAutoSave.js +110 -0
- package/dist/agents/hooks/useAgentBuilderWriteHandlers.d.ts +9 -0
- package/dist/agents/hooks/useAgentBuilderWriteHandlers.js +102 -0
- package/dist/agents/hooks/useAgentDuplicateFlow.d.ts +15 -0
- package/dist/agents/hooks/useAgentDuplicateFlow.js +76 -0
- package/dist/agents/hooks/useAgentLauncher.d.ts +44 -0
- package/dist/agents/hooks/useAgentLauncher.js +345 -0
- package/dist/agents/hooks/useAgentLauncherTester.d.ts +74 -0
- package/dist/agents/hooks/useAgentLauncherTester.js +242 -0
- package/dist/agents/hooks/useAgentModelLabel.d.ts +13 -0
- package/dist/agents/hooks/useAgentModelLabel.js +27 -0
- package/dist/agents/hooks/useAgentRunSurfaceScope.d.ts +24 -0
- package/dist/agents/hooks/useAgentRunSurfaceScope.js +103 -0
- package/dist/agents/hooks/useAgentUndoRedo.d.ts +31 -0
- package/dist/agents/hooks/useAgentUndoRedo.js +134 -0
- package/dist/agents/hooks/useAgentUsages.d.ts +17 -0
- package/dist/agents/hooks/useAgentUsages.js +36 -0
- package/dist/agents/hooks/useBoundVariableScope.d.ts +30 -0
- package/dist/agents/hooks/useBoundVariableScope.js +122 -0
- package/dist/agents/hooks/useBuilderContextSeed.d.ts +25 -0
- package/dist/agents/hooks/useBuilderContextSeed.js +86 -0
- package/dist/agents/hooks/useConversationMaterialized.d.ts +5 -0
- package/dist/agents/hooks/useConversationMaterialized.js +54 -0
- package/dist/agents/hooks/useConversationPendingCalls.d.ts +30 -0
- package/dist/agents/hooks/useConversationPendingCalls.js +42 -0
- package/dist/agents/hooks/useConversationResume.d.ts +58 -0
- package/dist/agents/hooks/useConversationResume.js +136 -0
- package/dist/agents/hooks/useConversationRoutePromotion.d.ts +29 -0
- package/dist/agents/hooks/useConversationRoutePromotion.js +95 -0
- package/dist/agents/hooks/useConversationSandboxBindingSync.d.ts +1 -0
- package/dist/agents/hooks/useConversationSandboxBindingSync.js +29 -0
- package/dist/agents/hooks/useConversationTitle.d.ts +6 -0
- package/dist/agents/hooks/useConversationTitle.js +45 -0
- package/dist/agents/hooks/useCreatorOwnershipSync.d.ts +1 -0
- package/dist/agents/hooks/useCreatorOwnershipSync.js +27 -0
- package/dist/agents/hooks/useDesktopPresence.d.ts +2 -0
- package/dist/agents/hooks/useDesktopPresence.js +25 -0
- package/dist/agents/hooks/useDiffEnrichment.d.ts +2 -0
- package/dist/agents/hooks/useDiffEnrichment.js +39 -0
- package/dist/agents/hooks/useDriftAlerts.d.ts +11 -0
- package/dist/agents/hooks/useDriftAlerts.js +36 -0
- package/dist/agents/hooks/useDriftReport.d.ts +20 -0
- package/dist/agents/hooks/useDriftReport.js +34 -0
- package/dist/agents/hooks/useFloatingAgentRun.d.ts +77 -0
- package/dist/agents/hooks/useFloatingAgentRun.js +119 -0
- package/dist/agents/hooks/useHeadlessAgentJson.d.ts +41 -0
- package/dist/agents/hooks/useHeadlessAgentJson.js +70 -0
- package/dist/agents/hooks/useInstanceInputUndoRedo.d.ts +23 -0
- package/dist/agents/hooks/useInstanceInputUndoRedo.js +94 -0
- package/dist/agents/hooks/useLiveAgentRun.d.ts +26 -0
- package/dist/agents/hooks/useLiveAgentRun.js +71 -0
- package/dist/agents/hooks/useLiveRunHandle.d.ts +13 -0
- package/dist/agents/hooks/useLiveRunHandle.js +31 -0
- package/dist/agents/hooks/useMcpTools.d.ts +88 -0
- package/dist/agents/hooks/useMcpTools.js +231 -0
- package/dist/agents/hooks/useModelControls.d.ts +359 -0
- package/dist/agents/hooks/useModelControls.js +297 -0
- package/dist/agents/hooks/useShortcutTrigger.d.ts +89 -0
- package/dist/agents/hooks/useShortcutTrigger.js +51 -0
- package/dist/agents/hooks/useSurfaceExecution.d.ts +8 -0
- package/dist/agents/hooks/useSurfaceExecution.js +27 -0
- package/dist/agents/hooks/useWarmAgent.d.ts +8 -0
- package/dist/agents/hooks/useWarmAgent.js +25 -0
- package/dist/agents/hooks/useWidgetHandle.d.ts +41 -0
- package/dist/agents/hooks/useWidgetHandle.js +91 -0
- package/dist/agents/hooks/useWorkingDocument.d.ts +66 -0
- package/dist/agents/hooks/useWorkingDocument.js +682 -0
- package/dist/agents/image-roles/ImageRoleSelector.d.ts +18 -0
- package/dist/agents/image-roles/ImageRoleSelector.js +94 -0
- package/dist/agents/image-roles/ReferenceRoleCaption.d.ts +8 -0
- package/dist/agents/image-roles/ReferenceRoleCaption.js +21 -0
- package/dist/agents/image-roles/class-aware-rpc.d.ts +22 -0
- package/dist/agents/image-roles/class-aware-rpc.js +28 -0
- package/dist/agents/image-roles/useImageRoleLimits.d.ts +4 -0
- package/dist/agents/image-roles/useImageRoleLimits.js +70 -0
- package/dist/agents/lifecycle/useAgentLifecycleActions.d.ts +17 -0
- package/dist/agents/lifecycle/useAgentLifecycleActions.js +63 -0
- package/dist/agents/mcp-copy.d.ts +77 -0
- package/dist/agents/mcp-copy.js +96 -0
- package/dist/agents/menu/agent-actions.d.ts +15 -0
- package/dist/agents/menu/agent-actions.js +72 -0
- package/dist/agents/message-flags/ExampleTurnsGroup.d.ts +11 -0
- package/dist/agents/message-flags/ExampleTurnsGroup.js +22 -0
- package/dist/agents/message-flags/MessageFlagToggles.d.ts +16 -0
- package/dist/agents/message-flags/MessageFlagToggles.js +110 -0
- package/dist/agents/message-flags/MessageFlagsPreview.d.ts +5 -0
- package/dist/agents/message-flags/MessageFlagsPreview.js +54 -0
- package/dist/agents/message-flags/PrefillNote.d.ts +20 -0
- package/dist/agents/message-flags/PrefillNote.js +46 -0
- package/dist/agents/message-flags/StoppedNote.d.ts +5 -0
- package/dist/agents/message-flags/StoppedNote.js +31 -0
- package/dist/agents/message-flags/flags.d.ts +95 -0
- package/dist/agents/message-flags/flags.js +227 -0
- package/dist/agents/message-flags/useMessageFlagProfile.d.ts +4 -0
- package/dist/agents/message-flags/useMessageFlagProfile.js +90 -0
- package/dist/agents/message-flags/useMessageFlags.d.ts +8 -0
- package/dist/agents/message-flags/useMessageFlags.js +68 -0
- package/dist/agents/message-pins/pinned-messages-store.d.ts +22 -0
- package/dist/agents/message-pins/pinned-messages-store.js +133 -0
- package/dist/agents/model-registry/model-classes.d.ts +43 -0
- package/dist/agents/model-registry/model-classes.js +40 -0
- package/dist/agents/model-registry/modelRegistrySlice.d.ts +691 -0
- package/dist/agents/model-registry/modelRegistrySlice.js +574 -0
- package/dist/agents/model-registry/parse.d.ts +88 -0
- package/dist/agents/model-registry/parse.js +246 -0
- package/dist/agents/prompt-preview/PromptPreviewContent.d.ts +5 -0
- package/dist/agents/prompt-preview/PromptPreviewContent.js +131 -0
- package/dist/agents/prompt-preview/service.d.ts +13 -0
- package/dist/agents/prompt-preview/service.js +56 -0
- package/dist/agents/prompt-preview/types.d.ts +29 -0
- package/dist/agents/prompt-preview/types.js +0 -0
- package/dist/agents/redux/agent-assistant-markdown-draft.slice.d.ts +35 -0
- package/dist/agents/redux/agent-assistant-markdown-draft.slice.js +48 -0
- package/dist/agents/redux/agent-definition/agent-cache-bust-request.d.ts +19 -0
- package/dist/agents/redux/agent-definition/agent-cache-bust-request.js +63 -0
- package/dist/agents/redux/agent-definition/agent-not-readable.d.ts +6 -0
- package/dist/agents/redux/agent-definition/agent-not-readable.js +16 -0
- package/dist/agents/redux/agent-definition/agentNameTaken.d.ts +17 -0
- package/dist/agents/redux/agent-definition/agentNameTaken.js +18 -0
- package/dist/agents/redux/agent-definition/cache-bust-middleware.d.ts +46 -0
- package/dist/agents/redux/agent-definition/cache-bust-middleware.js +95 -0
- package/dist/agents/redux/agent-definition/converters.d.ts +66 -0
- package/dist/agents/redux/agent-definition/converters.js +440 -0
- package/dist/agents/redux/agent-definition/data-issue-recovery.d.ts +31 -0
- package/dist/agents/redux/agent-definition/data-issue-recovery.js +69 -0
- package/dist/agents/redux/agent-definition/invalidate-agent-cache.thunk.d.ts +33 -0
- package/dist/agents/redux/agent-definition/invalidate-agent-cache.thunk.js +29 -0
- package/dist/agents/redux/agent-definition/parse-custom-tools.d.ts +28 -0
- package/dist/agents/redux/agent-definition/parse-custom-tools.js +114 -0
- package/dist/agents/redux/agent-definition/parse-messages-variables.d.ts +10 -0
- package/dist/agents/redux/agent-definition/parse-messages-variables.js +476 -0
- package/dist/agents/redux/agent-definition/parse-output-snapshot.d.ts +50 -0
- package/dist/agents/redux/agent-definition/parse-output-snapshot.js +401 -0
- package/dist/agents/redux/agent-definition/parse-settings-context.d.ts +19 -0
- package/dist/agents/redux/agent-definition/parse-settings-context.js +133 -0
- package/dist/agents/redux/agent-definition/sanitize-tool-ids.d.ts +8 -0
- package/dist/agents/redux/agent-definition/sanitize-tool-ids.js +26 -0
- package/dist/agents/redux/agent-definition/selectors.d.ts +22660 -0
- package/dist/agents/redux/agent-definition/selectors.js +672 -0
- package/dist/agents/redux/agent-definition/slice.d.ts +254 -0
- package/dist/agents/redux/agent-definition/slice.js +689 -0
- package/dist/agents/redux/agent-definition/synthetic-id.d.ts +18 -0
- package/dist/agents/redux/agent-definition/synthetic-id.js +8 -0
- package/dist/agents/redux/agent-definition/thunks.d.ts +349 -0
- package/dist/agents/redux/agent-definition/thunks.js +469 -0
- package/dist/agents/redux/agent-filter/selectors.d.ts +421 -0
- package/dist/agents/redux/agent-filter/selectors.js +85 -0
- package/dist/agents/redux/agent-settings/agentSettingsSlice.d.ts +1016 -0
- package/dist/agents/redux/agent-settings/agentSettingsSlice.js +644 -0
- package/dist/agents/redux/agent-settings/internal-utils.d.ts +123 -0
- package/dist/agents/redux/agent-settings/internal-utils.js +315 -0
- package/dist/agents/redux/agent-settings/selectors.d.ts +10196 -0
- package/dist/agents/redux/agent-settings/selectors.js +273 -0
- package/dist/agents/redux/agent-settings/settings-catalogue.d.ts +78 -0
- package/dist/agents/redux/agent-settings/settings-catalogue.js +176 -0
- package/dist/agents/redux/agent-settings/types.d.ts +141 -0
- package/dist/agents/redux/agent-settings/types.js +0 -0
- package/dist/agents/redux/agent-settings/ui-gates.d.ts +54 -0
- package/dist/agents/redux/agent-settings/ui-gates.js +38 -0
- package/dist/agents/redux/agent-shortcut-categories/converters.d.ts +3 -0
- package/dist/agents/redux/agent-shortcut-categories/converters.js +49 -0
- package/dist/agents/redux/agent-shortcut-categories/selectors.d.ts +3232 -0
- package/dist/agents/redux/agent-shortcut-categories/selectors.js +166 -0
- package/dist/agents/redux/agent-shortcut-categories/slice.d.ts +85 -0
- package/dist/agents/redux/agent-shortcut-categories/slice.js +284 -0
- package/dist/agents/redux/agent-shortcut-categories/thunks.d.ts +94 -0
- package/dist/agents/redux/agent-shortcut-categories/thunks.js +215 -0
- package/dist/agents/redux/agent-shortcut-categories/types.d.ts +68 -0
- package/dist/agents/redux/agent-shortcut-categories/types.js +0 -0
- package/dist/agents/redux/agent-shortcuts/converters.d.ts +112 -0
- package/dist/agents/redux/agent-shortcuts/converters.js +373 -0
- package/dist/agents/redux/agent-shortcuts/selectors.d.ts +10555 -0
- package/dist/agents/redux/agent-shortcuts/selectors.js +394 -0
- package/dist/agents/redux/agent-shortcuts/skl-types.d.ts +79 -0
- package/dist/agents/redux/agent-shortcuts/skl-types.js +20 -0
- package/dist/agents/redux/agent-shortcuts/slice.d.ts +142 -0
- package/dist/agents/redux/agent-shortcuts/slice.js +336 -0
- package/dist/agents/redux/agent-shortcuts/thunks/bulkWriteShortcuts.thunk.d.ts +38 -0
- package/dist/agents/redux/agent-shortcuts/thunks/bulkWriteShortcuts.thunk.js +83 -0
- package/dist/agents/redux/agent-shortcuts/thunks/createShortcutFromAgentSurface.thunk.d.ts +67 -0
- package/dist/agents/redux/agent-shortcuts/thunks/createShortcutFromAgentSurface.thunk.js +40 -0
- package/dist/agents/redux/agent-shortcuts/thunks.d.ts +390 -0
- package/dist/agents/redux/agent-shortcuts/thunks.js +900 -0
- package/dist/agents/redux/agent-shortcuts/types.d.ts +415 -0
- package/dist/agents/redux/agent-shortcuts/types.js +5 -0
- package/dist/agents/redux/chat/chat-incognito.slice.d.ts +8 -0
- package/dist/agents/redux/chat/chat-incognito.slice.js +25 -0
- package/dist/agents/redux/chat/chat-route.slice.d.ts +43 -0
- package/dist/agents/redux/chat/chat-route.slice.js +58 -0
- package/dist/agents/redux/conversation-history/conversation-search.d.ts +33 -0
- package/dist/agents/redux/conversation-history/conversation-search.js +108 -0
- package/dist/agents/redux/conversation-history/history-filters.d.ts +49 -0
- package/dist/agents/redux/conversation-history/history-filters.js +49 -0
- package/dist/agents/redux/conversation-history/index.d.ts +18 -0
- package/dist/agents/redux/conversation-history/index.js +4 -0
- package/dist/agents/redux/conversation-history/lanes.d.ts +54 -0
- package/dist/agents/redux/conversation-history/lanes.js +79 -0
- package/dist/agents/redux/conversation-history/selectors.d.ts +1034 -0
- package/dist/agents/redux/conversation-history/selectors.js +155 -0
- package/dist/agents/redux/conversation-history/slice.d.ts +82 -0
- package/dist/agents/redux/conversation-history/slice.js +346 -0
- package/dist/agents/redux/conversation-history/source-registry.d.ts +134 -0
- package/dist/agents/redux/conversation-history/source-registry.js +371 -0
- package/dist/agents/redux/conversation-history/thunks.d.ts +95 -0
- package/dist/agents/redux/conversation-history/thunks.js +238 -0
- package/dist/agents/redux/conversation-history/types.d.ts +152 -0
- package/dist/agents/redux/conversation-history/types.js +32 -0
- package/dist/agents/redux/conversation-history/useSurfaceSourceFilter.d.ts +2 -0
- package/dist/agents/redux/conversation-history/useSurfaceSourceFilter.js +24 -0
- package/dist/agents/redux/conversation-list/conversation-list.selectors.d.ts +197 -0
- package/dist/agents/redux/conversation-list/conversation-list.selectors.js +98 -0
- package/dist/agents/redux/conversation-list/conversation-list.slice.d.ts +176 -0
- package/dist/agents/redux/conversation-list/conversation-list.slice.js +317 -0
- package/dist/agents/redux/conversation-list/conversation-list.thunks.d.ts +96 -0
- package/dist/agents/redux/conversation-list/conversation-list.thunks.js +189 -0
- package/dist/agents/redux/conversation-list/conversation-list.types.d.ts +95 -0
- package/dist/agents/redux/conversation-list/conversation-list.types.js +15 -0
- package/dist/agents/redux/conversation-list/conversation-row-actions.thunks.d.ts +195 -0
- package/dist/agents/redux/conversation-list/conversation-row-actions.thunks.js +252 -0
- package/dist/agents/redux/conversation-list/conversation-trash.thunks.d.ts +64 -0
- package/dist/agents/redux/conversation-list/conversation-trash.thunks.js +115 -0
- package/dist/agents/redux/conversation-list/merge-live-list-row.d.ts +20 -0
- package/dist/agents/redux/conversation-list/merge-live-list-row.js +30 -0
- package/dist/agents/redux/conversation-list/record-conversation-from-execution.d.ts +33 -0
- package/dist/agents/redux/conversation-list/record-conversation-from-execution.js +66 -0
- package/dist/agents/redux/execution-system/active-requests/active-requests.selectors.d.ts +4149 -0
- package/dist/agents/redux/execution-system/active-requests/active-requests.selectors.js +1281 -0
- package/dist/agents/redux/execution-system/active-requests/active-requests.slice.d.ts +234 -0
- package/dist/agents/redux/execution-system/active-requests/active-requests.slice.js +1046 -0
- package/dist/agents/redux/execution-system/active-requests/useRetainRequestForViewer.d.ts +9 -0
- package/dist/agents/redux/execution-system/active-requests/useRetainRequestForViewer.js +31 -0
- package/dist/agents/redux/execution-system/active-tools/active-tools.slice.d.ts +44 -0
- package/dist/agents/redux/execution-system/active-tools/active-tools.slice.js +35 -0
- package/dist/agents/redux/execution-system/client-capabilities/agent-fs.provider.d.ts +17 -0
- package/dist/agents/redux/execution-system/client-capabilities/agent-fs.provider.js +10 -0
- package/dist/agents/redux/execution-system/client-capabilities/desktop-native.provider.d.ts +22 -0
- package/dist/agents/redux/execution-system/client-capabilities/desktop-native.provider.js +25 -0
- package/dist/agents/redux/execution-system/client-capabilities/desktop-presence.d.ts +46 -0
- package/dist/agents/redux/execution-system/client-capabilities/desktop-presence.js +86 -0
- package/dist/agents/redux/execution-system/client-capabilities/editor-state.provider.d.ts +11 -0
- package/dist/agents/redux/execution-system/client-capabilities/editor-state.provider.js +6 -0
- package/dist/agents/redux/execution-system/client-capabilities/register-all.d.ts +13 -0
- package/dist/agents/redux/execution-system/client-capabilities/register-all.js +5 -0
- package/dist/agents/redux/execution-system/client-capabilities/registry.d.ts +37 -0
- package/dist/agents/redux/execution-system/client-capabilities/registry.js +14 -0
- package/dist/agents/redux/execution-system/client-capabilities/sandbox-fs.provider.d.ts +11 -0
- package/dist/agents/redux/execution-system/client-capabilities/sandbox-fs.provider.js +6 -0
- package/dist/agents/redux/execution-system/client-capabilities/widget-handle.provider.d.ts +17 -0
- package/dist/agents/redux/execution-system/client-capabilities/widget-handle.provider.js +22 -0
- package/dist/agents/redux/execution-system/context-rules/context-hierarchy.d.ts +49 -0
- package/dist/agents/redux/execution-system/context-rules/context-hierarchy.js +57 -0
- package/dist/agents/redux/execution-system/context-rules/context-rules.thunks.d.ts +71 -0
- package/dist/agents/redux/execution-system/context-rules/context-rules.thunks.js +164 -0
- package/dist/agents/redux/execution-system/context-rules/context-viewer.d.ts +33 -0
- package/dist/agents/redux/execution-system/context-rules/context-viewer.js +73 -0
- package/dist/agents/redux/execution-system/context-rules/mandate-kill-switch.d.ts +18 -0
- package/dist/agents/redux/execution-system/context-rules/mandate-kill-switch.js +34 -0
- package/dist/agents/redux/execution-system/context-rules/receipt-check.d.ts +44 -0
- package/dist/agents/redux/execution-system/context-rules/receipt-check.js +120 -0
- package/dist/agents/redux/execution-system/context-rules/request-context.d.ts +202 -0
- package/dist/agents/redux/execution-system/context-rules/request-context.js +423 -0
- package/dist/agents/redux/execution-system/context-rules/surface-context-rows.d.ts +26 -0
- package/dist/agents/redux/execution-system/context-rules/surface-context-rows.js +73 -0
- package/dist/agents/redux/execution-system/context-state/context-state.selectors.d.ts +927 -0
- package/dist/agents/redux/execution-system/context-state/context-state.selectors.js +55 -0
- package/dist/agents/redux/execution-system/context-state/context-state.slice.d.ts +85 -0
- package/dist/agents/redux/execution-system/context-state/context-state.slice.js +109 -0
- package/dist/agents/redux/execution-system/conversation-focus/conversation-focus.selectors.d.ts +31 -0
- package/dist/agents/redux/execution-system/conversation-focus/conversation-focus.selectors.js +30 -0
- package/dist/agents/redux/execution-system/conversation-focus/conversation-focus.slice.d.ts +48 -0
- package/dist/agents/redux/execution-system/conversation-focus/conversation-focus.slice.js +102 -0
- package/dist/agents/redux/execution-system/conversations/conversation-persistence.d.ts +38 -0
- package/dist/agents/redux/execution-system/conversations/conversation-persistence.js +30 -0
- package/dist/agents/redux/execution-system/conversations/conversations.selectors.d.ts +393 -0
- package/dist/agents/redux/execution-system/conversations/conversations.selectors.js +87 -0
- package/dist/agents/redux/execution-system/conversations/conversations.slice.d.ts +83 -0
- package/dist/agents/redux/execution-system/conversations/conversations.slice.js +281 -0
- package/dist/agents/redux/execution-system/conversations/conversations.thunks.d.ts +30 -0
- package/dist/agents/redux/execution-system/conversations/conversations.thunks.js +39 -0
- package/dist/agents/redux/execution-system/conversations/surface-owns-output.persistence.d.ts +42 -0
- package/dist/agents/redux/execution-system/conversations/surface-owns-output.persistence.js +50 -0
- package/dist/agents/redux/execution-system/create-instance-full.d.ts +94 -0
- package/dist/agents/redux/execution-system/create-instance-full.js +7 -0
- package/dist/agents/redux/execution-system/display-mode-overlay.d.ts +28 -0
- package/dist/agents/redux/execution-system/display-mode-overlay.js +18 -0
- package/dist/agents/redux/execution-system/durable-runs/reattach-on-transport-loss.d.ts +64 -0
- package/dist/agents/redux/execution-system/durable-runs/reattach-on-transport-loss.js +79 -0
- package/dist/agents/redux/execution-system/inbox/deliver-stranded-queue.thunk.d.ts +36 -0
- package/dist/agents/redux/execution-system/inbox/deliver-stranded-queue.thunk.js +66 -0
- package/dist/agents/redux/execution-system/inbox/inbox-error.d.ts +14 -0
- package/dist/agents/redux/execution-system/inbox/inbox-error.js +17 -0
- package/dist/agents/redux/execution-system/inbox/inbox-turn-end.middleware.d.ts +3 -0
- package/dist/agents/redux/execution-system/inbox/inbox-turn-end.middleware.js +30 -0
- package/dist/agents/redux/execution-system/inbox/inbox.selectors.d.ts +24 -0
- package/dist/agents/redux/execution-system/inbox/inbox.selectors.js +23 -0
- package/dist/agents/redux/execution-system/inbox/inbox.slice.d.ts +76 -0
- package/dist/agents/redux/execution-system/inbox/inbox.slice.js +103 -0
- package/dist/agents/redux/execution-system/inbox/inbox.thunks.d.ts +147 -0
- package/dist/agents/redux/execution-system/inbox/inbox.thunks.js +229 -0
- package/dist/agents/redux/execution-system/instance-client-tools/instance-client-tools.selectors.d.ts +2 -0
- package/dist/agents/redux/execution-system/instance-client-tools/instance-client-tools.selectors.js +5 -0
- package/dist/agents/redux/execution-system/instance-client-tools/instance-client-tools.slice.d.ts +36 -0
- package/dist/agents/redux/execution-system/instance-client-tools/instance-client-tools.slice.js +65 -0
- package/dist/agents/redux/execution-system/instance-context/instance-context.selectors.d.ts +210 -0
- package/dist/agents/redux/execution-system/instance-context/instance-context.selectors.js +36 -0
- package/dist/agents/redux/execution-system/instance-context/instance-context.slice.d.ts +103 -0
- package/dist/agents/redux/execution-system/instance-context/instance-context.slice.js +243 -0
- package/dist/agents/redux/execution-system/instance-context/sync-canvas-item-context.thunk.d.ts +39 -0
- package/dist/agents/redux/execution-system/instance-context/sync-canvas-item-context.thunk.js +111 -0
- package/dist/agents/redux/execution-system/instance-input-capabilities/input-capabilities-snapshot.d.ts +11 -0
- package/dist/agents/redux/execution-system/instance-input-capabilities/input-capabilities-snapshot.js +25 -0
- package/dist/agents/redux/execution-system/instance-input-capabilities/instance-input-capabilities.persistence.d.ts +19 -0
- package/dist/agents/redux/execution-system/instance-input-capabilities/instance-input-capabilities.persistence.js +83 -0
- package/dist/agents/redux/execution-system/instance-input-capabilities/instance-input-capabilities.selectors.d.ts +12 -0
- package/dist/agents/redux/execution-system/instance-input-capabilities/instance-input-capabilities.selectors.js +37 -0
- package/dist/agents/redux/execution-system/instance-input-capabilities/instance-input-capabilities.slice.d.ts +39 -0
- package/dist/agents/redux/execution-system/instance-input-capabilities/instance-input-capabilities.slice.js +91 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/auto-means-unset.d.ts +23 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/auto-means-unset.js +14 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/base-settings.d.ts +23 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/base-settings.js +9 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/instance-model-overrides.selectors.d.ts +63 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/instance-model-overrides.selectors.js +78 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/instance-model-overrides.slice.d.ts +47 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/instance-model-overrides.slice.js +182 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/launch-model-overrides.d.ts +18 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/launch-model-overrides.js +23 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/offering-pin.d.ts +44 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/offering-pin.js +55 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/useEffectiveClassPin.d.ts +17 -0
- package/dist/agents/redux/execution-system/instance-model-overrides/useEffectiveClassPin.js +36 -0
- package/dist/agents/redux/execution-system/instance-resources/answer-edit-remark.d.ts +15 -0
- package/dist/agents/redux/execution-system/instance-resources/answer-edit-remark.js +81 -0
- package/dist/agents/redux/execution-system/instance-resources/editable-resource-types.d.ts +15 -0
- package/dist/agents/redux/execution-system/instance-resources/editable-resource-types.js +20 -0
- package/dist/agents/redux/execution-system/instance-resources/instance-resources.selectors.d.ts +2035 -0
- package/dist/agents/redux/execution-system/instance-resources/instance-resources.selectors.js +572 -0
- package/dist/agents/redux/execution-system/instance-resources/instance-resources.slice.d.ts +81 -0
- package/dist/agents/redux/execution-system/instance-resources/instance-resources.slice.js +262 -0
- package/dist/agents/redux/execution-system/instance-resources/message-part-resources.d.ts +32 -0
- package/dist/agents/redux/execution-system/instance-resources/message-part-resources.js +139 -0
- package/dist/agents/redux/execution-system/instance-resources/remark-diff.d.ts +9 -0
- package/dist/agents/redux/execution-system/instance-resources/remark-diff.js +60 -0
- package/dist/agents/redux/execution-system/instance-resources/remark-handles.d.ts +73 -0
- package/dist/agents/redux/execution-system/instance-resources/remark-handles.js +123 -0
- package/dist/agents/redux/execution-system/instance-resources/remark-knob.d.ts +8 -0
- package/dist/agents/redux/execution-system/instance-resources/remark-knob.js +29 -0
- package/dist/agents/redux/execution-system/instance-resources/remark-sink.d.ts +13 -0
- package/dist/agents/redux/execution-system/instance-resources/remark-sink.js +40 -0
- package/dist/agents/redux/execution-system/instance-resources/remarks-wire.d.ts +20 -0
- package/dist/agents/redux/execution-system/instance-resources/remarks-wire.js +104 -0
- package/dist/agents/redux/execution-system/instance-resources/remarks.d.ts +201 -0
- package/dist/agents/redux/execution-system/instance-resources/remarks.js +219 -0
- package/dist/agents/redux/execution-system/instance-resources/resource-source.d.ts +36 -0
- package/dist/agents/redux/execution-system/instance-resources/resource-source.js +59 -0
- package/dist/agents/redux/execution-system/instance-resources/task-toggle-projection.d.ts +7 -0
- package/dist/agents/redux/execution-system/instance-resources/task-toggle-projection.js +55 -0
- package/dist/agents/redux/execution-system/instance-ui-state/components/InstanceUIStateCore.d.ts +7 -0
- package/dist/agents/redux/execution-system/instance-ui-state/components/InstanceUIStateCore.js +479 -0
- package/dist/agents/redux/execution-system/instance-ui-state/components/InstanceUIStateList.d.ts +11 -0
- package/dist/agents/redux/execution-system/instance-ui-state/components/InstanceUIStateList.js +188 -0
- package/dist/agents/redux/execution-system/instance-ui-state/instance-ui-state.selectors.d.ts +482 -0
- package/dist/agents/redux/execution-system/instance-ui-state/instance-ui-state.selectors.js +284 -0
- package/dist/agents/redux/execution-system/instance-ui-state/instance-ui-state.slice.d.ts +253 -0
- package/dist/agents/redux/execution-system/instance-ui-state/instance-ui-state.slice.js +695 -0
- package/dist/agents/redux/execution-system/instance-ui-state/launch-handle-release.middleware.d.ts +3 -0
- package/dist/agents/redux/execution-system/instance-ui-state/launch-handle-release.middleware.js +49 -0
- package/dist/agents/redux/execution-system/instance-ui-state/run-configuration-persist.d.ts +38 -0
- package/dist/agents/redux/execution-system/instance-ui-state/run-configuration-persist.js +172 -0
- package/dist/agents/redux/execution-system/instance-user-input/clear-composer.thunk.d.ts +11 -0
- package/dist/agents/redux/execution-system/instance-user-input/clear-composer.thunk.js +20 -0
- package/dist/agents/redux/execution-system/instance-user-input/composer-draft-store.d.ts +75 -0
- package/dist/agents/redux/execution-system/instance-user-input/composer-draft-store.js +231 -0
- package/dist/agents/redux/execution-system/instance-user-input/composer-draft.middleware.d.ts +15 -0
- package/dist/agents/redux/execution-system/instance-user-input/composer-draft.middleware.js +118 -0
- package/dist/agents/redux/execution-system/instance-user-input/input-draft-protection.d.ts +34 -0
- package/dist/agents/redux/execution-system/instance-user-input/input-draft-protection.js +44 -0
- package/dist/agents/redux/execution-system/instance-user-input/instance-user-input.selectors.d.ts +61 -0
- package/dist/agents/redux/execution-system/instance-user-input/instance-user-input.selectors.js +34 -0
- package/dist/agents/redux/execution-system/instance-user-input/instance-user-input.slice.d.ts +73 -0
- package/dist/agents/redux/execution-system/instance-user-input/instance-user-input.slice.js +329 -0
- package/dist/agents/redux/execution-system/instance-user-input/restore-composer-draft.thunk.d.ts +18 -0
- package/dist/agents/redux/execution-system/instance-user-input/restore-composer-draft.thunk.js +26 -0
- package/dist/agents/redux/execution-system/instance-user-input/restore-unsent-launch.thunk.d.ts +3 -0
- package/dist/agents/redux/execution-system/instance-user-input/restore-unsent-launch.thunk.js +44 -0
- package/dist/agents/redux/execution-system/instance-user-input/unsent-draft.selectors.d.ts +7 -0
- package/dist/agents/redux/execution-system/instance-user-input/unsent-draft.selectors.js +11 -0
- package/dist/agents/redux/execution-system/instance-user-input/unsent-launch-store.d.ts +24 -0
- package/dist/agents/redux/execution-system/instance-user-input/unsent-launch-store.js +51 -0
- package/dist/agents/redux/execution-system/instance-user-input/unsent-launch.middleware.d.ts +18 -0
- package/dist/agents/redux/execution-system/instance-user-input/unsent-launch.middleware.js +130 -0
- package/dist/agents/redux/execution-system/instance-user-input/useComposerDraftRestore.d.ts +21 -0
- package/dist/agents/redux/execution-system/instance-user-input/useComposerDraftRestore.js +72 -0
- package/dist/agents/redux/execution-system/instance-variable-values/bound-variable.selectors.d.ts +21 -0
- package/dist/agents/redux/execution-system/instance-variable-values/bound-variable.selectors.js +73 -0
- package/dist/agents/redux/execution-system/instance-variable-values/instance-variable-values.persistence.d.ts +63 -0
- package/dist/agents/redux/execution-system/instance-variable-values/instance-variable-values.persistence.js +36 -0
- package/dist/agents/redux/execution-system/instance-variable-values/instance-variable-values.selectors.d.ts +540 -0
- package/dist/agents/redux/execution-system/instance-variable-values/instance-variable-values.selectors.js +138 -0
- package/dist/agents/redux/execution-system/instance-variable-values/instance-variable-values.slice.d.ts +125 -0
- package/dist/agents/redux/execution-system/instance-variable-values/instance-variable-values.slice.js +296 -0
- package/dist/agents/redux/execution-system/instance-variable-values/instance-variable-values.thunks.d.ts +38 -0
- package/dist/agents/redux/execution-system/instance-variable-values/instance-variable-values.thunks.js +42 -0
- package/dist/agents/redux/execution-system/instance-variable-values/resolve-variables-for-request.d.ts +15 -0
- package/dist/agents/redux/execution-system/instance-variable-values/resolve-variables-for-request.js +37 -0
- package/dist/agents/redux/execution-system/instance-working-document/contextDelta.d.ts +27 -0
- package/dist/agents/redux/execution-system/instance-working-document/contextDelta.js +17 -0
- package/dist/agents/redux/execution-system/instance-working-document/cx-working-document.service.d.ts +223 -0
- package/dist/agents/redux/execution-system/instance-working-document/cx-working-document.service.js +313 -0
- package/dist/agents/redux/execution-system/instance-working-document/instance-working-document.selectors.d.ts +35 -0
- package/dist/agents/redux/execution-system/instance-working-document/instance-working-document.selectors.js +46 -0
- package/dist/agents/redux/execution-system/instance-working-document/instance-working-document.slice.d.ts +176 -0
- package/dist/agents/redux/execution-system/instance-working-document/instance-working-document.slice.js +293 -0
- package/dist/agents/redux/execution-system/instance-working-document/instance-working-document.thunks.d.ts +329 -0
- package/dist/agents/redux/execution-system/instance-working-document/instance-working-document.thunks.js +1058 -0
- package/dist/agents/redux/execution-system/instance-working-document/scratchpad.thunks.d.ts +151 -0
- package/dist/agents/redux/execution-system/instance-working-document/scratchpad.thunks.js +284 -0
- package/dist/agents/redux/execution-system/instance-working-document/useLiveWorkingDocPatch.d.ts +10 -0
- package/dist/agents/redux/execution-system/instance-working-document/useLiveWorkingDocPatch.js +93 -0
- package/dist/agents/redux/execution-system/instance-working-document/workingDocPatchDiff.d.ts +63 -0
- package/dist/agents/redux/execution-system/instance-working-document/workingDocPatchDiff.js +30 -0
- package/dist/agents/redux/execution-system/message-crud/answer-text-splice.d.ts +124 -0
- package/dist/agents/redux/execution-system/message-crud/answer-text-splice.js +379 -0
- package/dist/agents/redux/execution-system/message-crud/cache-bypass.slice.d.ts +47 -0
- package/dist/agents/redux/execution-system/message-crud/cache-bypass.slice.js +69 -0
- package/dist/agents/redux/execution-system/message-crud/commit-inline-edit.thunk.d.ts +84 -0
- package/dist/agents/redux/execution-system/message-crud/commit-inline-edit.thunk.js +108 -0
- package/dist/agents/redux/execution-system/message-crud/content-blocks.util.d.ts +27 -0
- package/dist/agents/redux/execution-system/message-crud/content-blocks.util.js +14 -0
- package/dist/agents/redux/execution-system/message-crud/delete-message.thunk.d.ts +50 -0
- package/dist/agents/redux/execution-system/message-crud/delete-message.thunk.js +106 -0
- package/dist/agents/redux/execution-system/message-crud/edit-message-text.thunk.d.ts +27 -0
- package/dist/agents/redux/execution-system/message-crud/edit-message-text.thunk.js +19 -0
- package/dist/agents/redux/execution-system/message-crud/edit-message.thunk.d.ts +48 -0
- package/dist/agents/redux/execution-system/message-crud/edit-message.thunk.js +198 -0
- package/dist/agents/redux/execution-system/message-crud/fork-and-resubmit-from-message.thunk.d.ts +57 -0
- package/dist/agents/redux/execution-system/message-crud/fork-and-resubmit-from-message.thunk.js +65 -0
- package/dist/agents/redux/execution-system/message-crud/fork-conversation.thunk.d.ts +51 -0
- package/dist/agents/redux/execution-system/message-crud/fork-conversation.thunk.js +140 -0
- package/dist/agents/redux/execution-system/message-crud/invalidate-conversation-cache.thunk.d.ts +35 -0
- package/dist/agents/redux/execution-system/message-crud/invalidate-conversation-cache.thunk.js +40 -0
- package/dist/agents/redux/execution-system/message-crud/overwrite-and-resend.thunk.d.ts +63 -0
- package/dist/agents/redux/execution-system/message-crud/overwrite-and-resend.thunk.js +74 -0
- package/dist/agents/redux/execution-system/message-crud/refetch-single-message.thunk.d.ts +57 -0
- package/dist/agents/redux/execution-system/message-crud/refetch-single-message.thunk.js +111 -0
- package/dist/agents/redux/execution-system/message-crud/regenerate-anchor.d.ts +26 -0
- package/dist/agents/redux/execution-system/message-crud/regenerate-anchor.js +25 -0
- package/dist/agents/redux/execution-system/message-crud/regenerate-answer.d.ts +35 -0
- package/dist/agents/redux/execution-system/message-crud/regenerate-answer.js +49 -0
- package/dist/agents/redux/execution-system/message-crud/retry-turn.thunk.d.ts +56 -0
- package/dist/agents/redux/execution-system/message-crud/retry-turn.thunk.js +85 -0
- package/dist/agents/redux/execution-system/message-crud/save-answer-edit.thunk.d.ts +102 -0
- package/dist/agents/redux/execution-system/message-crud/save-answer-edit.thunk.js +98 -0
- package/dist/agents/redux/execution-system/message-crud/server/batch-delete-messages.thunk.d.ts +43 -0
- package/dist/agents/redux/execution-system/message-crud/server/batch-delete-messages.thunk.js +42 -0
- package/dist/agents/redux/execution-system/message-crud/server/compact-turns.thunk.d.ts +58 -0
- package/dist/agents/redux/execution-system/message-crud/server/compact-turns.thunk.js +50 -0
- package/dist/agents/redux/execution-system/message-crud/server/fork-and-run-server.thunk.d.ts +76 -0
- package/dist/agents/redux/execution-system/message-crud/server/fork-and-run-server.thunk.js +101 -0
- package/dist/agents/redux/execution-system/message-crud/server/fork-conversation-server.thunk.d.ts +59 -0
- package/dist/agents/redux/execution-system/message-crud/server/fork-conversation-server.thunk.js +83 -0
- package/dist/agents/redux/execution-system/message-crud/server/hide-messages.thunk.d.ts +45 -0
- package/dist/agents/redux/execution-system/message-crud/server/hide-messages.thunk.js +38 -0
- package/dist/agents/redux/execution-system/message-crud/server/replace-messages.thunk.d.ts +58 -0
- package/dist/agents/redux/execution-system/message-crud/server/replace-messages.thunk.js +46 -0
- package/dist/agents/redux/execution-system/message-crud/server/restore-compaction.thunk.d.ts +39 -0
- package/dist/agents/redux/execution-system/message-crud/server/restore-compaction.thunk.js +44 -0
- package/dist/agents/redux/execution-system/message-crud/soft-delete-conversation.thunk.d.ts +35 -0
- package/dist/agents/redux/execution-system/message-crud/soft-delete-conversation.thunk.js +45 -0
- package/dist/agents/redux/execution-system/message-crud/stamp-remark-handles.thunk.d.ts +23 -0
- package/dist/agents/redux/execution-system/message-crud/stamp-remark-handles.thunk.js +46 -0
- package/dist/agents/redux/execution-system/messages/message-citations.d.ts +177 -0
- package/dist/agents/redux/execution-system/messages/message-citations.js +247 -0
- package/dist/agents/redux/execution-system/messages/message-context-receipt.d.ts +48 -0
- package/dist/agents/redux/execution-system/messages/message-context-receipt.js +67 -0
- package/dist/agents/redux/execution-system/messages/messages.selectors.d.ts +291 -0
- package/dist/agents/redux/execution-system/messages/messages.selectors.js +589 -0
- package/dist/agents/redux/execution-system/messages/messages.slice.d.ts +364 -0
- package/dist/agents/redux/execution-system/messages/messages.slice.js +565 -0
- package/dist/agents/redux/execution-system/messages/persisted-content-boundary.d.ts +36 -0
- package/dist/agents/redux/execution-system/messages/persisted-content-boundary.js +167 -0
- package/dist/agents/redux/execution-system/messages/transcript-journal.d.ts +35 -0
- package/dist/agents/redux/execution-system/messages/transcript-journal.js +35 -0
- package/dist/agents/redux/execution-system/observability/observability.selectors.d.ts +491 -0
- package/dist/agents/redux/execution-system/observability/observability.selectors.js +112 -0
- package/dist/agents/redux/execution-system/observability/observability.slice.d.ts +183 -0
- package/dist/agents/redux/execution-system/observability/observability.slice.js +205 -0
- package/dist/agents/redux/execution-system/observational-memory/fetch-memory-cost.thunk.d.ts +35 -0
- package/dist/agents/redux/execution-system/observational-memory/fetch-memory-cost.thunk.js +33 -0
- package/dist/agents/redux/execution-system/observational-memory/observational-memory.selectors.d.ts +92 -0
- package/dist/agents/redux/execution-system/observational-memory/observational-memory.selectors.js +73 -0
- package/dist/agents/redux/execution-system/observational-memory/observational-memory.slice.d.ts +142 -0
- package/dist/agents/redux/execution-system/observational-memory/observational-memory.slice.js +243 -0
- package/dist/agents/redux/execution-system/run-sets/run-sets.slice.d.ts +77 -0
- package/dist/agents/redux/execution-system/run-sets/run-sets.slice.js +49 -0
- package/dist/agents/redux/execution-system/run-sets/run-sets.thunks.d.ts +43 -0
- package/dist/agents/redux/execution-system/run-sets/run-sets.thunks.js +106 -0
- package/dist/agents/redux/execution-system/selectors/aggregate.selectors.d.ts +1378 -0
- package/dist/agents/redux/execution-system/selectors/aggregate.selectors.js +516 -0
- package/dist/agents/redux/execution-system/thunks/abort-registry.d.ts +29 -0
- package/dist/agents/redux/execution-system/thunks/abort-registry.js +55 -0
- package/dist/agents/redux/execution-system/thunks/adopt-foreign-stream.d.ts +120 -0
- package/dist/agents/redux/execution-system/thunks/adopt-foreign-stream.js +88 -0
- package/dist/agents/redux/execution-system/thunks/attach-workflow-run.d.ts +38 -0
- package/dist/agents/redux/execution-system/thunks/attach-workflow-run.js +25 -0
- package/dist/agents/redux/execution-system/thunks/conversation-bundle.d.ts +99 -0
- package/dist/agents/redux/execution-system/thunks/conversation-bundle.js +302 -0
- package/dist/agents/redux/execution-system/thunks/copy-instance-request-draft.thunk.d.ts +35 -0
- package/dist/agents/redux/execution-system/thunks/copy-instance-request-draft.thunk.js +384 -0
- package/dist/agents/redux/execution-system/thunks/create-instance.thunk.d.ts +305 -0
- package/dist/agents/redux/execution-system/thunks/create-instance.thunk.js +933 -0
- package/dist/agents/redux/execution-system/thunks/dispatch-matrx-extend-tool.thunk.d.ts +25 -0
- package/dist/agents/redux/execution-system/thunks/dispatch-matrx-extend-tool.thunk.js +139 -0
- package/dist/agents/redux/execution-system/thunks/dispatch-surface-client-tool.thunk.d.ts +43 -0
- package/dist/agents/redux/execution-system/thunks/dispatch-surface-client-tool.thunk.js +75 -0
- package/dist/agents/redux/execution-system/thunks/dispatch-surface-write.thunk.d.ts +63 -0
- package/dist/agents/redux/execution-system/thunks/dispatch-surface-write.thunk.js +95 -0
- package/dist/agents/redux/execution-system/thunks/dispatch-widget-action.thunk.d.ts +44 -0
- package/dist/agents/redux/execution-system/thunks/dispatch-widget-action.thunk.js +195 -0
- package/dist/agents/redux/execution-system/thunks/execute-builtin-with-extraction.thunks.d.ts +57 -0
- package/dist/agents/redux/execution-system/thunks/execute-builtin-with-extraction.thunks.js +175 -0
- package/dist/agents/redux/execution-system/thunks/execute-instance.thunk.d.ts +148 -0
- package/dist/agents/redux/execution-system/thunks/execute-instance.thunk.js +663 -0
- package/dist/agents/redux/execution-system/thunks/execute-manual-instance.thunk.d.ts +50 -0
- package/dist/agents/redux/execution-system/thunks/execute-manual-instance.thunk.js +737 -0
- package/dist/agents/redux/execution-system/thunks/execution-rejection-meta.d.ts +49 -0
- package/dist/agents/redux/execution-system/thunks/execution-rejection-meta.js +37 -0
- package/dist/agents/redux/execution-system/thunks/follow-workflow-run-stream.d.ts +115 -0
- package/dist/agents/redux/execution-system/thunks/follow-workflow-run-stream.js +196 -0
- package/dist/agents/redux/execution-system/thunks/frozen-submission.d.ts +47 -0
- package/dist/agents/redux/execution-system/thunks/frozen-submission.js +62 -0
- package/dist/agents/redux/execution-system/thunks/launch-agent-execution.thunk.d.ts +37 -0
- package/dist/agents/redux/execution-system/thunks/launch-agent-execution.thunk.js +753 -0
- package/dist/agents/redux/execution-system/thunks/launch-conversation.thunk.d.ts +65 -0
- package/dist/agents/redux/execution-system/thunks/launch-conversation.thunk.js +85 -0
- package/dist/agents/redux/execution-system/thunks/load-agent-call-child.thunk.d.ts +25 -0
- package/dist/agents/redux/execution-system/thunks/load-agent-call-child.thunk.js +57 -0
- package/dist/agents/redux/execution-system/thunks/load-conversation.thunk.d.ts +100 -0
- package/dist/agents/redux/execution-system/thunks/load-conversation.thunk.js +453 -0
- package/dist/agents/redux/execution-system/thunks/load-older-messages.thunk.d.ts +63 -0
- package/dist/agents/redux/execution-system/thunks/load-older-messages.thunk.js +69 -0
- package/dist/agents/redux/execution-system/thunks/matrx-transport-for-conversation.d.ts +34 -0
- package/dist/agents/redux/execution-system/thunks/matrx-transport-for-conversation.js +26 -0
- package/dist/agents/redux/execution-system/thunks/page-context.thunk.d.ts +14 -0
- package/dist/agents/redux/execution-system/thunks/page-context.thunk.js +25 -0
- package/dist/agents/redux/execution-system/thunks/process-stream.d.ts +112 -0
- package/dist/agents/redux/execution-system/thunks/process-stream.js +2582 -0
- package/dist/agents/redux/execution-system/thunks/provider-retry-control.thunk.d.ts +21 -0
- package/dist/agents/redux/execution-system/thunks/provider-retry-control.thunk.js +49 -0
- package/dist/agents/redux/execution-system/thunks/recover-dropped-stream.thunk.d.ts +50 -0
- package/dist/agents/redux/execution-system/thunks/recover-dropped-stream.thunk.js +60 -0
- package/dist/agents/redux/execution-system/thunks/refresh-conversation-binding.thunk.d.ts +34 -0
- package/dist/agents/redux/execution-system/thunks/refresh-conversation-binding.thunk.js +50 -0
- package/dist/agents/redux/execution-system/thunks/refresh-surface-scope.thunk.d.ts +43 -0
- package/dist/agents/redux/execution-system/thunks/refresh-surface-scope.thunk.js +298 -0
- package/dist/agents/redux/execution-system/thunks/request-draft-snapshot.d.ts +71 -0
- package/dist/agents/redux/execution-system/thunks/request-draft-snapshot.js +255 -0
- package/dist/agents/redux/execution-system/thunks/resolve-base-url.d.ts +64 -0
- package/dist/agents/redux/execution-system/thunks/resolve-base-url.js +113 -0
- package/dist/agents/redux/execution-system/thunks/resume-claims.d.ts +81 -0
- package/dist/agents/redux/execution-system/thunks/resume-claims.js +52 -0
- package/dist/agents/redux/execution-system/thunks/resume-conversation.thunk.d.ts +37 -0
- package/dist/agents/redux/execution-system/thunks/resume-conversation.thunk.js +66 -0
- package/dist/agents/redux/execution-system/thunks/resume-instance.thunk.d.ts +26 -0
- package/dist/agents/redux/execution-system/thunks/resume-instance.thunk.js +311 -0
- package/dist/agents/redux/execution-system/thunks/run-ai-stream.d.ts +211 -0
- package/dist/agents/redux/execution-system/thunks/run-ai-stream.js +594 -0
- package/dist/agents/redux/execution-system/thunks/run-headless-agent-json.d.ts +324 -0
- package/dist/agents/redux/execution-system/thunks/run-headless-agent-json.js +535 -0
- package/dist/agents/redux/execution-system/thunks/sandbox-gate.thunk.d.ts +103 -0
- package/dist/agents/redux/execution-system/thunks/sandbox-gate.thunk.js +134 -0
- package/dist/agents/redux/execution-system/thunks/settle-after-stop.thunk.d.ts +69 -0
- package/dist/agents/redux/execution-system/thunks/settle-after-stop.thunk.js +130 -0
- package/dist/agents/redux/execution-system/thunks/smart-execute.thunk.d.ts +83 -0
- package/dist/agents/redux/execution-system/thunks/smart-execute.thunk.js +530 -0
- package/dist/agents/redux/execution-system/thunks/stream-flush-scheduler.d.ts +18 -0
- package/dist/agents/redux/execution-system/thunks/stream-flush-scheduler.js +54 -0
- package/dist/agents/redux/execution-system/thunks/structured-output-flattening.d.ts +83 -0
- package/dist/agents/redux/execution-system/thunks/structured-output-flattening.js +60 -0
- package/dist/agents/redux/execution-system/thunks/submit-claims.d.ts +36 -0
- package/dist/agents/redux/execution-system/thunks/submit-claims.js +39 -0
- package/dist/agents/redux/execution-system/thunks/surface-cold-pending-calls.thunk.d.ts +23 -0
- package/dist/agents/redux/execution-system/thunks/surface-cold-pending-calls.thunk.js +44 -0
- package/dist/agents/redux/execution-system/thunks/surface-delegated-tool-call.thunk.d.ts +66 -0
- package/dist/agents/redux/execution-system/thunks/surface-delegated-tool-call.thunk.js +275 -0
- package/dist/agents/redux/execution-system/thunks/surface-scope-mapping.d.ts +62 -0
- package/dist/agents/redux/execution-system/thunks/surface-scope-mapping.js +181 -0
- package/dist/agents/redux/execution-system/thunks/surface-tool-call.d.ts +25 -0
- package/dist/agents/redux/execution-system/thunks/surface-tool-call.js +50 -0
- package/dist/agents/redux/execution-system/thunks/surface-write-approval-change.d.ts +57 -0
- package/dist/agents/redux/execution-system/thunks/surface-write-approval-change.js +64 -0
- package/dist/agents/redux/execution-system/thunks/watch-desktop-delegation.thunk.d.ts +26 -0
- package/dist/agents/redux/execution-system/thunks/watch-desktop-delegation.thunk.js +287 -0
- package/dist/agents/redux/execution-system/thunks/widget-action-approval-change.d.ts +16 -0
- package/dist/agents/redux/execution-system/thunks/widget-action-approval-change.js +69 -0
- package/dist/agents/redux/execution-system/utils/agent-call-trace.d.ts +64 -0
- package/dist/agents/redux/execution-system/utils/agent-call-trace.js +90 -0
- package/dist/agents/redux/execution-system/utils/assemble-cx-content-blocks.d.ts +66 -0
- package/dist/agents/redux/execution-system/utils/assemble-cx-content-blocks.js +464 -0
- package/dist/agents/redux/execution-system/utils/assert-conversation-id.d.ts +14 -0
- package/dist/agents/redux/execution-system/utils/assert-conversation-id.js +12 -0
- package/dist/agents/redux/execution-system/utils/block-media-identity.d.ts +11 -0
- package/dist/agents/redux/execution-system/utils/block-media-identity.js +31 -0
- package/dist/agents/redux/execution-system/utils/build-skill-config-for-request.d.ts +38 -0
- package/dist/agents/redux/execution-system/utils/build-skill-config-for-request.js +56 -0
- package/dist/agents/redux/execution-system/utils/build-tool-injection.d.ts +56 -0
- package/dist/agents/redux/execution-system/utils/build-tool-injection.js +269 -0
- package/dist/agents/redux/execution-system/utils/child-owned-ranges.d.ts +34 -0
- package/dist/agents/redux/execution-system/utils/child-owned-ranges.js +48 -0
- package/dist/agents/redux/execution-system/utils/content-prefilter.d.ts +50 -0
- package/dist/agents/redux/execution-system/utils/content-prefilter.js +243 -0
- package/dist/agents/redux/execution-system/utils/continuation-body.d.ts +65 -0
- package/dist/agents/redux/execution-system/utils/continuation-body.js +76 -0
- package/dist/agents/redux/execution-system/utils/handoff-stream-state.d.ts +121 -0
- package/dist/agents/redux/execution-system/utils/handoff-stream-state.js +47 -0
- package/dist/agents/redux/execution-system/utils/ids.d.ts +13 -0
- package/dist/agents/redux/execution-system/utils/ids.js +12 -0
- package/dist/agents/redux/execution-system/utils/inbound-render-block.d.ts +42 -0
- package/dist/agents/redux/execution-system/utils/inbound-render-block.js +35 -0
- package/dist/agents/redux/execution-system/utils/launch-failure-message.d.ts +22 -0
- package/dist/agents/redux/execution-system/utils/launch-failure-message.js +12 -0
- package/dist/agents/redux/execution-system/utils/loaded-skill-sources.d.ts +8 -0
- package/dist/agents/redux/execution-system/utils/loaded-skill-sources.js +13 -0
- package/dist/agents/redux/execution-system/utils/normalize-content-blocks.d.ts +22 -0
- package/dist/agents/redux/execution-system/utils/normalize-content-blocks.js +430 -0
- package/dist/agents/redux/execution-system/utils/output-contract-guard.d.ts +60 -0
- package/dist/agents/redux/execution-system/utils/output-contract-guard.js +67 -0
- package/dist/agents/redux/execution-system/utils/page-leaving.d.ts +3 -0
- package/dist/agents/redux/execution-system/utils/page-leaving.js +27 -0
- package/dist/agents/redux/execution-system/utils/page-tool-binding.d.ts +64 -0
- package/dist/agents/redux/execution-system/utils/page-tool-binding.js +63 -0
- package/dist/agents/redux/execution-system/utils/request-overrides.d.ts +25 -0
- package/dist/agents/redux/execution-system/utils/request-overrides.js +29 -0
- package/dist/agents/redux/execution-system/utils/request-user-overrides.d.ts +16 -0
- package/dist/agents/redux/execution-system/utils/request-user-overrides.js +13 -0
- package/dist/agents/redux/execution-system/utils/required-organization.d.ts +59 -0
- package/dist/agents/redux/execution-system/utils/required-organization.js +53 -0
- package/dist/agents/redux/execution-system/utils/resolve-start-path.d.ts +43 -0
- package/dist/agents/redux/execution-system/utils/resolve-start-path.js +36 -0
- package/dist/agents/redux/execution-system/utils/shortcut-tool-block.d.ts +21 -0
- package/dist/agents/redux/execution-system/utils/shortcut-tool-block.js +14 -0
- package/dist/agents/redux/execution-system/utils/source-slice-helpers.d.ts +45 -0
- package/dist/agents/redux/execution-system/utils/source-slice-helpers.js +50 -0
- package/dist/agents/redux/execution-system/utils/stream-block-accumulator.d.ts +343 -0
- package/dist/agents/redux/execution-system/utils/stream-block-accumulator.js +1945 -0
- package/dist/agents/redux/execution-system/utils/streamHandoffSignal.d.ts +22 -0
- package/dist/agents/redux/execution-system/utils/streamHandoffSignal.js +20 -0
- package/dist/agents/redux/execution-system/utils/surface-writes-note.d.ts +51 -0
- package/dist/agents/redux/execution-system/utils/surface-writes-note.js +71 -0
- package/dist/agents/redux/execution-system/utils/warn-request-context-drift.d.ts +46 -0
- package/dist/agents/redux/execution-system/utils/warn-request-context-drift.js +87 -0
- package/dist/agents/redux/execution-system/utils/wire-transcript.d.ts +40 -0
- package/dist/agents/redux/execution-system/utils/wire-transcript.js +30 -0
- package/dist/agents/redux/mcp/mcp.slice.d.ts +121 -0
- package/dist/agents/redux/mcp/mcp.slice.js +253 -0
- package/dist/agents/redux/model-registry.d.ts +6 -0
- package/dist/agents/redux/model-registry.js +10 -0
- package/dist/agents/redux/proposed-directives/proposedDirectivesSlice.d.ts +134 -0
- package/dist/agents/redux/proposed-directives/proposedDirectivesSlice.js +56 -0
- package/dist/agents/redux/shared/scope.d.ts +16 -0
- package/dist/agents/redux/shared/scope.js +61 -0
- package/dist/agents/redux/surfaces/request-surface-navigation.thunk.d.ts +42 -0
- package/dist/agents/redux/surfaces/request-surface-navigation.thunk.js +25 -0
- package/dist/agents/redux/surfaces/surfaces.slice.d.ts +76 -0
- package/dist/agents/redux/surfaces/surfaces.slice.js +46 -0
- package/dist/agents/redux/tools/database-tool.d.ts +3 -0
- package/dist/agents/redux/tools/database-tool.js +0 -0
- package/dist/agents/redux/tools/tools.selectors.d.ts +529 -0
- package/dist/agents/redux/tools/tools.selectors.js +24 -0
- package/dist/agents/redux/tools/tools.slice.d.ts +12 -0
- package/dist/agents/redux/tools/tools.slice.js +37 -0
- package/dist/agents/redux/tools/tools.thunks.d.ts +125 -0
- package/dist/agents/redux/tools/tools.thunks.js +42 -0
- package/dist/agents/resources/ResourceChips.d.ts +16 -0
- package/dist/agents/resources/ResourceChips.js +147 -0
- package/dist/agents/resources/ResourceDisplay.d.ts +20 -0
- package/dist/agents/resources/ResourceDisplay.js +132 -0
- package/dist/agents/resources/picker-view-id.d.ts +2 -0
- package/dist/agents/resources/picker-view-id.js +0 -0
- package/dist/agents/resources/types.d.ts +378 -0
- package/dist/agents/resources/types.js +0 -0
- package/dist/agents/resources/utils.d.ts +190 -0
- package/dist/agents/resources/utils.js +573 -0
- package/dist/agents/resources/webpage-snapshot.d.ts +10 -0
- package/dist/agents/resources/webpage-snapshot.js +35 -0
- package/dist/agents/route/AgentHydrator.d.ts +4 -0
- package/dist/agents/route/AgentHydrator.js +14 -0
- package/dist/agents/route/AgentHydratorServer.d.ts +8 -0
- package/dist/agents/route/AgentHydratorServer.js +11 -0
- package/dist/agents/route/AgentListHydrator.d.ts +4 -0
- package/dist/agents/route/AgentListHydrator.js +49 -0
- package/dist/agents/route/buildSystemAgentAiPayload.d.ts +14 -0
- package/dist/agents/route/buildSystemAgentAiPayload.js +79 -0
- package/dist/agents/run/useRunAgent.d.ts +69 -0
- package/dist/agents/run/useRunAgent.js +135 -0
- package/dist/agents/runtime/generation-job.d.ts +17 -0
- package/dist/agents/runtime/generation-job.js +58 -0
- package/dist/agents/runtime/get-model-capabilities.d.ts +6 -0
- package/dist/agents/runtime/get-model-capabilities.js +28 -0
- package/dist/agents/runtime/pickRuntime.d.ts +22 -0
- package/dist/agents/runtime/pickRuntime.js +69 -0
- package/dist/agents/runtime/portable-request-parity.d.ts +30 -0
- package/dist/agents/runtime/portable-request-parity.fixtures.d.ts +234 -0
- package/dist/agents/runtime/portable-request-parity.fixtures.js +127 -0
- package/dist/agents/runtime/portable-request-parity.js +117 -0
- package/dist/agents/runtime/realtime/launchRealtimeSession.thunk.d.ts +25 -0
- package/dist/agents/runtime/realtime/launchRealtimeSession.thunk.js +15 -0
- package/dist/agents/runtime/validation.d.ts +28 -0
- package/dist/agents/runtime/validation.js +38 -0
- package/dist/agents/runtime-reconnect/ServerOperationBanner.d.ts +3 -0
- package/dist/agents/runtime-reconnect/ServerOperationBanner.js +108 -0
- package/dist/agents/runtime-reconnect/api.d.ts +55 -0
- package/dist/agents/runtime-reconnect/api.js +39 -0
- package/dist/agents/runtime-reconnect/follow-what-is-still-in-flight.d.ts +19 -0
- package/dist/agents/runtime-reconnect/follow-what-is-still-in-flight.js +11 -0
- package/dist/agents/runtime-reconnect/mark-answer-following.d.ts +12 -0
- package/dist/agents/runtime-reconnect/mark-answer-following.js +20 -0
- package/dist/agents/runtime-reconnect/parked-on-person.d.ts +2 -0
- package/dist/agents/runtime-reconnect/parked-on-person.js +8 -0
- package/dist/agents/runtime-reconnect/reconnect-server-operation.thunk.d.ts +26 -0
- package/dist/agents/runtime-reconnect/reconnect-server-operation.thunk.js +393 -0
- package/dist/agents/runtime-reconnect/reread-and-follow.d.ts +20 -0
- package/dist/agents/runtime-reconnect/reread-and-follow.js +18 -0
- package/dist/agents/runtime-reconnect/retry-reconnect.d.ts +4 -0
- package/dist/agents/runtime-reconnect/retry-reconnect.js +78 -0
- package/dist/agents/runtime-reconnect/show-parked-ask.d.ts +2 -0
- package/dist/agents/runtime-reconnect/show-parked-ask.js +12 -0
- package/dist/agents/runtime-reconnect/types.d.ts +74 -0
- package/dist/agents/runtime-reconnect/types.js +4 -0
- package/dist/agents/runtime-reconnect/waiting-input-recovery.d.ts +34 -0
- package/dist/agents/runtime-reconnect/waiting-input-recovery.js +16 -0
- package/dist/agents/scribe-tools/dispatcher/dispatch-scribe-tool.thunk.d.ts +31 -0
- package/dist/agents/scribe-tools/dispatcher/dispatch-scribe-tool.thunk.js +106 -0
- package/dist/agents/scribe-tools/handlers/play-audio.handler.d.ts +21 -0
- package/dist/agents/scribe-tools/handlers/play-audio.handler.js +48 -0
- package/dist/agents/scribe-tools/handlers/types.d.ts +26 -0
- package/dist/agents/scribe-tools/handlers/types.js +0 -0
- package/dist/agents/scribe-tools/tools/names.d.ts +22 -0
- package/dist/agents/scribe-tools/tools/names.js +8 -0
- package/dist/agents/scribe-tools/tools/registry.d.ts +13 -0
- package/dist/agents/scribe-tools/tools/registry.js +18 -0
- package/dist/agents/scribe-tools/tools/schemas.d.ts +11 -0
- package/dist/agents/scribe-tools/tools/schemas.js +10 -0
- package/dist/agents/scribe-tools/tools/tool-defs.d.ts +19 -0
- package/dist/agents/scribe-tools/tools/tool-defs.js +32 -0
- package/dist/agents/services/agent-definition-snapshot.service.d.ts +15 -0
- package/dist/agents/services/agent-definition-snapshot.service.js +20 -0
- package/dist/agents/services/agentService.d.ts +12 -0
- package/dist/agents/services/agentService.js +92 -0
- package/dist/agents/services/agentService.types.d.ts +23 -0
- package/dist/agents/services/agentService.types.js +0 -0
- package/dist/agents/services/mcp-client/tool-discovery.d.ts +15 -0
- package/dist/agents/services/mcp-client/tool-discovery.js +0 -0
- package/dist/agents/services/mcp-connections.service.d.ts +63 -0
- package/dist/agents/services/mcp-connections.service.js +106 -0
- package/dist/agents/services/mcp-oauth/backend-failure.d.ts +12 -0
- package/dist/agents/services/mcp-oauth/backend-failure.js +62 -0
- package/dist/agents/services/mcp-oauth/client-registration.d.ts +6 -0
- package/dist/agents/services/mcp-oauth/client-registration.js +9 -0
- package/dist/agents/services/mcp-oauth/discovery.d.ts +81 -0
- package/dist/agents/services/mcp-oauth/discovery.js +264 -0
- package/dist/agents/services/mcp-oauth/endpoint.d.ts +12 -0
- package/dist/agents/services/mcp-oauth/endpoint.js +50 -0
- package/dist/agents/services/mcp-oauth/pkce.d.ts +3 -0
- package/dist/agents/services/mcp-oauth/pkce.js +26 -0
- package/dist/agents/services/mcp-oauth/popup.d.ts +38 -0
- package/dist/agents/services/mcp-oauth/popup.js +33 -0
- package/dist/agents/services/mcp-oauth/state.d.ts +7 -0
- package/dist/agents/services/mcp-oauth/state.js +6 -0
- package/dist/agents/services/mcp.service.d.ts +11 -0
- package/dist/agents/services/mcp.service.js +43 -0
- package/dist/agents/services/variable-binding-preview.service.d.ts +52 -0
- package/dist/agents/services/variable-binding-preview.service.js +55 -0
- package/dist/agents/shortcuts/constants.d.ts +194 -0
- package/dist/agents/shortcuts/constants.js +265 -0
- package/dist/agents/shortcuts/draft-seed.d.ts +17 -0
- package/dist/agents/shortcuts/draft-seed.js +26 -0
- package/dist/agents/shortcuts/resolveShortcutMappings.d.ts +38 -0
- package/dist/agents/shortcuts/resolveShortcutMappings.js +28 -0
- package/dist/agents/shortcuts/resolveShortcutWriteScope.d.ts +20 -0
- package/dist/agents/shortcuts/resolveShortcutWriteScope.js +43 -0
- package/dist/agents/speech-script/SpeechScriptTranscriptView.d.ts +8 -0
- package/dist/agents/speech-script/SpeechScriptTranscriptView.js +30 -0
- package/dist/agents/speech-script/types.d.ts +72 -0
- package/dist/agents/speech-script/types.js +129 -0
- package/dist/agents/surface-catalog-profile.d.ts +96 -0
- package/dist/agents/surface-catalog-profile.js +79 -0
- package/dist/agents/types/agent-api-types.d.ts +252 -0
- package/dist/agents/types/agent-api-types.js +0 -0
- package/dist/agents/types/agent-definition.types.d.ts +746 -0
- package/dist/agents/types/agent-definition.types.js +97 -0
- package/dist/agents/types/agent-execution-config.types.d.ts +204 -0
- package/dist/agents/types/agent-execution-config.types.js +47 -0
- package/dist/agents/types/agent-message-types.d.ts +328 -0
- package/dist/agents/types/agent-message-types.js +0 -0
- package/dist/agents/types/common.types.d.ts +50 -0
- package/dist/agents/types/common.types.js +0 -0
- package/dist/agents/types/conversation-invocation.types.d.ts +281 -0
- package/dist/agents/types/conversation-invocation.types.js +0 -0
- package/dist/agents/types/conversation-stream-events.d.ts +38 -0
- package/dist/agents/types/conversation-stream-events.js +8 -0
- package/dist/agents/types/instance.types.d.ts +1227 -0
- package/dist/agents/types/instance.types.js +187 -0
- package/dist/agents/types/json-schema.d.ts +36 -0
- package/dist/agents/types/json-schema.js +0 -0
- package/dist/agents/types/matrx-directives.types.d.ts +37 -0
- package/dist/agents/types/matrx-directives.types.js +4 -0
- package/dist/agents/types/mcp.types.d.ts +67 -0
- package/dist/agents/types/mcp.types.js +67 -0
- package/dist/agents/types/request.types.d.ts +679 -0
- package/dist/agents/types/request.types.js +18 -0
- package/dist/agents/types/scope.types.d.ts +14 -0
- package/dist/agents/types/scope.types.js +0 -0
- package/dist/agents/types/tool-injection.types.d.ts +156 -0
- package/dist/agents/types/tool-injection.types.js +0 -0
- package/dist/agents/types/widget-handle.types.d.ts +185 -0
- package/dist/agents/types/widget-handle.types.js +44 -0
- package/dist/agents/ui-first-tools/demo/recent-interaction-samples.d.ts +16 -0
- package/dist/agents/ui-first-tools/demo/recent-interaction-samples.js +158 -0
- package/dist/agents/ui-first-tools/dispatcher/dispatch-ui-first-tool.thunk.d.ts +39 -0
- package/dist/agents/ui-first-tools/dispatcher/dispatch-ui-first-tool.thunk.js +150 -0
- package/dist/agents/ui-first-tools/handlers/google-email-send.handler.d.ts +17 -0
- package/dist/agents/ui-first-tools/handlers/google-email-send.handler.js +67 -0
- package/dist/agents/ui-first-tools/handlers/request-takeover.handler.d.ts +11 -0
- package/dist/agents/ui-first-tools/handlers/request-takeover.handler.js +54 -0
- package/dist/agents/ui-first-tools/handlers/types.d.ts +23 -0
- package/dist/agents/ui-first-tools/handlers/types.js +0 -0
- package/dist/agents/ui-first-tools/handlers/update-plan.handler.d.ts +10 -0
- package/dist/agents/ui-first-tools/handlers/update-plan.handler.js +139 -0
- package/dist/agents/ui-first-tools/handlers/user-todos.handler.d.ts +13 -0
- package/dist/agents/ui-first-tools/handlers/user-todos.handler.js +147 -0
- package/dist/agents/ui-first-tools/redux/agent-lists.selectors.d.ts +186 -0
- package/dist/agents/ui-first-tools/redux/agent-lists.selectors.js +62 -0
- package/dist/agents/ui-first-tools/redux/agent-lists.slice.d.ts +53 -0
- package/dist/agents/ui-first-tools/redux/agent-lists.slice.js +115 -0
- package/dist/agents/ui-first-tools/redux/agent-lists.thunks.d.ts +41 -0
- package/dist/agents/ui-first-tools/redux/agent-lists.thunks.js +159 -0
- package/dist/agents/ui-first-tools/redux/ask-draft-registry.d.ts +24 -0
- package/dist/agents/ui-first-tools/redux/ask-draft-registry.js +20 -0
- package/dist/agents/ui-first-tools/redux/ask-resolver-registry.d.ts +27 -0
- package/dist/agents/ui-first-tools/redux/ask-resolver-registry.js +46 -0
- package/dist/agents/ui-first-tools/redux/build-ambient-context.d.ts +36 -0
- package/dist/agents/ui-first-tools/redux/build-ambient-context.js +86 -0
- package/dist/agents/ui-first-tools/redux/pending-asks.slice.d.ts +117 -0
- package/dist/agents/ui-first-tools/redux/pending-asks.slice.js +114 -0
- package/dist/agents/ui-first-tools/redux/request-approval.d.ts +35 -0
- package/dist/agents/ui-first-tools/redux/request-approval.js +42 -0
- package/dist/agents/ui-first-tools/redux/resolve-asks-with-input.thunk.d.ts +53 -0
- package/dist/agents/ui-first-tools/redux/resolve-asks-with-input.thunk.js +71 -0
- package/dist/agents/ui-first-tools/service/agent-plan.service.d.ts +23 -0
- package/dist/agents/ui-first-tools/service/agent-plan.service.js +49 -0
- package/dist/agents/ui-first-tools/service/agent-task.service.d.ts +31 -0
- package/dist/agents/ui-first-tools/service/agent-task.service.js +69 -0
- package/dist/agents/ui-first-tools/service/supabase-typed.d.ts +10 -0
- package/dist/agents/ui-first-tools/service/supabase-typed.js +5 -0
- package/dist/agents/ui-first-tools/service/user-todo.service.d.ts +22 -0
- package/dist/agents/ui-first-tools/service/user-todo.service.js +45 -0
- package/dist/agents/ui-first-tools/tools/names.d.ts +16 -0
- package/dist/agents/ui-first-tools/tools/names.js +23 -0
- package/dist/agents/ui-first-tools/tools/registry.d.ts +17 -0
- package/dist/agents/ui-first-tools/tools/registry.js +35 -0
- package/dist/agents/ui-first-tools/tools/schemas.d.ts +259 -0
- package/dist/agents/ui-first-tools/tools/schemas.js +183 -0
- package/dist/agents/ui-first-tools/tools/types.d.ts +108 -0
- package/dist/agents/ui-first-tools/tools/types.js +0 -0
- package/dist/agents/ui-first-tools/ui/AgentCardShell.d.ts +66 -0
- package/dist/agents/ui-first-tools/ui/AgentCardShell.js +144 -0
- package/dist/agents/ui-first-tools/ui/ApprovalCard.d.ts +70 -0
- package/dist/agents/ui-first-tools/ui/ApprovalCard.js +269 -0
- package/dist/agents/ui-first-tools/ui/AskCard.d.ts +95 -0
- package/dist/agents/ui-first-tools/ui/AskCard.js +735 -0
- package/dist/agents/ui-first-tools/ui/AskCardCountdown.d.ts +11 -0
- package/dist/agents/ui-first-tools/ui/AskCardCountdown.js +46 -0
- package/dist/agents/ui-first-tools/ui/AskWizard.d.ts +34 -0
- package/dist/agents/ui-first-tools/ui/AskWizard.js +211 -0
- package/dist/agents/ui-first-tools/ui/BatchAskCard.d.ts +7 -0
- package/dist/agents/ui-first-tools/ui/BatchAskCard.js +33 -0
- package/dist/agents/ui-first-tools/ui/PendingAsksZone.d.ts +6 -0
- package/dist/agents/ui-first-tools/ui/PendingAsksZone.js +137 -0
- package/dist/agents/ui-first-tools/ui/QuestionsAskForm.d.ts +42 -0
- package/dist/agents/ui-first-tools/ui/QuestionsAskForm.js +63 -0
- package/dist/agents/ui-first-tools/ui/approval-types.d.ts +76 -0
- package/dist/agents/ui-first-tools/ui/approval-types.js +4 -0
- package/dist/agents/ui-first-tools/ui/lists/ListsHubView.d.ts +1 -0
- package/dist/agents/ui-first-tools/ui/lists/ListsHubView.js +205 -0
- package/dist/agents/ui-first-tools/ui/lists/TaskPanel.d.ts +11 -0
- package/dist/agents/ui-first-tools/ui/lists/TaskPanel.js +369 -0
- package/dist/agents/ui-first-tools/ui/lists/TaskPanelChip.d.ts +6 -0
- package/dist/agents/ui-first-tools/ui/lists/TaskPanelChip.js +51 -0
- package/dist/agents/utils/add-editor-resources.d.ts +32 -0
- package/dist/agents/utils/add-editor-resources.js +58 -0
- package/dist/agents/utils/agent-edit-access.d.ts +68 -0
- package/dist/agents/utils/agent-edit-access.js +59 -0
- package/dist/agents/utils/agent-system-instruction.d.ts +38 -0
- package/dist/agents/utils/agent-system-instruction.js +19 -0
- package/dist/agents/utils/artifactId.d.ts +34 -0
- package/dist/agents/utils/artifactId.js +15 -0
- package/dist/agents/utils/auto-assignment.d.ts +5 -0
- package/dist/agents/utils/auto-assignment.js +24 -0
- package/dist/agents/utils/canvas-item-event.d.ts +2 -0
- package/dist/agents/utils/canvas-item-event.js +4 -0
- package/dist/agents/utils/canvasItemContext.d.ts +42 -0
- package/dist/agents/utils/canvasItemContext.js +41 -0
- package/dist/agents/utils/choice-rule.d.ts +21 -0
- package/dist/agents/utils/choice-rule.js +24 -0
- package/dist/agents/utils/context-item-policy-mapping.d.ts +33 -0
- package/dist/agents/utils/context-item-policy-mapping.js +71 -0
- package/dist/agents/utils/control-variables.d.ts +78 -0
- package/dist/agents/utils/control-variables.js +199 -0
- package/dist/agents/utils/conversation-message-title.d.ts +16 -0
- package/dist/agents/utils/conversation-message-title.js +11 -0
- package/dist/agents/utils/editor-resource-xml.d.ts +78 -0
- package/dist/agents/utils/editor-resource-xml.js +79 -0
- package/dist/agents/utils/escape-code-fences.d.ts +15 -0
- package/dist/agents/utils/escape-code-fences.js +9 -0
- package/dist/agents/utils/human-authored-text.d.ts +43 -0
- package/dist/agents/utils/human-authored-text.js +33 -0
- package/dist/agents/utils/json-extraction.d.ts +29 -0
- package/dist/agents/utils/json-extraction.js +49 -0
- package/dist/agents/utils/launch-widget-handles.d.ts +13 -0
- package/dist/agents/utils/launch-widget-handles.js +56 -0
- package/dist/agents/utils/media-variable-value.d.ts +19 -0
- package/dist/agents/utils/media-variable-value.js +20 -0
- package/dist/agents/utils/normalize-managed-options.d.ts +30 -0
- package/dist/agents/utils/normalize-managed-options.js +29 -0
- package/dist/agents/utils/processedDocumentContext.d.ts +51 -0
- package/dist/agents/utils/processedDocumentContext.js +51 -0
- package/dist/agents/utils/run-ui-utils.d.ts +111 -0
- package/dist/agents/utils/run-ui-utils.js +221 -0
- package/dist/agents/utils/scope-mapping.d.ts +75 -0
- package/dist/agents/utils/scope-mapping.js +174 -0
- package/dist/agents/utils/shortcut-context-utils.d.ts +148 -0
- package/dist/agents/utils/shortcut-context-utils.js +92 -0
- package/dist/agents/utils/source-feature-from-surface.d.ts +11 -0
- package/dist/agents/utils/source-feature-from-surface.js +101 -0
- package/dist/agents/utils/surface-key.d.ts +40 -0
- package/dist/agents/utils/surface-key.js +31 -0
- package/dist/agents/utils/table-variable.d.ts +26 -0
- package/dist/agents/utils/table-variable.js +47 -0
- package/dist/agents/utils/text-input-variable.d.ts +14 -0
- package/dist/agents/utils/text-input-variable.js +22 -0
- package/dist/agents/utils/trigger-shortcut.d.ts +49 -0
- package/dist/agents/utils/trigger-shortcut.js +35 -0
- package/dist/agents/utils/variable-binding.d.ts +32 -0
- package/dist/agents/utils/variable-binding.js +58 -0
- package/dist/agents/utils/variable-customcomponent.d.ts +65 -0
- package/dist/agents/utils/variable-customcomponent.js +133 -0
- package/dist/agents/utils/variable-display-lines.d.ts +32 -0
- package/dist/agents/utils/variable-display-lines.js +94 -0
- package/dist/agents/utils/variable-utils.d.ts +60 -0
- package/dist/agents/utils/variable-utils.js +68 -0
- package/dist/agents/utils/variable-validation.d.ts +28 -0
- package/dist/agents/utils/variable-validation.js +54 -0
- package/dist/agents/utils/workingDocumentContext.d.ts +112 -0
- package/dist/agents/utils/workingDocumentContext.js +95 -0
- package/dist/agents/war-room-master-tools/names.d.ts +45 -0
- package/dist/agents/war-room-master-tools/names.js +14 -0
- package/dist/agents/war-room-master-tools/tool-defs.d.ts +25 -0
- package/dist/agents/war-room-master-tools/tool-defs.js +129 -0
- package/dist/agents/war-room-tools/names.d.ts +25 -0
- package/dist/agents/war-room-tools/names.js +14 -0
- package/dist/agents/war-room-tools/tool-defs.d.ts +24 -0
- package/dist/agents/war-room-tools/tool-defs.js +113 -0
- package/dist/canvas/workspace/CanvasChatColumn.d.ts +25 -0
- package/dist/canvas/workspace/CanvasChatColumn.js +108 -0
- package/dist/canvas/workspace/CanvasPropertiesPanel.d.ts +27 -0
- package/dist/canvas/workspace/CanvasPropertiesPanel.js +76 -0
- package/dist/canvas/workspace/ChatCanvasWorkspace.d.ts +75 -0
- package/dist/canvas/workspace/ChatCanvasWorkspace.js +182 -0
- package/dist/canvas/workspace/ChatPanelTitleMenu.d.ts +6 -0
- package/dist/canvas/workspace/ChatPanelTitleMenu.js +66 -0
- package/dist/canvas/workspace/ShellChatDock.d.ts +16 -0
- package/dist/canvas/workspace/ShellChatDock.js +313 -0
- package/dist/canvas/workspace/describe-launch-error.d.ts +9 -0
- package/dist/canvas/workspace/describe-launch-error.js +25 -0
- package/dist/canvas/workspace/shell-chat-dock-owners.d.ts +26 -0
- package/dist/canvas/workspace/shell-chat-dock-owners.js +71 -0
- package/dist/canvas/workspace/shell-chat-page-context.d.ts +20 -0
- package/dist/canvas/workspace/shell-chat-page-context.js +58 -0
- package/dist/canvas/workspace/shell-chat-route.d.ts +73 -0
- package/dist/canvas/workspace/shell-chat-route.js +56 -0
- package/dist/canvas/workspace/useCanvasWorkspaceConversation.d.ts +84 -0
- package/dist/canvas/workspace/useCanvasWorkspaceConversation.js +199 -0
- package/dist/canvas/workspace/workspace-cookies.d.ts +39 -0
- package/dist/canvas/workspace/workspace-cookies.js +46 -0
- package/dist/compute/targets.d.ts +223 -0
- package/dist/compute/targets.js +95 -0
- package/dist/context/sources/scopes.d.ts +404 -0
- package/dist/context/sources/scopes.js +206 -0
- package/dist/context-menu/model/requirement-gate.d.ts +147 -0
- package/dist/context-menu/model/requirement-gate.js +79 -0
- package/dist/context-menu/types.d.ts +468 -0
- package/dist/context-menu/types.js +12 -0
- package/dist/context-menu/utils/availability.d.ts +31 -0
- package/dist/context-menu/utils/availability.js +43 -0
- package/dist/context-menu/utils/build-application-scope.d.ts +7 -0
- package/dist/context-menu/utils/build-application-scope.js +42 -0
- package/dist/context-menu/utils/menu-deadline.d.ts +5 -0
- package/dist/context-menu/utils/menu-deadline.js +20 -0
- package/dist/context-menu/utils/resolveMarkdownContext.d.ts +35 -0
- package/dist/context-menu/utils/resolveMarkdownContext.js +59 -0
- package/dist/context-menu/utils/selection-tracking.d.ts +66 -0
- package/dist/context-menu/utils/selection-tracking.js +105 -0
- package/dist/conversation/_legacy-stubs.d.ts +1 -0
- package/dist/conversation/_legacy-stubs.js +1 -0
- package/dist/conversation/hooks/useAuthenticatedChatProps.d.ts +35 -0
- package/dist/conversation/hooks/useAuthenticatedChatProps.js +84 -0
- package/dist/conversation/hooks/useDomCapturePrint.d.ts +13 -0
- package/dist/conversation/hooks/useDomCapturePrint.js +44 -0
- package/dist/conversation/hooks/usePublicChatProps.d.ts +25 -0
- package/dist/conversation/hooks/usePublicChatProps.js +58 -0
- package/dist/conversation/utils/markdown-print.d.ts +16 -0
- package/dist/conversation/utils/markdown-print.js +46 -0
- package/dist/conversation/utils/resource-parsing.d.ts +20 -0
- package/dist/conversation/utils/resource-parsing.js +54 -0
- package/dist/cx-chat/_legacy-stubs.d.ts +191 -0
- package/dist/cx-chat/_legacy-stubs.js +122 -0
- package/dist/cx-chat/components/ChatConversationSkeleton.d.ts +9 -0
- package/dist/cx-chat/components/ChatConversationSkeleton.js +45 -0
- package/dist/cx-chat/components/ChatHeaderControls.d.ts +1 -0
- package/dist/cx-chat/components/ChatHeaderControls.js +75 -0
- package/dist/cx-chat/components/ChatInstanceManager.d.ts +14 -0
- package/dist/cx-chat/components/ChatInstanceManager.js +82 -0
- package/dist/cx-chat/components/ChatMobileAdminToggles.d.ts +1 -0
- package/dist/cx-chat/components/ChatMobileAdminToggles.js +58 -0
- package/dist/cx-chat/components/ChatMobileAgentName.d.ts +1 -0
- package/dist/cx-chat/components/ChatMobileAgentName.js +46 -0
- package/dist/cx-chat/components/ChatMobileHeaderBar.d.ts +1 -0
- package/dist/cx-chat/components/ChatMobileHeaderBar.js +41 -0
- package/dist/cx-chat/components/ChatPanelBackButton.d.ts +1 -0
- package/dist/cx-chat/components/ChatPanelBackButton.js +26 -0
- package/dist/cx-chat/components/ChatSidebarClient.d.ts +6 -0
- package/dist/cx-chat/components/ChatSidebarClient.js +307 -0
- package/dist/cx-chat/components/ChatWelcomeClient.d.ts +8 -0
- package/dist/cx-chat/components/ChatWelcomeClient.js +81 -0
- package/dist/cx-chat/components/ChatWelcomeServer.d.ts +13 -0
- package/dist/cx-chat/components/ChatWelcomeServer.js +16 -0
- package/dist/cx-chat/components/ContextGaugeWidget.d.ts +7 -0
- package/dist/cx-chat/components/ContextGaugeWidget.js +96 -0
- package/dist/cx-chat/components/SsrSidebarAgents.d.ts +13 -0
- package/dist/cx-chat/components/SsrSidebarAgents.js +25 -0
- package/dist/cx-chat/components/SsrSidebarChats.d.ts +9 -0
- package/dist/cx-chat/components/SsrSidebarChats.js +379 -0
- package/dist/cx-chat/components/agent/AgentPickerSheet.d.ts +14 -0
- package/dist/cx-chat/components/agent/AgentPickerSheet.js +78 -0
- package/dist/cx-chat/components/agent/agents.d.ts +28 -0
- package/dist/cx-chat/components/agent/agents.js +136 -0
- package/dist/cx-chat/components/agent/local-agents.d.ts +32 -0
- package/dist/cx-chat/components/agent/local-agents.js +139 -0
- package/dist/cx-chat/components/agent/useResponseModeAgents.d.ts +17 -0
- package/dist/cx-chat/components/agent/useResponseModeAgents.js +44 -0
- package/dist/cx-chat/components/conversation/UnsavedChangesIndicator.d.ts +6 -0
- package/dist/cx-chat/components/conversation/UnsavedChangesIndicator.js +58 -0
- package/dist/cx-chat/components/core/ChatConversationClient.d.ts +6 -0
- package/dist/cx-chat/components/core/ChatConversationClient.js +171 -0
- package/dist/cx-chat/components/messages/AssistantMessage.d.ts +13 -0
- package/dist/cx-chat/components/messages/AssistantMessage.js +250 -0
- package/dist/cx-chat/components/messages/MessageErrorBoundary.d.ts +20 -0
- package/dist/cx-chat/components/messages/MessageErrorBoundary.js +40 -0
- package/dist/cx-chat/components/messages/UserMessage.d.ts +9 -0
- package/dist/cx-chat/components/messages/UserMessage.js +308 -0
- package/dist/cx-chat/components/sidebar/SidebarActions.d.ts +8 -0
- package/dist/cx-chat/components/sidebar/SidebarActions.js +57 -0
- package/dist/cx-chat/components/sidebar/SidebarUserFooter.d.ts +2 -0
- package/dist/cx-chat/components/sidebar/SidebarUserFooter.js +74 -0
- package/dist/cx-chat/components/user-input/ConversationInput.d.ts +56 -0
- package/dist/cx-chat/components/user-input/ConversationInput.js +443 -0
- package/dist/cx-chat/components/user-input/GuidedVariableInputs.d.ts +4 -0
- package/dist/cx-chat/components/user-input/GuidedVariableInputs.js +7 -0
- package/dist/cx-chat/components/user-input/InpuControlButtons.d.ts +12 -0
- package/dist/cx-chat/components/user-input/InpuControlButtons.js +49 -0
- package/dist/cx-chat/components/user-input/InputActionButtons.d.ts +15 -0
- package/dist/cx-chat/components/user-input/InputActionButtons.js +56 -0
- package/dist/cx-chat/components/user-input/StackedVariableInputs.d.ts +13 -0
- package/dist/cx-chat/components/user-input/StackedVariableInputs.js +173 -0
- package/dist/cx-chat/components/variable-inputs/CheckboxGroupInput.d.ts +14 -0
- package/dist/cx-chat/components/variable-inputs/CheckboxGroupInput.js +160 -0
- package/dist/cx-chat/components/variable-inputs/NumberInput.d.ts +15 -0
- package/dist/cx-chat/components/variable-inputs/NumberInput.js +79 -0
- package/dist/cx-chat/components/variable-inputs/RadioGroupInput.d.ts +14 -0
- package/dist/cx-chat/components/variable-inputs/RadioGroupInput.js +125 -0
- package/dist/cx-chat/components/variable-inputs/SelectInput.d.ts +14 -0
- package/dist/cx-chat/components/variable-inputs/SelectInput.js +92 -0
- package/dist/cx-chat/components/variable-inputs/TextareaInput.d.ts +14 -0
- package/dist/cx-chat/components/variable-inputs/TextareaInput.js +46 -0
- package/dist/cx-chat/components/variable-inputs/ToggleInput.d.ts +14 -0
- package/dist/cx-chat/components/variable-inputs/ToggleInput.js +46 -0
- package/dist/cx-chat/hooks/useAgentBootstrap.d.ts +1 -0
- package/dist/cx-chat/hooks/useAgentBootstrap.js +110 -0
- package/dist/cx-chat/hooks/useChatCatalogueInit.d.ts +1 -0
- package/dist/cx-chat/hooks/useChatCatalogueInit.js +25 -0
- package/dist/cx-chat/hooks/useChatPersistence.d.ts +28 -0
- package/dist/cx-chat/hooks/useChatPersistence.js +180 -0
- package/dist/cx-chat/hooks/useInstanceBootstrap.d.ts +1 -0
- package/dist/cx-chat/hooks/useInstanceBootstrap.js +114 -0
- package/dist/cx-chat/hooks/useUnsavedChangesGuard.d.ts +7 -0
- package/dist/cx-chat/hooks/useUnsavedChangesGuard.js +19 -0
- package/dist/cx-chat/types/agents.d.ts +27 -0
- package/dist/cx-chat/types/agents.js +0 -0
- package/dist/cx-chat/types/content.d.ts +184 -0
- package/dist/cx-chat/types/content.js +91 -0
- package/dist/cx-chat/types/conversation.d.ts +257 -0
- package/dist/cx-chat/types/conversation.js +0 -0
- package/dist/cx-chat/types/cx-tables.d.ts +176 -0
- package/dist/cx-chat/types/cx-tables.js +0 -0
- package/dist/cx-chat/utils/buildContentBlocksForSave.d.ts +10 -0
- package/dist/cx-chat/utils/buildContentBlocksForSave.js +47 -0
- package/dist/cx-chat/utils/cx-content-converter.d.ts +69 -0
- package/dist/cx-chat/utils/cx-content-converter.js +133 -0
- package/dist/cx-chat/utils/settings-diff.d.ts +13 -0
- package/dist/cx-chat/utils/settings-diff.js +45 -0
- package/dist/cx-conversation/AssistantMessage.d.ts +13 -0
- package/dist/cx-conversation/AssistantMessage.js +250 -0
- package/dist/cx-conversation/ChatDebugModal.d.ts +17 -0
- package/dist/cx-conversation/ChatDebugModal.js +263 -0
- package/dist/cx-conversation/ConversationInput.d.ts +56 -0
- package/dist/cx-conversation/ConversationInput.js +635 -0
- package/dist/cx-conversation/ConversationShell.d.ts +21 -0
- package/dist/cx-conversation/ConversationShell.js +67 -0
- package/dist/cx-conversation/MessageErrorBoundary.d.ts +20 -0
- package/dist/cx-conversation/MessageErrorBoundary.js +40 -0
- package/dist/cx-conversation/MessageList.d.ts +8 -0
- package/dist/cx-conversation/MessageList.js +142 -0
- package/dist/cx-conversation/UnifiedChatWrapper.d.ts +108 -0
- package/dist/cx-conversation/UnifiedChatWrapper.js +129 -0
- package/dist/cx-conversation/UnsavedChangesIndicator.d.ts +6 -0
- package/dist/cx-conversation/UnsavedChangesIndicator.js +58 -0
- package/dist/cx-conversation/UserMessage.d.ts +9 -0
- package/dist/cx-conversation/UserMessage.js +308 -0
- package/dist/cx-conversation/_legacy-stubs.d.ts +1 -0
- package/dist/cx-conversation/_legacy-stubs.js +1 -0
- package/dist/cx-conversation/components/HtmlPreviewBridge.d.ts +21 -0
- package/dist/cx-conversation/components/HtmlPreviewBridge.js +177 -0
- package/dist/cx-conversation/hooks/useConversationSession.d.ts +72 -0
- package/dist/cx-conversation/hooks/useConversationSession.js +187 -0
- package/dist/cx-conversation/hooks/useUnsavedChangesGuard.d.ts +7 -0
- package/dist/cx-conversation/hooks/useUnsavedChangesGuard.js +19 -0
- package/dist/cx-conversation/utils/buildContentBlocksForSave.d.ts +10 -0
- package/dist/cx-conversation/utils/buildContentBlocksForSave.js +32 -0
- package/dist/cx-conversation/utils/html-pages-actions.d.ts +10 -0
- package/dist/cx-conversation/utils/html-pages-actions.js +7 -0
- package/dist/external-store/index.cjs +3 -3
- package/dist/external-store/index.cjs.map +1 -1
- package/dist/external-store/index.js +2 -2
- package/dist/external-store/index.js.map +1 -1
- package/dist/host/builder-door.d.ts +50 -0
- package/dist/host/builder-door.js +25 -0
- package/dist/host/canvas-tabs.d.ts +61 -0
- package/dist/host/canvas-tabs.js +39 -0
- package/dist/host/canvas.d.ts +17 -0
- package/dist/host/canvas.js +16 -0
- package/dist/host/chrome.d.ts +35 -0
- package/dist/host/chrome.js +75 -0
- package/dist/host/configure.d.ts +28 -0
- package/dist/host/configure.js +148 -0
- package/dist/host/content-ir-slots.d.ts +231 -0
- package/dist/host/content-ir-slots.js +131 -0
- package/dist/host/contract.d.ts +785 -0
- package/dist/host/contract.js +9 -0
- package/dist/host/db-types.d.ts +50676 -0
- package/dist/host/db-types.js +0 -0
- package/dist/host/db.d.ts +68 -0
- package/dist/host/db.js +58 -0
- package/dist/host/defaults/canvas.d.ts +13 -0
- package/dist/host/defaults/canvas.js +50 -0
- package/dist/host/defaults/catalog.d.ts +7 -0
- package/dist/host/defaults/catalog.js +27 -0
- package/dist/host/defaults/chrome.d.ts +13 -0
- package/dist/host/defaults/chrome.js +121 -0
- package/dist/host/defaults/diagnostics.d.ts +32 -0
- package/dist/host/defaults/diagnostics.js +135 -0
- package/dist/host/defaults/feedback.d.ts +9 -0
- package/dist/host/defaults/feedback.js +35 -0
- package/dist/host/defaults/identity.d.ts +8 -0
- package/dist/host/defaults/identity.js +119 -0
- package/dist/host/defaults/navigation-hooks.d.ts +3 -0
- package/dist/host/defaults/navigation-hooks.js +37 -0
- package/dist/host/defaults/navigation.d.ts +8 -0
- package/dist/host/defaults/navigation.js +45 -0
- package/dist/host/defaults/notify.d.ts +10 -0
- package/dist/host/defaults/notify.js +117 -0
- package/dist/host/defaults/org.d.ts +8 -0
- package/dist/host/defaults/org.js +23 -0
- package/dist/host/defaults/prefs.d.ts +25 -0
- package/dist/host/defaults/prefs.js +178 -0
- package/dist/host/defaults/server-api.d.ts +331 -0
- package/dist/host/defaults/server-api.js +288 -0
- package/dist/host/defaults/server.d.ts +7 -0
- package/dist/host/defaults/server.js +18 -0
- package/dist/host/defaults/typed-paths.d.ts +62 -0
- package/dist/host/defaults/typed-paths.js +0 -0
- package/dist/host/defaults/webpage-snapshot-view.d.ts +13 -0
- package/dist/host/defaults/webpage-snapshot-view.js +36 -0
- package/dist/host/defaults/window-panel.d.ts +43 -0
- package/dist/host/defaults/window-panel.js +100 -0
- package/dist/host/defaults/windows.d.ts +8 -0
- package/dist/host/defaults/windows.js +23 -0
- package/dist/host/diagnostics.d.ts +88 -0
- package/dist/host/diagnostics.js +174 -0
- package/dist/host/errors.d.ts +20 -0
- package/dist/host/errors.js +47 -0
- package/dist/host/identity.d.ts +64 -0
- package/dist/host/identity.js +86 -0
- package/dist/host/index.d.ts +23 -0
- package/dist/host/index.js +87 -0
- package/dist/host/markdown-slots.d.ts +53 -0
- package/dist/host/markdown-slots.js +32 -0
- package/dist/host/model-class.d.ts +33 -0
- package/dist/host/model-class.js +21 -0
- package/dist/host/navigation.d.ts +19 -0
- package/dist/host/navigation.js +37 -0
- package/dist/host/notify.d.ts +37 -0
- package/dist/host/notify.js +38 -0
- package/dist/host/org.d.ts +100 -0
- package/dist/host/org.js +116 -0
- package/dist/host/prefs-react.d.ts +18 -0
- package/dist/host/prefs-react.js +66 -0
- package/dist/host/prefs.d.ts +104 -0
- package/dist/host/prefs.js +85 -0
- package/dist/host/react.d.ts +32 -0
- package/dist/host/react.js +38 -0
- package/dist/host/registered-source.d.ts +34 -0
- package/dist/host/registered-source.js +64 -0
- package/dist/host/rich-document-slots.d.ts +123 -0
- package/dist/host/rich-document-slots.js +36 -0
- package/dist/host/server/admin-door.d.ts +6 -0
- package/dist/host/server/admin-door.js +5 -0
- package/dist/host/server/admin-lane.d.ts +7 -0
- package/dist/host/server/admin-lane.js +7 -0
- package/dist/host/server/api-config.d.ts +31 -0
- package/dist/host/server/api-config.js +29 -0
- package/dist/host/server/broker.d.ts +12 -0
- package/dist/host/server/broker.js +5 -0
- package/dist/host/server/call-api.d.ts +134 -0
- package/dist/host/server/call-api.js +27 -0
- package/dist/host/server/context-api.d.ts +11 -0
- package/dist/host/server/context-api.js +5 -0
- package/dist/host/server/endpoints.d.ts +6 -0
- package/dist/host/server/endpoints.js +5 -0
- package/dist/host/server/extension-bridge.d.ts +6 -0
- package/dist/host/server/extension-bridge.js +5 -0
- package/dist/host/server/local-engine.d.ts +8 -0
- package/dist/host/server/local-engine.js +9 -0
- package/dist/host/server/matrx-transport.d.ts +21 -0
- package/dist/host/server/matrx-transport.js +9 -0
- package/dist/host/server/organization-admission.d.ts +9 -0
- package/dist/host/server/organization-admission.js +7 -0
- package/dist/host/server/organization-context.d.ts +6 -0
- package/dist/host/server/organization-context.js +5 -0
- package/dist/host/server/provider-session-failure.d.ts +6 -0
- package/dist/host/server/provider-session-failure.js +5 -0
- package/dist/host/server/python-client.d.ts +20 -0
- package/dist/host/server/python-client.js +11 -0
- package/dist/host/server/run-wait.d.ts +11 -0
- package/dist/host/server/run-wait.js +31 -0
- package/dist/host/server/stream-parser.d.ts +10 -0
- package/dist/host/server/stream-parser.js +5 -0
- package/dist/host/server/typed-client.d.ts +29 -0
- package/dist/host/server/typed-client.js +11 -0
- package/dist/host/server/types.d.ts +7 -0
- package/dist/host/server/types.js +0 -0
- package/dist/host/server-deps.d.ts +17 -0
- package/dist/host/server-deps.js +18 -0
- package/dist/host/server.d.ts +29 -0
- package/dist/host/server.js +15 -0
- package/dist/host/session-retry.d.ts +13 -0
- package/dist/host/session-retry.js +14 -0
- package/dist/host/ui-slots.d.ts +838 -0
- package/dist/host/ui-slots.js +802 -0
- package/dist/host/usage-gate.d.ts +25 -0
- package/dist/host/usage-gate.js +34 -0
- package/dist/host/window-openers.d.ts +363 -0
- package/dist/host/window-openers.js +279 -0
- package/dist/host/windows-react.d.ts +13 -0
- package/dist/host/windows-react.js +44 -0
- package/dist/host/windows.d.ts +77 -0
- package/dist/host/windows.js +72 -0
- package/dist/host/write-failure.d.ts +4 -0
- package/dist/host/write-failure.js +11 -0
- package/dist/index.cjs +10 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/mandates/FastPathMandateGuard.d.ts +6 -0
- package/dist/mandates/FastPathMandateGuard.js +16 -0
- package/dist/mandates/RunFailureCard.d.ts +5 -0
- package/dist/mandates/RunFailureCard.js +48 -0
- package/dist/mandates/fast-path-guard.d.ts +57 -0
- package/dist/mandates/fast-path-guard.js +60 -0
- package/dist/mandates/invoke/served-input.d.ts +203 -0
- package/dist/mandates/invoke/served-input.js +186 -0
- package/dist/mandates/invoke/supplied-values.d.ts +41 -0
- package/dist/mandates/invoke/supplied-values.js +46 -0
- package/dist/mandates/llm-params.d.ts +10 -0
- package/dist/mandates/llm-params.js +48 -0
- package/dist/mandates/output-contract.d.ts +47 -0
- package/dist/mandates/output-contract.js +102 -0
- package/dist/mandates/resolve-asking.d.ts +20 -0
- package/dist/mandates/resolve-asking.js +17 -0
- package/dist/mandates/service.d.ts +299 -0
- package/dist/mandates/service.js +488 -0
- package/dist/mandates/test-run-core.d.ts +104 -0
- package/dist/mandates/test-run-core.js +145 -0
- package/dist/mandates/useMandate.d.ts +62 -0
- package/dist/mandates/useMandate.js +120 -0
- package/dist/mandates/useMandateChain.d.ts +9 -0
- package/dist/mandates/useMandateChain.js +19 -0
- package/dist/mandates/useMandateHolder.d.ts +9 -0
- package/dist/mandates/useMandateHolder.js +82 -0
- package/dist/mandates/useMandateSet.d.ts +33 -0
- package/dist/mandates/useMandateSet.js +98 -0
- package/dist/mandates/useStartMandateWorkflow.d.ts +21 -0
- package/dist/mandates/useStartMandateWorkflow.js +66 -0
- package/dist/matrx/index.cjs +11 -11
- package/dist/matrx/index.cjs.map +1 -1
- package/dist/matrx/index.js +10 -10
- package/dist/matrx/index.js.map +1 -1
- package/dist/next/lazy/AgentAssistantMessage.d.ts +1 -0
- package/dist/next/lazy/AgentAssistantMessage.js +13 -0
- package/dist/next/lazy/AgentPickerSheet.d.ts +1 -0
- package/dist/next/lazy/AgentPickerSheet.js +11 -0
- package/dist/next/lazy/ChatVariableInputs.d.ts +2 -0
- package/dist/next/lazy/ChatVariableInputs.js +18 -0
- package/dist/next/lazy/ConversationRenameDialogHostImpl.d.ts +1 -0
- package/dist/next/lazy/ConversationRenameDialogHostImpl.js +9 -0
- package/dist/next/lazy/CreatorRunPanel.d.ts +1 -0
- package/dist/next/lazy/CreatorRunPanel.js +11 -0
- package/dist/next/lazy/CxAssistantMessage.d.ts +1 -0
- package/dist/next/lazy/CxAssistantMessage.js +11 -0
- package/dist/next/lazy/DbToolRendererImpl.d.ts +1 -0
- package/dist/next/lazy/DbToolRendererImpl.js +11 -0
- package/dist/next/lazy/IconResolver.d.ts +1 -0
- package/dist/next/lazy/IconResolver.js +10 -0
- package/dist/next/lazy/PublicChatVariableInputs.d.ts +2 -0
- package/dist/next/lazy/PublicChatVariableInputs.js +18 -0
- package/dist/next/lazy/ScrollAssistantLaunchers.d.ts +3 -0
- package/dist/next/lazy/ScrollAssistantLaunchers.js +22 -0
- package/dist/next/lazy/SurfaceAgentsPanelImpl.d.ts +1 -0
- package/dist/next/lazy/SurfaceAgentsPanelImpl.js +17 -0
- package/dist/next/navigation.d.ts +2 -0
- package/dist/next/navigation.js +18 -0
- package/dist/next/server/composer-mode.server.d.ts +3 -0
- package/dist/next/server/composer-mode.server.js +10 -0
- package/dist/next/server/workspace-cookies.server.d.ts +7 -0
- package/dist/next/server/workspace-cookies.server.js +24 -0
- package/dist/public-chat/components/AgentSelector.d.ts +22 -0
- package/dist/public-chat/components/AgentSelector.js +80 -0
- package/dist/public-chat/components/GuidedVariableInputs.d.ts +25 -0
- package/dist/public-chat/components/GuidedVariableInputs.js +623 -0
- package/dist/public-chat/components/PublicMessageOptionsMenu.d.ts +26 -0
- package/dist/public-chat/components/PublicMessageOptionsMenu.js +539 -0
- package/dist/public-chat/components/PublicVariableInputs.d.ts +29 -0
- package/dist/public-chat/components/PublicVariableInputs.js +172 -0
- package/dist/public-chat/services/cx-chat.d.ts +30 -0
- package/dist/public-chat/services/cx-chat.js +127 -0
- package/dist/public-chat/types/content.d.ts +184 -0
- package/dist/public-chat/types/content.js +91 -0
- package/dist/public-chat/types/cx-tables.d.ts +194 -0
- package/dist/public-chat/types/cx-tables.js +0 -0
- package/dist/quick-actions/components/QuickChatSheet.d.ts +69 -0
- package/dist/quick-actions/components/QuickChatSheet.js +302 -0
- package/dist/react.cjs +53 -54
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +3 -2
- package/dist/react.d.ts +3 -2
- package/dist/react.js +52 -53
- package/dist/react.js.map +1 -1
- package/dist/store/chat-host-sync.d.ts +17 -0
- package/dist/store/chat-host-sync.js +80 -0
- package/dist/store/chat-host.slice.d.ts +44 -0
- package/dist/store/chat-host.slice.js +90 -0
- package/dist/store/context.d.ts +2 -0
- package/dist/store/context.js +7 -0
- package/dist/store/create-chat-store.d.ts +93 -0
- package/dist/store/create-chat-store.js +28 -0
- package/dist/store/hooks.d.ts +143 -0
- package/dist/store/hooks.js +61 -0
- package/dist/store/middlewares.d.ts +222 -0
- package/dist/store/middlewares.js +19 -0
- package/dist/store/root-state.d.ts +73 -0
- package/dist/store/root-state.js +0 -0
- package/dist/store/sagas.d.ts +2 -0
- package/dist/store/sagas.js +6 -0
- package/dist/store/slices.d.ts +47 -0
- package/dist/store/slices.js +98 -0
- package/dist/store/state.d.ts +3 -0
- package/dist/store/state.js +0 -0
- package/dist/store/store-singleton.d.ts +4 -0
- package/dist/store/store-singleton.js +11 -0
- package/dist/surfaces/components/chrome/PageIntelligenceSection.d.ts +10 -0
- package/dist/surfaces/components/chrome/PageIntelligenceSection.js +109 -0
- package/dist/surfaces/components/chrome/SurfaceAgentsHeaderButton.d.ts +10 -0
- package/dist/surfaces/components/chrome/SurfaceAgentsHeaderButton.js +94 -0
- package/dist/surfaces/components/chrome/SurfaceAgentsPanelImpl.d.ts +5 -0
- package/dist/surfaces/components/chrome/SurfaceAgentsPanelImpl.js +183 -0
- package/dist/surfaces/components/chrome/SurfaceConversationsSection.d.ts +8 -0
- package/dist/surfaces/components/chrome/SurfaceConversationsSection.js +251 -0
- package/dist/surfaces/components/chrome/SurfaceMandatesSection.d.ts +9 -0
- package/dist/surfaces/components/chrome/SurfaceMandatesSection.js +206 -0
- package/dist/surfaces/components/chrome/SurfaceRoleAgentButton.d.ts +10 -0
- package/dist/surfaces/components/chrome/SurfaceRoleAgentButton.js +76 -0
- package/dist/surfaces/config/namespace-registry.d.ts +59 -0
- package/dist/surfaces/config/namespace-registry.js +101 -0
- package/dist/surfaces/declare/surface-declare.d.ts +62 -0
- package/dist/surfaces/declare/surface-declare.js +284 -0
- package/dist/surfaces/executor.d.ts +25 -0
- package/dist/surfaces/executor.js +13 -0
- package/dist/surfaces/hooks/useAgentNames.d.ts +12 -0
- package/dist/surfaces/hooks/useAgentNames.js +72 -0
- package/dist/surfaces/hooks/useSurfaceBoundAgents.d.ts +30 -0
- package/dist/surfaces/hooks/useSurfaceBoundAgents.js +52 -0
- package/dist/surfaces/hooks/useSurfaceConfig.d.ts +38 -0
- package/dist/surfaces/hooks/useSurfaceConfig.js +100 -0
- package/dist/surfaces/host-surface-types.d.ts +53 -0
- package/dist/surfaces/host-surface-types.js +0 -0
- package/dist/surfaces/manifests/_baseline.manifest.d.ts +206 -0
- package/dist/surfaces/manifests/_baseline.manifest.js +156 -0
- package/dist/surfaces/manifests/_conversation-document.manifest.d.ts +131 -0
- package/dist/surfaces/manifests/_conversation-document.manifest.js +317 -0
- package/dist/surfaces/manifests/admin-ui-surfaces.manifest.d.ts +105 -0
- package/dist/surfaces/manifests/admin-ui-surfaces.manifest.js +197 -0
- package/dist/surfaces/manifests/agent-builder.manifest.d.ts +83 -0
- package/dist/surfaces/manifests/agent-builder.manifest.js +611 -0
- package/dist/surfaces/manifests/agent-gate.manifest.d.ts +25 -0
- package/dist/surfaces/manifests/agent-gate.manifest.js +69 -0
- package/dist/surfaces/manifests/agent-run-history.manifest.d.ts +113 -0
- package/dist/surfaces/manifests/agent-run-history.manifest.js +236 -0
- package/dist/surfaces/manifests/agent-run.manifest.d.ts +63 -0
- package/dist/surfaces/manifests/agent-run.manifest.js +396 -0
- package/dist/surfaces/manifests/ai-results.manifest.d.ts +39 -0
- package/dist/surfaces/manifests/ai-results.manifest.js +122 -0
- package/dist/surfaces/manifests/chat-voice.manifest.d.ts +139 -0
- package/dist/surfaces/manifests/chat-voice.manifest.js +306 -0
- package/dist/surfaces/manifests/chat.manifest.d.ts +135 -0
- package/dist/surfaces/manifests/chat.manifest.js +462 -0
- package/dist/surfaces/manifests/context-preview.manifest.d.ts +71 -0
- package/dist/surfaces/manifests/context-preview.manifest.js +247 -0
- package/dist/surfaces/manifests/documents-workspace.manifest.d.ts +61 -0
- package/dist/surfaces/manifests/documents-workspace.manifest.js +159 -0
- package/dist/surfaces/manifests/observational-memory.manifest.d.ts +27 -0
- package/dist/surfaces/manifests/observational-memory.manifest.js +104 -0
- package/dist/surfaces/redux/agentSurfaceBindingsSlice.d.ts +33 -0
- package/dist/surfaces/redux/agentSurfaceBindingsSlice.js +77 -0
- package/dist/surfaces/redux/selectors.d.ts +148 -0
- package/dist/surfaces/redux/selectors.js +46 -0
- package/dist/surfaces/redux/surfaceConfigSlice.d.ts +30 -0
- package/dist/surfaces/redux/surfaceConfigSlice.js +70 -0
- package/dist/surfaces/redux/surfacesCatalogSlice.d.ts +42 -0
- package/dist/surfaces/redux/surfacesCatalogSlice.js +75 -0
- package/dist/surfaces/redux/thunks.d.ts +103 -0
- package/dist/surfaces/redux/thunks.js +116 -0
- package/dist/surfaces/redux/userStateSlice.d.ts +35 -0
- package/dist/surfaces/redux/userStateSlice.js +83 -0
- package/dist/surfaces/runtime/StaticSurfaceRuntimeProvider.d.ts +7 -0
- package/dist/surfaces/runtime/StaticSurfaceRuntimeProvider.js +13 -0
- package/dist/surfaces/runtime/SurfaceRuntimeContext.d.ts +431 -0
- package/dist/surfaces/runtime/SurfaceRuntimeContext.js +535 -0
- package/dist/surfaces/runtime/agent-offer.d.ts +21 -0
- package/dist/surfaces/runtime/agent-offer.js +53 -0
- package/dist/surfaces/runtime/agent-write-sources.d.ts +42 -0
- package/dist/surfaces/runtime/agent-write-sources.js +23 -0
- package/dist/surfaces/runtime/available-here.d.ts +65 -0
- package/dist/surfaces/runtime/available-here.js +95 -0
- package/dist/surfaces/runtime/collection-write-targets.d.ts +139 -0
- package/dist/surfaces/runtime/collection-write-targets.js +186 -0
- package/dist/surfaces/runtime/context-bundle.d.ts +48 -0
- package/dist/surfaces/runtime/context-bundle.js +54 -0
- package/dist/surfaces/runtime/custom-field-targets.d.ts +139 -0
- package/dist/surfaces/runtime/custom-field-targets.js +219 -0
- package/dist/surfaces/runtime/fetchRelatedSurfaces.d.ts +21 -0
- package/dist/surfaces/runtime/fetchRelatedSurfaces.js +35 -0
- package/dist/surfaces/runtime/intelligence-types.d.ts +93 -0
- package/dist/surfaces/runtime/intelligence-types.js +0 -0
- package/dist/surfaces/runtime/intelligence.d.ts +48 -0
- package/dist/surfaces/runtime/intelligence.js +72 -0
- package/dist/surfaces/runtime/loaded-value-check.d.ts +17 -0
- package/dist/surfaces/runtime/loaded-value-check.js +36 -0
- package/dist/surfaces/runtime/registry.d.ts +70 -0
- package/dist/surfaces/runtime/registry.js +97 -0
- package/dist/surfaces/runtime/surface-brief.d.ts +34 -0
- package/dist/surfaces/runtime/surface-brief.js +63 -0
- package/dist/surfaces/runtime/surface-chain.d.ts +72 -0
- package/dist/surfaces/runtime/surface-chain.js +144 -0
- package/dist/surfaces/runtime/surface-client-tools.d.ts +53 -0
- package/dist/surfaces/runtime/surface-client-tools.js +90 -0
- package/dist/surfaces/runtime/surface-feedback.d.ts +59 -0
- package/dist/surfaces/runtime/surface-feedback.js +114 -0
- package/dist/surfaces/runtime/surface-mandates.d.ts +31 -0
- package/dist/surfaces/runtime/surface-mandates.js +62 -0
- package/dist/surfaces/runtime/surface-ui-state.d.ts +45 -0
- package/dist/surfaces/runtime/surface-ui-state.js +94 -0
- package/dist/surfaces/runtime/surface-write-patch.d.ts +127 -0
- package/dist/surfaces/runtime/surface-write-patch.js +144 -0
- package/dist/surfaces/runtime/surface-write-tool-output.d.ts +46 -0
- package/dist/surfaces/runtime/surface-write-tool-output.js +85 -0
- package/dist/surfaces/runtime/surface-writeback.d.ts +294 -0
- package/dist/surfaces/runtime/surface-writeback.js +1241 -0
- package/dist/surfaces/runtime/useActivePageSurface.d.ts +10 -0
- package/dist/surfaces/runtime/useActivePageSurface.js +31 -0
- package/dist/surfaces/runtime/useConversationFollowsPage.d.ts +7 -0
- package/dist/surfaces/runtime/useConversationFollowsPage.js +65 -0
- package/dist/surfaces/runtime/useLiveSurfaceScope.d.ts +21 -0
- package/dist/surfaces/runtime/useLiveSurfaceScope.js +85 -0
- package/dist/surfaces/runtime/window-forms.d.ts +69 -0
- package/dist/surfaces/runtime/window-forms.js +373 -0
- package/dist/surfaces/services/bind-agent-to-surface.service.d.ts +173 -0
- package/dist/surfaces/services/bind-agent-to-surface.service.js +420 -0
- package/dist/surfaces/services/bundleMemberEdge.d.ts +53 -0
- package/dist/surfaces/services/bundleMemberEdge.js +26 -0
- package/dist/surfaces/services/mirror-recency.d.ts +34 -0
- package/dist/surfaces/services/mirror-recency.js +6 -0
- package/dist/surfaces/services/surface-bound-agents.service.d.ts +91 -0
- package/dist/surfaces/services/surface-bound-agents.service.js +246 -0
- package/dist/surfaces/services/surface-config.service.d.ts +132 -0
- package/dist/surfaces/services/surface-config.service.js +392 -0
- package/dist/surfaces/services/surface-registration-error.d.ts +22 -0
- package/dist/surfaces/services/surface-registration-error.js +52 -0
- package/dist/surfaces/services/surfaces.service.d.ts +262 -0
- package/dist/surfaces/services/surfaces.service.js +480 -0
- package/dist/surfaces/types.d.ts +961 -0
- package/dist/surfaces/types.js +40 -0
- package/dist/surfaces/user-state/service.d.ts +29 -0
- package/dist/surfaces/user-state/service.js +110 -0
- package/dist/surfaces/user-state/useSurfaceUserState.d.ts +3 -0
- package/dist/surfaces/user-state/useSurfaceUserState.js +45 -0
- package/dist/surfaces/utils/always-on-context.d.ts +12 -0
- package/dist/surfaces/utils/always-on-context.js +25 -0
- package/dist/surfaces/utils/baseline-scope.d.ts +41 -0
- package/dist/surfaces/utils/baseline-scope.js +14 -0
- package/dist/surfaces/utils/binding-auto-run.d.ts +89 -0
- package/dist/surfaces/utils/binding-auto-run.js +29 -0
- package/dist/surfaces/utils/binding-suggestions.d.ts +121 -0
- package/dist/surfaces/utils/binding-suggestions.js +201 -0
- package/dist/surfaces/utils/buildBindingTargets.d.ts +8 -0
- package/dist/surfaces/utils/buildBindingTargets.js +27 -0
- package/dist/surfaces/utils/context-value-contract.d.ts +9 -0
- package/dist/surfaces/utils/context-value-contract.js +20 -0
- package/dist/surfaces/utils/document-evidence.d.ts +17 -0
- package/dist/surfaces/utils/document-evidence.js +51 -0
- package/dist/surfaces/utils/drift-report-count.d.ts +30 -0
- package/dist/surfaces/utils/drift-report-count.js +21 -0
- package/dist/surfaces/utils/locate-on-page.d.ts +16 -0
- package/dist/surfaces/utils/locate-on-page.js +29 -0
- package/dist/surfaces/utils/merge-value-mappings.d.ts +59 -0
- package/dist/surfaces/utils/merge-value-mappings.js +42 -0
- package/dist/surfaces/utils/route-to-surface.d.ts +39 -0
- package/dist/surfaces/utils/route-to-surface.js +648 -0
- package/dist/surfaces/utils/surface-check-ledger.d.ts +44 -0
- package/dist/surfaces/utils/surface-check-ledger.js +32 -0
- package/dist/surfaces/utils/surface-delete-consequence.d.ts +17 -0
- package/dist/surfaces/utils/surface-delete-consequence.js +16 -0
- package/dist/surfaces/utils/surface-display.d.ts +43 -0
- package/dist/surfaces/utils/surface-display.js +63 -0
- package/dist/surfaces/utils/surface-guide.d.ts +36 -0
- package/dist/surfaces/utils/surface-guide.js +46 -0
- package/dist/surfaces/utils/surface-hierarchy.d.ts +13 -0
- package/dist/surfaces/utils/surface-hierarchy.js +39 -0
- package/dist/surfaces/utils/surface-url-pattern.d.ts +20 -0
- package/dist/surfaces/utils/surface-url-pattern.js +51 -0
- package/dist/surfaces/utils/value-mapping-resolver.d.ts +87 -0
- package/dist/surfaces/utils/value-mapping-resolver.js +192 -0
- package/dist/testing/captured/awaiting-approval.d.ts +132 -0
- package/dist/testing/captured/awaiting-approval.js +135 -0
- package/dist/testing/captured/gemini-live-media-block-event.d.ts +61 -0
- package/dist/testing/captured/gemini-live-media-block-event.js +73 -0
- package/dist/testing/captured/gemini-persisted-audio-part.d.ts +42 -0
- package/dist/testing/captured/gemini-persisted-audio-part.js +5 -0
- package/dist/testing/captured/masterwork-run-cef6ae07-deliver.d.ts +29 -0
- package/dist/testing/captured/masterwork-run-cef6ae07-deliver.js +76 -0
- package/dist/testing/chat-host-test-provider.d.ts +13 -0
- package/dist/testing/chat-host-test-provider.js +16 -0
- package/dist/testing/chat-test-reducer.d.ts +13 -0
- package/dist/testing/chat-test-reducer.js +6 -0
- package/dist/testing/fake-db.d.ts +21 -0
- package/dist/testing/fake-db.js +39 -0
- package/dist/testing/recording-windows.d.ts +18 -0
- package/dist/testing/recording-windows.js +17 -0
- package/dist/testing/render-hook.d.ts +28 -0
- package/dist/testing/render-hook.js +48 -0
- package/dist/testing/server-test-host.d.ts +9 -0
- package/dist/testing/server-test-host.js +14 -0
- package/dist/tool-call-visualization/components/AgentWorkGroup.d.ts +52 -0
- package/dist/tool-call-visualization/components/AgentWorkGroup.js +68 -0
- package/dist/tool-call-visualization/components/ArtifactResultBar.d.ts +16 -0
- package/dist/tool-call-visualization/components/ArtifactResultBar.js +175 -0
- package/dist/tool-call-visualization/components/ChatResultColumn.d.ts +20 -0
- package/dist/tool-call-visualization/components/ChatResultColumn.js +11 -0
- package/dist/tool-call-visualization/components/LiveToolCallCard.d.ts +16 -0
- package/dist/tool-call-visualization/components/LiveToolCallCard.js +28 -0
- package/dist/tool-call-visualization/components/ToolCallBatch.d.ts +47 -0
- package/dist/tool-call-visualization/components/ToolCallBatch.js +155 -0
- package/dist/tool-call-visualization/components/ToolCallVisualization.d.ts +42 -0
- package/dist/tool-call-visualization/components/ToolCallVisualization.js +475 -0
- package/dist/tool-call-visualization/components/ToolConversationContext.d.ts +16 -0
- package/dist/tool-call-visualization/components/ToolConversationContext.js +12 -0
- package/dist/tool-call-visualization/components/ToolTabBodies.d.ts +28 -0
- package/dist/tool-call-visualization/components/ToolTabBodies.js +235 -0
- package/dist/tool-call-visualization/components/ToolUpdatesOverlay.d.ts +45 -0
- package/dist/tool-call-visualization/components/ToolUpdatesOverlay.js +210 -0
- package/dist/tool-call-visualization/components/agentWorkTurn.d.ts +92 -0
- package/dist/tool-call-visualization/components/agentWorkTurn.js +174 -0
- package/dist/tool-call-visualization/components/correctedFailures.d.ts +15 -0
- package/dist/tool-call-visualization/components/correctedFailures.js +9 -0
- package/dist/tool-call-visualization/components/holdsADecision.d.ts +14 -0
- package/dist/tool-call-visualization/components/holdsADecision.js +14 -0
- package/dist/tool-call-visualization/components/resolveToolShellDisplayMode.d.ts +8 -0
- package/dist/tool-call-visualization/components/resolveToolShellDisplayMode.js +9 -0
- package/dist/tool-call-visualization/components/toolCardUiSession.d.ts +29 -0
- package/dist/tool-call-visualization/components/toolCardUiSession.js +24 -0
- package/dist/tool-call-visualization/db-renderer/DbToolRenderer.d.ts +5 -0
- package/dist/tool-call-visualization/db-renderer/DbToolRenderer.js +11 -0
- package/dist/tool-call-visualization/db-renderer/DbToolRendererImpl.d.ts +22 -0
- package/dist/tool-call-visualization/db-renderer/DbToolRendererImpl.js +50 -0
- package/dist/tool-call-visualization/db-renderer/ToolRendererErrorBoundary.d.ts +24 -0
- package/dist/tool-call-visualization/db-renderer/ToolRendererErrorBoundary.js +31 -0
- package/dist/tool-call-visualization/db-renderer/fetchToolRendererRow.d.ts +13 -0
- package/dist/tool-call-visualization/db-renderer/fetchToolRendererRow.js +29 -0
- package/dist/tool-call-visualization/db-renderer/surface.d.ts +11 -0
- package/dist/tool-call-visualization/db-renderer/surface.js +4 -0
- package/dist/tool-call-visualization/db-renderer/toolRendererCache.d.ts +70 -0
- package/dist/tool-call-visualization/db-renderer/toolRendererCache.js +155 -0
- package/dist/tool-call-visualization/db-renderer/useDbToolMeta.d.ts +14 -0
- package/dist/tool-call-visualization/db-renderer/useDbToolMeta.js +45 -0
- package/dist/tool-call-visualization/db-renderer/useToolRendererVersion.d.ts +1 -0
- package/dist/tool-call-visualization/db-renderer/useToolRendererVersion.js +16 -0
- package/dist/tool-call-visualization/effects/toolStateEffects.d.ts +51 -0
- package/dist/tool-call-visualization/effects/toolStateEffects.js +139 -0
- package/dist/tool-call-visualization/grouping/foldAgentWork.d.ts +36 -0
- package/dist/tool-call-visualization/grouping/foldAgentWork.js +59 -0
- package/dist/tool-call-visualization/grouping/groupCloudBrowserRuns.d.ts +29 -0
- package/dist/tool-call-visualization/grouping/groupCloudBrowserRuns.js +48 -0
- package/dist/tool-call-visualization/intelligence-places.d.ts +2 -0
- package/dist/tool-call-visualization/intelligence-places.js +23 -0
- package/dist/tool-call-visualization/record-change/recordChangeApproval.d.ts +175 -0
- package/dist/tool-call-visualization/record-change/recordChangeApproval.js +338 -0
- package/dist/tool-call-visualization/redux/hooks.d.ts +20 -0
- package/dist/tool-call-visualization/redux/hooks.js +20 -0
- package/dist/tool-call-visualization/redux/selectors.d.ts +89 -0
- package/dist/tool-call-visualization/redux/selectors.js +41 -0
- package/dist/tool-call-visualization/registry/GenericRenderer.d.ts +3 -0
- package/dist/tool-call-visualization/registry/GenericRenderer.js +164 -0
- package/dist/tool-call-visualization/registry/registry.d.ts +77 -0
- package/dist/tool-call-visualization/registry/registry.js +1411 -0
- package/dist/tool-call-visualization/registry/toolArtifact.d.ts +31 -0
- package/dist/tool-call-visualization/registry/toolArtifact.js +53 -0
- package/dist/tool-call-visualization/renderers/_shared-entity/EmptyResultCard.d.ts +39 -0
- package/dist/tool-call-visualization/renderers/_shared-entity/EmptyResultCard.js +36 -0
- package/dist/tool-call-visualization/renderers/_shared-entity/EntityCard.d.ts +40 -0
- package/dist/tool-call-visualization/renderers/_shared-entity/EntityCard.js +162 -0
- package/dist/tool-call-visualization/renderers/_shared-entity/EntityOpenActions.d.ts +15 -0
- package/dist/tool-call-visualization/renderers/_shared-entity/EntityOpenActions.js +31 -0
- package/dist/tool-call-visualization/renderers/_shared-entity/PartPeekPopover.d.ts +20 -0
- package/dist/tool-call-visualization/renderers/_shared-entity/PartPeekPopover.js +45 -0
- package/dist/tool-call-visualization/renderers/_shared-entity/ToolGlyph.d.ts +14 -0
- package/dist/tool-call-visualization/renderers/_shared-entity/ToolGlyph.js +38 -0
- package/dist/tool-call-visualization/renderers/_shared-entity/ToolResultCard.d.ts +48 -0
- package/dist/tool-call-visualization/renderers/_shared-entity/ToolResultCard.js +134 -0
- package/dist/tool-call-visualization/renderers/_shared.d.ts +29 -0
- package/dist/tool-call-visualization/renderers/_shared.js +66 -0
- package/dist/tool-call-visualization/renderers/agent-call/AgentCallInline.d.ts +10 -0
- package/dist/tool-call-visualization/renderers/agent-call/AgentCallInline.js +140 -0
- package/dist/tool-call-visualization/renderers/agent-call/CollabCallCard.d.ts +3 -0
- package/dist/tool-call-visualization/renderers/agent-call/CollabCallCard.js +136 -0
- package/dist/tool-call-visualization/renderers/agent-call/ImageGenerationResult.d.ts +16 -0
- package/dist/tool-call-visualization/renderers/agent-call/ImageGenerationResult.js +55 -0
- package/dist/tool-call-visualization/renderers/agent-call/agentCallKind.d.ts +10 -0
- package/dist/tool-call-visualization/renderers/agent-call/agentCallKind.js +11 -0
- package/dist/tool-call-visualization/renderers/agent-call/collab-subtitle.d.ts +2 -0
- package/dist/tool-call-visualization/renderers/agent-call/collab-subtitle.js +26 -0
- package/dist/tool-call-visualization/renderers/agent-call/collab.d.ts +52 -0
- package/dist/tool-call-visualization/renderers/agent-call/collab.js +73 -0
- package/dist/tool-call-visualization/renderers/agent-call/findResultMedia.d.ts +15 -0
- package/dist/tool-call-visualization/renderers/agent-call/findResultMedia.js +39 -0
- package/dist/tool-call-visualization/renderers/ask/AskInline.d.ts +24 -0
- package/dist/tool-call-visualization/renderers/ask/AskInline.js +136 -0
- package/dist/tool-call-visualization/renderers/ask-person/AskPersonInline.d.ts +23 -0
- package/dist/tool-call-visualization/renderers/ask-person/AskPersonInline.js +84 -0
- package/dist/tool-call-visualization/renderers/cloud-browser/CloudBrowserRunCard.d.ts +22 -0
- package/dist/tool-call-visualization/renderers/cloud-browser/CloudBrowserRunCard.js +202 -0
- package/dist/tool-call-visualization/renderers/cloud-browser/cloudBrowserRun.d.ts +27 -0
- package/dist/tool-call-visualization/renderers/cloud-browser/cloudBrowserRun.js +361 -0
- package/dist/tool-call-visualization/renderers/ctx/ContextActionInline.d.ts +22 -0
- package/dist/tool-call-visualization/renderers/ctx/ContextActionInline.js +15 -0
- package/dist/tool-call-visualization/renderers/ctx/CtxBatchInline.d.ts +31 -0
- package/dist/tool-call-visualization/renderers/ctx/CtxBatchInline.js +133 -0
- package/dist/tool-call-visualization/renderers/ctx/CtxGetInline.d.ts +27 -0
- package/dist/tool-call-visualization/renderers/ctx/CtxGetInline.js +68 -0
- package/dist/tool-call-visualization/renderers/ctx/CtxItemCard.d.ts +33 -0
- package/dist/tool-call-visualization/renderers/ctx/CtxItemCard.js +84 -0
- package/dist/tool-call-visualization/renderers/ctx/CtxPatchInline.d.ts +32 -0
- package/dist/tool-call-visualization/renderers/ctx/CtxPatchInline.js +89 -0
- package/dist/tool-call-visualization/renderers/dictionary/DictEntryList.d.ts +4 -0
- package/dist/tool-call-visualization/renderers/dictionary/DictEntryList.js +49 -0
- package/dist/tool-call-visualization/renderers/dictionary/DictionaryInline.d.ts +2 -0
- package/dist/tool-call-visualization/renderers/dictionary/DictionaryInline.js +38 -0
- package/dist/tool-call-visualization/renderers/dictionary/DictionaryOverlay.d.ts +6 -0
- package/dist/tool-call-visualization/renderers/dictionary/DictionaryOverlay.js +31 -0
- package/dist/tool-call-visualization/renderers/dictionary/parseDictionary.d.ts +19 -0
- package/dist/tool-call-visualization/renderers/dictionary/parseDictionary.js +24 -0
- package/dist/tool-call-visualization/renderers/fs/FsInline.d.ts +47 -0
- package/dist/tool-call-visualization/renderers/fs/FsInline.js +222 -0
- package/dist/tool-call-visualization/renderers/news-api/NewsInline.d.ts +3 -0
- package/dist/tool-call-visualization/renderers/news-api/NewsInline.js +148 -0
- package/dist/tool-call-visualization/renderers/news-api/NewsOverlay.d.ts +3 -0
- package/dist/tool-call-visualization/renderers/news-api/NewsOverlay.js +206 -0
- package/dist/tool-call-visualization/renderers/random-wheel/RandomWheelInline.d.ts +18 -0
- package/dist/tool-call-visualization/renderers/random-wheel/RandomWheelInline.js +696 -0
- package/dist/tool-call-visualization/renderers/random-wheel/types.d.ts +73 -0
- package/dist/tool-call-visualization/renderers/random-wheel/types.js +0 -0
- package/dist/tool-call-visualization/renderers/records/RecordsInline.d.ts +2 -0
- package/dist/tool-call-visualization/renderers/records/RecordsInline.js +41 -0
- package/dist/tool-call-visualization/renderers/research/ResearchInline.d.ts +32 -0
- package/dist/tool-call-visualization/renderers/research/ResearchInline.js +180 -0
- package/dist/tool-call-visualization/renderers/research/ResearchOverlay.d.ts +21 -0
- package/dist/tool-call-visualization/renderers/research/ResearchOverlay.js +247 -0
- package/dist/tool-call-visualization/renderers/research/SubagentReportBlock.d.ts +10 -0
- package/dist/tool-call-visualization/renderers/research/SubagentReportBlock.js +127 -0
- package/dist/tool-call-visualization/renderers/scrape/ScrapeInline.d.ts +33 -0
- package/dist/tool-call-visualization/renderers/scrape/ScrapeInline.js +283 -0
- package/dist/tool-call-visualization/renderers/scrape/ScrapeOverlay.d.ts +14 -0
- package/dist/tool-call-visualization/renderers/scrape/ScrapeOverlay.js +152 -0
- package/dist/tool-call-visualization/renderers/scrape/parseScrape.d.ts +83 -0
- package/dist/tool-call-visualization/renderers/scrape/parseScrape.js +111 -0
- package/dist/tool-call-visualization/renderers/search/SearchInline.d.ts +47 -0
- package/dist/tool-call-visualization/renderers/search/SearchInline.js +521 -0
- package/dist/tool-call-visualization/renderers/search/SearchOverlay.d.ts +3 -0
- package/dist/tool-call-visualization/renderers/search/SearchOverlay.js +334 -0
- package/dist/tool-call-visualization/renderers/search/parseSearch.d.ts +167 -0
- package/dist/tool-call-visualization/renderers/search/parseSearch.js +271 -0
- package/dist/tool-call-visualization/renderers/search/useGraduatedReveal.d.ts +26 -0
- package/dist/tool-call-visualization/renderers/search/useGraduatedReveal.js +34 -0
- package/dist/tool-call-visualization/renderers/shell/ShellInline.d.ts +60 -0
- package/dist/tool-call-visualization/renderers/shell/ShellInline.js +158 -0
- package/dist/tool-call-visualization/renderers/skill/SkillInline.d.ts +22 -0
- package/dist/tool-call-visualization/renderers/skill/SkillInline.js +113 -0
- package/dist/tool-call-visualization/renderers/sql/DbSchemaInline.d.ts +16 -0
- package/dist/tool-call-visualization/renderers/sql/DbSchemaInline.js +59 -0
- package/dist/tool-call-visualization/renderers/sql/SqlInline.d.ts +23 -0
- package/dist/tool-call-visualization/renderers/sql/SqlInline.js +125 -0
- package/dist/tool-call-visualization/renderers/sql/summarizeSql.d.ts +32 -0
- package/dist/tool-call-visualization/renderers/sql/summarizeSql.js +104 -0
- package/dist/tool-call-visualization/renderers/useAutoScrollOnStream.d.ts +5 -0
- package/dist/tool-call-visualization/renderers/useAutoScrollOnStream.js +30 -0
- package/dist/tool-call-visualization/renderers/web/WebInline.d.ts +23 -0
- package/dist/tool-call-visualization/renderers/web/WebInline.js +16 -0
- package/dist/tool-call-visualization/renderers/web/WebOverlay.d.ts +16 -0
- package/dist/tool-call-visualization/renderers/web/WebOverlay.js +16 -0
- package/dist/tool-call-visualization/renderers/web/webAction.d.ts +30 -0
- package/dist/tool-call-visualization/renderers/web/webAction.js +14 -0
- package/dist/tool-call-visualization/renderers/workbook/WorkbookGrid.d.ts +11 -0
- package/dist/tool-call-visualization/renderers/workbook/WorkbookGrid.js +47 -0
- package/dist/tool-call-visualization/renderers/workbook/WorkbookInline.d.ts +7 -0
- package/dist/tool-call-visualization/renderers/workbook/WorkbookInline.js +86 -0
- package/dist/tool-call-visualization/renderers/workbook/WorkbookOverlay.d.ts +7 -0
- package/dist/tool-call-visualization/renderers/workbook/WorkbookOverlay.js +37 -0
- package/dist/tool-call-visualization/renderers/workbook/parseWorkbook.d.ts +19 -0
- package/dist/tool-call-visualization/renderers/workbook/parseWorkbook.js +23 -0
- package/dist/tool-call-visualization/renderers/working-document/PatchDiffInline.d.ts +32 -0
- package/dist/tool-call-visualization/renderers/working-document/PatchDiffInline.js +110 -0
- package/dist/tool-call-visualization/renderers/working-document/applyWorkingDocPatch.d.ts +44 -0
- package/dist/tool-call-visualization/renderers/working-document/applyWorkingDocPatch.js +74 -0
- package/dist/tool-call-visualization/result-fields/EmptyResult.d.ts +13 -0
- package/dist/tool-call-visualization/result-fields/EmptyResult.js +28 -0
- package/dist/tool-call-visualization/result-fields/KeyValueGrid.d.ts +69 -0
- package/dist/tool-call-visualization/result-fields/KeyValueGrid.js +291 -0
- package/dist/tool-call-visualization/result-fields/KindValueNode.d.ts +21 -0
- package/dist/tool-call-visualization/result-fields/KindValueNode.js +41 -0
- package/dist/tool-call-visualization/result-fields/ResultFile.d.ts +26 -0
- package/dist/tool-call-visualization/result-fields/ResultFile.js +118 -0
- package/dist/tool-call-visualization/result-fields/ResultJson.d.ts +22 -0
- package/dist/tool-call-visualization/result-fields/ResultJson.js +9 -0
- package/dist/tool-call-visualization/result-fields/ResultMarkdown.d.ts +16 -0
- package/dist/tool-call-visualization/result-fields/ResultMarkdown.js +51 -0
- package/dist/tool-call-visualization/result-fields/ResultMedia.d.ts +17 -0
- package/dist/tool-call-visualization/result-fields/ResultMedia.js +60 -0
- package/dist/tool-call-visualization/result-fields/ResultRecordRef.d.ts +20 -0
- package/dist/tool-call-visualization/result-fields/ResultRecordRef.js +42 -0
- package/dist/tool-call-visualization/result-fields/ResultScalar.d.ts +19 -0
- package/dist/tool-call-visualization/result-fields/ResultScalar.js +16 -0
- package/dist/tool-call-visualization/result-fields/ResultTable.d.ts +28 -0
- package/dist/tool-call-visualization/result-fields/ResultTable.js +343 -0
- package/dist/tool-call-visualization/result-fields/ResultValue.d.ts +35 -0
- package/dist/tool-call-visualization/result-fields/ResultValue.js +202 -0
- package/dist/tool-call-visualization/result-fields/ShortId.d.ts +28 -0
- package/dist/tool-call-visualization/result-fields/ShortId.js +114 -0
- package/dist/tool-call-visualization/result-fields/ToolErrorCard.d.ts +33 -0
- package/dist/tool-call-visualization/result-fields/ToolErrorCard.js +80 -0
- package/dist/tool-call-visualization/result-fields/ToolResultValue.d.ts +22 -0
- package/dist/tool-call-visualization/result-fields/ToolResultValue.js +19 -0
- package/dist/tool-call-visualization/result-fields/UrlChips.d.ts +34 -0
- package/dist/tool-call-visualization/result-fields/UrlChips.js +72 -0
- package/dist/tool-call-visualization/result-fields/demo-fixtures.d.ts +6 -0
- package/dist/tool-call-visualization/result-fields/demo-fixtures.js +8 -0
- package/dist/tool-call-visualization/result-fields/document-presentation.d.ts +101 -0
- package/dist/tool-call-visualization/result-fields/document-presentation.js +61 -0
- package/dist/tool-call-visualization/result-fields/guard-routing.d.ts +31 -0
- package/dist/tool-call-visualization/result-fields/guard-routing.js +32 -0
- package/dist/tool-call-visualization/result-fields/schema-labels.d.ts +27 -0
- package/dist/tool-call-visualization/result-fields/schema-labels.js +51 -0
- package/dist/tool-call-visualization/result-fields/shape.d.ts +263 -0
- package/dist/tool-call-visualization/result-fields/shape.js +384 -0
- package/dist/tool-call-visualization/service/fetchConversationToolCalls.d.ts +39 -0
- package/dist/tool-call-visualization/service/fetchConversationToolCalls.js +55 -0
- package/dist/tool-call-visualization/surface-write/SurfaceWriteDiff.d.ts +9 -0
- package/dist/tool-call-visualization/surface-write/SurfaceWriteDiff.js +129 -0
- package/dist/tool-call-visualization/surface-write/SurfaceWriteStress.d.ts +17 -0
- package/dist/tool-call-visualization/surface-write/SurfaceWriteStress.js +169 -0
- package/dist/tool-call-visualization/surface-write/readSurfaceWrite.d.ts +43 -0
- package/dist/tool-call-visualization/surface-write/readSurfaceWrite.js +64 -0
- package/dist/tool-call-visualization/surface-write/withSurfaceWriteDiff.d.ts +17 -0
- package/dist/tool-call-visualization/surface-write/withSurfaceWriteDiff.js +20 -0
- package/dist/tool-call-visualization/types.d.ts +226 -0
- package/dist/tool-call-visualization/types.js +0 -0
- package/dist/tool-call-visualization/utils/cxToolCallToLifecycleEntry.d.ts +51 -0
- package/dist/tool-call-visualization/utils/cxToolCallToLifecycleEntry.js +109 -0
- package/dist/tool-call-visualization/utils/human-copy.d.ts +16 -0
- package/dist/tool-call-visualization/utils/human-copy.js +44 -0
- package/dist/tool-call-visualization/utils/toolCallBlockToLifecycleEntry.d.ts +24 -0
- package/dist/tool-call-visualization/utils/toolCallBlockToLifecycleEntry.js +26 -0
- package/dist/tool-call-visualization/utils/toolDisplayName.d.ts +13 -0
- package/dist/tool-call-visualization/utils/toolDisplayName.js +17 -0
- package/dist/tool-call-visualization/utils/toolEntryBundle.d.ts +38 -0
- package/dist/tool-call-visualization/utils/toolEntryBundle.js +62 -0
- package/dist/tool-call-visualization/window-panel/ToolCallWindowPanel.d.ts +39 -0
- package/dist/tool-call-visualization/window-panel/ToolCallWindowPanel.js +521 -0
- package/dist/tools.cjs +84 -44
- package/dist/tools.cjs.map +1 -1
- package/dist/tools.js +83 -43
- package/dist/tools.js.map +1 -1
- package/dist/ui/ShimmerText.d.ts +5 -0
- package/dist/ui/ShimmerText.js +21 -0
- package/dist/ui/access-core.d.ts +50 -0
- package/dist/ui/access-core.js +65 -0
- package/dist/ui/addressWithoutNavigating.d.ts +68 -0
- package/dist/ui/addressWithoutNavigating.js +60 -0
- package/dist/ui/after-current-layer-closes.d.ts +79 -0
- package/dist/ui/after-current-layer-closes.js +69 -0
- package/dist/ui/agentDeleteConfirm.d.ts +41 -0
- package/dist/ui/agentDeleteConfirm.js +14 -0
- package/dist/ui/aspect-ratio-options.d.ts +28 -0
- package/dist/ui/aspect-ratio-options.js +82 -0
- package/dist/ui/audio-session-types.d.ts +122 -0
- package/dist/ui/audio-session-types.js +0 -0
- package/dist/ui/body-pointer-events-guard.d.ts +100 -0
- package/dist/ui/body-pointer-events-guard.js +140 -0
- package/dist/ui/canActOn.d.ts +2 -0
- package/dist/ui/canActOn.js +13 -0
- package/dist/ui/chat-default-model-knob.d.ts +3 -0
- package/dist/ui/chat-default-model-knob.js +12 -0
- package/dist/ui/chat-protocol-types.d.ts +154 -0
- package/dist/ui/chat-protocol-types.js +14 -0
- package/dist/ui/checkbox.d.ts +6 -0
- package/dist/ui/checkbox.js +11 -0
- package/dist/ui/componentSaver.d.ts +22 -0
- package/dist/ui/componentSaver.js +7 -0
- package/dist/ui/composer/composerSubmit.d.ts +50 -0
- package/dist/ui/composer/composerSubmit.js +32 -0
- package/dist/ui/composer/useTouchOnlyDevice.d.ts +6 -0
- package/dist/ui/composer/useTouchOnlyDevice.js +9 -0
- package/dist/ui/database-tool.d.ts +3 -0
- package/dist/ui/database-tool.js +0 -0
- package/dist/ui/expectedRefusal.d.ts +15 -0
- package/dist/ui/expectedRefusal.js +33 -0
- package/dist/ui/file-source.d.ts +19 -0
- package/dist/ui/file-source.js +0 -0
- package/dist/ui/grid-companion.d.ts +13 -0
- package/dist/ui/grid-companion.js +4 -0
- package/dist/ui/item-types.d.ts +284 -0
- package/dist/ui/item-types.js +22 -0
- package/dist/ui/mandate-words.d.ts +11 -0
- package/dist/ui/mandate-words.js +10 -0
- package/dist/ui/mandates-storage/mandateStorage.d.ts +10609 -0
- package/dist/ui/mandates-storage/mandateStorage.js +142 -0
- package/dist/ui/mandates-storage/provision-shapes.d.ts +398 -0
- package/dist/ui/mandates-storage/provision-shapes.js +369 -0
- package/dist/ui/mandates-storage/shortcutStorage.d.ts +6270 -0
- package/dist/ui/mandates-storage/shortcutStorage.js +71 -0
- package/dist/ui/mobileTable.d.ts +91 -0
- package/dist/ui/mobileTable.js +28 -0
- package/dist/ui/oauth-popup.d.ts +22 -0
- package/dist/ui/oauth-popup.js +63 -0
- package/dist/ui/payload.d.ts +38 -0
- package/dist/ui/payload.js +13 -0
- package/dist/ui/permission-levels.d.ts +88 -0
- package/dist/ui/permission-levels.js +66 -0
- package/dist/ui/projectCreateAiDebug.d.ts +27 -0
- package/dist/ui/projectCreateAiDebug.js +53 -0
- package/dist/ui/renameIntentFallback.d.ts +8 -0
- package/dist/ui/renameIntentFallback.js +11 -0
- package/dist/ui/scroll-fade.d.ts +40 -0
- package/dist/ui/scroll-fade.js +87 -0
- package/dist/ui/side-panel-width.d.ts +20 -0
- package/dist/ui/side-panel-width.js +30 -0
- package/dist/ui/skills-types.d.ts +275 -0
- package/dist/ui/skills-types.js +0 -0
- package/dist/ui/stream-profiler.d.ts +48 -0
- package/dist/ui/stream-profiler.js +96 -0
- package/dist/ui/supabase-rpc.d.ts +57 -0
- package/dist/ui/supabase-rpc.js +0 -0
- package/dist/ui/switch.d.ts +2 -0
- package/dist/ui/switch.js +4 -0
- package/dist/ui/tabs.d.ts +11 -0
- package/dist/ui/tabs.js +25 -0
- package/dist/ui/treatment-shape.d.ts +65 -0
- package/dist/ui/treatment-shape.js +159 -0
- package/dist/ui/usable-server-notes.d.ts +2 -0
- package/dist/ui/usable-server-notes.js +8 -0
- package/dist/ui/usages/DriftSeverityBadge.d.ts +18 -0
- package/dist/ui/usages/DriftSeverityBadge.js +34 -0
- package/dist/ui/usages/severity.d.ts +34 -0
- package/dist/ui/usages/severity.js +82 -0
- package/dist/ui/usages/usages.slice.d.ts +91 -0
- package/dist/ui/usages/usages.slice.js +210 -0
- package/dist/ui/usages/usages.types.d.ts +196 -0
- package/dist/ui/usages/usages.types.js +0 -0
- package/dist/ui/valuePromptsOpener.d.ts +46 -0
- package/dist/ui/valuePromptsOpener.js +11 -0
- package/dist/utils/callbackManager.d.ts +114 -0
- package/dist/utils/callbackManager.js +260 -0
- package/dist/utils/connectors/marks.d.ts +35 -0
- package/dist/utils/connectors/marks.js +233 -0
- package/dist/utils/connectors/types.d.ts +77 -0
- package/dist/utils/connectors/types.js +0 -0
- package/dist/utils/content-ir/decision-answers-ids.d.ts +3 -0
- package/dist/utils/content-ir/decision-answers-ids.js +6 -0
- package/dist/utils/content-ir/envelope-parity.d.ts +12 -0
- package/dist/utils/content-ir/envelope-parity.js +32 -0
- package/dist/utils/content-ir/instance-title.d.ts +26 -0
- package/dist/utils/content-ir/instance-title.js +39 -0
- package/dist/utils/content-ir/kinds/kind-markdown-utils.d.ts +84 -0
- package/dist/utils/content-ir/kinds/kind-markdown-utils.js +233 -0
- package/dist/utils/content-ir/kinds/kind-value-markdown.d.ts +5 -0
- package/dist/utils/content-ir/kinds/kind-value-markdown.js +17 -0
- package/dist/utils/content-ir/legacy-quiz-envelope.d.ts +3 -0
- package/dist/utils/content-ir/legacy-quiz-envelope.js +45 -0
- package/dist/utils/content-ir/report-kind-at-raw-renderer.d.ts +19 -0
- package/dist/utils/content-ir/report-kind-at-raw-renderer.js +32 -0
- package/dist/utils/content-ir/surfaces/embedded-kind-json.d.ts +140 -0
- package/dist/utils/content-ir/surfaces/embedded-kind-json.js +527 -0
- package/dist/utils/content-ir/surfaces/json-kind-signal.d.ts +307 -0
- package/dist/utils/content-ir/surfaces/json-kind-signal.js +945 -0
- package/dist/utils/content-ir/surfaces/kind-image-alt.d.ts +27 -0
- package/dist/utils/content-ir/surfaces/kind-image-alt.js +117 -0
- package/dist/utils/content-ir/surfaces/kind-one-line.d.ts +67 -0
- package/dist/utils/content-ir/surfaces/kind-one-line.js +209 -0
- package/dist/utils/content-ir/surfaces/kind-text-label.d.ts +20 -0
- package/dist/utils/content-ir/surfaces/kind-text-label.js +50 -0
- package/dist/utils/content-ir/surfaces/kind-text-to-markdown.d.ts +47 -0
- package/dist/utils/content-ir/surfaces/kind-text-to-markdown.js +399 -0
- package/dist/utils/content-ir/surfaces/markdown-escaped-kind.d.ts +54 -0
- package/dist/utils/content-ir/surfaces/markdown-escaped-kind.js +128 -0
- package/dist/utils/content-ir/surfaces/quoted-kind-lift.d.ts +61 -0
- package/dist/utils/content-ir/surfaces/quoted-kind-lift.js +215 -0
- package/dist/utils/dom/focus-guard.d.ts +29 -0
- package/dist/utils/dom/focus-guard.js +40 -0
- package/dist/utils/dom/useAutoFocus.d.ts +11 -0
- package/dist/utils/dom/useAutoFocus.js +11 -0
- package/dist/utils/inline-decision/decision-options.d.ts +21 -0
- package/dist/utils/inline-decision/decision-options.js +32 -0
- package/dist/utils/json.d.ts +63 -0
- package/dist/utils/json.js +22 -0
- package/dist/utils/markdown/plain-title.d.ts +25 -0
- package/dist/utils/markdown/plain-title.js +51 -0
- package/dist/utils/rendered-find.d.ts +9 -0
- package/dist/utils/rendered-find.js +68 -0
- package/dist/utils/resource-picker/ResourcePickerSubViewHeader.d.ts +102 -0
- package/dist/utils/resource-picker/ResourcePickerSubViewHeader.js +150 -0
- package/dist/utils/rich-editor/core/caret-context.d.ts +24 -0
- package/dist/utils/rich-editor/core/caret-context.js +73 -0
- package/dist/utils/rich-editor/in-place/caret-handoff.d.ts +3 -0
- package/dist/utils/rich-editor/in-place/caret-handoff.js +14 -0
- package/dist/utils/shell/canvas-chrome-routes.d.ts +38 -0
- package/dist/utils/shell/canvas-chrome-routes.js +32 -0
- package/dist/utils/shell/sidebar-cookie.d.ts +21 -0
- package/dist/utils/shell/sidebar-cookie.js +12 -0
- package/dist/utils/xml/readXmlTag.d.ts +12 -0
- package/dist/utils/xml/readXmlTag.js +66 -0
- package/dist/voice-agent/agent-context/voiceTranscriptScope.d.ts +56 -0
- package/dist/voice-agent/agent-context/voiceTranscriptScope.js +45 -0
- package/dist/voice-agent/agentInstructions.d.ts +18 -0
- package/dist/voice-agent/agentInstructions.js +25 -0
- package/dist/voice-agent/audio/amplitudeBus.d.ts +5 -0
- package/dist/voice-agent/audio/amplitudeBus.js +19 -0
- package/dist/voice-agent/audio/audioCapture.d.ts +48 -0
- package/dist/voice-agent/audio/audioCapture.js +277 -0
- package/dist/voice-agent/audio/audioPlayback.d.ts +19 -0
- package/dist/voice-agent/audio/audioPlayback.js +194 -0
- package/dist/voice-agent/audio/pcmEncoding.d.ts +10 -0
- package/dist/voice-agent/audio/pcmEncoding.js +26 -0
- package/dist/voice-agent/components/GoogleLiveSurface.d.ts +1 -0
- package/dist/voice-agent/components/GoogleLiveSurface.js +151 -0
- package/dist/voice-agent/components/LiveVoiceDoor.d.ts +4 -0
- package/dist/voice-agent/components/LiveVoiceDoor.js +49 -0
- package/dist/voice-agent/components/VoiceAgentSurface.d.ts +22 -0
- package/dist/voice-agent/components/VoiceAgentSurface.js +308 -0
- package/dist/voice-agent/components/VoiceControlCluster.d.ts +10 -0
- package/dist/voice-agent/components/VoiceControlCluster.js +24 -0
- package/dist/voice-agent/components/VoiceDebugPanel.d.ts +7 -0
- package/dist/voice-agent/components/VoiceDebugPanel.js +276 -0
- package/dist/voice-agent/components/VoiceEdgeRibbon.d.ts +7 -0
- package/dist/voice-agent/components/VoiceEdgeRibbon.js +99 -0
- package/dist/voice-agent/components/VoiceErrorBanner.d.ts +8 -0
- package/dist/voice-agent/components/VoiceErrorBanner.js +36 -0
- package/dist/voice-agent/components/VoiceMicButton.d.ts +8 -0
- package/dist/voice-agent/components/VoiceMicButton.js +47 -0
- package/dist/voice-agent/components/VoiceMuteButton.d.ts +8 -0
- package/dist/voice-agent/components/VoiceMuteButton.js +37 -0
- package/dist/voice-agent/components/VoiceOrb.d.ts +9 -0
- package/dist/voice-agent/components/VoiceOrb.js +169 -0
- package/dist/voice-agent/components/VoiceStatusPill.d.ts +9 -0
- package/dist/voice-agent/components/VoiceStatusPill.js +43 -0
- package/dist/voice-agent/components/VoiceTranscriptStream.d.ts +7 -0
- package/dist/voice-agent/components/VoiceTranscriptStream.js +32 -0
- package/dist/voice-agent/components/VoiceTranscriptTurn.d.ts +6 -0
- package/dist/voice-agent/components/VoiceTranscriptTurn.js +45 -0
- package/dist/voice-agent/components/playground/InstructionsEditor.d.ts +6 -0
- package/dist/voice-agent/components/playground/InstructionsEditor.js +61 -0
- package/dist/voice-agent/components/playground/PlaygroundSettingsSheet.d.ts +16 -0
- package/dist/voice-agent/components/playground/PlaygroundSettingsSheet.js +74 -0
- package/dist/voice-agent/components/playground/ToolToggleList.d.ts +6 -0
- package/dist/voice-agent/components/playground/ToolToggleList.js +64 -0
- package/dist/voice-agent/components/playground/VoicePicker.d.ts +6 -0
- package/dist/voice-agent/components/playground/VoicePicker.js +37 -0
- package/dist/voice-agent/constants.d.ts +120 -0
- package/dist/voice-agent/constants.js +52 -0
- package/dist/voice-agent/debug/voiceDebugBus.d.ts +57 -0
- package/dist/voice-agent/debug/voiceDebugBus.js +91 -0
- package/dist/voice-agent/hooks/useAudioAmplitude.d.ts +3 -0
- package/dist/voice-agent/hooks/useAudioAmplitude.js +32 -0
- package/dist/voice-agent/hooks/useGoogleLiveSession.d.ts +21 -0
- package/dist/voice-agent/hooks/useGoogleLiveSession.js +185 -0
- package/dist/voice-agent/hooks/usePersistVoiceTranscript.d.ts +7 -0
- package/dist/voice-agent/hooks/usePersistVoiceTranscript.js +120 -0
- package/dist/voice-agent/hooks/useRealtimeAgentConfig.d.ts +63 -0
- package/dist/voice-agent/hooks/useRealtimeAgentConfig.js +67 -0
- package/dist/voice-agent/hooks/useVoiceAgentInstance.d.ts +62 -0
- package/dist/voice-agent/hooks/useVoiceAgentInstance.js +109 -0
- package/dist/voice-agent/hooks/useVoicePlaygroundWriteHandlers.d.ts +2 -0
- package/dist/voice-agent/hooks/useVoicePlaygroundWriteHandlers.js +89 -0
- package/dist/voice-agent/hooks/useXaiVoiceSession.d.ts +53 -0
- package/dist/voice-agent/hooks/useXaiVoiceSession.js +1030 -0
- package/dist/voice-agent/intelligence-places.d.ts +2 -0
- package/dist/voice-agent/intelligence-places.js +55 -0
- package/dist/voice-agent/persistence/voiceTranscriptWriter.d.ts +47 -0
- package/dist/voice-agent/persistence/voiceTranscriptWriter.js +204 -0
- package/dist/voice-agent/realtimeModel.d.ts +18 -0
- package/dist/voice-agent/realtimeModel.js +47 -0
- package/dist/voice-agent/realtimeSession.d.ts +27 -0
- package/dist/voice-agent/realtimeSession.js +67 -0
- package/dist/voice-agent/relay/VoiceChatClient.d.ts +8 -0
- package/dist/voice-agent/relay/VoiceChatClient.js +36 -0
- package/dist/voice-agent/relay/VoiceRelayBar.d.ts +22 -0
- package/dist/voice-agent/relay/VoiceRelayBar.js +85 -0
- package/dist/voice-agent/relay/VoiceRelayDock.d.ts +13 -0
- package/dist/voice-agent/relay/VoiceRelayDock.js +80 -0
- package/dist/voice-agent/relay/VoiceRelayPanel.d.ts +14 -0
- package/dist/voice-agent/relay/VoiceRelayPanel.js +45 -0
- package/dist/voice-agent/relay/questionLedger.d.ts +22 -0
- package/dist/voice-agent/relay/questionLedger.js +123 -0
- package/dist/voice-agent/relay/relayController.d.ts +52 -0
- package/dist/voice-agent/relay/relayController.js +165 -0
- package/dist/voice-agent/relay/relayProtocol.d.ts +25 -0
- package/dist/voice-agent/relay/relayProtocol.js +33 -0
- package/dist/voice-agent/relay/sideChannel.d.ts +38 -0
- package/dist/voice-agent/relay/sideChannel.js +69 -0
- package/dist/voice-agent/relay/types.d.ts +41 -0
- package/dist/voice-agent/relay/types.js +0 -0
- package/dist/voice-agent/relay/useVoiceRelaySession.d.ts +47 -0
- package/dist/voice-agent/relay/useVoiceRelaySession.js +261 -0
- package/dist/voice-agent/relay/utteranceQueue.d.ts +27 -0
- package/dist/voice-agent/relay/utteranceQueue.js +39 -0
- package/dist/voice-agent/runtime/client-tool-registry.d.ts +45 -0
- package/dist/voice-agent/runtime/client-tool-registry.js +49 -0
- package/dist/voice-agent/runtime/realtime-tool-loop.d.ts +87 -0
- package/dist/voice-agent/runtime/realtime-tool-loop.js +90 -0
- package/dist/voice-agent/services/realtimeToolService.d.ts +57 -0
- package/dist/voice-agent/services/realtimeToolService.js +28 -0
- package/dist/voice-agent/state/selectors.d.ts +36 -0
- package/dist/voice-agent/state/selectors.js +119 -0
- package/dist/voice-agent/state/voiceAgentSlice.d.ts +78 -0
- package/dist/voice-agent/state/voiceAgentSlice.js +285 -0
- package/dist/voice-agent/transport/clientEvents.d.ts +40 -0
- package/dist/voice-agent/transport/clientEvents.js +88 -0
- package/dist/voice-agent/transport/googleRealtimeClient.d.ts +24 -0
- package/dist/voice-agent/transport/googleRealtimeClient.js +161 -0
- package/dist/voice-agent/transport/serverEvents.d.ts +180 -0
- package/dist/voice-agent/transport/serverEvents.js +42 -0
- package/dist/voice-agent/transport/tokenManager.d.ts +40 -0
- package/dist/voice-agent/transport/tokenManager.js +197 -0
- package/dist/voice-agent/transport/xaiClient.d.ts +43 -0
- package/dist/voice-agent/transport/xaiClient.js +230 -0
- package/dist/voice-agent/types.d.ts +119 -0
- package/dist/voice-agent/types.js +0 -0
- package/dist/window-panels/windows/agents/AgentAssistantMarkdownDebugWindow.d.ts +7 -0
- package/dist/window-panels/windows/agents/AgentAssistantMarkdownDebugWindow.js +138 -0
- package/dist/window-panels/windows/agents/AgentMemoryWindow.d.ts +6 -0
- package/dist/window-panels/windows/agents/AgentMemoryWindow.js +105 -0
- package/dist/window-panels/windows/agents/AgentPickerFrame.d.ts +30 -0
- package/dist/window-panels/windows/agents/AgentPickerFrame.js +49 -0
- package/dist/window-panels/windows/agents/AgentRunHistoryWindow.d.ts +18 -0
- package/dist/window-panels/windows/agents/AgentRunHistoryWindow.js +483 -0
- package/dist/window-panels/windows/agents/AgentRunWindow.d.ts +70 -0
- package/dist/window-panels/windows/agents/AgentRunWindow.js +674 -0
- package/dist/window-panels/windows/agents/ChatHistoryWindow.d.ts +41 -0
- package/dist/window-panels/windows/agents/ChatHistoryWindow.js +248 -0
- package/dist/window-panels/windows/agents/LiveRunWindow.d.ts +52 -0
- package/dist/window-panels/windows/agents/LiveRunWindow.js +97 -0
- package/dist/window-panels/windows/agents/MessageAnalysisWindow.d.ts +22 -0
- package/dist/window-panels/windows/agents/MessageAnalysisWindow.js +116 -0
- package/dist/window-panels/windows/agents/ObservationalMemoryWindow.d.ts +25 -0
- package/dist/window-panels/windows/agents/ObservationalMemoryWindow.js +382 -0
- package/dist/window-panels/windows/agents/RunControlsWindow.d.ts +9 -0
- package/dist/window-panels/windows/agents/RunControlsWindow.js +158 -0
- package/dist/window-panels/windows/agents/agent-run-history-scope.d.ts +90 -0
- package/dist/window-panels/windows/agents/agent-run-history-scope.js +86 -0
- package/dist/window-panels/windows/agents/agentPanelSurfaceAddress.d.ts +28 -0
- package/dist/window-panels/windows/agents/agentPanelSurfaceAddress.js +27 -0
- package/dist/window-panels/windows/agents/agentRunWindowAddress.d.ts +35 -0
- package/dist/window-panels/windows/agents/agentRunWindowAddress.js +13 -0
- package/package.json +161 -12
package/dist/matrx/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/matrx/data-source.ts","../../src/matrx/transport.ts","../../src/model.ts","../../src/matrx/persistence.ts","../../src/tool-state.ts","../../src/ingest.ts","../../src/config.ts","../../src/ports.ts","../../src/store.ts","../../src/matrx/index.ts"],"sourcesContent":["/**\n * The data seam — a structural subset of `SupabaseClient<Database>`, the\n * `@ai-matrx/associations` precedent. `PromiseLike` rather than `Promise`\n * because supabase-js returns a thenable builder, not a Promise, and typing it\n * as a Promise makes a real client fail to satisfy the interface.\n *\n * Clients read and write the database DIRECTLY (workspace rule: the Python\n * server is for work a client cannot do, never a data middle tier), so this\n * port is a supabase-js client and nothing else is expected to implement it.\n */\n\nexport interface PgError {\n message: string;\n code?: string | undefined;\n details?: string | undefined;\n hint?: string | undefined;\n}\n\nexport interface PgResult<T> {\n data: T | null;\n error: PgError | null;\n}\n\nexport interface ChatSelectQuery extends PromiseLike<PgResult<unknown[]>> {\n eq(column: string, value: unknown): ChatSelectQuery;\n is(column: string, value: unknown): ChatSelectQuery;\n in(column: string, values: readonly unknown[]): ChatSelectQuery;\n lt(column: string, value: unknown): ChatSelectQuery;\n order(column: string, options: { ascending: boolean }): ChatSelectQuery;\n limit(count: number): ChatSelectQuery;\n}\n\nexport interface ChatTableQuery {\n select(columns: string, options?: { count?: \"exact\"; head?: boolean }): ChatSelectQuery;\n update(patch: Record<string, unknown>): {\n eq(column: string, value: unknown): PromiseLike<{ error: PgError | null }>;\n };\n}\n\nexport interface ChatDataSource {\n schema(name: string): { from(table: string): ChatTableQuery };\n}\n\n/** The schema this package reads and writes. Renaming it breaks every read. */\nexport const CHAT_SCHEMA = \"chat\";\n\n/** The `chat.*` tables the persistence binding touches. */\nexport const CHAT_TABLES = {\n conversation: \"conversation\",\n message: \"message\",\n} as const;\n","/**\n * `@ai-matrx/chat/matrx` — THE PLATFORM TRANSPORT.\n *\n * Wire semantics verified against the aidream SERVER source and against LIVE\n * bytes, never guessed from a client (C22):\n *\n * - `POST /ai/agents/{agent_id}` — start an agent turn\n * - `POST /ai/mandates/{mandate_key}` — start a declared mandate\n * - `POST /ai/conversations/{conversation_id}` — continue a stored conversation\n * - `POST /ai/cancel/{request_id}?mode=interrupt` — cooperative stop\n *\n * The conversation-start triple (`conversation_id` / `is_new` / `store`) is\n * sent in full on every start, no defaults — `store: false` is the ONLY\n * ephemeral signal, and the kernel derives it from whether a persistence port\n * exists, so an unpersisted thread never silently writes rows.\n */\n\nimport {\n cancelAgentRun,\n continueAgentConversation,\n startAgentRun,\n startMandateRun,\n type MatrxTransport,\n} from \"@ai-matrx/agents/matrx\";\n\nimport type {\n ChatNotifierPort,\n ChatSendRequest,\n ChatStreamFrame,\n ChatTransportPort,\n ChatTurnHandle,\n} from \"../ports\";\n\n/** Which brain this thread talks to. */\nexport type MatrxChatTarget =\n | { kind: \"agent\"; agentId: string }\n | { kind: \"mandate\"; mandateKey: string };\n\n/**\n * THE REFERENCE SHAPE EVERY CLIENT ALREADY SPEAKS. `AgentListDropdown` hands\n * back an agent id, or `mandate:<key>` for the platform-default row. This is\n * the ONE place that turns those words into a target, so a host wiring the\n * picker does not each invent the same two-line parse — and an empty reference\n * throws by name instead of starting a run against nothing.\n */\nexport function parseMatrxChatTarget(agentRef: string): MatrxChatTarget {\n const trimmed = agentRef.trim();\n if (trimmed === \"\") {\n throw new Error(\n \"@ai-matrx/chat/matrx: an empty agent reference cannot name who answers. Pass an agent id, or `mandate:<key>` for a mandate.\",\n );\n }\n if (trimmed.startsWith(\"mandate:\")) {\n const mandateKey = trimmed.slice(\"mandate:\".length).trim();\n if (mandateKey === \"\") {\n throw new Error(\n \"@ai-matrx/chat/matrx: `mandate:` with no key cannot name who answers.\",\n );\n }\n return { kind: \"mandate\", mandateKey };\n }\n return { kind: \"agent\", agentId: trimmed };\n}\n\n/** The same target, as the two strings a screen and a test can compare. */\nexport function matrxChatTargetRef(target: MatrxChatTarget): string {\n return target.kind === \"agent\"\n ? target.agentId\n : `mandate:${target.mandateKey}`;\n}\n\n/**\n * THE LIVE CHOICE — what the composer's pickers write into, and what the next\n * send reads.\n *\n * It is a tiny subscribable rather than React state on purpose: the transport\n * is a PURE-layer object built once, outside React, and a transport that closed\n * over the target at construction would keep answering as the agent the reader\n * changed away from. The picker sets it, the transport reads it per turn, and\n * anything that wants to paint the current choice subscribes.\n */\nexport interface MatrxChatTargetRef {\n get(): MatrxChatTarget;\n getModel(): string | null;\n set(target: MatrxChatTarget): void;\n setModel(model: string | null): void;\n subscribe(listener: () => void): () => void;\n}\n\nexport function createMatrxChatTargetRef(\n initial: MatrxChatTarget,\n initialModel: string | null = null,\n): MatrxChatTargetRef {\n let target = initial;\n let model = initialModel;\n const listeners = new Set<() => void>();\n const wake = (): void => {\n for (const listener of listeners) listener();\n };\n return {\n get: () => target,\n getModel: () => model,\n set(next) {\n if (matrxChatTargetRef(next) === matrxChatTargetRef(target)) return;\n target = next;\n wake();\n },\n setModel(next) {\n const normalized = next === null || next.trim() === \"\" ? null : next;\n if (normalized === model) return;\n model = normalized;\n wake();\n },\n subscribe(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n\nexport const TARGET_IGNORED_ON_CONTINUE =\n \"This conversation keeps answering as the agent it was started with, so your new choice was not used for that message.\";\nexport const TARGET_IGNORED_ON_CONTINUE_REMEDY =\n \"Start a new conversation to talk to the one you just picked.\";\n\nexport interface MatrxChatTransportOptions {\n /**\n * The `MatrxTransport` port. Build it with\n * `createMatrxTransport({ baseUrl, credentials, organizationId })` from\n * `@ai-matrx/agents/matrx` — that is the production pipeline (retry,\n * connect timeout, the v2→v1 protocol fallback, fresh credentials per call,\n * the fail-closed org header). Hand-rolling a fetch here loses all of it.\n */\n transport: MatrxTransport;\n /**\n * Who answers. A FUNCTION is the live form: the pickers change the choice\n * between turns, and the transport resolves it at the moment of the send\n * rather than at construction (`createMatrxChatTargetRef().get`).\n */\n target: MatrxChatTarget | (() => MatrxChatTarget);\n /**\n * The model the reader picked, resolved per turn the same way. It rides\n * `config_overrides.model` (the server's `LLMParams`), and `null` means the\n * agent's own configured model is used — the transport never sends a null\n * override, because a blank override is a silent reconfiguration.\n */\n model?: string | null | (() => string | null) | undefined;\n /** REQUIRED by the server: it never manufactures an organization. */\n organizationId: string;\n /**\n * Attribution. The server REFUSES an unregistered pair with a 422 naming\n * the registry — that is deliberate, and a caller that invents a slug gets\n * a loud rejection rather than an unattributable row.\n */\n sourceApp: string;\n sourceFeature: string;\n /** \"user\" = a person pressed send; \"auto\" = client automation. */\n initiation?: \"user\" | \"auto\" | undefined;\n /**\n * Where this transport sends text. The kernel's confidential-routing rule\n * reads it, so answering \"local\" for a cloud endpoint defeats the rule.\n */\n locality?: \"local\" | \"cloud\" | undefined;\n /** Extra scope/context merged into every turn body. */\n extra?: Record<string, unknown> | undefined;\n /**\n * Where the transport says what it could not do. It is used for exactly one\n * sentence today: a CONTINUE cannot change who answers (the server resolves\n * the conversation's own agent), so a reader who picks a different agent\n * mid-conversation is TOLD their choice did not apply to that message, once\n * per conversation, with the remedy. Without it the picker would silently\n * lie about who just replied.\n */\n notifier?: ChatNotifierPort | undefined;\n}\n\nfunction mintConversationId(): string {\n const cryptoRef: { randomUUID?: () => string } | undefined = (\n globalThis as { crypto?: { randomUUID?: () => string } }\n ).crypto;\n if (typeof cryptoRef?.randomUUID === \"function\") return cryptoRef.randomUUID();\n throw new Error(\n \"@ai-matrx/chat/matrx needs crypto.randomUUID to mint a conversation id (the client mints it, by contract). \" +\n \"Run on Node 19+, a browser, Deno or Bun, or pass an explicit conversationId to the thread.\",\n );\n}\n\nexport function createMatrxChatTransport(\n options: MatrxChatTransportOptions,\n): ChatTransportPort {\n const initiation = options.initiation ?? \"user\";\n const resolveTarget = (): MatrxChatTarget =>\n typeof options.target === \"function\" ? options.target() : options.target;\n const resolveModel = (): string | null => {\n const model =\n typeof options.model === \"function\" ? options.model() : (options.model ?? null);\n return model === null || model.trim() === \"\" ? null : model;\n };\n // The target a conversation was STARTED with, so a later continue can tell\n // the reader their new choice did not reach this transcript. Announced once\n // per conversation: one sentence is information, one per message is noise.\n const startedAs = new Map<string, string>();\n const warned = new Set<string>();\n const scope = {\n organization_id: options.organizationId,\n source_app: options.sourceApp,\n source_feature: options.sourceFeature,\n initiation,\n ...options.extra,\n };\n\n return {\n locality: options.locality ?? \"cloud\",\n\n async start(request: ChatSendRequest): Promise<ChatTurnHandle> {\n const signalOption = { signal: request.signal };\n\n const model = resolveModel();\n // A null override is NEVER sent: `config_overrides: { model: null }` is a\n // blank reconfiguration of the agent, not \"leave it alone\".\n const overrides = model === null ? {} : { config_overrides: { model } };\n\n if (request.conversationId !== null && !request.isNewConversation) {\n const openedAs = startedAs.get(request.conversationId);\n const chosen = matrxChatTargetRef(resolveTarget());\n if (\n openedAs !== undefined &&\n openedAs !== chosen &&\n !warned.has(request.conversationId)\n ) {\n warned.add(request.conversationId);\n options.notifier?.notify({\n level: \"warning\",\n message: TARGET_IGNORED_ON_CONTINUE,\n remedy: TARGET_IGNORED_ON_CONTINUE_REMEDY,\n });\n }\n const handle = await continueAgentConversation(\n options.transport,\n request.conversationId,\n { ...scope, ...overrides, user_input: request.text },\n signalOption,\n );\n return toChatTurnHandle(handle);\n }\n\n const target = resolveTarget();\n const conversationId = request.conversationId ?? mintConversationId();\n startedAs.set(conversationId, matrxChatTargetRef(target));\n const body = {\n ...scope,\n ...overrides,\n // THE CONVERSATION-START TRIPLE, in full, every time.\n conversation_id: conversationId,\n is_new: true as const,\n store: request.store,\n user_input: request.text,\n };\n const handle =\n target.kind === \"agent\"\n ? await startAgentRun(\n options.transport,\n target.agentId,\n body as Parameters<typeof startAgentRun>[2],\n signalOption,\n )\n : await startMandateRun(\n options.transport,\n target.mandateKey,\n body as Parameters<typeof startMandateRun>[2],\n signalOption,\n );\n return toChatTurnHandle(handle, conversationId);\n },\n\n async cancel(requestId: string): Promise<void> {\n // `interrupt` is stop-and-fork: the tail after the last clean boundary\n // persists hidden, so the reader's next message replies to what they\n // actually saw. A plain cancel loses that.\n await cancelAgentRun(options.transport, requestId, { mode: \"interrupt\" });\n },\n };\n}\n\nfunction toChatTurnHandle(\n handle: {\n requestId: string | null;\n conversationId: string | null;\n events: AsyncIterable<{\n event: string;\n data: unknown;\n stream_id?: string | undefined;\n stream_seq?: number | undefined;\n }>;\n },\n mintedConversationId?: string,\n): ChatTurnHandle {\n return {\n requestId: handle.requestId,\n conversationId: handle.conversationId ?? mintedConversationId ?? null,\n frames: handle.events as AsyncIterable<ChatStreamFrame>,\n };\n}\n","/**\n * The message / part model — layer 1 of `@ai-matrx/chat`.\n *\n * Deliberately the industry-canonical shape (Vercel AI SDK `UIMessage.parts[]`\n * plus its tool-part state machine), because our own\n * `@ai-matrx/agents/projection/request` already produces its equivalent and a\n * customer's agent already knows it. Nothing here imports React, Redux, a\n * framework, or `window`.\n *\n * Every part type below was chosen against BYTES, not against a guess: the\n * live corpus in `fixtures/corpus/` carries text, reasoning (both wire\n * shapes), tool lifecycle, warnings and a fatal error, and the persisted\n * `chat.message.content` rows carry `text` | `thinking` | `tool_call` |\n * `tool_result`.\n */\n\n/** JSON on the wire. Public JSON boundaries are `unknown`-typed by standard. */\nexport type ChatJsonValue =\n | string\n | number\n | boolean\n | null\n | ChatJsonValue[]\n | { [key: string]: ChatJsonValue };\n\nexport type ChatRole = \"user\" | \"assistant\" | \"system\" | \"tool\";\n\n/**\n * THE TOOL STATE MACHINE (the champion's, verbatim). A tool part only ever\n * moves forward along these states; `advanceToolState` in `./tool-state`\n * refuses anything else out loud rather than silently overwriting.\n */\nexport type ChatToolState =\n | \"input-streaming\"\n | \"input-available\"\n | \"approval-requested\"\n | \"output-available\"\n | \"output-error\"\n | \"output-denied\";\n\n/** One tool progress beat — the `tool_event`/`tool_progress` frames. */\nexport interface ChatToolProgress {\n /** The tool name the SERVER used on this beat: it differs from the call's\n * tool name mid-run (`web` → `web_search` → `web_research` in the corpus),\n * and flattening them loses what actually ran. */\n toolName: string;\n message: string;\n percent: number | null;\n /** Server timestamp in seconds, verbatim; null when the frame carried none. */\n at: number | null;\n}\n\nexport interface ChatTextPart {\n readonly type: \"text\";\n text: string;\n}\n\nexport interface ChatReasoningPart {\n readonly type: \"reasoning\";\n text: string;\n state: \"streaming\" | \"done\";\n}\n\nexport interface ChatToolPart {\n readonly type: \"tool\";\n /** The provider/server call id — the ONLY identity a tool part has. */\n toolCallId: string;\n toolName: string;\n state: ChatToolState;\n input: unknown;\n output: unknown;\n /** Present only in `output-error`; null otherwise. */\n errorText: string | null;\n progress: ChatToolProgress[];\n /** True once the server emitted `tool_delegated` — the CLIENT must run it. */\n delegated: boolean;\n}\n\nexport interface ChatFilePart {\n readonly type: \"file\";\n /** A durable Matrx file id. A signed URL is a handoff, never an identity. */\n fileId: string;\n name: string | null;\n mediaType: string | null;\n}\n\nexport interface ChatSourcePart {\n readonly type: \"source\";\n sourceId: string;\n url: string | null;\n title: string | null;\n}\n\nexport interface ChatRenderBlockPart {\n readonly type: \"render-block\";\n blockId: string;\n blockIndex: number;\n /** The content-IR kind name. */\n kind: string;\n content: string | null;\n data: unknown;\n status: \"streaming\" | \"complete\" | \"error\";\n}\n\nexport interface ChatAskUserPart {\n readonly type: \"ask-user\";\n askId: string;\n prompt: string;\n fields: unknown;\n answered: boolean;\n}\n\n/**\n * A failure the READER must see. `userMessage` is what a screen shows;\n * `remedy` is what the reader can do about it. Law 4 — nothing fails\n * silently, and a stand-in announces itself WITH a remedy.\n */\nexport interface ChatErrorPart {\n readonly type: \"error\";\n errorType: string | null;\n code: string | null;\n message: string;\n userMessage: string;\n recoverable: boolean;\n remedy: string | null;\n}\n\n/**\n * A non-fatal server notice (`warning` / `info` frames). It is a PART, not a\n * side channel, because the corpus proves a run can lose half its tools and\n * still answer — and a reader who is not told has been lied to.\n */\nexport interface ChatNoticePart {\n readonly type: \"notice\";\n level: \"info\" | \"low\" | \"medium\" | \"high\";\n code: string | null;\n userMessage: string;\n remedy: string | null;\n}\n\nexport type ChatPart =\n | ChatTextPart\n | ChatReasoningPart\n | ChatToolPart\n | ChatFilePart\n | ChatSourcePart\n | ChatRenderBlockPart\n | ChatAskUserPart\n | ChatErrorPart\n | ChatNoticePart;\n\nexport type ChatMessageStatus =\n | \"pending\"\n | \"streaming\"\n | \"complete\"\n | \"error\"\n | \"cancelled\";\n\nexport interface ChatMessageMetadata {\n /** The server's `X-Request-ID` for the turn this message belongs to. */\n requestId: string | null;\n /** The server `chat.message` row id once `record_update` announced it. */\n serverMessageId: string | null;\n /** Model id/name the server reported, when it reported one. Never a UUID on\n * screen — `renderModelRef` resolves it (phase 2). */\n modelRef: string | null;\n createdAt: string;\n /** Free-form server metadata (finish_reason, usage, …), verbatim. */\n raw: Record<string, unknown> | null;\n}\n\nexport interface ChatMessage {\n id: string;\n role: ChatRole;\n parts: ChatPart[];\n status: ChatMessageStatus;\n metadata: ChatMessageMetadata;\n}\n\n/**\n * THE THREAD STATE MACHINE.\n * `idle → submitted → streaming → (awaiting-approval) → idle | error`.\n */\nexport type ChatThreadStatus =\n | \"idle\"\n | \"submitted\"\n | \"streaming\"\n | \"awaiting-approval\"\n | \"error\";\n\nexport interface ChatThreadSnapshot {\n conversationId: string | null;\n /** Ordered oldest-first. */\n messages: readonly ChatMessage[];\n status: ChatThreadStatus;\n /** The server request id of the CURRENT or last turn — the only id the\n * server accepts for cancel. */\n requestId: string | null;\n /** Last server `phase`, verbatim. */\n phase: string | null;\n /**\n * TRUE when nothing is persisting this thread. The screen must SAY so with\n * the remedy (`ephemeralReason`) — an unannounced ephemeral thread is the\n * silent failure Law 4 forbids.\n */\n ephemeral: boolean;\n ephemeralReason: string | null;\n /** Monotonic; bumps on every applied change so hosts can cheap-compare. */\n revision: number;\n /** Last fatal error for the thread, if any. */\n error: ChatErrorPart | null;\n}\n\nlet idCounter = 0;\n\n/**\n * A collision-resistant local id. `crypto.randomUUID` when the runtime has it\n * (browsers, node >= 19, Deno, Bun), and a counter+random fallback that\n * announces nothing because it is not a stand-in for a capability — it is the\n * same guarantee by other means.\n */\nexport function newLocalId(prefix: string): string {\n const cryptoRef: { randomUUID?: () => string } | undefined = (\n globalThis as { crypto?: { randomUUID?: () => string } }\n ).crypto;\n if (typeof cryptoRef?.randomUUID === \"function\") {\n return `${prefix}_${cryptoRef.randomUUID()}`;\n }\n idCounter += 1;\n return `${prefix}_${Date.now().toString(36)}_${idCounter.toString(36)}_${Math.random()\n .toString(36)\n .slice(2, 10)}`;\n}\n\nexport function createChatMessage(input: {\n id?: string | undefined;\n role: ChatRole;\n parts?: ChatPart[] | undefined;\n status?: ChatMessageStatus | undefined;\n metadata?: Partial<ChatMessageMetadata> | undefined;\n}): ChatMessage {\n return {\n id: input.id ?? newLocalId(\"msg\"),\n role: input.role,\n parts: input.parts ?? [],\n status: input.status ?? \"complete\",\n metadata: {\n requestId: input.metadata?.requestId ?? null,\n serverMessageId: input.metadata?.serverMessageId ?? null,\n modelRef: input.metadata?.modelRef ?? null,\n createdAt: input.metadata?.createdAt ?? new Date().toISOString(),\n raw: input.metadata?.raw ?? null,\n },\n };\n}\n\n/** Every `text` part concatenated — what a copy button copies. */\nexport function messageText(message: ChatMessage): string {\n let out = \"\";\n for (const part of message.parts) if (part.type === \"text\") out += part.text;\n return out;\n}\n\n/** Every `reasoning` part concatenated. */\nexport function messageReasoning(message: ChatMessage): string {\n let out = \"\";\n for (const part of message.parts) if (part.type === \"reasoning\") out += part.text;\n return out;\n}\n\n/** Tool parts in first-seen order. */\nexport function messageTools(message: ChatMessage): ChatToolPart[] {\n return message.parts.filter((p): p is ChatToolPart => p.type === \"tool\");\n}\n","/**\n * THE `chat.*` PERSISTENCE BINDING — conversation history and transcript\n * loading, read DIRECTLY from Postgres under RLS (clients never route ordinary\n * reads through the Python server).\n *\n * Verified against the live schema on 2026-09-17:\n * `chat.conversation(id, title, created_at, updated_at, deleted_at,\n * message_count, source_app, source_feature, is_ephemeral,\n * metadata, organization_id, …)`\n * `chat.message(id, conversation_id, role, position, status, content jsonb,\n * metadata, created_at, is_visible_to_user, deleted_at, …)`\n *\n * `chat.message.content` is an ARRAY OF PARTS, and the persisted part\n * vocabulary — read off real rows, not guessed — is `text` | `thinking` |\n * `tool_call` | `tool_result`. `mapPersistedContent` is the ONE place that\n * vocabulary is translated into this package's part model; a second translator\n * anywhere is the defect this binding exists to prevent.\n *\n * 🚨 ARCHIVE: `chat.conversation` has no boolean archive column. Archive state\n * lives in `metadata.archived`, which is what the platform already writes, and\n * THE ARCHIVED-ITEMS LAW is honoured in the reader: the default list hides\n * archived rows and REPORTS how many it hid, so the footer can name them.\n */\n\nimport type {\n ChatConversationListPage,\n ChatConversationListQuery,\n ChatConversationSummary,\n ChatPersistencePort,\n} from \"../ports\";\nimport {\n createChatMessage,\n type ChatMessage,\n type ChatPart,\n type ChatRole,\n type ChatToolPart,\n} from \"../model\";\nimport {\n CHAT_SCHEMA,\n CHAT_TABLES,\n type ChatDataSource,\n type PgError,\n} from \"./data-source\";\n\nconst CONVERSATION_COLUMNS =\n \"id,title,created_at,updated_at,message_count,source_app,source_feature,metadata\";\n/** Favorites are PER PERSON: the caller's `platform.user_entity_state` row (RLS: own rows only),\n * never a column on the conversation (dropped by aidream migration 1377). */\nconst FAVORITES_SCHEMA = \"platform\";\nconst FAVORITES_TABLE = \"user_entity_state\";\nconst MESSAGE_COLUMNS =\n \"id,role,position,status,content,metadata,created_at,is_visible_to_user\";\n\nconst DEFAULT_LIMIT = 50;\n\nexport interface MatrxChatPersistenceOptions {\n dataSource: ChatDataSource;\n /**\n * The host's ACTIVE organization. It NO LONGER narrows any read: a person's\n * history spans every organization they can access, and access is decided by\n * RLS (active-org-is-never-a-list-filter.md). Kept optional so existing hosts\n * compile; a page that wants to narrow passes `organizationFilter` on the\n * list query instead.\n */\n organizationId?: string | undefined;\n /** Diagnostics for a failed read; absent ⇒ the error is thrown to the caller. */\n onError?: ((error: PgError, operation: string) => void) | undefined;\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : {};\n}\n\nfunction asString(value: unknown): string | null {\n return typeof value === \"string\" ? value : null;\n}\n\n/** Whether a persisted conversation row is archived. */\nexport function isArchivedRow(row: Record<string, unknown>): boolean {\n const metadata = asRecord(row.metadata);\n return metadata.archived === true;\n}\n\nexport function toConversationSummary(\n row: Record<string, unknown>,\n favorites: ReadonlySet<string> = new Set(),\n): ChatConversationSummary {\n const createdAt = asString(row.created_at) ?? new Date(0).toISOString();\n return {\n id: asString(row.id) ?? \"\",\n title: asString(row.title),\n createdAt,\n updatedAt: asString(row.updated_at) ?? createdAt,\n messageCount: typeof row.message_count === \"number\" ? row.message_count : 0,\n archived: isArchivedRow(row),\n isFavorite: favorites.has(asString(row.id) ?? \"\"),\n sourceApp: asString(row.source_app),\n sourceFeature: asString(row.source_feature),\n };\n}\n\n/**\n * Translate ONE persisted `chat.message.content` array into parts.\n *\n * Unknown persisted types are NOT dropped: they become a `notice` part naming\n * the type, because a transcript that silently loses a part is a screen that\n * lies about what was said.\n */\nexport function mapPersistedContent(content: unknown): ChatPart[] {\n if (!Array.isArray(content)) return [];\n const parts: ChatPart[] = [];\n const toolsByCallId = new Map<string, ChatToolPart>();\n\n for (const entry of content) {\n const item = asRecord(entry);\n const type = asString(item.type);\n switch (type) {\n case \"text\": {\n const text = asString(item.text) ?? \"\";\n if (text) parts.push({ type: \"text\", text });\n break;\n }\n case \"thinking\":\n case \"reasoning\": {\n const text = asString(item.text) ?? \"\";\n // A signature-only thinking block (no text) is a provider round-trip\n // artefact, not something a reader ever sees.\n if (text) parts.push({ type: \"reasoning\", text, state: \"done\" });\n break;\n }\n case \"tool_call\": {\n const callId = asString(item.call_id) ?? asString(item.id);\n const toolName = asString(item.name) ?? \"tool\";\n if (callId === null) break;\n const part: ChatToolPart = {\n type: \"tool\",\n toolCallId: callId,\n toolName,\n state: \"input-available\",\n input: item.arguments ?? item.input,\n output: undefined,\n errorText: null,\n progress: [],\n delegated: false,\n };\n toolsByCallId.set(callId, part);\n parts.push(part);\n break;\n }\n case \"tool_result\": {\n const callId =\n asString(item.call_id) ?? asString(item.tool_use_id) ?? asString(item.id);\n if (callId === null) break;\n const isError = item.is_error === true;\n const existing = toolsByCallId.get(callId);\n if (existing) {\n existing.state = isError ? \"output-error\" : \"output-available\";\n existing.output = item.output ?? item.content ?? item.result;\n existing.errorText = isError\n ? (asString(item.error) ?? `The ${existing.toolName} tool failed.`)\n : null;\n break;\n }\n // A result whose call landed in an EARLIER message row (the common\n // shape: `assistant` holds the call, `tool` holds the result).\n parts.push({\n type: \"tool\",\n toolCallId: callId,\n toolName: asString(item.name) ?? \"tool\",\n state: isError ? \"output-error\" : \"output-available\",\n input: undefined,\n output: item.output ?? item.content ?? item.result,\n errorText: isError ? (asString(item.error) ?? \"The tool failed.\") : null,\n progress: [],\n delegated: false,\n });\n break;\n }\n default: {\n parts.push({\n type: \"notice\",\n level: \"low\",\n code: \"unrenderable_persisted_part\",\n userMessage: `Part of this message could not be shown (stored as \"${type ?? \"unknown\"}\").`,\n remedy: null,\n });\n }\n }\n }\n return parts;\n}\n\n/**\n * Fold the persisted rows into the thread's messages.\n *\n * A `tool` row carries only results for a call made in the PREVIOUS assistant\n * row; merging it into that row is what makes one tool card instead of two\n * half-cards, and it is exactly the logic every host re-derived.\n */\nexport function mapPersistedMessages(\n rows: readonly Record<string, unknown>[],\n): ChatMessage[] {\n const messages: ChatMessage[] = [];\n for (const row of rows) {\n if (row.is_visible_to_user === false) continue;\n const role = (asString(row.role) ?? \"assistant\") as ChatRole;\n const parts = mapPersistedContent(row.content);\n\n if (role === \"tool\") {\n const previous = messages[messages.length - 1];\n if (previous && previous.role === \"assistant\") {\n for (const part of parts) {\n if (part.type !== \"tool\") {\n previous.parts.push(part);\n continue;\n }\n const match = previous.parts.find(\n (candidate): candidate is ChatToolPart =>\n candidate.type === \"tool\" && candidate.toolCallId === part.toolCallId,\n );\n if (match) {\n match.state = part.state;\n match.output = part.output;\n match.errorText = part.errorText;\n } else {\n previous.parts.push(part);\n }\n }\n continue;\n }\n }\n\n const status = asString(row.status);\n messages.push(\n createChatMessage({\n id: asString(row.id) ?? undefined,\n role,\n parts,\n status: status === \"error\" ? \"error\" : \"complete\",\n metadata: {\n serverMessageId: asString(row.id),\n createdAt: asString(row.created_at) ?? new Date(0).toISOString(),\n raw: asRecord(row.metadata),\n },\n }),\n );\n }\n return messages;\n}\n\nexport function createMatrxChatPersistence(\n options: MatrxChatPersistenceOptions,\n): ChatPersistencePort {\n const table = (name: string) =>\n options.dataSource.schema(CHAT_SCHEMA).from(name);\n\n const fail = (error: PgError, operation: string): never => {\n options.onError?.(error, operation);\n throw new Error(`[ai-matrx/chat] ${operation} failed: ${error.message}`);\n };\n\n /** The caller's favorites among these conversations. A failed read is reported and the page is\n * still returned (with no stars) — a list never disappears because the star read failed. */\n const readFavorites = async (ids: string[]): Promise<Set<string>> => {\n if (ids.length === 0) return new Set();\n const { data, error } = await options.dataSource\n .schema(FAVORITES_SCHEMA)\n .from(FAVORITES_TABLE)\n .select(\"entity_id\")\n .eq(\"entity_type\", \"conversation\")\n .eq(\"is_favorite\", true)\n .in(\"entity_id\", ids);\n if (error) {\n options.onError?.(error, \"listConversations.favorites\");\n return new Set();\n }\n return new Set(((data ?? []) as Record<string, unknown>[]).map((r) => asString(r.entity_id) ?? \"\"));\n };\n\n return {\n async loadThread(conversationId: string): Promise<ChatMessage[]> {\n const { data, error } = await table(CHAT_TABLES.message)\n .select(MESSAGE_COLUMNS)\n .eq(\"conversation_id\", conversationId)\n .is(\"deleted_at\", null)\n .order(\"position\", { ascending: true });\n if (error) fail(error, \"loadThread\");\n return mapPersistedMessages((data ?? []) as Record<string, unknown>[]);\n },\n\n async listConversations(\n query: ChatConversationListQuery,\n ): Promise<ChatConversationListPage> {\n const limit = query.limit ?? DEFAULT_LIMIT;\n let builder = table(CHAT_TABLES.conversation)\n .select(CONVERSATION_COLUMNS)\n .is(\"deleted_at\", null)\n .order(\"updated_at\", { ascending: false })\n // Over-read by one so the caller gets an honest `nextBefore` instead\n // of a \"there might be more\" guess, and by the archive headroom so\n // hiding archived rows does not silently shorten the page.\n .limit(limit * 2 + 1);\n if (query.before !== undefined) builder = builder.lt(\"updated_at\", query.before);\n // The page's OWN organization filter — absent/null = all organizations.\n if (query.organizationFilter) {\n builder = builder.eq(\"organization_id\", query.organizationFilter);\n }\n if (query.sourceApp !== undefined) {\n builder = builder.eq(\"source_app\", query.sourceApp);\n }\n if (query.sourceFeature !== undefined) {\n builder = builder.eq(\"source_feature\", query.sourceFeature);\n }\n\n const { data, error } = await builder;\n if (error) fail(error, \"listConversations\");\n\n const rows = (data ?? []) as Record<string, unknown>[];\n const favorites = await readFavorites(rows.map((r) => asString(r.id)).filter((id): id is string => !!id));\n const includeArchived = query.includeArchived === true;\n let archivedHidden = 0;\n const kept: ChatConversationSummary[] = [];\n let nextBefore: string | null = null;\n\n for (const row of rows) {\n const summary = toConversationSummary(row, favorites);\n if (!includeArchived && summary.archived) {\n archivedHidden += 1;\n continue;\n }\n if (kept.length === limit) {\n nextBefore = summary.updatedAt;\n break;\n }\n kept.push(summary);\n }\n\n return { conversations: kept, archivedHidden, nextBefore };\n },\n\n async setArchived(conversationId: string, archived: boolean): Promise<void> {\n // `metadata` is jsonb and carries more than this flag, so the write is\n // READ-MERGE-WRITE and never a blind overwrite — a `{archived:true}`\n // update would delete every other key in the column.\n const read = await table(CHAT_TABLES.conversation)\n .select(\"id,metadata\")\n .eq(\"id\", conversationId)\n .limit(1);\n if (read.error) fail(read.error, \"setArchived\");\n const row = ((read.data ?? []) as Record<string, unknown>[])[0];\n if (row === undefined) {\n throw new Error(\n `[ai-matrx/chat] Conversation ${conversationId} could not be read, so its archive state was not changed. ` +\n \"It may have been deleted, or this account may not have access to it.\",\n );\n }\n const merged = { ...asRecord(row.metadata), archived };\n const { error } = await table(CHAT_TABLES.conversation)\n .update({ metadata: merged })\n .eq(\"id\", conversationId);\n if (error) fail(error, \"setArchived\");\n },\n\n async rename(conversationId: string, title: string): Promise<void> {\n const { error } = await table(CHAT_TABLES.conversation)\n .update({ title })\n .eq(\"id\", conversationId);\n if (error) fail(error, \"rename\");\n },\n };\n}\n","/**\n * THE TOOL-CALL STATE MACHINE.\n *\n * `input-streaming → input-available → approval-requested →\n * output-available | output-error | output-denied`\n *\n * It lives in the kernel, not in a renderer, for the reason C22 names: this is\n * exactly the logic four repositories re-derived four different ways. A tool\n * card that shows \"running\" after the run failed, or that re-opens a settled\n * call because a late duplicate frame arrived, is the class this file closes.\n *\n * The machine is MONOTONIC: the three output states are terminal, and a\n * transition that would move backwards is REFUSED and reported — never applied\n * silently (Law 4).\n */\n\nimport type { ChatMessage, ChatToolPart, ChatToolState } from \"./model\";\n\n/** Rank: a transition is legal only when it strictly increases, or is a\n * same-state refresh of a non-terminal state (progress beats). */\nconst RANK: Record<ChatToolState, number> = {\n \"input-streaming\": 0,\n \"input-available\": 1,\n \"approval-requested\": 2,\n \"output-available\": 3,\n \"output-error\": 3,\n \"output-denied\": 3,\n};\n\nconst TERMINAL: ReadonlySet<ChatToolState> = new Set<ChatToolState>([\n \"output-available\",\n \"output-error\",\n \"output-denied\",\n]);\n\nexport function isTerminalToolState(state: ChatToolState): boolean {\n return TERMINAL.has(state);\n}\n\nexport interface ToolStateTransition {\n /** The state to store. Equal to `from` when the transition was refused. */\n readonly state: ChatToolState;\n readonly applied: boolean;\n /** Present only when `applied` is false — say WHY, out loud. */\n readonly refusal: string | null;\n}\n\n/**\n * Advance a tool part. Returns the state to keep plus, when the move was\n * refused, a sentence a diagnostic sink can print verbatim.\n */\nexport function advanceToolState(\n from: ChatToolState,\n to: ChatToolState,\n): ToolStateTransition {\n if (from === to) {\n if (TERMINAL.has(from)) {\n return {\n state: from,\n applied: false,\n refusal: `tool state '${from}' is terminal and was re-announced; the duplicate frame was ignored`,\n };\n }\n return { state: to, applied: true, refusal: null };\n }\n if (TERMINAL.has(from)) {\n return {\n state: from,\n applied: false,\n refusal: `tool state '${from}' is terminal; refusing to move it to '${to}'`,\n };\n }\n const fromRank = RANK[from];\n const toRank = RANK[to];\n if (toRank < fromRank) {\n return {\n state: from,\n applied: false,\n refusal: `refusing to move a tool call backwards from '${from}' to '${to}'`,\n };\n }\n return { state: to, applied: true, refusal: null };\n}\n\n/**\n * Map ONE aidream tool lifecycle name onto the machine.\n *\n * Server truth, read off the live corpus and\n * `@ai-matrx/agents/projection/request`: the wire emits `tool_started`,\n * `tool_progress`, `tool_step`, `tool_result_preview`, `tool_completed`,\n * `tool_error`, `tool_delegated` — either as a top-level `event` or nested in\n * a `tool_event` frame's `data.event`.\n *\n * `null` means \"this frame carries no state change\" (a progress beat), which\n * is different from an unknown name — an unknown name is returned as\n * `\"unknown\"` so the caller can report it instead of dropping it.\n */\nexport function toolLifecycleToState(\n lifecycle: string,\n): ChatToolState | null | \"unknown\" {\n switch (lifecycle) {\n case \"tool_started\":\n return \"input-available\";\n case \"tool_progress\":\n case \"tool_step\":\n case \"tool_result_preview\":\n return null;\n case \"tool_delegated\":\n // The server handed the call to the CLIENT: the input is final and\n // nothing has run yet. It is NOT an approval request (the human is not\n // being asked) and it is NOT an output.\n return \"input-available\";\n case \"tool_approval_requested\":\n return \"approval-requested\";\n case \"tool_completed\":\n return \"output-available\";\n case \"tool_error\":\n return \"output-error\";\n case \"tool_denied\":\n return \"output-denied\";\n default:\n return \"unknown\";\n }\n}\n\n/** Every lifecycle name this machine understands — the guard's census. */\nexport const KNOWN_TOOL_LIFECYCLES: readonly string[] = [\n \"tool_started\",\n \"tool_progress\",\n \"tool_step\",\n \"tool_result_preview\",\n \"tool_delegated\",\n \"tool_approval_requested\",\n \"tool_completed\",\n \"tool_error\",\n \"tool_denied\",\n];\n\n\n/**\n * THE CLIENT'S OWN ANSWER.\n *\n * When the CLIENT answers a delegated tool (`tool_delegated` → the host runs it\n * → posts the result) the server learns the call is done from that post — but\n * for a delegated call it sends NO completion frame, because it hard-suspended\n * and closed the stream. A store that only moves on frames therefore leaves the\n * card on `input-available` (\"Working…\") for as long as the conversation stays\n * open. This is the defect all four hand-built chats had (found 2026-09-30 in\n * matrx-frontend, matrx-extend and matrx-local): the answerer is the first to\n * know, so it tells ITS OWN store, through this one door, in the same tick.\n */\nexport interface ChatToolAnswer {\n toolCallId: string;\n /** The result, on success. */\n output?: unknown;\n /** Set when the tool failed — the card goes to `output-error`. */\n errorText?: string | null;\n /** Set when the reader refused it — the card goes to `output-denied`. */\n denied?: boolean;\n}\n\nexport interface ChatToolSettlement {\n /** The transcript to keep — the SAME array when nothing changed. */\n readonly messages: readonly ChatMessage[];\n /** The message whose part changed, for the per-message wake. */\n readonly messageId: string | null;\n readonly applied: boolean;\n /** Present when `applied` is false — say WHY, out loud. */\n readonly refusal: string | null;\n}\n\n/** Pure: apply a client answer to the transcript, monotonically. */\nexport function settleToolAnswer(\n messages: readonly ChatMessage[],\n answer: ChatToolAnswer,\n): ChatToolSettlement {\n for (let m = messages.length - 1; m >= 0; m -= 1) {\n const message = messages[m];\n if (!message) continue;\n const index = message.parts.findIndex(\n (part) => part.type === \"tool\" && part.toolCallId === answer.toolCallId,\n );\n if (index === -1) continue;\n const part = message.parts[index] as ChatToolPart;\n const next: ChatToolState = answer.denied\n ? \"output-denied\"\n : answer.errorText != null\n ? \"output-error\"\n : \"output-available\";\n const transition = advanceToolState(part.state, next);\n if (!transition.applied) {\n return {\n messages,\n messageId: message.id,\n applied: false,\n refusal: transition.refusal,\n };\n }\n const settled: ChatToolPart = {\n ...part,\n state: transition.state,\n output: answer.output !== undefined ? answer.output : part.output,\n errorText: next === \"output-error\" ? (answer.errorText ?? null) : null,\n };\n const parts = message.parts.slice();\n parts[index] = settled;\n const copy = messages.slice();\n copy[m] = { ...message, parts };\n return { messages: copy, messageId: message.id, applied: true, refusal: null };\n }\n return {\n messages,\n messageId: null,\n applied: false,\n refusal: `no tool call ${answer.toolCallId} is in this transcript, so there was nothing to settle`,\n };\n}\n","/**\n * THE REDUCER — one live stream frame becomes message parts.\n *\n * Every branch below exists because the LIVE corpus in `fixtures/corpus/`\n * contains that frame. Nothing here was guessed from a client: the wire\n * vocabulary was read off bytes recorded from `server.app.matrxserver.com` on\n * 2026-09-17 and cross-checked against\n * `@ai-matrx/agents/projection/request`.\n *\n * The projector is deliberately MUTABLE. A streaming turn applies one frame\n * per token; rebuilding an immutable tree per token is the classic reason a\n * chat janks at 2,000 tokens. Immutability is provided where React needs it —\n * `snapshot()` hands back a fresh `ChatMessage` with a fresh `parts` array —\n * and the store coalesces those snapshots per animation frame.\n */\n\nimport {\n advanceToolState,\n toolLifecycleToState,\n} from \"./tool-state\";\nimport type { ChatFeatures } from \"./config\";\nimport {\n createChatMessage,\n type ChatErrorPart,\n type ChatMessage,\n type ChatNoticePart,\n type ChatPart,\n type ChatRenderBlockPart,\n type ChatReasoningPart,\n type ChatTextPart,\n type ChatToolPart,\n} from \"./model\";\nimport type { ChatStreamFrame } from \"./ports\";\n\n/** The reasoning sentinel the Google path wraps thinking text in. */\nexport const REASONING_OPEN = \"<reasoning>\";\nexport const REASONING_CLOSE = \"</reasoning>\";\n\nexport type ChatTurnOutcome =\n | \"streaming\"\n | \"awaiting-tools\"\n | \"complete\"\n | \"error\"\n | \"cancelled\";\n\nexport interface ChatTurnRefusal {\n code: string;\n message: string;\n detail?: unknown;\n}\n\nexport interface ChatTurnProjectorOptions {\n features: ChatFeatures;\n /** The message id for the assistant turn (kept stable across the stream). */\n messageId?: string | undefined;\n /** Every refusal / unknown frame — reported, never dropped (Law 4). */\n onRefusal?: ((refusal: ChatTurnRefusal) => void) | undefined;\n}\n\nexport interface ChatTurnProjector {\n apply(frame: ChatStreamFrame): void;\n /** A fresh, structurally-shared assistant message. */\n snapshot(): ChatMessage;\n readonly state: ChatTurnState;\n}\n\nexport interface ChatTurnState {\n outcome: ChatTurnOutcome;\n conversationId: string | null;\n requestId: string | null;\n phase: string | null;\n /** The `chat.message` row ids the server reserved, by role. */\n serverMessageIds: { user: string | null; assistant: string | null };\n completion: Record<string, unknown> | null;\n error: ChatErrorPart | null;\n /** Bumps on every applied frame — the store's cheap dirty check. */\n revision: number;\n lastTransportSeq: number;\n transportStreamId: string | null;\n /** Frames the projector did not understand; never silently zero. */\n unknownEvents: string[];\n}\n\nconst asRecord = (value: unknown): Record<string, unknown> =>\n value !== null && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : {};\n\nconst asString = (value: unknown): string | null =>\n typeof value === \"string\" ? value : null;\n\nconst asNumber = (value: unknown): number | null =>\n typeof value === \"number\" && Number.isFinite(value) ? value : null;\n\n/** Events the projector deliberately ignores — real frames with no part. */\nconst IGNORED_EVENTS: ReadonlySet<string> = new Set([\n \"heartbeat\",\n \"context_state\",\n \"context_trimmed\",\n \"record_update\",\n \"ping\",\n \"debug\",\n // `init`/`completion` pairs exist for five operations; only the\n // `user_request` completion is terminal, and `init` carries no part.\n \"init\",\n]);\n\nexport function createChatTurnProjector(\n options: ChatTurnProjectorOptions,\n): ChatTurnProjector {\n const features = options.features;\n const messageId = options.messageId ?? createChatMessage({ role: \"assistant\" }).id;\n const parts: ChatPart[] = [];\n const toolsByCallId = new Map<string, ChatToolPart>();\n const blocksById = new Map<string, ChatRenderBlockPart>();\n\n /** True between `reasoning {started}` and `reasoning {stopped}`. */\n let reasoningActive = false;\n /** True while inside an unterminated `<reasoning>` span in chunk text. */\n let insideSentinel = false;\n\n const state: ChatTurnState = {\n outcome: \"streaming\",\n conversationId: null,\n requestId: null,\n phase: null,\n serverMessageIds: { user: null, assistant: null },\n completion: null,\n error: null,\n revision: 0,\n lastTransportSeq: 0,\n transportStreamId: null,\n unknownEvents: [],\n };\n\n const refuse = (refusal: ChatTurnRefusal): void => {\n options.onRefusal?.(refusal);\n };\n\n const lastPart = (): ChatPart | undefined => parts[parts.length - 1];\n\n const appendText = (text: string): void => {\n const tail = lastPart();\n if (tail && tail.type === \"text\") {\n tail.text += text;\n return;\n }\n const part: ChatTextPart = { type: \"text\", text };\n parts.push(part);\n };\n\n const appendReasoning = (text: string): void => {\n const tail = lastPart();\n if (tail && tail.type === \"reasoning\" && tail.state === \"streaming\") {\n tail.text += text;\n return;\n }\n const part: ChatReasoningPart = { type: \"reasoning\", text, state: \"streaming\" };\n parts.push(part);\n };\n\n const closeReasoning = (): void => {\n for (let i = parts.length - 1; i >= 0; i -= 1) {\n const part = parts[i];\n if (part && part.type === \"reasoning\" && part.state === \"streaming\") {\n part.state = \"done\";\n return;\n }\n }\n };\n\n /**\n * Route ONE chunk of answer text.\n *\n * With `reasoningSentinel: \"inline\"` the text goes straight to the answer,\n * byte-for-byte identical to the shipped projection's `answer`. With\n * `\"split\"` (the platform default) the `<reasoning>…</reasoning>` span\n * becomes a reasoning part, so a reader never sees the raw sentinel.\n */\n const routeChunk = (text: string): void => {\n if (features.reasoningSentinel === \"inline\") {\n appendText(text);\n return;\n }\n let rest = text;\n while (rest.length > 0) {\n if (insideSentinel) {\n const close = rest.indexOf(REASONING_CLOSE);\n if (close === -1) {\n appendReasoning(rest);\n return;\n }\n appendReasoning(rest.slice(0, close));\n closeReasoning();\n insideSentinel = false;\n rest = rest.slice(close + REASONING_CLOSE.length);\n continue;\n }\n const open = rest.indexOf(REASONING_OPEN);\n if (open === -1) {\n appendText(rest);\n return;\n }\n if (open > 0) appendText(rest.slice(0, open));\n insideSentinel = true;\n rest = rest.slice(open + REASONING_OPEN.length);\n }\n };\n\n const toolFor = (callId: string, toolName: string): ChatToolPart => {\n const existing = toolsByCallId.get(callId);\n if (existing) return existing;\n const part: ChatToolPart = {\n type: \"tool\",\n toolCallId: callId,\n toolName,\n state: \"input-streaming\",\n input: undefined,\n output: undefined,\n errorText: null,\n progress: [],\n delegated: false,\n };\n toolsByCallId.set(callId, part);\n parts.push(part);\n return part;\n };\n\n const applyToolLifecycle = (\n lifecycle: string,\n data: Record<string, unknown>,\n ): void => {\n const callId = asString(data.call_id);\n const toolName = asString(data.tool_name);\n if (callId === null || toolName === null) {\n refuse({\n code: \"tool_frame_without_identity\",\n message: `a '${lifecycle}' frame arrived without call_id/tool_name and was ignored`,\n detail: data,\n });\n return;\n }\n const part = toolFor(callId, toolName);\n const payload = asRecord(data.data);\n const message = asString(data.message) ?? \"\";\n\n const next = toolLifecycleToState(lifecycle);\n if (next === \"unknown\") {\n state.unknownEvents.push(lifecycle);\n refuse({\n code: \"unknown_tool_lifecycle\",\n message: `tool lifecycle '${lifecycle}' is not in this package's state machine; the frame was recorded but not applied`,\n detail: data,\n });\n return;\n }\n\n if (lifecycle === \"tool_started\" && \"arguments\" in payload) {\n part.input = payload.arguments;\n }\n if (lifecycle === \"tool_delegated\") {\n part.delegated = true;\n if (\"arguments\" in payload) part.input = payload.arguments;\n }\n if (lifecycle === \"tool_completed\" && \"result\" in payload) {\n part.output = payload.result;\n }\n if (lifecycle === \"tool_error\") {\n part.errorText =\n asString(payload.error) ?? (message || `The ${toolName} tool failed.`);\n }\n\n if (next === null) {\n part.progress.push({\n toolName,\n message,\n percent: asNumber(payload.percent),\n at: asNumber(data.timestamp),\n });\n return;\n }\n\n const transition = advanceToolState(part.state, next);\n if (!transition.applied) {\n refuse({\n code: \"tool_state_transition_refused\",\n message: `${transition.refusal ?? \"refused\"} (call ${callId}, tool ${toolName})`,\n detail: data,\n });\n return;\n }\n part.state = transition.state;\n if (next === \"input-available\" && part.delegated) {\n state.outcome = \"awaiting-tools\";\n } else if (\n state.outcome === \"awaiting-tools\" &&\n (next === \"output-available\" || next === \"output-error\")\n ) {\n state.outcome = \"streaming\";\n }\n };\n\n const pushNotice = (\n level: ChatNoticePart[\"level\"],\n data: Record<string, unknown>,\n ): void => {\n const userMessage = asString(data.user_message) ?? \"\";\n if (!userMessage) return;\n const part: ChatNoticePart = {\n type: \"notice\",\n level,\n code: asString(data.code),\n userMessage,\n remedy: asString(asRecord(data.metadata).remedy),\n };\n parts.push(part);\n };\n\n const apply = (frame: ChatStreamFrame): void => {\n const streamSeq = asNumber(frame.stream_seq);\n const streamId = asString(frame.stream_id);\n const sameSegment = streamId === null || streamId === state.transportStreamId;\n if (sameSegment && streamSeq !== null && streamSeq <= state.lastTransportSeq) {\n // A replayed frame after a reconnect. Dropping it is the whole point of\n // the sequence: applying it doubles text.\n return;\n }\n state.lastTransportSeq =\n streamSeq === null\n ? state.lastTransportSeq\n : sameSegment\n ? Math.max(state.lastTransportSeq, streamSeq)\n : streamSeq;\n if (streamId !== null) state.transportStreamId = streamId;\n state.revision += 1;\n\n const data = asRecord(frame.data);\n\n switch (frame.event) {\n case \"chunk\": {\n const text = asString(data.text);\n if (text !== null) routeChunk(text);\n return;\n }\n case \"reasoning_chunk\": {\n const text = asString(data.text);\n if (text !== null) {\n reasoningActive = true;\n appendReasoning(text);\n }\n return;\n }\n case \"reasoning\": {\n const started = data.state === \"started\";\n reasoningActive = started;\n if (!started) closeReasoning();\n return;\n }\n case \"phase\": {\n const phase = asString(data.phase);\n if (phase !== null) state.phase = phase;\n return;\n }\n case \"data\": {\n if (data.type === \"conversation_id\") {\n const conversationId = asString(data.conversation_id);\n if (conversationId !== null) state.conversationId = conversationId;\n }\n return;\n }\n case \"record_reserved\": {\n // The server names the `chat.message` rows it reserved and, in\n // `metadata.role`, which side each one is. This is how an optimistic\n // user bubble learns its durable row id without a re-read.\n if (asString(data.table) !== \"message\") return;\n const recordId = asString(data.record_id);\n const role = asString(asRecord(data.metadata).role);\n if (recordId === null) return;\n if (role === \"user\") state.serverMessageIds.user = recordId;\n else if (role === \"assistant\") state.serverMessageIds.assistant = recordId;\n return;\n }\n case \"tool_event\": {\n const lifecycle = asString(data.event);\n if (lifecycle === null) {\n refuse({\n code: \"tool_event_without_lifecycle\",\n message: \"a tool_event frame carried no data.event and was ignored\",\n detail: data,\n });\n return;\n }\n applyToolLifecycle(lifecycle, data);\n return;\n }\n case \"tool_started\":\n case \"tool_progress\":\n case \"tool_step\":\n case \"tool_result_preview\":\n case \"tool_completed\":\n case \"tool_error\":\n case \"tool_delegated\": {\n applyToolLifecycle(frame.event, data);\n return;\n }\n case \"render_block\": {\n const blockId = asString(data.blockId);\n const blockIndex = asNumber(data.blockIndex);\n const kind = asString(data.type);\n if (blockId === null || blockIndex === null || kind === null) {\n refuse({\n code: \"render_block_without_identity\",\n message: \"a render_block frame lacked blockId/blockIndex/type and was ignored\",\n detail: data,\n });\n return;\n }\n const status =\n data.status === \"complete\" || data.status === \"error\"\n ? (data.status as \"complete\" | \"error\")\n : \"streaming\";\n const existing = blocksById.get(blockId);\n if (existing) {\n existing.status = status;\n existing.content = asString(data.content);\n existing.data = data.data;\n return;\n }\n const part: ChatRenderBlockPart = {\n type: \"render-block\",\n blockId,\n blockIndex,\n kind,\n content: asString(data.content),\n data: data.data,\n status,\n };\n blocksById.set(blockId, part);\n parts.push(part);\n return;\n }\n case \"warning\": {\n const level = asString(data.level);\n pushNotice(\n level === \"high\" || level === \"medium\" || level === \"low\" ? level : \"low\",\n data,\n );\n return;\n }\n case \"info\": {\n // `initial_message` is chrome (\"Initializing Matrx Chat…\"), not news.\n if (asString(data.code) === \"initial_message\") return;\n pushNotice(\"info\", data);\n return;\n }\n case \"error\": {\n const message =\n asString(data.message) ?? asString(data.user_message) ?? \"The run failed.\";\n const part: ChatErrorPart = {\n type: \"error\",\n errorType: asString(data.error_type),\n code: asString(data.code),\n message,\n userMessage: asString(data.user_message) ?? message,\n recoverable: data.recoverable === true,\n remedy: asString(asRecord(data.details).remedy),\n };\n parts.push(part);\n state.error = part;\n state.outcome = \"error\";\n return;\n }\n case \"completion\": {\n if (asString(data.operation) !== \"user_request\") return;\n state.completion = data;\n const status = asString(data.status);\n if (status === \"failed\") {\n state.outcome = \"error\";\n if (state.error === null) {\n const result = asRecord(data.result);\n const message =\n asString(result.error) ??\n asString(result.user_message) ??\n \"The run failed.\";\n const part: ChatErrorPart = {\n type: \"error\",\n errorType: \"run_failed\",\n code: null,\n message,\n userMessage: message,\n recoverable: true,\n remedy: null,\n };\n parts.push(part);\n state.error = part;\n }\n } else if (status === \"cancelled\") {\n state.outcome = \"cancelled\";\n } else if (state.outcome !== \"error\") {\n state.outcome = \"complete\";\n }\n return;\n }\n case \"end\": {\n if (state.outcome === \"streaming\" || state.outcome === \"awaiting-tools\") {\n state.outcome = \"complete\";\n }\n if (insideSentinel || reasoningActive) {\n closeReasoning();\n insideSentinel = false;\n reasoningActive = false;\n }\n return;\n }\n default: {\n if (IGNORED_EVENTS.has(frame.event)) return;\n state.unknownEvents.push(frame.event);\n refuse({\n code: \"unknown_stream_event\",\n message: `stream event '${frame.event}' is not in this package's vocabulary; it was recorded, not dropped`,\n detail: frame.data,\n });\n }\n }\n };\n\n const snapshot = (): ChatMessage => {\n const status =\n state.outcome === \"error\"\n ? \"error\"\n : state.outcome === \"cancelled\"\n ? \"cancelled\"\n : state.outcome === \"complete\"\n ? \"complete\"\n : \"streaming\";\n const completion = state.completion;\n return {\n id: messageId,\n role: \"assistant\",\n // Fresh array + fresh part objects: React compares by identity, and a\n // mutated-in-place part never re-renders.\n parts: parts.map((part) => ({ ...part }) as ChatPart),\n status,\n metadata: {\n requestId: state.requestId,\n serverMessageId: state.serverMessageIds.assistant,\n modelRef: completion ? extractModelRef(completion) : null,\n createdAt: new Date(0).toISOString(),\n raw: completion,\n },\n };\n };\n\n return {\n apply,\n snapshot,\n get state() {\n return state;\n },\n };\n}\n\n/**\n * The model the server actually billed, from the completion's usage block\n * (`result.total_usage.by_model` — one key per model that ran). Returns null\n * rather than a UUID or a guess: a screen never prints an id, and \"unknown\" is\n * the honest answer when the completion carried no usage.\n */\nexport function extractModelRef(\n completion: Record<string, unknown>,\n): string | null {\n const result = asRecord(completion.result);\n const usage = asRecord(result.total_usage);\n const byModel = asRecord(usage.by_model);\n const names = Object.keys(byModel);\n return names.length > 0 ? (names[names.length - 1] ?? null) : null;\n}\n","/**\n * OPINIONS BECOME KNOBS (Law 6) — resolved in the kernel, never hardcoded and\n * never a question for a customer.\n *\n * Four layers, lowest to highest: **platform default → organization setting →\n * surface config → per-user preference**. Every knob has a platform default,\n * so a host that sets nothing still gets the platform's taste.\n *\n * One of these knobs is a SAFETY RULE and it lives here on purpose (C22):\n * `routing` carries matrx-local's \"a confidential thread never reaches a cloud\n * provider\". In the kernel it is a thread-level constraint the store ENFORCES\n * with a refusal — it never silently falls back to a cloud target.\n */\n\nexport type ChatSendKey = \"enter\" | \"mod-enter\";\nexport type ChatDensity = \"comfortable\" | \"compact\";\n\n/**\n * Where a thread's text is allowed to go.\n * - `\"any\"` — the platform default: any target the host offers.\n * - `\"local-only\"` — CONFIDENTIAL. The thread refuses a cloud target and says\n * why. This is the highest-severity rule in the design (§12 risk 4).\n */\nexport type ChatRoutingPolicy = \"any\" | \"local-only\";\n\n/** What a transport declares about itself so the kernel can judge it. */\nexport type ChatTargetLocality = \"local\" | \"cloud\";\n\nexport interface ChatFeatures {\n /** Enter sends, or Cmd/Ctrl+Enter sends. */\n sendKey: ChatSendKey;\n density: ChatDensity;\n /** Reasoning parts visible without a click. */\n showReasoningByDefault: boolean;\n /** Tool cards start expanded. */\n expandToolCardsByDefault: boolean;\n /** Transcript sticks to the bottom while the reader is at the bottom. */\n autoScroll: boolean;\n /** Read new assistant turns aloud as they arrive. */\n readAloudAutoPlay: boolean;\n /** Keep an unsent composer draft per conversation across reloads. */\n retainDrafts: boolean;\n /**\n * The composer may send while an answer is still arriving. OFF by the\n * platform default (a kernel thread runs one turn at a time). A host whose\n * send QUEUES the message behind the live turn — a coding session, where\n * the engine holds a per-session queue — turns it on; the composer then\n * shows Send (queue) beside Stop instead of Stop alone.\n */\n sendWhileBusy: boolean;\n /** THE ARCHIVED-ITEMS LAW: the conversation list hides archived by default. */\n hideArchivedConversations: boolean;\n /**\n * The per-turn action bar (copy, ask again, edit and send again, plus the\n * host's own). ON by the platform default — every serious chat has one, and\n * a reader who cannot copy an answer retypes it. An organization that does\n * not want it turns it OFF here rather than a host forking the transcript.\n */\n messageActions: boolean;\n /** Largest attachment the composer accepts, in BYTES. */\n attachmentMaxBytes: number;\n /**\n * How the platform's inline reasoning sentinel is treated.\n *\n * Ground truth (captured live 2026-09-17): the Google path does NOT emit\n * `reasoning_chunk`. It emits `reasoning {state:\"started\"}`, then ordinary\n * `chunk` frames whose text opens with `<reasoning>` and closes with\n * `</reasoning>`, then `reasoning {state:\"stopped\"}`.\n *\n * - `\"split\"` (platform default) — that span becomes a `reasoning` part, so\n * a reader never sees the raw sentinel in the answer.\n * - `\"inline\"` — the span stays in the answer text, byte-for-byte identical\n * to `@ai-matrx/agents/projection/request`'s `answer`. This exists so the\n * parity harness can prove EXACT equality with the shipped projection, and\n * so a host mid-migration can keep its current screen.\n */\n reasoningSentinel: \"split\" | \"inline\";\n /** Where this thread's text may go. */\n routing: ChatRoutingPolicy;\n}\n\nexport const CHAT_PLATFORM_DEFAULTS: Readonly<ChatFeatures> = Object.freeze({\n sendKey: \"enter\",\n density: \"comfortable\",\n showReasoningByDefault: false,\n expandToolCardsByDefault: false,\n autoScroll: true,\n readAloudAutoPlay: false,\n retainDrafts: true,\n sendWhileBusy: false,\n hideArchivedConversations: true,\n messageActions: true,\n attachmentMaxBytes: 25 * 1024 * 1024,\n reasoningSentinel: \"split\",\n routing: \"any\",\n});\n\nexport interface ChatConfigLayers {\n /** Organization setting rows, resolved by the host. */\n organization?: Partial<ChatFeatures>;\n /** This surface's configuration (a dock is not the full page). */\n surface?: Partial<ChatFeatures>;\n /** This person's preference. */\n user?: Partial<ChatFeatures>;\n}\n\n/** Resolve the four layers. Later layers win, key by key. */\nexport function resolveChatFeatures(layers: ChatConfigLayers = {}): ChatFeatures {\n return {\n ...CHAT_PLATFORM_DEFAULTS,\n ...stripUndefined(layers.organization),\n ...stripUndefined(layers.surface),\n ...stripUndefined(layers.user),\n };\n}\n\nfunction stripUndefined(\n value: Partial<ChatFeatures> | undefined,\n): Partial<ChatFeatures> {\n if (!value) return {};\n const out: Record<string, unknown> = {};\n for (const [key, entry] of Object.entries(value)) {\n if (entry !== undefined) out[key] = entry;\n }\n return out as Partial<ChatFeatures>;\n}\n\n/** The refusal a confidential thread produces instead of a silent fallback. */\nexport interface ChatRoutingRefusal {\n readonly allowed: false;\n readonly code: \"confidential_thread_cloud_target_refused\";\n readonly userMessage: string;\n readonly remedy: string;\n}\n\nexport type ChatRoutingDecision = { readonly allowed: true } | ChatRoutingRefusal;\n\n/**\n * THE CONFIDENTIAL-ROUTING RULE, in the kernel where it belongs.\n *\n * A thread pinned `local-only` REFUSES a cloud target. It does not downgrade,\n * it does not warn-and-send, and it does not quietly pick a different target:\n * the send fails with a named reason and a remedy. Re-deriving this per host\n * is how private text reaches a provider.\n */\nexport function decideRouting(\n policy: ChatRoutingPolicy,\n target: ChatTargetLocality,\n): ChatRoutingDecision {\n if (policy === \"local-only\" && target === \"cloud\") {\n return {\n allowed: false,\n code: \"confidential_thread_cloud_target_refused\",\n userMessage:\n \"This conversation is marked confidential, so it cannot be sent to a cloud AI provider.\",\n remedy:\n \"Choose a local engine for this conversation, or start a new conversation that is not marked confidential.\",\n };\n }\n return { allowed: true };\n}\n","/**\n * HOST INJECTION SEAMS — the ports a host may override.\n *\n * Per THE ALL-INCLUSIVE LAW every port here either ships a working default in\n * this package (`./matrx`, or the in-file defaults below) or is genuinely host\n * identity. A host injects identity and nothing else to be up and running.\n *\n * Phase 1 declares the ports the KERNEL uses. `files`, `nav`, `shell`,\n * `renderContent`, `renderModelRef` and `capabilities` are phase 2's — they\n * are deliberately ABSENT here rather than declared-and-unused, because a port\n * nothing calls is untested theory that rots (C25's reasoning).\n */\n\nimport type { ChatMessage, ChatRole } from \"./model\";\nimport type { ChatTargetLocality } from \"./config\";\n\n/** The ONE true injection. Read from the client's own session, never a cached copy. */\nexport interface ChatIdentityPort {\n /** A fresh access token per call. Cached copies rot when the cookie rotates. */\n getAccessToken(): Promise<string | null> | string | null;\n userId: string;\n organizationId?: string | undefined;\n}\n\n/** One frame off the wire, already normalized by `@ai-matrx/agents/stream/ndjson`. */\nexport interface ChatStreamFrame {\n event: string;\n data: unknown;\n stream_id?: string | undefined;\n stream_seq?: number | undefined;\n}\n\n/** What a started turn hands back before any frame arrives. */\nexport interface ChatTurnHandle {\n /** The server's `X-Request-ID` — the ONLY id cancel accepts. */\n requestId: string | null;\n conversationId: string | null;\n frames: AsyncIterable<ChatStreamFrame>;\n}\n\nexport interface ChatSendRequest {\n conversationId: string | null;\n /** True when this turn creates the conversation. */\n isNewConversation: boolean;\n /** False for an ephemeral run: nothing read, nothing written. */\n store: boolean;\n text: string;\n /** Durable Matrx file ids attached to this turn. */\n fileIds: readonly string[];\n signal: AbortSignal;\n}\n\n/**\n * THE TRANSPORT PORT — subscribe-shaped, NOT a fetch.\n *\n * It is this shape because matrx-extend's MV3 stream lives in an offscreen\n * document and is relayed over `chrome.runtime`: an API that has only ever met\n * `fetch` ossifies wrong. A host that does use fetch implements this in a few\n * lines (`./matrx` is that implementation).\n */\nexport interface ChatTransportPort {\n /** Where this transport sends text. The kernel refuses `\"cloud\"` for a\n * confidential thread — so a transport that lies here defeats the rule, and\n * it is the transport author's obligation to be honest. */\n readonly locality: ChatTargetLocality;\n start(request: ChatSendRequest): Promise<ChatTurnHandle>;\n /** Cooperative stop at the next iteration boundary. */\n cancel(requestId: string): Promise<void>;\n}\n\n/** A conversation as the history list shows it. */\nexport interface ChatConversationSummary {\n id: string;\n title: string | null;\n updatedAt: string;\n createdAt: string;\n messageCount: number;\n archived: boolean;\n isFavorite: boolean;\n /** Which surface produced it — the history list's source filter. */\n sourceApp: string | null;\n sourceFeature: string | null;\n}\n\nexport interface ChatConversationListQuery {\n limit?: number | undefined;\n /** Keyset cursor: return rows older than this ISO timestamp. */\n before?: string | undefined;\n /**\n * THE ARCHIVED-ITEMS LAW. Default false — archived rows are hidden, and the\n * caller that shows the list must name what it hides.\n */\n includeArchived?: boolean | undefined;\n sourceApp?: string | undefined;\n sourceFeature?: string | undefined;\n /**\n * The page's own organization filter (`?org_filter=`). Absent/null = ALL the\n * person's organizations, the default on every visit — never the active\n * organization (active-org-is-never-a-list-filter.md).\n */\n organizationFilter?: string | null | undefined;\n}\n\nexport interface ChatConversationListPage {\n conversations: ChatConversationSummary[];\n /** How many rows the archive filter hid, so the footer can say so. */\n archivedHidden: number;\n /** Cursor for the next page, or null at the end. */\n nextBefore: string | null;\n}\n\n/**\n * THE PERSISTENCE BOUNDARY (C10). The `chat.*` schema belongs to aidream, so\n * this package does not OWN it — but `./matrx` ships the complete binding, so\n * a host gets working persistence for free and only a customer on their own\n * tables ever implements this.\n *\n * With no binding the thread runs ephemeral AND SAYS SO on screen\n * (`ChatThreadSnapshot.ephemeral` + `ephemeralReason`).\n */\nexport interface ChatPersistencePort {\n /** Full transcript of one conversation, oldest first. */\n loadThread(conversationId: string): Promise<ChatMessage[]>;\n listConversations(\n query: ChatConversationListQuery,\n ): Promise<ChatConversationListPage>;\n setArchived(conversationId: string, archived: boolean): Promise<void>;\n rename(conversationId: string, title: string): Promise<void>;\n}\n\n/** Typed diagnostic sink. Default: `console`. */\nexport interface ChatErrorSinkPort {\n capture(event: {\n code: string;\n message: string;\n detail?: unknown;\n }): void;\n}\n\n/** Toast / banner sink. Default: a no-op that still reaches the errorSink. */\nexport interface ChatNotifierPort {\n notify(event: {\n level: \"info\" | \"warning\" | \"error\";\n message: string;\n remedy?: string | undefined;\n }): void;\n}\n\n/** Drafts, density, sidebar state. Default: in-memory, announced once. */\nexport interface ChatPrefsPort {\n get(key: string): string | null;\n set(key: string, value: string): void;\n remove(key: string): void;\n}\n\nexport function createConsoleErrorSink(): ChatErrorSinkPort {\n return {\n capture(event) {\n console.error(`[ai-matrx/chat] ${event.code}: ${event.message}`, event.detail);\n },\n };\n}\n\n/**\n * The default notifier. It never swallows: everything it is handed also\n * reaches the console, with the remedy, because a notice nobody renders is a\n * silent failure.\n */\nexport function createConsoleNotifier(): ChatNotifierPort {\n return {\n notify(event) {\n const line = event.remedy\n ? `[ai-matrx/chat] ${event.message} — ${event.remedy}`\n : `[ai-matrx/chat] ${event.message}`;\n if (event.level === \"error\") console.error(line);\n else if (event.level === \"warning\") console.warn(line);\n else console.info(line);\n },\n };\n}\n\n/**\n * The memory prefs fallback. It ANNOUNCES ITSELF ONCE with the remedy the\n * first time it is written to, because a draft that silently evaporates on\n * reload is exactly the class Law 4 forbids.\n */\nexport function createMemoryPrefs(\n notifier: ChatNotifierPort = createConsoleNotifier(),\n): ChatPrefsPort {\n const map = new Map<string, string>();\n let announced = false;\n const announce = (): void => {\n if (announced) return;\n announced = true;\n notifier.notify({\n level: \"warning\",\n message:\n \"Chat preferences and drafts are being kept in memory only, so they will be lost when this page reloads.\",\n remedy:\n \"Give the chat a `prefs` port backed by localStorage (or your own store) to keep drafts across reloads.\",\n });\n };\n return {\n get: (key) => map.get(key) ?? null,\n set: (key, value) => {\n announce();\n map.set(key, value);\n },\n remove: (key) => {\n map.delete(key);\n },\n };\n}\n\n/**\n * `localStorage` prefs with the memory fallback. Every read AND write is\n * wrapped: a private window, blocked site data, or a full quota makes the\n * accessor THROW, and an unguarded prefs port takes the whole chat down with\n * it.\n */\nexport function createWebPrefs(\n notifier: ChatNotifierPort = createConsoleNotifier(),\n): ChatPrefsPort {\n const fallback = createMemoryPrefs(notifier);\n let store: Storage | null = null;\n try {\n store = (globalThis as { localStorage?: Storage }).localStorage ?? null;\n if (store) {\n const probe = \"__ai_matrx_chat_probe__\";\n store.setItem(probe, \"1\");\n store.removeItem(probe);\n }\n } catch {\n store = null;\n }\n if (!store) return fallback;\n const live = store;\n return {\n get: (key) => {\n // A write that fell back to memory (quota, or a storage that accepts the\n // probe and rejects real writes) is INVISIBLE to `getItem` — it returns\n // null rather than throwing, so a read that trusted it alone would hand\n // back an empty draft and the reader would watch their message vanish.\n try {\n const stored = live.getItem(key);\n if (stored !== null) return stored;\n } catch {\n /* fall through to the memory fallback */\n }\n return fallback.get(key);\n },\n set: (key, value) => {\n try {\n live.setItem(key, value);\n } catch {\n fallback.set(key, value);\n }\n },\n remove: (key) => {\n try {\n live.removeItem(key);\n } catch {\n /* the durable copy may not exist; the memory copy still must go */\n }\n fallback.remove(key);\n },\n };\n}\n\n/** Roles the kernel renders. Anything else is reported, never dropped. */\nexport const CHAT_ROLES: readonly ChatRole[] = [\n \"user\",\n \"assistant\",\n \"system\",\n \"tool\",\n];\n","/**\n * THE THREAD STORE — layer 1 of `@ai-matrx/chat`.\n *\n * `getSnapshot()` / `subscribe()` is the `useSyncExternalStore` source shape\n * (the AI SDK's proven one), plus `subscribeToMessage(id)` so ONE streaming\n * bubble re-renders without touching the list. There is no React here, no\n * Redux here, and no `window` touched at import time.\n *\n * Performance rules that are code, not prose:\n * 1. store writes are COALESCED per frame tick, never per token;\n * 2. only the streaming message's per-message subscribers are woken on a\n * token; the thread subscribers are woken on the same coalesced tick but\n * the message objects of every OTHER message keep their identity, so a\n * memoized list re-renders one row.\n */\n\nimport {\n createChatTurnProjector,\n type ChatTurnRefusal,\n} from \"./ingest\";\nimport {\n decideRouting,\n resolveChatFeatures,\n type ChatConfigLayers,\n type ChatFeatures,\n} from \"./config\";\nimport {\n createChatMessage,\n newLocalId,\n type ChatErrorPart,\n type ChatMessage,\n type ChatThreadSnapshot,\n type ChatThreadStatus,\n} from \"./model\";\nimport {\n createConsoleErrorSink,\n createConsoleNotifier,\n type ChatErrorSinkPort,\n type ChatNotifierPort,\n type ChatPersistencePort,\n type ChatTransportPort,\n} from \"./ports\";\nimport {\n settleToolAnswer,\n type ChatToolAnswer,\n type ChatToolSettlement,\n} from \"./tool-state\";\n\nexport interface ChatThreadConfig {\n transport: ChatTransportPort;\n /** Absent ⇒ the thread is EPHEMERAL and says so in its snapshot. */\n persistence?: ChatPersistencePort | undefined;\n /** Existing conversation to continue. Omit to start a new one on first send. */\n conversationId?: string | undefined;\n features?: ChatConfigLayers | undefined;\n errorSink?: ChatErrorSinkPort | undefined;\n notifier?: ChatNotifierPort | undefined;\n /**\n * Coalescing window. The default `null` means \"schedule on the runtime's\n * frame clock\" (`requestAnimationFrame` when there is one, a microtask\n * otherwise). A number is a millisecond timer, which is what tests use so\n * they never depend on a browser clock.\n */\n coalesceMs?: number | null | undefined;\n}\n\nexport interface ChatSendInput {\n text: string;\n fileIds?: readonly string[] | undefined;\n}\n\nexport interface ChatSendResult {\n /** False when the send was refused BEFORE anything left the machine. */\n accepted: boolean;\n /** Present when `accepted` is false — the reason, in the reader's words. */\n refusal: ChatErrorPart | null;\n}\n\nexport interface ChatThreadStore {\n getSnapshot(): ChatThreadSnapshot;\n subscribe(listener: () => void): () => void;\n /** Wake ONLY on this message. The whole point of the per-message seam. */\n subscribeToMessage(messageId: string, listener: () => void): () => void;\n getMessageSnapshot(messageId: string): ChatMessage | undefined;\n readonly features: ChatFeatures;\n send(input: ChatSendInput): Promise<ChatSendResult>;\n /** Cooperative stop. Resolves once the server acknowledged (or failed to). */\n cancel(): Promise<void>;\n /** Replace the transcript — used by history load and by tests. */\n setMessages(messages: readonly ChatMessage[]): void;\n /** Load a stored conversation through the persistence port. */\n loadConversation(conversationId: string): Promise<void>;\n /**\n * Whether `startNewConversation()` actually does anything here. The kernel\n * answers true; `/external-store` answers true only when the host gave it a\n * handler. A shell reads THIS to decide whether a \"New conversation\" control\n * exists at all — a New button that cannot start one is the dead control Law\n * 4 forbids.\n */\n readonly canStartNewConversation: boolean;\n /**\n * Empty this thread and forget its conversation id, so the NEXT send starts a\n * fresh conversation the server names.\n *\n * 🚨 WHY THIS IS ON THE KERNEL AND NOT THE HOST'S JOB. Until the lane merge\n * the conversation id was fixed for the life of the store, so \"New\n * conversation\" on the shipped `chat.conversation` source could only work if\n * the host threw the whole thread away and built another — which every\n * consumer would then have had to reimplement, including the timer, the abort\n * and the draft carry. The client still never invents an id: this clears the\n * id and lets the FIRST TURN mint it, which is exactly what the platform\n * does for a conversation that never existed.\n */\n startNewConversation(): Promise<void>;\n /**\n * The client answered a delegated tool — mark the call done HERE, now.\n *\n * The server sends no completion frame for a delegated call (it hard-suspended\n * and closed the stream), so a transcript that only moves on frames shows\n * \"Working…\" forever after the agent has visibly moved on. The host's answer\n * funnel calls this in the same tick it posts the result. Monotonic and\n * idempotent: a call already terminal is left alone and the refusal says why.\n */\n settleToolCall(answer: ChatToolAnswer): ChatToolSettlement;\n /** Release timers and abort an in-flight turn. */\n dispose(): void;\n}\n\ntype Scheduler = (run: () => void) => () => void;\n\nfunction createScheduler(coalesceMs: number | null | undefined): Scheduler {\n if (typeof coalesceMs === \"number\") {\n return (run) => {\n const handle = setTimeout(run, coalesceMs);\n return () => clearTimeout(handle);\n };\n }\n const raf = (\n globalThis as {\n requestAnimationFrame?: (cb: () => void) => number;\n cancelAnimationFrame?: (handle: number) => void;\n }\n ).requestAnimationFrame;\n if (typeof raf === \"function\") {\n const cancel = (globalThis as { cancelAnimationFrame?: (h: number) => void })\n .cancelAnimationFrame;\n return (run) => {\n const handle = raf(run);\n return () => cancel?.(handle);\n };\n }\n return (run) => {\n let cancelled = false;\n queueMicrotask(() => {\n if (!cancelled) run();\n });\n return () => {\n cancelled = true;\n };\n };\n}\n\nconst EPHEMERAL_REASON =\n \"This conversation is not being saved: no persistence is connected, so it disappears when you leave the page.\";\nconst EPHEMERAL_REMEDY =\n \"Pass a `persistence` port (createMatrxChatPersistence from @ai-matrx/chat/matrx) to keep conversations.\";\n\nexport function createChatThread(config: ChatThreadConfig): ChatThreadStore {\n const features = resolveChatFeatures(config.features);\n const errorSink = config.errorSink ?? createConsoleErrorSink();\n const notifier = config.notifier ?? createConsoleNotifier();\n const schedule = createScheduler(config.coalesceMs);\n\n let messages: ChatMessage[] = [];\n let status: ChatThreadStatus = \"idle\";\n let conversationId: string | null = config.conversationId ?? null;\n let requestId: string | null = null;\n let phase: string | null = null;\n let error: ChatErrorPart | null = null;\n let revision = 0;\n let snapshot: ChatThreadSnapshot = buildSnapshot();\n let abort: AbortController | null = null;\n let disposed = false;\n let announcedEphemeral = false;\n\n /**\n * WHICH CONVERSATION THE TRANSCRIPT IS SHOWING, as a number.\n *\n * 🚨 The defect this closes, found by the lane-merge test that switched away\n * mid-answer: cancelling a turn aborts the CONTROLLER, but a transport whose\n * frames are already queued (or one that ignores the signal, which a host may\n * legitimately write) delivers one more. `replaceMessage` appends when it\n * cannot find the id — so that late frame resurrected the previous\n * conversation's half-answer INTO the empty transcript the reader was now\n * looking at, under the new conversation's id. A stale write must be dropped,\n * not raced. Every write in `send` is stamped with the epoch it started in,\n * and `startNewConversation` / `loadConversation` bump it.\n */\n let epoch = 0;\n\n const threadListeners = new Set<() => void>();\n const messageListeners = new Map<string, Set<() => void>>();\n const dirtyMessages = new Set<string>();\n let cancelScheduled: (() => void) | null = null;\n\n function buildSnapshot(): ChatThreadSnapshot {\n return {\n conversationId,\n messages,\n status,\n requestId,\n phase,\n ephemeral: config.persistence === undefined,\n ephemeralReason:\n config.persistence === undefined\n ? `${EPHEMERAL_REASON} ${EPHEMERAL_REMEDY}`\n : null,\n revision,\n error,\n };\n }\n\n function commit(): void {\n revision += 1;\n snapshot = buildSnapshot();\n const woken = [...dirtyMessages];\n dirtyMessages.clear();\n for (const id of woken) {\n const listeners = messageListeners.get(id);\n if (!listeners) continue;\n for (const listener of listeners) listener();\n }\n for (const listener of threadListeners) listener();\n }\n\n function markDirty(messageId: string | null): void {\n if (messageId !== null) dirtyMessages.add(messageId);\n if (cancelScheduled !== null) return;\n cancelScheduled = schedule(() => {\n cancelScheduled = null;\n if (!disposed) commit();\n });\n }\n\n /** Commit immediately — state changes a caller must observe synchronously. */\n function commitNow(messageId: string | null): void {\n if (messageId !== null) dirtyMessages.add(messageId);\n cancelScheduled?.();\n cancelScheduled = null;\n commit();\n }\n\n function announceEphemeralOnce(): void {\n if (announcedEphemeral || config.persistence !== undefined) return;\n announcedEphemeral = true;\n notifier.notify({\n level: \"warning\",\n message: EPHEMERAL_REASON,\n remedy: EPHEMERAL_REMEDY,\n });\n }\n\n function replaceMessage(next: ChatMessage): void {\n const index = messages.findIndex((m) => m.id === next.id);\n if (index === -1) {\n messages = [...messages, next];\n return;\n }\n const copy = messages.slice();\n copy[index] = next;\n messages = copy;\n }\n\n function refuseSend(part: ChatErrorPart): ChatSendResult {\n error = part;\n status = \"error\";\n errorSink.capture({ code: part.code ?? \"chat_send_refused\", message: part.message });\n notifier.notify({\n level: \"error\",\n message: part.userMessage,\n ...(part.remedy === null ? {} : { remedy: part.remedy }),\n });\n commitNow(null);\n return { accepted: false, refusal: part };\n }\n\n async function send(input: ChatSendInput): Promise<ChatSendResult> {\n if (disposed) {\n return refuseSend({\n type: \"error\",\n errorType: \"disposed\",\n code: \"thread_disposed\",\n message: \"send() was called on a disposed thread\",\n userMessage: \"This conversation is no longer active.\",\n recoverable: false,\n remedy: \"Open the conversation again.\",\n });\n }\n if (status === \"submitted\" || status === \"streaming\") {\n return refuseSend({\n type: \"error\",\n errorType: \"busy\",\n code: \"turn_in_flight\",\n message: \"a turn is already streaming on this thread\",\n userMessage: \"The assistant is still answering.\",\n recoverable: true,\n remedy: \"Wait for the answer to finish, or press stop.\",\n });\n }\n\n // THE CONFIDENTIAL-ROUTING RULE, before a single byte leaves the machine.\n const routing = decideRouting(features.routing, config.transport.locality);\n if (!routing.allowed) {\n return refuseSend({\n type: \"error\",\n errorType: \"routing_refused\",\n code: routing.code,\n message: routing.userMessage,\n userMessage: routing.userMessage,\n recoverable: false,\n remedy: routing.remedy,\n });\n }\n\n announceEphemeralOnce();\n\n const fileIds = input.fileIds ?? [];\n const userMessage = createChatMessage({\n role: \"user\",\n parts: [{ type: \"text\", text: input.text }],\n status: \"complete\",\n });\n const assistantId = newLocalId(\"msg\");\n const assistantPlaceholder = createChatMessage({\n id: assistantId,\n role: \"assistant\",\n parts: [],\n status: \"pending\",\n });\n messages = [...messages, userMessage, assistantPlaceholder];\n error = null;\n status = \"submitted\";\n commitNow(assistantId);\n\n const turnEpoch = epoch;\n /** A write from a turn whose conversation is no longer on screen. */\n const stale = (): boolean => disposed || turnEpoch !== epoch;\n\n const controller = new AbortController();\n abort = controller;\n\n const projector = createChatTurnProjector({\n features,\n messageId: assistantId,\n onRefusal: (refusal: ChatTurnRefusal) =>\n errorSink.capture({\n code: refusal.code,\n message: refusal.message,\n detail: refusal.detail,\n }),\n });\n\n try {\n const handle = await config.transport.start({\n conversationId,\n isNewConversation: conversationId === null,\n store: config.persistence !== undefined,\n text: input.text,\n fileIds,\n signal: controller.signal,\n });\n if (stale()) return { accepted: true, refusal: null };\n requestId = handle.requestId;\n if (handle.conversationId !== null) conversationId = handle.conversationId;\n status = \"streaming\";\n commitNow(assistantId);\n\n if (stale()) return { accepted: true, refusal: null };\n for await (const frame of handle.frames) {\n // The reader has moved on. Stop reading the socket rather than painting\n // the previous conversation's answer into the one now on screen.\n if (stale()) return { accepted: true, refusal: null };\n projector.apply(frame);\n if (projector.state.conversationId !== null) {\n conversationId = projector.state.conversationId;\n }\n if (projector.state.phase !== null) phase = projector.state.phase;\n const live = projector.snapshot();\n replaceMessage({\n ...live,\n metadata: {\n ...live.metadata,\n requestId,\n createdAt: assistantPlaceholder.metadata.createdAt,\n },\n });\n status =\n projector.state.outcome === \"awaiting-tools\"\n ? \"awaiting-approval\"\n : \"streaming\";\n markDirty(assistantId);\n }\n\n if (stale()) return { accepted: true, refusal: null };\n const serverUserId = projector.state.serverMessageIds.user;\n if (serverUserId !== null) {\n replaceMessage({\n ...userMessage,\n metadata: { ...userMessage.metadata, serverMessageId: serverUserId },\n });\n }\n const final = projector.snapshot();\n replaceMessage({\n ...final,\n metadata: {\n ...final.metadata,\n requestId,\n createdAt: assistantPlaceholder.metadata.createdAt,\n },\n });\n error = projector.state.error;\n status = projector.state.outcome === \"error\" ? \"error\" : \"idle\";\n commitNow(assistantId);\n return { accepted: true, refusal: null };\n } catch (cause) {\n if (stale()) return { accepted: true, refusal: null };\n const aborted =\n controller.signal.aborted ||\n (cause instanceof Error && cause.name === \"AbortError\");\n const message = cause instanceof Error ? cause.message : String(cause);\n const part: ChatErrorPart = aborted\n ? {\n type: \"error\",\n errorType: \"cancelled\",\n code: \"turn_cancelled\",\n message: \"the turn was cancelled by the reader\",\n userMessage: \"You stopped this answer.\",\n recoverable: true,\n remedy: null,\n }\n : {\n type: \"error\",\n errorType: \"transport\",\n code: \"transport_failed\",\n message,\n userMessage: \"The connection to the assistant failed.\",\n recoverable: true,\n remedy: \"Try sending the message again.\",\n };\n const partial = projector.snapshot();\n replaceMessage({\n ...partial,\n // Partial text NEVER vanishes: the reader keeps what they already saw.\n parts: [...partial.parts, part],\n status: aborted ? \"cancelled\" : \"error\",\n metadata: {\n ...partial.metadata,\n requestId,\n createdAt: assistantPlaceholder.metadata.createdAt,\n },\n });\n if (!aborted) {\n error = part;\n status = \"error\";\n errorSink.capture({ code: part.code ?? \"transport_failed\", message });\n } else {\n status = \"idle\";\n }\n commitNow(assistantId);\n return { accepted: true, refusal: null };\n } finally {\n if (abort === controller) abort = null;\n }\n }\n\n async function cancel(): Promise<void> {\n const current = requestId;\n abort?.abort();\n if (current === null) return;\n try {\n await config.transport.cancel(current);\n } catch (cause) {\n errorSink.capture({\n code: \"cancel_failed\",\n message: cause instanceof Error ? cause.message : String(cause),\n });\n notifier.notify({\n level: \"warning\",\n message: \"The assistant did not confirm that it stopped.\",\n remedy: \"It stops at its next step; anything already written is saved.\",\n });\n }\n }\n\n async function loadConversation(id: string): Promise<void> {\n const persistence = config.persistence;\n if (persistence === undefined) {\n const part: ChatErrorPart = {\n type: \"error\",\n errorType: \"no_persistence\",\n code: \"history_unavailable\",\n message: \"loadConversation() was called on a thread with no persistence port\",\n userMessage: \"Past conversations are not available here.\",\n recoverable: false,\n remedy: EPHEMERAL_REMEDY,\n };\n refuseSend(part);\n return;\n }\n epoch += 1;\n const loaded = await persistence.loadThread(id);\n conversationId = id;\n messages = loaded.slice();\n status = \"idle\";\n error = null;\n commitNow(null);\n }\n\n /**\n * A fresh conversation on THIS store. An answer still arriving is stopped\n * first — leaving it running would append the old conversation's frames to\n * the empty transcript the reader is now looking at — and the stop is\n * cooperative, so what the server has already written is still saved where it\n * belongs. Doctrine: a disconnect never cancels server work, and this method\n * promises nothing more than it does.\n */\n async function startNewConversation(): Promise<void> {\n if (disposed) return;\n epoch += 1;\n if (status === \"streaming\" || status === \"submitted\") await cancel();\n abort = null;\n conversationId = null;\n requestId = null;\n phase = null;\n messages = [];\n error = null;\n status = \"idle\";\n commitNow(null);\n }\n\n return {\n getSnapshot: () => snapshot,\n subscribe(listener) {\n threadListeners.add(listener);\n return () => {\n threadListeners.delete(listener);\n };\n },\n subscribeToMessage(messageId, listener) {\n const existing = messageListeners.get(messageId) ?? new Set<() => void>();\n existing.add(listener);\n messageListeners.set(messageId, existing);\n return () => {\n existing.delete(listener);\n if (existing.size === 0) messageListeners.delete(messageId);\n };\n },\n // Reads the COMMITTED snapshot, never the in-flight draft: a per-message\n // hook that could see an uncommitted value tears against the thread.\n getMessageSnapshot: (messageId) =>\n snapshot.messages.find((m) => m.id === messageId),\n features,\n send,\n cancel,\n setMessages(next) {\n messages = next.slice();\n commitNow(null);\n },\n settleToolCall(answer) {\n const settlement = settleToolAnswer(messages, answer);\n if (!settlement.applied) {\n if (settlement.refusal !== null) {\n errorSink.capture({\n code: \"tool_state_transition_refused\",\n message: settlement.refusal,\n detail: answer,\n });\n }\n return settlement;\n }\n messages = settlement.messages.slice();\n commitNow(settlement.messageId);\n return settlement;\n },\n loadConversation,\n canStartNewConversation: true,\n startNewConversation,\n dispose() {\n disposed = true;\n cancelScheduled?.();\n cancelScheduled = null;\n abort?.abort();\n threadListeners.clear();\n messageListeners.clear();\n },\n };\n}\n","/**\n * `@ai-matrx/chat/matrx` — THE PLATFORM BINDING.\n *\n * Everything in this entry knows the exact AI Matrx contract: the `/ai/*`\n * routes through `@ai-matrx/agents`, the conversation-start triple, and the\n * `chat.*` schema. Everything host-shaped stays injected.\n *\n * A host reaches a working, persisting, streaming thread with one call:\n *\n * ```ts\n * const thread = createMatrxChatThread({\n * transport: createMatrxTransport({ baseUrl, credentials, organizationId }),\n * dataSource: supabase,\n * organizationId,\n * target: { kind: \"agent\", agentId },\n * sourceApp: \"workflow-studio\",\n * sourceFeature: \"conductor\",\n * });\n * ```\n */\n\nexport {\n CHAT_SCHEMA,\n CHAT_TABLES,\n type ChatDataSource,\n type ChatSelectQuery,\n type ChatTableQuery,\n type PgError,\n type PgResult,\n} from \"./data-source\";\n\nexport {\n createMatrxChatTargetRef,\n createMatrxChatTransport,\n matrxChatTargetRef,\n parseMatrxChatTarget,\n TARGET_IGNORED_ON_CONTINUE,\n TARGET_IGNORED_ON_CONTINUE_REMEDY,\n type MatrxChatTarget,\n type MatrxChatTargetRef,\n type MatrxChatTransportOptions,\n} from \"./transport\";\n\nexport {\n createMatrxChatPersistence,\n isArchivedRow,\n mapPersistedContent,\n mapPersistedMessages,\n toConversationSummary,\n type MatrxChatPersistenceOptions,\n} from \"./persistence\";\n\nimport type { MatrxTransport } from \"@ai-matrx/agents/matrx\";\n\nimport { createChatThread, type ChatThreadConfig, type ChatThreadStore } from \"../store\";\nimport type { ChatConfigLayers } from \"../config\";\nimport type { ChatDataSource } from \"./data-source\";\nimport { createMatrxChatPersistence } from \"./persistence\";\nimport { createMatrxChatTransport, type MatrxChatTarget } from \"./transport\";\n\nexport interface MatrxChatThreadOptions {\n /** The production `MatrxTransport` from `@ai-matrx/agents/matrx`. */\n transport: MatrxTransport;\n /** Who answers — a function for a surface whose picker can change it\n * between turns (`createMatrxChatTargetRef().get`). */\n target: MatrxChatTarget | (() => MatrxChatTarget);\n /** The picked model, resolved per turn; `null` leaves the agent's own. */\n model?: string | null | (() => string | null) | undefined;\n organizationId: string;\n sourceApp: string;\n sourceFeature: string;\n /**\n * A supabase-js client. OMIT IT DELIBERATELY for an ephemeral thread — the\n * thread then runs unpersisted AND SAYS SO on screen, with the remedy. It is\n * never a silent downgrade.\n */\n dataSource?: ChatDataSource | undefined;\n conversationId?: string | undefined;\n features?: ChatConfigLayers | undefined;\n initiation?: \"user\" | \"auto\" | undefined;\n locality?: \"local\" | \"cloud\" | undefined;\n errorSink?: ChatThreadConfig[\"errorSink\"] | undefined;\n notifier?: ChatThreadConfig[\"notifier\"] | undefined;\n coalesceMs?: number | null | undefined;\n}\n\n/** The batteries-included platform thread: transport + persistence + kernel. */\nexport function createMatrxChatThread(\n options: MatrxChatThreadOptions,\n): ChatThreadStore {\n const transport = createMatrxChatTransport({\n transport: options.transport,\n target: options.target,\n organizationId: options.organizationId,\n sourceApp: options.sourceApp,\n sourceFeature: options.sourceFeature,\n initiation: options.initiation,\n locality: options.locality,\n model: options.model,\n // The transport's own sentence (a continue cannot change who answers) goes\n // to the SAME notifier as the kernel's, so a host wires one sink, not two.\n notifier: options.notifier,\n });\n const persistence =\n options.dataSource === undefined\n ? undefined\n : createMatrxChatPersistence({\n dataSource: options.dataSource,\n organizationId: options.organizationId,\n });\n return createChatThread({\n transport,\n persistence,\n conversationId: options.conversationId,\n features: options.features,\n errorSink: options.errorSink,\n notifier: options.notifier,\n coalesceMs: options.coalesceMs,\n });\n}\n"],"mappings":"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","names":["handle","part","asRecord","asString"]}
|
|
1
|
+
{"version":3,"sources":["../../src/compat/matrx/data-source.ts","../../src/compat/matrx/transport.ts","../../src/compat/model.ts","../../src/compat/matrx/persistence.ts","../../src/compat/tool-state.ts","../../src/compat/ingest.ts","../../src/compat/config.ts","../../src/compat/ports.ts","../../src/compat/store.ts","../../src/compat/matrx/index.ts"],"sourcesContent":["/**\n * The data seam — a structural subset of `SupabaseClient<Database>`, the\n * `@ai-matrx/associations` precedent. `PromiseLike` rather than `Promise`\n * because supabase-js returns a thenable builder, not a Promise, and typing it\n * as a Promise makes a real client fail to satisfy the interface.\n *\n * Clients read and write the database DIRECTLY (workspace rule: the Python\n * server is for work a client cannot do, never a data middle tier), so this\n * port is a supabase-js client and nothing else is expected to implement it.\n */\n\nexport interface PgError {\n message: string;\n code?: string | undefined;\n details?: string | undefined;\n hint?: string | undefined;\n}\n\nexport interface PgResult<T> {\n data: T | null;\n error: PgError | null;\n}\n\nexport interface ChatSelectQuery extends PromiseLike<PgResult<unknown[]>> {\n eq(column: string, value: unknown): ChatSelectQuery;\n is(column: string, value: unknown): ChatSelectQuery;\n in(column: string, values: readonly unknown[]): ChatSelectQuery;\n lt(column: string, value: unknown): ChatSelectQuery;\n order(column: string, options: { ascending: boolean }): ChatSelectQuery;\n limit(count: number): ChatSelectQuery;\n}\n\nexport interface ChatTableQuery {\n select(columns: string, options?: { count?: \"exact\"; head?: boolean }): ChatSelectQuery;\n update(patch: Record<string, unknown>): {\n eq(column: string, value: unknown): PromiseLike<{ error: PgError | null }>;\n };\n}\n\nexport interface ChatDataSource {\n schema(name: string): { from(table: string): ChatTableQuery };\n}\n\n/** The schema this package reads and writes. Renaming it breaks every read. */\nexport const CHAT_SCHEMA = \"chat\";\n\n/** The `chat.*` tables the persistence binding touches. */\nexport const CHAT_TABLES = {\n conversation: \"conversation\",\n message: \"message\",\n} as const;\n","/**\n * `@ai-matrx/chat/matrx` — THE PLATFORM TRANSPORT.\n *\n * Wire semantics verified against the aidream SERVER source and against LIVE\n * bytes, never guessed from a client (C22):\n *\n * - `POST /ai/agents/{agent_id}` — start an agent turn\n * - `POST /ai/mandates/{mandate_key}` — start a declared mandate\n * - `POST /ai/conversations/{conversation_id}` — continue a stored conversation\n * - `POST /ai/cancel/{request_id}?mode=interrupt` — cooperative stop\n *\n * The conversation-start triple (`conversation_id` / `is_new` / `store`) is\n * sent in full on every start, no defaults — `store: false` is the ONLY\n * ephemeral signal, and the kernel derives it from whether a persistence port\n * exists, so an unpersisted thread never silently writes rows.\n */\n\nimport {\n cancelAgentRun,\n continueAgentConversation,\n startAgentRun,\n startMandateRun,\n type MatrxTransport,\n} from \"@ai-matrx/agents/matrx\";\n\nimport type {\n ChatNotifierPort,\n ChatSendRequest,\n ChatStreamFrame,\n ChatTransportPort,\n ChatTurnHandle,\n} from \"../ports\";\n\n/** Which brain this thread talks to. */\nexport type MatrxChatTarget =\n | { kind: \"agent\"; agentId: string }\n | { kind: \"mandate\"; mandateKey: string };\n\n/**\n * THE REFERENCE SHAPE EVERY CLIENT ALREADY SPEAKS. `AgentListDropdown` hands\n * back an agent id, or `mandate:<key>` for the platform-default row. This is\n * the ONE place that turns those words into a target, so a host wiring the\n * picker does not each invent the same two-line parse — and an empty reference\n * throws by name instead of starting a run against nothing.\n */\nexport function parseMatrxChatTarget(agentRef: string): MatrxChatTarget {\n const trimmed = agentRef.trim();\n if (trimmed === \"\") {\n throw new Error(\n \"@ai-matrx/chat/matrx: an empty agent reference cannot name who answers. Pass an agent id, or `mandate:<key>` for a mandate.\",\n );\n }\n if (trimmed.startsWith(\"mandate:\")) {\n const mandateKey = trimmed.slice(\"mandate:\".length).trim();\n if (mandateKey === \"\") {\n throw new Error(\n \"@ai-matrx/chat/matrx: `mandate:` with no key cannot name who answers.\",\n );\n }\n return { kind: \"mandate\", mandateKey };\n }\n return { kind: \"agent\", agentId: trimmed };\n}\n\n/** The same target, as the two strings a screen and a test can compare. */\nexport function matrxChatTargetRef(target: MatrxChatTarget): string {\n return target.kind === \"agent\"\n ? target.agentId\n : `mandate:${target.mandateKey}`;\n}\n\n/**\n * THE LIVE CHOICE — what the composer's pickers write into, and what the next\n * send reads.\n *\n * It is a tiny subscribable rather than React state on purpose: the transport\n * is a PURE-layer object built once, outside React, and a transport that closed\n * over the target at construction would keep answering as the agent the reader\n * changed away from. The picker sets it, the transport reads it per turn, and\n * anything that wants to paint the current choice subscribes.\n */\nexport interface MatrxChatTargetRef {\n get(): MatrxChatTarget;\n getModel(): string | null;\n set(target: MatrxChatTarget): void;\n setModel(model: string | null): void;\n subscribe(listener: () => void): () => void;\n}\n\nexport function createMatrxChatTargetRef(\n initial: MatrxChatTarget,\n initialModel: string | null = null,\n): MatrxChatTargetRef {\n let target = initial;\n let model = initialModel;\n const listeners = new Set<() => void>();\n const wake = (): void => {\n for (const listener of listeners) listener();\n };\n return {\n get: () => target,\n getModel: () => model,\n set(next) {\n if (matrxChatTargetRef(next) === matrxChatTargetRef(target)) return;\n target = next;\n wake();\n },\n setModel(next) {\n const normalized = next === null || next.trim() === \"\" ? null : next;\n if (normalized === model) return;\n model = normalized;\n wake();\n },\n subscribe(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n\nexport const TARGET_IGNORED_ON_CONTINUE =\n \"This conversation keeps answering as the agent it was started with, so your new choice was not used for that message.\";\nexport const TARGET_IGNORED_ON_CONTINUE_REMEDY =\n \"Start a new conversation to talk to the one you just picked.\";\n\nexport interface MatrxChatTransportOptions {\n /**\n * The `MatrxTransport` port. Build it with\n * `createMatrxTransport({ baseUrl, credentials, organizationId })` from\n * `@ai-matrx/agents/matrx` — that is the production pipeline (retry,\n * connect timeout, the v2→v1 protocol fallback, fresh credentials per call,\n * the fail-closed org header). Hand-rolling a fetch here loses all of it.\n */\n transport: MatrxTransport;\n /**\n * Who answers. A FUNCTION is the live form: the pickers change the choice\n * between turns, and the transport resolves it at the moment of the send\n * rather than at construction (`createMatrxChatTargetRef().get`).\n */\n target: MatrxChatTarget | (() => MatrxChatTarget);\n /**\n * The model the reader picked, resolved per turn the same way. It rides\n * `config_overrides.model` (the server's `LLMParams`), and `null` means the\n * agent's own configured model is used — the transport never sends a null\n * override, because a blank override is a silent reconfiguration.\n */\n model?: string | null | (() => string | null) | undefined;\n /** REQUIRED by the server: it never manufactures an organization. */\n organizationId: string;\n /**\n * Attribution. The server REFUSES an unregistered pair with a 422 naming\n * the registry — that is deliberate, and a caller that invents a slug gets\n * a loud rejection rather than an unattributable row.\n */\n sourceApp: string;\n sourceFeature: string;\n /** \"user\" = a person pressed send; \"auto\" = client automation. */\n initiation?: \"user\" | \"auto\" | undefined;\n /**\n * Where this transport sends text. The kernel's confidential-routing rule\n * reads it, so answering \"local\" for a cloud endpoint defeats the rule.\n */\n locality?: \"local\" | \"cloud\" | undefined;\n /** Extra scope/context merged into every turn body. */\n extra?: Record<string, unknown> | undefined;\n /**\n * Where the transport says what it could not do. It is used for exactly one\n * sentence today: a CONTINUE cannot change who answers (the server resolves\n * the conversation's own agent), so a reader who picks a different agent\n * mid-conversation is TOLD their choice did not apply to that message, once\n * per conversation, with the remedy. Without it the picker would silently\n * lie about who just replied.\n */\n notifier?: ChatNotifierPort | undefined;\n}\n\nfunction mintConversationId(): string {\n const cryptoRef: { randomUUID?: () => string } | undefined = (\n globalThis as { crypto?: { randomUUID?: () => string } }\n ).crypto;\n if (typeof cryptoRef?.randomUUID === \"function\") return cryptoRef.randomUUID();\n throw new Error(\n \"@ai-matrx/chat/matrx needs crypto.randomUUID to mint a conversation id (the client mints it, by contract). \" +\n \"Run on Node 19+, a browser, Deno or Bun, or pass an explicit conversationId to the thread.\",\n );\n}\n\nexport function createMatrxChatTransport(\n options: MatrxChatTransportOptions,\n): ChatTransportPort {\n const initiation = options.initiation ?? \"user\";\n const resolveTarget = (): MatrxChatTarget =>\n typeof options.target === \"function\" ? options.target() : options.target;\n const resolveModel = (): string | null => {\n const model =\n typeof options.model === \"function\" ? options.model() : (options.model ?? null);\n return model === null || model.trim() === \"\" ? null : model;\n };\n // The target a conversation was STARTED with, so a later continue can tell\n // the reader their new choice did not reach this transcript. Announced once\n // per conversation: one sentence is information, one per message is noise.\n const startedAs = new Map<string, string>();\n const warned = new Set<string>();\n const scope = {\n organization_id: options.organizationId,\n source_app: options.sourceApp,\n source_feature: options.sourceFeature,\n initiation,\n ...options.extra,\n };\n\n return {\n locality: options.locality ?? \"cloud\",\n\n async start(request: ChatSendRequest): Promise<ChatTurnHandle> {\n const signalOption = { signal: request.signal };\n\n const model = resolveModel();\n // A null override is NEVER sent: `config_overrides: { model: null }` is a\n // blank reconfiguration of the agent, not \"leave it alone\".\n const overrides = model === null ? {} : { config_overrides: { model } };\n\n if (request.conversationId !== null && !request.isNewConversation) {\n const openedAs = startedAs.get(request.conversationId);\n const chosen = matrxChatTargetRef(resolveTarget());\n if (\n openedAs !== undefined &&\n openedAs !== chosen &&\n !warned.has(request.conversationId)\n ) {\n warned.add(request.conversationId);\n options.notifier?.notify({\n level: \"warning\",\n message: TARGET_IGNORED_ON_CONTINUE,\n remedy: TARGET_IGNORED_ON_CONTINUE_REMEDY,\n });\n }\n const handle = await continueAgentConversation(\n options.transport,\n request.conversationId,\n { ...scope, ...overrides, user_input: request.text },\n signalOption,\n );\n return toChatTurnHandle(handle);\n }\n\n const target = resolveTarget();\n const conversationId = request.conversationId ?? mintConversationId();\n startedAs.set(conversationId, matrxChatTargetRef(target));\n const body = {\n ...scope,\n ...overrides,\n // THE CONVERSATION-START TRIPLE, in full, every time.\n conversation_id: conversationId,\n is_new: true as const,\n store: request.store,\n user_input: request.text,\n };\n const handle =\n target.kind === \"agent\"\n ? await startAgentRun(\n options.transport,\n target.agentId,\n body as Parameters<typeof startAgentRun>[2],\n signalOption,\n )\n : await startMandateRun(\n options.transport,\n target.mandateKey,\n body as Parameters<typeof startMandateRun>[2],\n signalOption,\n );\n return toChatTurnHandle(handle, conversationId);\n },\n\n async cancel(requestId: string): Promise<void> {\n // `interrupt` is stop-and-fork: the tail after the last clean boundary\n // persists hidden, so the reader's next message replies to what they\n // actually saw. A plain cancel loses that.\n await cancelAgentRun(options.transport, requestId, { mode: \"interrupt\" });\n },\n };\n}\n\nfunction toChatTurnHandle(\n handle: {\n requestId: string | null;\n conversationId: string | null;\n events: AsyncIterable<{\n event: string;\n data: unknown;\n stream_id?: string | undefined;\n stream_seq?: number | undefined;\n }>;\n },\n mintedConversationId?: string,\n): ChatTurnHandle {\n return {\n requestId: handle.requestId,\n conversationId: handle.conversationId ?? mintedConversationId ?? null,\n frames: handle.events as AsyncIterable<ChatStreamFrame>,\n };\n}\n","/**\n * The message / part model — layer 1 of `@ai-matrx/chat`.\n *\n * Deliberately the industry-canonical shape (Vercel AI SDK `UIMessage.parts[]`\n * plus its tool-part state machine), because our own\n * `@ai-matrx/agents/projection/request` already produces its equivalent and a\n * customer's agent already knows it. Nothing here imports React, Redux, a\n * framework, or `window`.\n *\n * Every part type below was chosen against BYTES, not against a guess: the\n * live corpus in `fixtures/corpus/` carries text, reasoning (both wire\n * shapes), tool lifecycle, warnings and a fatal error, and the persisted\n * `chat.message.content` rows carry `text` | `thinking` | `tool_call` |\n * `tool_result`.\n */\n\n/** JSON on the wire. Public JSON boundaries are `unknown`-typed by standard. */\nexport type ChatJsonValue =\n | string\n | number\n | boolean\n | null\n | ChatJsonValue[]\n | { [key: string]: ChatJsonValue };\n\nexport type ChatRole = \"user\" | \"assistant\" | \"system\" | \"tool\";\n\n/**\n * THE TOOL STATE MACHINE (the champion's, verbatim). A tool part only ever\n * moves forward along these states; `advanceToolState` in `./tool-state`\n * refuses anything else out loud rather than silently overwriting.\n */\nexport type ChatToolState =\n | \"input-streaming\"\n | \"input-available\"\n | \"approval-requested\"\n | \"output-available\"\n | \"output-error\"\n | \"output-denied\";\n\n/** One tool progress beat — the `tool_event`/`tool_progress` frames. */\nexport interface ChatToolProgress {\n /** The tool name the SERVER used on this beat: it differs from the call's\n * tool name mid-run (`web` → `web_search` → `web_research` in the corpus),\n * and flattening them loses what actually ran. */\n toolName: string;\n message: string;\n percent: number | null;\n /** Server timestamp in seconds, verbatim; null when the frame carried none. */\n at: number | null;\n}\n\nexport interface ChatTextPart {\n readonly type: \"text\";\n text: string;\n}\n\nexport interface ChatReasoningPart {\n readonly type: \"reasoning\";\n text: string;\n state: \"streaming\" | \"done\";\n}\n\nexport interface ChatToolPart {\n readonly type: \"tool\";\n /** The provider/server call id — the ONLY identity a tool part has. */\n toolCallId: string;\n toolName: string;\n state: ChatToolState;\n input: unknown;\n output: unknown;\n /** Present only in `output-error`; null otherwise. */\n errorText: string | null;\n progress: ChatToolProgress[];\n /** True once the server emitted `tool_delegated` — the CLIENT must run it. */\n delegated: boolean;\n}\n\nexport interface ChatFilePart {\n readonly type: \"file\";\n /** A durable Matrx file id. A signed URL is a handoff, never an identity. */\n fileId: string;\n name: string | null;\n mediaType: string | null;\n}\n\nexport interface ChatSourcePart {\n readonly type: \"source\";\n sourceId: string;\n url: string | null;\n title: string | null;\n}\n\nexport interface ChatRenderBlockPart {\n readonly type: \"render-block\";\n blockId: string;\n blockIndex: number;\n /** The content-IR kind name. */\n kind: string;\n content: string | null;\n data: unknown;\n status: \"streaming\" | \"complete\" | \"error\";\n}\n\nexport interface ChatAskUserPart {\n readonly type: \"ask-user\";\n askId: string;\n prompt: string;\n fields: unknown;\n answered: boolean;\n}\n\n/**\n * A failure the READER must see. `userMessage` is what a screen shows;\n * `remedy` is what the reader can do about it. Law 4 — nothing fails\n * silently, and a stand-in announces itself WITH a remedy.\n */\nexport interface ChatErrorPart {\n readonly type: \"error\";\n errorType: string | null;\n code: string | null;\n message: string;\n userMessage: string;\n recoverable: boolean;\n remedy: string | null;\n}\n\n/**\n * A non-fatal server notice (`warning` / `info` frames). It is a PART, not a\n * side channel, because the corpus proves a run can lose half its tools and\n * still answer — and a reader who is not told has been lied to.\n */\nexport interface ChatNoticePart {\n readonly type: \"notice\";\n level: \"info\" | \"low\" | \"medium\" | \"high\";\n code: string | null;\n userMessage: string;\n remedy: string | null;\n}\n\nexport type ChatPart =\n | ChatTextPart\n | ChatReasoningPart\n | ChatToolPart\n | ChatFilePart\n | ChatSourcePart\n | ChatRenderBlockPart\n | ChatAskUserPart\n | ChatErrorPart\n | ChatNoticePart;\n\nexport type ChatMessageStatus =\n | \"pending\"\n | \"streaming\"\n | \"complete\"\n | \"error\"\n | \"cancelled\";\n\nexport interface ChatMessageMetadata {\n /** The server's `X-Request-ID` for the turn this message belongs to. */\n requestId: string | null;\n /** The server `chat.message` row id once `record_update` announced it. */\n serverMessageId: string | null;\n /** Model id/name the server reported, when it reported one. Never a UUID on\n * screen — `renderModelRef` resolves it (phase 2). */\n modelRef: string | null;\n createdAt: string;\n /** Free-form server metadata (finish_reason, usage, …), verbatim. */\n raw: Record<string, unknown> | null;\n}\n\nexport interface ChatMessage {\n id: string;\n role: ChatRole;\n parts: ChatPart[];\n status: ChatMessageStatus;\n metadata: ChatMessageMetadata;\n}\n\n/**\n * THE THREAD STATE MACHINE.\n * `idle → submitted → streaming → (awaiting-approval) → idle | error`.\n */\nexport type ChatThreadStatus =\n | \"idle\"\n | \"submitted\"\n | \"streaming\"\n | \"awaiting-approval\"\n | \"error\";\n\nexport interface ChatThreadSnapshot {\n conversationId: string | null;\n /** Ordered oldest-first. */\n messages: readonly ChatMessage[];\n status: ChatThreadStatus;\n /** The server request id of the CURRENT or last turn — the only id the\n * server accepts for cancel. */\n requestId: string | null;\n /** Last server `phase`, verbatim. */\n phase: string | null;\n /**\n * TRUE when nothing is persisting this thread. The screen must SAY so with\n * the remedy (`ephemeralReason`) — an unannounced ephemeral thread is the\n * silent failure Law 4 forbids.\n */\n ephemeral: boolean;\n ephemeralReason: string | null;\n /** Monotonic; bumps on every applied change so hosts can cheap-compare. */\n revision: number;\n /** Last fatal error for the thread, if any. */\n error: ChatErrorPart | null;\n}\n\nlet idCounter = 0;\n\n/**\n * A collision-resistant local id. `crypto.randomUUID` when the runtime has it\n * (browsers, node >= 19, Deno, Bun), and a counter+random fallback that\n * announces nothing because it is not a stand-in for a capability — it is the\n * same guarantee by other means.\n */\nexport function newLocalId(prefix: string): string {\n const cryptoRef: { randomUUID?: () => string } | undefined = (\n globalThis as { crypto?: { randomUUID?: () => string } }\n ).crypto;\n if (typeof cryptoRef?.randomUUID === \"function\") {\n return `${prefix}_${cryptoRef.randomUUID()}`;\n }\n idCounter += 1;\n return `${prefix}_${Date.now().toString(36)}_${idCounter.toString(36)}_${Math.random()\n .toString(36)\n .slice(2, 10)}`;\n}\n\nexport function createChatMessage(input: {\n id?: string | undefined;\n role: ChatRole;\n parts?: ChatPart[] | undefined;\n status?: ChatMessageStatus | undefined;\n metadata?: Partial<ChatMessageMetadata> | undefined;\n}): ChatMessage {\n return {\n id: input.id ?? newLocalId(\"msg\"),\n role: input.role,\n parts: input.parts ?? [],\n status: input.status ?? \"complete\",\n metadata: {\n requestId: input.metadata?.requestId ?? null,\n serverMessageId: input.metadata?.serverMessageId ?? null,\n modelRef: input.metadata?.modelRef ?? null,\n createdAt: input.metadata?.createdAt ?? new Date().toISOString(),\n raw: input.metadata?.raw ?? null,\n },\n };\n}\n\n/** Every `text` part concatenated — what a copy button copies. */\nexport function messageText(message: ChatMessage): string {\n let out = \"\";\n for (const part of message.parts) if (part.type === \"text\") out += part.text;\n return out;\n}\n\n/** Every `reasoning` part concatenated. */\nexport function messageReasoning(message: ChatMessage): string {\n let out = \"\";\n for (const part of message.parts) if (part.type === \"reasoning\") out += part.text;\n return out;\n}\n\n/** Tool parts in first-seen order. */\nexport function messageTools(message: ChatMessage): ChatToolPart[] {\n return message.parts.filter((p): p is ChatToolPart => p.type === \"tool\");\n}\n","/**\n * THE `chat.*` PERSISTENCE BINDING — conversation history and transcript\n * loading, read DIRECTLY from Postgres under RLS (clients never route ordinary\n * reads through the Python server).\n *\n * Verified against the live schema on 2026-09-17:\n * `chat.conversation(id, title, created_at, updated_at, deleted_at,\n * message_count, source_app, source_feature, is_ephemeral,\n * metadata, organization_id, …)`\n * `chat.message(id, conversation_id, role, position, status, content jsonb,\n * metadata, created_at, is_visible_to_user, deleted_at, …)`\n *\n * `chat.message.content` is an ARRAY OF PARTS, and the persisted part\n * vocabulary — read off real rows, not guessed — is `text` | `thinking` |\n * `tool_call` | `tool_result`. `mapPersistedContent` is the ONE place that\n * vocabulary is translated into this package's part model; a second translator\n * anywhere is the defect this binding exists to prevent.\n *\n * 🚨 ARCHIVE: `chat.conversation` has no boolean archive column. Archive state\n * lives in `metadata.archived`, which is what the platform already writes, and\n * THE ARCHIVED-ITEMS LAW is honoured in the reader: the default list hides\n * archived rows and REPORTS how many it hid, so the footer can name them.\n */\n\nimport type {\n ChatConversationListPage,\n ChatConversationListQuery,\n ChatConversationSummary,\n ChatPersistencePort,\n} from \"../ports\";\nimport {\n createChatMessage,\n type ChatMessage,\n type ChatPart,\n type ChatRole,\n type ChatToolPart,\n} from \"../model\";\nimport {\n CHAT_SCHEMA,\n CHAT_TABLES,\n type ChatDataSource,\n type PgError,\n} from \"./data-source\";\n\nconst CONVERSATION_COLUMNS =\n \"id,title,created_at,updated_at,message_count,source_app,source_feature,metadata\";\n/** Favorites are PER PERSON: the caller's `platform.user_entity_state` row (RLS: own rows only),\n * never a column on the conversation (dropped by aidream migration 1377). */\nconst FAVORITES_SCHEMA = \"platform\";\nconst FAVORITES_TABLE = \"user_entity_state\";\nconst MESSAGE_COLUMNS =\n \"id,role,position,status,content,metadata,created_at,is_visible_to_user\";\n\nconst DEFAULT_LIMIT = 50;\n\nexport interface MatrxChatPersistenceOptions {\n dataSource: ChatDataSource;\n /**\n * The host's ACTIVE organization. It NO LONGER narrows any read: a person's\n * history spans every organization they can access, and access is decided by\n * RLS (active-org-is-never-a-list-filter.md). Kept optional so existing hosts\n * compile; a page that wants to narrow passes `organizationFilter` on the\n * list query instead.\n */\n organizationId?: string | undefined;\n /** Diagnostics for a failed read; absent ⇒ the error is thrown to the caller. */\n onError?: ((error: PgError, operation: string) => void) | undefined;\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : {};\n}\n\nfunction asString(value: unknown): string | null {\n return typeof value === \"string\" ? value : null;\n}\n\n/** Whether a persisted conversation row is archived. */\nexport function isArchivedRow(row: Record<string, unknown>): boolean {\n const metadata = asRecord(row.metadata);\n return metadata.archived === true;\n}\n\nexport function toConversationSummary(\n row: Record<string, unknown>,\n favorites: ReadonlySet<string> = new Set(),\n): ChatConversationSummary {\n const createdAt = asString(row.created_at) ?? new Date(0).toISOString();\n return {\n id: asString(row.id) ?? \"\",\n title: asString(row.title),\n createdAt,\n updatedAt: asString(row.updated_at) ?? createdAt,\n messageCount: typeof row.message_count === \"number\" ? row.message_count : 0,\n archived: isArchivedRow(row),\n isFavorite: favorites.has(asString(row.id) ?? \"\"),\n sourceApp: asString(row.source_app),\n sourceFeature: asString(row.source_feature),\n };\n}\n\n/**\n * Translate ONE persisted `chat.message.content` array into parts.\n *\n * Unknown persisted types are NOT dropped: they become a `notice` part naming\n * the type, because a transcript that silently loses a part is a screen that\n * lies about what was said.\n */\nexport function mapPersistedContent(content: unknown): ChatPart[] {\n if (!Array.isArray(content)) return [];\n const parts: ChatPart[] = [];\n const toolsByCallId = new Map<string, ChatToolPart>();\n\n for (const entry of content) {\n const item = asRecord(entry);\n const type = asString(item.type);\n switch (type) {\n case \"text\": {\n const text = asString(item.text) ?? \"\";\n if (text) parts.push({ type: \"text\", text });\n break;\n }\n case \"thinking\":\n case \"reasoning\": {\n const text = asString(item.text) ?? \"\";\n // A signature-only thinking block (no text) is a provider round-trip\n // artefact, not something a reader ever sees.\n if (text) parts.push({ type: \"reasoning\", text, state: \"done\" });\n break;\n }\n case \"tool_call\": {\n const callId = asString(item.call_id) ?? asString(item.id);\n const toolName = asString(item.name) ?? \"tool\";\n if (callId === null) break;\n const part: ChatToolPart = {\n type: \"tool\",\n toolCallId: callId,\n toolName,\n state: \"input-available\",\n input: item.arguments ?? item.input,\n output: undefined,\n errorText: null,\n progress: [],\n delegated: false,\n };\n toolsByCallId.set(callId, part);\n parts.push(part);\n break;\n }\n case \"tool_result\": {\n const callId =\n asString(item.call_id) ?? asString(item.tool_use_id) ?? asString(item.id);\n if (callId === null) break;\n const isError = item.is_error === true;\n const existing = toolsByCallId.get(callId);\n if (existing) {\n existing.state = isError ? \"output-error\" : \"output-available\";\n existing.output = item.output ?? item.content ?? item.result;\n existing.errorText = isError\n ? (asString(item.error) ?? `The ${existing.toolName} tool failed.`)\n : null;\n break;\n }\n // A result whose call landed in an EARLIER message row (the common\n // shape: `assistant` holds the call, `tool` holds the result).\n parts.push({\n type: \"tool\",\n toolCallId: callId,\n toolName: asString(item.name) ?? \"tool\",\n state: isError ? \"output-error\" : \"output-available\",\n input: undefined,\n output: item.output ?? item.content ?? item.result,\n errorText: isError ? (asString(item.error) ?? \"The tool failed.\") : null,\n progress: [],\n delegated: false,\n });\n break;\n }\n default: {\n parts.push({\n type: \"notice\",\n level: \"low\",\n code: \"unrenderable_persisted_part\",\n userMessage: `Part of this message could not be shown (stored as \"${type ?? \"unknown\"}\").`,\n remedy: null,\n });\n }\n }\n }\n return parts;\n}\n\n/**\n * Fold the persisted rows into the thread's messages.\n *\n * A `tool` row carries only results for a call made in the PREVIOUS assistant\n * row; merging it into that row is what makes one tool card instead of two\n * half-cards, and it is exactly the logic every host re-derived.\n */\nexport function mapPersistedMessages(\n rows: readonly Record<string, unknown>[],\n): ChatMessage[] {\n const messages: ChatMessage[] = [];\n for (const row of rows) {\n if (row.is_visible_to_user === false) continue;\n const role = (asString(row.role) ?? \"assistant\") as ChatRole;\n const parts = mapPersistedContent(row.content);\n\n if (role === \"tool\") {\n const previous = messages[messages.length - 1];\n if (previous && previous.role === \"assistant\") {\n for (const part of parts) {\n if (part.type !== \"tool\") {\n previous.parts.push(part);\n continue;\n }\n const match = previous.parts.find(\n (candidate): candidate is ChatToolPart =>\n candidate.type === \"tool\" && candidate.toolCallId === part.toolCallId,\n );\n if (match) {\n match.state = part.state;\n match.output = part.output;\n match.errorText = part.errorText;\n } else {\n previous.parts.push(part);\n }\n }\n continue;\n }\n }\n\n const status = asString(row.status);\n messages.push(\n createChatMessage({\n id: asString(row.id) ?? undefined,\n role,\n parts,\n status: status === \"error\" ? \"error\" : \"complete\",\n metadata: {\n serverMessageId: asString(row.id),\n createdAt: asString(row.created_at) ?? new Date(0).toISOString(),\n raw: asRecord(row.metadata),\n },\n }),\n );\n }\n return messages;\n}\n\nexport function createMatrxChatPersistence(\n options: MatrxChatPersistenceOptions,\n): ChatPersistencePort {\n const table = (name: string) =>\n options.dataSource.schema(CHAT_SCHEMA).from(name);\n\n const fail = (error: PgError, operation: string): never => {\n options.onError?.(error, operation);\n throw new Error(`[ai-matrx/chat] ${operation} failed: ${error.message}`);\n };\n\n /** The caller's favorites among these conversations. A failed read is reported and the page is\n * still returned (with no stars) — a list never disappears because the star read failed. */\n const readFavorites = async (ids: string[]): Promise<Set<string>> => {\n if (ids.length === 0) return new Set();\n const { data, error } = await options.dataSource\n .schema(FAVORITES_SCHEMA)\n .from(FAVORITES_TABLE)\n .select(\"entity_id\")\n .eq(\"entity_type\", \"conversation\")\n .eq(\"is_favorite\", true)\n .in(\"entity_id\", ids);\n if (error) {\n options.onError?.(error, \"listConversations.favorites\");\n return new Set();\n }\n return new Set(((data ?? []) as Record<string, unknown>[]).map((r) => asString(r.entity_id) ?? \"\"));\n };\n\n return {\n async loadThread(conversationId: string): Promise<ChatMessage[]> {\n const { data, error } = await table(CHAT_TABLES.message)\n .select(MESSAGE_COLUMNS)\n .eq(\"conversation_id\", conversationId)\n .is(\"deleted_at\", null)\n .order(\"position\", { ascending: true });\n if (error) fail(error, \"loadThread\");\n return mapPersistedMessages((data ?? []) as Record<string, unknown>[]);\n },\n\n async listConversations(\n query: ChatConversationListQuery,\n ): Promise<ChatConversationListPage> {\n const limit = query.limit ?? DEFAULT_LIMIT;\n let builder = table(CHAT_TABLES.conversation)\n .select(CONVERSATION_COLUMNS)\n .is(\"deleted_at\", null)\n .order(\"updated_at\", { ascending: false })\n // Over-read by one so the caller gets an honest `nextBefore` instead\n // of a \"there might be more\" guess, and by the archive headroom so\n // hiding archived rows does not silently shorten the page.\n .limit(limit * 2 + 1);\n if (query.before !== undefined) builder = builder.lt(\"updated_at\", query.before);\n // The page's OWN organization filter — absent/null = all organizations.\n if (query.organizationFilter) {\n builder = builder.eq(\"organization_id\", query.organizationFilter);\n }\n if (query.sourceApp !== undefined) {\n builder = builder.eq(\"source_app\", query.sourceApp);\n }\n if (query.sourceFeature !== undefined) {\n builder = builder.eq(\"source_feature\", query.sourceFeature);\n }\n\n const { data, error } = await builder;\n if (error) fail(error, \"listConversations\");\n\n const rows = (data ?? []) as Record<string, unknown>[];\n const favorites = await readFavorites(rows.map((r) => asString(r.id)).filter((id): id is string => !!id));\n const includeArchived = query.includeArchived === true;\n let archivedHidden = 0;\n const kept: ChatConversationSummary[] = [];\n let nextBefore: string | null = null;\n\n for (const row of rows) {\n const summary = toConversationSummary(row, favorites);\n if (!includeArchived && summary.archived) {\n archivedHidden += 1;\n continue;\n }\n if (kept.length === limit) {\n nextBefore = summary.updatedAt;\n break;\n }\n kept.push(summary);\n }\n\n return { conversations: kept, archivedHidden, nextBefore };\n },\n\n async setArchived(conversationId: string, archived: boolean): Promise<void> {\n // `metadata` is jsonb and carries more than this flag, so the write is\n // READ-MERGE-WRITE and never a blind overwrite — a `{archived:true}`\n // update would delete every other key in the column.\n const read = await table(CHAT_TABLES.conversation)\n .select(\"id,metadata\")\n .eq(\"id\", conversationId)\n .limit(1);\n if (read.error) fail(read.error, \"setArchived\");\n const row = ((read.data ?? []) as Record<string, unknown>[])[0];\n if (row === undefined) {\n throw new Error(\n `[ai-matrx/chat] Conversation ${conversationId} could not be read, so its archive state was not changed. ` +\n \"It may have been deleted, or this account may not have access to it.\",\n );\n }\n const merged = { ...asRecord(row.metadata), archived };\n const { error } = await table(CHAT_TABLES.conversation)\n .update({ metadata: merged })\n .eq(\"id\", conversationId);\n if (error) fail(error, \"setArchived\");\n },\n\n async rename(conversationId: string, title: string): Promise<void> {\n const { error } = await table(CHAT_TABLES.conversation)\n .update({ title })\n .eq(\"id\", conversationId);\n if (error) fail(error, \"rename\");\n },\n };\n}\n","/**\n * THE TOOL-CALL STATE MACHINE.\n *\n * `input-streaming → input-available → approval-requested →\n * output-available | output-error | output-denied`\n *\n * It lives in the kernel, not in a renderer, for the reason C22 names: this is\n * exactly the logic four repositories re-derived four different ways. A tool\n * card that shows \"running\" after the run failed, or that re-opens a settled\n * call because a late duplicate frame arrived, is the class this file closes.\n *\n * The machine is MONOTONIC: the three output states are terminal, and a\n * transition that would move backwards is REFUSED and reported — never applied\n * silently (Law 4).\n */\n\nimport type { ChatMessage, ChatToolPart, ChatToolState } from \"./model\";\n\n/** Rank: a transition is legal only when it strictly increases, or is a\n * same-state refresh of a non-terminal state (progress beats). */\nconst RANK: Record<ChatToolState, number> = {\n \"input-streaming\": 0,\n \"input-available\": 1,\n \"approval-requested\": 2,\n \"output-available\": 3,\n \"output-error\": 3,\n \"output-denied\": 3,\n};\n\nconst TERMINAL: ReadonlySet<ChatToolState> = new Set<ChatToolState>([\n \"output-available\",\n \"output-error\",\n \"output-denied\",\n]);\n\nexport function isTerminalToolState(state: ChatToolState): boolean {\n return TERMINAL.has(state);\n}\n\nexport interface ToolStateTransition {\n /** The state to store. Equal to `from` when the transition was refused. */\n readonly state: ChatToolState;\n readonly applied: boolean;\n /** Present only when `applied` is false — say WHY, out loud. */\n readonly refusal: string | null;\n}\n\n/**\n * Advance a tool part. Returns the state to keep plus, when the move was\n * refused, a sentence a diagnostic sink can print verbatim.\n */\nexport function advanceToolState(\n from: ChatToolState,\n to: ChatToolState,\n): ToolStateTransition {\n if (from === to) {\n if (TERMINAL.has(from)) {\n return {\n state: from,\n applied: false,\n refusal: `tool state '${from}' is terminal and was re-announced; the duplicate frame was ignored`,\n };\n }\n return { state: to, applied: true, refusal: null };\n }\n if (TERMINAL.has(from)) {\n return {\n state: from,\n applied: false,\n refusal: `tool state '${from}' is terminal; refusing to move it to '${to}'`,\n };\n }\n const fromRank = RANK[from];\n const toRank = RANK[to];\n if (toRank < fromRank) {\n return {\n state: from,\n applied: false,\n refusal: `refusing to move a tool call backwards from '${from}' to '${to}'`,\n };\n }\n return { state: to, applied: true, refusal: null };\n}\n\n/**\n * Map ONE aidream tool lifecycle name onto the machine.\n *\n * Server truth, read off the live corpus and\n * `@ai-matrx/agents/projection/request`: the wire emits `tool_started`,\n * `tool_progress`, `tool_step`, `tool_result_preview`, `tool_completed`,\n * `tool_error`, `tool_delegated` — either as a top-level `event` or nested in\n * a `tool_event` frame's `data.event`.\n *\n * `null` means \"this frame carries no state change\" (a progress beat), which\n * is different from an unknown name — an unknown name is returned as\n * `\"unknown\"` so the caller can report it instead of dropping it.\n */\nexport function toolLifecycleToState(\n lifecycle: string,\n): ChatToolState | null | \"unknown\" {\n switch (lifecycle) {\n case \"tool_started\":\n return \"input-available\";\n case \"tool_progress\":\n case \"tool_step\":\n case \"tool_result_preview\":\n return null;\n case \"tool_delegated\":\n // The server handed the call to the CLIENT: the input is final and\n // nothing has run yet. It is NOT an approval request (the human is not\n // being asked) and it is NOT an output.\n return \"input-available\";\n case \"tool_approval_requested\":\n return \"approval-requested\";\n case \"tool_completed\":\n return \"output-available\";\n case \"tool_error\":\n return \"output-error\";\n case \"tool_denied\":\n return \"output-denied\";\n default:\n return \"unknown\";\n }\n}\n\n/** Every lifecycle name this machine understands — the guard's census. */\nexport const KNOWN_TOOL_LIFECYCLES: readonly string[] = [\n \"tool_started\",\n \"tool_progress\",\n \"tool_step\",\n \"tool_result_preview\",\n \"tool_delegated\",\n \"tool_approval_requested\",\n \"tool_completed\",\n \"tool_error\",\n \"tool_denied\",\n];\n\n\n/**\n * THE CLIENT'S OWN ANSWER.\n *\n * When the CLIENT answers a delegated tool (`tool_delegated` → the host runs it\n * → posts the result) the server learns the call is done from that post — but\n * for a delegated call it sends NO completion frame, because it hard-suspended\n * and closed the stream. A store that only moves on frames therefore leaves the\n * card on `input-available` (\"Working…\") for as long as the conversation stays\n * open. This is the defect all four hand-built chats had (found 2026-09-30 in\n * matrx-frontend, matrx-extend and matrx-local): the answerer is the first to\n * know, so it tells ITS OWN store, through this one door, in the same tick.\n */\nexport interface ChatToolAnswer {\n toolCallId: string;\n /** The result, on success. */\n output?: unknown;\n /** Set when the tool failed — the card goes to `output-error`. */\n errorText?: string | null;\n /** Set when the reader refused it — the card goes to `output-denied`. */\n denied?: boolean;\n}\n\nexport interface ChatToolSettlement {\n /** The transcript to keep — the SAME array when nothing changed. */\n readonly messages: readonly ChatMessage[];\n /** The message whose part changed, for the per-message wake. */\n readonly messageId: string | null;\n readonly applied: boolean;\n /** Present when `applied` is false — say WHY, out loud. */\n readonly refusal: string | null;\n}\n\n/** Pure: apply a client answer to the transcript, monotonically. */\nexport function settleToolAnswer(\n messages: readonly ChatMessage[],\n answer: ChatToolAnswer,\n): ChatToolSettlement {\n for (let m = messages.length - 1; m >= 0; m -= 1) {\n const message = messages[m];\n if (!message) continue;\n const index = message.parts.findIndex(\n (part) => part.type === \"tool\" && part.toolCallId === answer.toolCallId,\n );\n if (index === -1) continue;\n const part = message.parts[index] as ChatToolPart;\n const next: ChatToolState = answer.denied\n ? \"output-denied\"\n : answer.errorText != null\n ? \"output-error\"\n : \"output-available\";\n const transition = advanceToolState(part.state, next);\n if (!transition.applied) {\n return {\n messages,\n messageId: message.id,\n applied: false,\n refusal: transition.refusal,\n };\n }\n const settled: ChatToolPart = {\n ...part,\n state: transition.state,\n output: answer.output !== undefined ? answer.output : part.output,\n errorText: next === \"output-error\" ? (answer.errorText ?? null) : null,\n };\n const parts = message.parts.slice();\n parts[index] = settled;\n const copy = messages.slice();\n copy[m] = { ...message, parts };\n return { messages: copy, messageId: message.id, applied: true, refusal: null };\n }\n return {\n messages,\n messageId: null,\n applied: false,\n refusal: `no tool call ${answer.toolCallId} is in this transcript, so there was nothing to settle`,\n };\n}\n","/**\n * THE REDUCER — one live stream frame becomes message parts.\n *\n * Every branch below exists because the LIVE corpus in `fixtures/corpus/`\n * contains that frame. Nothing here was guessed from a client: the wire\n * vocabulary was read off bytes recorded from `server.app.matrxserver.com` on\n * 2026-09-17 and cross-checked against\n * `@ai-matrx/agents/projection/request`.\n *\n * The projector is deliberately MUTABLE. A streaming turn applies one frame\n * per token; rebuilding an immutable tree per token is the classic reason a\n * chat janks at 2,000 tokens. Immutability is provided where React needs it —\n * `snapshot()` hands back a fresh `ChatMessage` with a fresh `parts` array —\n * and the store coalesces those snapshots per animation frame.\n */\n\nimport {\n advanceToolState,\n toolLifecycleToState,\n} from \"./tool-state\";\nimport type { ChatFeatures } from \"./config\";\nimport {\n createChatMessage,\n type ChatErrorPart,\n type ChatMessage,\n type ChatNoticePart,\n type ChatPart,\n type ChatRenderBlockPart,\n type ChatReasoningPart,\n type ChatTextPart,\n type ChatToolPart,\n} from \"./model\";\nimport type { ChatStreamFrame } from \"./ports\";\n\n/** The reasoning sentinel the Google path wraps thinking text in. */\nexport const REASONING_OPEN = \"<reasoning>\";\nexport const REASONING_CLOSE = \"</reasoning>\";\n\nexport type ChatTurnOutcome =\n | \"streaming\"\n | \"awaiting-tools\"\n | \"complete\"\n | \"error\"\n | \"cancelled\";\n\nexport interface ChatTurnRefusal {\n code: string;\n message: string;\n detail?: unknown;\n}\n\nexport interface ChatTurnProjectorOptions {\n features: ChatFeatures;\n /** The message id for the assistant turn (kept stable across the stream). */\n messageId?: string | undefined;\n /** Every refusal / unknown frame — reported, never dropped (Law 4). */\n onRefusal?: ((refusal: ChatTurnRefusal) => void) | undefined;\n}\n\nexport interface ChatTurnProjector {\n apply(frame: ChatStreamFrame): void;\n /** A fresh, structurally-shared assistant message. */\n snapshot(): ChatMessage;\n readonly state: ChatTurnState;\n}\n\nexport interface ChatTurnState {\n outcome: ChatTurnOutcome;\n conversationId: string | null;\n requestId: string | null;\n phase: string | null;\n /** The `chat.message` row ids the server reserved, by role. */\n serverMessageIds: { user: string | null; assistant: string | null };\n completion: Record<string, unknown> | null;\n error: ChatErrorPart | null;\n /** Bumps on every applied frame — the store's cheap dirty check. */\n revision: number;\n lastTransportSeq: number;\n transportStreamId: string | null;\n /** Frames the projector did not understand; never silently zero. */\n unknownEvents: string[];\n}\n\nconst asRecord = (value: unknown): Record<string, unknown> =>\n value !== null && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : {};\n\nconst asString = (value: unknown): string | null =>\n typeof value === \"string\" ? value : null;\n\nconst asNumber = (value: unknown): number | null =>\n typeof value === \"number\" && Number.isFinite(value) ? value : null;\n\n/** Events the projector deliberately ignores — real frames with no part. */\nconst IGNORED_EVENTS: ReadonlySet<string> = new Set([\n \"heartbeat\",\n \"context_state\",\n \"context_trimmed\",\n \"record_update\",\n \"ping\",\n \"debug\",\n // `init`/`completion` pairs exist for five operations; only the\n // `user_request` completion is terminal, and `init` carries no part.\n \"init\",\n]);\n\nexport function createChatTurnProjector(\n options: ChatTurnProjectorOptions,\n): ChatTurnProjector {\n const features = options.features;\n const messageId = options.messageId ?? createChatMessage({ role: \"assistant\" }).id;\n const parts: ChatPart[] = [];\n const toolsByCallId = new Map<string, ChatToolPart>();\n const blocksById = new Map<string, ChatRenderBlockPart>();\n\n /** True between `reasoning {started}` and `reasoning {stopped}`. */\n let reasoningActive = false;\n /** True while inside an unterminated `<reasoning>` span in chunk text. */\n let insideSentinel = false;\n\n const state: ChatTurnState = {\n outcome: \"streaming\",\n conversationId: null,\n requestId: null,\n phase: null,\n serverMessageIds: { user: null, assistant: null },\n completion: null,\n error: null,\n revision: 0,\n lastTransportSeq: 0,\n transportStreamId: null,\n unknownEvents: [],\n };\n\n const refuse = (refusal: ChatTurnRefusal): void => {\n options.onRefusal?.(refusal);\n };\n\n const lastPart = (): ChatPart | undefined => parts[parts.length - 1];\n\n const appendText = (text: string): void => {\n const tail = lastPart();\n if (tail && tail.type === \"text\") {\n tail.text += text;\n return;\n }\n const part: ChatTextPart = { type: \"text\", text };\n parts.push(part);\n };\n\n const appendReasoning = (text: string): void => {\n const tail = lastPart();\n if (tail && tail.type === \"reasoning\" && tail.state === \"streaming\") {\n tail.text += text;\n return;\n }\n const part: ChatReasoningPart = { type: \"reasoning\", text, state: \"streaming\" };\n parts.push(part);\n };\n\n const closeReasoning = (): void => {\n for (let i = parts.length - 1; i >= 0; i -= 1) {\n const part = parts[i];\n if (part && part.type === \"reasoning\" && part.state === \"streaming\") {\n part.state = \"done\";\n return;\n }\n }\n };\n\n /**\n * Route ONE chunk of answer text.\n *\n * With `reasoningSentinel: \"inline\"` the text goes straight to the answer,\n * byte-for-byte identical to the shipped projection's `answer`. With\n * `\"split\"` (the platform default) the `<reasoning>…</reasoning>` span\n * becomes a reasoning part, so a reader never sees the raw sentinel.\n */\n const routeChunk = (text: string): void => {\n if (features.reasoningSentinel === \"inline\") {\n appendText(text);\n return;\n }\n let rest = text;\n while (rest.length > 0) {\n if (insideSentinel) {\n const close = rest.indexOf(REASONING_CLOSE);\n if (close === -1) {\n appendReasoning(rest);\n return;\n }\n appendReasoning(rest.slice(0, close));\n closeReasoning();\n insideSentinel = false;\n rest = rest.slice(close + REASONING_CLOSE.length);\n continue;\n }\n const open = rest.indexOf(REASONING_OPEN);\n if (open === -1) {\n appendText(rest);\n return;\n }\n if (open > 0) appendText(rest.slice(0, open));\n insideSentinel = true;\n rest = rest.slice(open + REASONING_OPEN.length);\n }\n };\n\n const toolFor = (callId: string, toolName: string): ChatToolPart => {\n const existing = toolsByCallId.get(callId);\n if (existing) return existing;\n const part: ChatToolPart = {\n type: \"tool\",\n toolCallId: callId,\n toolName,\n state: \"input-streaming\",\n input: undefined,\n output: undefined,\n errorText: null,\n progress: [],\n delegated: false,\n };\n toolsByCallId.set(callId, part);\n parts.push(part);\n return part;\n };\n\n const applyToolLifecycle = (\n lifecycle: string,\n data: Record<string, unknown>,\n ): void => {\n const callId = asString(data.call_id);\n const toolName = asString(data.tool_name);\n if (callId === null || toolName === null) {\n refuse({\n code: \"tool_frame_without_identity\",\n message: `a '${lifecycle}' frame arrived without call_id/tool_name and was ignored`,\n detail: data,\n });\n return;\n }\n const part = toolFor(callId, toolName);\n const payload = asRecord(data.data);\n const message = asString(data.message) ?? \"\";\n\n const next = toolLifecycleToState(lifecycle);\n if (next === \"unknown\") {\n state.unknownEvents.push(lifecycle);\n refuse({\n code: \"unknown_tool_lifecycle\",\n message: `tool lifecycle '${lifecycle}' is not in this package's state machine; the frame was recorded but not applied`,\n detail: data,\n });\n return;\n }\n\n if (lifecycle === \"tool_started\" && \"arguments\" in payload) {\n part.input = payload.arguments;\n }\n if (lifecycle === \"tool_delegated\") {\n part.delegated = true;\n if (\"arguments\" in payload) part.input = payload.arguments;\n }\n if (lifecycle === \"tool_completed\" && \"result\" in payload) {\n part.output = payload.result;\n }\n if (lifecycle === \"tool_error\") {\n part.errorText =\n asString(payload.error) ?? (message || `The ${toolName} tool failed.`);\n }\n\n if (next === null) {\n part.progress.push({\n toolName,\n message,\n percent: asNumber(payload.percent),\n at: asNumber(data.timestamp),\n });\n return;\n }\n\n const transition = advanceToolState(part.state, next);\n if (!transition.applied) {\n refuse({\n code: \"tool_state_transition_refused\",\n message: `${transition.refusal ?? \"refused\"} (call ${callId}, tool ${toolName})`,\n detail: data,\n });\n return;\n }\n part.state = transition.state;\n if (next === \"input-available\" && part.delegated) {\n state.outcome = \"awaiting-tools\";\n } else if (\n state.outcome === \"awaiting-tools\" &&\n (next === \"output-available\" || next === \"output-error\")\n ) {\n state.outcome = \"streaming\";\n }\n };\n\n const pushNotice = (\n level: ChatNoticePart[\"level\"],\n data: Record<string, unknown>,\n ): void => {\n const userMessage = asString(data.user_message) ?? \"\";\n if (!userMessage) return;\n const part: ChatNoticePart = {\n type: \"notice\",\n level,\n code: asString(data.code),\n userMessage,\n remedy: asString(asRecord(data.metadata).remedy),\n };\n parts.push(part);\n };\n\n const apply = (frame: ChatStreamFrame): void => {\n const streamSeq = asNumber(frame.stream_seq);\n const streamId = asString(frame.stream_id);\n const sameSegment = streamId === null || streamId === state.transportStreamId;\n if (sameSegment && streamSeq !== null && streamSeq <= state.lastTransportSeq) {\n // A replayed frame after a reconnect. Dropping it is the whole point of\n // the sequence: applying it doubles text.\n return;\n }\n state.lastTransportSeq =\n streamSeq === null\n ? state.lastTransportSeq\n : sameSegment\n ? Math.max(state.lastTransportSeq, streamSeq)\n : streamSeq;\n if (streamId !== null) state.transportStreamId = streamId;\n state.revision += 1;\n\n const data = asRecord(frame.data);\n\n switch (frame.event) {\n case \"chunk\": {\n const text = asString(data.text);\n if (text !== null) routeChunk(text);\n return;\n }\n case \"reasoning_chunk\": {\n const text = asString(data.text);\n if (text !== null) {\n reasoningActive = true;\n appendReasoning(text);\n }\n return;\n }\n case \"reasoning\": {\n const started = data.state === \"started\";\n reasoningActive = started;\n if (!started) closeReasoning();\n return;\n }\n case \"phase\": {\n const phase = asString(data.phase);\n if (phase !== null) state.phase = phase;\n return;\n }\n case \"data\": {\n if (data.type === \"conversation_id\") {\n const conversationId = asString(data.conversation_id);\n if (conversationId !== null) state.conversationId = conversationId;\n }\n return;\n }\n case \"record_reserved\": {\n // The server names the `chat.message` rows it reserved and, in\n // `metadata.role`, which side each one is. This is how an optimistic\n // user bubble learns its durable row id without a re-read.\n if (asString(data.table) !== \"message\") return;\n const recordId = asString(data.record_id);\n const role = asString(asRecord(data.metadata).role);\n if (recordId === null) return;\n if (role === \"user\") state.serverMessageIds.user = recordId;\n else if (role === \"assistant\") state.serverMessageIds.assistant = recordId;\n return;\n }\n case \"tool_event\": {\n const lifecycle = asString(data.event);\n if (lifecycle === null) {\n refuse({\n code: \"tool_event_without_lifecycle\",\n message: \"a tool_event frame carried no data.event and was ignored\",\n detail: data,\n });\n return;\n }\n applyToolLifecycle(lifecycle, data);\n return;\n }\n case \"tool_started\":\n case \"tool_progress\":\n case \"tool_step\":\n case \"tool_result_preview\":\n case \"tool_completed\":\n case \"tool_error\":\n case \"tool_delegated\": {\n applyToolLifecycle(frame.event, data);\n return;\n }\n case \"render_block\": {\n const blockId = asString(data.blockId);\n const blockIndex = asNumber(data.blockIndex);\n const kind = asString(data.type);\n if (blockId === null || blockIndex === null || kind === null) {\n refuse({\n code: \"render_block_without_identity\",\n message: \"a render_block frame lacked blockId/blockIndex/type and was ignored\",\n detail: data,\n });\n return;\n }\n const status =\n data.status === \"complete\" || data.status === \"error\"\n ? (data.status as \"complete\" | \"error\")\n : \"streaming\";\n const existing = blocksById.get(blockId);\n if (existing) {\n existing.status = status;\n existing.content = asString(data.content);\n existing.data = data.data;\n return;\n }\n const part: ChatRenderBlockPart = {\n type: \"render-block\",\n blockId,\n blockIndex,\n kind,\n content: asString(data.content),\n data: data.data,\n status,\n };\n blocksById.set(blockId, part);\n parts.push(part);\n return;\n }\n case \"warning\": {\n const level = asString(data.level);\n pushNotice(\n level === \"high\" || level === \"medium\" || level === \"low\" ? level : \"low\",\n data,\n );\n return;\n }\n case \"info\": {\n // `initial_message` is chrome (\"Initializing Matrx Chat…\"), not news.\n if (asString(data.code) === \"initial_message\") return;\n pushNotice(\"info\", data);\n return;\n }\n case \"error\": {\n const message =\n asString(data.message) ?? asString(data.user_message) ?? \"The run failed.\";\n const part: ChatErrorPart = {\n type: \"error\",\n errorType: asString(data.error_type),\n code: asString(data.code),\n message,\n userMessage: asString(data.user_message) ?? message,\n recoverable: data.recoverable === true,\n remedy: asString(asRecord(data.details).remedy),\n };\n parts.push(part);\n state.error = part;\n state.outcome = \"error\";\n return;\n }\n case \"completion\": {\n if (asString(data.operation) !== \"user_request\") return;\n state.completion = data;\n const status = asString(data.status);\n if (status === \"failed\") {\n state.outcome = \"error\";\n if (state.error === null) {\n const result = asRecord(data.result);\n const message =\n asString(result.error) ??\n asString(result.user_message) ??\n \"The run failed.\";\n const part: ChatErrorPart = {\n type: \"error\",\n errorType: \"run_failed\",\n code: null,\n message,\n userMessage: message,\n recoverable: true,\n remedy: null,\n };\n parts.push(part);\n state.error = part;\n }\n } else if (status === \"cancelled\") {\n state.outcome = \"cancelled\";\n } else if (state.outcome !== \"error\") {\n state.outcome = \"complete\";\n }\n return;\n }\n case \"end\": {\n if (state.outcome === \"streaming\" || state.outcome === \"awaiting-tools\") {\n state.outcome = \"complete\";\n }\n if (insideSentinel || reasoningActive) {\n closeReasoning();\n insideSentinel = false;\n reasoningActive = false;\n }\n return;\n }\n default: {\n if (IGNORED_EVENTS.has(frame.event)) return;\n state.unknownEvents.push(frame.event);\n refuse({\n code: \"unknown_stream_event\",\n message: `stream event '${frame.event}' is not in this package's vocabulary; it was recorded, not dropped`,\n detail: frame.data,\n });\n }\n }\n };\n\n const snapshot = (): ChatMessage => {\n const status =\n state.outcome === \"error\"\n ? \"error\"\n : state.outcome === \"cancelled\"\n ? \"cancelled\"\n : state.outcome === \"complete\"\n ? \"complete\"\n : \"streaming\";\n const completion = state.completion;\n return {\n id: messageId,\n role: \"assistant\",\n // Fresh array + fresh part objects: React compares by identity, and a\n // mutated-in-place part never re-renders.\n parts: parts.map((part) => ({ ...part }) as ChatPart),\n status,\n metadata: {\n requestId: state.requestId,\n serverMessageId: state.serverMessageIds.assistant,\n modelRef: completion ? extractModelRef(completion) : null,\n createdAt: new Date(0).toISOString(),\n raw: completion,\n },\n };\n };\n\n return {\n apply,\n snapshot,\n get state() {\n return state;\n },\n };\n}\n\n/**\n * The model the server actually billed, from the completion's usage block\n * (`result.total_usage.by_model` — one key per model that ran). Returns null\n * rather than a UUID or a guess: a screen never prints an id, and \"unknown\" is\n * the honest answer when the completion carried no usage.\n */\nexport function extractModelRef(\n completion: Record<string, unknown>,\n): string | null {\n const result = asRecord(completion.result);\n const usage = asRecord(result.total_usage);\n const byModel = asRecord(usage.by_model);\n const names = Object.keys(byModel);\n return names.length > 0 ? (names[names.length - 1] ?? null) : null;\n}\n","/**\n * OPINIONS BECOME KNOBS (Law 6) — resolved in the kernel, never hardcoded and\n * never a question for a customer.\n *\n * Four layers, lowest to highest: **platform default → organization setting →\n * surface config → per-user preference**. Every knob has a platform default,\n * so a host that sets nothing still gets the platform's taste.\n *\n * One of these knobs is a SAFETY RULE and it lives here on purpose (C22):\n * `routing` carries matrx-local's \"a confidential thread never reaches a cloud\n * provider\". In the kernel it is a thread-level constraint the store ENFORCES\n * with a refusal — it never silently falls back to a cloud target.\n */\n\nexport type ChatSendKey = \"enter\" | \"mod-enter\";\nexport type ChatDensity = \"comfortable\" | \"compact\";\n\n/**\n * Where a thread's text is allowed to go.\n * - `\"any\"` — the platform default: any target the host offers.\n * - `\"local-only\"` — CONFIDENTIAL. The thread refuses a cloud target and says\n * why. This is the highest-severity rule in the design (§12 risk 4).\n */\nexport type ChatRoutingPolicy = \"any\" | \"local-only\";\n\n/** What a transport declares about itself so the kernel can judge it. */\nexport type ChatTargetLocality = \"local\" | \"cloud\";\n\nexport interface ChatFeatures {\n /** Enter sends, or Cmd/Ctrl+Enter sends. */\n sendKey: ChatSendKey;\n density: ChatDensity;\n /** Reasoning parts visible without a click. */\n showReasoningByDefault: boolean;\n /** Tool cards start expanded. */\n expandToolCardsByDefault: boolean;\n /** Transcript sticks to the bottom while the reader is at the bottom. */\n autoScroll: boolean;\n /** Read new assistant turns aloud as they arrive. */\n readAloudAutoPlay: boolean;\n /** Keep an unsent composer draft per conversation across reloads. */\n retainDrafts: boolean;\n /**\n * The composer may send while an answer is still arriving. OFF by the\n * platform default (a kernel thread runs one turn at a time). A host whose\n * send QUEUES the message behind the live turn — a coding session, where\n * the engine holds a per-session queue — turns it on; the composer then\n * shows Send (queue) beside Stop instead of Stop alone.\n */\n sendWhileBusy: boolean;\n /** THE ARCHIVED-ITEMS LAW: the conversation list hides archived by default. */\n hideArchivedConversations: boolean;\n /**\n * The per-turn action bar (copy, ask again, edit and send again, plus the\n * host's own). ON by the platform default — every serious chat has one, and\n * a reader who cannot copy an answer retypes it. An organization that does\n * not want it turns it OFF here rather than a host forking the transcript.\n */\n messageActions: boolean;\n /** Largest attachment the composer accepts, in BYTES. */\n attachmentMaxBytes: number;\n /**\n * How the platform's inline reasoning sentinel is treated.\n *\n * Ground truth (captured live 2026-09-17): the Google path does NOT emit\n * `reasoning_chunk`. It emits `reasoning {state:\"started\"}`, then ordinary\n * `chunk` frames whose text opens with `<reasoning>` and closes with\n * `</reasoning>`, then `reasoning {state:\"stopped\"}`.\n *\n * - `\"split\"` (platform default) — that span becomes a `reasoning` part, so\n * a reader never sees the raw sentinel in the answer.\n * - `\"inline\"` — the span stays in the answer text, byte-for-byte identical\n * to `@ai-matrx/agents/projection/request`'s `answer`. This exists so the\n * parity harness can prove EXACT equality with the shipped projection, and\n * so a host mid-migration can keep its current screen.\n */\n reasoningSentinel: \"split\" | \"inline\";\n /** Where this thread's text may go. */\n routing: ChatRoutingPolicy;\n}\n\nexport const CHAT_PLATFORM_DEFAULTS: Readonly<ChatFeatures> = Object.freeze({\n sendKey: \"enter\",\n density: \"comfortable\",\n showReasoningByDefault: false,\n expandToolCardsByDefault: false,\n autoScroll: true,\n readAloudAutoPlay: false,\n retainDrafts: true,\n sendWhileBusy: false,\n hideArchivedConversations: true,\n messageActions: true,\n attachmentMaxBytes: 25 * 1024 * 1024,\n reasoningSentinel: \"split\",\n routing: \"any\",\n});\n\nexport interface ChatConfigLayers {\n /** Organization setting rows, resolved by the host. */\n organization?: Partial<ChatFeatures>;\n /** This surface's configuration (a dock is not the full page). */\n surface?: Partial<ChatFeatures>;\n /** This person's preference. */\n user?: Partial<ChatFeatures>;\n}\n\n/** Resolve the four layers. Later layers win, key by key. */\nexport function resolveChatFeatures(layers: ChatConfigLayers = {}): ChatFeatures {\n return {\n ...CHAT_PLATFORM_DEFAULTS,\n ...stripUndefined(layers.organization),\n ...stripUndefined(layers.surface),\n ...stripUndefined(layers.user),\n };\n}\n\nfunction stripUndefined(\n value: Partial<ChatFeatures> | undefined,\n): Partial<ChatFeatures> {\n if (!value) return {};\n const out: Record<string, unknown> = {};\n for (const [key, entry] of Object.entries(value)) {\n if (entry !== undefined) out[key] = entry;\n }\n return out as Partial<ChatFeatures>;\n}\n\n/** The refusal a confidential thread produces instead of a silent fallback. */\nexport interface ChatRoutingRefusal {\n readonly allowed: false;\n readonly code: \"confidential_thread_cloud_target_refused\";\n readonly userMessage: string;\n readonly remedy: string;\n}\n\nexport type ChatRoutingDecision = { readonly allowed: true } | ChatRoutingRefusal;\n\n/**\n * THE CONFIDENTIAL-ROUTING RULE, in the kernel where it belongs.\n *\n * A thread pinned `local-only` REFUSES a cloud target. It does not downgrade,\n * it does not warn-and-send, and it does not quietly pick a different target:\n * the send fails with a named reason and a remedy. Re-deriving this per host\n * is how private text reaches a provider.\n */\nexport function decideRouting(\n policy: ChatRoutingPolicy,\n target: ChatTargetLocality,\n): ChatRoutingDecision {\n if (policy === \"local-only\" && target === \"cloud\") {\n return {\n allowed: false,\n code: \"confidential_thread_cloud_target_refused\",\n userMessage:\n \"This conversation is marked confidential, so it cannot be sent to a cloud AI provider.\",\n remedy:\n \"Choose a local engine for this conversation, or start a new conversation that is not marked confidential.\",\n };\n }\n return { allowed: true };\n}\n","/**\n * HOST INJECTION SEAMS — the ports a host may override.\n *\n * Per THE ALL-INCLUSIVE LAW every port here either ships a working default in\n * this package (`./matrx`, or the in-file defaults below) or is genuinely host\n * identity. A host injects identity and nothing else to be up and running.\n *\n * Phase 1 declares the ports the KERNEL uses. `files`, `nav`, `shell`,\n * `renderContent`, `renderModelRef` and `capabilities` are phase 2's — they\n * are deliberately ABSENT here rather than declared-and-unused, because a port\n * nothing calls is untested theory that rots (C25's reasoning).\n */\n\nimport type { ChatMessage, ChatRole } from \"./model\";\nimport type { ChatTargetLocality } from \"./config\";\n\n/** The ONE true injection. Read from the client's own session, never a cached copy. */\nexport interface ChatIdentityPort {\n /** A fresh access token per call. Cached copies rot when the cookie rotates. */\n getAccessToken(): Promise<string | null> | string | null;\n userId: string;\n organizationId?: string | undefined;\n}\n\n/** One frame off the wire, already normalized by `@ai-matrx/agents/stream/ndjson`. */\nexport interface ChatStreamFrame {\n event: string;\n data: unknown;\n stream_id?: string | undefined;\n stream_seq?: number | undefined;\n}\n\n/** What a started turn hands back before any frame arrives. */\nexport interface ChatTurnHandle {\n /** The server's `X-Request-ID` — the ONLY id cancel accepts. */\n requestId: string | null;\n conversationId: string | null;\n frames: AsyncIterable<ChatStreamFrame>;\n}\n\nexport interface ChatSendRequest {\n conversationId: string | null;\n /** True when this turn creates the conversation. */\n isNewConversation: boolean;\n /** False for an ephemeral run: nothing read, nothing written. */\n store: boolean;\n text: string;\n /** Durable Matrx file ids attached to this turn. */\n fileIds: readonly string[];\n signal: AbortSignal;\n}\n\n/**\n * THE TRANSPORT PORT — subscribe-shaped, NOT a fetch.\n *\n * It is this shape because matrx-extend's MV3 stream lives in an offscreen\n * document and is relayed over `chrome.runtime`: an API that has only ever met\n * `fetch` ossifies wrong. A host that does use fetch implements this in a few\n * lines (`./matrx` is that implementation).\n */\nexport interface ChatTransportPort {\n /** Where this transport sends text. The kernel refuses `\"cloud\"` for a\n * confidential thread — so a transport that lies here defeats the rule, and\n * it is the transport author's obligation to be honest. */\n readonly locality: ChatTargetLocality;\n start(request: ChatSendRequest): Promise<ChatTurnHandle>;\n /** Cooperative stop at the next iteration boundary. */\n cancel(requestId: string): Promise<void>;\n}\n\n/** A conversation as the history list shows it. */\nexport interface ChatConversationSummary {\n id: string;\n title: string | null;\n updatedAt: string;\n createdAt: string;\n messageCount: number;\n archived: boolean;\n isFavorite: boolean;\n /** Which surface produced it — the history list's source filter. */\n sourceApp: string | null;\n sourceFeature: string | null;\n}\n\nexport interface ChatConversationListQuery {\n limit?: number | undefined;\n /** Keyset cursor: return rows older than this ISO timestamp. */\n before?: string | undefined;\n /**\n * THE ARCHIVED-ITEMS LAW. Default false — archived rows are hidden, and the\n * caller that shows the list must name what it hides.\n */\n includeArchived?: boolean | undefined;\n sourceApp?: string | undefined;\n sourceFeature?: string | undefined;\n /**\n * The page's own organization filter (`?org_filter=`). Absent/null = ALL the\n * person's organizations, the default on every visit — never the active\n * organization (active-org-is-never-a-list-filter.md).\n */\n organizationFilter?: string | null | undefined;\n}\n\nexport interface ChatConversationListPage {\n conversations: ChatConversationSummary[];\n /** How many rows the archive filter hid, so the footer can say so. */\n archivedHidden: number;\n /** Cursor for the next page, or null at the end. */\n nextBefore: string | null;\n}\n\n/**\n * THE PERSISTENCE BOUNDARY (C10). The `chat.*` schema belongs to aidream, so\n * this package does not OWN it — but `./matrx` ships the complete binding, so\n * a host gets working persistence for free and only a customer on their own\n * tables ever implements this.\n *\n * With no binding the thread runs ephemeral AND SAYS SO on screen\n * (`ChatThreadSnapshot.ephemeral` + `ephemeralReason`).\n */\nexport interface ChatPersistencePort {\n /** Full transcript of one conversation, oldest first. */\n loadThread(conversationId: string): Promise<ChatMessage[]>;\n listConversations(\n query: ChatConversationListQuery,\n ): Promise<ChatConversationListPage>;\n setArchived(conversationId: string, archived: boolean): Promise<void>;\n rename(conversationId: string, title: string): Promise<void>;\n}\n\n/** Typed diagnostic sink. Default: `console`. */\nexport interface ChatErrorSinkPort {\n capture(event: {\n code: string;\n message: string;\n detail?: unknown;\n }): void;\n}\n\n/** Toast / banner sink. Default: a no-op that still reaches the errorSink. */\nexport interface ChatNotifierPort {\n notify(event: {\n level: \"info\" | \"warning\" | \"error\";\n message: string;\n remedy?: string | undefined;\n }): void;\n}\n\n/** Drafts, density, sidebar state. Default: in-memory, announced once. */\nexport interface ChatPrefsPort {\n get(key: string): string | null;\n set(key: string, value: string): void;\n remove(key: string): void;\n}\n\nexport function createConsoleErrorSink(): ChatErrorSinkPort {\n return {\n capture(event) {\n console.error(`[ai-matrx/chat] ${event.code}: ${event.message}`, event.detail);\n },\n };\n}\n\n/**\n * The default notifier. It never swallows: everything it is handed also\n * reaches the console, with the remedy, because a notice nobody renders is a\n * silent failure.\n */\nexport function createConsoleNotifier(): ChatNotifierPort {\n return {\n notify(event) {\n const line = event.remedy\n ? `[ai-matrx/chat] ${event.message} — ${event.remedy}`\n : `[ai-matrx/chat] ${event.message}`;\n if (event.level === \"error\") console.error(line);\n else if (event.level === \"warning\") console.warn(line);\n else console.info(line);\n },\n };\n}\n\n/**\n * The memory prefs fallback. It ANNOUNCES ITSELF ONCE with the remedy the\n * first time it is written to, because a draft that silently evaporates on\n * reload is exactly the class Law 4 forbids.\n */\nexport function createMemoryPrefs(\n notifier: ChatNotifierPort = createConsoleNotifier(),\n): ChatPrefsPort {\n const map = new Map<string, string>();\n let announced = false;\n const announce = (): void => {\n if (announced) return;\n announced = true;\n notifier.notify({\n level: \"warning\",\n message:\n \"Chat preferences and drafts are being kept in memory only, so they will be lost when this page reloads.\",\n remedy:\n \"Give the chat a `prefs` port backed by localStorage (or your own store) to keep drafts across reloads.\",\n });\n };\n return {\n get: (key) => map.get(key) ?? null,\n set: (key, value) => {\n announce();\n map.set(key, value);\n },\n remove: (key) => {\n map.delete(key);\n },\n };\n}\n\n/**\n * `localStorage` prefs with the memory fallback. Every read AND write is\n * wrapped: a private window, blocked site data, or a full quota makes the\n * accessor THROW, and an unguarded prefs port takes the whole chat down with\n * it.\n */\nexport function createWebPrefs(\n notifier: ChatNotifierPort = createConsoleNotifier(),\n): ChatPrefsPort {\n const fallback = createMemoryPrefs(notifier);\n let store: Storage | null = null;\n try {\n store = (globalThis as { localStorage?: Storage }).localStorage ?? null;\n if (store) {\n const probe = \"__ai_matrx_chat_probe__\";\n store.setItem(probe, \"1\");\n store.removeItem(probe);\n }\n } catch {\n store = null;\n }\n if (!store) return fallback;\n const live = store;\n return {\n get: (key) => {\n // A write that fell back to memory (quota, or a storage that accepts the\n // probe and rejects real writes) is INVISIBLE to `getItem` — it returns\n // null rather than throwing, so a read that trusted it alone would hand\n // back an empty draft and the reader would watch their message vanish.\n try {\n const stored = live.getItem(key);\n if (stored !== null) return stored;\n } catch {\n /* fall through to the memory fallback */\n }\n return fallback.get(key);\n },\n set: (key, value) => {\n try {\n live.setItem(key, value);\n } catch {\n fallback.set(key, value);\n }\n },\n remove: (key) => {\n try {\n live.removeItem(key);\n } catch {\n /* the durable copy may not exist; the memory copy still must go */\n }\n fallback.remove(key);\n },\n };\n}\n\n/** Roles the kernel renders. Anything else is reported, never dropped. */\nexport const CHAT_ROLES: readonly ChatRole[] = [\n \"user\",\n \"assistant\",\n \"system\",\n \"tool\",\n];\n","/**\n * THE THREAD STORE — layer 1 of `@ai-matrx/chat`.\n *\n * `getSnapshot()` / `subscribe()` is the `useSyncExternalStore` source shape\n * (the AI SDK's proven one), plus `subscribeToMessage(id)` so ONE streaming\n * bubble re-renders without touching the list. There is no React here, no\n * Redux here, and no `window` touched at import time.\n *\n * Performance rules that are code, not prose:\n * 1. store writes are COALESCED per frame tick, never per token;\n * 2. only the streaming message's per-message subscribers are woken on a\n * token; the thread subscribers are woken on the same coalesced tick but\n * the message objects of every OTHER message keep their identity, so a\n * memoized list re-renders one row.\n */\n\nimport {\n createChatTurnProjector,\n type ChatTurnRefusal,\n} from \"./ingest\";\nimport {\n decideRouting,\n resolveChatFeatures,\n type ChatConfigLayers,\n type ChatFeatures,\n} from \"./config\";\nimport {\n createChatMessage,\n newLocalId,\n type ChatErrorPart,\n type ChatMessage,\n type ChatThreadSnapshot,\n type ChatThreadStatus,\n} from \"./model\";\nimport {\n createConsoleErrorSink,\n createConsoleNotifier,\n type ChatErrorSinkPort,\n type ChatNotifierPort,\n type ChatPersistencePort,\n type ChatTransportPort,\n} from \"./ports\";\nimport {\n settleToolAnswer,\n type ChatToolAnswer,\n type ChatToolSettlement,\n} from \"./tool-state\";\n\nexport interface ChatThreadConfig {\n transport: ChatTransportPort;\n /** Absent ⇒ the thread is EPHEMERAL and says so in its snapshot. */\n persistence?: ChatPersistencePort | undefined;\n /** Existing conversation to continue. Omit to start a new one on first send. */\n conversationId?: string | undefined;\n features?: ChatConfigLayers | undefined;\n errorSink?: ChatErrorSinkPort | undefined;\n notifier?: ChatNotifierPort | undefined;\n /**\n * Coalescing window. The default `null` means \"schedule on the runtime's\n * frame clock\" (`requestAnimationFrame` when there is one, a microtask\n * otherwise). A number is a millisecond timer, which is what tests use so\n * they never depend on a browser clock.\n */\n coalesceMs?: number | null | undefined;\n}\n\nexport interface ChatSendInput {\n text: string;\n fileIds?: readonly string[] | undefined;\n}\n\nexport interface ChatSendResult {\n /** False when the send was refused BEFORE anything left the machine. */\n accepted: boolean;\n /** Present when `accepted` is false — the reason, in the reader's words. */\n refusal: ChatErrorPart | null;\n}\n\nexport interface ChatThreadStore {\n getSnapshot(): ChatThreadSnapshot;\n subscribe(listener: () => void): () => void;\n /** Wake ONLY on this message. The whole point of the per-message seam. */\n subscribeToMessage(messageId: string, listener: () => void): () => void;\n getMessageSnapshot(messageId: string): ChatMessage | undefined;\n readonly features: ChatFeatures;\n send(input: ChatSendInput): Promise<ChatSendResult>;\n /** Cooperative stop. Resolves once the server acknowledged (or failed to). */\n cancel(): Promise<void>;\n /** Replace the transcript — used by history load and by tests. */\n setMessages(messages: readonly ChatMessage[]): void;\n /** Load a stored conversation through the persistence port. */\n loadConversation(conversationId: string): Promise<void>;\n /**\n * Whether `startNewConversation()` actually does anything here. The kernel\n * answers true; `/external-store` answers true only when the host gave it a\n * handler. A shell reads THIS to decide whether a \"New conversation\" control\n * exists at all — a New button that cannot start one is the dead control Law\n * 4 forbids.\n */\n readonly canStartNewConversation: boolean;\n /**\n * Empty this thread and forget its conversation id, so the NEXT send starts a\n * fresh conversation the server names.\n *\n * 🚨 WHY THIS IS ON THE KERNEL AND NOT THE HOST'S JOB. Until the lane merge\n * the conversation id was fixed for the life of the store, so \"New\n * conversation\" on the shipped `chat.conversation` source could only work if\n * the host threw the whole thread away and built another — which every\n * consumer would then have had to reimplement, including the timer, the abort\n * and the draft carry. The client still never invents an id: this clears the\n * id and lets the FIRST TURN mint it, which is exactly what the platform\n * does for a conversation that never existed.\n */\n startNewConversation(): Promise<void>;\n /**\n * The client answered a delegated tool — mark the call done HERE, now.\n *\n * The server sends no completion frame for a delegated call (it hard-suspended\n * and closed the stream), so a transcript that only moves on frames shows\n * \"Working…\" forever after the agent has visibly moved on. The host's answer\n * funnel calls this in the same tick it posts the result. Monotonic and\n * idempotent: a call already terminal is left alone and the refusal says why.\n */\n settleToolCall(answer: ChatToolAnswer): ChatToolSettlement;\n /** Release timers and abort an in-flight turn. */\n dispose(): void;\n}\n\ntype Scheduler = (run: () => void) => () => void;\n\nfunction createScheduler(coalesceMs: number | null | undefined): Scheduler {\n if (typeof coalesceMs === \"number\") {\n return (run) => {\n const handle = setTimeout(run, coalesceMs);\n return () => clearTimeout(handle);\n };\n }\n const raf = (\n globalThis as {\n requestAnimationFrame?: (cb: () => void) => number;\n cancelAnimationFrame?: (handle: number) => void;\n }\n ).requestAnimationFrame;\n if (typeof raf === \"function\") {\n const cancel = (globalThis as { cancelAnimationFrame?: (h: number) => void })\n .cancelAnimationFrame;\n return (run) => {\n const handle = raf(run);\n return () => cancel?.(handle);\n };\n }\n return (run) => {\n let cancelled = false;\n queueMicrotask(() => {\n if (!cancelled) run();\n });\n return () => {\n cancelled = true;\n };\n };\n}\n\nconst EPHEMERAL_REASON =\n \"This conversation is not being saved: no persistence is connected, so it disappears when you leave the page.\";\nconst EPHEMERAL_REMEDY =\n \"Pass a `persistence` port (createMatrxChatPersistence from @ai-matrx/chat/matrx) to keep conversations.\";\n\nexport function createChatThread(config: ChatThreadConfig): ChatThreadStore {\n const features = resolveChatFeatures(config.features);\n const errorSink = config.errorSink ?? createConsoleErrorSink();\n const notifier = config.notifier ?? createConsoleNotifier();\n const schedule = createScheduler(config.coalesceMs);\n\n let messages: ChatMessage[] = [];\n let status: ChatThreadStatus = \"idle\";\n let conversationId: string | null = config.conversationId ?? null;\n let requestId: string | null = null;\n let phase: string | null = null;\n let error: ChatErrorPart | null = null;\n let revision = 0;\n let snapshot: ChatThreadSnapshot = buildSnapshot();\n let abort: AbortController | null = null;\n let disposed = false;\n let announcedEphemeral = false;\n\n /**\n * WHICH CONVERSATION THE TRANSCRIPT IS SHOWING, as a number.\n *\n * 🚨 The defect this closes, found by the lane-merge test that switched away\n * mid-answer: cancelling a turn aborts the CONTROLLER, but a transport whose\n * frames are already queued (or one that ignores the signal, which a host may\n * legitimately write) delivers one more. `replaceMessage` appends when it\n * cannot find the id — so that late frame resurrected the previous\n * conversation's half-answer INTO the empty transcript the reader was now\n * looking at, under the new conversation's id. A stale write must be dropped,\n * not raced. Every write in `send` is stamped with the epoch it started in,\n * and `startNewConversation` / `loadConversation` bump it.\n */\n let epoch = 0;\n\n const threadListeners = new Set<() => void>();\n const messageListeners = new Map<string, Set<() => void>>();\n const dirtyMessages = new Set<string>();\n let cancelScheduled: (() => void) | null = null;\n\n function buildSnapshot(): ChatThreadSnapshot {\n return {\n conversationId,\n messages,\n status,\n requestId,\n phase,\n ephemeral: config.persistence === undefined,\n ephemeralReason:\n config.persistence === undefined\n ? `${EPHEMERAL_REASON} ${EPHEMERAL_REMEDY}`\n : null,\n revision,\n error,\n };\n }\n\n function commit(): void {\n revision += 1;\n snapshot = buildSnapshot();\n const woken = [...dirtyMessages];\n dirtyMessages.clear();\n for (const id of woken) {\n const listeners = messageListeners.get(id);\n if (!listeners) continue;\n for (const listener of listeners) listener();\n }\n for (const listener of threadListeners) listener();\n }\n\n function markDirty(messageId: string | null): void {\n if (messageId !== null) dirtyMessages.add(messageId);\n if (cancelScheduled !== null) return;\n cancelScheduled = schedule(() => {\n cancelScheduled = null;\n if (!disposed) commit();\n });\n }\n\n /** Commit immediately — state changes a caller must observe synchronously. */\n function commitNow(messageId: string | null): void {\n if (messageId !== null) dirtyMessages.add(messageId);\n cancelScheduled?.();\n cancelScheduled = null;\n commit();\n }\n\n function announceEphemeralOnce(): void {\n if (announcedEphemeral || config.persistence !== undefined) return;\n announcedEphemeral = true;\n notifier.notify({\n level: \"warning\",\n message: EPHEMERAL_REASON,\n remedy: EPHEMERAL_REMEDY,\n });\n }\n\n function replaceMessage(next: ChatMessage): void {\n const index = messages.findIndex((m) => m.id === next.id);\n if (index === -1) {\n messages = [...messages, next];\n return;\n }\n const copy = messages.slice();\n copy[index] = next;\n messages = copy;\n }\n\n function refuseSend(part: ChatErrorPart): ChatSendResult {\n error = part;\n status = \"error\";\n errorSink.capture({ code: part.code ?? \"chat_send_refused\", message: part.message });\n notifier.notify({\n level: \"error\",\n message: part.userMessage,\n ...(part.remedy === null ? {} : { remedy: part.remedy }),\n });\n commitNow(null);\n return { accepted: false, refusal: part };\n }\n\n async function send(input: ChatSendInput): Promise<ChatSendResult> {\n if (disposed) {\n return refuseSend({\n type: \"error\",\n errorType: \"disposed\",\n code: \"thread_disposed\",\n message: \"send() was called on a disposed thread\",\n userMessage: \"This conversation is no longer active.\",\n recoverable: false,\n remedy: \"Open the conversation again.\",\n });\n }\n if (status === \"submitted\" || status === \"streaming\") {\n return refuseSend({\n type: \"error\",\n errorType: \"busy\",\n code: \"turn_in_flight\",\n message: \"a turn is already streaming on this thread\",\n userMessage: \"The assistant is still answering.\",\n recoverable: true,\n remedy: \"Wait for the answer to finish, or press stop.\",\n });\n }\n\n // THE CONFIDENTIAL-ROUTING RULE, before a single byte leaves the machine.\n const routing = decideRouting(features.routing, config.transport.locality);\n if (!routing.allowed) {\n return refuseSend({\n type: \"error\",\n errorType: \"routing_refused\",\n code: routing.code,\n message: routing.userMessage,\n userMessage: routing.userMessage,\n recoverable: false,\n remedy: routing.remedy,\n });\n }\n\n announceEphemeralOnce();\n\n const fileIds = input.fileIds ?? [];\n const userMessage = createChatMessage({\n role: \"user\",\n parts: [{ type: \"text\", text: input.text }],\n status: \"complete\",\n });\n const assistantId = newLocalId(\"msg\");\n const assistantPlaceholder = createChatMessage({\n id: assistantId,\n role: \"assistant\",\n parts: [],\n status: \"pending\",\n });\n messages = [...messages, userMessage, assistantPlaceholder];\n error = null;\n status = \"submitted\";\n commitNow(assistantId);\n\n const turnEpoch = epoch;\n /** A write from a turn whose conversation is no longer on screen. */\n const stale = (): boolean => disposed || turnEpoch !== epoch;\n\n const controller = new AbortController();\n abort = controller;\n\n const projector = createChatTurnProjector({\n features,\n messageId: assistantId,\n onRefusal: (refusal: ChatTurnRefusal) =>\n errorSink.capture({\n code: refusal.code,\n message: refusal.message,\n detail: refusal.detail,\n }),\n });\n\n try {\n const handle = await config.transport.start({\n conversationId,\n isNewConversation: conversationId === null,\n store: config.persistence !== undefined,\n text: input.text,\n fileIds,\n signal: controller.signal,\n });\n if (stale()) return { accepted: true, refusal: null };\n requestId = handle.requestId;\n if (handle.conversationId !== null) conversationId = handle.conversationId;\n status = \"streaming\";\n commitNow(assistantId);\n\n if (stale()) return { accepted: true, refusal: null };\n for await (const frame of handle.frames) {\n // The reader has moved on. Stop reading the socket rather than painting\n // the previous conversation's answer into the one now on screen.\n if (stale()) return { accepted: true, refusal: null };\n projector.apply(frame);\n if (projector.state.conversationId !== null) {\n conversationId = projector.state.conversationId;\n }\n if (projector.state.phase !== null) phase = projector.state.phase;\n const live = projector.snapshot();\n replaceMessage({\n ...live,\n metadata: {\n ...live.metadata,\n requestId,\n createdAt: assistantPlaceholder.metadata.createdAt,\n },\n });\n status =\n projector.state.outcome === \"awaiting-tools\"\n ? \"awaiting-approval\"\n : \"streaming\";\n markDirty(assistantId);\n }\n\n if (stale()) return { accepted: true, refusal: null };\n const serverUserId = projector.state.serverMessageIds.user;\n if (serverUserId !== null) {\n replaceMessage({\n ...userMessage,\n metadata: { ...userMessage.metadata, serverMessageId: serverUserId },\n });\n }\n const final = projector.snapshot();\n replaceMessage({\n ...final,\n metadata: {\n ...final.metadata,\n requestId,\n createdAt: assistantPlaceholder.metadata.createdAt,\n },\n });\n error = projector.state.error;\n status = projector.state.outcome === \"error\" ? \"error\" : \"idle\";\n commitNow(assistantId);\n return { accepted: true, refusal: null };\n } catch (cause) {\n if (stale()) return { accepted: true, refusal: null };\n const aborted =\n controller.signal.aborted ||\n (cause instanceof Error && cause.name === \"AbortError\");\n const message = cause instanceof Error ? cause.message : String(cause);\n const part: ChatErrorPart = aborted\n ? {\n type: \"error\",\n errorType: \"cancelled\",\n code: \"turn_cancelled\",\n message: \"the turn was cancelled by the reader\",\n userMessage: \"You stopped this answer.\",\n recoverable: true,\n remedy: null,\n }\n : {\n type: \"error\",\n errorType: \"transport\",\n code: \"transport_failed\",\n message,\n userMessage: \"The connection to the assistant failed.\",\n recoverable: true,\n remedy: \"Try sending the message again.\",\n };\n const partial = projector.snapshot();\n replaceMessage({\n ...partial,\n // Partial text NEVER vanishes: the reader keeps what they already saw.\n parts: [...partial.parts, part],\n status: aborted ? \"cancelled\" : \"error\",\n metadata: {\n ...partial.metadata,\n requestId,\n createdAt: assistantPlaceholder.metadata.createdAt,\n },\n });\n if (!aborted) {\n error = part;\n status = \"error\";\n errorSink.capture({ code: part.code ?? \"transport_failed\", message });\n } else {\n status = \"idle\";\n }\n commitNow(assistantId);\n return { accepted: true, refusal: null };\n } finally {\n if (abort === controller) abort = null;\n }\n }\n\n async function cancel(): Promise<void> {\n const current = requestId;\n abort?.abort();\n if (current === null) return;\n try {\n await config.transport.cancel(current);\n } catch (cause) {\n errorSink.capture({\n code: \"cancel_failed\",\n message: cause instanceof Error ? cause.message : String(cause),\n });\n notifier.notify({\n level: \"warning\",\n message: \"The assistant did not confirm that it stopped.\",\n remedy: \"It stops at its next step; anything already written is saved.\",\n });\n }\n }\n\n async function loadConversation(id: string): Promise<void> {\n const persistence = config.persistence;\n if (persistence === undefined) {\n const part: ChatErrorPart = {\n type: \"error\",\n errorType: \"no_persistence\",\n code: \"history_unavailable\",\n message: \"loadConversation() was called on a thread with no persistence port\",\n userMessage: \"Past conversations are not available here.\",\n recoverable: false,\n remedy: EPHEMERAL_REMEDY,\n };\n refuseSend(part);\n return;\n }\n epoch += 1;\n const loaded = await persistence.loadThread(id);\n conversationId = id;\n messages = loaded.slice();\n status = \"idle\";\n error = null;\n commitNow(null);\n }\n\n /**\n * A fresh conversation on THIS store. An answer still arriving is stopped\n * first — leaving it running would append the old conversation's frames to\n * the empty transcript the reader is now looking at — and the stop is\n * cooperative, so what the server has already written is still saved where it\n * belongs. Doctrine: a disconnect never cancels server work, and this method\n * promises nothing more than it does.\n */\n async function startNewConversation(): Promise<void> {\n if (disposed) return;\n epoch += 1;\n if (status === \"streaming\" || status === \"submitted\") await cancel();\n abort = null;\n conversationId = null;\n requestId = null;\n phase = null;\n messages = [];\n error = null;\n status = \"idle\";\n commitNow(null);\n }\n\n return {\n getSnapshot: () => snapshot,\n subscribe(listener) {\n threadListeners.add(listener);\n return () => {\n threadListeners.delete(listener);\n };\n },\n subscribeToMessage(messageId, listener) {\n const existing = messageListeners.get(messageId) ?? new Set<() => void>();\n existing.add(listener);\n messageListeners.set(messageId, existing);\n return () => {\n existing.delete(listener);\n if (existing.size === 0) messageListeners.delete(messageId);\n };\n },\n // Reads the COMMITTED snapshot, never the in-flight draft: a per-message\n // hook that could see an uncommitted value tears against the thread.\n getMessageSnapshot: (messageId) =>\n snapshot.messages.find((m) => m.id === messageId),\n features,\n send,\n cancel,\n setMessages(next) {\n messages = next.slice();\n commitNow(null);\n },\n settleToolCall(answer) {\n const settlement = settleToolAnswer(messages, answer);\n if (!settlement.applied) {\n if (settlement.refusal !== null) {\n errorSink.capture({\n code: \"tool_state_transition_refused\",\n message: settlement.refusal,\n detail: answer,\n });\n }\n return settlement;\n }\n messages = settlement.messages.slice();\n commitNow(settlement.messageId);\n return settlement;\n },\n loadConversation,\n canStartNewConversation: true,\n startNewConversation,\n dispose() {\n disposed = true;\n cancelScheduled?.();\n cancelScheduled = null;\n abort?.abort();\n threadListeners.clear();\n messageListeners.clear();\n },\n };\n}\n","/**\n * `@ai-matrx/chat/matrx` — THE PLATFORM BINDING.\n *\n * Everything in this entry knows the exact AI Matrx contract: the `/ai/*`\n * routes through `@ai-matrx/agents`, the conversation-start triple, and the\n * `chat.*` schema. Everything host-shaped stays injected.\n *\n * A host reaches a working, persisting, streaming thread with one call:\n *\n * ```ts\n * const thread = createMatrxChatThread({\n * transport: createMatrxTransport({ baseUrl, credentials, organizationId }),\n * dataSource: supabase,\n * organizationId,\n * target: { kind: \"agent\", agentId },\n * sourceApp: \"workflow-studio\",\n * sourceFeature: \"conductor\",\n * });\n * ```\n */\n\nexport {\n CHAT_SCHEMA,\n CHAT_TABLES,\n type ChatDataSource,\n type ChatSelectQuery,\n type ChatTableQuery,\n type PgError,\n type PgResult,\n} from \"./data-source\";\n\nexport {\n createMatrxChatTargetRef,\n createMatrxChatTransport,\n matrxChatTargetRef,\n parseMatrxChatTarget,\n TARGET_IGNORED_ON_CONTINUE,\n TARGET_IGNORED_ON_CONTINUE_REMEDY,\n type MatrxChatTarget,\n type MatrxChatTargetRef,\n type MatrxChatTransportOptions,\n} from \"./transport\";\n\nexport {\n createMatrxChatPersistence,\n isArchivedRow,\n mapPersistedContent,\n mapPersistedMessages,\n toConversationSummary,\n type MatrxChatPersistenceOptions,\n} from \"./persistence\";\n\nimport type { MatrxTransport } from \"@ai-matrx/agents/matrx\";\n\nimport { createChatThread, type ChatThreadConfig, type ChatThreadStore } from \"../store\";\nimport type { ChatConfigLayers } from \"../config\";\nimport type { ChatDataSource } from \"./data-source\";\nimport { createMatrxChatPersistence } from \"./persistence\";\nimport { createMatrxChatTransport, type MatrxChatTarget } from \"./transport\";\n\nexport interface MatrxChatThreadOptions {\n /** The production `MatrxTransport` from `@ai-matrx/agents/matrx`. */\n transport: MatrxTransport;\n /** Who answers — a function for a surface whose picker can change it\n * between turns (`createMatrxChatTargetRef().get`). */\n target: MatrxChatTarget | (() => MatrxChatTarget);\n /** The picked model, resolved per turn; `null` leaves the agent's own. */\n model?: string | null | (() => string | null) | undefined;\n organizationId: string;\n sourceApp: string;\n sourceFeature: string;\n /**\n * A supabase-js client. OMIT IT DELIBERATELY for an ephemeral thread — the\n * thread then runs unpersisted AND SAYS SO on screen, with the remedy. It is\n * never a silent downgrade.\n */\n dataSource?: ChatDataSource | undefined;\n conversationId?: string | undefined;\n features?: ChatConfigLayers | undefined;\n initiation?: \"user\" | \"auto\" | undefined;\n locality?: \"local\" | \"cloud\" | undefined;\n errorSink?: ChatThreadConfig[\"errorSink\"] | undefined;\n notifier?: ChatThreadConfig[\"notifier\"] | undefined;\n coalesceMs?: number | null | undefined;\n}\n\n/** The batteries-included platform thread: transport + persistence + kernel. */\nexport function createMatrxChatThread(\n options: MatrxChatThreadOptions,\n): ChatThreadStore {\n const transport = createMatrxChatTransport({\n transport: options.transport,\n target: options.target,\n organizationId: options.organizationId,\n sourceApp: options.sourceApp,\n sourceFeature: options.sourceFeature,\n initiation: options.initiation,\n locality: options.locality,\n model: options.model,\n // The transport's own sentence (a continue cannot change who answers) goes\n // to the SAME notifier as the kernel's, so a host wires one sink, not two.\n notifier: options.notifier,\n });\n const persistence =\n options.dataSource === undefined\n ? undefined\n : createMatrxChatPersistence({\n dataSource: options.dataSource,\n organizationId: options.organizationId,\n });\n return createChatThread({\n transport,\n persistence,\n conversationId: options.conversationId,\n features: options.features,\n errorSink: options.errorSink,\n notifier: options.notifier,\n coalesceMs: options.coalesceMs,\n });\n}\n"],"mappings":"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","names":["handle","part","asRecord","asString"]}
|