@agent-native/core 0.137.2 → 0.137.4

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 (176) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  3. package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +53 -1
  4. package/corpus/templates/analytics/actions/gong-calls.ts +37 -17
  5. package/corpus/templates/analytics/app/lib/data-sources.ts +1 -1
  6. package/corpus/templates/analytics/server/lib/gong.ts +51 -2
  7. package/corpus/templates/assets/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  8. package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +53 -1
  9. package/corpus/templates/brain/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  10. package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +53 -1
  11. package/corpus/templates/brain/app/routes/settings.tsx +1 -1
  12. package/corpus/templates/brain/server/register-secrets.ts +1 -1
  13. package/corpus/templates/calendar/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  14. package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +53 -1
  15. package/corpus/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  16. package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +53 -1
  17. package/corpus/templates/chat/AGENTS.md +11 -0
  18. package/corpus/templates/chat/app/components/layout/Layout.tsx +1 -1
  19. package/corpus/templates/chat/app/root.tsx +1 -1
  20. package/corpus/templates/chat/app/routes/agent.tsx +29 -13
  21. package/corpus/templates/chat/vite.config.ts +42 -0
  22. package/corpus/templates/clips/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  23. package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +53 -1
  24. package/corpus/templates/clips/app/components/library/empty-state.tsx +1 -3
  25. package/corpus/templates/clips/app/components/library/library-grid.tsx +2 -6
  26. package/corpus/templates/clips/app/components/library/library-layout.tsx +2 -6
  27. package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +1 -3
  28. package/corpus/templates/clips/app/routes/bug-report.tsx +1 -8
  29. package/corpus/templates/clips/app/routes/import.tsx +1 -3
  30. package/corpus/templates/clips/changelog/2026-08-04-recording-buttons-are-now-text-only-for-a-cleaner-clips-inte.md +6 -0
  31. package/corpus/templates/clips/changelog/2026-08-04-save-settings-now-matches-the-other-clips-settings-buttons.md +6 -0
  32. package/corpus/templates/clips/chrome-extension/src/styles.css +1 -0
  33. package/corpus/templates/content/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  34. package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +53 -1
  35. package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  36. package/corpus/templates/crm/app/routes/settings.tsx +2 -2
  37. package/corpus/templates/design/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  38. package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +53 -1
  39. package/corpus/templates/design/actions/import-figma-clipboard.ts +1 -1
  40. package/corpus/templates/dispatch/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  41. package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +53 -1
  42. package/corpus/templates/dispatch/changelog/2026-08-04-dispatch-keeps-connected-chats-out-of-local-history-by-defau.md +6 -0
  43. package/corpus/templates/factory/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  44. package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +53 -1
  45. package/corpus/templates/factory/README.md +1 -1
  46. package/corpus/templates/forms/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  47. package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +53 -1
  48. package/corpus/templates/macros/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  49. package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +53 -1
  50. package/corpus/templates/mail/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  51. package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +53 -1
  52. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +0 -2
  53. package/corpus/templates/mail/app/pages/SettingsPage.tsx +1 -1
  54. package/corpus/templates/plan/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  55. package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +53 -1
  56. package/corpus/templates/slides/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  57. package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +53 -1
  58. package/corpus/templates/slides/actions/generate-image-api.ts +15 -4
  59. package/corpus/templates/slides/actions/import-google-slides-reference.ts +83 -0
  60. package/corpus/templates/slides/actions/import-pptx.ts +134 -117
  61. package/corpus/templates/slides/app/components/editor/GoogleSlidesReferenceImport.tsx +387 -0
  62. package/corpus/templates/slides/app/components/editor/ImageGenPanel.tsx +78 -48
  63. package/corpus/templates/slides/app/components/editor/NewDeckReferenceStep.tsx +377 -187
  64. package/corpus/templates/slides/app/components/layout/Sidebar.tsx +0 -1
  65. package/corpus/templates/slides/app/hooks/use-deck-design-system.ts +20 -1
  66. package/corpus/templates/slides/app/i18n/en-US.ts +15 -0
  67. package/corpus/templates/slides/app/lib/new-deck-reference-selection.ts +22 -0
  68. package/corpus/templates/slides/app/pages/DeckEditor.tsx +4 -1
  69. package/corpus/templates/slides/app/pages/Index.tsx +172 -85
  70. package/corpus/templates/slides/server/lib/assets-image-delegation.ts +4 -2
  71. package/corpus/templates/slides/shared/api.ts +14 -1
  72. package/corpus/templates/tasks/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  73. package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +53 -1
  74. package/dist/chat-threads/schema.d.ts +57 -0
  75. package/dist/chat-threads/schema.js +3 -0
  76. package/dist/chat-threads/store.d.ts +26 -0
  77. package/dist/chat-threads/store.js +84 -6
  78. package/dist/client/AgentPanel.js +11 -5
  79. package/dist/client/ConnectBuilderCard.js +1 -1
  80. package/dist/client/agent-page/AgentEmptyState.d.ts +2 -1
  81. package/dist/client/agent-page/AgentEmptyState.js +6 -2
  82. package/dist/client/agent-page/AgentJobsTab.d.ts +3 -1
  83. package/dist/client/agent-page/AgentJobsTab.js +55 -44
  84. package/dist/client/agent-page/AgentTabFrame.d.ts +2 -1
  85. package/dist/client/agent-page/AgentTabFrame.js +4 -2
  86. package/dist/client/agent-page/AgentTabsPage.js +12 -8
  87. package/dist/client/agent-page/AgentWorkspaceContent.d.ts +10 -0
  88. package/dist/client/agent-page/AgentWorkspaceContent.js +110 -0
  89. package/dist/client/agent-page/AutomationDetailsDialog.js +1 -1
  90. package/dist/client/chat/run-recovery.js +3 -3
  91. package/dist/client/error-format.js +1 -1
  92. package/dist/client/integrations/IntegrationsPanel.d.ts +1 -0
  93. package/dist/client/integrations/IntegrationsPanel.js +149 -5
  94. package/dist/client/onboarding/FirstRunOnboarding.js +130 -15
  95. package/dist/client/onboarding/index.d.ts +1 -1
  96. package/dist/client/onboarding/index.js +1 -1
  97. package/dist/client/onboarding/use-onboarding.js +12 -2
  98. package/dist/client/onboarding/use-preview-mode.d.ts +4 -0
  99. package/dist/client/onboarding/use-preview-mode.js +9 -0
  100. package/dist/client/resources/BuiltinCapabilityDetail.js +2 -2
  101. package/dist/client/resources/ResourceTree.d.ts +4 -1
  102. package/dist/client/resources/ResourceTree.js +13 -8
  103. package/dist/client/resources/ResourcesPanel.js +7 -3
  104. package/dist/client/resources/mcp-integration-catalog.js +4 -4
  105. package/dist/client/resources/use-mcp-servers.js +6 -6
  106. package/dist/client/settings/AgentsSection.js +15 -16
  107. package/dist/client/settings/AutomationsSection.js +1 -1
  108. package/dist/client/settings/DemoModeSection.js +1 -1
  109. package/dist/client/settings/SettingsPanel.d.ts +3 -1
  110. package/dist/client/settings/SettingsPanel.js +284 -88
  111. package/dist/client/settings/SettingsRow.js +1 -1
  112. package/dist/client/settings/SettingsSection.d.ts +6 -4
  113. package/dist/client/settings/SettingsSection.js +6 -6
  114. package/dist/client/settings/SettingsTabsPage.js +47 -25
  115. package/dist/client/settings/VoiceTranscriptionSection.d.ts +3 -1
  116. package/dist/client/settings/VoiceTranscriptionSection.js +20 -8
  117. package/dist/client/settings/agent-settings-search.d.ts +1 -1
  118. package/dist/client/settings/agent-settings-search.js +8 -8
  119. package/dist/client/transcription/BuilderTranscriptionCta.js +2 -2
  120. package/dist/client/use-chat-threads.d.ts +9 -0
  121. package/dist/client/use-chat-threads.js +22 -6
  122. package/dist/collab/routes.d.ts +1 -1
  123. package/dist/integrations/google-docs-poller.js +9 -1
  124. package/dist/integrations/webhook-handler.js +11 -1
  125. package/dist/jobs/scheduler.d.ts +4 -1
  126. package/dist/jobs/scheduler.js +34 -9
  127. package/dist/localization/default-messages.js +40 -40
  128. package/dist/mcp-client/oauth-routes.js +1 -1
  129. package/dist/notifications/routes.d.ts +1 -1
  130. package/dist/provider-api/actions/custom-provider-registration.d.ts +14 -14
  131. package/dist/provider-api/actions/provider-api.d.ts +15 -15
  132. package/dist/resources/handlers.d.ts +1 -1
  133. package/dist/secrets/onboarding.js +1 -1
  134. package/dist/secrets/routes.d.ts +9 -9
  135. package/dist/server/agent-chat/browser-team-tools.d.ts +1 -0
  136. package/dist/server/agent-chat/browser-team-tools.js +1 -0
  137. package/dist/server/agent-chat-plugin.js +14 -1
  138. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  139. package/dist/server/agent-teams.d.ts +2 -0
  140. package/dist/server/agent-teams.js +2 -0
  141. package/dist/server/workspace-provider-oauth.js +1 -1
  142. package/dist/setup-connections/onboarding.js +2 -2
  143. package/dist/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  144. package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +53 -1
  145. package/dist/templates/chat/AGENTS.md +11 -0
  146. package/dist/templates/chat/app/components/layout/Layout.tsx +1 -1
  147. package/dist/templates/chat/app/root.tsx +1 -1
  148. package/dist/templates/chat/app/routes/agent.tsx +29 -13
  149. package/dist/templates/chat/vite.config.ts +42 -0
  150. package/dist/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  151. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +53 -1
  152. package/dist/templates/default/AGENTS.md +11 -0
  153. package/dist/templates/default/vite.config.ts +42 -0
  154. package/dist/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  155. package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  156. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +53 -1
  157. package/dist/templates/workspace-core/AGENTS.md +11 -0
  158. package/dist/templates/workspace-root/AGENTS.md +14 -0
  159. package/dist/vite/client.js +56 -0
  160. package/package.json +2 -2
  161. package/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  162. package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +53 -1
  163. package/src/templates/chat/AGENTS.md +11 -0
  164. package/src/templates/chat/app/components/layout/Layout.tsx +1 -1
  165. package/src/templates/chat/app/root.tsx +1 -1
  166. package/src/templates/chat/app/routes/agent.tsx +29 -13
  167. package/src/templates/chat/vite.config.ts +42 -0
  168. package/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  169. package/src/templates/default/.agents/skills/frontend-design/SKILL.md +53 -1
  170. package/src/templates/default/AGENTS.md +11 -0
  171. package/src/templates/default/vite.config.ts +42 -0
  172. package/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  173. package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +33 -0
  174. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +53 -1
  175. package/src/templates/workspace-core/AGENTS.md +11 -0
  176. package/src/templates/workspace-root/AGENTS.md +14 -0
@@ -27,6 +27,9 @@ export interface ResourceTreeProps {
27
27
  sectionAction?: React.ReactNode;
28
28
  /** Scope-specific action shown beneath an empty collection message. */
29
29
  emptyStateAction?: React.ReactNode;
30
+ /** Optional copy for collection empty states. */
31
+ emptyStateTitle?: string;
32
+ emptyStateDescription?: string;
30
33
  }
31
- export declare function ResourceTree({ tree, variant, selectedId, onSelect, onCreateFile, onCreateFolder, onDelete, onDrop, title, titleTooltip, isLoading, deletingId, readOnly, headingHint, sectionAction, emptyStateAction, }: ResourceTreeProps): React.JSX.Element;
34
+ export declare function ResourceTree({ tree, variant, selectedId, onSelect, onCreateFile, onCreateFolder, onDelete, onDrop, title, titleTooltip, isLoading, deletingId, readOnly, headingHint, sectionAction, emptyStateAction, emptyStateTitle, emptyStateDescription, }: ResourceTreeProps): React.JSX.Element;
32
35
  //# sourceMappingURL=ResourceTree.d.ts.map
@@ -109,9 +109,9 @@ function getCollectionDescriptor(node) {
109
109
  "Scheduled job");
110
110
  }
111
111
  if (node.kind === "mcp-server")
112
- return "MCP server";
112
+ return "Agent integration";
113
113
  if (node.kind === "mcp-builtin")
114
- return "Built-in MCP";
114
+ return "Built-in agent tool";
115
115
  return formatResourceSize(node.resource.size);
116
116
  }
117
117
  function CollectionResourceRow({ node, selectedId, deletingId, readOnly, onSelect, onDelete, }) {
@@ -197,7 +197,7 @@ function InlineInput({ depth, onConfirm, onCancel, }) {
197
197
  }, className: "min-w-0 flex-1 bg-transparent text-[12px] leading-none text-foreground outline-none placeholder:text-muted-foreground/50", placeholder: "filename.md" })] }));
198
198
  }
199
199
  // ─── ResourceTree ───────────────────────────────────────────────────────────
200
- export function ResourceTree({ tree, variant = "tree", selectedId, onSelect, onCreateFile, onCreateFolder, onDelete, onDrop, title = "Files", titleTooltip, isLoading = false, deletingId = null, readOnly = false, headingHint, sectionAction, emptyStateAction, }) {
200
+ export function ResourceTree({ tree, variant = "tree", selectedId, onSelect, onCreateFile, onCreateFolder, onDelete, onDrop, title = "Files", titleTooltip, isLoading = false, deletingId = null, readOnly = false, headingHint, sectionAction, emptyStateAction, emptyStateTitle, emptyStateDescription, }) {
201
201
  const [expanded, setExpanded] = useState(() => new Set());
202
202
  const [creating, setCreating] = useState(null);
203
203
  const [dragOver, setDragOver] = useState(false);
@@ -258,14 +258,19 @@ export function ResourceTree({ tree, variant = "tree", selectedId, onSelect, onC
258
258
  onDrop(e.dataTransfer.files);
259
259
  }
260
260
  }, [onDrop, readOnly]);
261
- return (_jsxs("div", { className: cn("p-1", dragOver && !readOnly && "ring-1 ring-inset ring-accent"), onDragOver: readOnly ? undefined : handleDragOver, onDragLeave: readOnly ? undefined : handleDragLeave, onDrop: readOnly ? undefined : handleDrop, children: [_jsx("div", { className: "group/root flex items-center justify-between px-1.5 py-1", children: _jsxs(TooltipProvider, { delayDuration: 200, children: [_jsxs("span", { className: "flex items-center gap-1.5 text-[11px] font-medium uppercase tracking-wide text-muted-foreground/60", children: [title, headingHint && (_jsx("span", { className: "text-[10px] font-normal normal-case tracking-normal text-muted-foreground/50", children: headingHint })), titleTooltip && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", "aria-label": `About ${title}`, className: "flex h-3.5 w-3.5 items-center justify-center rounded-full text-muted-foreground/40 hover:text-muted-foreground", children: _jsx(IconHelpCircle, { className: "h-3 w-3" }) }) }), _jsx(TooltipContent, { children: titleTooltip })] }))] }), sectionAction ??
261
+ return (_jsxs("div", { className: cn(variant === "collection"
262
+ ? "overflow-hidden rounded-xl border border-border/70 bg-card text-card-foreground"
263
+ : "p-1", dragOver && !readOnly && "ring-1 ring-inset ring-accent"), onDragOver: readOnly ? undefined : handleDragOver, onDragLeave: readOnly ? undefined : handleDragLeave, onDrop: readOnly ? undefined : handleDrop, children: [_jsx("div", { className: cn("group/root flex items-center justify-between", variant === "collection" ? "px-4 py-3" : "px-1.5 py-1"), children: _jsxs(TooltipProvider, { delayDuration: 200, children: [_jsxs("span", { className: cn("flex items-center gap-1.5 font-medium text-muted-foreground", variant === "collection"
264
+ ? "text-sm"
265
+ : "text-[11px] uppercase tracking-wide text-muted-foreground/60"), children: [title, headingHint && (_jsx("span", { className: "text-[10px] font-normal normal-case tracking-normal text-muted-foreground/50", children: headingHint })), titleTooltip && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", "aria-label": `About ${title}`, className: "flex h-3.5 w-3.5 items-center justify-center rounded-full text-muted-foreground/40 hover:text-muted-foreground", children: _jsx(IconHelpCircle, { className: "h-3 w-3" }) }) }), _jsx(TooltipContent, { children: titleTooltip })] }))] }), sectionAction ??
262
266
  (variant === "tree" && !readOnly && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { onClick: () => handleStartCreate("", "file"), "aria-label": "New file", className: "flex h-5 w-5 items-center justify-center rounded text-muted-foreground/50 opacity-0 group-hover/root:opacity-100 hover:text-foreground hover:bg-accent/50", children: _jsx(IconPlus, { className: "h-3 w-3" }) }) }), _jsx(TooltipContent, { children: "New file" })] })))] }) }), variant === "collection"
263
- ? leafResources.length > 0 && (_jsx("div", { className: "space-y-1", children: leafResources.map((node) => (_jsx(CollectionResourceRow, { node: node, selectedId: selectedId, deletingId: deletingId, readOnly: readOnly, onSelect: onSelect, onDelete: onDelete }, node.resource.id))) }))
267
+ ? leafResources.length > 0 && (_jsx("div", { className: "divide-y divide-border/60 px-4", children: leafResources.map((node) => (_jsx(CollectionResourceRow, { node: node, selectedId: selectedId, deletingId: deletingId, readOnly: readOnly, onSelect: onSelect, onDelete: onDelete }, node.resource.id))) }))
264
268
  : tree.map((node) => (_jsx(TreeNodeRow, { node: node, depth: 0, expanded: expanded, selectedId: selectedId, deletingId: deletingId, readOnly: readOnly, onToggle: toggleExpand, onSelect: onSelect, onDelete: onDelete, onStartCreate: handleStartCreate }, node.resource?.id ?? node.path))), isLoading && isEmpty && (_jsx("div", { className: cn("px-1 py-1"), children: Array.from({ length: 3 }).map((_, i) => (_jsxs("div", { className: cn("flex items-center gap-2 px-1.5 py-1", variant === "collection" && "gap-3 px-2.5 py-3"), children: [_jsx("div", { className: cn("rounded bg-muted-foreground/10 animate-pulse", variant === "collection" ? "size-8" : "h-3.5 w-3.5"), style: { animationDelay: `${i * 75}ms` } }), _jsx("div", { className: "h-3 rounded bg-muted-foreground/10 animate-pulse", style: {
265
269
  width: `${50 + ((i * 37) % 40)}%`,
266
270
  animationDelay: `${i * 75}ms`,
267
- } })] }, i))) })), creating && creating.parentPath === "" && (_jsx(InlineInput, { depth: 0, onConfirm: handleConfirmCreate, onCancel: handleCancelCreate })), creating && creating.parentPath !== "" && (_jsx(InlineInput, { depth: creating.parentPath.split("/").filter(Boolean).length, onConfirm: handleConfirmCreate, onCancel: handleCancelCreate })), isEmpty && !creating && !isLoading && (_jsxs("div", { className: "flex flex-col items-start px-2 py-5", children: [_jsx("p", { className: "text-xs text-muted-foreground", children: variant === "collection"
268
- ? "No resources in this collection yet"
269
- : "No files yet" }), emptyStateAction && _jsx("div", { className: "mt-4", children: emptyStateAction })] }))] }));
271
+ } })] }, i))) })), creating && creating.parentPath === "" && (_jsx(InlineInput, { depth: 0, onConfirm: handleConfirmCreate, onCancel: handleCancelCreate })), creating && creating.parentPath !== "" && (_jsx(InlineInput, { depth: creating.parentPath.split("/").filter(Boolean).length, onConfirm: handleConfirmCreate, onCancel: handleCancelCreate })), isEmpty && !creating && !isLoading && (_jsxs("div", { className: cn("flex flex-col px-4 py-8", variant === "collection" && "items-center px-5 py-10 text-center"), children: [variant === "collection" && (_jsx("span", { className: "mb-3 flex size-10 items-center justify-center rounded-full bg-muted text-muted-foreground", children: _jsx(IconFolder, { className: "size-5" }) })), _jsx("p", { className: "text-sm font-medium text-foreground", children: variant === "collection"
272
+ ? (emptyStateTitle ?? "No resources in this collection yet")
273
+ : "No files yet" }), variant === "collection" && (_jsx("p", { className: "mt-1 max-w-sm text-xs leading-5 text-muted-foreground", children: emptyStateDescription ??
274
+ "Add a resource to give your agent more context." })), emptyStateAction && _jsx("div", { className: "mt-4", children: emptyStateAction })] }))] }));
270
275
  }
271
276
  //# sourceMappingURL=ResourceTree.js.map
@@ -892,7 +892,7 @@ export function ResourcesPanel({ showMcpServers = true, scope: requestedScope, s
892
892
  : "Delete resource", className: cn("flex h-6 w-6 items-center justify-center rounded-md text-muted-foreground hover:text-destructive hover:bg-accent/50", toolbarDeleteConfirmId === selectedResourceId &&
893
893
  "bg-destructive/10 text-destructive"), children: _jsx(IconTrash, { className: "h-3.5 w-3.5" }) }) }), _jsx(TooltipContent, { children: toolbarDeleteConfirmId === selectedResourceId
894
894
  ? "Click again to delete"
895
- : "Delete resource" })] }) }))] })] })) : (_jsxs("div", { className: "absolute top-1 right-1 z-10 flex items-center gap-1", children: [activeCreateMenuMode !== "hidden" &&
895
+ : "Delete resource" })] }) }))] })] })) : (_jsxs("div", { className: "absolute end-3 top-3 z-10 flex items-center gap-1", children: [activeCreateMenuMode !== "hidden" &&
896
896
  (!resourceFilter || resourceFilter === "files") && (_jsx(CreateMenu, { scope: activeScope, resourceFilter: resourceFilter, personalMcpOnly: activeCreateMenuMode === "personal-mcp", onCreateFile: (name) => handleCreateFromToolbar(activeScope, name), onCreateResource: (path, content, mimeType, opts) => handleCreateResourceFromToolbar(activeScope, path, content, mimeType, opts), onCreateMcpServer: handleCreateMcpServer, canCreateOrgMcp: canCreateOrgMcp, hasOrg: hasOrgForMcp, showToast: showToast, mcpIntegrations: mcpIntegrations })), (!resourceFilter || resourceFilter === "files") && (_jsxs(_Fragment, { children: [activeCreateMenuMode === "full" && (_jsx(TooltipProvider, { delayDuration: 200, children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { onClick: () => fileInputRef.current?.click(), "aria-label": "Upload file", className: "flex h-6 w-6 items-center justify-center rounded-md text-muted-foreground hover:text-foreground hover:bg-accent/50", children: _jsx(IconUpload, { className: "h-3.5 w-3.5" }) }) }), _jsx(TooltipContent, { children: "Upload file" })] }) })), _jsx(TooltipProvider, { delayDuration: 200, children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", onClick: () => setShowAgentScratch((value) => !value), "aria-label": showAgentScratch
897
897
  ? "Hide agent scratch files"
898
898
  : "Show agent scratch files", className: cn("flex h-6 w-6 items-center justify-center rounded-md text-muted-foreground hover:text-foreground hover:bg-accent/50", showAgentScratch && "bg-accent/50 text-foreground"), children: _jsx(IconEye, { className: "h-3.5 w-3.5" }) }) }), _jsx(TooltipContent, { children: showAgentScratch
@@ -910,13 +910,17 @@ export function ResourcesPanel({ showMcpServers = true, scope: requestedScope, s
910
910
  ? deleteResource.variables
911
911
  : deleteMcpServer.isPending
912
912
  ? `mcp:${deleteMcpServer.variables.scope}:${deleteMcpServer.variables.id}`
913
- : null, selectedId: selectedResourceId, onSelect: handleSelect, onCreateFile: (parentPath, name) => handleCreateFile(parentPath, name, "personal"), onCreateFolder: (parentPath, name) => handleCreateFolder(parentPath, name, "personal"), onDelete: handleDelete, onRename: handleRename, onDrop: (files) => handleUploadFiles(files, "personal"), title: "Personal", titleTooltip: "Files visible only to you", sectionAction: renderScopeCreateMenu("personal"), emptyStateAction: renderEmptyStateAction("personal") }) })), showSharedTree && (_jsx("div", { className: "pt-3", children: _jsx(ResourceTree, { tree: displayedSharedTree, variant: resourceTreeVariant, isLoading: sharedTreeQuery.isLoading, deletingId: deleteResource.isPending
913
+ : null, selectedId: selectedResourceId, onSelect: handleSelect, onCreateFile: (parentPath, name) => handleCreateFile(parentPath, name, "personal"), onCreateFolder: (parentPath, name) => handleCreateFolder(parentPath, name, "personal"), onDelete: handleDelete, onRename: handleRename, onDrop: (files) => handleUploadFiles(files, "personal"), title: "Personal", titleTooltip: "Files visible only to you", sectionAction: renderScopeCreateMenu("personal"), emptyStateAction: renderEmptyStateAction("personal"), emptyStateTitle: resourceFilter === "files" ? "No files yet" : undefined, emptyStateDescription: resourceFilter === "files"
914
+ ? "Add a file to give your agent more context."
915
+ : undefined }) })), showSharedTree && (_jsx("div", { className: "pt-3", children: _jsx(ResourceTree, { tree: displayedSharedTree, variant: resourceTreeVariant, isLoading: sharedTreeQuery.isLoading, deletingId: deleteResource.isPending
914
916
  ? deleteResource.variables
915
917
  : deleteMcpServer.isPending
916
918
  ? `mcp:${deleteMcpServer.variables.scope}:${deleteMcpServer.variables.id}`
917
919
  : null, selectedId: selectedResourceId, onSelect: handleSelect, onCreateFile: (parentPath, name) => handleCreateFile(parentPath, name, "shared"), onCreateFolder: (parentPath, name) => handleCreateFolder(parentPath, name, "shared"), onDelete: handleDelete, onRename: handleRename, onDrop: (files) => handleUploadFiles(files, "shared"), title: "Organization", titleTooltip: canEditOrg
918
920
  ? "Files visible to everyone in your organization"
919
- : "Files visible to everyone in your organization. Read-only — only admins can edit.", readOnly: !canEditOrg, headingHint: !canEditOrg ? "Read only" : undefined, sectionAction: renderScopeCreateMenu("shared"), emptyStateAction: renderEmptyStateAction("shared") }) }))] })) }), toast && (_jsx("div", { className: "pointer-events-none absolute bottom-3 left-1/2 z-[300] -translate-x-1/2", children: _jsxs("div", { role: "status", className: cn("pointer-events-auto flex max-w-[320px] items-center gap-3 rounded-md border px-3 py-2 text-[12px] shadow-md", toast.kind === "ok"
921
+ : "Files visible to everyone in your organization. Read-only — only admins can edit.", readOnly: !canEditOrg, headingHint: !canEditOrg ? "Read only" : undefined, sectionAction: renderScopeCreateMenu("shared"), emptyStateAction: renderEmptyStateAction("shared"), emptyStateTitle: resourceFilter === "files" ? "No files yet" : undefined, emptyStateDescription: resourceFilter === "files"
922
+ ? "Add a file to give your agent more context."
923
+ : undefined }) }))] })) }), toast && (_jsx("div", { className: "pointer-events-none absolute bottom-3 left-1/2 z-[300] -translate-x-1/2", children: _jsxs("div", { role: "status", className: cn("pointer-events-auto flex max-w-[320px] items-center gap-3 rounded-md border px-3 py-2 text-[12px] shadow-md", toast.kind === "ok"
920
924
  ? "border-emerald-500/40 bg-emerald-500/10 text-emerald-600 dark:text-emerald-300"
921
925
  : "border-red-500/40 bg-red-500/10 text-red-600 dark:text-red-300"), children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: toast.message }), toast.kind === "ok" && toast.resourceId && (_jsx("button", { type: "button", onClick: () => {
922
926
  setSelectedResourceId(toast.resourceId);
@@ -189,7 +189,7 @@ export const DEFAULT_MCP_INTEGRATIONS = [
189
189
  id: "cloudflare",
190
190
  name: "Cloudflare",
191
191
  provider: "cloudflare",
192
- description: "Search and operate Cloudflare services through MCP.",
192
+ description: "Search and operate Cloudflare services.",
193
193
  descriptionKey: "mcpIntegrations.catalog.cloudflare.description",
194
194
  useCase: "DNS, Workers, domains, security, observability, platform APIs",
195
195
  useCaseKey: "mcpIntegrations.catalog.cloudflare.useCase",
@@ -302,7 +302,7 @@ export const DEFAULT_MCP_INTEGRATIONS = [
302
302
  id: "slack",
303
303
  name: "Slack",
304
304
  provider: "slack",
305
- description: "Search Slack conversations and take workspace actions through MCP.",
305
+ description: "Search Slack conversations and take workspace actions.",
306
306
  descriptionKey: "mcpIntegrations.catalog.slack.description",
307
307
  useCase: "messages, channels, people, company memory, workflows",
308
308
  useCaseKey: "mcpIntegrations.catalog.slack.useCase",
@@ -338,7 +338,7 @@ export const DEFAULT_MCP_INTEGRATIONS = [
338
338
  id: "hubspot",
339
339
  name: "HubSpot",
340
340
  provider: "hubspot",
341
- description: "Search and update HubSpot CRM records through MCP.",
341
+ description: "Search and update HubSpot CRM records.",
342
342
  descriptionKey: "mcpIntegrations.catalog.hubspot.description",
343
343
  useCase: "CRM, contacts, companies, deals, tickets, customer analytics",
344
344
  useCaseKey: "mcpIntegrations.catalog.hubspot.useCase",
@@ -464,7 +464,7 @@ export const DEFAULT_MCP_INTEGRATIONS = [
464
464
  id: "zapier",
465
465
  name: "Zapier",
466
466
  provider: "zapier",
467
- description: "Connect MCP tools to thousands of app actions.",
467
+ description: "Connect tools to thousands of app actions.",
468
468
  descriptionKey: "mcpIntegrations.catalog.zapier.description",
469
469
  useCase: "automation, workflows, app actions, cross-service operations",
470
470
  useCaseKey: "mcpIntegrations.catalog.zapier.useCase",
@@ -62,7 +62,7 @@ export function useDeleteMcpServer() {
62
62
  export function getMcpUrlValidationError(rawUrl) {
63
63
  const trimmed = rawUrl.trim();
64
64
  if (!trimmed)
65
- return "Enter the Streamable HTTP MCP server URL.";
65
+ return "Enter the Streamable HTTP agent integration URL.";
66
66
  let url;
67
67
  try {
68
68
  url = new URL(trimmed);
@@ -71,11 +71,11 @@ export function getMcpUrlValidationError(rawUrl) {
71
71
  return "Enter a full URL, including https://.";
72
72
  }
73
73
  if (url.protocol !== "https:" && url.protocol !== "http:") {
74
- return "MCP server URLs must start with https://.";
74
+ return "Agent integration URLs must start with https://.";
75
75
  }
76
76
  if (url.protocol === "http:" &&
77
77
  !["localhost", "127.0.0.1"].includes(url.hostname)) {
78
- return "Use https:// for remote MCP servers. Plain http:// is only allowed for localhost.";
78
+ return "Use https:// for remote agent integrations. Plain http:// is only allowed for localhost.";
79
79
  }
80
80
  return null;
81
81
  }
@@ -87,7 +87,7 @@ export function formatMcpServerError(error) {
87
87
  : String(error ?? "");
88
88
  const text = raw.trim();
89
89
  if (!text)
90
- return "Could not connect to that MCP server.";
90
+ return "Could not connect to that agent integration.";
91
91
  if (/<!doctype|<html[\s>]|<\/html>|unexpected token '<'|is not valid json/i.test(text)) {
92
92
  return "That URL returned a web page instead of an MCP response. Check that you pasted the Streamable HTTP endpoint, often ending in /mcp.";
93
93
  }
@@ -96,10 +96,10 @@ export function formatMcpServerError(error) {
96
96
  return "The server did not complete the Streamable HTTP MCP handshake. Check the URL and any required authorization headers.";
97
97
  }
98
98
  if (/failed to fetch|fetch failed|networkerror|econnrefused|enotfound|timed out/i.test(text)) {
99
- return "Could not reach that MCP server. Check the URL and make sure it is publicly reachable from this app.";
99
+ return "Could not reach that agent integration. Check the URL and make sure it is publicly reachable from this app.";
100
100
  }
101
101
  if (/401|403|unauthorized|forbidden/i.test(text)) {
102
- return "The MCP server rejected the request. Add or update the required Authorization header.";
102
+ return "The agent integration rejected the request. Add or update the required Authorization header.";
103
103
  }
104
104
  if (/404|not found|405|method not allowed/i.test(text)) {
105
105
  return "That URL is reachable, but it does not look like the MCP endpoint. Check the server's Streamable HTTP path.";
@@ -1,6 +1,6 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ButtonBase as ToolkitButtonBase } from "@agent-native/toolkit/ui/button";
3
- import { IconPlus, IconPencil, IconTrash, IconX, IconCheck, IconLoader2, IconAlertTriangle, IconExternalLink, IconRefresh, } from "@tabler/icons-react";
3
+ import { IconPlus, IconTrash, IconX, IconCheck, IconLoader2, IconAlertTriangle, IconExternalLink, IconRefresh, IconTopologyRing2, } from "@tabler/icons-react";
4
4
  import { useState, useEffect, useRef, useCallback } from "react";
5
5
  import { buildOpenRoutePath, buildSettingsRoute, STANDARD_SETTINGS_TABS, } from "../../navigation/index.js";
6
6
  import { getRemoteAgentIdFromPath, isRemoteAgentPath, REMOTE_AGENT_RESOURCE_PREFIX, remoteAgentResourcePath, } from "../../resources/metadata.js";
@@ -397,26 +397,25 @@ export function AgentsSection() {
397
397
  }
398
398
  catch { }
399
399
  };
400
- return (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center justify-between mb-2", children: [_jsx("div", { className: "text-[10px] text-muted-foreground", children: "@-mention agents in chat to delegate tasks via A2A." }), _jsxs("div", { className: "relative", children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { onClick: () => {
401
- setShowAdd(!showAdd);
402
- setEditingAgent(null);
403
- }, className: "flex h-5 w-5 items-center justify-center rounded text-muted-foreground hover:text-foreground hover:bg-accent/50", children: showAdd ? _jsx(IconX, { size: 12 }) : _jsx(IconPlus, { size: 12 }) }) }), _jsx(TooltipContent, { children: "Add agent" })] }), showAdd && (_jsx(AgentAddPopover, { initialName: prefill?.name, initialUrl: prefill?.url, initialDescription: prefill?.description, secretSet: org?.a2aSecretSet, syncSecret: syncSecret, onAdd: handleAdd, onClose: () => {
404
- setShowAdd(false);
405
- setPrefill(null);
406
- } }))] })] }), _jsx(A2ASecretStatusRow, { org: org, syncSecret: syncSecret }), loading ? (_jsxs("div", { className: "space-y-1.5", children: [_jsx("div", { className: "h-6 w-full rounded bg-muted/50 animate-pulse" }), _jsx("div", { className: "h-6 w-3/4 rounded bg-muted/50 animate-pulse" })] })) : agents.length === 0 ? (_jsxs("button", { onClick: () => setShowAdd(true), className: "flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent/30", children: [_jsx(IconPlus, { size: 12, className: "shrink-0" }), "Add agent"] })) : (_jsxs("div", { className: "flex flex-col gap-0.5", children: [agents.map((agent) => {
400
+ return (_jsxs("div", { children: [_jsx("div", { className: "mb-3 flex flex-wrap items-center justify-end gap-3", children: _jsxs("div", { className: "relative", children: [_jsxs("button", { onClick: () => {
401
+ setShowAdd(!showAdd);
402
+ setEditingAgent(null);
403
+ }, className: "inline-flex items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-xs font-medium text-foreground hover:bg-accent", children: [showAdd ? _jsx(IconX, { size: 13 }) : _jsx(IconPlus, { size: 13 }), showAdd ? "Cancel" : "Connect agent"] }), showAdd && (_jsx(AgentAddPopover, { initialName: prefill?.name, initialUrl: prefill?.url, initialDescription: prefill?.description, secretSet: org?.a2aSecretSet, syncSecret: syncSecret, onAdd: handleAdd, onClose: () => {
404
+ setShowAdd(false);
405
+ setPrefill(null);
406
+ } }))] }) }), _jsx(A2ASecretStatusRow, { org: org, syncSecret: syncSecret }), loading ? (_jsxs("div", { className: "space-y-1.5", children: [_jsx("div", { className: "h-6 w-full rounded bg-muted/50 animate-pulse" }), _jsx("div", { className: "h-6 w-3/4 rounded bg-muted/50 animate-pulse" })] })) : agents.length === 0 ? (_jsxs("div", { className: "flex flex-col items-center rounded-xl border border-border/70 bg-card px-5 py-8 text-center", children: [_jsx("span", { className: "mb-2 flex size-9 items-center justify-center rounded-full bg-muted text-muted-foreground", children: _jsx(IconTopologyRing2, { size: 17 }) }), _jsx("p", { className: "text-sm font-medium text-foreground", children: "No connected agents yet" }), _jsx("p", { className: "mt-1 max-w-sm text-xs leading-5 text-muted-foreground", children: "Connect an A2A agent to delegate work from chat." }), _jsxs("button", { onClick: () => setShowAdd(true), className: "mt-4 inline-flex items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-xs font-medium text-foreground hover:bg-accent", children: [_jsx(IconPlus, { size: 13 }), "Connect agent"] })] })) : (_jsx("div", { className: "overflow-hidden rounded-xl border border-border/70 bg-card text-card-foreground", children: _jsx("div", { className: "divide-y divide-border/60 px-4", children: agents.map((agent) => {
407
407
  const probe = probeById?.get(getRemoteAgentIdFromPath(agent.path).toLowerCase());
408
408
  const dotState = !probe
409
409
  ? null
410
410
  : probe.reachable && probe.authorized !== false
411
411
  ? "ok"
412
412
  : "warn";
413
- return (_jsxs("div", { className: "group relative", children: [_jsxs("div", { className: "flex w-full items-center gap-2 rounded-md px-2 py-1.5 hover:bg-accent/30", children: [dotState ? (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { className: `h-1.5 w-1.5 shrink-0 rounded-full ${dotState === "ok" ? "bg-green-500" : "bg-amber-500"}` }) }), _jsx(TooltipContent, { children: probe && describeProbeTooltip(probe) })] })) : (_jsx("span", { className: "h-1.5 w-1.5 shrink-0 rounded-full bg-transparent" })), _jsx("span", { className: "text-[11px] font-medium text-foreground truncate shrink-0", children: agent.name }), _jsx("span", { className: "flex-1 text-[10px] text-muted-foreground/60 truncate text-end", children: agent.url }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { onClick: () => {
414
- setEditingAgent(editingAgent === agent.id ? null : agent.id);
415
- setShowAdd(false);
416
- }, className: "shrink-0 rounded p-0.5 text-muted-foreground opacity-0 group-hover:opacity-100 hover:text-foreground hover:bg-accent/50", children: _jsx(IconPencil, { size: 11 }) }) }), _jsx(TooltipContent, { children: "Edit agent" })] })] }), editingAgent === agent.id && (_jsx(AgentEditPopover, { agent: agent, onSave: handleSave, onDelete: handleDelete, onClose: () => setEditingAgent(null) }))] }, agent.id));
417
- }), _jsxs("button", { onClick: () => {
418
- setShowAdd(true);
419
- setEditingAgent(null);
420
- }, className: "flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent/30", children: [_jsx(IconPlus, { size: 12, className: "shrink-0" }), "Add agent"] })] }))] }));
413
+ return (_jsxs("div", { className: "group relative", children: [_jsxs("div", { className: "flex w-full items-center gap-3 py-4", children: [_jsx("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-lg border border-border bg-background text-muted-foreground", children: _jsx(IconTopologyRing2, { size: 15 }) }), dotState ? (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { className: `h-1.5 w-1.5 shrink-0 rounded-full ${dotState === "ok"
414
+ ? "bg-primary"
415
+ : "bg-destructive"}` }) }), _jsx(TooltipContent, { children: probe && describeProbeTooltip(probe) })] })) : (_jsx("span", { className: "h-1.5 w-1.5 shrink-0 rounded-full bg-transparent" })), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "block truncate text-sm font-medium text-foreground", children: agent.name }), _jsx("span", { className: "mt-0.5 block truncate text-xs text-muted-foreground", children: agent.url })] }), _jsx("button", { onClick: () => {
416
+ setEditingAgent(editingAgent === agent.id ? null : agent.id);
417
+ setShowAdd(false);
418
+ }, className: "shrink-0 rounded-md border border-border px-2.5 py-1.5 text-xs font-medium text-foreground hover:bg-accent", children: "Manage" })] }), editingAgent === agent.id && (_jsx(AgentEditPopover, { agent: agent, onSave: handleSave, onDelete: handleDelete, onClose: () => setEditingAgent(null) }))] }, agent.id));
419
+ }) }) }))] }));
421
420
  }
422
421
  //# sourceMappingURL=AgentsSection.js.map
@@ -11,7 +11,7 @@ export function AutomationsSection() {
11
11
  const t = useT();
12
12
  return (_jsxs("div", { className: "space-y-3", children: [_jsx("p", { className: "text-xs leading-5 text-muted-foreground", children: t("jobs.settingsSummary", {
13
13
  defaultValue: "Manage scheduled and event-triggered agent tasks together from the Automations page.",
14
- }) }), _jsxs("div", { className: "flex flex-wrap gap-2 text-[11px] text-muted-foreground", children: [_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-muted px-2 py-1", children: [_jsx(IconClock, { className: "size-3" }), t("jobs.scheduledTrigger", { defaultValue: "Scheduled" })] }), _jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-muted px-2 py-1", children: [_jsx(IconBolt, { className: "size-3" }), t("jobs.eventTrigger", { defaultValue: "Event-triggered" })] })] }), _jsx(Button, { asChild: true, variant: "outline", size: "sm", children: _jsxs(Link, { to: "/agent#jobs", children: [t("jobs.openAutomations", {
14
+ }) }), _jsxs("div", { className: "flex flex-wrap gap-2 text-[11px] text-muted-foreground", children: [_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-muted px-2 py-1", children: [_jsx(IconClock, { className: "size-3" }), t("jobs.scheduledTrigger", { defaultValue: "Scheduled" })] }), _jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-muted px-2 py-1", children: [_jsx(IconBolt, { className: "size-3" }), t("jobs.eventTrigger", { defaultValue: "Event-triggered" })] })] }), _jsx(Button, { asChild: true, variant: "outline", size: "sm", children: _jsxs(Link, { to: "/settings#agent:automations", children: [t("jobs.openAutomations", {
15
15
  defaultValue: "Open Automations",
16
16
  }), _jsx(IconArrowRight, { className: "size-3.5" })] }) })] }));
17
17
  }
@@ -5,6 +5,6 @@ import { setBrowserDemoModeEnabled } from "../../demo/browser-state.js";
5
5
  import { useDemoModeStatus } from "../use-demo-mode-status.js";
6
6
  export function DemoModeSection() {
7
7
  const { enabled } = useDemoModeStatus();
8
- return (_jsxs("div", { className: "flex items-start justify-between gap-3 rounded-md border border-border bg-accent/30 px-2.5 py-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-[11px] font-medium text-foreground", children: "Enable demo mode" }), _jsx("p", { className: "text-[10px] text-muted-foreground mt-0.5", children: "Anonymize displayed emails in this browser and reshape supported dashboard charts for presentations. Backend, MCP, and agent results stay real and access-scoped." })] }), _jsx(Switch, { checked: enabled, onChange: (checked) => setBrowserDemoModeEnabled(checked), "aria-label": "Enable demo mode", className: "shrink-0" })] }));
8
+ return (_jsxs("div", { className: "flex items-start justify-between gap-3 rounded-md border border-border bg-accent/30 px-2.5 py-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-[11px] font-medium text-foreground", children: "Enable demo mode" }), _jsx("p", { className: "text-[10px] text-muted-foreground mt-0.5", children: "Anonymize displayed emails in this browser and reshape supported dashboard charts for presentations. Backend, agent integrations, and agent results stay real and access-scoped." })] }), _jsx(Switch, { checked: enabled, onChange: (checked) => setBrowserDemoModeEnabled(checked), "aria-label": "Enable demo mode", className: "shrink-0" })] }));
9
9
  }
10
10
  //# sourceMappingURL=DemoModeSection.js.map
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import { type SettingsSectionId } from "./agent-settings-search.js";
2
3
  import type { SettingsTabItem } from "./SettingsTabsPage.js";
3
4
  export declare function AppDefaultModelField({ engine, models, value, defaultModel, disabled, onValueChange, onEnter, }: {
4
5
  engine: string;
@@ -29,8 +30,9 @@ export declare function SettingsPanel(props: SettingsPanelProps): React.JSX.Elem
29
30
  export declare function ConnectionsSettingsContent({ settingsPanelProps, }: {
30
31
  settingsPanelProps: SettingsPanelProps;
31
32
  }): React.JSX.Element;
32
- export declare function AgentSettingsContent({ className, }?: {
33
+ export declare function AgentSettingsContent({ className, sections, }?: {
33
34
  className?: string;
35
+ sections?: readonly SettingsSectionId[];
34
36
  }): React.JSX.Element;
35
37
  export declare function useAgentSettingsTabs(options?: AgentSettingsTabsOptions): SettingsTabItem[];
36
38
  //# sourceMappingURL=SettingsPanel.d.ts.map