import { Link } from "react-router-dom"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, TableCaption, } from "@/components/ui/table"; import { Button } from "@/components/ui/button"; import { Puzzle, Server, Brush, Shield, RefreshCw, ArrowRight, Link as LinkIcon, Palette, AlertTriangle, FileText, } from "lucide-react"; import { Link } from "react-router-dom"; const embedSettings = [ { name: "buttonSize", description: "Controls the floating launcher dimensions in pixels.", defaultValue: "60", }, { name: "buttonPosition", description: "Places the launcher in one of four corners (e.g. bottom-right).", defaultValue: "bottom-right", }, { name: "buttonOffset", description: "Fine-tunes horizontal/vertical offsets from the viewport edge.", defaultValue: "{ x: 32, y: 32 }", }, { name: "iframeWidth", description: "Maximum width of the opened assistant panel.", defaultValue: "448", }, { name: "iframeHeight", description: "Viewport height percentage for the assistant panel.", defaultValue: "85vh", }, { name: "tooltipText", description: "Copy shown when hovering the launcher button.", defaultValue: "Need a hand?\\nAeThex Copilot is live.", }, ]; const troubleshooting = [ { title: "Failed to fetch status", detail: "If the HelloSkip API cannot be reached, the embed skips initialization. Verify outbound network access or retry when the environment regains connectivity.", }, { title: "Agent inactive", detail: "Status responses containing `active: false` mean the agent is disabled. Update the agent inside HelloSkip or switch the data-agent-id.", }, { title: "Styling conflicts", detail: "AeThex injects a dedicated theme stylesheet. Ensure no additional overrides remove the `.skip-agent-*` classes or the gradient tokens defined in `global.css`.", }, ]; export default function DocsIntegrations() { return (
AeThex supports secure, theme-aware embeds for third-party agents and tools. This guide covers the
HelloSkip support assistant that ships with the platform and outlines patterns you can reuse for future
integrations. The router-aware SkipAgentController keeps the
experience out of the documentation space while still making it available across the rest of the site.
The HelloSkip agent utilities live in lib/skip-agent.ts. They lazily fetch the
runtime once and gate initialization behind a guarded status check at
/api/agent/status. If the endpoint is unreachable or reports an inactive agent,
the embed is skipped to avoid client-side errors.
When healthy, the loader injects HelloSkip's global object and calls
window.SkipAgent.embed with AeThex-specific sizing, copy, and z-index values.
A companion stylesheet applies the gradient, border, and focus treatments to match the site aesthetic.
AeThex provides a handcrafted theme in SKIP_AGENT_THEME. It uses the gradient
palette defined in global.css to restyle the floating launcher, tooltip, and
assistant container.
Add additional overrides by extending the same template literal and keeping selectors scoped to
.skip-agent-*. The embed only injects the style block once via the
createSkipAgentTheme helper.
SkipAgentController for embeds that should
disappear on specific routes.
To switch agents, update SKIP_AGENT_ID. If the HelloSkip host changes,
adjust SKIP_AGENT_SRC—the origin is derived automatically for status checks.
For full replacements, swap the fetch target to your new integration and continue calling the same
embedSkipAgent helper to retain theme and lifecycle management.
Manage integration documentation centrally in Builder CMS or export static knowledge base pages. Use the same theming primitives to embed other providers consistently across the platform.