fabro/docs/public/images/permission-flow.svg
Bryan Helmkamp 283eab181f
refactor(docs): split docs/ into public/ and internal/
Invert the docs convention so the Mintlify-published site lives under
docs/public/ and internal artifacts (strategy docs, brainstorms, plans,
etc.) sit at docs/ root or docs/internal/. Tools that default to writing
into docs/ now land in the catch-all instead of leaking into the
published tree.

- Move Mintlify content (administration/, agents/, api-reference/,
  changelog/, core-concepts/, examples/, execution/, getting-started/,
  human-tools/, integrations/, languages/, reference/, tutorials/,
  workflows/, images/, logo/, docs.json, favicon.svg, dot-highlight.js)
  into docs/public/.
- Collapse docs-internal/ into docs/internal/.
- Update Rust path references (fabro-api/build.rs, fabro-server,
  fabro-dev), TypeScript generator arg, CI path filters, clippy.toml
  reasons, AGENTS.md/CLAUDE.md, and README.md image refs.

Mintlify dashboard project root must be updated to docs/public/ in a
follow-up. .mintignore move/trim and .claude/skills/ updates land in a
separate commit.
2026-04-27 07:21:13 -07:00

92 lines
4.9 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="520" height="420"
viewBox="0 0 520 420" xmlns="http://www.w3.org/2000/svg">
<style>
@media (prefers-color-scheme: dark) {
[fill="#1a1a1a"] { fill: #e5e5e5; }
[fill="#666666"] { fill: #aaaaaa; }
[stroke="#666666"] { stroke: #aaaaaa; }
[stroke="#999999"] { stroke: #777777; }
}
</style>
<defs>
<marker id="arrow" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto">
<polygon points="0 0, 8 3, 0 6" fill="#666666"/>
</marker>
</defs>
<!-- Agent calls tool -->
<rect x="145" y="10" width="170" height="36" rx="6" ry="6" fill="none" stroke="#357f9e" stroke-width="1.5"/>
<text x="230" y="33" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="11" fill="#1a1a1a">Agent calls tool</text>
<!-- Arrow down -->
<line x1="230" y1="46" x2="230" y2="70" stroke="#666666" marker-end="url(#arrow)"/>
<!-- Diamond: auto-approved? -->
<polygon points="230,76 370,120 230,164 90,120" fill="none" stroke="#357f9e" stroke-width="1.5"/>
<text x="230" y="116" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="10" fill="#1a1a1a">Auto-approved at</text>
<text x="230" y="128" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="10" fill="#1a1a1a">current level?</text>
<!-- YES left branch -->
<line x1="90" y1="120" x2="55" y2="120" stroke="#666666" marker-end="url(#arrow)"/>
<text x="73" y="113" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="9" fill="#666666">YES</text>
<!-- Execute tool (left) -->
<rect x="0" y="170" width="110" height="36" rx="6" ry="6" fill="none" stroke="#357f9e" stroke-width="2"/>
<text x="55" y="193" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="11" fill="#1a1a1a">Execute tool</text>
<!-- Arrow from YES endpoint down to Execute tool -->
<line x1="55" y1="120" x2="55" y2="170" stroke="#666666" marker-end="url(#arrow)"/>
<!-- NO right branch -->
<line x1="370" y1="120" x2="405" y2="120" stroke="#666666"/>
<text x="387" y="113" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="9" fill="#666666">NO</text>
<!-- Arrow down from NO -->
<line x1="405" y1="120" x2="405" y2="190" stroke="#666666" marker-end="url(#arrow)"/>
<!-- Diamond: interactive? -->
<polygon points="405,196 460,228 405,260 350,228" fill="none" stroke="#357f9e" stroke-width="1.5"/>
<text x="405" y="225" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="10" fill="#1a1a1a">Interactive</text>
<text x="405" y="236" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="10" fill="#1a1a1a">session?</text>
<!-- NO right from interactive -->
<line x1="460" y1="228" x2="460" y2="228" stroke="#666666"/>
<text x="449" y="265" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="9" fill="#666666">NO</text>
<!-- Arrow down-right to Deny tool -->
<line x1="460" y1="228" x2="460" y2="290" stroke="#666666" marker-end="url(#arrow)"/>
<!-- Deny tool box -->
<rect x="405" y="296" width="110" height="36" rx="6" ry="6" fill="none" stroke="#357f9e" stroke-width="2"/>
<text x="460" y="319" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="11" fill="#1a1a1a">Deny tool</text>
<!-- YES left from interactive -->
<text x="362" y="265" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="9" fill="#666666">YES</text>
<!-- Arrow down-left to Prompt user -->
<line x1="350" y1="228" x2="280" y2="228" stroke="#666666"/>
<line x1="280" y1="228" x2="280" y2="290" stroke="#666666" marker-end="url(#arrow)"/>
<!-- Prompt user box -->
<rect x="225" y="296" width="110" height="36" rx="6" ry="6" fill="none" stroke="#357f9e" stroke-width="1.5"/>
<text x="280" y="319" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="11" fill="#1a1a1a">Prompt user</text>
<!-- Allow branch left -->
<line x1="247" y1="332" x2="195" y2="380" stroke="#666666" marker-end="url(#arrow)"/>
<text x="208" y="352" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="9" fill="#666666">Allow</text>
<!-- Deny branch right -->
<line x1="313" y1="332" x2="365" y2="380" stroke="#666666" marker-end="url(#arrow)"/>
<text x="352" y="352" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="9" fill="#666666">Deny</text>
<!-- Execute tool (bottom-left) -->
<rect x="140" y="382" width="110" height="36" rx="6" ry="6" fill="none" stroke="#357f9e" stroke-width="2"/>
<text x="195" y="405" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="11" fill="#1a1a1a">Execute tool</text>
<!-- Return error (bottom-right) -->
<rect x="310" y="382" width="110" height="36" rx="6" ry="6" fill="none" stroke="#357f9e" stroke-width="2"/>
<text x="365" y="405" text-anchor="middle" font-family="Helvetica,sans-serif" font-size="11" fill="#1a1a1a">Return error</text>
</svg>