@jini-ai/chat 0.1.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/LICENSE +201 -0
- package/README.md +109 -0
- package/dist/core/agentic/chat-capabilities.d.ts +19 -0
- package/dist/core/agentic/chat-capabilities.d.ts.map +1 -0
- package/dist/core/agentic/chat-capabilities.js +106 -0
- package/dist/core/agentic/chat-capabilities.js.map +1 -0
- package/dist/core/agentic/index.d.ts +22 -0
- package/dist/core/agentic/index.d.ts.map +1 -0
- package/dist/core/agentic/index.js +21 -0
- package/dist/core/agentic/index.js.map +1 -0
- package/dist/core/events.d.ts +84 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +14 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/index.d.ts +40 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +40 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/messages.d.ts +53 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +16 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/partial-json.d.ts +36 -0
- package/dist/core/partial-json.d.ts.map +1 -0
- package/dist/core/partial-json.js +119 -0
- package/dist/core/partial-json.js.map +1 -0
- package/dist/core/persistence/index.d.ts +11 -0
- package/dist/core/persistence/index.d.ts.map +1 -0
- package/dist/core/persistence/index.js +11 -0
- package/dist/core/persistence/index.js.map +1 -0
- package/dist/core/persistence/ports.d.ts +124 -0
- package/dist/core/persistence/ports.d.ts.map +1 -0
- package/dist/core/persistence/ports.js +2 -0
- package/dist/core/persistence/ports.js.map +1 -0
- package/dist/core/persistence/title.d.ts +35 -0
- package/dist/core/persistence/title.d.ts.map +1 -0
- package/dist/core/persistence/title.js +137 -0
- package/dist/core/persistence/title.js.map +1 -0
- package/dist/core/question-form/format.d.ts +27 -0
- package/dist/core/question-form/format.d.ts.map +1 -0
- package/dist/core/question-form/format.js +45 -0
- package/dist/core/question-form/format.js.map +1 -0
- package/dist/core/question-form/normalize.d.ts +30 -0
- package/dist/core/question-form/normalize.d.ts.map +1 -0
- package/dist/core/question-form/normalize.js +192 -0
- package/dist/core/question-form/normalize.js.map +1 -0
- package/dist/core/question-form/scan.d.ts +50 -0
- package/dist/core/question-form/scan.d.ts.map +1 -0
- package/dist/core/question-form/scan.js +404 -0
- package/dist/core/question-form/scan.js.map +1 -0
- package/dist/core/question-form/types.d.ts +83 -0
- package/dist/core/question-form/types.d.ts.map +1 -0
- package/dist/core/question-form/types.js +11 -0
- package/dist/core/question-form/types.js.map +1 -0
- package/dist/core/question-form.d.ts +39 -0
- package/dist/core/question-form.d.ts.map +1 -0
- package/dist/core/question-form.js +4 -0
- package/dist/core/question-form.js.map +1 -0
- package/dist/core/todos.d.ts +70 -0
- package/dist/core/todos.d.ts.map +1 -0
- package/dist/core/todos.js +175 -0
- package/dist/core/todos.js.map +1 -0
- package/dist/core/tool-events.d.ts +18 -0
- package/dist/core/tool-events.d.ts.map +1 -0
- package/dist/core/tool-events.js +36 -0
- package/dist/core/tool-events.js.map +1 -0
- package/dist/core/tools.d.ts +51 -0
- package/dist/core/tools.d.ts.map +1 -0
- package/dist/core/tools.js +41 -0
- package/dist/core/tools.js.map +1 -0
- package/dist/core/transcript.d.ts +81 -0
- package/dist/core/transcript.d.ts.map +1 -0
- package/dist/core/transcript.js +133 -0
- package/dist/core/transcript.js.map +1 -0
- package/dist/core/transport.d.ts +109 -0
- package/dist/core/transport.d.ts.map +1 -0
- package/dist/core/transport.js +2 -0
- package/dist/core/transport.js.map +1 -0
- package/dist/core/util/index.d.ts +16 -0
- package/dist/core/util/index.d.ts.map +1 -0
- package/dist/core/util/index.js +16 -0
- package/dist/core/util/index.js.map +1 -0
- package/dist/core/util/manifest.d.ts +39 -0
- package/dist/core/util/manifest.d.ts.map +1 -0
- package/dist/core/util/manifest.js +173 -0
- package/dist/core/util/manifest.js.map +1 -0
- package/dist/core/util/markdown-context.d.ts +47 -0
- package/dist/core/util/markdown-context.d.ts.map +1 -0
- package/dist/core/util/markdown-context.js +125 -0
- package/dist/core/util/markdown-context.js.map +1 -0
- package/dist/core/util/markup-attributes.d.ts +20 -0
- package/dist/core/util/markup-attributes.d.ts.map +1 -0
- package/dist/core/util/markup-attributes.js +33 -0
- package/dist/core/util/markup-attributes.js.map +1 -0
- package/dist/core/util/parser.d.ts +42 -0
- package/dist/core/util/parser.d.ts.map +1 -0
- package/dist/core/util/parser.js +238 -0
- package/dist/core/util/parser.js.map +1 -0
- package/dist/core/util/pointer.d.ts +28 -0
- package/dist/core/util/pointer.d.ts.map +1 -0
- package/dist/core/util/pointer.js +75 -0
- package/dist/core/util/pointer.js.map +1 -0
- package/dist/core/util/recover.d.ts +40 -0
- package/dist/core/util/recover.d.ts.map +1 -0
- package/dist/core/util/recover.js +117 -0
- package/dist/core/util/recover.js.map +1 -0
- package/dist/core/util/strip.d.ts +112 -0
- package/dist/core/util/strip.d.ts.map +1 -0
- package/dist/core/util/strip.js +333 -0
- package/dist/core/util/strip.js.map +1 -0
- package/dist/core/util/types.d.ts +31 -0
- package/dist/core/util/types.d.ts.map +1 -0
- package/dist/core/util/types.js +2 -0
- package/dist/core/util/types.js.map +1 -0
- package/dist/core/util/validate.d.ts +50 -0
- package/dist/core/util/validate.d.ts.map +1 -0
- package/dist/core/util/validate.js +202 -0
- package/dist/core/util/validate.js.map +1 -0
- package/dist/react/agent-bridge/frontend-session-bridge.d.ts +45 -0
- package/dist/react/agent-bridge/frontend-session-bridge.d.ts.map +1 -0
- package/dist/react/agent-bridge/frontend-session-bridge.js +214 -0
- package/dist/react/agent-bridge/frontend-session-bridge.js.map +1 -0
- package/dist/react/artifact-types.d.ts +61 -0
- package/dist/react/artifact-types.d.ts.map +1 -0
- package/dist/react/artifact-types.js +33 -0
- package/dist/react/artifact-types.js.map +1 -0
- package/dist/react/chat-pane.d.ts +21 -0
- package/dist/react/chat-pane.d.ts.map +1 -0
- package/dist/react/chat-pane.js +20 -0
- package/dist/react/chat-pane.js.map +1 -0
- package/dist/react/components/A2uiSurfaceCard.d.ts +35 -0
- package/dist/react/components/A2uiSurfaceCard.d.ts.map +1 -0
- package/dist/react/components/A2uiSurfaceCard.js +272 -0
- package/dist/react/components/A2uiSurfaceCard.js.map +1 -0
- package/dist/react/components/AttachmentTray.d.ts +6 -0
- package/dist/react/components/AttachmentTray.d.ts.map +1 -0
- package/dist/react/components/AttachmentTray.js +30 -0
- package/dist/react/components/AttachmentTray.js.map +1 -0
- package/dist/react/components/ChatFab.d.ts +8 -0
- package/dist/react/components/ChatFab.d.ts.map +1 -0
- package/dist/react/components/ChatFab.js +24 -0
- package/dist/react/components/ChatFab.js.map +1 -0
- package/dist/react/components/Composer.d.ts +34 -0
- package/dist/react/components/Composer.d.ts.map +1 -0
- package/dist/react/components/Composer.js +300 -0
- package/dist/react/components/Composer.js.map +1 -0
- package/dist/react/components/ComposerDiscovery.d.ts +46 -0
- package/dist/react/components/ComposerDiscovery.d.ts.map +1 -0
- package/dist/react/components/ComposerDiscovery.js +38 -0
- package/dist/react/components/ComposerDiscovery.js.map +1 -0
- package/dist/react/components/ConversationList.d.ts +31 -0
- package/dist/react/components/ConversationList.d.ts.map +1 -0
- package/dist/react/components/ConversationList.js +221 -0
- package/dist/react/components/ConversationList.js.map +1 -0
- package/dist/react/components/ExtEventErrorBoundary.d.ts +35 -0
- package/dist/react/components/ExtEventErrorBoundary.d.ts.map +1 -0
- package/dist/react/components/ExtEventErrorBoundary.js +38 -0
- package/dist/react/components/ExtEventErrorBoundary.js.map +1 -0
- package/dist/react/components/Icon.d.ts +17 -0
- package/dist/react/components/Icon.d.ts.map +1 -0
- package/dist/react/components/Icon.js +46 -0
- package/dist/react/components/Icon.js.map +1 -0
- package/dist/react/components/JiniChatProvider.d.ts +45 -0
- package/dist/react/components/JiniChatProvider.d.ts.map +1 -0
- package/dist/react/components/JiniChatProvider.js +44 -0
- package/dist/react/components/JiniChatProvider.js.map +1 -0
- package/dist/react/components/Markdown.d.ts +5 -0
- package/dist/react/components/Markdown.d.ts.map +1 -0
- package/dist/react/components/Markdown.js +390 -0
- package/dist/react/components/Markdown.js.map +1 -0
- package/dist/react/components/McpUiSurfaceCard.d.ts +51 -0
- package/dist/react/components/McpUiSurfaceCard.d.ts.map +1 -0
- package/dist/react/components/McpUiSurfaceCard.js +159 -0
- package/dist/react/components/McpUiSurfaceCard.js.map +1 -0
- package/dist/react/components/MessageList.d.ts +15 -0
- package/dist/react/components/MessageList.d.ts.map +1 -0
- package/dist/react/components/MessageList.js +81 -0
- package/dist/react/components/MessageList.js.map +1 -0
- package/dist/react/components/MessageRow.d.ts +60 -0
- package/dist/react/components/MessageRow.d.ts.map +1 -0
- package/dist/react/components/MessageRow.js +156 -0
- package/dist/react/components/MessageRow.js.map +1 -0
- package/dist/react/components/NextStepActions.d.ts +34 -0
- package/dist/react/components/NextStepActions.d.ts.map +1 -0
- package/dist/react/components/NextStepActions.js +9 -0
- package/dist/react/components/NextStepActions.js.map +1 -0
- package/dist/react/components/QuestionForm.d.ts +26 -0
- package/dist/react/components/QuestionForm.d.ts.map +1 -0
- package/dist/react/components/QuestionForm.js +238 -0
- package/dist/react/components/QuestionForm.js.map +1 -0
- package/dist/react/components/QuestionsPanel.d.ts +13 -0
- package/dist/react/components/QuestionsPanel.d.ts.map +1 -0
- package/dist/react/components/QuestionsPanel.js +33 -0
- package/dist/react/components/QuestionsPanel.js.map +1 -0
- package/dist/react/components/TodoCard.d.ts +8 -0
- package/dist/react/components/TodoCard.d.ts.map +1 -0
- package/dist/react/components/TodoCard.js +29 -0
- package/dist/react/components/TodoCard.js.map +1 -0
- package/dist/react/components/ToolCard.d.ts +22 -0
- package/dist/react/components/ToolCard.d.ts.map +1 -0
- package/dist/react/components/ToolCard.js +298 -0
- package/dist/react/components/ToolCard.js.map +1 -0
- package/dist/react/components/composer-discovery.d.ts +107 -0
- package/dist/react/components/composer-discovery.d.ts.map +1 -0
- package/dist/react/components/composer-discovery.js +176 -0
- package/dist/react/components/composer-discovery.js.map +1 -0
- package/dist/react/ext-event-renderer-registry.d.ts +51 -0
- package/dist/react/ext-event-renderer-registry.d.ts.map +1 -0
- package/dist/react/ext-event-renderer-registry.js +20 -0
- package/dist/react/ext-event-renderer-registry.js.map +1 -0
- package/dist/react/features/chat-pane/agent-tools.d.ts +14 -0
- package/dist/react/features/chat-pane/agent-tools.d.ts.map +1 -0
- package/dist/react/features/chat-pane/agent-tools.js +22 -0
- package/dist/react/features/chat-pane/agent-tools.js.map +1 -0
- package/dist/react/features/chat-pane/components/AgentRuntimePicker.d.ts +12 -0
- package/dist/react/features/chat-pane/components/AgentRuntimePicker.d.ts.map +1 -0
- package/dist/react/features/chat-pane/components/AgentRuntimePicker.js +106 -0
- package/dist/react/features/chat-pane/components/AgentRuntimePicker.js.map +1 -0
- package/dist/react/features/chat-pane/components/ChatPane.d.ts +10 -0
- package/dist/react/features/chat-pane/components/ChatPane.d.ts.map +1 -0
- package/dist/react/features/chat-pane/components/ChatPane.js +169 -0
- package/dist/react/features/chat-pane/components/ChatPane.js.map +1 -0
- package/dist/react/features/chat-pane/create-daemon-attachment-uploader.d.ts +21 -0
- package/dist/react/features/chat-pane/create-daemon-attachment-uploader.d.ts.map +1 -0
- package/dist/react/features/chat-pane/create-daemon-attachment-uploader.js +213 -0
- package/dist/react/features/chat-pane/create-daemon-attachment-uploader.js.map +1 -0
- package/dist/react/features/chat-pane/create-mcp-ui-tool-caller.d.ts +70 -0
- package/dist/react/features/chat-pane/create-mcp-ui-tool-caller.d.ts.map +1 -0
- package/dist/react/features/chat-pane/create-mcp-ui-tool-caller.js +76 -0
- package/dist/react/features/chat-pane/create-mcp-ui-tool-caller.js.map +1 -0
- package/dist/react/features/chat-pane/hooks/useAgentRuntimePicker.hooks.d.ts +133 -0
- package/dist/react/features/chat-pane/hooks/useAgentRuntimePicker.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/hooks/useAgentRuntimePicker.hooks.js +258 -0
- package/dist/react/features/chat-pane/hooks/useAgentRuntimePicker.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPane.hooks.d.ts +66 -0
- package/dist/react/features/chat-pane/hooks/useChatPane.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPane.hooks.js +224 -0
- package/dist/react/features/chat-pane/hooks/useChatPane.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneAgentControl.hooks.d.ts +38 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneAgentControl.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneAgentControl.hooks.js +252 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneAgentControl.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneControlsHeight.hooks.d.ts +16 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneControlsHeight.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneControlsHeight.hooks.js +59 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneControlsHeight.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneFileDrop.hooks.d.ts +26 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneFileDrop.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneFileDrop.hooks.js +74 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneFileDrop.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneRuntimeInventory.hooks.d.ts +25 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneRuntimeInventory.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneRuntimeInventory.hooks.js +88 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneRuntimeInventory.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneWorkingDirectory.hooks.d.ts +38 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneWorkingDirectory.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneWorkingDirectory.hooks.js +184 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneWorkingDirectory.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/index.d.ts +12 -0
- package/dist/react/features/chat-pane/index.d.ts.map +1 -0
- package/dist/react/features/chat-pane/index.js +11 -0
- package/dist/react/features/chat-pane/index.js.map +1 -0
- package/dist/react/features/chat-pane/react/components/AgentRuntimePicker.d.ts +12 -0
- package/dist/react/features/chat-pane/react/components/AgentRuntimePicker.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/components/AgentRuntimePicker.js +102 -0
- package/dist/react/features/chat-pane/react/components/AgentRuntimePicker.js.map +1 -0
- package/dist/react/features/chat-pane/react/components/ChatPane.d.ts +10 -0
- package/dist/react/features/chat-pane/react/components/ChatPane.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/components/ChatPane.js +137 -0
- package/dist/react/features/chat-pane/react/components/ChatPane.js.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useAgentRuntimePicker.hooks.d.ts +133 -0
- package/dist/react/features/chat-pane/react/hooks/useAgentRuntimePicker.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useAgentRuntimePicker.hooks.js +258 -0
- package/dist/react/features/chat-pane/react/hooks/useAgentRuntimePicker.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPane.hooks.d.ts +66 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPane.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPane.hooks.js +223 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPane.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneAgentControl.hooks.d.ts +38 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneAgentControl.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneAgentControl.hooks.js +252 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneAgentControl.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneFileDrop.hooks.d.ts +26 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneFileDrop.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneFileDrop.hooks.js +60 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneFileDrop.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneRuntimeInventory.hooks.d.ts +25 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneRuntimeInventory.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneRuntimeInventory.hooks.js +83 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneRuntimeInventory.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneWorkingDirectory.hooks.d.ts +38 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneWorkingDirectory.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneWorkingDirectory.hooks.js +184 -0
- package/dist/react/features/chat-pane/react/hooks/useChatPaneWorkingDirectory.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/react/styles.d.ts +2 -0
- package/dist/react/features/chat-pane/react/styles.d.ts.map +1 -0
- package/dist/react/features/chat-pane/react/styles.js +863 -0
- package/dist/react/features/chat-pane/react/styles.js.map +1 -0
- package/dist/react/features/chat-pane/rules.d.ts +31 -0
- package/dist/react/features/chat-pane/rules.d.ts.map +1 -0
- package/dist/react/features/chat-pane/rules.js +81 -0
- package/dist/react/features/chat-pane/rules.js.map +1 -0
- package/dist/react/features/chat-pane/styles.d.ts +2 -0
- package/dist/react/features/chat-pane/styles.d.ts.map +1 -0
- package/dist/react/features/chat-pane/styles.js +1327 -0
- package/dist/react/features/chat-pane/styles.js.map +1 -0
- package/dist/react/features/chat-pane/types.d.ts +248 -0
- package/dist/react/features/chat-pane/types.d.ts.map +1 -0
- package/dist/react/features/chat-pane/types.js +2 -0
- package/dist/react/features/chat-pane/types.js.map +1 -0
- package/dist/react/features/model-picker/components/CredentialStatusBadge.d.ts +7 -0
- package/dist/react/features/model-picker/components/CredentialStatusBadge.d.ts.map +1 -0
- package/dist/react/features/model-picker/components/CredentialStatusBadge.js +20 -0
- package/dist/react/features/model-picker/components/CredentialStatusBadge.js.map +1 -0
- package/dist/react/features/model-picker/components/ModelPicker.d.ts +9 -0
- package/dist/react/features/model-picker/components/ModelPicker.d.ts.map +1 -0
- package/dist/react/features/model-picker/components/ModelPicker.js +34 -0
- package/dist/react/features/model-picker/components/ModelPicker.js.map +1 -0
- package/dist/react/features/model-picker/constants.d.ts +6 -0
- package/dist/react/features/model-picker/constants.d.ts.map +1 -0
- package/dist/react/features/model-picker/constants.js +9 -0
- package/dist/react/features/model-picker/constants.js.map +1 -0
- package/dist/react/features/model-picker/dependencies.d.ts +11 -0
- package/dist/react/features/model-picker/dependencies.d.ts.map +1 -0
- package/dist/react/features/model-picker/dependencies.js +10 -0
- package/dist/react/features/model-picker/dependencies.js.map +1 -0
- package/dist/react/features/model-picker/hooks/useModelPicker.hooks.d.ts +27 -0
- package/dist/react/features/model-picker/hooks/useModelPicker.hooks.d.ts.map +1 -0
- package/dist/react/features/model-picker/hooks/useModelPicker.hooks.js +62 -0
- package/dist/react/features/model-picker/hooks/useModelPicker.hooks.js.map +1 -0
- package/dist/react/features/model-picker/index.d.ts +32 -0
- package/dist/react/features/model-picker/index.d.ts.map +1 -0
- package/dist/react/features/model-picker/index.js +29 -0
- package/dist/react/features/model-picker/index.js.map +1 -0
- package/dist/react/features/model-picker/ports.d.ts +11 -0
- package/dist/react/features/model-picker/ports.d.ts.map +1 -0
- package/dist/react/features/model-picker/ports.js +2 -0
- package/dist/react/features/model-picker/ports.js.map +1 -0
- package/dist/react/features/model-picker/react/components/CredentialStatusBadge.d.ts +7 -0
- package/dist/react/features/model-picker/react/components/CredentialStatusBadge.d.ts.map +1 -0
- package/dist/react/features/model-picker/react/components/CredentialStatusBadge.js +20 -0
- package/dist/react/features/model-picker/react/components/CredentialStatusBadge.js.map +1 -0
- package/dist/react/features/model-picker/react/components/ModelPicker.d.ts +9 -0
- package/dist/react/features/model-picker/react/components/ModelPicker.d.ts.map +1 -0
- package/dist/react/features/model-picker/react/components/ModelPicker.js +34 -0
- package/dist/react/features/model-picker/react/components/ModelPicker.js.map +1 -0
- package/dist/react/features/model-picker/react/hooks/useModelPicker.hooks.d.ts +27 -0
- package/dist/react/features/model-picker/react/hooks/useModelPicker.hooks.d.ts.map +1 -0
- package/dist/react/features/model-picker/react/hooks/useModelPicker.hooks.js +62 -0
- package/dist/react/features/model-picker/react/hooks/useModelPicker.hooks.js.map +1 -0
- package/dist/react/features/model-picker/rules.d.ts +26 -0
- package/dist/react/features/model-picker/rules.d.ts.map +1 -0
- package/dist/react/features/model-picker/rules.js +84 -0
- package/dist/react/features/model-picker/rules.js.map +1 -0
- package/dist/react/features/model-picker/types.d.ts +38 -0
- package/dist/react/features/model-picker/types.d.ts.map +1 -0
- package/dist/react/features/model-picker/types.js +2 -0
- package/dist/react/features/model-picker/types.js.map +1 -0
- package/dist/react/hooks/composer-draft-cache.d.ts +65 -0
- package/dist/react/hooks/composer-draft-cache.d.ts.map +1 -0
- package/dist/react/hooks/composer-draft-cache.js +89 -0
- package/dist/react/hooks/composer-draft-cache.js.map +1 -0
- package/dist/react/hooks/context.d.ts +18 -0
- package/dist/react/hooks/context.d.ts.map +1 -0
- package/dist/react/hooks/context.js +60 -0
- package/dist/react/hooks/context.js.map +1 -0
- package/dist/react/hooks/testing/fake-transport.d.ts +34 -0
- package/dist/react/hooks/testing/fake-transport.d.ts.map +1 -0
- package/dist/react/hooks/testing/fake-transport.js +46 -0
- package/dist/react/hooks/testing/fake-transport.js.map +1 -0
- package/dist/react/hooks/useArtifactStream.d.ts +18 -0
- package/dist/react/hooks/useArtifactStream.d.ts.map +1 -0
- package/dist/react/hooks/useArtifactStream.js +55 -0
- package/dist/react/hooks/useArtifactStream.js.map +1 -0
- package/dist/react/hooks/useChatFabDrag.d.ts +25 -0
- package/dist/react/hooks/useChatFabDrag.d.ts.map +1 -0
- package/dist/react/hooks/useChatFabDrag.js +88 -0
- package/dist/react/hooks/useChatFabDrag.js.map +1 -0
- package/dist/react/hooks/useComposer.d.ts +48 -0
- package/dist/react/hooks/useComposer.d.ts.map +1 -0
- package/dist/react/hooks/useComposer.js +121 -0
- package/dist/react/hooks/useComposer.js.map +1 -0
- package/dist/react/hooks/useConversation.d.ts +34 -0
- package/dist/react/hooks/useConversation.d.ts.map +1 -0
- package/dist/react/hooks/useConversation.js +163 -0
- package/dist/react/hooks/useConversation.js.map +1 -0
- package/dist/react/hooks/useCopyToClipboard.d.ts +14 -0
- package/dist/react/hooks/useCopyToClipboard.d.ts.map +1 -0
- package/dist/react/hooks/useCopyToClipboard.js +98 -0
- package/dist/react/hooks/useCopyToClipboard.js.map +1 -0
- package/dist/react/hooks/useExtEventGroups.d.ts +7 -0
- package/dist/react/hooks/useExtEventGroups.d.ts.map +1 -0
- package/dist/react/hooks/useExtEventGroups.js +32 -0
- package/dist/react/hooks/useExtEventGroups.js.map +1 -0
- package/dist/react/hooks/useLatestOperation.d.ts +31 -0
- package/dist/react/hooks/useLatestOperation.d.ts.map +1 -0
- package/dist/react/hooks/useLatestOperation.js +74 -0
- package/dist/react/hooks/useLatestOperation.js.map +1 -0
- package/dist/react/hooks/usePinnedTodos.d.ts +15 -0
- package/dist/react/hooks/usePinnedTodos.d.ts.map +1 -0
- package/dist/react/hooks/usePinnedTodos.js +43 -0
- package/dist/react/hooks/usePinnedTodos.js.map +1 -0
- package/dist/react/hooks/useQuestionForms.d.ts +28 -0
- package/dist/react/hooks/useQuestionForms.d.ts.map +1 -0
- package/dist/react/hooks/useQuestionForms.js +113 -0
- package/dist/react/hooks/useQuestionForms.js.map +1 -0
- package/dist/react/hooks/useRunStream.d.ts +27 -0
- package/dist/react/hooks/useRunStream.d.ts.map +1 -0
- package/dist/react/hooks/useRunStream.js +180 -0
- package/dist/react/hooks/useRunStream.js.map +1 -0
- package/dist/react/hooks/useToolTimeline.d.ts +33 -0
- package/dist/react/hooks/useToolTimeline.d.ts.map +1 -0
- package/dist/react/hooks/useToolTimeline.js +47 -0
- package/dist/react/hooks/useToolTimeline.js.map +1 -0
- package/dist/react/index.d.ts +158 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +118 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/message-blocks.d.ts +86 -0
- package/dist/react/message-blocks.d.ts.map +1 -0
- package/dist/react/message-blocks.js +78 -0
- package/dist/react/message-blocks.js.map +1 -0
- package/dist/react/poc-mcp-ui-official/PocMcpUiCard.d.ts +9 -0
- package/dist/react/poc-mcp-ui-official/PocMcpUiCard.d.ts.map +1 -0
- package/dist/react/poc-mcp-ui-official/PocMcpUiCard.js +29 -0
- package/dist/react/poc-mcp-ui-official/PocMcpUiCard.js.map +1 -0
- package/dist/react/poc-mcp-ui-official/create-poc-resource.d.ts +30 -0
- package/dist/react/poc-mcp-ui-official/create-poc-resource.d.ts.map +1 -0
- package/dist/react/poc-mcp-ui-official/create-poc-resource.js +44 -0
- package/dist/react/poc-mcp-ui-official/create-poc-resource.js.map +1 -0
- package/dist/react/slots.d.ts +215 -0
- package/dist/react/slots.d.ts.map +1 -0
- package/dist/react/slots.js +2 -0
- package/dist/react/slots.js.map +1 -0
- package/dist/react/styles/reference.css +298 -0
- package/dist/react/tool-renderer-registry.d.ts +41 -0
- package/dist/react/tool-renderer-registry.d.ts.map +1 -0
- package/dist/react/tool-renderer-registry.js +22 -0
- package/dist/react/tool-renderer-registry.js.map +1 -0
- package/dist/react/util/defined-props.d.ts +31 -0
- package/dist/react/util/defined-props.d.ts.map +1 -0
- package/dist/react/util/defined-props.js +28 -0
- package/dist/react/util/defined-props.js.map +1 -0
- package/package.json +99 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
const SLASH_QUERY_RE = /^\/([^\s/]*)(?:(\s+)([\s\S]*))?$/;
|
|
2
|
+
/**
|
|
3
|
+
* Open Design's active slash-token rule (`/^\/([^\s/]*)$/`), extended to admit one optional
|
|
4
|
+
* trailing argument while staying anchored end-to-end. The command segment itself is unchanged —
|
|
5
|
+
* still no internal whitespace or slash — so every existing no-argument caller parses identically
|
|
6
|
+
* to before this extension.
|
|
7
|
+
*/
|
|
8
|
+
export function parseComposerSlashQuery(draft) {
|
|
9
|
+
const match = SLASH_QUERY_RE.exec(draft);
|
|
10
|
+
if (!match)
|
|
11
|
+
return null;
|
|
12
|
+
const [, command, separator, rest] = match;
|
|
13
|
+
return { command: command ?? '', argument: separator === undefined ? null : (rest ?? '') };
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Once a separator has been typed, only an item whose declared `command` exactly equals the typed
|
|
17
|
+
* command word survives. Required so that typing `/mcp supabase` cannot still surface an unrelated
|
|
18
|
+
* `/mcp-docs` row (a substring match on "mcp" would keep it alive) and, worse, hand that row a
|
|
19
|
+
* `server-id` argument that was typed for a different command. An item with no `command` is
|
|
20
|
+
* dropped outright — it declared no argument grammar to lock onto.
|
|
21
|
+
*/
|
|
22
|
+
function matchesLockedCommand(item, normalizedCommand) {
|
|
23
|
+
return item.command !== undefined && item.command.toLowerCase() === normalizedCommand;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Still typing the command word: every item — command-bearing or not — is eligible via the
|
|
27
|
+
* existing case-insensitive fuzzy match over `command`/`label`/`description`/`kind`/`keywords`.
|
|
28
|
+
*/
|
|
29
|
+
function matchesFuzzyCommand(item, normalizedCommand) {
|
|
30
|
+
if (normalizedCommand === '')
|
|
31
|
+
return true;
|
|
32
|
+
const searchable = [item.command, item.label, item.description, item.kind, ...(item.keywords ?? [])]
|
|
33
|
+
.filter((value) => typeof value === 'string')
|
|
34
|
+
.join(' ')
|
|
35
|
+
.toLowerCase();
|
|
36
|
+
return searchable.includes(normalizedCommand);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Flattens non-empty groups while preserving host order, then filters.
|
|
40
|
+
*
|
|
41
|
+
* Two modes, selected by `query.argument`: {@link matchesFuzzyCommand} while the command word is
|
|
42
|
+
* still being typed (`argument === null`), {@link matchesLockedCommand} once a separator has been
|
|
43
|
+
* typed (`argument !== null`) — see each helper's own doc for why the rule changes at that point.
|
|
44
|
+
*/
|
|
45
|
+
export function filterComposerDiscovery(groups, query) {
|
|
46
|
+
const normalizedCommand = query.command.trim().toLowerCase();
|
|
47
|
+
const matchesQuery = query.argument !== null ? matchesLockedCommand : matchesFuzzyCommand;
|
|
48
|
+
const matches = [];
|
|
49
|
+
for (const group of groups) {
|
|
50
|
+
for (const item of group.items) {
|
|
51
|
+
if (matchesQuery(item, normalizedCommand))
|
|
52
|
+
matches.push({ groupId: group.id, groupLabel: group.label, item });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return matches;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Decides what selecting `item` (via click, Enter, or Tab) should do against the current `draft`.
|
|
59
|
+
*
|
|
60
|
+
* A plain item (no `command`) is unaffected — always resolves to `'invoke'`, preserving today's
|
|
61
|
+
* one-step select-and-replace behavior exactly. A command-bearing item completes the trigger
|
|
62
|
+
* instead of invoking whenever invoking now would be premature or meaningless:
|
|
63
|
+
* - the typed command word is only a fuzzy/prefix match, not the declared word itself (Enter
|
|
64
|
+
* disambiguates rather than guessing which of several prefix-matched commands was meant);
|
|
65
|
+
* - the item takes an argument and none has been typed yet (no separator);
|
|
66
|
+
* - the argument is declared `required` and only whitespace follows the separator.
|
|
67
|
+
*
|
|
68
|
+
* Everything else invokes: a no-argument command the moment its exact word is typed, or an
|
|
69
|
+
* argument-taking command the moment a separator exists and (if required) the argument is
|
|
70
|
+
* non-blank.
|
|
71
|
+
*/
|
|
72
|
+
export function resolveComposerSlashInvocation(draft, item) {
|
|
73
|
+
const query = parseComposerSlashQuery(draft);
|
|
74
|
+
if (!query)
|
|
75
|
+
return null;
|
|
76
|
+
if (!item.command)
|
|
77
|
+
return { type: 'invoke' };
|
|
78
|
+
const completeTo = () => ({
|
|
79
|
+
type: 'complete',
|
|
80
|
+
draft: `/${item.command}${item.argument ? ' ' : ''}`,
|
|
81
|
+
});
|
|
82
|
+
if (query.command.trim().toLowerCase() !== item.command.toLowerCase())
|
|
83
|
+
return completeTo();
|
|
84
|
+
if (!item.argument)
|
|
85
|
+
return { type: 'invoke', argument: query.argument };
|
|
86
|
+
if (query.argument === null)
|
|
87
|
+
return completeTo();
|
|
88
|
+
if (item.argument.required && query.argument.trim() === '')
|
|
89
|
+
return completeTo();
|
|
90
|
+
return { type: 'invoke', argument: query.argument };
|
|
91
|
+
}
|
|
92
|
+
/** Replaces the complete active slash token; callers only invoke this after the parser matches. */
|
|
93
|
+
export function replaceComposerSlashTrigger(draft, insertText) {
|
|
94
|
+
return parseComposerSlashQuery(draft) === null ? draft : insertText;
|
|
95
|
+
}
|
|
96
|
+
/** Adds a menu-selected resource to an existing prompt without concatenating words. */
|
|
97
|
+
export function appendComposerDiscovery(draft, insertText) {
|
|
98
|
+
if (draft.trim() === '')
|
|
99
|
+
return insertText;
|
|
100
|
+
return `${draft.trimEnd()} ${insertText}`;
|
|
101
|
+
}
|
|
102
|
+
/** Maps palette keys without owning React state; arrows are intentionally circular at the caller. */
|
|
103
|
+
export function resolveComposerSlashKeyAction(key, shiftKey) {
|
|
104
|
+
if (key === 'ArrowDown')
|
|
105
|
+
return { type: 'move', offset: 1 };
|
|
106
|
+
if (key === 'ArrowUp')
|
|
107
|
+
return { type: 'move', offset: -1 };
|
|
108
|
+
if ((key === 'Enter' || key === 'Tab') && !shiftKey)
|
|
109
|
+
return { type: 'select' };
|
|
110
|
+
if (key === 'Escape')
|
|
111
|
+
return { type: 'dismiss' };
|
|
112
|
+
return { type: 'none' };
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Vertical half of a composer popover's viewport-fixed position, shared by
|
|
116
|
+
* {@link composerDiscoveryMenuPosition} and {@link composerSlashMenuPosition}.
|
|
117
|
+
*
|
|
118
|
+
* Both popovers were previously plain `position: absolute` descendants of `.jini-composer`, which
|
|
119
|
+
* is itself nested inside `.jini-chat-pane__body` — an ancestor that sets `overflow: hidden`
|
|
120
|
+
* unconditionally (`styles.ts`), plus whatever clipping box a host's own dock chrome adds on top
|
|
121
|
+
* (Tovu admin's `.admin-chat-dock` is `overflow: hidden` too, and its mobile "peek" sheet caps the
|
|
122
|
+
* whole dock at `58vh`). CSS alone cannot know how much room that leaves above the composer on a
|
|
123
|
+
* given host; when the popover's natural content is taller than the available space, the
|
|
124
|
+
* ancestor's hard clip boundary slices through whichever row sits at the clip line instead of the
|
|
125
|
+
* popover's own internal scroll doing so — reported as the list reading "clipped mid-item" rather
|
|
126
|
+
* than cleanly scrolled. `position: fixed` escapes every ancestor's `overflow` (none of them sets
|
|
127
|
+
* `transform`/`filter`/`contain`/`will-change: transform`, which is the only thing that would trap
|
|
128
|
+
* a fixed-position descendant), the same fix `useAgentRuntimePicker.hooks.ts`'s
|
|
129
|
+
* `runtimePopoverPosition('up', ...)` already applies to the sibling runtime popover for the
|
|
130
|
+
* identical reason.
|
|
131
|
+
*
|
|
132
|
+
* @complexity Time/space: O(1).
|
|
133
|
+
*/
|
|
134
|
+
function verticalUpPosition(anchorTop) {
|
|
135
|
+
const gap = 6; // matches the reference stylesheet's `bottom: calc(100% + 6px)`
|
|
136
|
+
const margin = 8; // keeps the popover off the literal viewport edge on a very short window
|
|
137
|
+
const maxHeightCap = 280; // matches the reference stylesheet's unconditional `max-height: 280px`
|
|
138
|
+
return {
|
|
139
|
+
position: 'fixed',
|
|
140
|
+
bottom: Math.max(margin, window.innerHeight - anchorTop + gap),
|
|
141
|
+
maxHeight: Math.min(maxHeightCap, Math.max(0, anchorTop - gap - margin)),
|
|
142
|
+
zIndex: 8, // matches the reference stylesheet's `.jini-composer-discovery-menu`/`-slash-menu`
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Viewport-fixed position for the "+" discovery menu, anchored to `.jini-composer`'s live rect.
|
|
147
|
+
* Keeps the menu's existing left-aligned, width-capped footprint (`inset-inline-start: 8px; width:
|
|
148
|
+
* min(280px, 100vw - 32px)` in the reference stylesheet) — only the escape-the-ancestor-clip and
|
|
149
|
+
* available-space clamp from {@link verticalUpPosition} are new.
|
|
150
|
+
*
|
|
151
|
+
* @complexity Time/space: O(1).
|
|
152
|
+
*/
|
|
153
|
+
export function composerDiscoveryMenuPosition(composerRect) {
|
|
154
|
+
const inset = 8;
|
|
155
|
+
return {
|
|
156
|
+
...verticalUpPosition(composerRect.top),
|
|
157
|
+
left: composerRect.left + inset,
|
|
158
|
+
width: Math.min(280, window.innerWidth - 32),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Viewport-fixed position for the slash-command palette, anchored to `.jini-composer`'s live
|
|
163
|
+
* rect. Keeps the palette's existing full-width-minus-insets footprint (`inset-inline: 8px` in
|
|
164
|
+
* the reference stylesheet).
|
|
165
|
+
*
|
|
166
|
+
* @complexity Time/space: O(1).
|
|
167
|
+
*/
|
|
168
|
+
export function composerSlashMenuPosition(composerRect) {
|
|
169
|
+
const inset = 8;
|
|
170
|
+
return {
|
|
171
|
+
...verticalUpPosition(composerRect.top),
|
|
172
|
+
left: composerRect.left + inset,
|
|
173
|
+
width: Math.max(0, composerRect.width - inset * 2),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=composer-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composer-discovery.js","sourceRoot":"","sources":["../../../src/react/components/composer-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ext-event-renderer-registry
|
|
3
|
+
*
|
|
4
|
+
* Per-name renderer registry for `AgentEvent`'s `kind: 'ext'` escape hatch — the sibling of
|
|
5
|
+
* `tool-renderer-registry.ts`, which does the same job for `tool_use`/`tool_result` pairs.
|
|
6
|
+
*
|
|
7
|
+
* `kind: 'ext'` exists precisely for host-specific event kinds chat-core doesn't know about (its
|
|
8
|
+
* own doc names `live_artifact`/`plugin_candidate` as examples). Before this module, `MessageRow`
|
|
9
|
+
* silently dropped every `ext` event — nothing rendered them. This registry is what lets a host
|
|
10
|
+
* (or a protocol package like `@jini-ai/a2ui`) claim a `name` and render every event carrying it,
|
|
11
|
+
* inline in the transcript, the same extensibility shape `registerToolRenderer` already gives
|
|
12
|
+
* tool calls.
|
|
13
|
+
*
|
|
14
|
+
* Unlike a tool renderer (one `tool_use`/`tool_result` pair per row), an ext-event renderer
|
|
15
|
+
* receives every event sharing its `name` for the whole message, in arrival order — some
|
|
16
|
+
* protocols (A2UI's `createSurface` → `updateComponents` → ... sequence) are a stream a single
|
|
17
|
+
* snapshot can't represent; the renderer owns folding that sequence into whatever live state it
|
|
18
|
+
* needs (e.g. by feeding each one through a stateful interpreter).
|
|
19
|
+
*/
|
|
20
|
+
import type { ReactNode } from 'react';
|
|
21
|
+
/** Render-prop payload for one `name` group of `kind: 'ext'` events belonging to a message. */
|
|
22
|
+
export interface ExtEventRenderProps {
|
|
23
|
+
name: string;
|
|
24
|
+
/** Every matching event's `data`, in arrival order. Never empty. */
|
|
25
|
+
events: readonly unknown[];
|
|
26
|
+
/** Whether the owning run is still streaming — more events with this `name` may still arrive. */
|
|
27
|
+
runStreaming: boolean;
|
|
28
|
+
runSucceeded: boolean;
|
|
29
|
+
/** The owning message's `ChatMessage.runId`, if known — a renderer that needs to send something back to this specific run (e.g. an A2UI action) needs this; omitted (`undefined`) for a message with no run association. */
|
|
30
|
+
runId: string | undefined;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Ext-event render callback. Runs inline during `MessageRow`'s render — hook-free, like
|
|
34
|
+
* `ToolRenderer`. Return a component element (`(props) => <MyStatefulCard {...props} />`) if you
|
|
35
|
+
* need hooks/local state (e.g. a memoized interpreter instance).
|
|
36
|
+
*
|
|
37
|
+
* Returning `null`/`undefined`/`false` renders nothing for this group — there is no built-in
|
|
38
|
+
* fallback card the way `ToolCard` has one, since an unrecognized `ext` name has no generic
|
|
39
|
+
* rendering that makes sense (unlike an unrecognized tool, which can always fall back to a
|
|
40
|
+
* name+JSON card).
|
|
41
|
+
*/
|
|
42
|
+
export type ExtEventRenderer = (props: ExtEventRenderProps) => ReactNode;
|
|
43
|
+
/**
|
|
44
|
+
* Register a renderer for an ext-event `name`. Returns an unregister handle so tests / hot-reloads
|
|
45
|
+
* can dispose cleanly. Re-registering the same name overwrites — last writer wins.
|
|
46
|
+
*/
|
|
47
|
+
export declare function registerExtEventRenderer(name: string, renderer: ExtEventRenderer): () => void;
|
|
48
|
+
export declare function getExtEventRenderer(name: string): ExtEventRenderer | undefined;
|
|
49
|
+
/** Visible mainly for tests. */
|
|
50
|
+
export declare function clearExtEventRenderers(): void;
|
|
51
|
+
//# sourceMappingURL=ext-event-renderer-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ext-event-renderer-registry.d.ts","sourceRoot":"","sources":["../../src/react/ext-event-renderer-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,+FAA+F;AAC/F,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3B,iGAAiG;IACjG,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,4NAA4N;IAC5N,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,SAAS,CAAC;AAIzE;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAK7F;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE9E;AAED,gCAAgC;AAChC,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const renderers = new Map();
|
|
2
|
+
/**
|
|
3
|
+
* Register a renderer for an ext-event `name`. Returns an unregister handle so tests / hot-reloads
|
|
4
|
+
* can dispose cleanly. Re-registering the same name overwrites — last writer wins.
|
|
5
|
+
*/
|
|
6
|
+
export function registerExtEventRenderer(name, renderer) {
|
|
7
|
+
renderers.set(name, renderer);
|
|
8
|
+
return () => {
|
|
9
|
+
if (renderers.get(name) === renderer)
|
|
10
|
+
renderers.delete(name);
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function getExtEventRenderer(name) {
|
|
14
|
+
return renderers.get(name);
|
|
15
|
+
}
|
|
16
|
+
/** Visible mainly for tests. */
|
|
17
|
+
export function clearExtEventRenderers() {
|
|
18
|
+
renderers.clear();
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=ext-event-renderer-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ext-event-renderer-registry.js","sourceRoot":"","sources":["../../src/react/ext-event-renderer-registry.ts"],"names":[],"mappings":"AA6CA,MAAM,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,QAA0B;IAC/E,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9B,OAAO,GAAG,EAAE;QACV,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,QAAQ;YAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,sBAAsB;IACpC,SAAS,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type CapabilityDef, type CapabilityInputSchema, type CapabilityRisk } from '@jini-ai/agentic';
|
|
2
|
+
/** @deprecated Use `CapabilityRisk` from `@jini-ai/agentic`. */
|
|
3
|
+
export type ChatPaneAgentToolRisk = CapabilityRisk;
|
|
4
|
+
/** @deprecated Use `CapabilityInputSchema` from `@jini-ai/agentic`. */
|
|
5
|
+
export type ChatPaneAgentToolInputSchema = CapabilityInputSchema;
|
|
6
|
+
/** @deprecated Use `CapabilityDef` from `@jini-ai/agentic`. */
|
|
7
|
+
export type ChatPaneAgentToolDef = CapabilityDef;
|
|
8
|
+
/**
|
|
9
|
+
* The bounded, explicit set of chat-pane capabilities every transport surface hosts.
|
|
10
|
+
*
|
|
11
|
+
* @deprecated Use `CHAT_CAPABILITIES` from `@jini-ai/chat/core`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const CHAT_PANE_AGENT_TOOLS: readonly CapabilityDef[];
|
|
14
|
+
//# sourceMappingURL=agent-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-tools.d.ts","sourceRoot":"","sources":["../../../../src/react/features/chat-pane/agent-tools.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvG,gEAAgE;AAChE,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC;AACnD,uEAAuE;AACvE,MAAM,MAAM,4BAA4B,GAAG,qBAAqB,CAAC;AACjE,+DAA+D;AAC/D,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,aAAa,EAAsB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module @jini-ai/chat-react/features/chat-pane/agent-tools
|
|
3
|
+
*
|
|
4
|
+
* The chat pane's capability manifest now lives in `@jini-ai/chat/core` (`CHAT_CAPABILITIES`,
|
|
5
|
+
* chat-specific) and `@jini-ai/agentic` (`CapabilityDef` and the rest of the vocabulary,
|
|
6
|
+
* framework-free and dependency-free) — a Node MCP server or HTTP route table can host the same
|
|
7
|
+
* list without pulling React and the component graph into its process, and a future Vue or
|
|
8
|
+
* Svelte binding reads the identical definitions.
|
|
9
|
+
*
|
|
10
|
+
* This file remains as the React package's view of that list, keeping the older
|
|
11
|
+
* `ChatPaneAgentTool*` names working for existing importers. New code should import from
|
|
12
|
+
* `@jini-ai/agentic` directly.
|
|
13
|
+
*/
|
|
14
|
+
import { CHAT_CAPABILITIES } from '@jini-ai/chat/core';
|
|
15
|
+
import {} from '@jini-ai/agentic';
|
|
16
|
+
/**
|
|
17
|
+
* The bounded, explicit set of chat-pane capabilities every transport surface hosts.
|
|
18
|
+
*
|
|
19
|
+
* @deprecated Use `CHAT_CAPABILITIES` from `@jini-ai/chat/core`.
|
|
20
|
+
*/
|
|
21
|
+
export const CHAT_PANE_AGENT_TOOLS = CHAT_CAPABILITIES;
|
|
22
|
+
//# sourceMappingURL=agent-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-tools.js","sourceRoot":"","sources":["../../../../src/react/features/chat-pane/agent-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAuE,MAAM,kBAAkB,CAAC;AASvG;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA6B,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { runtimeOptionLabel, runtimePopoverPosition } from '../hooks/useAgentRuntimePicker.hooks.js';
|
|
2
|
+
import type { AgentRuntimePickerProps, ChatPaneAgent } from '../types.js';
|
|
3
|
+
export { runtimeOptionLabel, runtimePopoverPosition };
|
|
4
|
+
export declare function runtimeAgentStatus(agent: ChatPaneAgent): string;
|
|
5
|
+
/**
|
|
6
|
+
* Renders the package-owned local/API, agent, model, and reasoning picker.
|
|
7
|
+
*
|
|
8
|
+
* @complexity Time: O(n) in the runtime inventory; space: O(n) for ordering.
|
|
9
|
+
* @overallScore 100/100
|
|
10
|
+
*/
|
|
11
|
+
export declare function AgentRuntimePicker({ agents, value, onChange, onRescan, scanning, daemonOnline, placement, executionMode, apiModeAvailable, onExecutionModeChange, byokRuntime, onByokModelChange, agentIconBasePath, }: AgentRuntimePickerProps): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=AgentRuntimePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentRuntimePicker.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/components/AgentRuntimePicker.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EAEvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,uBAAuB,EAEvB,aAAa,EAEd,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;AAEtD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAI/D;AA0PD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAgB,EAChB,YAAmB,EACnB,SAAgB,EAChB,aAAuB,EACvB,gBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EAIjB,iBAAiB,GAClB,EAAE,uBAAuB,+BA0HzB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { createPortal } from 'react-dom';
|
|
3
|
+
import { AgentIcon, RemixIcon, SearchableModelSelect } from '@jini-ai/ui';
|
|
4
|
+
import { useT } from '../../../hooks/context.js';
|
|
5
|
+
import { defaultChatPaneSelection } from '../rules.js';
|
|
6
|
+
import { runtimeOptionLabel, runtimePopoverPosition, useAgentRuntimePicker, } from '../hooks/useAgentRuntimePicker.hooks.js';
|
|
7
|
+
// Re-exported so this module's public surface is unchanged by the behavior extraction; both are
|
|
8
|
+
// pure and now live beside the hook that consumes them.
|
|
9
|
+
export { runtimeOptionLabel, runtimePopoverPosition };
|
|
10
|
+
export function runtimeAgentStatus(agent) {
|
|
11
|
+
if (agent.available === false)
|
|
12
|
+
return agent.diagnostic ?? 'Not found on PATH';
|
|
13
|
+
if (agent.authStatus === 'missing')
|
|
14
|
+
return 'Installed · sign-in required';
|
|
15
|
+
return agent.version ?? 'Installed';
|
|
16
|
+
}
|
|
17
|
+
function RuntimeModeButtons({ executionMode, daemonOnline, apiModeAvailable, onExecutionModeChange, t, }) {
|
|
18
|
+
return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: `jini-runtime-mode${executionMode === 'local' ? ' is-active' : ''}`, disabled: !daemonOnline && executionMode !== 'local', onClick: () => onExecutionModeChange?.('local'), children: [_jsx(RemixIcon, { name: "terminal-box-line", size: 18 }), _jsx("span", { children: t('Use Local CLI') }), _jsx("span", { className: "jini-runtime-mode__meta", children: !daemonOnline ? t('offline') : executionMode === 'local' ? t('active') : '' }), executionMode === 'local' ? (_jsx(RemixIcon, { name: "check-line", size: 19, className: "jini-runtime-check" })) : null] }), _jsxs("button", { type: "button", className: `jini-runtime-mode${executionMode === 'api' ? ' is-active' : ''}`, disabled: !apiModeAvailable, onClick: () => onExecutionModeChange?.('api'), children: [_jsx(RemixIcon, { name: "link", size: 18 }), _jsx("span", { children: t('Use API · BYOK') }), !apiModeAvailable ? _jsx("span", { className: "jini-runtime-mode__meta", children: t('not configured') }) : null, executionMode === 'api' ? (_jsx(RemixIcon, { name: "check-line", size: 19, className: "jini-runtime-check" })) : null] })] }));
|
|
19
|
+
}
|
|
20
|
+
function RuntimeAgentList({ orderedAgents, value, onChange, agentIconBasePath, t, }) {
|
|
21
|
+
if (orderedAgents.length === 0) {
|
|
22
|
+
return _jsx("div", { className: "jini-runtime-empty", children: t('No available code agents') });
|
|
23
|
+
}
|
|
24
|
+
return (_jsx(_Fragment, { children: orderedAgents.map((agent) => {
|
|
25
|
+
const active = agent.id === value.agentId;
|
|
26
|
+
const status = runtimeAgentStatus(agent);
|
|
27
|
+
return (_jsxs("button", { type: "button", role: "radio", "aria-checked": active, className: `jini-runtime-agent${active ? ' is-active' : ''}`, "aria-current": active ? 'true' : undefined, "aria-label": `${agent.name} · ${status}`, onClick: () => onChange(defaultChatPaneSelection(agent)), children: [_jsx(AgentIcon, { id: agent.id, size: 20, className: "jini-runtime-agent-icon", ...(agentIconBasePath === undefined ? {} : { basePath: agentIconBasePath }) }), _jsx("span", { className: "jini-runtime-agent__copy", children: _jsx("strong", { children: agent.name }) }), _jsx("span", { className: "jini-runtime-agent__status", children: active ? t('selected') : status }), active ? (_jsx(RemixIcon, { name: "check-line", size: 19, className: "jini-runtime-check" })) : null] }, agent.id));
|
|
28
|
+
}) }));
|
|
29
|
+
}
|
|
30
|
+
function RuntimeModelSelects({ selectedAgent, value, onChange, t }) {
|
|
31
|
+
if (!selectedAgent)
|
|
32
|
+
return null;
|
|
33
|
+
return (_jsxs("div", { className: "jini-runtime-models", children: [(selectedAgent.models?.length ?? 0) > 0 ? (_jsxs("label", { className: "jini-runtime-select", children: [_jsx("span", { children: t('Model') }), _jsx("select", { "aria-label": t('Model'), value: value.model ?? '', onChange: (event) => onChange({
|
|
34
|
+
agentId: value.agentId,
|
|
35
|
+
model: event.target.value,
|
|
36
|
+
...(value.reasoning ? { reasoning: value.reasoning } : {}),
|
|
37
|
+
}), children: selectedAgent.models?.map((model) => (_jsx("option", { value: model.id, children: model.label }, model.id))) })] })) : null, (selectedAgent.reasoningOptions?.length ?? 0) > 0 ? (_jsxs("label", { className: "jini-runtime-select", children: [_jsx("span", { children: t('Reasoning') }), _jsx("select", { "aria-label": t('Reasoning'), value: value.reasoning ?? '', onChange: (event) => onChange({
|
|
38
|
+
agentId: value.agentId,
|
|
39
|
+
...(value.model ? { model: value.model } : {}),
|
|
40
|
+
reasoning: event.target.value,
|
|
41
|
+
}), children: selectedAgent.reasoningOptions?.map((option) => (_jsx("option", { value: option.id, children: option.label }, option.id))) })] })) : null] }));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* What the popover shows in place of the CLI inventory while `executionMode` is `'api'`: the model
|
|
45
|
+
* the credential will run, and nothing else.
|
|
46
|
+
*
|
|
47
|
+
* Everything this replaces (the agent radios, the "Default (CLI config)" select, Reasoning, Rescan
|
|
48
|
+
* PATH) is a property of a *detected CLI process* and has no effect on an API turn — rendering them
|
|
49
|
+
* here was the defect.
|
|
50
|
+
*
|
|
51
|
+
* ## Why the same `SearchableModelSelect` the settings screen uses
|
|
52
|
+
*
|
|
53
|
+
* Not a look-alike `<select>`. This is literally the control `ByokProviderForm`'s Model field
|
|
54
|
+
* renders, fed the same discovered list and writing back to the same stored config, so the two
|
|
55
|
+
* surfaces cannot drift: pick a model here and the settings screen shows it, and vice versa. Its
|
|
56
|
+
* search box also matters at this size — a live Gemini key discovers ~40 models, which is past the
|
|
57
|
+
* point where a plain dropdown in a 320px popover is usable.
|
|
58
|
+
*
|
|
59
|
+
* Falls back to plain text when the host supplies no `onByokModelChange` or no model list. That is
|
|
60
|
+
* a real state, not a degenerate one: a host without discovery has nothing to offer a picker, and a
|
|
61
|
+
* disabled dropdown would read as "editable once something is enabled" when nothing here will
|
|
62
|
+
* enable it.
|
|
63
|
+
*/
|
|
64
|
+
function RuntimeByokDetails({ byokRuntime, onByokModelChange, t }) {
|
|
65
|
+
const model = byokRuntime?.model?.trim();
|
|
66
|
+
const models = byokRuntime?.models ?? [];
|
|
67
|
+
const editable = onByokModelChange !== undefined && models.length > 0;
|
|
68
|
+
return (_jsxs("div", { className: "jini-runtime-models", children: [_jsxs("div", { className: "jini-runtime-select jini-runtime-byok-model", children: [_jsx("span", { children: t('Model') }), editable ? (_jsx(SearchableModelSelect, { models: models, value: model ?? '', onChange: (next) => onByokModelChange(next), ariaLabel: t('Model'), searchPlaceholder: t('Search models'),
|
|
69
|
+
// The menu portals to `document.body` at the package default `z-index: 60`, while this
|
|
70
|
+
// popover positions itself at 1000 — so without this the model list opens BEHIND the
|
|
71
|
+
// popover that owns it. Raised here rather than in the shared stylesheet because 60 is
|
|
72
|
+
// right for every other consumer; only this one opens a portalled menu from inside an
|
|
73
|
+
// already-elevated surface.
|
|
74
|
+
menuClassName: "jini-runtime-model-menu" })) : (_jsx("strong", { children: model || t('No model configured') }))] }), !model && !editable ? (_jsx("div", { className: "jini-runtime-empty", children: t('Set a model in the BYOK settings before sending a message.') })) : null] }));
|
|
75
|
+
}
|
|
76
|
+
function RuntimeRescanFooter({ onRescan, scanning, t }) {
|
|
77
|
+
if (onRescan) {
|
|
78
|
+
return (_jsxs("button", { type: "button", className: "jini-runtime-rescan", disabled: scanning, onClick: onRescan, children: [_jsx(RemixIcon, { name: "refresh-line", size: 17, ...(scanning ? { className: 'jini-runtime-spinner' } : {}) }), _jsx("span", { children: scanning ? t('Scanning PATH…') : t('Rescan PATH') })] }));
|
|
79
|
+
}
|
|
80
|
+
if (scanning) {
|
|
81
|
+
return _jsx("div", { className: "jini-runtime-empty", children: t('Scanning PATH…') });
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Renders the package-owned local/API, agent, model, and reasoning picker.
|
|
87
|
+
*
|
|
88
|
+
* @complexity Time: O(n) in the runtime inventory; space: O(n) for ordering.
|
|
89
|
+
* @overallScore 100/100
|
|
90
|
+
*/
|
|
91
|
+
export function AgentRuntimePicker({ agents, value, onChange, onRescan, scanning = false, daemonOnline = true, placement = 'up', executionMode = 'local', apiModeAvailable = false, onExecutionModeChange, byokRuntime, onByokModelChange,
|
|
92
|
+
// No default here (was '/agent-icons'): omitted means "let AgentIcon fall back to its own
|
|
93
|
+
// bundled icon set" — see AgentIcon.tsx's BUNDLED_ICON_URLS. A host that still wants to vendor
|
|
94
|
+
// its own asset directory can pass this explicitly, same as before.
|
|
95
|
+
agentIconBasePath, }) {
|
|
96
|
+
const t = useT();
|
|
97
|
+
const { dialogId, open, position, triggerRef, popoverRef, orderedAgents, selectedAgent, modelLabel, runtimeSummary, triggerTitle, originTheme, toggleOpen, handlePopoverKeyDown, } = useAgentRuntimePicker({ agents, value, placement, t, executionMode, byokRuntime });
|
|
98
|
+
// The one branch this component makes. Everything below the mode buttons describes a detected CLI
|
|
99
|
+
// — the agent radios, its model and reasoning selects, and the PATH rescan — and none of it is
|
|
100
|
+
// true of, or has any effect on, an API turn. Previously all of it rendered in both modes, so an
|
|
101
|
+
// operator on BYOK saw a CLI named as "selected" and a model reading "Default (CLI config)"
|
|
102
|
+
// while their messages went to a provider over an API key.
|
|
103
|
+
const isApi = executionMode === 'api';
|
|
104
|
+
return (_jsxs("div", { className: "jini-runtime-picker", children: [_jsxs("button", { ref: triggerRef, type: "button", className: "jini-runtime-trigger", "aria-label": t('Choose AI runtime'), "aria-haspopup": "dialog", "aria-expanded": open, "aria-controls": dialogId, onClick: toggleOpen, children: [isApi ? (byokRuntime?.iconId ? (_jsx(AgentIcon, { id: byokRuntime.iconId, size: 22, className: "jini-runtime-agent-icon", ...(agentIconBasePath === undefined ? {} : { basePath: agentIconBasePath }) })) : (_jsx(RemixIcon, { name: "link", size: 20, className: "jini-runtime-agent-icon" }))) : (_jsx(AgentIcon, { id: selectedAgent?.id ?? '', size: 22, className: "jini-runtime-agent-icon", ...(agentIconBasePath === undefined ? {} : { basePath: agentIconBasePath }) })), _jsxs("span", { className: "jini-runtime-trigger__copy", children: [_jsx("strong", { children: triggerTitle }), _jsx("small", { children: modelLabel })] }), _jsx(RemixIcon, { name: "arrow-down-s-line", size: 15, className: "jini-runtime-trigger__chevron" })] }), open && position ? createPortal(_jsxs("div", { ref: popoverRef, className: "jini-runtime-popover", ...(originTheme ? { 'data-theme': originTheme } : {}), id: dialogId, role: "dialog", "aria-label": t('Choose AI runtime'), "aria-modal": "false", style: position, onKeyDown: handlePopoverKeyDown, children: [_jsxs("div", { className: "jini-runtime-popover__head", children: [_jsx("strong", { children: executionMode === 'local' ? t('Local CLI') : t('API · BYOK') }), _jsx("span", { children: runtimeSummary })] }), _jsx(RuntimeModeButtons, { executionMode: executionMode, daemonOnline: daemonOnline, apiModeAvailable: apiModeAvailable, onExecutionModeChange: onExecutionModeChange, t: t }), isApi ? (_jsx(RuntimeByokDetails, { byokRuntime: byokRuntime, onByokModelChange: onByokModelChange, t: t })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "jini-runtime-section-label", children: t('Code agent') }), _jsx("div", { role: "radiogroup", "aria-label": t('Code agent'), children: _jsx(RuntimeAgentList, { orderedAgents: orderedAgents, value: value, onChange: onChange, ...(agentIconBasePath === undefined ? {} : { agentIconBasePath }), t: t }) }), _jsx(RuntimeModelSelects, { selectedAgent: selectedAgent, value: value, onChange: onChange, t: t }), _jsx(RuntimeRescanFooter, { onRescan: onRescan, scanning: scanning, t: t })] }))] }), document.body) : null] }));
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=AgentRuntimePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentRuntimePicker.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/components/AgentRuntimePicker.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,yCAAyC,CAAC;AAQjD,gGAAgG;AAChG,wDAAwD;AACxD,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;AAEtD,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC,UAAU,IAAI,mBAAmB,CAAC;IAC9E,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,8BAA8B,CAAC;IAC1E,OAAO,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC;AACtC,CAAC;AAUD,SAAS,kBAAkB,CAAC,EAC1B,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,CAAC,GACuB;IACxB,OAAO,CACL,8BACE,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,oBAAoB,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAC9E,QAAQ,EAAE,CAAC,YAAY,IAAI,aAAa,KAAK,OAAO,EACpD,OAAO,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,aAE/C,KAAC,SAAS,IAAC,IAAI,EAAC,mBAAmB,EAAC,IAAI,EAAE,EAAE,GAAI,EAChD,yBAAO,CAAC,CAAC,eAAe,CAAC,GAAQ,EACjC,eAAM,SAAS,EAAC,yBAAyB,YACtC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GACvE,EACN,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,CAC3B,KAAC,SAAS,IAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,oBAAoB,GAAG,CACzE,CAAC,CAAC,CAAC,IAAI,IACD,EACT,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,oBAAoB,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAC5E,QAAQ,EAAE,CAAC,gBAAgB,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,aAE7C,KAAC,SAAS,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,GAAI,EACnC,yBAAO,CAAC,CAAC,gBAAgB,CAAC,GAAQ,EACjC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,yBAAyB,YAAE,CAAC,CAAC,gBAAgB,CAAC,GAAQ,CAAC,CAAC,CAAC,IAAI,EACjG,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,CACzB,KAAC,SAAS,IAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,oBAAoB,GAAG,CACzE,CAAC,CAAC,CAAC,IAAI,IACD,IACR,CACJ,CAAC;AACJ,CAAC;AAUD,SAAS,gBAAgB,CAAC,EACxB,aAAa,EACb,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,CAAC,GACqB;IACtB,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,cAAK,SAAS,EAAC,oBAAoB,YAAE,CAAC,CAAC,0BAA0B,CAAC,GAAO,CAAC;IACnF,CAAC;IACD,OAAO,CACL,4BACG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC;YAC1C,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,kBACE,MAAM,EACpB,SAAS,EAAE,qBAAqB,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,kBAE9C,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,gBAC7B,GAAG,KAAK,CAAC,IAAI,MAAM,MAAM,EAAE,EACvC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,aAExD,KAAC,SAAS,IACR,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,IAAI,EAAE,EAAE,EACR,SAAS,EAAC,yBAAyB,KAC/B,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,GAC5E,EACF,eAAM,SAAS,EAAC,0BAA0B,YACxC,2BAAS,KAAK,CAAC,IAAI,GAAU,GACxB,EACP,eAAM,SAAS,EAAC,4BAA4B,YACzC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,GAC3B,EACN,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,SAAS,IAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,oBAAoB,GAAG,CACzE,CAAC,CAAC,CAAC,IAAI,KAnBH,KAAK,CAAC,EAAE,CAoBN,CACV,CAAC;QACJ,CAAC,CAAC,GACD,CACJ,CAAC;AACJ,CAAC;AASD,SAAS,mBAAmB,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAA4B;IAC1F,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aACjC,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACzC,iBAAO,SAAS,EAAC,qBAAqB,aACpC,yBAAO,CAAC,CAAC,OAAO,CAAC,GAAQ,EACzB,+BACc,CAAC,CAAC,OAAO,CAAC,EACtB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC;4BAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;4BACzB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC3D,CAAC,YAED,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACpC,iBAAQ,KAAK,EAAE,KAAK,CAAC,EAAE,YAAkB,KAAK,CAAC,KAAK,IAAtB,KAAK,CAAC,EAAE,CAAwB,CAC/D,CAAC,GACK,IACH,CACT,CAAC,CAAC,CAAC,IAAI,EACP,CAAC,aAAa,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACnD,iBAAO,SAAS,EAAC,qBAAqB,aACpC,yBAAO,CAAC,CAAC,WAAW,CAAC,GAAQ,EAC7B,+BACc,CAAC,CAAC,WAAW,CAAC,EAC1B,KAAK,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,EAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC;4BAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC9C,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;yBAC9B,CAAC,YAED,aAAa,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/C,iBAAQ,KAAK,EAAE,MAAM,CAAC,EAAE,YAAmB,MAAM,CAAC,KAAK,IAAxB,MAAM,CAAC,EAAE,CAAyB,CAClE,CAAC,GACK,IACH,CACT,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC;AAQD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,kBAAkB,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,EAA2B;IACxF,MAAM,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,WAAW,EAAE,MAAM,IAAI,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,iBAAiB,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACtE,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,eAAK,SAAS,EAAC,6CAA6C,aAC1D,yBAAO,CAAC,CAAC,OAAO,CAAC,GAAQ,EACxB,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,qBAAqB,IACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAC3C,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,EACrB,iBAAiB,EAAE,CAAC,CAAC,eAAe,CAAC;wBACrC,uFAAuF;wBACvF,qFAAqF;wBACrF,uFAAuF;wBACvF,sFAAsF;wBACtF,4BAA4B;wBAC5B,aAAa,EAAC,yBAAyB,GACvC,CACH,CAAC,CAAC,CAAC,CACF,2BAAS,KAAK,IAAI,CAAC,CAAC,qBAAqB,CAAC,GAAU,CACrD,IACG,EACL,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACrB,cAAK,SAAS,EAAC,oBAAoB,YAChC,CAAC,CAAC,4DAA4D,CAAC,GAC5D,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC;AAQD,SAAS,mBAAmB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAA4B;IAC9E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,EAC/B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,QAAQ,aAEjB,KAAC,SAAS,IACR,IAAI,EAAC,cAAc,EACnB,IAAI,EAAE,EAAE,KACJ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC3D,EACF,yBAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAQ,IACzD,CACV,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,cAAK,SAAS,EAAC,oBAAoB,YAAE,CAAC,CAAC,gBAAgB,CAAC,GAAO,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,YAAY,GAAG,IAAI,EACnB,SAAS,GAAG,IAAI,EAChB,aAAa,GAAG,OAAO,EACvB,gBAAgB,GAAG,KAAK,EACxB,qBAAqB,EACrB,WAAW,EACX,iBAAiB;AACjB,0FAA0F;AAC1F,+FAA+F;AAC/F,oEAAoE;AACpE,iBAAiB,GACO;IACxB,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,EACJ,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,oBAAoB,GACrB,GAAG,qBAAqB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC;IAEvF,kGAAkG;IAClG,+FAA+F;IAC/F,iGAAiG;IACjG,4FAA4F;IAC5F,2DAA2D;IAC3D,MAAM,KAAK,GAAG,aAAa,KAAK,KAAK,CAAC;IAEtC,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,kBACE,GAAG,EAAE,UAAU,EACf,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,sBAAsB,gBACpB,CAAC,CAAC,mBAAmB,CAAC,mBACpB,QAAQ,mBACP,IAAI,mBACJ,QAAQ,EACvB,OAAO,EAAE,UAAU,aAMlB,KAAK,CAAC,CAAC,CAAC,CACP,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CACpB,KAAC,SAAS,IACR,EAAE,EAAE,WAAW,CAAC,MAAM,EACtB,IAAI,EAAE,EAAE,EACR,SAAS,EAAC,yBAAyB,KAC/B,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,GAC5E,CACH,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,yBAAyB,GAAG,CACxE,CACF,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,IACR,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,EAC3B,IAAI,EAAE,EAAE,EACR,SAAS,EAAC,yBAAyB,KAC/B,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,GAC5E,CACH,EACD,gBAAM,SAAS,EAAC,4BAA4B,aAC1C,2BAAS,YAAY,GAAU,EAC/B,0BAAQ,UAAU,GAAS,IACtB,EACP,KAAC,SAAS,IACR,IAAI,EAAC,mBAAmB,EACxB,IAAI,EAAE,EAAE,EACR,SAAS,EAAC,+BAA+B,GACzC,IACK,EAER,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,YAAY,CAC9B,eACE,GAAG,EAAE,UAAU,EACf,SAAS,EAAC,sBAAsB,KAG5B,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACtD,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAC,QAAQ,gBACD,CAAC,CAAC,mBAAmB,CAAC,gBACvB,OAAO,EAClB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,oBAAoB,aAE/B,eAAK,SAAS,EAAC,4BAA4B,aACzC,2BAAS,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAU,EAC/E,yBAAO,cAAc,GAAQ,IACzB,EACN,KAAC,kBAAkB,IACjB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,CAAC,EAAE,CAAC,GACJ,EAED,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,kBAAkB,IAAC,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,GAAI,CAC7F,CAAC,CAAC,CAAC,CACF,8BACE,cAAK,SAAS,EAAC,4BAA4B,YAAE,CAAC,CAAC,YAAY,CAAC,GAAO,EACnE,cAAK,IAAI,EAAC,YAAY,gBAAa,CAAC,CAAC,YAAY,CAAC,YAChD,KAAC,gBAAgB,IACf,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,KACd,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAClE,CAAC,EAAE,CAAC,GACJ,GACE,EAEN,KAAC,mBAAmB,IAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAI,EAE7F,KAAC,mBAAmB,IAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAI,IACpE,CACJ,IACG,EACN,QAAQ,CAAC,IAAI,CACd,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ChatPaneProps } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Renders the self-contained chat-pane composition, including runtime and
|
|
4
|
+
* working-directory orchestration owned by `@jini-ai/chat-react`.
|
|
5
|
+
*
|
|
6
|
+
* @complexity Time/space: O(n) in rendered messages, agents, and suggestions.
|
|
7
|
+
* @overallScore 100/100
|
|
8
|
+
*/
|
|
9
|
+
export declare function ChatPane({ transport, agents: injectedAgents, runtimeAccess, runtimeStatusPollMs, title, variant, initialMessages, conversationId, initialSelection, selection: controlledSelection, onSelectionChange, runContext, agentControl, onActivityChange, onMessagesChange, onRescanAgents, scanningAgents, daemonOnline, executionMode, apiModeAvailable, onExecutionModeChange, byokRuntime, onByokModelChange, initialDraft, composerHandle, placeholder, suggestions, workingDirectory, initialWorkingDirectory, onChangeWorkingDirectory, workingDirectoryAccess, projectFileNames, uploadAttachments, attachmentAccept, disabled, runtimePickerPlacement, composerSlots, header, leadingAccessory, footer, className, style, }: ChatPaneProps): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=ChatPane.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatPane.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/components/ChatPane.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,aAAa,EAId,MAAM,aAAa,CAAC;AA0SrB;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,MAAM,EAAE,cAA6B,EACrC,aAAa,EACb,mBAA2B,EAC3B,KAAK,EACL,OAAqB,EACrB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,SAAS,EAAE,mBAAmB,EAC9B,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAsB,EACtB,YAAmB,EACnB,aAAuB,EACvB,gBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,QAAgB,EAChB,sBAA6B,EAC7B,aAAa,EACb,MAAM,EACN,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,aAAa,+BAgJf"}
|