@ls-stack/agent-eval 0.18.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{app-hAlVvT-Q.mjs → app-DsiLU65H.mjs} +3 -3
- package/dist/apps/web/dist/assets/index-Cba4MFa0.js +118 -0
- package/dist/apps/web/dist/assets/index-CvR6QCLa.css +1 -0
- package/dist/apps/web/dist/index.html +2 -2
- package/dist/bin.mjs +1 -1
- package/dist/{cli-3zANEAhG.mjs → cli-weogme5U.mjs} +10 -80
- package/dist/index.d.mts +121 -6
- package/dist/index.mjs +4 -4
- package/dist/runChild.mjs +1 -1
- package/dist/{runOrchestration-BBg_VUH5.mjs → runOrchestration-Cv1kiOAG.mjs} +578 -19
- package/dist/{runner-DxlahWDo.mjs → runner-B25oRQxX.mjs} +1 -1
- package/dist/{runner-RmZPRz-h.mjs → runner-DzrMtgBu.mjs} +2 -2
- package/dist/src-B879LZfo.mjs +3 -0
- package/package.json +1 -1
- package/skills/agent-eval/SKILL.md +34 -15
- package/dist/apps/web/dist/assets/index-BovjyzD8.css +0 -1
- package/dist/apps/web/dist/assets/index-BxcwUS7V.js +0 -118
- package/dist/src-BC4OrajN.mjs +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500;600&display=swap";.json-view{display:block;color:#4d4d4d;text-align:left;--json-property: #009033;--json-index: #676dff;--json-number: #676dff;--json-string: #b2762e;--json-boolean: #dc155e;--json-null: #dc155e}.json-view .json-view--property{color:var(--json-property)}.json-view .json-view--index{color:var(--json-index)}.json-view .json-view--number{color:var(--json-number)}.json-view .json-view--string{color:var(--json-string)}.json-view .json-view--boolean{color:var(--json-boolean)}.json-view .json-view--null{color:var(--json-null)}.json-view .jv-indent{padding-left:1em}.json-view .jv-chevron{display:inline-block;vertical-align:-20%;cursor:pointer;opacity:.4;width:1em;height:1em}:is(.json-view .jv-chevron:hover,.json-view .jv-size:hover+.jv-chevron){opacity:.8}.json-view .jv-size{cursor:pointer;opacity:.4;font-size:.875em;font-style:italic;margin-left:.5em;vertical-align:-5%;line-height:1}.json-view :is(.json-view--copy,.json-view--edit),.json-view .json-view--link svg{display:none;width:1em;height:1em;margin-left:.25em;cursor:pointer}.json-view .json-view--input{width:120px;margin-left:.25em;border-radius:4px;border:1px solid currentColor;padding:0 4px;font-size:87.5%;line-height:1.25;background:transparent}.json-view .json-view--deleting{outline:1px solid #da0000;background-color:#da000011;text-decoration-line:line-through}:is(.json-view:hover,.json-view--pair:hover)>:is(.json-view--copy,.json-view--edit),:is(.json-view:hover,.json-view--pair:hover)>.json-view--link svg{display:inline-block}.json-view .jv-button{background:transparent;outline:none;border:none;cursor:pointer;color:inherit}.json-view .cursor-pointer{cursor:pointer}.json-view svg{vertical-align:-10%}.jv-size-chevron~svg{vertical-align:-16%}.json-view_a11y{color:#545454;--json-property: #aa5d00;--json-index: #007299;--json-number: #007299;--json-string: #008000;--json-boolean: #d91e18;--json-null: #d91e18}.json-view_github{color:#005cc5;--json-property: #005cc5;--json-index: #005cc5;--json-number: #005cc5;--json-string: #032f62;--json-boolean: #005cc5;--json-null: #005cc5}.json-view_vscode{color:#005cc5;--json-property: #0451a5;--json-index: #0000ff;--json-number: #0000ff;--json-string: #a31515;--json-boolean: #0000ff;--json-null: #0000ff}.json-view_atom{color:#383a42;--json-property: #e45649;--json-index: #986801;--json-number: #986801;--json-string: #50a14f;--json-boolean: #0184bc;--json-null: #0184bc}.json-view_winter-is-coming{color:#0431fa;--json-property: #3a9685;--json-index: #ae408b;--json-number: #ae408b;--json-string: #8123a9;--json-boolean: #0184bc;--json-null: #0184bc}.json-view_vitesse{color:#393a34;--json-property: #998418;--json-index: #2f798a;--json-number: #2f798a;--json-string: #b56959;--json-boolean: #1e754f;--json-null: #ab5959}.vh724ok-1{display:flex;align-items:stretch;justify-content:flex-start;height:100vh;overflow:hidden;background:#fcfcfc}.vh724ok-2{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;flex:1;min-width:0;overflow-x:hidden;overflow-y:hidden}.vh724ok-2.vwx8nfh{overflow-x:auto}.vh724ok-3{width:100%;height:100%}.vh724ok-3.vwx8nfh{min-width:600px}.v9f9dyw-1{border-left:1px solid #e8e8eb;background:#f7f7f8;display:flex;align-items:center;justify-content:center;color:#6b6e76;font-size:12px;flex-shrink:0}.v9f9dyw-2{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;position:relative;flex-shrink:0;border-left:1px solid #e8e8eb;background:#f7f7f8;overflow:hidden}.v9f9dyw-3{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;padding:14px 18px 12px;border-bottom:1px solid #e8e8eb;background:#f7f7f8;flex-shrink:0}.v9f9dyw-4{display:flex;align-items:center;justify-content:space-between;gap:10px}.v9f9dyw-5{display:flex;align-items:center;justify-content:flex-start;gap:2px}.v9f9dyw-6{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.v9f9dyw-7{display:flex;align-items:center;justify-content:flex-start;gap:10px;min-width:0}.v9f9dyw-8{display:flex;align-items:center;justify-content:flex-start;gap:12px;min-width:0}.v9f9dyw-9{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:17px;color:#0a0b0d;font-weight:600;letter-spacing:-.01em}.v9f9dyw-10{display:flex;align-items:center;justify-content:flex-start;gap:4px;border-bottom:1px solid #e8e8eb;padding:10px 14px 0;flex-shrink:0;overflow-x:auto}.v9f9dyw-11{position:relative;padding:8px 12px;background:transparent;border:none;font-size:12px;font-weight:500;color:#6b6e76;white-space:nowrap;margin-bottom:-1px;border-bottom:1.5px solid transparent}.v9f9dyw-11:hover{color:#0a0b0d}.v9f9dyw-11.v18pp08p{color:#0a0b0d;border-bottom-color:#22d3ee}.v9f9dyw-12{flex:1;overflow:auto;padding:18px 20px}.v9f9dyw-13{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.v9f9dyw-14{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;padding:14px 0;border-bottom:1px solid #e8e8eb}.v9f9dyw-14:first-child{padding-top:0}.v9f9dyw-14:last-child{border-bottom:none;padding-bottom:0}.v9f9dyw-15{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.v9f9dyw-16{font-size:13px;color:#0a0b0d}.v9f9dyw-17{color:#dc2626}.v9f9dyw-18{font-weight:600;margin-bottom:8px}.v9f9dyw-19{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:11px;white-space:pre-wrap;opacity:.8;background:#f0f0f2;border:1px solid #e8e8eb;border-radius:var(--radius-sm);padding:10px}.v9f9dyw-20{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:14px}.v9f9dyw-21{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76;margin-bottom:8px}.v9f9dyw-22{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:13px;color:#0a0b0d;word-break:break-word}.v9f9dyw-23{color:#dc2626}.v9f9dyw-24{color:#16a34a}.v9f9dyw-25{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:18px}.v9f9dyw-26{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px}.v9f9dyw-27{display:flex;align-items:center;justify-content:space-between;gap:10px}.v9f9dyw-28{font-size:12.5px;font-weight:600;color:#0a0b0d}.v9f9dyw-29{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;list-style:none;padding:0;margin:0}.v9f9dyw-30{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;padding:12px;background:#fcfcfc;border:1px solid #e8e8eb;border-radius:var(--radius-md)}.v9f9dyw-31{color:#dc2626;font-size:12.5px;line-height:1.5}.v9f9dyw-32,.v9f9dyw-33{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px}.v9f9dyw-34{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.v9f9dyw-35{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.v9f9dyw-36{height:28px;min-width:150px;border:1px solid #e8e8eb;border-radius:var(--radius-sm);background:#fcfcfc;color:#0a0b0d;padding:0 26px 0 9px;font-size:11.5px;font-weight:500;line-height:1}.v9f9dyw-36:hover{border-color:#d4d4d8}.v9f9dyw-36:focus{outline:2px solid #22d3ee40;outline-offset:1px;border-color:#22d3eea6}.v9f9dyw-37{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px}.vaa4w49-1{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;background:#fcfcfc;border:1px solid #e8e8eb;border-radius:var(--radius-md);overflow:hidden}.vaa4w49-2{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;background:transparent;border:none;padding:10px 14px;text-align:left;cursor:pointer;color:#0a0b0d}.vaa4w49-2:hover{background:#f0f0f2}.vaa4w49-3{display:flex;align-items:center;justify-content:flex-start;color:#6b6e76;flex-shrink:0}.vaa4w49-4{font-size:12.5px;font-weight:600;letter-spacing:-.005em;color:#0a0b0d;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vaa4w49-5{display:flex;align-items:center;justify-content:flex-start;gap:8px;font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";margin-left:auto;font-size:11px;color:#6b6e76;flex-wrap:wrap;justify-content:flex-end}.vaa4w49-6{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";display:inline-flex;align-items:center;font-size:10.5px;font-weight:600;letter-spacing:.02em;padding:2px 7px;border-radius:20px;color:#0e7490;background:#22d3ee1a}.vaa4w49-7{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vaa4w49-8{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";display:inline-flex;align-items:center;font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:20px;color:#6b6e76;background:#f0f0f2}.vaa4w49-8.vo1w49k{color:#16a34a;background:#16a34a1f}.vaa4w49-8.vk87out{color:#a16207;background:#a162071f}.vaa4w49-8.vlmxlf9{color:#dc2626;background:#dc26261f}.vaa4w49-9{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";display:inline-flex;align-items:center;font-size:10.5px;letter-spacing:.01em;padding:2px 7px;border-radius:20px;color:#6b6e76;background:#f0f0f2}.vaa4w49-10{margin-right:4px;color:#a4a7af}.vaa4w49-11{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:12px;padding:12px 14px;border-top:1px solid #e8e8eb}.vaa4w49-12{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px}.vaa4w49-13{display:flex;align-items:center;justify-content:flex-start;gap:12px;align-items:baseline;font-size:12px}.vaa4w49-14{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76;min-width:110px}.vaa4w49-15{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";color:#0a0b0d;word-break:break-all}.vaa4w49-16{display:flex;align-items:center;justify-content:flex-start;gap:12px;font-size:12px}.vaa4w49-17{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76;min-width:110px}.vaa4w49-18{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";color:#0a0b0d;word-break:break-word}.vaa4w49-19{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px}.vaa4w49-21{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76;margin-bottom:8px}.vaa4w49-22{color:#dc2626}.vaa4w49-23{font-weight:600;margin-bottom:8px}.vaa4w49-24{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:11px;white-space:pre-wrap;opacity:.8;background:#f0f0f2;border:1px solid #e8e8eb;border-radius:var(--radius-sm);padding:10px}.vaa4w49-25{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;color:#ea580c;font-size:12px}.vaa4w49-26{font-weight:600}.vqnpbvz-1{position:relative;min-width:0}.vqnpbvz-2{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:12px;line-height:1.6;color:#0a0b0d;background:#fcfcfc;border:1px solid #e8e8eb;border-radius:var(--radius-md);padding:12px 14px;overflow:auto;min-width:0}.vqnpbvz-2.vh8ay32{font-size:11px;padding:10px 12px}.vqnpbvz-2.v14y6o4h{max-height:200px}.vqnpbvz-2.valvosx{max-height:320px}.vqnpbvz-2.vzt48hw{max-height:none}.vqnpbvz-2 .json-view{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";color:#0a0b0d;font-size:inherit;line-height:inherit;--json-property: #0e7490;--json-index: #22d3ee;--json-number: #22d3ee;--json-string: #ea580c;--json-boolean: #dc2626;--json-null: #a4a7af}.vqnpbvz-2 .jv-size,.vqnpbvz-2 .jv-chevron{color:#a4a7af}.vqnpbvz-2 .json-view--copy,.vqnpbvz-2 .json-view--edit,.vqnpbvz-2 .json-view--link svg{color:#a4a7af}.vqnpbvz-2 .json-view--input{color:#0a0b0d}.vqnpbvz-3{display:flex;align-items:center;justify-content:flex-start;gap:4px;transition:.12s cubic-bezier(.4,0,.2,1);transition-property:background,color,border-color;position:absolute;bottom:6px;right:6px;font-family:inherit;font-size:10px;letter-spacing:.04em;text-transform:uppercase;font-weight:500;color:#6b6e76;background:#f7f7f8;border:1px solid #e8e8eb;border-radius:var(--radius-sm);padding:3px 7px;cursor:pointer}.vqnpbvz-3:hover{color:#0a0b0d;background:#ececee;border-color:#d4d4d8}.vno9i23-1{display:flex;align-items:center;justify-content:flex-start;gap:6px;font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";display:inline-flex;font-size:11px;font-weight:500;letter-spacing:.01em;padding:3px 8px;border-radius:20px;color:#6b6e76;background:#f0f0f2}.vno9i23-1.v1bls63k{color:#16a34a;background:#16a34a1a}.vno9i23-1.v1843cka{color:#dc2626;background:#dc26261a}.vno9i23-1.v1w33htl{color:#0e7490;background:#22d3ee1f}.vno9i23-1.v1o7znqr{color:#ea580c;background:#ea580c1a}.vno9i23-1.v1ptx2rj{color:#6b6e76;background:#e4e4e7}.vno9i23-1.vwlrmf0{color:#ea580c;background:#ea580c24}.vno9i23-1.v1mlprpv{color:#0e7490;background:#22d3ee1a}.vno9i23-2{width:5px;height:5px;border-radius:5px;flex-shrink:0;background:#a4a7af;@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.4}}}.vno9i23-2.v1bls63k{background:#16a34a}.vno9i23-2.v1843cka{background:#dc2626}.vno9i23-2.v1w33htl{background:#22d3ee;animation:pulseDot 1.6s ease-in-out infinite}.vno9i23-2.v1o7znqr{background:#ea580c}.vno9i23-2.v1ptx2rj{background:#d4d4d8}.vno9i23-2.vwlrmf0{background:#ea580c}.vno9i23-2.v1mlprpv{background:#22d3ee}.v1fkevfp-1{background:#000;color:#fff;font-size:12px;line-height:1.4;padding:4px 8px;border-radius:4px;box-shadow:0 2px 8px #0006;pointer-events:none;z-index:10000;max-width:300px;white-space:pre-line;overflow-wrap:break-word}.v1rexbf3-1{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;background:#fcfcfc;border:1px solid #e8e8eb;border-radius:var(--radius-md);overflow:hidden}.v1rexbf3-2{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;background:transparent;border:none;padding:10px 14px;text-align:left;cursor:pointer;color:#0a0b0d}.v1rexbf3-2:hover{background:#f0f0f2}.v1rexbf3-3{display:flex;align-items:center;justify-content:flex-start;color:#6b6e76;flex-shrink:0}.v1rexbf3-4,.v1rexbf3-5{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;padding:2px 6px;border-radius:var(--radius-sm);background:#f0f0f2;color:#6b6e76;font-size:9.5px;letter-spacing:.04em;line-height:1.2;flex-shrink:0}.v1rexbf3-5.v1psnf3c{background:#16a34a26;color:#16a34a}.v1rexbf3-5.v126sfoy{background:#22d3ee1f;color:#0e7490}.v1rexbf3-6{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:12.5px;color:#0a0b0d;word-break:break-word;flex:1 1 auto;min-width:0}.v1rexbf3-7{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:10px;color:#6b6e76;flex-shrink:0}.v1rexbf3-8{display:flex;align-items:center;justify-content:flex-start;gap:8px;font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";margin-left:auto;font-size:11px;color:#6b6e76;flex-wrap:wrap;justify-content:flex-end}.v1rexbf3-9{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:12px;padding:12px 14px;border-top:1px solid #e8e8eb}.v1rexbf3-10{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap;font-size:11px;color:#6b6e76}.v1rexbf3-11{display:flex;align-items:center;justify-content:flex-start;gap:4px}.v1rexbf3-12{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;font-size:9.5px;color:#a4a7af}.v1rexbf3-13{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:11px;color:#0a0b0d;word-break:break-all}.v1rexbf3-15{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76;margin-bottom:8px}.v1rexbf3-16{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:11.5px;color:#6b6e76}.v1rexbf3-17{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:11.5px;color:#dc2626}.v1rexbf3-18{display:flex;align-items:center;justify-content:flex-start;gap:8px;justify-content:flex-end}.v1yv3uow-1{display:flex;align-items:center;justify-content:flex-start;gap:7px;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,border-color,color,box-shadow;display:inline-flex;height:32px;padding:0 14px;border-radius:var(--radius-md);border:1px solid transparent;font-size:12.5px;font-weight:500;letter-spacing:-.005em;line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none}.v1yv3uow-1:disabled{cursor:not-allowed;opacity:.5}.v1yv3uow-1>svg{width:13px;height:13px;flex-shrink:0}.v1yv3uow-1.v1d37md8{background:#22d3ee;color:#0a0b0d;font-weight:600;box-shadow:0 0 0 1px #22d3ee4d,0 6px 20px -6px #22d3ee73}.v1yv3uow-1.v1d37md8:hover:not(:disabled){background:#06b6d4;box-shadow:0 0 0 1px #22d3ee73,0 8px 22px -4px #22d3ee99}.v1yv3uow-1.v1d37md8:active:not(:disabled){background:#0e7490}.v1yv3uow-1.v1kpy128{background:#f0f0f2;color:#0a0b0d;border-color:#d4d4d8}.v1yv3uow-1.v1kpy128:hover:not(:disabled){background:#ececee;border-color:#22d3ee73}.v1yv3uow-1.vhmrut{background:transparent;color:#6b6e76}.v1yv3uow-1.vhmrut:hover:not(:disabled){background:#f0f0f2;color:#0a0b0d}.v1yv3uow-1.vs705h9{background:transparent;color:#dc2626;border-color:#dc262666}.v1yv3uow-1.vs705h9:hover:not(:disabled){background:#dc262614;border-color:#dc2626}.v1tlpqbe-1{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.v1tlpqbe-2{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.v1tlpqbe-3{height:28px;min-width:150px;border:1px solid #e8e8eb;border-radius:var(--radius-sm);background:#fcfcfc;color:#0a0b0d;padding:0 26px 0 9px;font-size:11.5px;font-weight:500;line-height:1}.v1tlpqbe-3:hover{border-color:#d4d4d8}.v1tlpqbe-3:focus{outline:2px solid #22d3ee40;outline-offset:1px;border-color:#22d3eea6}.v1tlpqbe-4{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px}.v1tlpqbe-5{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;background:#fcfcfc;border:1px solid #e8e8eb;border-radius:var(--radius-md);overflow:hidden}.v1tlpqbe-6{display:flex;align-items:center;justify-content:flex-start;gap:4px;width:100%;min-width:0}.v1tlpqbe-7{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex:1;min-width:0;background:transparent;border:none;padding:10px 14px;text-align:left;cursor:pointer;color:#0a0b0d}.v1tlpqbe-7:hover{background:#f0f0f2}.v1tlpqbe-8{display:flex;align-items:center;justify-content:flex-start;padding-right:8px;flex-shrink:0}.v1tlpqbe-9{display:flex;align-items:center;justify-content:flex-start;color:#6b6e76;flex-shrink:0}.v1tlpqbe-10{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin-left:auto;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}.v1tlpqbe-11{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:10.5px;color:#6b6e76}.v1tlpqbe-12{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;padding:2px 6px;border-radius:var(--radius-sm);background:#f0f0f2;color:#6b6e76;font-size:9.5px;line-height:1.2;flex-shrink:0}.v1tlpqbe-12.v1tefpko{background:#22d3ee1f;color:#0e7490}.v1tlpqbe-12.vpsgjsu{background:#ea580c1f;color:#ea580c}.v1tlpqbe-12.v10doxfa{background:#dc26261f;color:#dc2626}.v1tlpqbe-13{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;font-size:9.5px;color:#6b6e76;flex-shrink:0}.v1tlpqbe-14{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:10.5px;color:#6b6e76;flex-shrink:0}.v1tlpqbe-15{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";flex:1 1 140px;font-size:12px;color:#0a0b0d;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v1tlpqbe-16{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";margin:0;white-space:pre-wrap;word-break:break-word;font-size:11.5px;line-height:1.55;color:#0a0b0d}.v1tlpqbe-17{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px}.v1tlpqbe-18{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.v1tlpqbe-19{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;padding:12px 14px;border-top:1px solid #e8e8eb}.v1tlpqbe-20{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap;font-size:11px;color:#6b6e76}.v1tlpqbe-21{display:flex;align-items:center;justify-content:flex-start;gap:4px}.v1tlpqbe-22{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;font-size:9.5px;color:#a4a7af}.v1tlpqbe-23{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:11px;color:#0a0b0d}.v1tlpqbe-24{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#ea580c;font-size:9.5px;flex-shrink:0}.v4yt9wa-1{display:flex;align-items:center;justify-content:center;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,color;width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:transparent;color:#6b6e76;flex-shrink:0}.v4yt9wa-1.van04w6{width:32px;height:32px;border-radius:var(--radius-md)}.v4yt9wa-1:hover:not(:disabled){background:#f0f0f2;color:#0a0b0d}.v4yt9wa-1:disabled{cursor:not-allowed;opacity:.5}.v4yt9wa-1>svg{width:14px;height:14px}.v4yt9wa-1.van04w6>svg{width:16px;height:16px}.vv93a47-1{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:12px}.vv93a47-2{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;padding:12px 14px;background:#fcfcfc;border:1px solid #e8e8eb;border-radius:var(--radius-md)}.vv93a47-3{display:flex;align-items:center;justify-content:space-between;gap:10px}.vv93a47-4{font-size:12.5px;font-weight:600;color:#0a0b0d;letter-spacing:-.005em}.vv93a47-5{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:13px;font-weight:500;color:#0a0b0d}.vv93a47-6{position:relative;height:6px;border-radius:4px;background:#f0f0f2;overflow:hidden}.vv93a47-7{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:#a4a7af}.vv93a47-7.vvj7fxg{background:#16a34a}.vv93a47-7.v3q58b{background:#dc2626}.vv93a47-8{display:flex;align-items:center;justify-content:flex-start;gap:10px;font-size:11px;color:#6b6e76}.vv93a47-9{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;padding:2px 6px;border-radius:var(--radius-sm);background:#f0f0f2;color:#6b6e76;font-size:9.5px;letter-spacing:.04em;line-height:1.2}.vv93a47-9.vvj7fxg{background:#16a34a1f;color:#16a34a}.vv93a47-9.v3q58b{background:#dc26261f;color:#dc2626}.v1f0s106-1{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;flex:1;height:100%;text-align:center;padding:48px}.v1f0s106-2{width:56px;height:56px;border-radius:var(--radius-md);background:#f7f7f8;border:1px solid #e8e8eb;display:flex;align-items:center;justify-content:center;color:#22d3ee;margin-bottom:4px}.v1f0s106-2>svg{width:24px;height:24px}.v1f0s106-3{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.v1f0s106-4{color:#0a0b0d;font-size:18px;font-weight:600;letter-spacing:-.01em}.v1f0s106-5{color:#6b6e76;font-size:12.5px;max-width:360px;line-height:1.55}.v1460r1i-1{white-space:pre-wrap;margin:0;font-size:13px;line-height:1.55}.v1460r1i-2{color:#0a0b0d;font-size:13px;line-height:1.55}.v1460r1i-2>:first-child{margin-top:0}.v1460r1i-2>:last-child{margin-bottom:0}.v1460r1i-2 p,.v1460r1i-2 ul,.v1460r1i-2 ol,.v1460r1i-2 blockquote,.v1460r1i-2 pre,.v1460r1i-2 table{margin:0 0 10px}.v1460r1i-2 h1,.v1460r1i-2 h2,.v1460r1i-2 h3,.v1460r1i-2 h4,.v1460r1i-2 h5,.v1460r1i-2 h6{margin:0 0 10px;color:#0a0b0d;line-height:1.25}.v1460r1i-2 h1{font-size:18px}.v1460r1i-2 h2{font-size:15px}.v1460r1i-2 h3{font-size:13.5px}.v1460r1i-2 ul,.v1460r1i-2 ol{padding-left:20px}.v1460r1i-2 li+li{margin-top:4px}.v1460r1i-2 code{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:12px;background:#f0f0f2;border:1px solid #e8e8eb;border-radius:6px;padding:1px 5px}.v1460r1i-2 pre{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:12px;overflow-x:auto;background:#f0f0f2;border:1px solid #e8e8eb;border-radius:var(--radius-sm);padding:12px}.v1460r1i-2 pre code{background:transparent;border:none;padding:0;font-size:inherit}.v1460r1i-2 blockquote{padding-left:12px;border-left:3px solid #e8e8eb;color:#6b6e76}.v1460r1i-2 a{color:#22d3ee;text-decoration:underline;text-underline-offset:2px}.v1460r1i-2 table{width:100%;border-collapse:collapse}.v1460r1i-2 th,.v1460r1i-2 td{border:1px solid #e8e8eb;padding:8px 10px;text-align:left;vertical-align:top}.v1460r1i-2 th{background:#f0f0f2}.v1460r1i-3{max-width:100%;border-radius:var(--radius-md)}.v1460r1i-4{width:100%}.v1460r1i-5{max-width:100%;border-radius:var(--radius-md)}.v1460r1i-6{color:#22d3ee}.v1m277ov-1{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;background:#fcfcfc;border:1px solid #e8e8eb;border-radius:var(--radius-md);overflow:hidden}.v1m277ov-2{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;background:transparent;border:none;padding:10px 14px;text-align:left;cursor:pointer;color:#0a0b0d}.v1m277ov-2:hover{background:#f0f0f2}.v1m277ov-3{display:flex;align-items:center;justify-content:flex-start;color:#6b6e76;flex-shrink:0}.v1m277ov-4{font-size:12.5px;font-weight:600;letter-spacing:-.005em;color:#0a0b0d;flex-shrink:0}.v1m277ov-5{display:flex;align-items:center;justify-content:flex-start;gap:8px;font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";margin-left:auto;font-size:11px;color:#6b6e76;flex-wrap:wrap;justify-content:flex-end}.v1m277ov-6{display:flex;align-items:center;justify-content:flex-start;gap:4px;font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:11px;color:#6b6e76}.v1m277ov-7{color:#a4a7af;font-size:9.5px;letter-spacing:.04em;text-transform:uppercase}.v1m277ov-8{color:#d4d4d8}.v1m277ov-9{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";display:inline-flex;align-items:center;font-size:10.5px;font-weight:500;letter-spacing:.01em;padding:2px 7px;border-radius:20px;color:#0e7490;background:#22d3ee1a}.v1m277ov-10{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";display:inline-flex;align-items:center;font-size:10.5px;letter-spacing:.01em;padding:2px 7px;border-radius:20px;color:#6b6e76;background:#f0f0f2}.v1m277ov-11{margin-right:4px;color:#a4a7af}.v1m277ov-12{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:12px;padding:12px 14px;border-top:1px solid #e8e8eb}.v1m277ov-13{display:flex;align-items:center;justify-content:flex-start;gap:12px;font-size:12px}.v1m277ov-14{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76;min-width:110px}.v1m277ov-15{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";color:#0a0b0d;word-break:break-word}.v1m277ov-16{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;border:1px solid #e8e8eb;border-radius:var(--radius-md);overflow:hidden}.v1m277ov-17{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;display:grid;grid-template-columns:1fr auto auto;gap:16px;padding:8px 12px;background:#f0f0f2;color:#6b6e76;font-size:9.5px;letter-spacing:.04em}.v1m277ov-18{display:grid;grid-template-columns:1fr auto auto;gap:16px;padding:8px 12px;align-items:baseline;border-top:1px solid #e8e8eb;font-size:12px}.v1m277ov-19{color:#0a0b0d}.v1m277ov-20{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";color:#0a0b0d;text-align:right;min-width:56px}.v1m277ov-21{background:#f0f0f2;font-weight:600}.v1m277ov-22{text-align:right}.v1m277ov-23{color:#6b6e76}.v1m277ov-25{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76;margin-bottom:8px}.v1m277ov-26{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px}.v1m277ov-27{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px}.v1m277ov-28{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;border:1px solid #e8e8eb;border-radius:var(--radius-sm);background:#f0f0f2;padding:8px 10px}.v1m277ov-29{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76;font-size:9.5px}.v1m277ov-30{color:#dc2626}.v1m277ov-31{font-weight:600;margin-bottom:8px}.v1m277ov-32{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:11px;white-space:pre-wrap;opacity:.8;background:#f0f0f2;border:1px solid #e8e8eb;border-radius:var(--radius-sm);padding:10px}.v1m277ov-33{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;color:#ea580c;font-size:12px}.v1m277ov-34{font-weight:600}.vpbub9f-1{position:absolute;top:0;bottom:0;width:7px;right:-3px;cursor:col-resize;z-index:5;-webkit-user-select:none;user-select:none;touch-action:none}.vpbub9f-1.v1xij6d4{right:auto;left:-3px}.vpbub9f-1:after{content:"";position:absolute;top:0;bottom:0;left:3px;width:1px;background:transparent;transition:background .15s ease}.vpbub9f-1:hover:after,.vpbub9f-1.veyzh35:after{background:#22d3ee}.vxv787s-1{display:flex;gap:12px;height:100%;align-items:stretch;position:relative;min-width:0}.vxv787s-2{display:flex;flex-direction:column;flex:1;min-width:0;border:1px solid #e8e8eb;border-radius:var(--radius-md);background:#fcfcfc;overflow:hidden}.vxv787s-3{flex:1 1 0;min-width:300px;max-width:460px;overflow:auto;border:1px solid #e8e8eb;border-radius:var(--radius-md);background:#fcfcfc;padding:14px 16px}.vxv787s-4{position:absolute;inset:0 0 0 auto;width:min(420px,85%);display:flex;flex-direction:column;background:#f7f7f8;border:1px solid #d4d4d8;border-radius:var(--radius-md);box-shadow:-10px 0 28px #0a0b0d24;z-index:2}.vxv787s-5{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 12px;border-bottom:1px solid #e8e8eb;flex-shrink:0}.vxv787s-6{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#6b6e76}.vxv787s-7{overflow:auto;padding:14px 16px}.vxv787s-8{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,color;background:none;border:none;padding:4px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;color:#6b6e76;cursor:pointer}.vxv787s-8:hover{background:#f0f0f2;color:#0a0b0d}.vxv787s-8>svg{width:14px;height:14px}.vxv787s-9{flex:1;overflow:auto;min-width:0}.vxv787s-10{display:flex;flex-direction:column;min-width:560px;padding-right:14px}.vxv787s-10.v1qsea3x{min-width:0;padding-right:0}.vxv787s-11{display:grid;grid-template-columns:minmax(200px,40%) 1fr;flex-shrink:0;border-bottom:1px solid #e8e8eb;background:#f7f7f8;height:24px;position:sticky;top:0;z-index:1}.vxv787s-11.v1qsea3x{grid-template-columns:1fr}.vxv787s-12{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 6px 0 10px;height:100%}.vxv787s-13{display:flex;align-items:center;justify-content:flex-start;gap:5px;flex-shrink:0}.vxv787s-14{display:flex;align-items:center;justify-content:flex-start;border:1px solid #e8e8eb;border-radius:5px;overflow:hidden;background:#fcfcfc}.vxv787s-15{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,color;width:20px;height:18px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;border-right:1px solid #e8e8eb;background:transparent;color:#a4a7af;cursor:pointer}.vxv787s-15:last-child{border-right:none}.vxv787s-15:hover{background:#f0f0f2;color:#0a0b0d}.vxv787s-15.vkduw8x{background:#e4e4e7;color:#0a0b0d}.vxv787s-15>svg{width:12px;height:12px}.vxv787s-16{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,color;background:none;border:none;padding:3px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;color:#6b6e76;cursor:pointer;flex-shrink:0}.vxv787s-16:hover{background:#f0f0f2;color:#0a0b0d}.vxv787s-16>svg{width:14px;height:14px}.vxv787s-17{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#a4a7af}.vxv787s-18{position:relative;padding-right:12px}.vxv787s-19{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";position:absolute;top:50%;transform:translate(-50%,-50%);font-size:9.5px;font-variant-numeric:tabular-nums;color:#a4a7af;white-space:nowrap}.vxv787s-20{padding:4px 0}.vxv787s-21{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,color;display:grid;grid-template-columns:minmax(200px,40%) 1fr;align-items:stretch;cursor:pointer;font-size:11.5px;min-height:26px;border-left:2px solid transparent;color:#6b6e76}.vxv787s-21.v1qsea3x{grid-template-columns:1fr}.vxv787s-21:hover{background:#f7f7f8;color:#0a0b0d}.vxv787s-21.vkduw8x{background:#f0f0f2;color:#0a0b0d;border-left-color:#22d3ee}.vxv787s-22{display:flex;align-items:center;justify-content:flex-start;gap:7px;min-width:0;padding-right:10px}.vxv787s-23{position:relative;height:26px;padding-right:12px;background-image:linear-gradient(to right,transparent calc(25% - 1px),#e8e8ebb3 calc(25% - 1px),#e8e8ebb3 25%,transparent 25%),linear-gradient(to right,transparent calc(50% - 1px),#e8e8ebb3 calc(50% - 1px),#e8e8ebb3 50%,transparent 50%),linear-gradient(to right,transparent calc(75% - 1px),#e8e8ebb3 calc(75% - 1px),#e8e8ebb3 75%,transparent 75%)}.vxv787s-24{position:absolute;top:7px;height:12px;min-width:2px;border-radius:3px;background:var(--trace-kind-bar-bg, #d4d4d8);border:1px solid transparent}.vxv787s-24.v1z0zxx1{background:repeating-linear-gradient(45deg,var(--trace-kind-running-strong, #22d3ee66) 0,var(--trace-kind-running-strong, #22d3ee66) 6px,var(--trace-kind-running-soft, #22d3ee26) 6px,var(--trace-kind-running-soft, #22d3ee26) 12px)}.vxv787s-24.v12vnxco{border-color:#dc2626}.vxv787s-25{position:absolute;top:50%;width:10px;height:10px;border-radius:2px;background:var(--trace-kind-bar-bg, #d4d4d8);box-shadow:0 0 0 2px #fcfcfc;transform:translate(-50%,-50%) rotate(45deg);pointer-events:none}.vxv787s-26{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";position:absolute;top:5px;font-size:9.5px;font-variant-numeric:tabular-nums;color:#6b6e76;white-space:nowrap;pointer-events:none}.vxv787s-26.inside{color:#fff;font-weight:500;letter-spacing:.02em;background:#0003;padding:0 5px;line-height:12px;top:7px;height:12px;margin-right:-4px;border-radius:3px}.vxv787s-27{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:transform;background:none;border:none;padding:0;display:inline-flex;width:14px;height:14px;align-items:center;justify-content:center;color:#a4a7af;flex-shrink:0;cursor:pointer}.vxv787s-27>svg{width:12px;height:12px}.vxv787s-27.v1sa0q0h>svg{transform:rotate(90deg)}.vxv787s-28{width:14px;flex-shrink:0}.vxv787s-29{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";padding:2px 6px;border-radius:4px;font-size:9.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--trace-kind-badge-text, #6b6e76);background:var(--trace-kind-badge-bg, #f0f0f2);flex-shrink:0}.vxv787s-30{font-weight:500;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.vxv787s-31{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";color:#dc2626;font-size:10px;flex-shrink:0}.vxv787s-32{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";color:#ea580c;font-size:10px;flex-shrink:0}.vxv787s-33{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:9.5px;letter-spacing:.04em;flex-shrink:0;color:#a4a7af}.vxv787s-34{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:10px;color:#6b6e76;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.vxv787s-34:before{content:"→";color:#a4a7af;margin-right:4px}.vxv787s-35{padding:16px;color:#6b6e76;font-size:12px;text-align:center}.vn93px5-1{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:14px;font-size:12px}.vn93px5-2{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:13px;font-weight:600;letter-spacing:-.005em;color:#0a0b0d}.vn93px5-3{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px}.vn93px5-4{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;background:#fcfcfc;border:1px solid #e8e8eb;border-radius:var(--radius-sm)}.vn93px5-5{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.vn93px5-6{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:11.5px;color:#0a0b0d;text-align:right;max-width:60%;word-break:break-all}.vn93px5-7{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px}.vn93px5-8{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.vn93px5-9{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:11px;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:#6b6e76;background:#f7f7f8;border:1px solid #e8e8eb;padding:10px 12px;border-radius:var(--radius-sm);max-height:200px;overflow:auto}.vmrx93z-1{--vmrx93z-2: #dc2626;--vmrx93z-3: #dc26260f;--vmrx93z-4: #dc262638;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;min-width:0;color:var(--vmrx93z-2);background:var(--vmrx93z-3);border:1px solid var(--vmrx93z-4);border-radius:var(--radius-sm);padding:10px 12px;overflow-wrap:anywhere}.vmrx93z-1.vc8cpou{--vmrx93z-2: #ea580c;--vmrx93z-3: #ea580c14;--vmrx93z-4: #ea580c3d}.vmrx93z-5{font-weight:600;min-width:0;overflow-wrap:anywhere}.vmrx93z-6{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:10px;color:#dc2626b8;min-width:0;overflow-wrap:anywhere}.vmrx93z-6.vc8cpou{color:#ea580cc2}.vmrx93z-7{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--vmrx93z-2)}.vmrx93z-8{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px;min-width:0}.vmrx93z-8+.vmrx93z-8{border-top:1px solid #dc26262e;padding-top:8px}.vmrx93z-8.vc8cpou+.vmrx93z-8.vc8cpou{border-top-color:#ea580c33}.vmrx93z-9{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:10px;max-width:100%;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;opacity:.8;margin:0}.vmrx93z-10{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px}.vmrx93z-11{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.v1vddol1-1{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";padding:1px 5px;border-radius:3px;font-size:9.5px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0;background:#d4d4d8;color:#6b6e76}.v1vddol1-1.vwtsfr3{background:#16a34a26;color:#16a34a}.v1vddol1-1.v7vdi0r{background:#ea580c26;color:#ea580c}.v1vddol1-1.vg409p{background:#22d3ee26;color:#22d3ee}.v1vddol1-1.v7s5h51{background:#d4d4d8;color:#6b6e76}.vmn9mpb-1{height:100%;overflow:auto}.vmn9mpb-2{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;padding:22px 32px 18px;border-bottom:1px solid #e8e8eb;background:#fcfcfc;position:sticky;top:0;z-index:3}.vmn9mpb-3{display:flex;align-items:center;justify-content:space-between;gap:14px}.vmn9mpb-4{display:flex;align-items:center;justify-content:flex-start;gap:12px}.vmn9mpb-5{display:flex;align-items:center;justify-content:flex-start;gap:6px;flex-wrap:wrap}.vmn9mpb-6{display:flex;align-items:center;justify-content:flex-start;gap:5px;font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;padding:3px 9px;border-radius:999px;background:#f0f0f2;color:#6b6e76;font-size:9.5px;line-height:1;letter-spacing:.04em}.vmn9mpb-7{font-size:11px;font-weight:600;color:#0a0b0d;letter-spacing:-.01em}.vmn9mpb-8{display:flex;align-items:center;justify-content:flex-start;gap:5px;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,border-color,color;appearance:none;padding:3px 9px;border-radius:999px;font-size:9.5px;line-height:1;letter-spacing:.04em;text-transform:uppercase;font-weight:500;color:#6b6e76;background:#f0f0f2;border:1px solid transparent;cursor:pointer}.vmn9mpb-8:hover{background:#ececee;color:#0a0b0d}.vmn9mpb-8.v124n73o{color:#fcfcfc;background:#0a0b0d;border-color:#0a0b0d}.vmn9mpb-8.v18aowuu:not(.v124n73o){color:#16a34a;background:#16a34a14;border-color:#16a34a2e}.vmn9mpb-8.vind66p:not(.v124n73o){color:#dc2626;background:#dc262614;border-color:#dc26262e}.vmn9mpb-8.v11id82e:not(.v124n73o){color:#0e7490;background:#22d3ee1a;border-color:#22d3ee38}.vmn9mpb-8.v1i2guj2:not(.v124n73o){color:#ea580c;background:#ea580c14;border-color:#ea580c2e}.vmn9mpb-8.v12gavlj:not(.v124n73o){color:#6b6e76;background:#e4e4e7;border-color:#e8e8eb}.vmn9mpb-8.v9duj39:not(.v124n73o){color:#ea580c;background:#ea580c1a;border-color:#ea580c38}.vmn9mpb-8.vjtgbed:not(.v124n73o){color:#0e7490;background:#22d3ee17;border-color:#22d3ee33}.vmn9mpb-8.vt17xas:not(.v124n73o){color:#6b6e76;background:#f0f0f2;border-color:#e8e8eb}.vmn9mpb-9{font-size:11px;font-weight:600;letter-spacing:-.01em}.vmn9mpb-10{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:20px;padding:24px 32px 40px}.v1d1autj-1{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;background:transparent}.v1d1autj-1.vra3f9d{border:1px solid #e8e8eb;border-radius:var(--radius-lg);overflow:hidden;background:#fcfcfc}.v1d1autj-1.v1ofnfk9{height:100%;overflow:hidden}.v1d1autj-2{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:22px 32px;border-bottom:1px solid #e8e8eb;background:#fcfcfc}.v1d1autj-2.v16nf7cu{position:sticky;top:0;z-index:3}.v1d1autj-2.vp8tseb{cursor:pointer;padding:16px 24px}.v1d1autj-3{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.v1d1autj-4{margin-bottom:14px}.v1d1autj-5{display:flex;align-items:center;justify-content:flex-start;gap:12px;min-width:0;flex:1}.v1d1autj-6{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;min-width:0;flex:1}.v1d1autj-7{display:flex;align-items:center;justify-content:flex-start;gap:12px;min-width:0}.v1d1autj-8{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:600;color:#0a0b0d;letter-spacing:-.02em;margin:0}.v1d1autj-8.v8omtap{font-size:30px;font-weight:600;letter-spacing:-.025em;line-height:1.1}.v1d1autj-9{font-size:12.5px;color:#6b6e76;max-width:720px;line-height:1.5}.v1d1autj-10{display:inline-flex}.v1d1autj-11{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;color:#6b6e76}.v1d1autj-12{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-shrink:0}.v1d1autj-13{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:transform;display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;color:#a4a7af;transform:rotate(-90deg)}.v1d1autj-13.v12vk5oa{transform:rotate(0)}.v1d1autj-13>svg{width:14px;height:14px}.v1d1autj-14{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.v1d1autj-14.v1dyggfg{flex:1;min-height:0;overflow:hidden}.v1d1autj-15{display:flex;flex-wrap:wrap;gap:1px;background:#e8e8eb;border-bottom:1px solid #e8e8eb}.v1d1autj-16{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;padding:12px 16px 13px;background:#fcfcfc;flex:1 1 160px;min-width:160px}.v1d1autj-17{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;font-size:9px;color:#6b6e76}.v1d1autj-18{font-variant-numeric:tabular-nums;font-size:20px;font-weight:500;color:#0a0b0d;letter-spacing:-.02em;line-height:1.1}.v1d1autj-18.vsjzv4v{color:#0e7490}.v1d1autj-19{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:20px 32px 24px}.v1d1autj-19:not(:last-child){border-bottom:1px solid #e8e8eb}.v1d1autj-19.v1i7hsdh{flex:1;min-height:0}.v1d1autj-20{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.v1d1autj-20.vskhn2m{margin-bottom:0}.v1d1autj-21{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-width:0;background:none;border:none;padding:0;margin:0;cursor:pointer;color:inherit;font:inherit;text-align:left}.v1d1autj-22{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:transform;display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;color:#a4a7af;transform:rotate(-90deg)}.v1d1autj-22.v12vk5oa{transform:rotate(0)}.v1d1autj-22>svg{width:14px;height:14px}.v1d1autj-23{font-size:13.5px;font-weight:600;color:#0a0b0d;letter-spacing:-.01em}.v1d1autj-24{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:10.5px;color:#6b6e76}.v1d1autj-25{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;flex:1}.v1d1autj-26{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-width:0;justify-content:flex-end;color:#6b6e76;font-size:12px}.v1d1autj-27{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-width:0}.v1d1autj-28{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.v1d1autj-29{color:#6b6e76}.vzvspbh-1{height:150px;padding:10px 14px 8px;border:1px solid #e8e8eb;border-radius:var(--radius-lg);background:#fcfcfc}.vzvspbh-2{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76;padding:0 2px 4px}.vzvspbh-3{display:flex;flex-direction:column;gap:4px}.vzvspbh-3+.vzvspbh-3{margin-top:16px}.vzvspbh-4{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";padding:10px 12px;font-size:11px;line-height:1.5;color:#0a0b0d;min-width:160px}.vzvspbh-5{display:flex;justify-content:space-between;gap:14px}.vzvspbh-5+.vzvspbh-5{margin-top:4px}.vzvspbh-6{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.vzvspbh-7{color:#0e7490}.v10k0sdn-1{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.v10k0sdn-2{font-size:13.5px;font-weight:600;color:#0a0b0d;letter-spacing:-.01em}.v10k0sdn-3{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:10.5px;color:#6b6e76}.v10k0sdn-4{display:flex;align-items:center;justify-content:flex-start;gap:6px}.v10k0sdn-5{height:28px;min-width:132px;border:1px solid #e8e8eb;border-radius:var(--radius-sm);background:#fcfcfc;color:#0a0b0d;padding:0 26px 0 9px;font-size:11.5px;font-weight:500;line-height:1}.v10k0sdn-5:hover{border-color:#d4d4d8}.v10k0sdn-5:focus{outline:2px solid #22d3ee40;outline-offset:1px;border-color:#22d3eea6}.v1v3ddx1-1{padding:30px 24px;border:1px dashed #e8e8eb;border-radius:var(--radius-lg);text-align:center;color:#6b6e76;font-size:12.5px}.v1v3ddx1-2{border:1px solid #e8e8eb;border-radius:var(--radius-lg);background:#fcfcfc;overflow:auto}.v1v3ddx1-2.v72uwfi{flex:1;min-height:0}.v1v3ddx1-3{width:max-content;min-width:100%;border-collapse:collapse;font-size:12px;table-layout:auto}.v1v3ddx1-4{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;position:sticky;top:0;z-index:1;padding:10px 16px;background:#f7f7f8;box-shadow:inset 0 -1px #e8e8eb;color:#6b6e76;text-align:left;white-space:nowrap}.v1v3ddx1-4.v10rcuqw{text-align:right}.v1v3ddx1-4.vl7rjcc{padding-left:36px}.v1v3ddx1-5{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background;cursor:pointer;border-top:1px solid #e8e8eb;border-left:3px solid transparent;background:#f7f7f8}.v1v3ddx1-5:first-child{border-top:none}.v1v3ddx1-5:hover{background:#f0f0f2}.v1v3ddx1-5.v9wbf1x{background:#22d3ee0f}.v1v3ddx1-5.v9wbf1x:hover{background:#22d3ee1a}.v1v3ddx1-5.v1wi22g7{border-left-color:#22d3ee}.v1v3ddx1-6{padding:12px 16px;vertical-align:middle;white-space:nowrap;color:#0a0b0d;font-size:12px}.v1v3ddx1-6.v10rcuqw{text-align:right}.v1v3ddx1-6.vh68gi{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-variant-numeric:tabular-nums;font-size:11.5px;color:#6b6e76}.v1v3ddx1-7{display:flex;align-items:center;justify-content:flex-start;gap:8px}.v1v3ddx1-8{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:color;display:inline-flex;align-items:center;justify-content:center;padding:2px;background:transparent;border:none;cursor:pointer;color:#6b6e76}.v1v3ddx1-8:hover{color:#0a0b0d}.v1v3ddx1-9{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;font-weight:500;padding:3px 6px;border-radius:var(--radius-sm);background:#22d3ee1f;color:#0e7490;font-size:10px;letter-spacing:.04em;line-height:1}.v1v3ddx1-10{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";padding:3px 6px;border-radius:var(--radius-sm);background:#f0f0f2;color:#6b6e76;font-size:10.5px;line-height:1}.v1v3ddx1-11{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;font-weight:500;padding:3px 6px;border-radius:var(--radius-sm);background:#f0f0f2;color:#6b6e76;font-size:10px;letter-spacing:.04em;line-height:1}.v1v3ddx1-12{font-size:12.5px;font-weight:500;color:#0a0b0d;letter-spacing:-.005em}.v1v3ddx1-12.v9wbf1x{color:#0e7490}.v1v3ddx1-13{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background;cursor:pointer;border-top:1px solid #e8e8eb;border-left:3px solid transparent}.v1v3ddx1-13:hover{background:#f7f7f8}.v1v3ddx1-13.v1wi22g7{border-left-color:#22d3ee}.v1v3ddx1-14{padding:10px 16px;vertical-align:middle;white-space:nowrap;color:#0a0b0d;font-size:12px}.v1v3ddx1-14.v10rcuqw{text-align:right}.v1v3ddx1-14.vh68gi{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-variant-numeric:tabular-nums;font-size:11.5px;color:#6b6e76}.v1v3ddx1-14.vl7rjcc{padding-left:36px}.v1v3ddx1-15{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:12px;color:#0a0b0d;max-width:260px}.v1v3ddx1-16{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:320px}.v1v3ddx1-17{color:#a4a7af}.v1v3ddx1-18{border-top:1px solid #e8e8eb}.v1v3ddx1-19{padding:18px;text-align:center;font-size:12px;color:#6b6e76}.v6nngvf-1{color:#a4a7af}.v6nngvf-2{display:inline-block;width:40px;height:3px;border-radius:4px;background:#f0f0f2;position:relative;overflow:hidden;margin-right:8px;vertical-align:middle}.v6nngvf-3{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:#a4a7af}.v6nngvf-3.vj3xmch{background:#16a34a}.v6nngvf-3.v1b0sr1n{background:#ea580c}.v6nngvf-3.v3vjwcw{background:#dc2626}.v6nngvf-4{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-variant-numeric:tabular-nums;font-size:12px;color:#0a0b0d;font-weight:500}.v6nngvf-5{display:flex;align-items:center;justify-content:flex-start;display:inline-flex}.v6nngvf-6{display:flex;align-items:center;justify-content:flex-start;gap:5px;display:inline-flex;justify-content:center;min-width:54px;padding:3px 7px;border-radius:var(--radius-sm);color:#6b6e76;background:#f0f0f2;font-size:11px;font-weight:600}.v6nngvf-6.vj3xmch{color:#16a34a;background:#16a34a1a}.v6nngvf-6.v3vjwcw{color:#dc2626;background:#dc26261a}.v6nngvf-7{display:flex;align-items:center;justify-content:flex-start;gap:1px;display:inline-flex;color:#a4a7af}.v6nngvf-7>svg{width:13px;height:13px}.v6nngvf-7>.filled{color:#ea580c;fill:currentColor}.v6nngvf-8{display:flex;align-items:center;justify-content:flex-end;gap:4px}.v6nngvf-9{display:flex;align-items:center;justify-content:flex-start;gap:4px;justify-content:center;height:24px;min-width:28px;padding:0 7px;border:1px solid #d4d4d8;border-radius:var(--radius-sm);background:#fcfcfc;color:#6b6e76;font-size:11px;font-weight:600}.v6nngvf-9>svg{width:12px;height:12px}.v6nngvf-9:hover:not(:disabled){border-color:#22d3ee80;background:#f0f0f2;color:#0a0b0d}.v6nngvf-9:disabled{opacity:.6}.v6nngvf-9.vrka86m{color:#16a34a;border-color:#16a34a80;background:#16a34a1a}.v6nngvf-9.v14fx5bw{color:#dc2626;border-color:#dc262680;background:#dc26261a}.v6nngvf-10{display:flex;align-items:center;justify-content:center;width:20px;height:24px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:#a4a7af}.v6nngvf-10>svg{width:14px;height:14px}.v6nngvf-10:hover:not(:disabled),.v6nngvf-10.v3c191l{color:#ea580c}.v6nngvf-10.v3c191l>svg{fill:currentColor}.v6nngvf-10:disabled{opacity:.6}.v1it1iyw-1{position:relative;display:inline-flex}.v1it1iyw-2{display:flex;align-items:center;justify-content:center;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,color,border-color;appearance:none;padding:0;width:32px;height:32px;border-radius:var(--radius-md);border:1px solid #e8e8eb;background:#fcfcfc;color:#6b6e76;line-height:0;box-shadow:0 1px 2px #00000014}.v1it1iyw-2:hover:not(:disabled){background:#f0f0f2;color:#0a0b0d;border-color:#d4d4d8}.v1it1iyw-2:disabled{cursor:not-allowed;opacity:.5}.v1it1iyw-2>svg{width:16px;height:16px}.v1it1iyw-3{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;position:absolute;top:calc(100% + 6px);right:0;min-width:210px;background:#f7f7f8;border:1px solid #d4d4d8;box-shadow:0 14px 30px -12px #22d3ee40;z-index:40;padding:6px 0}.v1it1iyw-4{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,color;text-align:left;background:transparent;border:0;padding:8px 14px;color:#0a0b0d;cursor:pointer}.v1it1iyw-4:hover{background:#ececee}.v1it1iyw-4.vp2z70{color:#dc2626}.v1it1iyw-4.vp2z70:hover{background:#dc26261a}.v1it1iyw-5{font-size:12px;font-weight:600;letter-spacing:.02em}.v1it1iyw-6{font-size:11px;color:#6b6e76}.v1it1iyw-7{height:1px;background:#e8e8eb;margin:4px 0}.v1gbsfzf-1{position:relative;display:inline-flex}.v1gbsfzf-2{display:flex;align-items:center;justify-content:flex-start}.v1gbsfzf-3{display:flex;align-items:center;justify-content:flex-start;gap:8px;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,border-color,color,box-shadow;display:inline-flex;height:28px;padding:0 14px;border-radius:0;border:1px solid transparent;font-size:11px;font-weight:600;line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:.14em;background:#22d3ee;color:#0a0b0d;box-shadow:0 0 0 1px #0e7490,0 6px 16px -8px #22d3ee8c}.v1gbsfzf-3>svg{width:13px;height:13px;flex-shrink:0}.v1gbsfzf-3:hover:not(:disabled){background:#06b6d4}.v1gbsfzf-3:active:not(:disabled){background:#0e7490}.v1gbsfzf-3:disabled{cursor:not-allowed;opacity:.4}.v1gbsfzf-4{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,border-color,color;display:inline-flex;align-items:center;justify-content:center;height:28px;width:26px;margin-left:1px;border-radius:0;border:1px solid transparent;background:#22d3ee;color:#0a0b0d;box-shadow:0 0 0 1px #0e7490}.v1gbsfzf-4>svg{width:13px;height:13px;transition:transform .18s ease}.v1gbsfzf-4.v9mb724>svg{transform:rotate(180deg)}.v1gbsfzf-4:hover:not(:disabled){background:#06b6d4}.v1gbsfzf-4:disabled{cursor:not-allowed;opacity:.4}.v1gbsfzf-5{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;position:absolute;top:calc(100% + 6px);right:0;min-width:220px;background:#f7f7f8;border:1px solid #d4d4d8;box-shadow:0 14px 30px -12px #22d3ee59;z-index:40;padding:6px 0}.v1gbsfzf-6{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,color;text-align:left;background:transparent;border:0;padding:8px 14px;color:#0a0b0d;cursor:pointer}.v1gbsfzf-6:hover{background:#ececee}.v1gbsfzf-6.v1g7o2ge{color:#dc2626}.v1gbsfzf-6.v1g7o2ge:hover{background:#dc26261a}.v1gbsfzf-7{font-size:12px;font-weight:600;letter-spacing:.02em}.v1gbsfzf-8{font-size:11px;color:#6b6e76}.v1gbsfzf-9{height:1px;background:#e8e8eb;margin:4px 0}.v1eplm6x-1{display:flex;align-items:center;justify-content:flex-start;gap:8px;font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:13px;color:#6b6e76}.v1eplm6x-2{color:#a4a7af;margin:0 6px}.v1eplm6x-3{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:color;font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";appearance:none;background:transparent;border:none;padding:0;color:#6b6e76;cursor:pointer}.v1eplm6x-3:hover,.v1eplm6x-4{color:#0a0b0d}.vgxz95z-1{border-left:1px solid #e8e8eb;background:#f7f7f8;display:flex;align-items:center;justify-content:center;color:#6b6e76;font-size:12px;flex-shrink:0}.vgxz95z-2{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;position:relative;flex-shrink:0;border-left:1px solid #e8e8eb;background:#f7f7f8;overflow:hidden}.vgxz95z-3{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;padding:14px 18px 12px;border-bottom:1px solid #e8e8eb;background:#f7f7f8;flex-shrink:0}.vgxz95z-4{display:flex;align-items:center;justify-content:space-between;gap:10px}.vgxz95z-5{display:flex;align-items:center;justify-content:flex-start;gap:6px}.vgxz95z-6{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.vgxz95z-7{display:flex;align-items:center;justify-content:flex-start;gap:10px;min-width:0}.vgxz95z-8{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:9.5px;font-weight:600;padding:3px 8px;border-radius:4px;color:#0a0b0d;background:#22d3ee}.vgxz95z-9{font-size:15px;font-weight:600;color:#0a0b0d;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.vgxz95z-10{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:18px}.vgxz95z-11{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px}.vgxz95z-12{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.vgxz95z-13{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.vgxz95z-14{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;padding:12px 14px;background:#fcfcfc;border:1px solid #e8e8eb;border-radius:var(--radius-md)}.vgxz95z-15{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:#6b6e76}.vgxz95z-16{font-variant-numeric:tabular-nums;font-size:18px;font-weight:500;color:#0a0b0d;letter-spacing:-.02em}.vgxz95z-16.v15guhoh{color:#0e7490}.vgxz95z-16.v1amf7no{color:#dc2626}.vgxz95z-17{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;margin:0}.vgxz95z-18{font-size:12px;color:#6b6e76}.vgxz95z-19{margin:0;font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-variant-numeric:tabular-nums;font-size:11.5px;color:#0a0b0d;word-break:break-all}.vgxz95z-20{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;border:1px solid #e8e8eb;border-radius:var(--radius-md);overflow:hidden;background:#fcfcfc}.vgxz95z-21{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background;display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;border-top:1px solid #e8e8eb;cursor:pointer;text-align:left}.vgxz95z-21:first-child{border-top:none}.vgxz95z-21:hover{background:#f0f0f2}.vgxz95z-22{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;flex:1;min-width:0}.vgxz95z-23{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:12px;color:#0a0b0d}.vgxz95z-24{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:10.5px;color:#6b6e76}.vgxz95z-25{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-shrink:0}.vgxz95z-26{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-variant-numeric:tabular-nums;font-size:11px;color:#6b6e76;min-width:44px;text-align:right}.vgxz95z-27{padding:18px 14px;text-align:center;font-size:11.5px;color:#6b6e76;border:1px dashed #e8e8eb;border-radius:var(--radius-md)}.v11wyrim-1{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;flex-shrink:0;border-right:1px solid #e8e8eb;background:#f7f7f8;overflow:hidden;position:relative}.v11wyrim-2{display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:14px 16px;border-bottom:1px solid #e8e8eb}.v11wyrim-3{width:26px;height:26px;background:linear-gradient(135deg,#22d3ee,#0e7490);border-radius:7px;display:grid;place-items:center;color:#0a0b0d;font-weight:700;font-size:12.5px;letter-spacing:-.02em;box-shadow:0 0 20px #22d3ee33}.v11wyrim-4{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:1px;flex:1;min-width:0}.v11wyrim-5{font-size:13px;font-weight:600;letter-spacing:-.01em;color:#0a0b0d}.v11wyrim-6{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;color:#6b6e76;font-variant-numeric:tabular-nums}.v11wyrim-7{display:flex;align-items:center;justify-content:flex-start;gap:6px;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,border-color;margin:10px 12px 0;padding:0 8px;background:#f0f0f2;border:1px solid #e8e8eb;border-radius:var(--radius-sm);color:#6b6e76}.v11wyrim-7:focus-within{border-color:#22d3ee;background:#fcfcfc;color:#0a0b0d}.v11wyrim-7>svg{width:12px;height:12px;flex-shrink:0}.v11wyrim-8{flex:1;appearance:none;background:transparent;border:none;outline:none;padding:6px 0;font-size:12.5px;color:#0a0b0d;min-width:0}.v11wyrim-8::placeholder{color:#a4a7af}.v11wyrim-9{display:flex;align-items:center;justify-content:center;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,color;width:18px;height:18px;background:transparent;border:none;border-radius:var(--radius-sm);padding:0;color:#a4a7af;cursor:pointer;flex-shrink:0}.v11wyrim-9:hover{background:#ececee;color:#0a0b0d}.v11wyrim-9>svg{width:12px;height:12px}.v11wyrim-10{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px 6px}.v11wyrim-11{display:flex;align-items:center;justify-content:flex-start;gap:6px;flex-wrap:wrap;padding:10px 12px 0}.v11wyrim-12{display:flex;align-items:center;justify-content:flex-start;gap:5px;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,border-color,color;appearance:none;border:1px solid #e8e8eb;border-radius:999px;background:#f0f0f2;color:#6b6e76;padding:4px 8px;font-size:10px;line-height:1;font-weight:500;text-transform:uppercase;cursor:pointer}.v11wyrim-12:hover{background:#ececee;color:#0a0b0d}.v11wyrim-12.v6lqv3n{background:#0a0b0d;border-color:#0a0b0d;color:#fcfcfc}.v11wyrim-12.v19qld18:not(.v6lqv3n){color:#16a34a;background:#16a34a14;border-color:#16a34a2e}.v11wyrim-12.v1cg0dpp:not(.v6lqv3n){color:#dc2626;background:#dc262614;border-color:#dc26262e}.v11wyrim-12.v87wrzh:not(.v6lqv3n){color:#0e7490;background:#22d3ee1a;border-color:#22d3ee38}.v11wyrim-12.vs27jp:not(.v6lqv3n){color:#ea580c;background:#ea580c14;border-color:#ea580c2e}.v11wyrim-12.vyxbtsk:not(.v6lqv3n){background:#e4e4e7}.v11wyrim-12.vfa0aud:not(.v6lqv3n){color:#ea580c;background:#ea580c1a;border-color:#ea580c38}.v11wyrim-12.vrfu41b:not(.v6lqv3n){color:#0e7490;background:#22d3ee17;border-color:#22d3ee33}.v11wyrim-12.v177364w:not(.v6lqv3n){color:#6b6e76;background:#f0f0f2;border-color:#e8e8eb}.v11wyrim-13{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;font-weight:650;font-variant-numeric:tabular-nums}.v11wyrim-14{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:color;appearance:none;background:transparent;border:none;padding:0;color:#6b6e76;cursor:pointer}.v11wyrim-14:hover,.v11wyrim-14.v6lqv3n{color:#0a0b0d}.v11wyrim-15{display:flex;align-items:center;justify-content:flex-start;gap:4px}.v11wyrim-16{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;color:#a4a7af;font-variant-numeric:tabular-nums}.v11wyrim-17{display:flex;align-items:center;justify-content:center;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,color;width:22px;height:22px;background:transparent;border:none;border-radius:var(--radius-sm);padding:0;color:#a4a7af;cursor:pointer}.v11wyrim-17:hover{background:#f0f0f2;color:#0a0b0d}.v11wyrim-17:disabled{opacity:.4;cursor:default}.v11wyrim-17>svg{width:14px;height:14px}.v11wyrim-18{flex:1;overflow:auto;padding-bottom:10px}.vwomtc5-1{padding:2px 0 10px}.vwomtc5-2{padding:20px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px}.vwomtc5-3{color:#6b6e76;font-size:11.5px;font-weight:600;letter-spacing:-.005em}.vwomtc5-4{color:#6b6e76;font-size:12px;line-height:1.5;white-space:pre-wrap}.vwomtc5-5{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";display:block;width:100%;overflow:auto;color:#0a0b0d;background:#f0f0f2;border:1px solid #e8e8eb;border-radius:var(--radius-sm);padding:10px 12px}.vwomtc5-6{display:flex;align-items:center;justify-content:flex-start;gap:8px;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,color;position:relative;width:calc(100% - 16px);margin:1px 8px;background:transparent;border:none;border-radius:var(--radius-sm);text-align:left;color:#6b6e76;font-size:12.5px;line-height:20px;min-height:30px;padding-top:5px;padding-bottom:5px;padding-right:10px;overflow:hidden}.vwomtc5-6.depth0{padding-left:10px}.vwomtc5-6.depth1{padding-left:24px}.vwomtc5-6.depth2{padding-left:38px}.vwomtc5-6.depth3{padding-left:52px}.vwomtc5-6.active{background:#f0f0f2;color:#0a0b0d}.vwomtc5-6.active:before{content:"";position:absolute;left:-8px;top:6px;bottom:6px;width:2px;background:#22d3ee;border-radius:2px}.vwomtc5-7{display:flex;align-items:center;justify-content:flex-start;gap:8px;transition:.24s cubic-bezier(.4,0,.2,1);transition-property:background,color;position:relative;width:calc(100% - 16px);margin:1px 8px;background:transparent;border:none;border-radius:var(--radius-sm);text-align:left;color:#6b6e76;font-size:12.5px;line-height:20px;min-height:30px;padding-top:5px;padding-bottom:5px;padding-right:10px;overflow:hidden;cursor:pointer}.vwomtc5-7.vhb7hne{padding-left:10px}.vwomtc5-7.v1dycipb{padding-left:24px}.vwomtc5-7.v1qfp5hv{padding-left:38px}.vwomtc5-7.v5btrph{padding-left:52px}.vwomtc5-7.viu82ah{background:#f0f0f2;color:#0a0b0d}.vwomtc5-7.viu82ah:before{content:"";position:absolute;left:-8px;top:6px;bottom:6px;width:2px;background:#22d3ee;border-radius:2px}.vwomtc5-7:not(.viu82ah):hover{background:#fcfcfc;color:#0a0b0d}.vwomtc5-8{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:transform,background,color;display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);padding:0;color:#a4a7af;opacity:.8;flex-shrink:0;cursor:pointer}.vwomtc5-8:hover{background:#f0f0f2;color:#0a0b0d;opacity:1}.vwomtc5-8>svg{transition:.24s cubic-bezier(.4,0,.2,1);transition-property:transform;width:12px;height:12px}.vwomtc5-8.vk7wfis>svg{transform:rotate(90deg)}.vwomtc5-9{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;font-size:12.5px;color:#0a0b0d}.vwomtc5-10{color:#a4a7af;font-weight:400}.vwomtc5-11{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;font-size:12.5px}.vwomtc5-12{color:#a4a7af;font-weight:400}.vwomtc5-13{color:#a4a7af;font-weight:400;margin:0 4px}.vwomtc5-14{display:flex;align-items:center;justify-content:flex-start;gap:6px;flex-shrink:0}.vwomtc5-15{font-family:Geist Mono,JetBrains Mono,SF Mono,ui-monospace,monospace;font-feature-settings:"tnum","zero";font-size:10px;color:#a4a7af;font-variant-numeric:tabular-nums;flex-shrink:0}.v15ec1hr-1{height:100%;overflow:hidden;background:transparent}:root{color-scheme:light;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:Geist,-apple-system,BlinkMacSystemFont,Inter,Segoe UI,system-ui,sans-serif;font-feature-settings:"ss01","ss03","cv11";background:#fcfcfc;color:#0a0b0d;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;letter-spacing:-.005em}#root{height:100%}::selection{background:#22d3ee4d;color:#0a0b0d}button{cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;letter-spacing:inherit}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:#0e7490;text-decoration:none}a:hover{color:#22d3ee;text-decoration:underline;text-underline-offset:3px}
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
href="https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap"
|
|
26
26
|
rel="stylesheet"
|
|
27
27
|
/>
|
|
28
|
-
<script type="module" crossorigin src="/assets/index-
|
|
29
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
28
|
+
<script type="module" crossorigin src="/assets/index-Cba4MFa0.js"></script>
|
|
29
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CvR6QCLa.css">
|
|
30
30
|
</head>
|
|
31
31
|
<body>
|
|
32
32
|
<div id="root"></div>
|
package/dist/bin.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { C as validateCharts, F as deriveScopedSummaryFromCases, Fn as getEvalRegistry, N as getEvalTitle, P as getEvalDisplayStatus, S as normalizeScoreDef, _ as loadEvalModule, a as loadPersistedRunSnapshot, b as loadConfig, c as persistCaseDetail, d as recomputePersistedCaseStatus, et as resolveApiCallsConfig, f as runTouchesEval, g as setLatestRunInfoMap, h as getTargetEvalIds, i as getLatestRunInfos, l as persistRunState, m as buildEvalSummary, n as generateRunId, o as loadPersistedRunSnapshots, p as resolveArtifactPath, r as getLastRunStatuses, s as nextShortIdFromSnapshots, tt as resolveLlmCallsConfig, u as recomputeEvalStatusesInRuns, v as parseEvalMetas, w as createFsCacheStore, x as buildDeclaredColumnDefs, y as resolveEvalDefaultConfig, z as runSummarySchema } from "./runOrchestration-Cv1kiOAG.mjs";
|
|
2
2
|
import { createHash } from "node:crypto";
|
|
3
3
|
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
4
4
|
import { dirname, join, relative, resolve } from "node:path";
|
|
@@ -8,80 +8,6 @@ import { existsSync } from "node:fs";
|
|
|
8
8
|
import { resultify } from "t-result";
|
|
9
9
|
import { fileURLToPath } from "node:url";
|
|
10
10
|
import { spawn, spawnSync } from "node:child_process";
|
|
11
|
-
//#region ../runner/src/chartValidation.ts
|
|
12
|
-
function isValidColumnMetric(metric, columnsByKey, evalId, warnings) {
|
|
13
|
-
const columnDef = columnsByKey.get(metric.key);
|
|
14
|
-
if (!columnDef) {
|
|
15
|
-
warnings.push(`[${evalId}] chart metric references unknown column "${metric.key}" — dropped`);
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
if (metric.aggregate === "passThresholdRate") {
|
|
19
|
-
if (columnDef.isScore !== true || typeof columnDef.passThreshold !== "number") {
|
|
20
|
-
warnings.push(`[${evalId}] chart metric "${metric.key}" uses "passThresholdRate" but the column is not a score with passThreshold — dropped`);
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
function isValidTooltipExtra(extra, columnsByKey, evalId, warnings) {
|
|
27
|
-
const columnDef = columnsByKey.get(extra.key);
|
|
28
|
-
if (!columnDef) {
|
|
29
|
-
warnings.push(`[${evalId}] chart tooltip extra references unknown column "${extra.key}" — dropped`);
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
if (extra.aggregate === "passThresholdRate") {
|
|
33
|
-
if (columnDef.isScore !== true || typeof columnDef.passThreshold !== "number") {
|
|
34
|
-
warnings.push(`[${evalId}] chart tooltip extra "${extra.key}" uses "passThresholdRate" but the column is not a score with passThreshold — dropped`);
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
function sanitizeChart(chart, columnsByKey, evalId, warnings) {
|
|
41
|
-
const metrics = chart.metrics.filter((metric) => {
|
|
42
|
-
if (metric.source === "builtin") return true;
|
|
43
|
-
return isValidColumnMetric(metric, columnsByKey, evalId, warnings);
|
|
44
|
-
});
|
|
45
|
-
if (metrics.length === 0) {
|
|
46
|
-
warnings.push(`[${evalId}] chart had no valid metrics after validation — chart dropped`);
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
const tooltipExtras = chart.tooltipExtras?.filter((extra) => {
|
|
50
|
-
if (extra.source === "builtin") return true;
|
|
51
|
-
return isValidTooltipExtra(extra, columnsByKey, evalId, warnings);
|
|
52
|
-
});
|
|
53
|
-
return {
|
|
54
|
-
...chart,
|
|
55
|
-
metrics,
|
|
56
|
-
tooltipExtras: tooltipExtras?.length ? tooltipExtras : void 0
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Validate and sanitize an authored `charts` config against the eval's
|
|
61
|
-
* declared columns. Drops metrics/extras that reference unknown columns or
|
|
62
|
-
* misuse `passThresholdRate`, and drops entire charts whose metrics are all
|
|
63
|
-
* invalid. Returns `charts: undefined` when nothing valid remains so the UI
|
|
64
|
-
* falls back to rendering no chart (matching the opt-in default).
|
|
65
|
-
*/
|
|
66
|
-
function validateCharts(params) {
|
|
67
|
-
const { charts, columnDefs, evalId } = params;
|
|
68
|
-
if (!charts || charts.length === 0) return {
|
|
69
|
-
charts: void 0,
|
|
70
|
-
warnings: []
|
|
71
|
-
};
|
|
72
|
-
const columnsByKey = new Map(columnDefs.map((def) => [def.key, def]));
|
|
73
|
-
const warnings = [];
|
|
74
|
-
const sanitized = [];
|
|
75
|
-
for (const chart of charts) {
|
|
76
|
-
const result = sanitizeChart(chart, columnsByKey, evalId, warnings);
|
|
77
|
-
if (result) sanitized.push(result);
|
|
78
|
-
}
|
|
79
|
-
return {
|
|
80
|
-
charts: sanitized.length > 0 ? sanitized : void 0,
|
|
81
|
-
warnings
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
//#endregion
|
|
85
11
|
//#region ../runner/src/gitState.ts
|
|
86
12
|
function runGitCommand(workspaceRoot, args) {
|
|
87
13
|
const result = spawnSync("git", args, {
|
|
@@ -551,10 +477,14 @@ function createRunner({ watchForChanges = true } = {}) {
|
|
|
551
477
|
let stats;
|
|
552
478
|
let charts;
|
|
553
479
|
discoveredEntry?.use((evalDef) => {
|
|
554
|
-
|
|
555
|
-
|
|
480
|
+
const defaultConfig = resolveEvalDefaultConfig({
|
|
481
|
+
evalDef,
|
|
482
|
+
globalRemove: config.removeDefaultConfig
|
|
483
|
+
});
|
|
484
|
+
columnDefs = buildDeclaredColumnDefs(defaultConfig.columns, evalDef.scores, evalDef.manualScores);
|
|
485
|
+
stats = defaultConfig.stats;
|
|
556
486
|
const validated = validateCharts({
|
|
557
|
-
charts:
|
|
487
|
+
charts: defaultConfig.charts,
|
|
558
488
|
columnDefs,
|
|
559
489
|
evalId: meta.id
|
|
560
490
|
});
|
|
@@ -1029,8 +959,8 @@ async function commandApp(args) {
|
|
|
1029
959
|
const { serve } = await import("@hono/node-server");
|
|
1030
960
|
const bundledWebDist = resolve(currentDir, "apps/web/dist");
|
|
1031
961
|
if (existsSync(bundledWebDist)) process.env.AGENT_EVALS_WEB_DIST = bundledWebDist;
|
|
1032
|
-
const appModule = await import("./app-
|
|
1033
|
-
const runnerModule = await import("./runner-
|
|
962
|
+
const appModule = await import("./app-DsiLU65H.mjs");
|
|
963
|
+
const runnerModule = await import("./runner-B25oRQxX.mjs");
|
|
1034
964
|
if (!isHonoAppModule(appModule)) throw new Error("Server app module is invalid");
|
|
1035
965
|
if (!isServerRunnerModule(runnerModule)) throw new Error("Server runner module is invalid");
|
|
1036
966
|
await runnerModule.initRunner();
|
package/dist/index.d.mts
CHANGED
|
@@ -1473,6 +1473,36 @@ declare const trialSelectionModeSchema: z$1.ZodEnum<{
|
|
|
1473
1473
|
}>;
|
|
1474
1474
|
/** Strategy used to collapse repeated trials into one stored case result. */
|
|
1475
1475
|
type TrialSelectionMode = z$1.infer<typeof trialSelectionModeSchema>;
|
|
1476
|
+
/** Built-in eval-level output/column keys. */
|
|
1477
|
+
declare const defaultConfigKeySchema: z$1.ZodEnum<{
|
|
1478
|
+
apiCalls: "apiCalls";
|
|
1479
|
+
costUsd: "costUsd";
|
|
1480
|
+
llmTurns: "llmTurns";
|
|
1481
|
+
inputTokens: "inputTokens";
|
|
1482
|
+
outputTokens: "outputTokens";
|
|
1483
|
+
totalTokens: "totalTokens";
|
|
1484
|
+
cachedInputTokens: "cachedInputTokens";
|
|
1485
|
+
cacheCreationInputTokens: "cacheCreationInputTokens";
|
|
1486
|
+
reasoningTokens: "reasoningTokens";
|
|
1487
|
+
llmLatencyMs: "llmLatencyMs";
|
|
1488
|
+
}>;
|
|
1489
|
+
/** Built-in eval-level output/column key. */
|
|
1490
|
+
type DefaultConfigKey = z$1.infer<typeof defaultConfigKeySchema>;
|
|
1491
|
+
/** Removal config for built-in eval-level outputs and UI metadata. */
|
|
1492
|
+
declare const removeDefaultConfigSchema: z$1.ZodUnion<readonly [z$1.ZodLiteral<true>, z$1.ZodArray<z$1.ZodEnum<{
|
|
1493
|
+
apiCalls: "apiCalls";
|
|
1494
|
+
costUsd: "costUsd";
|
|
1495
|
+
llmTurns: "llmTurns";
|
|
1496
|
+
inputTokens: "inputTokens";
|
|
1497
|
+
outputTokens: "outputTokens";
|
|
1498
|
+
totalTokens: "totalTokens";
|
|
1499
|
+
cachedInputTokens: "cachedInputTokens";
|
|
1500
|
+
cacheCreationInputTokens: "cacheCreationInputTokens";
|
|
1501
|
+
reasoningTokens: "reasoningTokens";
|
|
1502
|
+
llmLatencyMs: "llmLatencyMs";
|
|
1503
|
+
}>>]>;
|
|
1504
|
+
/** Removal config for built-in eval-level outputs and UI metadata. */
|
|
1505
|
+
type RemoveDefaultConfig = z$1.infer<typeof removeDefaultConfigSchema>;
|
|
1476
1506
|
/** Render formats supported by an LLM-call metric in the UI. */
|
|
1477
1507
|
declare const llmCallMetricFormatSchema: z$1.ZodEnum<{
|
|
1478
1508
|
string: "string";
|
|
@@ -1561,6 +1591,21 @@ declare const apiCallMetricSchema: z$1.ZodObject<{
|
|
|
1561
1591
|
}, z$1.core.$strip>;
|
|
1562
1592
|
/** User-defined API-call metric authored in `agent-evals.config.ts`. */
|
|
1563
1593
|
type ApiCallMetric = z$1.infer<typeof apiCallMetricSchema>;
|
|
1594
|
+
/**
|
|
1595
|
+
* Schema for one model/provider pricing entry used to derive LLM-call costs
|
|
1596
|
+
* from token counts when a span does not already record explicit USD costs.
|
|
1597
|
+
*/
|
|
1598
|
+
declare const llmCallPricingSchema: z$1.ZodObject<{
|
|
1599
|
+
model: z$1.ZodString;
|
|
1600
|
+
provider: z$1.ZodOptional<z$1.ZodString>;
|
|
1601
|
+
inputUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
1602
|
+
outputUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
1603
|
+
cachedInputUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
1604
|
+
cacheCreationInputUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
1605
|
+
reasoningUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
1606
|
+
}, z$1.core.$strip>;
|
|
1607
|
+
/** Model/provider pricing entry authored in `agent-evals.config.ts`. */
|
|
1608
|
+
type LlmCallPricing = z$1.infer<typeof llmCallPricingSchema>;
|
|
1564
1609
|
/** Schema for the global LLM calls config block in `agent-evals.config.ts`. */
|
|
1565
1610
|
declare const llmCallsConfigSchema: z$1.ZodObject<{
|
|
1566
1611
|
kinds: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
|
|
@@ -1573,6 +1618,7 @@ declare const llmCallsConfigSchema: z$1.ZodObject<{
|
|
|
1573
1618
|
cacheCreationInputTokens: z$1.ZodOptional<z$1.ZodString>;
|
|
1574
1619
|
reasoningTokens: z$1.ZodOptional<z$1.ZodString>;
|
|
1575
1620
|
totalTokens: z$1.ZodOptional<z$1.ZodString>;
|
|
1621
|
+
tokensPerSecond: z$1.ZodOptional<z$1.ZodString>;
|
|
1576
1622
|
cost: z$1.ZodOptional<z$1.ZodString>;
|
|
1577
1623
|
inputCost: z$1.ZodOptional<z$1.ZodString>;
|
|
1578
1624
|
outputCost: z$1.ZodOptional<z$1.ZodString>;
|
|
@@ -1586,6 +1632,15 @@ declare const llmCallsConfigSchema: z$1.ZodObject<{
|
|
|
1586
1632
|
reasoning: z$1.ZodOptional<z$1.ZodString>;
|
|
1587
1633
|
toolCalls: z$1.ZodOptional<z$1.ZodString>;
|
|
1588
1634
|
}, z$1.core.$strip>>;
|
|
1635
|
+
pricing: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
|
|
1636
|
+
model: z$1.ZodString;
|
|
1637
|
+
provider: z$1.ZodOptional<z$1.ZodString>;
|
|
1638
|
+
inputUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
1639
|
+
outputUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
1640
|
+
cachedInputUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
1641
|
+
cacheCreationInputUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
1642
|
+
reasoningUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
1643
|
+
}, z$1.core.$strip>>>;
|
|
1589
1644
|
metrics: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
|
|
1590
1645
|
label: z$1.ZodString;
|
|
1591
1646
|
tooltip: z$1.ZodOptional<z$1.ZodString>;
|
|
@@ -1659,6 +1714,7 @@ type ResolvedLlmCallsConfig = {
|
|
|
1659
1714
|
cacheCreationInputTokens: string;
|
|
1660
1715
|
reasoningTokens: string;
|
|
1661
1716
|
totalTokens: string;
|
|
1717
|
+
tokensPerSecond: string;
|
|
1662
1718
|
cost: string;
|
|
1663
1719
|
inputCost: string;
|
|
1664
1720
|
outputCost: string;
|
|
@@ -1673,6 +1729,7 @@ type ResolvedLlmCallsConfig = {
|
|
|
1673
1729
|
toolCalls: string;
|
|
1674
1730
|
};
|
|
1675
1731
|
metrics: ResolvedLlmCallMetric[];
|
|
1732
|
+
pricing: ResolvedLlmCallPricing[];
|
|
1676
1733
|
};
|
|
1677
1734
|
/** Resolved API-calls config sent to the UI with all defaults applied. */
|
|
1678
1735
|
type ResolvedApiCallsConfig = {
|
|
@@ -1709,6 +1766,16 @@ type ResolvedApiCallMetric = {
|
|
|
1709
1766
|
numberFormat?: NumberDisplayOptions;
|
|
1710
1767
|
placements: ApiCallMetricPlacement[];
|
|
1711
1768
|
};
|
|
1769
|
+
/** Fully-resolved pricing entry used by the LLM calls extractor. */
|
|
1770
|
+
type ResolvedLlmCallPricing = {
|
|
1771
|
+
model: string;
|
|
1772
|
+
provider?: string;
|
|
1773
|
+
inputUsdPerMillion?: number;
|
|
1774
|
+
outputUsdPerMillion?: number;
|
|
1775
|
+
cachedInputUsdPerMillion?: number;
|
|
1776
|
+
cacheCreationInputUsdPerMillion?: number;
|
|
1777
|
+
reasoningUsdPerMillion?: number;
|
|
1778
|
+
};
|
|
1712
1779
|
/** Default LLM-calls config the UI uses before the workspace fetch resolves. */
|
|
1713
1780
|
declare const DEFAULT_LLM_CALLS_CONFIG: ResolvedLlmCallsConfig;
|
|
1714
1781
|
/** Default API-calls config the UI uses before the workspace fetch resolves. */
|
|
@@ -1722,6 +1789,8 @@ declare const DEFAULT_API_CALLS_CONFIG: ResolvedApiCallsConfig;
|
|
|
1722
1789
|
* attribute path.
|
|
1723
1790
|
* - Missing `metrics[].format` defaults to `'string'`.
|
|
1724
1791
|
* - Missing `metrics[].placements` defaults to `['body']`.
|
|
1792
|
+
* - Missing `pricing` defaults to an empty registry; explicit span costs still
|
|
1793
|
+
* take precedence over derived costs.
|
|
1725
1794
|
*/
|
|
1726
1795
|
declare function resolveLlmCallsConfig(input: LlmCallsConfigInput | undefined): ResolvedLlmCallsConfig;
|
|
1727
1796
|
/**
|
|
@@ -1788,14 +1857,25 @@ type AgentEvalsConfig = {
|
|
|
1788
1857
|
* cachedInputTokens: 'usage.cache_read_input_tokens',
|
|
1789
1858
|
* },
|
|
1790
1859
|
* metrics: [
|
|
1791
|
-
* { label: 'Tokens/sec', path: 'tokensPerSecond', format: 'number',
|
|
1792
|
-
* numberFormat: { decimalPlaces: 1 }, placements: ['header', 'body'] },
|
|
1793
1860
|
* { label: 'Retries', path: 'retryCount', format: 'number' },
|
|
1794
1861
|
* ],
|
|
1862
|
+
* pricing: [
|
|
1863
|
+
* { model: 'gpt-4o-mini', provider: 'openai',
|
|
1864
|
+
* inputUsdPerMillion: 0.15, outputUsdPerMillion: 0.6 },
|
|
1865
|
+
* ],
|
|
1795
1866
|
* }
|
|
1796
1867
|
* ```
|
|
1797
1868
|
*/
|
|
1798
1869
|
llmCalls?: LlmCallsConfigInput;
|
|
1870
|
+
/**
|
|
1871
|
+
* Remove built-in eval-level outputs, columns, stats, and charts.
|
|
1872
|
+
*
|
|
1873
|
+
* Defaults are derived from trace spans using the resolved `llmCalls` and
|
|
1874
|
+
* `apiCalls` extraction configs. Set to `true` to remove all defaults, or
|
|
1875
|
+
* pass specific keys such as `['costUsd', 'apiCalls']` to remove only those
|
|
1876
|
+
* defaults globally. Per-eval removal is additive.
|
|
1877
|
+
*/
|
|
1878
|
+
removeDefaultConfig?: RemoveDefaultConfig;
|
|
1799
1879
|
/**
|
|
1800
1880
|
* Configuration for the "API calls" tab in the case-run drawer.
|
|
1801
1881
|
*
|
|
@@ -1902,6 +1982,7 @@ declare const agentEvalsConfigSchema: z$1.ZodObject<{
|
|
|
1902
1982
|
cacheCreationInputTokens: z$1.ZodOptional<z$1.ZodString>;
|
|
1903
1983
|
reasoningTokens: z$1.ZodOptional<z$1.ZodString>;
|
|
1904
1984
|
totalTokens: z$1.ZodOptional<z$1.ZodString>;
|
|
1985
|
+
tokensPerSecond: z$1.ZodOptional<z$1.ZodString>;
|
|
1905
1986
|
cost: z$1.ZodOptional<z$1.ZodString>;
|
|
1906
1987
|
inputCost: z$1.ZodOptional<z$1.ZodString>;
|
|
1907
1988
|
outputCost: z$1.ZodOptional<z$1.ZodString>;
|
|
@@ -1915,6 +1996,15 @@ declare const agentEvalsConfigSchema: z$1.ZodObject<{
|
|
|
1915
1996
|
reasoning: z$1.ZodOptional<z$1.ZodString>;
|
|
1916
1997
|
toolCalls: z$1.ZodOptional<z$1.ZodString>;
|
|
1917
1998
|
}, z$1.core.$strip>>;
|
|
1999
|
+
pricing: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
|
|
2000
|
+
model: z$1.ZodString;
|
|
2001
|
+
provider: z$1.ZodOptional<z$1.ZodString>;
|
|
2002
|
+
inputUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
2003
|
+
outputUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
2004
|
+
cachedInputUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
2005
|
+
cacheCreationInputUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
2006
|
+
reasoningUsdPerMillion: z$1.ZodOptional<z$1.ZodNumber>;
|
|
2007
|
+
}, z$1.core.$strip>>>;
|
|
1918
2008
|
metrics: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
|
|
1919
2009
|
label: z$1.ZodString;
|
|
1920
2010
|
tooltip: z$1.ZodOptional<z$1.ZodString>;
|
|
@@ -1933,6 +2023,18 @@ declare const agentEvalsConfigSchema: z$1.ZodObject<{
|
|
|
1933
2023
|
}>>>;
|
|
1934
2024
|
}, z$1.core.$strip>>>;
|
|
1935
2025
|
}, z$1.core.$strip>>;
|
|
2026
|
+
removeDefaultConfig: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodLiteral<true>, z$1.ZodArray<z$1.ZodEnum<{
|
|
2027
|
+
apiCalls: "apiCalls";
|
|
2028
|
+
costUsd: "costUsd";
|
|
2029
|
+
llmTurns: "llmTurns";
|
|
2030
|
+
inputTokens: "inputTokens";
|
|
2031
|
+
outputTokens: "outputTokens";
|
|
2032
|
+
totalTokens: "totalTokens";
|
|
2033
|
+
cachedInputTokens: "cachedInputTokens";
|
|
2034
|
+
cacheCreationInputTokens: "cacheCreationInputTokens";
|
|
2035
|
+
reasoningTokens: "reasoningTokens";
|
|
2036
|
+
llmLatencyMs: "llmLatencyMs";
|
|
2037
|
+
}>>]>>;
|
|
1936
2038
|
apiCalls: z$1.ZodOptional<z$1.ZodObject<{
|
|
1937
2039
|
kinds: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
|
|
1938
2040
|
attributes: z$1.ZodOptional<z$1.ZodObject<{
|
|
@@ -2001,6 +2103,7 @@ type LlmCallEntry = {
|
|
|
2001
2103
|
cacheCreationInputTokens: number | null;
|
|
2002
2104
|
reasoningTokens: number | null;
|
|
2003
2105
|
totalTokens: number | null;
|
|
2106
|
+
tokensPerSecond: number | null;
|
|
2004
2107
|
costUsd: number | null;
|
|
2005
2108
|
inputCostUsd: number | null;
|
|
2006
2109
|
outputCostUsd: number | null;
|
|
@@ -2024,9 +2127,11 @@ type LlmCallEntry = {
|
|
|
2024
2127
|
* shape consumed by the LLM calls tab.
|
|
2025
2128
|
*
|
|
2026
2129
|
* Spans whose `kind` is not in `config.kinds` are dropped. Structured fields
|
|
2027
|
-
* (`model`, token counts, cost, etc.) are read via
|
|
2028
|
-
* the configured paths, with safe coercion to
|
|
2029
|
-
*
|
|
2130
|
+
* (`model`, token counts, explicit cost, etc.) are read via
|
|
2131
|
+
* `getNestedAttribute` from the configured paths, with safe coercion to
|
|
2132
|
+
* `string | null` / `number | null`. When explicit USD costs are absent,
|
|
2133
|
+
* configured model pricing derives per-token-type costs from token counts.
|
|
2134
|
+
* `totalTokens` falls back to a sum of input + output + cached when no
|
|
2030
2135
|
* explicit total attribute is present. The `steps` attribute path may resolve
|
|
2031
2136
|
* to either a number (rendered as the inference-round count) or an array of
|
|
2032
2137
|
* per-step detail objects (rendered as a Steps section in the body, with
|
|
@@ -2867,6 +2972,16 @@ type EvalDefinitionBase<TInput = unknown, TOutputs extends EvalOutputs = EvalOut
|
|
|
2867
2972
|
* with `passThreshold`.
|
|
2868
2973
|
*/
|
|
2869
2974
|
charts?: EvalChartsConfig;
|
|
2975
|
+
/**
|
|
2976
|
+
* Remove built-in eval-level outputs, columns, stats, and charts.
|
|
2977
|
+
*
|
|
2978
|
+
* By default the runner derives usage fields from trace spans using the
|
|
2979
|
+
* workspace `llmCalls` and `apiCalls` configs. Set to `true` to remove all
|
|
2980
|
+
* defaults for this eval, or pass specific keys such as
|
|
2981
|
+
* `['costUsd', 'apiCalls']` to remove only those defaults. Per-eval removals
|
|
2982
|
+
* are combined with global removals.
|
|
2983
|
+
*/
|
|
2984
|
+
removeDefaultConfig?: true | DefaultConfigKey[];
|
|
2870
2985
|
};
|
|
2871
2986
|
/**
|
|
2872
2987
|
* Complete authored eval definition consumed by `defineEval`.
|
|
@@ -3460,4 +3575,4 @@ declare function createRunner({
|
|
|
3460
3575
|
*/
|
|
3461
3576
|
declare function runCli(argv: string[]): Promise<void>;
|
|
3462
3577
|
//#endregion
|
|
3463
|
-
export { type AgentEvalsConfig, type ApiCallEntry, type ApiCallMetric, type ApiCallMetricFormat, type ApiCallMetricPlacement, type ApiCallMetricValue, type ApiCallsConfigInput, type AssertionFailure, type CacheActivityEntry, type CacheAdapter, type CacheDebugKeyEntry, type CacheDebugKeyFile, type CacheDebugKeyWrite, type CacheEntry, type CacheEntryWithDebugKey, type CacheFile, type CacheHitEntry, type CacheKeyHashInput, type CacheKeyHashOptions, type CacheListItem, type CacheMode, type CacheOperationType, type CacheRecording, type CacheRecordingFrame, type CacheRecordingOp, type CacheScopeContext, type CacheStatus, type CaptureEvalSpanErrorLevel, type CaptureEvalSpanErrorOptions, type CaseDetail, type CaseRow, type CellValue, type ColumnDef, type ColumnFormat, type ColumnKind, type CreateRunRequest, DEFAULT_API_CALLS_CONFIG, DEFAULT_LLM_CALLS_CONFIG, type DerivedStatus, EvalAssertionError, type EvalCase, type EvalCaseScope, type EvalChartAggregate, type EvalChartAxis, type EvalChartBuiltinMetric, type EvalChartColor, type EvalChartConfig, type EvalChartMetric, type EvalChartTooltipExtra, type EvalChartType, type EvalChartsConfig, type EvalColumnOverride, type EvalColumns, type EvalDefinition, type EvalDeriveContext, type EvalDisplayStatus, type EvalExecuteContext, type EvalFreshnessStatus, type EvalManualScoreDef, type EvalOutputs, type EvalOutputsSchema, type EvalRunner, type EvalRuntimeScope, type EvalScoreContext, type EvalScoreDef, type EvalScoreFn, type EvalSetOutput, type EvalStatAggregate, type EvalStatItem, type EvalStatsConfig, type EvalSummary, type EvalTraceSpan, type EvalTraceSpanError, type EvalTraceSpanWarning, type EvalTraceTree, type FileRef, type JsonCell, type LlmCallEntry, type LlmCallMetric, type LlmCallMetricFormat, type LlmCallMetricPlacement, type LlmCallMetricValue, type LlmCallsConfigInput, type NumberDisplayOptions, type RepoFileRef, type ResolvedApiCallMetric, type ResolvedApiCallsConfig, type ResolvedLlmCallMetric, type ResolvedLlmCallsConfig, type RunArtifactRef, type RunInEvalScopeOptions, type RunLogEntry, type RunLogLevel, type RunLogLocation, type RunLogPhase, type RunLogsConfigInput, type RunManifest, type RunSummary, type ScalarCell, type ScopedCaseSummary, type ScoreTrace, type SerializedCacheSpan, type SerializedCacheValue, type SpanCacheOptions, type SseEnvelope, type SseEventType, type TraceActiveSpan, type TraceAttributeDisplay, type TraceAttributeDisplayFormat, type TraceAttributeDisplayInput, type TraceAttributeDisplayPlacement, type TraceAttributeTransform, type TraceAttributeTransformContext, type TraceCacheInfo, type TraceCacheRef, type TraceDisplayConfig, type TraceDisplayInputConfig, type TraceSpanInfo, type TrialSelectionMode, type UpdateManualScoreRequest, agentEvalsConfigSchema, apiCallMetricFormatSchema, apiCallMetricPlacementSchema, apiCallMetricSchema, apiCallsConfigSchema, appendToEvalOutput, assertionFailureSchema, buildTraceTree, cacheDebugKeyEntrySchema, cacheDebugKeyFileSchema, cacheEntrySchema, cacheEntryWithDebugKeySchema, cacheFileSchema, cacheListItemSchema, cacheModeSchema, cacheOperationTypeSchema, cacheRecordingOpSchema, cacheRecordingSchema, cacheStatusSchema, captureEvalSpanError, caseDetailSchema, caseRowSchema, cellValueSchema, columnDefSchema, columnFormatSchema, columnKindSchema, createRunRequestSchema, createRunner, defineEval, deriveScopedSummaryFromCases, deriveStatusFromCaseRows, deriveStatusFromChildStatuses, deserializeCacheRecording, deserializeCacheValue, evalAssert, evalChartAggregateSchema, evalChartAxisSchema, evalChartBuiltinMetricSchema, evalChartColorSchema, evalChartConfigSchema, evalChartMetricSchema, evalChartTooltipExtraSchema, evalChartTypeSchema, evalChartsConfigSchema, evalFreshnessStatusSchema, evalLog, evalSpan, evalStatAggregateSchema, evalStatItemSchema, evalStatsConfigSchema, evalSummarySchema, evalTracer, extractApiCalls, extractCacheEntries, extractCacheHits, extractLlmCalls, fileRefSchema, getCurrentScope, getEvalCaseInput, getEvalDisplayStatus, getEvalRegistry, getEvalTitle, getNestedAttribute, hashCacheKey, hashCacheKeySync, incrementEvalOutput, isInEvalScope, jsonCellSchema, llmCallMetricFormatSchema, llmCallMetricPlacementSchema, llmCallMetricSchema, llmCallsConfigSchema, mergeEvalOutput, nextEvalId, numberDisplayOptionsSchema, repoFile, repoFileRefSchema, resolveApiCallsConfig, resolveLlmCallsConfig, runArtifactRefSchema, runCli, runInEvalRuntimeScope, runInEvalScope, runInExistingEvalScope, runLogEntrySchema, runLogLevelSchema, runLogLocationSchema, runLogPhaseSchema, runLogsConfigSchema, runManifestSchema, runSummarySchema, scoreTraceSchema, serializeCacheRecording, serializeCacheValue, serializedCacheSpanSchema, setEvalOutput, setScopeCacheContext, spanCacheOptionsSchema, sseEnvelopeSchema, startEvalBackgroundJob, traceAttributeDisplayFormatSchema, traceAttributeDisplayInputSchema, traceAttributeDisplayPlacementSchema, traceAttributeDisplaySchema, traceCacheRefSchema, traceDisplayConfigSchema, traceDisplayInputConfigSchema, traceSpanErrorSchema, traceSpanKindSchema, traceSpanSchema, traceSpanWarningSchema, trialSelectionModeSchema, updateManualScoreRequestSchema, z };
|
|
3578
|
+
export { type AgentEvalsConfig, type ApiCallEntry, type ApiCallMetric, type ApiCallMetricFormat, type ApiCallMetricPlacement, type ApiCallMetricValue, type ApiCallsConfigInput, type AssertionFailure, type CacheActivityEntry, type CacheAdapter, type CacheDebugKeyEntry, type CacheDebugKeyFile, type CacheDebugKeyWrite, type CacheEntry, type CacheEntryWithDebugKey, type CacheFile, type CacheHitEntry, type CacheKeyHashInput, type CacheKeyHashOptions, type CacheListItem, type CacheMode, type CacheOperationType, type CacheRecording, type CacheRecordingFrame, type CacheRecordingOp, type CacheScopeContext, type CacheStatus, type CaptureEvalSpanErrorLevel, type CaptureEvalSpanErrorOptions, type CaseDetail, type CaseRow, type CellValue, type ColumnDef, type ColumnFormat, type ColumnKind, type CreateRunRequest, DEFAULT_API_CALLS_CONFIG, DEFAULT_LLM_CALLS_CONFIG, type DefaultConfigKey, type DerivedStatus, EvalAssertionError, type EvalCase, type EvalCaseScope, type EvalChartAggregate, type EvalChartAxis, type EvalChartBuiltinMetric, type EvalChartColor, type EvalChartConfig, type EvalChartMetric, type EvalChartTooltipExtra, type EvalChartType, type EvalChartsConfig, type EvalColumnOverride, type EvalColumns, type EvalDefinition, type EvalDeriveContext, type EvalDisplayStatus, type EvalExecuteContext, type EvalFreshnessStatus, type EvalManualScoreDef, type EvalOutputs, type EvalOutputsSchema, type EvalRunner, type EvalRuntimeScope, type EvalScoreContext, type EvalScoreDef, type EvalScoreFn, type EvalSetOutput, type EvalStatAggregate, type EvalStatItem, type EvalStatsConfig, type EvalSummary, type EvalTraceSpan, type EvalTraceSpanError, type EvalTraceSpanWarning, type EvalTraceTree, type FileRef, type JsonCell, type LlmCallEntry, type LlmCallMetric, type LlmCallMetricFormat, type LlmCallMetricPlacement, type LlmCallMetricValue, type LlmCallPricing, type LlmCallsConfigInput, type NumberDisplayOptions, type RemoveDefaultConfig, type RepoFileRef, type ResolvedApiCallMetric, type ResolvedApiCallsConfig, type ResolvedLlmCallMetric, type ResolvedLlmCallPricing, type ResolvedLlmCallsConfig, type RunArtifactRef, type RunInEvalScopeOptions, type RunLogEntry, type RunLogLevel, type RunLogLocation, type RunLogPhase, type RunLogsConfigInput, type RunManifest, type RunSummary, type ScalarCell, type ScopedCaseSummary, type ScoreTrace, type SerializedCacheSpan, type SerializedCacheValue, type SpanCacheOptions, type SseEnvelope, type SseEventType, type TraceActiveSpan, type TraceAttributeDisplay, type TraceAttributeDisplayFormat, type TraceAttributeDisplayInput, type TraceAttributeDisplayPlacement, type TraceAttributeTransform, type TraceAttributeTransformContext, type TraceCacheInfo, type TraceCacheRef, type TraceDisplayConfig, type TraceDisplayInputConfig, type TraceSpanInfo, type TrialSelectionMode, type UpdateManualScoreRequest, agentEvalsConfigSchema, apiCallMetricFormatSchema, apiCallMetricPlacementSchema, apiCallMetricSchema, apiCallsConfigSchema, appendToEvalOutput, assertionFailureSchema, buildTraceTree, cacheDebugKeyEntrySchema, cacheDebugKeyFileSchema, cacheEntrySchema, cacheEntryWithDebugKeySchema, cacheFileSchema, cacheListItemSchema, cacheModeSchema, cacheOperationTypeSchema, cacheRecordingOpSchema, cacheRecordingSchema, cacheStatusSchema, captureEvalSpanError, caseDetailSchema, caseRowSchema, cellValueSchema, columnDefSchema, columnFormatSchema, columnKindSchema, createRunRequestSchema, createRunner, defaultConfigKeySchema, defineEval, deriveScopedSummaryFromCases, deriveStatusFromCaseRows, deriveStatusFromChildStatuses, deserializeCacheRecording, deserializeCacheValue, evalAssert, evalChartAggregateSchema, evalChartAxisSchema, evalChartBuiltinMetricSchema, evalChartColorSchema, evalChartConfigSchema, evalChartMetricSchema, evalChartTooltipExtraSchema, evalChartTypeSchema, evalChartsConfigSchema, evalFreshnessStatusSchema, evalLog, evalSpan, evalStatAggregateSchema, evalStatItemSchema, evalStatsConfigSchema, evalSummarySchema, evalTracer, extractApiCalls, extractCacheEntries, extractCacheHits, extractLlmCalls, fileRefSchema, getCurrentScope, getEvalCaseInput, getEvalDisplayStatus, getEvalRegistry, getEvalTitle, getNestedAttribute, hashCacheKey, hashCacheKeySync, incrementEvalOutput, isInEvalScope, jsonCellSchema, llmCallMetricFormatSchema, llmCallMetricPlacementSchema, llmCallMetricSchema, llmCallPricingSchema, llmCallsConfigSchema, mergeEvalOutput, nextEvalId, numberDisplayOptionsSchema, removeDefaultConfigSchema, repoFile, repoFileRefSchema, resolveApiCallsConfig, resolveLlmCallsConfig, runArtifactRefSchema, runCli, runInEvalRuntimeScope, runInEvalScope, runInExistingEvalScope, runLogEntrySchema, runLogLevelSchema, runLogLocationSchema, runLogPhaseSchema, runLogsConfigSchema, runManifestSchema, runSummarySchema, scoreTraceSchema, serializeCacheRecording, serializeCacheValue, serializedCacheSpanSchema, setEvalOutput, setScopeCacheContext, spanCacheOptionsSchema, sseEnvelopeSchema, startEvalBackgroundJob, traceAttributeDisplayFormatSchema, traceAttributeDisplayInputSchema, traceAttributeDisplayPlacementSchema, traceAttributeDisplaySchema, traceCacheRefSchema, traceDisplayConfigSchema, traceDisplayInputConfigSchema, traceSpanErrorSchema, traceSpanKindSchema, traceSpanSchema, traceSpanWarningSchema, trialSelectionModeSchema, updateManualScoreRequestSchema, z };
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
import { n as createRunner, t as runCli } from "./cli-
|
|
3
|
-
import "./src-
|
|
4
|
-
export { DEFAULT_API_CALLS_CONFIG, DEFAULT_LLM_CALLS_CONFIG, EvalAssertionError, agentEvalsConfigSchema, apiCallMetricFormatSchema, apiCallMetricPlacementSchema, apiCallMetricSchema, apiCallsConfigSchema, appendToEvalOutput, assertionFailureSchema, buildTraceTree, cacheDebugKeyEntrySchema, cacheDebugKeyFileSchema, cacheEntrySchema, cacheEntryWithDebugKeySchema, cacheFileSchema, cacheListItemSchema, cacheModeSchema, cacheOperationTypeSchema, cacheRecordingOpSchema, cacheRecordingSchema, cacheStatusSchema, captureEvalSpanError, caseDetailSchema, caseRowSchema, cellValueSchema, columnDefSchema, columnFormatSchema, columnKindSchema, createRunRequestSchema, createRunner, defineEval, deriveScopedSummaryFromCases, deriveStatusFromCaseRows, deriveStatusFromChildStatuses, deserializeCacheRecording, deserializeCacheValue, evalAssert, evalChartAggregateSchema, evalChartAxisSchema, evalChartBuiltinMetricSchema, evalChartColorSchema, evalChartConfigSchema, evalChartMetricSchema, evalChartTooltipExtraSchema, evalChartTypeSchema, evalChartsConfigSchema, evalFreshnessStatusSchema, evalLog, evalSpan, evalStatAggregateSchema, evalStatItemSchema, evalStatsConfigSchema, evalSummarySchema, evalTracer, extractApiCalls, extractCacheEntries, extractCacheHits, extractLlmCalls, fileRefSchema, getCurrentScope, getEvalCaseInput, getEvalDisplayStatus, getEvalRegistry, getEvalTitle, getNestedAttribute, hashCacheKey, hashCacheKeySync, incrementEvalOutput, isInEvalScope, jsonCellSchema, llmCallMetricFormatSchema, llmCallMetricPlacementSchema, llmCallMetricSchema, llmCallsConfigSchema, mergeEvalOutput, nextEvalId, numberDisplayOptionsSchema, repoFile, repoFileRefSchema, resolveApiCallsConfig, resolveLlmCallsConfig, runArtifactRefSchema, runCli, runInEvalRuntimeScope, runInEvalScope, runInExistingEvalScope, runLogEntrySchema, runLogLevelSchema, runLogLocationSchema, runLogPhaseSchema, runLogsConfigSchema, runManifestSchema, runSummarySchema, scoreTraceSchema, serializeCacheRecording, serializeCacheValue, serializedCacheSpanSchema, setEvalOutput, setScopeCacheContext, spanCacheOptionsSchema, sseEnvelopeSchema, startEvalBackgroundJob, traceAttributeDisplayFormatSchema, traceAttributeDisplayInputSchema, traceAttributeDisplayPlacementSchema, traceAttributeDisplaySchema, traceCacheRefSchema, traceDisplayConfigSchema, traceDisplayInputConfigSchema, traceSpanErrorSchema, traceSpanKindSchema, traceSpanSchema, traceSpanWarningSchema, trialSelectionModeSchema, updateManualScoreRequestSchema, z };
|
|
1
|
+
import { $ as removeDefaultConfigSchema, $t as columnKindSchema, A as extractApiCalls, An as setEvalOutput, At as cacheFileSchema, B as DEFAULT_API_CALLS_CONFIG, Bt as traceAttributeDisplayFormatSchema, Cn as incrementEvalOutput, Ct as evalChartTooltipExtraSchema, D as sseEnvelopeSchema, Dn as runInEvalRuntimeScope, Dt as cacheDebugKeyFileSchema, E as updateManualScoreRequestSchema, En as nextEvalId, Et as cacheDebugKeyEntrySchema, F as deriveScopedSummaryFromCases, Fn as getEvalRegistry, Ft as cacheRecordingSchema, G as apiCallMetricSchema, Gt as traceDisplayInputConfigSchema, H as agentEvalsConfigSchema, Ht as traceAttributeDisplayPlacementSchema, I as deriveStatusFromCaseRows, It as cacheStatusSchema, J as llmCallMetricFormatSchema, Jt as traceSpanSchema, K as apiCallsConfigSchema, Kt as traceSpanErrorSchema, L as deriveStatusFromChildStatuses, Lt as serializedCacheSpanSchema, M as getNestedAttribute, Mn as startEvalBackgroundJob, Mt as cacheModeSchema, N as getEvalTitle, Nn as repoFile, Nt as cacheOperationTypeSchema, O as extractCacheEntries, On as runInEvalScope, Ot as cacheEntrySchema, P as getEvalDisplayStatus, Pn as defineEval, Pt as cacheRecordingOpSchema, Q as llmCallsConfigSchema, Qt as columnFormatSchema, R as runManifestSchema, Rt as spanCacheOptionsSchema, Sn as getEvalCaseInput, St as evalChartMetricSchema, T as createRunRequestSchema, Tn as mergeEvalOutput, Tt as evalChartsConfigSchema, U as apiCallMetricFormatSchema, Ut as traceAttributeDisplaySchema, V as DEFAULT_LLM_CALLS_CONFIG, Vt as traceAttributeDisplayInputSchema, W as apiCallMetricPlacementSchema, Wt as traceDisplayConfigSchema, X as llmCallMetricSchema, Xt as cellValueSchema, Y as llmCallMetricPlacementSchema, Yt as traceSpanWarningSchema, Z as llmCallPricingSchema, Zt as columnDefSchema, _n as appendToEvalOutput, _t as evalChartAggregateSchema, an as z, at as caseDetailSchema, bn as evalLog, bt as evalChartColorSchema, cn as evalSpan, ct as evalStatAggregateSchema, dn as hashCacheKeySync, dt as evalSummarySchema, en as fileRefSchema, et as resolveApiCallsConfig, fn as deserializeCacheRecording, ft as runLogEntrySchema, gn as EvalAssertionError, gt as scoreTraceSchema, hn as serializeCacheValue, ht as runLogPhaseSchema, in as runArtifactRefSchema, it as assertionFailureSchema, j as extractLlmCalls, jn as setScopeCacheContext, jt as cacheListItemSchema, k as extractCacheHits, kn as runInExistingEvalScope, kt as cacheEntryWithDebugKeySchema, ln as evalTracer, lt as evalStatItemSchema, mn as serializeCacheRecording, mt as runLogLocationSchema, nn as numberDisplayOptionsSchema, nt as runLogsConfigSchema, on as buildTraceTree, ot as caseRowSchema, pn as deserializeCacheValue, pt as runLogLevelSchema, q as defaultConfigKeySchema, qt as traceSpanKindSchema, rn as repoFileRefSchema, rt as trialSelectionModeSchema, sn as captureEvalSpanError, st as evalFreshnessStatusSchema, tn as jsonCellSchema, tt as resolveLlmCallsConfig, un as hashCacheKey, ut as evalStatsConfigSchema, vt as evalChartAxisSchema, wn as isInEvalScope, wt as evalChartTypeSchema, xn as getCurrentScope, xt as evalChartConfigSchema, yn as evalAssert, yt as evalChartBuiltinMetricSchema, z as runSummarySchema, zt as traceCacheRefSchema } from "./runOrchestration-Cv1kiOAG.mjs";
|
|
2
|
+
import { n as createRunner, t as runCli } from "./cli-weogme5U.mjs";
|
|
3
|
+
import "./src-B879LZfo.mjs";
|
|
4
|
+
export { DEFAULT_API_CALLS_CONFIG, DEFAULT_LLM_CALLS_CONFIG, EvalAssertionError, agentEvalsConfigSchema, apiCallMetricFormatSchema, apiCallMetricPlacementSchema, apiCallMetricSchema, apiCallsConfigSchema, appendToEvalOutput, assertionFailureSchema, buildTraceTree, cacheDebugKeyEntrySchema, cacheDebugKeyFileSchema, cacheEntrySchema, cacheEntryWithDebugKeySchema, cacheFileSchema, cacheListItemSchema, cacheModeSchema, cacheOperationTypeSchema, cacheRecordingOpSchema, cacheRecordingSchema, cacheStatusSchema, captureEvalSpanError, caseDetailSchema, caseRowSchema, cellValueSchema, columnDefSchema, columnFormatSchema, columnKindSchema, createRunRequestSchema, createRunner, defaultConfigKeySchema, defineEval, deriveScopedSummaryFromCases, deriveStatusFromCaseRows, deriveStatusFromChildStatuses, deserializeCacheRecording, deserializeCacheValue, evalAssert, evalChartAggregateSchema, evalChartAxisSchema, evalChartBuiltinMetricSchema, evalChartColorSchema, evalChartConfigSchema, evalChartMetricSchema, evalChartTooltipExtraSchema, evalChartTypeSchema, evalChartsConfigSchema, evalFreshnessStatusSchema, evalLog, evalSpan, evalStatAggregateSchema, evalStatItemSchema, evalStatsConfigSchema, evalSummarySchema, evalTracer, extractApiCalls, extractCacheEntries, extractCacheHits, extractLlmCalls, fileRefSchema, getCurrentScope, getEvalCaseInput, getEvalDisplayStatus, getEvalRegistry, getEvalTitle, getNestedAttribute, hashCacheKey, hashCacheKeySync, incrementEvalOutput, isInEvalScope, jsonCellSchema, llmCallMetricFormatSchema, llmCallMetricPlacementSchema, llmCallMetricSchema, llmCallPricingSchema, llmCallsConfigSchema, mergeEvalOutput, nextEvalId, numberDisplayOptionsSchema, removeDefaultConfigSchema, repoFile, repoFileRefSchema, resolveApiCallsConfig, resolveLlmCallsConfig, runArtifactRefSchema, runCli, runInEvalRuntimeScope, runInEvalScope, runInExistingEvalScope, runLogEntrySchema, runLogLevelSchema, runLogLocationSchema, runLogPhaseSchema, runLogsConfigSchema, runManifestSchema, runSummarySchema, scoreTraceSchema, serializeCacheRecording, serializeCacheValue, serializedCacheSpanSchema, setEvalOutput, setScopeCacheContext, spanCacheOptionsSchema, sseEnvelopeSchema, startEvalBackgroundJob, traceAttributeDisplayFormatSchema, traceAttributeDisplayInputSchema, traceAttributeDisplayPlacementSchema, traceAttributeDisplaySchema, traceCacheRefSchema, traceDisplayConfigSchema, traceDisplayInputConfigSchema, traceSpanErrorSchema, traceSpanKindSchema, traceSpanSchema, traceSpanWarningSchema, trialSelectionModeSchema, updateManualScoreRequestSchema, z };
|
package/dist/runChild.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { R as runManifestSchema, T as createRunRequestSchema, Tt as evalChartsConfigSchema, Zt as columnDefSchema, b as loadConfig, t as executeRun, ut as evalStatsConfigSchema, v as parseEvalMetas, vn as configureEvalRunLogs, w as createFsCacheStore, z as runSummarySchema } from "./runOrchestration-Cv1kiOAG.mjs";
|
|
2
2
|
import { createHash } from "node:crypto";
|
|
3
3
|
import { readFile } from "node:fs/promises";
|
|
4
4
|
import { relative } from "node:path";
|