@agent-native/toolkit 0.221.0-same-host-mcp-20261027-20261027081850 → 0.221.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/agent-native.eject.json +16 -1
- package/dist/app/agentkit/react/components.d.ts +5 -3
- package/dist/app/agentkit/react/components.d.ts.map +1 -1
- package/dist/app/agentkit/react/components.js +103 -42
- package/dist/app/agentkit/react/components.js.map +1 -1
- package/dist/app/agentkit/react/styles.css +93 -65
- package/dist/app/agentkit/react/voice-transcripts.d.ts +22 -1
- package/dist/app/agentkit/react/voice-transcripts.d.ts.map +1 -1
- package/dist/app/agentkit/react/voice-transcripts.js +209 -8
- package/dist/app/agentkit/react/voice-transcripts.js.map +1 -1
- package/dist/app/chat/AgentKitAssistantChat.d.ts.map +1 -1
- package/dist/app/chat/AgentKitAssistantChat.js +55 -40
- package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
- package/dist/app/chat/agentkit-chat/guided-questions.d.ts +1 -0
- package/dist/app/chat/agentkit-chat/guided-questions.d.ts.map +1 -1
- package/dist/app/chat/agentkit-chat/guided-questions.js +18 -6
- package/dist/app/chat/agentkit-chat/guided-questions.js.map +1 -1
- package/dist/app/chat/agentkit-chat/index.d.ts +1 -1
- package/dist/app/chat/agentkit-chat/index.d.ts.map +1 -1
- package/dist/app/chat/agentkit-chat/index.js +1 -1
- package/dist/app/chat/agentkit-chat/index.js.map +1 -1
- package/dist/app/chat/chat/run-recovery.d.ts.map +1 -1
- package/dist/app/chat/chat/run-recovery.js +5 -1
- package/dist/app/chat/chat/run-recovery.js.map +1 -1
- package/dist/app/chat/composer/runtime-adapters.d.ts.map +1 -1
- package/dist/app/chat/composer/runtime-adapters.js +2 -0
- package/dist/app/chat/composer/runtime-adapters.js.map +1 -1
- package/dist/app/chat/reply-connection-suggestion.d.ts +29 -0
- package/dist/app/chat/reply-connection-suggestion.d.ts.map +1 -0
- package/dist/app/chat/reply-connection-suggestion.js +42 -0
- package/dist/app/chat/reply-connection-suggestion.js.map +1 -0
- package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.js +7 -0
- package/dist/app/i18n/catalogs/ar-SA.js.map +1 -1
- package/dist/app/i18n/catalogs/de-DE.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/de-DE.js +7 -0
- package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
- package/dist/app/i18n/catalogs/en-US.d.ts +7 -0
- package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/en-US.js +7 -0
- package/dist/app/i18n/catalogs/en-US.js.map +1 -1
- package/dist/app/i18n/catalogs/es-ES.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/es-ES.js +7 -0
- package/dist/app/i18n/catalogs/es-ES.js.map +1 -1
- package/dist/app/i18n/catalogs/fr-FR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/fr-FR.js +7 -0
- package/dist/app/i18n/catalogs/fr-FR.js.map +1 -1
- package/dist/app/i18n/catalogs/hi-IN.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/hi-IN.js +7 -0
- package/dist/app/i18n/catalogs/hi-IN.js.map +1 -1
- package/dist/app/i18n/catalogs/ja-JP.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ja-JP.js +7 -0
- package/dist/app/i18n/catalogs/ja-JP.js.map +1 -1
- package/dist/app/i18n/catalogs/ko-KR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ko-KR.js +7 -0
- package/dist/app/i18n/catalogs/ko-KR.js.map +1 -1
- package/dist/app/i18n/catalogs/pt-BR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/pt-BR.js +7 -0
- package/dist/app/i18n/catalogs/pt-BR.js.map +1 -1
- package/dist/app/i18n/catalogs/zh-CN.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/zh-CN.js +7 -0
- package/dist/app/i18n/catalogs/zh-CN.js.map +1 -1
- package/dist/app/i18n/catalogs/zh-TW.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/zh-TW.js +7 -0
- package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
- package/dist/app/mcp-approval/McpApprovalReview.d.ts +25 -0
- package/dist/app/mcp-approval/McpApprovalReview.d.ts.map +1 -0
- package/dist/app/mcp-approval/McpApprovalReview.js +342 -0
- package/dist/app/mcp-approval/McpApprovalReview.js.map +1 -0
- package/dist/app/onboarding/FirstRunOnboarding.d.ts.map +1 -1
- package/dist/app/onboarding/FirstRunOnboarding.js +299 -71
- package/dist/app/onboarding/FirstRunOnboarding.js.map +1 -1
- package/dist/app/onboarding/GettingStartedCard.js +1 -1
- package/dist/app/onboarding/GettingStartedCard.js.map +1 -1
- package/dist/app/onboarding/first-run-builder-credits-flag.d.ts +2 -0
- package/dist/app/onboarding/first-run-builder-credits-flag.d.ts.map +1 -0
- package/dist/app/onboarding/first-run-builder-credits-flag.js +8 -0
- package/dist/app/onboarding/first-run-builder-credits-flag.js.map +1 -0
- package/dist/app/providers/AppProviders.d.ts.map +1 -1
- package/dist/app/providers/AppProviders.js +14 -1
- package/dist/app/providers/AppProviders.js.map +1 -1
- package/dist/app/resources/McpConnectionSuggestion.d.ts +2 -4
- package/dist/app/resources/McpConnectionSuggestion.d.ts.map +1 -1
- package/dist/app/resources/McpConnectionSuggestion.js +59 -36
- package/dist/app/resources/McpConnectionSuggestion.js.map +1 -1
- package/dist/app/settings/account/PreferencesSettings.d.ts.map +1 -1
- package/dist/app/settings/account/PreferencesSettings.js +14 -1
- package/dist/app/settings/account/PreferencesSettings.js.map +1 -1
- package/dist/app/settings/account/ThemeFamilySettings.js +2 -2
- package/dist/app/settings/account/ThemeFamilySettings.js.map +1 -1
- package/dist/app/settings/account/search-entries.d.ts +1 -0
- package/dist/app/settings/account/search-entries.d.ts.map +1 -1
- package/dist/app/settings/account/search-entries.js +5 -0
- package/dist/app/settings/account/search-entries.js.map +1 -1
- package/dist/app/settings/shell/SettingsShell.d.ts.map +1 -1
- package/dist/app/settings/shell/SettingsShell.js +26 -2
- package/dist/app/settings/shell/SettingsShell.js.map +1 -1
- package/dist/app/shared/AppShellSkeleton.d.ts.map +1 -1
- package/dist/app/shared/AppShellSkeleton.js +4 -10
- package/dist/app/shared/AppShellSkeleton.js.map +1 -1
- package/dist/app/shared/EnvironmentBadge.d.ts +2 -1
- package/dist/app/shared/EnvironmentBadge.d.ts.map +1 -1
- package/dist/app/shared/EnvironmentBadge.js +2 -3
- package/dist/app/shared/EnvironmentBadge.js.map +1 -1
- package/dist/app/shared/is-builder-io-employee.d.ts +8 -0
- package/dist/app/shared/is-builder-io-employee.d.ts.map +1 -0
- package/dist/app/shared/is-builder-io-employee.js +10 -0
- package/dist/app/shared/is-builder-io-employee.js.map +1 -0
- package/dist/app/styles/agent-conversation.css +30 -17
- package/dist/app/styles/theme-families.css +22 -5
- package/dist/app/styles/tokens/agent-kit.css +3 -3
- package/dist/composer/PromptComposer.d.ts +15 -3
- package/dist/composer/PromptComposer.d.ts.map +1 -1
- package/dist/composer/PromptComposer.js +74 -16
- package/dist/composer/PromptComposer.js.map +1 -1
- package/dist/composer/RealtimeVoiceMode.d.ts +7 -0
- package/dist/composer/RealtimeVoiceMode.d.ts.map +1 -1
- package/dist/composer/RealtimeVoiceMode.js +9 -2
- package/dist/composer/RealtimeVoiceMode.js.map +1 -1
- package/dist/composer/TiptapComposer.d.ts +7 -0
- package/dist/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/composer/TiptapComposer.js +12 -4
- package/dist/composer/TiptapComposer.js.map +1 -1
- package/dist/composer/VoiceButton.d.ts +2 -0
- package/dist/composer/VoiceButton.d.ts.map +1 -1
- package/dist/composer/VoiceButton.js +5 -4
- package/dist/composer/VoiceButton.js.map +1 -1
- package/dist/composer/index.d.ts +2 -2
- package/dist/composer/index.d.ts.map +1 -1
- package/dist/composer/index.js +1 -1
- package/dist/composer/index.js.map +1 -1
- package/dist/composer/prompt-attachments.d.ts +20 -0
- package/dist/composer/prompt-attachments.d.ts.map +1 -1
- package/dist/composer/prompt-attachments.js +188 -11
- package/dist/composer/prompt-attachments.js.map +1 -1
- package/dist/composer/realtime-voice-transcript.d.ts +27 -0
- package/dist/composer/realtime-voice-transcript.d.ts.map +1 -1
- package/dist/composer/realtime-voice-transcript.js +34 -1
- package/dist/composer/realtime-voice-transcript.js.map +1 -1
- package/dist/composer/realtime-voice-turn-metrics.d.ts +43 -0
- package/dist/composer/realtime-voice-turn-metrics.d.ts.map +1 -0
- package/dist/composer/realtime-voice-turn-metrics.js +132 -0
- package/dist/composer/realtime-voice-turn-metrics.js.map +1 -0
- package/dist/composer/runtime-adapters.d.ts +4 -1
- package/dist/composer/runtime-adapters.d.ts.map +1 -1
- package/dist/composer/runtime-adapters.js +2 -1
- package/dist/composer/runtime-adapters.js.map +1 -1
- package/dist/composer/useRealtimeVoiceMode.d.ts +61 -9
- package/dist/composer/useRealtimeVoiceMode.d.ts.map +1 -1
- package/dist/composer/useRealtimeVoiceMode.js +536 -99
- package/dist/composer/useRealtimeVoiceMode.js.map +1 -1
- package/dist/composer/voice-chat-icon.d.ts +7 -0
- package/dist/composer/voice-chat-icon.d.ts.map +1 -0
- package/dist/composer/voice-chat-icon.js +14 -0
- package/dist/composer/voice-chat-icon.js.map +1 -0
- package/dist/editor/DragHandle.d.ts +12 -1
- package/dist/editor/DragHandle.d.ts.map +1 -1
- package/dist/editor/DragHandle.js +165 -41
- package/dist/editor/DragHandle.js.map +1 -1
- package/dist/editor/RegistryBlockNode.d.ts +20 -0
- package/dist/editor/RegistryBlockNode.d.ts.map +1 -1
- package/dist/editor/RegistryBlockNode.js +58 -13
- package/dist/editor/RegistryBlockNode.js.map +1 -1
- package/dist/editor/index.d.ts +2 -2
- package/dist/editor/index.d.ts.map +1 -1
- package/dist/editor/index.js +1 -1
- package/dist/editor/index.js.map +1 -1
- package/dist/styles.css +2 -0
- package/dist/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/ui/dropdown-menu.js +5 -1
- package/dist/ui/dropdown-menu.js.map +1 -1
- package/package.json +14 -4
- package/src/app/agentkit/react/components.regenerate-readiness.spec.tsx +3 -1
- package/src/app/agentkit/react/components.spec.tsx +24 -4
- package/src/app/agentkit/react/components.tsx +174 -44
- package/src/app/agentkit/react/composer-context.spec.tsx +3 -0
- package/src/app/agentkit/react/disclosures.spec.tsx +124 -0
- package/src/app/agentkit/react/lifecycle.spec.tsx +8 -2
- package/src/app/agentkit/react/message-actions.spec.tsx +161 -5
- package/src/app/agentkit/react/saved-reply-reload.spec.tsx +206 -0
- package/src/app/agentkit/react/styles.css +93 -65
- package/src/app/agentkit/react/voice-transcripts.spec.tsx +239 -4
- package/src/app/agentkit/react/voice-transcripts.ts +245 -8
- package/src/app/chat/AgentKitAssistantChat.spec.tsx +59 -11
- package/src/app/chat/AgentKitAssistantChat.tsx +74 -62
- package/src/app/chat/agentkit-chat/guided-answers-context.spec.ts +9 -0
- package/src/app/chat/agentkit-chat/guided-questions.tsx +17 -7
- package/src/app/chat/agentkit-chat/index.ts +1 -0
- package/src/app/chat/chat/run-recovery.spec.tsx +45 -0
- package/src/app/chat/chat/run-recovery.tsx +6 -1
- package/src/app/chat/composer/runtime-adapters.tsx +2 -0
- package/src/app/chat/reply-connection-suggestion.spec.ts +121 -0
- package/src/app/chat/reply-connection-suggestion.ts +76 -0
- package/src/app/i18n/catalogs/ar-SA.ts +10 -0
- package/src/app/i18n/catalogs/de-DE.ts +10 -0
- package/src/app/i18n/catalogs/en-US.ts +10 -0
- package/src/app/i18n/catalogs/es-ES.ts +10 -0
- package/src/app/i18n/catalogs/fr-FR.ts +10 -0
- package/src/app/i18n/catalogs/hi-IN.ts +10 -0
- package/src/app/i18n/catalogs/ja-JP.ts +10 -0
- package/src/app/i18n/catalogs/ko-KR.ts +10 -0
- package/src/app/i18n/catalogs/pt-BR.ts +10 -0
- package/src/app/i18n/catalogs/zh-CN.ts +10 -0
- package/src/app/i18n/catalogs/zh-TW.ts +10 -0
- package/src/app/mcp-approval/McpApprovalReview.spec.tsx +687 -0
- package/src/app/mcp-approval/McpApprovalReview.tsx +913 -0
- package/src/app/onboarding/FirstRunOnboarding.spec.tsx +736 -26
- package/src/app/onboarding/FirstRunOnboarding.tsx +473 -145
- package/src/app/onboarding/GettingStartedCard.tsx +1 -1
- package/src/app/onboarding/first-run-builder-credits-flag.spec.ts +13 -0
- package/src/app/onboarding/first-run-builder-credits-flag.ts +9 -0
- package/src/app/providers/AppProviders.spec.tsx +109 -0
- package/src/app/providers/AppProviders.tsx +53 -1
- package/src/app/resources/McpConnectionSuggestion.spec.ts +77 -12
- package/src/app/resources/McpConnectionSuggestion.tsx +69 -51
- package/src/app/settings/VoiceChatSettings.spec.tsx +6 -1
- package/src/app/settings/account/PreferencesSettings.spec.tsx +73 -0
- package/src/app/settings/account/PreferencesSettings.tsx +24 -7
- package/src/app/settings/account/ThemeFamilySettings.tsx +2 -2
- package/src/app/settings/account/search-entries.spec.ts +14 -0
- package/src/app/settings/account/search-entries.ts +9 -0
- package/src/app/settings/shell/SettingsShell.tsx +29 -2
- package/src/app/shared/AppShellSkeleton.spec.tsx +2 -2
- package/src/app/shared/AppShellSkeleton.tsx +3 -16
- package/src/app/shared/EnvironmentBadge.tsx +3 -4
- package/src/app/shared/is-builder-io-employee.ts +17 -0
- package/src/app/styles/agent-conversation.css +30 -17
- package/src/app/styles/theme-families.css +22 -5
- package/src/app/styles/theme-families.spec.ts +73 -0
- package/src/app/styles/tokens/agent-kit.css +3 -3
- package/src/composer/AgentSuggestionBar.overflow.spec.tsx +1 -1
- package/src/composer/AttachmentChip.spec.tsx +87 -0
- package/src/composer/PromptComposer.context.spec.tsx +8 -4
- package/src/composer/PromptComposer.setup-card.spec.tsx +170 -0
- package/src/composer/PromptComposer.tsx +125 -14
- package/src/composer/RealtimeVoiceMode.spec.tsx +48 -0
- package/src/composer/RealtimeVoiceMode.tsx +45 -2
- package/src/composer/TiptapComposer.tsx +25 -0
- package/src/composer/TiptapComposer.voice-toolbar.spec.tsx +4 -1
- package/src/composer/VoiceButton.tsx +8 -3
- package/src/composer/index.ts +4 -0
- package/src/composer/prompt-attachments.spec.ts +160 -8
- package/src/composer/prompt-attachments.ts +221 -12
- package/src/composer/realtime-voice-transcript.spec.ts +36 -0
- package/src/composer/realtime-voice-transcript.ts +56 -1
- package/src/composer/realtime-voice-turn-metrics.spec.ts +175 -0
- package/src/composer/realtime-voice-turn-metrics.ts +192 -0
- package/src/composer/runtime-adapters.tsx +5 -1
- package/src/composer/useRealtimeVoiceMode.session.spec.tsx +487 -2
- package/src/composer/useRealtimeVoiceMode.spec.ts +267 -65
- package/src/composer/useRealtimeVoiceMode.tsx +716 -139
- package/src/composer/voice-chat-icon.tsx +19 -0
- package/src/editor/DragHandle.spec.ts +217 -0
- package/src/editor/DragHandle.ts +214 -55
- package/src/editor/RegistryBlockNode.spec.ts +172 -2
- package/src/editor/RegistryBlockNode.tsx +91 -13
- package/src/editor/index.ts +4 -0
- package/src/styles.css +2 -0
- package/src/ui/dropdown-menu.tsx +4 -0
package/agent-native.eject.json
CHANGED
|
@@ -217,6 +217,7 @@
|
|
|
217
217
|
"clsx",
|
|
218
218
|
"cmdk",
|
|
219
219
|
"culori",
|
|
220
|
+
"openai",
|
|
220
221
|
"react",
|
|
221
222
|
"react-dom",
|
|
222
223
|
"react-markdown",
|
|
@@ -290,6 +291,7 @@
|
|
|
290
291
|
"cmdk",
|
|
291
292
|
"culori",
|
|
292
293
|
"linkedom",
|
|
294
|
+
"openai",
|
|
293
295
|
"qrcode.react",
|
|
294
296
|
"react",
|
|
295
297
|
"react-dom",
|
|
@@ -402,6 +404,7 @@
|
|
|
402
404
|
"cmdk",
|
|
403
405
|
"culori",
|
|
404
406
|
"linkedom",
|
|
407
|
+
"openai",
|
|
405
408
|
"qrcode.react",
|
|
406
409
|
"react",
|
|
407
410
|
"react-dom",
|
|
@@ -488,6 +491,7 @@
|
|
|
488
491
|
"cmdk",
|
|
489
492
|
"culori",
|
|
490
493
|
"linkedom",
|
|
494
|
+
"openai",
|
|
491
495
|
"qrcode.react",
|
|
492
496
|
"react",
|
|
493
497
|
"react-dom",
|
|
@@ -546,6 +550,7 @@
|
|
|
546
550
|
"@agent-native/core/client/uploads/use-upload-resource",
|
|
547
551
|
"@agent-native/core/client/use-action",
|
|
548
552
|
"@agent-native/core/client/onboarding/use-onboarding",
|
|
553
|
+
"@agent-native/core/client/use-session",
|
|
549
554
|
"@agent-native/core/demo/browser-state",
|
|
550
555
|
"@agent-native/core/feature-flags/registry",
|
|
551
556
|
"@agent-native/core/file-upload/storage-settings",
|
|
@@ -620,6 +625,7 @@
|
|
|
620
625
|
"cmdk",
|
|
621
626
|
"culori",
|
|
622
627
|
"linkedom",
|
|
628
|
+
"openai",
|
|
623
629
|
"qrcode.react",
|
|
624
630
|
"react",
|
|
625
631
|
"react-dom",
|
|
@@ -941,6 +947,7 @@
|
|
|
941
947
|
"cmdk",
|
|
942
948
|
"culori",
|
|
943
949
|
"linkedom",
|
|
950
|
+
"openai",
|
|
944
951
|
"qrcode.react",
|
|
945
952
|
"react",
|
|
946
953
|
"react-dom",
|
|
@@ -1057,6 +1064,7 @@
|
|
|
1057
1064
|
"cmdk",
|
|
1058
1065
|
"culori",
|
|
1059
1066
|
"linkedom",
|
|
1067
|
+
"openai",
|
|
1060
1068
|
"qrcode.react",
|
|
1061
1069
|
"react",
|
|
1062
1070
|
"react-dom",
|
|
@@ -1151,7 +1159,10 @@
|
|
|
1151
1159
|
"label": "Toolkit app Onboarding",
|
|
1152
1160
|
"catalog": "toolkit-ui",
|
|
1153
1161
|
"catalogItems": ["app-onboarding"],
|
|
1154
|
-
"entrypoints": [
|
|
1162
|
+
"entrypoints": [
|
|
1163
|
+
"./app/onboarding",
|
|
1164
|
+
"./app/onboarding/first-run-builder-credits-flag"
|
|
1165
|
+
],
|
|
1155
1166
|
"strategy": "source-copy",
|
|
1156
1167
|
"sourceEntries": ["src/app/onboarding"],
|
|
1157
1168
|
"targetRoot": "app/components/agent-native/toolkit",
|
|
@@ -1193,6 +1204,7 @@
|
|
|
1193
1204
|
"cmdk",
|
|
1194
1205
|
"culori",
|
|
1195
1206
|
"linkedom",
|
|
1207
|
+
"openai",
|
|
1196
1208
|
"qrcode.react",
|
|
1197
1209
|
"react",
|
|
1198
1210
|
"react-dom",
|
|
@@ -1219,12 +1231,14 @@
|
|
|
1219
1231
|
"@agent-native/core/client/onboarding/use-onboarding",
|
|
1220
1232
|
"@agent-native/core/client/onboarding/use-onboarding-checklist",
|
|
1221
1233
|
"@agent-native/core/client/onboarding/use-preview-mode",
|
|
1234
|
+
"@agent-native/core/client/use-action",
|
|
1222
1235
|
"@agent-native/core/client/use-dev-mode",
|
|
1223
1236
|
"@agent-native/core/client/use-session",
|
|
1224
1237
|
"@agent-native/core/feature-flags/registry",
|
|
1225
1238
|
"@agent-native/core/navigation",
|
|
1226
1239
|
"@agent-native/core/onboarding/types",
|
|
1227
1240
|
"@agent-native/core/onboarding/workspace-services",
|
|
1241
|
+
"@agent-native/core/shared",
|
|
1228
1242
|
"@agent-native/core/shared/docs-url",
|
|
1229
1243
|
"@agent-native/core/shared/first-run-onboarding",
|
|
1230
1244
|
"@agent-native/core/shared/workspace-app-id"
|
|
@@ -1621,6 +1635,7 @@
|
|
|
1621
1635
|
"clsx",
|
|
1622
1636
|
"cmdk",
|
|
1623
1637
|
"culori",
|
|
1638
|
+
"openai",
|
|
1624
1639
|
"react",
|
|
1625
1640
|
"react-dom",
|
|
1626
1641
|
"sonner",
|
|
@@ -82,7 +82,7 @@ export declare function formatAgentKitDuration(ms: number, units?: {
|
|
|
82
82
|
minute?: string;
|
|
83
83
|
second?: string;
|
|
84
84
|
}): string;
|
|
85
|
-
export declare const AgentActivityGroup: import("react").MemoExoticComponent<({ runId, afterSequence, throughSequence, excludeAgentActivities, isCurrentSegment, messageId, foldedReasoningMessageId, }: {
|
|
85
|
+
export declare const AgentActivityGroup: import("react").MemoExoticComponent<({ runId, afterSequence, throughSequence, excludeAgentActivities, isCurrentSegment, messageId, foldedReasoningMessageId, summarizesTurn, }: {
|
|
86
86
|
runId?: RunId;
|
|
87
87
|
afterSequence?: number;
|
|
88
88
|
throughSequence?: number;
|
|
@@ -92,6 +92,8 @@ export declare const AgentActivityGroup: import("react").MemoExoticComponent<({
|
|
|
92
92
|
messageId?: string;
|
|
93
93
|
/** A saved reply whose reasoning before its answer joins this group. */
|
|
94
94
|
foldedReasoningMessageId?: string;
|
|
95
|
+
/** This segment is its run's whole turn, so it shows a row with no work. */
|
|
96
|
+
summarizesTurn?: boolean;
|
|
95
97
|
}) => import("react").JSX.Element | null>;
|
|
96
98
|
/** True inside a work step's expanded reasoning, where the step is the disclosure. */
|
|
97
99
|
export declare function useAgentKitInWorkStep(): boolean;
|
|
@@ -122,7 +124,7 @@ export declare const AgentMessageActions: import("react").MemoExoticComponent<({
|
|
|
122
124
|
export declare const AgentMessageView: import("react").MemoExoticComponent<({ value: message, threadId, }: AgentKitRenderProps<AgentMessage>) => import("react").JSX.Element | null>;
|
|
123
125
|
export declare function AgentRunFailure({ error, runId, threadId, }: AgentRunFailureRenderProps): import("react").JSX.Element;
|
|
124
126
|
export declare function AgentConnectionErrorView({ error, threadId, recover, recovering, recoveryError, dismiss, }: AgentConnectionErrorRenderProps): import("react").JSX.Element;
|
|
125
|
-
export interface AgentKitComposerProps extends Omit<Pick<PromptComposerProps, "slashCommands" | "slashSkills" | "includeDefaultSlashCommands" | "includeDefaultSlashSkills" | "onSlashCommand" | "plusMenuMode" | "voiceEnabled" | "autoFocus" | "disabled" | "isReferenceTarget" | "submissionDisabled" | "onDisabledClick" | "initialText" | "initialTextKey" | "layoutVariant" | "availableModels" | "modelListLoading" | "selectedModel" | "selectedEngine" | "selectedEffort" | "placeholder" | "onConnectProvider" | "onConnectLocalRuntime" | "imageModelMenu" | "onModelChange" | "onEffortChange" | "availableAgents" | "selectedAgent" | "agentOnly" | "onAgentChange" | "onModelSelectorOpenChange" | "modelStatusChecksEnabled" | "showMissingApiKeySetup" | "setupCardVisible" | "contextUsageSlot" | "attachmentsEnabled" | "onAttachmentRequest" | "contextButtonTooltipDisabled" | "onTextChange" | "contextItems" | "onRemoveContextItem" | "onInspectContextItem" | "onRetryContextItem" | "contextMenuItems" | "attachmentAdapter" | "inlineTextAttachments" | "extraActionButton" | "onSubmit" | "onSubmissionPendingChange" | "onAttachmentError" | "interceptBuildRequestsForBuilder" | "stopButton">, "onSubmit"> {
|
|
127
|
+
export interface AgentKitComposerProps extends Omit<Pick<PromptComposerProps, "slashCommands" | "slashSkills" | "includeDefaultSlashCommands" | "includeDefaultSlashSkills" | "onSlashCommand" | "plusMenuMode" | "voiceEnabled" | "onVoiceChatStart" | "autoFocus" | "disabled" | "isReferenceTarget" | "submissionDisabled" | "onDisabledClick" | "initialText" | "initialTextKey" | "layoutVariant" | "availableModels" | "modelListLoading" | "selectedModel" | "selectedEngine" | "selectedEffort" | "placeholder" | "onConnectProvider" | "onConnectLocalRuntime" | "imageModelMenu" | "onModelChange" | "onEffortChange" | "availableAgents" | "selectedAgent" | "agentOnly" | "onAgentChange" | "onModelSelectorOpenChange" | "modelStatusChecksEnabled" | "showMissingApiKeySetup" | "setupCardVisible" | "onModelConnectionRequiredChange" | "contextUsageSlot" | "attachmentsEnabled" | "onAttachmentRequest" | "contextButtonTooltipDisabled" | "onTextChange" | "contextItems" | "onRemoveContextItem" | "onInspectContextItem" | "onRetryContextItem" | "contextMenuItems" | "attachmentAdapter" | "inlineTextAttachments" | "extraActionButton" | "onSubmit" | "onSubmissionPendingChange" | "onAttachmentError" | "interceptBuildRequestsForBuilder" | "stopButton">, "onSubmit"> {
|
|
126
128
|
/** Override the default AgentKit submit path when the host owns send options. */
|
|
127
129
|
onSubmit?: PromptComposerProps["onSubmit"];
|
|
128
130
|
/** Opt in to Agent-Native provider UI when this host owns that setup flow. */
|
|
@@ -148,7 +150,7 @@ export interface AgentKitComposerProps extends Omit<Pick<PromptComposerProps, "s
|
|
|
148
150
|
* server to echo the message back.
|
|
149
151
|
*/
|
|
150
152
|
export declare function useAgentKitFollowTranscript(): () => void;
|
|
151
|
-
export declare function AgentKitComposer({ threadId: requestedThreadId, className, announcePendingSubmission, queueWhileRunning, showModelSelector, slashCommands, slashSkills, includeDefaultSlashCommands, includeDefaultSlashSkills, onSlashCommand, plusMenuMode, voiceEnabled, autoFocus, toolbarSlot, disabled, isReferenceTarget, submissionDisabled, onDisabledClick, placeholder, initialText, initialTextKey, layoutVariant, availableModels, modelListLoading, selectedModel, selectedEngine, selectedEffort, onConnectProvider, onConnectLocalRuntime, imageModelMenu, onModelChange, onEffortChange, availableAgents, selectedAgent, agentOnly, onAgentChange, onModelSelectorOpenChange, modelStatusChecksEnabled, requireAgentEngine, showMissingApiKeySetup, setupCardVisible, contextUsageSlot, attachmentsEnabled, onAttachmentRequest, contextButtonTooltipDisabled, onTextChange, composerRef: hostComposerRef, contextItems, onRemoveContextItem, extraActionButton, onSubmit: onSubmitOverride, onSubmissionPendingChange, onAttachmentError, interceptBuildRequestsForBuilder, planModeDisabled, stopButton, onInspectContextItem, onRetryContextItem, contextMenuItems, attachmentAdapter, inlineTextAttachments, beforeSend, }: AgentKitComposerProps): import("react").JSX.Element;
|
|
153
|
+
export declare function AgentKitComposer({ threadId: requestedThreadId, className, announcePendingSubmission, queueWhileRunning, showModelSelector, slashCommands, slashSkills, includeDefaultSlashCommands, includeDefaultSlashSkills, onSlashCommand, plusMenuMode, voiceEnabled, onVoiceChatStart, autoFocus, toolbarSlot, disabled, isReferenceTarget, submissionDisabled, onDisabledClick, placeholder, initialText, initialTextKey, layoutVariant, availableModels, modelListLoading, selectedModel, selectedEngine, selectedEffort, onConnectProvider, onConnectLocalRuntime, imageModelMenu, onModelChange, onEffortChange, availableAgents, selectedAgent, agentOnly, onAgentChange, onModelSelectorOpenChange, modelStatusChecksEnabled, requireAgentEngine, showMissingApiKeySetup, setupCardVisible, onModelConnectionRequiredChange, contextUsageSlot, attachmentsEnabled, onAttachmentRequest, contextButtonTooltipDisabled, onTextChange, composerRef: hostComposerRef, contextItems, onRemoveContextItem, extraActionButton, onSubmit: onSubmitOverride, onSubmissionPendingChange, onAttachmentError, interceptBuildRequestsForBuilder, planModeDisabled, stopButton, onInspectContextItem, onRetryContextItem, contextMenuItems, attachmentAdapter, inlineTextAttachments, beforeSend, }: AgentKitComposerProps): import("react").JSX.Element;
|
|
152
154
|
export interface AgentKitChatProps {
|
|
153
155
|
title?: ReactNode;
|
|
154
156
|
toolbar?: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../src/app/agentkit/react/components.tsx"],"names":[],"mappings":"AAkDA,OAAO,EAGL,SAAS,EAeT,KAAK,aAAa,EAClB,KAAK,SAAS,EAKd,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AASf,OAAO,EAYL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAO1B,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../src/app/agentkit/react/components.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import ReactMarkdown from "react-markdown";
|
|
|
6
6
|
import remarkGfm from "remark-gfm";
|
|
7
7
|
import { ActionButton, AgentSuggestionBar, IconButton, MessageQueueDrawer, PromptComposer, Surface, TextField, agentSuggestionPrompt, createChatAttachmentAdapter, formatAttachmentError, markdownBlockOffsets, rehypeStreamingReveal, settleStreamingMarkdown, splitMarkdownBlocks, STREAMING_REVEAL_BLOCK_CLASS, writeClipboardText, } from "../../../agentkit.js";
|
|
8
8
|
import { ComposerNotice, ComposerNoticeScope, } from "../../../composer/composer-notice.js";
|
|
9
|
+
import { useComposerRuntimeAdapters } from "../../../composer/runtime-adapters.js";
|
|
9
10
|
import { Dialog, Tooltip } from "../../../design-system/index.js";
|
|
10
11
|
import { useTableColumnGlide } from "../../../table-column-glide.js";
|
|
11
12
|
import { Skeleton } from "../../../ui/skeleton.js";
|
|
@@ -1179,8 +1180,8 @@ function sameRunWork(previous, next, runId) {
|
|
|
1179
1180
|
}
|
|
1180
1181
|
return true;
|
|
1181
1182
|
}
|
|
1182
|
-
export const AgentActivityGroup = memo(function AgentActivityGroup({ runId, afterSequence, throughSequence, excludeAgentActivities = false, isCurrentSegment = true, messageId, foldedReasoningMessageId, }) {
|
|
1183
|
-
const { threadId, slots, registry, labels, formatWorkedForDuration } = useAgentKit();
|
|
1183
|
+
export const AgentActivityGroup = memo(function AgentActivityGroup({ runId, afterSequence, throughSequence, excludeAgentActivities = false, isCurrentSegment = true, messageId, foldedReasoningMessageId, summarizesTurn = false, }) {
|
|
1184
|
+
const { threadId, slots, registry, labels, formatWorkedForDuration, loadRunUsage, } = useAgentKit();
|
|
1184
1185
|
const thread = useAgentThreadSlice((previous, next) => sameRunWork(previous, next, runId));
|
|
1185
1186
|
const runEvents = agentRunEvents(thread, runId);
|
|
1186
1187
|
const activityMap = new Map();
|
|
@@ -1396,8 +1397,13 @@ export const AgentActivityGroup = memo(function AgentActivityGroup({ runId, afte
|
|
|
1396
1397
|
(event.type === "run.completed" ||
|
|
1397
1398
|
event.type === "run.failed" ||
|
|
1398
1399
|
event.type === "run.cancelled"));
|
|
1400
|
+
// A local run, such as voice chat's, never starts on the server, so it
|
|
1401
|
+
// stays queued while it works; its own events show it is working.
|
|
1402
|
+
const localRunWorking = run?.status === "queued" && runEvents.length > 0 && !hasTerminalRunEvent;
|
|
1399
1403
|
const activelyWorking = isCurrentSegment &&
|
|
1400
|
-
(run
|
|
1404
|
+
(run
|
|
1405
|
+
? run.status === "running" || localRunWorking
|
|
1406
|
+
: running && !hasTerminalRunEvent);
|
|
1401
1407
|
const waitingLabel = isCurrentSegment && run?.status === "awaiting_approval"
|
|
1402
1408
|
? labels.waitingForApproval
|
|
1403
1409
|
: isCurrentSegment && run?.status === "awaiting_input"
|
|
@@ -1411,10 +1417,32 @@ export const AgentActivityGroup = memo(function AgentActivityGroup({ runId, afte
|
|
|
1411
1417
|
(afterSequence === undefined &&
|
|
1412
1418
|
run !== undefined &&
|
|
1413
1419
|
["completed", "failed", "cancelled"].includes(run.status)));
|
|
1420
|
+
const formatDuration = (ms) => formatWorkedForDuration?.(ms) ??
|
|
1421
|
+
formatAgentKitDuration(ms, {
|
|
1422
|
+
hour: labels.durationHourShort,
|
|
1423
|
+
minute: labels.durationMinuteShort,
|
|
1424
|
+
second: labels.durationSecondShort,
|
|
1425
|
+
});
|
|
1414
1426
|
if (activityItems.length === 0 &&
|
|
1415
1427
|
durableToolResults.length === 0 &&
|
|
1416
1428
|
!activelyWorking) {
|
|
1417
|
-
|
|
1429
|
+
const runFinished = run
|
|
1430
|
+
? ["completed", "failed", "cancelled"].includes(run.status)
|
|
1431
|
+
: hasTerminalRunEvent;
|
|
1432
|
+
// Untimed or under a second, a bare "Worked" would read as instant.
|
|
1433
|
+
if (!summarizesTurn ||
|
|
1434
|
+
!runFinished ||
|
|
1435
|
+
durationMs === undefined ||
|
|
1436
|
+
durationMs < 1_000) {
|
|
1437
|
+
return null;
|
|
1438
|
+
}
|
|
1439
|
+
// With no steps, the run's details (cost, model) are what it opens to, so
|
|
1440
|
+
// it opens only when it can show one of them.
|
|
1441
|
+
const selectedModel = selectedRunModel(thread.messages, messageId);
|
|
1442
|
+
const hasRunDetails = runId !== undefined &&
|
|
1443
|
+
(loadRunUsage !== undefined ||
|
|
1444
|
+
(selectedModel !== undefined && selectedModel !== "auto"));
|
|
1445
|
+
return (_jsx(AgentWorkDisclosure, { label: workedSummaryLabel(durationMs, labels, formatDuration), icon: _jsx(IconClock, { "aria-hidden": "true", className: "agentkit-icon" }), expandable: hasRunDetails, ...(runId === undefined ? {} : { runId }), ...(messageId === undefined ? {} : { messageId }), children: null }));
|
|
1418
1446
|
}
|
|
1419
1447
|
const currentActivity = activelyWorking
|
|
1420
1448
|
? (latestRunningUsefulActivity?.activity ??
|
|
@@ -1454,12 +1482,6 @@ export const AgentActivityGroup = memo(function AgentActivityGroup({ runId, afte
|
|
|
1454
1482
|
});
|
|
1455
1483
|
const steps = agentWorkSteps(workItems);
|
|
1456
1484
|
const hasExpandableActivity = steps.length > 0;
|
|
1457
|
-
const formatDuration = (ms) => formatWorkedForDuration?.(ms) ??
|
|
1458
|
-
formatAgentKitDuration(ms, {
|
|
1459
|
-
hour: labels.durationHourShort,
|
|
1460
|
-
minute: labels.durationMinuteShort,
|
|
1461
|
-
second: labels.durationSecondShort,
|
|
1462
|
-
});
|
|
1463
1485
|
const failedCount = steps.reduce((sum, step) => sum + step.failedCount, 0);
|
|
1464
1486
|
const reasoningMessageIds = activityItems.flatMap((activity) => {
|
|
1465
1487
|
const entry = reasoningEntries.get(activity.id);
|
|
@@ -1720,8 +1742,9 @@ function AgentWorkDisclosure({ label, failedCount = 0, icon, running, expandable
|
|
|
1720
1742
|
? {}
|
|
1721
1743
|
: { layout: workedForRowLayout }) })) : undefined;
|
|
1722
1744
|
// The row stays one mounted trigger from "Thinking" through the first
|
|
1723
|
-
// activity, so it never flickers; until then it is not a tab stop.
|
|
1724
|
-
|
|
1745
|
+
// activity, so it never flickers; until then it is not a tab stop. Finished
|
|
1746
|
+
// work with nothing to expand is text, not a disabled button.
|
|
1747
|
+
const disclosure = (_jsxs("div", { ref: handoff.inPlaceRef, className: "agentkit-activities", "data-running": running ? "true" : undefined, "data-expandable": expandable ? "true" : "false", "data-open": open ? "true" : "false", "data-handoff": handoff.leavingHeight ? "enter" : undefined, children: [_jsx(AgentKitDisclosureSummary, { as: expandable || running ? "button" : "static", className: "agentkit-activities-summary", rowClassName: "agentkit-activities-row", open: open, onToggle: () => setOpen((value) => !value), expandable: expandable, controls: contentId, style: workedForRowSummaryStyle(workedForRowLayout), chevronStyle: workedForRowChevronStyle(workedForRowLayout), icon: icon, label: summaryLabel, children: summaryContent }), _jsxs(AgentKitDisclosureContent, { id: contentId, open: open, onReveal: expandable ? () => setOpen(true) : undefined, children: [runId && expandable && !running ? (_jsx(AgentRunDetails, { runId: runId, messageId: messageId, open: open })) : null, children] })] }));
|
|
1725
1748
|
// Finished work joins its reply's controls under the reply; live work stays
|
|
1726
1749
|
// above it, where it is happening. On a live finish the space it left above
|
|
1727
1750
|
// the reply closes over the same beat as the row fades in below, so the
|
|
@@ -2447,6 +2470,13 @@ function messageMetadataString(message, key) {
|
|
|
2447
2470
|
}
|
|
2448
2471
|
return undefined;
|
|
2449
2472
|
}
|
|
2473
|
+
/** The model a reply, or the request before it, was sent with. */
|
|
2474
|
+
function selectedRunModel(messages, messageId) {
|
|
2475
|
+
if (!messageId)
|
|
2476
|
+
return undefined;
|
|
2477
|
+
return (messageMetadataString(agentMessagesById(messages).get(messageId)?.message, "model") ??
|
|
2478
|
+
messageMetadataString(findPreviousUserMessage(messages, messageId), "model"));
|
|
2479
|
+
}
|
|
2450
2480
|
function createAgentMessageWorkHosts() {
|
|
2451
2481
|
const hosts = new Map();
|
|
2452
2482
|
const listeners = new Set();
|
|
@@ -2586,16 +2616,9 @@ function AgentRunDetails({ runId, messageId, open, }) {
|
|
|
2586
2616
|
toolIds.add(event.activity.id);
|
|
2587
2617
|
}
|
|
2588
2618
|
}
|
|
2589
|
-
const reply = messageId
|
|
2590
|
-
? agentMessagesById(thread.messages).get(messageId)?.message
|
|
2591
|
-
: undefined;
|
|
2592
|
-
const request = messageId
|
|
2593
|
-
? findPreviousUserMessage(thread.messages, messageId)
|
|
2594
|
-
: undefined;
|
|
2595
2619
|
return {
|
|
2596
2620
|
toolCalls: toolIds.size,
|
|
2597
|
-
model:
|
|
2598
|
-
messageMetadataString(request, "model"),
|
|
2621
|
+
model: selectedRunModel(thread.messages, messageId),
|
|
2599
2622
|
};
|
|
2600
2623
|
}, (previous, next) => previous.toolCalls === next.toolCalls && previous.model === next.model);
|
|
2601
2624
|
const usage = useAgentRunUsage(runId, open);
|
|
@@ -2618,21 +2641,18 @@ function AgentRunDetails({ runId, messageId, open, }) {
|
|
|
2618
2641
|
if (billing.incomplete) {
|
|
2619
2642
|
return { key: labels.runCreditsUsed, value: labels.runDetailIncomplete };
|
|
2620
2643
|
}
|
|
2621
|
-
//
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
return null;
|
|
2625
|
-
if (billing.builderCredits !== null) {
|
|
2644
|
+
// Zero credits give way to a provider charge, which is the real cost.
|
|
2645
|
+
if (billing.builderCredits !== null &&
|
|
2646
|
+
(billing.builderCredits !== 0 || !billing.providerCostUsd)) {
|
|
2626
2647
|
return {
|
|
2627
2648
|
key: labels.runCreditsUsed,
|
|
2628
2649
|
value: formatRunUsageAmount(billing.builderCredits.toLocaleString(undefined, {
|
|
2629
2650
|
minimumFractionDigits: 1,
|
|
2630
2651
|
maximumFractionDigits: 1,
|
|
2631
2652
|
}), billing.builderCreditsSource, labels),
|
|
2653
|
+
measuredZero: billing.builderCredits === 0,
|
|
2632
2654
|
};
|
|
2633
2655
|
}
|
|
2634
|
-
if (billing.providerCostUsd === 0)
|
|
2635
|
-
return null;
|
|
2636
2656
|
if (billing.providerCostUsd !== null) {
|
|
2637
2657
|
const usd = billing.providerCostUsd;
|
|
2638
2658
|
return {
|
|
@@ -2645,6 +2665,7 @@ function AgentRunDetails({ runId, messageId, open, }) {
|
|
|
2645
2665
|
minimumFractionDigits: 2,
|
|
2646
2666
|
maximumFractionDigits: 4,
|
|
2647
2667
|
}), billing.providerCostSource, labels),
|
|
2668
|
+
measuredZero: usd === 0,
|
|
2648
2669
|
};
|
|
2649
2670
|
}
|
|
2650
2671
|
return { key: labels.runCreditsUsed, value: labels.runDetailNotRecorded };
|
|
@@ -2656,7 +2677,6 @@ function AgentRunDetails({ runId, messageId, open, }) {
|
|
|
2656
2677
|
details.model;
|
|
2657
2678
|
const model = reportedModel === "auto" ? undefined : reportedModel;
|
|
2658
2679
|
const rows = [
|
|
2659
|
-
...(credits ? [{ id: "credits", ...credits }] : []),
|
|
2660
2680
|
...(details.toolCalls > 0
|
|
2661
2681
|
? [
|
|
2662
2682
|
{
|
|
@@ -2676,6 +2696,12 @@ function AgentRunDetails({ runId, messageId, open, }) {
|
|
|
2676
2696
|
]
|
|
2677
2697
|
: []),
|
|
2678
2698
|
];
|
|
2699
|
+
// A measured zero has nothing to tell beside other details; a missing or
|
|
2700
|
+
// failed reading always shows, so it is never mistaken for a free run. Alone,
|
|
2701
|
+
// the zero still shows, so a row that opened to its details is never empty.
|
|
2702
|
+
if (credits && (!credits.measuredZero || rows.length === 0)) {
|
|
2703
|
+
rows.unshift({ id: "credits", key: credits.key, value: credits.value });
|
|
2704
|
+
}
|
|
2679
2705
|
if (rows.length === 0)
|
|
2680
2706
|
return null;
|
|
2681
2707
|
return (_jsx("dl", { className: "agentkit-run-details", "aria-label": labels.runDetails, "data-agentkit-run-details": "true", children: rows.map((row) => (_jsxs("div", { className: "agentkit-run-details-row", "data-detail": row.id, children: [_jsx("dt", { children: row.key }), _jsx("dd", { children: row.value })] }, row.id))) }));
|
|
@@ -2721,6 +2747,18 @@ function AgentMessageTimestamp({ createdAt, format, }) {
|
|
|
2721
2747
|
const fallback = formatAgentMessageTimestamp(createdAt);
|
|
2722
2748
|
return (_jsx("time", { dateTime: createdAt, title: fallback.title, children: format?.(createdAt) ?? fallback.text }));
|
|
2723
2749
|
}
|
|
2750
|
+
/**
|
|
2751
|
+
* Names an icon-only message action on hover and keyboard focus. Below the
|
|
2752
|
+
* button, so it never covers the message it acts on.
|
|
2753
|
+
*/
|
|
2754
|
+
function MessageActionButton({ title, ...props }) {
|
|
2755
|
+
// A disabled button gets no pointer events, so only a native title can
|
|
2756
|
+
// explain it; an enabled one shows the reason in its tooltip instead, so a
|
|
2757
|
+
// degraded action never opens both.
|
|
2758
|
+
const inactive = Boolean(props.disabled || props.pending);
|
|
2759
|
+
const reason = inactive ? undefined : title;
|
|
2760
|
+
return (_jsx(Tooltip, { content: reason ? (_jsxs(_Fragment, { children: [props.label, _jsx("span", { className: "block text-muted-foreground", children: reason })] })) : (props.label), placement: "bottom", trigger: _jsx(IconButton, { ...props, ...(inactive && title !== undefined ? { title } : {}) }) }));
|
|
2761
|
+
}
|
|
2724
2762
|
export const AgentMessageActions = memo(function AgentMessageActions({ value: message, threadId, }) {
|
|
2725
2763
|
const { controller, labels, slots, onThreadForked, onCopyMessage, branchNavigation, } = useAgentKit();
|
|
2726
2764
|
const feedbackCapability = useAgentCapability("feedback");
|
|
@@ -2895,16 +2933,16 @@ export const AgentMessageActions = memo(function AgentMessageActions({ value: me
|
|
|
2895
2933
|
forkAction.error ??
|
|
2896
2934
|
regenerateAction.error;
|
|
2897
2935
|
const placement = isAssistant ? "inline" : undefined;
|
|
2898
|
-
const copyButton = (_jsx(
|
|
2936
|
+
const copyButton = (_jsx(MessageActionButton, { label: copied ? labels.copied : labels.copy, icon: copied ? (_jsx(IconCircleCheck, { "aria-hidden": "true" })) : (_jsx(IconCopy, { "aria-hidden": "true" })), size: "compact", className: "size-6", pending: copyAction.pending, onPress: () => void copyAction.execute().catch(() => undefined) }));
|
|
2899
2937
|
const branchControls = branchNavigation && branchNavigation.count > 1 ? (_jsxs("div", { className: "agentkit-branch-navigation", role: "group", "aria-label": labels.branchPositionLabel
|
|
2900
2938
|
.replace("{{index}}", String(branchNavigation.index))
|
|
2901
|
-
.replace("{{count}}", String(branchNavigation.count)), children: [_jsx(
|
|
2939
|
+
.replace("{{count}}", String(branchNavigation.count)), children: [_jsx(MessageActionButton, { label: labels.previousBranch, icon: _jsx(IconChevronLeft, { "aria-hidden": "true" }), size: "compact", className: "size-6", disabled: branchNavigation.index <= 1 || branchNavigationAction.pending, pending: branchNavigationAction.pending, onPress: () => void branchNavigationAction
|
|
2902
2940
|
.execute("previous")
|
|
2903
2941
|
.catch(() => undefined) }), _jsx("span", { "aria-hidden": "true", children: labels.branchPosition
|
|
2904
2942
|
.replace("{{index}}", String(branchNavigation.index))
|
|
2905
2943
|
.replace("{{count}}", String(branchNavigation.count)) }), _jsx("span", { className: "agentkit-visually-hidden", "aria-live": "polite", children: labels.branchPositionLabel
|
|
2906
2944
|
.replace("{{index}}", String(branchNavigation.index))
|
|
2907
|
-
.replace("{{count}}", String(branchNavigation.count)) }), _jsx(
|
|
2945
|
+
.replace("{{count}}", String(branchNavigation.count)) }), _jsx(MessageActionButton, { label: labels.nextBranch, icon: _jsx(IconChevronRight, { "aria-hidden": "true" }), size: "compact", className: "size-6", disabled: branchNavigation.index >= branchNavigation.count ||
|
|
2908
2946
|
branchNavigationAction.pending, pending: branchNavigationAction.pending, onPress: () => void branchNavigationAction.execute("next").catch(() => undefined) })] })) : null;
|
|
2909
2947
|
const toolbar = isAssistant ? (_jsxs("div", { ref: toolbarRef, className: "agentkit-message-toolbar", role: "group", "aria-label": labels.messageActions, "data-placement": placement, "data-latest": isLastAssistantMessage ? "true" : undefined, "data-streaming": message.status === "streaming" ? "true" : undefined, "data-expanded": moreActionsOpen ? "true" : undefined, onKeyDown: (event) => {
|
|
2910
2948
|
if (event.key !== "Escape" || !moreActionsOpen)
|
|
@@ -2922,17 +2960,19 @@ export const AgentMessageActions = memo(function AgentMessageActions({ value: me
|
|
|
2922
2960
|
}, children: [slots.messageActionsTrailing ? (_jsx("div", { className: "agentkit-message-actions-trailing", children: _jsx(slots.messageActionsTrailing, { value: stripAgentMessageContext(message), threadId: threadId }) })) : null, branchControls, _jsxs("div", { className: "agentkit-message-actions-swap", children: [_jsxs("div", { className: "agentkit-message-actions-set", "data-set": "primary", "data-active": moreActionsOpen ? "false" : "true", inert: moreActionsOpen, children: [copyButton, feedbackCapability.visible
|
|
2923
2961
|
? ["positive", "negative"].map((value) => {
|
|
2924
2962
|
const chosen = feedback === value;
|
|
2925
|
-
return (_jsx(
|
|
2963
|
+
return (_jsx(MessageActionButton, { label: value === "positive"
|
|
2926
2964
|
? labels.feedbackGood
|
|
2927
2965
|
: labels.feedbackBad, icon: value === "positive" ? (chosen ? (_jsx(IconThumbUpFilled, { "aria-hidden": "true" })) : (_jsx(IconThumbUp, { "aria-hidden": "true" }))) : chosen ? (_jsx(IconThumbDownFilled, { "aria-hidden": "true" })) : (_jsx(IconThumbDown, { "aria-hidden": "true" })), size: "compact", className: "size-6", "data-message-action": `feedback-${value}`, "aria-pressed": chosen, disabled: !feedbackCapability.enabled || feedbackAction.pending, ...(feedbackCapability.reason === undefined
|
|
2928
2966
|
? {}
|
|
2929
2967
|
: { title: feedbackCapability.reason }), onPress: () => void rateResponse(value) }, value));
|
|
2930
2968
|
})
|
|
2931
|
-
: null] }), hasSecondaryActions ? (_jsxs("div", { ref: secondaryActionsRef, id: secondaryActionsId, className: "agentkit-message-actions-set", "data-set": "secondary", "data-active": moreActionsOpen ? "true" : "false", inert: !moreActionsOpen, children: [showRetry ? (_jsx(
|
|
2969
|
+
: null] }), hasSecondaryActions ? (_jsxs("div", { ref: secondaryActionsRef, id: secondaryActionsId, className: "agentkit-message-actions-set", "data-set": "secondary", "data-active": moreActionsOpen ? "true" : "false", inert: !moreActionsOpen, children: [showRetry ? (_jsx(MessageActionButton, { label: labels.regenerateResponse, icon: _jsx(IconRefresh, { "aria-hidden": "true" }), size: "compact", className: "size-6", "data-message-action": "retry", pending: regenerateAction.pending, disabled: regenerateAction.pending ||
|
|
2932
2970
|
position.active ||
|
|
2933
|
-
!forkingCapability.enabled,
|
|
2971
|
+
!forkingCapability.enabled, ...(forkingCapability.reason === undefined
|
|
2934
2972
|
? {}
|
|
2935
|
-
: { title: forkingCapability.reason }), onPress: () => void
|
|
2973
|
+
: { title: forkingCapability.reason }), onPress: () => void regenerateAction.execute().catch(() => undefined) })) : null, showFork ? (_jsx(MessageActionButton, { label: labels.forkFromHere, icon: _jsx(IconArrowFork, { "aria-hidden": "true" }), size: "compact", className: "size-6", "data-message-action": "fork", pending: forkAction.pending, disabled: !forkingCapability.enabled || forkAction.pending, ...(forkingCapability.reason === undefined
|
|
2974
|
+
? {}
|
|
2975
|
+
: { title: forkingCapability.reason }), onPress: () => void forkAction.execute().catch(() => undefined) })) : null, requestId ? (_jsx(MessageActionButton, { label: requestIdCopied ? labels.copied : labels.copyRequestId, icon: requestIdCopied ? (_jsx(IconCircleCheck, { "aria-hidden": "true" })) : (_jsx(IconId, { "aria-hidden": "true" })), size: "compact", className: "size-6", "data-message-action": "request-id", pending: requestIdAction.pending, onPress: () => void requestIdAction.execute().catch(() => undefined) })) : null] })) : null] }), hasSecondaryActions ? (_jsx(MessageActionButton, { elementRef: moreToggleRef, label: labels.moreMessageActions, icon: _jsx(IconDots, { "aria-hidden": "true" }), size: "compact",
|
|
2936
2976
|
// Hover is lighter than open, the toolkit's menu-trigger pattern,
|
|
2937
2977
|
// so pressing it reads as a change while the pointer is still on it.
|
|
2938
2978
|
className: "agentkit-message-actions-toggle size-6 hover:bg-accent/60 aria-expanded:bg-accent aria-expanded:text-foreground", "data-message-actions-toggle": "", "aria-expanded": moreActionsOpen, "aria-controls": secondaryActionsId, onPress: () => setMoreActions(!moreActionsOpen, moreActionsOpen ? "toggle" : "secondary") })) : null, _jsx("span", { className: "agentkit-visually-hidden", "aria-live": "polite", children: feedbackConfirmed
|
|
@@ -2943,7 +2983,9 @@ export const AgentMessageActions = memo(function AgentMessageActions({ value: me
|
|
|
2943
2983
|
return (_jsxs("div", { className: "agentkit-message-actions", "data-role": message.role, "data-placement": placement, "data-latest": isLastAssistantMessage ? "true" : undefined, "data-streaming": message.status === "streaming" ? "true" : undefined, "data-expanded": moreActionsOpen ? "true" : undefined, "data-has-error": footerError ? "true" : undefined, children: [isAssistant ? (_jsxs(_Fragment, { children: [_jsx("div", { ref: workHostRef, className: "agentkit-message-work-host" }), toolbar] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "agentkit-message-actions-leading", children: [copyButton, editContext?.enabled &&
|
|
2944
2984
|
message.metadata?.pendingSubmission !== true &&
|
|
2945
2985
|
forkingCapability.visible &&
|
|
2946
|
-
text.trim() ? (_jsx(
|
|
2986
|
+
text.trim() ? (_jsx(MessageActionButton, { label: labels.editMessage, icon: _jsx(IconPencil, { "aria-hidden": "true" }), size: "compact", className: "size-6", disabled: position.active || !forkingCapability.enabled, ...(forkingCapability.reason === undefined
|
|
2987
|
+
? {}
|
|
2988
|
+
: { title: forkingCapability.reason }), "aria-pressed": editContext.message?.id === message.id, onPress: () => editContext.setMessage(message) })) : null] }), _jsx("div", { className: "agentkit-message-actions-trailing", children: message.createdAt ? (_jsx(AgentMessageTimestamp, { createdAt: message.createdAt, format: labels.formatTimestamp })) : null })] })), footerError ? (_jsx("span", { ...SESSION_REPLAY_MASK_PROPS, className: "agentkit-command-error", role: "alert", children: footerError.message })) : null] }));
|
|
2947
2989
|
});
|
|
2948
2990
|
const AgentKitPostWidgetTextContext = createContext(undefined);
|
|
2949
2991
|
function shallowEqualArrays(previous, next) {
|
|
@@ -3091,7 +3133,11 @@ export function useAgentKitFollowTranscript() {
|
|
|
3091
3133
|
return useContext(AgentKitTranscriptFollowContext) ?? noop;
|
|
3092
3134
|
}
|
|
3093
3135
|
function noop() { }
|
|
3094
|
-
export function AgentKitComposer({ threadId: requestedThreadId, className, announcePendingSubmission = true, queueWhileRunning = true, showModelSelector = true, slashCommands, slashSkills, includeDefaultSlashCommands, includeDefaultSlashSkills, onSlashCommand, plusMenuMode, voiceEnabled = false, autoFocus = true, toolbarSlot, disabled, isReferenceTarget, submissionDisabled, onDisabledClick, placeholder, initialText, initialTextKey, layoutVariant, availableModels, modelListLoading, selectedModel, selectedEngine, selectedEffort, onConnectProvider, onConnectLocalRuntime, imageModelMenu, onModelChange, onEffortChange, availableAgents, selectedAgent, agentOnly, onAgentChange, onModelSelectorOpenChange, modelStatusChecksEnabled, requireAgentEngine = false, showMissingApiKeySetup, setupCardVisible, contextUsageSlot, attachmentsEnabled, onAttachmentRequest, contextButtonTooltipDisabled, onTextChange, composerRef: hostComposerRef, contextItems, onRemoveContextItem, extraActionButton, onSubmit: onSubmitOverride, onSubmissionPendingChange, onAttachmentError, interceptBuildRequestsForBuilder, planModeDisabled, stopButton, onInspectContextItem, onRetryContextItem, contextMenuItems, attachmentAdapter,
|
|
3136
|
+
export function AgentKitComposer({ threadId: requestedThreadId, className, announcePendingSubmission = true, queueWhileRunning = true, showModelSelector = true, slashCommands, slashSkills, includeDefaultSlashCommands, includeDefaultSlashSkills, onSlashCommand, plusMenuMode, voiceEnabled = false, onVoiceChatStart, autoFocus = true, toolbarSlot, disabled, isReferenceTarget, submissionDisabled, onDisabledClick, placeholder, initialText, initialTextKey, layoutVariant, availableModels, modelListLoading, selectedModel, selectedEngine, selectedEffort, onConnectProvider, onConnectLocalRuntime, imageModelMenu, onModelChange, onEffortChange, availableAgents, selectedAgent, agentOnly, onAgentChange, onModelSelectorOpenChange, modelStatusChecksEnabled, requireAgentEngine = false, showMissingApiKeySetup, setupCardVisible, onModelConnectionRequiredChange, contextUsageSlot, attachmentsEnabled, onAttachmentRequest, contextButtonTooltipDisabled, onTextChange, composerRef: hostComposerRef, contextItems, onRemoveContextItem, extraActionButton, onSubmit: onSubmitOverride, onSubmissionPendingChange, onAttachmentError, interceptBuildRequestsForBuilder, planModeDisabled, stopButton, onInspectContextItem, onRetryContextItem, contextMenuItems, attachmentAdapter,
|
|
3137
|
+
// AgentKit always uploads attached files and the server reads their text,
|
|
3138
|
+
// so also pasting a text file into the message sends it twice: the copy
|
|
3139
|
+
// here has only a weak truncation note and a read failure here is silent.
|
|
3140
|
+
inlineTextAttachments = false, beforeSend, }) {
|
|
3095
3141
|
const { threadId: contextThreadId, controller, labels, onThreadForked, registerComposerFocus, slots, } = useAgentKit();
|
|
3096
3142
|
const editContext = useContext(AgentMessageEditContext);
|
|
3097
3143
|
const followTranscript = useAgentKitFollowTranscript();
|
|
@@ -3181,11 +3227,12 @@ export function AgentKitComposer({ threadId: requestedThreadId, className, annou
|
|
|
3181
3227
|
};
|
|
3182
3228
|
}, []);
|
|
3183
3229
|
const [attachmentError, setAttachmentError] = useState(null);
|
|
3230
|
+
const composerTranslate = useComposerRuntimeAdapters().translate;
|
|
3184
3231
|
useEffect(() => {
|
|
3185
3232
|
setAttachmentError(null);
|
|
3186
3233
|
setStopError(null);
|
|
3187
3234
|
}, [threadId]);
|
|
3188
|
-
const composerAttachmentAdapter = useMemo(() => attachmentAdapter ?? createChatAttachmentAdapter(), [attachmentAdapter]);
|
|
3235
|
+
const composerAttachmentAdapter = useMemo(() => attachmentAdapter ?? createChatAttachmentAdapter(composerTranslate), [attachmentAdapter, composerTranslate]);
|
|
3189
3236
|
const starting = useAgentKitSubmissionStarting(threadId);
|
|
3190
3237
|
const active = hasActiveRuns(thread) || starting;
|
|
3191
3238
|
const composerInitialText = editingMessage
|
|
@@ -3256,7 +3303,7 @@ export function AgentKitComposer({ threadId: requestedThreadId, className, annou
|
|
|
3256
3303
|
editContext?.setMessage(null);
|
|
3257
3304
|
focusComposer();
|
|
3258
3305
|
}, [editContext, focusComposer, initialText]);
|
|
3259
|
-
const editingRow = editingMessage ? (_jsxs("div", { role: "group", "aria-labelledby": editingLabelId, className: "agentkit-editing-row flex h-6 min-w-0 items-center gap-
|
|
3306
|
+
const editingRow = editingMessage ? (_jsxs("div", { role: "group", "aria-labelledby": editingLabelId, className: "agentkit-editing-row flex h-6 min-w-0 items-center gap-2 text-xs text-muted-foreground", "data-agentkit-editing-row": "true", children: [_jsx(Tooltip, { placement: "top", align: "start", trigger: _jsxs("span", { tabIndex: 0, className: "inline-flex min-w-0 items-center gap-2 rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ring", children: [_jsx(IconPencil, { "aria-hidden": "true", className: "size-4 shrink-0" }), _jsx("span", { id: editingLabelId, className: "truncate", children: labels.editingMessage })] }), content: labels.editingMessageHint }), _jsx(ActionButton, { emphasis: "ghost", size: "compact", className: "-me-2 ms-auto h-6 shrink-0 px-2 text-xs", onPress: cancelEditing, children: labels.cancelEditing })] })) : null;
|
|
3260
3307
|
useEffect(() => registerComposerFocus(threadId, focusComposer), [focusComposer, registerComposerFocus, threadId]);
|
|
3261
3308
|
// i18n-ignore: These type-level callback property names are not visible copy.
|
|
3262
3309
|
const submitMessage = async (text, files, references, // i18n-ignore: Type-only callback tuple, not rendered copy.
|
|
@@ -3598,6 +3645,7 @@ export function AgentKitComposer({ threadId: requestedThreadId, className, annou
|
|
|
3598
3645
|
requireAgentEngine,
|
|
3599
3646
|
showMissingApiKeySetup,
|
|
3600
3647
|
setupCardVisible,
|
|
3648
|
+
onModelConnectionRequiredChange,
|
|
3601
3649
|
contextUsageSlot,
|
|
3602
3650
|
layoutVariant,
|
|
3603
3651
|
toolbarSlot,
|
|
@@ -3611,6 +3659,7 @@ export function AgentKitComposer({ threadId: requestedThreadId, className, annou
|
|
|
3611
3659
|
slashSkills,
|
|
3612
3660
|
onSlashCommand,
|
|
3613
3661
|
voiceEnabled,
|
|
3662
|
+
onVoiceChatStart,
|
|
3614
3663
|
replyPlaceholder: placeholder ?? labels.composerReplyPlaceholder,
|
|
3615
3664
|
onEscape: editingMessage ? cancelEditing : undefined,
|
|
3616
3665
|
initialText: composerInitialText,
|
|
@@ -4493,7 +4542,7 @@ export function AgentKitChat({ title, toolbar, composer = true, composerProps, h
|
|
|
4493
4542
|
rowElementCacheRef.current.set(key, { deps, element });
|
|
4494
4543
|
return element;
|
|
4495
4544
|
};
|
|
4496
|
-
const renderRunWork = ({ runId, anchor, afterSequence, throughSequence, messageId, foldedReasoningMessageId, }) => {
|
|
4545
|
+
const renderRunWork = ({ runId, anchor, afterSequence, throughSequence, messageId, foldedReasoningMessageId, summarizesTurn, }) => {
|
|
4497
4546
|
const key = `run-work:${threadId}:${runId}:${anchor}`;
|
|
4498
4547
|
const resetKey = `${anchor}:${runRevision(runId)}`;
|
|
4499
4548
|
return cachedRowElement(key, [
|
|
@@ -4502,6 +4551,7 @@ export function AgentKitChat({ title, toolbar, composer = true, composerProps, h
|
|
|
4502
4551
|
throughSequence,
|
|
4503
4552
|
messageId,
|
|
4504
4553
|
foldedReasoningMessageId,
|
|
4554
|
+
summarizesTurn,
|
|
4505
4555
|
], () => renderRunWorkElement({
|
|
4506
4556
|
key,
|
|
4507
4557
|
resetKey,
|
|
@@ -4510,9 +4560,10 @@ export function AgentKitChat({ title, toolbar, composer = true, composerProps, h
|
|
|
4510
4560
|
throughSequence,
|
|
4511
4561
|
messageId,
|
|
4512
4562
|
foldedReasoningMessageId,
|
|
4563
|
+
summarizesTurn,
|
|
4513
4564
|
}));
|
|
4514
4565
|
};
|
|
4515
|
-
const renderRunWorkElement = ({ key, resetKey, runId, afterSequence, throughSequence, messageId, foldedReasoningMessageId, }) => (_jsxs(AgentKitSurfaceBoundary, { surface: "activity", resetKey: resetKey, children: [_jsx(AgentCollaborationFeed, { runId: runId, afterSequence: afterSequence, throughSequence: throughSequence }), _jsx(AgentTaskGroup, { runId: runId, afterSequence: afterSequence, throughSequence: throughSequence }), _jsx(AgentActivityGroup, { runId: runId, afterSequence: afterSequence, throughSequence: throughSequence, excludeAgentActivities: true, isCurrentSegment: throughSequence === undefined, messageId: messageId, foldedReasoningMessageId: foldedReasoningMessageId })] }, key));
|
|
4566
|
+
const renderRunWorkElement = ({ key, resetKey, runId, afterSequence, throughSequence, messageId, foldedReasoningMessageId, summarizesTurn, }) => (_jsxs(AgentKitSurfaceBoundary, { surface: "activity", resetKey: resetKey, children: [_jsx(AgentCollaborationFeed, { runId: runId, afterSequence: afterSequence, throughSequence: throughSequence }), _jsx(AgentTaskGroup, { runId: runId, afterSequence: afterSequence, throughSequence: throughSequence }), _jsx(AgentActivityGroup, { runId: runId, afterSequence: afterSequence, throughSequence: throughSequence, excludeAgentActivities: true, isCurrentSegment: throughSequence === undefined, messageId: messageId, foldedReasoningMessageId: foldedReasoningMessageId, summarizesTurn: summarizesTurn })] }, key));
|
|
4516
4567
|
const renderRunTail = (runId) => {
|
|
4517
4568
|
const items = [];
|
|
4518
4569
|
if (pendingRuns.has(runId)) {
|
|
@@ -4641,9 +4692,18 @@ export function AgentKitChat({ title, toolbar, composer = true, composerProps, h
|
|
|
4641
4692
|
const previousAssistant = isAssistantBoundary && runId
|
|
4642
4693
|
? previousSegmentEndByRun.get(runId)
|
|
4643
4694
|
: undefined;
|
|
4695
|
+
// A turn that only answered still gets one "Worked for" row: it is the
|
|
4696
|
+
// run's only reply, nothing ran after it, and it shows no reasoning row.
|
|
4697
|
+
const summarizesTurn = Boolean(isAssistantBoundary &&
|
|
4698
|
+
runId &&
|
|
4699
|
+
previousAssistant === undefined &&
|
|
4700
|
+
lastAssistantMessagesByRun.get(runId)?.id === message.id &&
|
|
4701
|
+
!hasRunWork(runId, sequence) &&
|
|
4702
|
+
!hasVisibleReasoning(message));
|
|
4644
4703
|
const rendersRunWork = Boolean(isAssistantBoundary &&
|
|
4645
4704
|
runId &&
|
|
4646
|
-
|
|
4705
|
+
(summarizesTurn ||
|
|
4706
|
+
hasRunWork(runId, previousAssistant?.sequence, sequence)));
|
|
4647
4707
|
// A saved reply's reasoning before its answer joins the work group above
|
|
4648
4708
|
// it, so the turn shows one disclosure; the stream did not place it there.
|
|
4649
4709
|
const foldsReasoning = rendersRunWork &&
|
|
@@ -4658,6 +4718,7 @@ export function AgentKitChat({ title, toolbar, composer = true, composerProps, h
|
|
|
4658
4718
|
throughSequence: sequence,
|
|
4659
4719
|
messageId: message.id,
|
|
4660
4720
|
foldedReasoningMessageId: foldsReasoning ? message.id : undefined,
|
|
4721
|
+
summarizesTurn,
|
|
4661
4722
|
}));
|
|
4662
4723
|
}
|
|
4663
4724
|
const messageValue = displayMessageFor(message);
|