@elizaos/ui 2.0.3-beta.6 → 2.0.3-beta.7
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/App.d.ts.map +1 -1
- package/App.js +30 -4
- package/api/app-shell-capabilities.d.ts +9 -0
- package/api/app-shell-capabilities.d.ts.map +1 -0
- package/api/app-shell-capabilities.js +39 -0
- package/api/auth-client.d.ts.map +1 -1
- package/api/auth-client.js +4 -1
- package/api/client-agent.d.ts.map +1 -1
- package/api/client-agent.js +35 -24
- package/api/client-base.d.ts +36 -0
- package/api/client-base.d.ts.map +1 -1
- package/api/client-base.js +79 -0
- package/api/client-chat.d.ts.map +1 -1
- package/api/client-chat.js +14 -5
- package/api/client-cloud.d.ts +49 -0
- package/api/client-cloud.d.ts.map +1 -1
- package/api/client-cloud.js +73 -6
- package/api/client-local-inference.d.ts.map +1 -1
- package/api/client-local-inference.js +5 -1
- package/api/desktop-external-api-base.d.ts +4 -0
- package/api/desktop-external-api-base.d.ts.map +1 -0
- package/api/desktop-external-api-base.js +43 -0
- package/api/desktop-http-transport.d.ts.map +1 -1
- package/api/desktop-http-transport.js +2 -28
- package/api/i18n-locale-client.d.ts.map +1 -1
- package/api/i18n-locale-client.js +12 -0
- package/cloud/billing/components/billing-tab.d.ts.map +1 -1
- package/cloud/billing/components/billing-tab.js +11 -14
- package/cloud/connectors/discord-gateway-connection.d.ts.map +1 -1
- package/cloud/connectors/discord-gateway-connection.js +39 -5
- package/cloud/connectors/index.d.ts +9 -0
- package/cloud/connectors/index.d.ts.map +1 -1
- package/cloud/connectors/index.js +14 -1
- package/cloud/handoff/run-cloud-agent-handoff.d.ts +10 -1
- package/cloud/handoff/run-cloud-agent-handoff.d.ts.map +1 -1
- package/cloud/handoff/run-cloud-agent-handoff.js +43 -7
- package/cloud/handoff/silent-repoint.d.ts +33 -0
- package/cloud/handoff/silent-repoint.d.ts.map +1 -0
- package/cloud/handoff/silent-repoint.js +55 -0
- package/cloud/instances/AgentDetailPage.d.ts.map +1 -1
- package/cloud/instances/AgentDetailPage.js +2 -2
- package/cloud/instances/components/agent-actions.d.ts.map +1 -1
- package/cloud/instances/components/agent-actions.js +1 -4
- package/cloud/instances/components/eliza-agents-table.d.ts.map +1 -1
- package/cloud/instances/components/eliza-agents-table.js +1 -10
- package/cloud/instances/index.d.ts +2 -5
- package/cloud/instances/index.d.ts.map +1 -1
- package/cloud/instances/index.js +2 -12
- package/cloud/organization/invite-member-dialog.d.ts.map +1 -1
- package/cloud/organization/invite-member-dialog.js +2 -5
- package/cloud/organization/members-tab.d.ts.map +1 -1
- package/cloud/organization/members-tab.js +4 -7
- package/cloud/public-pages/pages/app-auth/app-authorize-page.d.ts +9 -0
- package/cloud/public-pages/pages/app-auth/app-authorize-page.d.ts.map +1 -1
- package/cloud/public-pages/pages/app-auth/app-authorize-page.js +11 -1
- package/cloud/register-all.d.ts +0 -1
- package/cloud/register-all.d.ts.map +1 -1
- package/cloud/register-all.js +3 -7
- package/cloud/settings/index.d.ts +5 -6
- package/cloud/settings/index.d.ts.map +1 -1
- package/cloud/settings/index.js +5 -6
- package/cloud/settings/register-cloud-settings.d.ts +2 -2
- package/cloud/settings/register-cloud-settings.d.ts.map +1 -1
- package/cloud/settings/register-cloud-settings.js +127 -121
- package/cloud/shell/CloudRouterShell.d.ts.map +1 -1
- package/cloud/shell/CloudRouterShell.js +5 -0
- package/cloud-ui/components/drawer.d.ts.map +1 -1
- package/cloud-ui/components/drawer.js +1 -1
- package/cloud-ui/index.d.ts +0 -1
- package/cloud-ui/index.d.ts.map +1 -1
- package/cloud-ui/index.js +0 -1
- package/components/apps/app-identity.helpers.d.ts.map +1 -1
- package/components/apps/app-identity.helpers.js +8 -0
- package/components/chat/widgets/inbox-unread.d.ts.map +1 -1
- package/components/chat/widgets/inbox-unread.js +8 -1
- package/components/chat/widgets/needs-attention.d.ts.map +1 -1
- package/components/chat/widgets/needs-attention.js +18 -2
- package/components/chat/widgets/relationships-attention.d.ts.map +1 -1
- package/components/chat/widgets/relationships-attention.js +5 -0
- package/components/composites/chat/chat-composer.js +15 -15
- package/components/config-ui/ui-renderer.d.ts.map +1 -1
- package/components/config-ui/ui-renderer.js +1 -1
- package/components/local-inference/useHomeModelStatus.d.ts.map +1 -1
- package/components/local-inference/useHomeModelStatus.js +31 -1
- package/components/pages/SettingsView.d.ts.map +1 -1
- package/components/pages/SettingsView.js +1 -4
- package/components/pages/Springboard.d.ts.map +1 -1
- package/components/pages/Springboard.js +17 -1
- package/components/pages/SpringboardSurface.d.ts.map +1 -1
- package/components/pages/SpringboardSurface.js +14 -3
- package/components/settings/CloudAgentsSection.d.ts.map +1 -1
- package/components/settings/CloudAgentsSection.js +6 -8
- package/components/settings/CloudOverviewSection.d.ts +2 -0
- package/components/settings/CloudOverviewSection.d.ts.map +1 -0
- package/components/settings/CloudOverviewSection.js +81 -0
- package/components/settings/ConnectorsSection.d.ts +19 -0
- package/components/settings/ConnectorsSection.d.ts.map +1 -1
- package/components/settings/ConnectorsSection.js +72 -27
- package/components/settings/settings-sections.d.ts.map +1 -1
- package/components/settings/settings-sections.js +26 -4
- package/components/shell/ComputerUseApprovalOverlay.d.ts.map +1 -1
- package/components/shell/ComputerUseApprovalOverlay.js +12 -2
- package/components/shell/ContinuousChatOverlay.d.ts.map +1 -1
- package/components/shell/ContinuousChatOverlay.js +41 -8
- package/components/shell/ShellHeaderControls.d.ts.map +1 -1
- package/components/shell/ShellHeaderControls.js +1 -1
- package/components/shell/StartupFailureView.d.ts.map +1 -1
- package/components/shell/StartupFailureView.js +4 -2
- package/components/shell/__e2e__/home-screen-fixture.catalog-stub.d.ts +2 -0
- package/components/shell/__e2e__/home-screen-fixture.catalog-stub.d.ts.map +1 -1
- package/components/shell/__e2e__/home-screen-fixture.catalog-stub.js +8 -0
- package/components/views/ViewTileImage.d.ts +4 -4
- package/components/views/ViewTileImage.d.ts.map +1 -1
- package/components/views/ViewTileImage.js +26 -9
- package/config/boot-config-store.d.ts +10 -0
- package/config/boot-config-store.d.ts.map +1 -1
- package/first-run/CompactOnboarding.d.ts.map +1 -1
- package/first-run/CompactOnboarding.js +4 -2
- package/first-run/use-first-run-controller.d.ts +1 -0
- package/first-run/use-first-run-controller.d.ts.map +1 -1
- package/first-run/use-first-run-controller.js +133 -56
- package/hooks/useAvailableViews.d.ts +11 -2
- package/hooks/useAvailableViews.d.ts.map +1 -1
- package/hooks/useAvailableViews.js +49 -7
- package/hooks/useHorizontalPager.d.ts.map +1 -1
- package/hooks/useHorizontalPager.js +11 -4
- package/hooks/useViewCatalog.d.ts.map +1 -1
- package/hooks/useViewCatalog.js +5 -2
- package/hooks/view-catalog.d.ts +2 -0
- package/hooks/view-catalog.d.ts.map +1 -1
- package/hooks/view-catalog.js +1 -0
- package/index.d.ts +0 -1
- package/index.d.ts.map +1 -1
- package/index.js +0 -1
- package/layouts/content-layout/content-layout.d.ts.map +1 -1
- package/layouts/content-layout/content-layout.js +2 -1
- package/package.json +10 -10
- package/platform/browser-launch.d.ts.map +1 -1
- package/platform/browser-launch.js +2 -0
- package/state/AppContext.js +6 -4
- package/state/startup-coordinator.d.ts +2 -0
- package/state/startup-coordinator.d.ts.map +1 -1
- package/state/startup-coordinator.js +8 -0
- package/state/startup-first-run-options.d.ts +4 -0
- package/state/startup-first-run-options.d.ts.map +1 -0
- package/state/startup-first-run-options.js +18 -0
- package/state/startup-phase-hydrate.d.ts.map +1 -1
- package/state/startup-phase-hydrate.js +25 -14
- package/state/startup-phase-poll.d.ts.map +1 -1
- package/state/startup-phase-poll.js +60 -0
- package/state/startup-phase-restore.d.ts.map +1 -1
- package/state/startup-phase-restore.js +6 -19
- package/state/types.d.ts +0 -17
- package/state/types.d.ts.map +1 -1
- package/state/types.js +0 -13
- package/state/use-startup-shell-controller.d.ts.map +1 -1
- package/state/use-startup-shell-controller.js +3 -2
- package/state/useAppShellState.d.ts +5 -1
- package/state/useAppShellState.d.ts.map +1 -1
- package/state/useAppShellState.js +11 -3
- package/state/useChatCallbacks.d.ts +1 -0
- package/state/useChatCallbacks.d.ts.map +1 -1
- package/state/useChatCallbacks.js +53 -8
- package/state/useChatLifecycle.d.ts +1 -0
- package/state/useChatLifecycle.d.ts.map +1 -1
- package/state/useChatLifecycle.js +2 -2
- package/state/useChatSend.d.ts.map +1 -1
- package/state/useChatSend.js +72 -8
- package/state/useCloudState.d.ts.map +1 -1
- package/state/useCloudState.js +29 -1
- package/state/useDataLoaders.d.ts.map +1 -1
- package/state/useDataLoaders.js +9 -0
- package/state/useFirstRunCallbacks.d.ts.map +1 -1
- package/state/useFirstRunCallbacks.js +5 -0
- package/state/useLifecycleState.d.ts +0 -7
- package/state/useLifecycleState.d.ts.map +1 -1
- package/state/useLifecycleState.js +0 -24
- package/state/usePluginsSkillsState.d.ts +2 -2
- package/state/useWalletState.d.ts +3 -1
- package/state/useWalletState.d.ts.map +1 -1
- package/state/useWalletState.js +4 -2
- package/storybook/mock-providers.d.ts.map +1 -1
- package/storybook/mock-providers.js +2 -0
- package/styles/electrobun-mac-window-drag.css +7 -0
- package/widgets/WidgetHost.d.ts.map +1 -1
- package/widgets/WidgetHost.js +21 -3
- package/cloud/documents/DocumentsRoute.d.ts +0 -21
- package/cloud/documents/DocumentsRoute.d.ts.map +0 -1
- package/cloud/documents/DocumentsRoute.js +0 -45
- package/cloud/documents/DocumentsSection.d.ts +0 -15
- package/cloud/documents/DocumentsSection.d.ts.map +0 -1
- package/cloud/documents/DocumentsSection.js +0 -18
- package/cloud/documents/components/document-list.d.ts +0 -19
- package/cloud/documents/components/document-list.d.ts.map +0 -1
- package/cloud/documents/components/document-list.js +0 -75
- package/cloud/documents/components/document-query.d.ts +0 -15
- package/cloud/documents/components/document-query.d.ts.map +0 -1
- package/cloud/documents/components/document-query.js +0 -92
- package/cloud/documents/components/document-upload.d.ts +0 -16
- package/cloud/documents/components/document-upload.d.ts.map +0 -1
- package/cloud/documents/components/document-upload.js +0 -180
- package/cloud/documents/components/documents-page-client.d.ts +0 -20
- package/cloud/documents/components/documents-page-client.d.ts.map +0 -1
- package/cloud/documents/components/documents-page-client.js +0 -80
- package/cloud/documents/index.d.ts +0 -37
- package/cloud/documents/index.d.ts.map +0 -1
- package/cloud/documents/index.js +0 -45
- package/cloud/documents/lib/agents.d.ts +0 -23
- package/cloud/documents/lib/agents.d.ts.map +0 -1
- package/cloud/documents/lib/agents.js +0 -26
- package/cloud/documents/lib/documents.d.ts +0 -54
- package/cloud/documents/lib/documents.d.ts.map +0 -1
- package/cloud/documents/lib/documents.js +0 -118
- package/cloud/instances/AgentChatPage.d.ts +0 -13
- package/cloud/instances/AgentChatPage.d.ts.map +0 -1
- package/cloud/instances/AgentChatPage.js +0 -217
- package/cloud-ui/components/image-gen/empty-state.d.ts +0 -3
- package/cloud-ui/components/image-gen/empty-state.d.ts.map +0 -1
- package/cloud-ui/components/image-gen/empty-state.js +0 -12
- package/cloud-ui/components/image-gen/enhanced-loading.d.ts +0 -14
- package/cloud-ui/components/image-gen/enhanced-loading.d.ts.map +0 -1
- package/cloud-ui/components/image-gen/enhanced-loading.js +0 -23
- package/cloud-ui/components/image-gen/index.d.ts +0 -5
- package/cloud-ui/components/image-gen/index.d.ts.map +0 -1
- package/cloud-ui/components/image-gen/index.js +0 -4
- package/cloud-ui/components/image-gen/loading-state.d.ts +0 -2
- package/cloud-ui/components/image-gen/loading-state.d.ts.map +0 -1
- package/cloud-ui/components/image-gen/loading-state.js +0 -11
- package/cloud-ui/components/image-gen/prompt-input.d.ts +0 -32
- package/cloud-ui/components/image-gen/prompt-input.d.ts.map +0 -1
- package/cloud-ui/components/image-gen/prompt-input.js +0 -24
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Instances cloud domain — hosted agent management ("Instances" + "My Agent").
|
|
3
3
|
*
|
|
4
|
-
* Mounts
|
|
4
|
+
* Mounts three authenticated routes under the cloud shell:
|
|
5
5
|
* - `dashboard/agents` → the Instances table (list / create / status)
|
|
6
6
|
* - `dashboard/agents/:id` → agent detail (overview / wallet / txns /
|
|
7
7
|
* policies / actions / backups / logs)
|
|
8
|
-
* - `dashboard/agents/:id/chat` → in-dashboard JSON-RPC quick chat
|
|
9
8
|
* - `dashboard/my-agents` → character library + agent console
|
|
10
9
|
*
|
|
11
10
|
* Each page is code-split via `React.lazy` so its bundle (create-agent dialog,
|
|
@@ -24,13 +23,11 @@
|
|
|
24
23
|
*/
|
|
25
24
|
export declare const AGENTS_ROUTE_PATH = "dashboard/agents";
|
|
26
25
|
export declare const AGENT_DETAIL_ROUTE_PATH = "dashboard/agents/:id";
|
|
27
|
-
export declare const AGENT_CHAT_ROUTE_PATH = "dashboard/agents/:id/chat";
|
|
28
26
|
export declare const MY_AGENTS_ROUTE_PATH = "dashboard/my-agents";
|
|
29
27
|
declare const AgentsPage: import("react").LazyExoticComponent<typeof import("./AgentsPage.js").default>;
|
|
30
28
|
declare const AgentDetailPage: import("react").LazyExoticComponent<typeof import("./AgentDetailPage.js").default>;
|
|
31
|
-
declare const AgentChatPage: import("react").LazyExoticComponent<typeof import("./AgentChatPage.js").default>;
|
|
32
29
|
declare const MyAgentsPage: import("react").LazyExoticComponent<typeof import("./MyAgentsPage.js").default>;
|
|
33
30
|
export type { AgentListItem } from "./lib/data/eliza-agents.js";
|
|
34
31
|
export { useAgent, useAgents } from "./lib/data/eliza-agents.js";
|
|
35
|
-
export {
|
|
32
|
+
export { AgentDetailPage, AgentsPage, MyAgentsPage };
|
|
36
33
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/instances/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/instances/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AACpD,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAC9D,eAAO,MAAM,oBAAoB,wBAAwB,CAAC;AAE1D,QAAA,MAAM,UAAU,4EAAqC,CAAC;AACtD,QAAA,MAAM,eAAe,iFAA0C,CAAC;AAChE,QAAA,MAAM,YAAY,8EAAuC,CAAC;AAE1D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
|
package/cloud/instances/index.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Instances cloud domain — hosted agent management ("Instances" + "My Agent").
|
|
3
3
|
*
|
|
4
|
-
* Mounts
|
|
4
|
+
* Mounts three authenticated routes under the cloud shell:
|
|
5
5
|
* - `dashboard/agents` → the Instances table (list / create / status)
|
|
6
6
|
* - `dashboard/agents/:id` → agent detail (overview / wallet / txns /
|
|
7
7
|
* policies / actions / backups / logs)
|
|
8
|
-
* - `dashboard/agents/:id/chat` → in-dashboard JSON-RPC quick chat
|
|
9
8
|
* - `dashboard/my-agents` → character library + agent console
|
|
10
9
|
*
|
|
11
10
|
* Each page is code-split via `React.lazy` so its bundle (create-agent dialog,
|
|
@@ -26,21 +25,12 @@ import { lazy } from "react";
|
|
|
26
25
|
import { registerCloudRoute } from "../shell/cloud-route-registry.js";
|
|
27
26
|
export const AGENTS_ROUTE_PATH = "dashboard/agents";
|
|
28
27
|
export const AGENT_DETAIL_ROUTE_PATH = "dashboard/agents/:id";
|
|
29
|
-
export const AGENT_CHAT_ROUTE_PATH = "dashboard/agents/:id/chat";
|
|
30
28
|
export const MY_AGENTS_ROUTE_PATH = "dashboard/my-agents";
|
|
31
29
|
const AgentsPage = lazy(() => import("./AgentsPage.js"));
|
|
32
30
|
const AgentDetailPage = lazy(() => import("./AgentDetailPage.js"));
|
|
33
|
-
const AgentChatPage = lazy(() => import("./AgentChatPage.js"));
|
|
34
31
|
const MyAgentsPage = lazy(() => import("./MyAgentsPage.js"));
|
|
35
32
|
export { useAgent, useAgents } from "./lib/data/eliza-agents.js";
|
|
36
|
-
export {
|
|
37
|
-
// Order matters: register the more specific `:id/chat` route before `:id` so
|
|
38
|
-
// react-router's match precedence resolves the chat sub-route correctly.
|
|
39
|
-
registerCloudRoute({
|
|
40
|
-
path: AGENT_CHAT_ROUTE_PATH,
|
|
41
|
-
element: AgentChatPage,
|
|
42
|
-
group: "dashboard",
|
|
43
|
-
});
|
|
33
|
+
export { AgentDetailPage, AgentsPage, MyAgentsPage };
|
|
44
34
|
registerCloudRoute({
|
|
45
35
|
path: AGENT_DETAIL_ROUTE_PATH,
|
|
46
36
|
element: AgentDetailPage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invite-member-dialog.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/organization/invite-member-dialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"invite-member-dialog.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/organization/invite-member-dialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA0BH,UAAU,uBAAuB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,OAAO,EACP,SAAS,EACT,gBAAgB,GACjB,EAAE,uBAAuB,2CA+JzB"}
|
|
@@ -18,7 +18,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
18
18
|
*/
|
|
19
19
|
import { AlertCircle, Loader2, Mail, UserCog } from "lucide-react";
|
|
20
20
|
import { useState } from "react";
|
|
21
|
-
import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "../../cloud-ui/index.js";
|
|
21
|
+
import { BrandButton, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "../../cloud-ui/index.js";
|
|
22
22
|
import { organizationErrorMessage, useCreateInvite, } from "./data/use-organization.js";
|
|
23
23
|
export function InviteMemberDialog({ isOpen, onClose, onSuccess, organizationName, }) {
|
|
24
24
|
const [email, setEmail] = useState("");
|
|
@@ -51,8 +51,5 @@ export function InviteMemberDialog({ isOpen, onClose, onSuccess, organizationNam
|
|
|
51
51
|
onClose();
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
|
-
return (_jsx(Dialog, { open: isOpen, onOpenChange: handleClose, children: _jsxs(DialogContent, { className: "bg-neutral-950 border border-brand-surface p-4 sm:p-6 max-w-[95vw] sm:max-w-md", children: [_jsxs(DialogHeader, { children: [_jsxs(DialogTitle, { className: "flex items-center gap-2 text-white font-mono", children: [_jsx(Mail, { className: "h-5 w-5 text-[#FF5800]" }), "Invite Team Member"] }), _jsxs(DialogDescription, { className: "text-white/60 font-mono text-xs md:text-sm", children: ["Send an invitation to join", " ", _jsx("span", { className: "text-white", children: organizationName }), ". They'll receive an email with a link to accept. Accepting will switch them to ", _jsx("span", { className: "text-white", children: organizationName }), " \u2014 a person belongs to one organization at a time, so they'll leave their current one."] })] }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [error && (_jsxs("div", { className: "bg-[#EB4335]/10 border border-[#EB4335]/40 p-3 flex items-start gap-2", children: [_jsx(AlertCircle, { className: "h-4 w-4 text-[#EB4335] flex-shrink-0 mt-0.5" }), _jsx("p", { className: "text-xs md:text-sm font-mono text-[#EB4335]", children: error })] })), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "email", className: "text-white font-mono text-sm", children: "Email Address" }), _jsx(Input, { id: "email", type: "email", placeholder: "colleague@company.com", value: email, onChange: (e) => setEmail(e.target.value), disabled: isSubmitting, required: true, autoFocus: true, className: "bg-transparent border-[#303030] text-white" }), _jsx("p", { className: "text-xs font-mono text-white/40", children: "They'll need to sign up with this email address" })] }), _jsxs("div", { className: "space-y-2", children: [_jsxs(Label, { htmlFor: "role", className: "flex items-center gap-2 text-white font-mono text-sm", children: [_jsx(UserCog, { className: "h-4 w-4 text-[#FF5800]" }), "Role"] }), _jsxs(Select, { value: role, onValueChange: (value) => setRole(value), disabled: isSubmitting, children: [_jsx(SelectTrigger, { id: "role", className: "bg-transparent border-[#303030] text-white", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { className: "bg-[#1a1a1a] border-[#303030]", children: [_jsx(SelectItem, { value: "member", children: _jsxs("div", { className: "flex flex-col items-start", children: [_jsx("span", { className: "font-mono font-medium text-white", children: "Member" }), _jsx("span", { className: "text-xs font-mono text-white/40", children: "Can use resources and view organization" })] }) }), _jsx(SelectItem, { value: "admin", children: _jsxs("div", { className: "flex flex-col items-start", children: [_jsx("span", { className: "font-mono font-medium text-white", children: "Admin" }), _jsx("span", { className: "text-xs font-mono text-white/40", children: "Can invite and manage members" })] }) })] })] })] }), _jsxs(DialogFooter, { className: "gap-2 sm:gap-0 flex flex-col sm:flex-row", children: [_jsx("button", { type: "button", onClick: handleClose, disabled: isSubmitting, className: "px-4 py-2 text-white hover:bg-white/5 transition-colors disabled:opacity-50 order-2 sm:order-1", children: "Cancel" }),
|
|
55
|
-
backgroundImage: `url(/assets/settings/pattern-6px-flip.png)`,
|
|
56
|
-
backgroundSize: "2.915576934814453px 2.915576934814453px",
|
|
57
|
-
} }), _jsx("span", { className: "relative z-10 text-black font-mono font-medium text-sm flex items-center justify-center gap-2", children: isSubmitting ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { className: "h-4 w-4 animate-spin" }), "Sending..."] })) : (_jsxs(_Fragment, { children: [_jsx(Mail, { className: "h-4 w-4" }), "Send Invitation"] })) })] })] })] })] }) }));
|
|
54
|
+
return (_jsx(Dialog, { open: isOpen, onOpenChange: handleClose, children: _jsxs(DialogContent, { className: "bg-neutral-950 border border-brand-surface p-4 sm:p-6 max-w-[95vw] sm:max-w-md", children: [_jsxs(DialogHeader, { children: [_jsxs(DialogTitle, { className: "flex items-center gap-2 text-white font-mono", children: [_jsx(Mail, { className: "h-5 w-5 text-[#FF5800]" }), "Invite Team Member"] }), _jsxs(DialogDescription, { className: "text-white/60 font-mono text-xs md:text-sm", children: ["Send an invitation to join", " ", _jsx("span", { className: "text-white", children: organizationName }), ". They'll receive an email with a link to accept. Accepting will switch them to ", _jsx("span", { className: "text-white", children: organizationName }), " \u2014 a person belongs to one organization at a time, so they'll leave their current one."] })] }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [error && (_jsxs("div", { className: "bg-[#EB4335]/10 border border-[#EB4335]/40 p-3 flex items-start gap-2", children: [_jsx(AlertCircle, { className: "h-4 w-4 text-[#EB4335] flex-shrink-0 mt-0.5" }), _jsx("p", { className: "text-xs md:text-sm font-mono text-[#EB4335]", children: error })] })), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "email", className: "text-white font-mono text-sm", children: "Email Address" }), _jsx(Input, { id: "email", type: "email", placeholder: "colleague@company.com", value: email, onChange: (e) => setEmail(e.target.value), disabled: isSubmitting, required: true, autoFocus: true, className: "bg-transparent border-[#303030] text-white" }), _jsx("p", { className: "text-xs font-mono text-white/40", children: "They'll need to sign up with this email address" })] }), _jsxs("div", { className: "space-y-2", children: [_jsxs(Label, { htmlFor: "role", className: "flex items-center gap-2 text-white font-mono text-sm", children: [_jsx(UserCog, { className: "h-4 w-4 text-[#FF5800]" }), "Role"] }), _jsxs(Select, { value: role, onValueChange: (value) => setRole(value), disabled: isSubmitting, children: [_jsx(SelectTrigger, { id: "role", className: "bg-transparent border-[#303030] text-white", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { className: "bg-[#1a1a1a] border-[#303030]", children: [_jsx(SelectItem, { value: "member", children: _jsxs("div", { className: "flex flex-col items-start", children: [_jsx("span", { className: "font-mono font-medium text-white", children: "Member" }), _jsx("span", { className: "text-xs font-mono text-white/40", children: "Can use resources and view organization" })] }) }), _jsx(SelectItem, { value: "admin", children: _jsxs("div", { className: "flex flex-col items-start", children: [_jsx("span", { className: "font-mono font-medium text-white", children: "Admin" }), _jsx("span", { className: "text-xs font-mono text-white/40", children: "Can invite and manage members" })] }) })] })] })] }), _jsxs(DialogFooter, { className: "gap-2 sm:gap-0 flex flex-col sm:flex-row", children: [_jsx("button", { type: "button", onClick: handleClose, disabled: isSubmitting, className: "px-4 py-2 text-white hover:bg-white/5 transition-colors disabled:opacity-50 order-2 sm:order-1", children: "Cancel" }), _jsx(BrandButton, { type: "submit", variant: "primary", disabled: isSubmitting, className: "font-mono text-sm order-1 sm:order-2", children: isSubmitting ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { className: "h-4 w-4 animate-spin" }), "Sending..."] })) : (_jsxs(_Fragment, { children: [_jsx(Mail, { className: "h-4 w-4" }), "Send Invitation"] })) })] })] })] }) }));
|
|
58
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"members-tab.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/organization/members-tab.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"members-tab.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/organization/members-tab.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAiBH,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAahC,UAAU,eAAe;IACvB,IAAI,EAAE,uBAAuB,CAAC;CAC/B;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,eAAe,2CAwMnD"}
|
|
@@ -14,7 +14,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
14
14
|
import { Loader2, UserPlus } from "lucide-react";
|
|
15
15
|
import { useState } from "react";
|
|
16
16
|
import { toast } from "sonner";
|
|
17
|
-
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from "../../cloud-ui/index.js";
|
|
17
|
+
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, BrandButton, } from "../../cloud-ui/index.js";
|
|
18
18
|
import { useCloudT } from "../shell/CloudI18nProvider.js";
|
|
19
19
|
import { organizationErrorMessage, useOrganizationInvites, useOrganizationMembers, useRemoveMember, useRevokeInvite, useUpdateMemberRole, } from "./data/use-organization.js";
|
|
20
20
|
import { InviteMemberDialog } from "./invite-member-dialog.js";
|
|
@@ -84,12 +84,9 @@ export function MembersTab({ user }) {
|
|
|
84
84
|
};
|
|
85
85
|
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "space-y-4 md:space-y-6", children: [_jsxs("div", { className: "flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-base md:text-lg font-mono font-semibold text-white", children: t("cloud.membersTab.title", { defaultValue: "Team Members" }) }), _jsx("p", { className: "text-xs md:text-sm font-mono text-white/60", children: t("cloud.membersTab.subtitle", {
|
|
86
86
|
defaultValue: "Manage who has access to your organization",
|
|
87
|
-
}) })] }), canManageMembers && (_jsxs(
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
} }), _jsx(UserPlus, { className: "relative z-10 h-4 w-4 text-black" }), _jsx("span", { className: "relative z-10 text-black font-mono font-medium text-sm md:text-base", children: t("cloud.membersTab.inviteMember", {
|
|
91
|
-
defaultValue: "Invite Member",
|
|
92
|
-
}) })] }))] }), membersQuery.isLoading ? (_jsx("div", { className: "flex items-center justify-center py-12", children: _jsx(Loader2, { className: "h-8 w-8 animate-spin text-[#FF5800]" }) })) : (_jsx(MembersList, { members: members, currentUserId: user.id, currentUserRole: user.role, isOwner: isOwner, onUpdateRole: handleUpdateMemberRole, onRemove: setRemoveMemberId })), canManageMembers && (_jsxs("div", { className: "pt-4 md:pt-6 border-t border-white/10", children: [_jsx("h3", { className: "text-base md:text-lg font-mono font-semibold mb-3 md:mb-4 text-white", children: t("cloud.membersTab.pendingInvitations", {
|
|
87
|
+
}) })] }), canManageMembers && (_jsxs(BrandButton, { type: "button", variant: "primary", onClick: () => setIsInviteDialogOpen(true), className: "font-mono text-sm md:text-base w-full sm:w-auto", children: [_jsx(UserPlus, { className: "h-4 w-4" }), t("cloud.membersTab.inviteMember", {
|
|
88
|
+
defaultValue: "Invite Member",
|
|
89
|
+
})] }))] }), membersQuery.isLoading ? (_jsx("div", { className: "flex items-center justify-center py-12", children: _jsx(Loader2, { className: "h-8 w-8 animate-spin text-[#FF5800]" }) })) : (_jsx(MembersList, { members: members, currentUserId: user.id, currentUserRole: user.role, isOwner: isOwner, onUpdateRole: handleUpdateMemberRole, onRemove: setRemoveMemberId })), canManageMembers && (_jsxs("div", { className: "pt-4 md:pt-6 border-t border-white/10", children: [_jsx("h3", { className: "text-base md:text-lg font-mono font-semibold mb-3 md:mb-4 text-white", children: t("cloud.membersTab.pendingInvitations", {
|
|
93
90
|
defaultValue: "Pending Invitations",
|
|
94
91
|
}) }), invitesQuery.isLoading ? (_jsx("div", { className: "flex items-center justify-center py-8", children: _jsx(Loader2, { className: "h-6 w-6 animate-spin text-[#FF5800]" }) })) : (_jsx(PendingInvitesList, { invites: invites, onRevoke: handleRevokeInvite }))] })), _jsx(InviteMemberDialog, { isOpen: isInviteDialogOpen, onClose: () => setIsInviteDialogOpen(false), onSuccess: handleInviteSuccess, organizationName: user.organization?.name ?? "this organization" })] }), _jsx(AlertDialog, { open: removeMemberId !== null, onOpenChange: (open) => !open && setRemoveMemberId(null), children: _jsxs(AlertDialogContent, { children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: t("cloud.membersTab.removeMemberTitle", {
|
|
95
92
|
defaultValue: "Remove Member",
|
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
* Third-party app OAuth-authorize page (public). Reuses the cloud-ui
|
|
3
3
|
* `AuthorizeContent` component (the shared authorize UI). Ported from
|
|
4
4
|
* `@elizaos/cloud-frontend/src/pages/app-auth/authorize/page.tsx`.
|
|
5
|
+
*
|
|
6
|
+
* `AuthorizeContent` calls `useAuth()` / renders `<StewardLogin>` from
|
|
7
|
+
* `@stwd/react`, both of which require an ancestor Steward `<StewardProvider>`.
|
|
8
|
+
* As a `public: true` route this page renders WITHOUT the per-route Steward
|
|
9
|
+
* wrapper (see `CloudRouteElement`), so it must mount the shell's
|
|
10
|
+
* `StewardAuthProvider` itself — otherwise `useAuth()` throws "must be used
|
|
11
|
+
* within a <StewardProvider>" and all monetized-app sign-in is blocked (#9881).
|
|
12
|
+
* `StewardAuthProvider` already lists `/app-auth` in its runtime route patterns,
|
|
13
|
+
* so it mounts the Steward runtime even for an unauthenticated visitor.
|
|
5
14
|
*/
|
|
6
15
|
export default function AppAuthAuthorizePage(): import("react/jsx-runtime").JSX.Element;
|
|
7
16
|
//# sourceMappingURL=app-authorize-page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-authorize-page.d.ts","sourceRoot":"","sources":["../../../../../../../../src/cloud/public-pages/pages/app-auth/app-authorize-page.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"app-authorize-page.d.ts","sourceRoot":"","sources":["../../../../../../../../src/cloud/public-pages/pages/app-auth/app-authorize-page.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,MAAM,CAAC,OAAO,UAAU,oBAAoB,4CAc3C"}
|
|
@@ -3,15 +3,25 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
* Third-party app OAuth-authorize page (public). Reuses the cloud-ui
|
|
4
4
|
* `AuthorizeContent` component (the shared authorize UI). Ported from
|
|
5
5
|
* `@elizaos/cloud-frontend/src/pages/app-auth/authorize/page.tsx`.
|
|
6
|
+
*
|
|
7
|
+
* `AuthorizeContent` calls `useAuth()` / renders `<StewardLogin>` from
|
|
8
|
+
* `@stwd/react`, both of which require an ancestor Steward `<StewardProvider>`.
|
|
9
|
+
* As a `public: true` route this page renders WITHOUT the per-route Steward
|
|
10
|
+
* wrapper (see `CloudRouteElement`), so it must mount the shell's
|
|
11
|
+
* `StewardAuthProvider` itself — otherwise `useAuth()` throws "must be used
|
|
12
|
+
* within a <StewardProvider>" and all monetized-app sign-in is blocked (#9881).
|
|
13
|
+
* `StewardAuthProvider` already lists `/app-auth` in its runtime route patterns,
|
|
14
|
+
* so it mounts the Steward runtime even for an unauthenticated visitor.
|
|
6
15
|
*/
|
|
7
16
|
import { Suspense } from "react";
|
|
8
17
|
import { AuthorizeContent } from "../../../../cloud-ui/components/auth/authorize-content.js";
|
|
9
18
|
import { useCloudT } from "../../../shell/CloudI18nProvider.js";
|
|
19
|
+
import { StewardAuthProvider } from "../../../shell/StewardProvider.js";
|
|
10
20
|
import { usePageTitle } from "../../lib/use-page-title.js";
|
|
11
21
|
export default function AppAuthAuthorizePage() {
|
|
12
22
|
const t = useCloudT();
|
|
13
23
|
usePageTitle(t("cloud.appAuth.metaTitle", {
|
|
14
24
|
defaultValue: "Authorize App | Eliza Cloud",
|
|
15
25
|
}));
|
|
16
|
-
return (_jsx(Suspense, { fallback: null, children: _jsx(AuthorizeContent, {}) }));
|
|
26
|
+
return (_jsx(StewardAuthProvider, { children: _jsx(Suspense, { fallback: null, children: _jsx(AuthorizeContent, {}) }) }));
|
|
17
27
|
}
|
package/cloud/register-all.d.ts
CHANGED
|
@@ -17,7 +17,6 @@ import "./instances/index.js";
|
|
|
17
17
|
import "./account-security/index.js";
|
|
18
18
|
import "./billing/routes.js";
|
|
19
19
|
import "./organization/routes.js";
|
|
20
|
-
import "./settings/index.js";
|
|
21
20
|
/**
|
|
22
21
|
* Register every cloud route + settings section against the shared registries.
|
|
23
22
|
* Idempotent and safe to call from the app shell on every boot.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-all.d.ts","sourceRoot":"","sources":["../../../../../src/cloud/register-all.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,aAAa,CAAC;AACrB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"register-all.d.ts","sourceRoot":"","sources":["../../../../../src/cloud/register-all.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,aAAa,CAAC;AACrB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,uBAAuB,CAAC;AAe/B;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAgB/C"}
|
package/cloud/register-all.js
CHANGED
|
@@ -19,18 +19,16 @@ import "./instances/index.js";
|
|
|
19
19
|
import "./account-security/index.js";
|
|
20
20
|
import "./billing/routes.js";
|
|
21
21
|
import "./organization/routes.js";
|
|
22
|
-
import "./settings/index.js";
|
|
23
22
|
import { registerAdminCloudRoutes } from "./admin/index.js";
|
|
24
23
|
import { registerApiExplorerCloudRoute } from "./api-explorer/index.js";
|
|
25
24
|
import { registerApiKeysCloudRoute } from "./api-keys/index.js";
|
|
26
25
|
import { registerApplicationsCloudRoutes } from "./applications/index.js";
|
|
27
26
|
import { registerApprovalsCloudRoute } from "./approvals/index.js";
|
|
28
|
-
import { registerCloudConnectorsSettingsSection } from "./connectors/index.js";
|
|
29
|
-
import { registerDocumentsCloudRoute } from "./documents/index.js";
|
|
30
27
|
import { registerJoinFlow } from "./join/index.js";
|
|
31
|
-
import { registerMcpsCloudRoute
|
|
28
|
+
import { registerMcpsCloudRoute } from "./mcps/index.js";
|
|
32
29
|
import { registerMonetizationCloudRoutes } from "./monetization/index.js";
|
|
33
30
|
import { registerPublicPages } from "./public-pages/index.js";
|
|
31
|
+
import { registerCloudSettingsSections } from "./settings/index.js";
|
|
34
32
|
let registered = false;
|
|
35
33
|
/**
|
|
36
34
|
* Register every cloud route + settings section against the shared registries.
|
|
@@ -46,10 +44,8 @@ export function registerAllCloudSurfaces() {
|
|
|
46
44
|
registerApiExplorerCloudRoute();
|
|
47
45
|
registerApplicationsCloudRoutes();
|
|
48
46
|
registerApprovalsCloudRoute();
|
|
49
|
-
registerDocumentsCloudRoute();
|
|
50
47
|
registerMonetizationCloudRoutes();
|
|
51
48
|
registerAdminCloudRoutes();
|
|
52
49
|
registerMcpsCloudRoute();
|
|
53
|
-
|
|
54
|
-
registerMcpsSettingsSection();
|
|
50
|
+
registerCloudSettingsSections();
|
|
55
51
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* In-app Eliza Cloud settings sections (re-IA Step 2).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* way the built-in sections register through `settings-sections.ts`.
|
|
4
|
+
* This barrel is intentionally side-effect free. Hosts that expose the Cloud
|
|
5
|
+
* dashboard inside Settings must call {@link registerCloudSettingsSections}
|
|
6
|
+
* from their cloud boot path; local-first shells can import Cloud helpers
|
|
7
|
+
* without surfacing Cloud-only tabs.
|
|
9
8
|
*/
|
|
10
|
-
import "./register-cloud-settings.js";
|
|
11
9
|
export { CloudSettingsSectionShell } from "./CloudSettingsSectionShell.js";
|
|
12
10
|
export { CLOUD_SETTINGS_GROUP_ID, type ExtraSettingsGroupDef, getExtraSettingsGroup, listExtraSettingsGroups, registerSettingsGroup, } from "./cloud-settings-group.js";
|
|
11
|
+
export { registerCloudSettingsSections } from "./register-cloud-settings.js";
|
|
13
12
|
export { CloudAccountSection, CloudApiKeysSection, CloudApplicationsSection, CloudBillingSection, CloudMonetizationSection, CloudOrganizationSection, CloudPluginGrantsSection, CloudSecuritySection, } from "./sections.js";
|
|
14
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/settings/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/settings/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EACL,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
package/cloud/settings/index.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* In-app Eliza Cloud settings sections (re-IA Step 2).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* way the built-in sections register through `settings-sections.ts`.
|
|
4
|
+
* This barrel is intentionally side-effect free. Hosts that expose the Cloud
|
|
5
|
+
* dashboard inside Settings must call {@link registerCloudSettingsSections}
|
|
6
|
+
* from their cloud boot path; local-first shells can import Cloud helpers
|
|
7
|
+
* without surfacing Cloud-only tabs.
|
|
9
8
|
*/
|
|
10
|
-
import "./register-cloud-settings.js";
|
|
11
9
|
export { CloudSettingsSectionShell } from "./CloudSettingsSectionShell.js";
|
|
12
10
|
export { CLOUD_SETTINGS_GROUP_ID, getExtraSettingsGroup, listExtraSettingsGroups, registerSettingsGroup, } from "./cloud-settings-group.js";
|
|
11
|
+
export { registerCloudSettingsSections } from "./register-cloud-settings.js";
|
|
13
12
|
export { CloudAccountSection, CloudApiKeysSection, CloudApplicationsSection, CloudBillingSection, CloudMonetizationSection, CloudOrganizationSection, CloudPluginGrantsSection, CloudSecuritySection, } from "./sections.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Single registration barrel for the in-app Eliza Cloud settings sections
|
|
3
3
|
* (re-IA Step 2).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Calling {@link registerCloudSettingsSections} registers:
|
|
6
6
|
* - a new **Cloud** settings group (between System and Security), and
|
|
7
7
|
* - the cloud sections that re-home the lifted cloud dashboard pages as in-app
|
|
8
8
|
* Settings sections, plus two additions to the existing **Security** group.
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
* so they sit *alongside* the app's built-in local Security + Permissions
|
|
30
30
|
* sections rather than overriding them (the registry is last-write-wins per id).
|
|
31
31
|
*/
|
|
32
|
-
export
|
|
32
|
+
export declare function registerCloudSettingsSections(): void;
|
|
33
33
|
//# sourceMappingURL=register-cloud-settings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-cloud-settings.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/settings/register-cloud-settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG"}
|
|
1
|
+
{"version":3,"file":"register-cloud-settings.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/settings/register-cloud-settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAoCH,wBAAgB,6BAA6B,IAAI,IAAI,CAuIpD"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Single registration barrel for the in-app Eliza Cloud settings sections
|
|
3
3
|
* (re-IA Step 2).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Calling {@link registerCloudSettingsSections} registers:
|
|
6
6
|
* - a new **Cloud** settings group (between System and Security), and
|
|
7
7
|
* - the cloud sections that re-home the lifted cloud dashboard pages as in-app
|
|
8
8
|
* Settings sections, plus two additions to the existing **Security** group.
|
|
@@ -39,123 +39,129 @@ import { CloudAccountSection, CloudApiKeysSection, CloudApplicationsSection, Clo
|
|
|
39
39
|
* The Cloud group sits between System (built-in order 1) and Security (built-in
|
|
40
40
|
* order 2), matching the IA in `docs/cloud-into-eliza/PLAN.md` §4.3.
|
|
41
41
|
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
42
|
+
let cloudSettingsRegistered = false;
|
|
43
|
+
export function registerCloudSettingsSections() {
|
|
44
|
+
if (cloudSettingsRegistered)
|
|
45
|
+
return;
|
|
46
|
+
cloudSettingsRegistered = true;
|
|
47
|
+
registerSettingsGroup({
|
|
48
|
+
id: CLOUD_SETTINGS_GROUP_ID,
|
|
49
|
+
label: "Cloud",
|
|
50
|
+
order: 1.5,
|
|
51
|
+
});
|
|
52
|
+
// ── Cloud group ──────────────────────────────────────────────────────────────
|
|
53
|
+
registerSettingsSection({
|
|
54
|
+
id: "cloud-account",
|
|
55
|
+
label: "settings.sections.cloudAccount.label",
|
|
56
|
+
defaultLabel: "Account & Profile",
|
|
57
|
+
icon: User,
|
|
58
|
+
tone: "accent",
|
|
59
|
+
hue: "accent",
|
|
60
|
+
group: CLOUD_SETTINGS_GROUP_ID,
|
|
61
|
+
titleKey: "settings.sections.cloudAccount.title",
|
|
62
|
+
defaultTitle: "Account & Profile",
|
|
63
|
+
order: 0,
|
|
64
|
+
Component: CloudAccountSection,
|
|
65
|
+
});
|
|
66
|
+
registerSettingsSection({
|
|
67
|
+
id: "cloud-billing",
|
|
68
|
+
label: "settings.sections.cloudBilling.label",
|
|
69
|
+
defaultLabel: "Billing & Credits",
|
|
70
|
+
icon: CreditCard,
|
|
71
|
+
tone: "accent",
|
|
72
|
+
hue: "accent",
|
|
73
|
+
group: CLOUD_SETTINGS_GROUP_ID,
|
|
74
|
+
titleKey: "settings.sections.cloudBilling.title",
|
|
75
|
+
defaultTitle: "Billing & Credits",
|
|
76
|
+
order: 1,
|
|
77
|
+
Component: CloudBillingSection,
|
|
78
|
+
});
|
|
79
|
+
registerSettingsSection({
|
|
80
|
+
id: "cloud-api-keys",
|
|
81
|
+
label: "settings.sections.cloudApiKeys.label",
|
|
82
|
+
defaultLabel: "API Keys",
|
|
83
|
+
icon: KeyRound,
|
|
84
|
+
tone: "accent",
|
|
85
|
+
hue: "accent",
|
|
86
|
+
group: CLOUD_SETTINGS_GROUP_ID,
|
|
87
|
+
titleKey: "settings.sections.cloudApiKeys.title",
|
|
88
|
+
defaultTitle: "API Keys",
|
|
89
|
+
order: 2,
|
|
90
|
+
Component: CloudApiKeysSection,
|
|
91
|
+
});
|
|
92
|
+
registerSettingsSection({
|
|
93
|
+
id: "cloud-applications",
|
|
94
|
+
label: "settings.sections.cloudApplications.label",
|
|
95
|
+
defaultLabel: "Applications",
|
|
96
|
+
icon: Grid3x3,
|
|
97
|
+
tone: "accent",
|
|
98
|
+
hue: "accent",
|
|
99
|
+
group: CLOUD_SETTINGS_GROUP_ID,
|
|
100
|
+
titleKey: "settings.sections.cloudApplications.title",
|
|
101
|
+
defaultTitle: "Applications",
|
|
102
|
+
order: 3,
|
|
103
|
+
Component: CloudApplicationsSection,
|
|
104
|
+
});
|
|
105
|
+
registerSettingsSection({
|
|
106
|
+
id: "cloud-monetization",
|
|
107
|
+
label: "settings.sections.cloudMonetization.label",
|
|
108
|
+
defaultLabel: "Monetization",
|
|
109
|
+
icon: TrendingUp,
|
|
110
|
+
tone: "accent",
|
|
111
|
+
hue: "accent",
|
|
112
|
+
group: CLOUD_SETTINGS_GROUP_ID,
|
|
113
|
+
titleKey: "settings.sections.cloudMonetization.title",
|
|
114
|
+
defaultTitle: "Monetization",
|
|
115
|
+
order: 4,
|
|
116
|
+
Component: CloudMonetizationSection,
|
|
117
|
+
});
|
|
118
|
+
registerSettingsSection({
|
|
119
|
+
id: "cloud-organization",
|
|
120
|
+
label: "settings.sections.cloudOrganization.label",
|
|
121
|
+
defaultLabel: "Organization",
|
|
122
|
+
icon: Building2,
|
|
123
|
+
tone: "accent",
|
|
124
|
+
hue: "accent",
|
|
125
|
+
group: CLOUD_SETTINGS_GROUP_ID,
|
|
126
|
+
titleKey: "settings.sections.cloudOrganization.title",
|
|
127
|
+
defaultTitle: "Organization",
|
|
128
|
+
order: 5,
|
|
129
|
+
Component: CloudOrganizationSection,
|
|
130
|
+
});
|
|
131
|
+
// ── Security group (additions) ───────────────────────────────────────────────
|
|
132
|
+
// Ordered after the built-in security sections (built-ins occupy meta indices
|
|
133
|
+
// 12–15). High explicit order keeps them last within the Security group.
|
|
134
|
+
registerSettingsSection({
|
|
135
|
+
id: "cloud-security",
|
|
136
|
+
label: "settings.sections.cloudSecurity.label",
|
|
137
|
+
defaultLabel: "Sessions & Privacy",
|
|
138
|
+
icon: Lock,
|
|
139
|
+
tone: "warn",
|
|
140
|
+
hue: "amber",
|
|
141
|
+
group: "security",
|
|
142
|
+
titleKey: "settings.sections.cloudSecurity.title",
|
|
143
|
+
defaultTitle: "Sessions, Privacy & Audit",
|
|
144
|
+
order: 100,
|
|
145
|
+
Component: CloudSecuritySection,
|
|
146
|
+
});
|
|
147
|
+
registerSettingsSection({
|
|
148
|
+
id: "cloud-plugin-grants",
|
|
149
|
+
label: "settings.sections.cloudPluginGrants.label",
|
|
150
|
+
defaultLabel: "Plugin Grants",
|
|
151
|
+
icon: Workflow,
|
|
152
|
+
tone: "warn",
|
|
153
|
+
hue: "amber",
|
|
154
|
+
group: "security",
|
|
155
|
+
titleKey: "settings.sections.cloudPluginGrants.title",
|
|
156
|
+
defaultTitle: "Plugin Grants",
|
|
157
|
+
order: 101,
|
|
158
|
+
Component: CloudPluginGrantsSection,
|
|
159
|
+
});
|
|
160
|
+
// ── Cloud connectors + MCPs ──────────────────────────────────────────────────
|
|
161
|
+
// These domains own their own settings-section registration (they live outside
|
|
162
|
+
// cloud/settings/). Invoke them here — from the barrel that SettingsView imports
|
|
163
|
+
// on every platform — so the sections surface on web AND native/desktop, not
|
|
164
|
+
// only inside the web-only route aggregator (register-all.ts).
|
|
165
|
+
registerCloudConnectorsSettingsSection();
|
|
166
|
+
registerMcpsSettingsSection();
|
|
167
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloudRouterShell.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/shell/CloudRouterShell.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAGL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CloudRouterShell.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/shell/CloudRouterShell.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAGL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AA6Hf,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,UAAU,EAAE,SAAS,CAAC;CACvB;AAsBD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,GACX,EAAE;IACD,UAAU,EAAE,SAAS,CAAC;CACvB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUpB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,GACX,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6C3C;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -50,11 +50,16 @@ const DASHBOARD_REDIRECTS = [
|
|
|
50
50
|
{ from: "dashboard/containers", to: "/dashboard/agents" },
|
|
51
51
|
{ from: "dashboard/containers/:id", to: "/dashboard/agents/:id" },
|
|
52
52
|
{ from: "dashboard/containers/agents/:id", to: "/dashboard/agents/:id" },
|
|
53
|
+
// In-dashboard quick chat was removed; real chat lives in the app. Send old
|
|
54
|
+
// deep links back to the agent detail page.
|
|
55
|
+
{ from: "dashboard/agents/:id/chat", to: "/dashboard/agents/:id" },
|
|
53
56
|
// App-create modal is opened from the apps list, not its own route.
|
|
54
57
|
{ from: "dashboard/apps/create", to: "/dashboard/apps" },
|
|
55
58
|
// New app-IA targets: billing / api-keys move into settings sections.
|
|
56
59
|
{ from: "dashboard/billing", to: "/settings#billing" },
|
|
57
60
|
{ from: "dashboard/api-keys", to: "/settings#api-keys" },
|
|
61
|
+
// Knowledge/Documents now lives in the app; old deep links land on the agents list.
|
|
62
|
+
{ from: "dashboard/documents", to: "/dashboard/agents" },
|
|
58
63
|
];
|
|
59
64
|
/** Substitute `:param` segments from the matched route params. */
|
|
60
65
|
function ParamRedirect({ to }) {
|