@agent-native/core 0.119.0 → 0.119.2
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/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +23 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/a2a/client.ts +4 -0
- package/corpus/core/src/agent/production-agent.ts +1 -0
- package/corpus/core/src/client/AssistantChat.tsx +11 -50
- package/corpus/core/src/client/ErrorBoundary.tsx +25 -19
- package/corpus/core/src/client/agent-page/AgentTabFrame.tsx +1 -1
- package/corpus/core/src/client/agent-page/AgentTabsPage.tsx +23 -0
- package/corpus/core/src/client/components/ui/message-scroller.tsx +1 -9
- package/corpus/core/src/client/resources/ResourceTree.tsx +3 -3
- package/corpus/core/src/client/resources/ResourcesPanel.tsx +64 -60
- package/corpus/core/src/client/settings/AccountSettingsCard.tsx +228 -0
- package/corpus/core/src/client/settings/SecretsSection.tsx +7 -5
- package/corpus/core/src/client/settings/SettingsPanel.tsx +67 -244
- package/corpus/core/src/client/settings/SettingsTabsPage.tsx +88 -21
- package/corpus/core/src/client/settings/agent-settings-search.ts +0 -2
- package/corpus/core/src/client/settings/index.ts +7 -0
- package/corpus/core/src/client/vite-dev-recovery-script.ts +18 -1
- package/corpus/core/src/db/client.ts +65 -15
- package/corpus/core/src/db/index.ts +2 -0
- package/corpus/core/src/ingestion/figma-node-to-html.ts +20 -99
- package/corpus/core/src/ingestion/figma-paint-math.ts +371 -0
- package/corpus/core/src/ingestion/index.ts +20 -0
- package/corpus/core/src/localization/default-messages.ts +1 -0
- package/corpus/core/src/server/email.ts +33 -1
- package/corpus/core/src/styles/agent-native.css +23 -0
- package/corpus/core/src/templates/default/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/core/src/templates/default/app/routes/settings.tsx +2 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/core/src/vite/client.ts +76 -8
- package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +3 -1
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +9 -13
- package/corpus/templates/analytics/app/components/layout/layout-route-policy.ts +2 -2
- package/corpus/templates/analytics/app/global.css +0 -5
- package/corpus/templates/analytics/app/hooks/use-navigation-state.ts +0 -13
- package/corpus/templates/analytics/app/lib/sql-query.ts +15 -2
- package/corpus/templates/analytics/app/pages/Settings.tsx +2 -24
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +6 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +4 -0
- package/corpus/templates/analytics/app/pages/settings/settings-search.ts +1 -1
- package/corpus/templates/analytics/changelog/2026-07-23-ask-analytics-is-better-centered-with-a-quieter-chat-rail-an.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-23-daily-dashboard-emails-load-read-heavy-panels-reliably.md +6 -0
- package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +2 -2
- package/corpus/templates/analytics/server/jobs/dashboard-report.ts +39 -5
- package/corpus/templates/analytics/server/lib/dashboard-report.ts +186 -62
- package/corpus/templates/analytics/server/lib/first-party-analytics.ts +3 -0
- package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +18 -2
- package/corpus/templates/analytics/shared/dashboard-report-timeouts.ts +3 -0
- package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/assets/app/components/layout/Layout.tsx +3 -4
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +1 -1
- package/corpus/templates/assets/app/global.css +0 -5
- package/corpus/templates/assets/app/hooks/use-navigation-state.ts +0 -22
- package/corpus/templates/assets/app/routes/library.tsx +17 -9
- package/corpus/templates/assets/app/routes/settings.tsx +2 -0
- package/corpus/templates/assets/changelog/2026-07-23-create-and-chat-surfaces-are-better-centered-with-quieter-ch.md +6 -0
- package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/brain/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +1 -1
- package/corpus/templates/brain/app/global.css +0 -9
- package/corpus/templates/brain/app/hooks/use-navigation-state.ts +0 -12
- package/corpus/templates/brain/app/i18n-data.ts +1 -0
- package/corpus/templates/brain/app/lib/settings-navigation.ts +1 -1
- package/corpus/templates/brain/app/routes/settings.tsx +21 -22
- package/corpus/templates/brain/changelog/2026-07-23-ask-brain-is-better-centered-with-quieter-chat-history-and-a.md +6 -0
- package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/calendar/app/pages/Settings.tsx +2 -0
- package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/chat/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +1 -1
- package/corpus/templates/chat/app/hooks/use-navigation-state.ts +0 -15
- package/corpus/templates/chat/app/routes/settings.tsx +2 -0
- package/corpus/templates/chat/changelog/2026-07-23-full-page-chat-is-better-centered-with-quieter-chat-history-.md +6 -0
- package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +2 -0
- package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/content/app/routes/_app.settings.tsx +2 -0
- package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/design/AGENTS.md +18 -5
- package/corpus/templates/design/FIGMA_INTEROPERABILITY.md +25 -12
- package/corpus/templates/design/actions/hydrate-figma-paste-images.ts +115 -0
- package/corpus/templates/design/actions/import-figma-clipboard.ts +83 -18
- package/corpus/templates/design/actions/import-figma-frame.ts +34 -21
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +28 -1
- package/corpus/templates/design/app/components/design/DesignImportPanel.tsx +106 -11
- package/corpus/templates/design/app/components/design/FigmaHydrationDialog.tsx +273 -0
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +7 -7
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +57 -9
- package/corpus/templates/design/app/components/design/design-canvas/iframe-events.ts +10 -0
- package/corpus/templates/design/app/components/design/multi-screen/board-surface-html.ts +8 -1
- package/corpus/templates/design/app/components/design/multi-screen/types.ts +3 -0
- package/corpus/templates/design/app/i18n-data.ts +150 -2
- package/corpus/templates/design/app/lib/design-file-upload.ts +85 -0
- package/corpus/templates/design/app/lib/design-import.ts +19 -1
- package/corpus/templates/design/app/lib/figma-clipboard.ts +110 -10
- package/corpus/templates/design/app/routes/settings.tsx +2 -0
- package/corpus/templates/design/changelog/2026-07-20-paste-figma-frames-directly-onto-the-canvas-no-token-needed.md +6 -0
- package/corpus/templates/design/changelog/2026-07-21-fig-upload-frame-url-and-rate-limit-errors.md +5 -0
- package/corpus/templates/design/changelog/2026-07-22-connecting-a-figma-token-now-actually-fills-in-a-pasted-desi.md +6 -0
- package/corpus/templates/design/changelog/2026-07-22-figma-line-arrow-vectors-and-stroked-icons-now-render-instea.md +6 -0
- package/corpus/templates/design/changelog/2026-07-22-fill-a-no-token-figma-paste-s-images-by-dropping-the-origina.md +6 -0
- package/corpus/templates/design/changelog/2026-07-22-imported-and-pasted-figma-frames-now-render-faithfully-fixed.md +6 -0
- package/corpus/templates/design/server/handlers/import-design-file.ts +50 -0
- package/corpus/templates/design/server/lib/fig-file-decoder.ts +90 -49
- package/corpus/templates/design/server/lib/fig-file-import.ts +19 -5
- package/corpus/templates/design/server/lib/fig-file-to-html.ts +583 -78
- package/corpus/templates/design/server/lib/figma-clipboard-local-decode.ts +238 -0
- package/corpus/templates/design/server/lib/figma-image-hydration.ts +389 -0
- package/corpus/templates/design/server/lib/figma-node-import.ts +136 -36
- package/corpus/templates/design/server/register-secrets.ts +14 -2
- package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/dispatch/app/routes/settings.tsx +2 -0
- package/corpus/templates/dispatch/changelog/2026-07-23-quieter-progressive-disclosure.md +6 -0
- package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/forms/app/global.css +0 -5
- package/corpus/templates/forms/app/hooks/use-navigation-state.ts +0 -7
- package/corpus/templates/forms/app/root.tsx +1 -7
- package/corpus/templates/forms/app/routes/_app.settings.tsx +2 -0
- package/corpus/templates/forms/changelog/2026-07-23-ask-forms-is-better-centered-with-quieter-chat-history-and-a.md +6 -0
- package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/macros/app/routes/settings.tsx +2 -0
- package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/mail/app/pages/SettingsPage.tsx +3 -1
- package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/plan/app/components/layout/Layout.tsx +2 -2
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +1 -13
- package/corpus/templates/plan/app/hooks/use-navigation-state.ts +0 -4
- package/corpus/templates/plan/app/routes/settings.tsx +2 -0
- package/corpus/templates/plan/changelog/2026-07-23-ask-plan-is-now-a-clean-full-page-chat-surface-with-better-c.md +6 -0
- package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/templates/slides/app/routes/settings.tsx +2 -0
- package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +28 -0
- package/corpus/toolkit/CHANGELOG.md +6 -0
- package/corpus/toolkit/package.json +1 -1
- package/corpus/toolkit/src/chat-history.css +2 -2
- package/corpus/toolkit/src/composer/PromptComposer.tsx +0 -31
- package/corpus/toolkit/src/composer/RealtimeVoiceMode.tsx +7 -2
- package/corpus/toolkit/src/styles.css +183 -36
- package/dist/a2a/client.d.ts +2 -0
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +2 -0
- package/dist/a2a/client.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +1 -0
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +11 -42
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/ErrorBoundary.d.ts.map +1 -1
- package/dist/client/ErrorBoundary.js +3 -2
- package/dist/client/ErrorBoundary.js.map +1 -1
- package/dist/client/agent-page/AgentTabFrame.js +1 -1
- package/dist/client/agent-page/AgentTabFrame.js.map +1 -1
- package/dist/client/agent-page/AgentTabsPage.d.ts.map +1 -1
- package/dist/client/agent-page/AgentTabsPage.js +13 -1
- package/dist/client/agent-page/AgentTabsPage.js.map +1 -1
- package/dist/client/components/ui/message-scroller.d.ts.map +1 -1
- package/dist/client/components/ui/message-scroller.js +2 -2
- package/dist/client/components/ui/message-scroller.js.map +1 -1
- package/dist/client/resources/ResourceTree.js +2 -2
- package/dist/client/resources/ResourceTree.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +11 -11
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/settings/AccountSettingsCard.d.ts +9 -0
- package/dist/client/settings/AccountSettingsCard.d.ts.map +1 -0
- package/dist/client/settings/AccountSettingsCard.js +78 -0
- package/dist/client/settings/AccountSettingsCard.js.map +1 -0
- package/dist/client/settings/SecretsSection.d.ts.map +1 -1
- package/dist/client/settings/SecretsSection.js +2 -2
- package/dist/client/settings/SecretsSection.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts +3 -0
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +25 -77
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/SettingsTabsPage.d.ts +5 -1
- package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -1
- package/dist/client/settings/SettingsTabsPage.js +35 -9
- package/dist/client/settings/SettingsTabsPage.js.map +1 -1
- package/dist/client/settings/agent-settings-search.d.ts.map +1 -1
- package/dist/client/settings/agent-settings-search.js +0 -2
- package/dist/client/settings/agent-settings-search.js.map +1 -1
- package/dist/client/settings/index.d.ts +2 -1
- package/dist/client/settings/index.d.ts.map +1 -1
- package/dist/client/settings/index.js +2 -1
- package/dist/client/settings/index.js.map +1 -1
- package/dist/client/vite-dev-recovery-script.d.ts.map +1 -1
- package/dist/client/vite-dev-recovery-script.js +18 -1
- package/dist/client/vite-dev-recovery-script.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/db/client.d.ts +18 -8
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +34 -11
- package/dist/db/client.js.map +1 -1
- package/dist/db/index.d.ts +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js.map +1 -1
- package/dist/ingestion/figma-node-to-html.d.ts.map +1 -1
- package/dist/ingestion/figma-node-to-html.js +14 -88
- package/dist/ingestion/figma-node-to-html.js.map +1 -1
- package/dist/ingestion/figma-paint-math.d.ts +157 -0
- package/dist/ingestion/figma-paint-math.d.ts.map +1 -0
- package/dist/ingestion/figma-paint-math.js +274 -0
- package/dist/ingestion/figma-paint-math.js.map +1 -0
- package/dist/ingestion/index.d.ts +1 -0
- package/dist/ingestion/index.d.ts.map +1 -1
- package/dist/ingestion/index.js +1 -0
- package/dist/ingestion/index.js.map +1 -1
- package/dist/localization/default-messages.d.ts +1 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +1 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts +3 -3
- package/dist/provider-api/actions/custom-provider-registration.d.ts +9 -9
- package/dist/provider-api/actions/provider-api.d.ts +11 -11
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/secrets/routes.d.ts +6 -6
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/email.d.ts +1 -0
- package/dist/server/email.d.ts.map +1 -1
- package/dist/server/email.js +29 -1
- package/dist/server/email.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/styles/agent-native.css +23 -0
- package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +28 -0
- package/dist/templates/chat/app/components/layout/Layout.tsx +1 -1
- package/dist/templates/chat/app/components/layout/Sidebar.tsx +1 -1
- package/dist/templates/chat/app/hooks/use-navigation-state.ts +0 -15
- package/dist/templates/chat/app/routes/settings.tsx +2 -0
- package/dist/templates/chat/changelog/2026-07-23-full-page-chat-is-better-centered-with-quieter-chat-history-.md +6 -0
- package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +28 -0
- package/dist/templates/default/app/routes/settings.tsx +2 -0
- package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +28 -0
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +68 -6
- package/dist/vite/client.js.map +1 -1
- package/package.json +2 -2
- package/src/a2a/client.ts +4 -0
- package/src/agent/production-agent.ts +1 -0
- package/src/client/AssistantChat.tsx +11 -50
- package/src/client/ErrorBoundary.tsx +25 -19
- package/src/client/agent-page/AgentTabFrame.tsx +1 -1
- package/src/client/agent-page/AgentTabsPage.tsx +23 -0
- package/src/client/components/ui/message-scroller.tsx +1 -9
- package/src/client/resources/ResourceTree.tsx +3 -3
- package/src/client/resources/ResourcesPanel.tsx +64 -60
- package/src/client/settings/AccountSettingsCard.tsx +228 -0
- package/src/client/settings/SecretsSection.tsx +7 -5
- package/src/client/settings/SettingsPanel.tsx +67 -244
- package/src/client/settings/SettingsTabsPage.tsx +88 -21
- package/src/client/settings/agent-settings-search.ts +0 -2
- package/src/client/settings/index.ts +7 -0
- package/src/client/vite-dev-recovery-script.ts +18 -1
- package/src/db/client.ts +65 -15
- package/src/db/index.ts +2 -0
- package/src/ingestion/figma-node-to-html.ts +20 -99
- package/src/ingestion/figma-paint-math.ts +371 -0
- package/src/ingestion/index.ts +20 -0
- package/src/localization/default-messages.ts +1 -0
- package/src/server/email.ts +33 -1
- package/src/styles/agent-native.css +23 -0
- package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +28 -0
- package/src/templates/chat/app/components/layout/Layout.tsx +1 -1
- package/src/templates/chat/app/components/layout/Sidebar.tsx +1 -1
- package/src/templates/chat/app/hooks/use-navigation-state.ts +0 -15
- package/src/templates/chat/app/routes/settings.tsx +2 -0
- package/src/templates/chat/changelog/2026-07-23-full-page-chat-is-better-centered-with-quieter-chat-history-.md +6 -0
- package/src/templates/default/.agents/skills/frontend-design/SKILL.md +28 -0
- package/src/templates/default/app/routes/settings.tsx +2 -0
- package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +28 -0
- package/src/vite/client.ts +76 -8
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
markAgentChatHomeHandoff,
|
|
3
2
|
navigateWithAgentChatViewTransition,
|
|
4
3
|
sendToAgentChat,
|
|
5
4
|
useChatThreads,
|
|
@@ -243,7 +242,7 @@ function PlanChatsSection({ collapsed }: { collapsed: boolean }) {
|
|
|
243
242
|
}
|
|
244
243
|
|
|
245
244
|
return (
|
|
246
|
-
<div className="mt-2
|
|
245
|
+
<div className="mt-2 ms-4">
|
|
247
246
|
<ChatHistoryRail
|
|
248
247
|
items={chatItems}
|
|
249
248
|
activeId={activeThreadId}
|
|
@@ -316,17 +315,11 @@ function PlansSidebarSection({ collapsed }: { collapsed: boolean }) {
|
|
|
316
315
|
signInForPlanCreate();
|
|
317
316
|
return;
|
|
318
317
|
}
|
|
319
|
-
if (location.pathname === "/") {
|
|
320
|
-
markAgentChatHomeHandoff("plans");
|
|
321
|
-
}
|
|
322
318
|
navigateWithAgentChatViewTransition(navigate, "/plans?create=1");
|
|
323
319
|
};
|
|
324
320
|
|
|
325
321
|
const openPlanPath = (event: MouseEvent<HTMLAnchorElement>, path: string) => {
|
|
326
322
|
event.preventDefault();
|
|
327
|
-
if (location.pathname === "/") {
|
|
328
|
-
markAgentChatHomeHandoff("plans");
|
|
329
|
-
}
|
|
330
323
|
navigateWithAgentChatViewTransition(navigate, path);
|
|
331
324
|
};
|
|
332
325
|
|
|
@@ -615,11 +608,6 @@ export function Sidebar({
|
|
|
615
608
|
const link = (
|
|
616
609
|
<Link
|
|
617
610
|
to={item.href}
|
|
618
|
-
onClick={() => {
|
|
619
|
-
if (item.href !== "/" && location.pathname === "/") {
|
|
620
|
-
markAgentChatHomeHandoff("plans");
|
|
621
|
-
}
|
|
622
|
-
}}
|
|
623
611
|
className={cn(
|
|
624
612
|
"flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors",
|
|
625
613
|
isActive
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { markAgentChatHomeHandoff } from "@agent-native/core/client/agent-chat";
|
|
2
1
|
import {
|
|
3
2
|
agentNativePath,
|
|
4
3
|
appBasePath,
|
|
@@ -108,9 +107,6 @@ export function useNavigationState() {
|
|
|
108
107
|
deleteCommand();
|
|
109
108
|
const path = planNavigateCommandPath(cmd);
|
|
110
109
|
void prewarmPlanRoutePath(path);
|
|
111
|
-
if (location.pathname === "/" && path !== "/") {
|
|
112
|
-
markAgentChatHomeHandoff("plans");
|
|
113
|
-
}
|
|
114
110
|
const commitNavigation = () =>
|
|
115
111
|
navigate(path, { replace: true, flushSync: true });
|
|
116
112
|
if (
|
|
@@ -2,6 +2,7 @@ import { ChangelogSettingsCard } from "@agent-native/core/client/changelog";
|
|
|
2
2
|
import { LanguagePicker, useT } from "@agent-native/core/client/i18n";
|
|
3
3
|
import { TeamPage } from "@agent-native/core/client/org";
|
|
4
4
|
import {
|
|
5
|
+
AccountSettingsCard,
|
|
5
6
|
SettingsTabsPage,
|
|
6
7
|
useAgentSettingsTabs,
|
|
7
8
|
type SettingsSearchEntry,
|
|
@@ -51,6 +52,7 @@ export default function SettingsRoute() {
|
|
|
51
52
|
|
|
52
53
|
return (
|
|
53
54
|
<SettingsTabsPage
|
|
55
|
+
account={<AccountSettingsCard />}
|
|
54
56
|
teamLabel={t("header.team")}
|
|
55
57
|
extraTabs={agentSettingsTabs}
|
|
56
58
|
generalSearchEntries={generalSearchEntries}
|
|
@@ -35,6 +35,34 @@ Then implement working code that is cohesive, accessible, responsive, and polish
|
|
|
35
35
|
|
|
36
36
|
Default to Apple/Linear-level restraint: make the primary workflow obvious, then remove everything that does not help that workflow right now. A polished UI often has fewer visible controls, fewer borders, fewer labels, and fewer explanatory surfaces than the first reasonable implementation.
|
|
37
37
|
|
|
38
|
+
### Progressive Disclosure Is A Design Requirement
|
|
39
|
+
|
|
40
|
+
Treat an all-at-once interface as a defect to fix during design, not as a
|
|
41
|
+
styling preference. Before coding, inventory every piece of content and action
|
|
42
|
+
on the surface, then assign each one to the smallest useful visibility level:
|
|
43
|
+
|
|
44
|
+
1. **Immediate** — the page title, current state, one primary action, and the
|
|
45
|
+
compact context needed to choose what to do next.
|
|
46
|
+
2. **Expanded** — the details needed for the selected item or active workflow.
|
|
47
|
+
3. **On demand** — advanced settings, diagnostics, credentials, metadata,
|
|
48
|
+
destructive actions, documentation, and rarely used tools.
|
|
49
|
+
|
|
50
|
+
Use single-select accordions or simple disclosure rows for sibling panels when
|
|
51
|
+
the user is choosing one item at a time. Inside an expanded panel, keep another
|
|
52
|
+
layer for independent concerns instead of dumping every form, explanation, and
|
|
53
|
+
secondary action into the first reveal. Prefer one flat panel with alignment,
|
|
54
|
+
dividers, and whitespace over nested cards; provider or product icons should
|
|
55
|
+
not receive decorative borders or containers unless the container communicates
|
|
56
|
+
state or interaction. A collapsed row should still show the item name, status,
|
|
57
|
+
and a concise summary so the user can scan the whole surface without opening
|
|
58
|
+
everything.
|
|
59
|
+
|
|
60
|
+
Before shipping, ask: “What can disappear until the user asks for it?” Then
|
|
61
|
+
verify collapsed, expanded, loading, empty, error, and narrow-width states.
|
|
62
|
+
If the first viewport contains multiple forms, repeated explanatory copy,
|
|
63
|
+
documentation links, and controls for unrelated tasks, the surface has not
|
|
64
|
+
passed this requirement yet.
|
|
65
|
+
|
|
38
66
|
- **Start by subtracting**: Before adding a visible control, banner, toolbar row, card, or explanatory block, ask what can be removed, merged, renamed, or moved into an existing affordance.
|
|
39
67
|
- **One primary action**: Each surface should have one dominant next action. Secondary actions belong in menus, popovers, command palettes, disclosure rows, or contextual hover/focus states unless they are used constantly.
|
|
40
68
|
- **Progressively disclose rare work**: Advanced options, diagnostics, metadata, settings, import/export, destructive actions, and inspection tools should stay tucked away until requested. Prefer small icon triggers with tooltips, popovers, drawers, or detail panels over permanent chrome.
|
|
@@ -2,6 +2,7 @@ import { ChangelogSettingsCard } from "@agent-native/core/client/changelog";
|
|
|
2
2
|
import { LanguagePicker, useT } from "@agent-native/core/client/i18n";
|
|
3
3
|
import { TeamPage } from "@agent-native/core/client/org";
|
|
4
4
|
import {
|
|
5
|
+
AccountSettingsCard,
|
|
5
6
|
SettingsTabsPage,
|
|
6
7
|
useAgentSettingsTabs,
|
|
7
8
|
type SettingsSearchEntry,
|
|
@@ -45,6 +46,7 @@ export default function SettingsRoute() {
|
|
|
45
46
|
|
|
46
47
|
return (
|
|
47
48
|
<SettingsTabsPage
|
|
49
|
+
account={<AccountSettingsCard />}
|
|
48
50
|
teamLabel={t("navigation.team")}
|
|
49
51
|
extraTabs={agentSettingsTabs}
|
|
50
52
|
generalSearchEntries={generalSearchEntries}
|
|
@@ -35,6 +35,34 @@ Then implement working code that is cohesive, accessible, responsive, and polish
|
|
|
35
35
|
|
|
36
36
|
Default to Apple/Linear-level restraint: make the primary workflow obvious, then remove everything that does not help that workflow right now. A polished UI often has fewer visible controls, fewer borders, fewer labels, and fewer explanatory surfaces than the first reasonable implementation.
|
|
37
37
|
|
|
38
|
+
### Progressive Disclosure Is A Design Requirement
|
|
39
|
+
|
|
40
|
+
Treat an all-at-once interface as a defect to fix during design, not as a
|
|
41
|
+
styling preference. Before coding, inventory every piece of content and action
|
|
42
|
+
on the surface, then assign each one to the smallest useful visibility level:
|
|
43
|
+
|
|
44
|
+
1. **Immediate** — the page title, current state, one primary action, and the
|
|
45
|
+
compact context needed to choose what to do next.
|
|
46
|
+
2. **Expanded** — the details needed for the selected item or active workflow.
|
|
47
|
+
3. **On demand** — advanced settings, diagnostics, credentials, metadata,
|
|
48
|
+
destructive actions, documentation, and rarely used tools.
|
|
49
|
+
|
|
50
|
+
Use single-select accordions or simple disclosure rows for sibling panels when
|
|
51
|
+
the user is choosing one item at a time. Inside an expanded panel, keep another
|
|
52
|
+
layer for independent concerns instead of dumping every form, explanation, and
|
|
53
|
+
secondary action into the first reveal. Prefer one flat panel with alignment,
|
|
54
|
+
dividers, and whitespace over nested cards; provider or product icons should
|
|
55
|
+
not receive decorative borders or containers unless the container communicates
|
|
56
|
+
state or interaction. A collapsed row should still show the item name, status,
|
|
57
|
+
and a concise summary so the user can scan the whole surface without opening
|
|
58
|
+
everything.
|
|
59
|
+
|
|
60
|
+
Before shipping, ask: “What can disappear until the user asks for it?” Then
|
|
61
|
+
verify collapsed, expanded, loading, empty, error, and narrow-width states.
|
|
62
|
+
If the first viewport contains multiple forms, repeated explanatory copy,
|
|
63
|
+
documentation links, and controls for unrelated tasks, the surface has not
|
|
64
|
+
passed this requirement yet.
|
|
65
|
+
|
|
38
66
|
- **Start by subtracting**: Before adding a visible control, banner, toolbar row, card, or explanatory block, ask what can be removed, merged, renamed, or moved into an existing affordance.
|
|
39
67
|
- **One primary action**: Each surface should have one dominant next action. Secondary actions belong in menus, popovers, command palettes, disclosure rows, or contextual hover/focus states unless they are used constantly.
|
|
40
68
|
- **Progressively disclose rare work**: Advanced options, diagnostics, metadata, settings, import/export, destructive actions, and inspection tools should stay tucked away until requested. Prefer small icon triggers with tooltips, popovers, drawers, or detail panels over permanent chrome.
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
white-space: nowrap;
|
|
212
212
|
font-size: 12px;
|
|
213
213
|
font-weight: 500;
|
|
214
|
-
color: hsl(var(--foreground));
|
|
214
|
+
color: hsl(var(--muted-foreground));
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
.an-chat-history-row--active .an-chat-history-row__title {
|
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
.an-chat-history--rail
|
|
228
228
|
.an-chat-history-row--pinned:not(.an-chat-history-row--active)
|
|
229
229
|
.an-chat-history-row__title {
|
|
230
|
-
color: hsl(var(--foreground));
|
|
230
|
+
color: hsl(var(--muted-foreground));
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
.an-chat-history-row__timestamp {
|
|
@@ -59,11 +59,6 @@ import type {
|
|
|
59
59
|
} from "./types.js";
|
|
60
60
|
|
|
61
61
|
const MAX_INLINE_TEXT_FILE_CHARS = 60_000;
|
|
62
|
-
const SUBMIT_ENGINE_STATUS_TIMEOUT_MS = 1000;
|
|
63
|
-
|
|
64
|
-
export function canSubmitWithAgentEngineState(state: string): boolean {
|
|
65
|
-
return state === "configured";
|
|
66
|
-
}
|
|
67
62
|
|
|
68
63
|
/**
|
|
69
64
|
* Files the user attached via the "+" button in PromptComposer. The host owns
|
|
@@ -536,31 +531,6 @@ function PromptComposerInner({
|
|
|
536
531
|
window.dispatchEvent(new Event("agent-engine:configured-changed"));
|
|
537
532
|
}
|
|
538
533
|
}, []);
|
|
539
|
-
const ensureAgentEngineReadyForSubmit = useCallback(async () => {
|
|
540
|
-
if (!resolvedModelStatusChecksEnabled) return true;
|
|
541
|
-
const state =
|
|
542
|
-
agentEngineConfigured.state === "missing"
|
|
543
|
-
? "missing"
|
|
544
|
-
: await modelsAdapter.fetchAgentEngineConfiguredState!(
|
|
545
|
-
resolvedModelStatusChecksEnabled,
|
|
546
|
-
{
|
|
547
|
-
timeoutMs: SUBMIT_ENGINE_STATUS_TIMEOUT_MS,
|
|
548
|
-
},
|
|
549
|
-
);
|
|
550
|
-
if (state === "missing") {
|
|
551
|
-
bounceMissingKeySetup();
|
|
552
|
-
return false;
|
|
553
|
-
}
|
|
554
|
-
if (typeof window !== "undefined") {
|
|
555
|
-
window.dispatchEvent(new Event("agent-engine:configured-changed"));
|
|
556
|
-
}
|
|
557
|
-
return canSubmitWithAgentEngineState(state);
|
|
558
|
-
}, [
|
|
559
|
-
agentEngineConfigured.state,
|
|
560
|
-
bounceMissingKeySetup,
|
|
561
|
-
modelsAdapter,
|
|
562
|
-
resolvedModelStatusChecksEnabled,
|
|
563
|
-
]);
|
|
564
534
|
const retryAgentEngineStatus = useCallback(() => {
|
|
565
535
|
if (typeof window !== "undefined") {
|
|
566
536
|
window.dispatchEvent(new Event("agent-engine:configured-changed"));
|
|
@@ -657,7 +627,6 @@ function PromptComposerInner({
|
|
|
657
627
|
initialText={initialText}
|
|
658
628
|
initialTextKey={initialTextKey}
|
|
659
629
|
onSubmit={handleSubmit}
|
|
660
|
-
onBeforeSubmit={ensureAgentEngineReadyForSubmit}
|
|
661
630
|
clearOnSubmit={!preserveDraftOnSubmit}
|
|
662
631
|
plusMenuMode={
|
|
663
632
|
plusMenuMode ?? (attachmentsEnabled ? "upload-only" : "hidden")
|
|
@@ -775,7 +775,10 @@ export function RealtimeVoiceModeDock({
|
|
|
775
775
|
}
|
|
776
776
|
|
|
777
777
|
const animation = glowRef.current.animate(
|
|
778
|
-
[
|
|
778
|
+
[
|
|
779
|
+
{ "--agent-realtime-voice-angle": "0deg" },
|
|
780
|
+
{ "--agent-realtime-voice-angle": "360deg" },
|
|
781
|
+
] as Keyframe[],
|
|
779
782
|
{
|
|
780
783
|
duration: 12_000,
|
|
781
784
|
easing: "linear",
|
|
@@ -989,7 +992,9 @@ export function RealtimeVoiceModeDock({
|
|
|
989
992
|
"agent-realtime-voice-glow",
|
|
990
993
|
workingGlowActive && "agent-realtime-voice-working",
|
|
991
994
|
)}
|
|
992
|
-
|
|
995
|
+
>
|
|
996
|
+
<span className="agent-realtime-voice-edge-light" />
|
|
997
|
+
</span>
|
|
993
998
|
) : null}
|
|
994
999
|
<span className="relative z-10 flex items-center justify-center">
|
|
995
1000
|
{state === "connecting" ? (
|
|
@@ -20,66 +20,213 @@
|
|
|
20
20
|
*/
|
|
21
21
|
@source "./**/*.{js,ts,tsx}";
|
|
22
22
|
|
|
23
|
+
@property --agent-realtime-voice-angle {
|
|
24
|
+
syntax: "<angle>";
|
|
25
|
+
inherits: true;
|
|
26
|
+
initial-value: 0deg;
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
.agent-realtime-voice-glow {
|
|
24
|
-
--agent-realtime-voice-
|
|
25
|
-
--agent-realtime-voice-
|
|
30
|
+
--agent-realtime-voice-angle: 0deg;
|
|
31
|
+
--agent-realtime-voice-proximity: 72;
|
|
32
|
+
--agent-realtime-voice-edge-sensitivity: 30;
|
|
33
|
+
--agent-realtime-voice-color-sensitivity: 50;
|
|
34
|
+
--agent-realtime-voice-cone-spread: 25;
|
|
35
|
+
--agent-realtime-voice-fill-opacity: 0.5;
|
|
36
|
+
--agent-realtime-voice-card-bg: hsl(var(--background));
|
|
37
|
+
--agent-realtime-voice-glow-color: 40 80% 80%;
|
|
38
|
+
--agent-realtime-voice-glow-padding: 18px;
|
|
39
|
+
--agent-realtime-voice-gradient-one: radial-gradient(
|
|
40
|
+
at 80% 55%,
|
|
41
|
+
#c084fc 0,
|
|
42
|
+
transparent 50%
|
|
43
|
+
);
|
|
44
|
+
--agent-realtime-voice-gradient-two: radial-gradient(
|
|
45
|
+
at 69% 34%,
|
|
46
|
+
#f472b6 0,
|
|
47
|
+
transparent 50%
|
|
48
|
+
);
|
|
49
|
+
--agent-realtime-voice-gradient-three: radial-gradient(
|
|
50
|
+
at 8% 6%,
|
|
51
|
+
#38bdf8 0,
|
|
52
|
+
transparent 50%
|
|
53
|
+
);
|
|
54
|
+
--agent-realtime-voice-gradient-four: radial-gradient(
|
|
55
|
+
at 41% 38%,
|
|
56
|
+
#c084fc 0,
|
|
57
|
+
transparent 50%
|
|
58
|
+
);
|
|
59
|
+
--agent-realtime-voice-gradient-five: radial-gradient(
|
|
60
|
+
at 86% 85%,
|
|
61
|
+
#f472b6 0,
|
|
62
|
+
transparent 50%
|
|
63
|
+
);
|
|
64
|
+
--agent-realtime-voice-gradient-six: radial-gradient(
|
|
65
|
+
at 82% 18%,
|
|
66
|
+
#38bdf8 0,
|
|
67
|
+
transparent 50%
|
|
68
|
+
);
|
|
69
|
+
--agent-realtime-voice-gradient-seven: radial-gradient(
|
|
70
|
+
at 51% 4%,
|
|
71
|
+
#f472b6 0,
|
|
72
|
+
transparent 50%
|
|
73
|
+
);
|
|
26
74
|
position: absolute;
|
|
27
75
|
z-index: 0;
|
|
28
|
-
inset: -
|
|
76
|
+
inset: -1px;
|
|
29
77
|
border-radius: inherit;
|
|
78
|
+
isolation: isolate;
|
|
30
79
|
pointer-events: none;
|
|
31
|
-
transform:
|
|
32
|
-
will-change: transform;
|
|
80
|
+
transform: translate3d(0, 0, 0.01px);
|
|
33
81
|
}
|
|
34
82
|
|
|
35
83
|
.agent-realtime-voice-working {
|
|
36
|
-
--agent-realtime-voice-
|
|
37
|
-
--agent-realtime-voice-halo-opacity: 0.58;
|
|
84
|
+
--agent-realtime-voice-proximity: 96;
|
|
38
85
|
}
|
|
39
86
|
|
|
40
87
|
.agent-realtime-voice-glow::before,
|
|
41
88
|
.agent-realtime-voice-glow::after {
|
|
42
89
|
position: absolute;
|
|
43
90
|
inset: 0;
|
|
91
|
+
z-index: 0;
|
|
44
92
|
border-radius: inherit;
|
|
45
93
|
pointer-events: none;
|
|
46
94
|
content: "";
|
|
47
|
-
|
|
48
|
-
from -18deg,
|
|
49
|
-
transparent 0deg 228deg,
|
|
50
|
-
oklch(0.65 0.2 294 / 0.18) 244deg,
|
|
51
|
-
oklch(0.7 0.2 265 / 0.7) 274deg,
|
|
52
|
-
oklch(0.79 0.16 235 / 0.96) 306deg,
|
|
53
|
-
oklch(0.96 0.035 210) 326deg,
|
|
54
|
-
oklch(0.88 0.11 202 / 0.72) 340deg,
|
|
55
|
-
transparent 360deg
|
|
56
|
-
);
|
|
57
|
-
opacity: var(--agent-realtime-voice-edge-opacity);
|
|
58
|
-
padding: 1.5px;
|
|
59
|
-
-webkit-mask:
|
|
60
|
-
linear-gradient(#000 0 0) content-box,
|
|
61
|
-
linear-gradient(#000 0 0);
|
|
62
|
-
mask:
|
|
63
|
-
linear-gradient(#000 0 0) content-box,
|
|
64
|
-
linear-gradient(#000 0 0);
|
|
65
|
-
-webkit-mask-composite: xor;
|
|
66
|
-
mask-composite: exclude;
|
|
67
|
-
transition: opacity 220ms ease-out;
|
|
95
|
+
transition: opacity 250ms ease-out;
|
|
68
96
|
}
|
|
69
97
|
|
|
70
98
|
.agent-realtime-voice-glow::before {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
99
|
+
border: 1px solid transparent;
|
|
100
|
+
background:
|
|
101
|
+
linear-gradient(
|
|
102
|
+
var(--agent-realtime-voice-card-bg),
|
|
103
|
+
var(--agent-realtime-voice-card-bg)
|
|
104
|
+
)
|
|
105
|
+
padding-box,
|
|
106
|
+
linear-gradient(transparent 0 100%) border-box,
|
|
107
|
+
var(--agent-realtime-voice-gradient-one) border-box,
|
|
108
|
+
var(--agent-realtime-voice-gradient-two) border-box,
|
|
109
|
+
var(--agent-realtime-voice-gradient-three) border-box,
|
|
110
|
+
var(--agent-realtime-voice-gradient-four) border-box,
|
|
111
|
+
var(--agent-realtime-voice-gradient-five) border-box,
|
|
112
|
+
var(--agent-realtime-voice-gradient-six) border-box,
|
|
113
|
+
var(--agent-realtime-voice-gradient-seven) border-box,
|
|
114
|
+
linear-gradient(#c084fc 0 100%) border-box;
|
|
115
|
+
opacity: calc(
|
|
116
|
+
(
|
|
117
|
+
var(--agent-realtime-voice-proximity) -
|
|
118
|
+
var(--agent-realtime-voice-color-sensitivity)
|
|
119
|
+
) /
|
|
120
|
+
(100 - var(--agent-realtime-voice-color-sensitivity))
|
|
121
|
+
);
|
|
122
|
+
mask-image: conic-gradient(
|
|
123
|
+
from var(--agent-realtime-voice-angle) at center,
|
|
124
|
+
#000 calc(var(--agent-realtime-voice-cone-spread) * 1%),
|
|
125
|
+
rgb(0 0 0 / 75%) calc((var(--agent-realtime-voice-cone-spread) + 4) * 1%),
|
|
126
|
+
rgb(0 0 0 / 45%) calc((var(--agent-realtime-voice-cone-spread) + 8) * 1%),
|
|
127
|
+
rgb(0 0 0 / 18%) calc((var(--agent-realtime-voice-cone-spread) + 12) * 1%),
|
|
128
|
+
transparent calc((var(--agent-realtime-voice-cone-spread) + 15) * 1%),
|
|
129
|
+
transparent calc((100 - var(--agent-realtime-voice-cone-spread) - 15) * 1%),
|
|
130
|
+
rgb(0 0 0 / 18%)
|
|
131
|
+
calc((100 - var(--agent-realtime-voice-cone-spread) - 12) * 1%),
|
|
132
|
+
rgb(0 0 0 / 45%)
|
|
133
|
+
calc((100 - var(--agent-realtime-voice-cone-spread) - 8) * 1%),
|
|
134
|
+
rgb(0 0 0 / 75%)
|
|
135
|
+
calc((100 - var(--agent-realtime-voice-cone-spread) - 4) * 1%),
|
|
136
|
+
#000 calc((100 - var(--agent-realtime-voice-cone-spread)) * 1%)
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.agent-realtime-voice-glow::after {
|
|
141
|
+
border: 1px solid transparent;
|
|
142
|
+
background:
|
|
143
|
+
var(--agent-realtime-voice-gradient-one) padding-box,
|
|
144
|
+
var(--agent-realtime-voice-gradient-two) padding-box,
|
|
145
|
+
var(--agent-realtime-voice-gradient-three) padding-box,
|
|
146
|
+
var(--agent-realtime-voice-gradient-four) padding-box,
|
|
147
|
+
var(--agent-realtime-voice-gradient-five) padding-box,
|
|
148
|
+
var(--agent-realtime-voice-gradient-six) padding-box,
|
|
149
|
+
var(--agent-realtime-voice-gradient-seven) padding-box,
|
|
150
|
+
linear-gradient(#c084fc 0 100%) padding-box;
|
|
151
|
+
mask-image:
|
|
152
|
+
linear-gradient(to bottom, #000, #000),
|
|
153
|
+
radial-gradient(ellipse at 50% 50%, #000 40%, transparent 65%),
|
|
154
|
+
radial-gradient(ellipse at 66% 66%, #000 5%, transparent 40%),
|
|
155
|
+
radial-gradient(ellipse at 33% 33%, #000 5%, transparent 40%),
|
|
156
|
+
radial-gradient(ellipse at 66% 33%, #000 5%, transparent 40%),
|
|
157
|
+
radial-gradient(ellipse at 33% 66%, #000 5%, transparent 40%),
|
|
158
|
+
conic-gradient(
|
|
159
|
+
from var(--agent-realtime-voice-angle) at center,
|
|
160
|
+
transparent 5%,
|
|
161
|
+
#000 15%,
|
|
162
|
+
#000 85%,
|
|
163
|
+
transparent 95%
|
|
164
|
+
);
|
|
165
|
+
mask-composite: subtract, add, add, add, add, add;
|
|
166
|
+
opacity: calc(
|
|
167
|
+
var(--agent-realtime-voice-fill-opacity) *
|
|
168
|
+
(
|
|
169
|
+
var(--agent-realtime-voice-proximity) -
|
|
170
|
+
var(--agent-realtime-voice-color-sensitivity)
|
|
171
|
+
) /
|
|
172
|
+
(100 - var(--agent-realtime-voice-color-sensitivity))
|
|
173
|
+
);
|
|
174
|
+
mix-blend-mode: soft-light;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.agent-realtime-voice-edge-light {
|
|
178
|
+
position: absolute;
|
|
179
|
+
z-index: 1;
|
|
180
|
+
inset: calc(var(--agent-realtime-voice-glow-padding) * -1);
|
|
181
|
+
border-radius: inherit;
|
|
182
|
+
pointer-events: none;
|
|
183
|
+
opacity: calc(
|
|
184
|
+
(
|
|
185
|
+
var(--agent-realtime-voice-proximity) -
|
|
186
|
+
var(--agent-realtime-voice-edge-sensitivity)
|
|
187
|
+
) /
|
|
188
|
+
(100 - var(--agent-realtime-voice-edge-sensitivity))
|
|
189
|
+
);
|
|
190
|
+
mask-image: conic-gradient(
|
|
191
|
+
from var(--agent-realtime-voice-angle) at center,
|
|
192
|
+
#000 2.5%,
|
|
193
|
+
rgb(0 0 0 / 85%) 4%,
|
|
194
|
+
rgb(0 0 0 / 55%) 7%,
|
|
195
|
+
rgb(0 0 0 / 25%) 11%,
|
|
196
|
+
transparent 15%,
|
|
197
|
+
transparent 85%,
|
|
198
|
+
rgb(0 0 0 / 25%) 89%,
|
|
199
|
+
rgb(0 0 0 / 55%) 93%,
|
|
200
|
+
rgb(0 0 0 / 85%) 96%,
|
|
201
|
+
#000 97.5%
|
|
202
|
+
);
|
|
78
203
|
mix-blend-mode: plus-lighter;
|
|
204
|
+
transition: opacity 250ms ease-out;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.agent-realtime-voice-edge-light::before {
|
|
208
|
+
position: absolute;
|
|
209
|
+
inset: var(--agent-realtime-voice-glow-padding);
|
|
210
|
+
border-radius: inherit;
|
|
211
|
+
content: "";
|
|
212
|
+
box-shadow:
|
|
213
|
+
inset 0 0 0 1px hsl(var(--agent-realtime-voice-glow-color) / 100%),
|
|
214
|
+
inset 0 0 1px hsl(var(--agent-realtime-voice-glow-color) / 60%),
|
|
215
|
+
inset 0 0 3px hsl(var(--agent-realtime-voice-glow-color) / 50%),
|
|
216
|
+
inset 0 0 6px hsl(var(--agent-realtime-voice-glow-color) / 40%),
|
|
217
|
+
inset 0 0 15px hsl(var(--agent-realtime-voice-glow-color) / 30%),
|
|
218
|
+
inset 0 0 25px 2px hsl(var(--agent-realtime-voice-glow-color) / 20%),
|
|
219
|
+
inset 0 0 50px 2px hsl(var(--agent-realtime-voice-glow-color) / 10%),
|
|
220
|
+
0 0 1px hsl(var(--agent-realtime-voice-glow-color) / 60%),
|
|
221
|
+
0 0 3px hsl(var(--agent-realtime-voice-glow-color) / 50%),
|
|
222
|
+
0 0 6px hsl(var(--agent-realtime-voice-glow-color) / 40%),
|
|
223
|
+
0 0 15px hsl(var(--agent-realtime-voice-glow-color) / 30%),
|
|
224
|
+
0 0 25px 2px hsl(var(--agent-realtime-voice-glow-color) / 20%),
|
|
225
|
+
0 0 50px 2px hsl(var(--agent-realtime-voice-glow-color) / 10%);
|
|
79
226
|
}
|
|
80
227
|
|
|
81
228
|
@media (prefers-reduced-motion: reduce) {
|
|
82
229
|
.agent-realtime-voice-glow {
|
|
83
|
-
|
|
230
|
+
--agent-realtime-voice-angle: 35deg;
|
|
84
231
|
}
|
|
85
232
|
}
|
package/dist/a2a/client.d.ts
CHANGED
|
@@ -128,6 +128,8 @@ export declare class A2AClient {
|
|
|
128
128
|
*/
|
|
129
129
|
export declare function callAgent(url: string, text: string, opts?: {
|
|
130
130
|
apiKey?: string;
|
|
131
|
+
/** Additional bearer tokens to try in order after apiKey during rotation. */
|
|
132
|
+
apiKeyFallbacks?: string[];
|
|
131
133
|
/** Additional transport metadata. Receivers must not use it as identity. */
|
|
132
134
|
metadata?: Record<string, unknown>;
|
|
133
135
|
contextId?: string;
|
package/dist/a2a/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/a2a/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/a2a/client.ts"],"names":[],"mappings":"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"}
|
package/dist/a2a/client.js
CHANGED
|
@@ -577,6 +577,8 @@ async function buildA2AApiKeyAttempts(opts, audience) {
|
|
|
577
577
|
attempts.push(token);
|
|
578
578
|
};
|
|
579
579
|
add(opts?.apiKey);
|
|
580
|
+
for (const fallback of opts?.apiKeyFallbacks ?? [])
|
|
581
|
+
add(fallback);
|
|
580
582
|
if (opts?.userEmail && (opts.orgSecret || process.env.A2A_SECRET)) {
|
|
581
583
|
if (process.env.A2A_SECRET?.trim()) {
|
|
582
584
|
try {
|