@netlify/axis 1.11.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
- <!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>AXIS Report</title><style>:root{--bg: #fafbf9;--bg-card: #ffffff;--bg-alt: #f3f4f6;--text: #1a1a2e;--text-secondary: #4a5568;--text-muted: #637083;--mid-gray: #6b7280;--light-gray: #e5e7eb;--border: #e5e7eb;--accent: #016867;--accent-hover: #015554;--accent-bright: #2dd4bf;--accent-light: rgba(1, 104, 103, .07);--success: #059669;--success-light: #ecfdf5;--yellow: #d97706;--yellow-light: #fffbeb;--warning: #d97706;--warning-light: #fffbeb;--danger: #dc2626;--danger-light: #fef2f2;--cat-env: #059669;--cat-svc: #2563eb;--cat-agent: #6b7280;--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .04), 0 2px 8px rgba(0, 0, 0, .03);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .06), 0 0 40px rgba(1, 104, 103, .04);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, sans-serif;--font-mono: "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--transition: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.6;min-height:100vh}.container{max-width:1120px;margin:0 auto;padding:32px 24px 64px}h1{font-size:2rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,var(--text) 0%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}h2{font-size:1.375rem;font-weight:700;letter-spacing:-.01em;color:var(--text)}h3{font-size:1.0625rem;font-weight:600;color:var(--text)}.report-header{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;margin-bottom:32px}.header-left{flex:1;min-width:0}.report-branding{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.site-logo-mark{font-size:2.0625rem;font-weight:800;letter-spacing:.12em;color:var(--accent)}.logo-ax{letter-spacing:-.06em}.logo-i{display:inline-block;font-style:italic;transform:skew(-20deg);margin-left:2px;margin-right:-2px}.report-badge{font-size:2.0625rem;font-weight:800;letter-spacing:.02em;color:var(--accent)}.report-meta{margin:0}.report-meta-row{font-size:.875rem;line-height:1.8;color:var(--text-secondary)}.report-meta-label{font-weight:600;color:var(--text)}.report-meta-value{color:var(--text-secondary)}.report-meta-id{font-family:var(--font-mono);font-size:.8125rem}.summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 28px;box-shadow:var(--shadow);flex-shrink:0;display:flex;align-items:center;gap:24px}.summary-hero{text-align:center;padding:0 8px}.summary-hero .hero-score{font-size:2.5rem;font-weight:800;line-height:1;color:var(--accent)}.summary-hero .hero-label{font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600;margin-top:4px;white-space:nowrap}.summary-divider{width:1px;align-self:stretch;background:var(--border)}.summary-stats{display:flex;gap:20px;align-items:flex-start}.summary-stat{text-align:center;min-width:48px}.summary-stat .stat-value{font-size:1.25rem;font-weight:700;color:var(--text);line-height:1.2;margin-bottom:2px}.summary-stat .stat-label{font-size:.625rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:500;white-space:nowrap}.summary-stat.stat-passed .stat-value{color:var(--success)}.summary-stat.stat-failed .stat-value{color:var(--danger)}.summary-stat.stat-skipped .stat-value{color:var(--text-muted)}.score-badge{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:28px;padding:0 8px;border-radius:14px;font-size:.8125rem;font-weight:700;color:#fff;line-height:1}.score-badge.score-green{background:var(--success)}.score-badge.score-yellow{background:var(--yellow)}.score-badge.score-orange{background:#ea580c}.score-badge.score-red{background:var(--danger)}.score-badge.score-na{background:var(--mid-gray);font-weight:500}.score-badge-lg{min-width:64px;height:64px;border-radius:32px;font-size:1.5rem;padding:0 16px}.results-section{margin-top:32px}.results-table{width:100%;border-collapse:collapse;font-size:.875rem;table-layout:fixed}.results-table thead th{text-align:left;padding:10px 12px;font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600;white-space:nowrap;position:sticky;top:0;background:var(--bg);box-shadow:inset 0 -2px 0 var(--light-gray);z-index:2}.results-table thead th:first-child{width:36px}.results-table thead th.col-score{text-align:center;width:60px}.results-table thead th.col-right{text-align:right;width:90px}.results-table td.col-agent,.results-table td.col-scenario-header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-row{cursor:pointer;transition:background var(--transition)}.result-row:hover,.result-row.expanded{background:var(--accent-light)}.result-row td{padding:12px;border-bottom:1px solid var(--light-gray);vertical-align:middle}.result-row td.col-score{text-align:center}.result-row td.col-right{text-align:right;font-family:var(--font-mono);font-size:.8125rem;color:var(--text-secondary)}.result-row td.col-scenario{font-weight:500;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-row td.col-agent{color:var(--text-secondary);font-family:var(--font-mono);font-size:.8125rem}.result-row .expand-icon{display:inline-block;width:16px;color:var(--text-muted);transition:transform var(--transition);font-size:.625rem;opacity:.5}.result-row.expanded .expand-icon{transform:rotate(90deg)}.error-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-left:6px;border:1px solid var(--light-gray);border-radius:50%;background:var(--bg-card);color:var(--danger);font-size:.75rem;font-weight:600;cursor:pointer;vertical-align:middle;line-height:1;transition:background var(--transition),border-color var(--transition)}.error-btn:hover{background:var(--danger-light);border-color:var(--danger)}.modal-error-text{border-color:var(--danger)!important;background:var(--danger-light)!important}.scenario-header-row{cursor:pointer;background:#e8ebe5;transition:background var(--transition)}.scenario-header-row:hover{background:#e0e3dc}.scenario-header-row td{padding:14px 12px;vertical-align:middle;border-bottom:1px solid var(--border)}.scenario-header-row td.col-scenario-header{font-size:.9375rem;font-weight:700;letter-spacing:-.01em;color:var(--text);padding-left:0}.scenario-header-row .expand-icon{display:inline-block;width:16px;color:var(--text-muted);transition:transform var(--transition);font-size:.75rem}.scenario-header-row.expanded .expand-icon{transform:rotate(90deg)}.agent-row td.col-expand-indent{text-align:center}.agent-row.scenario-collapsed,.detail-row.scenario-collapsed,.detail-row{display:none}.detail-row.visible{display:table-row}.detail-row td{padding:0;border-bottom:2px solid var(--light-gray)}.detail-panel{padding:24px;background:var(--bg)}.score-overview{display:flex;align-items:flex-start;gap:32px;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--light-gray)}.score-overview .big-score{flex-shrink:0}.category-bars{flex:1;display:flex;flex-direction:column;gap:8px;padding-top:4px}.category-bar-row{display:flex;align-items:center;gap:12px}.category-bar-label{width:120px;font-size:.8125rem;font-weight:500;color:var(--text-secondary);flex-shrink:0}.category-bar-value{font-size:.8125rem;font-weight:600;width:32px;text-align:right;flex-shrink:0}.progress-bar{flex:1;height:8px;background:var(--light-gray);border-radius:4px;overflow:hidden;min-width:80px}.progress-bar .fill{height:100%;border-radius:4px;transition:width .4s ease}.progress-bar .fill.fill-green{background:var(--success)}.progress-bar .fill.fill-yellow{background:var(--yellow)}.progress-bar .fill.fill-orange{background:#ea580c}.progress-bar .fill.fill-red{background:var(--danger)}.detail-sections{display:flex;flex-direction:column;gap:20px}.detail-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-header h3{display:flex;align-items:center;gap:8px}.section-score{font-size:.875rem;font-weight:600;color:var(--text-secondary)}.section-description{font-size:.8125rem;color:var(--text-muted);line-height:1.5;margin:-8px 0 16px;max-width:70ch}.section-description code{font-family:var(--font-mono);font-size:.75rem;background:var(--bg-alt);color:var(--text-secondary);padding:1px 5px;border-radius:3px}.criteria-list{display:flex;flex-direction:column;gap:12px}.criterion-item{padding:12px;background:var(--bg);border-radius:var(--radius);border:1px solid var(--light-gray)}.criterion-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.criterion-icon{font-size:.875rem;width:20px;text-align:center;flex-shrink:0}.criterion-icon.high{color:var(--success)}.criterion-icon.good{color:var(--yellow)}.criterion-icon.medium{color:#ea580c}.criterion-icon.low{color:var(--danger)}.criterion-name{flex:1;font-size:.8125rem;font-weight:500}.criterion-score{font-size:.8125rem;font-weight:600;color:var(--text-secondary);flex-shrink:0}.criterion-weight{font-size:.6875rem;color:var(--text-muted);background:var(--light-gray);padding:1px 6px;border-radius:3px;flex-shrink:0}.criterion-bar{margin-bottom:8px}.criterion-rationale{font-size:.8125rem;color:var(--text-secondary);line-height:1.5;font-style:italic}.criterion-perfect{padding:8px 12px;background:var(--success-light);border-left:3px solid var(--success)}.criterion-perfect .criterion-bar{display:none}.criterion-imperfect{border-left:3px solid var(--warning)}.dim-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.dim-tag{font-size:.6875rem;font-weight:600;font-family:var(--font-mono);padding:2px 8px;border-radius:10px;color:#fff}.dim-tag.fill-green{background:var(--success)}.dim-tag.fill-yellow{background:var(--yellow)}.dim-tag.fill-orange{background:#ea580c}.dim-tag.fill-red{background:var(--danger)}.cat-deduction-item{padding:8px 0;border-bottom:1px solid rgba(217,119,6,.15)}.cat-deduction-item:last-child{border-bottom:none;padding-bottom:0}.cat-deduction-id{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--text);margin-right:8px}.interaction-link{cursor:pointer;color:var(--accent);text-decoration:none;border-bottom:1px dashed transparent;transition:border-color var(--transition),color var(--transition)}.interaction-link:hover{border-bottom-color:var(--accent)}a.cat-deduction-id.interaction-link,a.wf-id.interaction-link{color:var(--accent)}@keyframes interaction-flash{0%,35%{background:var(--yellow-light);box-shadow:inset 3px 0 0 var(--yellow)}to{background:transparent;box-shadow:inset 3px 0 0 transparent}}.sparse-line.interaction-flash{animation:interaction-flash 1.8s ease-out}.cat-deduction-scores{display:inline-flex;gap:4px}.dim-score-tag{font-size:.625rem;font-family:var(--font-mono);background:var(--light-gray);padding:1px 5px;border-radius:3px;color:var(--text-secondary)}.speed-tag{position:relative;cursor:help}.speed-tooltip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--text);color:var(--bg-card);padding:8px 10px;border-radius:6px;width:max-content;max-width:260px;z-index:30;pointer-events:none;box-shadow:0 6px 16px #0003;font-family:var(--font-sans, inherit);text-transform:none;letter-spacing:normal;text-align:left;font-weight:400}.speed-tag:hover .speed-tooltip,.speed-tag:focus-within .speed-tooltip{display:block}.speed-tooltip-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:.75rem;margin-bottom:6px;color:var(--bg-card)}.speed-tooltip-header strong{font-weight:600}.speed-tooltip-actual{font-family:var(--font-mono);font-size:.6875rem;color:var(--bg-alt)}.speed-tooltip-tiers{display:flex;flex-direction:column;gap:2px;font-family:var(--font-mono);font-size:.6875rem}.speed-tooltip-row{display:flex;justify-content:space-between;gap:14px;padding:2px 6px;border-radius:3px;color:var(--bg-alt)}.speed-tooltip-row-active{background:#ffffff1f;color:var(--bg-card);font-weight:600}.speed-tooltip-range{white-space:nowrap}.speed-tooltip-score{font-variant-numeric:tabular-nums}.cat-deduction-rationale{display:block;font-size:.75rem;color:var(--text-secondary);line-height:1.5;font-style:italic;margin-top:4px}.cat-deduction-note{font-size:.75rem;color:var(--text-muted);font-style:italic}.deductions-baseline{background:var(--bg);border-color:var(--light-gray)}.deductions-baseline .deductions-header{color:var(--text-muted)}.dimensions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:16px}.dimension-item{display:flex;align-items:center;gap:8px}.dimension-label{width:72px;font-size:.75rem;font-weight:500;color:var(--text-secondary);flex-shrink:0}.dimension-value{font-size:.75rem;font-weight:600;width:28px;text-align:right;flex-shrink:0}.interaction-meta{font-size:.75rem;color:var(--text-muted);margin-bottom:12px}.category-empty-state{font-size:.8125rem;color:var(--text-muted);font-style:italic;padding:12px 14px;background:var(--bg-alt);border-radius:6px}.audits-section{margin-top:12px}.audits-toggle{font-size:.75rem;color:var(--accent);background:none;border:none;cursor:pointer;font-family:var(--font);padding:4px 0;font-weight:500}.audits-toggle:hover{color:var(--accent-hover)}.audits-list{display:none;margin-top:8px}.audits-list.visible{display:block}.audit-item{padding:10px 12px;background:var(--bg);border-radius:var(--radius);margin-bottom:6px;border-left:3px solid var(--mid-gray)}.audit-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.audit-id{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--text)}.audit-scores{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-muted)}.audit-rationale{font-size:.8125rem;color:var(--text-secondary);line-height:1.5}.necessity-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--light-gray)}.necessity-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.necessity-label{font-size:.75rem;font-weight:600;color:var(--text-secondary)}.necessity-score{font-size:.75rem;font-weight:600}.necessity-rationale{font-size:.8125rem;color:var(--text-secondary);font-style:italic}.waterfall{font-size:.8125rem}.waterfall-header{display:flex;align-items:flex-end;border-bottom:1px solid var(--light-gray);padding-bottom:6px;margin-bottom:2px}.wf-label-col{width:200px;flex-shrink:0;display:flex;align-items:center;gap:6px;overflow:hidden}.waterfall-header .wf-label-col,.waterfall-header .wf-dur-col{font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.wf-timeline-col{flex:1;min-width:0;position:relative}.wf-dur-col{width:64px;flex-shrink:0;text-align:right;font-family:var(--font-mono);font-size:.75rem;color:var(--text-secondary)}.wf-ticks{position:relative;height:18px}.wf-tick{position:absolute;transform:translate(-50%);font-family:var(--font-mono);font-size:.625rem;color:var(--text-muted);white-space:nowrap;top:0}.wf-tick:after{content:"";position:absolute;left:50%;top:100%;width:1px;height:4px;background:var(--light-gray)}.waterfall-body{position:relative}.wf-row{display:flex;align-items:center;height:26px;border-bottom:1px solid rgba(0,0,0,.03)}.wf-row:hover{background:var(--accent-light)}.wf-id{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-muted);width:28px;flex-shrink:0}.wf-cat{font-size:.625rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);width:36px;flex-shrink:0}.wf-tool{font-size:.75rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-track{position:relative;height:14px;background:#00000004;border-radius:2px}.wf-bar{position:absolute;top:2px;height:10px;border-radius:2px;min-width:3px;cursor:default;transition:opacity var(--transition)}.wf-row:hover .wf-bar{opacity:.8}.wf-env .wf-bar{background:var(--cat-env)}.wf-svc .wf-bar{background:var(--cat-svc)}.wf-agent .wf-bar{background:var(--cat-agent)}.wf-bar-error{background:var(--danger)!important}.wf-track{position:relative}.wf-tooltip{position:absolute;bottom:calc(100% + 8px);left:0;display:none;background:var(--text);color:var(--bg-card);padding:10px 12px;border-radius:6px;width:max-content;max-width:360px;z-index:20;pointer-events:none;box-shadow:0 6px 16px #0003;font-family:var(--font-sans, inherit);text-transform:none;letter-spacing:normal;text-align:left;font-weight:400}.wf-bar:hover .wf-tooltip{display:block}.wf-track .wf-bar.wf-tip-right .wf-tooltip{left:auto;right:0}.wf-tooltip-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.8125rem}.wf-tooltip-id{font-family:var(--font-mono);color:var(--bg-alt);font-size:.75rem}.wf-tooltip-tool{font-family:var(--font-mono);font-weight:600;color:var(--bg-card);word-break:break-all}.wf-tooltip-cat{font-size:.625rem;font-weight:600;padding:1px 6px;border-radius:3px;margin-left:auto;flex-shrink:0}.wf-tooltip-cat-env{background:var(--cat-env);color:var(--text)}.wf-tooltip-cat-svc{background:var(--cat-svc);color:var(--text)}.wf-tooltip-cat-agent{background:var(--cat-agent);color:var(--text)}.wf-tooltip-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:.75rem;color:var(--bg-alt);margin-bottom:4px}.wf-tooltip-meta strong{color:var(--bg-card);font-weight:600;margin-right:4px}.wf-tooltip-error{color:#fca5a5;font-weight:600}.wf-tooltip-snippet{font-family:var(--font-mono);font-size:.6875rem;margin:6px 0 0;padding:6px 8px;background:#ffffff0f;border-radius:4px;white-space:pre-wrap;max-height:120px;overflow:hidden;line-height:1.45;color:var(--bg-card)}.wf-lifecycle .wf-bar{background:repeating-linear-gradient(45deg,var(--mid-gray),var(--mid-gray) 4px,var(--light-gray) 4px,var(--light-gray) 8px);opacity:.7}.wf-lifecycle .wf-tool{font-style:italic;color:var(--text-muted)}.wf-lifecycle .wf-cat{color:var(--text-muted)}.wf-show-all{display:block;width:100%;margin-top:4px;padding:6px;font-size:.75rem;color:var(--accent);background:none;border:1px dashed var(--light-gray);border-radius:var(--radius);cursor:pointer;font-family:var(--font);font-weight:500}.wf-show-all:hover{background:var(--accent-light);border-color:var(--accent)}.wf-legend{display:flex;gap:16px;margin-top:10px;padding-top:8px;border-top:1px solid var(--light-gray)}.wf-legend-item{display:flex;align-items:center;gap:5px;font-size:.6875rem;color:var(--text-muted)}.wf-legend-dot{width:10px;height:10px;border-radius:2px}.wf-legend-dot.wf-env{background:var(--cat-env)}.wf-legend-dot.wf-svc{background:var(--cat-svc)}.wf-legend-dot.wf-agent{background:var(--cat-agent)}.sparse-index-section{margin-top:16px}.sparse-index-toggle{font-size:.75rem;color:var(--accent);background:none;border:none;cursor:pointer;font-family:var(--font);padding:4px 0;font-weight:500}.sparse-index-content{display:none;margin-top:8px}.sparse-index-content.visible{display:block}.sparse-line{font-family:var(--font-mono);font-size:.75rem;line-height:1.8;padding:3px 10px;border-left:3px solid var(--cat-agent);white-space:pre;overflow-x:auto}.sparse-line.cat-env{border-left-color:var(--cat-env);background:#0596690a}.sparse-line.cat-svc{border-left-color:var(--cat-svc);background:#2563eb0a}.sparse-line.cat-agent{border-left-color:var(--cat-agent)}.sparse-line-expandable{cursor:pointer;position:relative}.sparse-line-expandable:after{content:"▶";position:absolute;right:8px;top:4px;font-size:.6rem;color:var(--text-secondary);transition:transform .15s ease}.sparse-line-expandable.expanded:after{transform:rotate(90deg)}.sparse-line-expandable:hover{background:var(--accent-light)}.sparse-line-content{display:none;margin:4px 0 8px 12px;padding:8px 12px;background:var(--bg-alt);border-radius:4px;border:1px solid var(--border)}.sparse-line-expandable.expanded .sparse-line-content{display:block}.sparse-line-content pre{margin:0;font-family:var(--font-mono);font-size:.7rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--text)}.sparse-expand-all{font-size:.75rem;color:var(--accent);background:none;border:none;cursor:pointer;font-family:var(--font);padding:4px 0;font-weight:500;margin-left:12px}.info-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-left:6px;border:1px solid var(--light-gray);border-radius:50%;background:var(--bg-card);color:var(--accent);font-size:.75rem;font-weight:600;cursor:pointer;vertical-align:middle;line-height:1;transition:background var(--transition),border-color var(--transition)}.info-btn:hover{background:var(--accent-light);border-color:var(--accent)}.info-btn[data-tooltip]{position:relative}.info-btn[data-tooltip]:hover:after,.info-btn[data-tooltip]:focus-visible:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--text);color:var(--bg-card);font-size:.75rem;font-weight:400;font-family:var(--font-sans, inherit);text-transform:none;letter-spacing:normal;line-height:1.5;padding:8px 12px;border-radius:6px;width:max-content;max-width:320px;white-space:normal;text-align:left;z-index:10;pointer-events:none;box-shadow:0 4px 12px #00000026}.modal-backdrop{display:none;position:fixed;inset:0;z-index:100;background:#1a1a2e73;align-items:center;justify-content:center;padding:24px}.modal-backdrop.visible{display:flex}.modal{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),0 8px 32px #0000001f;max-width:640px;width:100%;max-height:80vh;overflow-y:auto;animation:modal-in .15s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--light-gray)}.modal-header h3{font-size:1.0625rem;font-weight:600;margin-bottom:2px}.modal-subtitle{display:block;font-size:.75rem;font-family:var(--font-mono);color:var(--text-muted)}.modal-close{background:none;border:none;font-size:1.5rem;line-height:1;color:var(--text-muted);cursor:pointer;padding:0 4px;flex-shrink:0;transition:color var(--transition)}.modal-close:hover{color:var(--text)}.modal-body{padding:20px 24px 24px}.modal-section{margin-bottom:20px}.modal-section:last-child{margin-bottom:0}.modal-section h4{font-size:.875rem;color:var(--text);font-weight:600;margin-bottom:10px}.modal-prompt{font-family:var(--font-mono);font-size:.8125rem;line-height:1.6;background:var(--bg);border:1px solid var(--light-gray);border-radius:var(--radius);padding:12px 16px;white-space:pre-wrap;word-break:break-word;max-height:240px;overflow-y:auto}.modal-judge-table{width:100%;border-collapse:collapse;font-size:.8125rem}.modal-judge-table thead th{text-align:left;padding:6px 10px;font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--light-gray)}.modal-judge-table tbody td{padding:8px 10px;border-bottom:1px solid var(--light-gray);color:var(--text-secondary)}.modal-judge-weight{width:60px;text-align:right;font-family:var(--font-mono);font-weight:600;color:var(--text)!important}.modal-config-table{width:100%;border-collapse:collapse;font-size:.8125rem}.modal-config-table tbody td{padding:6px 10px;border-bottom:1px solid var(--light-gray);color:var(--text-secondary);vertical-align:top}.modal-config-table tbody tr:last-child td{border-bottom:none}.modal-config-label{width:140px;font-weight:600;color:var(--text)!important}.modal-config-table code{font-family:var(--font-mono);font-size:.75rem;background:var(--bg-alt);padding:2px 6px;border-radius:3px;color:var(--text);word-break:break-all}.modal-section-value{font-family:var(--font-mono);font-size:.875rem;font-weight:600;background:var(--bg-alt);color:var(--text);padding:2px 8px;border-radius:4px}.modal-config-line{font-size:.8125rem;color:var(--text-secondary);margin:0}.modal-config-line code{font-family:var(--font-mono);font-size:.75rem;background:var(--bg-alt);padding:2px 6px;border-radius:3px;color:var(--text);margin:0 2px}.modal-config-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.modal-config-list li{font-size:.8125rem;color:var(--text-secondary);display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.modal-config-list code{font-family:var(--font-mono);font-size:.75rem;background:var(--bg-alt);padding:2px 6px;border-radius:3px;color:var(--text);word-break:break-all}.modal-config-label-inline{font-weight:600;color:var(--text);font-size:.8125rem}.modal-config{display:flex;flex-direction:column;gap:6px}.modal-config-item{display:flex;align-items:baseline;gap:12px;font-size:.8125rem;padding:6px 10px;background:var(--bg);border-radius:var(--radius)}.modal-config-key{font-family:var(--font-mono);font-weight:600;color:var(--text);flex-shrink:0}.modal-config-val{font-family:var(--font-mono);color:var(--text-secondary);word-break:break-all}.error-banner{background:var(--danger-light);border:1px solid var(--danger);border-radius:var(--radius);padding:12px 16px;color:var(--danger);font-size:.875rem;font-weight:500;margin-bottom:16px}.loading{text-align:center;padding:80px 24px;color:var(--text-muted);font-size:1.125rem}.empty-state{text-align:center;padding:60px 24px;color:var(--text-muted)}@media(max-width:768px){.container{padding:16px 12px 48px}.report-header{flex-direction:column;gap:16px}.report-branding{gap:8px;margin-bottom:8px}.site-logo-mark,.report-badge{font-size:1.5rem}.report-meta-row{font-size:.8125rem;line-height:1.7}.summary-card{padding:16px;flex-direction:column;gap:16px;width:100%}.summary-hero .hero-score{font-size:2rem}.summary-divider{width:100%;height:1px;align-self:auto}.summary-stats{flex-wrap:wrap;gap:16px;justify-content:center}.results-table{font-size:.8125rem}.results-table thead th{padding:8px 6px}.results-table thead th.hide-mobile,.results-table tbody td.hide-mobile{display:none}.result-row td{padding:10px 6px}.result-row td:first-child{padding-left:4px;padding-right:0;width:20px}.result-row .expand-icon{width:12px;font-size:.625rem}.result-row td.col-scenario{max-width:120px;font-size:.75rem}.result-row td.col-agent{max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.6875rem}.scenario-header-row td{padding:10px 6px}.scenario-header-row td.col-scenario-header{font-size:.8125rem}.agent-row td.col-agent{padding-left:16px}.detail-panel{padding:16px 12px}.score-overview{flex-direction:column;align-items:center;gap:16px}.category-bars{width:100%}.category-bar-label{width:80px;font-size:.75rem}.dimensions-grid{grid-template-columns:1fr}.criterion-top{flex-wrap:wrap}.criterion-name{min-width:0;word-break:break-word}.cat-deduction-item{flex-direction:column;gap:4px;align-items:flex-start}.waterfall{overflow-x:auto;-webkit-overflow-scrolling:touch}.wf-label-col{width:100px}.wf-dur-col{width:48px;font-size:.6875rem}.wf-tool{font-size:.625rem;max-width:50px;overflow:hidden;text-overflow:ellipsis}.wf-id,.wf-cat{font-size:.5625rem}.wf-legend{flex-wrap:wrap;gap:8px}.sparse-line{font-size:.6875rem;word-break:break-all}.modal-backdrop{padding:12px}.modal{max-height:90vh;border-radius:var(--radius)}.modal-header{padding:16px}.modal-header h3{font-size:1rem}.modal-body{padding:16px}.modal-prompt{font-size:.75rem}.audit-header{flex-direction:column;gap:4px}.necessity-header{flex-wrap:wrap;gap:4px}}.artifacts-section{margin-top:20px}.artifacts-count{font-size:.8125rem;font-weight:500;color:var(--text-muted)}.artifacts-actions{display:flex;gap:8px;align-items:center}.artifacts-toggle,.artifacts-download-all{font-size:.75rem;font-weight:500;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:background .1s ease,border-color .1s ease}.artifacts-toggle:hover,.artifacts-download-all:hover{background:var(--bg-hover, var(--border))}.art-tree-root{list-style:none;margin:12px 0 0;padding:4px 0 0;font-size:.8125rem;border-top:1px solid var(--border)}.art-tree-root[hidden]{display:none}.art-tree-root ul{list-style:none;margin:0;padding:0}.art-tree-row,.art-tree-folder-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:4px 8px 4px 0;font-size:.8125rem;color:var(--text-primary);background:transparent;border:none;border-radius:4px;cursor:default;text-align:left;font-family:inherit}.art-tree-folder-toggle{cursor:pointer}.art-tree-row:hover,.art-tree-folder-toggle:hover{background:var(--bg-hover, rgba(0, 0, 0, .04))}.art-tree-chevron{display:inline-flex;align-items:center;justify-content:center;width:18px;font-size:1.05rem;line-height:1;color:var(--text-secondary);transition:transform .1s ease;flex-shrink:0}.art-tree-dir:not(.collapsed)>.art-tree-folder-toggle .art-tree-chevron{transform:rotate(90deg)}.art-tree-icon{display:inline-block;width:14px;text-align:center;color:var(--text-muted);font-family:var(--font-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);font-size:.75rem;flex-shrink:0}.art-tree-dir-icon{color:var(--accent, var(--text-secondary))}.art-tree-name{flex:1;font-family:var(--font-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);font-size:.75rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.art-tree-size{color:var(--text-muted);font-size:.7rem;font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;padding-left:12px}.art-tree-eye,.art-tree-download{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border-radius:4px;border:1px solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .1s ease,border-color .1s ease,color .1s ease}.art-tree-eye:hover,.art-tree-download:hover{background:var(--bg-card, transparent);border-color:var(--border);color:var(--text-primary)}.art-tree-dir.collapsed>.art-tree-children{display:none}.modal-backdrop.artifact-modal .modal.artifact-modal-content{width:min(900px,92vw);max-height:85vh;display:flex;flex-direction:column}.artifact-modal .modal-header h3{display:flex;flex-direction:column;gap:2px;align-items:flex-start;font-family:var(--font-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);font-size:.9rem;word-break:break-all}.artifact-modal-meta{font-size:.7rem!important;color:var(--text-muted);font-weight:400}.artifact-modal .modal-body{display:flex;flex-direction:column;gap:12px;min-height:0;flex:1;overflow:hidden}.artifact-modal-toolbar{display:flex;justify-content:flex-end;flex-shrink:0}.artifact-modal-download{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:500;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:background .1s ease}.artifact-modal-download:hover{background:var(--bg-hover, var(--border))}.artifact-modal-preview{flex:1;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card)}.artifact-text{margin:0;padding:12px 16px;font-family:var(--font-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);font-size:.75rem;line-height:1.5;color:var(--text-primary);white-space:pre;overflow:auto}.artifact-image{display:block;max-width:100%;max-height:70vh;height:auto;margin:0 auto;padding:12px}.artifact-not-previewable{padding:32px 16px;text-align:center;color:var(--text-muted)}.artifact-not-previewable p{margin:0 0 4px}.artifact-not-previewable-meta{font-family:var(--font-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);font-size:.75rem}@media print{.detail-row{display:table-row!important}.audits-list,.sparse-index-content{display:block!important}.result-row{cursor:default}.wf-overflow{display:block!important}.wf-show-all,.expand-icon,.audits-toggle,.sparse-index-toggle,.info-btn{display:none!important}.agent-row.scenario-collapsed{display:table-row!important}.modal-backdrop,.artifacts-toggle,.artifacts-download-all,.art-tree-eye,.art-tree-download{display:none!important}.art-tree-root[hidden]{display:block!important}.art-tree-dir.collapsed>.art-tree-children{display:block!important}}.lifecycle-notes{margin-top:20px}.notes-body{padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.875rem;line-height:1.55;color:var(--text-primary);overflow-x:auto}.markdown-body :first-child{margin-top:0}.markdown-body :last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{margin:1em 0 .4em;font-weight:600;line-height:1.3}.markdown-body h1{font-size:1.1rem}.markdown-body h2{font-size:1rem}.markdown-body h3,.markdown-body h4{font-size:.9375rem}.markdown-body p,.markdown-body ul,.markdown-body ol,.markdown-body blockquote,.markdown-body pre,.markdown-body table{margin:.5em 0}.markdown-body ul,.markdown-body ol{padding-left:1.4em}.markdown-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;background:var(--border);padding:.1em .35em;border-radius:3px}.markdown-body pre{background:var(--border);padding:10px 12px;border-radius:var(--radius-sm);overflow-x:auto}.markdown-body pre code{background:transparent;padding:0;font-size:.8125rem}.markdown-body blockquote{border-left:3px solid var(--border);padding-left:.8em;color:var(--text-secondary)}.markdown-body table{border-collapse:collapse;font-size:.8125rem}.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:4px 8px;text-align:left}.markdown-body a{color:var(--link, #4099ff);text-decoration:underline}
2
- </style></head> <body> <div id="app"> <div class="loading">Loading report&hellip;</div> </div> <script id="axis-data" type="application/json">__AXIS_REPORT_DATA__</script> <script type="module">function re(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var I=re();function ze(e){I=e}var L={exec:()=>null};function k(e,t=""){let s=typeof e=="string"?e:e.source,n={replace:(r,i)=>{let a=typeof i=="string"?i:i.source;return a=a.replace(x.caret,"$1"),s=s.replace(r,a),n},getRegex:()=>new RegExp(s,t)};return n}var Ve=((e="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+e)}catch{return!1}})(),x={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},Je=/^(?:[ \t]*(?:\n|$))+/,Xe=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Ye=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,_=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,et=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,ie=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Pe=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Me=k(Pe).replace(/bull/g,ie).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),tt=k(Pe).replace(/bull/g,ie).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ae=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,st=/^[^\n]+/,oe=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,nt=k(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",oe).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),rt=k(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,ie).getRegex(),G="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",le=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,it=k("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",le).replace("tag",G).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),qe=k(ae).replace("hr",_).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",G).getRegex(),at=k(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",qe).getRegex(),ce={blockquote:at,code:Xe,def:nt,fences:Ye,heading:et,hr:_,html:it,lheading:Me,list:rt,newline:Je,paragraph:qe,table:L,text:st},ge=k("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",_).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",G).getRegex(),ot={...ce,lheading:tt,table:ge,paragraph:k(ae).replace("hr",_).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",ge).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",G).getRegex()},lt={...ce,html:k(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",le).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:L,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:k(ae).replace("hr",_).replace("heading",` *#{1,6} *[^
3
- ]`).replace("lheading",Me).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},ct=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,dt=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Be=/^( {2,}|\\)\n(?!\s*$)/,ut=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,P=/[\p{P}\p{S}]/u,Q=/[\s\p{P}\p{S}]/u,de=/[^\s\p{P}\p{S}]/u,pt=k(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Q).getRegex(),Ue=/(?!~)[\p{P}\p{S}]/u,ht=/(?!~)[\s\p{P}\p{S}]/u,ft=/(?:[^\s\p{P}\p{S}]|~)/u,gt=k(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Ve?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),_e=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,mt=k(_e,"u").replace(/punct/g,P).getRegex(),kt=k(_e,"u").replace(/punct/g,Ue).getRegex(),je="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",bt=k(je,"gu").replace(/notPunctSpace/g,de).replace(/punctSpace/g,Q).replace(/punct/g,P).getRegex(),vt=k(je,"gu").replace(/notPunctSpace/g,ft).replace(/punctSpace/g,ht).replace(/punct/g,Ue).getRegex(),xt=k("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,de).replace(/punctSpace/g,Q).replace(/punct/g,P).getRegex(),wt=k(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,P).getRegex(),$t="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",yt=k($t,"gu").replace(/notPunctSpace/g,de).replace(/punctSpace/g,Q).replace(/punct/g,P).getRegex(),St=k(/\\(punct)/,"gu").replace(/punct/g,P).getRegex(),At=k(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Rt=k(le).replace("(?:-->|$)","-->").getRegex(),Et=k("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Rt).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),O=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Tt=k(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",O).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ne=k(/^!?\[(label)\]\[(ref)\]/).replace("label",O).replace("ref",oe).getRegex(),De=k(/^!?\[(ref)\](?:\[\])?/).replace("ref",oe).getRegex(),Lt=k("reflink|nolink(?!\\()","g").replace("reflink",Ne).replace("nolink",De).getRegex(),me=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,ue={_backpedal:L,anyPunctuation:St,autolink:At,blockSkip:gt,br:Be,code:dt,del:L,delLDelim:L,delRDelim:L,emStrongLDelim:mt,emStrongRDelimAst:bt,emStrongRDelimUnd:xt,escape:ct,link:Tt,nolink:De,punctuation:pt,reflink:Ne,reflinkSearch:Lt,tag:Et,text:ut,url:L},Ct={...ue,link:k(/^!?\[(label)\]\((.*?)\)/).replace("label",O).getRegex(),reflink:k(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",O).getRegex()},ee={...ue,emStrongRDelimAst:vt,emStrongLDelim:kt,delLDelim:wt,delRDelim:yt,url:k(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",me).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:k(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",me).getRegex()},It={...ee,br:k(Be).replace("{2,}","*").getRegex(),text:k(ee.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},j={normal:ce,gfm:ot,pedantic:lt},B={normal:ue,gfm:ee,breaks:It,pedantic:Ct},zt={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ke=e=>zt[e];function R(e,t){if(t){if(x.escapeTest.test(e))return e.replace(x.escapeReplace,ke)}else if(x.escapeTestNoEncode.test(e))return e.replace(x.escapeReplaceNoEncode,ke);return e}function be(e){try{e=encodeURI(e).replace(x.percentDecode,"%")}catch{return null}return e}function ve(e,t){let s=e.replace(x.findPipe,(i,a,o)=>{let c=!1,l=a;for(;--l>=0&&o[l]==="\\";)c=!c;return c?"|":" |"}),n=s.split(x.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;r<n.length;r++)n[r]=n[r].trim().replace(x.slashPipe,"|");return n}function T(e,t,s){let n=e.length;if(n===0)return"";let r=0;for(;r<n&&e.charAt(n-r-1)===t;)r++;return e.slice(0,n-r)}function xe(e){let t=e.split(`
1
+ <!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>AXIS Report</title><style>:root{--bg: #fafbf9;--bg-card: #ffffff;--bg-alt: #f3f4f6;--text: #1a1a2e;--text-secondary: #4a5568;--text-muted: #637083;--mid-gray: #6b7280;--light-gray: #e5e7eb;--border: #e5e7eb;--accent: #016867;--accent-hover: #015554;--accent-bright: #2dd4bf;--accent-light: rgba(1, 104, 103, .07);--success: #059669;--success-light: #ecfdf5;--yellow: #d97706;--yellow-light: #fffbeb;--warning: #d97706;--warning-light: #fffbeb;--danger: #dc2626;--danger-light: #fef2f2;--cat-env: #059669;--cat-svc: #2563eb;--cat-agent: #6b7280;--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .04), 0 2px 8px rgba(0, 0, 0, .03);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .06), 0 0 40px rgba(1, 104, 103, .04);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, sans-serif;--font-mono: "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--transition: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.6;min-height:100vh}.container{max-width:1120px;margin:0 auto;padding:32px 24px 64px}h1{font-size:2rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,var(--text) 0%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}h2{font-size:1.375rem;font-weight:700;letter-spacing:-.01em;color:var(--text)}h3{font-size:1.0625rem;font-weight:600;color:var(--text)}.report-header{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;margin-bottom:32px}.header-left{flex:1;min-width:0}.report-branding{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.site-logo-mark{font-size:2.0625rem;font-weight:800;letter-spacing:.12em;color:var(--accent)}.logo-ax{letter-spacing:-.06em}.logo-i{display:inline-block;font-style:italic;transform:skew(-20deg);margin-left:2px;margin-right:-2px}.report-badge{font-size:2.0625rem;font-weight:800;letter-spacing:.02em;color:var(--accent)}.report-meta{margin:0}.report-meta-row{font-size:.875rem;line-height:1.8;color:var(--text-secondary)}.report-meta-label{font-weight:600;color:var(--text)}.report-meta-value{color:var(--text-secondary)}.report-meta-id{font-family:var(--font-mono);font-size:.8125rem}.summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 28px;box-shadow:var(--shadow);flex-shrink:0;display:flex;align-items:center;gap:24px}.summary-hero{text-align:center;padding:0 8px}.summary-hero .hero-score{font-size:2.5rem;font-weight:800;line-height:1;color:var(--accent)}.summary-hero .hero-label{font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600;margin-top:4px;white-space:nowrap}.summary-divider{width:1px;align-self:stretch;background:var(--border)}.summary-stats{display:flex;gap:20px;align-items:flex-start}.summary-stat{text-align:center;min-width:48px}.summary-stat .stat-value{font-size:1.25rem;font-weight:700;color:var(--text);line-height:1.2;margin-bottom:2px}.summary-stat .stat-label{font-size:.625rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:500;white-space:nowrap}.summary-stat.stat-passed .stat-value{color:var(--success)}.summary-stat.stat-failed .stat-value{color:var(--danger)}.summary-stat.stat-skipped .stat-value{color:var(--text-muted)}.score-badge{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:28px;padding:0 8px;border-radius:14px;font-size:.8125rem;font-weight:700;color:#fff;line-height:1}.score-badge.score-green{background:var(--success)}.score-badge.score-yellow{background:var(--yellow)}.score-badge.score-orange{background:#ea580c}.score-badge.score-red{background:var(--danger)}.score-badge.score-na{background:var(--mid-gray);font-weight:500}.score-badge-lg{min-width:64px;height:64px;border-radius:32px;font-size:1.5rem;padding:0 16px}.results-section{margin-top:32px}.results-table{width:100%;border-collapse:collapse;font-size:.875rem;table-layout:fixed}.results-table thead th{text-align:left;padding:10px 12px;font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600;white-space:nowrap;position:sticky;top:0;background:var(--bg);box-shadow:inset 0 -2px 0 var(--light-gray);z-index:2}.results-table thead th:first-child{width:36px}.results-table thead th.col-score{text-align:center;width:60px}.results-table thead th.col-right{text-align:right;width:90px}.results-table td.col-agent,.results-table td.col-scenario-header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-row{cursor:pointer;transition:background var(--transition)}.result-row:hover,.result-row.expanded{background:var(--accent-light)}.result-row td{padding:12px;border-bottom:1px solid var(--light-gray);vertical-align:middle}.result-row td.col-score{text-align:center}.result-row td.col-right{text-align:right;font-family:var(--font-mono);font-size:.8125rem;color:var(--text-secondary)}.result-row td.col-scenario{font-weight:500;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-row td.col-agent{color:var(--text-secondary);font-family:var(--font-mono);font-size:.8125rem}.result-row .expand-icon{display:inline-block;width:16px;color:var(--text-muted);transition:transform var(--transition);font-size:.625rem;opacity:.5}.result-row.expanded .expand-icon{transform:rotate(90deg)}.error-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-left:6px;border:1px solid var(--light-gray);border-radius:50%;background:var(--bg-card);color:var(--danger);font-size:.75rem;font-weight:600;cursor:pointer;vertical-align:middle;line-height:1;transition:background var(--transition),border-color var(--transition)}.error-btn:hover{background:var(--danger-light);border-color:var(--danger)}.modal-error-text{border-color:var(--danger)!important;background:var(--danger-light)!important}.scenario-header-row{cursor:pointer;background:#e8ebe5;transition:background var(--transition)}.scenario-header-row:hover{background:#e0e3dc}.scenario-header-row td{padding:14px 12px;vertical-align:middle;border-bottom:1px solid var(--border)}.scenario-header-row td.col-scenario-header{font-size:.9375rem;font-weight:700;letter-spacing:-.01em;color:var(--text);padding-left:0}.scenario-header-row .expand-icon{display:inline-block;width:16px;color:var(--text-muted);transition:transform var(--transition);font-size:.75rem}.scenario-header-row.expanded .expand-icon{transform:rotate(90deg)}.agent-row td.col-expand-indent{text-align:center}.agent-row.scenario-collapsed,.detail-row.scenario-collapsed,.detail-row{display:none}.detail-row.visible{display:table-row}.detail-row td{padding:0;border-bottom:2px solid var(--light-gray)}.detail-panel{padding:24px;background:var(--bg)}.score-overview{display:flex;align-items:flex-start;gap:32px;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--light-gray)}.score-overview .big-score{flex-shrink:0}.category-bars{flex:1;display:flex;flex-direction:column;gap:8px;padding-top:4px}.category-bar-row{display:flex;align-items:center;gap:12px}.category-bar-label{width:120px;font-size:.8125rem;font-weight:500;color:var(--text-secondary);flex-shrink:0}.category-bar-value{font-size:.8125rem;font-weight:600;width:32px;text-align:right;flex-shrink:0}.progress-bar{flex:1;height:8px;background:var(--light-gray);border-radius:4px;overflow:hidden;min-width:80px}.progress-bar .fill{height:100%;border-radius:4px;transition:width .4s ease}.progress-bar .fill.fill-green{background:var(--success)}.progress-bar .fill.fill-yellow{background:var(--yellow)}.progress-bar .fill.fill-orange{background:#ea580c}.progress-bar .fill.fill-red{background:var(--danger)}.detail-sections{display:flex;flex-direction:column;gap:20px}.detail-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-header h3{display:flex;align-items:center;gap:8px}.section-score{font-size:.875rem;font-weight:600;color:var(--text-secondary)}.section-description{font-size:.8125rem;color:var(--text-muted);line-height:1.5;margin:-8px 0 16px;max-width:70ch}.section-description code{font-family:var(--font-mono);font-size:.75rem;background:var(--bg-alt);color:var(--text-secondary);padding:1px 5px;border-radius:3px}.criteria-list{display:flex;flex-direction:column;gap:12px}.criterion-item{padding:12px;background:var(--bg);border-radius:var(--radius);border:1px solid var(--light-gray)}.criterion-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.criterion-icon{font-size:.875rem;width:20px;text-align:center;flex-shrink:0}.criterion-icon.high{color:var(--success)}.criterion-icon.good{color:var(--yellow)}.criterion-icon.medium{color:#ea580c}.criterion-icon.low{color:var(--danger)}.criterion-name{flex:1;font-size:.8125rem;font-weight:500}.criterion-score{font-size:.8125rem;font-weight:600;color:var(--text-secondary);flex-shrink:0}.criterion-weight{font-size:.6875rem;color:var(--text-muted);background:var(--light-gray);padding:1px 6px;border-radius:3px;flex-shrink:0}.criterion-bar{margin-bottom:8px}.criterion-rationale{font-size:.8125rem;color:var(--text-secondary);line-height:1.5;font-style:italic}.criterion-perfect{padding:8px 12px;background:var(--success-light);border-left:3px solid var(--success)}.criterion-perfect .criterion-bar{display:none}.criterion-imperfect{border-left:3px solid var(--warning)}.dim-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.dim-tag{font-size:.6875rem;font-weight:600;font-family:var(--font-mono);padding:2px 8px;border-radius:10px;color:#fff}.dim-tag.fill-green{background:var(--success)}.dim-tag.fill-yellow{background:var(--yellow)}.dim-tag.fill-orange{background:#ea580c}.dim-tag.fill-red{background:var(--danger)}.cat-deduction-item{padding:8px 0;border-bottom:1px solid rgba(217,119,6,.15)}.cat-deduction-item:last-child{border-bottom:none;padding-bottom:0}.cat-deduction-id{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--text);margin-right:8px}.interaction-link{cursor:pointer;color:var(--accent);text-decoration:none;border-bottom:1px dashed transparent;transition:border-color var(--transition),color var(--transition)}.interaction-link:hover{border-bottom-color:var(--accent)}a.cat-deduction-id.interaction-link,a.wf-id.interaction-link{color:var(--accent)}@keyframes interaction-flash{0%,35%{background:var(--yellow-light);box-shadow:inset 3px 0 0 var(--yellow)}to{background:transparent;box-shadow:inset 3px 0 0 transparent}}.sparse-line.interaction-flash{animation:interaction-flash 1.8s ease-out}.cat-deduction-scores{display:inline-flex;gap:4px}.dim-score-tag{font-size:.625rem;font-family:var(--font-mono);background:var(--light-gray);padding:1px 5px;border-radius:3px;color:var(--text-secondary)}.speed-tag{position:relative;cursor:help}.speed-tooltip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--text);color:var(--bg-card);padding:8px 10px;border-radius:6px;width:max-content;max-width:260px;z-index:30;pointer-events:none;box-shadow:0 6px 16px #0003;font-family:var(--font-sans, inherit);text-transform:none;letter-spacing:normal;text-align:left;font-weight:400}.speed-tag:hover .speed-tooltip,.speed-tag:focus-within .speed-tooltip{display:block}.speed-tooltip-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:.75rem;margin-bottom:6px;color:var(--bg-card)}.speed-tooltip-header strong{font-weight:600}.speed-tooltip-actual{font-family:var(--font-mono);font-size:.6875rem;color:var(--bg-alt)}.speed-tooltip-tiers{display:flex;flex-direction:column;gap:2px;font-family:var(--font-mono);font-size:.6875rem}.speed-tooltip-row{display:flex;justify-content:space-between;gap:14px;padding:2px 6px;border-radius:3px;color:var(--bg-alt)}.speed-tooltip-row-active{background:#ffffff1f;color:var(--bg-card);font-weight:600}.speed-tooltip-range{white-space:nowrap}.speed-tooltip-score{font-variant-numeric:tabular-nums}.cat-deduction-rationale{display:block;font-size:.75rem;color:var(--text-secondary);line-height:1.5;font-style:italic;margin-top:4px}.cat-deduction-note{font-size:.75rem;color:var(--text-muted);font-style:italic}.deductions-baseline{background:var(--bg);border-color:var(--light-gray)}.deductions-baseline .deductions-header{color:var(--text-muted)}.dimensions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:16px}.dimension-item{display:flex;align-items:center;gap:8px}.dimension-label{width:72px;font-size:.75rem;font-weight:500;color:var(--text-secondary);flex-shrink:0}.dimension-value{font-size:.75rem;font-weight:600;width:28px;text-align:right;flex-shrink:0}.interaction-meta{font-size:.75rem;color:var(--text-muted);margin-bottom:12px}.category-empty-state{font-size:.8125rem;color:var(--text-muted);font-style:italic;padding:12px 14px;background:var(--bg-alt);border-radius:6px}.audits-section{margin-top:12px}.audits-toggle{font-size:.75rem;color:var(--accent);background:none;border:none;cursor:pointer;font-family:var(--font);padding:4px 0;font-weight:500}.audits-toggle:hover{color:var(--accent-hover)}.audits-list{display:none;margin-top:8px}.audits-list.visible{display:block}.audit-item{padding:10px 12px;background:var(--bg);border-radius:var(--radius);margin-bottom:6px;border-left:3px solid var(--mid-gray)}.audit-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.audit-id{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--text)}.audit-scores{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-muted)}.audit-rationale{font-size:.8125rem;color:var(--text-secondary);line-height:1.5}.necessity-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--light-gray)}.necessity-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.necessity-label{font-size:.75rem;font-weight:600;color:var(--text-secondary)}.necessity-score{font-size:.75rem;font-weight:600}.necessity-rationale{font-size:.8125rem;color:var(--text-secondary);font-style:italic}.waterfall{font-size:.8125rem}.waterfall-header{display:flex;align-items:flex-end;border-bottom:1px solid var(--light-gray);padding-bottom:6px;margin-bottom:2px}.wf-label-col{width:200px;flex-shrink:0;display:flex;align-items:center;gap:6px;overflow:hidden}.waterfall-header .wf-label-col,.waterfall-header .wf-dur-col{font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.wf-timeline-col{flex:1;min-width:0;position:relative}.wf-dur-col{width:64px;flex-shrink:0;text-align:right;font-family:var(--font-mono);font-size:.75rem;color:var(--text-secondary)}.wf-ticks{position:relative;height:18px}.wf-tick{position:absolute;transform:translate(-50%);font-family:var(--font-mono);font-size:.625rem;color:var(--text-muted);white-space:nowrap;top:0}.wf-tick:after{content:"";position:absolute;left:50%;top:100%;width:1px;height:4px;background:var(--light-gray)}.waterfall-body{position:relative}.wf-row{display:flex;align-items:center;height:26px;border-bottom:1px solid rgba(0,0,0,.03)}.wf-row:hover{background:var(--accent-light)}.wf-id{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-muted);width:28px;flex-shrink:0}.wf-cat{font-size:.625rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);width:36px;flex-shrink:0}.wf-tool{font-size:.75rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-track{position:relative;height:14px;background:#00000004;border-radius:2px}.wf-bar{position:absolute;top:2px;height:10px;border-radius:2px;min-width:3px;cursor:default;transition:opacity var(--transition)}.wf-row:hover .wf-bar{opacity:.8}.wf-env .wf-bar{background:var(--cat-env)}.wf-svc .wf-bar{background:var(--cat-svc)}.wf-agent .wf-bar{background:var(--cat-agent)}.wf-bar-error{background:var(--danger)!important}.wf-track{position:relative}.wf-tooltip{position:absolute;bottom:calc(100% + 8px);left:0;display:none;background:var(--text);color:var(--bg-card);padding:10px 12px;border-radius:6px;width:max-content;max-width:360px;z-index:20;pointer-events:none;box-shadow:0 6px 16px #0003;font-family:var(--font-sans, inherit);text-transform:none;letter-spacing:normal;text-align:left;font-weight:400}.wf-bar:hover .wf-tooltip{display:block}.wf-track .wf-bar.wf-tip-right .wf-tooltip{left:auto;right:0}.wf-tooltip-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.8125rem}.wf-tooltip-id{font-family:var(--font-mono);color:var(--bg-alt);font-size:.75rem}.wf-tooltip-tool{font-family:var(--font-mono);font-weight:600;color:var(--bg-card);word-break:break-all}.wf-tooltip-cat{font-size:.625rem;font-weight:600;padding:1px 6px;border-radius:3px;margin-left:auto;flex-shrink:0}.wf-tooltip-cat-env{background:var(--cat-env);color:var(--text)}.wf-tooltip-cat-svc{background:var(--cat-svc);color:var(--text)}.wf-tooltip-cat-agent{background:var(--cat-agent);color:var(--text)}.wf-tooltip-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:.75rem;color:var(--bg-alt);margin-bottom:4px}.wf-tooltip-meta strong{color:var(--bg-card);font-weight:600;margin-right:4px}.wf-tooltip-error{color:#fca5a5;font-weight:600}.wf-tooltip-snippet{font-family:var(--font-mono);font-size:.6875rem;margin:6px 0 0;padding:6px 8px;background:#ffffff0f;border-radius:4px;white-space:pre-wrap;max-height:120px;overflow:hidden;line-height:1.45;color:var(--bg-card)}.wf-lifecycle .wf-bar{background:repeating-linear-gradient(45deg,var(--mid-gray),var(--mid-gray) 4px,var(--light-gray) 4px,var(--light-gray) 8px);opacity:.7}.wf-lifecycle .wf-tool{font-style:italic;color:var(--text-muted)}.wf-lifecycle .wf-cat{color:var(--text-muted)}.wf-show-all{display:block;width:100%;margin-top:4px;padding:6px;font-size:.75rem;color:var(--accent);background:none;border:1px dashed var(--light-gray);border-radius:var(--radius);cursor:pointer;font-family:var(--font);font-weight:500}.wf-show-all:hover{background:var(--accent-light);border-color:var(--accent)}.wf-legend{display:flex;gap:16px;margin-top:10px;padding-top:8px;border-top:1px solid var(--light-gray)}.wf-legend-item{display:flex;align-items:center;gap:5px;font-size:.6875rem;color:var(--text-muted)}.wf-legend-dot{width:10px;height:10px;border-radius:2px}.wf-legend-dot.wf-env{background:var(--cat-env)}.wf-legend-dot.wf-svc{background:var(--cat-svc)}.wf-legend-dot.wf-agent{background:var(--cat-agent)}.sparse-index-section{margin-top:16px}.sparse-index-toggle{font-size:.75rem;color:var(--accent);background:none;border:none;cursor:pointer;font-family:var(--font);padding:4px 0;font-weight:500}.sparse-index-content{display:none;margin-top:8px}.sparse-index-content.visible{display:block}.sparse-line{font-family:var(--font-mono);font-size:.75rem;line-height:1.8;padding:3px 10px;border-left:3px solid var(--cat-agent);white-space:pre;overflow-x:auto}.sparse-line.cat-env{border-left-color:var(--cat-env);background:#0596690a}.sparse-line.cat-svc{border-left-color:var(--cat-svc);background:#2563eb0a}.sparse-line.cat-agent{border-left-color:var(--cat-agent)}.sparse-line-expandable{cursor:pointer;position:relative}.sparse-line-expandable:after{content:"▶";position:absolute;right:8px;top:4px;font-size:.6rem;color:var(--text-secondary);transition:transform .15s ease}.sparse-line-expandable.expanded:after{transform:rotate(90deg)}.sparse-line-expandable:hover{background:var(--accent-light)}.sparse-line-content{display:none;margin:4px 0 8px 12px;padding:8px 12px;background:var(--bg-alt);border-radius:4px;border:1px solid var(--border)}.sparse-line-expandable.expanded .sparse-line-content{display:block}.sparse-line-content pre{margin:0;font-family:var(--font-mono);font-size:.7rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--text)}.sparse-expand-all{font-size:.75rem;color:var(--accent);background:none;border:none;cursor:pointer;font-family:var(--font);padding:4px 0;font-weight:500;margin-left:12px}.info-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-left:6px;border:1px solid var(--light-gray);border-radius:50%;background:var(--bg-card);color:var(--accent);font-size:.75rem;font-weight:600;cursor:pointer;vertical-align:middle;line-height:1;transition:background var(--transition),border-color var(--transition)}.info-btn:hover{background:var(--accent-light);border-color:var(--accent)}.info-btn[data-tooltip]{position:relative}.info-btn[data-tooltip]:hover:after,.info-btn[data-tooltip]:focus-visible:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--text);color:var(--bg-card);font-size:.75rem;font-weight:400;font-family:var(--font-sans, inherit);text-transform:none;letter-spacing:normal;line-height:1.5;padding:8px 12px;border-radius:6px;width:max-content;max-width:320px;white-space:normal;text-align:left;z-index:10;pointer-events:none;box-shadow:0 4px 12px #00000026}.modal-backdrop{display:none;position:fixed;inset:0;z-index:100;background:#1a1a2e73;align-items:center;justify-content:center;padding:24px}.modal-backdrop.visible{display:flex}.modal{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),0 8px 32px #0000001f;max-width:640px;width:100%;max-height:80vh;overflow-y:auto;animation:modal-in .15s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--light-gray)}.modal-header h3{font-size:1.0625rem;font-weight:600;margin-bottom:2px}.modal-subtitle{display:block;font-size:.75rem;font-family:var(--font-mono);color:var(--text-muted)}.modal-close{background:none;border:none;font-size:1.5rem;line-height:1;color:var(--text-muted);cursor:pointer;padding:0 4px;flex-shrink:0;transition:color var(--transition)}.modal-close:hover{color:var(--text)}.modal-body{padding:20px 24px 24px}.modal-section{margin-bottom:20px}.modal-section:last-child{margin-bottom:0}.modal-section h4{font-size:.875rem;color:var(--text);font-weight:600;margin-bottom:10px}.modal-prompt{font-family:var(--font-mono);font-size:.8125rem;line-height:1.6;background:var(--bg);border:1px solid var(--light-gray);border-radius:var(--radius);padding:12px 16px;white-space:pre-wrap;word-break:break-word;max-height:240px;overflow-y:auto}.modal-judge-agent{margin:0;font-size:.8125rem;color:var(--text-secondary)}.modal-judge-agent code{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-primary)}.modal-judge-table{width:100%;border-collapse:collapse;font-size:.8125rem}.modal-judge-table thead th{text-align:left;padding:6px 10px;font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--light-gray)}.modal-judge-table tbody td{padding:8px 10px;border-bottom:1px solid var(--light-gray);color:var(--text-secondary)}.modal-judge-weight{width:60px;text-align:right;font-family:var(--font-mono);font-weight:600;color:var(--text)!important}.modal-config-table{width:100%;border-collapse:collapse;font-size:.8125rem}.modal-config-table tbody td{padding:6px 10px;border-bottom:1px solid var(--light-gray);color:var(--text-secondary);vertical-align:top}.modal-config-table tbody tr:last-child td{border-bottom:none}.modal-config-label{width:140px;font-weight:600;color:var(--text)!important}.modal-config-table code{font-family:var(--font-mono);font-size:.75rem;background:var(--bg-alt);padding:2px 6px;border-radius:3px;color:var(--text);word-break:break-all}.modal-section-value{font-family:var(--font-mono);font-size:.875rem;font-weight:600;background:var(--bg-alt);color:var(--text);padding:2px 8px;border-radius:4px}.modal-config-line{font-size:.8125rem;color:var(--text-secondary);margin:0}.modal-config-line code{font-family:var(--font-mono);font-size:.75rem;background:var(--bg-alt);padding:2px 6px;border-radius:3px;color:var(--text);margin:0 2px}.modal-config-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.modal-config-list li{font-size:.8125rem;color:var(--text-secondary);display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.modal-config-list code{font-family:var(--font-mono);font-size:.75rem;background:var(--bg-alt);padding:2px 6px;border-radius:3px;color:var(--text);word-break:break-all}.modal-config-label-inline{font-weight:600;color:var(--text);font-size:.8125rem}.modal-config{display:flex;flex-direction:column;gap:6px}.modal-config-item{display:flex;align-items:baseline;gap:12px;font-size:.8125rem;padding:6px 10px;background:var(--bg);border-radius:var(--radius)}.modal-config-key{font-family:var(--font-mono);font-weight:600;color:var(--text);flex-shrink:0}.modal-config-val{font-family:var(--font-mono);color:var(--text-secondary);word-break:break-all}.error-banner{background:var(--danger-light);border:1px solid var(--danger);border-radius:var(--radius);padding:12px 16px;color:var(--danger);font-size:.875rem;font-weight:500;margin-bottom:16px}.loading{text-align:center;padding:80px 24px;color:var(--text-muted);font-size:1.125rem}.empty-state{text-align:center;padding:60px 24px;color:var(--text-muted)}@media(max-width:768px){.container{padding:16px 12px 48px}.report-header{flex-direction:column;gap:16px}.report-branding{gap:8px;margin-bottom:8px}.site-logo-mark,.report-badge{font-size:1.5rem}.report-meta-row{font-size:.8125rem;line-height:1.7}.summary-card{padding:16px;flex-direction:column;gap:16px;width:100%}.summary-hero .hero-score{font-size:2rem}.summary-divider{width:100%;height:1px;align-self:auto}.summary-stats{flex-wrap:wrap;gap:16px;justify-content:center}.results-table{font-size:.8125rem}.results-table thead th{padding:8px 6px}.results-table thead th.hide-mobile,.results-table tbody td.hide-mobile{display:none}.result-row td{padding:10px 6px}.result-row td:first-child{padding-left:4px;padding-right:0;width:20px}.result-row .expand-icon{width:12px;font-size:.625rem}.result-row td.col-scenario{max-width:120px;font-size:.75rem}.result-row td.col-agent{max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.6875rem}.scenario-header-row td{padding:10px 6px}.scenario-header-row td.col-scenario-header{font-size:.8125rem}.agent-row td.col-agent{padding-left:16px}.detail-panel{padding:16px 12px}.score-overview{flex-direction:column;align-items:center;gap:16px}.category-bars{width:100%}.category-bar-label{width:80px;font-size:.75rem}.dimensions-grid{grid-template-columns:1fr}.criterion-top{flex-wrap:wrap}.criterion-name{min-width:0;word-break:break-word}.cat-deduction-item{flex-direction:column;gap:4px;align-items:flex-start}.waterfall{overflow-x:auto;-webkit-overflow-scrolling:touch}.wf-label-col{width:100px}.wf-dur-col{width:48px;font-size:.6875rem}.wf-tool{font-size:.625rem;max-width:50px;overflow:hidden;text-overflow:ellipsis}.wf-id,.wf-cat{font-size:.5625rem}.wf-legend{flex-wrap:wrap;gap:8px}.sparse-line{font-size:.6875rem;word-break:break-all}.modal-backdrop{padding:12px}.modal{max-height:90vh;border-radius:var(--radius)}.modal-header{padding:16px}.modal-header h3{font-size:1rem}.modal-body{padding:16px}.modal-prompt{font-size:.75rem}.audit-header{flex-direction:column;gap:4px}.necessity-header{flex-wrap:wrap;gap:4px}}.artifacts-section{margin-top:20px}.artifacts-count{font-size:.8125rem;font-weight:500;color:var(--text-muted)}.artifacts-actions{display:flex;gap:8px;align-items:center}.artifacts-toggle,.artifacts-download-all{font-size:.75rem;font-weight:500;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:background .1s ease,border-color .1s ease}.artifacts-toggle:hover,.artifacts-download-all:hover{background:var(--bg-hover, var(--border))}.art-tree-root{list-style:none;margin:12px 0 0;padding:4px 0 0;font-size:.8125rem;border-top:1px solid var(--border)}.art-tree-root[hidden]{display:none}.art-tree-root ul{list-style:none;margin:0;padding:0}.art-tree-row,.art-tree-folder-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:4px 8px 4px 0;font-size:.8125rem;color:var(--text-primary);background:transparent;border:none;border-radius:4px;cursor:default;text-align:left;font-family:inherit}.art-tree-folder-toggle{cursor:pointer}.art-tree-row:hover,.art-tree-folder-toggle:hover{background:var(--bg-hover, rgba(0, 0, 0, .04))}.art-tree-chevron{display:inline-flex;align-items:center;justify-content:center;width:18px;font-size:1.05rem;line-height:1;color:var(--text-secondary);transition:transform .1s ease;flex-shrink:0}.art-tree-dir:not(.collapsed)>.art-tree-folder-toggle .art-tree-chevron{transform:rotate(90deg)}.art-tree-icon{display:inline-block;width:14px;text-align:center;color:var(--text-muted);font-family:var(--font-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);font-size:.75rem;flex-shrink:0}.art-tree-dir-icon{color:var(--accent, var(--text-secondary))}.art-tree-name{flex:1;font-family:var(--font-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);font-size:.75rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.art-tree-size{color:var(--text-muted);font-size:.7rem;font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;padding-left:12px}.art-tree-eye,.art-tree-download{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border-radius:4px;border:1px solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .1s ease,border-color .1s ease,color .1s ease}.art-tree-eye:hover,.art-tree-download:hover{background:var(--bg-card, transparent);border-color:var(--border);color:var(--text-primary)}.art-tree-dir.collapsed>.art-tree-children{display:none}.modal-backdrop.artifact-modal .modal.artifact-modal-content{width:min(900px,92vw);max-height:85vh;display:flex;flex-direction:column}.artifact-modal .modal-header h3{display:flex;flex-direction:column;gap:2px;align-items:flex-start;font-family:var(--font-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);font-size:.9rem;word-break:break-all}.artifact-modal-meta{font-size:.7rem!important;color:var(--text-muted);font-weight:400}.artifact-modal .modal-body{display:flex;flex-direction:column;gap:12px;min-height:0;flex:1;overflow:hidden}.artifact-modal-toolbar{display:flex;justify-content:flex-end;flex-shrink:0}.artifact-modal-download{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:500;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:background .1s ease}.artifact-modal-download:hover{background:var(--bg-hover, var(--border))}.artifact-modal-preview{flex:1;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card)}.artifact-text{margin:0;padding:12px 16px;font-family:var(--font-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);font-size:.75rem;line-height:1.5;color:var(--text-primary);white-space:pre;overflow:auto}.artifact-image{display:block;max-width:100%;max-height:70vh;height:auto;margin:0 auto;padding:12px}.artifact-not-previewable{padding:32px 16px;text-align:center;color:var(--text-muted)}.artifact-not-previewable p{margin:0 0 4px}.artifact-not-previewable-meta{font-family:var(--font-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);font-size:.75rem}@media print{.detail-row{display:table-row!important}.audits-list,.sparse-index-content{display:block!important}.result-row{cursor:default}.wf-overflow{display:block!important}.wf-show-all,.expand-icon,.audits-toggle,.sparse-index-toggle,.info-btn{display:none!important}.agent-row.scenario-collapsed{display:table-row!important}.modal-backdrop,.artifacts-toggle,.artifacts-download-all,.art-tree-eye,.art-tree-download{display:none!important}.art-tree-root[hidden]{display:block!important}.art-tree-dir.collapsed>.art-tree-children{display:block!important}}.lifecycle-notes{margin-top:20px}.notes-body{padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.875rem;line-height:1.55;color:var(--text-primary);overflow-x:auto}.markdown-body :first-child{margin-top:0}.markdown-body :last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{margin:1em 0 .4em;font-weight:600;line-height:1.3}.markdown-body h1{font-size:1.1rem}.markdown-body h2{font-size:1rem}.markdown-body h3,.markdown-body h4{font-size:.9375rem}.markdown-body p,.markdown-body ul,.markdown-body ol,.markdown-body blockquote,.markdown-body pre,.markdown-body table{margin:.5em 0}.markdown-body ul,.markdown-body ol{padding-left:1.4em}.markdown-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;background:var(--border);padding:.1em .35em;border-radius:3px}.markdown-body pre{background:var(--border);padding:10px 12px;border-radius:var(--radius-sm);overflow-x:auto}.markdown-body pre code{background:transparent;padding:0;font-size:.8125rem}.markdown-body blockquote{border-left:3px solid var(--border);padding-left:.8em;color:var(--text-secondary)}.markdown-body table{border-collapse:collapse;font-size:.8125rem}.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:4px 8px;text-align:left}.markdown-body a{color:var(--link, #4099ff);text-decoration:underline}
2
+ </style></head> <body> <div id="app"> <div class="loading">Loading report&hellip;</div> </div> <script id="axis-data" type="application/json">__AXIS_REPORT_DATA__</script> <script type="module">function re(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var I=re();function ze(e){I=e}var L={exec:()=>null};function k(e,t=""){let s=typeof e=="string"?e:e.source,n={replace:(r,i)=>{let a=typeof i=="string"?i:i.source;return a=a.replace(x.caret,"$1"),s=s.replace(r,a),n},getRegex:()=>new RegExp(s,t)};return n}var Je=((e="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+e)}catch{return!1}})(),x={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},Ve=/^(?:[ \t]*(?:\n|$))+/,Xe=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Ye=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,_=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,et=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,ie=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Pe=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Me=k(Pe).replace(/bull/g,ie).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),tt=k(Pe).replace(/bull/g,ie).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ae=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,st=/^[^\n]+/,oe=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,nt=k(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",oe).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),rt=k(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,ie).getRegex(),G="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",le=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,it=k("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",le).replace("tag",G).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),qe=k(ae).replace("hr",_).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",G).getRegex(),at=k(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",qe).getRegex(),ce={blockquote:at,code:Xe,def:nt,fences:Ye,heading:et,hr:_,html:it,lheading:Me,list:rt,newline:Ve,paragraph:qe,table:L,text:st},ge=k("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",_).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",G).getRegex(),ot={...ce,lheading:tt,table:ge,paragraph:k(ae).replace("hr",_).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",ge).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",G).getRegex()},lt={...ce,html:k(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",le).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:L,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:k(ae).replace("hr",_).replace("heading",` *#{1,6} *[^
3
+ ]`).replace("lheading",Me).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},ct=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,dt=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Be=/^( {2,}|\\)\n(?!\s*$)/,ut=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,P=/[\p{P}\p{S}]/u,Q=/[\s\p{P}\p{S}]/u,de=/[^\s\p{P}\p{S}]/u,pt=k(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Q).getRegex(),Ue=/(?!~)[\p{P}\p{S}]/u,ht=/(?!~)[\s\p{P}\p{S}]/u,ft=/(?:[^\s\p{P}\p{S}]|~)/u,gt=k(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Je?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),_e=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,mt=k(_e,"u").replace(/punct/g,P).getRegex(),kt=k(_e,"u").replace(/punct/g,Ue).getRegex(),je="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",bt=k(je,"gu").replace(/notPunctSpace/g,de).replace(/punctSpace/g,Q).replace(/punct/g,P).getRegex(),vt=k(je,"gu").replace(/notPunctSpace/g,ft).replace(/punctSpace/g,ht).replace(/punct/g,Ue).getRegex(),xt=k("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,de).replace(/punctSpace/g,Q).replace(/punct/g,P).getRegex(),wt=k(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,P).getRegex(),$t="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",yt=k($t,"gu").replace(/notPunctSpace/g,de).replace(/punctSpace/g,Q).replace(/punct/g,P).getRegex(),St=k(/\\(punct)/,"gu").replace(/punct/g,P).getRegex(),At=k(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Rt=k(le).replace("(?:-->|$)","-->").getRegex(),Et=k("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Rt).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),O=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Tt=k(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",O).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ne=k(/^!?\[(label)\]\[(ref)\]/).replace("label",O).replace("ref",oe).getRegex(),De=k(/^!?\[(ref)\](?:\[\])?/).replace("ref",oe).getRegex(),Lt=k("reflink|nolink(?!\\()","g").replace("reflink",Ne).replace("nolink",De).getRegex(),me=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,ue={_backpedal:L,anyPunctuation:St,autolink:At,blockSkip:gt,br:Be,code:dt,del:L,delLDelim:L,delRDelim:L,emStrongLDelim:mt,emStrongRDelimAst:bt,emStrongRDelimUnd:xt,escape:ct,link:Tt,nolink:De,punctuation:pt,reflink:Ne,reflinkSearch:Lt,tag:Et,text:ut,url:L},Ct={...ue,link:k(/^!?\[(label)\]\((.*?)\)/).replace("label",O).getRegex(),reflink:k(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",O).getRegex()},ee={...ue,emStrongRDelimAst:vt,emStrongLDelim:kt,delLDelim:wt,delRDelim:yt,url:k(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",me).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:k(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",me).getRegex()},It={...ee,br:k(Be).replace("{2,}","*").getRegex(),text:k(ee.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},j={normal:ce,gfm:ot,pedantic:lt},B={normal:ue,gfm:ee,breaks:It,pedantic:Ct},zt={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ke=e=>zt[e];function R(e,t){if(t){if(x.escapeTest.test(e))return e.replace(x.escapeReplace,ke)}else if(x.escapeTestNoEncode.test(e))return e.replace(x.escapeReplaceNoEncode,ke);return e}function be(e){try{e=encodeURI(e).replace(x.percentDecode,"%")}catch{return null}return e}function ve(e,t){let s=e.replace(x.findPipe,(i,a,o)=>{let c=!1,l=a;for(;--l>=0&&o[l]==="\\";)c=!c;return c?"|":" |"}),n=s.split(x.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;r<n.length;r++)n[r]=n[r].trim().replace(x.slashPipe,"|");return n}function T(e,t,s){let n=e.length;if(n===0)return"";let r=0;for(;r<n&&e.charAt(n-r-1)===t;)r++;return e.slice(0,n-r)}function xe(e){let t=e.split(`
4
4
  `),s=t.length-1;for(;s>=0&&x.blankLine.test(t[s]);)s--;return t.length-s<=2?e:t.slice(0,s+1).join(`
5
5
  `)}function Pt(e,t){if(e.indexOf(t[1])===-1)return-1;let s=0;for(let n=0;n<e.length;n++)if(e[n]==="\\")n++;else if(e[n]===t[0])s++;else if(e[n]===t[1]&&(s--,s<0))return n;return s>0?-2:-1}function Mt(e,t=0){let s=t,n="";for(let r of e)if(r===" "){let i=4-s%4;n+=" ".repeat(i),s+=i}else n+=r,s++;return n}function we(e,t,s,n,r){let i=t.href,a=t.title||null,o=e[1].replace(r.other.outputLinkReplace,"$1");n.state.inLink=!0;let c={type:e[0].charAt(0)==="!"?"image":"link",raw:s,href:i,title:a,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,c}function qt(e,t,s){let n=e.match(s.other.indentCodeCompensation);if(n===null)return t;let r=n[1];return t.split(`
6
6
  `).map(i=>{let a=i.match(s.other.beginningSpace);if(a===null)return i;let[o]=a;return o.length>=r.length?i.slice(r.length):i}).join(`
@@ -69,10 +69,10 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
69
69
  <span class="dimension-value">${t}</span>
70
70
  </div>`}function Wt(e){const t=Ze(e.results).flatMap(n=>n.entries),s={...e,results:t};return`
71
71
  <div class="container">
72
- ${Vt(s)}
73
72
  ${Jt(s)}
73
+ ${Vt(s)}
74
74
  </div>
75
- ${$s(t)}`}function Vt(e){const t=Ut(e.summary),s=e.results.reduce((n,r)=>n+(r.totalCostUsd??0),0);return`
75
+ ${$s(t)}`}function Jt(e){const t=Ut(e.summary),s=e.results.reduce((n,r)=>n+(r.totalCostUsd??0),0);return`
76
76
  <header class="report-header">
77
77
  <div class="header-left">
78
78
  <div class="report-branding">
@@ -117,7 +117,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
117
117
  </div>`:""}
118
118
  </div>
119
119
  </div>
120
- </header>`}function Jt(e){if(e.results.length===0)return'<div class="empty-state">No results in this report.</div>';const t=e.results.some(i=>i.score!==void 0),s=Ze(e.results);let n=0;const r=s.map(i=>{const a=n;return n+=i.entries.length,Xt(i,a,t)}).join("");return`
120
+ </header>`}function Vt(e){if(e.results.length===0)return'<div class="empty-state">No results in this report.</div>';const t=e.results.some(i=>i.score!==void 0),s=Ze(e.results);let n=0;const r=s.map(i=>{const a=n;return n+=i.entries.length,Xt(i,a,t)}).join("");return`
121
121
  <section class="results-section">
122
122
  <table class="results-table">
123
123
  <thead>
@@ -158,7 +158,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
158
158
  <td class="col-right hide-mobile"></td>
159
159
  <td class="col-right hide-mobile"></td>
160
160
  <td class="col-right hide-mobile"></td>
161
- </tr>`}function es(e,t,s,n){const r=e.score,i=e.exitCode!==0||!!e.error,a=e.error?`<button class="error-btn" data-error-index="${t}" title="${u(zs(e.error))}">!</button>`:"",o=e.prompt||e.agentConfig?`<button class="info-btn" data-modal-index="${t}" title="View resolved configuration" type="button">ℹ</button>`:"";if(s)return`
161
+ </tr>`}function es(e,t,s,n){const r=e.score,i=e.exitCode!==0||!!e.error,a=e.error?`<button class="error-btn" data-error-index="${t}" title="${u(Ps(e.error))}">!</button>`:"",o=e.prompt||e.agentConfig?`<button class="info-btn" data-modal-index="${t}" title="View resolved configuration" type="button">ℹ</button>`:"";if(s)return`
162
162
  <tr class="result-row agent-row" data-index="${t}" data-scenario="${u(n)}">
163
163
  <td class="col-expand-indent"><span class="expand-icon">▶</span></td>
164
164
  <td class="col-agent">${u(ne(e))}${o}${a}</td>
@@ -185,7 +185,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
185
185
  ${e.error?`<div class="error-banner">${u(e.error)}</div>`:""}
186
186
  ${e.score?rs(e.score,e.durationMs):ns(e)}
187
187
  ${ss(e)}
188
- ${e.artifacts&&e.artifacts.length>0?Us(e.artifacts,t):""}
188
+ ${e.artifacts&&e.artifacts.length>0?_s(e.artifacts,t):""}
189
189
  </div>
190
190
  </td>
191
191
  </tr>`}function ss(e){const t=[];return e.setupOutput&&t.push(Ae("Setup notes",e.setupOutput)),e.teardownOutput&&t.push(Ae("Teardown notes",e.teardownOutput)),t.join("")}function Ae(e,t){return`
@@ -215,9 +215,9 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
215
215
  <div class="detail-sections">
216
216
  ${e.sparseIndex?fs(e.sparseIndex,t):""}
217
217
  ${is(e.goalAchievement)}
218
- ${V("Environment",e.environment,e.sparseIndex)}
219
- ${V("Service",e.service,e.sparseIndex)}
220
- ${V("Agent",e.agent,e.sparseIndex)}
218
+ ${J("Environment",e.environment,e.sparseIndex)}
219
+ ${J("Service",e.service,e.sparseIndex)}
220
+ ${J("Agent",e.agent,e.sparseIndex)}
221
221
  ${e.sparseIndex?ws(e.sparseIndex):""}
222
222
  </div>`}function N(e,t){return`
223
223
  <div class="category-bar-row">
@@ -241,7 +241,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
241
241
  </div>
242
242
  <div class="criterion-bar">${he(e.score,10)}</div>
243
243
  ${t?"":`<div class="criterion-rationale">${u(e.rationale)}</div>`}
244
- </div>`}function V(e,t,s){const n=`<h3>${u(e)}${os(e)}</h3>`;if(t.interactionCount===0)return`
244
+ </div>`}function J(e,t,s){const n=`<h3>${u(e)}${os(e)}</h3>`;if(t.interactionCount===0)return`
245
245
  <div class="detail-section">
246
246
  <div class="section-header">
247
247
  ${n}
@@ -287,7 +287,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
287
287
  <span class="speed-tooltip-actual">${u(r)}</span>
288
288
  </span>
289
289
  <span class="speed-tooltip-tiers">${i}</span>
290
- </span>`}function Ke(e){return(e*100).toFixed(0)}const J=30;function fs(e,t){const{interactions:s}=e;if(!s.some(d=>d.startMs!==null)||s.length===0)return"";const r=t>0?t:e.stats.wallClockMs||vs(s);if(r<=0)return"";const i=xs(r),a=s.length>J,o=a?s.slice(0,J):s,c=a?s.slice(J):[],l=e.stats.startupMs&&e.stats.startupMs>0?Ee("agent startup",0,e.stats.startupMs,r):"",p=e.stats.shutdownMs&&e.stats.shutdownMs>0?Ee("agent shutdown",r-e.stats.shutdownMs,e.stats.shutdownMs,r):"";return`
290
+ </span>`}function Ke(e){return(e*100).toFixed(0)}const V=30;function fs(e,t){const{interactions:s}=e;if(!s.some(d=>d.startMs!==null)||s.length===0)return"";const r=t>0?t:e.stats.wallClockMs||vs(s);if(r<=0)return"";const i=xs(r),a=s.length>V,o=a?s.slice(0,V):s,c=a?s.slice(V):[],l=e.stats.startupMs&&e.stats.startupMs>0?Ee("agent startup",0,e.stats.startupMs,r):"",p=e.stats.shutdownMs&&e.stats.shutdownMs>0?Ee("agent shutdown",r-e.stats.shutdownMs,e.stats.shutdownMs,r):"";return`
291
291
  <div class="detail-section">
292
292
  <div class="section-header">
293
293
  <h3>Timeline</h3>
@@ -363,7 +363,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
363
363
  ${t?'<button class="sparse-expand-all">Expand all</button>':""}
364
364
  <div class="sparse-index-content">${s}</div>
365
365
  </div>
366
- </div>`}function $s(e){const t=e.map((n,r)=>!n.prompt&&!n.agentConfig&&!n.resolvedConfig?"":ys(n,r)).join(""),s=e.map((n,r)=>n.error?Cs(n,r):"").join("");return t+s}function ys(e,t){const s=K(e.scenarioKey),n=Fe(e.scenarioKey),r=He(e.scenarioName),i=e.resolvedConfig;return`
366
+ </div>`}function $s(e){const t=e.map((n,r)=>!n.prompt&&!n.agentConfig&&!n.resolvedConfig?"":ys(n,r)).join(""),s=e.map((n,r)=>n.error?Is(n,r):"").join("");return t+s}function ys(e,t){const s=K(e.scenarioKey),n=Fe(e.scenarioKey),r=He(e.scenarioName),i=e.resolvedConfig;return`
367
367
  <div class="modal-backdrop" data-modal-index="${t}">
368
368
  <div class="modal">
369
369
  <div class="modal-header">
@@ -380,7 +380,8 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
380
380
  ${i?.skills?.length?Rs(i.skills):""}
381
381
  ${i?.mcpServers&&Object.keys(i.mcpServers).length?Es(i.mcpServers):""}
382
382
  ${e.prompt?Ts(e.prompt):""}
383
- ${e.judge??e.rubric?Ls(e.judge??e.rubric):""}
383
+ ${e.judge??e.rubric?Cs(e.judge??e.rubric):""}
384
+ ${e.score?.judging?Ls(e.score.judging):""}
384
385
  ${i?.setup?.length?Te("Setup",i.setup):""}
385
386
  ${i?.teardown?.length?Te("Teardown",i.teardown):""}
386
387
  </div>
@@ -417,7 +418,11 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
417
418
  <div class="modal-section">
418
419
  <h4>Prompt</h4>
419
420
  <pre class="modal-prompt">${u(e)}</pre>
420
- </div>`}function Ls(e){return typeof e=="string"?`
421
+ </div>`}function Ls(e){if(!e)return"";const t=e.model?`${e.agent}|${e.model}`:e.agent;return`
422
+ <div class="modal-section">
423
+ <h4>Agent used for judging:</h4>
424
+ <p class="modal-judge-agent"><code>${u(t)}</code></p>
425
+ </div>`}function Cs(e){return typeof e=="string"?`
421
426
  <div class="modal-section">
422
427
  <h4>Judge</h4>
423
428
  <pre class="modal-prompt">${u(e)}</pre>
@@ -432,7 +437,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
432
437
  <td class="modal-judge-weight">${Math.round((s.weight??0)*100)}%</td>
433
438
  </tr>`).join("")}</tbody>
434
439
  </table>
435
- </div>`}function Cs(e,t){return`
440
+ </div>`}function Is(e,t){return`
436
441
  <div class="modal-backdrop" data-error-index="${t}">
437
442
  <div class="modal">
438
443
  <div class="modal-header">
@@ -449,12 +454,12 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
449
454
  </div>
450
455
  </div>
451
456
  </div>
452
- </div>`}const Is=[[/quota|rate.?limit|429|too many requests/i,"Rate limit / quota exceeded"],[/auth|unauthorized|401|403|api.?key|token/i,"Authentication error"],[/timeout|timed?\s*out|ETIMEDOUT/i,"Timeout"],[/ECONNREFUSED|ENOTFOUND|network|socket/i,"Network error"],[/not found|command not found|ENOENT/i,"CLI not found"],[/spawn|EPERM|EACCES/i,"Permission error"]];function zs(e){for(const[t,s]of Is)if(t.test(e))return s;return e.length>80?e.slice(0,77)+"...":e}function Ps(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function Ms(e){const t={type:"dir",name:"",children:[]};for(let n=0;n<e.length;n++){const r=e[n].path.split("/").filter(Boolean);let i=t;for(let a=0;a<r.length-1;a++){const o=r[a];let c=i.children.find(l=>l.type==="dir"&&l.name===o);c||(c={type:"dir",name:o,children:[]},i.children.push(c)),i=c}i.children.push({type:"file",name:r[r.length-1],size:e[n].size,mimeType:e[n].mimeType,artifactIndex:n})}const s=n=>{n.children.sort((r,i)=>r.type!==i.type?r.type==="dir"?-1:1:r.name.localeCompare(i.name));for(const r of n.children)r.type==="dir"&&s(r)};return s(t),t}const qs='<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>',Ge='<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 4v12m0 0l-5-5m5 5l5-5M5 20h14"/></svg>';function Qe(e,t){const s=`padding-left:${8+t*16}px;`;if(e.type==="file"){const r=u(e.name);return`
457
+ </div>`}const zs=[[/quota|rate.?limit|429|too many requests/i,"Rate limit / quota exceeded"],[/auth|unauthorized|401|403|api.?key|token/i,"Authentication error"],[/timeout|timed?\s*out|ETIMEDOUT/i,"Timeout"],[/ECONNREFUSED|ENOTFOUND|network|socket/i,"Network error"],[/not found|command not found|ENOENT/i,"CLI not found"],[/spawn|EPERM|EACCES/i,"Permission error"]];function Ps(e){for(const[t,s]of zs)if(t.test(e))return s;return e.length>80?e.slice(0,77)+"...":e}function Ms(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function qs(e){const t={type:"dir",name:"",children:[]};for(let n=0;n<e.length;n++){const r=e[n].path.split("/").filter(Boolean);let i=t;for(let a=0;a<r.length-1;a++){const o=r[a];let c=i.children.find(l=>l.type==="dir"&&l.name===o);c||(c={type:"dir",name:o,children:[]},i.children.push(c)),i=c}i.children.push({type:"file",name:r[r.length-1],size:e[n].size,mimeType:e[n].mimeType,artifactIndex:n})}const s=n=>{n.children.sort((r,i)=>r.type!==i.type?r.type==="dir"?-1:1:r.name.localeCompare(i.name));for(const r of n.children)r.type==="dir"&&s(r)};return s(t),t}const Bs='<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>',Ge='<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 4v12m0 0l-5-5m5 5l5-5M5 20h14"/></svg>';function Qe(e,t){const s=`padding-left:${8+t*16}px;`;if(e.type==="file"){const r=u(e.name);return`
453
458
  <li class="art-tree-file">
454
459
  <div class="art-tree-row" style="${s}">
455
460
  <span class="art-tree-name" title="${r}">${r}</span>
456
- <span class="art-tree-size">${Ps(e.size)}</span>
457
- <button class="art-tree-eye" data-artifact-index="${e.artifactIndex}" type="button" aria-label="Preview ${r}" title="Preview">${qs}</button>
461
+ <span class="art-tree-size">${Ms(e.size)}</span>
462
+ <button class="art-tree-eye" data-artifact-index="${e.artifactIndex}" type="button" aria-label="Preview ${r}" title="Preview">${Bs}</button>
458
463
  <button class="art-tree-download" data-artifact-index="${e.artifactIndex}" type="button" aria-label="Download ${r}" title="Download">${Ge}</button>
459
464
  </div>
460
465
  </li>`}const n=e.children.map(r=>Qe(r,t+1)).join("");return`
@@ -465,7 +470,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
465
470
  <span class="art-tree-name">${u(e.name)}</span>
466
471
  </button>
467
472
  <ul class="art-tree-children">${n}</ul>
468
- </li>`}function Bs(e){return`
473
+ </li>`}function Us(e){return`
469
474
  <div class="modal-backdrop artifact-modal" data-artifact-modal-key="${e}">
470
475
  <div class="modal artifact-modal-content">
471
476
  <div class="modal-header">
@@ -482,7 +487,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
482
487
  <div class="artifact-modal-preview" data-artifacts-key="${e}"></div>
483
488
  </div>
484
489
  </div>
485
- </div>`}function Us(e,t){const n=Ms(e).children.map(i=>Qe(i,0)).join(""),r=JSON.stringify(e).replace(/</g,"\\u003c").replace(/>/g,"\\u003e");return`
490
+ </div>`}function _s(e,t){const n=qs(e).children.map(i=>Qe(i,0)).join(""),r=JSON.stringify(e).replace(/</g,"\\u003c").replace(/>/g,"\\u003e");return`
486
491
  <div class="detail-section artifacts-section" data-artifacts-key="${t}">
487
492
  <div class="section-header">
488
493
  <h3>Artifacts <span class="artifacts-count">(${e.length})</span></h3>
@@ -493,9 +498,9 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
493
498
  </div>
494
499
  <ul class="art-tree-root" data-artifacts-key="${t}" hidden>${n}</ul>
495
500
  <script type="application/json" class="artifacts-data" data-artifacts-key="${t}">${r}<\/script>
496
- ${Bs(t)}
497
- </div>`}function Le(){const e=document.querySelector(".results-table thead tr");if(!e)return;const t=Array.from(e.cells).filter(s=>s.offsetParent!==null||s.getClientRects().length>0).length;t!==0&&document.querySelectorAll(".detail-row > td[colspan]").forEach(s=>{s.colSpan=t})}function _s(){Le(),window.addEventListener("resize",Le),document.querySelectorAll(".scenario-header-row").forEach(e=>{e.addEventListener("click",t=>{if(t.target.closest(".info-btn"))return;const s=e.dataset.scenario;if(!s)return;const n=e.classList.contains("expanded"),r=document.querySelectorAll(`.agent-row[data-scenario="${s}"]`),i=document.querySelectorAll(`.detail-row[data-scenario="${s}"]`);n?(e.classList.remove("expanded"),r.forEach(a=>a.classList.add("scenario-collapsed")),i.forEach(a=>{a.classList.remove("visible"),a.classList.add("scenario-collapsed");const o=a.id.replace("detail-","");document.querySelector(`.result-row[data-index="${o}"]`)?.classList.remove("expanded")})):(e.classList.add("expanded"),r.forEach(a=>a.classList.remove("scenario-collapsed")),i.forEach(a=>a.classList.remove("scenario-collapsed")))})}),document.querySelectorAll(".result-row").forEach(e=>{e.addEventListener("click",()=>{if(e.classList.contains("scenario-collapsed"))return;const t=e.dataset.index;if(t===void 0)return;const s=document.getElementById(`detail-${t}`);if(!s)return;const n=e.classList.contains("expanded");document.querySelectorAll(".result-row").forEach(r=>{r.classList.remove("expanded")}),document.querySelectorAll(".detail-row").forEach(r=>{r.classList.remove("visible")}),n||(e.classList.add("expanded"),s.classList.add("visible"))})}),document.querySelectorAll(".audits-toggle").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.nextElementSibling?.classList.contains("audits-list")?e.nextElementSibling:e.parentElement?.querySelector(".audits-list")??null;if(!s)return;const n=s.classList.contains("visible");s.classList.toggle("visible"),e.textContent=n?e.textContent.replace("Hide","Show"):e.textContent.replace("Show","Hide")})}),document.querySelectorAll(".wf-show-all").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".waterfall");if(!s)return;const n=s.querySelector(".wf-overflow");n&&(n.style.display="block",e.style.display="none")})}),document.querySelectorAll(".info-btn").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.dataset.modalIndex;if(s===void 0)return;const n=document.querySelector(`.modal-backdrop[data-modal-index="${s}"]`);n&&n.classList.add("visible")})}),document.querySelectorAll(".error-btn").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.dataset.errorIndex;if(s===void 0)return;const n=document.querySelector(`.modal-backdrop[data-error-index="${s}"]`);n&&n.classList.add("visible")})}),document.querySelectorAll(".modal-backdrop").forEach(e=>{e.addEventListener("click",s=>{s.target===e&&e.classList.remove("visible")});const t=e.querySelector(".modal-close");t&&t.addEventListener("click",()=>e.classList.remove("visible"))}),document.addEventListener("keydown",e=>{e.key==="Escape"&&document.querySelectorAll(".modal-backdrop.visible").forEach(t=>t.classList.remove("visible"))}),document.querySelectorAll(".interaction-link[data-interaction-id]").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation(),t.preventDefault();const s=e.dataset.interactionId;if(!s)return;const n=e.closest(".detail-panel");if(!n)return;const r=n.querySelector(`.sparse-line[data-interaction-id="${CSS.escape(s)}"]`);if(!r)return;const i=n.querySelector(".sparse-index-content"),a=n.querySelector(".sparse-index-toggle");i&&!i.classList.contains("visible")&&(i.classList.add("visible"),a&&(a.textContent="Hide transcript")),r.scrollIntoView({behavior:"smooth",block:"center"}),r.classList.remove("interaction-flash"),r.offsetWidth,r.classList.add("interaction-flash")})}),document.querySelectorAll(".sparse-index-toggle").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".sparse-index-section");if(!s)return;const n=s.querySelector(".sparse-index-content");if(!n)return;const r=n.classList.contains("visible");n.classList.toggle("visible"),e.textContent=r?"Show transcript":"Hide transcript"})}),document.querySelectorAll(".sparse-line-expandable").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation(),!t.target.closest(".sparse-line-content")&&((window.getSelection()?.toString().length??0)>0||e.classList.toggle("expanded"))})}),document.querySelectorAll(".sparse-expand-all").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".sparse-index-section");if(!s)return;const n=s.querySelectorAll(".sparse-line-expandable"),r=Array.from(n).every(i=>i.classList.contains("expanded"));n.forEach(i=>{r?i.classList.remove("expanded"):i.classList.add("expanded")}),e.textContent=r?"Expand all":"Collapse all"})}),Hs()}function D(e){const t=document.querySelector(`script.artifacts-data[data-artifacts-key="${CSS.escape(e)}"]`);if(!t?.textContent)return null;try{return JSON.parse(t.textContent)}catch{return null}}function fe(e){const t=atob(e),s=new Uint8Array(t.length);for(let n=0;n<t.length;n++)s[n]=t.charCodeAt(n);return s}function We(e,t){const s=URL.createObjectURL(e),n=document.createElement("a");n.href=s,n.download=t,document.body.appendChild(n),n.click(),n.remove(),setTimeout(()=>URL.revokeObjectURL(s),0)}function js(e){const t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function X(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function Ns(e){return e.startsWith("text/")?!0:e==="application/json"||e==="application/x-ndjson"||e==="application/yaml"||e==="application/xml"||e==="application/sql"||e==="application/toml"}function Ds(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function Ce(e){const t=fe(e.content),s=new Blob([new Uint8Array(t)],{type:e.mimeType});We(s,js(e.path))}function Os(e,t){const s=fe(e.content);if(e.mimeType.startsWith("image/")){const n=new Blob([new Uint8Array(s)],{type:e.mimeType}),r=URL.createObjectURL(n);t.innerHTML=`<img class="artifact-image" alt="${X(e.path)}" src="${r}" />`;return}if(Ns(e.mimeType)){let n;try{n=new TextDecoder("utf-8",{fatal:!1}).decode(s)}catch{n=""}t.innerHTML=`<pre class="artifact-text">${X(n)}</pre>`;return}t.innerHTML=`
501
+ ${Us(t)}
502
+ </div>`}function Le(){const e=document.querySelector(".results-table thead tr");if(!e)return;const t=Array.from(e.cells).filter(s=>s.offsetParent!==null||s.getClientRects().length>0).length;t!==0&&document.querySelectorAll(".detail-row > td[colspan]").forEach(s=>{s.colSpan=t})}function js(){Le(),window.addEventListener("resize",Le),document.querySelectorAll(".scenario-header-row").forEach(e=>{e.addEventListener("click",t=>{if(t.target.closest(".info-btn"))return;const s=e.dataset.scenario;if(!s)return;const n=e.classList.contains("expanded"),r=document.querySelectorAll(`.agent-row[data-scenario="${s}"]`),i=document.querySelectorAll(`.detail-row[data-scenario="${s}"]`);n?(e.classList.remove("expanded"),r.forEach(a=>a.classList.add("scenario-collapsed")),i.forEach(a=>{a.classList.remove("visible"),a.classList.add("scenario-collapsed");const o=a.id.replace("detail-","");document.querySelector(`.result-row[data-index="${o}"]`)?.classList.remove("expanded")})):(e.classList.add("expanded"),r.forEach(a=>a.classList.remove("scenario-collapsed")),i.forEach(a=>a.classList.remove("scenario-collapsed")))})}),document.querySelectorAll(".result-row").forEach(e=>{e.addEventListener("click",()=>{if(e.classList.contains("scenario-collapsed"))return;const t=e.dataset.index;if(t===void 0)return;const s=document.getElementById(`detail-${t}`);if(!s)return;const n=e.classList.contains("expanded");document.querySelectorAll(".result-row").forEach(r=>{r.classList.remove("expanded")}),document.querySelectorAll(".detail-row").forEach(r=>{r.classList.remove("visible")}),n||(e.classList.add("expanded"),s.classList.add("visible"))})}),document.querySelectorAll(".audits-toggle").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.nextElementSibling?.classList.contains("audits-list")?e.nextElementSibling:e.parentElement?.querySelector(".audits-list")??null;if(!s)return;const n=s.classList.contains("visible");s.classList.toggle("visible"),e.textContent=n?e.textContent.replace("Hide","Show"):e.textContent.replace("Show","Hide")})}),document.querySelectorAll(".wf-show-all").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".waterfall");if(!s)return;const n=s.querySelector(".wf-overflow");n&&(n.style.display="block",e.style.display="none")})}),document.querySelectorAll(".info-btn").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.dataset.modalIndex;if(s===void 0)return;const n=document.querySelector(`.modal-backdrop[data-modal-index="${s}"]`);n&&n.classList.add("visible")})}),document.querySelectorAll(".error-btn").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.dataset.errorIndex;if(s===void 0)return;const n=document.querySelector(`.modal-backdrop[data-error-index="${s}"]`);n&&n.classList.add("visible")})}),document.querySelectorAll(".modal-backdrop").forEach(e=>{e.addEventListener("click",s=>{s.target===e&&e.classList.remove("visible")});const t=e.querySelector(".modal-close");t&&t.addEventListener("click",()=>e.classList.remove("visible"))}),document.addEventListener("keydown",e=>{e.key==="Escape"&&document.querySelectorAll(".modal-backdrop.visible").forEach(t=>t.classList.remove("visible"))}),document.querySelectorAll(".interaction-link[data-interaction-id]").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation(),t.preventDefault();const s=e.dataset.interactionId;if(!s)return;const n=e.closest(".detail-panel");if(!n)return;const r=n.querySelector(`.sparse-line[data-interaction-id="${CSS.escape(s)}"]`);if(!r)return;const i=n.querySelector(".sparse-index-content"),a=n.querySelector(".sparse-index-toggle");i&&!i.classList.contains("visible")&&(i.classList.add("visible"),a&&(a.textContent="Hide transcript")),r.scrollIntoView({behavior:"smooth",block:"center"}),r.classList.remove("interaction-flash"),r.offsetWidth,r.classList.add("interaction-flash")})}),document.querySelectorAll(".sparse-index-toggle").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".sparse-index-section");if(!s)return;const n=s.querySelector(".sparse-index-content");if(!n)return;const r=n.classList.contains("visible");n.classList.toggle("visible"),e.textContent=r?"Show transcript":"Hide transcript"})}),document.querySelectorAll(".sparse-line-expandable").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation(),!t.target.closest(".sparse-line-content")&&((window.getSelection()?.toString().length??0)>0||e.classList.toggle("expanded"))})}),document.querySelectorAll(".sparse-expand-all").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".sparse-index-section");if(!s)return;const n=s.querySelectorAll(".sparse-line-expandable"),r=Array.from(n).every(i=>i.classList.contains("expanded"));n.forEach(i=>{r?i.classList.remove("expanded"):i.classList.add("expanded")}),e.textContent=r?"Expand all":"Collapse all"})}),Zs()}function D(e){const t=document.querySelector(`script.artifacts-data[data-artifacts-key="${CSS.escape(e)}"]`);if(!t?.textContent)return null;try{return JSON.parse(t.textContent)}catch{return null}}function fe(e){const t=atob(e),s=new Uint8Array(t.length);for(let n=0;n<t.length;n++)s[n]=t.charCodeAt(n);return s}function We(e,t){const s=URL.createObjectURL(e),n=document.createElement("a");n.href=s,n.download=t,document.body.appendChild(n),n.click(),n.remove(),setTimeout(()=>URL.revokeObjectURL(s),0)}function Ns(e){const t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function X(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function Ds(e){return e.startsWith("text/")?!0:e==="application/json"||e==="application/x-ndjson"||e==="application/yaml"||e==="application/xml"||e==="application/sql"||e==="application/toml"}function Os(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function Ce(e){const t=fe(e.content),s=new Blob([new Uint8Array(t)],{type:e.mimeType});We(s,Ns(e.path))}function Fs(e,t){const s=fe(e.content);if(e.mimeType.startsWith("image/")){const n=new Blob([new Uint8Array(s)],{type:e.mimeType}),r=URL.createObjectURL(n);t.innerHTML=`<img class="artifact-image" alt="${X(e.path)}" src="${r}" />`;return}if(Ds(e.mimeType)){let n;try{n=new TextDecoder("utf-8",{fatal:!1}).decode(s)}catch{n=""}t.innerHTML=`<pre class="artifact-text">${X(n)}</pre>`;return}t.innerHTML=`
498
503
  <div class="artifact-not-previewable">
499
504
  <p>This file type can’t be previewed inline.</p>
500
505
  <p class="artifact-not-previewable-meta">${X(e.mimeType)}</p>
501
- </div>`}function Fs(e,t,s){const n=D(t);if(!n||!n[s])return;const r=n[s],i=e.querySelector(`.artifact-modal[data-artifact-modal-key="${CSS.escape(t)}"]`);if(!i)return;const a=i.querySelector(".artifact-modal-title"),o=i.querySelector(".artifact-modal-meta"),c=i.querySelector(".artifact-modal-preview"),l=i.querySelector(".artifact-modal-download");!a||!o||!c||(a.textContent=r.path,o.textContent=`${r.mimeType} · ${Ds(r.size)}`,Os(r,c),l&&(l.dataset.artifactIndex=String(s)),i.classList.add("visible"))}function Hs(){document.querySelectorAll(".artifacts-toggle").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.dataset.artifactsKey;if(!s)return;const n=document.querySelector(`.art-tree-root[data-artifacts-key="${CSS.escape(s)}"]`);if(!n)return;const r=n.hidden;n.hidden=!r,e.textContent=r?"Hide artifacts":"Show artifacts",e.setAttribute("aria-expanded",r?"true":"false")})}),document.querySelectorAll(".art-tree-folder-toggle").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".art-tree-dir");if(!s)return;const n=s.classList.toggle("collapsed");e.setAttribute("aria-expanded",n?"false":"true")})}),document.querySelectorAll(".art-tree-eye").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".artifacts-section");if(!s)return;const n=s.dataset.artifactsKey;if(!n)return;const r=e.dataset.artifactIndex;r!==void 0&&Fs(s,n,Number(r))})}),document.querySelectorAll(".art-tree-download").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".artifacts-section");if(!s)return;const n=s.dataset.artifactsKey;if(!n)return;const r=e.dataset.artifactIndex;if(r===void 0)return;const i=D(n);if(!i)return;const a=i[Number(r)];a&&Ce(a)})}),document.querySelectorAll(".artifact-modal-download").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.dataset.artifactsKey,n=e.dataset.artifactIndex;if(!s||n===void 0)return;const r=D(s);if(!r)return;const i=r[Number(n)];i&&Ce(i)})}),document.querySelectorAll(".artifacts-download-all").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.dataset.artifactsKey;if(!s)return;const n=D(s);if(!n||n.length===0)return;const r=n.map(o=>({path:o.path,bytes:fe(o.content)})),i=Zs(r),a=new Blob([new Uint8Array(i)],{type:"application/zip"});We(a,`artifacts-${s}.zip`)})})}function Zs(e){const t=new TextEncoder,s=[],n=[];let r=0;const i=Qs(new Date);for(const m of e){const f=t.encode(m.path),w=Gs(m.bytes),A=m.bytes.length,E=new Uint8Array(30+f.length),g=new DataView(E.buffer);g.setUint32(0,67324752,!0),g.setUint16(4,20,!0),g.setUint16(6,0,!0),g.setUint16(8,0,!0),g.setUint16(10,i.time,!0),g.setUint16(12,i.date,!0),g.setUint32(14,w,!0),g.setUint32(18,A,!0),g.setUint32(22,A,!0),g.setUint16(26,f.length,!0),g.setUint16(28,0,!0),E.set(f,30),s.push(E,m.bytes);const M=new Uint8Array(46+f.length),v=new DataView(M.buffer);v.setUint32(0,33639248,!0),v.setUint16(4,20,!0),v.setUint16(6,20,!0),v.setUint16(8,0,!0),v.setUint16(10,0,!0),v.setUint16(12,i.time,!0),v.setUint16(14,i.date,!0),v.setUint32(16,w,!0),v.setUint32(20,A,!0),v.setUint32(24,A,!0),v.setUint16(28,f.length,!0),v.setUint16(30,0,!0),v.setUint16(32,0,!0),v.setUint16(34,0,!0),v.setUint16(36,0,!0),v.setUint32(38,0,!0),v.setUint32(42,r,!0),M.set(f,46),n.push(M),r+=E.length+A}const a=r;let o=0;for(const m of n)o+=m.length;const c=new Uint8Array(22),l=new DataView(c.buffer);l.setUint32(0,101010256,!0),l.setUint16(4,0,!0),l.setUint16(6,0,!0),l.setUint16(8,e.length,!0),l.setUint16(10,e.length,!0),l.setUint32(12,o,!0),l.setUint32(16,a,!0),l.setUint16(20,0,!0);const p=a+o+c.length,d=new Uint8Array(p);let h=0;for(const m of s)d.set(m,h),h+=m.length;for(const m of n)d.set(m,h),h+=m.length;return d.set(c,h),d}const Ks=(()=>{const e=new Uint32Array(256);for(let t=0;t<256;t++){let s=t;for(let n=0;n<8;n++)s=s&1?3988292384^s>>>1:s>>>1;e[t]=s>>>0}return e})();function Gs(e){let t=4294967295;for(let s=0;s<e.length;s++)t=Ks[(t^e[s])&255]^t>>>8;return(t^4294967295)>>>0}function Qs(e){const t=(e.getHours()&31)<<11|(e.getMinutes()&63)<<5|e.getSeconds()/2&31,s=(e.getFullYear()-1980&127)<<9|(e.getMonth()+1&15)<<5|e.getDate()&31;return{time:t,date:s}}function Ie(e){const t=document.getElementById("app");t&&(t.innerHTML=Wt(e),document.title=`AXIS Report — ${u(e.reportId)}`,_s())}const Ws=document.getElementById("axis-data"),Y=Ws?.textContent?.trim();if(Y&&Y!=="__AXIS_REPORT_DATA__")try{Ie(JSON.parse(Y))}catch{const t=document.getElementById("app");t&&(t.innerHTML='<div class="error-banner">Failed to parse report data.</div>')}else fetch("/mock-data.json").then(e=>e.json()).then(e=>Ie(e)).catch(e=>{const t=document.getElementById("app");t&&(t.innerHTML=`<div class="error-banner">Failed to load mock data: ${e.message}</div>`)});</script> </body> </html>
506
+ </div>`}function Hs(e,t,s){const n=D(t);if(!n||!n[s])return;const r=n[s],i=e.querySelector(`.artifact-modal[data-artifact-modal-key="${CSS.escape(t)}"]`);if(!i)return;const a=i.querySelector(".artifact-modal-title"),o=i.querySelector(".artifact-modal-meta"),c=i.querySelector(".artifact-modal-preview"),l=i.querySelector(".artifact-modal-download");!a||!o||!c||(a.textContent=r.path,o.textContent=`${r.mimeType} · ${Os(r.size)}`,Fs(r,c),l&&(l.dataset.artifactIndex=String(s)),i.classList.add("visible"))}function Zs(){document.querySelectorAll(".artifacts-toggle").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.dataset.artifactsKey;if(!s)return;const n=document.querySelector(`.art-tree-root[data-artifacts-key="${CSS.escape(s)}"]`);if(!n)return;const r=n.hidden;n.hidden=!r,e.textContent=r?"Hide artifacts":"Show artifacts",e.setAttribute("aria-expanded",r?"true":"false")})}),document.querySelectorAll(".art-tree-folder-toggle").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".art-tree-dir");if(!s)return;const n=s.classList.toggle("collapsed");e.setAttribute("aria-expanded",n?"false":"true")})}),document.querySelectorAll(".art-tree-eye").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".artifacts-section");if(!s)return;const n=s.dataset.artifactsKey;if(!n)return;const r=e.dataset.artifactIndex;r!==void 0&&Hs(s,n,Number(r))})}),document.querySelectorAll(".art-tree-download").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".artifacts-section");if(!s)return;const n=s.dataset.artifactsKey;if(!n)return;const r=e.dataset.artifactIndex;if(r===void 0)return;const i=D(n);if(!i)return;const a=i[Number(r)];a&&Ce(a)})}),document.querySelectorAll(".artifact-modal-download").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.dataset.artifactsKey,n=e.dataset.artifactIndex;if(!s||n===void 0)return;const r=D(s);if(!r)return;const i=r[Number(n)];i&&Ce(i)})}),document.querySelectorAll(".artifacts-download-all").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.dataset.artifactsKey;if(!s)return;const n=D(s);if(!n||n.length===0)return;const r=n.map(o=>({path:o.path,bytes:fe(o.content)})),i=Ks(r),a=new Blob([new Uint8Array(i)],{type:"application/zip"});We(a,`artifacts-${s}.zip`)})})}function Ks(e){const t=new TextEncoder,s=[],n=[];let r=0;const i=Ws(new Date);for(const m of e){const f=t.encode(m.path),w=Qs(m.bytes),A=m.bytes.length,E=new Uint8Array(30+f.length),g=new DataView(E.buffer);g.setUint32(0,67324752,!0),g.setUint16(4,20,!0),g.setUint16(6,0,!0),g.setUint16(8,0,!0),g.setUint16(10,i.time,!0),g.setUint16(12,i.date,!0),g.setUint32(14,w,!0),g.setUint32(18,A,!0),g.setUint32(22,A,!0),g.setUint16(26,f.length,!0),g.setUint16(28,0,!0),E.set(f,30),s.push(E,m.bytes);const M=new Uint8Array(46+f.length),v=new DataView(M.buffer);v.setUint32(0,33639248,!0),v.setUint16(4,20,!0),v.setUint16(6,20,!0),v.setUint16(8,0,!0),v.setUint16(10,0,!0),v.setUint16(12,i.time,!0),v.setUint16(14,i.date,!0),v.setUint32(16,w,!0),v.setUint32(20,A,!0),v.setUint32(24,A,!0),v.setUint16(28,f.length,!0),v.setUint16(30,0,!0),v.setUint16(32,0,!0),v.setUint16(34,0,!0),v.setUint16(36,0,!0),v.setUint32(38,0,!0),v.setUint32(42,r,!0),M.set(f,46),n.push(M),r+=E.length+A}const a=r;let o=0;for(const m of n)o+=m.length;const c=new Uint8Array(22),l=new DataView(c.buffer);l.setUint32(0,101010256,!0),l.setUint16(4,0,!0),l.setUint16(6,0,!0),l.setUint16(8,e.length,!0),l.setUint16(10,e.length,!0),l.setUint32(12,o,!0),l.setUint32(16,a,!0),l.setUint16(20,0,!0);const p=a+o+c.length,d=new Uint8Array(p);let h=0;for(const m of s)d.set(m,h),h+=m.length;for(const m of n)d.set(m,h),h+=m.length;return d.set(c,h),d}const Gs=(()=>{const e=new Uint32Array(256);for(let t=0;t<256;t++){let s=t;for(let n=0;n<8;n++)s=s&1?3988292384^s>>>1:s>>>1;e[t]=s>>>0}return e})();function Qs(e){let t=4294967295;for(let s=0;s<e.length;s++)t=Gs[(t^e[s])&255]^t>>>8;return(t^4294967295)>>>0}function Ws(e){const t=(e.getHours()&31)<<11|(e.getMinutes()&63)<<5|e.getSeconds()/2&31,s=(e.getFullYear()-1980&127)<<9|(e.getMonth()+1&15)<<5|e.getDate()&31;return{time:t,date:s}}function Ie(e){const t=document.getElementById("app");t&&(t.innerHTML=Wt(e),document.title=`AXIS Report — ${u(e.reportId)}`,js())}const Js=document.getElementById("axis-data"),Y=Js?.textContent?.trim();if(Y&&Y!=="__AXIS_REPORT_DATA__")try{Ie(JSON.parse(Y))}catch{const t=document.getElementById("app");t&&(t.innerHTML='<div class="error-banner">Failed to parse report data.</div>')}else fetch("/mock-data.json").then(e=>e.json()).then(e=>Ie(e)).catch(e=>{const t=document.getElementById("app");t&&(t.innerHTML=`<div class="error-banner">Failed to load mock data: ${e.message}</div>`)});</script> </body> </html>
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAqB,SAAS,EAAE,SAAS,EAAE,MAAM,EAAuB,MAAM,oBAAoB,CAAC;AAG/G,OAAO,KAAK,EAAe,UAAU,EAAuC,MAAM,oBAAoB,CAAC;AAsEvG,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAErC,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC3C;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAqBD,wBAAsB,GAAG,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CA+StE;AA0RD,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWtE"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAqB,SAAS,EAAE,SAAS,EAAE,MAAM,EAAuB,MAAM,oBAAoB,CAAC;AAG/G,OAAO,KAAK,EAAe,UAAU,EAAuC,MAAM,oBAAoB,CAAC;AAsEvG,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAErC,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC3C;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAqBD,wBAAsB,GAAG,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAuTtE;AA0RD,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWtE"}
Binary file