Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
"Hubspot",
"hypervisor",
"Intercom",
"journalctl",
"Kimi",
"Linear",
"MDX",
Expand Down Expand Up @@ -82,6 +83,11 @@
"Supabase",
"timecode",
"uvx",
"webhook"
"uuidgen",
"webhook",
"healthz",
"OpenRouter",
"versionable",
"xhigh"
]
}
4 changes: 3 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@
The navigation keeps Home first and sorts the top-level sections alphabetically. Agents follows the user journey. Other sections keep their existing order:

- **Administration** - `/admin-panel`. Browser-admin access, dashboards, governance records, runtime controls, and network policy.
- **Agents (Beta)** - `/developers/*`. Start with a familiar task, then improvement and scheduling. Keep Examples, More about Agents (`/developers/guides/*`), and For developers (`/developers/api-ref/*`) collapsed by default. Introduce features when they help the reader's current task. Keep prompts natural and explain terms before using them.
- **Agents (Beta)** - `/developers/*`. Start with a familiar task, then improvement and scheduling. Keep Examples and More about Agents (`/developers/guides/*`) collapsed by default. Introduce features when they help the reader's current task. Keep prompts natural and explain terms before using them.
- **App setup** - `/integrations/{github, gmail, google-calendar, slack}`. Per-app permissions and prompts, not feature pages. All of them connect through the Apps tab of the Add MCP dialog.
- **Deployment models** - `/deployment-models`. Current availability and operating boundaries for Fluso Cloud, dedicated AWS VPC, planned Azure VNet, and scoped on-premises deployments.
- **Features** - `/features/*`. Approvals and permissions, Apps and MCP servers, Chat, Confidential mode, Imports, Memory, Projects, Skills, and Tasks.
- **Fluso API** - `/api/*`. Start with access and a first request. Keep Cloud and daemon credentials and administration separate. Document shared workflows once under Use the API. Lead with a useful task, runnable requests, and the expected result. Reuse the deployment's example helpers. Put protocol details and recovery rules beside the step that needs them. Each deployment's `/docs` and `/v1/openapi.json` own exact request and response schemas. Keep endpoint tables collapsed after the workflow. Preserve old API URLs with redirects.
- **Fluso Local** - `/workspaces/*`. Setup and everyday use on your own machine, followed by settings and maintenance. Keep macOS and Linux as choices inside one setup guide. Request daemon download links from support; do not publish unlisted release URLs. API access is documented under Fluso API.
- **Get started** - `/going-deeper`, `/introduction`, `/quickstart`. These pages explain the path from first setup to daily use.
- **Reference** - `/resources/{faq, legal, pricing}`. Legal links to the terms of service at `https://fluso.ai/terms` and privacy policy at `https://fluso.ai/privacy`; do not duplicate the policies in the docs.
- **Release notes** - `/release-notes`. Customer-facing changes, newest first.
Expand Down
5 changes: 5 additions & 0 deletions app/global.css
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
quotes: none;
}

/* Keep reference descriptions readable beside long endpoint paths on phones. */
#nd-page details td:last-child {
min-width: 14rem;
}

/* Fluso brand (ported from Mintlify docs.json colors) */
:root {
--color-fd-primary: #5b21b6;
Expand Down
319 changes: 0 additions & 319 deletions components/diagrams.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,8 @@
import {
Bot,
Clock3,
Database,
FileText,
FolderClosed,
MessageSquareText,
Network,
PlugZap,
Server,
ShieldCheck,
Users,
} from 'lucide-react';

Expand Down Expand Up @@ -208,316 +202,3 @@ export function KnowledgeGraphDiagram() {
</figure>
);
}

const architectureServices = [
{
label: 'Fluso client',
detail: 'Desktop or remote',
x: 10,
icon: MessageSquareText,
},
{
label: 'Edge',
detail: 'TLS + routing',
x: 162,
icon: ShieldCheck,
},
{
label: 'REST API',
detail: 'Identity + records',
x: 314,
icon: Server,
},
{
label: 'Agent gateway',
detail: 'Admission + routing',
x: 466,
icon: Network,
emphasis: true,
},
{
label: 'User runtime',
detail: 'Thread worker + tools',
x: 618,
icon: Bot,
},
] as const;

const architectureData = [
{
label: 'PostgreSQL',
detail: 'Platform records',
owner: 'REST API',
x: 380,
icon: Database,
},
{
label: 'Isolated user storage',
detail: 'Projects, sessions, Agents',
owner: 'Gateway + runtime',
x: 532,
icon: FolderClosed,
},
] as const;

const ARCHITECTURE_NODE_WIDTH = 132;

function ArchitectureNode({
label,
detail,
x,
icon: Icon,
emphasis = false,
}: {
label: string;
detail: string;
x: number;
icon: typeof FolderClosed;
emphasis?: boolean;
}) {
return (
<g transform={`translate(${x} 54)`}>
<rect
className={
emphasis
? 'fill-fd-primary/10 stroke-fd-primary/50'
: 'fill-fd-card stroke-fd-border'
}
width={ARCHITECTURE_NODE_WIDTH}
height="76"
rx="10"
strokeWidth="1.5"
/>
<Icon
aria-hidden="true"
className={
emphasis ? 'text-fd-primary' : 'text-fd-muted-foreground'
}
x={ARCHITECTURE_NODE_WIDTH / 2 - 8}
y="11"
width="16"
height="16"
/>
<text
className="fill-fd-foreground text-[14px] font-semibold"
x={ARCHITECTURE_NODE_WIDTH / 2}
y="45"
textAnchor="middle"
>
{label}
</text>
<text
className="fill-fd-muted-foreground text-[11px]"
x={ARCHITECTURE_NODE_WIDTH / 2}
y="63"
textAnchor="middle"
>
{detail}
</text>
</g>
);
}

export function ArchitectureDiagram() {
return (
<figure
aria-labelledby="architecture-caption"
className="not-prose my-6 overflow-hidden rounded-xl border bg-fd-muted/30 p-3 sm:p-5"
>
<p className="mb-2 text-xs text-fd-muted-foreground sm:hidden">
Scroll horizontally to view the full diagram.
</p>
<div
aria-label="Scrollable architecture diagram"
className="overflow-x-auto"
tabIndex={0}
>
<svg
role="img"
aria-labelledby="architecture-title architecture-description"
className="h-auto w-full min-w-[760px]"
viewBox="0 0 760 386"
>
<title id="architecture-title">
Fluso request and data boundaries
</title>
<desc id="architecture-description">
A Fluso client sends an authenticated request through the edge, REST
API, Agent gateway, and a user runtime. The API owns platform
records. The gateway and runtime use durable workspace storage. The
runtime queries knowledge and calls governed MCP servers.
</desc>

<defs>
<marker
id="architecture-arrow"
markerHeight="8"
markerWidth="8"
orient="auto"
refX="7"
refY="4"
viewBox="0 0 8 8"
>
<path className="fill-fd-muted-foreground" d="M0 0 8 4 0 8Z" />
</marker>
</defs>

<text
className="fill-fd-muted-foreground text-[11px] font-medium"
x="20"
y="24"
>
Request path
</text>

<g
className="stroke-fd-muted-foreground/70"
fill="none"
markerEnd="url(#architecture-arrow)"
strokeWidth="1.5"
>
<path d="M142 92H156" />
<path d="M294 92H308" />
<path d="M446 92H460" />
<path d="M598 92H612" />
<path d="M380 130V204" />
<path d="M532 130V204" />
<path d="M684 130V204" />
</g>

{architectureServices.map((node) => (
<ArchitectureNode key={node.label} {...node} />
))}

<rect
className="fill-fd-card stroke-fd-border"
x="302"
y="210"
width="448"
height="156"
rx="12"
strokeWidth="1.5"
/>
<text
className="fill-fd-muted-foreground text-[11px] font-medium"
x="318"
y="235"
>
Data and context
</text>
<line
className="stroke-fd-border"
x1="318"
x2="734"
y1="250"
y2="250"
/>
<line
className="stroke-fd-border"
x1="452"
x2="452"
y1="264"
y2="350"
/>
<line
className="stroke-fd-border"
x1="602"
x2="602"
y1="264"
y2="350"
/>

{architectureData.map(({ label, detail, owner, x, icon: Icon }) => (
<g key={label} transform={`translate(${x} 0)`}>
<Icon
aria-hidden="true"
className="text-fd-muted-foreground"
x="-8"
y="270"
width="16"
height="16"
/>
<text
className="fill-fd-foreground text-[13px] font-semibold"
textAnchor="middle"
y="307"
>
{label}
</text>
<text
className="fill-fd-muted-foreground text-[10px]"
textAnchor="middle"
y="327"
>
{detail}
</text>
<text
className="fill-fd-muted-foreground text-[10px] font-medium"
textAnchor="middle"
y="349"
>
{owner}
</text>
</g>
))}

<g transform="translate(684 0)">
<Bot
aria-hidden="true"
className="text-fd-muted-foreground"
x="-8"
y="267"
width="16"
height="16"
/>
<text
className="fill-fd-foreground text-[13px] font-semibold"
textAnchor="middle"
y="301"
>
Runtime context
</text>
<g transform="translate(-68 314)">
<FileText
aria-hidden="true"
className="text-fd-muted-foreground"
width="13"
height="13"
/>
<text
className="fill-fd-muted-foreground text-[10px]"
x="18"
y="11"
>
Knowledge service
</text>
</g>
<g transform="translate(-68 338)">
<PlugZap
aria-hidden="true"
className="text-fd-muted-foreground"
width="13"
height="13"
/>
<text
className="fill-fd-muted-foreground text-[10px]"
x="18"
y="11"
>
MCP servers
</text>
</g>
</g>
</svg>
</div>

<figcaption
id="architecture-caption"
className="mt-1 text-center text-xs leading-relaxed text-fd-muted-foreground"
>
Compute, platform state, workspace data, knowledge, and external sources
meet through explicit service boundaries.
</figcaption>
</figure>
);
}
2 changes: 1 addition & 1 deletion content/docs/admin-panel.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ The **Admin** organization role does not grant access to Fluso Admin. Panel acce

Each governance event records the actor, action, target, detail, and time. Current action types cover Microsoft Entra metadata, tenant configuration, teams, roles, access requests, and Agent access records.

This is not an Agent activity trace or a complete record of Admin mutations. It does not show tool calls, logins, prompts, document edits, messages, files, knowledge graphs, runtime controls, Sponsored Confidential changes, or network-policy changes. Inspect the Agent's conversation and [Inbox](/developers/guides/inbox) for work and failures, or use the [Runs API](/developers/api-ref/runs) for recorded request state.
This is not an Agent activity trace or a complete record of Admin mutations. It does not show tool calls, logins, prompts, document edits, messages, files, knowledge graphs, runtime controls, Sponsored Confidential changes, or network-policy changes. Inspect the Agent's conversation and [Inbox](/developers/guides/inbox) for work and failures, or use the [Runs API](/api/workflows/runs) for recorded request state.

## Runtime and user controls

Expand Down
Loading
Loading