@agent-native/dispatch 0.13.0 → 0.13.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.
@@ -36,7 +36,6 @@ import {
36
36
  IconPuzzle,
37
37
  IconSettings,
38
38
  IconShieldCheck,
39
- IconUsersGroup,
40
39
  } from "@tabler/icons-react";
41
40
  import {
42
41
  useEffect,
@@ -215,13 +214,6 @@ const OPERATIONS_NAV_ITEMS = [
215
214
  icon: IconSettings,
216
215
  section: "operations",
217
216
  },
218
- {
219
- id: "team",
220
- to: "/team",
221
- label: "Team",
222
- icon: IconUsersGroup,
223
- section: "operations",
224
- },
225
217
  ] as const satisfies readonly DispatchNavItem[];
226
218
 
227
219
  const EMPTY_NAV_ITEMS: readonly DispatchNavItem[] = [];
@@ -804,7 +796,9 @@ export function Layout({
804
796
  </div>
805
797
  );
806
798
  const content = isChatRoute ? (
807
- appContent
799
+ <div className="agent-layout-main-surface flex min-w-0 flex-1 overflow-hidden">
800
+ {appContent}
801
+ </div>
808
802
  ) : (
809
803
  <AgentSidebar
810
804
  position="right"
@@ -822,8 +816,8 @@ export function Layout({
822
816
 
823
817
  return (
824
818
  <HeaderActionsProvider>
825
- <div className="flex h-screen w-full overflow-hidden bg-background">
826
- <aside className="hidden lg:flex w-64 shrink-0 flex-col border-e bg-sidebar text-sidebar-foreground">
819
+ <div className="agent-layout-shell flex h-screen w-full overflow-hidden bg-background">
820
+ <aside className="agent-layout-left-drawer hidden lg:flex w-64 shrink-0 flex-col border-e bg-sidebar text-sidebar-foreground">
827
821
  <NavContent extensions={extensions} />
828
822
  </aside>
829
823
 
@@ -219,7 +219,7 @@ function resolveView(
219
219
  if (pathname.startsWith("/audit")) return "audit";
220
220
  if (pathname.startsWith("/dreams")) return "dreams";
221
221
  if (pathname.startsWith("/thread-debug")) return "thread-debug";
222
- if (pathname.startsWith("/team")) return "team";
222
+ if (pathname.startsWith("/team")) return "settings";
223
223
  return "overview";
224
224
  }
225
225
 
@@ -271,7 +271,7 @@ function resolvePath(
271
271
  case "threads":
272
272
  return "/thread-debug";
273
273
  case "team":
274
- return "/team";
274
+ return "/settings#team";
275
275
  case "extensions":
276
276
  return command?.extensionId
277
277
  ? `/extensions/${encodeURIComponent(command.extensionId)}`
@@ -1,8 +1,11 @@
1
1
  import {
2
+ ChangelogSettingsCard,
2
3
  LanguagePicker,
4
+ SettingsTabsPage,
3
5
  openAgentSettings,
4
6
  useT,
5
7
  } from "@agent-native/core/client";
8
+ import { TeamPage } from "@agent-native/core/client/org";
6
9
  import { Link } from "react-router";
7
10
 
8
11
  import { DispatchShell } from "@/components/dispatch-shell";
@@ -16,6 +19,8 @@ import {
16
19
  } from "@/components/ui/card";
17
20
  import { Label } from "@/components/ui/label";
18
21
 
22
+ import changelog from "../../../CHANGELOG.md?raw";
23
+
19
24
  export function meta() {
20
25
  return [{ title: "Settings - Dispatch" }];
21
26
  }
@@ -28,55 +33,73 @@ export default function SettingsRoute() {
28
33
  title={t("settings.title")}
29
34
  description={t("settings.description")}
30
35
  >
31
- <div className="mx-auto w-full max-w-3xl space-y-6">
32
- <Card>
33
- <CardHeader>
34
- <CardTitle className="text-base">
35
- {t("settings.languageTitle")}
36
- </CardTitle>
37
- <CardDescription>
38
- {t("settings.languageDescription")}
39
- </CardDescription>
40
- </CardHeader>
41
- <CardContent className="max-w-xs space-y-1.5">
42
- <Label>{t("settings.languageLabel")}</Label>
43
- <LanguagePicker label={t("settings.languageLabel")} />
44
- </CardContent>
45
- </Card>
36
+ <SettingsTabsPage
37
+ general={
38
+ <div className="mx-auto w-full max-w-3xl space-y-6">
39
+ <Card>
40
+ <CardHeader>
41
+ <CardTitle className="text-base">
42
+ {t("settings.languageTitle")}
43
+ </CardTitle>
44
+ <CardDescription>
45
+ {t("settings.languageDescription")}
46
+ </CardDescription>
47
+ </CardHeader>
48
+ <CardContent className="max-w-xs space-y-1.5">
49
+ <Label>{t("settings.languageLabel")}</Label>
50
+ <LanguagePicker label={t("settings.languageLabel")} />
51
+ </CardContent>
52
+ </Card>
46
53
 
47
- <Card>
48
- <CardHeader>
49
- <CardTitle className="text-base">
50
- {t("settings.workspaceTitle")}
51
- </CardTitle>
52
- <CardDescription>
53
- {t("settings.workspaceDescription")}
54
- </CardDescription>
55
- </CardHeader>
56
- <CardContent className="flex flex-wrap gap-2">
57
- <Button variant="outline" asChild>
58
- <Link to="/team">{t("settings.openTeamSettings")}</Link>
59
- </Button>
60
- <Button variant="outline" asChild>
61
- <Link to="/workspace">{t("settings.openResourceSettings")}</Link>
62
- </Button>
63
- </CardContent>
64
- </Card>
54
+ <Card>
55
+ <CardHeader>
56
+ <CardTitle className="text-base">
57
+ {t("settings.workspaceTitle")}
58
+ </CardTitle>
59
+ <CardDescription>
60
+ {t("settings.workspaceDescription")}
61
+ </CardDescription>
62
+ </CardHeader>
63
+ <CardContent>
64
+ <Button variant="outline" asChild>
65
+ <Link to="/workspace">
66
+ {t("settings.openResourceSettings")}
67
+ </Link>
68
+ </Button>
69
+ </CardContent>
70
+ </Card>
65
71
 
66
- <Card>
67
- <CardHeader>
68
- <CardTitle className="text-base">
69
- {t("settings.agentTitle")}
70
- </CardTitle>
71
- <CardDescription>{t("settings.agentDescription")}</CardDescription>
72
- </CardHeader>
73
- <CardContent>
74
- <Button variant="outline" onClick={() => openAgentSettings()}>
75
- {t("settings.openAgentSettings")}
76
- </Button>
77
- </CardContent>
78
- </Card>
79
- </div>
72
+ <Card>
73
+ <CardHeader>
74
+ <CardTitle className="text-base">
75
+ {t("settings.agentTitle")}
76
+ </CardTitle>
77
+ <CardDescription>
78
+ {t("settings.agentDescription")}
79
+ </CardDescription>
80
+ </CardHeader>
81
+ <CardContent>
82
+ <Button variant="outline" onClick={() => openAgentSettings()}>
83
+ {t("settings.openAgentSettings")}
84
+ </Button>
85
+ </CardContent>
86
+ </Card>
87
+ </div>
88
+ }
89
+ team={
90
+ <div className="mx-auto w-full max-w-3xl">
91
+ <TeamPage
92
+ showTitle={false}
93
+ createOrgDescription="Set up a team to share dispatch destinations and approvals with your colleagues."
94
+ />
95
+ </div>
96
+ }
97
+ whatsNew={
98
+ <div className="mx-auto w-full max-w-3xl">
99
+ <ChangelogSettingsCard markdown={changelog} />
100
+ </div>
101
+ }
102
+ />
80
103
  </DispatchShell>
81
104
  );
82
105
  }
@@ -1,24 +1,9 @@
1
- import { TeamPage } from "@agent-native/core/client/org";
2
-
3
- import { DispatchShell } from "@/components/dispatch-shell";
1
+ import { Navigate } from "react-router";
4
2
 
5
3
  export function meta() {
6
4
  return [{ title: "Team — Dispatch" }];
7
5
  }
8
6
 
9
7
  export default function TeamRoute() {
10
- return (
11
- <TeamPage
12
- title="Team"
13
- createOrgDescription="Set up a team to share dispatch destinations and approvals with your colleagues."
14
- layout={(children) => (
15
- <DispatchShell
16
- title="Team"
17
- description="Workspace membership and approval ownership."
18
- >
19
- {children}
20
- </DispatchShell>
21
- )}
22
- />
23
- );
8
+ return <Navigate to="/settings#team" replace />;
24
9
  }