0d3cb498a3
CI / Shell Format Check (push) Has been cancelled
CI / Check Ruby (3.4) (push) Has been cancelled
CI / CI Config (push) Has been cancelled
CI / Test on Node ${{ matrix.node }} and ${{ matrix.os }}${{ matrix.shard && format(' (shard {0}/3)', matrix.shard) || '' }} (push) Has been cancelled
CI / Build on Node ${{ matrix.node }} (push) Has been cancelled
CI / Style Check (push) Has been cancelled
CI / Generate Assets (push) Has been cancelled
CI / Check Python (3.14) (push) Has been cancelled
CI / Check Python (3.9) (push) Has been cancelled
CI / Build Docs (push) Has been cancelled
CI / Code Scan Action (push) Has been cancelled
CI / Site tests (push) Has been cancelled
CI / webui tests (push) Has been cancelled
CI / Run Integration Tests (push) Has been cancelled
CI / Run Smoke Tests (push) Has been cancelled
CI / Go Tests (push) Has been cancelled
CI / Share Test (push) Has been cancelled
CI / Redteam (Production API) (push) Has been cancelled
CI / Redteam (Staging API) (push) Has been cancelled
CI / GitHub Actions Lint (push) Has been cancelled
CI / Check Ruby (3.0) (push) Has been cancelled
release-please / release-please (push) Has been cancelled
release-please / build (push) Has been cancelled
release-please / publish-npm (push) Has been cancelled
release-please / publish-npm-backfill (push) Has been cancelled
release-please / docker (push) Has been cancelled
release-please / publish-code-scan-action (push) Has been cancelled
release-please / attest-code-scan-action (push) Has been cancelled
Deploy local.promptfoo.app / Deploy to Cloudflare Pages (push) Has been cancelled
Test and Publish Multi-arch Docker Image / test (push) Has been cancelled
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-amd64 platform:linux/amd64 runner:ubuntu-latest]) (push) Has been cancelled
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-arm64 platform:linux/arm64 runner:ubuntu-24.04-arm]) (push) Has been cancelled
Test and Publish Multi-arch Docker Image / merge-docker-digests (push) Has been cancelled
Test and Publish Multi-arch Docker Image / Attest Multi-arch Image (push) Has been cancelled
Validate Renovate Config / Validate Renovate Configuration (push) Has been cancelled
121 lines
7.4 KiB
XML
121 lines
7.4 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 300">
|
|
<!-- Background -->
|
|
<rect width="800" height="300" fill="#ffffff"/>
|
|
|
|
<!-- Main connector line -->
|
|
<line x1="150" y1="115" x2="650" y2="115" stroke="#e2e8f0" stroke-width="2"/>
|
|
|
|
<!-- Node 1: Baseline -->
|
|
<g transform="translate(60, 50)">
|
|
<rect width="120" height="130" fill="#f0fdf4" stroke="#22c55e" stroke-width="1.5" rx="4"/>
|
|
<text x="60" y="24" font-family="Inter, system-ui, sans-serif" font-size="11" fill="#15803d" text-anchor="middle" font-weight="600">Baseline</text>
|
|
<line x1="10" y1="36" x2="110" y2="36" stroke="#bbf7d0"/>
|
|
|
|
<!-- Bar chart icon -->
|
|
<g transform="translate(35, 46)">
|
|
<rect x="0" y="20" width="12" height="20" fill="#22c55e" rx="1"/>
|
|
<rect x="18" y="12" width="12" height="28" fill="#22c55e" rx="1"/>
|
|
<rect x="36" y="16" width="12" height="24" fill="#22c55e" rx="1"/>
|
|
</g>
|
|
|
|
<text x="60" y="100" font-family="Inter, system-ui, sans-serif" font-size="10" fill="#64748b" text-anchor="middle">Initial red team</text>
|
|
<rect x="20" y="108" width="80" height="16" fill="#dcfce7" rx="2"/>
|
|
<text x="60" y="120" font-family="Inter, system-ui, sans-serif" font-size="9" fill="#16a34a" text-anchor="middle" font-weight="500">ASR: 8%</text>
|
|
</g>
|
|
|
|
<!-- Arrow 1 -->
|
|
<path d="M185 115 L220 115" stroke="#94a3b8" stroke-width="1.5"/>
|
|
<polygon points="220,115 213,111 213,119" fill="#94a3b8"/>
|
|
|
|
<!-- Node 2: Scheduled Tests -->
|
|
<g transform="translate(230, 50)">
|
|
<rect width="130" height="130" fill="#f8fafc" stroke="#cbd5e1" stroke-width="1.5" rx="4"/>
|
|
<text x="65" y="24" font-family="Inter, system-ui, sans-serif" font-size="11" fill="#1e293b" text-anchor="middle" font-weight="600">Monitor</text>
|
|
<line x1="10" y1="36" x2="120" y2="36" stroke="#e2e8f0"/>
|
|
|
|
<!-- Timeline with dots -->
|
|
<g transform="translate(20, 52)">
|
|
<line x1="0" y1="12" x2="90" y2="12" stroke="#cbd5e1" stroke-width="1.5"/>
|
|
<circle cx="0" cy="12" r="5" fill="#22c55e"/>
|
|
<circle cx="30" cy="12" r="5" fill="#94a3b8"/>
|
|
<circle cx="60" cy="12" r="5" fill="#94a3b8"/>
|
|
<circle cx="90" cy="12" r="5" fill="#f59e0b" stroke="#f59e0b"/>
|
|
<text x="0" y="32" font-family="Inter, system-ui, sans-serif" font-size="8" fill="#64748b" text-anchor="middle">T0</text>
|
|
<text x="90" y="32" font-family="Inter, system-ui, sans-serif" font-size="8" fill="#b45309" text-anchor="middle">Tn</text>
|
|
</g>
|
|
|
|
<text x="65" y="100" font-family="Inter, system-ui, sans-serif" font-size="10" fill="#64748b" text-anchor="middle">Scheduled re-tests</text>
|
|
<rect x="15" y="108" width="100" height="16" fill="#fef3c7" rx="2"/>
|
|
<text x="65" y="120" font-family="Inter, system-ui, sans-serif" font-size="9" fill="#a16207" text-anchor="middle" font-weight="500">ASR: 8% → 14%</text>
|
|
</g>
|
|
|
|
<!-- Arrow 2 -->
|
|
<path d="M365 115 L400 115" stroke="#94a3b8" stroke-width="1.5"/>
|
|
<polygon points="400,115 393,111 393,119" fill="#94a3b8"/>
|
|
|
|
<!-- Node 3: Compare -->
|
|
<g transform="translate(410, 50)">
|
|
<rect width="120" height="130" fill="#eff6ff" stroke="#3b82f6" stroke-width="1.5" rx="4"/>
|
|
<text x="60" y="24" font-family="Inter, system-ui, sans-serif" font-size="11" fill="#1d4ed8" text-anchor="middle" font-weight="600">Compare</text>
|
|
<line x1="10" y1="36" x2="110" y2="36" stroke="#bfdbfe"/>
|
|
|
|
<!-- Comparison boxes -->
|
|
<g transform="translate(20, 46)">
|
|
<rect width="35" height="40" fill="#dbeafe" stroke="#3b82f6" rx="2"/>
|
|
<rect x="45" width="35" height="40" fill="#dbeafe" stroke="#3b82f6" rx="2"/>
|
|
<text x="17" y="16" font-family="Inter, system-ui, sans-serif" font-size="9" fill="#1d4ed8" text-anchor="middle" font-weight="500">Base</text>
|
|
<text x="17" y="32" font-family="Inter, system-ui, sans-serif" font-size="10" fill="#3b82f6" text-anchor="middle">8%</text>
|
|
<text x="62" y="16" font-family="Inter, system-ui, sans-serif" font-size="9" fill="#1d4ed8" text-anchor="middle" font-weight="500">Now</text>
|
|
<text x="62" y="32" font-family="Inter, system-ui, sans-serif" font-size="10" fill="#3b82f6" text-anchor="middle">14%</text>
|
|
</g>
|
|
|
|
<text x="60" y="100" font-family="Inter, system-ui, sans-serif" font-size="10" fill="#64748b" text-anchor="middle">vs threshold</text>
|
|
<rect x="20" y="108" width="80" height="16" fill="#dbeafe" rx="2"/>
|
|
<text x="60" y="120" font-family="Inter, system-ui, sans-serif" font-size="9" fill="#1d4ed8" text-anchor="middle" font-weight="500">Δ +6%</text>
|
|
</g>
|
|
|
|
<!-- Arrow 3 -->
|
|
<path d="M535 115 L570 115" stroke="#94a3b8" stroke-width="1.5"/>
|
|
<polygon points="570,115 563,111 563,119" fill="#94a3b8"/>
|
|
|
|
<!-- Node 4: Outcome -->
|
|
<g transform="translate(580, 50)">
|
|
<rect width="120" height="130" fill="#f8fafc" stroke="#cbd5e1" stroke-width="1.5" rx="4"/>
|
|
<text x="60" y="24" font-family="Inter, system-ui, sans-serif" font-size="11" fill="#1e293b" text-anchor="middle" font-weight="600">Outcome</text>
|
|
<line x1="10" y1="36" x2="110" y2="36" stroke="#e2e8f0"/>
|
|
|
|
<!-- Pass box -->
|
|
<g transform="translate(15, 48)">
|
|
<rect width="40" height="32" fill="#dcfce7" stroke="#22c55e" stroke-width="1" rx="2"/>
|
|
<path d="M12 16 L17 21 L28 10" stroke="#22c55e" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
|
|
<text x="20" y="28" font-family="Inter, system-ui, sans-serif" font-size="8" fill="#16a34a" text-anchor="middle" font-weight="500">Pass</text>
|
|
</g>
|
|
|
|
<!-- Drift box -->
|
|
<g transform="translate(65, 48)">
|
|
<rect width="40" height="32" fill="#fee2e2" stroke="#ef4444" stroke-width="1" rx="2"/>
|
|
<path d="M14 10 L26 22 M26 10 L14 22" stroke="#ef4444" stroke-width="2" fill="none" stroke-linecap="round"/>
|
|
<text x="20" y="28" font-family="Inter, system-ui, sans-serif" font-size="8" fill="#dc2626" text-anchor="middle" font-weight="500">Drift</text>
|
|
</g>
|
|
|
|
<text x="60" y="100" font-family="Inter, system-ui, sans-serif" font-size="10" fill="#64748b" text-anchor="middle">CI gate or alert</text>
|
|
<rect x="20" y="108" width="80" height="16" fill="#f1f5f9" rx="2"/>
|
|
<text x="60" y="120" font-family="Inter, system-ui, sans-serif" font-size="9" fill="#64748b" text-anchor="middle">Investigate</text>
|
|
</g>
|
|
|
|
<!-- Bottom labels -->
|
|
<g transform="translate(0, 215)">
|
|
<text x="120" y="20" font-family="Inter, system-ui, sans-serif" font-size="10" fill="#15803d" text-anchor="middle" font-weight="500">Establish</text>
|
|
<text x="120" y="36" font-family="Inter, system-ui, sans-serif" font-size="9" fill="#64748b" text-anchor="middle">Security baseline</text>
|
|
|
|
<text x="295" y="20" font-family="Inter, system-ui, sans-serif" font-size="10" fill="#475569" text-anchor="middle" font-weight="500">Test Continuously</text>
|
|
<text x="295" y="36" font-family="Inter, system-ui, sans-serif" font-size="9" fill="#64748b" text-anchor="middle">Same tests over time</text>
|
|
|
|
<text x="470" y="20" font-family="Inter, system-ui, sans-serif" font-size="10" fill="#1d4ed8" text-anchor="middle" font-weight="500">Detect Changes</text>
|
|
<text x="470" y="36" font-family="Inter, system-ui, sans-serif" font-size="9" fill="#64748b" text-anchor="middle">Compare against baseline</text>
|
|
|
|
<text x="640" y="20" font-family="Inter, system-ui, sans-serif" font-size="10" fill="#475569" text-anchor="middle" font-weight="500">Respond</text>
|
|
<text x="640" y="36" font-family="Inter, system-ui, sans-serif" font-size="9" fill="#64748b" text-anchor="middle">Block deploy or alert</text>
|
|
</g>
|
|
</svg>
|