@agent-native/core 0.146.4 → 0.146.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +1 -1
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/analytics/app/pages/Settings.tsx +5 -1
- package/corpus/templates/analytics/app/routes/agent.tsx +7 -5
- package/corpus/templates/assets/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/assets/app/routes/agent.tsx +7 -5
- package/corpus/templates/assets/app/routes/settings.tsx +7 -2
- package/corpus/templates/assets/server/plugins/creative-context.ts +1 -1
- package/corpus/templates/brain/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/brain/app/lib/brain.ts +4 -2
- package/corpus/templates/brain/app/root.tsx +1 -1
- package/corpus/templates/brain/app/routes/agent.tsx +10 -2
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +1 -1
- package/corpus/templates/calendar/app/root.tsx +1 -1
- package/corpus/templates/calendar/app/routes/_app.agent.tsx +8 -16
- package/corpus/templates/chat/app/hooks/use-navigation-state.ts +5 -2
- package/corpus/templates/chat/app/routes/agent.tsx +7 -31
- package/corpus/templates/clips/app/components/library/library-layout.tsx +1 -1
- package/corpus/templates/clips/app/root.tsx +1 -1
- package/corpus/templates/clips/app/routes/_app.agent.tsx +9 -7
- package/corpus/templates/content/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/content/app/root.tsx +1 -1
- package/corpus/templates/content/app/routes/_app.agent.tsx +9 -8
- package/corpus/templates/content/app/routes/_app.settings.tsx +7 -2
- package/corpus/templates/content/server/plugins/creative-context.ts +1 -1
- package/corpus/templates/crm/app/components/crm/RecordActions.tsx +4 -1
- package/corpus/templates/crm/app/components/layout/CrmLayout.tsx +1 -1
- package/corpus/templates/crm/app/routes/agent.tsx +10 -2
- package/corpus/templates/design/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/design/app/root.tsx +1 -1
- package/corpus/templates/design/app/routes/agent.tsx +9 -7
- package/corpus/templates/design/app/routes/settings.tsx +7 -2
- package/corpus/templates/design/server/plugins/creative-context.ts +1 -1
- package/corpus/templates/dispatch/app/root.tsx +5 -2
- package/corpus/templates/dispatch/app/routes/agent.tsx +7 -7
- package/corpus/templates/factory/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/factory/app/hooks/use-navigation-state.ts +5 -2
- package/corpus/templates/factory/app/root.tsx +1 -1
- package/corpus/templates/factory/app/routes/agent.tsx +9 -14
- package/corpus/templates/forms/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/forms/app/root.tsx +1 -1
- package/corpus/templates/forms/app/routes/_app.agent.tsx +9 -7
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +5 -3
- package/corpus/templates/macros/app/root.tsx +1 -1
- package/corpus/templates/macros/app/routes/agent.tsx +9 -6
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +8 -2
- package/corpus/templates/mail/app/components/layout/CommandPalette.tsx +1 -1
- package/corpus/templates/mail/app/routes/agent.tsx +9 -6
- package/corpus/templates/plan/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/plan/app/root.tsx +1 -1
- package/corpus/templates/plan/app/routes/agent.tsx +9 -6
- package/corpus/templates/slides/app/components/editor/ImageGenPanel.tsx +8 -12
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +39 -2
- package/corpus/templates/slides/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/slides/app/i18n/en-US.ts +1 -0
- package/corpus/templates/slides/app/lib/create-deck-generation.ts +22 -5
- package/corpus/templates/slides/app/pages/Index.tsx +20 -5
- package/corpus/templates/slides/app/root.tsx +1 -1
- package/corpus/templates/slides/app/routes/agent.tsx +6 -9
- package/corpus/templates/slides/app/routes/settings.tsx +7 -2
- package/corpus/templates/slides/server/plugins/creative-context.ts +1 -1
- package/corpus/templates/tasks/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/tasks/app/routes/agent.tsx +10 -2
- package/dist/client/index.d.ts +1 -1
- package/dist/client/navigation/index.d.ts +1 -1
- package/dist/client/navigation/index.js +1 -1
- package/dist/client/org/OrgSwitcher.js +1 -1
- package/dist/client/settings/SettingsPanel.d.ts +8 -0
- package/dist/client/settings/SettingsPanel.js +16 -1
- package/dist/client/settings/index.d.ts +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/navigation/index.d.ts +1 -0
- package/dist/navigation/index.js +34 -0
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +3 -3
- package/dist/progress/routes.d.ts +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/templates/chat/app/hooks/use-navigation-state.ts +5 -2
- package/dist/templates/chat/app/routes/agent.tsx +7 -31
- package/dist/templates/default/app/routes/_index.tsx +1 -1
- package/dist/templates/default/app/routes/agent.tsx +7 -25
- package/package.json +3 -3
- package/src/templates/chat/app/hooks/use-navigation-state.ts +5 -2
- package/src/templates/chat/app/routes/agent.tsx +7 -31
- package/src/templates/default/app/routes/_index.tsx +1 -1
- package/src/templates/default/app/routes/agent.tsx +7 -25
|
@@ -508,7 +508,7 @@ export function CommandPalette() {
|
|
|
508
508
|
<CommandGroup key="settings" heading={t("navigation.settings")}>
|
|
509
509
|
<CommandItem
|
|
510
510
|
value={`setting:agent-page:${t("settings.agentTitle")}`}
|
|
511
|
-
onSelect={() => go("/agent")}
|
|
511
|
+
onSelect={() => go("/settings/agent")}
|
|
512
512
|
keywords={commandPaletteKeywords(
|
|
513
513
|
t("settings.agentTitle"),
|
|
514
514
|
"agent",
|
|
@@ -205,7 +205,7 @@ function InteractiveLayout({ children }: LayoutProps) {
|
|
|
205
205
|
openOnChatRunning={chatHomeHandoffActive}
|
|
206
206
|
onFullscreenRequest={openAskAgentFullscreen}
|
|
207
207
|
emptyStateText={t("chat.emptyState")}
|
|
208
|
-
agentPageHref="/agent"
|
|
208
|
+
agentPageHref="/settings/agent"
|
|
209
209
|
suggestions={[
|
|
210
210
|
t("chat.suggestionArrGrowth"),
|
|
211
211
|
t("chat.suggestionChurn"),
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
useAgentSettingsTabs,
|
|
14
14
|
type SettingsTabItem,
|
|
15
15
|
} from "@agent-native/core/client/settings";
|
|
16
|
+
import { createCreativeContextAgentTab } from "@agent-native/creative-context/client";
|
|
16
17
|
import { IconBell } from "@tabler/icons-react";
|
|
17
18
|
import { useEffect, useMemo, useState } from "react";
|
|
18
19
|
import { Link } from "react-router";
|
|
@@ -136,7 +137,10 @@ export default function Settings() {
|
|
|
136
137
|
}
|
|
137
138
|
/>
|
|
138
139
|
);
|
|
139
|
-
const agentSettingsTabs = useAgentSettingsTabs({
|
|
140
|
+
const agentSettingsTabs = useAgentSettingsTabs({
|
|
141
|
+
agentAdditionalContent,
|
|
142
|
+
agentAdditionalTabFactories: [createCreativeContextAgentTab],
|
|
143
|
+
});
|
|
140
144
|
|
|
141
145
|
const extraTabs = useMemo<SettingsTabItem[]>(
|
|
142
146
|
() => [
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
|
|
2
|
+
import { Navigate, useLocation } from "react-router";
|
|
3
3
|
|
|
4
4
|
export default function AgentRoute() {
|
|
5
|
+
const location = useLocation();
|
|
6
|
+
|
|
5
7
|
return (
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
<Navigate
|
|
9
|
+
to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
|
|
10
|
+
replace
|
|
9
11
|
/>
|
|
10
12
|
);
|
|
11
13
|
}
|
|
@@ -165,7 +165,7 @@ export function Layout({ children }: LayoutProps) {
|
|
|
165
165
|
openOnChatRunning={chatHomeHandoffActive}
|
|
166
166
|
onFullscreenRequest={openCreateChatFullscreen}
|
|
167
167
|
emptyStateText={t("chat.emptyState")}
|
|
168
|
-
agentPageHref="/agent"
|
|
168
|
+
agentPageHref="/settings/agent"
|
|
169
169
|
suggestions={[
|
|
170
170
|
t("chat.suggestionBlogHeroes"),
|
|
171
171
|
t("chat.suggestionProductVideo"),
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
|
|
2
|
+
import { Navigate, useLocation } from "react-router";
|
|
3
3
|
|
|
4
4
|
export default function AgentRoute() {
|
|
5
|
+
const location = useLocation();
|
|
6
|
+
|
|
5
7
|
return (
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
<Navigate
|
|
9
|
+
to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
|
|
10
|
+
replace
|
|
9
11
|
/>
|
|
10
12
|
);
|
|
11
13
|
}
|
|
@@ -18,7 +18,10 @@ import {
|
|
|
18
18
|
useBuilderStatus,
|
|
19
19
|
type SettingsSearchEntry,
|
|
20
20
|
} from "@agent-native/core/client/settings";
|
|
21
|
-
import {
|
|
21
|
+
import {
|
|
22
|
+
CreativeContextSettingsLink,
|
|
23
|
+
createCreativeContextAgentTab,
|
|
24
|
+
} from "@agent-native/creative-context/client";
|
|
22
25
|
import {
|
|
23
26
|
IconAlertCircle,
|
|
24
27
|
IconCheck,
|
|
@@ -87,7 +90,9 @@ type FormOnboardingMethod = Extract<OnboardingMethod, { kind: "form" }>;
|
|
|
87
90
|
|
|
88
91
|
export default function SettingsPage() {
|
|
89
92
|
const t = useT();
|
|
90
|
-
const agentSettingsTabs = useAgentSettingsTabs(
|
|
93
|
+
const agentSettingsTabs = useAgentSettingsTabs({
|
|
94
|
+
agentAdditionalTabFactories: [createCreativeContextAgentTab],
|
|
95
|
+
});
|
|
91
96
|
const { data } = useActionQuery("list-libraries", { compact: true }) as {
|
|
92
97
|
data?: { count?: number };
|
|
93
98
|
};
|
|
@@ -137,7 +137,7 @@ export function Layout({ children }: { children: React.ReactNode }) {
|
|
|
137
137
|
openOnChatRunning={chatHomeHandoffActive}
|
|
138
138
|
onFullscreenRequest={openAskAgentFullscreen}
|
|
139
139
|
emptyStateText={t("chat.emptyState")}
|
|
140
|
-
agentPageHref="/agent"
|
|
140
|
+
agentPageHref="/settings/agent"
|
|
141
141
|
suggestions={[
|
|
142
142
|
t("chat.suggestionSecurity"),
|
|
143
143
|
t("chat.suggestionStaleFacts"),
|
|
@@ -1050,7 +1050,9 @@ export function viewFromPath(pathname: string): BrainView {
|
|
|
1050
1050
|
if (pathname.startsWith("/review")) return "review";
|
|
1051
1051
|
if (pathname.startsWith("/sources")) return "sources";
|
|
1052
1052
|
if (pathname.startsWith("/ops")) return "ops";
|
|
1053
|
-
if (pathname.startsWith("/agent")
|
|
1053
|
+
if (pathname.startsWith("/settings/agent") || pathname.startsWith("/agent")) {
|
|
1054
|
+
return "agent";
|
|
1055
|
+
}
|
|
1054
1056
|
if (pathname.startsWith("/settings")) return "settings";
|
|
1055
1057
|
return "ask";
|
|
1056
1058
|
}
|
|
@@ -1070,7 +1072,7 @@ export function pathFromView(view?: string): string {
|
|
|
1070
1072
|
case "ops":
|
|
1071
1073
|
return "/ops";
|
|
1072
1074
|
case "agent":
|
|
1073
|
-
return "/agent";
|
|
1075
|
+
return "/settings/agent";
|
|
1074
1076
|
case "settings":
|
|
1075
1077
|
return "/settings";
|
|
1076
1078
|
case "ask":
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
|
|
2
|
+
import { Navigate, useLocation } from "react-router";
|
|
2
3
|
|
|
3
4
|
import { messagesByLocale } from "@/i18n-data";
|
|
4
5
|
|
|
@@ -7,5 +8,12 @@ export function meta() {
|
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
export default function AgentRoute() {
|
|
10
|
-
|
|
11
|
+
const location = useLocation();
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<Navigate
|
|
15
|
+
to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
|
|
16
|
+
replace
|
|
17
|
+
/>
|
|
18
|
+
);
|
|
11
19
|
}
|
|
@@ -394,7 +394,7 @@ export function AppLayout({ children }: AppLayoutProps) {
|
|
|
394
394
|
position="right"
|
|
395
395
|
defaultOpen={false}
|
|
396
396
|
emptyStateText={t("agentSidebar.emptyState")}
|
|
397
|
-
agentPageHref="/agent"
|
|
397
|
+
agentPageHref="/settings/agent"
|
|
398
398
|
suggestions={[
|
|
399
399
|
t("agentSidebar.suggestions.today"),
|
|
400
400
|
t("agentSidebar.suggestions.findSlot"),
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { useMemo } from "react";
|
|
1
|
+
import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
|
|
2
|
+
import { Navigate, useLocation } from "react-router";
|
|
4
3
|
|
|
5
|
-
import { useAppHeaderControls } from "@/components/layout/AppLayout";
|
|
6
4
|
import { messagesByLocale } from "@/i18n-data";
|
|
7
5
|
|
|
8
6
|
export function meta() {
|
|
@@ -10,17 +8,11 @@ export function meta() {
|
|
|
10
8
|
}
|
|
11
9
|
|
|
12
10
|
export default function AgentRoute() {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
</h1>
|
|
20
|
-
),
|
|
21
|
-
}),
|
|
22
|
-
[t],
|
|
11
|
+
const location = useLocation();
|
|
12
|
+
return (
|
|
13
|
+
<Navigate
|
|
14
|
+
to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
|
|
15
|
+
replace
|
|
16
|
+
/>
|
|
23
17
|
);
|
|
24
|
-
useAppHeaderControls(controls);
|
|
25
|
-
return <AgentTabsPage appName="Calendar" />;
|
|
26
18
|
}
|
|
@@ -42,7 +42,10 @@ function viewForPath(pathname: string): string {
|
|
|
42
42
|
if (pathname.startsWith("/database")) return "database";
|
|
43
43
|
if (pathname.startsWith("/extensions")) return "extensions";
|
|
44
44
|
if (pathname.startsWith("/observability")) return "observability";
|
|
45
|
-
if (pathname.startsWith("/agent")
|
|
45
|
+
if (pathname.startsWith("/settings/agent") || pathname.startsWith("/agent")) {
|
|
46
|
+
return "agent";
|
|
47
|
+
}
|
|
48
|
+
if (pathname.startsWith("/settings")) return "settings";
|
|
46
49
|
if (pathname.startsWith("/team")) return "settings";
|
|
47
50
|
return "chat";
|
|
48
51
|
}
|
|
@@ -60,7 +63,7 @@ function pathForView(view?: string): string {
|
|
|
60
63
|
case "observability":
|
|
61
64
|
return "/observability";
|
|
62
65
|
case "agent":
|
|
63
|
-
return "/agent";
|
|
66
|
+
return "/settings/agent";
|
|
64
67
|
case "settings":
|
|
65
68
|
return "/settings";
|
|
66
69
|
case "team":
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
|
|
1
|
+
import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
|
|
3
2
|
import { Navigate, useLocation } from "react-router";
|
|
4
3
|
|
|
5
4
|
export function meta() {
|
|
@@ -7,34 +6,11 @@ export function meta() {
|
|
|
7
6
|
}
|
|
8
7
|
|
|
9
8
|
export default function AgentRoute() {
|
|
10
|
-
const t = useT();
|
|
11
9
|
const location = useLocation();
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"agents",
|
|
19
|
-
"memory",
|
|
20
|
-
"skills",
|
|
21
|
-
"learnings",
|
|
22
|
-
]);
|
|
23
|
-
const destination = resourceTabs.has(legacyTab)
|
|
24
|
-
? `/settings/agent/resources/${legacyTab}`
|
|
25
|
-
: legacyTab === "remote-agents"
|
|
26
|
-
? "/settings/agent/agents"
|
|
27
|
-
: legacyTab === "connections"
|
|
28
|
-
? "/settings/integrations"
|
|
29
|
-
: legacyTab === "jobs"
|
|
30
|
-
? "/settings/agent/automations"
|
|
31
|
-
: legacyTab === "access"
|
|
32
|
-
? "/settings/agent"
|
|
33
|
-
: ["llm", "app-models", "limits", "voice", "background"].includes(
|
|
34
|
-
legacyTab,
|
|
35
|
-
)
|
|
36
|
-
? `/settings/agent/${legacyTab}`
|
|
37
|
-
: "/settings/agent";
|
|
38
|
-
|
|
39
|
-
return <Navigate to={destination} replace />;
|
|
10
|
+
return (
|
|
11
|
+
<Navigate
|
|
12
|
+
to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
|
|
13
|
+
replace
|
|
14
|
+
/>
|
|
15
|
+
);
|
|
40
16
|
}
|
|
@@ -722,7 +722,7 @@ export function LibraryLayout({ children }: LibraryLayoutProps) {
|
|
|
722
722
|
t("navigation.agentSuggestionPricing"),
|
|
723
723
|
t("navigation.agentSuggestionFiller"),
|
|
724
724
|
]}
|
|
725
|
-
agentPageHref="/agent"
|
|
725
|
+
agentPageHref="/settings/agent"
|
|
726
726
|
scope={recordingScope}
|
|
727
727
|
browserTabId={getBrowserTabId()}
|
|
728
728
|
>
|
|
@@ -369,7 +369,7 @@ function AppContent() {
|
|
|
369
369
|
changelogKey="clips"
|
|
370
370
|
>
|
|
371
371
|
<CommandMenu.Group heading={t("root.commandActions")}>
|
|
372
|
-
<CommandMenu.Item onSelect={() => navigate("/agent")}>
|
|
372
|
+
<CommandMenu.Item onSelect={() => navigate("/settings/agent")}>
|
|
373
373
|
<IconHierarchy2 size={16} />
|
|
374
374
|
{t("root.openAgent")}
|
|
375
375
|
</CommandMenu.Item>
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
|
|
1
|
+
import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
|
|
2
|
+
import { Navigate, useLocation } from "react-router";
|
|
4
3
|
|
|
5
4
|
import messages from "@/i18n/en-US";
|
|
6
5
|
|
|
@@ -9,8 +8,11 @@ export function meta() {
|
|
|
9
8
|
}
|
|
10
9
|
|
|
11
10
|
export default function AgentRoute() {
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
const location = useLocation();
|
|
12
|
+
return (
|
|
13
|
+
<Navigate
|
|
14
|
+
to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
|
|
15
|
+
replace
|
|
16
|
+
/>
|
|
17
|
+
);
|
|
16
18
|
}
|
|
@@ -192,7 +192,7 @@ export function Layout({ children }: LayoutProps) {
|
|
|
192
192
|
<AgentSidebar
|
|
193
193
|
position="right"
|
|
194
194
|
defaultOpen={false}
|
|
195
|
-
agentPageHref="/agent"
|
|
195
|
+
agentPageHref="/settings/agent"
|
|
196
196
|
emptyStateText={t("chat.emptyState")}
|
|
197
197
|
suggestions={[
|
|
198
198
|
t("chat.suggestionPrd"),
|
|
@@ -570,7 +570,7 @@ function ContentCommandMenu({
|
|
|
570
570
|
)}
|
|
571
571
|
>
|
|
572
572
|
<CommandMenu.Group heading={t("root.commandContent")}>
|
|
573
|
-
<CommandMenu.Item onSelect={() => navigate("/agent")}>
|
|
573
|
+
<CommandMenu.Item onSelect={() => navigate("/settings/agent")}>
|
|
574
574
|
<IconHierarchy2 size={16} />
|
|
575
575
|
{t("root.openAgent")}
|
|
576
576
|
</CommandMenu.Item>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { createCreativeContextAgentTab } from "@agent-native/creative-context/client";
|
|
4
|
-
import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
|
|
1
|
+
import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
|
|
2
|
+
import { Navigate, useLocation } from "react-router";
|
|
5
3
|
|
|
6
4
|
import { messagesByLocale } from "@/i18n-data";
|
|
7
5
|
|
|
@@ -10,8 +8,11 @@ export function meta() {
|
|
|
10
8
|
}
|
|
11
9
|
|
|
12
10
|
export default function AgentRoute() {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
const location = useLocation();
|
|
12
|
+
return (
|
|
13
|
+
<Navigate
|
|
14
|
+
to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
|
|
15
|
+
replace
|
|
16
|
+
/>
|
|
17
|
+
);
|
|
17
18
|
}
|
|
@@ -9,7 +9,10 @@ import {
|
|
|
9
9
|
useAgentSettingsTabs,
|
|
10
10
|
type SettingsSearchEntry,
|
|
11
11
|
} from "@agent-native/core/client/settings";
|
|
12
|
-
import {
|
|
12
|
+
import {
|
|
13
|
+
CreativeContextSettingsLink,
|
|
14
|
+
createCreativeContextAgentTab,
|
|
15
|
+
} from "@agent-native/creative-context/client";
|
|
13
16
|
import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
|
|
14
17
|
import { useMemo } from "react";
|
|
15
18
|
import { toast } from "sonner";
|
|
@@ -26,7 +29,9 @@ export function meta() {
|
|
|
26
29
|
|
|
27
30
|
export default function SettingsRoute() {
|
|
28
31
|
const t = useT();
|
|
29
|
-
const agentSettingsTabs = useAgentSettingsTabs(
|
|
32
|
+
const agentSettingsTabs = useAgentSettingsTabs({
|
|
33
|
+
agentAdditionalTabFactories: [createCreativeContextAgentTab],
|
|
34
|
+
});
|
|
30
35
|
useSetPageTitle(t("settings.title"));
|
|
31
36
|
const { prefs, loading: prefsLoading, save: savePrefs } = useContentPrefs();
|
|
32
37
|
|
|
@@ -601,7 +601,10 @@ function CallEvidenceAutomationDialog({ record }: { record: CrmRecordDetail }) {
|
|
|
601
601
|
</div>
|
|
602
602
|
<DialogFooter className="flex-row flex-wrap justify-end gap-2 sm:justify-end">
|
|
603
603
|
<Button asChild variant="ghost" size="sm" className="gap-1.5">
|
|
604
|
-
<Link
|
|
604
|
+
<Link
|
|
605
|
+
to="/settings/agent/automations"
|
|
606
|
+
onClick={() => setOpen(false)}
|
|
607
|
+
>
|
|
605
608
|
<IconExternalLink className="size-4" />{" "}
|
|
606
609
|
{t("recordActions.manageAutomations")}
|
|
607
610
|
</Link>
|
|
@@ -121,7 +121,7 @@ export function CrmLayout({ children }: { children: React.ReactNode }) {
|
|
|
121
121
|
"Summarize this account",
|
|
122
122
|
"Which opportunities need attention?",
|
|
123
123
|
]}
|
|
124
|
-
agentPageHref="/agent"
|
|
124
|
+
agentPageHref="/settings/agent"
|
|
125
125
|
>
|
|
126
126
|
{shell}
|
|
127
127
|
</AgentSidebar>
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
|
|
2
|
+
import { Navigate, useLocation } from "react-router";
|
|
2
3
|
|
|
3
4
|
export default function AgentRoute() {
|
|
4
|
-
|
|
5
|
+
const location = useLocation();
|
|
6
|
+
|
|
7
|
+
return (
|
|
8
|
+
<Navigate
|
|
9
|
+
to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
|
|
10
|
+
replace
|
|
11
|
+
/>
|
|
12
|
+
);
|
|
5
13
|
}
|
|
@@ -153,7 +153,7 @@ export function Layout({ children }: LayoutProps) {
|
|
|
153
153
|
<AgentSidebar
|
|
154
154
|
position="right"
|
|
155
155
|
storageKey={DESIGN_CHAT_STORAGE_KEY}
|
|
156
|
-
agentPageHref="/agent"
|
|
156
|
+
agentPageHref="/settings/agent"
|
|
157
157
|
emptyStateText={t("chat.emptyState")}
|
|
158
158
|
suggestions={[
|
|
159
159
|
t("chat.suggestionLandingPage"),
|
|
@@ -145,7 +145,7 @@ function DesignCommandMenu({
|
|
|
145
145
|
changelogKey="design"
|
|
146
146
|
>
|
|
147
147
|
<CommandMenu.Group heading={t("root.commandActions")}>
|
|
148
|
-
<CommandMenu.Item onSelect={() => navigate("/agent")}>
|
|
148
|
+
<CommandMenu.Item onSelect={() => navigate("/settings/agent")}>
|
|
149
149
|
<IconHierarchy2 size={16} />
|
|
150
150
|
{t("root.openAgent")}
|
|
151
151
|
</CommandMenu.Item>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { createCreativeContextAgentTab } from "@agent-native/creative-context/client";
|
|
4
|
-
import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
|
|
1
|
+
import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
|
|
2
|
+
import { Navigate, useLocation } from "react-router";
|
|
5
3
|
|
|
6
4
|
import messages from "@/i18n/en-US";
|
|
7
5
|
|
|
@@ -10,8 +8,12 @@ export function meta() {
|
|
|
10
8
|
}
|
|
11
9
|
|
|
12
10
|
export default function AgentRoute() {
|
|
13
|
-
const
|
|
14
|
-
useSetPageTitle(t("settings.agentTitle"));
|
|
11
|
+
const location = useLocation();
|
|
15
12
|
|
|
16
|
-
return
|
|
13
|
+
return (
|
|
14
|
+
<Navigate
|
|
15
|
+
to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
|
|
16
|
+
replace
|
|
17
|
+
/>
|
|
18
|
+
);
|
|
17
19
|
}
|
|
@@ -9,7 +9,10 @@ import {
|
|
|
9
9
|
useAgentSettingsTabs,
|
|
10
10
|
type SettingsSearchEntry,
|
|
11
11
|
} from "@agent-native/core/client/settings";
|
|
12
|
-
import {
|
|
12
|
+
import {
|
|
13
|
+
CreativeContextSettingsLink,
|
|
14
|
+
createCreativeContextAgentTab,
|
|
15
|
+
} from "@agent-native/creative-context/client";
|
|
13
16
|
import { useMemo } from "react";
|
|
14
17
|
|
|
15
18
|
import { messagesByLocale } from "@/i18n-data";
|
|
@@ -21,7 +24,9 @@ export function meta() {
|
|
|
21
24
|
}
|
|
22
25
|
|
|
23
26
|
export default function SettingsRoute() {
|
|
24
|
-
const agentSettingsTabs = useAgentSettingsTabs(
|
|
27
|
+
const agentSettingsTabs = useAgentSettingsTabs({
|
|
28
|
+
agentAdditionalTabFactories: [createCreativeContextAgentTab],
|
|
29
|
+
});
|
|
25
30
|
const t = useT();
|
|
26
31
|
|
|
27
32
|
const generalSearchEntries = useMemo<SettingsSearchEntry[]>(
|
|
@@ -191,7 +191,7 @@ function AppContent() {
|
|
|
191
191
|
changelogKey="dispatch"
|
|
192
192
|
>
|
|
193
193
|
<CommandMenu.Group heading={t("root.commandActions")}>
|
|
194
|
-
<CommandMenu.Item onSelect={() => navigate("/agent")}>
|
|
194
|
+
<CommandMenu.Item onSelect={() => navigate("/settings/agent")}>
|
|
195
195
|
<IconHierarchy2 size={16} />
|
|
196
196
|
{t("root.openAgent")}
|
|
197
197
|
</CommandMenu.Item>
|
|
@@ -203,7 +203,10 @@ function AppContent() {
|
|
|
203
203
|
<ThemeToggleItem />
|
|
204
204
|
</CommandMenu.Group>
|
|
205
205
|
</CommandMenu>
|
|
206
|
-
<AppLayout
|
|
206
|
+
<AppLayout
|
|
207
|
+
extensions={dispatchExtensions}
|
|
208
|
+
agentPageHref="/settings/agent"
|
|
209
|
+
>
|
|
207
210
|
<Outlet />
|
|
208
211
|
</AppLayout>
|
|
209
212
|
</>
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { DispatchShell } from "@agent-native/dispatch/components";
|
|
1
|
+
import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
|
|
2
|
+
import { Navigate, useLocation } from "react-router";
|
|
4
3
|
|
|
5
4
|
import { messagesByLocale } from "@/i18n-data";
|
|
6
5
|
|
|
@@ -9,11 +8,12 @@ export function meta() {
|
|
|
9
8
|
}
|
|
10
9
|
|
|
11
10
|
export default function AgentRoute() {
|
|
12
|
-
const
|
|
11
|
+
const location = useLocation();
|
|
13
12
|
|
|
14
13
|
return (
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
<Navigate
|
|
15
|
+
to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
|
|
16
|
+
replace
|
|
17
|
+
/>
|
|
18
18
|
);
|
|
19
19
|
}
|
|
@@ -174,7 +174,7 @@ export function Layout({ children }: LayoutProps) {
|
|
|
174
174
|
openOnChatRunning={chatHomeHandoffActive}
|
|
175
175
|
onFullscreenRequest={openAskAgentFullscreen}
|
|
176
176
|
emptyStateText={t("chat.inspectEmptyState")}
|
|
177
|
-
agentPageHref="/agent"
|
|
177
|
+
agentPageHref="/settings/agent"
|
|
178
178
|
suggestions={[
|
|
179
179
|
t("chat.inspectSuggestionCapabilities"),
|
|
180
180
|
t("chat.inspectSuggestionHello"),
|
|
@@ -67,7 +67,10 @@ function viewForPath(pathname: string): string {
|
|
|
67
67
|
if (pathname.startsWith("/extensions")) return "extensions";
|
|
68
68
|
if (pathname.startsWith("/observability")) return "observability";
|
|
69
69
|
if (pathname.startsWith("/factory")) return "factory";
|
|
70
|
-
if (pathname.startsWith("/agent")
|
|
70
|
+
if (pathname.startsWith("/settings/agent") || pathname.startsWith("/agent")) {
|
|
71
|
+
return "agent";
|
|
72
|
+
}
|
|
73
|
+
if (pathname.startsWith("/settings")) return "settings";
|
|
71
74
|
if (pathname.startsWith("/team")) return "settings";
|
|
72
75
|
return "chat";
|
|
73
76
|
}
|
|
@@ -87,7 +90,7 @@ function pathForView(view?: string): string {
|
|
|
87
90
|
case "factory":
|
|
88
91
|
return "/factory";
|
|
89
92
|
case "agent":
|
|
90
|
-
return "/agent";
|
|
93
|
+
return "/settings/agent";
|
|
91
94
|
case "settings":
|
|
92
95
|
return "/settings";
|
|
93
96
|
case "team":
|