| 1 | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720"> |
| 2 | <defs> |
| 3 | <filter id="cardShadow4" x="-15%" y="-15%" width="140%" height="140%"> |
| 4 | <feGaussianBlur in="SourceAlpha" stdDeviation="12"/> |
| 5 | <feOffset dx="0" dy="6" result="offsetBlur"/> |
| 6 | <feFlood flood-color="#000000" flood-opacity="0.15" result="shadowColor"/> |
| 7 | <feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow"/> |
| 8 | <feMerge> |
| 9 | <feMergeNode in="shadow"/> |
| 10 | <feMergeNode in="SourceGraphic"/> |
| 11 | </feMerge> |
| 12 | </filter> |
| 13 | <linearGradient id="accentBar4" x1="0%" y1="0%" x2="100%" y2="0%"> |
| 14 | <stop offset="0%" stop-color="#D4A574"/> |
| 15 | <stop offset="100%" stop-color="#60A5FA"/> |
| 16 | </linearGradient> |
| 17 | </defs> |
| 18 | |
| 19 | <!-- Background --> |
| 20 | <rect width="1280" height="720" fill="#0D1117"/> |
| 21 | |
| 22 | <!-- Header --> |
| 23 | <g id="header"> |
| 24 | <rect x="60" y="40" width="4" height="30" fill="#D4A574"/> |
| 25 | <text x="76" y="63" font-family="Arial, Helvetica, sans-serif" font-size="14" fill="#8B949E" letter-spacing="3">ARCHITECTURE</text> |
| 26 | <text x="60" y="105" font-family="Arial, Helvetica, sans-serif" font-size="40" font-weight="bold" fill="#E6EDF3">Two Layers of Defense</text> |
| 27 | <rect x="60" y="115" width="180" height="3" fill="url(#accentBar4)"/> |
| 28 | </g> |
| 29 | |
| 30 | <!-- Image area (left side) — Fig.2 System Architecture --> |
| 31 | <g id="architecture-image"> |
| 32 | <rect x="60" y="145" width="530" height="520" rx="12" fill="#161B22" stroke="#30363D" stroke-width="1" filter="url(#cardShadow4)"/> |
| 33 | <image href="../images/image_1.png" x="70" y="155" width="510" height="500" preserveAspectRatio="xMidYMid meet"/> |
| 34 | <text x="325" y="685" text-anchor="middle" font-family="Calibri, Arial, sans-serif" font-size="11" fill="#6E7681">Figure 2: System Architecture</text> |
| 35 | </g> |
| 36 | |
| 37 | <!-- Text content (right side) --> |
| 38 | <g id="content-right"> |
| 39 | <!-- Input Layer --> |
| 40 | <g id="input-layer"> |
| 41 | <use data-icon="chunk/eye" x="630" y="150" width="32" height="32" fill="#60A5FA"/> |
| 42 | <text x="672" y="174" font-family="Arial, Helvetica, sans-serif" font-size="24" font-weight="bold" fill="#60A5FA">Input Layer</text> |
| 43 | <text x="630" y="205" font-family="Calibri, Arial, sans-serif" font-size="18" fill="#E6EDF3">Prompt-injection probe scans tool</text> |
| 44 | <text x="630" y="228" font-family="Calibri, Arial, sans-serif" font-size="18" fill="#E6EDF3">outputs before they enter context.</text> |
| 45 | <text x="630" y="256" font-family="Calibri, Arial, sans-serif" font-size="14" fill="#8B949E">Adds warnings when content looks like</text> |
| 46 | <text x="630" y="276" font-family="Calibri, Arial, sans-serif" font-size="14" fill="#8B949E">an attempt to hijack behavior.</text> |
| 47 | </g> |
| 48 | |
| 49 | <rect x="630" y="300" width="580" height="1" fill="#30363D"/> |
| 50 | |
| 51 | <!-- Output Layer --> |
| 52 | <g id="output-layer"> |
| 53 | <use data-icon="chunk/filter" x="630" y="320" width="32" height="32" fill="#D4A574"/> |
| 54 | <text x="672" y="344" font-family="Arial, Helvetica, sans-serif" font-size="24" font-weight="bold" fill="#D4A574">Output Layer</text> |
| 55 | <text x="630" y="378" font-family="Calibri, Arial, sans-serif" font-size="18" fill="#E6EDF3">Transcript classifier (Sonnet 4.6)</text> |
| 56 | <text x="630" y="401" font-family="Calibri, Arial, sans-serif" font-size="18" fill="#E6EDF3">evaluates each action before execution.</text> |
| 57 | <text x="630" y="429" font-family="Calibri, Arial, sans-serif" font-size="14" fill="#8B949E">Acts as a substitute for a human approver.</text> |
| 58 | </g> |
| 59 | |
| 60 | <rect x="630" y="455" width="580" height="1" fill="#30363D"/> |
| 61 | |
| 62 | <!-- Two-stage filter --> |
| 63 | <g id="two-stage"> |
| 64 | <use data-icon="chunk/layers" x="630" y="475" width="32" height="32" fill="#34D399"/> |
| 65 | <text x="672" y="499" font-family="Arial, Helvetica, sans-serif" font-size="24" font-weight="bold" fill="#34D399">Two-Stage Filter</text> |
| 66 | <text x="630" y="533" font-family="Calibri, Arial, sans-serif" font-size="18" fill="#E6EDF3">Stage 1: Fast single-token yes/no filter</text> |
| 67 | <text x="630" y="558" font-family="Calibri, Arial, sans-serif" font-size="18" fill="#E6EDF3">Stage 2: Chain-of-thought reasoning</text> |
| 68 | <text x="630" y="586" font-family="Calibri, Arial, sans-serif" font-size="14" fill="#8B949E">Reasoning tokens spent only where needed.</text> |
| 69 | </g> |
| 70 | |
| 71 | <!-- Subagent note --> |
| 72 | <g id="subagent-note"> |
| 73 | <rect x="630" y="615" width="580" height="40" rx="6" fill="#1C2333" stroke="#30363D" stroke-width="1"/> |
| 74 | <use data-icon="chunk/server" x="642" y="621" width="28" height="28" fill="#8B949E"/> |
| 75 | <text x="680" y="641" font-family="Calibri, Arial, sans-serif" font-size="14" fill="#8B949E">Subagents run the same pipeline recursively</text> |
| 76 | </g> |
| 77 | </g> |
| 78 | |
| 79 | <!-- Footer --> |
| 80 | <g id="footer"> |
| 81 | <text x="1220" y="700" text-anchor="end" font-family="Calibri, Arial, sans-serif" font-size="11" fill="#6E7681">04 / 10</text> |
| 82 | </g> |
| 83 | </svg> |
| 84 |