@agent-native/toolkit 0.198.3 → 0.198.5
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/agentkit/react/components.d.ts +8 -3
- package/dist/app/agentkit/react/components.d.ts.map +1 -1
- package/dist/app/agentkit/react/components.js +24 -10
- package/dist/app/agentkit/react/components.js.map +1 -1
- package/dist/app/chat/AgentKitAssistantChat.d.ts.map +1 -1
- package/dist/app/chat/AgentKitAssistantChat.js +65 -33
- package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
- package/dist/app/chat/AgentSidebar.d.ts.map +1 -1
- package/dist/app/chat/AgentSidebar.js +2 -0
- package/dist/app/chat/AgentSidebar.js.map +1 -1
- package/dist/app/chat/FileStorageSetupPopover.js +2 -2
- package/dist/app/chat/FileStorageSetupPopover.js.map +1 -1
- package/dist/app/chat/MultiTabAssistantChat.js +1 -1
- package/dist/app/chat/agentkit-chat/connections.d.ts +1 -4
- package/dist/app/chat/agentkit-chat/connections.d.ts.map +1 -1
- package/dist/app/chat/agentkit-chat/connections.js +1 -26
- package/dist/app/chat/agentkit-chat/connections.js.map +1 -1
- package/dist/app/chat/agentkit-chat/history.d.ts +4 -1
- package/dist/app/chat/agentkit-chat/history.d.ts.map +1 -1
- package/dist/app/chat/agentkit-chat/history.js +17 -5
- package/dist/app/chat/agentkit-chat/history.js.map +1 -1
- package/dist/app/chat/chat/history-types.d.ts +1 -1
- package/dist/app/chat/chat/history-types.d.ts.map +1 -1
- package/dist/app/chat/chat-first/copy.d.ts +1 -2
- package/dist/app/chat/chat-first/copy.d.ts.map +1 -1
- package/dist/app/chat/chat-first/copy.js +1 -121
- package/dist/app/chat/chat-first/copy.js.map +1 -1
- package/dist/app/chat/chat-first-copy.d.ts +3 -0
- package/dist/app/chat/chat-first-copy.d.ts.map +1 -0
- package/dist/app/chat/chat-first-copy.js +122 -0
- package/dist/app/chat/chat-first-copy.js.map +1 -0
- package/dist/app/feature-flags/FeatureFlagsPanel.d.ts.map +1 -1
- package/dist/app/feature-flags/FeatureFlagsPanel.js +1 -0
- package/dist/app/feature-flags/FeatureFlagsPanel.js.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.js +2 -1
- 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 +2 -1
- package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
- package/dist/app/i18n/catalogs/en-US.d.ts +2 -1
- package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/en-US.js +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +2 -1
- package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
- package/dist/app/labs/LabsSettings.d.ts.map +1 -1
- package/dist/app/labs/LabsSettings.js +7 -3
- package/dist/app/labs/LabsSettings.js.map +1 -1
- package/dist/app/org/OrgGeneralSection.d.ts.map +1 -1
- package/dist/app/org/OrgGeneralSection.js +21 -18
- package/dist/app/org/OrgGeneralSection.js.map +1 -1
- package/dist/app/org/OrgSwitcher.d.ts.map +1 -1
- package/dist/app/org/OrgSwitcher.js +3 -2
- package/dist/app/org/OrgSwitcher.js.map +1 -1
- package/dist/app/org/workspace-app-links.d.ts +1 -0
- package/dist/app/org/workspace-app-links.d.ts.map +1 -1
- package/dist/app/org/workspace-app-links.js +3 -0
- package/dist/app/org/workspace-app-links.js.map +1 -1
- package/dist/app/resources/McpAgentKitConnectionRequest.d.ts +7 -2
- package/dist/app/resources/McpAgentKitConnectionRequest.d.ts.map +1 -1
- package/dist/app/resources/McpAgentKitConnectionRequest.js +132 -13
- package/dist/app/resources/McpAgentKitConnectionRequest.js.map +1 -1
- package/dist/composer/PromptComposer.d.ts +3 -0
- package/dist/composer/PromptComposer.d.ts.map +1 -1
- package/dist/composer/PromptComposer.js +2 -2
- package/dist/composer/PromptComposer.js.map +1 -1
- package/dist/composer/TiptapComposer.d.ts +4 -1
- package/dist/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/composer/TiptapComposer.js +8 -4
- package/dist/composer/TiptapComposer.js.map +1 -1
- package/dist/icons/ResourceIconPicker.d.ts +6 -1
- package/dist/icons/ResourceIconPicker.d.ts.map +1 -1
- package/dist/icons/ResourceIconPicker.js +45 -6
- package/dist/icons/ResourceIconPicker.js.map +1 -1
- package/package.json +6 -4
- package/src/app/agentkit/react/components.interaction.spec.tsx +93 -0
- package/src/app/agentkit/react/components.spec.tsx +4 -5
- package/src/app/agentkit/react/components.tsx +51 -8
- package/src/app/agentkit/react/composer-context.spec.tsx +7 -0
- package/src/app/agentkit/react/lifecycle.spec.tsx +42 -0
- package/src/app/chat/AgentKitAssistantChat.spec.tsx +151 -11
- package/src/app/chat/AgentKitAssistantChat.tsx +110 -28
- package/src/app/chat/AgentPanel.header.spec.ts +59 -22
- package/src/app/chat/AgentSidebar.tsx +2 -0
- package/src/app/chat/FileStorageSetupPopover.tsx +2 -2
- package/src/app/chat/MultiTabAssistantChat.messageCount.spec.tsx +3 -1
- package/src/app/chat/MultiTabAssistantChat.spec.tsx +8 -4
- package/src/app/chat/MultiTabAssistantChat.tsx +1 -1
- package/src/app/chat/agentkit-chat/action-widget.spec.tsx +5 -17
- package/src/app/chat/agentkit-chat/connections.spec.tsx +137 -0
- package/src/app/chat/agentkit-chat/connections.ts +2 -37
- package/src/app/chat/agentkit-chat/history.tsx +23 -8
- package/src/app/chat/chat/history-types.ts +1 -1
- package/src/app/chat/chat/tool-call-display.spec.tsx +2 -2
- package/src/app/chat/chat/widgets/record-change-widget.spec.tsx +20 -29
- package/src/app/chat/chat-first/copy.ts +1 -133
- package/src/app/chat/chat-first-copy.ts +133 -0
- package/src/app/chat/composer/use-agentkit-capabilities.hardening.spec.tsx +3 -2
- package/src/app/feature-flags/FeatureFlagsPanel.tsx +1 -0
- package/src/app/i18n/catalogs/ar-SA.ts +2 -1
- package/src/app/i18n/catalogs/de-DE.ts +3 -1
- package/src/app/i18n/catalogs/en-US.ts +2 -1
- package/src/app/i18n/catalogs/es-ES.ts +2 -1
- package/src/app/i18n/catalogs/fr-FR.ts +3 -1
- package/src/app/i18n/catalogs/hi-IN.ts +2 -1
- package/src/app/i18n/catalogs/ja-JP.ts +2 -1
- package/src/app/i18n/catalogs/ko-KR.ts +2 -1
- package/src/app/i18n/catalogs/pt-BR.ts +3 -1
- package/src/app/i18n/catalogs/zh-CN.ts +2 -1
- package/src/app/i18n/catalogs/zh-TW.ts +2 -1
- package/src/app/integrations/IntegrationDetailPage.spec.tsx +1 -1
- package/src/app/labs/LabsSettings.tsx +46 -10
- package/src/app/observability/ThumbsFeedback.spec.tsx +15 -0
- package/src/app/onboarding/FirstRunOnboarding.spec.tsx +4 -0
- package/src/app/org/OrgGeneralSection.tsx +32 -22
- package/src/app/org/OrgSwitcher.tsx +3 -2
- package/src/app/org/workspace-app-links.spec.ts +4 -0
- package/src/app/org/workspace-app-links.ts +8 -1
- package/src/app/resources/McpAgentKitConnectionRequest.spec.tsx +371 -2
- package/src/app/resources/McpAgentKitConnectionRequest.tsx +171 -11
- package/src/app/settings/SettingsTabsPage.spec.tsx +4 -2
- package/src/app/settings/shell/SettingsShell.spec.tsx +14 -8
- package/src/app/settings/shell/pages/app-group-pages.spec.tsx +35 -5
- package/src/app/settings/shell/pages/resource-pages.spec.tsx +3 -0
- package/src/app/settings/usage/UsagePage.spec.tsx +3 -3
- package/src/app/shared/lazy-chunk-error-boundary.spec.tsx +2 -0
- package/src/app-shell/sidebar-overflow.spec.tsx +4 -1
- package/src/composer/PromptComposer.tsx +7 -0
- package/src/composer/TiptapComposer.spec.ts +26 -4
- package/src/composer/TiptapComposer.tsx +12 -3
- package/src/design-tweaks/visual-style-controls.spec.tsx +38 -0
- package/src/editor/useCollabReconcile.concurrent.spec.ts +2 -1
- package/src/icons/ResourceIconPicker.spec.tsx +270 -0
- package/src/icons/ResourceIconPicker.tsx +72 -4
|
@@ -42,24 +42,12 @@ vi.mock("@agent-native/core/client/hooks", () => ({
|
|
|
42
42
|
|
|
43
43
|
import { ACTION_CHAT_UI_RECORD_CHANGE_RENDERER } from "@agent-native/core/action-ui";
|
|
44
44
|
import { normalizeActionChangeResult } from "@agent-native/core/action-ui";
|
|
45
|
-
import {
|
|
46
|
-
AgentNativeI18nProvider as CoreAgentNativeI18nProvider,
|
|
47
|
-
type AgentNativeI18nProviderProps,
|
|
48
|
-
} from "@agent-native/core/client/i18n";
|
|
45
|
+
import { AgentNativeI18nProvider } from "@agent-native/core/client/i18n";
|
|
49
46
|
|
|
50
47
|
import { createToolkitI18nCatalog } from "../../../i18n.js";
|
|
51
48
|
import { RecordChangeWidget } from "./RecordChangeWidget.js";
|
|
52
49
|
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
function AgentNativeI18nProvider(props: AgentNativeI18nProviderProps) {
|
|
56
|
-
return (
|
|
57
|
-
<CoreAgentNativeI18nProvider
|
|
58
|
-
{...props}
|
|
59
|
-
catalog={props.catalog ?? toolkitI18nCatalog}
|
|
60
|
-
/>
|
|
61
|
-
);
|
|
62
|
-
}
|
|
50
|
+
const catalog = createToolkitI18nCatalog({ messages: {} });
|
|
63
51
|
|
|
64
52
|
describe("core.record-change", () => {
|
|
65
53
|
let container: HTMLDivElement;
|
|
@@ -179,7 +167,7 @@ describe("core.record-change", () => {
|
|
|
179
167
|
};
|
|
180
168
|
await act(async () => {
|
|
181
169
|
root.render(
|
|
182
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
170
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
183
171
|
<RecordChangeWidget context={context} />
|
|
184
172
|
</AgentNativeI18nProvider>,
|
|
185
173
|
);
|
|
@@ -211,7 +199,7 @@ describe("core.record-change", () => {
|
|
|
211
199
|
|
|
212
200
|
await act(async () => {
|
|
213
201
|
root.render(
|
|
214
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
202
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
215
203
|
<RecordChangeWidget context={context} />
|
|
216
204
|
</AgentNativeI18nProvider>,
|
|
217
205
|
);
|
|
@@ -248,7 +236,7 @@ describe("core.record-change", () => {
|
|
|
248
236
|
|
|
249
237
|
await act(async () => {
|
|
250
238
|
root.render(
|
|
251
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
239
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
252
240
|
<RecordChangeWidget context={context} />
|
|
253
241
|
</AgentNativeI18nProvider>,
|
|
254
242
|
);
|
|
@@ -272,7 +260,7 @@ describe("core.record-change", () => {
|
|
|
272
260
|
root = createRoot(container);
|
|
273
261
|
await act(async () => {
|
|
274
262
|
root.render(
|
|
275
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
263
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
276
264
|
<RecordChangeWidget context={context} />
|
|
277
265
|
</AgentNativeI18nProvider>,
|
|
278
266
|
);
|
|
@@ -306,10 +294,10 @@ describe("core.record-change", () => {
|
|
|
306
294
|
await act(async () => {
|
|
307
295
|
root.render(
|
|
308
296
|
<>
|
|
309
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
297
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
310
298
|
<RecordChangeWidget context={context} />
|
|
311
299
|
</AgentNativeI18nProvider>
|
|
312
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
300
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
313
301
|
<RecordChangeWidget context={context} />
|
|
314
302
|
</AgentNativeI18nProvider>
|
|
315
303
|
</>,
|
|
@@ -382,7 +370,7 @@ describe("core.record-change", () => {
|
|
|
382
370
|
|
|
383
371
|
await act(async () => {
|
|
384
372
|
root.render(
|
|
385
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
373
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
386
374
|
<RecordChangeWidget context={context} />
|
|
387
375
|
</AgentNativeI18nProvider>,
|
|
388
376
|
);
|
|
@@ -411,7 +399,7 @@ describe("core.record-change", () => {
|
|
|
411
399
|
it("does not render unsafe change URLs as links", async () => {
|
|
412
400
|
await act(async () => {
|
|
413
401
|
root.render(
|
|
414
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
402
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
415
403
|
<RecordChangeWidget
|
|
416
404
|
context={{
|
|
417
405
|
toolName: "test-action",
|
|
@@ -438,7 +426,7 @@ describe("core.record-change", () => {
|
|
|
438
426
|
it("shows saved drafts as awaiting review with a review and edit action", async () => {
|
|
439
427
|
await act(async () => {
|
|
440
428
|
root.render(
|
|
441
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
429
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
442
430
|
<RecordChangeWidget
|
|
443
431
|
context={{
|
|
444
432
|
toolName: "manage-draft",
|
|
@@ -473,7 +461,7 @@ describe("core.record-change", () => {
|
|
|
473
461
|
it("uses the filter icon for Mail rule changes", async () => {
|
|
474
462
|
await act(async () => {
|
|
475
463
|
root.render(
|
|
476
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
464
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
477
465
|
<RecordChangeWidget
|
|
478
466
|
context={{
|
|
479
467
|
toolName: "manage-email-rules",
|
|
@@ -503,7 +491,7 @@ describe("core.record-change", () => {
|
|
|
503
491
|
it("localizes sharing roles and visibility in action cards", async () => {
|
|
504
492
|
await act(async () => {
|
|
505
493
|
root.render(
|
|
506
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
494
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
507
495
|
<RecordChangeWidget
|
|
508
496
|
context={{
|
|
509
497
|
toolName: "share-resource",
|
|
@@ -537,7 +525,7 @@ describe("core.record-change", () => {
|
|
|
537
525
|
]) {
|
|
538
526
|
await act(async () => {
|
|
539
527
|
root.render(
|
|
540
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
528
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
541
529
|
<RecordChangeWidget
|
|
542
530
|
context={{
|
|
543
531
|
toolName: "set-resource-visibility",
|
|
@@ -566,7 +554,7 @@ describe("core.record-change", () => {
|
|
|
566
554
|
it("renders an available Calendar time with a use-time action", async () => {
|
|
567
555
|
await act(async () => {
|
|
568
556
|
root.render(
|
|
569
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
557
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
570
558
|
<RecordChangeWidget
|
|
571
559
|
context={{
|
|
572
560
|
toolName: "find-a-time",
|
|
@@ -602,7 +590,7 @@ describe("core.record-change", () => {
|
|
|
602
590
|
}).format(Date.parse(scheduledAt));
|
|
603
591
|
await act(async () => {
|
|
604
592
|
root.render(
|
|
605
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
593
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
606
594
|
<RecordChangeWidget
|
|
607
595
|
context={{
|
|
608
596
|
toolName: "create-scheduled-send",
|
|
@@ -634,7 +622,7 @@ describe("core.record-change", () => {
|
|
|
634
622
|
it("localizes booking-link fallback titles and durations", async () => {
|
|
635
623
|
await act(async () => {
|
|
636
624
|
root.render(
|
|
637
|
-
<AgentNativeI18nProvider persistPreference={false}>
|
|
625
|
+
<AgentNativeI18nProvider catalog={catalog} persistPreference={false}>
|
|
638
626
|
<RecordChangeWidget
|
|
639
627
|
context={{
|
|
640
628
|
toolName: "create-booking-link",
|
|
@@ -666,6 +654,7 @@ describe("core.record-change", () => {
|
|
|
666
654
|
await act(async () => {
|
|
667
655
|
root.render(
|
|
668
656
|
<AgentNativeI18nProvider
|
|
657
|
+
catalog={catalog}
|
|
669
658
|
initialLocale="es-ES"
|
|
670
659
|
initialPreference="es-ES"
|
|
671
660
|
persistPreference={false}
|
|
@@ -697,6 +686,7 @@ describe("core.record-change", () => {
|
|
|
697
686
|
await act(async () => {
|
|
698
687
|
root.render(
|
|
699
688
|
<AgentNativeI18nProvider
|
|
689
|
+
catalog={catalog}
|
|
700
690
|
initialLocale="fr-FR"
|
|
701
691
|
initialPreference="fr-FR"
|
|
702
692
|
persistPreference={false}
|
|
@@ -730,6 +720,7 @@ describe("core.record-change", () => {
|
|
|
730
720
|
await act(async () => {
|
|
731
721
|
root.render(
|
|
732
722
|
<AgentNativeI18nProvider
|
|
723
|
+
catalog={catalog}
|
|
733
724
|
initialLocale="es-ES"
|
|
734
725
|
initialPreference="es-ES"
|
|
735
726
|
persistPreference={false}
|
|
@@ -1,133 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import type { ChatFirstCopy } from "./types.js";
|
|
4
|
-
|
|
5
|
-
const DEFAULT_COPY: Record<string, string> = {
|
|
6
|
-
newChat: "New chat",
|
|
7
|
-
search: "Search",
|
|
8
|
-
workspaceApps: "Apps",
|
|
9
|
-
allApps: "All apps",
|
|
10
|
-
integrations: "Integrations",
|
|
11
|
-
scheduled: "Scheduled",
|
|
12
|
-
createWorkspaceApp: "Create app",
|
|
13
|
-
openApp: "Open {name}",
|
|
14
|
-
appsLoadError: "Apps could not be loaded",
|
|
15
|
-
noWorkspaceApps: "No apps yet",
|
|
16
|
-
createApp: "Create app",
|
|
17
|
-
retry: "Retry",
|
|
18
|
-
dismiss: "Dismiss",
|
|
19
|
-
unpinApp: "Unpin this app",
|
|
20
|
-
pinApp: "Pin this app",
|
|
21
|
-
reloadApp: "Reload app",
|
|
22
|
-
removePinned: "Remove from pinned apps",
|
|
23
|
-
pinTop: "Pin app to the top",
|
|
24
|
-
moveUp: "Move up",
|
|
25
|
-
moveDown: "Move down",
|
|
26
|
-
removeApp: "Remove app from workspace",
|
|
27
|
-
showMore: "Show more",
|
|
28
|
-
showLess: "Show less",
|
|
29
|
-
appOrderUnavailable: "App order could not be saved on this device.",
|
|
30
|
-
openSideSurfaces: "Open side surfaces",
|
|
31
|
-
sideSurfaces: "Side surfaces",
|
|
32
|
-
resizeSideSurface: "Resize side surface",
|
|
33
|
-
closeTab: "Close {name}",
|
|
34
|
-
close: "Close",
|
|
35
|
-
closeOthers: "Close others",
|
|
36
|
-
closeToRight: "Close to the right",
|
|
37
|
-
closeAll: "Close all",
|
|
38
|
-
deferred: "Deferred",
|
|
39
|
-
openActivity: "Open activity",
|
|
40
|
-
unavailable: "This surface is not available here.",
|
|
41
|
-
browserBack: "Back",
|
|
42
|
-
browserForward: "Forward",
|
|
43
|
-
browserReload: "Reload page",
|
|
44
|
-
browserAddress: "Browser address",
|
|
45
|
-
browserOpenExternal: "Open in external browser",
|
|
46
|
-
browserClose: "Close browser",
|
|
47
|
-
browserPage: "Browser page",
|
|
48
|
-
browserInvalidUrl: "Enter a full http(s) URL to navigate.",
|
|
49
|
-
browserPreviewStarting: "Starting preview…",
|
|
50
|
-
browserPreviewError: "Preview unavailable",
|
|
51
|
-
appUnavailable: "This workspace app is no longer available.",
|
|
52
|
-
appLoadError: "This app could not be loaded",
|
|
53
|
-
appLoading: "Loading app",
|
|
54
|
-
agentActivityEyebrow: "Workspace",
|
|
55
|
-
agentActivityTitle: "Agent activity",
|
|
56
|
-
agentActivityDescription:
|
|
57
|
-
"Follow runs and open a second session beside this chat.",
|
|
58
|
-
refreshAgentActivity: "Refresh agent activity",
|
|
59
|
-
noAgentSessions: "No agent sessions yet",
|
|
60
|
-
startAgentSession: "Start an agent run and it will appear here.",
|
|
61
|
-
watchSession: "Watch",
|
|
62
|
-
copySessionId: "Copy session ID",
|
|
63
|
-
copySessionIdFor: "Copy session ID for {name}",
|
|
64
|
-
sessionIdCopied: "Session ID copied",
|
|
65
|
-
sessionIdShort: "ID",
|
|
66
|
-
copied: "Copied",
|
|
67
|
-
agentActivityStatusQueued: "Queued",
|
|
68
|
-
agentActivityStatusRunning: "Running",
|
|
69
|
-
agentActivityStatusPaused: "Paused",
|
|
70
|
-
agentActivityStatusNeedsApproval: "Needs approval",
|
|
71
|
-
agentActivityStatusCompleted: "Completed",
|
|
72
|
-
agentActivityStatusErrored: "Needs attention",
|
|
73
|
-
agentActivityStatusRecent: "Recent",
|
|
74
|
-
agentActivityStatusUnknown: "Unknown",
|
|
75
|
-
watchingSession: "Watching {name}",
|
|
76
|
-
session: "session",
|
|
77
|
-
stopWatchingSession: "Stop watching session",
|
|
78
|
-
stopWatching: "Stop watching",
|
|
79
|
-
watchedSession: "Watched session",
|
|
80
|
-
agentsTitle: "Subagents",
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
const SURFACE_COPY: Record<
|
|
84
|
-
ChatFirstSurfaceKind,
|
|
85
|
-
{ label: string; reason: string }
|
|
86
|
-
> = {
|
|
87
|
-
app: {
|
|
88
|
-
label: "App",
|
|
89
|
-
reason: "Open a workspace app beside the conversation.",
|
|
90
|
-
},
|
|
91
|
-
browser: {
|
|
92
|
-
label: "Browser",
|
|
93
|
-
reason: "Ask the agent to open a web URL.",
|
|
94
|
-
},
|
|
95
|
-
terminal: {
|
|
96
|
-
label: "Terminal",
|
|
97
|
-
reason:
|
|
98
|
-
"Deferred: an embedded PTY lifecycle is not connected in this release.",
|
|
99
|
-
},
|
|
100
|
-
files: {
|
|
101
|
-
label: "Files",
|
|
102
|
-
reason:
|
|
103
|
-
"Deferred: a bounded workspace tree is not connected in this release.",
|
|
104
|
-
},
|
|
105
|
-
diff: {
|
|
106
|
-
label: "Diff",
|
|
107
|
-
reason: "Deferred: changed-file data is not connected in this release.",
|
|
108
|
-
},
|
|
109
|
-
"side-chat": {
|
|
110
|
-
label: "Side chat",
|
|
111
|
-
reason: "Choose Watch and message from any chat row.",
|
|
112
|
-
},
|
|
113
|
-
agents: {
|
|
114
|
-
label: "Agents",
|
|
115
|
-
reason: "Review recent runs or watch one beside this conversation.",
|
|
116
|
-
},
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
function interpolate(value: string, values?: Record<string, string>): string {
|
|
120
|
-
if (!values) return value;
|
|
121
|
-
return value.replace(/\{(\w+)\}/g, (_, key: string) => values[key] ?? "");
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export const defaultChatFirstCopy: ChatFirstCopy = (key, values) => {
|
|
125
|
-
if (key.startsWith("surface.")) {
|
|
126
|
-
const [, kind, field] = key.split(".");
|
|
127
|
-
const surface = SURFACE_COPY[kind as ChatFirstSurfaceKind];
|
|
128
|
-
if (surface && (field === "label" || field === "reason")) {
|
|
129
|
-
return surface[field];
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
return interpolate(DEFAULT_COPY[key] ?? key, values);
|
|
133
|
-
};
|
|
1
|
+
export { defaultChatFirstCopy } from "../chat-first-copy.js";
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { ChatFirstSurfaceKind } from "@agent-native/core/client/agent-chat";
|
|
2
|
+
|
|
3
|
+
import type { ChatFirstCopy } from "./chat-first/types.js";
|
|
4
|
+
|
|
5
|
+
const DEFAULT_COPY: Record<string, string> = {
|
|
6
|
+
newChat: "New chat",
|
|
7
|
+
search: "Search",
|
|
8
|
+
workspaceApps: "Apps",
|
|
9
|
+
allApps: "All apps",
|
|
10
|
+
integrations: "Integrations",
|
|
11
|
+
scheduled: "Scheduled",
|
|
12
|
+
createWorkspaceApp: "Create app",
|
|
13
|
+
openApp: "Open {name}",
|
|
14
|
+
appsLoadError: "Apps could not be loaded",
|
|
15
|
+
noWorkspaceApps: "No apps yet",
|
|
16
|
+
createApp: "Create app",
|
|
17
|
+
retry: "Retry",
|
|
18
|
+
dismiss: "Dismiss",
|
|
19
|
+
unpinApp: "Unpin this app",
|
|
20
|
+
pinApp: "Pin this app",
|
|
21
|
+
reloadApp: "Reload app",
|
|
22
|
+
removePinned: "Remove from pinned apps",
|
|
23
|
+
pinTop: "Pin app to the top",
|
|
24
|
+
moveUp: "Move up",
|
|
25
|
+
moveDown: "Move down",
|
|
26
|
+
removeApp: "Remove app from workspace",
|
|
27
|
+
showMore: "Show more",
|
|
28
|
+
showLess: "Show less",
|
|
29
|
+
appOrderUnavailable: "App order could not be saved on this device.",
|
|
30
|
+
openSideSurfaces: "Open side surfaces",
|
|
31
|
+
sideSurfaces: "Side surfaces",
|
|
32
|
+
resizeSideSurface: "Resize side surface",
|
|
33
|
+
closeTab: "Close {name}",
|
|
34
|
+
close: "Close",
|
|
35
|
+
closeOthers: "Close others",
|
|
36
|
+
closeToRight: "Close to the right",
|
|
37
|
+
closeAll: "Close all",
|
|
38
|
+
deferred: "Deferred",
|
|
39
|
+
openActivity: "Open activity",
|
|
40
|
+
unavailable: "This surface is not available here.",
|
|
41
|
+
browserBack: "Back",
|
|
42
|
+
browserForward: "Forward",
|
|
43
|
+
browserReload: "Reload page",
|
|
44
|
+
browserAddress: "Browser address",
|
|
45
|
+
browserOpenExternal: "Open in external browser",
|
|
46
|
+
browserClose: "Close browser",
|
|
47
|
+
browserPage: "Browser page",
|
|
48
|
+
browserInvalidUrl: "Enter a full http(s) URL to navigate.",
|
|
49
|
+
browserPreviewStarting: "Starting preview…",
|
|
50
|
+
browserPreviewError: "Preview unavailable",
|
|
51
|
+
appUnavailable: "This workspace app is no longer available.",
|
|
52
|
+
appLoadError: "This app could not be loaded",
|
|
53
|
+
appLoading: "Loading app",
|
|
54
|
+
agentActivityEyebrow: "Workspace",
|
|
55
|
+
agentActivityTitle: "Agent activity",
|
|
56
|
+
agentActivityDescription:
|
|
57
|
+
"Follow runs and open a second session beside this chat.",
|
|
58
|
+
refreshAgentActivity: "Refresh agent activity",
|
|
59
|
+
noAgentSessions: "No agent sessions yet",
|
|
60
|
+
startAgentSession: "Start an agent run and it will appear here.",
|
|
61
|
+
watchSession: "Watch",
|
|
62
|
+
copySessionId: "Copy session ID",
|
|
63
|
+
copySessionIdFor: "Copy session ID for {name}",
|
|
64
|
+
sessionIdCopied: "Session ID copied",
|
|
65
|
+
sessionIdShort: "ID",
|
|
66
|
+
copied: "Copied",
|
|
67
|
+
agentActivityStatusQueued: "Queued",
|
|
68
|
+
agentActivityStatusRunning: "Running",
|
|
69
|
+
agentActivityStatusPaused: "Paused",
|
|
70
|
+
agentActivityStatusNeedsApproval: "Needs approval",
|
|
71
|
+
agentActivityStatusCompleted: "Completed",
|
|
72
|
+
agentActivityStatusErrored: "Needs attention",
|
|
73
|
+
agentActivityStatusRecent: "Recent",
|
|
74
|
+
agentActivityStatusUnknown: "Unknown",
|
|
75
|
+
watchingSession: "Watching {name}",
|
|
76
|
+
session: "session",
|
|
77
|
+
stopWatchingSession: "Stop watching session",
|
|
78
|
+
stopWatching: "Stop watching",
|
|
79
|
+
watchedSession: "Watched session",
|
|
80
|
+
agentsTitle: "Subagents",
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const SURFACE_COPY: Record<
|
|
84
|
+
ChatFirstSurfaceKind,
|
|
85
|
+
{ label: string; reason: string }
|
|
86
|
+
> = {
|
|
87
|
+
app: {
|
|
88
|
+
label: "App",
|
|
89
|
+
reason: "Open a workspace app beside the conversation.",
|
|
90
|
+
},
|
|
91
|
+
browser: {
|
|
92
|
+
label: "Browser",
|
|
93
|
+
reason: "Ask the agent to open a web URL.",
|
|
94
|
+
},
|
|
95
|
+
terminal: {
|
|
96
|
+
label: "Terminal",
|
|
97
|
+
reason:
|
|
98
|
+
"Deferred: an embedded PTY lifecycle is not connected in this release.",
|
|
99
|
+
},
|
|
100
|
+
files: {
|
|
101
|
+
label: "Files",
|
|
102
|
+
reason:
|
|
103
|
+
"Deferred: a bounded workspace tree is not connected in this release.",
|
|
104
|
+
},
|
|
105
|
+
diff: {
|
|
106
|
+
label: "Diff",
|
|
107
|
+
reason: "Deferred: changed-file data is not connected in this release.",
|
|
108
|
+
},
|
|
109
|
+
"side-chat": {
|
|
110
|
+
label: "Side chat",
|
|
111
|
+
reason: "Choose Watch and message from any chat row.",
|
|
112
|
+
},
|
|
113
|
+
agents: {
|
|
114
|
+
label: "Agents",
|
|
115
|
+
reason: "Review recent runs or watch one beside this conversation.",
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
function interpolate(value: string, values?: Record<string, string>): string {
|
|
120
|
+
if (!values) return value;
|
|
121
|
+
return value.replace(/\{(\w+)\}/g, (_, key: string) => values[key] ?? "");
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export const defaultChatFirstCopy: ChatFirstCopy = (key, values) => {
|
|
125
|
+
if (key.startsWith("surface.")) {
|
|
126
|
+
const [, kind, field] = key.split(".");
|
|
127
|
+
const surface = SURFACE_COPY[kind as ChatFirstSurfaceKind];
|
|
128
|
+
if (surface && (field === "label" || field === "reason")) {
|
|
129
|
+
return surface[field];
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return interpolate(DEFAULT_COPY[key] ?? key, values);
|
|
133
|
+
};
|
|
@@ -132,8 +132,9 @@ describe("AgentKit capability lifecycle", () => {
|
|
|
132
132
|
await settle();
|
|
133
133
|
expect(result.data).toBeUndefined();
|
|
134
134
|
next.resolve(empty);
|
|
135
|
-
await
|
|
136
|
-
|
|
135
|
+
await act(async () => {
|
|
136
|
+
await vi.waitFor(() => expect(result.data).toEqual(empty));
|
|
137
|
+
});
|
|
137
138
|
},
|
|
138
139
|
);
|
|
139
140
|
|
|
@@ -789,7 +789,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
789
789
|
"mcpIntegrations.catalog.gong.useCase":
|
|
790
790
|
"مكالمات المبيعات، والنصوص المفرّغة، ورؤى الصفقات، وملخصات الحسابات",
|
|
791
791
|
"mcpIntegrations.catalog.gong.setupNote":
|
|
792
|
-
"
|
|
792
|
+
"يجب أن ينشئ المسؤول التقني في Gong تكامل MCP مع تفويض شخصي أو مشترك. للتسجيل اليدوي، احفظ معرّف العميل والسر الناتجين كسرّي مساحة العمل `GONG_MCP_CLIENT_ID` و`GONG_MCP_CLIENT_SECRET`؛ أما التسجيل التلقائي فلا يحتاج إلى بيانات اعتماد للعميل.",
|
|
793
793
|
"mcpIntegrations.catalog.semgrep.description":
|
|
794
794
|
"فحص التعليمات البرمجية بحثًا عن مشكلات أمنية.",
|
|
795
795
|
"mcpIntegrations.catalog.semgrep.useCase":
|
|
@@ -1007,6 +1007,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1007
1007
|
"message.revertQuestion":
|
|
1008
1008
|
"هل تريد الرجوع إلى هذه النقطة؟ ستفقد التغييرات التي أُجريت بعدها.",
|
|
1009
1009
|
"message.restoreRequestFailed": "فشل طلب الاستعادة.",
|
|
1010
|
+
"message.historyUnavailable": "تعذر تحميل سجل التغييرات.",
|
|
1010
1011
|
"message.threadNotFound":
|
|
1011
1012
|
"لم تعد سلسلة الدردشة هذه متاحة. ابدأ دردشة جديدة أو أعد المحاولة إذا كان ذلك غير متوقع.",
|
|
1012
1013
|
"message.restoring": "جارٍ الاستعادة...",
|
|
@@ -544,7 +544,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
544
544
|
"mcpIntegrations.catalog.gong.useCase":
|
|
545
545
|
"Verkaufsgespräche, Transkripte, Deal-Erkenntnisse, Account-Zusammenfassungen",
|
|
546
546
|
"mcpIntegrations.catalog.gong.setupNote":
|
|
547
|
-
"
|
|
547
|
+
"Ein technischer Gong-Admin muss eine MCP-Integration mit persönlicher oder geteilter Autorisierung erstellen. Bei manueller Registrierung speicherst du die generierte Client-ID und das Secret als Workspace-Secrets `GONG_MCP_CLIENT_ID` und `GONG_MCP_CLIENT_SECRET`; die automatische Registrierung benötigt keine Client-Zugangsdaten.",
|
|
548
548
|
"mcpIntegrations.catalog.semgrep.description":
|
|
549
549
|
"Code auf Sicherheitsbefunde scannen.",
|
|
550
550
|
"mcpIntegrations.catalog.semgrep.useCase":
|
|
@@ -756,6 +756,8 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
756
756
|
"message.revertQuestion":
|
|
757
757
|
"Zu diesem Punkt zurückkehren? Änderungen danach gehen verloren.",
|
|
758
758
|
"message.restoreRequestFailed": "Wiederherstellungsanfrage fehlgeschlagen.",
|
|
759
|
+
"message.historyUnavailable":
|
|
760
|
+
"Der Änderungsverlauf konnte nicht geladen werden.",
|
|
759
761
|
"message.threadNotFound":
|
|
760
762
|
"Dieser Chat-Thread ist nicht mehr verfügbar. Starte einen neuen Chat oder versuche es erneut, falls das unerwartet war.",
|
|
761
763
|
"message.restoring": "Wird wiederhergestellt...",
|
|
@@ -785,7 +785,7 @@ const messages = {
|
|
|
785
785
|
"mcpIntegrations.catalog.gong.useCase":
|
|
786
786
|
"Sales calls, transcripts, deal insights, account summaries",
|
|
787
787
|
"mcpIntegrations.catalog.gong.setupNote":
|
|
788
|
-
"Gong
|
|
788
|
+
"A Gong tech admin must create an MCP integration with personal or shared authorization. For Manual registration, save the generated client ID and secret as workspace secrets `GONG_MCP_CLIENT_ID` and `GONG_MCP_CLIENT_SECRET`; Automatic registration needs no client credentials.",
|
|
789
789
|
"mcpIntegrations.catalog.semgrep.description":
|
|
790
790
|
"Scan code for security findings.",
|
|
791
791
|
"mcpIntegrations.catalog.semgrep.useCase":
|
|
@@ -997,6 +997,7 @@ const messages = {
|
|
|
997
997
|
"message.revertQuestion":
|
|
998
998
|
"Revert to this point? Changes made after this point will be lost.",
|
|
999
999
|
"message.restoreRequestFailed": "Restore request failed.",
|
|
1000
|
+
"message.historyUnavailable": "Could not load change history.",
|
|
1000
1001
|
"message.threadNotFound":
|
|
1001
1002
|
"This chat thread is no longer available. Start a new chat or retry if this was unexpected.",
|
|
1002
1003
|
"message.restoring": "Restoring...",
|
|
@@ -542,7 +542,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
542
542
|
"mcpIntegrations.catalog.gong.useCase":
|
|
543
543
|
"Llamadas de ventas, transcripciones, información sobre oportunidades, resúmenes de cuentas",
|
|
544
544
|
"mcpIntegrations.catalog.gong.setupNote":
|
|
545
|
-
"
|
|
545
|
+
"Un administrador técnico de Gong debe crear una integración MCP con autorización personal o compartida. Para el registro Manual, guarda el ID y el secreto de cliente generados como secretos del espacio de trabajo `GONG_MCP_CLIENT_ID` y `GONG_MCP_CLIENT_SECRET`; el registro Automático no requiere credenciales de cliente.",
|
|
546
546
|
"mcpIntegrations.catalog.semgrep.description":
|
|
547
547
|
"Analiza el código en busca de problemas de seguridad.",
|
|
548
548
|
"mcpIntegrations.catalog.semgrep.useCase":
|
|
@@ -754,6 +754,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
754
754
|
"message.revertQuestion":
|
|
755
755
|
"¿Volver a este punto? Se perderán los cambios posteriores.",
|
|
756
756
|
"message.restoreRequestFailed": "Error en la solicitud de restauración.",
|
|
757
|
+
"message.historyUnavailable": "No se pudo cargar el historial de cambios.",
|
|
757
758
|
"message.threadNotFound":
|
|
758
759
|
"Este hilo de chat ya no está disponible. Inicia un chat nuevo o inténtalo de nuevo si esto no era esperado.",
|
|
759
760
|
"message.restoring": "Restaurando...",
|
|
@@ -549,7 +549,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
549
549
|
"mcpIntegrations.catalog.gong.useCase":
|
|
550
550
|
"Appels commerciaux, transcriptions, insights sur les opportunités, résumés de comptes",
|
|
551
551
|
"mcpIntegrations.catalog.gong.setupNote":
|
|
552
|
-
"
|
|
552
|
+
"Un administrateur technique Gong doit créer une intégration MCP avec une autorisation personnelle ou partagée. Pour l’inscription manuelle, enregistrez l’ID client et le secret générés dans les secrets de l’espace de travail `GONG_MCP_CLIENT_ID` et `GONG_MCP_CLIENT_SECRET` ; l’inscription automatique ne nécessite pas d’identifiants client.",
|
|
553
553
|
"mcpIntegrations.catalog.semgrep.description":
|
|
554
554
|
"Analysez le code pour détecter des problèmes de sécurité.",
|
|
555
555
|
"mcpIntegrations.catalog.semgrep.useCase":
|
|
@@ -760,6 +760,8 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
760
760
|
"message.revertQuestion":
|
|
761
761
|
"Revenir à ce point ? Les modifications ultérieures seront perdues.",
|
|
762
762
|
"message.restoreRequestFailed": "Échec de la demande de restauration.",
|
|
763
|
+
"message.historyUnavailable":
|
|
764
|
+
"Impossible de charger l’historique des modifications.",
|
|
763
765
|
"message.threadNotFound":
|
|
764
766
|
"Ce fil de discussion n’est plus disponible. Démarrez une nouvelle discussion ou réessayez si cela est inattendu.",
|
|
765
767
|
"message.restoring": "Restauration...",
|
|
@@ -775,7 +775,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
775
775
|
"mcpIntegrations.catalog.gong.useCase":
|
|
776
776
|
"सेल्स कॉल, ट्रांसक्रिप्ट, डील इनसाइट, खाते का सारांश",
|
|
777
777
|
"mcpIntegrations.catalog.gong.setupNote":
|
|
778
|
-
"Gong
|
|
778
|
+
"Gong के टेक एडमिन को व्यक्तिगत या साझा ऑथराइज़ेशन वाला MCP इंटीग्रेशन बनाना होगा। मैन्युअल रजिस्ट्रेशन के लिए जनरेट किया गया क्लाइंट ID और सीक्रेट वर्कस्पेस सीक्रेट `GONG_MCP_CLIENT_ID` और `GONG_MCP_CLIENT_SECRET` के रूप में सेव करें; ऑटोमैटिक रजिस्ट्रेशन के लिए क्लाइंट क्रेडेंशियल की ज़रूरत नहीं है।",
|
|
779
779
|
"mcpIntegrations.catalog.semgrep.description":
|
|
780
780
|
"सुरक्षा से जुड़ी समस्याओं के लिए कोड स्कैन करें।",
|
|
781
781
|
"mcpIntegrations.catalog.semgrep.useCase":
|
|
@@ -980,6 +980,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
980
980
|
"message.restoreQuestion": "यहाँ तक पुनर्स्थापित करें?",
|
|
981
981
|
"message.revertQuestion": "इस बिंदु पर वापस जाएँ? इसके बाद किए गए बदलाव खो जाएँगे।",
|
|
982
982
|
"message.restoreRequestFailed": "पुनर्स्थापना अनुरोध विफल रहा।",
|
|
983
|
+
"message.historyUnavailable": "बदलावों का इतिहास लोड नहीं हो सका।",
|
|
983
984
|
"message.threadNotFound":
|
|
984
985
|
"यह चैट थ्रेड अब उपलब्ध नहीं है। नई चैट शुरू करें या यदि यह अप्रत्याशित है तो फिर कोशिश करें।",
|
|
985
986
|
"message.restoring": "पुनर्स्थापित किया जा रहा है...",
|
|
@@ -804,7 +804,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
804
804
|
"mcpIntegrations.catalog.gong.useCase":
|
|
805
805
|
"営業通話、文字起こし、商談のインサイト、アカウントの概要",
|
|
806
806
|
"mcpIntegrations.catalog.gong.setupNote":
|
|
807
|
-
"Gong
|
|
807
|
+
"Gong の技術管理者が、個人または共有の認証を選んで MCP 連携を作成する必要があります。手動登録では、生成されたクライアント ID とシークレットをワークスペースのシークレット `GONG_MCP_CLIENT_ID` と `GONG_MCP_CLIENT_SECRET` として保存してください。自動登録ではクライアント認証情報は不要です。",
|
|
808
808
|
"mcpIntegrations.catalog.semgrep.description":
|
|
809
809
|
"コードをスキャンしてセキュリティ上の問題を検出します。",
|
|
810
810
|
"mcpIntegrations.catalog.semgrep.useCase":
|
|
@@ -1013,6 +1013,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
1013
1013
|
"message.restoreQuestion": "ここまで復元しますか?",
|
|
1014
1014
|
"message.revertQuestion": "この時点に戻しますか?この後の変更は失われます。",
|
|
1015
1015
|
"message.restoreRequestFailed": "復元リクエストに失敗しました。",
|
|
1016
|
+
"message.historyUnavailable": "変更履歴を読み込めませんでした。",
|
|
1016
1017
|
"message.threadNotFound":
|
|
1017
1018
|
"このチャットスレッドは利用できなくなりました。新しいチャットを開始するか、想定外の場合は再試行してください。",
|
|
1018
1019
|
"message.restoring": "復元中...",
|
|
@@ -781,7 +781,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
781
781
|
"mcpIntegrations.catalog.gong.useCase":
|
|
782
782
|
"영업 통화, 스크립트, 거래 인사이트, 계정 요약",
|
|
783
783
|
"mcpIntegrations.catalog.gong.setupNote":
|
|
784
|
-
"Gong
|
|
784
|
+
"Gong 기술 관리자가 개인 또는 공유 승인을 선택해 MCP 연동을 만들어야 합니다. 수동 등록에서는 생성된 클라이언트 ID와 시크릿을 워크스페이스 시크릿 `GONG_MCP_CLIENT_ID` 및 `GONG_MCP_CLIENT_SECRET`으로 저장하세요. 자동 등록에는 클라이언트 인증 정보가 필요하지 않습니다.",
|
|
785
785
|
"mcpIntegrations.catalog.semgrep.description":
|
|
786
786
|
"코드에서 보안 문제를 스캔합니다.",
|
|
787
787
|
"mcpIntegrations.catalog.semgrep.useCase":
|
|
@@ -991,6 +991,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
991
991
|
"message.revertQuestion":
|
|
992
992
|
"이 지점으로 되돌릴까요? 이후 변경 사항은 사라집니다.",
|
|
993
993
|
"message.restoreRequestFailed": "복원 요청에 실패했습니다.",
|
|
994
|
+
"message.historyUnavailable": "변경 기록을 불러올 수 없습니다.",
|
|
994
995
|
"message.threadNotFound":
|
|
995
996
|
"이 채팅 스레드는 더 이상 사용할 수 없습니다. 새 채팅을 시작하거나 예상치 못한 문제라면 다시 시도하세요.",
|
|
996
997
|
"message.restoring": "복원 중...",
|
|
@@ -537,7 +537,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
537
537
|
"mcpIntegrations.catalog.gong.useCase":
|
|
538
538
|
"Chamadas de vendas, transcrições, insights de negócios, resumos de contas",
|
|
539
539
|
"mcpIntegrations.catalog.gong.setupNote":
|
|
540
|
-
"
|
|
540
|
+
"Um administrador técnico do Gong precisa criar uma integração MCP com autorização pessoal ou compartilhada. No registro Manual, salve o ID e o segredo do cliente gerados como segredos do espaço de trabalho `GONG_MCP_CLIENT_ID` e `GONG_MCP_CLIENT_SECRET`; o registro Automático não precisa de credenciais de cliente.",
|
|
541
541
|
"mcpIntegrations.catalog.semgrep.description":
|
|
542
542
|
"Analise o código em busca de problemas de segurança.",
|
|
543
543
|
"mcpIntegrations.catalog.semgrep.useCase":
|
|
@@ -747,6 +747,8 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
747
747
|
"message.revertQuestion":
|
|
748
748
|
"Reverter para este ponto? As alterações feitas depois serão perdidas.",
|
|
749
749
|
"message.restoreRequestFailed": "Falha na solicitação de restauração.",
|
|
750
|
+
"message.historyUnavailable":
|
|
751
|
+
"Não foi possível carregar o histórico de alterações.",
|
|
750
752
|
"message.threadNotFound":
|
|
751
753
|
"Esta conversa não está mais disponível. Inicie uma nova conversa ou tente novamente se isso for inesperado.",
|
|
752
754
|
"message.restoring": "Restaurando...",
|
|
@@ -744,7 +744,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
744
744
|
"mcpIntegrations.catalog.gong.useCase":
|
|
745
745
|
"销售通话、转录文本、交易洞察、客户摘要",
|
|
746
746
|
"mcpIntegrations.catalog.gong.setupNote":
|
|
747
|
-
"Gong
|
|
747
|
+
"Gong 技术管理员需要创建 MCP 集成并选择个人或共享授权。使用手动注册时,请将生成的客户端 ID 和密钥保存为工作区密钥 `GONG_MCP_CLIENT_ID` 和 `GONG_MCP_CLIENT_SECRET`;自动注册无需客户端凭据。",
|
|
748
748
|
"mcpIntegrations.catalog.semgrep.description": "扫描代码中的安全问题。",
|
|
749
749
|
"mcpIntegrations.catalog.semgrep.useCase": "安全扫描、漏洞检测、代码分析",
|
|
750
750
|
"mcpIntegrations.catalog.linear.description": "读取和写入 Linear 议题。",
|
|
@@ -934,6 +934,7 @@ const messages: ToolkitAgentChatTranslation = {
|
|
|
934
934
|
"message.restoreQuestion": "恢复到此处?",
|
|
935
935
|
"message.revertQuestion": "还原到此处?此后所做的更改将会丢失。",
|
|
936
936
|
"message.restoreRequestFailed": "恢复请求失败。",
|
|
937
|
+
"message.historyUnavailable": "无法加载更改历史。",
|
|
937
938
|
"message.threadNotFound":
|
|
938
939
|
"此聊天线程已不可用。请开始新聊天;如果这是意外情况,也可以重试。",
|
|
939
940
|
"message.restoring": "正在恢复...",
|