@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,26 @@
|
|
|
1
|
+
import { type DragEventHandler } from 'react';
|
|
2
|
+
export interface UseChatPaneFileDropOptions {
|
|
3
|
+
enabled: boolean;
|
|
4
|
+
onFiles: (files: File[]) => void | Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
export interface ChatPaneFileDropTargetProps {
|
|
7
|
+
onDragEnter: DragEventHandler<HTMLDivElement>;
|
|
8
|
+
onDragOver: DragEventHandler<HTMLDivElement>;
|
|
9
|
+
onDragLeave: DragEventHandler<HTMLDivElement>;
|
|
10
|
+
onDrop: DragEventHandler<HTMLDivElement>;
|
|
11
|
+
}
|
|
12
|
+
export interface UseChatPaneFileDropResult {
|
|
13
|
+
draggingFiles: boolean;
|
|
14
|
+
dropReadError: string | null;
|
|
15
|
+
targetProps: ChatPaneFileDropTargetProps;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Adapts the shared nesting-safe file drop target to the chat composer.
|
|
19
|
+
* Non-file drags are ignored, while temporarily disabled composers still
|
|
20
|
+
* consume a file drop so the browser cannot navigate away to the local file.
|
|
21
|
+
*
|
|
22
|
+
* @complexity Time: O(n) for the dropped file list; space: O(n).
|
|
23
|
+
* @overallScore 100/100
|
|
24
|
+
*/
|
|
25
|
+
export declare function useChatPaneFileDrop({ enabled, onFiles, }: UseChatPaneFileDropOptions): UseChatPaneFileDropResult;
|
|
26
|
+
//# sourceMappingURL=useChatPaneFileDrop.hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChatPaneFileDrop.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneFileDrop.hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,OAAO,CAAC;AAGf,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC9C,UAAU,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC7C,WAAW,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,2BAA2B,CAAC;CAC1C;AAsBD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,OAAO,GACR,EAAE,0BAA0B,GAAG,yBAAyB,CA4CxD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { useCallback, } from 'react';
|
|
2
|
+
import { useFileDropTarget } from '@jini-ai/ui';
|
|
3
|
+
function carriesFiles(event) {
|
|
4
|
+
return Array.from(event.dataTransfer.types ?? []).includes('Files')
|
|
5
|
+
|| Array.from(event.dataTransfer.items ?? []).some((item) => item.kind === 'file')
|
|
6
|
+
|| (event.type === 'drop' && event.dataTransfer.files.length > 0);
|
|
7
|
+
}
|
|
8
|
+
/** Invokes the host's `onFiles` and reports a synchronous throw or async rejection without leaving it unhandled. */
|
|
9
|
+
function runOnFilesHostEffect(onFiles, files) {
|
|
10
|
+
let result;
|
|
11
|
+
try {
|
|
12
|
+
result = onFiles(files);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
console.error('[@jini-ai/chat] useChatPaneFileDrop onFiles host effect failed:', error);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
void Promise.resolve(result).catch((error) => {
|
|
19
|
+
console.error('[@jini-ai/chat] useChatPaneFileDrop onFiles host effect failed:', error);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Adapts the shared nesting-safe file drop target to the chat composer.
|
|
24
|
+
* Non-file drags are ignored, while temporarily disabled composers still
|
|
25
|
+
* consume a file drop so the browser cannot navigate away to the local file.
|
|
26
|
+
*
|
|
27
|
+
* @complexity Time: O(n) for the dropped file list; space: O(n).
|
|
28
|
+
* @overallScore 100/100
|
|
29
|
+
*/
|
|
30
|
+
export function useChatPaneFileDrop({ enabled, onFiles, }) {
|
|
31
|
+
const dropTarget = useFileDropTarget((files) => {
|
|
32
|
+
runOnFilesHostEffect(onFiles, files);
|
|
33
|
+
});
|
|
34
|
+
const onDragEnter = useCallback((event) => {
|
|
35
|
+
if (!enabled || !carriesFiles(event))
|
|
36
|
+
return;
|
|
37
|
+
dropTarget.onDragEnter(event);
|
|
38
|
+
}, [dropTarget.onDragEnter, enabled]);
|
|
39
|
+
const onDragOver = useCallback((event) => {
|
|
40
|
+
if (!carriesFiles(event))
|
|
41
|
+
return;
|
|
42
|
+
event.preventDefault();
|
|
43
|
+
if (!enabled) {
|
|
44
|
+
event.dataTransfer.dropEffect = 'none';
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
dropTarget.onDragOver(event);
|
|
48
|
+
}, [dropTarget.onDragOver, enabled]);
|
|
49
|
+
const onDragLeave = useCallback((event) => {
|
|
50
|
+
if (!enabled || !carriesFiles(event))
|
|
51
|
+
return;
|
|
52
|
+
dropTarget.onDragLeave(event);
|
|
53
|
+
}, [dropTarget.onDragLeave, enabled]);
|
|
54
|
+
const onDrop = useCallback((event) => {
|
|
55
|
+
if (!carriesFiles(event))
|
|
56
|
+
return;
|
|
57
|
+
if (!enabled) {
|
|
58
|
+
event.preventDefault();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
dropTarget.onDrop(event);
|
|
62
|
+
}, [dropTarget.onDrop, enabled]);
|
|
63
|
+
return {
|
|
64
|
+
draggingFiles: enabled && dropTarget.draggingFiles,
|
|
65
|
+
dropReadError: dropTarget.dropReadError,
|
|
66
|
+
targetProps: {
|
|
67
|
+
onDragEnter,
|
|
68
|
+
onDragOver,
|
|
69
|
+
onDragLeave,
|
|
70
|
+
onDrop,
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=useChatPaneFileDrop.hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChatPaneFileDrop.hooks.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneFileDrop.hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ChatPaneAgent, ChatPaneRuntimeAccess } from '../types.js';
|
|
2
|
+
export interface UseChatPaneRuntimeInventoryOptions {
|
|
3
|
+
access?: ChatPaneRuntimeAccess;
|
|
4
|
+
initialAgents?: readonly ChatPaneAgent[];
|
|
5
|
+
pollIntervalMs?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface UseChatPaneRuntimeInventoryResult {
|
|
8
|
+
agents: readonly ChatPaneAgent[];
|
|
9
|
+
scanningAgents: boolean;
|
|
10
|
+
daemonOnline: boolean;
|
|
11
|
+
runtimeInventoryError: Error | null;
|
|
12
|
+
rescanAgents: () => Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Owns agent inventory, explicit rescans, and daemon-health polling while the
|
|
16
|
+
* host supplies only the environment-specific I/O effects.
|
|
17
|
+
*
|
|
18
|
+
* Inventory and health are tracked as two independent operations: a slow `listAgents` must not
|
|
19
|
+
* suppress a health tick that resolved after it, and vice versa.
|
|
20
|
+
*
|
|
21
|
+
* @complexity Time: O(n) per inventory response; space: O(n) for the snapshot.
|
|
22
|
+
* @overallScore 100/100
|
|
23
|
+
*/
|
|
24
|
+
export declare function useChatPaneRuntimeInventory({ access, initialAgents, pollIntervalMs, }: UseChatPaneRuntimeInventoryOptions): UseChatPaneRuntimeInventoryResult;
|
|
25
|
+
//# sourceMappingURL=useChatPaneRuntimeInventory.hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChatPaneRuntimeInventory.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneRuntimeInventory.hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAIxE,MAAM,WAAW,kCAAkC;IACjD,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,aAAa,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,qBAAqB,EAAE,KAAK,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,MAAM,EACN,aAA4B,EAC5B,cAAsB,GACvB,EAAE,kCAAkC,GAAG,iCAAiC,CA2ExE"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
2
|
+
import { useLatestOperation } from '../../../hooks/useLatestOperation.js';
|
|
3
|
+
const EMPTY_AGENTS = [];
|
|
4
|
+
/**
|
|
5
|
+
* Owns agent inventory, explicit rescans, and daemon-health polling while the
|
|
6
|
+
* host supplies only the environment-specific I/O effects.
|
|
7
|
+
*
|
|
8
|
+
* Inventory and health are tracked as two independent operations: a slow `listAgents` must not
|
|
9
|
+
* suppress a health tick that resolved after it, and vice versa.
|
|
10
|
+
*
|
|
11
|
+
* @complexity Time: O(n) per inventory response; space: O(n) for the snapshot.
|
|
12
|
+
* @overallScore 100/100
|
|
13
|
+
*/
|
|
14
|
+
export function useChatPaneRuntimeInventory({ access, initialAgents = EMPTY_AGENTS, pollIntervalMs = 5_000, }) {
|
|
15
|
+
const [agents, setAgents] = useState(initialAgents);
|
|
16
|
+
// Seeded from `access` at mount, not `false`: the load effect below only flips this to `true`
|
|
17
|
+
// once it runs, which is after the first paint. Starting at `false` when `access` is already
|
|
18
|
+
// defined at mount painted one frame where the inventory was neither loaded nor marked as
|
|
19
|
+
// loading — indistinguishable from "detection finished, nothing usable" to any consumer keyed
|
|
20
|
+
// off this flag, which is exactly the frame `ChatPane`'s "No usable CLI" banner flashed on.
|
|
21
|
+
const [scanningAgents, setScanningAgents] = useState(() => access !== undefined);
|
|
22
|
+
const [daemonOnline, setDaemonOnline] = useState(false);
|
|
23
|
+
const [runtimeInventoryError, setRuntimeInventoryError] = useState(null);
|
|
24
|
+
const inventory = useLatestOperation();
|
|
25
|
+
const health = useLatestOperation();
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (access !== undefined)
|
|
28
|
+
return;
|
|
29
|
+
inventory.supersede();
|
|
30
|
+
setAgents(initialAgents);
|
|
31
|
+
setScanningAgents(false);
|
|
32
|
+
setRuntimeInventoryError(null);
|
|
33
|
+
}, [access, initialAgents, inventory]);
|
|
34
|
+
const loadAgents = useCallback(async (rescan) => {
|
|
35
|
+
if (!access)
|
|
36
|
+
return;
|
|
37
|
+
setScanningAgents(true);
|
|
38
|
+
setRuntimeInventoryError(null);
|
|
39
|
+
await inventory.run(async (token) => {
|
|
40
|
+
const nextAgents = await (rescan ? access.rescanAgents() : access.listAgents());
|
|
41
|
+
token.ensureCurrent();
|
|
42
|
+
setAgents([...nextAgents]);
|
|
43
|
+
setScanningAgents(false);
|
|
44
|
+
}, (error) => {
|
|
45
|
+
// A failed rescan keeps the last good inventory on screen; a failed initial load has no
|
|
46
|
+
// last-good to keep, so it clears to empty rather than showing agents that may be gone.
|
|
47
|
+
if (!rescan)
|
|
48
|
+
setAgents([]);
|
|
49
|
+
setRuntimeInventoryError(error);
|
|
50
|
+
setScanningAgents(false);
|
|
51
|
+
});
|
|
52
|
+
}, [access, inventory]);
|
|
53
|
+
const refreshStatus = useCallback(async () => {
|
|
54
|
+
// No `if (!access) return` guard here (unlike `loadAgents`, which is reachable through
|
|
55
|
+
// the publicly-exposed `rescanAgents` and so can be invoked with a stale closure by the
|
|
56
|
+
// host): `refreshStatus` is never returned from this hook, so its only two call sites
|
|
57
|
+
// (the effect below, both the immediate call and the interval tick) are inside the SAME
|
|
58
|
+
// closure as the effect's own `if (!access) return` at its top — `access` is guaranteed
|
|
59
|
+
// defined by the time either one runs.
|
|
60
|
+
const runtimeAccess = access;
|
|
61
|
+
await health.run(async (token) => {
|
|
62
|
+
const online = await runtimeAccess.daemonOnline();
|
|
63
|
+
token.ensureCurrent();
|
|
64
|
+
setDaemonOnline(online);
|
|
65
|
+
}, () => setDaemonOnline(false));
|
|
66
|
+
}, [access, health]);
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
if (!access)
|
|
69
|
+
return;
|
|
70
|
+
void loadAgents(false);
|
|
71
|
+
void refreshStatus();
|
|
72
|
+
const timer = window.setInterval(() => void refreshStatus(), pollIntervalMs);
|
|
73
|
+
return () => {
|
|
74
|
+
window.clearInterval(timer);
|
|
75
|
+
inventory.supersede();
|
|
76
|
+
health.supersede();
|
|
77
|
+
};
|
|
78
|
+
}, [access, health, inventory, loadAgents, pollIntervalMs, refreshStatus]);
|
|
79
|
+
const rescanAgents = useCallback(() => loadAgents(true), [loadAgents]);
|
|
80
|
+
return {
|
|
81
|
+
agents,
|
|
82
|
+
scanningAgents,
|
|
83
|
+
daemonOnline,
|
|
84
|
+
runtimeInventoryError,
|
|
85
|
+
rescanAgents,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=useChatPaneRuntimeInventory.hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChatPaneRuntimeInventory.hooks.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneRuntimeInventory.hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ChatPaneWorkingDirectoryAccess } from '../types.js';
|
|
2
|
+
export interface UseChatPaneWorkingDirectoryOptions {
|
|
3
|
+
workingDirectory?: string | null;
|
|
4
|
+
initialWorkingDirectory?: string | null;
|
|
5
|
+
onChangeWorkingDirectory?: (workingDirectory: string | null) => void;
|
|
6
|
+
workingDirectoryAccess?: ChatPaneWorkingDirectoryAccess;
|
|
7
|
+
}
|
|
8
|
+
export interface UseChatPaneWorkingDirectoryResult {
|
|
9
|
+
workingDirectory: string | null;
|
|
10
|
+
recentDirectories: readonly string[];
|
|
11
|
+
workingDirectoryInvalid: boolean;
|
|
12
|
+
workingDirectoryPending: boolean;
|
|
13
|
+
workingDirectoryError: Error | null;
|
|
14
|
+
openWorkingDirectoryPicker: () => Promise<void>;
|
|
15
|
+
pickWorkingDirectory: () => Promise<void>;
|
|
16
|
+
selectRecentDirectory: (directory: string) => Promise<void>;
|
|
17
|
+
clearWorkingDirectory: () => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Owns controlled/uncontrolled directory state and orchestrates the native
|
|
21
|
+
* filesystem effects used by the packaged working-directory picker.
|
|
22
|
+
*
|
|
23
|
+
* Every async path runs through one {@link useLatestOperation} instance, so a validation still in
|
|
24
|
+
* flight cannot clobber the result of the pick that replaced it, and a resolved promise arriving
|
|
25
|
+
* after unmount writes nothing. `token.ensureCurrent()` is that check — it stands where a
|
|
26
|
+
* `if (!mounted || stale) return;` guard used to sit after each await.
|
|
27
|
+
*
|
|
28
|
+
* @param options - Public value, change callback, and optional host I/O access.
|
|
29
|
+
* @returns Current picker state plus actions consumed by {@link ChatPane}.
|
|
30
|
+
* @throws Never. Native capability failures are exposed as
|
|
31
|
+
* `workingDirectoryError` for package-owned validation UI.
|
|
32
|
+
*
|
|
33
|
+
* @complexity Time: O(r) when refreshing `r` recent paths; O(1) otherwise.
|
|
34
|
+
* @complexity Space: O(r) for the package-owned recent-directory snapshot.
|
|
35
|
+
* @overallScore 100/100
|
|
36
|
+
*/
|
|
37
|
+
export declare function useChatPaneWorkingDirectory(options: UseChatPaneWorkingDirectoryOptions): UseChatPaneWorkingDirectoryResult;
|
|
38
|
+
//# sourceMappingURL=useChatPaneWorkingDirectory.hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChatPaneWorkingDirectory.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneWorkingDirectory.hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,WAAW,kCAAkC;IACjD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,wBAAwB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACrE,sBAAsB,CAAC,EAAE,8BAA8B,CAAC;CACzD;AAED,MAAM,WAAW,iCAAiC;IAChD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,uBAAuB,EAAE,OAAO,CAAC;IACjC,uBAAuB,EAAE,OAAO,CAAC;IACjC,qBAAqB,EAAE,KAAK,GAAG,IAAI,CAAC;IACpC,0BAA0B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,qBAAqB,EAAE,MAAM,IAAI,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kCAAkC,GAC1C,iCAAiC,CA4KnC"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { useLatestOperation } from '../../../hooks/useLatestOperation.js';
|
|
3
|
+
/**
|
|
4
|
+
* Owns controlled/uncontrolled directory state and orchestrates the native
|
|
5
|
+
* filesystem effects used by the packaged working-directory picker.
|
|
6
|
+
*
|
|
7
|
+
* Every async path runs through one {@link useLatestOperation} instance, so a validation still in
|
|
8
|
+
* flight cannot clobber the result of the pick that replaced it, and a resolved promise arriving
|
|
9
|
+
* after unmount writes nothing. `token.ensureCurrent()` is that check — it stands where a
|
|
10
|
+
* `if (!mounted || stale) return;` guard used to sit after each await.
|
|
11
|
+
*
|
|
12
|
+
* @param options - Public value, change callback, and optional host I/O access.
|
|
13
|
+
* @returns Current picker state plus actions consumed by {@link ChatPane}.
|
|
14
|
+
* @throws Never. Native capability failures are exposed as
|
|
15
|
+
* `workingDirectoryError` for package-owned validation UI.
|
|
16
|
+
*
|
|
17
|
+
* @complexity Time: O(r) when refreshing `r` recent paths; O(1) otherwise.
|
|
18
|
+
* @complexity Space: O(r) for the package-owned recent-directory snapshot.
|
|
19
|
+
* @overallScore 100/100
|
|
20
|
+
*/
|
|
21
|
+
export function useChatPaneWorkingDirectory(options) {
|
|
22
|
+
const controlled = options.workingDirectory !== undefined;
|
|
23
|
+
const [uncontrolledWorkingDirectory, setUncontrolledWorkingDirectory] = useState(options.initialWorkingDirectory ?? null);
|
|
24
|
+
const [recentDirectories, setRecentDirectories] = useState([]);
|
|
25
|
+
const [workingDirectoryInvalid, setWorkingDirectoryInvalid] = useState(false);
|
|
26
|
+
const [workingDirectoryPending, setWorkingDirectoryPending] = useState(false);
|
|
27
|
+
const [workingDirectoryError, setWorkingDirectoryError] = useState(null);
|
|
28
|
+
const operation = useLatestOperation();
|
|
29
|
+
const observedDirectoryRef = useRef(undefined);
|
|
30
|
+
const workingDirectory = controlled
|
|
31
|
+
? options.workingDirectory ?? null
|
|
32
|
+
: uncontrolledWorkingDirectory;
|
|
33
|
+
const reportWorkingDirectory = useCallback((directory) => {
|
|
34
|
+
observedDirectoryRef.current = directory;
|
|
35
|
+
if (!controlled)
|
|
36
|
+
setUncontrolledWorkingDirectory(directory);
|
|
37
|
+
options.onChangeWorkingDirectory?.(directory);
|
|
38
|
+
}, [controlled, options.onChangeWorkingDirectory]);
|
|
39
|
+
/** Shared by every action: a failed native call invalidates and stops pending. */
|
|
40
|
+
const reportFailure = useCallback((error) => {
|
|
41
|
+
setWorkingDirectoryError(error);
|
|
42
|
+
setWorkingDirectoryPending(false);
|
|
43
|
+
}, []);
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
if (observedDirectoryRef.current === workingDirectory)
|
|
46
|
+
return;
|
|
47
|
+
observedDirectoryRef.current = workingDirectory;
|
|
48
|
+
operation.supersede();
|
|
49
|
+
const access = options.workingDirectoryAccess;
|
|
50
|
+
setWorkingDirectoryError(null);
|
|
51
|
+
if (workingDirectory === null || !access) {
|
|
52
|
+
setWorkingDirectoryInvalid(false);
|
|
53
|
+
setWorkingDirectoryPending(false);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
let validationSettled = false;
|
|
57
|
+
setWorkingDirectoryPending(true);
|
|
58
|
+
void operation.run(async (token) => {
|
|
59
|
+
const normalized = access.normalizeWorkingDirectory
|
|
60
|
+
? await access.normalizeWorkingDirectory(workingDirectory)
|
|
61
|
+
: workingDirectory;
|
|
62
|
+
token.ensureCurrent();
|
|
63
|
+
if (normalized === null) {
|
|
64
|
+
validationSettled = true;
|
|
65
|
+
setWorkingDirectoryInvalid(true);
|
|
66
|
+
setWorkingDirectoryPending(false);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const exists = await access.directoryExists(normalized);
|
|
70
|
+
token.ensureCurrent();
|
|
71
|
+
if (normalized !== workingDirectory)
|
|
72
|
+
reportWorkingDirectory(normalized);
|
|
73
|
+
validationSettled = true;
|
|
74
|
+
setWorkingDirectoryInvalid(!exists);
|
|
75
|
+
setWorkingDirectoryPending(false);
|
|
76
|
+
}, (error) => {
|
|
77
|
+
validationSettled = true;
|
|
78
|
+
setWorkingDirectoryInvalid(true);
|
|
79
|
+
reportFailure(error);
|
|
80
|
+
});
|
|
81
|
+
return () => {
|
|
82
|
+
operation.supersede();
|
|
83
|
+
// React Strict Mode replays this effect while preserving refs. Release
|
|
84
|
+
// only the marker for the directory owned by this setup so its replay
|
|
85
|
+
// starts fresh. Settled validations keep their marker so an unstable
|
|
86
|
+
// host adapter object cannot trigger a validation/render loop.
|
|
87
|
+
if (!validationSettled
|
|
88
|
+
&& observedDirectoryRef.current === workingDirectory) {
|
|
89
|
+
observedDirectoryRef.current = undefined;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}, [
|
|
93
|
+
operation,
|
|
94
|
+
options.workingDirectoryAccess,
|
|
95
|
+
reportFailure,
|
|
96
|
+
reportWorkingDirectory,
|
|
97
|
+
workingDirectory,
|
|
98
|
+
]);
|
|
99
|
+
const openWorkingDirectoryPicker = useCallback(async () => {
|
|
100
|
+
const access = options.workingDirectoryAccess;
|
|
101
|
+
if (!access)
|
|
102
|
+
return;
|
|
103
|
+
setWorkingDirectoryError(null);
|
|
104
|
+
setWorkingDirectoryPending(true);
|
|
105
|
+
await operation.run(async (token) => {
|
|
106
|
+
const [recent, exists] = await Promise.all([
|
|
107
|
+
access.recentDirectories(),
|
|
108
|
+
workingDirectory === null
|
|
109
|
+
? Promise.resolve(true)
|
|
110
|
+
: access.directoryExists(workingDirectory),
|
|
111
|
+
]);
|
|
112
|
+
token.ensureCurrent();
|
|
113
|
+
setRecentDirectories([...recent]);
|
|
114
|
+
setWorkingDirectoryInvalid(!exists);
|
|
115
|
+
setWorkingDirectoryPending(false);
|
|
116
|
+
}, reportFailure);
|
|
117
|
+
}, [operation, options.workingDirectoryAccess, reportFailure, workingDirectory]);
|
|
118
|
+
const pickWorkingDirectory = useCallback(async () => {
|
|
119
|
+
const access = options.workingDirectoryAccess;
|
|
120
|
+
if (!access)
|
|
121
|
+
return;
|
|
122
|
+
setWorkingDirectoryError(null);
|
|
123
|
+
setWorkingDirectoryPending(true);
|
|
124
|
+
await operation.run(async (token) => {
|
|
125
|
+
const selected = await access.pickWorkingDirectory(workingDirectory ?? undefined);
|
|
126
|
+
token.ensureCurrent();
|
|
127
|
+
if (selected === null) {
|
|
128
|
+
setWorkingDirectoryPending(false);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const [exists, recent] = await Promise.all([
|
|
132
|
+
access.directoryExists(selected),
|
|
133
|
+
access.recentDirectories(),
|
|
134
|
+
]);
|
|
135
|
+
token.ensureCurrent();
|
|
136
|
+
reportWorkingDirectory(selected);
|
|
137
|
+
setWorkingDirectoryInvalid(!exists);
|
|
138
|
+
setRecentDirectories([...recent]);
|
|
139
|
+
setWorkingDirectoryPending(false);
|
|
140
|
+
}, reportFailure);
|
|
141
|
+
}, [
|
|
142
|
+
operation,
|
|
143
|
+
options.workingDirectoryAccess,
|
|
144
|
+
reportFailure,
|
|
145
|
+
reportWorkingDirectory,
|
|
146
|
+
workingDirectory,
|
|
147
|
+
]);
|
|
148
|
+
const selectRecentDirectory = useCallback(async (directory) => {
|
|
149
|
+
operation.supersede();
|
|
150
|
+
setWorkingDirectoryError(null);
|
|
151
|
+
const access = options.workingDirectoryAccess;
|
|
152
|
+
if (!access) {
|
|
153
|
+
reportWorkingDirectory(directory);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
setWorkingDirectoryPending(true);
|
|
157
|
+
await operation.run(async (token) => {
|
|
158
|
+
const exists = await access.directoryExists(directory);
|
|
159
|
+
token.ensureCurrent();
|
|
160
|
+
reportWorkingDirectory(directory);
|
|
161
|
+
setWorkingDirectoryInvalid(!exists);
|
|
162
|
+
setWorkingDirectoryPending(false);
|
|
163
|
+
}, reportFailure);
|
|
164
|
+
}, [operation, options.workingDirectoryAccess, reportFailure, reportWorkingDirectory]);
|
|
165
|
+
const clearWorkingDirectory = useCallback(() => {
|
|
166
|
+
operation.supersede();
|
|
167
|
+
reportWorkingDirectory(null);
|
|
168
|
+
setWorkingDirectoryInvalid(false);
|
|
169
|
+
setWorkingDirectoryPending(false);
|
|
170
|
+
setWorkingDirectoryError(null);
|
|
171
|
+
}, [operation, reportWorkingDirectory]);
|
|
172
|
+
return {
|
|
173
|
+
workingDirectory,
|
|
174
|
+
recentDirectories,
|
|
175
|
+
workingDirectoryInvalid,
|
|
176
|
+
workingDirectoryPending,
|
|
177
|
+
workingDirectoryError,
|
|
178
|
+
openWorkingDirectoryPicker,
|
|
179
|
+
pickWorkingDirectory,
|
|
180
|
+
selectRecentDirectory,
|
|
181
|
+
clearWorkingDirectory,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=useChatPaneWorkingDirectory.hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChatPaneWorkingDirectory.hooks.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneWorkingDirectory.hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type { AgentRuntimePickerProps, ByokRuntimeSummary, ChatPaneActivity, ChatPaneAgent, ChatPaneAgentBridgeAccess, ChatPaneAgentControlOptions, ChatPaneAgentOption, ChatPaneAgentSelection, ChatPaneAgentToolAction, ChatPaneAttachmentUploadOptions, ChatPaneComposerHandle, ChatPaneProps, ChatPaneRunContext, ChatPaneRunContextInput, ChatPaneRuntimeAccess, ChatPaneVariant, ChatPaneWorkingDirectoryAccess, RuntimePickerPlacement, } from './types.js';
|
|
2
|
+
export { CHAT_PANE_AGENT_TOOLS, type ChatPaneAgentToolDef, type ChatPaneAgentToolInputSchema, type ChatPaneAgentToolRisk, } from './agent-tools.js';
|
|
3
|
+
export { defaultChatPaneSelection, orderChatPaneAgents, resolveChatPaneSelection, } from './rules.js';
|
|
4
|
+
export { createDaemonAttachmentUploader, type CreateDaemonAttachmentUploaderOptions, } from './create-daemon-attachment-uploader.js';
|
|
5
|
+
export { createMcpUiToolCaller, type CreateMcpUiToolCallerOptions, type McpUiToolCallRequest, } from './create-mcp-ui-tool-caller.js';
|
|
6
|
+
export { useChatPane, type UseChatPaneOptions, type UseChatPaneResult, } from './hooks/useChatPane.hooks.js';
|
|
7
|
+
export { useChatPaneAgentControl, type UseChatPaneAgentControlOptions, } from './hooks/useChatPaneAgentControl.hooks.js';
|
|
8
|
+
export { useChatPaneWorkingDirectory, type UseChatPaneWorkingDirectoryOptions, type UseChatPaneWorkingDirectoryResult, } from './hooks/useChatPaneWorkingDirectory.hooks.js';
|
|
9
|
+
export { useChatPaneRuntimeInventory, type UseChatPaneRuntimeInventoryOptions, type UseChatPaneRuntimeInventoryResult, } from './hooks/useChatPaneRuntimeInventory.hooks.js';
|
|
10
|
+
export { AgentRuntimePicker, } from './components/AgentRuntimePicker.js';
|
|
11
|
+
export { ChatPane } from './components/ChatPane.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/features/chat-pane/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,+BAA+B,EAC/B,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,8BAA8B,EAC9B,KAAK,qCAAqC,GAC3C,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,GACpC,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { CHAT_PANE_AGENT_TOOLS, } from './agent-tools.js';
|
|
2
|
+
export { defaultChatPaneSelection, orderChatPaneAgents, resolveChatPaneSelection, } from './rules.js';
|
|
3
|
+
export { createDaemonAttachmentUploader, } from './create-daemon-attachment-uploader.js';
|
|
4
|
+
export { createMcpUiToolCaller, } from './create-mcp-ui-tool-caller.js';
|
|
5
|
+
export { useChatPane, } from './hooks/useChatPane.hooks.js';
|
|
6
|
+
export { useChatPaneAgentControl, } from './hooks/useChatPaneAgentControl.hooks.js';
|
|
7
|
+
export { useChatPaneWorkingDirectory, } from './hooks/useChatPaneWorkingDirectory.hooks.js';
|
|
8
|
+
export { useChatPaneRuntimeInventory, } from './hooks/useChatPaneRuntimeInventory.hooks.js';
|
|
9
|
+
export { AgentRuntimePicker, } from './components/AgentRuntimePicker.js';
|
|
10
|
+
export { ChatPane } from './components/ChatPane.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/react/features/chat-pane/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,qBAAqB,GAItB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,8BAA8B,GAE/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,qBAAqB,GAGtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,WAAW,GAGZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,uBAAuB,GAExB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,2BAA2B,GAG5B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,2BAA2B,GAG5B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,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/react/components/AgentRuntimePicker.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EAEvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,uBAAuB,EAEvB,aAAa,EAEd,MAAM,gBAAgB,CAAC;AAIxB,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,EACjB,iBAAkC,GACnC,EAAE,uBAAuB,+BA0HzB"}
|