@agent-native/toolkit 0.200.0 → 0.200.1-nightly-20261002213029
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/dist/app/chat/AgentKitAssistantChat.js +2 -0
- package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
- package/dist/app/chat/AgentPanel.d.ts.map +1 -1
- package/dist/app/chat/AgentPanel.js +12 -99
- package/dist/app/chat/AgentPanel.js.map +1 -1
- package/dist/app/chat/ConnectBuilderCard.js +2 -2
- package/dist/app/chat/ConnectBuilderCard.js.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.js +36 -26
- 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 +36 -26
- package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
- package/dist/app/i18n/catalogs/en-US.d.ts +36 -26
- package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/en-US.js +36 -26
- 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 +36 -26
- 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 +36 -26
- 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 +36 -26
- 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 +36 -26
- 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 +36 -26
- 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 +36 -26
- 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 +36 -26
- 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 +36 -26
- package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
- package/dist/app/onboarding/FirstRunOnboarding.d.ts.map +1 -1
- package/dist/app/onboarding/FirstRunOnboarding.js +3 -5
- package/dist/app/onboarding/FirstRunOnboarding.js.map +1 -1
- package/dist/app/onboarding/NewWorkspaceAppFlow.d.ts.map +1 -1
- package/dist/app/onboarding/NewWorkspaceAppFlow.js +4 -2
- package/dist/app/onboarding/NewWorkspaceAppFlow.js.map +1 -1
- package/dist/app/onboarding/OnboardingPanel.d.ts.map +1 -1
- package/dist/app/onboarding/OnboardingPanel.js +3 -1
- package/dist/app/onboarding/OnboardingPanel.js.map +1 -1
- package/dist/app/settings/BuilderConnectPopover.d.ts +1 -0
- package/dist/app/settings/BuilderConnectPopover.d.ts.map +1 -1
- package/dist/app/settings/BuilderConnectPopover.js +11 -4
- package/dist/app/settings/BuilderConnectPopover.js.map +1 -1
- package/dist/app/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/app/settings/SettingsPanel.js +16 -8
- package/dist/app/settings/SettingsPanel.js.map +1 -1
- package/dist/app/settings/VoiceTranscriptionSection.d.ts.map +1 -1
- package/dist/app/settings/VoiceTranscriptionSection.js +7 -6
- package/dist/app/settings/VoiceTranscriptionSection.js.map +1 -1
- package/dist/app/settings/infra/InfrastructureSettingsPage.js +2 -2
- package/dist/app/settings/infra/InfrastructureSettingsPage.js.map +1 -1
- package/dist/app/settings/model/ModelSettingsPage.js +4 -2
- package/dist/app/settings/model/ModelSettingsPage.js.map +1 -1
- package/dist/app/settings/useBuilderStatus.d.ts +1 -0
- package/dist/app/settings/useBuilderStatus.d.ts.map +1 -1
- package/dist/app/settings/useBuilderStatus.js +43 -29
- package/dist/app/settings/useBuilderStatus.js.map +1 -1
- package/dist/app/setup-connections/SetupConnectionsPage.d.ts.map +1 -1
- package/dist/app/setup-connections/SetupConnectionsPage.js +4 -2
- package/dist/app/setup-connections/SetupConnectionsPage.js.map +1 -1
- package/dist/app/setup-connections/useBuilderConnectCardController.d.ts +1 -1
- package/dist/app/setup-connections/useBuilderConnectCardController.d.ts.map +1 -1
- package/dist/app/setup-connections/useBuilderConnectCardController.js +7 -6
- package/dist/app/setup-connections/useBuilderConnectCardController.js.map +1 -1
- package/dist/app/transcription/BuilderTranscriptionCta.d.ts.map +1 -1
- package/dist/app/transcription/BuilderTranscriptionCta.js +3 -1
- package/dist/app/transcription/BuilderTranscriptionCta.js.map +1 -1
- package/dist/composer/MessageQueueDrawer.d.ts +1 -1
- package/dist/composer/MessageQueueDrawer.d.ts.map +1 -1
- package/dist/composer/MessageQueueDrawer.js +10 -1
- package/dist/composer/MessageQueueDrawer.js.map +1 -1
- package/dist/composer/PromptComposer.d.ts +1 -1
- package/dist/composer/TiptapComposer.d.ts +1 -1
- package/dist/composer/TiptapComposer.js +4 -4
- package/dist/composer/TiptapComposer.js.map +1 -1
- package/dist/composer/useRealtimeVoiceMode.js +2 -2
- package/dist/composer/useRealtimeVoiceMode.js.map +1 -1
- package/package.json +4 -4
- package/src/app/chat/AgentKitAssistantChat.spec.tsx +30 -5
- package/src/app/chat/AgentKitAssistantChat.tsx +1 -0
- package/src/app/chat/AgentPanel.tsx +33 -112
- package/src/app/chat/ConnectBuilderCard.tsx +2 -2
- package/src/app/chat/chat/run-recovery.spec.tsx +8 -8
- package/src/app/i18n/catalogs/ar-SA.ts +46 -26
- package/src/app/i18n/catalogs/de-DE.ts +47 -26
- package/src/app/i18n/catalogs/en-US.ts +47 -26
- package/src/app/i18n/catalogs/es-ES.ts +47 -26
- package/src/app/i18n/catalogs/fr-FR.ts +48 -26
- package/src/app/i18n/catalogs/hi-IN.ts +47 -26
- package/src/app/i18n/catalogs/ja-JP.ts +47 -26
- package/src/app/i18n/catalogs/ko-KR.ts +47 -26
- package/src/app/i18n/catalogs/pt-BR.ts +48 -26
- package/src/app/i18n/catalogs/zh-CN.ts +47 -26
- package/src/app/i18n/catalogs/zh-TW.ts +47 -26
- package/src/app/integrations/BuilderIntegrationPage.spec.tsx +11 -7
- package/src/app/onboarding/FirstRunOnboarding.spec.tsx +24 -12
- package/src/app/onboarding/FirstRunOnboarding.tsx +14 -16
- package/src/app/onboarding/NewWorkspaceAppFlow.spec.ts +23 -7
- package/src/app/onboarding/NewWorkspaceAppFlow.tsx +4 -2
- package/src/app/onboarding/OnboardingPanel.tsx +4 -8
- package/src/app/settings/BuilderConnectPopover.spec.tsx +41 -1
- package/src/app/settings/BuilderConnectPopover.tsx +21 -4
- package/src/app/settings/SettingsPanel.connections.spec.tsx +2 -2
- package/src/app/settings/SettingsPanel.tsx +16 -8
- package/src/app/settings/VoiceTranscriptionSection.tsx +8 -7
- package/src/app/settings/infra/InfrastructureSettingsPage.spec.tsx +4 -4
- package/src/app/settings/infra/InfrastructureSettingsPage.tsx +5 -2
- package/src/app/settings/model/ModelSettingsPage.spec.tsx +7 -5
- package/src/app/settings/model/ModelSettingsPage.tsx +4 -2
- package/src/app/settings/useBuilderStatus.spec.tsx +82 -52
- package/src/app/settings/useBuilderStatus.ts +44 -54
- package/src/app/setup-connections/BuilderConnectCard.spec.tsx +11 -11
- package/src/app/setup-connections/SetupConnectionsPage.tsx +4 -2
- package/src/app/setup-connections/useBuilderConnectCardController.spec.tsx +19 -6
- package/src/app/setup-connections/useBuilderConnectCardController.ts +10 -9
- package/src/app/transcription/BuilderTranscriptionCta.tsx +4 -2
- package/src/composer/MessageQueueDrawer.spec.tsx +108 -0
- package/src/composer/MessageQueueDrawer.tsx +22 -2
- package/src/composer/PromptComposer.tsx +1 -1
- package/src/composer/RealtimeVoiceMode.spec.tsx +4 -4
- package/src/composer/TiptapComposer.tsx +5 -5
- package/src/composer/useRealtimeVoiceMode.tsx +2 -2
|
@@ -124,13 +124,16 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
124
124
|
"一键创建或重新使用您的 Builder.io 账户,并激活免费额度。",
|
|
125
125
|
"onboarding.builderActiveCredits": "包含在有效的 Builder.io 免费额度中",
|
|
126
126
|
"onboarding.builderCredits": "包含在 Builder.io 免费额度中",
|
|
127
|
+
"onboarding.builderIncludedFreeWithAccount":
|
|
128
|
+
"拥有 Builder.io 账户即可免费使用",
|
|
129
|
+
"onboarding.builderMonthlyCredits": "每月 60 个 Agent Credits",
|
|
127
130
|
"onboarding.builderActivateTitle": "激活免费额度",
|
|
128
131
|
"onboarding.builderAccountExistsTitle": "您已有 Builder.io 账户",
|
|
129
|
-
"onboarding.builderAccountExistsDescription": "
|
|
132
|
+
"onboarding.builderAccountExistsDescription": "登录以使用你的账户。",
|
|
130
133
|
"onboarding.builderActivationDescription":
|
|
131
134
|
"我们会一键自动为您创建 Builder.io 账户。",
|
|
132
135
|
"onboarding.builderOrgActivationDescription":
|
|
133
|
-
"
|
|
136
|
+
"我们会一键创建你的 Builder.io 账户,让你的组织可以使用它。",
|
|
134
137
|
"onboarding.builderCreateAndActivate": "创建并激活",
|
|
135
138
|
"onboarding.builderConsentPrefix": "创建 Builder.io 账户即表示您同意我们的",
|
|
136
139
|
"onboarding.builderTerms": "服务条款",
|
|
@@ -138,7 +141,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
138
141
|
"onboarding.builderConsentAnd": "和",
|
|
139
142
|
"onboarding.builderExistingAccount": "我有 Builder.io 账户",
|
|
140
143
|
"onboarding.builderActivating": "正在激活 Builder.io 免费额度",
|
|
141
|
-
"onboarding.builderConnecting": "
|
|
144
|
+
"onboarding.builderConnecting": "正在设置 Builder.io 免费额度",
|
|
142
145
|
"onboarding.builderProvisioningDescription":
|
|
143
146
|
"正在创建或重新使用您的 Builder.io 账户,通常需要几秒钟。",
|
|
144
147
|
"onboarding.builderConnectionDescription": "在新窗口中一键完成连接。",
|
|
@@ -151,8 +154,8 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
151
154
|
"onboarding.fileStorage.title": "连接存储以上传文件",
|
|
152
155
|
"onboarding.fileStorage.statusUnavailable": "无法检查存储",
|
|
153
156
|
"onboarding.fileStorage.description":
|
|
154
|
-
"
|
|
155
|
-
"onboarding.fileStorage.reconnectBuilder": "
|
|
157
|
+
"使用 Builder.io(免费)或配置自己的兼容 S3 对象存储。",
|
|
158
|
+
"onboarding.fileStorage.reconnectBuilder": "使用 Builder.io",
|
|
156
159
|
"onboarding.fileStorage.custom": "使用自定义密钥",
|
|
157
160
|
"onboarding.fileStorage.customDescription":
|
|
158
161
|
"配置带有稳定公共 URL 的兼容 S3 存储桶。",
|
|
@@ -370,9 +373,9 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
370
373
|
"composer.closePreview": "关闭预览",
|
|
371
374
|
"composer.configureProviderKeys": "配置 Anthropic、OpenAI 或其他提供商",
|
|
372
375
|
"composer.connectAbove": "请在上方连接 AI 以继续...",
|
|
373
|
-
"composer.connectBuilder": "
|
|
376
|
+
"composer.connectBuilder": "使用 Builder.io",
|
|
374
377
|
"composer.connectKeys": "连接密钥",
|
|
375
|
-
"composer.connectingBuilder": "
|
|
378
|
+
"composer.connectingBuilder": "正在设置 Builder.io…",
|
|
376
379
|
"composer.costHigher": "较高费用",
|
|
377
380
|
"composer.costLower": "较低费用",
|
|
378
381
|
"composer.costMedium": "中等费用",
|
|
@@ -486,7 +489,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
486
489
|
"voice.dictation.start": "听写({{shortcut}})",
|
|
487
490
|
"voice.dictation.stopRecording": "停止录音",
|
|
488
491
|
"voice.dictation.transcribing": "正在转写…",
|
|
489
|
-
"voiceMode.connectBuilder": "
|
|
492
|
+
"voiceMode.connectBuilder": "使用 Builder.io",
|
|
490
493
|
"voiceMode.end": "结束语音模式",
|
|
491
494
|
"voiceMode.entryButtonLabel": "使用麦克风",
|
|
492
495
|
"voiceMode.errors.channelDisconnected": "实时语音控制通道已断开。",
|
|
@@ -535,7 +538,15 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
535
538
|
"voiceMode.settings.voiceDescriptions.verse": "富有表现力且多样",
|
|
536
539
|
"voiceMode.settings.voiceStyle": "语音风格",
|
|
537
540
|
"voiceMode.setupDescription":
|
|
538
|
-
"
|
|
541
|
+
"使用 Builder.io 体验含免费额度的托管语音,或添加自己的密钥。",
|
|
542
|
+
"transcription.builderCtaDescription":
|
|
543
|
+
"使用 Builder.io 获得更高质量的转录,含免费额度且无需 API 密钥。",
|
|
544
|
+
"voiceMode.googleRealtimeDescription":
|
|
545
|
+
"Google 凭据已设置。使用 Builder.io(提供免费套餐)创建托管实时会话。",
|
|
546
|
+
"voiceMode.serviceAccountRealtimeDescription":
|
|
547
|
+
"服务账户 JSON 已设置。使用 Builder.io(提供免费套餐)创建托管实时 WebSocket 会话。",
|
|
548
|
+
"voiceMode.builderGeminiDescription":
|
|
549
|
+
"使用 Builder.io 进行 Gemini Flash-Lite 转录和 Luna 文本清理。无需 Google 密钥。",
|
|
539
550
|
"voiceMode.setupTitle": "设置语音模式",
|
|
540
551
|
"voiceMode.showChat": "显示聊天",
|
|
541
552
|
"voiceMode.start": "开始语音对话",
|
|
@@ -564,7 +575,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
564
575
|
"errorMessages.attachmentPasswordProtected":
|
|
565
576
|
"此 PDF 受密码保护,无法读取。请移除密码保护或粘贴相关文本后重试。",
|
|
566
577
|
"errorMessages.builderAuthentication":
|
|
567
|
-
"Builder
|
|
578
|
+
"Builder 拒绝了已连接的凭据。请在设置中再次使用 Builder.io,然后重试。",
|
|
568
579
|
"errorMessages.builderModelUnauthorized":
|
|
569
580
|
"此模型背后的提供商拒绝了请求。请选择其他模型后重试。",
|
|
570
581
|
"errorMessages.errorPrefix": "错误:{{message}}",
|
|
@@ -590,7 +601,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
590
601
|
"errorMessages.malformedRequestAttachment":
|
|
591
602
|
"模型拒绝了一个附加文件,因此该消息未发送。请移除附件后重试:PDF、纯文本文件以及 JPEG、PNG、GIF、WebP 图片可直接读取;其他格式需要先上传再以链接形式引用。",
|
|
592
603
|
"errorMessages.noProviderConnected":
|
|
593
|
-
"
|
|
604
|
+
"尚未连接 LLM 提供商。打开设置 > 智能体 > AI 提供商,然后使用 Builder.io(提供免费套餐)或添加提供商密钥。",
|
|
594
605
|
"errorMessages.openBuilderSpaceSettings": "打开 Builder 空间设置",
|
|
595
606
|
"errorMessages.providerAuthentication":
|
|
596
607
|
"模型提供商拒绝了已保存的 API 密钥。请在设置 → 集成 → API 密钥中更新密钥,然后重试。",
|
|
@@ -1028,7 +1039,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1028
1039
|
"queue.steerHint": "下一条发送此消息",
|
|
1029
1040
|
"queue.moreActions": "更多操作",
|
|
1030
1041
|
"queue.moveToTop": "移至顶部",
|
|
1031
|
-
"recovery.connectingBuilder": "
|
|
1042
|
+
"recovery.connectingBuilder": "正在设置 Builder.io",
|
|
1032
1043
|
"recovery.copyDebug": "复制调试信息",
|
|
1033
1044
|
"recovery.copyFailed": "复制失败",
|
|
1034
1045
|
"recovery.retryAttachmentUnavailable":
|
|
@@ -1038,7 +1049,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1038
1049
|
"recovery.credentialRejected":
|
|
1039
1050
|
"模型提供商拒绝了已保存的凭据。请更新 Builder.io 连接或提供商密钥,然后重试此消息。",
|
|
1040
1051
|
"codeRequired.builderAgentNotConnected":
|
|
1041
|
-
"Builder Cloud Agents
|
|
1052
|
+
"Builder Cloud Agents 尚未连接。请在设置中使用 Builder.io,以运行这项托管代码变更操作。模型提供商密钥仍可用于聊天和其他 AI 功能,但不能授权使用 Builder Cloud Agent。",
|
|
1042
1053
|
"recovery.diagnoseRetry": "诊断并重试",
|
|
1043
1054
|
"recovery.forkDescription": "将此对话分支到一个单独的聊天线程中。",
|
|
1044
1055
|
"recovery.forkFailed": "无法创建此聊天的分支。请尝试开始新聊天。",
|
|
@@ -1058,7 +1069,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1058
1069
|
"无法连接服务器以检查智能体是否仍在工作。请重新发送消息以重试。",
|
|
1059
1070
|
"recovery.streamEnded":
|
|
1060
1071
|
"上一次智能体流在恢复运行时结束。请继续或重试以重新连接该运行。",
|
|
1061
|
-
"recovery.reconnectBuilder": "
|
|
1072
|
+
"recovery.reconnectBuilder": "使用 Builder.io",
|
|
1062
1073
|
"secrets.addCustomKeyNamed": "添加“{{name}}”作为自定义密钥",
|
|
1063
1074
|
"secrets.chooseKey": "选择密钥",
|
|
1064
1075
|
"secrets.customKey": "自定义密钥",
|
|
@@ -1098,7 +1109,9 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1098
1109
|
"setup.builderOrOwnKeys":
|
|
1099
1110
|
"使用 Builder.io(含免费额度),或添加您自己的提供商密钥。",
|
|
1100
1111
|
"setup.connectAi": "连接 AI",
|
|
1101
|
-
"setup.connectBuilder": "
|
|
1112
|
+
"setup.connectBuilder": "使用 Builder.io",
|
|
1113
|
+
"setup.connectionsDescription":
|
|
1114
|
+
"在同一处管理设置状态、Builder.io 访问权限、应用密钥和工作区连接。",
|
|
1102
1115
|
"setup.connectPlaceholder": "连接 AI 以开始聊天...",
|
|
1103
1116
|
"setup.connectToChat": "连接 AI 以聊天",
|
|
1104
1117
|
"setup.connectToStart": "连接 AI 以开始聊天",
|
|
@@ -1821,7 +1834,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1821
1834
|
"settingsShell.appGroup.whatsNewViewAll": "查看所有更新",
|
|
1822
1835
|
"settingsShell.backToApp": "返回 {{app}}",
|
|
1823
1836
|
"settingsShell.breadcrumbLabel": "面包屑导航",
|
|
1824
|
-
"settingsShell.builder.connect": "
|
|
1837
|
+
"settingsShell.builder.connect": "使用 Builder.io",
|
|
1825
1838
|
"settingsShell.builder.connected": "已连接",
|
|
1826
1839
|
"settingsShell.builder.connectedTo": "已连接 · {{space}}",
|
|
1827
1840
|
"settingsShell.builder.connection": "连接",
|
|
@@ -1832,6 +1845,12 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1832
1845
|
"settingsShell.builder.disconnectFailed": "无法断开 Builder.io。",
|
|
1833
1846
|
"settingsShell.builder.disconnectTitle": "断开 Builder.io?",
|
|
1834
1847
|
"settingsShell.builder.grantsFailed": "无法读取 Builder.io 连接。",
|
|
1848
|
+
"settingsShell.builder.setupStartFailed":
|
|
1849
|
+
"无法启动 Builder.io 设置。请刷新此页面后重试。",
|
|
1850
|
+
"settingsShell.builder.setupHostFailed":
|
|
1851
|
+
"无法从此聊天宿主打开 Builder。请在浏览器标签页中打开此应用,然后重试 Builder.io 设置(提供免费套餐)。",
|
|
1852
|
+
"settingsShell.builder.setupFailed":
|
|
1853
|
+
"Builder.io 设置未完成。请重试,或使用自己的密钥。",
|
|
1835
1854
|
"settingsShell.builder.loss.defaultStops":
|
|
1836
1855
|
"在你添加组织提供商之前,聊天将停止。",
|
|
1837
1856
|
"settingsShell.builder.loss.defaultSwitches": "默认模型切换为 {{next}}。",
|
|
@@ -1844,9 +1863,9 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1844
1863
|
"settingsShell.builder.needsReconnect": "需要重新连接。",
|
|
1845
1864
|
"settingsShell.builder.orgFallback": "你的组织",
|
|
1846
1865
|
"settingsShell.builder.orgNotConnectedAdmin":
|
|
1847
|
-
"
|
|
1866
|
+
"未连接。使用 Builder.io 即可让 {{org}} 中的所有人使用。",
|
|
1848
1867
|
"settingsShell.builder.orgNotConnectedMember":
|
|
1849
|
-
"
|
|
1868
|
+
"未连接。所有者或管理员可以为所有人启用 Builder.io。",
|
|
1850
1869
|
"settingsShell.builder.organization": "组织",
|
|
1851
1870
|
"settingsShell.builder.personal": "个人",
|
|
1852
1871
|
"settingsShell.builder.personalConnected": "已连接。只有你使用。",
|
|
@@ -1857,7 +1876,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1857
1876
|
"settingsShell.builder.personalConnectedToOverOrg":
|
|
1858
1877
|
"已连接 · {{space}}。只有你使用,替代组织的连接。",
|
|
1859
1878
|
"settingsShell.builder.personalNotConnected":
|
|
1860
|
-
"
|
|
1879
|
+
"使用自己的 Builder.io 账户。只有你可以使用。",
|
|
1861
1880
|
"settingsShell.builder.personalRestricted":
|
|
1862
1881
|
"所有者和管理员已限制个人 API 密钥。",
|
|
1863
1882
|
"settingsShell.builder.personalRestrictedUnused":
|
|
@@ -2328,7 +2347,11 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
2328
2347
|
"settingsInfra.builderConnected":
|
|
2329
2348
|
"已连接。标有 Builder.io 的每项服务都使用你的账户额度。",
|
|
2330
2349
|
"settingsInfra.builderNotConnected":
|
|
2331
|
-
"
|
|
2350
|
+
"未连接。自行设置每项服务,或使用 Builder.io 应用账户额度。",
|
|
2351
|
+
"settingsInfra.builderOverrideDescription":
|
|
2352
|
+
"可使用部署备用方案。使用自己的 Builder.io 账户即可覆盖它。",
|
|
2353
|
+
"settingsInfra.builderStorageHint":
|
|
2354
|
+
"对象存储可持久保存上传文件,并让 URL 在整个对话中重复使用。请使用下方的 Builder.io 或兼容 S3 的存储桶。",
|
|
2332
2355
|
"settingsInfra.builderUnknown": "无法检查 Builder.io 连接。",
|
|
2333
2356
|
"settingsInfra.manage": "管理",
|
|
2334
2357
|
"settingsInfra.connect": "连接",
|
|
@@ -2485,13 +2508,13 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
2485
2508
|
"settingsModel.builderConnected": "已连接 · {{space}}",
|
|
2486
2509
|
"settingsModel.builderConnectedPlain": "已连接",
|
|
2487
2510
|
"settingsModel.builderOrgNotConnectedAdmin":
|
|
2488
|
-
"
|
|
2511
|
+
"未连接。使用 Builder.io 即可让 {{org}} 中的所有人使用。",
|
|
2489
2512
|
"settingsModel.builderOrgNotConnectedMember":
|
|
2490
|
-
"
|
|
2513
|
+
"未连接。所有者或管理员可以为所有人启用 Builder.io。",
|
|
2491
2514
|
"settingsModel.builderPersonalConnect":
|
|
2492
|
-
"
|
|
2515
|
+
"使用自己的 Builder.io 账户来使用账户额度。",
|
|
2493
2516
|
"settingsModel.builderPersonalInsteadOfOrg":
|
|
2494
|
-
"
|
|
2517
|
+
"使用自己的 Builder.io 账户,替代组织连接。",
|
|
2495
2518
|
"settingsModel.builderPersonalOverOrg":
|
|
2496
2519
|
"已连接 · {{space}}。代替组织的连接使用。",
|
|
2497
2520
|
"settingsModel.builderPersonalOverOrgPlain": "已连接。代替组织的连接使用。",
|
|
@@ -2533,8 +2556,6 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
2533
2556
|
"settingsModel.checkingSaved": "正在检查已保存的密钥",
|
|
2534
2557
|
"settingsModel.chooseModel": "选择模型",
|
|
2535
2558
|
"settingsModel.clear": "清除",
|
|
2536
|
-
"settingsModel.connect": "连接",
|
|
2537
|
-
"settingsModel.connecting": "正在连接…",
|
|
2538
2559
|
"settingsModel.defaultModelDescription":
|
|
2539
2560
|
"除非应用自行设置,否则所有应用都使用此模型。",
|
|
2540
2561
|
"settingsModel.defaultModelNeedsProvider": "添加提供商后即可选择默认模型。",
|
|
@@ -125,13 +125,16 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
125
125
|
"只要按一下即可建立或重新使用您的 Builder.io 帳戶,並啟用免費額度。",
|
|
126
126
|
"onboarding.builderActiveCredits": "包含於有效的 Builder.io 免費額度",
|
|
127
127
|
"onboarding.builderCredits": "包含於 Builder.io 免費額度",
|
|
128
|
+
"onboarding.builderIncludedFreeWithAccount":
|
|
129
|
+
"擁有 Builder.io 帳戶即可免費使用",
|
|
130
|
+
"onboarding.builderMonthlyCredits": "每月 60 點 Agent Credits",
|
|
128
131
|
"onboarding.builderActivateTitle": "啟用免費額度",
|
|
129
132
|
"onboarding.builderAccountExistsTitle": "您已有 Builder.io 帳戶",
|
|
130
|
-
"onboarding.builderAccountExistsDescription": "
|
|
133
|
+
"onboarding.builderAccountExistsDescription": "登入以使用您的帳戶。",
|
|
131
134
|
"onboarding.builderActivationDescription":
|
|
132
135
|
"我們會按一下自動為您建立 Builder.io 帳戶。",
|
|
133
136
|
"onboarding.builderOrgActivationDescription":
|
|
134
|
-
"
|
|
137
|
+
"我們會一鍵建立您的 Builder.io 帳戶,讓您的組織可以使用。",
|
|
135
138
|
"onboarding.builderCreateAndActivate": "建立並啟用",
|
|
136
139
|
"onboarding.builderConsentPrefix": "建立 Builder.io 帳戶即表示您同意我們的",
|
|
137
140
|
"onboarding.builderTerms": "服務條款",
|
|
@@ -139,7 +142,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
139
142
|
"onboarding.builderConsentAnd": "和",
|
|
140
143
|
"onboarding.builderExistingAccount": "我有 Builder.io 帳戶",
|
|
141
144
|
"onboarding.builderActivating": "正在啟用 Builder.io 免費額度",
|
|
142
|
-
"onboarding.builderConnecting": "
|
|
145
|
+
"onboarding.builderConnecting": "正在設定 Builder.io 免費額度",
|
|
143
146
|
"onboarding.builderProvisioningDescription":
|
|
144
147
|
"正在建立或重新使用您的 Builder.io 帳戶,通常需要幾秒鐘。",
|
|
145
148
|
"onboarding.builderConnectionDescription": "在新視窗中按一下即可完成連線。",
|
|
@@ -153,8 +156,8 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
153
156
|
"onboarding.fileStorage.title": "連接儲存空間以上傳檔案",
|
|
154
157
|
"onboarding.fileStorage.statusUnavailable": "無法檢查儲存空間",
|
|
155
158
|
"onboarding.fileStorage.description":
|
|
156
|
-
"
|
|
157
|
-
"onboarding.fileStorage.reconnectBuilder": "
|
|
159
|
+
"使用 Builder.io(免費)或設定自己的相容 S3 物件儲存空間。",
|
|
160
|
+
"onboarding.fileStorage.reconnectBuilder": "使用 Builder.io",
|
|
158
161
|
"onboarding.fileStorage.custom": "使用自訂金鑰",
|
|
159
162
|
"onboarding.fileStorage.customDescription":
|
|
160
163
|
"設定具有穩定公開 URL 的相容 S3 儲存桶。",
|
|
@@ -371,9 +374,9 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
371
374
|
"composer.closePreview": "關閉預覽",
|
|
372
375
|
"composer.configureProviderKeys": "設定 Anthropic、OpenAI 或其他供應商",
|
|
373
376
|
"composer.connectAbove": "請在上方連線 AI 以繼續...",
|
|
374
|
-
"composer.connectBuilder": "
|
|
377
|
+
"composer.connectBuilder": "使用 Builder.io",
|
|
375
378
|
"composer.connectKeys": "連線金鑰",
|
|
376
|
-
"composer.connectingBuilder": "
|
|
379
|
+
"composer.connectingBuilder": "正在設定 Builder.io…",
|
|
377
380
|
"composer.costHigher": "較高費用",
|
|
378
381
|
"composer.costLower": "較低費用",
|
|
379
382
|
"composer.costMedium": "中等費用",
|
|
@@ -487,7 +490,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
487
490
|
"voice.dictation.start": "聽寫({{shortcut}})",
|
|
488
491
|
"voice.dictation.stopRecording": "停止錄音",
|
|
489
492
|
"voice.dictation.transcribing": "正在轉錄…",
|
|
490
|
-
"voiceMode.connectBuilder": "
|
|
493
|
+
"voiceMode.connectBuilder": "使用 Builder.io",
|
|
491
494
|
"voiceMode.end": "結束語音模式",
|
|
492
495
|
"voiceMode.entryButtonLabel": "使用麥克風",
|
|
493
496
|
"voiceMode.errors.channelDisconnected": "即時語音控制頻道已中斷連線。",
|
|
@@ -536,7 +539,15 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
536
539
|
"voiceMode.settings.voiceDescriptions.verse": "富有表現力且多元",
|
|
537
540
|
"voiceMode.settings.voiceStyle": "語音風格",
|
|
538
541
|
"voiceMode.setupDescription":
|
|
539
|
-
"
|
|
542
|
+
"使用 Builder.io 享有含免費額度的代管語音,或加入您自己的金鑰。",
|
|
543
|
+
"transcription.builderCtaDescription":
|
|
544
|
+
"使用 Builder.io 取得更高品質的轉錄,享有免費額度且無需 API 金鑰。",
|
|
545
|
+
"voiceMode.googleRealtimeDescription":
|
|
546
|
+
"Google 憑證已設定。使用 Builder.io(提供免費方案)建立代管即時工作階段。",
|
|
547
|
+
"voiceMode.serviceAccountRealtimeDescription":
|
|
548
|
+
"服務帳戶 JSON 已設定。使用 Builder.io(提供免費方案)建立代管即時 WebSocket 工作階段。",
|
|
549
|
+
"voiceMode.builderGeminiDescription":
|
|
550
|
+
"使用 Builder.io 進行 Gemini Flash-Lite 轉錄與 Luna 文字清理。無需 Google 金鑰。",
|
|
540
551
|
"voiceMode.setupTitle": "設定語音模式",
|
|
541
552
|
"voiceMode.showChat": "顯示聊天",
|
|
542
553
|
"voiceMode.start": "開始語音對話",
|
|
@@ -565,7 +576,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
565
576
|
"errorMessages.attachmentPasswordProtected":
|
|
566
577
|
"此 PDF 受密碼保護,無法讀取。請移除密碼保護或貼上相關文字後重試。",
|
|
567
578
|
"errorMessages.builderAuthentication":
|
|
568
|
-
"Builder
|
|
579
|
+
"Builder 拒絕了已連線的憑證。請在設定中再次使用 Builder.io,然後重試。",
|
|
569
580
|
"errorMessages.builderModelUnauthorized":
|
|
570
581
|
"這個模型背後的供應商拒絕了要求。請選擇其他模型後重試。",
|
|
571
582
|
"errorMessages.errorPrefix": "錯誤:{{message}}",
|
|
@@ -591,7 +602,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
591
602
|
"errorMessages.malformedRequestAttachment":
|
|
592
603
|
"模型拒絕了一個附加檔案,因此這則訊息並未送出。請移除附件後重試:PDF、純文字檔案以及 JPEG、PNG、GIF、WebP 圖片可直接讀取;其他格式需要先上傳再以連結引用。",
|
|
593
604
|
"errorMessages.noProviderConnected":
|
|
594
|
-
"
|
|
605
|
+
"尚未連線 LLM 供應商。開啟設定 > 代理 > AI 供應商,然後使用 Builder.io(提供免費方案)或新增供應商金鑰。",
|
|
595
606
|
"errorMessages.openBuilderSpaceSettings": "開啟 Builder 空間設定",
|
|
596
607
|
"errorMessages.providerAuthentication":
|
|
597
608
|
"模型供應商拒絕了已儲存的 API 金鑰。請在設定 → 整合 → API 金鑰中更新金鑰,然後重試。",
|
|
@@ -1032,7 +1043,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1032
1043
|
"queue.steerHint": "下一則傳送此訊息",
|
|
1033
1044
|
"queue.moreActions": "更多操作",
|
|
1034
1045
|
"queue.moveToTop": "移至頂端",
|
|
1035
|
-
"recovery.connectingBuilder": "
|
|
1046
|
+
"recovery.connectingBuilder": "正在設定 Builder.io",
|
|
1036
1047
|
"recovery.copyDebug": "複製偵錯資訊",
|
|
1037
1048
|
"recovery.copyFailed": "複製失敗",
|
|
1038
1049
|
"recovery.retryAttachmentUnavailable":
|
|
@@ -1042,7 +1053,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1042
1053
|
"recovery.credentialRejected":
|
|
1043
1054
|
"模型供應商拒絕了已儲存的憑證。請更新 Builder.io 連線或供應商金鑰,然後重試這則訊息。",
|
|
1044
1055
|
"codeRequired.builderAgentNotConnected":
|
|
1045
|
-
"Builder Cloud Agents
|
|
1056
|
+
"Builder Cloud Agents 尚未連線。請在設定中使用 Builder.io,以執行這項託管程式碼變更作業。模型供應商金鑰仍可用於聊天和其他 AI 功能,但不能授權使用 Builder Cloud Agent。",
|
|
1046
1057
|
"recovery.diagnoseRetry": "診斷並重試",
|
|
1047
1058
|
"recovery.forkDescription": "將這段對話建立為獨立的聊天討論串。",
|
|
1048
1059
|
"recovery.forkFailed": "無法建立這個聊天的分支。請嘗試開始新聊天。",
|
|
@@ -1063,7 +1074,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1063
1074
|
"無法連線至伺服器以檢查代理是否仍在工作。請重新傳送訊息以重試。",
|
|
1064
1075
|
"recovery.streamEnded":
|
|
1065
1076
|
"上一次代理串流在復原執行時結束。請繼續或重試以重新連線至該執行。",
|
|
1066
|
-
"recovery.reconnectBuilder": "
|
|
1077
|
+
"recovery.reconnectBuilder": "使用 Builder.io",
|
|
1067
1078
|
"secrets.addCustomKeyNamed": "新增「{{name}}」作為自訂金鑰",
|
|
1068
1079
|
"secrets.chooseKey": "選擇金鑰",
|
|
1069
1080
|
"secrets.customKey": "自訂金鑰",
|
|
@@ -1102,7 +1113,9 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1102
1113
|
"setup.builderOrOwnKeys":
|
|
1103
1114
|
"使用 Builder.io(含免費額度),或加入您自己的供應商金鑰。",
|
|
1104
1115
|
"setup.connectAi": "連線 AI",
|
|
1105
|
-
"setup.connectBuilder": "
|
|
1116
|
+
"setup.connectBuilder": "使用 Builder.io",
|
|
1117
|
+
"setup.connectionsDescription":
|
|
1118
|
+
"在同一處管理設定狀態、Builder.io 存取權、應用程式密碼與工作區連線。",
|
|
1106
1119
|
"setup.connectPlaceholder": "連線 AI 以開始聊天...",
|
|
1107
1120
|
"setup.connectToChat": "連線 AI 以聊天",
|
|
1108
1121
|
"setup.connectToStart": "連線 AI 以開始聊天",
|
|
@@ -1830,7 +1843,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1830
1843
|
"settingsShell.appGroup.whatsNewViewAll": "查看所有更新",
|
|
1831
1844
|
"settingsShell.backToApp": "返回 {{app}}",
|
|
1832
1845
|
"settingsShell.breadcrumbLabel": "階層式導覽",
|
|
1833
|
-
"settingsShell.builder.connect": "
|
|
1846
|
+
"settingsShell.builder.connect": "使用 Builder.io",
|
|
1834
1847
|
"settingsShell.builder.connected": "已連結",
|
|
1835
1848
|
"settingsShell.builder.connectedTo": "已連結 · {{space}}",
|
|
1836
1849
|
"settingsShell.builder.connection": "連結",
|
|
@@ -1841,6 +1854,12 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1841
1854
|
"settingsShell.builder.disconnectFailed": "無法中斷 Builder.io 的連結。",
|
|
1842
1855
|
"settingsShell.builder.disconnectTitle": "要中斷 Builder.io 的連結嗎?",
|
|
1843
1856
|
"settingsShell.builder.grantsFailed": "無法讀取 Builder.io 連結。",
|
|
1857
|
+
"settingsShell.builder.setupStartFailed":
|
|
1858
|
+
"無法啟動 Builder.io 設定。請重新整理此頁面後再試一次。",
|
|
1859
|
+
"settingsShell.builder.setupHostFailed":
|
|
1860
|
+
"無法從此聊天主機開啟 Builder。請在瀏覽器分頁中開啟此應用程式,然後重試 Builder.io 設定(提供免費方案)。",
|
|
1861
|
+
"settingsShell.builder.setupFailed":
|
|
1862
|
+
"Builder.io 設定尚未完成。請重試,或使用您自己的金鑰。",
|
|
1844
1863
|
"settingsShell.builder.loss.defaultStops":
|
|
1845
1864
|
"在你新增組織提供者之前,聊天會停止。",
|
|
1846
1865
|
"settingsShell.builder.loss.defaultSwitches": "預設模型切換為 {{next}}。",
|
|
@@ -1854,9 +1873,9 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1854
1873
|
"settingsShell.builder.needsReconnect": "需要重新連結。",
|
|
1855
1874
|
"settingsShell.builder.orgFallback": "你的組織",
|
|
1856
1875
|
"settingsShell.builder.orgNotConnectedAdmin":
|
|
1857
|
-
"
|
|
1876
|
+
"尚未連線。使用 Builder.io 即可讓 {{org}} 中的所有人使用。",
|
|
1858
1877
|
"settingsShell.builder.orgNotConnectedMember":
|
|
1859
|
-
"
|
|
1878
|
+
"尚未連線。擁有者或管理員可以為所有人啟用 Builder.io。",
|
|
1860
1879
|
"settingsShell.builder.organization": "組織",
|
|
1861
1880
|
"settingsShell.builder.personal": "個人",
|
|
1862
1881
|
"settingsShell.builder.personalConnected": "已連結。只有你使用。",
|
|
@@ -1867,7 +1886,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1867
1886
|
"settingsShell.builder.personalConnectedToOverOrg":
|
|
1868
1887
|
"已連結 · {{space}}。只有你使用,取代組織的連結。",
|
|
1869
1888
|
"settingsShell.builder.personalNotConnected":
|
|
1870
|
-
"
|
|
1889
|
+
"使用您自己的 Builder.io 帳戶。只有您可以使用。",
|
|
1871
1890
|
"settingsShell.builder.personalRestricted":
|
|
1872
1891
|
"擁有者和管理員已限制個人 API 金鑰。",
|
|
1873
1892
|
"settingsShell.builder.personalRestrictedUnused":
|
|
@@ -2338,7 +2357,11 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
2338
2357
|
"settingsInfra.builderConnected":
|
|
2339
2358
|
"已連線。標示 Builder.io 的每項服務都使用你的帳戶額度。",
|
|
2340
2359
|
"settingsInfra.builderNotConnected":
|
|
2341
|
-
"
|
|
2360
|
+
"尚未連線。自行設定每項服務,或使用 Builder.io 套用帳戶額度。",
|
|
2361
|
+
"settingsInfra.builderOverrideDescription":
|
|
2362
|
+
"可使用部署備援設定。使用您自己的 Builder.io 帳戶即可覆寫。",
|
|
2363
|
+
"settingsInfra.builderStorageHint":
|
|
2364
|
+
"物件儲存空間會保留上傳檔案,並讓網址在整個對話中重複使用。請使用下方的 Builder.io 或相容 S3 的儲存貯體。",
|
|
2342
2365
|
"settingsInfra.builderUnknown": "無法檢查 Builder.io 連線。",
|
|
2343
2366
|
"settingsInfra.manage": "管理",
|
|
2344
2367
|
"settingsInfra.connect": "連線",
|
|
@@ -2496,13 +2519,13 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
2496
2519
|
"settingsModel.builderConnected": "已連線 · {{space}}",
|
|
2497
2520
|
"settingsModel.builderConnectedPlain": "已連線",
|
|
2498
2521
|
"settingsModel.builderOrgNotConnectedAdmin":
|
|
2499
|
-
"
|
|
2522
|
+
"尚未連線。使用 Builder.io 即可讓 {{org}} 中的所有人使用。",
|
|
2500
2523
|
"settingsModel.builderOrgNotConnectedMember":
|
|
2501
|
-
"
|
|
2524
|
+
"尚未連線。擁有者或管理員可以為所有人啟用 Builder.io。",
|
|
2502
2525
|
"settingsModel.builderPersonalConnect":
|
|
2503
|
-
"
|
|
2526
|
+
"使用您自己的 Builder.io 帳戶來使用帳戶額度。",
|
|
2504
2527
|
"settingsModel.builderPersonalInsteadOfOrg":
|
|
2505
|
-
"
|
|
2528
|
+
"使用您自己的 Builder.io 帳戶,取代組織連線。",
|
|
2506
2529
|
"settingsModel.builderPersonalOverOrg":
|
|
2507
2530
|
"已連線 · {{space}}。取代組織的連線使用。",
|
|
2508
2531
|
"settingsModel.builderPersonalOverOrgPlain": "已連線。取代組織的連線使用。",
|
|
@@ -2545,8 +2568,6 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
2545
2568
|
"settingsModel.checkingSaved": "正在檢查已儲存的金鑰",
|
|
2546
2569
|
"settingsModel.chooseModel": "選擇模型",
|
|
2547
2570
|
"settingsModel.clear": "清除",
|
|
2548
|
-
"settingsModel.connect": "連線",
|
|
2549
|
-
"settingsModel.connecting": "正在連線…",
|
|
2550
2571
|
"settingsModel.defaultModelDescription":
|
|
2551
2572
|
"除非應用程式自行設定,否則所有應用程式都會使用此模型。",
|
|
2552
2573
|
"settingsModel.defaultModelNeedsProvider": "新增供應商後即可選擇預設模型。",
|
|
@@ -204,14 +204,18 @@ describe("BuilderIntegrationPage", () => {
|
|
|
204
204
|
await render(member);
|
|
205
205
|
|
|
206
206
|
expect(row("builder-organization")?.textContent).toContain(
|
|
207
|
-
"Not connected. An owner or admin can
|
|
207
|
+
"Not connected. An owner or admin can enable Builder.io for everyone.",
|
|
208
208
|
);
|
|
209
|
-
expect(
|
|
209
|
+
expect(
|
|
210
|
+
button("Use Builder.io", row("builder-organization")!),
|
|
211
|
+
).toBeUndefined();
|
|
210
212
|
expect(row("builder-personal")?.textContent).toContain(
|
|
211
|
-
"
|
|
213
|
+
"Use your own Builder.io account. Only you use it.",
|
|
212
214
|
);
|
|
213
215
|
|
|
214
|
-
await act(async () =>
|
|
216
|
+
await act(async () =>
|
|
217
|
+
button("Use Builder.io", row("builder-personal")!)?.click(),
|
|
218
|
+
);
|
|
215
219
|
expect(flowMock.current.start).toHaveBeenCalledWith(
|
|
216
220
|
expect.objectContaining({ scope: "personal", provisionAccount: false }),
|
|
217
221
|
);
|
|
@@ -238,7 +242,7 @@ describe("BuilderIntegrationPage", () => {
|
|
|
238
242
|
expect(row("builder-personal")?.textContent).toContain(
|
|
239
243
|
"Owners and admins restricted personal API keys.",
|
|
240
244
|
);
|
|
241
|
-
expect(button("
|
|
245
|
+
expect(button("Use Builder.io", row("builder-personal")!)).toBeUndefined();
|
|
242
246
|
});
|
|
243
247
|
|
|
244
248
|
it("gives an admin the organization connect and no personal row", async () => {
|
|
@@ -246,11 +250,11 @@ describe("BuilderIntegrationPage", () => {
|
|
|
246
250
|
await render(admin);
|
|
247
251
|
|
|
248
252
|
expect(row("builder-organization")?.textContent).toContain(
|
|
249
|
-
"Not connected.
|
|
253
|
+
"Not connected. Use Builder.io to enable access for everyone in Acme.",
|
|
250
254
|
);
|
|
251
255
|
expect(row("builder-personal")).toBeNull();
|
|
252
256
|
await act(async () =>
|
|
253
|
-
button("
|
|
257
|
+
button("Use Builder.io", row("builder-organization")!)?.click(),
|
|
254
258
|
);
|
|
255
259
|
expect(flowMock.current.start).toHaveBeenCalledWith(
|
|
256
260
|
expect.objectContaining({ scope: "org" }),
|
|
@@ -89,7 +89,7 @@ describe("FirstRunOnboarding", () => {
|
|
|
89
89
|
hasFetchedStatus: false,
|
|
90
90
|
statusResolved: true,
|
|
91
91
|
configured: false,
|
|
92
|
-
agentNativeProvisioningEnabled:
|
|
92
|
+
agentNativeProvisioningEnabled: true,
|
|
93
93
|
error: null,
|
|
94
94
|
start: vi.fn(),
|
|
95
95
|
retry: vi.fn(),
|
|
@@ -331,7 +331,7 @@ describe("FirstRunOnboarding", () => {
|
|
|
331
331
|
});
|
|
332
332
|
await act(async () => {
|
|
333
333
|
document.body
|
|
334
|
-
.querySelector('[data-testid="first-run-builder-
|
|
334
|
+
.querySelector('[data-testid="first-run-builder-sign-in"]')
|
|
335
335
|
?.dispatchEvent(new MouseEvent("click", { bubbles: true }));
|
|
336
336
|
await Promise.resolve();
|
|
337
337
|
});
|
|
@@ -394,7 +394,7 @@ describe("FirstRunOnboarding", () => {
|
|
|
394
394
|
});
|
|
395
395
|
await act(async () => {
|
|
396
396
|
document.body
|
|
397
|
-
.querySelector('[data-testid="first-run-builder-
|
|
397
|
+
.querySelector('[data-testid="first-run-builder-sign-in"]')
|
|
398
398
|
?.dispatchEvent(new MouseEvent("click", { bubbles: true }));
|
|
399
399
|
await Promise.resolve();
|
|
400
400
|
});
|
|
@@ -456,7 +456,7 @@ describe("FirstRunOnboarding", () => {
|
|
|
456
456
|
});
|
|
457
457
|
await act(async () => {
|
|
458
458
|
document.body
|
|
459
|
-
.querySelector('[data-testid="first-run-builder-
|
|
459
|
+
.querySelector('[data-testid="first-run-builder-sign-in"]')
|
|
460
460
|
?.dispatchEvent(new MouseEvent("click", { bubbles: true }));
|
|
461
461
|
await Promise.resolve();
|
|
462
462
|
});
|
|
@@ -469,7 +469,16 @@ describe("FirstRunOnboarding", () => {
|
|
|
469
469
|
);
|
|
470
470
|
});
|
|
471
471
|
|
|
472
|
-
it("
|
|
472
|
+
it("hides create-account when one-click provisioning is unavailable", () => {
|
|
473
|
+
mocks.useBuilderConnectFlow.mockReturnValue({
|
|
474
|
+
hasFetchedStatus: true,
|
|
475
|
+
statusResolved: true,
|
|
476
|
+
configured: false,
|
|
477
|
+
agentNativeProvisioningEnabled: false,
|
|
478
|
+
error: null,
|
|
479
|
+
start: vi.fn(),
|
|
480
|
+
retry: vi.fn(),
|
|
481
|
+
});
|
|
473
482
|
act(() => {
|
|
474
483
|
root.render(
|
|
475
484
|
<TooltipProvider>
|
|
@@ -488,14 +497,14 @@ describe("FirstRunOnboarding", () => {
|
|
|
488
497
|
document.body.querySelector(
|
|
489
498
|
'[data-testid="first-run-builder-create-account"]',
|
|
490
499
|
)?.textContent,
|
|
491
|
-
).
|
|
500
|
+
).toBeUndefined();
|
|
492
501
|
expect(
|
|
493
502
|
document.body.querySelector('[data-testid="first-run-builder-sign-in"]')
|
|
494
503
|
?.textContent,
|
|
495
504
|
).toBe("Sign in with Builder.io account");
|
|
496
505
|
});
|
|
497
506
|
|
|
498
|
-
it("
|
|
507
|
+
it("keeps existing-account sign-in available when provisioning is unavailable", () => {
|
|
499
508
|
const start = vi.fn();
|
|
500
509
|
mocks.useBuilderConnectFlow.mockReturnValue({
|
|
501
510
|
hasFetchedStatus: true,
|
|
@@ -524,11 +533,14 @@ describe("FirstRunOnboarding", () => {
|
|
|
524
533
|
|
|
525
534
|
act(() => {
|
|
526
535
|
document.body
|
|
527
|
-
.querySelector("[data-testid='first-run-builder-
|
|
536
|
+
.querySelector("[data-testid='first-run-builder-sign-in']")
|
|
528
537
|
?.dispatchEvent(new MouseEvent("click", { bubbles: true }));
|
|
529
538
|
});
|
|
530
539
|
|
|
531
540
|
expect(start).toHaveBeenCalledOnce();
|
|
541
|
+
expect(start).toHaveBeenCalledWith(
|
|
542
|
+
expect.objectContaining({ provisionAccount: false }),
|
|
543
|
+
);
|
|
532
544
|
});
|
|
533
545
|
|
|
534
546
|
it("lets users cancel a direct Builder connect during first run", () => {
|
|
@@ -536,7 +548,7 @@ describe("FirstRunOnboarding", () => {
|
|
|
536
548
|
hasFetchedStatus: true,
|
|
537
549
|
statusResolved: true,
|
|
538
550
|
configured: false,
|
|
539
|
-
agentNativeProvisioningEnabled:
|
|
551
|
+
agentNativeProvisioningEnabled: true,
|
|
540
552
|
connecting: false,
|
|
541
553
|
error: null,
|
|
542
554
|
start: vi.fn(),
|
|
@@ -990,7 +1002,7 @@ describe("FirstRunOnboarding", () => {
|
|
|
990
1002
|
provisionAccount: false,
|
|
991
1003
|
});
|
|
992
1004
|
expect(document.body.textContent).toContain(
|
|
993
|
-
"
|
|
1005
|
+
"Setting up Builder.io credits",
|
|
994
1006
|
);
|
|
995
1007
|
});
|
|
996
1008
|
|
|
@@ -1106,7 +1118,7 @@ describe("FirstRunOnboarding", () => {
|
|
|
1106
1118
|
});
|
|
1107
1119
|
act(() => {
|
|
1108
1120
|
document.body
|
|
1109
|
-
.querySelector("[data-testid='first-run-builder-
|
|
1121
|
+
.querySelector("[data-testid='first-run-builder-sign-in']")
|
|
1110
1122
|
?.dispatchEvent(new MouseEvent("click", { bubbles: true }));
|
|
1111
1123
|
});
|
|
1112
1124
|
|
|
@@ -1436,7 +1448,7 @@ describe("FirstRunOnboarding", () => {
|
|
|
1436
1448
|
});
|
|
1437
1449
|
act(() => {
|
|
1438
1450
|
document.body
|
|
1439
|
-
.querySelector("[data-testid='first-run-builder-
|
|
1451
|
+
.querySelector("[data-testid='first-run-builder-sign-in']")
|
|
1440
1452
|
?.dispatchEvent(new MouseEvent("click", { bubbles: true }));
|
|
1441
1453
|
});
|
|
1442
1454
|
|