@netlify/axis 1.7.1 → 1.7.3

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.
Files changed (38) hide show
  1. package/dist/cli.js.map +1 -1
  2. package/dist/config/loader.d.ts +3 -3
  3. package/dist/config/loader.d.ts.map +1 -1
  4. package/dist/config/loader.js +2 -8
  5. package/dist/config/loader.js.map +1 -1
  6. package/dist/config/validator.d.ts.map +1 -1
  7. package/dist/config/validator.js +14 -4
  8. package/dist/config/validator.js.map +1 -1
  9. package/dist/report-ui/index.html +53 -53
  10. package/dist/reports/writer.d.ts.map +1 -1
  11. package/dist/reports/writer.js.map +1 -1
  12. package/dist/runner/artifacts.d.ts +6 -0
  13. package/dist/runner/artifacts.d.ts.map +1 -1
  14. package/dist/runner/artifacts.js +3 -3
  15. package/dist/runner/artifacts.js.map +1 -1
  16. package/dist/runner/lifecycle.d.ts +11 -2
  17. package/dist/runner/lifecycle.d.ts.map +1 -1
  18. package/dist/runner/lifecycle.js +101 -5
  19. package/dist/runner/lifecycle.js.map +1 -1
  20. package/dist/runner/runner.js +10 -2
  21. package/dist/runner/runner.js.map +1 -1
  22. package/dist/scoring/deep-eval.d.ts.map +1 -1
  23. package/dist/scoring/deep-eval.js +3 -1
  24. package/dist/scoring/deep-eval.js.map +1 -1
  25. package/dist/scoring/goal-achievement.js.map +1 -1
  26. package/dist/scoring/judge.d.ts.map +1 -1
  27. package/dist/scoring/judge.js.map +1 -1
  28. package/dist/scoring/sparse-index.d.ts.map +1 -1
  29. package/dist/scoring/sparse-index.js +3 -1
  30. package/dist/scoring/sparse-index.js.map +1 -1
  31. package/dist/transcript/categorize.d.ts.map +1 -1
  32. package/dist/transcript/categorize.js +1 -10
  33. package/dist/transcript/categorize.js.map +1 -1
  34. package/dist/types/config.d.ts +10 -2
  35. package/dist/types/config.d.ts.map +1 -1
  36. package/dist/types/scenario.d.ts +23 -5
  37. package/dist/types/scenario.d.ts.map +1 -1
  38. package/package.json +1 -1
@@ -1,56 +1,56 @@
1
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{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-rubric-table{width:100%;border-collapse:collapse;font-size:.8125rem}.modal-rubric-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-rubric-table tbody td{padding:8px 10px;border-bottom:1px solid var(--light-gray);color:var(--text-secondary)}.modal-rubric-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,r={replace:(n,i)=>{let a=typeof i=="string"?i:i.source;return a=a.replace(x.caret,"$1"),s=s.replace(n,a),r},getRegex:()=>new RegExp(s,t)};return r}var We=((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|$))*)?)+/,Je=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,_=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Ye=/^ {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(),et=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]+)*)/,tt=/^[^\n]+/,le=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,st=k(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",le).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),nt=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",oe=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,rt=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",oe).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(),it=k(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",qe).getRegex(),ce={blockquote:it,code:Xe,def:st,fences:Je,heading:Ye,hr:_,html:rt,lheading:Me,list:nt,newline:Ve,paragraph:qe,table:L,text:tt},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(),at={...ce,lheading:et,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",oe).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()},ot=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ct=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Be=/^( {2,}|\\)\n(?!\s*$)/,dt=/^(`+|[^`])(?:(?= {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,ut=k(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Q).getRegex(),Ue=/(?!~)[\p{P}\p{S}]/u,pt=/(?!~)[\s\p{P}\p{S}]/u,ht=/(?:[^\s\p{P}\p{S}]|~)/u,ft=k(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",We?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),_e=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,gt=k(_e,"u").replace(/punct/g,P).getRegex(),mt=k(_e,"u").replace(/punct/g,Ue).getRegex(),je="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",kt=k(je,"gu").replace(/notPunctSpace/g,de).replace(/punctSpace/g,Q).replace(/punct/g,P).getRegex(),bt=k(je,"gu").replace(/notPunctSpace/g,ht).replace(/punctSpace/g,pt).replace(/punct/g,Ue).getRegex(),vt=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(),xt=k(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,P).getRegex(),wt="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",$t=k(wt,"gu").replace(/notPunctSpace/g,de).replace(/punctSpace/g,Q).replace(/punct/g,P).getRegex(),yt=k(/\\(punct)/,"gu").replace(/punct/g,P).getRegex(),St=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(),At=k(oe).replace("(?:-->|$)","-->").getRegex(),Rt=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",At).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),O=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Et=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",le).getRegex(),De=k(/^!?\[(ref)\](?:\[\])?/).replace("ref",le).getRegex(),Tt=k("reflink|nolink(?!\\()","g").replace("reflink",Ne).replace("nolink",De).getRegex(),me=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,ue={_backpedal:L,anyPunctuation:yt,autolink:St,blockSkip:ft,br:Be,code:ct,del:L,delLDelim:L,delRDelim:L,emStrongLDelim:gt,emStrongRDelimAst:kt,emStrongRDelimUnd:vt,escape:ot,link:Et,nolink:De,punctuation:ut,reflink:Ne,reflinkSearch:Tt,tag:Rt,text:dt,url:L},Lt={...ue,link:k(/^!?\[(label)\]\((.*?)\)/).replace("label",O).getRegex(),reflink:k(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",O).getRegex()},ee={...ue,emStrongRDelimAst:bt,emStrongLDelim:mt,delLDelim:xt,delRDelim:$t,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()},Ct={...ee,br:k(Be).replace("{2,}","*").getRegex(),text:k(ee.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},j={normal:ce,gfm:at,pedantic:lt},B={normal:ue,gfm:ee,breaks:Ct,pedantic:Lt},It={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ke=e=>It[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,l)=>{let c=!1,o=a;for(;--o>=0&&l[o]==="\\";)c=!c;return c?"|":" |"}),r=s.split(x.splitPipe),n=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;n<r.length;n++)r[n]=r[n].trim().replace(x.slashPipe,"|");return r}function T(e,t,s){let r=e.length;if(r===0)return"";let n=0;for(;n<r&&e.charAt(r-n-1)===t;)n++;return e.slice(0,r-n)}function xe(e){let t=e.split(`
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,r={replace:(n,i)=>{let a=typeof i=="string"?i:i.source;return a=a.replace(x.caret,"$1"),s=s.replace(n,a),r},getRegex:()=>new RegExp(s,t)};return r}var We=((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|$))*)?)+/,Je=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,_=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Ye=/^ {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(),et=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]+)*)/,tt=/^[^\n]+/,oe=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,st=k(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",oe).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),nt=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]*?(?:-->|$))/,rt=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(),it=k(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",qe).getRegex(),ce={blockquote:it,code:Xe,def:st,fences:Je,heading:Ye,hr:_,html:rt,lheading:Me,list:nt,newline:Ve,paragraph:qe,table:L,text:tt},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(),at={...ce,lheading:et,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()},ot={...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()},lt=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ct=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Be=/^( {2,}|\\)\n(?!\s*$)/,dt=/^(`+|[^`])(?:(?= {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,ut=k(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Q).getRegex(),Ue=/(?!~)[\p{P}\p{S}]/u,pt=/(?!~)[\s\p{P}\p{S}]/u,ht=/(?:[^\s\p{P}\p{S}]|~)/u,ft=k(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",We?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),_e=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,gt=k(_e,"u").replace(/punct/g,P).getRegex(),mt=k(_e,"u").replace(/punct/g,Ue).getRegex(),je="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",kt=k(je,"gu").replace(/notPunctSpace/g,de).replace(/punctSpace/g,Q).replace(/punct/g,P).getRegex(),bt=k(je,"gu").replace(/notPunctSpace/g,ht).replace(/punctSpace/g,pt).replace(/punct/g,Ue).getRegex(),vt=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(),xt=k(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,P).getRegex(),wt="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",$t=k(wt,"gu").replace(/notPunctSpace/g,de).replace(/punctSpace/g,Q).replace(/punct/g,P).getRegex(),yt=k(/\\(punct)/,"gu").replace(/punct/g,P).getRegex(),St=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(),At=k(le).replace("(?:-->|$)","-->").getRegex(),Rt=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",At).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),O=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Et=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(),Tt=k("reflink|nolink(?!\\()","g").replace("reflink",Ne).replace("nolink",De).getRegex(),me=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,ue={_backpedal:L,anyPunctuation:yt,autolink:St,blockSkip:ft,br:Be,code:ct,del:L,delLDelim:L,delRDelim:L,emStrongLDelim:gt,emStrongRDelimAst:kt,emStrongRDelimUnd:vt,escape:lt,link:Et,nolink:De,punctuation:ut,reflink:Ne,reflinkSearch:Tt,tag:Rt,text:dt,url:L},Lt={...ue,link:k(/^!?\[(label)\]\((.*?)\)/).replace("label",O).getRegex(),reflink:k(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",O).getRegex()},ee={...ue,emStrongRDelimAst:bt,emStrongLDelim:mt,delLDelim:xt,delRDelim:$t,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()},Ct={...ee,br:k(Be).replace("{2,}","*").getRegex(),text:k(ee.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},j={normal:ce,gfm:at,pedantic:ot},B={normal:ue,gfm:ee,breaks:Ct,pedantic:Lt},It={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ke=e=>It[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?"|":" |"}),r=s.split(x.splitPipe),n=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;n<r.length;n++)r[n]=r[n].trim().replace(x.slashPipe,"|");return r}function T(e,t,s){let r=e.length;if(r===0)return"";let n=0;for(;n<r&&e.charAt(r-n-1)===t;)n++;return e.slice(0,r-n)}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
- `)}function zt(e,t){if(e.indexOf(t[1])===-1)return-1;let s=0;for(let r=0;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]===t[0])s++;else if(e[r]===t[1]&&(s--,s<0))return r;return s>0?-2:-1}function Pt(e,t=0){let s=t,r="";for(let n of e)if(n===" "){let i=4-s%4;r+=" ".repeat(i),s+=i}else r+=n,s++;return r}function we(e,t,s,r,n){let i=t.href,a=t.title||null,l=e[1].replace(n.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:e[0].charAt(0)==="!"?"image":"link",raw:s,href:i,title:a,text:l,tokens:r.inlineTokens(l)};return r.state.inLink=!1,c}function Mt(e,t,s){let r=e.match(s.other.indentCodeCompensation);if(r===null)return t;let n=r[1];return t.split(`
6
- `).map(i=>{let a=i.match(s.other.beginningSpace);if(a===null)return i;let[l]=a;return l.length>=n.length?i.slice(n.length):i}).join(`
5
+ `)}function zt(e,t){if(e.indexOf(t[1])===-1)return-1;let s=0;for(let r=0;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]===t[0])s++;else if(e[r]===t[1]&&(s--,s<0))return r;return s>0?-2:-1}function Pt(e,t=0){let s=t,r="";for(let n of e)if(n===" "){let i=4-s%4;r+=" ".repeat(i),s+=i}else r+=n,s++;return r}function we(e,t,s,r,n){let i=t.href,a=t.title||null,o=e[1].replace(n.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:e[0].charAt(0)==="!"?"image":"link",raw:s,href:i,title:a,text:o,tokens:r.inlineTokens(o)};return r.state.inLink=!1,c}function Mt(e,t,s){let r=e.match(s.other.indentCodeCompensation);if(r===null)return t;let n=r[1];return t.split(`
6
+ `).map(i=>{let a=i.match(s.other.beginningSpace);if(a===null)return i;let[o]=a;return o.length>=n.length?i.slice(n.length):i}).join(`
7
7
  `)}var F=class{options;rules;lexer;constructor(e){this.options=e||I}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let s=this.options.pedantic?t[0]:xe(t[0]),r=s.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:s,codeBlockStyle:"indented",text:r}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let s=t[0],r=Mt(s,t[3]||"",this.rules);return{type:"code",raw:s,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let s=t[2].trim();if(this.rules.other.endingHash.test(s)){let r=T(s,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(s=r.trim())}return{type:"heading",raw:T(t[0],`
8
8
  `),depth:t[1].length,text:s,tokens:this.lexer.inline(s)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:T(t[0],`
9
9
  `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let s=T(t[0],`
10
10
  `).split(`
11
- `),r="",n="",i=[];for(;s.length>0;){let a=!1,l=[],c;for(c=0;c<s.length;c++)if(this.rules.other.blockquoteStart.test(s[c]))l.push(s[c]),a=!0;else if(!a)l.push(s[c]);else break;s=s.slice(c);let o=l.join(`
12
- `),p=o.replace(this.rules.other.blockquoteSetextReplace,`
11
+ `),r="",n="",i=[];for(;s.length>0;){let a=!1,o=[],c;for(c=0;c<s.length;c++)if(this.rules.other.blockquoteStart.test(s[c]))o.push(s[c]),a=!0;else if(!a)o.push(s[c]);else break;s=s.slice(c);let l=o.join(`
12
+ `),p=l.replace(this.rules.other.blockquoteSetextReplace,`
13
13
  $1`).replace(this.rules.other.blockquoteSetextReplace2,"");r=r?`${r}
14
- ${o}`:o,n=n?`${n}
14
+ ${l}`:l,n=n?`${n}
15
15
  ${p}`:p;let d=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(p,i,!0),this.lexer.state.top=d,s.length===0)break;let h=i.at(-1);if(h?.type==="code")break;if(h?.type==="blockquote"){let m=h,f=m.raw+`
16
16
  `+s.join(`
17
17
  `),w=this.blockquote(f);i[i.length-1]=w,r=r.substring(0,r.length-m.raw.length)+w.raw,n=n.substring(0,n.length-m.text.length)+w.text;break}else if(h?.type==="list"){let m=h,f=m.raw+`
18
18
  `+s.join(`
19
19
  `),w=this.list(f);i[i.length-1]=w,r=r.substring(0,r.length-h.raw.length)+w.raw,n=n.substring(0,n.length-m.raw.length)+w.raw,s=f.substring(i.at(-1).raw.length).split(`
20
- `);continue}}return{type:"blockquote",raw:r,tokens:i,text:n}}}list(e){let t=this.rules.block.list.exec(e);if(t){let s=t[1].trim(),r=s.length>1,n={type:"list",raw:"",ordered:r,start:r?+s.slice(0,-1):"",loose:!1,items:[]};s=r?`\\d{1,9}\\${s.slice(-1)}`:`\\${s}`,this.options.pedantic&&(s=r?s:"[*+-]");let i=this.rules.other.listItemRegex(s),a=!1;for(;e;){let c=!1,o="",p="";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;o=t[0],e=e.substring(o.length);let d=Pt(t[2].split(`
20
+ `);continue}}return{type:"blockquote",raw:r,tokens:i,text:n}}}list(e){let t=this.rules.block.list.exec(e);if(t){let s=t[1].trim(),r=s.length>1,n={type:"list",raw:"",ordered:r,start:r?+s.slice(0,-1):"",loose:!1,items:[]};s=r?`\\d{1,9}\\${s.slice(-1)}`:`\\${s}`,this.options.pedantic&&(s=r?s:"[*+-]");let i=this.rules.other.listItemRegex(s),a=!1;for(;e;){let c=!1,l="",p="";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;l=t[0],e=e.substring(l.length);let d=Pt(t[2].split(`
21
21
  `,1)[0],t[1].length),h=e.split(`
22
- `,1)[0],m=!d.trim(),f=0;if(this.options.pedantic?(f=2,p=d.trimStart()):m?f=t[1].length+1:(f=d.search(this.rules.other.nonSpaceChar),f=f>4?1:f,p=d.slice(f),f+=t[1].length),m&&this.rules.other.blankLine.test(h)&&(o+=h+`
22
+ `,1)[0],m=!d.trim(),f=0;if(this.options.pedantic?(f=2,p=d.trimStart()):m?f=t[1].length+1:(f=d.search(this.rules.other.nonSpaceChar),f=f>4?1:f,p=d.slice(f),f+=t[1].length),m&&this.rules.other.blankLine.test(h)&&(l+=h+`
23
23
  `,e=e.substring(h.length+1),c=!0),!c){let w=this.rules.other.nextBulletRegex(f),A=this.rules.other.hrRegex(f),E=this.rules.other.fencesBeginRegex(f),g=this.rules.other.headingBeginRegex(f),M=this.rules.other.htmlBeginRegex(f),v=this.rules.other.blockquoteBeginRegex(f);for(;e;){let W=e.split(`
24
24
  `,1)[0],q;if(h=W,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting," "),q=h):q=h.replace(this.rules.other.tabCharGlobal," "),E.test(h)||g.test(h)||M.test(h)||v.test(h)||w.test(h)||A.test(h))break;if(q.search(this.rules.other.nonSpaceChar)>=f||!h.trim())p+=`
25
25
  `+q.slice(f);else{if(m||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||E.test(d)||g.test(d)||A.test(d))break;p+=`
26
- `+h}m=!h.trim(),o+=W+`
27
- `,e=e.substring(W.length+1),d=q.slice(f)}}n.loose||(a?n.loose=!0:this.rules.other.doubleBlankLine.test(o)&&(a=!0)),n.items.push({type:"list_item",raw:o,task:!!this.options.gfm&&this.rules.other.listIsTask.test(p),loose:!1,text:p,tokens:[]}),n.raw+=o}let l=n.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let c of n.items){this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]);let o=c.tokens[0];if(c.task&&(o?.type==="text"||o?.type==="paragraph")){c.text=c.text.replace(this.rules.other.listReplaceTask,""),o.raw=o.raw.replace(this.rules.other.listReplaceTask,""),o.text=o.text.replace(this.rules.other.listReplaceTask,"");for(let d=this.lexer.inlineQueue.length-1;d>=0;d--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[d].src)){this.lexer.inlineQueue[d].src=this.lexer.inlineQueue[d].src.replace(this.rules.other.listReplaceTask,"");break}let p=this.rules.other.listTaskCheckbox.exec(c.raw);if(p){let d={type:"checkbox",raw:p[0]+" ",checked:p[0]!=="[ ]"};c.checked=d.checked,n.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=d.raw+c.tokens[0].raw,c.tokens[0].text=d.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(d)):c.tokens.unshift({type:"paragraph",raw:d.raw,text:d.raw,tokens:[d]}):c.tokens.unshift(d)}}else c.task&&(c.task=!1);if(!n.loose){let p=c.tokens.filter(h=>h.type==="space"),d=p.length>0&&p.some(h=>this.rules.other.anyLine.test(h.raw));n.loose=d}}if(n.loose)for(let c of n.items){c.loose=!0;for(let o of c.tokens)o.type==="text"&&(o.type="paragraph")}return n}}html(e){let t=this.rules.block.html.exec(e);if(t){let s=xe(t[0]);return{type:"html",block:!0,raw:s,pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:s}}}def(e){let t=this.rules.block.def.exec(e);if(t){let s=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",n=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:s,raw:T(t[0],`
26
+ `+h}m=!h.trim(),l+=W+`
27
+ `,e=e.substring(W.length+1),d=q.slice(f)}}n.loose||(a?n.loose=!0:this.rules.other.doubleBlankLine.test(l)&&(a=!0)),n.items.push({type:"list_item",raw:l,task:!!this.options.gfm&&this.rules.other.listIsTask.test(p),loose:!1,text:p,tokens:[]}),n.raw+=l}let o=n.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let c of n.items){this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]);let l=c.tokens[0];if(c.task&&(l?.type==="text"||l?.type==="paragraph")){c.text=c.text.replace(this.rules.other.listReplaceTask,""),l.raw=l.raw.replace(this.rules.other.listReplaceTask,""),l.text=l.text.replace(this.rules.other.listReplaceTask,"");for(let d=this.lexer.inlineQueue.length-1;d>=0;d--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[d].src)){this.lexer.inlineQueue[d].src=this.lexer.inlineQueue[d].src.replace(this.rules.other.listReplaceTask,"");break}let p=this.rules.other.listTaskCheckbox.exec(c.raw);if(p){let d={type:"checkbox",raw:p[0]+" ",checked:p[0]!=="[ ]"};c.checked=d.checked,n.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=d.raw+c.tokens[0].raw,c.tokens[0].text=d.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(d)):c.tokens.unshift({type:"paragraph",raw:d.raw,text:d.raw,tokens:[d]}):c.tokens.unshift(d)}}else c.task&&(c.task=!1);if(!n.loose){let p=c.tokens.filter(h=>h.type==="space"),d=p.length>0&&p.some(h=>this.rules.other.anyLine.test(h.raw));n.loose=d}}if(n.loose)for(let c of n.items){c.loose=!0;for(let l of c.tokens)l.type==="text"&&(l.type="paragraph")}return n}}html(e){let t=this.rules.block.html.exec(e);if(t){let s=xe(t[0]);return{type:"html",block:!0,raw:s,pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:s}}}def(e){let t=this.rules.block.def.exec(e);if(t){let s=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",n=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:s,raw:T(t[0],`
28
28
  `),href:r,title:n}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let s=ve(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),n=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
29
29
  `):[],i={type:"table",raw:T(t[0],`
30
- `),header:[],align:[],rows:[]};if(s.length===r.length){for(let a of r)this.rules.other.tableAlignRight.test(a)?i.align.push("right"):this.rules.other.tableAlignCenter.test(a)?i.align.push("center"):this.rules.other.tableAlignLeft.test(a)?i.align.push("left"):i.align.push(null);for(let a=0;a<s.length;a++)i.header.push({text:s[a],tokens:this.lexer.inline(s[a]),header:!0,align:i.align[a]});for(let a of n)i.rows.push(ve(a,i.header.length).map((l,c)=>({text:l,tokens:this.lexer.inline(l),header:!1,align:i.align[c]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let s=t[1].trim();return{type:"heading",raw:T(t[0],`
30
+ `),header:[],align:[],rows:[]};if(s.length===r.length){for(let a of r)this.rules.other.tableAlignRight.test(a)?i.align.push("right"):this.rules.other.tableAlignCenter.test(a)?i.align.push("center"):this.rules.other.tableAlignLeft.test(a)?i.align.push("left"):i.align.push(null);for(let a=0;a<s.length;a++)i.header.push({text:s[a],tokens:this.lexer.inline(s[a]),header:!0,align:i.align[a]});for(let a of n)i.rows.push(ve(a,i.header.length).map((o,c)=>({text:o,tokens:this.lexer.inline(o),header:!1,align:i.align[c]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let s=t[1].trim();return{type:"heading",raw:T(t[0],`
31
31
  `),depth:t[2].charAt(0)==="="?1:2,text:s,tokens:this.lexer.inline(s)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let s=t[1].charAt(t[1].length-1)===`
32
- `?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:s,tokens:this.lexer.inline(s)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let s=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(s)){if(!this.rules.other.endAngleBracket.test(s))return;let i=T(s.slice(0,-1),"\\");if((s.length-i.length)%2===0)return}else{let i=zt(t[2],"()");if(i===-2)return;if(i>-1){let a=(t[0].indexOf("!")===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,a).trim(),t[3]=""}}let r=t[2],n="";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(r);i&&(r=i[1],n=i[3])}else n=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(s)?r=r.slice(1):r=r.slice(1,-1)),we(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let s;if((s=this.rules.inline.reflink.exec(e))||(s=this.rules.inline.nolink.exec(e))){let r=(s[2]||s[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=t[r.toLowerCase()];if(!n){let i=s[0].charAt(0);return{type:"text",raw:i,text:i}}return we(s,n,s[0],this.lexer,this.rules)}}emStrong(e,t,s=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&s.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!s||this.rules.inline.punctuation.exec(s))){let n=[...r[0]].length-1,i,a,l=n,c=0,o=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(o.lastIndex=0,t=t.slice(-1*e.length+n);(r=o.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i)continue;if(a=[...i].length,r[3]||r[4]){l+=a;continue}else if((r[5]||r[6])&&n%3&&!((n+a)%3)){c+=a;continue}if(l-=a,l>0)continue;a=Math.min(a,a+l+c);let p=[...r[0]][0].length,d=e.slice(0,n+r.index+p+a);if(Math.min(n,a)%2){let m=d.slice(1,-1);return{type:"em",raw:d,text:m,tokens:this.lexer.inlineTokens(m)}}let h=d.slice(2,-2);return{type:"strong",raw:d,text:h,tokens:this.lexer.inlineTokens(h)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let s=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(s),n=this.rules.other.startingSpaceChar.test(s)&&this.rules.other.endingSpaceChar.test(s);return r&&n&&(s=s.substring(1,s.length-1)),{type:"codespan",raw:t[0],text:s}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,s=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!s||this.rules.inline.punctuation.exec(s))){let n=[...r[0]].length-1,i,a,l=n,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+n);(r=c.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(a=[...i].length,a!==n))continue;if(r[3]||r[4]){l+=a;continue}if(l-=a,l>0)continue;a=Math.min(a,a+l);let o=[...r[0]][0].length,p=e.slice(0,n+r.index+o+a),d=p.slice(n,-n);return{type:"del",raw:p,text:d,tokens:this.lexer.inlineTokens(d)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let s,r;return t[2]==="@"?(s=t[1],r="mailto:"+s):(s=t[1],r=s),{type:"link",raw:t[0],text:s,href:r,tokens:[{type:"text",raw:s,text:s}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let s,r;if(t[2]==="@")s=t[0],r="mailto:"+s;else{let n;do n=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(n!==t[0]);s=t[0],t[1]==="www."?r="http://"+t[0]:r=t[0]}return{type:"link",raw:t[0],text:s,href:r,tokens:[{type:"text",raw:s,text:s}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let s=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:s}}}},y=class te{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||I,this.options.tokenizer=this.options.tokenizer||new F,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let s={other:x,block:j.normal,inline:B.normal};this.options.pedantic?(s.block=j.pedantic,s.inline=B.pedantic):this.options.gfm&&(s.block=j.gfm,this.options.breaks?s.inline=B.breaks:s.inline=B.gfm),this.tokenizer.rules=s}static get rules(){return{block:j,inline:B}}static lex(t,s){return new te(s).lex(t)}static lexInline(t,s){return new te(s).inlineTokens(t)}lex(t){t=t.replace(x.carriageReturn,`
33
- `),this.blockTokens(t,this.tokens);for(let s=0;s<this.inlineQueue.length;s++){let r=this.inlineQueue[s];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,s=[],r=!1){this.tokenizer.lexer=this,this.options.pedantic&&(t=t.replace(x.tabCharGlobal," ").replace(x.spaceLine,""));let n=1/0;for(;t;){if(t.length<n)n=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}let i;if(this.options.extensions?.block?.some(l=>(i=l.call({lexer:this},t,s))?(t=t.substring(i.raw.length),s.push(i),!0):!1))continue;if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length);let l=s.at(-1);i.raw.length===1&&l!==void 0?l.raw+=`
34
- `:s.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length);let l=s.at(-1);l?.type==="paragraph"||l?.type==="text"?(l.raw+=(l.raw.endsWith(`
32
+ `?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:s,tokens:this.lexer.inline(s)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let s=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(s)){if(!this.rules.other.endAngleBracket.test(s))return;let i=T(s.slice(0,-1),"\\");if((s.length-i.length)%2===0)return}else{let i=zt(t[2],"()");if(i===-2)return;if(i>-1){let a=(t[0].indexOf("!")===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,a).trim(),t[3]=""}}let r=t[2],n="";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(r);i&&(r=i[1],n=i[3])}else n=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(s)?r=r.slice(1):r=r.slice(1,-1)),we(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let s;if((s=this.rules.inline.reflink.exec(e))||(s=this.rules.inline.nolink.exec(e))){let r=(s[2]||s[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=t[r.toLowerCase()];if(!n){let i=s[0].charAt(0);return{type:"text",raw:i,text:i}}return we(s,n,s[0],this.lexer,this.rules)}}emStrong(e,t,s=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&s.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!s||this.rules.inline.punctuation.exec(s))){let n=[...r[0]].length-1,i,a,o=n,c=0,l=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(l.lastIndex=0,t=t.slice(-1*e.length+n);(r=l.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i)continue;if(a=[...i].length,r[3]||r[4]){o+=a;continue}else if((r[5]||r[6])&&n%3&&!((n+a)%3)){c+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+c);let p=[...r[0]][0].length,d=e.slice(0,n+r.index+p+a);if(Math.min(n,a)%2){let m=d.slice(1,-1);return{type:"em",raw:d,text:m,tokens:this.lexer.inlineTokens(m)}}let h=d.slice(2,-2);return{type:"strong",raw:d,text:h,tokens:this.lexer.inlineTokens(h)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let s=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(s),n=this.rules.other.startingSpaceChar.test(s)&&this.rules.other.endingSpaceChar.test(s);return r&&n&&(s=s.substring(1,s.length-1)),{type:"codespan",raw:t[0],text:s}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,s=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!s||this.rules.inline.punctuation.exec(s))){let n=[...r[0]].length-1,i,a,o=n,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+n);(r=c.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(a=[...i].length,a!==n))continue;if(r[3]||r[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let l=[...r[0]][0].length,p=e.slice(0,n+r.index+l+a),d=p.slice(n,-n);return{type:"del",raw:p,text:d,tokens:this.lexer.inlineTokens(d)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let s,r;return t[2]==="@"?(s=t[1],r="mailto:"+s):(s=t[1],r=s),{type:"link",raw:t[0],text:s,href:r,tokens:[{type:"text",raw:s,text:s}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let s,r;if(t[2]==="@")s=t[0],r="mailto:"+s;else{let n;do n=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(n!==t[0]);s=t[0],t[1]==="www."?r="http://"+t[0]:r=t[0]}return{type:"link",raw:t[0],text:s,href:r,tokens:[{type:"text",raw:s,text:s}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let s=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:s}}}},y=class te{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||I,this.options.tokenizer=this.options.tokenizer||new F,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let s={other:x,block:j.normal,inline:B.normal};this.options.pedantic?(s.block=j.pedantic,s.inline=B.pedantic):this.options.gfm&&(s.block=j.gfm,this.options.breaks?s.inline=B.breaks:s.inline=B.gfm),this.tokenizer.rules=s}static get rules(){return{block:j,inline:B}}static lex(t,s){return new te(s).lex(t)}static lexInline(t,s){return new te(s).inlineTokens(t)}lex(t){t=t.replace(x.carriageReturn,`
33
+ `),this.blockTokens(t,this.tokens);for(let s=0;s<this.inlineQueue.length;s++){let r=this.inlineQueue[s];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,s=[],r=!1){this.tokenizer.lexer=this,this.options.pedantic&&(t=t.replace(x.tabCharGlobal," ").replace(x.spaceLine,""));let n=1/0;for(;t;){if(t.length<n)n=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}let i;if(this.options.extensions?.block?.some(o=>(i=o.call({lexer:this},t,s))?(t=t.substring(i.raw.length),s.push(i),!0):!1))continue;if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length);let o=s.at(-1);i.raw.length===1&&o!==void 0?o.raw+=`
34
+ `:s.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length);let o=s.at(-1);o?.type==="paragraph"||o?.type==="text"?(o.raw+=(o.raw.endsWith(`
35
35
  `)?"":`
36
- `)+i.raw,l.text+=`
37
- `+i.text,this.inlineQueue.at(-1).src=l.text):s.push(i);continue}if(i=this.tokenizer.fences(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.heading(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.hr(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.blockquote(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.list(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.html(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length);let l=s.at(-1);l?.type==="paragraph"||l?.type==="text"?(l.raw+=(l.raw.endsWith(`
36
+ `)+i.raw,o.text+=`
37
+ `+i.text,this.inlineQueue.at(-1).src=o.text):s.push(i);continue}if(i=this.tokenizer.fences(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.heading(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.hr(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.blockquote(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.list(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.html(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length);let o=s.at(-1);o?.type==="paragraph"||o?.type==="text"?(o.raw+=(o.raw.endsWith(`
38
38
  `)?"":`
39
- `)+i.raw,l.text+=`
40
- `+i.raw,this.inlineQueue.at(-1).src=l.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},s.push(i));continue}if(i=this.tokenizer.table(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.lheading(t)){t=t.substring(i.raw.length),s.push(i);continue}let a=t;if(this.options.extensions?.startBlock){let l=1/0,c=t.slice(1),o;this.options.extensions.startBlock.forEach(p=>{o=p.call({lexer:this},c),typeof o=="number"&&o>=0&&(l=Math.min(l,o))}),l<1/0&&l>=0&&(a=t.substring(0,l+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let l=s.at(-1);r&&l?.type==="paragraph"?(l.raw+=(l.raw.endsWith(`
39
+ `)+i.raw,o.text+=`
40
+ `+i.raw,this.inlineQueue.at(-1).src=o.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},s.push(i));continue}if(i=this.tokenizer.table(t)){t=t.substring(i.raw.length),s.push(i);continue}if(i=this.tokenizer.lheading(t)){t=t.substring(i.raw.length),s.push(i);continue}let a=t;if(this.options.extensions?.startBlock){let o=1/0,c=t.slice(1),l;this.options.extensions.startBlock.forEach(p=>{l=p.call({lexer:this},c),typeof l=="number"&&l>=0&&(o=Math.min(o,l))}),o<1/0&&o>=0&&(a=t.substring(0,o+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let o=s.at(-1);r&&o?.type==="paragraph"?(o.raw+=(o.raw.endsWith(`
41
41
  `)?"":`
42
- `)+i.raw,l.text+=`
43
- `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=l.text):s.push(i),r=a.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length);let l=s.at(-1);l?.type==="text"?(l.raw+=(l.raw.endsWith(`
42
+ `)+i.raw,o.text+=`
43
+ `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):s.push(i),r=a.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length);let o=s.at(-1);o?.type==="text"?(o.raw+=(o.raw.endsWith(`
44
44
  `)?"":`
45
- `)+i.raw,l.text+=`
46
- `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=l.text):s.push(i);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return this.state.top=!0,s}inline(t,s=[]){return this.inlineQueue.push({src:t,tokens:s}),s}inlineTokens(t,s=[]){this.tokenizer.lexer=this;let r=t,n=null;if(this.tokens.links){let o=Object.keys(this.tokens.links);if(o.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(r))!==null;)o.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(r))!==null;)r=r.slice(0,n.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i;for(;(n=this.tokenizer.rules.inline.blockSkip.exec(r))!==null;)i=n[2]?n[2].length:0,r=r.slice(0,n.index+i)+"["+"a".repeat(n[0].length-i-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let a=!1,l="",c=1/0;for(;t;){if(t.length<c)c=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}a||(l=""),a=!1;let o;if(this.options.extensions?.inline?.some(d=>(o=d.call({lexer:this},t,s))?(t=t.substring(o.raw.length),s.push(o),!0):!1))continue;if(o=this.tokenizer.escape(t)){t=t.substring(o.raw.length),s.push(o);continue}if(o=this.tokenizer.tag(t)){t=t.substring(o.raw.length),s.push(o);continue}if(o=this.tokenizer.link(t)){t=t.substring(o.raw.length),s.push(o);continue}if(o=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(o.raw.length);let d=s.at(-1);o.type==="text"&&d?.type==="text"?(d.raw+=o.raw,d.text+=o.text):s.push(o);continue}if(o=this.tokenizer.emStrong(t,r,l)){t=t.substring(o.raw.length),s.push(o);continue}if(o=this.tokenizer.codespan(t)){t=t.substring(o.raw.length),s.push(o);continue}if(o=this.tokenizer.br(t)){t=t.substring(o.raw.length),s.push(o);continue}if(o=this.tokenizer.del(t,r,l)){t=t.substring(o.raw.length),s.push(o);continue}if(o=this.tokenizer.autolink(t)){t=t.substring(o.raw.length),s.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(t))){t=t.substring(o.raw.length),s.push(o);continue}let p=t;if(this.options.extensions?.startInline){let d=1/0,h=t.slice(1),m;this.options.extensions.startInline.forEach(f=>{m=f.call({lexer:this},h),typeof m=="number"&&m>=0&&(d=Math.min(d,m))}),d<1/0&&d>=0&&(p=t.substring(0,d+1))}if(o=this.tokenizer.inlineText(p)){t=t.substring(o.raw.length),o.raw.slice(-1)!=="_"&&(l=o.raw.slice(-1)),a=!0;let d=s.at(-1);d?.type==="text"?(d.raw+=o.raw,d.text+=o.text):s.push(o);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return s}infiniteLoopError(t){let s="Infinite loop on byte: "+t;if(this.options.silent)console.error(s);else throw new Error(s)}},H=class{options;parser;constructor(e){this.options=e||I}space(e){return""}code({text:e,lang:t,escaped:s}){let r=(t||"").match(x.notSpaceStart)?.[0],n=e.replace(x.endingNewline,"")+`
45
+ `)+i.raw,o.text+=`
46
+ `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):s.push(i);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return this.state.top=!0,s}inline(t,s=[]){return this.inlineQueue.push({src:t,tokens:s}),s}inlineTokens(t,s=[]){this.tokenizer.lexer=this;let r=t,n=null;if(this.tokens.links){let l=Object.keys(this.tokens.links);if(l.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(r))!==null;)l.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(r))!==null;)r=r.slice(0,n.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i;for(;(n=this.tokenizer.rules.inline.blockSkip.exec(r))!==null;)i=n[2]?n[2].length:0,r=r.slice(0,n.index+i)+"["+"a".repeat(n[0].length-i-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let a=!1,o="",c=1/0;for(;t;){if(t.length<c)c=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}a||(o=""),a=!1;let l;if(this.options.extensions?.inline?.some(d=>(l=d.call({lexer:this},t,s))?(t=t.substring(l.raw.length),s.push(l),!0):!1))continue;if(l=this.tokenizer.escape(t)){t=t.substring(l.raw.length),s.push(l);continue}if(l=this.tokenizer.tag(t)){t=t.substring(l.raw.length),s.push(l);continue}if(l=this.tokenizer.link(t)){t=t.substring(l.raw.length),s.push(l);continue}if(l=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(l.raw.length);let d=s.at(-1);l.type==="text"&&d?.type==="text"?(d.raw+=l.raw,d.text+=l.text):s.push(l);continue}if(l=this.tokenizer.emStrong(t,r,o)){t=t.substring(l.raw.length),s.push(l);continue}if(l=this.tokenizer.codespan(t)){t=t.substring(l.raw.length),s.push(l);continue}if(l=this.tokenizer.br(t)){t=t.substring(l.raw.length),s.push(l);continue}if(l=this.tokenizer.del(t,r,o)){t=t.substring(l.raw.length),s.push(l);continue}if(l=this.tokenizer.autolink(t)){t=t.substring(l.raw.length),s.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(t))){t=t.substring(l.raw.length),s.push(l);continue}let p=t;if(this.options.extensions?.startInline){let d=1/0,h=t.slice(1),m;this.options.extensions.startInline.forEach(f=>{m=f.call({lexer:this},h),typeof m=="number"&&m>=0&&(d=Math.min(d,m))}),d<1/0&&d>=0&&(p=t.substring(0,d+1))}if(l=this.tokenizer.inlineText(p)){t=t.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(o=l.raw.slice(-1)),a=!0;let d=s.at(-1);d?.type==="text"?(d.raw+=l.raw,d.text+=l.text):s.push(l);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return s}infiniteLoopError(t){let s="Infinite loop on byte: "+t;if(this.options.silent)console.error(s);else throw new Error(s)}},H=class{options;parser;constructor(e){this.options=e||I}space(e){return""}code({text:e,lang:t,escaped:s}){let r=(t||"").match(x.notSpaceStart)?.[0],n=e.replace(x.endingNewline,"")+`
47
47
  `;return r?'<pre><code class="language-'+R(r)+'">'+(s?n:R(n,!0))+`</code></pre>
48
48
  `:"<pre><code>"+(s?n:R(n,!0))+`</code></pre>
49
49
  `}blockquote({tokens:e}){return`<blockquote>
50
50
  ${this.parser.parse(e)}</blockquote>
51
51
  `}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
52
52
  `}hr(e){return`<hr>
53
- `}list(e){let t=e.ordered,s=e.start,r="";for(let a=0;a<e.items.length;a++){let l=e.items[a];r+=this.listitem(l)}let n=t?"ol":"ul",i=t&&s!==1?' start="'+s+'"':"";return"<"+n+i+`>
53
+ `}list(e){let t=e.ordered,s=e.start,r="";for(let a=0;a<e.items.length;a++){let o=e.items[a];r+=this.listitem(o)}let n=t?"ol":"ul",i=t&&s!==1?' start="'+s+'"':"";return"<"+n+i+`>
54
54
  `+r+"</"+n+`>
55
55
  `}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
56
56
  `}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
@@ -61,8 +61,8 @@ ${this.parser.parse(e)}</blockquote>
61
61
  `}tablerow({text:e}){return`<tr>
62
62
  ${e}</tr>
63
63
  `}tablecell(e){let t=this.parser.parseInline(e.tokens),s=e.header?"th":"td";return(e.align?`<${s} align="${e.align}">`:`<${s}>`)+t+`</${s}>
64
- `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${R(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:s}){let r=this.parser.parseInline(s),n=be(e);if(n===null)return r;e=n;let i='<a href="'+e+'"';return t&&(i+=' title="'+R(t)+'"'),i+=">"+r+"</a>",i}image({href:e,title:t,text:s,tokens:r}){r&&(s=this.parser.parseInline(r,this.parser.textRenderer));let n=be(e);if(n===null)return R(s);e=n;let i=`<img src="${e}" alt="${R(s)}"`;return t&&(i+=` title="${R(t)}"`),i+=">",i}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:R(e.text)}},pe=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},S=class se{options;renderer;textRenderer;constructor(t){this.options=t||I,this.options.renderer=this.options.renderer||new H,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new pe}static parse(t,s){return new se(s).parse(t)}static parseInline(t,s){return new se(s).parseInline(t)}parse(t){this.renderer.parser=this;let s="";for(let r=0;r<t.length;r++){let n=t[r];if(this.options.extensions?.renderers?.[n.type]){let a=n,l=this.options.extensions.renderers[a.type].call({parser:this},a);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(a.type)){s+=l||"";continue}}let i=n;switch(i.type){case"space":{s+=this.renderer.space(i);break}case"hr":{s+=this.renderer.hr(i);break}case"heading":{s+=this.renderer.heading(i);break}case"code":{s+=this.renderer.code(i);break}case"table":{s+=this.renderer.table(i);break}case"blockquote":{s+=this.renderer.blockquote(i);break}case"list":{s+=this.renderer.list(i);break}case"checkbox":{s+=this.renderer.checkbox(i);break}case"html":{s+=this.renderer.html(i);break}case"def":{s+=this.renderer.def(i);break}case"paragraph":{s+=this.renderer.paragraph(i);break}case"text":{s+=this.renderer.text(i);break}default:{let a='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return s}parseInline(t,s=this.renderer){this.renderer.parser=this;let r="";for(let n=0;n<t.length;n++){let i=t[n];if(this.options.extensions?.renderers?.[i.type]){let l=this.options.extensions.renderers[i.type].call({parser:this},i);if(l!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(i.type)){r+=l||"";continue}}let a=i;switch(a.type){case"escape":{r+=s.text(a);break}case"html":{r+=s.html(a);break}case"link":{r+=s.link(a);break}case"image":{r+=s.image(a);break}case"checkbox":{r+=s.checkbox(a);break}case"strong":{r+=s.strong(a);break}case"em":{r+=s.em(a);break}case"codespan":{r+=s.codespan(a);break}case"br":{r+=s.br(a);break}case"del":{r+=s.del(a);break}case"text":{r+=s.text(a);break}default:{let l='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return r}},U=class{options;block;constructor(e){this.options=e||I}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?y.lex:y.lexInline}provideParser(e=this.block){return e?S.parse:S.parseInline}},qt=class{defaults=re();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=S;Renderer=H;TextRenderer=pe;Lexer=y;Tokenizer=F;Hooks=U;constructor(...e){this.use(...e)}walkTokens(e,t){let s=[];for(let r of e)switch(s=s.concat(t.call(this,r)),r.type){case"table":{let n=r;for(let i of n.header)s=s.concat(this.walkTokens(i.tokens,t));for(let i of n.rows)for(let a of i)s=s.concat(this.walkTokens(a.tokens,t));break}case"list":{let n=r;s=s.concat(this.walkTokens(n.items,t));break}default:{let n=r;this.defaults.extensions?.childTokens?.[n.type]?this.defaults.extensions.childTokens[n.type].forEach(i=>{let a=n[i].flat(1/0);s=s.concat(this.walkTokens(a,t))}):n.tokens&&(s=s.concat(this.walkTokens(n.tokens,t)))}}return s}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(s=>{let r={...s};if(r.async=this.defaults.async||r.async||!1,s.extensions&&(s.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let i=t.renderers[n.name];i?t.renderers[n.name]=function(...a){let l=n.renderer.apply(this,a);return l===!1&&(l=i.apply(this,a)),l}:t.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=t[n.level];i?i.unshift(n.tokenizer):t[n.level]=[n.tokenizer],n.start&&(n.level==="block"?t.startBlock?t.startBlock.push(n.start):t.startBlock=[n.start]:n.level==="inline"&&(t.startInline?t.startInline.push(n.start):t.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(t.childTokens[n.name]=n.childTokens)}),r.extensions=t),s.renderer){let n=this.defaults.renderer||new H(this.defaults);for(let i in s.renderer){if(!(i in n))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let a=i,l=s.renderer[a],c=n[a];n[a]=(...o)=>{let p=l.apply(n,o);return p===!1&&(p=c.apply(n,o)),p||""}}r.renderer=n}if(s.tokenizer){let n=this.defaults.tokenizer||new F(this.defaults);for(let i in s.tokenizer){if(!(i in n))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let a=i,l=s.tokenizer[a],c=n[a];n[a]=(...o)=>{let p=l.apply(n,o);return p===!1&&(p=c.apply(n,o)),p}}r.tokenizer=n}if(s.hooks){let n=this.defaults.hooks||new U;for(let i in s.hooks){if(!(i in n))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let a=i,l=s.hooks[a],c=n[a];U.passThroughHooks.has(i)?n[a]=o=>{if(this.defaults.async&&U.passThroughHooksRespectAsync.has(i))return(async()=>{let d=await l.call(n,o);return c.call(n,d)})();let p=l.call(n,o);return c.call(n,p)}:n[a]=(...o)=>{if(this.defaults.async)return(async()=>{let d=await l.apply(n,o);return d===!1&&(d=await c.apply(n,o)),d})();let p=l.apply(n,o);return p===!1&&(p=c.apply(n,o)),p}}r.hooks=n}if(s.walkTokens){let n=this.defaults.walkTokens,i=s.walkTokens;r.walkTokens=function(a){let l=[];return l.push(i.call(this,a)),n&&(l=l.concat(n.call(this,a))),l}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return y.lex(e,t??this.defaults)}parser(e,t){return S.parse(e,t??this.defaults)}parseMarkdown(e){return(t,s)=>{let r={...s},n={...this.defaults,...r},i=this.onError(!!n.silent,!!n.async);if(this.defaults.async===!0&&r.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(n.hooks&&(n.hooks.options=n,n.hooks.block=e),n.async)return(async()=>{let a=n.hooks?await n.hooks.preprocess(t):t,l=await(n.hooks?await n.hooks.provideLexer(e):e?y.lex:y.lexInline)(a,n),c=n.hooks?await n.hooks.processAllTokens(l):l;n.walkTokens&&await Promise.all(this.walkTokens(c,n.walkTokens));let o=await(n.hooks?await n.hooks.provideParser(e):e?S.parse:S.parseInline)(c,n);return n.hooks?await n.hooks.postprocess(o):o})().catch(i);try{n.hooks&&(t=n.hooks.preprocess(t));let a=(n.hooks?n.hooks.provideLexer(e):e?y.lex:y.lexInline)(t,n);n.hooks&&(a=n.hooks.processAllTokens(a)),n.walkTokens&&this.walkTokens(a,n.walkTokens);let l=(n.hooks?n.hooks.provideParser(e):e?S.parse:S.parseInline)(a,n);return n.hooks&&(l=n.hooks.postprocess(l)),l}catch(a){return i(a)}}}onError(e,t){return s=>{if(s.message+=`
65
- Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error occurred:</p><pre>"+R(s.message+"",!0)+"</pre>";return t?Promise.resolve(r):r}if(t)return Promise.reject(s);throw s}}},C=new qt;function b(e,t){return C.parse(e,t)}b.options=b.setOptions=function(e){return C.setOptions(e),b.defaults=C.defaults,ze(b.defaults),b};b.getDefaults=re;b.defaults=I;b.use=function(...e){return C.use(...e),b.defaults=C.defaults,ze(b.defaults),b};b.walkTokens=function(e,t){return C.walkTokens(e,t)};b.parseInline=C.parseInline;b.Parser=S;b.parser=S.parse;b.Renderer=H;b.TextRenderer=pe;b.Lexer=y;b.lexer=y.lex;b.Tokenizer=F;b.Hooks=U;b.parse=b;b.options;b.setOptions;b.use;b.walkTokens;b.parseInline;S.parse;y.lex;function Bt(e){return"averageAxisScore"in e}const Oe={service:[{maxSeconds:2,score:100},{maxSeconds:5,score:90},{maxSeconds:10,score:80},{maxSeconds:25,score:60},{maxSeconds:null,score:40}],environment:[{maxSeconds:.5,score:100},{maxSeconds:2,score:90},{maxSeconds:5,score:80},{maxSeconds:10,score:60},{maxSeconds:null,score:40}],agent:[{maxSeconds:2,score:100},{maxSeconds:5,score:90},{maxSeconds:15,score:80},{maxSeconds:30,score:60},{maxSeconds:null,score:40}]};function Ut(e){return e.includes("service")?"service":e.includes("environment")?"environment":"agent"}function _t(e){return Oe[e]}function jt(e,t){if(e===null||e<=0)return 0;const s=e/1e3,r=Oe[t];for(let n=0;n<r.length;n++){const i=r[n];if(i.maxSeconds===null||s<=i.maxSeconds)return n}return r.length-1}function $e(e){return e<1?`${e*1e3}ms`:Number.isInteger(e)?`${e}s`:`${e.toFixed(1)}s`}function Nt(e,t){if(e.maxSeconds===null){const s=t?.maxSeconds;return s!=null?`> ${$e(s)}`:"any"}return`≤ ${$e(e.maxSeconds)}`}const Dt={service:"Service",environment:"Environment",agent:"Agent"};function Ot(e){return Dt[e]}b.setOptions({gfm:!0,breaks:!1});function Ft(e){try{const t=b.parse(e,{async:!1});return Ht(t)}catch{return`<pre>${u(e)}</pre>`}}function Ht(e){return e.replace(/<\s*\/?\s*(script|style|iframe|object|embed)[^>]*>/gi,"").replace(/\s+on[a-z]+\s*=\s*("[^"]*"|'[^']*'|[^\s>]+)/gi,"").replace(/(href|src)\s*=\s*("\s*javascript:[^"]*"|'\s*javascript:[^']*'|\s*javascript:[^\s>]+)/gi,'$1="#"')}function u(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function $(e){return!Number.isFinite(e)||e<0?"—":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(1)}s`}function Z(e){return e===void 0||e<=0?"—":`$${e.toFixed(4)}`}function ye(e){if(!e)return"—";const t=e.input+e.output+(e.cacheReadInput??0);return t===0?"—":t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}k`:t.toLocaleString()}function Zt(e){try{return new Date(e).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}catch{return e}}function Kt(e){return e>=90?"score-green":e>=80?"score-yellow":e>=70?"score-orange":"score-red"}function Gt(e){return e>=90?"fill-green":e>=80?"fill-yellow":e>=70?"fill-orange":"fill-red"}function Qt(e){const t=e.indexOf("@");return t===-1?e:e.slice(0,t)}function K(e){const t=e.indexOf("@");return t===-1?null:e.slice(t+1)}function Fe(e){return e.replace(/ \[[^\]]+\]$/,"")}function ne(e){const t=K(e.scenarioKey);return t?`${e.agentName} @${t}`:e.agentName}function He(e){const t=new Map;for(const r of e){const n=Qt(r.scenarioKey);let i=t.get(n);i||(i={scenarioKey:n,scenarioName:Fe(r.scenarioName),entries:[],prompt:r.prompt,rubric:r.rubric},t.set(n,i)),i.entries.push(r)}const s=Array.from(t.values());for(const r of s)r.entries.sort((n,i)=>{const a=n.agentName.localeCompare(i.agentName);if(a!==0)return a;const l=K(n.scenarioKey)??"",c=K(i.scenarioKey)??"";return l.localeCompare(c)});return s.sort((r,n)=>r.scenarioKey.localeCompare(n.scenarioKey)),s}function z(e,t=!1){return e===void 0?`<span class="score-badge score-na${t?" score-badge-lg":""}">—</span>`:`<span class="score-badge ${Kt(e)}${t?" score-badge-lg":""}">${e}</span>`}function he(e,t=100){const s=Math.max(0,Math.min(100,e/t*100));return`<div class="progress-bar"><div class="fill ${Gt(s)}" style="width: ${s}%"></div></div>`}function Se(e,t){return`
64
+ `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${R(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:s}){let r=this.parser.parseInline(s),n=be(e);if(n===null)return r;e=n;let i='<a href="'+e+'"';return t&&(i+=' title="'+R(t)+'"'),i+=">"+r+"</a>",i}image({href:e,title:t,text:s,tokens:r}){r&&(s=this.parser.parseInline(r,this.parser.textRenderer));let n=be(e);if(n===null)return R(s);e=n;let i=`<img src="${e}" alt="${R(s)}"`;return t&&(i+=` title="${R(t)}"`),i+=">",i}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:R(e.text)}},pe=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},S=class se{options;renderer;textRenderer;constructor(t){this.options=t||I,this.options.renderer=this.options.renderer||new H,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new pe}static parse(t,s){return new se(s).parse(t)}static parseInline(t,s){return new se(s).parseInline(t)}parse(t){this.renderer.parser=this;let s="";for(let r=0;r<t.length;r++){let n=t[r];if(this.options.extensions?.renderers?.[n.type]){let a=n,o=this.options.extensions.renderers[a.type].call({parser:this},a);if(o!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(a.type)){s+=o||"";continue}}let i=n;switch(i.type){case"space":{s+=this.renderer.space(i);break}case"hr":{s+=this.renderer.hr(i);break}case"heading":{s+=this.renderer.heading(i);break}case"code":{s+=this.renderer.code(i);break}case"table":{s+=this.renderer.table(i);break}case"blockquote":{s+=this.renderer.blockquote(i);break}case"list":{s+=this.renderer.list(i);break}case"checkbox":{s+=this.renderer.checkbox(i);break}case"html":{s+=this.renderer.html(i);break}case"def":{s+=this.renderer.def(i);break}case"paragraph":{s+=this.renderer.paragraph(i);break}case"text":{s+=this.renderer.text(i);break}default:{let a='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return s}parseInline(t,s=this.renderer){this.renderer.parser=this;let r="";for(let n=0;n<t.length;n++){let i=t[n];if(this.options.extensions?.renderers?.[i.type]){let o=this.options.extensions.renderers[i.type].call({parser:this},i);if(o!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(i.type)){r+=o||"";continue}}let a=i;switch(a.type){case"escape":{r+=s.text(a);break}case"html":{r+=s.html(a);break}case"link":{r+=s.link(a);break}case"image":{r+=s.image(a);break}case"checkbox":{r+=s.checkbox(a);break}case"strong":{r+=s.strong(a);break}case"em":{r+=s.em(a);break}case"codespan":{r+=s.codespan(a);break}case"br":{r+=s.br(a);break}case"del":{r+=s.del(a);break}case"text":{r+=s.text(a);break}default:{let o='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(o),"";throw new Error(o)}}}return r}},U=class{options;block;constructor(e){this.options=e||I}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?y.lex:y.lexInline}provideParser(e=this.block){return e?S.parse:S.parseInline}},qt=class{defaults=re();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=S;Renderer=H;TextRenderer=pe;Lexer=y;Tokenizer=F;Hooks=U;constructor(...e){this.use(...e)}walkTokens(e,t){let s=[];for(let r of e)switch(s=s.concat(t.call(this,r)),r.type){case"table":{let n=r;for(let i of n.header)s=s.concat(this.walkTokens(i.tokens,t));for(let i of n.rows)for(let a of i)s=s.concat(this.walkTokens(a.tokens,t));break}case"list":{let n=r;s=s.concat(this.walkTokens(n.items,t));break}default:{let n=r;this.defaults.extensions?.childTokens?.[n.type]?this.defaults.extensions.childTokens[n.type].forEach(i=>{let a=n[i].flat(1/0);s=s.concat(this.walkTokens(a,t))}):n.tokens&&(s=s.concat(this.walkTokens(n.tokens,t)))}}return s}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(s=>{let r={...s};if(r.async=this.defaults.async||r.async||!1,s.extensions&&(s.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let i=t.renderers[n.name];i?t.renderers[n.name]=function(...a){let o=n.renderer.apply(this,a);return o===!1&&(o=i.apply(this,a)),o}:t.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=t[n.level];i?i.unshift(n.tokenizer):t[n.level]=[n.tokenizer],n.start&&(n.level==="block"?t.startBlock?t.startBlock.push(n.start):t.startBlock=[n.start]:n.level==="inline"&&(t.startInline?t.startInline.push(n.start):t.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(t.childTokens[n.name]=n.childTokens)}),r.extensions=t),s.renderer){let n=this.defaults.renderer||new H(this.defaults);for(let i in s.renderer){if(!(i in n))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let a=i,o=s.renderer[a],c=n[a];n[a]=(...l)=>{let p=o.apply(n,l);return p===!1&&(p=c.apply(n,l)),p||""}}r.renderer=n}if(s.tokenizer){let n=this.defaults.tokenizer||new F(this.defaults);for(let i in s.tokenizer){if(!(i in n))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let a=i,o=s.tokenizer[a],c=n[a];n[a]=(...l)=>{let p=o.apply(n,l);return p===!1&&(p=c.apply(n,l)),p}}r.tokenizer=n}if(s.hooks){let n=this.defaults.hooks||new U;for(let i in s.hooks){if(!(i in n))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let a=i,o=s.hooks[a],c=n[a];U.passThroughHooks.has(i)?n[a]=l=>{if(this.defaults.async&&U.passThroughHooksRespectAsync.has(i))return(async()=>{let d=await o.call(n,l);return c.call(n,d)})();let p=o.call(n,l);return c.call(n,p)}:n[a]=(...l)=>{if(this.defaults.async)return(async()=>{let d=await o.apply(n,l);return d===!1&&(d=await c.apply(n,l)),d})();let p=o.apply(n,l);return p===!1&&(p=c.apply(n,l)),p}}r.hooks=n}if(s.walkTokens){let n=this.defaults.walkTokens,i=s.walkTokens;r.walkTokens=function(a){let o=[];return o.push(i.call(this,a)),n&&(o=o.concat(n.call(this,a))),o}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return y.lex(e,t??this.defaults)}parser(e,t){return S.parse(e,t??this.defaults)}parseMarkdown(e){return(t,s)=>{let r={...s},n={...this.defaults,...r},i=this.onError(!!n.silent,!!n.async);if(this.defaults.async===!0&&r.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(n.hooks&&(n.hooks.options=n,n.hooks.block=e),n.async)return(async()=>{let a=n.hooks?await n.hooks.preprocess(t):t,o=await(n.hooks?await n.hooks.provideLexer(e):e?y.lex:y.lexInline)(a,n),c=n.hooks?await n.hooks.processAllTokens(o):o;n.walkTokens&&await Promise.all(this.walkTokens(c,n.walkTokens));let l=await(n.hooks?await n.hooks.provideParser(e):e?S.parse:S.parseInline)(c,n);return n.hooks?await n.hooks.postprocess(l):l})().catch(i);try{n.hooks&&(t=n.hooks.preprocess(t));let a=(n.hooks?n.hooks.provideLexer(e):e?y.lex:y.lexInline)(t,n);n.hooks&&(a=n.hooks.processAllTokens(a)),n.walkTokens&&this.walkTokens(a,n.walkTokens);let o=(n.hooks?n.hooks.provideParser(e):e?S.parse:S.parseInline)(a,n);return n.hooks&&(o=n.hooks.postprocess(o)),o}catch(a){return i(a)}}}onError(e,t){return s=>{if(s.message+=`
65
+ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error occurred:</p><pre>"+R(s.message+"",!0)+"</pre>";return t?Promise.resolve(r):r}if(t)return Promise.reject(s);throw s}}},C=new qt;function b(e,t){return C.parse(e,t)}b.options=b.setOptions=function(e){return C.setOptions(e),b.defaults=C.defaults,ze(b.defaults),b};b.getDefaults=re;b.defaults=I;b.use=function(...e){return C.use(...e),b.defaults=C.defaults,ze(b.defaults),b};b.walkTokens=function(e,t){return C.walkTokens(e,t)};b.parseInline=C.parseInline;b.Parser=S;b.parser=S.parse;b.Renderer=H;b.TextRenderer=pe;b.Lexer=y;b.lexer=y.lex;b.Tokenizer=F;b.Hooks=U;b.parse=b;b.options;b.setOptions;b.use;b.walkTokens;b.parseInline;S.parse;y.lex;function Bt(e){return"averageAxisScore"in e}const Oe={service:[{maxSeconds:2,score:100},{maxSeconds:5,score:90},{maxSeconds:10,score:80},{maxSeconds:25,score:60},{maxSeconds:null,score:40}],environment:[{maxSeconds:.5,score:100},{maxSeconds:2,score:90},{maxSeconds:5,score:80},{maxSeconds:10,score:60},{maxSeconds:null,score:40}],agent:[{maxSeconds:2,score:100},{maxSeconds:5,score:90},{maxSeconds:15,score:80},{maxSeconds:30,score:60},{maxSeconds:null,score:40}]};function Ut(e){return e.includes("service")?"service":e.includes("environment")?"environment":"agent"}function _t(e){return Oe[e]}function jt(e,t){if(e===null||e<=0)return 0;const s=e/1e3,r=Oe[t];for(let n=0;n<r.length;n++){const i=r[n];if(i.maxSeconds===null||s<=i.maxSeconds)return n}return r.length-1}function $e(e){return e<1?`${e*1e3}ms`:Number.isInteger(e)?`${e}s`:`${e.toFixed(1)}s`}function Nt(e,t){if(e.maxSeconds===null){const s=t?.maxSeconds;return s!=null?`> ${$e(s)}`:"any"}return`≤ ${$e(e.maxSeconds)}`}const Dt={service:"Service",environment:"Environment",agent:"Agent"};function Ot(e){return Dt[e]}b.setOptions({gfm:!0,breaks:!1});function Ft(e){try{const t=b.parse(e,{async:!1});return Ht(t)}catch{return`<pre>${u(e)}</pre>`}}function Ht(e){return e.replace(/<\s*\/?\s*(script|style|iframe|object|embed)[^>]*>/gi,"").replace(/\s+on[a-z]+\s*=\s*("[^"]*"|'[^']*'|[^\s>]+)/gi,"").replace(/(href|src)\s*=\s*("\s*javascript:[^"]*"|'\s*javascript:[^']*'|\s*javascript:[^\s>]+)/gi,'$1="#"')}function u(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function $(e){return!Number.isFinite(e)||e<0?"—":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(1)}s`}function Z(e){return e===void 0||e<=0?"—":`$${e.toFixed(4)}`}function ye(e){if(!e)return"—";const t=e.input+e.output+(e.cacheReadInput??0);return t===0?"—":t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}k`:t.toLocaleString()}function Zt(e){try{return new Date(e).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}catch{return e}}function Kt(e){return e>=90?"score-green":e>=80?"score-yellow":e>=70?"score-orange":"score-red"}function Gt(e){return e>=90?"fill-green":e>=80?"fill-yellow":e>=70?"fill-orange":"fill-red"}function Qt(e){const t=e.indexOf("@");return t===-1?e:e.slice(0,t)}function K(e){const t=e.indexOf("@");return t===-1?null:e.slice(t+1)}function Fe(e){return e.replace(/ \[[^\]]+\]$/,"")}function ne(e){const t=K(e.scenarioKey);return t?`${e.agentName} @${t}`:e.agentName}function He(e){const t=new Map;for(const r of e){const n=Qt(r.scenarioKey);let i=t.get(n);i||(i={scenarioKey:n,scenarioName:Fe(r.scenarioName),entries:[],prompt:r.prompt,rubric:r.rubric},t.set(n,i)),i.entries.push(r)}const s=Array.from(t.values());for(const r of s)r.entries.sort((n,i)=>{const a=n.agentName.localeCompare(i.agentName);if(a!==0)return a;const o=K(n.scenarioKey)??"",c=K(i.scenarioKey)??"";return o.localeCompare(c)});return s.sort((r,n)=>r.scenarioKey.localeCompare(n.scenarioKey)),s}function z(e,t=!1){return e===void 0?`<span class="score-badge score-na${t?" score-badge-lg":""}">—</span>`:`<span class="score-badge ${Kt(e)}${t?" score-badge-lg":""}">${e}</span>`}function he(e,t=100){const s=Math.max(0,Math.min(100,e/t*100));return`<div class="progress-bar"><div class="fill ${Gt(s)}" style="width: ${s}%"></div></div>`}function Se(e,t){return`
66
66
  <div class="dimension-item">
67
67
  <span class="dimension-label">${u(e)}</span>
68
68
  ${he(t)}
@@ -138,7 +138,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
138
138
  </thead>
139
139
  <tbody>${n}</tbody>
140
140
  </table>
141
- </section>`}function Jt(e,t,s){const r=Yt(e,t,s),n=e.entries.map((i,a)=>{const l=t+a;return es(i,l,s,e.scenarioKey)+ts(i,l,e.scenarioKey)}).join("");return r+n}function Yt(e,t,s){return s?`
141
+ </section>`}function Jt(e,t,s){const r=Yt(e,t,s),n=e.entries.map((i,a)=>{const o=t+a;return es(i,o,s,e.scenarioKey)+ts(i,o,e.scenarioKey)}).join("");return r+n}function Yt(e,t,s){return s?`
142
142
  <tr class="scenario-header-row expanded" data-scenario="${u(e.scenarioKey)}">
143
143
  <td><span class="expand-icon">▶</span></td>
144
144
  <td class="col-scenario-header">${u(e.scenarioName)}</td>
@@ -158,10 +158,10 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<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,r){const n=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>`:"",l=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,r){const n=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`
162
162
  <tr class="result-row agent-row" data-index="${t}" data-scenario="${u(r)}">
163
163
  <td class="col-expand-indent"><span class="expand-icon">▶</span></td>
164
- <td class="col-agent">${u(ne(e))}${l}${a}</td>
164
+ <td class="col-agent">${u(ne(e))}${o}${a}</td>
165
165
  <td class="col-score">${z(n?.axisScore)}</td>
166
166
  <td class="col-score hide-mobile">${z(n?.goalAchievement.score)}</td>
167
167
  <td class="col-score hide-mobile">${z(n?.environment.score)}</td>
@@ -173,7 +173,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
173
173
  </tr>`;const c=i?'<span class="score-badge score-red">Fail</span>':'<span class="score-badge score-green">Pass</span>';return`
174
174
  <tr class="result-row agent-row" data-index="${t}" data-scenario="${u(r)}">
175
175
  <td class="col-expand-indent"><span class="expand-icon">▶</span></td>
176
- <td class="col-agent">${u(ne(e))}${l}${a}</td>
176
+ <td class="col-agent">${u(ne(e))}${o}${a}</td>
177
177
  <td class="col-score">${c}</td>
178
178
  <td class="col-right hide-mobile">${ye(e.tokenUsage)}</td>
179
179
  <td class="col-right hide-mobile">${$(e.durationMs)}</td>
@@ -241,14 +241,14 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<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 r=`<h3>${u(e)}${ls(e)}</h3>`;if(t.interactionCount===0)return`
244
+ </div>`}function V(e,t,s){const r=`<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
  ${r}
248
248
  <span class="section-score">${t.score} / 100</span>
249
249
  </div>
250
250
  <div class="category-empty-state">${u(cs(e))}</div>
251
- </div>`;const n=t.dimensions,i=t.audits.filter(f=>f.rationale!=="default"),a=i.length>0,l=e==="Agent",c=e==="Agent",o=[{label:"Success",value:n.success},{label:"Speed",value:n.speed},...c?[{label:"Relevance",value:n.relevance}]:[],...l?[{label:"Necessity",value:n.necessity}]:[]],p=o.filter(f=>f.value<100),d=t.score>=100&&p.length===0,h=l&&t.necessity.rationale!=="default"?t.necessity:null,m=a?ds(o,p,i,c,d,h,s):"";return`
251
+ </div>`;const n=t.dimensions,i=t.audits.filter(f=>f.rationale!=="default"),a=i.length>0,o=e==="Agent",c=e==="Agent",l=[{label:"Success",value:n.success},{label:"Speed",value:n.speed},...c?[{label:"Relevance",value:n.relevance}]:[],...o?[{label:"Necessity",value:n.necessity}]:[]],p=l.filter(f=>f.value<100),d=t.score>=100&&p.length===0,h=o&&t.necessity.rationale!=="default"?t.necessity:null,m=a?ds(l,p,i,c,d,h,s):"";return`
252
252
  <div class="detail-section">
253
253
  <div class="section-header">
254
254
  ${r}
@@ -259,7 +259,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
259
259
  ${a?`&middot; ${t.auditedCount} audited`:""}
260
260
  </div>
261
261
  ${m}
262
- </div>`}function ls(e){const t=os(e);return t?`<button class="info-btn" data-tooltip="${u(t)}" aria-label="What is the ${u(e)} score?" type="button">ℹ</button>`:""}function os(e){switch(e){case"Environment":return"Interactions with the local execution environment — filesystem reads/writes, shell commands, processes. Each call is scored on whether it succeeded and how fast it returned.";case"Service":return"Calls to external services — HTTP requests, MCP tools, third-party APIs. Each call is scored on whether it succeeded and how fast it returned.";case"Agent":return"The agent's own decisions across the run — model thinking, tool choice, and judgment. Scored on success, speed, context relevance, and whether each action was necessary.";default:return""}}function cs(e){switch(e){case"Environment":return"No environment interactions (filesystem, shell, processes) in this run.";case"Service":return"No service interactions (HTTP requests, MCP tools, external APIs) in this run.";case"Agent":return"No agent decision points captured in this run.";default:return`No ${e.toLowerCase()} interactions in this run.`}}function ds(e,t,s,r,n,i,a){const l=g=>g.success<1||g.speed<1||r&&g.contextRelevance<1,c=s.filter(l),o=s.filter(g=>!l(g));if(n)return`
262
+ </div>`}function os(e){const t=ls(e);return t?`<button class="info-btn" data-tooltip="${u(t)}" aria-label="What is the ${u(e)} score?" type="button">ℹ</button>`:""}function ls(e){switch(e){case"Environment":return"Interactions with the local execution environment — filesystem reads/writes, shell commands, processes. Each call is scored on whether it succeeded and how fast it returned.";case"Service":return"Calls to external services — HTTP requests, MCP tools, third-party APIs. Each call is scored on whether it succeeded and how fast it returned.";case"Agent":return"The agent's own decisions across the run — model thinking, tool choice, and judgment. Scored on success, speed, context relevance, and whether each action was necessary.";default:return""}}function cs(e){switch(e){case"Environment":return"No environment interactions (filesystem, shell, processes) in this run.";case"Service":return"No service interactions (HTTP requests, MCP tools, external APIs) in this run.";case"Agent":return"No agent decision points captured in this run.";default:return`No ${e.toLowerCase()} interactions in this run.`}}function ds(e,t,s,r,n,i,a){const o=g=>g.success<1||g.speed<1||r&&g.contextRelevance<1,c=s.filter(o),l=s.filter(g=>!o(g));if(n)return`
263
263
  <div class="dimensions-grid">${e.map(g=>Se(g.label,g.value)).join("")}</div>`;const p=new Map;if(a)for(const g of a.interactions)p.set(g.id,g);const d=g=>`
264
264
  <div class="cat-deduction-item">
265
265
  <a class="cat-deduction-id interaction-link" data-interaction-id="${g.id}" title="Jump to this interaction in the transcript">Interaction #${g.id}</a>
@@ -269,17 +269,17 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
269
269
  <span class="cat-deduction-id">Necessity</span>
270
270
  <span class="cat-deduction-scores">${i.unnecessaryIds.length>0?`<span class="dim-score-tag">Unnecessary: ${h}</span>`:""}</span>
271
271
  <span class="cat-deduction-rationale">${u(i.rationale)}</span>
272
- </div>`:"",f=c.map(d).join(""),w=o.map(d).join(""),A=o.length?`
273
- <button class="audits-toggle">Show ${o.length} other passing interaction${o.length!==1?"s":""}</button>
274
- <div class="audits-list">${w}</div>`:"",E=!!m||f.length>0||o.length>0;return`
272
+ </div>`:"",f=c.map(d).join(""),w=l.map(d).join(""),A=l.length?`
273
+ <button class="audits-toggle">Show ${l.length} other passing interaction${l.length!==1?"s":""}</button>
274
+ <div class="audits-list">${w}</div>`:"",E=!!m||f.length>0||l.length>0;return`
275
275
  <div class="dimensions-grid">${e.map(g=>Se(g.label,g.value)).join("")}</div>
276
276
  ${E?`<div class="deductions-summary">
277
277
  <div class="deductions-header">Score breakdown</div>
278
278
  ${m}
279
279
  ${f}
280
280
  ${A}
281
- </div>`:""}`}function us(e,t,s){return[{label:"Success",value:e.success},{label:"Speed",value:e.speed},...t?[{label:"Relevance",value:e.contextRelevance}]:[]].filter(n=>n.value<1).map(n=>n.label==="Speed"?ps(n.value,s):`<span class="dim-score-tag">${n.label}: ${Ze(n.value)}</span>`).join("")}function ps(e,t){const s=t?hs(t):"";return`<span class="${s?"dim-score-tag speed-tag":"dim-score-tag"}">Speed: ${Ze(e)}${s}</span>`}function hs(e){const t=Ut(e.categories),s=_t(t),r=jt(e.durationMs,t),n=e.durationMs!==null&&e.durationMs>0?$(e.durationMs):"no timing data",i=s.map((a,l)=>{const c=l===r,o=Nt(a,l>0?s[l-1]:void 0);return`<span class="speed-tooltip-row${c?" speed-tooltip-row-active":""}">
282
- <span class="speed-tooltip-range">${u(o)}</span>
281
+ </div>`:""}`}function us(e,t,s){return[{label:"Success",value:e.success},{label:"Speed",value:e.speed},...t?[{label:"Relevance",value:e.contextRelevance}]:[]].filter(n=>n.value<1).map(n=>n.label==="Speed"?ps(n.value,s):`<span class="dim-score-tag">${n.label}: ${Ze(n.value)}</span>`).join("")}function ps(e,t){const s=t?hs(t):"";return`<span class="${s?"dim-score-tag speed-tag":"dim-score-tag"}">Speed: ${Ze(e)}${s}</span>`}function hs(e){const t=Ut(e.categories),s=_t(t),r=jt(e.durationMs,t),n=e.durationMs!==null&&e.durationMs>0?$(e.durationMs):"no timing data",i=s.map((a,o)=>{const c=o===r,l=Nt(a,o>0?s[o-1]:void 0);return`<span class="speed-tooltip-row${c?" speed-tooltip-row-active":""}">
282
+ <span class="speed-tooltip-range">${u(l)}</span>
283
283
  <span class="speed-tooltip-score">${a.score}</span>
284
284
  </span>`}).join("");return`<span class="speed-tooltip" role="tooltip">
285
285
  <span class="speed-tooltip-header">
@@ -287,7 +287,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
287
287
  <span class="speed-tooltip-actual">${u(n)}</span>
288
288
  </span>
289
289
  <span class="speed-tooltip-tiers">${i}</span>
290
- </span>`}function Ze(e){return(e*100).toFixed(0)}const X=30;function fs(e,t){const{interactions:s}=e;if(!s.some(d=>d.startMs!==null)||s.length===0)return"";const n=t>0?t:e.stats.wallClockMs||vs(s);if(n<=0)return"";const i=xs(n),a=s.length>X,l=a?s.slice(0,X):s,c=a?s.slice(X):[],o=e.stats.startupMs&&e.stats.startupMs>0?Ee("agent startup",0,e.stats.startupMs,n):"",p=e.stats.shutdownMs&&e.stats.shutdownMs>0?Ee("agent shutdown",n-e.stats.shutdownMs,e.stats.shutdownMs,n):"";return`
290
+ </span>`}function Ze(e){return(e*100).toFixed(0)}const X=30;function fs(e,t){const{interactions:s}=e;if(!s.some(d=>d.startMs!==null)||s.length===0)return"";const n=t>0?t:e.stats.wallClockMs||vs(s);if(n<=0)return"";const i=xs(n),a=s.length>X,o=a?s.slice(0,X):s,c=a?s.slice(X):[],l=e.stats.startupMs&&e.stats.startupMs>0?Ee("agent startup",0,e.stats.startupMs,n):"",p=e.stats.shutdownMs&&e.stats.shutdownMs>0?Ee("agent shutdown",n-e.stats.shutdownMs,e.stats.shutdownMs,n):"";return`
291
291
  <div class="detail-section">
292
292
  <div class="section-header">
293
293
  <h3>Timeline</h3>
@@ -304,8 +304,8 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
304
304
  <div class="wf-dur-col">Duration</div>
305
305
  </div>
306
306
  <div class="waterfall-body">
307
- ${o}
308
- ${l.map(d=>Re(d,n)).join("")}
307
+ ${l}
308
+ ${o.map(d=>Re(d,n)).join("")}
309
309
  ${a?`<div class="wf-overflow" style="display:none">${c.map(d=>Re(d,n)).join("")}${p}</div>`:p}
310
310
  </div>
311
311
  ${a?`<button class="wf-show-all">Show all ${s.length} interactions</button>`:""}
@@ -315,17 +315,17 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
315
315
  <span class="wf-legend-item"><span class="wf-legend-dot wf-agent"></span>Agent</span>
316
316
  </div>
317
317
  </div>
318
- </div>`}function Re(e,t){const s=e.startMs??0,r=e.durationMs??0,n=s/t*100,i=Math.max(.4,r/t*100),a=ks(e),l=e.hasError?" wf-bar-error":"",c=e.toolName??"thinking",o=e.categories.includes("environment")?"env":e.categories.includes("service")?"svc":"agent";return`
318
+ </div>`}function Re(e,t){const s=e.startMs??0,r=e.durationMs??0,n=s/t*100,i=Math.max(.4,r/t*100),a=ks(e),o=e.hasError?" wf-bar-error":"",c=e.toolName??"thinking",l=e.categories.includes("environment")?"env":e.categories.includes("service")?"svc":"agent";return`
319
319
  <div class="wf-row ${a}">
320
320
  <div class="wf-label-col">
321
321
  <a class="wf-id interaction-link" data-interaction-id="${e.id}" title="Jump to this interaction in the transcript">#${e.id}</a>
322
- <span class="wf-cat">${o}</span>
322
+ <span class="wf-cat">${l}</span>
323
323
  <span class="wf-tool">${u(c)}</span>
324
324
  </div>
325
325
  <div class="wf-timeline-col">
326
326
  <div class="wf-track">
327
- <div class="wf-bar${l}${n>60?" wf-tip-right":""}" style="left:${n.toFixed(2)}%;width:${i.toFixed(2)}%">
328
- ${gs(e,c,o)}
327
+ <div class="wf-bar${o}${n>60?" wf-tip-right":""}" style="left:${n.toFixed(2)}%;width:${i.toFixed(2)}%">
328
+ ${gs(e,c,l)}
329
329
  </div>
330
330
  </div>
331
331
  </div>
@@ -352,7 +352,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
352
352
  </div>
353
353
  </div>
354
354
  <div class="wf-dur-col">${$(s)}</div>
355
- </div>`}function ks(e){return e.categories.includes("environment")?"wf-env":e.categories.includes("service")?"wf-svc":"wf-agent"}function bs(e){return e<1024?`${e}B`:`${(e/1024).toFixed(1)}KB`}function vs(e){let t=0;for(const s of e)if(s.startMs!==null){const r=s.startMs+(s.durationMs??0);r>t&&(t=r)}return t}function xs(e){const t=[50,100,200,250,500,1e3,2e3,2500,5e3,1e4,15e3,3e4,6e4,12e4,3e5];let s=t[t.length-1];for(const n of t){const i=Math.floor(e/n);if(i>=3&&i<=8){s=n;break}}const r=[];for(let n=0;n<=e;n+=s)r.push({pct:n/e*100,label:$(n)});return r.length===0&&r.push({pct:0,label:"0s"}),r}function ws(e){const t=e.interactions.some(n=>n.content),s=e.lines.map((n,i)=>{const a=e.interactions[i];let l="cat-agent";a?a.categories.includes("environment")?l="cat-env":a.categories.includes("service")&&(l="cat-svc"):n.includes(" env ")?l="cat-env":(n.includes(" service ")||n.includes(" svc "))&&(l="cat-svc");const c=a?.content?" sparse-line-expandable":"",o=a?.content?`<div class="sparse-line-content"><pre>${u(a.content)}</pre></div>`:"",p=a?` data-interaction-id="${a.id}"`:"";return`<div class="sparse-line ${l}${c}"${p}>${u(n)}${o}</div>`}).join("");return`
355
+ </div>`}function ks(e){return e.categories.includes("environment")?"wf-env":e.categories.includes("service")?"wf-svc":"wf-agent"}function bs(e){return e<1024?`${e}B`:`${(e/1024).toFixed(1)}KB`}function vs(e){let t=0;for(const s of e)if(s.startMs!==null){const r=s.startMs+(s.durationMs??0);r>t&&(t=r)}return t}function xs(e){const t=[50,100,200,250,500,1e3,2e3,2500,5e3,1e4,15e3,3e4,6e4,12e4,3e5];let s=t[t.length-1];for(const n of t){const i=Math.floor(e/n);if(i>=3&&i<=8){s=n;break}}const r=[];for(let n=0;n<=e;n+=s)r.push({pct:n/e*100,label:$(n)});return r.length===0&&r.push({pct:0,label:"0s"}),r}function ws(e){const t=e.interactions.some(n=>n.content),s=e.lines.map((n,i)=>{const a=e.interactions[i];let o="cat-agent";a?a.categories.includes("environment")?o="cat-env":a.categories.includes("service")&&(o="cat-svc"):n.includes(" env ")?o="cat-env":(n.includes(" service ")||n.includes(" svc "))&&(o="cat-svc");const c=a?.content?" sparse-line-expandable":"",l=a?.content?`<div class="sparse-line-content"><pre>${u(a.content)}</pre></div>`:"",p=a?` data-interaction-id="${a.id}"`:"";return`<div class="sparse-line ${o}${c}"${p}>${u(n)}${l}</div>`}).join("");return`
356
356
  <div class="detail-section">
357
357
  <div class="section-header">
358
358
  <h3>Transcript of agent interactions<button class="info-btn" data-tooltip="${u("A condensed, ordered log of every tool call, model response, and decision the agent made during this run, classified as Environment, Service, or Agent. Each numbered line corresponds to the Interaction #N references in the score breakdowns above.")}" aria-label="What is this?" type="button">ℹ</button></h3>
@@ -388,7 +388,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
388
388
  <tr>
389
389
  <td class="modal-config-label">${u(n)}</td>
390
390
  <td><code>${u(i)}</code></td>
391
- </tr>`)};if(typeof e.command=="string"&&r("Command",e.command),typeof e.model=="string"&&r("Model",e.model),Array.isArray(e.skills)&&e.skills.length>0&&r("Skills",e.skills.map(n=>String(n)).join(", ")),e.flags&&typeof e.flags=="object"){const n=Object.entries(e.flags);if(n.length>0){const i=n.map(([a,l])=>l===!0?`--${a}`:l===!1?`--no-${a}`:`--${a}=${l}`).join(" ");r("Flags",i)}}return`
391
+ </tr>`)};if(typeof e.command=="string"&&r("Command",e.command),typeof e.model=="string"&&r("Model",e.model),Array.isArray(e.skills)&&e.skills.length>0&&r("Skills",e.skills.map(n=>String(n)).join(", ")),e.flags&&typeof e.flags=="object"){const n=Object.entries(e.flags);if(n.length>0){const i=n.map(([a,o])=>o===!0?`--${a}`:o===!1?`--no-${a}`:`--${a}=${o}`).join(" ");r("Flags",i)}}return`
392
392
  <div class="modal-section">
393
393
  <h4>Agent: <code class="modal-section-value">${u(t)}</code></h4>
394
394
  ${s.length>0?`<table class="modal-config-table"><tbody>${s.join("")}</tbody></table>`:""}
@@ -400,11 +400,11 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
400
400
  <div class="modal-section">
401
401
  <h4>Skills</h4>
402
402
  <ul class="modal-config-list">${e.map(s=>`<li><code>${u(s)}</code></li>`).join("")}</ul>
403
- </div>`}function Te(e,t){const s=t.map(r=>`
403
+ </div>`}function Te(e,t){const s=t.map(r=>{const n=r.action==="copy"?`<code>${u(r.match)}</code> → <code>${u(r.destination)}</code>`:`<code>${u(r.command)}</code>`;return`
404
404
  <li>
405
405
  <span class="modal-config-label-inline">${u(r.action)}</span>
406
- <code>${u(r.command)}</code>
407
- </li>`).join("");return`
406
+ ${n}
407
+ </li>`}).join("");return`
408
408
  <div class="modal-section">
409
409
  <h4>${u(e)}</h4>
410
410
  <ul class="modal-config-list">${s}</ul>
@@ -448,7 +448,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
448
448
  </div>
449
449
  </div>
450
450
  </div>
451
- </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 r=0;r<e.length;r++){const n=e[r].path.split("/").filter(Boolean);let i=t;for(let a=0;a<n.length-1;a++){const l=n[a];let c=i.children.find(o=>o.type==="dir"&&o.name===l);c||(c={type:"dir",name:l,children:[]},i.children.push(c)),i=c}i.children.push({type:"file",name:n[n.length-1],size:e[r].size,mimeType:e[r].mimeType,artifactIndex:r})}const s=r=>{r.children.sort((n,i)=>n.type!==i.type?n.type==="dir"?-1:1:n.name.localeCompare(i.name));for(const n of r.children)n.type==="dir"&&s(n)};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>',Ke='<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 Ge(e,t){const s=`padding-left:${8+t*16}px;`;if(e.type==="file"){const n=u(e.name);return`
451
+ </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 r=0;r<e.length;r++){const n=e[r].path.split("/").filter(Boolean);let i=t;for(let a=0;a<n.length-1;a++){const o=n[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:n[n.length-1],size:e[r].size,mimeType:e[r].mimeType,artifactIndex:r})}const s=r=>{r.children.sort((n,i)=>n.type!==i.type?n.type==="dir"?-1:1:n.name.localeCompare(i.name));for(const n of r.children)n.type==="dir"&&s(n)};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>',Ke='<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 Ge(e,t){const s=`padding-left:${8+t*16}px;`;if(e.type==="file"){const n=u(e.name);return`
452
452
  <li class="art-tree-file">
453
453
  <div class="art-tree-row" style="${s}">
454
454
  <span class="art-tree-name" title="${n}">${n}</span>
@@ -493,8 +493,8 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
493
493
  <ul class="art-tree-root" data-artifacts-key="${t}" hidden>${r}</ul>
494
494
  <script type="application/json" class="artifacts-data" data-artifacts-key="${t}">${n}<\/script>
495
495
  ${Bs(t)}
496
- </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 r=e.classList.contains("expanded"),n=document.querySelectorAll(`.agent-row[data-scenario="${s}"]`),i=document.querySelectorAll(`.detail-row[data-scenario="${s}"]`);r?(e.classList.remove("expanded"),n.forEach(a=>a.classList.add("scenario-collapsed")),i.forEach(a=>{a.classList.remove("visible"),a.classList.add("scenario-collapsed");const l=a.id.replace("detail-","");document.querySelector(`.result-row[data-index="${l}"]`)?.classList.remove("expanded")})):(e.classList.add("expanded"),n.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 r=e.classList.contains("expanded");document.querySelectorAll(".result-row").forEach(n=>{n.classList.remove("expanded")}),document.querySelectorAll(".detail-row").forEach(n=>{n.classList.remove("visible")}),r||(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 r=s.classList.contains("visible");s.classList.toggle("visible"),e.textContent=r?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 r=s.querySelector(".wf-overflow");r&&(r.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 r=document.querySelector(`.modal-backdrop[data-modal-index="${s}"]`);r&&r.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 r=document.querySelector(`.modal-backdrop[data-error-index="${s}"]`);r&&r.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 r=e.closest(".detail-panel");if(!r)return;const n=r.querySelector(`.sparse-line[data-interaction-id="${CSS.escape(s)}"]`);if(!n)return;const i=r.querySelector(".sparse-index-content"),a=r.querySelector(".sparse-index-toggle");i&&!i.classList.contains("visible")&&(i.classList.add("visible"),a&&(a.textContent="Hide transcript")),n.scrollIntoView({behavior:"smooth",block:"center"}),n.classList.remove("interaction-flash"),n.offsetWidth,n.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 r=s.querySelector(".sparse-index-content");if(!r)return;const n=r.classList.contains("visible");r.classList.toggle("visible"),e.textContent=n?"Show transcript":"Hide transcript"})}),document.querySelectorAll(".sparse-line-expandable").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation(),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 r=s.querySelectorAll(".sparse-line-expandable"),n=Array.from(r).every(i=>i.classList.contains("expanded"));r.forEach(i=>{n?i.classList.remove("expanded"):i.classList.add("expanded")}),e.textContent=n?"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 r=0;r<t.length;r++)s[r]=t.charCodeAt(r);return s}function Qe(e,t){const s=URL.createObjectURL(e),r=document.createElement("a");r.href=s,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(s),0)}function js(e){const t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function J(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});Qe(s,js(e.path))}function Os(e,t){const s=fe(e.content);if(e.mimeType.startsWith("image/")){const r=new Blob([new Uint8Array(s)],{type:e.mimeType}),n=URL.createObjectURL(r);t.innerHTML=`<img class="artifact-image" alt="${J(e.path)}" src="${n}" />`;return}if(Ns(e.mimeType)){let r;try{r=new TextDecoder("utf-8",{fatal:!1}).decode(s)}catch{r=""}t.innerHTML=`<pre class="artifact-text">${J(r)}</pre>`;return}t.innerHTML=`
496
+ </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 r=e.classList.contains("expanded"),n=document.querySelectorAll(`.agent-row[data-scenario="${s}"]`),i=document.querySelectorAll(`.detail-row[data-scenario="${s}"]`);r?(e.classList.remove("expanded"),n.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"),n.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 r=e.classList.contains("expanded");document.querySelectorAll(".result-row").forEach(n=>{n.classList.remove("expanded")}),document.querySelectorAll(".detail-row").forEach(n=>{n.classList.remove("visible")}),r||(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 r=s.classList.contains("visible");s.classList.toggle("visible"),e.textContent=r?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 r=s.querySelector(".wf-overflow");r&&(r.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 r=document.querySelector(`.modal-backdrop[data-modal-index="${s}"]`);r&&r.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 r=document.querySelector(`.modal-backdrop[data-error-index="${s}"]`);r&&r.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 r=e.closest(".detail-panel");if(!r)return;const n=r.querySelector(`.sparse-line[data-interaction-id="${CSS.escape(s)}"]`);if(!n)return;const i=r.querySelector(".sparse-index-content"),a=r.querySelector(".sparse-index-toggle");i&&!i.classList.contains("visible")&&(i.classList.add("visible"),a&&(a.textContent="Hide transcript")),n.scrollIntoView({behavior:"smooth",block:"center"}),n.classList.remove("interaction-flash"),n.offsetWidth,n.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 r=s.querySelector(".sparse-index-content");if(!r)return;const n=r.classList.contains("visible");r.classList.toggle("visible"),e.textContent=n?"Show transcript":"Hide transcript"})}),document.querySelectorAll(".sparse-line-expandable").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation(),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 r=s.querySelectorAll(".sparse-line-expandable"),n=Array.from(r).every(i=>i.classList.contains("expanded"));r.forEach(i=>{n?i.classList.remove("expanded"):i.classList.add("expanded")}),e.textContent=n?"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 r=0;r<t.length;r++)s[r]=t.charCodeAt(r);return s}function Qe(e,t){const s=URL.createObjectURL(e),r=document.createElement("a");r.href=s,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(s),0)}function js(e){const t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function J(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});Qe(s,js(e.path))}function Os(e,t){const s=fe(e.content);if(e.mimeType.startsWith("image/")){const r=new Blob([new Uint8Array(s)],{type:e.mimeType}),n=URL.createObjectURL(r);t.innerHTML=`<img class="artifact-image" alt="${J(e.path)}" src="${n}" />`;return}if(Ns(e.mimeType)){let r;try{r=new TextDecoder("utf-8",{fatal:!1}).decode(s)}catch{r=""}t.innerHTML=`<pre class="artifact-text">${J(r)}</pre>`;return}t.innerHTML=`
497
497
  <div class="artifact-not-previewable">
498
498
  <p>This file type can’t be previewed inline.</p>
499
499
  <p class="artifact-not-previewable-meta">${J(e.mimeType)}</p>
500
- </div>`}function Fs(e,t,s){const r=D(t);if(!r||!r[s])return;const n=r[s],i=e.querySelector(`.artifact-modal[data-artifact-modal-key="${CSS.escape(t)}"]`);if(!i)return;const a=i.querySelector(".artifact-modal-title"),l=i.querySelector(".artifact-modal-meta"),c=i.querySelector(".artifact-modal-preview"),o=i.querySelector(".artifact-modal-download");!a||!l||!c||(a.textContent=n.path,l.textContent=`${n.mimeType} · ${Ds(n.size)}`,Os(n,c),o&&(o.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 r=document.querySelector(`.art-tree-root[data-artifacts-key="${CSS.escape(s)}"]`);if(!r)return;const n=r.hidden;r.hidden=!n,e.textContent=n?"Hide artifacts":"Show artifacts",e.setAttribute("aria-expanded",n?"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 r=s.classList.toggle("collapsed");e.setAttribute("aria-expanded",r?"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 r=s.dataset.artifactsKey;if(!r)return;const n=e.dataset.artifactIndex;n!==void 0&&Fs(s,r,Number(n))})}),document.querySelectorAll(".art-tree-download").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".artifacts-section");if(!s)return;const r=s.dataset.artifactsKey;if(!r)return;const n=e.dataset.artifactIndex;if(n===void 0)return;const i=D(r);if(!i)return;const a=i[Number(n)];a&&Ce(a)})}),document.querySelectorAll(".artifact-modal-download").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.dataset.artifactsKey,r=e.dataset.artifactIndex;if(!s||r===void 0)return;const n=D(s);if(!n)return;const i=n[Number(r)];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 r=D(s);if(!r||r.length===0)return;const n=r.map(l=>({path:l.path,bytes:fe(l.content)})),i=Zs(n),a=new Blob([new Uint8Array(i)],{type:"application/zip"});Qe(a,`artifacts-${s}.zip`)})})}function Zs(e){const t=new TextEncoder,s=[],r=[];let n=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,n,!0),M.set(f,46),r.push(M),n+=E.length+A}const a=n;let l=0;for(const m of r)l+=m.length;const c=new Uint8Array(22),o=new DataView(c.buffer);o.setUint32(0,101010256,!0),o.setUint16(4,0,!0),o.setUint16(6,0,!0),o.setUint16(8,e.length,!0),o.setUint16(10,e.length,!0),o.setUint32(12,l,!0),o.setUint32(16,a,!0),o.setUint16(20,0,!0);const p=a+l+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 r)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 r=0;r<8;r++)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>
500
+ </div>`}function Fs(e,t,s){const r=D(t);if(!r||!r[s])return;const n=r[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=n.path,o.textContent=`${n.mimeType} · ${Ds(n.size)}`,Os(n,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 r=document.querySelector(`.art-tree-root[data-artifacts-key="${CSS.escape(s)}"]`);if(!r)return;const n=r.hidden;r.hidden=!n,e.textContent=n?"Hide artifacts":"Show artifacts",e.setAttribute("aria-expanded",n?"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 r=s.classList.toggle("collapsed");e.setAttribute("aria-expanded",r?"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 r=s.dataset.artifactsKey;if(!r)return;const n=e.dataset.artifactIndex;n!==void 0&&Fs(s,r,Number(n))})}),document.querySelectorAll(".art-tree-download").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.closest(".artifacts-section");if(!s)return;const r=s.dataset.artifactsKey;if(!r)return;const n=e.dataset.artifactIndex;if(n===void 0)return;const i=D(r);if(!i)return;const a=i[Number(n)];a&&Ce(a)})}),document.querySelectorAll(".artifact-modal-download").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const s=e.dataset.artifactsKey,r=e.dataset.artifactIndex;if(!s||r===void 0)return;const n=D(s);if(!n)return;const i=n[Number(r)];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 r=D(s);if(!r||r.length===0)return;const n=r.map(o=>({path:o.path,bytes:fe(o.content)})),i=Zs(n),a=new Blob([new Uint8Array(i)],{type:"application/zip"});Qe(a,`artifacts-${s}.zip`)})})}function Zs(e){const t=new TextEncoder,s=[],r=[];let n=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,n,!0),M.set(f,46),r.push(M),n+=E.length+A}const a=n;let o=0;for(const m of r)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 r)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 r=0;r<8;r++)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>