diff --git a/apps/mana/apps/web/src/routes/(app)/agents/+page.svelte b/apps/mana/apps/web/src/routes/(app)/agents/+page.svelte new file mode 100644 index 000000000..b781c4bd4 --- /dev/null +++ b/apps/mana/apps/web/src/routes/(app)/agents/+page.svelte @@ -0,0 +1,14 @@ + + + diff --git a/apps/mana/apps/web/src/routes/(app)/spaces/members/+page.svelte b/apps/mana/apps/web/src/routes/(app)/spaces/members/+page.svelte index 6a9e7913e..06fa9228f 100644 --- a/apps/mana/apps/web/src/routes/(app)/spaces/members/+page.svelte +++ b/apps/mana/apps/web/src/routes/(app)/spaces/members/+page.svelte @@ -12,6 +12,7 @@ */ import { onMount } from 'svelte'; + import { PageHeader } from '@mana/shared-ui'; import { getActiveSpace, authFetch } from '$lib/data/scope'; import { SPACE_TYPE_LABELS } from '@mana/shared-branding'; @@ -143,17 +144,18 @@
-
-

Mitglieder

- {#if activeSpace} -

- {activeSpace.name} - {SPACE_TYPE_LABELS.de[activeSpace.type]} -

- {/if} -
+ + {#snippet breadcrumb()} + Workbench Mitglieder verwalten + {/snippet} + {#if !activeSpace}

Lade aktiven Space …

@@ -263,87 +265,15 @@ instead of falling back to hardcoded white. */ .container { - max-width: 640px; + max-width: 720px; margin: 0 auto; - padding: 1.5rem 1rem 4rem; + padding: 0 1rem 4rem; color: hsl(var(--color-foreground)); } - .page-head { - margin-bottom: 1.5rem; - } - - .page-head h1 { - font-size: 1.5rem; - font-weight: 600; - margin: 0 0 0.25rem; - color: hsl(var(--color-foreground)); - } - - .subtitle { - display: flex; - align-items: center; - gap: 0.5rem; - margin: 0; - color: hsl(var(--color-muted-foreground, 0 0% 55%)); - font-size: 0.875rem; - } - - .type-chip { - font-size: 0.6875rem; - padding: 0.125rem 0.5rem; - border-radius: 9999px; - background: hsl(var(--color-muted, 0 0% 94%)); - color: hsl(var(--color-muted-foreground, 0 0% 45%)); - text-transform: uppercase; - letter-spacing: 0.02em; - font-weight: 500; - } - - .type-chip[data-type='brand'] { - background: hsl(260 60% 95%); - color: hsl(260 55% 35%); - } - .type-chip[data-type='club'] { - background: hsl(160 45% 93%); - color: hsl(160 55% 28%); - } - .type-chip[data-type='family'] { - background: hsl(30 70% 93%); - color: hsl(30 55% 35%); - } - .type-chip[data-type='team'] { - background: hsl(210 55% 93%); - color: hsl(210 55% 32%); - } - .type-chip[data-type='practice'] { - background: hsl(340 50% 94%); - color: hsl(340 50% 38%); - } - - :global(.dark) .type-chip { - background: hsl(var(--color-muted, 0 0% 20%)); - color: hsl(var(--color-muted-foreground, 0 0% 75%)); - } - :global(.dark) .type-chip[data-type='brand'] { - background: hsl(260 40% 25%); - color: hsl(260 80% 85%); - } - :global(.dark) .type-chip[data-type='club'] { - background: hsl(160 35% 20%); - color: hsl(160 70% 80%); - } - :global(.dark) .type-chip[data-type='family'] { - background: hsl(30 40% 22%); - color: hsl(30 80% 82%); - } - :global(.dark) .type-chip[data-type='team'] { - background: hsl(210 40% 22%); - color: hsl(210 70% 82%); - } - :global(.dark) .type-chip[data-type='practice'] { - background: hsl(340 35% 23%); - color: hsl(340 65% 82%); + .crumb-sep { + margin: 0 0.25rem; + opacity: 0.5; } .hint-card { diff --git a/packages/shared-branding/src/app-icons.ts b/packages/shared-branding/src/app-icons.ts index c97cf218b..f029e3c4c 100644 --- a/packages/shared-branding/src/app-icons.ts +++ b/packages/shared-branding/src/app-icons.ts @@ -248,6 +248,18 @@ export const APP_ICONS = { // (emerald) while staying in the "communication" colour family. `` ), + agents: svgToDataUrl( + // Smiling robot head with antenna dot — represents the AI agents that + // carry out autonomous missions. Violet→fuchsia gradient sits next to + // companion in the AI Workbench family. + `` + ), + timeline: svgToDataUrl( + // Vertical event-dots with connecting line — timeline/history axis. + // Amber→orange gradient so it stands apart from the blue Activity icon + // while still reading as "chronological" in the AI Workbench family. + `` + ), } as const; export type AppIconId = keyof typeof APP_ICONS; diff --git a/packages/shared-branding/src/mana-apps.ts b/packages/shared-branding/src/mana-apps.ts index c38c662fe..be48c8de6 100644 --- a/packages/shared-branding/src/mana-apps.ts +++ b/packages/shared-branding/src/mana-apps.ts @@ -1071,6 +1071,40 @@ export const MANA_APPS: ManaApp[] = [ status: 'development', requiredTier: 'alpha', }, + { + id: 'agents', + name: 'Agents', + description: { + de: 'KI-Agenten verwalten', + en: 'Manage AI agents', + }, + longDescription: { + de: 'Lege mehrere KI-Agenten an — jeder mit eigenem Namen, Avatar, System-Prompt, Memory und Tool-Policy. Agents führen autonome Missions aus und schreiben unter ihrer eigenen Identität.', + en: 'Create multiple AI agents — each with its own name, avatar, system prompt, memory and tool policy. Agents run autonomous missions and write under their own identity.', + }, + icon: APP_ICONS.agents, + color: '#8b5cf6', + comingSoon: false, + status: 'beta', + requiredTier: 'beta', + }, + { + id: 'timeline', + name: 'Timeline', + description: { + de: 'Was wurde wann getan', + en: 'What happened when', + }, + longDescription: { + de: 'Chronologische Übersicht aller Einträge über alle Module — Tasks, Events, Kalender, KI-Missionen. Mit Akteur-Filter (User vs. KI vs. System) und Analytics-Ansicht.', + en: 'A chronological view of every record across every module — tasks, events, calendar, AI missions. With actor filter (user / AI / system) and analytics drill-down.', + }, + icon: APP_ICONS.timeline, + color: '#f59e0b', + comingSoon: false, + status: 'beta', + requiredTier: 'beta', + }, ]; /** @@ -1162,6 +1196,9 @@ const APP_URL_OVERRIDES: Partial = Object.fromEntries(