@agent-native/toolkit 0.198.2 → 0.198.3-nightly-20260930124743

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.
Files changed (110) hide show
  1. package/dist/app/agentkit/react/components.d.ts.map +1 -1
  2. package/dist/app/agentkit/react/components.js +4 -1
  3. package/dist/app/agentkit/react/components.js.map +1 -1
  4. package/dist/app/chat/AgentKitAssistantChat.d.ts.map +1 -1
  5. package/dist/app/chat/AgentKitAssistantChat.js +20 -6
  6. package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
  7. package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
  8. package/dist/app/i18n/catalogs/ar-SA.js +211 -0
  9. package/dist/app/i18n/catalogs/ar-SA.js.map +1 -1
  10. package/dist/app/i18n/catalogs/de-DE.d.ts.map +1 -1
  11. package/dist/app/i18n/catalogs/de-DE.js +147 -0
  12. package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
  13. package/dist/app/i18n/catalogs/en-US.d.ts +147 -0
  14. package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
  15. package/dist/app/i18n/catalogs/en-US.js +147 -0
  16. package/dist/app/i18n/catalogs/en-US.js.map +1 -1
  17. package/dist/app/i18n/catalogs/es-ES.d.ts.map +1 -1
  18. package/dist/app/i18n/catalogs/es-ES.js +163 -0
  19. package/dist/app/i18n/catalogs/es-ES.js.map +1 -1
  20. package/dist/app/i18n/catalogs/fr-FR.d.ts.map +1 -1
  21. package/dist/app/i18n/catalogs/fr-FR.js +163 -0
  22. package/dist/app/i18n/catalogs/fr-FR.js.map +1 -1
  23. package/dist/app/i18n/catalogs/hi-IN.d.ts.map +1 -1
  24. package/dist/app/i18n/catalogs/hi-IN.js +147 -0
  25. package/dist/app/i18n/catalogs/hi-IN.js.map +1 -1
  26. package/dist/app/i18n/catalogs/ja-JP.d.ts.map +1 -1
  27. package/dist/app/i18n/catalogs/ja-JP.js +131 -0
  28. package/dist/app/i18n/catalogs/ja-JP.js.map +1 -1
  29. package/dist/app/i18n/catalogs/ko-KR.d.ts.map +1 -1
  30. package/dist/app/i18n/catalogs/ko-KR.js +131 -0
  31. package/dist/app/i18n/catalogs/ko-KR.js.map +1 -1
  32. package/dist/app/i18n/catalogs/pt-BR.d.ts.map +1 -1
  33. package/dist/app/i18n/catalogs/pt-BR.js +163 -0
  34. package/dist/app/i18n/catalogs/pt-BR.js.map +1 -1
  35. package/dist/app/i18n/catalogs/zh-CN.d.ts.map +1 -1
  36. package/dist/app/i18n/catalogs/zh-CN.js +131 -0
  37. package/dist/app/i18n/catalogs/zh-CN.js.map +1 -1
  38. package/dist/app/i18n/catalogs/zh-TW.d.ts.map +1 -1
  39. package/dist/app/i18n/catalogs/zh-TW.js +131 -0
  40. package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
  41. package/dist/app/observability/ObservabilityDashboard.d.ts.map +1 -1
  42. package/dist/app/observability/ObservabilityDashboard.js +101 -109
  43. package/dist/app/observability/ObservabilityDashboard.js.map +1 -1
  44. package/dist/app/observability/RunInsights.d.ts +22 -0
  45. package/dist/app/observability/RunInsights.d.ts.map +1 -0
  46. package/dist/app/observability/RunInsights.js +658 -0
  47. package/dist/app/observability/RunInsights.js.map +1 -0
  48. package/package.json +5 -5
  49. package/src/app/agent-page/ConnectionsTab.spec.tsx +0 -3
  50. package/src/app/agentkit/react/components.tsx +4 -1
  51. package/src/app/agentkit/react/composer-context.spec.tsx +4 -1
  52. package/src/app/chat/AgentKitAssistantChat.spec.tsx +57 -0
  53. package/src/app/chat/AgentKitAssistantChat.tsx +44 -8
  54. package/src/app/chat/AgentPanel.header.spec.ts +22 -22
  55. package/src/app/chat/agentkit-chat/action-widget.spec.tsx +17 -2
  56. package/src/app/chat/agentkit-chat/approval-card.spec.tsx +2 -2
  57. package/src/app/chat/agentkit-chat/connections.spec.tsx +1 -1
  58. package/src/app/chat/chat/markdown-renderer.spec.tsx +1 -1
  59. package/src/app/chat/chat/tool-call-display.spec.tsx +25 -2
  60. package/src/app/chat/chat/widgets/DataTableWidget.spec.tsx +38 -26
  61. package/src/app/chat/chat/widgets/agent-team-progress-widget.spec.tsx +7 -1
  62. package/src/app/chat/chat/widgets/builtin-connect-required-renderer.spec.tsx +24 -1
  63. package/src/app/chat/chat/widgets/record-change-widget.spec.tsx +16 -1
  64. package/src/app/chat/thinking-display.spec.tsx +1 -1
  65. package/src/app/db-admin/useAgentSync.spec.tsx +1 -1
  66. package/src/app/extensions/ExtensionViewer.spec.tsx +2 -1
  67. package/src/app/i18n/catalogs/ar-SA.ts +282 -0
  68. package/src/app/i18n/catalogs/de-DE.ts +198 -0
  69. package/src/app/i18n/catalogs/en-US.ts +187 -0
  70. package/src/app/i18n/catalogs/es-ES.ts +221 -0
  71. package/src/app/i18n/catalogs/fr-FR.ts +219 -0
  72. package/src/app/i18n/catalogs/hi-IN.ts +182 -0
  73. package/src/app/i18n/catalogs/ja-JP.ts +160 -0
  74. package/src/app/i18n/catalogs/ko-KR.ts +160 -0
  75. package/src/app/i18n/catalogs/pt-BR.ts +220 -0
  76. package/src/app/i18n/catalogs/zh-CN.ts +154 -0
  77. package/src/app/i18n/catalogs/zh-TW.ts +154 -0
  78. package/src/app/integrations/BuilderIntegrationPage.spec.tsx +3 -3
  79. package/src/app/integrations/ChannelsPage.spec.tsx +3 -3
  80. package/src/app/integrations/IntegrationsPage.spec.tsx +3 -3
  81. package/src/app/integrations/IntegrationsPanel.spec.tsx +7 -4
  82. package/src/app/observability/ObservabilityDashboard.review.spec.tsx +211 -52
  83. package/src/app/observability/ObservabilityDashboard.spec.tsx +80 -20
  84. package/src/app/observability/ObservabilityDashboard.tsx +240 -400
  85. package/src/app/observability/RunInsights.tsx +1603 -0
  86. package/src/app/observability/ThumbsFeedback.spec.tsx +29 -12
  87. package/src/app/onboarding/FirstRunOnboarding.spec.tsx +25 -5
  88. package/src/app/onboarding/first-run-startup-gate.spec.tsx +12 -7
  89. package/src/app/resources/McpConnectionSuggestion.render.spec.tsx +43 -5
  90. package/src/app/resources/McpIntegrationDialog.spec.tsx +20 -14
  91. package/src/app/resources/ResourcesPanel.spec.ts +9 -7
  92. package/src/app/review/ReviewThreadPanel.spec.tsx +2 -2
  93. package/src/app/settings/SecretsSection.spec.tsx +12 -3
  94. package/src/app/settings/SettingsTabsPage.spec.tsx +4 -1
  95. package/src/app/settings/VoiceTranscriptionSection.spec.tsx +12 -1
  96. package/src/app/settings/account/PreferencesSettings.spec.tsx +13 -1
  97. package/src/app/settings/account/ProfileSettings.spec.tsx +13 -1
  98. package/src/app/settings/account/SecuritySettings.spec.tsx +12 -1
  99. package/src/app/settings/shell/SettingsShell.spec.tsx +35 -15
  100. package/src/app/settings/shell/pages/app-group-pages.spec.tsx +7 -0
  101. package/src/app/settings/shell/pages/audit.spec.tsx +5 -2
  102. package/src/app/settings/shell/pages/resource-pages.spec.tsx +25 -16
  103. package/src/app/settings/shell/pages/sub-agents.spec.tsx +24 -15
  104. package/src/app/settings/usage/UsagePage.spec.tsx +4 -0
  105. package/src/app/setup-connections/BuilderConnectCard.spec.tsx +27 -8
  106. package/src/app/sharing/ShareButton.spec.tsx +7 -3
  107. package/src/app/sharing/ShareDialog.spec.tsx +4 -4
  108. package/src/app/sharing/useShareButtonController.spec.tsx +1 -1
  109. package/src/app/sharing/useShareDialogController.spec.tsx +2 -2
  110. package/src/app/transcription/BuilderTranscriptionCta.spec.tsx +1 -1
@@ -1,12 +1,16 @@
1
1
  // @vitest-environment happy-dom
2
2
 
3
3
  import type { ContentPart } from "@agent-native/core/client/agent-chat";
4
- import { AgentNativeI18nProvider } from "@agent-native/core/client/i18n";
4
+ import {
5
+ AgentNativeI18nProvider as CoreAgentNativeI18nProvider,
6
+ type AgentNativeI18nProviderProps,
7
+ } from "@agent-native/core/client/i18n";
5
8
  import type { AgentMcpAppPayload } from "@agent-native/core/mcp-client";
6
- import { act, useState } from "react";
9
+ import { act, useState, type ReactNode } from "react";
7
10
  import { createRoot, type Root } from "react-dom/client";
8
11
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
9
12
 
13
+ import { createToolkitI18nCatalog } from "../../i18n.js";
10
14
  import { ThinkingDisplayProvider } from "../thinking-display.js";
11
15
  import {
12
16
  ApprovalContext,
@@ -35,6 +39,17 @@ import {
35
39
  resolveBuiltinFallbackToolRenderer,
36
40
  } from "./widgets/builtin-tool-renderers.js";
37
41
 
42
+ const toolkitI18nCatalog = createToolkitI18nCatalog({ messages: {} });
43
+
44
+ function AgentNativeI18nProvider(props: AgentNativeI18nProviderProps) {
45
+ return (
46
+ <CoreAgentNativeI18nProvider
47
+ {...props}
48
+ catalog={props.catalog ?? toolkitI18nCatalog}
49
+ />
50
+ );
51
+ }
52
+
38
53
  const builderHandoffMocks = vi.hoisted(() => ({
39
54
  useAgentChatContext: vi.fn(),
40
55
  }));
@@ -146,6 +161,13 @@ describe("ToolCallDisplay native renderers", () => {
146
161
  container = document.createElement("div");
147
162
  document.body.appendChild(container);
148
163
  root = createRoot(container);
164
+ const render = root.render.bind(root);
165
+ root.render = (children: ReactNode) =>
166
+ render(
167
+ <AgentNativeI18nProvider persistPreference={false}>
168
+ {children}
169
+ </AgentNativeI18nProvider>,
170
+ );
149
171
  });
150
172
 
151
173
  afterEach(() => {
@@ -972,6 +994,7 @@ describe("ToolCallDisplay native renderers", () => {
972
994
  sourceLocale: "en-US",
973
995
  messages: {
974
996
  agentChat: {
997
+ duration: { secondShort: "s" },
975
998
  tool: {
976
999
  askingAgent: "Localized asking {{agent}}",
977
1000
  elapsed: "Localized elapsed {{duration}}",
@@ -1,17 +1,19 @@
1
1
  // @vitest-environment happy-dom
2
2
 
3
- import { downloadFile } from "@agent-native/core/client/resources";
3
+ import { AgentNativeI18nProvider } from "@agent-native/core/client/i18n";
4
4
  import React, { act } from "react";
5
5
  import { createRoot, type Root } from "react-dom/client";
6
6
  import { afterEach, describe, expect, it, vi } from "vitest";
7
7
 
8
+ import { downloadFile } from "../../../db-admin/export-utils.js";
9
+ import { createToolkitI18nCatalog } from "../../../i18n.js";
8
10
  import { DataTableWidget } from "./DataTableWidget.js";
9
11
 
10
- vi.mock("@agent-native/core/client/resources", async (importOriginal) => {
12
+ const toolkitI18nCatalog = createToolkitI18nCatalog({ messages: {} });
13
+
14
+ vi.mock("../../../db-admin/export-utils.js", async (importOriginal) => {
11
15
  const actual =
12
- await importOriginal<
13
- typeof import("@agent-native/core/client/resources")
14
- >();
16
+ await importOriginal<typeof import("../../../db-admin/export-utils.js")>();
15
17
  return {
16
18
  ...actual,
17
19
  downloadFile: vi.fn(),
@@ -28,14 +30,19 @@ async function renderWidget(action: { label: string; href: string }) {
28
30
  roots.push(root);
29
31
  await act(async () => {
30
32
  root.render(
31
- <DataTableWidget
32
- action={action}
33
- table={{
34
- title: "Responses",
35
- columns: [{ key: "name", label: "Name" }],
36
- rows: [{ id: "1", name: "Ada" }],
37
- }}
38
- />,
33
+ <AgentNativeI18nProvider
34
+ catalog={toolkitI18nCatalog}
35
+ persistPreference={false}
36
+ >
37
+ <DataTableWidget
38
+ action={action}
39
+ table={{
40
+ title: "Responses",
41
+ columns: [{ key: "name", label: "Name" }],
42
+ rows: [{ id: "1", name: "Ada" }],
43
+ }}
44
+ />
45
+ </AgentNativeI18nProvider>,
39
46
  );
40
47
  });
41
48
  return container;
@@ -99,19 +106,24 @@ describe("DataTableWidget", () => {
99
106
  roots.push(root);
100
107
  await act(async () => {
101
108
  root.render(
102
- <DataTableWidget
103
- table={{
104
- title: "Responses",
105
- columns: [
106
- { key: "name", label: "Name" },
107
- { key: "score", label: "Score", align: "right" },
108
- ],
109
- rows: [
110
- { id: "1", name: "Ada", score: 42 },
111
- { id: "2", name: "Grace, Hopper", score: 7 },
112
- ],
113
- }}
114
- />,
109
+ <AgentNativeI18nProvider
110
+ catalog={toolkitI18nCatalog}
111
+ persistPreference={false}
112
+ >
113
+ <DataTableWidget
114
+ table={{
115
+ title: "Responses",
116
+ columns: [
117
+ { key: "name", label: "Name" },
118
+ { key: "score", label: "Score", align: "right" },
119
+ ],
120
+ rows: [
121
+ { id: "1", name: "Ada", score: 42 },
122
+ { id: "2", name: "Grace, Hopper", score: 7 },
123
+ ],
124
+ }}
125
+ />
126
+ </AgentNativeI18nProvider>,
115
127
  );
116
128
  });
117
129
 
@@ -6,8 +6,11 @@ import { act } from "react";
6
6
  import { createRoot, type Root } from "react-dom/client";
7
7
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
8
8
 
9
+ import { createToolkitI18nCatalog } from "../../../i18n.js";
9
10
  import { AgentTeamProgressWidget } from "./AgentTeamProgressWidget.js";
10
11
 
12
+ const toolkitI18nCatalog = createToolkitI18nCatalog({ messages: {} });
13
+
11
14
  const tasks = [
12
15
  {
13
16
  taskId: "task-1",
@@ -66,7 +69,10 @@ describe("core.agent-team-progress", () => {
66
69
  it("renders queued, working, and completed work as compact cards", async () => {
67
70
  await act(async () => {
68
71
  root.render(
69
- <AgentNativeI18nProvider persistPreference={false}>
72
+ <AgentNativeI18nProvider
73
+ catalog={toolkitI18nCatalog}
74
+ persistPreference={false}
75
+ >
70
76
  <AgentTeamProgressWidget
71
77
  context={{
72
78
  toolName: "agent-teams",
@@ -1,21 +1,37 @@
1
1
  // @vitest-environment happy-dom
2
2
 
3
3
  import { ACTION_CHAT_UI_DATA_TABLE_RENDERER } from "@agent-native/core/action-ui";
4
+ import {
5
+ AgentNativeI18nProvider as CoreAgentNativeI18nProvider,
6
+ type AgentNativeI18nProviderProps,
7
+ } from "@agent-native/core/client/i18n";
4
8
  import {
5
9
  BUILDER_CONNECT_PROVIDER,
6
10
  BUILDER_CONNECT_PROVIDER_LABEL,
7
11
  connectRequiredResult,
8
12
  } from "@agent-native/core/shared";
9
- import { act } from "react";
13
+ import { act, type ReactNode } from "react";
10
14
  import { createRoot, type Root } from "react-dom/client";
11
15
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
12
16
 
17
+ import { createToolkitI18nCatalog } from "../../../i18n.js";
13
18
  import { resolveToolRenderer } from "../tool-render-registry.js";
14
19
  import {
15
20
  resolveBuiltinActionChatRenderer,
16
21
  resolveBuiltinFallbackToolRenderer,
17
22
  } from "./builtin-tool-renderers.js";
18
23
 
24
+ const toolkitI18nCatalog = createToolkitI18nCatalog({ messages: {} });
25
+
26
+ function AgentNativeI18nProvider(props: AgentNativeI18nProviderProps) {
27
+ return (
28
+ <CoreAgentNativeI18nProvider
29
+ {...props}
30
+ catalog={props.catalog ?? toolkitI18nCatalog}
31
+ />
32
+ );
33
+ }
34
+
19
35
  describe("built-in connect-required renderer", () => {
20
36
  let container: HTMLDivElement;
21
37
  let root: Root;
@@ -29,6 +45,13 @@ describe("built-in connect-required renderer", () => {
29
45
  container = document.createElement("div");
30
46
  document.body.appendChild(container);
31
47
  root = createRoot(container);
48
+ const render = root.render.bind(root);
49
+ root.render = (children: ReactNode) =>
50
+ render(
51
+ <AgentNativeI18nProvider persistPreference={false}>
52
+ {children}
53
+ </AgentNativeI18nProvider>,
54
+ );
32
55
  });
33
56
 
34
57
  afterEach(() => {
@@ -42,10 +42,25 @@ 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 { AgentNativeI18nProvider } from "@agent-native/core/client/i18n";
45
+ import {
46
+ AgentNativeI18nProvider as CoreAgentNativeI18nProvider,
47
+ type AgentNativeI18nProviderProps,
48
+ } from "@agent-native/core/client/i18n";
46
49
 
50
+ import { createToolkitI18nCatalog } from "../../../i18n.js";
47
51
  import { RecordChangeWidget } from "./RecordChangeWidget.js";
48
52
 
53
+ const toolkitI18nCatalog = createToolkitI18nCatalog({ messages: {} });
54
+
55
+ function AgentNativeI18nProvider(props: AgentNativeI18nProviderProps) {
56
+ return (
57
+ <CoreAgentNativeI18nProvider
58
+ {...props}
59
+ catalog={props.catalog ?? toolkitI18nCatalog}
60
+ />
61
+ );
62
+ }
63
+
49
64
  describe("core.record-change", () => {
50
65
  let container: HTMLDivElement;
51
66
  let root: Root;
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  DEFAULT_THINKING_DISPLAY,
5
5
  parseThinkingDisplay,
6
- } from "@agent-native/core/shared";
6
+ } from "@agent-native/core/shared/thinking-display";
7
7
  import { act } from "react";
8
8
  import { createRoot, type Root } from "react-dom/client";
9
9
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
@@ -16,7 +16,7 @@ const appStateMocks = vi.hoisted(() => ({
16
16
  }));
17
17
 
18
18
  vi.mock("@agent-native/core/client/agent-chat", () => chatMocks);
19
- vi.mock("../application-state.js", () => appStateMocks);
19
+ vi.mock("@agent-native/core/client/application-state", () => appStateMocks);
20
20
 
21
21
  import { useDbAdminAgentSync } from "./useAgentSync.js";
22
22
 
@@ -19,7 +19,8 @@ vi.mock("@agent-native/core/client/agent-chat", async (importOriginal) => ({
19
19
  sendToAgentChat: chatMocks.sendToAgentChat,
20
20
  }));
21
21
 
22
- vi.mock("@agent-native/core/client/host", () => ({
22
+ vi.mock("@agent-native/core/client/host", async (importOriginal) => ({
23
+ ...(await importOriginal<typeof import("@agent-native/core/client/host")>()),
23
24
  ensureEmbedAuthFetchInterceptor: vi.fn(),
24
25
  isEmbedMcpChatBridgeActive: () => embedState.active,
25
26
  }));
@@ -1377,6 +1377,286 @@ const messages: ToolkitAgentChatTranslation = {
1377
1377
  "استخدام المزوّد أو المكالمات الأقدم خارج فوترة Builder",
1378
1378
  "usage.providerSpendToday": "استخدام آخر أو غير مصنّف اليوم: {{amount}}",
1379
1379
  "usage.driverCreditsAndUsd": "أرصدة Builder / دولار أمريكي",
1380
+ "observability.insights.verdictSmooth": "يعمل بسلاسة",
1381
+ "observability.insights.handledLabel": "تمت معالجته بواسطة Agent-Native:",
1382
+ "observability.insights.handledHeading": "تمت معالجته بواسطة Agent-Native",
1383
+ "observability.insights.handledParallel":
1384
+ "شغّل {{count}} استدعاء أداة في الوقت نفسه، أسرع بحوالي {{duration}} من تنفيذها واحدًا تلو الآخر.",
1385
+ "observability.insights.avgPerPrompt": "المتوسط لكل برومبت",
1386
+ "observability.insights.completed": "مكتمل",
1387
+ "observability.insights.completedDetail": "{{done}} من آخر {{total}}",
1388
+ "observability.insights.typicalTime": "الوقت المعتاد",
1389
+ "observability.insights.median": "الوسيط",
1390
+ "observability.insights.sampleNote":
1391
+ "تعتمد نسبة الإكمال والوقت المعتاد وما تولّاه Agent-Native والملاحظات على أحدث {{shown}} من أصل {{total}} من المطالبات.",
1392
+ "observability.insights.changeSame": "نفس الفترة السابقة",
1393
+ "observability.insights.changeUp": "↑ {{percent}}% مقارنة بالفترة السابقة",
1394
+ "observability.insights.changeDown": "↓ {{percent}}% مقارنة بالفترة السابقة",
1395
+ "observability.insights.kindProblem": "مشكلة",
1396
+ "observability.insights.kindSaving": "توفير محتمل",
1397
+ "observability.insights.kindInfo": "معلومة مفيدة",
1398
+ "observability.insights.fixLabel": "الحل:",
1399
+ "observability.insights.openPrompt": "فتح البرومبت",
1400
+ "observability.insights.erroredBody": "توقف الوكيل قبل إنهاء المهمة.",
1401
+ "observability.insights.erroredFix":
1402
+ "افتح البرومبت لمعرفة آخر ما فعله الوكيل قبل أن يتوقف.",
1403
+ "observability.insights.toolFailedSaid": "قال: «{{error}}»",
1404
+ "observability.insights.toolFailedGeneric": "أبلغت الأداة عن خطأ.",
1405
+ "observability.insights.toolRecoveredAll":
1406
+ "تعافى الوكيل وأنهى المهمة في كل مرة.",
1407
+ "observability.insights.toolRecoveredSome":
1408
+ "تعافى الوكيل وأنهى المهمة في {{count}} منها.",
1409
+ "observability.insights.restartTitle":
1410
+ "كلّف البدء من جديد حوالي {{amount}} ({{percent}}% من الإنفاق)",
1411
+ "observability.insights.restartBody":
1412
+ "في {{count}} من آخر {{total}} برومبت، أعاد الوكيل إرسال المحادثة كاملة بعد {{reason}}، بدلًا من إعادة استخدام ما سبق إرساله.",
1413
+ "observability.insights.reasonToolLookup": "اكتشاف أدوات جديدة",
1414
+ "observability.insights.reasonPrefixChanged": "تغيّر شيء في بداية تعليماته",
1415
+ "observability.insights.fixToolLookup":
1416
+ "حمّل الأدوات التي يستخدمها هذا التطبيق مسبقًا باستخدام initialToolNames لتبقى قائمة الأدوات ثابتة طوال البرومبت.",
1417
+ "observability.insights.fixPrefixChanged":
1418
+ "احتفظ بالمحتوى المتغيّر، مثل الطوابع الزمنية أو حالة كل خطوة، خارج برومبت النظام.",
1419
+ "observability.insights.priciestTitle":
1420
+ "استهلك برومبت واحد {{percent}}% من الإنفاق الأخير",
1421
+ "observability.insights.untitledPrompt": "برومبت بلا عنوان",
1422
+ "observability.insights.promptsHeading": "البرومبتات",
1423
+ "observability.insights.showing": "عرض {{count}}",
1424
+ "observability.insights.sortNewest": "الأحدث",
1425
+ "observability.insights.sortCost": "الأعلى تكلفة",
1426
+ "observability.insights.emptyPrompts":
1427
+ "لا توجد برومبتات في هذه الفترة بعد. تظهر هنا بعد ثوانٍ قليلة من انتهائها.",
1428
+ "observability.insights.promptNotSaved": "لم يتم حفظ نص البرومبت",
1429
+ "observability.insights.ratedHelpful": "تم تقييمه بأنه مفيد",
1430
+ "observability.insights.ratedUnhelpful": "تم تقييمه بأنه غير مفيد",
1431
+ "observability.insights.notRated": "بلا تقييم",
1432
+ "observability.insights.stoppedWithError": "توقف بخطأ",
1433
+ "observability.insights.detailsUnavailable": "تفاصيل الخطوات لم تعد متاحة",
1434
+ "observability.insights.answered": "تمت الإجابة",
1435
+ "observability.insights.finished": "انتهى",
1436
+ "observability.insights.startedOverShort": "بدأ من جديد {{count}}×",
1437
+ "observability.insights.headerDuration": "في {{duration}}",
1438
+ "observability.insights.whatItDid": "ما الذي قام به:",
1439
+ "observability.insights.replyNotSaved": "لم يتم حفظ نص الرد لهذا البرومبت.",
1440
+ "observability.insights.showAll": "عرض الكل",
1441
+ "observability.insights.showLess": "عرض أقل",
1442
+ "observability.insights.moreTools": "+{{count}} أخرى",
1443
+ "observability.insights.failedSuffix": "فشل",
1444
+ "observability.insights.timesCount": "{{label}} ×{{count}}",
1445
+ "observability.insights.hideSteps": "إخفاء الخطوات",
1446
+ "observability.insights.costDetails": "تفاصيل التكلفة والفحوصات",
1447
+ "observability.insights.turnReply": "كتب الرد",
1448
+ "observability.insights.turnThought": "فكّر في الأمر",
1449
+ "observability.insights.startedOverTag": "بدأ من جديد",
1450
+ "observability.insights.toolFailedTag": "فشل الأداة",
1451
+ "observability.insights.turnContext":
1452
+ "أرسل {{tokens}} توكن من السياق، {{percent}}% منها معاد استخدامها من سياق سابق.",
1453
+ "observability.insights.turnExpired":
1454
+ "انتهت صلاحية السياق المحفوظ بعد فترة توقف، وهذا أمر متوقع.",
1455
+ "observability.insights.turnOutput": "كتب {{tokens}} توكن.",
1456
+ "observability.insights.turnRestart":
1457
+ "بدأ من جديد بعد {{reason}}، بتكلفة أعلى بحوالي {{amount}} من إعادة استخدامه.",
1458
+ "observability.insights.noCacheCompare":
1459
+ "بالأسعار المعتادة، أدت إعادة استخدام السياق السابق إلى خفض تكلفة هذا البرومبت من {{noCache}} إلى {{estimated}}.",
1460
+ "observability.insights.partReused": "سياق معاد استخدامه",
1461
+ "observability.insights.partSaved": "محفوظ في الكاش",
1462
+ "observability.insights.partNew": "سياق جديد",
1463
+ "observability.insights.partOutput": "كتبه النموذج",
1464
+ "observability.insights.checksHeading": "الفحوصات التلقائية",
1465
+ "observability.insights.checksNone": "لم يتم تسجيل أي فحوصات.",
1466
+ "observability.insights.checksGraded": "(تم تقييمه من نموذج)",
1467
+ "observability.insights.checksNote":
1468
+ "تفحص هذه الفحوصات كيف سار التشغيل (الأخطاء، الخطوات، السرعة)، وليس ما إذا كانت النتيجة جيدة.",
1469
+ "observability.insights.lookedForTools": "بحث عن أدوات إضافية",
1470
+ "observability.insights.prevPrompt": "البرومبت السابق (K)",
1471
+ "observability.insights.nextPrompt": "البرومبت التالي (J)",
1472
+ "observability.insights.toolVerb.add": "أضاف {{object}}",
1473
+ "observability.insights.toolVerb.analyze": "حلّل {{object}}",
1474
+ "observability.insights.toolVerb.apply": "طبّق {{object}}",
1475
+ "observability.insights.toolVerb.capture": "التقط {{object}}",
1476
+ "observability.insights.toolVerb.check": "فحص {{object}}",
1477
+ "observability.insights.toolVerb.connect": "وصّل {{object}}",
1478
+ "observability.insights.toolVerb.create": "أنشأ {{object}}",
1479
+ "observability.insights.toolVerb.delete": "حذف {{object}}",
1480
+ "observability.insights.toolVerb.duplicate": "كرر {{object}}",
1481
+ "observability.insights.toolVerb.edit": "عدّل {{object}}",
1482
+ "observability.insights.toolVerb.export": "صدّر {{object}}",
1483
+ "observability.insights.toolVerb.fetch": "جلب {{object}}",
1484
+ "observability.insights.toolVerb.find": "وجد {{object}}",
1485
+ "observability.insights.toolVerb.generate": "ولّد {{object}}",
1486
+ "observability.insights.toolVerb.index": "فهرس {{object}}",
1487
+ "observability.insights.toolVerb.insert": "أدرج {{object}}",
1488
+ "observability.insights.toolVerb.list": "سرد {{object}}",
1489
+ "observability.insights.toolVerb.move": "نقل {{object}}",
1490
+ "observability.insights.toolVerb.navigate": "تصفّح {{object}}",
1491
+ "observability.insights.toolVerb.open": "فتح {{object}}",
1492
+ "observability.insights.toolVerb.present": "قدّم {{object}}",
1493
+ "observability.insights.toolVerb.propose": "اقترح {{object}}",
1494
+ "observability.insights.toolVerb.query": "استعلم عن {{object}}",
1495
+ "observability.insights.toolVerb.read": "قرأ {{object}}",
1496
+ "observability.insights.toolVerb.remove": "أزال {{object}}",
1497
+ "observability.insights.toolVerb.rename": "أعاد تسمية {{object}}",
1498
+ "observability.insights.toolVerb.reply": "ردّ على {{object}}",
1499
+ "observability.insights.toolVerb.resolve": "حلّ {{object}}",
1500
+ "observability.insights.toolVerb.run": "شغّل {{object}}",
1501
+ "observability.insights.toolVerb.save": "حفظ {{object}}",
1502
+ "observability.insights.toolVerb.search": "بحث عن {{object}}",
1503
+ "observability.insights.toolVerb.send": "أرسل {{object}}",
1504
+ "observability.insights.toolVerb.set": "ضبط {{object}}",
1505
+ "observability.insights.toolVerb.take": "أخذ {{object}}",
1506
+ "observability.insights.toolVerb.update": "حدّث {{object}}",
1507
+ "observability.insights.toolVerb.upload": "رفع {{object}}",
1508
+ "observability.insights.toolVerb.view": "عرض {{object}}",
1509
+ "observability.insights.toolVerb.write": "كتب {{object}}",
1510
+ "observability.insights.verdictLook_zero": "{{count}} أشياء تستحق نظرة",
1511
+ "observability.insights.verdictLook_one": "{{count}} شيء يستحق نظرة",
1512
+ "observability.insights.verdictLook_two": "{{count}} شيئان يستحقان نظرة",
1513
+ "observability.insights.verdictLook_few": "{{count}} أشياء تستحق نظرة",
1514
+ "observability.insights.verdictLook_many": "{{count}} شيئًا يستحق نظرة",
1515
+ "observability.insights.verdictLook_other": "{{count}} شيء يستحق نظرة",
1516
+ "observability.insights.verdictProblems_zero": "{{count}} مشكلات",
1517
+ "observability.insights.verdictProblems_one": "{{count}} مشكلة",
1518
+ "observability.insights.verdictProblems_two": "{{count}} مشكلتان",
1519
+ "observability.insights.verdictProblems_few": "{{count}} مشكلات",
1520
+ "observability.insights.verdictProblems_many": "{{count}} مشكلة",
1521
+ "observability.insights.verdictProblems_other": "{{count}} مشكلة",
1522
+ "observability.insights.spentSummary_zero":
1523
+ "تم إنفاق {{amount}} على {{count}} برومبتات في آخر {{days}} يوم.",
1524
+ "observability.insights.spentSummary_one":
1525
+ "تم إنفاق {{amount}} على {{count}} برومبت في آخر {{days}} يوم.",
1526
+ "observability.insights.spentSummary_two":
1527
+ "تم إنفاق {{amount}} على {{count}} برومبتين في آخر {{days}} يوم.",
1528
+ "observability.insights.spentSummary_few":
1529
+ "تم إنفاق {{amount}} على {{count}} برومبتات في آخر {{days}} يوم.",
1530
+ "observability.insights.spentSummary_many":
1531
+ "تم إنفاق {{amount}} على {{count}} برومبت في آخر {{days}} يوم.",
1532
+ "observability.insights.spentSummary_other":
1533
+ "تم إنفاق {{amount}} على {{count}} برومبت في آخر {{days}} يوم.",
1534
+ "observability.insights.handledRecovered_zero":
1535
+ "تعافى الوكيل من {{count}} أخطاء في الأداة دون توقف.",
1536
+ "observability.insights.handledRecovered_one":
1537
+ "تعافى الوكيل من {{count}} خطأ في الأداة دون توقف.",
1538
+ "observability.insights.handledRecovered_two":
1539
+ "تعافى الوكيل من {{count}} خطأين في الأداة دون توقف.",
1540
+ "observability.insights.handledRecovered_few":
1541
+ "تعافى الوكيل من {{count}} أخطاء في الأداة دون توقف.",
1542
+ "observability.insights.handledRecovered_many":
1543
+ "تعافى الوكيل من {{count}} خطأ في الأداة دون توقف.",
1544
+ "observability.insights.handledRecovered_other":
1545
+ "تعافى الوكيل من {{count}} خطأ في الأداة دون توقف.",
1546
+ "observability.insights.completedRecovered_zero":
1547
+ "{{done}} من آخر {{total}}، بعد التعافي من {{count}} أخطاء في الأداة",
1548
+ "observability.insights.completedRecovered_one":
1549
+ "{{done}} من آخر {{total}}، بعد التعافي من {{count}} خطأ في الأداة",
1550
+ "observability.insights.completedRecovered_two":
1551
+ "{{done}} من آخر {{total}}، بعد التعافي من {{count}} خطأين في الأداة",
1552
+ "observability.insights.completedRecovered_few":
1553
+ "{{done}} من آخر {{total}}، بعد التعافي من {{count}} أخطاء في الأداة",
1554
+ "observability.insights.completedRecovered_many":
1555
+ "{{done}} من آخر {{total}}، بعد التعافي من {{count}} خطأ في الأداة",
1556
+ "observability.insights.completedRecovered_other":
1557
+ "{{done}} من آخر {{total}}، بعد التعافي من {{count}} خطأ في الأداة",
1558
+ "observability.insights.seePrompts_zero": "عرض {{count}} برومبتات",
1559
+ "observability.insights.seePrompts_one": "عرض {{count}} برومبت",
1560
+ "observability.insights.seePrompts_two": "عرض {{count}} برومبتين",
1561
+ "observability.insights.seePrompts_few": "عرض {{count}} برومبتات",
1562
+ "observability.insights.seePrompts_many": "عرض {{count}} برومبت",
1563
+ "observability.insights.seePrompts_other": "عرض {{count}} برومبت",
1564
+ "observability.insights.erroredTitle_zero": "{{count}} برومبتات انتهت بخطأ",
1565
+ "observability.insights.erroredTitle_one": "{{count}} برومبت انتهى بخطأ",
1566
+ "observability.insights.erroredTitle_two": "{{count}} برومبتان انتهيا بخطأ",
1567
+ "observability.insights.erroredTitle_few": "{{count}} برومبتات انتهت بخطأ",
1568
+ "observability.insights.erroredTitle_many": "{{count}} برومبت انتهى بخطأ",
1569
+ "observability.insights.erroredTitle_other": "{{count}} برومبت انتهى بخطأ",
1570
+ "observability.insights.toolFailedTitle_zero":
1571
+ "فشلت أداة {{tool}} في {{count}} برومبتات",
1572
+ "observability.insights.toolFailedTitle_one":
1573
+ "فشلت أداة {{tool}} في {{count}} برومبت",
1574
+ "observability.insights.toolFailedTitle_two":
1575
+ "فشلت أداة {{tool}} في {{count}} برومبتين",
1576
+ "observability.insights.toolFailedTitle_few":
1577
+ "فشلت أداة {{tool}} في {{count}} برومبتات",
1578
+ "observability.insights.toolFailedTitle_many":
1579
+ "فشلت أداة {{tool}} في {{count}} برومبت",
1580
+ "observability.insights.toolFailedTitle_other":
1581
+ "فشلت أداة {{tool}} في {{count}} برومبت",
1582
+ "observability.insights.priciestBody_zero":
1583
+ "استهلك «{{prompt}}» {{amount}} على مدى {{count}} خطوات.",
1584
+ "observability.insights.priciestBody_one":
1585
+ "استهلك «{{prompt}}» {{amount}} على مدى {{count}} خطوة.",
1586
+ "observability.insights.priciestBody_two":
1587
+ "استهلك «{{prompt}}» {{amount}} على مدى {{count}} خطوتين.",
1588
+ "observability.insights.priciestBody_few":
1589
+ "استهلك «{{prompt}}» {{amount}} على مدى {{count}} خطوات.",
1590
+ "observability.insights.priciestBody_many":
1591
+ "استهلك «{{prompt}}» {{amount}} على مدى {{count}} خطوة.",
1592
+ "observability.insights.priciestBody_other":
1593
+ "استهلك «{{prompt}}» {{amount}} على مدى {{count}} خطوة.",
1594
+ "observability.insights.recoveredShort_zero":
1595
+ "تعافى من {{count}} أخطاء في الأداة",
1596
+ "observability.insights.recoveredShort_one":
1597
+ "تعافى من {{count}} خطأ في الأداة",
1598
+ "observability.insights.recoveredShort_two":
1599
+ "تعافى من {{count}} خطأين في الأداة",
1600
+ "observability.insights.recoveredShort_few":
1601
+ "تعافى من {{count}} أخطاء في الأداة",
1602
+ "observability.insights.recoveredShort_many":
1603
+ "تعافى من {{count}} خطأ في الأداة",
1604
+ "observability.insights.recoveredShort_other":
1605
+ "تعافى من {{count}} خطأ في الأداة",
1606
+ "observability.insights.toolsFailedShort_zero": "{{count}} أدوات فشلت",
1607
+ "observability.insights.toolsFailedShort_one": "{{count}} أداة فشلت",
1608
+ "observability.insights.toolsFailedShort_two": "{{count}} أداتان فشلتا",
1609
+ "observability.insights.toolsFailedShort_few": "{{count}} أدوات فشلت",
1610
+ "observability.insights.toolsFailedShort_many": "{{count}} أداة فشلت",
1611
+ "observability.insights.toolsFailedShort_other": "{{count}} أداة فشلت",
1612
+ "observability.insights.stepsCount_zero": "{{count}} خطوات",
1613
+ "observability.insights.stepsCount_one": "{{count}} خطوة",
1614
+ "observability.insights.stepsCount_two": "{{count}} خطوتان",
1615
+ "observability.insights.stepsCount_few": "{{count}} خطوات",
1616
+ "observability.insights.stepsCount_many": "{{count}} خطوة",
1617
+ "observability.insights.stepsCount_other": "{{count}} خطوة",
1618
+ "observability.insights.startedOverNote_zero":
1619
+ "بدأ من جديد {{count}} مرات بعد {{reason}}. كلّف ذلك حوالي {{amount}} من {{total}}.",
1620
+ "observability.insights.startedOverNote_one":
1621
+ "بدأ من جديد {{count}} مرة بعد {{reason}}. كلّف ذلك حوالي {{amount}} من {{total}}.",
1622
+ "observability.insights.startedOverNote_two":
1623
+ "بدأ من جديد {{count}} مرتين بعد {{reason}}. كلّف ذلك حوالي {{amount}} من {{total}}.",
1624
+ "observability.insights.startedOverNote_few":
1625
+ "بدأ من جديد {{count}} مرات بعد {{reason}}. كلّف ذلك حوالي {{amount}} من {{total}}.",
1626
+ "observability.insights.startedOverNote_many":
1627
+ "بدأ من جديد {{count}} مرة بعد {{reason}}. كلّف ذلك حوالي {{amount}} من {{total}}.",
1628
+ "observability.insights.startedOverNote_other":
1629
+ "بدأ من جديد {{count}} مرة بعد {{reason}}. كلّف ذلك حوالي {{amount}} من {{total}}.",
1630
+ "observability.insights.toolFailedNote_zero":
1631
+ "فشلت أداة {{tool}} {{count}} مرات.",
1632
+ "observability.insights.toolFailedNote_one":
1633
+ "فشلت أداة {{tool}} {{count}} مرة.",
1634
+ "observability.insights.toolFailedNote_two":
1635
+ "فشلت أداة {{tool}} {{count}} مرتين.",
1636
+ "observability.insights.toolFailedNote_few":
1637
+ "فشلت أداة {{tool}} {{count}} مرات.",
1638
+ "observability.insights.toolFailedNote_many":
1639
+ "فشلت أداة {{tool}} {{count}} مرة.",
1640
+ "observability.insights.toolFailedNote_other":
1641
+ "فشلت أداة {{tool}} {{count}} مرة.",
1642
+ "observability.insights.toolFailedRecoveredNote_zero":
1643
+ "فشلت أداة {{tool}} {{count}} مرات، لكن الوكيل واصل العمل وأنهى المهمة.",
1644
+ "observability.insights.toolFailedRecoveredNote_one":
1645
+ "فشلت أداة {{tool}} {{count}} مرة، لكن الوكيل واصل العمل وأنهى المهمة.",
1646
+ "observability.insights.toolFailedRecoveredNote_two":
1647
+ "فشلت أداة {{tool}} {{count}} مرتين، لكن الوكيل واصل العمل وأنهى المهمة.",
1648
+ "observability.insights.toolFailedRecoveredNote_few":
1649
+ "فشلت أداة {{tool}} {{count}} مرات، لكن الوكيل واصل العمل وأنهى المهمة.",
1650
+ "observability.insights.toolFailedRecoveredNote_many":
1651
+ "فشلت أداة {{tool}} {{count}} مرة، لكن الوكيل واصل العمل وأنهى المهمة.",
1652
+ "observability.insights.toolFailedRecoveredNote_other":
1653
+ "فشلت أداة {{tool}} {{count}} مرة، لكن الوكيل واصل العمل وأنهى المهمة.",
1654
+ "observability.insights.showSteps_zero": "إظهار {{count}} خطوات",
1655
+ "observability.insights.showSteps_one": "إظهار {{count}} خطوة",
1656
+ "observability.insights.showSteps_two": "إظهار {{count}} خطوتين",
1657
+ "observability.insights.showSteps_few": "إظهار {{count}} خطوات",
1658
+ "observability.insights.showSteps_many": "إظهار {{count}} خطوة",
1659
+ "observability.insights.showSteps_other": "إظهار {{count}} خطوة",
1380
1660
  "billing.builderCreditLimitTitle": "نفدت أرصدة Builder لديك",
1381
1661
  "billing.builderCreditLimitEmailBody":
1382
1662
  "توقف طلب الذكاء الاصطناعي لأن أرصدة حساب Builder المتصل بك قد نفدت. قم بترقية خطة Builder للمتابعة.",
@@ -2754,6 +3034,8 @@ const messages: ToolkitAgentChatTranslation = {
2754
3034
  "settingsSubAgents.registryLink": "تصفح Global A2A Registry",
2755
3035
  "settingsSubAgents.connectTitle": "ربط {{name}}",
2756
3036
  "settingsSubAgents.close": "إغلاق",
3037
+ "observability.insights.rawTrace":
3038
+ "التتبع الخام (كل الخطوات مع المدخلات والمخرجات)",
2757
3039
  };
2758
3040
 
2759
3041
  export default messages;