@percepta/kaizen 0.6.0 → 0.7.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.
Files changed (137) hide show
  1. package/README.md +54 -126
  2. package/agent/claude-command.md +23 -0
  3. package/agent/evals.md +41 -0
  4. package/agent/overview.md +53 -0
  5. package/agent/variant-builder.md +22 -0
  6. package/agent/views.md +51 -0
  7. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/BUILD_ID +1 -1
  8. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/build-manifest.json +22 -22
  9. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/prerender-manifest.json +3 -3
  10. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/routes-manifest.json +30 -10
  11. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/chunks/27.js +1 -0
  12. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/chunks/516.js +8 -0
  13. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/chunks/913.js +1 -0
  14. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/middleware-build-manifest.js +1 -1
  15. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/404.html +1 -1
  16. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/500.html +1 -1
  17. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/benchmarks.html +1 -1
  18. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/benchmarks.js.nft.json +1 -1
  19. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/data/[[...path]].html +1 -0
  20. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/data/[[...path]].js.nft.json +1 -0
  21. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/eval.html +1 -1
  22. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/eval.js.nft.json +1 -1
  23. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/experiments/[[...path]].html +1 -0
  24. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/experiments/[[...path]].js.nft.json +1 -0
  25. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/ideas.html +1 -1
  26. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/ideas.js.nft.json +1 -1
  27. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-action.js +1 -0
  28. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-action.js.nft.json +1 -0
  29. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-dataset-item.js +1 -1
  30. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-dataset-item.js.nft.json +1 -1
  31. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-dataset-mutation.js +1 -0
  32. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-dataset-mutation.js.nft.json +1 -0
  33. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-dataset.js +1 -1
  34. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-dataset.js.nft.json +1 -1
  35. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-datasets.js +1 -1
  36. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-datasets.js.nft.json +1 -1
  37. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-trace.js +1 -1
  38. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-trace.js.nft.json +1 -1
  39. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-traces.js +1 -0
  40. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-traces.js.nft.json +1 -0
  41. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/linear-ideas.js +2 -2
  42. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/linear-ideas.js.nft.json +1 -1
  43. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/run-events.js +1 -1
  44. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/run-events.js.nft.json +1 -1
  45. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/run-failures.js +1 -1
  46. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/run-failures.js.nft.json +1 -1
  47. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/run-traces.js +1 -1
  48. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/run-traces.js.nft.json +1 -1
  49. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/runs.js +2 -2
  50. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/runs.js.nft.json +1 -1
  51. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/systems.js +2 -2
  52. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/systems.js.nft.json +1 -1
  53. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/trace-renderer.js +1 -1
  54. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/trace-renderer.js.nft.json +1 -1
  55. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/index.html +1 -1
  56. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/index.js.nft.json +1 -1
  57. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages-manifest.json +8 -5
  58. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/SCF0o7YxElB9rzWaOohsA/_buildManifest.js +1 -0
  59. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/253-85c76c34f33c9604.js +8 -0
  60. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/{benchmarks-559dc9df52db3af4.js → benchmarks-30a17b7659010b8c.js} +1 -1
  61. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/data/[[...path]]-e5f4083fe9ffe429.js +1 -0
  62. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/{eval-3c911ea8744631fd.js → eval-160237a604b47416.js} +1 -1
  63. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/experiments/[[...path]]-91e47a4893093600.js +1 -0
  64. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/{ideas-6829a271003150a9.js → ideas-96e58e4624952e26.js} +1 -1
  65. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/{index-1d8b6719f49e4ae0.js → index-d3306bb6f5d7d235.js} +1 -1
  66. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/css/cd3873236eb77caa.css +1 -0
  67. package/dashboard/.next/standalone/packages/kaizen/package.json +5 -3
  68. package/dashboard/.next/standalone/packages/kaizen/shared/workspace-paths.js +84 -0
  69. package/dist/commands/create-view.js +58 -0
  70. package/dist/commands/create-view.js.map +1 -0
  71. package/dist/commands/guide.js +66 -0
  72. package/dist/commands/guide.js.map +1 -0
  73. package/dist/commands/ideas.js +4 -8
  74. package/dist/commands/ideas.js.map +1 -1
  75. package/dist/commands/init-system.js +22 -20
  76. package/dist/commands/init-system.js.map +1 -1
  77. package/dist/commands/init.js +28 -64
  78. package/dist/commands/init.js.map +1 -1
  79. package/dist/commands/log.js +5 -11
  80. package/dist/commands/log.js.map +1 -1
  81. package/dist/commands/rebuild.js +7 -9
  82. package/dist/commands/rebuild.js.map +1 -1
  83. package/dist/commands/run.js +5 -9
  84. package/dist/commands/run.js.map +1 -1
  85. package/dist/commands/studio.js +3 -3
  86. package/dist/commands/studio.js.map +1 -1
  87. package/dist/index.js +17 -21
  88. package/dist/index.js.map +1 -1
  89. package/dist/lib/cli.js +20 -0
  90. package/dist/lib/cli.js.map +1 -0
  91. package/dist/lib/events.js.map +1 -1
  92. package/dist/lib/fs-utils.js +3 -27
  93. package/dist/lib/fs-utils.js.map +1 -1
  94. package/dist/lib/leaderboard.js +1 -1
  95. package/dist/lib/leaderboard.js.map +1 -1
  96. package/dist/lib/paths.js +3 -3
  97. package/dist/lib/paths.js.map +1 -1
  98. package/dist/lib/promotion.js.map +1 -1
  99. package/dist/lib/run-dir.js +1 -1
  100. package/dist/lib/run-dir.js.map +1 -1
  101. package/dist/lib/runner.js +6 -5
  102. package/dist/lib/runner.js.map +1 -1
  103. package/dist/lib/system.js +4 -2
  104. package/dist/lib/system.js.map +1 -1
  105. package/dist/package.js +5 -3
  106. package/dist/shared/view-types.d.ts +67 -0
  107. package/dist/shared/view-types.d.ts.map +1 -0
  108. package/dist/shared/workspace-paths.js +84 -0
  109. package/dist/shared/workspace-paths.js.map +1 -0
  110. package/dist/types.d.ts +3 -30
  111. package/dist/types.d.ts.map +1 -1
  112. package/package.json +5 -3
  113. package/shared/view-types.d.ts +69 -0
  114. package/shared/view-types.js +1 -0
  115. package/shared/workspace-paths.d.ts +19 -0
  116. package/shared/workspace-paths.js +84 -0
  117. package/templates/system/eval.py +13 -6
  118. package/templates/system/eval.ts +11 -5
  119. package/templates/system/rubric.md +1 -1
  120. package/templates/system/system.md +6 -5
  121. package/templates/view/dataset-item.tsx +63 -0
  122. package/templates/view/trace.tsx +10 -0
  123. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/chunks/715.js +0 -6
  124. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/data.html +0 -1
  125. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/data.js.nft.json +0 -1
  126. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/experiments.html +0 -1
  127. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/experiments.js.nft.json +0 -1
  128. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/YpQ-I4VL-aEdQrM5uN7_3/_buildManifest.js +0 -1
  129. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/673-ed4be46027ae7a37.js +0 -6
  130. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/data-644e4280b4c86fe0.js +0 -1
  131. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/experiments-42f31600c2bb47ad.js +0 -1
  132. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/css/b18a6732b96168e1.css +0 -1
  133. package/dist/lib/env.js +0 -2
  134. package/dist/shared/env.js +0 -4
  135. package/templates/workspace/.claude/agents/variant-builder.md +0 -51
  136. package/templates/workspace/.claude/commands/kaizen.md +0 -65
  137. /package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/{YpQ-I4VL-aEdQrM5uN7_3 → SCF0o7YxElB9rzWaOohsA}/_ssgManifest.js +0 -0
@@ -1,6 +0,0 @@
1
- exports.id=715,exports.ids=[715],exports.modules={1039:(a,b,c)=>{"use strict";c.d(b,{G:()=>k,V:()=>j});var d=c(8732),e=c(4739),f=c.n(e),g=c(2015);let h=g.useEffect,i=(0,g.createContext)({systems:[],activeSystemId:null,setActiveSystemId:()=>{}});function j(){return(0,g.useContext)(i)}function k({children:a}){let b=function(){let[a,b]=(0,g.useState)([]);return a}(),[c,e]=(0,g.useState)(null),j=(0,g.useCallback)(a=>{e(a);let b=a?`/${a}/experiments`:"/";f().push(b)},[]);h(()=>{let a=()=>{let a;e((a=window.location.pathname.match(/^\/([^/?#]+)/))?a[1]:null)};return a(),window.addEventListener("popstate",a),f().events.on("routeChangeComplete",a),()=>{window.removeEventListener("popstate",a),f().events.off("routeChangeComplete",a)}},[]);let k=(0,g.useMemo)(()=>({systems:b,activeSystemId:c,setActiveSystemId:j}),[b,c,j]);return(0,d.jsx)(i.Provider,{value:k,children:a})}},1805:(a,b,c)=>{"use strict";c.d(b,{W:()=>aW});var d=c(8732),e=c(2015),f=c(1039),g=c(1836),h=c.n(g),i=c(7729),j=c.n(i);let k={code:"Owned by system source code. Agent changes edit the customer repo.",langfuse:"Owned by Langfuse. Agent changes use the Langfuse API.",linear:"Owned by Linear. Agent changes use the Linear API.",local:"Owned by local Kaizen state on this machine."};function l({source:a}){return(0,d.jsx)("span",{className:`${j().sourceChip} ${j()[`sourceChip_${a}`]}`,title:k[a],"aria-label":k[a],children:(0,d.jsx)(m,{source:a})})}function m({source:a}){return"langfuse"===a?(0,d.jsx)("img",{src:"/source-icons/langfuse.svg",alt:"",className:j().sourceLogo}):"linear"===a?(0,d.jsx)("img",{src:"/source-icons/linear.svg",alt:"",className:j().sourceLogo}):"local"===a?(0,d.jsx)(o,{}):(0,d.jsx)(n,{})}function n(){return(0,d.jsxs)("svg",{className:j().sourceSvgIcon,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M8.5 7L3.5 12L8.5 17",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square",strokeLinejoin:"miter"}),(0,d.jsx)("path",{d:"M15.5 7L20.5 12L15.5 17",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square",strokeLinejoin:"miter"})]})}function o(){return(0,d.jsxs)("svg",{className:j().sourceSvgIcon,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M5 4H17L20 7V20H5V4Z",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"miter"}),(0,d.jsx)("path",{d:"M8 4V10H16V4",stroke:"currentColor",strokeWidth:"2"}),(0,d.jsx)("path",{d:"M8 16H16",stroke:"currentColor",strokeWidth:"2"})]})}var p=c(3031),q=c.n(p);function r(){let{systems:a,activeSystemId:b,setActiveSystemId:c}=(0,f.V)(),e=a.find(a=>a.id===b);return(0,d.jsxs)("label",{className:q().wrapper,children:[(0,d.jsx)("span",{className:q().label,children:"System"}),(0,d.jsxs)("select",{className:q().select,value:b??"",onChange:a=>c(a.target.value||null),children:[!b&&(0,d.jsx)("option",{value:"",disabled:!0,children:"Choose"}),b&&!e&&(0,d.jsx)("option",{value:b,children:"Loading system..."}),a.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]}),b&&(0,d.jsx)(l,{source:"code"})]})}let s=[{id:"data",label:"Data"},{id:"benchmarks",label:"Benchmarks"},{id:"ideas",label:"Ideas"},{id:"experiments",label:"Experiments"}];function t({activeSystem:a,activeSurface:b,children:c}){return(0,d.jsxs)("div",{className:j().page,children:[(0,d.jsxs)("header",{className:j().topBar,children:[(0,d.jsx)(h(),{href:"/",className:j().logoLink,"aria-label":"Kaizen home",children:(0,d.jsx)("img",{src:"/logo-cream.svg",alt:"",className:j().topLogo})}),(0,d.jsx)("div",{className:j().systemSlot,children:(0,d.jsx)(r,{})}),(0,d.jsx)("nav",{className:j().surfaceNav,"aria-label":"Kaizen surfaces",children:s.map(c=>a?(0,d.jsx)(h(),{href:`/${a.id}/${c.id}`,className:`${j().surfaceLink} ${b===c.id?j().surfaceLinkActive:""}`,children:c.label},c.id):(0,d.jsx)("span",{className:`${j().surfaceLink} ${j().surfaceLinkDisabled}`,children:c.label},c.id))}),(0,d.jsx)("div",{})]}),(0,d.jsx)("main",{className:j().content,children:c})]})}function u(a){let[b,c]=(0,e.useState)([]),[d,f]=(0,e.useState)(!1);return{runs:b,connected:d}}function v(a){if(!a)return"";let b=new Date(a);return Number.isNaN(b.getTime())?a:new Intl.DateTimeFormat(void 0,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(b)}var w=c(9857);w.Ik({runId:w.Yj(),runName:w.Yj(),status:w.k5(["running","complete","crashed","aborted"]),worktreeBranch:w.Yj(),parentId:w.Yj().nullable(),system:w.Yj(),progress:w.Ik({completed:w.ai(),total:w.ai(),lastHeartbeat:w.Yj()}).optional(),metrics:w.g1(w.Yj(),w.ai()),totalItems:w.ai().nullable(),langfuseRunId:w.Yj().optional(),linearIssue:w.Ik({id:w.Yj(),url:w.Yj()}).optional(),evalConfig:w.Ik({dataset:w.Yj(),evalVersion:w.ai().optional(),datasetItemCount:w.ai(),judge:w.Ik({rubric:w.Yj(),rubricHash:w.Yj(),model:w.Yj(),temperature:w.ai()}).optional()}).optional(),startedAt:w.Yj(),updatedAt:w.Yj()});let x={actionAccuracy:{label:"Action Accuracy",format:"percent"},parameterExtraction:{label:"Param Extraction",format:"percent"},clarificationAppropriateness:{label:"Clarification",format:"percent"},multiActionDetection:{label:"Multi-Action",format:"percent"},f1:{label:"F1",format:"percent"},f2:{label:"F2",format:"percent"},precision:{label:"Precision",format:"percent"},recall:{label:"Recall",format:"percent"},cost_per_item:{label:"Cost / Item",format:"raw"},avg_latency_s:{label:"Avg Latency (s)",format:"raw"},true_positives:{label:"TP",format:"integer"},false_positives:{label:"FP",format:"integer"},false_negatives:{label:"FN",format:"integer"},total_clis_scored:{label:"CLIs Scored",format:"integer"},items_with_metrics:{label:"Items w/ Metrics",format:"integer"},timeouts:{label:"Timeouts",format:"integer"},judge_quality:{label:"Judge Quality",format:"percent"},judge_quality_chartNotes:{label:"Quality: Chart Notes",format:"percent"},judge_quality_followUp:{label:"Quality: Follow-Up",format:"percent"}};function y(a){return x[a]?.label??a.replace(/[_-]+/g," ").replace(/([A-Z])/g," $1").replace(/^./,a=>a.toUpperCase()).trim()}function z(a,b){let c=x[a];return c?.format==="integer"?Math.round(b).toLocaleString():c?.format==="raw"?b.toFixed(2):c?.format==="percent"?(100*b).toFixed(1)+"%":b>1?Math.round(b).toLocaleString():(100*b).toFixed(1)+"%"}function A(a,b){if(!b)return null;if(b in a.metrics)return a.metrics[b];if("f2"===b&&"precision"in a.metrics&&"recall"in a.metrics){var c,d;return(c=a.metrics.precision)+(d=a.metrics.recall)===0?0:5*c*d/(4*c+d)}return null}function B(a,b){var c,d;let e=a.evalConfig?.dataset??"unknown dataset",f="number"==typeof a.evalConfig?.evalVersion?String(a.evalConfig.evalVersion):"unknown",g=(c=a,d=b,c.evalConfig?.judge?.rubric??d??"unknown eval"),h=`Eval v${f} \xb7 ${y(g)}`;return{key:`${e}::${f}::${g}`,dataset:e,datasetLabel:C(e),evalVersion:f,evalMetric:g,evalLabel:h}}function C(a){return a.replace(/--/g," ").replace(/[-_]+/g," ").replace(/\bgt\b/gi,"Ground Truth").replace(/\bv(\d+)\b/gi,"v$1").replace(/\b\w/g,a=>a.toUpperCase()).trim()}function D({title:a,children:b,source:c,syncLabel:e,onRefresh:f,refreshing:g}){return(0,d.jsxs)("section",{className:j().surfaceBanner,children:[(0,d.jsxs)("div",{className:j().surfaceBannerText,children:[(0,d.jsxs)("div",{className:j().surfaceBannerTitle,children:[(0,d.jsx)("span",{children:a}),c&&(0,d.jsx)(l,{source:c})]}),(0,d.jsx)("div",{className:j().surfaceBannerCopy,children:b})]}),(null!=e||null!=f)&&(0,d.jsx)(E,{label:e,onRefresh:f,refreshing:g})]})}function E({label:a,onRefresh:b,refreshing:c}){return(0,d.jsxs)("div",{className:j().syncStatus,children:[null!=a&&(0,d.jsx)("span",{className:j().syncStatusLabel,children:a}),b&&(0,d.jsx)("button",{className:j().iconButton,onClick:b,title:"Refresh","aria-label":"Refresh","aria-busy":c?"true":"false",children:(0,d.jsx)("span",{"aria-hidden":"true",children:"↻"})})]})}function F({system:a}){var b;let{runs:c}=u(a.id),f=a.primaryMetric??null,g=(0,e.useMemo)(()=>(function(a,b){let c=new Map;for(let h of a){var d,e,f,g;let a=B(h,b),i=c.get(a.key);i?(i.count++,d=i.itemCount,e=h.totalItems,i.itemCount=null===d?e:null===e?d:Math.max(d,e),f=i.latestAt,g=h.updatedAt,i.latestAt=f?Date.parse(g)>Date.parse(f)?g:f:g):c.set(a.key,{...a,count:1,itemCount:h.totalItems,latestAt:h.updatedAt})}return[...c.values()].sort((a,b)=>(b.latestAt??"").localeCompare(a.latestAt??""))})(c,f),[f,c]);return(0,d.jsxs)("div",{className:j().surface,children:[(0,d.jsx)(D,{title:"Benchmarks",source:"code",syncLabel:"Live updates",children:"A benchmark is the fixed dataset plus scoring setup for this system. The current benchmark comes from the system file, and the rows below show which benchmarks have actually been used by local experiments."}),(0,d.jsxs)("section",{className:j().detailPanel,children:[(0,d.jsxs)("div",{className:j().detailHeader,children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:j().detailTitle,children:"Current benchmark"}),(0,d.jsx)("div",{className:j().detailMeta,children:"This is what the next Kaizen run will use unless a coding agent changes the system file."})]}),(0,d.jsx)(l,{source:"code"})]}),(0,d.jsxs)("div",{className:j().evalDefinitionGrid,children:[(0,d.jsx)(G,{label:"Dataset",value:a.evalDataset?C(a.evalDataset):"Not configured",detail:a.evalDataset}),(0,d.jsx)(G,{label:"Eval version",value:null===a.evalVersion?"Not configured":`v${a.evalVersion}`}),(0,d.jsx)(G,{label:"Primary metric",value:a.primaryMetric?y(a.primaryMetric):"Not configured",detail:a.primaryMetric}),(0,d.jsx)(G,{label:"Style",value:"ground_truth"===(b=a.evalType)?"Ground truth":"llm_judge"===b?"LLM judge":"human"===b?"Human review":"policy"===b?"Policy":"Not configured"})]})]}),(0,d.jsxs)("section",{className:j().evalHistorySection,children:[(0,d.jsxs)("div",{className:j().evalSectionHeader,children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:j().detailTitle,children:"Benchmarks used in experiments"}),(0,d.jsx)("div",{className:j().detailMeta,children:"Each row is a separate comparison group."})]}),(0,d.jsx)(l,{source:"local"})]}),0===g.length?(0,d.jsx)("div",{className:j().emptyPanel,children:"No benchmarks yet. Run an experiment to create one."}):(0,d.jsxs)("div",{className:j().evalSummaryTable,children:[(0,d.jsxs)("div",{className:j().evalSummaryHeader,children:[(0,d.jsx)("span",{children:"Dataset"}),(0,d.jsx)("span",{children:"Scoring"}),(0,d.jsx)("span",{children:"Runs"}),(0,d.jsx)("span",{children:"Items"}),(0,d.jsx)("span",{children:"Latest"})]}),g.map(a=>(0,d.jsxs)("div",{className:j().evalSummaryRow,children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:j().evalSummaryPrimary,children:a.datasetLabel}),(0,d.jsx)("span",{className:j().evalSummaryMeta,children:a.dataset})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:j().evalSummaryPrimary,children:a.evalLabel}),(0,d.jsx)("span",{className:j().evalSummaryMeta,children:y(a.evalMetric)})]}),(0,d.jsx)("span",{children:a.count}),(0,d.jsx)("span",{children:a.itemCount??"?"}),(0,d.jsx)("span",{children:a.latestAt?v(a.latestAt):"-"})]},a.key))]})]})]})}function G({label:a,value:b,detail:c}){return(0,d.jsxs)("div",{className:j().evalDefinitionCell,children:[(0,d.jsx)("span",{className:j().metaLabel,children:a}),(0,d.jsx)("span",{className:j().metaValue,children:b}),c&&(0,d.jsx)("code",{className:j().evalDefinitionCode,children:c})]})}Object.keys(x);let H=new Map;function I(a){return a.replace(/(\w+)\s+as\s+(\w+)/g,"$1: $2")}function J({trace:a,systemId:b,hasCustomRenderer:f,datasetItem:g,loading:h,error:i}){let{Component:k,loading:l,error:m}=function(a,b){let[d,f]=(0,e.useState)(()=>{if(!b)return{Component:null,loading:!1,error:null};let c=H.get(a);return c?{Component:c,loading:!1,error:null}:{Component:null,loading:!0,error:null}}),g=(0,e.useRef)(a);if(g.current!==a)if(g.current=a,b){let b=H.get(a);b?f({Component:b,loading:!1,error:null}):f({Component:null,loading:!0,error:null})}else f({Component:null,loading:!1,error:null});let h=(0,e.useRef)(a);return h.current=a,(0,e.useCallback)(async()=>{if(!b)return void f({Component:null,loading:!1,error:null});let d=H.get(a);if(d)return void f({Component:d,loading:!1,error:null});f(a=>({...a,loading:!0,error:null}));try{let b=await fetch(`/api/trace-renderer?systemId=${encodeURIComponent(a)}`);if(!b.ok){let c=await b.json().catch(()=>({})),d="string"==typeof c.error?c.error:`HTTP ${b.status}`;h.current===a&&f({Component:null,loading:!1,error:d});return}let d=await b.text(),e=function(a){let b=a.replace(/import\s*\{([^}]*)\}\s*from\s*["']react["']\s*;?/g,(a,b)=>`const {${I(b)}} = __kaizenReact;`).replace(/import\s+React\s*(?:,\s*\{([^}]*)\})?\s*from\s*["']react["']\s*;?/g,(a,b)=>{let c="const React = __kaizenReact;";return b?`${c}
2
- const {${I(b)}} = __kaizenReact;`:c}).replace(/import\s*\*\s*as\s+(\w+)\s+from\s*["']react["']\s*;?/g,"const $1 = __kaizenReact;").replace(/import\s*\{([^}]*)\}\s*from\s*["']react\/jsx-runtime["']\s*;?/g,(a,b)=>`const {${I(b)}} = __kaizenJsxRuntime;`).replace(/export\s*\{[^}]*\}\s*from\s*["'][^"']*["']\s*;?/g,"").replace(/export\s*\{([^}]*)\}\s*;?/g,(a,b)=>{let c=b.match(/(\w+)\s+as\s+default/);return c?`__exports.default = ${c[1]};`:""}).replace(/export\s*default\s+(async\s+)?function\s+(\w+)/g,(a,b,c)=>`__exports.default = ${c}; ${b??""}function ${c}`).replace(/export\s*default\s+/g,"__exports.default = ").replace(/export\s+(function|const|let|var|class)\s/g,"$1 "),d=c(2015),e=c(8732),f={};if(Function("__kaizenReact","__kaizenJsxRuntime","__exports",`${b}
3
- if (typeof TraceRenderer !== 'undefined' && !__exports.default) __exports.default = TraceRenderer;
4
- `)(d,e,f),"function"!=typeof f.default)throw Error("Custom trace renderer must export a default component named TraceRenderer");return f.default}(d);h.current===a&&(H.set(a,e),f({Component:e,loading:!1,error:null}))}catch(b){h.current===a&&f({Component:null,loading:!1,error:b instanceof Error?b.message:String(b)})}},[b,a]),d}(b,f);return h?(0,d.jsx)("div",{className:j().loadingPanel,children:"Loading trace..."}):i?(0,d.jsx)("div",{className:j().errorPanel,children:i}):a?l?(0,d.jsx)("div",{className:j().loadingPanel,children:"Loading custom renderer..."}):m?(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:j().errorPanel,children:["Custom renderer error: ",m]}),(0,d.jsx)(K,{trace:a})]}):k?(0,d.jsx)(M,{fallback:(0,d.jsx)(K,{trace:a}),children:(0,d.jsx)(k,{trace:a,datasetItem:g})},a.id??a.name??""):(0,d.jsx)(K,{trace:a}):(0,d.jsx)("div",{className:j().mutedText,children:"No source trace linked."})}function K({trace:a}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:j().traceHeader,children:[(0,d.jsx)("span",{className:j().traceName,children:a.name??a.id}),a.timestamp&&(0,d.jsx)("span",{className:j().detailMeta,children:a.timestamp})]}),a.tags&&a.tags.length>0&&(0,d.jsx)("div",{className:j().tagRow,children:a.tags.map(a=>(0,d.jsx)("span",{className:j().tagPill,children:a},a))}),(0,d.jsx)(L,{title:"Trace metadata",value:a.metadata}),(0,d.jsxs)("div",{className:j().detailGrid,children:[(0,d.jsx)(L,{title:"Trace input",value:a.input}),(0,d.jsx)(L,{title:"Trace output",value:a.output})]})]})}function L({title:a,value:b}){var c;return(0,d.jsxs)("div",{className:j().jsonBlock,children:[(0,d.jsx)("div",{className:j().jsonTitle,children:a}),(0,d.jsx)("pre",{className:j().jsonPre,children:null==(c=b)?"(empty)":"string"==typeof c?c:JSON.stringify(c,null,2)})]})}class M extends e.Component{static getDerivedStateFromError(a){return{error:a}}render(){return this.state.error?(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:j().errorPanel,children:["Custom renderer crashed: ",this.state.error.message]}),this.props.fallback]}):this.props.children}constructor(...a){super(...a),this.state={error:null}}}function N({status:a,currentValues:b}){let c=[a.requiredEnvVars?.length?{title:"Required",values:a.requiredEnvVars}:null,a.missingEnvVars?.length?{title:"Missing",values:a.missingEnvVars}:null,a.optionalEnvVars?.length?{title:"Optional",values:a.optionalEnvVars}:null,a.expectedEnvFile?{title:"Put values here",values:[a.expectedEnvFile]}:null,b?.length?{title:"Current query",values:b}:null].filter(P);return(0,d.jsxs)("div",{className:j().setupBanner,children:[(0,d.jsxs)("div",{className:j().setupHeader,children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:j().setupTitle,children:a.message}),(0,d.jsx)("div",{className:j().setupCopy,children:a.remediation})]}),(0,d.jsx)("span",{className:j().setupState,children:a.state})]}),c.length>0&&(0,d.jsx)("div",{className:j().setupGrid,children:c.map(a=>(0,d.jsx)(O,{title:a.title,values:a.values},`${a.title}:${a.values.join(",")}`))}),a.lookup&&a.lookup.length>0&&(0,d.jsxs)("div",{className:j().setupLookup,children:[(0,d.jsx)("span",{className:j().setupLookupLabel,children:"Kaizen checks"}),a.lookup.join(" -> ")]}),a.detail&&(0,d.jsx)("div",{className:j().setupDetail,children:a.detail})]})}function O({title:a,values:b}){return(0,d.jsxs)("div",{className:j().setupBlock,children:[(0,d.jsx)("span",{className:j().setupBlockTitle,children:a}),b.map(a=>(0,d.jsx)("code",{className:j().setupCode,children:a},a))]})}function P(a){return null!==a}function Q(a=new Date){return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(a)}function R(a,b){var c;let d=(c=b)%6e4==0?`${c/6e4}m`:c%1e3==0?`${c/1e3}s`:`${c}ms`;return a?`Updated ${a} \xb7 Every ${d}`:`Every ${d}`}function S({system:a}){let[b,c]=(0,e.useState)("datasets"),[f,g]=(0,e.useState)([]),[h,i]=(0,e.useState)({name:null,systemId:null}),[k,l]=(0,e.useState)([]),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(null),[C,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(null),[H,I]=(0,e.useState)(null),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(null),O=a.evalDataset,P=(0,e.useRef)(!1),S=(0,e.useRef)(a.id),W=(0,e.useRef)(O),X=(0,e.useRef)(async()=>{}),Y=(0,e.useRef)(h);S.current=a.id,W.current=O,Y.current=h;let Z=h.name;h.systemId;let $=(0,e.useCallback)(()=>{c("datasets")},[]),ab=(0,e.useCallback)(()=>{c("traces")},[]),af=(0,e.useCallback)(()=>{c("add")},[]),ag=(0,e.useCallback)(()=>{X.current()},[]),ai=(0,e.useCallback)(a=>{i({name:a,systemId:a?S.current:null}),l([]),n(null),p(null),G(null),I(null)},[]),ak=(0,e.useCallback)(async()=>{let b=a.id;r(!0);try{var c,d,e,f;let a=await fetch(`/api/langfuse-datasets?systemId=${encodeURIComponent(b)}`),h=(c=await a.json(),ah(c)?{data:Array.isArray(c.data)?c.data.map(ad).filter(aj):void 0,connection:ac(c.connection),error:al(c.error)}:{});if(S.current===b&&E(h.connection??null),!a.ok)throw Error(h.error??`HTTP ${a.status}`);if(S.current!==b)return null;let j=h.data??[],k=Y.current,m=(d=k.systemId===b?k.name:null,e=j,f=W.current,d&&e.some(a=>a.name===d)?d:f&&e.some(a=>a.name===f)?f:e[0]?.name??null);return g(j),t(null),M(Q()),i({name:m,systemId:m?b:null}),0===j.length&&(l([]),n(null),p(null)),m}catch(a){if(S.current!==b)return null;return P.current||(g([]),i({name:null,systemId:null}),l([]),n(null),p(null)),t(a instanceof Error?a.message:String(a)),null}finally{S.current===b&&(P.current=!0,x(!0),r(!1))}},[a.id]),am=(0,e.useCallback)(async(b=Z)=>{if(!b)return null;let c=a.id;v(!0);try{var d;let a=await fetch(`/api/langfuse-dataset?dataset=${encodeURIComponent(b)}&systemId=${encodeURIComponent(c)}`),e=(d=await a.json(),ah(d)?{data:Array.isArray(d.data)?d.data.map(ae).filter(aj):void 0,connection:ac(d.connection),error:al(d.error)}:{});if(S.current===c&&E(e.connection??null),!a.ok)throw Error(e.error??`HTTP ${a.status}`);if(S.current!==c)return null;let f=e.data??[],g=f.filter(aa);l(f),B(null),n(a=>a&&g.some(b=>b.id===a)?a:g[0]?.id??null);let h=g.map(_).find(Boolean);return p(a=>a&&g.some(b=>_(b)===a)?a:h??null),M(Q()),f}catch(a){if(S.current!==c)return null;return B(a instanceof Error?a.message:String(a)),null}finally{S.current===c&&(z(!0),v(!1))}},[a.id,Z]),an=(0,e.useCallback)(async(a,b,c)=>{let d=Y.current.name;if(!d)return G("Choose a dataset first."),!1;K(!0),G(null),I(null);try{var e;let f=await fetch("/api/langfuse-dataset-item",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,datasetName:d,systemId:S.current})}),g=(e=await f.json(),ah(e)?{data:ae(e.data)??void 0,error:al(e.error)}:{});if(!f.ok)throw Error(g.error??`HTTP ${f.status}`);let h=await am(d),i=g.data?.id??null;return c&&i&&h?.some(a=>a.id===i&&aa(a))&&n(i),I(b),!0}catch(a){return G(a instanceof Error?a.message:String(a)),!1}finally{K(!1)}},[am]),ao=(0,e.useCallback)(async a=>{await an({action:"add-from-trace",source:a.source,expectedOutput:a.expectedOutput,notes:a.notes},"Dataset item added.",!0)&&c("datasets")},[an]),ap=(0,e.useCallback)(async a=>{await an({action:"update",itemId:a.itemId,expectedOutput:a.expectedOutput,notes:a.notes},"Dataset item saved.",!0)},[an]),aq=(0,e.useCallback)(async a=>{await an({action:"archive",itemId:a},"Dataset item archived.",!1)},[an]),ar=(0,e.useMemo)(()=>k.filter(aa),[k]),as=(0,e.useMemo)(()=>ar.find(a=>a.id===m)??ar[0]??null,[ar,m]),at=(0,e.useMemo)(()=>{let a=new Map;for(let b of ar){let c=_(b);c&&!a.has(c)&&a.set(c,b)}return[...a.entries()].map(([a,b])=>({traceId:a,item:b}))},[ar]),au=o??at[0]?.traceId??_(as);return X.current=(0,e.useCallback)(async()=>{let b=await ak();b&&S.current===a.id&&await am(b)},[ak,am,a.id]),(0,d.jsxs)("div",{className:j().dataLayout,children:[(0,d.jsxs)("aside",{className:j().dataNav,children:[(0,d.jsx)("button",{className:`${j().dataNavItem} ${"datasets"===b?j().dataNavItemActive:""}`,onClick:$,children:"Datasets"}),(0,d.jsx)("button",{className:`${j().dataNavItem} ${"traces"===b?j().dataNavItemActive:""}`,onClick:ab,children:"Traces"}),(0,d.jsx)("button",{className:`${j().dataNavItem} ${"add"===b?j().dataNavItemActive:""}`,onClick:af,children:"Add item"})]}),(0,d.jsxs)("section",{className:j().dataMain,children:[(0,d.jsx)(D,{title:"Langfuse data",source:"langfuse",syncLabel:R(L,15e3),onRefresh:ag,refreshing:u||q,children:"This is the evaluation data for the selected system. Use Datasets to inspect golden examples, Traces to review the source calls behind those examples, and Add item to prepare new examples. The view updates automatically while open; Refresh pulls the latest now."}),C&&"connected"!==C.state&&(0,d.jsx)(N,{status:C}),"datasets"===b?(0,d.jsx)(T,{system:a,datasets:f,selectedDatasetName:Z,configuredDatasetName:O,items:ar,selectedItem:as,loading:q&&!w||u&&!y,datasetsError:s,error:A,mutationError:F,mutationMessage:H,mutating:J,onSelectDataset:ai,onSelect:n,onUpdateItem:ap,onArchiveItem:aq}):"traces"===b?(0,d.jsx)(U,{systemId:a.id,linkedTraces:at,selectedTraceId:au,onSelectTrace:p,hasCustomRenderer:!!a.traceRenderer,error:s??A}):(0,d.jsx)(V,{system:a,datasetName:Z,error:F,message:H,mutating:J,onAddItem:ao})]})]})}function T({system:a,datasets:b,selectedDatasetName:c,configuredDatasetName:f,items:g,selectedItem:h,loading:i,datasetsError:k,error:m,mutationError:n,mutationMessage:o,mutating:p,onSelectDataset:q,onSelect:r,onUpdateItem:s,onArchiveItem:t}){let u=(0,e.useCallback)(a=>{q(a.target.value?a.target.value:null)},[q]);return(0,d.jsxs)("div",{className:j().surface,children:[(0,d.jsx)("div",{className:j().surfaceToolbar,children:(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{className:j().inlineSelector,children:[(0,d.jsx)("span",{className:j().inlineSelectorLabel,children:"Dataset"}),(0,d.jsxs)("select",{className:j().select,value:c??"",onChange:u,disabled:0===b.length,children:[(0,d.jsx)("option",{value:"",disabled:!0,children:0===b.length?"No datasets available":"Select dataset"}),b.map(a=>(0,d.jsx)("option",{value:a.name,children:a.name},a.name))]})]}),f&&(0,d.jsxs)("div",{className:j().provenanceLine,children:[(0,d.jsx)("span",{children:"Default dataset"}),(0,d.jsx)("code",{children:f}),(0,d.jsx)(l,{source:"code"})]})]})}),k&&(0,d.jsx)("div",{className:j().errorPanel,children:k}),n&&(0,d.jsx)("div",{className:j().errorPanel,children:n}),o&&(0,d.jsx)("div",{className:j().successPanel,children:o}),i?(0,d.jsx)("div",{className:j().loadingPanel,children:"Loading Langfuse data..."}):c?m?(0,d.jsx)("div",{className:j().errorPanel,children:m}):(0,d.jsxs)("div",{className:j().splitSurface,children:[(0,d.jsx)(W,{items:g,selectedId:h?.id??null,onSelect:r}),(0,d.jsx)(Y,{item:h,systemId:a.id,hasCustomRenderer:!!a.traceRenderer,datasetName:c,mutating:p,onUpdate:s,onArchive:t})]}):(0,d.jsxs)("div",{className:j().emptyPanel,children:[(0,d.jsx)("div",{className:j().emptyPanelTitle,children:0===b.length?"No Langfuse datasets found":"No Langfuse dataset selected"}),(0,d.jsx)("div",{className:j().emptyPanelCopy,children:0===b.length?"Kaizen did not find any datasets for this system.":"Choose a dataset to inspect its examples."})]})]})}function U({systemId:a,linkedTraces:b,selectedTraceId:c,onSelectTrace:e,hasCustomRenderer:f,error:g}){return(0,d.jsxs)("div",{className:j().surface,children:[(0,d.jsx)("div",{className:j().surfaceToolbar,children:(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:j().surfaceTitle,children:"Traces"}),(0,d.jsxs)("div",{className:j().surfaceSubtitle,children:[b.length," linked source trace",1===b.length?"":"s"]})]})}),g?(0,d.jsx)("div",{className:j().errorPanel,children:g}):(0,d.jsxs)("div",{className:j().splitSurface,children:[(0,d.jsx)(X,{traces:b,selectedTraceId:c,onSelect:e}),(0,d.jsx)(Z,{traceId:c,systemId:a,hasCustomRenderer:f})]})]})}function V({system:a,datasetName:b,error:c,message:f,mutating:g,onAddItem:h}){let[i,k]=(0,e.useState)(""),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(""),p=(0,e.useCallback)(a=>{k(a.target.value)},[]),q=(0,e.useCallback)(a=>{m(a.target.value)},[]),r=(0,e.useCallback)(a=>{o(a.target.value)},[]),s=(0,e.useCallback)(a=>{a.preventDefault(),h({source:i,expectedOutput:ab(l),notes:n})},[l,n,h,i]),t=!!(b&&i.trim()&&!g);return(0,d.jsxs)("form",{className:j().detailPanel,onSubmit:s,children:[(0,d.jsxs)("div",{className:j().detailHeader,children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:j().detailTitle,children:"Add dataset item"}),(0,d.jsx)("div",{className:j().detailMeta,children:b??a.evalDataset??"No dataset selected"})]}),(0,d.jsx)("span",{className:j().statusPill,children:"Langfuse"})]}),c&&(0,d.jsx)("div",{className:j().errorPanel,children:c}),f&&(0,d.jsx)("div",{className:j().successPanel,children:f}),(0,d.jsxs)("div",{className:j().formRow,children:[(0,d.jsx)("label",{className:j().formLabel,htmlFor:"dataset-source",children:"Source trace"}),(0,d.jsx)("input",{id:"dataset-source",className:j().textInput,disabled:!b||g,placeholder:"Langfuse trace URL or trace ID",value:i,onChange:p}),(0,d.jsx)("div",{className:j().detailMeta,children:"Orbit URL lookup will be wired in a follow-up. For now, paste the Langfuse trace URL or trace ID for the call you want in the golden dataset."})]}),(0,d.jsxs)("div",{className:j().formRow,children:[(0,d.jsx)("label",{className:j().formLabel,htmlFor:"dataset-expected-output",children:"Expected output"}),(0,d.jsx)("textarea",{id:"dataset-expected-output",className:j().textArea,disabled:!b||g,placeholder:"Leave blank to use the trace output, or paste text/JSON ground truth.",value:l,onChange:q})]}),(0,d.jsxs)("div",{className:j().formRow,children:[(0,d.jsx)("label",{className:j().formLabel,htmlFor:"dataset-notes",children:"Notes"}),(0,d.jsx)("textarea",{id:"dataset-notes",className:j().textArea,disabled:!b||g,placeholder:"Why this belongs in the golden dataset.",value:n,onChange:r})]}),(0,d.jsx)("button",{className:j().secondaryButton,disabled:!t,children:g?"Adding...":"Add item"})]})}function W({items:a,selectedId:b,onSelect:c}){let f=(0,e.useCallback)(a=>{let b=ag(a.target,"itemId");b&&c(b)},[c]);return 0===a.length?(0,d.jsx)("div",{className:j().listPanelEmpty,children:"No dataset items"}):(0,d.jsx)("aside",{className:j().listPanel,onClick:f,children:a.map((a,c)=>{let e=_(a);return(0,d.jsxs)("button",{"data-item-id":a.id,className:`${j().listRow} ${b===a.id?j().listRowSelected:""}`,children:[(0,d.jsx)("span",{className:j().listRowTitle,children:af(a,c)}),(0,d.jsx)("span",{className:j().listRowMeta,children:e?`trace ${e.slice(0,8)}`:a.status??"item"})]},a.id)})})}function X({traces:a,selectedTraceId:b,onSelect:c}){let f=(0,e.useCallback)(a=>{let b=ag(a.target,"traceId");b&&c(b)},[c]);return 0===a.length?(0,d.jsx)("div",{className:j().listPanelEmpty,children:"No linked traces"}):(0,d.jsx)("aside",{className:j().listPanel,onClick:f,children:a.map(({traceId:a,item:c},e)=>(0,d.jsxs)("button",{"data-trace-id":a,className:`${j().listRow} ${b===a?j().listRowSelected:""}`,children:[(0,d.jsx)("span",{className:j().listRowTitle,children:af(c,e)}),(0,d.jsx)("span",{className:j().listRowMeta,children:a})]},a))})}function Y({item:a,systemId:b,hasCustomRenderer:c,datasetName:f,mutating:g,onUpdate:h,onArchive:i}){let k=a?_(a):null;a?.id;let[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(""),p=(0,e.useCallback)(a=>{m(a.target.value)},[]),q=(0,e.useCallback)(a=>{o(a.target.value)},[]),r=(0,e.useCallback)(()=>{a&&h({itemId:a.id,expectedOutput:ab(l),notes:n})},[l,a,n,h]),s=(0,e.useCallback)(()=>{a&&i(a.id)},[a,i]),t=(0,e.useMemo)(()=>a?{id:a.id,input:a.input,expectedOutput:a.expectedOutput,metadata:a.metadata}:null,[a]);if(!a)return(0,d.jsx)("section",{className:j().detailPanel,children:"No item selected"});let u=!g,v=!!(f&&!g);return(0,d.jsxs)("section",{className:j().detailPanel,children:[(0,d.jsxs)("div",{className:j().detailHeader,children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:j().detailTitle,children:af(a,0)}),(0,d.jsx)("div",{className:j().detailMeta,children:a.id})]}),a.status&&(0,d.jsx)("span",{className:j().statusPill,children:a.status})]}),(0,d.jsxs)("div",{className:j().formRow,children:[(0,d.jsx)("label",{className:j().formLabel,htmlFor:"dataset-item-notes",children:"Notes"}),(0,d.jsx)("textarea",{id:"dataset-item-notes",className:j().textArea,disabled:g,placeholder:"Add context for future experiments.",value:n,onChange:q})]}),(0,d.jsxs)("div",{className:j().formRow,children:[(0,d.jsx)("label",{className:j().formLabel,htmlFor:"dataset-item-expected",children:"Expected output"}),(0,d.jsx)("textarea",{id:"dataset-item-expected",className:j().textAreaLarge,disabled:g,value:l,onChange:p})]}),(0,d.jsxs)("div",{className:j().actionFooter,children:[(0,d.jsx)("div",{className:j().detailMeta,children:"Archived examples are hidden from the active dataset view but remain in Langfuse history."}),(0,d.jsxs)("div",{className:j().actionRow,children:[(0,d.jsx)("button",{className:j().dangerButton,disabled:!u,onClick:s,type:"button",children:"Archive item"}),(0,d.jsx)("button",{className:j().primaryButton,disabled:!v,onClick:r,type:"button",children:g?"Saving...":"Save changes"})]})]}),(0,d.jsxs)("div",{className:j().detailGrid,children:[(0,d.jsx)($,{title:"Input",value:a.input}),(0,d.jsx)($,{title:"Current expected output",value:a.expectedOutput})]}),(0,d.jsx)($,{title:"Metadata",value:a.metadata}),(0,d.jsxs)("div",{className:j().traceSection,children:[(0,d.jsx)("div",{className:j().sectionTitle,children:"Source Trace"}),(0,d.jsx)(Z,{traceId:k,systemId:b,hasCustomRenderer:c,datasetItem:t,compact:!0})]})]})}function Z({traceId:a,systemId:b,hasCustomRenderer:c,datasetItem:f,compact:g}){let[h,i]=(0,e.useState)(null),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(!1),o=(0,d.jsx)(J,{trace:h,systemId:b,hasCustomRenderer:c,datasetItem:f,loading:m,error:a?k:null});return a||g?g?o:(0,d.jsx)("section",{className:j().detailPanel,children:o}):(0,d.jsx)("section",{className:j().detailPanel,children:(0,d.jsx)("div",{className:j().mutedText,children:"No source trace linked."})})}function $({title:a,value:b}){var c;return(0,d.jsxs)("div",{className:j().jsonBlock,children:[(0,d.jsx)("div",{className:j().jsonTitle,children:a}),(0,d.jsx)("pre",{className:j().jsonPre,children:null==(c=b)?"(empty)":"string"==typeof c?c:JSON.stringify(c,null,2)})]})}function _(a){if(!a)return null;if("string"==typeof a.sourceTraceId&&a.sourceTraceId)return a.sourceTraceId;let b=a.metadata,c=b?.sourceTraceId??b?.traceId;return"string"==typeof c&&c?c:null}function aa(a){return a.status?.toUpperCase()!=="ARCHIVED"}function ab(a){let b=a.trim();if(b&&"(empty)"!==b)try{return JSON.parse(b)}catch{return b}}function ac(a){if(ah(a)&&"string"==typeof a.state&&"string"==typeof a.message&&"string"==typeof a.remediation)return{state:a.state,message:a.message,remediation:a.remediation,requiredEnvVars:ak(a.requiredEnvVars),optionalEnvVars:ak(a.optionalEnvVars),expectedEnvFile:al(a.expectedEnvFile),missingEnvVars:ak(a.missingEnvVars),lookup:ak(a.lookup),detail:al(a.detail)}}function ad(a){return ah(a)&&"string"==typeof a.name?{id:al(a.id),name:a.name,description:"string"==typeof a.description||null===a.description?a.description:void 0,metadata:ah(a.metadata)||null===a.metadata?a.metadata:void 0,createdAt:al(a.createdAt),updatedAt:al(a.updatedAt)}:null}function ae(a){return ah(a)&&"string"==typeof a.id?{id:a.id,status:al(a.status),sourceTraceId:"string"==typeof a.sourceTraceId||null===a.sourceTraceId?a.sourceTraceId:void 0,input:a.input,expectedOutput:a.expectedOutput,metadata:ah(a.metadata)||null===a.metadata?a.metadata:void 0,createdAt:al(a.createdAt),updatedAt:al(a.updatedAt)}:null}function af(a,b){let c=a.metadata;for(let b of[c?.callSummary,c?.summary,c?.name,c?.analysisId,a.id])if("string"==typeof b&&b.trim())return b;return`Item ${b+1}`}function ag(a,b){if(!(a instanceof Element))return null;let c=a.closest("button");return c instanceof HTMLButtonElement?c.dataset[b]??null:null}function ah(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ai(a){return"string"==typeof a}function aj(a){return null!==a}function ak(a){return Array.isArray(a)?a.filter(ai):[]}function al(a){return"string"==typeof a?a:void 0}function am(a){var b,c,d,e,f;return ao(a)&&"string"==typeof a.id&&"string"==typeof a.identifier&&"string"==typeof a.title&&"string"==typeof a.url&&"string"==typeof a.createdAt&&"string"==typeof a.updatedAt?{id:a.id,identifier:a.identifier,title:a.title,description:"string"==typeof a.description||null===a.description?a.description:null,url:a.url,priority:"number"==typeof a.priority?a.priority:0,createdAt:a.createdAt,updatedAt:a.updatedAt,state:ao(b=a.state)&&"string"==typeof b.name&&"string"==typeof b.type?{name:b.name,type:b.type}:null,assignee:ao(c=a.assignee)&&"string"==typeof c.name?{name:c.name}:null,project:ao(d=a.project)&&"string"==typeof d.id&&"string"==typeof d.name?{id:d.id,name:d.name,url:"string"==typeof d.url?d.url:null}:null,team:ao(e=a.team)&&"string"==typeof e.key&&"string"==typeof e.name?{key:e.key,name:e.name}:null,labels:ao(f=a.labels)&&Array.isArray(f.nodes)?{nodes:f.nodes.map(a=>ao(a)&&"string"==typeof a.name?{name:a.name}:null).filter(aq)}:{nodes:[]}}:null}function an(a){return Array.isArray(a)?a.filter(ap):[]}function ao(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ap(a){return"string"==typeof a}function aq(a){return null!==a}function ar(a){return"string"==typeof a?a:void 0}function as(a){return"string"==typeof a?a:null}var at=c(2377),au=c.n(at);function av({issue:a,issueTitle:b,showTitle:c=!1}){if(!a)return null;let e=b?`${a.id} \xb7 ${b}`:a.id;return(0,d.jsxs)("a",{className:au().linearIssueLink,href:a.url,target:"_blank",rel:"noreferrer",title:b?`${a.id}: ${b}`:`Open ${a.id} in Linear`,onClick:aw,children:[(0,d.jsx)("img",{src:"/source-icons/linear.svg",alt:""}),(0,d.jsx)("span",{children:c?e:a.id})]})}function aw(a){a.stopPropagation()}let ax={running:{color:"#f5a623",bg:"rgba(245,166,35,0.1)",border:"rgba(245,166,35,0.3)"},complete:{color:"#00d4aa",bg:"rgba(0,212,170,0.1)",border:"rgba(0,212,170,0.3)"},crashed:{color:"#e8553d",bg:"rgba(232,85,61,0.1)",border:"rgba(232,85,61,0.3)"},aborted:{color:"rgba(250,250,250,0.4)",bg:"rgba(255,255,255,0.04)",border:"rgba(255,255,255,0.08)"}},ay=ax.running;function az({metrics:a}){let b=Object.entries(a);return 0===b.length?null:(0,d.jsxs)("table",{className:au().metricsTable,children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{children:[(0,d.jsx)("th",{className:au().metricsTableHeader,children:"Metric"}),(0,d.jsx)("th",{className:au().metricsTableHeader,style:{textAlign:"right"},children:"Value"}),(0,d.jsx)("th",{className:au().metricsTableHeader,style:{width:"40%"}})]})}),(0,d.jsx)("tbody",{children:b.map(([a,b])=>(0,d.jsxs)("tr",{className:au().metricsTableRow,children:[(0,d.jsx)("td",{className:au().metricsTableLabel,children:y(a)}),(0,d.jsx)("td",{className:au().metricsTableValue,children:z(a,b)}),(0,d.jsx)("td",{className:au().metricsTableBarCell,children:b>=0&&b<=1&&(0,d.jsx)("div",{className:au().metricsTableBarTrack,children:(0,d.jsx)("div",{className:au().metricsTableBar,style:{width:`${100*b}%`}})})})]},a))})]})}function aA({run:a,primaryMetric:b,linearIssueTitle:c}){let e=ax[a.status]??ay,f=A(a,b),g=function(a){let b=a.progress?.total||a.totalItems||a.evalConfig?.datasetItemCount||null;if(!b||b<=0)return null;let c="complete"===a.status?b:"number"==typeof a.progress?.completed?Math.min(a.progress.completed,b):null;return null===c?null:{completed:c,total:b,percent:Math.min(100,Math.max(0,c/b*100))}}(a);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:au().detailPanelHeader,children:[(0,d.jsxs)("div",{className:au().detailTitleStack,children:[(0,d.jsx)("h2",{className:au().detailPanelTitle,children:a.runName}),a.linearIssue&&(0,d.jsx)(av,{issue:a.linearIssue,issueTitle:c,showTitle:!0})]}),null!=f&&(0,d.jsx)("span",{className:au().bestAccuracyInline,children:z(b??"score",f)}),(0,d.jsx)("span",{className:au().statusBadge,style:{color:e.color,backgroundColor:e.bg,border:`1px solid ${e.border}`},children:a.status})]}),g&&(0,d.jsxs)("div",{className:au().runProgressBlock,children:[(0,d.jsxs)("div",{className:au().runProgressHeader,children:[(0,d.jsx)("span",{children:"Dataset items"}),(0,d.jsxs)("span",{children:[g.completed,"/",g.total]})]}),(0,d.jsx)("div",{className:au().runProgressTrack,children:(0,d.jsx)("div",{className:au().runProgressFill,style:{width:`${g.percent}%`}})})]}),(0,d.jsxs)("div",{className:au().runMetaGrid,children:[(0,d.jsx)(aB,{label:"Dataset",value:a.evalConfig?.dataset}),(0,d.jsx)(aB,{label:"Eval version",value:"number"==typeof a.evalConfig?.evalVersion?`v${a.evalConfig.evalVersion}`:null}),(0,d.jsx)(aB,{label:"Started",value:v(a.startedAt)}),(0,d.jsx)(aB,{label:"Updated",value:v(a.updatedAt)}),a.worktreeBranch&&(0,d.jsx)(aB,{label:"Branch",value:a.worktreeBranch}),a.parentId&&(0,d.jsx)(aB,{label:"Parent",value:a.parentId})]}),(0,d.jsxs)("div",{className:au().runSection,children:[(0,d.jsx)("span",{className:au().runLabel,children:"Metrics"}),(0,d.jsx)(az,{metrics:a.metrics}),0===Object.keys(a.metrics).length&&(0,d.jsx)("div",{className:au().detailEmpty,children:"No metrics yet."})]})]})}function aB({label:a,value:b}){return b?(0,d.jsxs)("div",{className:au().runMetaCell,children:[(0,d.jsx)("span",{className:au().runMetaLabel,children:a}),(0,d.jsx)("span",{className:au().runMetaValue,children:b})]}):null}function aC({run:a,primaryMetric:b,linearIssueTitle:c,onClose:f,onViewTraces:g}){let h=(0,e.useCallback)(()=>{g?.(a.runId)},[g,a.runId]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:au().detailPanelBackdrop,onClick:f}),(0,d.jsxs)("div",{className:au().detailPanel,children:[(0,d.jsx)("button",{className:au().detailPanelClose,onClick:f,children:"\xd7"}),(0,d.jsx)(aA,{run:a,primaryMetric:b,linearIssueTitle:c}),g&&(0,d.jsx)("button",{className:au().viewTracesButton,onClick:h,type:"button",children:"View Traces"})]})]})}function aD({run:a,systemId:b,primaryMetric:c,hasCustomRenderer:f,onClose:g}){let[h,i]=(0,e.useState)([]),[k,l]=(0,e.useState)(!0),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)(null),w=(0,e.useCallback)(a=>{let b=a.currentTarget.dataset.traceId;b&&n(b)},[]),x=(0,e.useCallback)(()=>{n(null)},[]),A=a.metrics,B=(0,e.useMemo)(()=>{let a=h.find(a=>null!=a.breakdown);return a?.breakdown!=null?Object.keys(a.breakdown):[]},[h]);return(0,d.jsx)("div",{className:j().runTracesOverlay,children:(0,d.jsxs)("div",{className:j().runTracesPanel,children:[(0,d.jsxs)("div",{className:j().runTracesPanelHeader,children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:j().runTracesPanelTitle,children:a.runName}),(0,d.jsxs)("div",{className:j().detailMeta,children:[a.totalItems??h.length," items \xb7 ",a.status]})]}),(0,d.jsx)("button",{className:j().runTracesPanelClose,onClick:g,type:"button",children:"\xd7"})]}),(0,d.jsx)("div",{className:j().runTracesScores,children:Object.entries(A).map(([a,b])=>(0,d.jsxs)("div",{className:j().runTracesScoreChip,children:[(0,d.jsx)("span",{className:j().runTracesScoreLabel,children:y(a)}),(0,d.jsx)("span",{className:j().runTracesScoreValue,children:z(a,b)})]},a))}),m?(0,d.jsxs)("div",{className:j().runTracesDetail,children:[(0,d.jsx)("button",{className:j().backButton,onClick:x,type:"button",children:"← Back to traces"}),(0,d.jsx)(J,{trace:o,systemId:b,hasCustomRenderer:f,loading:q,error:s})]}):k?(0,d.jsx)("div",{className:j().loadingPanel,children:"Loading run traces..."}):u?(0,d.jsx)("div",{className:j().errorPanel,children:u}):0===h.length?(0,d.jsxs)("div",{className:j().emptyPanel,children:[(0,d.jsx)("div",{className:j().emptyPanelTitle,children:"No traces found"}),(0,d.jsx)("div",{className:j().emptyPanelCopy,children:"This run did not emit any item events with trace IDs."})]}):(0,d.jsx)("div",{className:j().runTracesTableWrap,children:(0,d.jsxs)("table",{className:j().runTracesTable,children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{children:[(0,d.jsx)("th",{children:"Item ID"}),(0,d.jsx)("th",{children:c?y(c):"Score"}),B.map(a=>(0,d.jsx)("th",{children:y(a)},a)),(0,d.jsx)("th",{children:"Trace"})]})}),(0,d.jsx)("tbody",{children:h.map(a=>(0,d.jsxs)("tr",{"data-trace-id":a.traceId??void 0,className:a.traceId?j().runTracesTableRowClickable:void 0,onClick:a.traceId?w:void 0,children:[(0,d.jsx)("td",{className:j().runTracesTableId,children:a.id}),(0,d.jsx)("td",{children:a.score.toFixed(2)}),B.map(b=>(0,d.jsx)("td",{children:a.breakdown?.[b]!=null?a.breakdown[b].toFixed(2):"—"},b)),(0,d.jsx)("td",{children:a.traceId?(0,d.jsx)("span",{className:j().runTracesTraceLink,children:"View"}):(0,d.jsx)("span",{className:j().mutedText,children:"—"})})]},a.id))})]})})]})})}var aE=c(3604),aF=c(7504),aG=c(452);function aH(a){return a<60?`${a}s`:a<3600?`${Math.floor(a/60)}m`:`${Math.floor(a/3600)}h ${Math.floor(a%3600/60)}m`}function aI({node:a,isSelected:b,isBestGlobal:c,isHighlighted:f,primaryMetric:g,linearIssueTitles:h,onClick:i}){let j=a.data.status,k=ax[j.status]??ay,l=A(j,g),m=null!=l?`${(100*l).toFixed(1)}%`:null,n="running"===j.status,o=function(a,b){let[c,d]=(0,e.useState)(Date.now());if(!a)return null;let f=new Date(a).getTime();return isNaN(f)?null:aH(Math.max(0,Math.floor((c-f)/1e3)))}(j.startedAt,0),p=n?null:function(a,b){if(!a||!b)return null;let c=new Date(a).getTime(),d=new Date(b).getTime();if(isNaN(c)||isNaN(d))return null;let e=Math.max(0,Math.floor((d-c)/1e3));return 0===e?null:aH(e)}(j.startedAt,j.updatedAt),q=j.linearIssue?h?.[j.linearIssue.id]??null:null;return(0,d.jsx)("foreignObject",{x:a.x-100,y:a.y-63,width:200,height:126,children:(0,d.jsxs)("button",{"data-run-id":j.runId,className:[au().treeNodeCard,b?au().treeNodeSelected:"",c?au().treeNodeBest:"",f?au().treeNodeHighlight:""].filter(Boolean).join(" "),onClick:i,title:q?`${j.runName}
5
- ${q}`:j.runName,children:[(0,d.jsx)("div",{className:au().treeNodeName,children:j.runName}),(0,d.jsxs)("div",{className:au().treeNodeBadgeRow,children:[(0,d.jsx)("span",{className:au().treeNodeBadge,style:{color:k.color,backgroundColor:k.bg,border:`1px solid ${k.border}`},children:j.status}),n&&o&&(0,d.jsx)("span",{className:au().treeNodeElapsed,children:o}),p&&(0,d.jsx)("span",{className:au().treeNodeElapsed,children:p})]}),(0,d.jsx)("div",{className:au().treeNodeScoreRow,children:m?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:au().treeNodeAccuracy,children:m}),null!=j.totalItems&&(0,d.jsxs)("span",{className:au().treeNodeItems,children:["n=",j.totalItems]})]}):"aborted"===j.status||"crashed"===j.status?(0,d.jsx)("span",{className:au().treeNodeItems,children:"—"}):(0,d.jsxs)("span",{className:au().treeNodeLoading,children:[(0,d.jsx)("span",{className:au().treeNodePulse}),(0,d.jsx)("span",{className:au().treeNodeLoadingText,children:"running"===j.status&&j.progress?`${j.progress.completed}/${j.progress.total}`:"running"===j.status?"Running eval...":"Pending"})]})}),j.linearIssue&&(0,d.jsx)("div",{className:au().treeNodeIssueRow,children:(0,d.jsx)(av,{issue:j.linearIssue,issueTitle:q,showTitle:!0})})]})})}function aJ({link:a}){return(0,d.jsx)(aG.LinkVertical,{data:a,stroke:"rgba(255, 255, 255, 0.25)",strokeWidth:1.5,fill:"none"})}function aK(a){return{status:a.status,children:a.children.map(aK)}}function aL(a){return a.depth>0&&null!==a.data.status}function aM({roots:a,selectedId:b,bestGlobalId:c,highlightId:f,primaryMetric:g,linearIssueTitles:h,onSelect:i}){let j=(0,e.useMemo)(()=>({status:null,children:a.map(aK)}),[a]),k=(0,e.useMemo)(()=>(0,aF.Sk)(j,a=>a.children.length>0?a.children:null),[j]);return 0===a.length?null:(0,d.jsx)("div",{className:au().treeForest,children:(0,d.jsx)(aF.PH,{root:k,nodeSize:[216,158],separation:(a,b)=>a.parent===b.parent?1:1.1,children:a=>{let e=a.descendants(),j=a.links(),k=e.filter(aL),l=j.filter(a=>a.source.depth>0);if(0===k.length)return null;let m=1/0,n=-1/0,o=1/0,p=-1/0;for(let a of k)m=Math.min(m,a.x),n=Math.max(n,a.x),o=Math.min(o,a.y),p=Math.max(p,a.y);let q=n-m+200+80,r=p-o+126+80,s=-m+100+40,t=-o+63+40;return(0,d.jsx)("svg",{width:q,height:r,className:au().treeSvg,children:(0,d.jsxs)(aE.Group,{top:t,left:s,children:[l.map((a,b)=>(0,d.jsx)(aJ,{link:a},`link-${b}`)),k.map(a=>(0,d.jsx)(aI,{node:a,isSelected:b===a.data.status.runId,isBestGlobal:c===a.data.status.runId,isHighlighted:f===a.data.status.runId,primaryMetric:g,linearIssueTitles:h,onClick:()=>i(a.data.status.runId)},a.data.status.runId))]})})}})})}var aN=c(7048),aO=c.n(aN);function aP({runs:a,primaryMetric:b,bestGlobalId:c,selectedId:f,linearIssueTitles:g,onSelect:h}){let[i,j]=(0,e.useState)(b??""),[k,l]=(0,e.useState)(!0),m=(0,e.useRef)(new Map),n=(0,e.useRef)(new Map),o=(0,e.useMemo)(()=>{let c=new Set;for(let b of a)for(let a of Object.keys(b.metrics))c.add(a);return[...c].sort((a,c)=>a===b?-1:c===b?1:a.localeCompare(c))},[a,b]),p=(0,e.useMemo)(()=>{let b=[...a];return b.sort((a,b)=>{let c=i?a.metrics[i]??-1/0:0,d=i?b.metrics[i]??-1/0:0,e=k?d-c:c-d;return 0!==e?e:(b.totalItems??0)-(a.totalItems??0)}),b},[a,i,k]),q=(0,e.useCallback)(a=>{for(let[a,b]of m.current)n.current.set(a,b.getBoundingClientRect().top);a===i?l(a=>!a):(j(a),l(!0))},[i]);return 0===a.length?(0,d.jsx)("p",{className:aO().noData,children:"No experiments yet."}):(0,d.jsx)("div",{className:aO().tableWrapper,children:(0,d.jsxs)("table",{className:aO().table,children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{children:[(0,d.jsx)("th",{className:aO().thRank,children:"#"}),(0,d.jsx)("th",{className:aO().thName,children:"Run"}),(0,d.jsx)("th",{className:aO().thStatus,children:"Status"}),o.map(a=>(0,d.jsxs)("th",{className:`${aO().thMetric} ${a===b?aO().thPrimary:""} ${a===i?aO().thSorted:""}`,onClick:()=>q(a),children:[(0,d.jsx)("span",{className:aO().thLabel,children:y(a)}),a===i&&(0,d.jsx)("span",{className:aO().sortArrow,children:k?"▼":"▲"})]},a)),(0,d.jsx)("th",{className:aO().thItems,children:"n"}),(0,d.jsx)("th",{className:aO().thStarted,children:"Started"})]})}),(0,d.jsx)("tbody",{children:p.map((a,e)=>{let i=ax[a.status]??ay,j=a.runId===c,k=a.runId===f;return(0,d.jsxs)("tr",{ref:b=>{b?m.current.set(a.runId,b):m.current.delete(a.runId)},className:`${aO().row} ${j?aO().rowBest:""} ${k?aO().rowSelected:""}`,onClick:()=>h(a.runId),children:[(0,d.jsx)("td",{className:aO().tdRank,children:e+1}),(0,d.jsxs)("td",{className:aO().tdName,children:[(0,d.jsx)("span",{className:aO().expName,children:a.runName}),(0,d.jsx)(av,{issue:a.linearIssue,issueTitle:a.linearIssue?g?.[a.linearIssue.id]:null}),j&&(0,d.jsx)("span",{className:aO().bestBadge,children:"BEST"})]}),(0,d.jsx)("td",{className:aO().tdStatus,children:(0,d.jsx)("span",{className:aO().statusDot,style:{backgroundColor:i.color},title:a.status})}),o.map(c=>{let e=a.metrics[c],f=c===b;return(0,d.jsx)("td",{className:`${aO().tdMetric} ${f?aO().tdPrimary:""}`,children:null!=e?(0,d.jsx)("span",{className:aO().metricValue,children:z(c,e)}):(0,d.jsx)("span",{className:aO().metricEmpty,children:"—"})},c)}),(0,d.jsx)("td",{className:aO().tdItems,children:a.totalItems??"?"}),(0,d.jsx)("td",{className:aO().tdStarted,children:v(a.startedAt)})]},a.runId)})})]})})}function aQ({runs:a,primaryMetric:b,bestRunId:c,selectedRunId:e,linearIssueTitles:f,onSelectRun:g}){return(0,d.jsx)(aP,{runs:a,primaryMetric:b,bestGlobalId:c,selectedId:e,linearIssueTitles:f,onSelect:g})}function aR({system:a}){let{runs:b}=u(a.id),[c,f]=(0,e.useState)(null),[g]=(0,e.useState)(null),[h,i]=(0,e.useState)(null),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(280),[o,p]=(0,e.useState)({}),q=(0,e.useCallback)(()=>{f(null)},[]),r=(0,e.useCallback)(a=>{l(a)},[]),s=(0,e.useCallback)(()=>{l(null)},[]),t=(0,e.useCallback)(a=>{let b=function(a){if(!(a instanceof Element))return null;let b=a.closest("button");return b instanceof HTMLButtonElement?b.dataset.groupKey??null:null}(a.target);b&&i(b)},[]),v=(0,e.useCallback)(a=>{a.preventDefault();let b=a.clientX,c=a=>{n(Math.min(560,Math.max(220,m+a.clientX-b)))};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("pointermove",c),document.addEventListener("pointerup",()=>{document.removeEventListener("pointermove",c),document.body.style.cursor="",document.body.style.userSelect=""},{once:!0})},[m]),w=a.primaryMetric??null,x=(0,e.useMemo)(()=>{let a=new Map;for(let c of b){let b=B(c,w),d=a.get(b.key);d?d.count++:a.set(b.key,{...b,count:1})}return[...a.values()].sort((a,b)=>{let c=a.dataset.localeCompare(b.dataset);return 0===c?a.evalLabel.localeCompare(b.evalLabel):c})},[w,b]),y=h&&x.some(a=>a.key===h)?h:x[0]?.key??null,z=(0,e.useMemo)(()=>y?b.filter(a=>B(a,w).key===y):b,[b,y,w]),C=(0,e.useMemo)(()=>(function(a,b){let c=new Map;for(let b of a)c.set(b.runId,{status:b,children:[]});let d=[];for(let a of c.values()){let b=a.status.parentId;b&&c.has(b)?c.get(b).children.push(a):d.push(a)}let e=a=>{for(let c of(a.sort((a,c)=>(A(c.status,b)??-1)-(A(a.status,b)??-1)),a))e(c.children)};return e(d),d})(z,w),[z,w]),E=(0,e.useMemo)(()=>{let a=null,b=-1;for(let c of z){let d=A(c,w);null!=d&&d>b&&(b=d,a=c.runId)}return a},[z,w]),F=c?z.find(a=>a.runId===c):null,G=k?z.find(a=>a.runId===k):null;return(0,d.jsxs)("div",{className:j().experimentsLayout,children:[(0,d.jsx)("aside",{className:`${j().dataNav} ${j().experimentNav}`,style:{width:m},onClick:t,children:0===x.length?(0,d.jsx)("div",{className:j().dataNavEmpty,children:"No experiments yet"}):x.map(a=>(0,d.jsxs)("button",{"data-group-key":a.key,title:`${a.datasetLabel}
6
- ${a.evalLabel} \xb7 ${a.count} experiments`,className:`${j().dataNavItem} ${j().dataNavGroupItem} ${j().experimentNavItem} ${y===a.key?j().dataNavItemActive:""}`,children:[(0,d.jsx)("span",{className:j().dataNavItemText,children:a.datasetLabel}),(0,d.jsxs)("span",{className:j().dataNavItemMeta,children:[a.evalLabel," \xb7 ",a.count]})]},a.key))}),(0,d.jsx)("div",{className:j().sidebarResizeHandle,role:"separator","aria-label":"Resize benchmarks","aria-orientation":"vertical",onPointerDown:v}),(0,d.jsxs)("section",{className:`${j().dataMain} ${j().experimentsMain}`,children:[(0,d.jsx)(D,{title:"Local experiments",source:"local",syncLabel:"Live updates",children:"Choose a benchmark on the left. Kaizen only compares experiments inside the selected benchmark, because scores from different datasets or scoring setups are not scientifically comparable."}),(0,d.jsx)(aM,{roots:C,selectedId:c,bestGlobalId:E,highlightId:g,primaryMetric:w,linearIssueTitles:o,onSelect:f}),F&&(0,d.jsx)(aC,{run:F,primaryMetric:w,linearIssueTitle:F.linearIssue?o[F.linearIssue.id]:null,onClose:q,onViewTraces:r}),G&&(0,d.jsx)(aD,{run:G,systemId:a.id,primaryMetric:w,hasCustomRenderer:!!a.traceRenderer,onClose:s}),(0,d.jsx)(aQ,{runs:z,primaryMetric:w,bestRunId:E,selectedRunId:c,linearIssueTitles:o,onSelectRun:f})]})]})}function aS({system:a}){let[b,c]=(0,e.useState)([]),[f,g]=(0,e.useState)(null),[h,i]=(0,e.useState)(void 0),[k,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(null),v=(0,e.useRef)(a.id);v.current=a.id;let w=(0,e.useCallback)(async()=>{let b=a.id;q(!0);try{var d;let a=await fetch(`/api/linear-ideas?systemId=${encodeURIComponent(b)}`),e=(d=await a.json(),ao(d)?{ideas:Array.isArray(d.ideas)?d.ideas.map(am).filter(aq):void 0,config:function(a){if(ao(a))return{teamKey:as(a.teamKey),projectName:as(a.projectName),projectId:as(a.projectId),projectUrl:as(a.projectUrl),projectRef:as(a.projectRef),projectRefKind:as(a.projectRefKind),label:ar(a.label)??"Kaizen"}}(d.config),connection:function(a){if(ao(a)&&function(a){switch(a){case"connected":case"missing_project":case"missing_api_key":case"project_not_found":case"auth_failed":case"query_failed":case"network_error":return!0;default:return!1}}(a.state)&&"string"==typeof a.message&&"string"==typeof a.remediation)return{state:a.state,message:a.message,remediation:a.remediation,requiredEnvVars:an(a.requiredEnvVars),optionalEnvVars:an(a.optionalEnvVars),expectedEnvFile:ar(a.expectedEnvFile),missingEnvVars:an(a.missingEnvVars),lookup:an(a.lookup),detail:ar(a.detail)}}(d.connection),error:ar(d.error)}:{});if(!a.ok)throw Error(e.error??`HTTP ${a.status}`);if(v.current!==b)return;c(e.ideas??[]),i(e.config),m(e.connection??null),g(a=>a&&(e.ideas??[]).some(b=>b.id===a)?a:e.ideas?.[0]?.id??null),o(e.error??null),u(Q())}catch(a){if(v.current!==b)return;m(null),o(a instanceof Error?a.message:String(a))}finally{v.current===b&&(s(!0),q(!1))}},[a.id]),x=(0,e.useCallback)(()=>{w()},[w]),y=(0,e.useMemo)(()=>b.find(a=>a.id===f)??b[0]??null,[b,f]),z=h?.teamKey??null,A=h?.projectRef??null,B=h?.label??"Kaizen",C=(0,e.useMemo)(()=>{var a;return[(a={teamKey:z,projectRef:A,label:B}).teamKey?`LINEAR_TEAM_KEY=${a.teamKey}`:"any team",a.projectRef?`linear_project=${a.projectRef}`:"linear_project not set",`label=${a.label}`]},[B,A,z]);return(0,d.jsxs)("div",{className:j().surface,children:[(0,d.jsxs)(D,{title:"Linear ideas",source:"linear",syncLabel:R(t,2e4),onRefresh:x,refreshing:p,children:["This shows Linear issues that Kaizen can try as experiments. For this system, Kaizen looks",h?.projectName||h?.projectRef?(0,d.jsxs)(d.Fragment,{children:[" in project ",(0,d.jsxs)("span",{className:j().inlineSourceValue,children:[(0,d.jsx)("code",{children:h.projectName??h.projectRef}),(0,d.jsx)(l,{source:"code"})]})]}):" in the Linear project configured in this system's code"," ","for issues labeled ",(0,d.jsx)("code",{children:"Kaizen"}),". Label a Linear issue"," ",(0,d.jsx)("code",{children:"Kaizen"})," when you want Kaizen to try it as an experiment."]}),k&&"connected"!==k.state&&(0,d.jsx)(N,{status:k,currentValues:C}),n&&(0,d.jsx)("div",{className:j().errorPanel,children:n}),p&&!r?(0,d.jsx)("div",{className:j().loadingPanel,children:"Loading Linear ideas..."}):(0,d.jsxs)("div",{className:j().splitSurface,children:[(0,d.jsx)(aT,{ideas:b,selectedId:y?.id??null,onSelect:g}),(0,d.jsx)(aU,{idea:y})]})]})}function aT({ideas:a,selectedId:b,onSelect:c}){let f=(0,e.useCallback)(a=>{let b=function(a){if(!(a instanceof Element))return null;let b=a.closest("button");return b instanceof HTMLButtonElement?b.dataset.ideaId??null:null}(a.target);b&&c(b)},[c]);return 0===a.length?(0,d.jsx)("div",{className:j().listPanelEmpty,children:"No Linear ideas"}):(0,d.jsx)("aside",{className:j().listPanel,onClick:f,children:a.map(a=>(0,d.jsxs)("button",{"data-idea-id":a.id,className:`${j().listRow} ${b===a.id?j().listRowSelected:""}`,children:[(0,d.jsx)("span",{className:j().listRowTitle,children:a.title}),(0,d.jsxs)("span",{className:j().listRowMeta,children:[a.identifier," \xb7 ",a.state?.name??"No status"]})]},a.id))})}function aU({idea:a}){var b;let c;return a?(0,d.jsxs)("section",{className:j().detailPanel,children:[(0,d.jsxs)("div",{className:j().detailHeader,children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:j().detailTitle,children:a.title}),(0,d.jsx)("a",{className:j().detailLink,href:a.url,target:"_blank",rel:"noreferrer",children:a.identifier})]}),a.state&&(0,d.jsx)("span",{className:j().statusPill,children:a.state.name})]}),(0,d.jsxs)("div",{className:j().ideaMetaGrid,children:[(0,d.jsx)(aV,{label:"Team",value:a.team?.key??a.team?.name}),(0,d.jsx)(aV,{label:"Project",value:a.project?.name}),(0,d.jsx)(aV,{label:"Assignee",value:a.assignee?.name}),(0,d.jsx)(aV,{label:"Updated",value:Number.isNaN((c=new Date(b=a.updatedAt)).getTime())?b:c.toLocaleString()})]}),a.labels.nodes.length>0&&(0,d.jsx)("div",{className:j().tagRow,children:a.labels.nodes.map(a=>(0,d.jsx)("span",{className:j().tagPill,children:a.name},a.name))}),(0,d.jsx)("div",{className:j().descriptionBlock,children:a.description||"No description."})]}):(0,d.jsx)("section",{className:j().detailPanel,children:"No idea selected"})}function aV({label:a,value:b}){return(0,d.jsxs)("div",{className:j().metaCell,children:[(0,d.jsx)("span",{className:j().metaLabel,children:a}),(0,d.jsx)("span",{className:j().metaValue,children:b??"Unassigned"})]})}function aW({surface:a}){let{systems:b,activeSystemId:c}=(0,f.V)(),g=(0,e.useMemo)(()=>b.find(a=>a.id===c)??null,[c,b]);return(0,d.jsx)(t,{activeSystem:g,activeSurface:a,children:g?"data"===a?(0,d.jsx)(S,{system:g}):"benchmarks"===a?(0,d.jsx)(F,{system:g}):"ideas"===a?(0,d.jsx)(aS,{system:g}):(0,d.jsx)(aR,{system:g}):(0,d.jsx)(aX,{systemCount:b.length})})}function aX({systemCount:a}){return(0,d.jsxs)("div",{className:j().emptyState,children:[(0,d.jsx)("img",{src:"/logo-cream.svg",alt:"Kaizen",className:j().emptyLogo}),(0,d.jsx)("h1",{className:j().emptyTitle,children:"Kaizen"}),(0,d.jsx)("p",{className:j().emptyCopy,children:"Select a system to inspect its data, benchmarks, ideas, and experiments."}),(0,d.jsxs)("span",{className:j().emptyMeta,children:[a," system",1===a?"":"s"]})]})}},2377:a=>{a.exports={layout:"Runs_layout__Ih4Cn",heroLogo:"Runs_heroLogo__BAUu8",headerLogo:"Runs_headerLogo__TgYiK",container:"Runs_container__0aqIq",headerRow:"Runs_headerRow__abEUi",title:"Runs_title__oroey",connectedBadge:"Runs_connectedBadge__d1Ss1",disconnectedBadge:"Runs_disconnectedBadge__v3kiS",systemTabs:"Runs_systemTabs__Gtuvz",systemTab:"Runs_systemTab__XYpgy",systemTabActive:"Runs_systemTabActive__10lyk",systemTabName:"Runs_systemTabName__pER4w",systemTabStatus:"Runs_systemTabStatus__YbTNa",systemStatus_in_progress:"Runs_systemStatus_in_progress__i_6lJ",systemStatus_completed:"Runs_systemStatus_completed__pjTng",systemStatus_not_started:"Runs_systemStatus_not_started__FqOI6",subtitle:"Runs_subtitle__ZfT5k",targetBadge:"Runs_targetBadge__XoNhG",grid:"Runs_grid__7DXl9",card:"Runs_card__AxGEL",cardFlash:"Runs_cardFlash__pXo7_",cardGlow:"Runs_cardGlow__mf3t7",badgeFlash:"Runs_badgeFlash__Q0C8G",badgePop:"Runs_badgePop__PdKoP",textFlash:"Runs_textFlash__O_0mj",textHighlight:"Runs_textHighlight__9znCz",rowSlideIn:"Runs_rowSlideIn__rGZ9I",slideInFade:"Runs_slideInFade__SsIak",diagramFlash:"Runs_diagramFlash__4ZTFP",diagramPulse:"Runs_diagramPulse__yN0dx",cardHeader:"Runs_cardHeader__7EpGx",cardTitle:"Runs_cardTitle__l82f2",bestAccuracyInline:"Runs_bestAccuracyInline__0XYna",linearIssueLink:"Runs_linearIssueLink__aVa6L",statusBadge:"Runs_statusBadge__T4ifS",detailTitleStack:"Runs_detailTitleStack__a_E4h",runProgressBlock:"Runs_runProgressBlock__Hg4fw",runProgressHeader:"Runs_runProgressHeader__e69Sy",runProgressTrack:"Runs_runProgressTrack__c_Wjv",runProgressFill:"Runs_runProgressFill__JOLgM",runMetaGrid:"Runs_runMetaGrid__kiPS9",runMetaCell:"Runs_runMetaCell__lEV1l",runMetaLabel:"Runs_runMetaLabel__DxMGL",runMetaValue:"Runs_runMetaValue__gJoib",detailEmpty:"Runs_detailEmpty__wy74V",metricsTable:"Runs_metricsTable__C_A_z",iterRowClickable:"Runs_iterRowClickable__g1tjc",iterRowExpanded:"Runs_iterRowExpanded__Nbl8_",bestRow:"Runs_bestRow__A_kku",iterDetailRow:"Runs_iterDetailRow__y10KK",cardFooter:"Runs_cardFooter__o_f_i",footerUpdated:"Runs_footerUpdated__21L7o",chartContainer:"Runs_chartContainer__bTh0u",chartTitle:"Runs_chartTitle__OkYqw",chart:"Runs_chart__XhGIf",chartRow:"Runs_chartRow__DbGz_",chartLabel:"Runs_chartLabel__3FlRl",chartBarContainer:"Runs_chartBarContainer__zzYv4",chartBarTrack:"Runs_chartBarTrack__5ogbA",chartBar:"Runs_chartBar__64D55",chartRowClickable:"Runs_chartRowClickable__RxDfH",chartValue:"Runs_chartValue__lmV61",metricsTableHeader:"Runs_metricsTableHeader__8d74Z",metricsTableRow:"Runs_metricsTableRow__FEGrk",metricsTableLabel:"Runs_metricsTableLabel__K8De_",metricsTableValue:"Runs_metricsTableValue__kaegJ",metricsTableBarCell:"Runs_metricsTableBarCell__8h1wf",metricsTableBarTrack:"Runs_metricsTableBarTrack__b_CnH",metricsTableBar:"Runs_metricsTableBar__HScEe",chartItems:"Runs_chartItems__Quwyx",noData:"Runs_noData__fi5_n",runSection:"Runs_runSection__Ggi_B",runLabel:"Runs_runLabel__uGajV",treeForest:"Runs_treeForest__6GBAM",treeSvg:"Runs_treeSvg___AATo",treeNodeCard:"Runs_treeNodeCard__Y5XEX",treeNodeSelected:"Runs_treeNodeSelected__QaPg2",treeNodeBest:"Runs_treeNodeBest__U8FaL",treeNodeHighlight:"Runs_treeNodeHighlight__A7a9x",nodeHighlight:"Runs_nodeHighlight__Zuhi5",treeNodeName:"Runs_treeNodeName__XtYDH",treeNodeBadgeRow:"Runs_treeNodeBadgeRow__ZwAvw",treeNodeBadge:"Runs_treeNodeBadge__jLVIw",treeNodeElapsed:"Runs_treeNodeElapsed__vsyq2",treeNodeScoreRow:"Runs_treeNodeScoreRow__BN81e",treeNodeIssueRow:"Runs_treeNodeIssueRow__7fXg_",treeNodeAccuracy:"Runs_treeNodeAccuracy__ehSVZ",treeNodeItems:"Runs_treeNodeItems__4SRsq",treeNodeLoading:"Runs_treeNodeLoading__P7_CS",treeNodePulse:"Runs_treeNodePulse__nC6rt",pulse:"Runs_pulse__LMgDF",treeNodeLoadingText:"Runs_treeNodeLoadingText__C1_bJ",detailPanelBackdrop:"Runs_detailPanelBackdrop__UMPlF",fadeIn:"Runs_fadeIn__1nqka",detailPanel:"Runs_detailPanel__BII9F",slideInFromRight:"Runs_slideInFromRight__uHSvO",detailPanelClose:"Runs_detailPanelClose__vgQbo",detailPanelHeader:"Runs_detailPanelHeader__XMEDA",detailPanelTitle:"Runs_detailPanelTitle__vAuOY",viewTracesButton:"Runs_viewTracesButton__W3KMl"}},3031:a=>{a.exports={wrapper:"SystemSelector_wrapper__ERtiP",label:"SystemSelector_label__4i0LZ",select:"SystemSelector_select__NXXNb"}},3062:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(8732);c(9990);var e=c(4130),f=c.n(e),g=c(1039);function h({Component:a,pageProps:b}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f(),{children:(0,d.jsx)("title",{children:"Kaizen"})}),(0,d.jsx)(g.G,{children:(0,d.jsx)("div",{style:{height:"100vh",overflow:"auto"},children:(0,d.jsx)(a,{...b})})})]})}},7048:a=>{a.exports={tableWrapper:"Leaderboard_tableWrapper__6uunR",table:"Leaderboard_table__8gTqK",noData:"Leaderboard_noData__aKd3L",thRank:"Leaderboard_thRank__e16FK",thName:"Leaderboard_thName__i_zQZ",thStatus:"Leaderboard_thStatus__F4ZyW",thMetric:"Leaderboard_thMetric__ZMVo_",thPrimary:"Leaderboard_thPrimary__SzN76",thSorted:"Leaderboard_thSorted__13fmP",thLabel:"Leaderboard_thLabel__2cqYD",sortArrow:"Leaderboard_sortArrow__3IJre",thItems:"Leaderboard_thItems__3MS6a",thStarted:"Leaderboard_thStarted__9zNIp",row:"Leaderboard_row__A9H8t",rowBest:"Leaderboard_rowBest__JCqYu",rowSelected:"Leaderboard_rowSelected__GFyz5",tdRank:"Leaderboard_tdRank__kZKT_",tdName:"Leaderboard_tdName__2ymmx",expName:"Leaderboard_expName__6rkrZ",bestBadge:"Leaderboard_bestBadge__33jMs",tdStatus:"Leaderboard_tdStatus__zRhgm",statusDot:"Leaderboard_statusDot__hEPYp",tdMetric:"Leaderboard_tdMetric__Ll0O_",tdPrimary:"Leaderboard_tdPrimary__SZr_5",metricValue:"Leaderboard_metricValue__IhFZf",metricEmpty:"Leaderboard_metricEmpty__l1hwN",tdItems:"Leaderboard_tdItems__4_5Q6",tdStarted:"Leaderboard_tdStarted__p97S3"}},7729:a=>{a.exports={page:"Studio_page__X6enu",topBar:"Studio_topBar__OlLt6",logoLink:"Studio_logoLink__Hv20q",topLogo:"Studio_topLogo__YEKp4",systemSlot:"Studio_systemSlot__5m3MM",surfaceNav:"Studio_surfaceNav__RKZjS",surfaceLink:"Studio_surfaceLink__ivMXp",surfaceLinkActive:"Studio_surfaceLinkActive__Der5b",surfaceLinkDisabled:"Studio_surfaceLinkDisabled__gfVYR",statusPill:"Studio_statusPill__m2ERk",content:"Studio_content__LELHT",surface:"Studio_surface__lxZ_I",surfaceBanner:"Studio_surfaceBanner__UNvfB",surfaceBannerText:"Studio_surfaceBannerText__6jNss",surfaceBannerTitle:"Studio_surfaceBannerTitle__vXJox",surfaceBannerCopy:"Studio_surfaceBannerCopy__Abpvv",sourceChip:"Studio_sourceChip___xMTP",sourceChip_code:"Studio_sourceChip_code__DPzDj",sourceChip_langfuse:"Studio_sourceChip_langfuse__h6LSy",sourceChip_linear:"Studio_sourceChip_linear__9NNQ5",sourceChip_local:"Studio_sourceChip_local__3Ws2K",sourceLogo:"Studio_sourceLogo__iWmOz",sourceSvgIcon:"Studio_sourceSvgIcon__dpcyH",provenanceLine:"Studio_provenanceLine__a5uDd",inlineSourceValue:"Studio_inlineSourceValue__WMOb9",syncStatus:"Studio_syncStatus__exlkz",syncStatusLabel:"Studio_syncStatusLabel__C5cmS",iconButton:"Studio_iconButton__aVxFx",dataLayout:"Studio_dataLayout__RTqFZ",experimentsLayout:"Studio_experimentsLayout__dJ9_W",dataNav:"Studio_dataNav__Hhqcz",experimentNav:"Studio_experimentNav__pUm9S",sidebarResizeHandle:"Studio_sidebarResizeHandle__Bfcoi",experimentsMain:"Studio_experimentsMain__8IYj4",dataNavItem:"Studio_dataNavItem__rzaJQ",dataNavGroupItem:"Studio_dataNavGroupItem__0bfKJ",dataNavItemText:"Studio_dataNavItemText__nSadp",dataNavItemMeta:"Studio_dataNavItemMeta__PEhqv",experimentNavItem:"Studio_experimentNavItem__VrdaI",dataNavEmpty:"Studio_dataNavEmpty__sffpq",dataNavItemActive:"Studio_dataNavItemActive__TANbd",dataMain:"Studio_dataMain__rSYxU",surfaceToolbar:"Studio_surfaceToolbar__ayM6U",surfaceTitle:"Studio_surfaceTitle__7SjZP",surfaceSubtitle:"Studio_surfaceSubtitle__i6YB6",inlineSelector:"Studio_inlineSelector__er_h_",inlineSelectorLabel:"Studio_inlineSelectorLabel__T4g6q",filterBar:"Studio_filterBar__I6G_F",select:"Studio_select__rbQ0i",primaryButton:"Studio_primaryButton__t0Otf",secondaryButton:"Studio_secondaryButton__gEhyV",dangerButton:"Studio_dangerButton__9Bclj",splitSurface:"Studio_splitSurface__v2lGr",listPanel:"Studio_listPanel__KQbqx",listPanelEmpty:"Studio_listPanelEmpty__Ofh2D",detailPanel:"Studio_detailPanel__upjwv",errorPanel:"Studio_errorPanel__OFovk",loadingPanel:"Studio_loadingPanel__VwGMY",emptyPanel:"Studio_emptyPanel__nqsJ1",listRow:"Studio_listRow__NObDS",listRowSelected:"Studio_listRowSelected__v7gF6",listRowTitle:"Studio_listRowTitle__Dg_xF",listRowMeta:"Studio_listRowMeta__fmtZx",detailHeader:"Studio_detailHeader__an_N2",detailTitle:"Studio_detailTitle__H8HXN",detailMeta:"Studio_detailMeta__F__Kq",mutedText:"Studio_mutedText__gxlbZ",detailLink:"Studio_detailLink__QdlV6",detailGrid:"Studio_detailGrid__eKjPQ",jsonBlock:"Studio_jsonBlock__V4yWY",jsonTitle:"Studio_jsonTitle__4rJZO",sectionTitle:"Studio_sectionTitle__AgJZy",jsonPre:"Studio_jsonPre__NT0BZ",traceSection:"Studio_traceSection__7pMTX",traceHeader:"Studio_traceHeader__Ulrn7",traceName:"Studio_traceName__YsChW",tagRow:"Studio_tagRow__Prgun",tagPill:"Studio_tagPill__TRnnW",successPanel:"Studio_successPanel__03cvQ",evalDefinitionGrid:"Studio_evalDefinitionGrid__YMID0",evalDefinitionCell:"Studio_evalDefinitionCell__wS4ZE",evalDefinitionCode:"Studio_evalDefinitionCode___J0aO",evalHistorySection:"Studio_evalHistorySection__e_91j",evalSectionHeader:"Studio_evalSectionHeader___IiLV",evalSummaryTable:"Studio_evalSummaryTable__gZ5vh",evalSummaryHeader:"Studio_evalSummaryHeader__ku_ov",evalSummaryRow:"Studio_evalSummaryRow__KtPSR",evalSummaryPrimary:"Studio_evalSummaryPrimary__VAArE",evalSummaryMeta:"Studio_evalSummaryMeta__RgcSF",setupBanner:"Studio_setupBanner__rn3R6",setupTitle:"Studio_setupTitle__rrPH_",setupCopy:"Studio_setupCopy__InFUm",setupHeader:"Studio_setupHeader__0z51Y",setupState:"Studio_setupState__u13N3",setupGrid:"Studio_setupGrid__43Ac0",setupBlock:"Studio_setupBlock__pXdLU",setupBlockTitle:"Studio_setupBlockTitle__HS_1S",setupCode:"Studio_setupCode__3AADb",setupLookup:"Studio_setupLookup__S7xvC",setupDetail:"Studio_setupDetail__BYnnc",setupLookupLabel:"Studio_setupLookupLabel__OOHGt",ideaMetaGrid:"Studio_ideaMetaGrid__QA5ZP",metaCell:"Studio_metaCell__lTOia",metaLabel:"Studio_metaLabel__orMyw",metaValue:"Studio_metaValue__wPOIw",descriptionBlock:"Studio_descriptionBlock__RgZHz",formRow:"Studio_formRow__CkHSQ",formLabel:"Studio_formLabel__pObCQ",textInput:"Studio_textInput__9WjCF",textArea:"Studio_textArea__yi_Lm",textAreaLarge:"Studio_textAreaLarge__20NQc",actionRow:"Studio_actionRow__0pQf0",actionFooter:"Studio_actionFooter__wFiYP",emptyState:"Studio_emptyState__dwICN",emptyLogo:"Studio_emptyLogo__ehso4",emptyTitle:"Studio_emptyTitle__ByiEP",emptyCopy:"Studio_emptyCopy__NP7hT",emptyMeta:"Studio_emptyMeta__Bsrtp",emptyPanelCopy:"Studio_emptyPanelCopy__EExQw",emptyPanelTitle:"Studio_emptyPanelTitle__g31eb",runTracesOverlay:"Studio_runTracesOverlay__Obe3a",runTracesPanel:"Studio_runTracesPanel__nh_gK",runTracesPanelHeader:"Studio_runTracesPanelHeader__gJlWU",runTracesPanelTitle:"Studio_runTracesPanelTitle__gUr1M",runTracesPanelClose:"Studio_runTracesPanelClose__SV_Tp",runTracesScores:"Studio_runTracesScores__OEEiI",runTracesScoreChip:"Studio_runTracesScoreChip__lujZE",runTracesScoreLabel:"Studio_runTracesScoreLabel__rb3rj",runTracesScoreValue:"Studio_runTracesScoreValue__aWrWN",runTracesDetail:"Studio_runTracesDetail__vStOu",runTracesTableWrap:"Studio_runTracesTableWrap__V4tCd",runTracesTable:"Studio_runTracesTable__FzXJs",runTracesTableRowClickable:"Studio_runTracesTableRowClickable__sdAb4",runTracesTableId:"Studio_runTracesTableId__zVZBX",runTracesTraceLink:"Studio_runTracesTraceLink___ot6u",backButton:"Studio_backButton__sPEo0"}},7934:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(8732),e=c(7215);function f(){return(0,d.jsxs)(e.Html,{lang:"en",children:[(0,d.jsxs)(e.Head,{children:[(0,d.jsx)("link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/favicon-32.png"}),(0,d.jsx)("link",{rel:"icon",type:"image/png",sizes:"64x64",href:"/favicon-64.png"}),(0,d.jsx)("link",{rel:"apple-touch-icon",href:"/apple-touch-icon.png"})]}),(0,d.jsxs)("body",{children:[(0,d.jsx)(e.Main,{}),(0,d.jsx)(e.NextScript,{})]})]})}},9990:()=>{}};
@@ -1 +0,0 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Kaizen</title><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png"/><link rel="icon" type="image/png" sizes="64x64" href="/favicon-64.png"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><link rel="preload" href="/_next/static/css/1224a99c5dfac9b3.css" as="style"/><link rel="preload" href="/_next/static/css/b18a6732b96168e1.css" as="style"/><link rel="stylesheet" href="/_next/static/css/1224a99c5dfac9b3.css" data-n-g=""/><link rel="stylesheet" href="/_next/static/css/b18a6732b96168e1.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-8c7966d82a2912f0.js" defer=""></script><script src="/_next/static/chunks/framework-7089c270fe56b51f.js" defer=""></script><script src="/_next/static/chunks/main-7ac7f96d288497aa.js" defer=""></script><script src="/_next/static/chunks/pages/_app-40b8f71fde4e6347.js" defer=""></script><script src="/_next/static/chunks/431-43358ce3c29e5e1b.js" defer=""></script><script src="/_next/static/chunks/673-ed4be46027ae7a37.js" defer=""></script><script src="/_next/static/chunks/pages/%5Bsystem%5D/data-644e4280b4c86fe0.js" defer=""></script><script src="/_next/static/YpQ-I4VL-aEdQrM5uN7_3/_buildManifest.js" defer=""></script><script src="/_next/static/YpQ-I4VL-aEdQrM5uN7_3/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/logo-cream.svg"/><div id="__next"><div style="height:100vh;overflow:auto"><div class="Studio_page__X6enu"><header class="Studio_topBar__OlLt6"><a class="Studio_logoLink__Hv20q" aria-label="Kaizen home" href="/"><img src="/logo-cream.svg" alt="" class="Studio_topLogo__YEKp4"/></a><div class="Studio_systemSlot__5m3MM"><label class="SystemSelector_wrapper__ERtiP"><span class="SystemSelector_label__4i0LZ">System</span><select class="SystemSelector_select__NXXNb"><option value="" disabled="" selected="">Choose</option></select></label></div><nav class="Studio_surfaceNav__RKZjS" aria-label="Kaizen surfaces"><span class="Studio_surfaceLink__ivMXp Studio_surfaceLinkDisabled__gfVYR">Data</span><span class="Studio_surfaceLink__ivMXp Studio_surfaceLinkDisabled__gfVYR">Benchmarks</span><span class="Studio_surfaceLink__ivMXp Studio_surfaceLinkDisabled__gfVYR">Ideas</span><span class="Studio_surfaceLink__ivMXp Studio_surfaceLinkDisabled__gfVYR">Experiments</span></nav><div></div></header><main class="Studio_content__LELHT"><div class="Studio_emptyState__dwICN"><img src="/logo-cream.svg" alt="Kaizen" class="Studio_emptyLogo__ehso4"/><h1 class="Studio_emptyTitle__ByiEP">Kaizen</h1><p class="Studio_emptyCopy__NP7hT">Select a system to inspect its data, benchmarks, ideas, and experiments.</p><span class="Studio_emptyMeta__Bsrtp">0<!-- --> system<!-- -->s</span></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/[system]/data","query":{},"buildId":"YpQ-I4VL-aEdQrM5uN7_3","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +0,0 @@
1
- {"version":1,"files":["../../webpack-runtime.js","../../chunks/825.js","../../chunks/916.js","../../chunks/215.js","../../chunks/785.js","../../chunks/946.js","../../chunks/715.js","../../../../../shared/linear-ideas.js","../../../../../package.json","../../../../../../../package.json"]}
@@ -1 +0,0 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Kaizen</title><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png"/><link rel="icon" type="image/png" sizes="64x64" href="/favicon-64.png"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><link rel="preload" href="/_next/static/css/1224a99c5dfac9b3.css" as="style"/><link rel="preload" href="/_next/static/css/b18a6732b96168e1.css" as="style"/><link rel="stylesheet" href="/_next/static/css/1224a99c5dfac9b3.css" data-n-g=""/><link rel="stylesheet" href="/_next/static/css/b18a6732b96168e1.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-8c7966d82a2912f0.js" defer=""></script><script src="/_next/static/chunks/framework-7089c270fe56b51f.js" defer=""></script><script src="/_next/static/chunks/main-7ac7f96d288497aa.js" defer=""></script><script src="/_next/static/chunks/pages/_app-40b8f71fde4e6347.js" defer=""></script><script src="/_next/static/chunks/431-43358ce3c29e5e1b.js" defer=""></script><script src="/_next/static/chunks/673-ed4be46027ae7a37.js" defer=""></script><script src="/_next/static/chunks/pages/%5Bsystem%5D/experiments-42f31600c2bb47ad.js" defer=""></script><script src="/_next/static/YpQ-I4VL-aEdQrM5uN7_3/_buildManifest.js" defer=""></script><script src="/_next/static/YpQ-I4VL-aEdQrM5uN7_3/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/logo-cream.svg"/><div id="__next"><div style="height:100vh;overflow:auto"><div class="Studio_page__X6enu"><header class="Studio_topBar__OlLt6"><a class="Studio_logoLink__Hv20q" aria-label="Kaizen home" href="/"><img src="/logo-cream.svg" alt="" class="Studio_topLogo__YEKp4"/></a><div class="Studio_systemSlot__5m3MM"><label class="SystemSelector_wrapper__ERtiP"><span class="SystemSelector_label__4i0LZ">System</span><select class="SystemSelector_select__NXXNb"><option value="" disabled="" selected="">Choose</option></select></label></div><nav class="Studio_surfaceNav__RKZjS" aria-label="Kaizen surfaces"><span class="Studio_surfaceLink__ivMXp Studio_surfaceLinkDisabled__gfVYR">Data</span><span class="Studio_surfaceLink__ivMXp Studio_surfaceLinkDisabled__gfVYR">Benchmarks</span><span class="Studio_surfaceLink__ivMXp Studio_surfaceLinkDisabled__gfVYR">Ideas</span><span class="Studio_surfaceLink__ivMXp Studio_surfaceLinkDisabled__gfVYR">Experiments</span></nav><div></div></header><main class="Studio_content__LELHT"><div class="Studio_emptyState__dwICN"><img src="/logo-cream.svg" alt="Kaizen" class="Studio_emptyLogo__ehso4"/><h1 class="Studio_emptyTitle__ByiEP">Kaizen</h1><p class="Studio_emptyCopy__NP7hT">Select a system to inspect its data, benchmarks, ideas, and experiments.</p><span class="Studio_emptyMeta__Bsrtp">0<!-- --> system<!-- -->s</span></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/[system]/experiments","query":{},"buildId":"YpQ-I4VL-aEdQrM5uN7_3","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +0,0 @@
1
- {"version":1,"files":["../../webpack-runtime.js","../../chunks/825.js","../../chunks/916.js","../../chunks/215.js","../../chunks/785.js","../../chunks/946.js","../../chunks/715.js","../../../../../shared/linear-ideas.js","../../../../../package.json","../../../../../../../package.json"]}
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST=function(s,e,t,a,c,r){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:null,bitArray:[]},__routerFilterDynamic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:null,bitArray:[]},"/":[s,e,t,"static/chunks/pages/index-1d8b6719f49e4ae0.js"],"/_error":["static/chunks/pages/_error-b69380d1599ed4ba.js"],"/[system]":["static/chunks/pages/[system]-adf7b3ca903bcc42.js"],"/[system]/benchmarks":[s,e,t,"static/chunks/pages/[system]/benchmarks-559dc9df52db3af4.js"],"/[system]/data":[s,e,t,"static/chunks/pages/[system]/data-644e4280b4c86fe0.js"],"/[system]/eval":[s,e,t,"static/chunks/pages/[system]/eval-3c911ea8744631fd.js"],"/[system]/experiments":[s,e,t,"static/chunks/pages/[system]/experiments-42f31600c2bb47ad.js"],"/[system]/ideas":[s,e,t,"static/chunks/pages/[system]/ideas-6829a271003150a9.js"],sortedPages:["/","/_app","/_error","/[system]","/[system]/benchmarks","/[system]/data","/[system]/eval","/[system]/experiments","/[system]/ideas"]}}("static/chunks/431-43358ce3c29e5e1b.js","static/css/b18a6732b96168e1.css","static/chunks/673-ed4be46027ae7a37.js",0,0,0),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1,6 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[673],{684:e=>{e.exports={page:"Studio_page__X6enu",topBar:"Studio_topBar__OlLt6",logoLink:"Studio_logoLink__Hv20q",topLogo:"Studio_topLogo__YEKp4",systemSlot:"Studio_systemSlot__5m3MM",surfaceNav:"Studio_surfaceNav__RKZjS",surfaceLink:"Studio_surfaceLink__ivMXp",surfaceLinkActive:"Studio_surfaceLinkActive__Der5b",surfaceLinkDisabled:"Studio_surfaceLinkDisabled__gfVYR",statusPill:"Studio_statusPill__m2ERk",content:"Studio_content__LELHT",surface:"Studio_surface__lxZ_I",surfaceBanner:"Studio_surfaceBanner__UNvfB",surfaceBannerText:"Studio_surfaceBannerText__6jNss",surfaceBannerTitle:"Studio_surfaceBannerTitle__vXJox",surfaceBannerCopy:"Studio_surfaceBannerCopy__Abpvv",sourceChip:"Studio_sourceChip___xMTP",sourceChip_code:"Studio_sourceChip_code__DPzDj",sourceChip_langfuse:"Studio_sourceChip_langfuse__h6LSy",sourceChip_linear:"Studio_sourceChip_linear__9NNQ5",sourceChip_local:"Studio_sourceChip_local__3Ws2K",sourceLogo:"Studio_sourceLogo__iWmOz",sourceSvgIcon:"Studio_sourceSvgIcon__dpcyH",provenanceLine:"Studio_provenanceLine__a5uDd",inlineSourceValue:"Studio_inlineSourceValue__WMOb9",syncStatus:"Studio_syncStatus__exlkz",syncStatusLabel:"Studio_syncStatusLabel__C5cmS",iconButton:"Studio_iconButton__aVxFx",dataLayout:"Studio_dataLayout__RTqFZ",experimentsLayout:"Studio_experimentsLayout__dJ9_W",dataNav:"Studio_dataNav__Hhqcz",experimentNav:"Studio_experimentNav__pUm9S",sidebarResizeHandle:"Studio_sidebarResizeHandle__Bfcoi",experimentsMain:"Studio_experimentsMain__8IYj4",dataNavItem:"Studio_dataNavItem__rzaJQ",dataNavGroupItem:"Studio_dataNavGroupItem__0bfKJ",dataNavItemText:"Studio_dataNavItemText__nSadp",dataNavItemMeta:"Studio_dataNavItemMeta__PEhqv",experimentNavItem:"Studio_experimentNavItem__VrdaI",dataNavEmpty:"Studio_dataNavEmpty__sffpq",dataNavItemActive:"Studio_dataNavItemActive__TANbd",dataMain:"Studio_dataMain__rSYxU",surfaceToolbar:"Studio_surfaceToolbar__ayM6U",surfaceTitle:"Studio_surfaceTitle__7SjZP",surfaceSubtitle:"Studio_surfaceSubtitle__i6YB6",inlineSelector:"Studio_inlineSelector__er_h_",inlineSelectorLabel:"Studio_inlineSelectorLabel__T4g6q",filterBar:"Studio_filterBar__I6G_F",select:"Studio_select__rbQ0i",primaryButton:"Studio_primaryButton__t0Otf",secondaryButton:"Studio_secondaryButton__gEhyV",dangerButton:"Studio_dangerButton__9Bclj",splitSurface:"Studio_splitSurface__v2lGr",listPanel:"Studio_listPanel__KQbqx",listPanelEmpty:"Studio_listPanelEmpty__Ofh2D",detailPanel:"Studio_detailPanel__upjwv",errorPanel:"Studio_errorPanel__OFovk",loadingPanel:"Studio_loadingPanel__VwGMY",emptyPanel:"Studio_emptyPanel__nqsJ1",listRow:"Studio_listRow__NObDS",listRowSelected:"Studio_listRowSelected__v7gF6",listRowTitle:"Studio_listRowTitle__Dg_xF",listRowMeta:"Studio_listRowMeta__fmtZx",detailHeader:"Studio_detailHeader__an_N2",detailTitle:"Studio_detailTitle__H8HXN",detailMeta:"Studio_detailMeta__F__Kq",mutedText:"Studio_mutedText__gxlbZ",detailLink:"Studio_detailLink__QdlV6",detailGrid:"Studio_detailGrid__eKjPQ",jsonBlock:"Studio_jsonBlock__V4yWY",jsonTitle:"Studio_jsonTitle__4rJZO",sectionTitle:"Studio_sectionTitle__AgJZy",jsonPre:"Studio_jsonPre__NT0BZ",traceSection:"Studio_traceSection__7pMTX",traceHeader:"Studio_traceHeader__Ulrn7",traceName:"Studio_traceName__YsChW",tagRow:"Studio_tagRow__Prgun",tagPill:"Studio_tagPill__TRnnW",successPanel:"Studio_successPanel__03cvQ",evalDefinitionGrid:"Studio_evalDefinitionGrid__YMID0",evalDefinitionCell:"Studio_evalDefinitionCell__wS4ZE",evalDefinitionCode:"Studio_evalDefinitionCode___J0aO",evalHistorySection:"Studio_evalHistorySection__e_91j",evalSectionHeader:"Studio_evalSectionHeader___IiLV",evalSummaryTable:"Studio_evalSummaryTable__gZ5vh",evalSummaryHeader:"Studio_evalSummaryHeader__ku_ov",evalSummaryRow:"Studio_evalSummaryRow__KtPSR",evalSummaryPrimary:"Studio_evalSummaryPrimary__VAArE",evalSummaryMeta:"Studio_evalSummaryMeta__RgcSF",setupBanner:"Studio_setupBanner__rn3R6",setupTitle:"Studio_setupTitle__rrPH_",setupCopy:"Studio_setupCopy__InFUm",setupHeader:"Studio_setupHeader__0z51Y",setupState:"Studio_setupState__u13N3",setupGrid:"Studio_setupGrid__43Ac0",setupBlock:"Studio_setupBlock__pXdLU",setupBlockTitle:"Studio_setupBlockTitle__HS_1S",setupCode:"Studio_setupCode__3AADb",setupLookup:"Studio_setupLookup__S7xvC",setupDetail:"Studio_setupDetail__BYnnc",setupLookupLabel:"Studio_setupLookupLabel__OOHGt",ideaMetaGrid:"Studio_ideaMetaGrid__QA5ZP",metaCell:"Studio_metaCell__lTOia",metaLabel:"Studio_metaLabel__orMyw",metaValue:"Studio_metaValue__wPOIw",descriptionBlock:"Studio_descriptionBlock__RgZHz",formRow:"Studio_formRow__CkHSQ",formLabel:"Studio_formLabel__pObCQ",textInput:"Studio_textInput__9WjCF",textArea:"Studio_textArea__yi_Lm",textAreaLarge:"Studio_textAreaLarge__20NQc",actionRow:"Studio_actionRow__0pQf0",actionFooter:"Studio_actionFooter__wFiYP",emptyState:"Studio_emptyState__dwICN",emptyLogo:"Studio_emptyLogo__ehso4",emptyTitle:"Studio_emptyTitle__ByiEP",emptyCopy:"Studio_emptyCopy__NP7hT",emptyMeta:"Studio_emptyMeta__Bsrtp",emptyPanelCopy:"Studio_emptyPanelCopy__EExQw",emptyPanelTitle:"Studio_emptyPanelTitle__g31eb",runTracesOverlay:"Studio_runTracesOverlay__Obe3a",runTracesPanel:"Studio_runTracesPanel__nh_gK",runTracesPanelHeader:"Studio_runTracesPanelHeader__gJlWU",runTracesPanelTitle:"Studio_runTracesPanelTitle__gUr1M",runTracesPanelClose:"Studio_runTracesPanelClose__SV_Tp",runTracesScores:"Studio_runTracesScores__OEEiI",runTracesScoreChip:"Studio_runTracesScoreChip__lujZE",runTracesScoreLabel:"Studio_runTracesScoreLabel__rb3rj",runTracesScoreValue:"Studio_runTracesScoreValue__aWrWN",runTracesDetail:"Studio_runTracesDetail__vStOu",runTracesTableWrap:"Studio_runTracesTableWrap__V4tCd",runTracesTable:"Studio_runTracesTable__FzXJs",runTracesTableRowClickable:"Studio_runTracesTableRowClickable__sdAb4",runTracesTableId:"Studio_runTracesTableId__zVZBX",runTracesTraceLink:"Studio_runTracesTraceLink___ot6u",backButton:"Studio_backButton__sPEo0"}},7810:e=>{e.exports={wrapper:"SystemSelector_wrapper__ERtiP",label:"SystemSelector_label__4i0LZ",select:"SystemSelector_select__NXXNb"}},8673:(e,t,a)=>{"use strict";a.d(t,{W:()=>eJ});var s=a(144),r=a(4540),n=a(6584),l=a(6048),i=a.n(l),o=a(684),c=a.n(o);let d={code:"Owned by system source code. Agent changes edit the customer repo.",langfuse:"Owned by Langfuse. Agent changes use the Langfuse API.",linear:"Owned by Linear. Agent changes use the Linear API.",local:"Owned by local Kaizen state on this machine."};function u({source:e}){return(0,s.jsx)("span",{className:`${c().sourceChip} ${c()[`sourceChip_${e}`]}`,title:d[e],"aria-label":d[e],children:(0,s.jsx)(m,{source:e})})}function m({source:e}){return"langfuse"===e?(0,s.jsx)("img",{src:"/source-icons/langfuse.svg",alt:"",className:c().sourceLogo}):"linear"===e?(0,s.jsx)("img",{src:"/source-icons/linear.svg",alt:"",className:c().sourceLogo}):"local"===e?(0,s.jsx)(p,{}):(0,s.jsx)(_,{})}function _(){return(0,s.jsxs)("svg",{className:c().sourceSvgIcon,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,s.jsx)("path",{d:"M8.5 7L3.5 12L8.5 17",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square",strokeLinejoin:"miter"}),(0,s.jsx)("path",{d:"M15.5 7L20.5 12L15.5 17",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square",strokeLinejoin:"miter"})]})}function p(){return(0,s.jsxs)("svg",{className:c().sourceSvgIcon,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,s.jsx)("path",{d:"M5 4H17L20 7V20H5V4Z",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"miter"}),(0,s.jsx)("path",{d:"M8 4V10H16V4",stroke:"currentColor",strokeWidth:"2"}),(0,s.jsx)("path",{d:"M8 16H16",stroke:"currentColor",strokeWidth:"2"})]})}var h=a(7810),f=a.n(h);function x(){let{systems:e,activeSystemId:t,setActiveSystemId:a}=(0,n.V)(),r=e.find(e=>e.id===t);return(0,s.jsxs)("label",{className:f().wrapper,children:[(0,s.jsx)("span",{className:f().label,children:"System"}),(0,s.jsxs)("select",{className:f().select,value:t??"",onChange:e=>a(e.target.value||null),children:[!t&&(0,s.jsx)("option",{value:"",disabled:!0,children:"Choose"}),t&&!r&&(0,s.jsx)("option",{value:t,children:"Loading system..."}),e.map(e=>(0,s.jsx)("option",{value:e.id,children:e.name},e.id))]}),t&&(0,s.jsx)(u,{source:"code"})]})}let j=[{id:"data",label:"Data"},{id:"benchmarks",label:"Benchmarks"},{id:"ideas",label:"Ideas"},{id:"experiments",label:"Experiments"}];function g({activeSystem:e,activeSurface:t,children:a}){return(0,s.jsxs)("div",{className:c().page,children:[(0,s.jsxs)("header",{className:c().topBar,children:[(0,s.jsx)(i(),{href:"/",className:c().logoLink,"aria-label":"Kaizen home",children:(0,s.jsx)("img",{src:"/logo-cream.svg",alt:"",className:c().topLogo})}),(0,s.jsx)("div",{className:c().systemSlot,children:(0,s.jsx)(x,{})}),(0,s.jsx)("nav",{className:c().surfaceNav,"aria-label":"Kaizen surfaces",children:j.map(a=>e?(0,s.jsx)(i(),{href:`/${e.id}/${a.id}`,className:`${c().surfaceLink} ${t===a.id?c().surfaceLinkActive:""}`,children:a.label},a.id):(0,s.jsx)("span",{className:`${c().surfaceLink} ${c().surfaceLinkDisabled}`,children:a.label},a.id))}),(0,s.jsx)("div",{})]}),(0,s.jsx)("main",{className:c().content,children:a})]})}function v(e){let[t,a]=(0,r.useState)([]),[s,n]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let t=null,s=null,r=null,l=(t=[])=>{a(e?t.filter(t=>t.system===e):t)},i=()=>{fetch("/api/runs").then(e=>e.json()).then(e=>l(e.runs??[])).catch(()=>{})},o=()=>{(t=new EventSource("/api/runs")).onmessage=e=>{l(JSON.parse(e.data).runs??[]),n(!0),s&&(clearInterval(s),s=null)},t.onerror=()=>{n(!1),t?.close(),t=null,s||(s=setInterval(i,5e3),i()),r||(r=setTimeout(()=>{r=null,o()},1e4))}};return o(),()=>{t?.close(),s&&clearInterval(s),r&&clearTimeout(r)}},[e]),{runs:t,connected:s}}function N(e){if(!e)return"";let t=new Date(e);return Number.isNaN(t.getTime())?e:new Intl.DateTimeFormat(void 0,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(t)}var b=a(2390);b.Ik({runId:b.Yj(),runName:b.Yj(),status:b.k5(["running","complete","crashed","aborted"]),worktreeBranch:b.Yj(),parentId:b.Yj().nullable(),system:b.Yj(),progress:b.Ik({completed:b.ai(),total:b.ai(),lastHeartbeat:b.Yj()}).optional(),metrics:b.g1(b.Yj(),b.ai()),totalItems:b.ai().nullable(),langfuseRunId:b.Yj().optional(),linearIssue:b.Ik({id:b.Yj(),url:b.Yj()}).optional(),evalConfig:b.Ik({dataset:b.Yj(),evalVersion:b.ai().optional(),datasetItemCount:b.ai(),judge:b.Ik({rubric:b.Yj(),rubricHash:b.Yj(),model:b.Yj(),temperature:b.ai()}).optional()}).optional(),startedAt:b.Yj(),updatedAt:b.Yj()});let y={actionAccuracy:{label:"Action Accuracy",format:"percent"},parameterExtraction:{label:"Param Extraction",format:"percent"},clarificationAppropriateness:{label:"Clarification",format:"percent"},multiActionDetection:{label:"Multi-Action",format:"percent"},f1:{label:"F1",format:"percent"},f2:{label:"F2",format:"percent"},precision:{label:"Precision",format:"percent"},recall:{label:"Recall",format:"percent"},cost_per_item:{label:"Cost / Item",format:"raw"},avg_latency_s:{label:"Avg Latency (s)",format:"raw"},true_positives:{label:"TP",format:"integer"},false_positives:{label:"FP",format:"integer"},false_negatives:{label:"FN",format:"integer"},total_clis_scored:{label:"CLIs Scored",format:"integer"},items_with_metrics:{label:"Items w/ Metrics",format:"integer"},timeouts:{label:"Timeouts",format:"integer"},judge_quality:{label:"Judge Quality",format:"percent"},judge_quality_chartNotes:{label:"Quality: Chart Notes",format:"percent"},judge_quality_followUp:{label:"Quality: Follow-Up",format:"percent"}};function S(e){return y[e]?.label??e.replace(/[_-]+/g," ").replace(/([A-Z])/g," $1").replace(/^./,e=>e.toUpperCase()).trim()}function T(e,t){let a=y[e];return a?.format==="integer"?Math.round(t).toLocaleString():a?.format==="raw"?t.toFixed(2):a?.format==="percent"?(100*t).toFixed(1)+"%":t>1?Math.round(t).toLocaleString():(100*t).toFixed(1)+"%"}function R(e,t){if(!t)return null;if(t in e.metrics)return e.metrics[t];if("f2"===t&&"precision"in e.metrics&&"recall"in e.metrics){var a,s;return(a=e.metrics.precision)+(s=e.metrics.recall)===0?0:5*a*s/(4*a+s)}return null}function k(e,t){var a,s;let r=e.evalConfig?.dataset??"unknown dataset",n="number"==typeof e.evalConfig?.evalVersion?String(e.evalConfig.evalVersion):"unknown",l=(a=e,s=t,a.evalConfig?.judge?.rubric??s??"unknown eval"),i=`Eval v${n} \xb7 ${S(l)}`;return{key:`${r}::${n}::${l}`,dataset:r,datasetLabel:I(r),evalVersion:n,evalMetric:l,evalLabel:i}}function I(e){return e.replace(/--/g," ").replace(/[-_]+/g," ").replace(/\bgt\b/gi,"Ground Truth").replace(/\bv(\d+)\b/gi,"v$1").replace(/\b\w/g,e=>e.toUpperCase()).trim()}function w({title:e,children:t,source:a,syncLabel:r,onRefresh:n,refreshing:l}){return(0,s.jsxs)("section",{className:c().surfaceBanner,children:[(0,s.jsxs)("div",{className:c().surfaceBannerText,children:[(0,s.jsxs)("div",{className:c().surfaceBannerTitle,children:[(0,s.jsx)("span",{children:e}),a&&(0,s.jsx)(u,{source:a})]}),(0,s.jsx)("div",{className:c().surfaceBannerCopy,children:t})]}),(null!=r||null!=n)&&(0,s.jsx)(C,{label:r,onRefresh:n,refreshing:l})]})}function C({label:e,onRefresh:t,refreshing:a}){return(0,s.jsxs)("div",{className:c().syncStatus,children:[null!=e&&(0,s.jsx)("span",{className:c().syncStatusLabel,children:e}),t&&(0,s.jsx)("button",{className:c().iconButton,onClick:t,title:"Refresh","aria-label":"Refresh","aria-busy":a?"true":"false",children:(0,s.jsx)("span",{"aria-hidden":"true",children:"↻"})})]})}function L({system:e}){var t;let{runs:a}=v(e.id),n=e.primaryMetric??null,l=(0,r.useMemo)(()=>(function(e,t){let a=new Map;for(let i of e){var s,r,n,l;let e=k(i,t),o=a.get(e.key);o?(o.count++,s=o.itemCount,r=i.totalItems,o.itemCount=null===s?r:null===r?s:Math.max(s,r),n=o.latestAt,l=i.updatedAt,o.latestAt=n?Date.parse(l)>Date.parse(n)?l:n:l):a.set(e.key,{...e,count:1,itemCount:i.totalItems,latestAt:i.updatedAt})}return[...a.values()].sort((e,t)=>(t.latestAt??"").localeCompare(e.latestAt??""))})(a,n),[n,a]);return(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsx)(w,{title:"Benchmarks",source:"code",syncLabel:"Live updates",children:"A benchmark is the fixed dataset plus scoring setup for this system. The current benchmark comes from the system file, and the rows below show which benchmarks have actually been used by local experiments."}),(0,s.jsxs)("section",{className:c().detailPanel,children:[(0,s.jsxs)("div",{className:c().detailHeader,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:c().detailTitle,children:"Current benchmark"}),(0,s.jsx)("div",{className:c().detailMeta,children:"This is what the next Kaizen run will use unless a coding agent changes the system file."})]}),(0,s.jsx)(u,{source:"code"})]}),(0,s.jsxs)("div",{className:c().evalDefinitionGrid,children:[(0,s.jsx)(P,{label:"Dataset",value:e.evalDataset?I(e.evalDataset):"Not configured",detail:e.evalDataset}),(0,s.jsx)(P,{label:"Eval version",value:null===e.evalVersion?"Not configured":`v${e.evalVersion}`}),(0,s.jsx)(P,{label:"Primary metric",value:e.primaryMetric?S(e.primaryMetric):"Not configured",detail:e.primaryMetric}),(0,s.jsx)(P,{label:"Style",value:"ground_truth"===(t=e.evalType)?"Ground truth":"llm_judge"===t?"LLM judge":"human"===t?"Human review":"policy"===t?"Policy":"Not configured"})]})]}),(0,s.jsxs)("section",{className:c().evalHistorySection,children:[(0,s.jsxs)("div",{className:c().evalSectionHeader,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:c().detailTitle,children:"Benchmarks used in experiments"}),(0,s.jsx)("div",{className:c().detailMeta,children:"Each row is a separate comparison group."})]}),(0,s.jsx)(u,{source:"local"})]}),0===l.length?(0,s.jsx)("div",{className:c().emptyPanel,children:"No benchmarks yet. Run an experiment to create one."}):(0,s.jsxs)("div",{className:c().evalSummaryTable,children:[(0,s.jsxs)("div",{className:c().evalSummaryHeader,children:[(0,s.jsx)("span",{children:"Dataset"}),(0,s.jsx)("span",{children:"Scoring"}),(0,s.jsx)("span",{children:"Runs"}),(0,s.jsx)("span",{children:"Items"}),(0,s.jsx)("span",{children:"Latest"})]}),l.map(e=>(0,s.jsxs)("div",{className:c().evalSummaryRow,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:c().evalSummaryPrimary,children:e.datasetLabel}),(0,s.jsx)("span",{className:c().evalSummaryMeta,children:e.dataset})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:c().evalSummaryPrimary,children:e.evalLabel}),(0,s.jsx)("span",{className:c().evalSummaryMeta,children:S(e.evalMetric)})]}),(0,s.jsx)("span",{children:e.count}),(0,s.jsx)("span",{children:e.itemCount??"?"}),(0,s.jsx)("span",{children:e.latestAt?N(e.latestAt):"-"})]},e.key))]})]})]})}function P({label:e,value:t,detail:a}){return(0,s.jsxs)("div",{className:c().evalDefinitionCell,children:[(0,s.jsx)("span",{className:c().metaLabel,children:e}),(0,s.jsx)("span",{className:c().metaValue,children:t}),a&&(0,s.jsx)("code",{className:c().evalDefinitionCode,children:a})]})}Object.keys(y);let M=new Map;function A(e){return e.replace(/(\w+)\s+as\s+(\w+)/g,"$1: $2")}function E({trace:e,systemId:t,hasCustomRenderer:n,datasetItem:l,loading:i,error:o}){let{Component:d,loading:u,error:m}=function(e,t){let[s,n]=(0,r.useState)(()=>{if(!t)return{Component:null,loading:!1,error:null};let a=M.get(e);return a?{Component:a,loading:!1,error:null}:{Component:null,loading:!0,error:null}}),l=(0,r.useRef)(e);if(l.current!==e)if(l.current=e,t){let t=M.get(e);t?n({Component:t,loading:!1,error:null}):n({Component:null,loading:!0,error:null})}else n({Component:null,loading:!1,error:null});let i=(0,r.useRef)(e);i.current=e;let o=(0,r.useCallback)(async()=>{if(!t)return void n({Component:null,loading:!1,error:null});let s=M.get(e);if(s)return void n({Component:s,loading:!1,error:null});n(e=>({...e,loading:!0,error:null}));try{let t=await fetch(`/api/trace-renderer?systemId=${encodeURIComponent(e)}`);if(!t.ok){let a=await t.json().catch(()=>({})),s="string"==typeof a.error?a.error:`HTTP ${t.status}`;i.current===e&&n({Component:null,loading:!1,error:s});return}let s=await t.text(),r=function(e){let t=e.replace(/import\s*\{([^}]*)\}\s*from\s*["']react["']\s*;?/g,(e,t)=>`const {${A(t)}} = __kaizenReact;`).replace(/import\s+React\s*(?:,\s*\{([^}]*)\})?\s*from\s*["']react["']\s*;?/g,(e,t)=>{let a="const React = __kaizenReact;";return t?`${a}
2
- const {${A(t)}} = __kaizenReact;`:a}).replace(/import\s*\*\s*as\s+(\w+)\s+from\s*["']react["']\s*;?/g,"const $1 = __kaizenReact;").replace(/import\s*\{([^}]*)\}\s*from\s*["']react\/jsx-runtime["']\s*;?/g,(e,t)=>`const {${A(t)}} = __kaizenJsxRuntime;`).replace(/export\s*\{[^}]*\}\s*from\s*["'][^"']*["']\s*;?/g,"").replace(/export\s*\{([^}]*)\}\s*;?/g,(e,t)=>{let a=t.match(/(\w+)\s+as\s+default/);return a?`__exports.default = ${a[1]};`:""}).replace(/export\s*default\s+(async\s+)?function\s+(\w+)/g,(e,t,a)=>`__exports.default = ${a}; ${t??""}function ${a}`).replace(/export\s*default\s+/g,"__exports.default = ").replace(/export\s+(function|const|let|var|class)\s/g,"$1 "),s=a(4540),r=a(144),n={};if(Function("__kaizenReact","__kaizenJsxRuntime","__exports",`${t}
3
- if (typeof TraceRenderer !== 'undefined' && !__exports.default) __exports.default = TraceRenderer;
4
- `)(s,r,n),"function"!=typeof n.default)throw Error("Custom trace renderer must export a default component named TraceRenderer");return n.default}(s);i.current===e&&(M.set(e,r),n({Component:r,loading:!1,error:null}))}catch(t){i.current===e&&n({Component:null,loading:!1,error:t instanceof Error?t.message:String(t)})}},[t,e]);return(0,r.useEffect)(()=>{o()},[o]),(0,r.useEffect)(()=>{if(!t)return;let a=()=>{M.delete(e),o()};return window.addEventListener("focus",a),()=>window.removeEventListener("focus",a)},[t,o,e]),s}(t,n);return i?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading trace..."}):o?(0,s.jsx)("div",{className:c().errorPanel,children:o}):e?u?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading custom renderer..."}):m?(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:c().errorPanel,children:["Custom renderer error: ",m]}),(0,s.jsx)(B,{trace:e})]}):d?(0,s.jsx)(D,{fallback:(0,s.jsx)(B,{trace:e}),children:(0,s.jsx)(d,{trace:e,datasetItem:l})},e.id??e.name??""):(0,s.jsx)(B,{trace:e}):(0,s.jsx)("div",{className:c().mutedText,children:"No source trace linked."})}function B({trace:e}){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:c().traceHeader,children:[(0,s.jsx)("span",{className:c().traceName,children:e.name??e.id}),e.timestamp&&(0,s.jsx)("span",{className:c().detailMeta,children:e.timestamp})]}),e.tags&&e.tags.length>0&&(0,s.jsx)("div",{className:c().tagRow,children:e.tags.map(e=>(0,s.jsx)("span",{className:c().tagPill,children:e},e))}),(0,s.jsx)($,{title:"Trace metadata",value:e.metadata}),(0,s.jsxs)("div",{className:c().detailGrid,children:[(0,s.jsx)($,{title:"Trace input",value:e.input}),(0,s.jsx)($,{title:"Trace output",value:e.output})]})]})}function $({title:e,value:t}){var a;return(0,s.jsxs)("div",{className:c().jsonBlock,children:[(0,s.jsx)("div",{className:c().jsonTitle,children:e}),(0,s.jsx)("pre",{className:c().jsonPre,children:null==(a=t)?"(empty)":"string"==typeof a?a:JSON.stringify(a,null,2)})]})}class D extends r.Component{static getDerivedStateFromError(e){return{error:e}}render(){return this.state.error?(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:c().errorPanel,children:["Custom renderer crashed: ",this.state.error.message]}),this.props.fallback]}):this.props.children}constructor(...e){super(...e),this.state={error:null}}}function H({status:e,currentValues:t}){let a=[e.requiredEnvVars?.length?{title:"Required",values:e.requiredEnvVars}:null,e.missingEnvVars?.length?{title:"Missing",values:e.missingEnvVars}:null,e.optionalEnvVars?.length?{title:"Optional",values:e.optionalEnvVars}:null,e.expectedEnvFile?{title:"Put values here",values:[e.expectedEnvFile]}:null,t?.length?{title:"Current query",values:t}:null].filter(V);return(0,s.jsxs)("div",{className:c().setupBanner,children:[(0,s.jsxs)("div",{className:c().setupHeader,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:c().setupTitle,children:e.message}),(0,s.jsx)("div",{className:c().setupCopy,children:e.remediation})]}),(0,s.jsx)("span",{className:c().setupState,children:e.state})]}),a.length>0&&(0,s.jsx)("div",{className:c().setupGrid,children:a.map(e=>(0,s.jsx)(F,{title:e.title,values:e.values},`${e.title}:${e.values.join(",")}`))}),e.lookup&&e.lookup.length>0&&(0,s.jsxs)("div",{className:c().setupLookup,children:[(0,s.jsx)("span",{className:c().setupLookupLabel,children:"Kaizen checks"}),e.lookup.join(" -> ")]}),e.detail&&(0,s.jsx)("div",{className:c().setupDetail,children:e.detail})]})}function F({title:e,values:t}){return(0,s.jsxs)("div",{className:c().setupBlock,children:[(0,s.jsx)("span",{className:c().setupBlockTitle,children:e}),t.map(e=>(0,s.jsx)("code",{className:c().setupCode,children:e},e))]})}function V(e){return null!==e}function O(e=new Date){return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(e)}function z(e,t){var a;let s=(a=t)%6e4==0?`${a/6e4}m`:a%1e3==0?`${a/1e3}s`:`${a}ms`;return e?`Updated ${e} \xb7 Every ${s}`:`Every ${s}`}function K({system:e}){let[t,a]=(0,r.useState)("datasets"),[n,l]=(0,r.useState)([]),[i,o]=(0,r.useState)({name:null,systemId:null}),[d,u]=(0,r.useState)([]),[m,_]=(0,r.useState)(null),[p,h]=(0,r.useState)(null),[f,x]=(0,r.useState)(!1),[j,g]=(0,r.useState)(null),[v,N]=(0,r.useState)(!1),[b,y]=(0,r.useState)(!1),[S,T]=(0,r.useState)(!1),[R,k]=(0,r.useState)(null),[I,C]=(0,r.useState)(null),[L,P]=(0,r.useState)(null),[M,A]=(0,r.useState)(null),[E,B]=(0,r.useState)(!1),[$,D]=(0,r.useState)(null),F=e.evalDataset,V=(0,r.useRef)(!1),K=(0,r.useRef)(e.id),q=(0,r.useRef)(F),Z=(0,r.useRef)(async()=>{}),W=(0,r.useRef)(i);K.current=e.id,q.current=F,W.current=i;let J=i.name,X=i.systemId,et=(0,r.useCallback)(()=>{a("datasets")},[]),en=(0,r.useCallback)(()=>{a("traces")},[]),el=(0,r.useCallback)(()=>{a("add")},[]),ei=(0,r.useCallback)(()=>{Z.current()},[]),ec=(0,r.useCallback)(e=>{o({name:e,systemId:e?K.current:null}),u([]),_(null),h(null),P(null),A(null)},[]),eu=(0,r.useCallback)(async()=>{let t=e.id;x(!0);try{var a,s,r,n;let e=await fetch(`/api/langfuse-datasets?systemId=${encodeURIComponent(t)}`),i=(a=await e.json(),eo(a)?{data:Array.isArray(a.data)?a.data.map(es).filter(ed):void 0,connection:ea(a.connection),error:em(a.error)}:{});if(K.current===t&&C(i.connection??null),!e.ok)throw Error(i.error??`HTTP ${e.status}`);if(K.current!==t)return null;let c=i.data??[],d=W.current,m=(s=d.systemId===t?d.name:null,r=c,n=q.current,s&&r.some(e=>e.name===s)?s:n&&r.some(e=>e.name===n)?n:r[0]?.name??null);return l(c),g(null),D(O()),o({name:m,systemId:m?t:null}),0===c.length&&(u([]),_(null),h(null)),m}catch(e){if(K.current!==t)return null;return V.current||(l([]),o({name:null,systemId:null}),u([]),_(null),h(null)),g(e instanceof Error?e.message:String(e)),null}finally{K.current===t&&(V.current=!0,y(!0),x(!1))}},[e.id]),e_=(0,r.useCallback)(async(t=J)=>{if(!t)return null;let a=e.id;N(!0);try{var s;let e=await fetch(`/api/langfuse-dataset?dataset=${encodeURIComponent(t)}&systemId=${encodeURIComponent(a)}`),r=(s=await e.json(),eo(s)?{data:Array.isArray(s.data)?s.data.map(er).filter(ed):void 0,connection:ea(s.connection),error:em(s.error)}:{});if(K.current===a&&C(r.connection??null),!e.ok)throw Error(r.error??`HTTP ${e.status}`);if(K.current!==a)return null;let n=r.data??[],l=n.filter(ee);u(n),k(null),_(e=>e&&l.some(t=>t.id===e)?e:l[0]?.id??null);let i=l.map(Q).find(Boolean);return h(e=>e&&l.some(t=>Q(t)===e)?e:i??null),D(O()),n}catch(e){if(K.current!==a)return null;return k(e instanceof Error?e.message:String(e)),null}finally{K.current===a&&(T(!0),N(!1))}},[e.id,J]),ep=(0,r.useCallback)(async(e,t,a)=>{let s=W.current.name;if(!s)return P("Choose a dataset first."),!1;B(!0),P(null),A(null);try{var r;let n=await fetch("/api/langfuse-dataset-item",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,datasetName:s,systemId:K.current})}),l=(r=await n.json(),eo(r)?{data:er(r.data)??void 0,error:em(r.error)}:{});if(!n.ok)throw Error(l.error??`HTTP ${n.status}`);let i=await e_(s),o=l.data?.id??null;return a&&o&&i?.some(e=>e.id===o&&ee(e))&&_(o),A(t),!0}catch(e){return P(e instanceof Error?e.message:String(e)),!1}finally{B(!1)}},[e_]),eh=(0,r.useCallback)(async e=>{await ep({action:"add-from-trace",source:e.source,expectedOutput:e.expectedOutput,notes:e.notes},"Dataset item added.",!0)&&a("datasets")},[ep]),ef=(0,r.useCallback)(async e=>{await ep({action:"update",itemId:e.itemId,expectedOutput:e.expectedOutput,notes:e.notes},"Dataset item saved.",!0)},[ep]),ex=(0,r.useCallback)(async e=>{await ep({action:"archive",itemId:e},"Dataset item archived.",!1)},[ep]);(0,r.useEffect)(()=>{V.current=!1,l([]),y(!1),T(!1),o({name:null,systemId:null}),u([]),_(null),h(null),g(null),k(null),C(null),D(null),eu();let e=setInterval(()=>void eu(),6e4),t=()=>void eu();return window.addEventListener("focus",t),()=>{clearInterval(e),window.removeEventListener("focus",t)}},[F,eu,e.id]),(0,r.useEffect)(()=>{if(T(!1),!J||X!==e.id)return;e_(J);let t=setInterval(()=>void e_(J),15e3),a=()=>void e_(J);return window.addEventListener("focus",a),()=>{clearInterval(t),window.removeEventListener("focus",a)}},[e_,e.id,J,X]);let ej=(0,r.useMemo)(()=>d.filter(ee),[d]),eg=(0,r.useMemo)(()=>ej.find(e=>e.id===m)??ej[0]??null,[ej,m]),ev=(0,r.useMemo)(()=>{let e=new Map;for(let t of ej){let a=Q(t);a&&!e.has(a)&&e.set(a,t)}return[...e.entries()].map(([e,t])=>({traceId:e,item:t}))},[ej]),eN=p??ev[0]?.traceId??Q(eg);return Z.current=(0,r.useCallback)(async()=>{let t=await eu();t&&K.current===e.id&&await e_(t)},[eu,e_,e.id]),(0,s.jsxs)("div",{className:c().dataLayout,children:[(0,s.jsxs)("aside",{className:c().dataNav,children:[(0,s.jsx)("button",{className:`${c().dataNavItem} ${"datasets"===t?c().dataNavItemActive:""}`,onClick:et,children:"Datasets"}),(0,s.jsx)("button",{className:`${c().dataNavItem} ${"traces"===t?c().dataNavItemActive:""}`,onClick:en,children:"Traces"}),(0,s.jsx)("button",{className:`${c().dataNavItem} ${"add"===t?c().dataNavItemActive:""}`,onClick:el,children:"Add item"})]}),(0,s.jsxs)("section",{className:c().dataMain,children:[(0,s.jsx)(w,{title:"Langfuse data",source:"langfuse",syncLabel:z($,15e3),onRefresh:ei,refreshing:v||f,children:"This is the evaluation data for the selected system. Use Datasets to inspect golden examples, Traces to review the source calls behind those examples, and Add item to prepare new examples. The view updates automatically while open; Refresh pulls the latest now."}),I&&"connected"!==I.state&&(0,s.jsx)(H,{status:I}),"datasets"===t?(0,s.jsx)(G,{system:e,datasets:n,selectedDatasetName:J,configuredDatasetName:F,items:ej,selectedItem:eg,loading:f&&!b||v&&!S,datasetsError:j,error:R,mutationError:L,mutationMessage:M,mutating:E,onSelectDataset:ec,onSelect:_,onUpdateItem:ef,onArchiveItem:ex}):"traces"===t?(0,s.jsx)(U,{systemId:e.id,linkedTraces:ev,selectedTraceId:eN,onSelectTrace:h,hasCustomRenderer:!!e.traceRenderer,error:j??R}):(0,s.jsx)(Y,{system:e,datasetName:J,error:L,message:M,mutating:E,onAddItem:eh})]})]})}function G({system:e,datasets:t,selectedDatasetName:a,configuredDatasetName:n,items:l,selectedItem:i,loading:o,datasetsError:d,error:m,mutationError:_,mutationMessage:p,mutating:h,onSelectDataset:f,onSelect:x,onUpdateItem:j,onArchiveItem:g}){let v=(0,r.useCallback)(e=>{f(e.target.value?e.target.value:null)},[f]);return(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsx)("div",{className:c().surfaceToolbar,children:(0,s.jsxs)("div",{children:[(0,s.jsxs)("label",{className:c().inlineSelector,children:[(0,s.jsx)("span",{className:c().inlineSelectorLabel,children:"Dataset"}),(0,s.jsxs)("select",{className:c().select,value:a??"",onChange:v,disabled:0===t.length,children:[(0,s.jsx)("option",{value:"",disabled:!0,children:0===t.length?"No datasets available":"Select dataset"}),t.map(e=>(0,s.jsx)("option",{value:e.name,children:e.name},e.name))]})]}),n&&(0,s.jsxs)("div",{className:c().provenanceLine,children:[(0,s.jsx)("span",{children:"Default dataset"}),(0,s.jsx)("code",{children:n}),(0,s.jsx)(u,{source:"code"})]})]})}),d&&(0,s.jsx)("div",{className:c().errorPanel,children:d}),_&&(0,s.jsx)("div",{className:c().errorPanel,children:_}),p&&(0,s.jsx)("div",{className:c().successPanel,children:p}),o?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading Langfuse data..."}):a?m?(0,s.jsx)("div",{className:c().errorPanel,children:m}):(0,s.jsxs)("div",{className:c().splitSurface,children:[(0,s.jsx)(q,{items:l,selectedId:i?.id??null,onSelect:x}),(0,s.jsx)(W,{item:i,systemId:e.id,hasCustomRenderer:!!e.traceRenderer,datasetName:a,mutating:h,onUpdate:j,onArchive:g})]}):(0,s.jsxs)("div",{className:c().emptyPanel,children:[(0,s.jsx)("div",{className:c().emptyPanelTitle,children:0===t.length?"No Langfuse datasets found":"No Langfuse dataset selected"}),(0,s.jsx)("div",{className:c().emptyPanelCopy,children:0===t.length?"Kaizen did not find any datasets for this system.":"Choose a dataset to inspect its examples."})]})]})}function U({systemId:e,linkedTraces:t,selectedTraceId:a,onSelectTrace:r,hasCustomRenderer:n,error:l}){return(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsx)("div",{className:c().surfaceToolbar,children:(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:c().surfaceTitle,children:"Traces"}),(0,s.jsxs)("div",{className:c().surfaceSubtitle,children:[t.length," linked source trace",1===t.length?"":"s"]})]})}),l?(0,s.jsx)("div",{className:c().errorPanel,children:l}):(0,s.jsxs)("div",{className:c().splitSurface,children:[(0,s.jsx)(Z,{traces:t,selectedTraceId:a,onSelect:r}),(0,s.jsx)(J,{traceId:a,systemId:e,hasCustomRenderer:n})]})]})}function Y({system:e,datasetName:t,error:a,message:n,mutating:l,onAddItem:i}){let[o,d]=(0,r.useState)(""),[u,m]=(0,r.useState)(""),[_,p]=(0,r.useState)(""),h=(0,r.useCallback)(e=>{d(e.target.value)},[]),f=(0,r.useCallback)(e=>{m(e.target.value)},[]),x=(0,r.useCallback)(e=>{p(e.target.value)},[]),j=(0,r.useCallback)(e=>{e.preventDefault(),i({source:o,expectedOutput:et(u),notes:_})},[u,_,i,o]),g=!!(t&&o.trim()&&!l);return(0,s.jsxs)("form",{className:c().detailPanel,onSubmit:j,children:[(0,s.jsxs)("div",{className:c().detailHeader,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:c().detailTitle,children:"Add dataset item"}),(0,s.jsx)("div",{className:c().detailMeta,children:t??e.evalDataset??"No dataset selected"})]}),(0,s.jsx)("span",{className:c().statusPill,children:"Langfuse"})]}),a&&(0,s.jsx)("div",{className:c().errorPanel,children:a}),n&&(0,s.jsx)("div",{className:c().successPanel,children:n}),(0,s.jsxs)("div",{className:c().formRow,children:[(0,s.jsx)("label",{className:c().formLabel,htmlFor:"dataset-source",children:"Source trace"}),(0,s.jsx)("input",{id:"dataset-source",className:c().textInput,disabled:!t||l,placeholder:"Langfuse trace URL or trace ID",value:o,onChange:h}),(0,s.jsx)("div",{className:c().detailMeta,children:"Orbit URL lookup will be wired in a follow-up. For now, paste the Langfuse trace URL or trace ID for the call you want in the golden dataset."})]}),(0,s.jsxs)("div",{className:c().formRow,children:[(0,s.jsx)("label",{className:c().formLabel,htmlFor:"dataset-expected-output",children:"Expected output"}),(0,s.jsx)("textarea",{id:"dataset-expected-output",className:c().textArea,disabled:!t||l,placeholder:"Leave blank to use the trace output, or paste text/JSON ground truth.",value:u,onChange:f})]}),(0,s.jsxs)("div",{className:c().formRow,children:[(0,s.jsx)("label",{className:c().formLabel,htmlFor:"dataset-notes",children:"Notes"}),(0,s.jsx)("textarea",{id:"dataset-notes",className:c().textArea,disabled:!t||l,placeholder:"Why this belongs in the golden dataset.",value:_,onChange:x})]}),(0,s.jsx)("button",{className:c().secondaryButton,disabled:!g,children:l?"Adding...":"Add item"})]})}function q({items:e,selectedId:t,onSelect:a}){let n=(0,r.useCallback)(e=>{let t=el(e.target,"itemId");t&&a(t)},[a]);return 0===e.length?(0,s.jsx)("div",{className:c().listPanelEmpty,children:"No dataset items"}):(0,s.jsx)("aside",{className:c().listPanel,onClick:n,children:e.map((e,a)=>{let r=Q(e);return(0,s.jsxs)("button",{"data-item-id":e.id,className:`${c().listRow} ${t===e.id?c().listRowSelected:""}`,children:[(0,s.jsx)("span",{className:c().listRowTitle,children:en(e,a)}),(0,s.jsx)("span",{className:c().listRowMeta,children:r?`trace ${r.slice(0,8)}`:e.status??"item"})]},e.id)})})}function Z({traces:e,selectedTraceId:t,onSelect:a}){let n=(0,r.useCallback)(e=>{let t=el(e.target,"traceId");t&&a(t)},[a]);return 0===e.length?(0,s.jsx)("div",{className:c().listPanelEmpty,children:"No linked traces"}):(0,s.jsx)("aside",{className:c().listPanel,onClick:n,children:e.map(({traceId:e,item:a},r)=>(0,s.jsxs)("button",{"data-trace-id":e,className:`${c().listRow} ${t===e?c().listRowSelected:""}`,children:[(0,s.jsx)("span",{className:c().listRowTitle,children:en(a,r)}),(0,s.jsx)("span",{className:c().listRowMeta,children:e})]},e))})}function W({item:e,systemId:t,hasCustomRenderer:a,datasetName:n,mutating:l,onUpdate:i,onArchive:o}){let d=e?Q(e):null,u=e?.id??null,[m,_]=(0,r.useState)(""),[p,h]=(0,r.useState)("");(0,r.useEffect)(()=>{var t;_(ei(e?.expectedOutput)),h((t=e?.metadata)?eo(t.kaizen)&&"string"==typeof t.kaizen.notes?t.kaizen.notes:"string"==typeof t.notes?t.notes:"":"")},[u]);let f=(0,r.useCallback)(e=>{_(e.target.value)},[]),x=(0,r.useCallback)(e=>{h(e.target.value)},[]),j=(0,r.useCallback)(()=>{e&&i({itemId:e.id,expectedOutput:et(m),notes:p})},[m,e,p,i]),g=(0,r.useCallback)(()=>{e&&o(e.id)},[e,o]),v=(0,r.useMemo)(()=>e?{id:e.id,input:e.input,expectedOutput:e.expectedOutput,metadata:e.metadata}:null,[e]);if(!e)return(0,s.jsx)("section",{className:c().detailPanel,children:"No item selected"});let N=!l,b=!!(n&&!l);return(0,s.jsxs)("section",{className:c().detailPanel,children:[(0,s.jsxs)("div",{className:c().detailHeader,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:c().detailTitle,children:en(e,0)}),(0,s.jsx)("div",{className:c().detailMeta,children:e.id})]}),e.status&&(0,s.jsx)("span",{className:c().statusPill,children:e.status})]}),(0,s.jsxs)("div",{className:c().formRow,children:[(0,s.jsx)("label",{className:c().formLabel,htmlFor:"dataset-item-notes",children:"Notes"}),(0,s.jsx)("textarea",{id:"dataset-item-notes",className:c().textArea,disabled:l,placeholder:"Add context for future experiments.",value:p,onChange:x})]}),(0,s.jsxs)("div",{className:c().formRow,children:[(0,s.jsx)("label",{className:c().formLabel,htmlFor:"dataset-item-expected",children:"Expected output"}),(0,s.jsx)("textarea",{id:"dataset-item-expected",className:c().textAreaLarge,disabled:l,value:m,onChange:f})]}),(0,s.jsxs)("div",{className:c().actionFooter,children:[(0,s.jsx)("div",{className:c().detailMeta,children:"Archived examples are hidden from the active dataset view but remain in Langfuse history."}),(0,s.jsxs)("div",{className:c().actionRow,children:[(0,s.jsx)("button",{className:c().dangerButton,disabled:!N,onClick:g,type:"button",children:"Archive item"}),(0,s.jsx)("button",{className:c().primaryButton,disabled:!b,onClick:j,type:"button",children:l?"Saving...":"Save changes"})]})]}),(0,s.jsxs)("div",{className:c().detailGrid,children:[(0,s.jsx)(X,{title:"Input",value:e.input}),(0,s.jsx)(X,{title:"Current expected output",value:e.expectedOutput})]}),(0,s.jsx)(X,{title:"Metadata",value:e.metadata}),(0,s.jsxs)("div",{className:c().traceSection,children:[(0,s.jsx)("div",{className:c().sectionTitle,children:"Source Trace"}),(0,s.jsx)(J,{traceId:d,systemId:t,hasCustomRenderer:a,datasetItem:v,compact:!0})]})]})}function J({traceId:e,systemId:t,hasCustomRenderer:a,datasetItem:n,compact:l}){let[i,o]=(0,r.useState)(null),[d,u]=(0,r.useState)(null),[m,_]=(0,r.useState)(!1);(0,r.useEffect)(()=>{if(o(null),u(null),!e)return void _(!1);_(!0);let a=!1;return fetch(`/api/langfuse-trace?traceId=${encodeURIComponent(e)}&systemId=${encodeURIComponent(t)}`).then(async e=>{var t;let s=eo(t=await e.json())?{id:em(t.id),name:em(t.name),tags:Array.isArray(t.tags)?t.tags.filter(ec):void 0,timestamp:em(t.timestamp),metadata:t.metadata,input:t.input,output:t.output,error:em(t.error)}:{};if(!e.ok)throw Error(s.error??`HTTP ${e.status}`);a||(o(s),_(!1))}).catch(e=>{a||(u(e instanceof Error?e.message:String(e)),_(!1))}),()=>{a=!0}},[t,e]);let p=(0,s.jsx)(E,{trace:i,systemId:t,hasCustomRenderer:a,datasetItem:n,loading:m,error:e?d:null});return e||l?l?p:(0,s.jsx)("section",{className:c().detailPanel,children:p}):(0,s.jsx)("section",{className:c().detailPanel,children:(0,s.jsx)("div",{className:c().mutedText,children:"No source trace linked."})})}function X({title:e,value:t}){return(0,s.jsxs)("div",{className:c().jsonBlock,children:[(0,s.jsx)("div",{className:c().jsonTitle,children:e}),(0,s.jsx)("pre",{className:c().jsonPre,children:ei(t)})]})}function Q(e){if(!e)return null;if("string"==typeof e.sourceTraceId&&e.sourceTraceId)return e.sourceTraceId;let t=e.metadata,a=t?.sourceTraceId??t?.traceId;return"string"==typeof a&&a?a:null}function ee(e){return e.status?.toUpperCase()!=="ARCHIVED"}function et(e){let t=e.trim();if(t&&"(empty)"!==t)try{return JSON.parse(t)}catch{return t}}function ea(e){if(eo(e)&&"string"==typeof e.state&&"string"==typeof e.message&&"string"==typeof e.remediation)return{state:e.state,message:e.message,remediation:e.remediation,requiredEnvVars:eu(e.requiredEnvVars),optionalEnvVars:eu(e.optionalEnvVars),expectedEnvFile:em(e.expectedEnvFile),missingEnvVars:eu(e.missingEnvVars),lookup:eu(e.lookup),detail:em(e.detail)}}function es(e){return eo(e)&&"string"==typeof e.name?{id:em(e.id),name:e.name,description:"string"==typeof e.description||null===e.description?e.description:void 0,metadata:eo(e.metadata)||null===e.metadata?e.metadata:void 0,createdAt:em(e.createdAt),updatedAt:em(e.updatedAt)}:null}function er(e){return eo(e)&&"string"==typeof e.id?{id:e.id,status:em(e.status),sourceTraceId:"string"==typeof e.sourceTraceId||null===e.sourceTraceId?e.sourceTraceId:void 0,input:e.input,expectedOutput:e.expectedOutput,metadata:eo(e.metadata)||null===e.metadata?e.metadata:void 0,createdAt:em(e.createdAt),updatedAt:em(e.updatedAt)}:null}function en(e,t){let a=e.metadata;for(let t of[a?.callSummary,a?.summary,a?.name,a?.analysisId,e.id])if("string"==typeof t&&t.trim())return t;return`Item ${t+1}`}function el(e,t){if(!(e instanceof Element))return null;let a=e.closest("button");return a instanceof HTMLButtonElement?a.dataset[t]??null:null}function ei(e){return null==e?"(empty)":"string"==typeof e?e:JSON.stringify(e,null,2)}function eo(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ec(e){return"string"==typeof e}function ed(e){return null!==e}function eu(e){return Array.isArray(e)?e.filter(ec):[]}function em(e){return"string"==typeof e?e:void 0}function e_(e){return ef(e)?{ideas:Array.isArray(e.ideas)?e.ideas.map(ep).filter(ej):void 0,config:function(e){if(ef(e))return{teamKey:ev(e.teamKey),projectName:ev(e.projectName),projectId:ev(e.projectId),projectUrl:ev(e.projectUrl),projectRef:ev(e.projectRef),projectRefKind:ev(e.projectRefKind),label:eg(e.label)??"Kaizen"}}(e.config),connection:function(e){if(ef(e)&&function(e){switch(e){case"connected":case"missing_project":case"missing_api_key":case"project_not_found":case"auth_failed":case"query_failed":case"network_error":return!0;default:return!1}}(e.state)&&"string"==typeof e.message&&"string"==typeof e.remediation)return{state:e.state,message:e.message,remediation:e.remediation,requiredEnvVars:eh(e.requiredEnvVars),optionalEnvVars:eh(e.optionalEnvVars),expectedEnvFile:eg(e.expectedEnvFile),missingEnvVars:eh(e.missingEnvVars),lookup:eh(e.lookup),detail:eg(e.detail)}}(e.connection),error:eg(e.error)}:{}}function ep(e){var t,a,s,r,n;return ef(e)&&"string"==typeof e.id&&"string"==typeof e.identifier&&"string"==typeof e.title&&"string"==typeof e.url&&"string"==typeof e.createdAt&&"string"==typeof e.updatedAt?{id:e.id,identifier:e.identifier,title:e.title,description:"string"==typeof e.description||null===e.description?e.description:null,url:e.url,priority:"number"==typeof e.priority?e.priority:0,createdAt:e.createdAt,updatedAt:e.updatedAt,state:ef(t=e.state)&&"string"==typeof t.name&&"string"==typeof t.type?{name:t.name,type:t.type}:null,assignee:ef(a=e.assignee)&&"string"==typeof a.name?{name:a.name}:null,project:ef(s=e.project)&&"string"==typeof s.id&&"string"==typeof s.name?{id:s.id,name:s.name,url:"string"==typeof s.url?s.url:null}:null,team:ef(r=e.team)&&"string"==typeof r.key&&"string"==typeof r.name?{key:r.key,name:r.name}:null,labels:ef(n=e.labels)&&Array.isArray(n.nodes)?{nodes:n.nodes.map(e=>ef(e)&&"string"==typeof e.name?{name:e.name}:null).filter(ej)}:{nodes:[]}}:null}function eh(e){return Array.isArray(e)?e.filter(ex):[]}function ef(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ex(e){return"string"==typeof e}function ej(e){return null!==e}function eg(e){return"string"==typeof e?e:void 0}function ev(e){return"string"==typeof e?e:null}var eN=a(9212),eb=a.n(eN);function ey({issue:e,issueTitle:t,showTitle:a=!1}){if(!e)return null;let r=t?`${e.id} \xb7 ${t}`:e.id;return(0,s.jsxs)("a",{className:eb().linearIssueLink,href:e.url,target:"_blank",rel:"noreferrer",title:t?`${e.id}: ${t}`:`Open ${e.id} in Linear`,onClick:eS,children:[(0,s.jsx)("img",{src:"/source-icons/linear.svg",alt:""}),(0,s.jsx)("span",{children:a?r:e.id})]})}function eS(e){e.stopPropagation()}let eT={running:{color:"#f5a623",bg:"rgba(245,166,35,0.1)",border:"rgba(245,166,35,0.3)"},complete:{color:"#00d4aa",bg:"rgba(0,212,170,0.1)",border:"rgba(0,212,170,0.3)"},crashed:{color:"#e8553d",bg:"rgba(232,85,61,0.1)",border:"rgba(232,85,61,0.3)"},aborted:{color:"rgba(250,250,250,0.4)",bg:"rgba(255,255,255,0.04)",border:"rgba(255,255,255,0.08)"}},eR=eT.running;function ek({metrics:e}){let t=Object.entries(e);return 0===t.length?null:(0,s.jsxs)("table",{className:eb().metricsTable,children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{className:eb().metricsTableHeader,children:"Metric"}),(0,s.jsx)("th",{className:eb().metricsTableHeader,style:{textAlign:"right"},children:"Value"}),(0,s.jsx)("th",{className:eb().metricsTableHeader,style:{width:"40%"}})]})}),(0,s.jsx)("tbody",{children:t.map(([e,t])=>(0,s.jsxs)("tr",{className:eb().metricsTableRow,children:[(0,s.jsx)("td",{className:eb().metricsTableLabel,children:S(e)}),(0,s.jsx)("td",{className:eb().metricsTableValue,children:T(e,t)}),(0,s.jsx)("td",{className:eb().metricsTableBarCell,children:t>=0&&t<=1&&(0,s.jsx)("div",{className:eb().metricsTableBarTrack,children:(0,s.jsx)("div",{className:eb().metricsTableBar,style:{width:`${100*t}%`}})})})]},e))})]})}function eI({run:e,primaryMetric:t,linearIssueTitle:a}){let r=eT[e.status]??eR,n=R(e,t),l=function(e){let t=e.progress?.total||e.totalItems||e.evalConfig?.datasetItemCount||null;if(!t||t<=0)return null;let a="complete"===e.status?t:"number"==typeof e.progress?.completed?Math.min(e.progress.completed,t):null;return null===a?null:{completed:a,total:t,percent:Math.min(100,Math.max(0,a/t*100))}}(e);return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:eb().detailPanelHeader,children:[(0,s.jsxs)("div",{className:eb().detailTitleStack,children:[(0,s.jsx)("h2",{className:eb().detailPanelTitle,children:e.runName}),e.linearIssue&&(0,s.jsx)(ey,{issue:e.linearIssue,issueTitle:a,showTitle:!0})]}),null!=n&&(0,s.jsx)("span",{className:eb().bestAccuracyInline,children:T(t??"score",n)}),(0,s.jsx)("span",{className:eb().statusBadge,style:{color:r.color,backgroundColor:r.bg,border:`1px solid ${r.border}`},children:e.status})]}),l&&(0,s.jsxs)("div",{className:eb().runProgressBlock,children:[(0,s.jsxs)("div",{className:eb().runProgressHeader,children:[(0,s.jsx)("span",{children:"Dataset items"}),(0,s.jsxs)("span",{children:[l.completed,"/",l.total]})]}),(0,s.jsx)("div",{className:eb().runProgressTrack,children:(0,s.jsx)("div",{className:eb().runProgressFill,style:{width:`${l.percent}%`}})})]}),(0,s.jsxs)("div",{className:eb().runMetaGrid,children:[(0,s.jsx)(ew,{label:"Dataset",value:e.evalConfig?.dataset}),(0,s.jsx)(ew,{label:"Eval version",value:"number"==typeof e.evalConfig?.evalVersion?`v${e.evalConfig.evalVersion}`:null}),(0,s.jsx)(ew,{label:"Started",value:N(e.startedAt)}),(0,s.jsx)(ew,{label:"Updated",value:N(e.updatedAt)}),e.worktreeBranch&&(0,s.jsx)(ew,{label:"Branch",value:e.worktreeBranch}),e.parentId&&(0,s.jsx)(ew,{label:"Parent",value:e.parentId})]}),(0,s.jsxs)("div",{className:eb().runSection,children:[(0,s.jsx)("span",{className:eb().runLabel,children:"Metrics"}),(0,s.jsx)(ek,{metrics:e.metrics}),0===Object.keys(e.metrics).length&&(0,s.jsx)("div",{className:eb().detailEmpty,children:"No metrics yet."})]})]})}function ew({label:e,value:t}){return t?(0,s.jsxs)("div",{className:eb().runMetaCell,children:[(0,s.jsx)("span",{className:eb().runMetaLabel,children:e}),(0,s.jsx)("span",{className:eb().runMetaValue,children:t})]}):null}function eC({run:e,primaryMetric:t,linearIssueTitle:a,onClose:n,onViewTraces:l}){let i=(0,r.useCallback)(()=>{l?.(e.runId)},[l,e.runId]);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:eb().detailPanelBackdrop,onClick:n}),(0,s.jsxs)("div",{className:eb().detailPanel,children:[(0,s.jsx)("button",{className:eb().detailPanelClose,onClick:n,children:"\xd7"}),(0,s.jsx)(eI,{run:e,primaryMetric:t,linearIssueTitle:a}),l&&(0,s.jsx)("button",{className:eb().viewTracesButton,onClick:i,type:"button",children:"View Traces"})]})]})}function eL({run:e,systemId:t,primaryMetric:a,hasCustomRenderer:n,onClose:l}){let[i,o]=(0,r.useState)([]),[d,u]=(0,r.useState)(!0),[m,_]=(0,r.useState)(null),[p,h]=(0,r.useState)(null),[f,x]=(0,r.useState)(!1),[j,g]=(0,r.useState)(null),[v,N]=(0,r.useState)(null);(0,r.useEffect)(()=>{let a=!1;return u(!0),N(null),fetch(`/api/run-traces?system=${encodeURIComponent(t)}&runId=${encodeURIComponent(e.runId)}`).then(async e=>{let t=await e.json();if(!e.ok)throw Error("string"==typeof t.error?t.error:`HTTP ${e.status}`);a||(o(t.traces??[]),u(!1))}).catch(e=>{a||(N(e instanceof Error?e.message:String(e)),u(!1))}),()=>{a=!0}},[t,e.runId]),(0,r.useEffect)(()=>{if(h(null),g(null),!m)return void x(!1);x(!0);let e=!1;return fetch(`/api/langfuse-trace?traceId=${encodeURIComponent(m)}&systemId=${encodeURIComponent(t)}`).then(async t=>{var a,s;let r="object"!=typeof(s=a=await t.json())||null===s||Array.isArray(s)?{}:{id:"string"==typeof a.id?a.id:void 0,name:"string"==typeof a.name?a.name:void 0,tags:Array.isArray(a.tags)?a.tags.filter(e=>"string"==typeof e):void 0,timestamp:"string"==typeof a.timestamp?a.timestamp:void 0,metadata:a.metadata,input:a.input,output:a.output,error:"string"==typeof a.error?a.error:void 0};if(!t.ok)throw Error(r.error??`HTTP ${t.status}`);e||(h(r),x(!1))}).catch(t=>{e||(g(t instanceof Error?t.message:String(t)),x(!1))}),()=>{e=!0}},[m,t]);let b=(0,r.useCallback)(e=>{let t=e.currentTarget.dataset.traceId;t&&_(t)},[]),y=(0,r.useCallback)(()=>{_(null)},[]),R=e.metrics,k=(0,r.useMemo)(()=>{let e=i.find(e=>null!=e.breakdown);return e?.breakdown!=null?Object.keys(e.breakdown):[]},[i]);return(0,s.jsx)("div",{className:c().runTracesOverlay,children:(0,s.jsxs)("div",{className:c().runTracesPanel,children:[(0,s.jsxs)("div",{className:c().runTracesPanelHeader,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:c().runTracesPanelTitle,children:e.runName}),(0,s.jsxs)("div",{className:c().detailMeta,children:[e.totalItems??i.length," items \xb7 ",e.status]})]}),(0,s.jsx)("button",{className:c().runTracesPanelClose,onClick:l,type:"button",children:"\xd7"})]}),(0,s.jsx)("div",{className:c().runTracesScores,children:Object.entries(R).map(([e,t])=>(0,s.jsxs)("div",{className:c().runTracesScoreChip,children:[(0,s.jsx)("span",{className:c().runTracesScoreLabel,children:S(e)}),(0,s.jsx)("span",{className:c().runTracesScoreValue,children:T(e,t)})]},e))}),m?(0,s.jsxs)("div",{className:c().runTracesDetail,children:[(0,s.jsx)("button",{className:c().backButton,onClick:y,type:"button",children:"← Back to traces"}),(0,s.jsx)(E,{trace:p,systemId:t,hasCustomRenderer:n,loading:f,error:j})]}):d?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading run traces..."}):v?(0,s.jsx)("div",{className:c().errorPanel,children:v}):0===i.length?(0,s.jsxs)("div",{className:c().emptyPanel,children:[(0,s.jsx)("div",{className:c().emptyPanelTitle,children:"No traces found"}),(0,s.jsx)("div",{className:c().emptyPanelCopy,children:"This run did not emit any item events with trace IDs."})]}):(0,s.jsx)("div",{className:c().runTracesTableWrap,children:(0,s.jsxs)("table",{className:c().runTracesTable,children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{children:"Item ID"}),(0,s.jsx)("th",{children:a?S(a):"Score"}),k.map(e=>(0,s.jsx)("th",{children:S(e)},e)),(0,s.jsx)("th",{children:"Trace"})]})}),(0,s.jsx)("tbody",{children:i.map(e=>(0,s.jsxs)("tr",{"data-trace-id":e.traceId??void 0,className:e.traceId?c().runTracesTableRowClickable:void 0,onClick:e.traceId?b:void 0,children:[(0,s.jsx)("td",{className:c().runTracesTableId,children:e.id}),(0,s.jsx)("td",{children:e.score.toFixed(2)}),k.map(t=>(0,s.jsx)("td",{children:e.breakdown?.[t]!=null?e.breakdown[t].toFixed(2):"—"},t)),(0,s.jsx)("td",{children:e.traceId?(0,s.jsx)("span",{className:c().runTracesTraceLink,children:"View"}):(0,s.jsx)("span",{className:c().mutedText,children:"—"})})]},e.id))})]})})]})})}var eP=a(6971),eM=a(8463),eA=a(7784),eE=a(4456);function eB(e){return e<60?`${e}s`:e<3600?`${Math.floor(e/60)}m`:`${Math.floor(e/3600)}h ${Math.floor(e%3600/60)}m`}function e$({node:e,isSelected:t,isBestGlobal:a,isHighlighted:n,primaryMetric:l,linearIssueTitles:i,onClick:o}){let c=e.data.status,d=eT[c.status]??eR,u=R(c,l),m=null!=u?`${(100*u).toFixed(1)}%`:null,_="running"===c.status,p=function(e,t){let[a,s]=(0,r.useState)(Date.now());if((0,r.useEffect)(()=>{if(!t)return;let e=setInterval(()=>s(Date.now()),1e3);return()=>clearInterval(e)},[t]),!e)return null;let n=new Date(e).getTime();return isNaN(n)?null:eB(Math.max(0,Math.floor((a-n)/1e3)))}(c.startedAt,_),h=_?null:function(e,t){if(!e||!t)return null;let a=new Date(e).getTime(),s=new Date(t).getTime();if(isNaN(a)||isNaN(s))return null;let r=Math.max(0,Math.floor((s-a)/1e3));return 0===r?null:eB(r)}(c.startedAt,c.updatedAt),f=c.linearIssue?i?.[c.linearIssue.id]??null:null;return(0,s.jsx)("foreignObject",{x:e.x-100,y:e.y-63,width:200,height:126,children:(0,s.jsxs)("button",{"data-run-id":c.runId,className:[eb().treeNodeCard,t?eb().treeNodeSelected:"",a?eb().treeNodeBest:"",n?eb().treeNodeHighlight:""].filter(Boolean).join(" "),onClick:o,title:f?`${c.runName}
5
- ${f}`:c.runName,children:[(0,s.jsx)("div",{className:eb().treeNodeName,children:c.runName}),(0,s.jsxs)("div",{className:eb().treeNodeBadgeRow,children:[(0,s.jsx)("span",{className:eb().treeNodeBadge,style:{color:d.color,backgroundColor:d.bg,border:`1px solid ${d.border}`},children:c.status}),_&&p&&(0,s.jsx)("span",{className:eb().treeNodeElapsed,children:p}),h&&(0,s.jsx)("span",{className:eb().treeNodeElapsed,children:h})]}),(0,s.jsx)("div",{className:eb().treeNodeScoreRow,children:m?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:eb().treeNodeAccuracy,children:m}),null!=c.totalItems&&(0,s.jsxs)("span",{className:eb().treeNodeItems,children:["n=",c.totalItems]})]}):"aborted"===c.status||"crashed"===c.status?(0,s.jsx)("span",{className:eb().treeNodeItems,children:"—"}):(0,s.jsxs)("span",{className:eb().treeNodeLoading,children:[(0,s.jsx)("span",{className:eb().treeNodePulse}),(0,s.jsx)("span",{className:eb().treeNodeLoadingText,children:"running"===c.status&&c.progress?`${c.progress.completed}/${c.progress.total}`:"running"===c.status?"Running eval...":"Pending"})]})}),c.linearIssue&&(0,s.jsx)("div",{className:eb().treeNodeIssueRow,children:(0,s.jsx)(ey,{issue:c.linearIssue,issueTitle:f,showTitle:!0})})]})})}function eD({link:e}){return(0,s.jsx)(eE.A,{data:e,stroke:"rgba(255, 255, 255, 0.25)",strokeWidth:1.5,fill:"none"})}function eH(e){return{status:e.status,children:e.children.map(eH)}}function eF(e){return e.depth>0&&null!==e.data.status}function eV({roots:e,selectedId:t,bestGlobalId:a,highlightId:n,primaryMetric:l,linearIssueTitles:i,onSelect:o}){let c=(0,r.useMemo)(()=>({status:null,children:e.map(eH)}),[e]),d=(0,r.useMemo)(()=>(0,eM.Ay)(c,e=>e.children.length>0?e.children:null),[c]);return 0===e.length?null:(0,s.jsx)("div",{className:eb().treeForest,children:(0,s.jsx)(eA.A,{root:d,nodeSize:[216,158],separation:(e,t)=>e.parent===t.parent?1:1.1,children:e=>{let r=e.descendants(),c=e.links(),d=r.filter(eF),u=c.filter(e=>e.source.depth>0);if(0===d.length)return null;let m=1/0,_=-1/0,p=1/0,h=-1/0;for(let e of d)m=Math.min(m,e.x),_=Math.max(_,e.x),p=Math.min(p,e.y),h=Math.max(h,e.y);let f=_-m+200+80,x=h-p+126+80,j=-m+100+40,g=-p+63+40;return(0,s.jsx)("svg",{width:f,height:x,className:eb().treeSvg,children:(0,s.jsxs)(eP.A,{top:g,left:j,children:[u.map((e,t)=>(0,s.jsx)(eD,{link:e},`link-${t}`)),d.map(e=>(0,s.jsx)(e$,{node:e,isSelected:t===e.data.status.runId,isBestGlobal:a===e.data.status.runId,isHighlighted:n===e.data.status.runId,primaryMetric:l,linearIssueTitles:i,onClick:()=>o(e.data.status.runId)},e.data.status.runId))]})})}})})}var eO=a(9965),ez=a.n(eO);function eK({runs:e,primaryMetric:t,bestGlobalId:a,selectedId:n,linearIssueTitles:l,onSelect:i}){let[o,c]=(0,r.useState)(t??""),[d,u]=(0,r.useState)(!0),m=(0,r.useRef)(new Map),_=(0,r.useRef)(new Map),p=(0,r.useMemo)(()=>{let a=new Set;for(let t of e)for(let e of Object.keys(t.metrics))a.add(e);return[...a].sort((e,a)=>e===t?-1:a===t?1:e.localeCompare(a))},[e,t]);r.useEffect(()=>{t&&(c(t),u(!0))},[t]);let h=(0,r.useMemo)(()=>{let t=[...e];return t.sort((e,t)=>{let a=o?e.metrics[o]??-1/0:0,s=o?t.metrics[o]??-1/0:0,r=d?s-a:a-s;return 0!==r?r:(t.totalItems??0)-(e.totalItems??0)}),t},[e,o,d]),f=(0,r.useCallback)(e=>{for(let[e,t]of m.current)_.current.set(e,t.getBoundingClientRect().top);e===o?u(e=>!e):(c(e),u(!0))},[o]);return((0,r.useLayoutEffect)(()=>{if(0!==_.current.size){for(let[e,t]of m.current){let a=_.current.get(e);if(void 0===a)continue;let s=a-t.getBoundingClientRect().top;1>Math.abs(s)||(t.style.transform=`translateY(${s}px)`,t.style.transition="none",requestAnimationFrame(()=>{requestAnimationFrame(()=>{t.style.transition="transform 0.5s cubic-bezier(0.25, 1, 0.5, 1)",t.style.transform=""})}))}_.current.clear()}},[h]),0===e.length)?(0,s.jsx)("p",{className:ez().noData,children:"No experiments yet."}):(0,s.jsx)("div",{className:ez().tableWrapper,children:(0,s.jsxs)("table",{className:ez().table,children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{className:ez().thRank,children:"#"}),(0,s.jsx)("th",{className:ez().thName,children:"Run"}),(0,s.jsx)("th",{className:ez().thStatus,children:"Status"}),p.map(e=>(0,s.jsxs)("th",{className:`${ez().thMetric} ${e===t?ez().thPrimary:""} ${e===o?ez().thSorted:""}`,onClick:()=>f(e),children:[(0,s.jsx)("span",{className:ez().thLabel,children:S(e)}),e===o&&(0,s.jsx)("span",{className:ez().sortArrow,children:d?"▼":"▲"})]},e)),(0,s.jsx)("th",{className:ez().thItems,children:"n"}),(0,s.jsx)("th",{className:ez().thStarted,children:"Started"})]})}),(0,s.jsx)("tbody",{children:h.map((e,r)=>{let o=eT[e.status]??eR,c=e.runId===a,d=e.runId===n;return(0,s.jsxs)("tr",{ref:t=>{t?m.current.set(e.runId,t):m.current.delete(e.runId)},className:`${ez().row} ${c?ez().rowBest:""} ${d?ez().rowSelected:""}`,onClick:()=>i(e.runId),children:[(0,s.jsx)("td",{className:ez().tdRank,children:r+1}),(0,s.jsxs)("td",{className:ez().tdName,children:[(0,s.jsx)("span",{className:ez().expName,children:e.runName}),(0,s.jsx)(ey,{issue:e.linearIssue,issueTitle:e.linearIssue?l?.[e.linearIssue.id]:null}),c&&(0,s.jsx)("span",{className:ez().bestBadge,children:"BEST"})]}),(0,s.jsx)("td",{className:ez().tdStatus,children:(0,s.jsx)("span",{className:ez().statusDot,style:{backgroundColor:o.color},title:e.status})}),p.map(a=>{let r=e.metrics[a],n=a===t;return(0,s.jsx)("td",{className:`${ez().tdMetric} ${n?ez().tdPrimary:""}`,children:null!=r?(0,s.jsx)("span",{className:ez().metricValue,children:T(a,r)}):(0,s.jsx)("span",{className:ez().metricEmpty,children:"—"})},a)}),(0,s.jsx)("td",{className:ez().tdItems,children:e.totalItems??"?"}),(0,s.jsx)("td",{className:ez().tdStarted,children:N(e.startedAt)})]},e.runId)})})]})})}function eG({runs:e,primaryMetric:t,bestRunId:a,selectedRunId:r,linearIssueTitles:n,onSelectRun:l}){return(0,s.jsx)(eK,{runs:e,primaryMetric:t,bestGlobalId:a,selectedId:r,linearIssueTitles:n,onSelect:l})}function eU({system:e}){let{runs:t}=v(e.id),[a,n]=(0,r.useState)(null),[l]=(0,r.useState)(null),[i,o]=(0,r.useState)(null),[d,u]=(0,r.useState)(null),[m,_]=(0,r.useState)(280),[p,h]=(0,r.useState)({});(0,r.useEffect)(()=>{n(null),o(null),u(null),h({})},[e.id]),(0,r.useEffect)(()=>{let t=!1;return fetch(`/api/linear-ideas?systemId=${encodeURIComponent(e.id)}`).then(e=>e.json()).then(e=>{t||h(function(e){let t={};for(let a of e)t[a.identifier]=a.title;return t}(e_(e).ideas??[]))}).catch(()=>{t||h({})}),()=>{t=!0}},[e.id]);let f=(0,r.useCallback)(()=>{n(null)},[]),x=(0,r.useCallback)(e=>{u(e)},[]),j=(0,r.useCallback)(()=>{u(null)},[]),g=(0,r.useCallback)(e=>{let t=function(e){if(!(e instanceof Element))return null;let t=e.closest("button");return t instanceof HTMLButtonElement?t.dataset.groupKey??null:null}(e.target);t&&o(t)},[]),N=(0,r.useCallback)(e=>{e.preventDefault();let t=e.clientX,a=e=>{_(Math.min(560,Math.max(220,m+e.clientX-t)))};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("pointermove",a),document.addEventListener("pointerup",()=>{document.removeEventListener("pointermove",a),document.body.style.cursor="",document.body.style.userSelect=""},{once:!0})},[m]),b=e.primaryMetric??null,y=(0,r.useMemo)(()=>{let e=new Map;for(let a of t){let t=k(a,b),s=e.get(t.key);s?s.count++:e.set(t.key,{...t,count:1})}return[...e.values()].sort((e,t)=>{let a=e.dataset.localeCompare(t.dataset);return 0===a?e.evalLabel.localeCompare(t.evalLabel):a})},[b,t]),S=i&&y.some(e=>e.key===i)?i:y[0]?.key??null,T=(0,r.useMemo)(()=>S?t.filter(e=>k(e,b).key===S):t,[t,S,b]);(0,r.useEffect)(()=>{a&&!T.some(e=>e.runId===a)&&n(null),d&&!T.some(e=>e.runId===d)&&u(null)},[T,a,d]);let I=(0,r.useMemo)(()=>(function(e,t){let a=new Map;for(let t of e)a.set(t.runId,{status:t,children:[]});let s=[];for(let e of a.values()){let t=e.status.parentId;t&&a.has(t)?a.get(t).children.push(e):s.push(e)}let r=e=>{for(let a of(e.sort((e,a)=>(R(a.status,t)??-1)-(R(e.status,t)??-1)),e))r(a.children)};return r(s),s})(T,b),[T,b]),C=(0,r.useMemo)(()=>{let e=null,t=-1;for(let a of T){let s=R(a,b);null!=s&&s>t&&(t=s,e=a.runId)}return e},[T,b]),L=a?T.find(e=>e.runId===a):null,P=d?T.find(e=>e.runId===d):null;return(0,s.jsxs)("div",{className:c().experimentsLayout,children:[(0,s.jsx)("aside",{className:`${c().dataNav} ${c().experimentNav}`,style:{width:m},onClick:g,children:0===y.length?(0,s.jsx)("div",{className:c().dataNavEmpty,children:"No experiments yet"}):y.map(e=>(0,s.jsxs)("button",{"data-group-key":e.key,title:`${e.datasetLabel}
6
- ${e.evalLabel} \xb7 ${e.count} experiments`,className:`${c().dataNavItem} ${c().dataNavGroupItem} ${c().experimentNavItem} ${S===e.key?c().dataNavItemActive:""}`,children:[(0,s.jsx)("span",{className:c().dataNavItemText,children:e.datasetLabel}),(0,s.jsxs)("span",{className:c().dataNavItemMeta,children:[e.evalLabel," \xb7 ",e.count]})]},e.key))}),(0,s.jsx)("div",{className:c().sidebarResizeHandle,role:"separator","aria-label":"Resize benchmarks","aria-orientation":"vertical",onPointerDown:N}),(0,s.jsxs)("section",{className:`${c().dataMain} ${c().experimentsMain}`,children:[(0,s.jsx)(w,{title:"Local experiments",source:"local",syncLabel:"Live updates",children:"Choose a benchmark on the left. Kaizen only compares experiments inside the selected benchmark, because scores from different datasets or scoring setups are not scientifically comparable."}),(0,s.jsx)(eV,{roots:I,selectedId:a,bestGlobalId:C,highlightId:l,primaryMetric:b,linearIssueTitles:p,onSelect:n}),L&&(0,s.jsx)(eC,{run:L,primaryMetric:b,linearIssueTitle:L.linearIssue?p[L.linearIssue.id]:null,onClose:f,onViewTraces:x}),P&&(0,s.jsx)(eL,{run:P,systemId:e.id,primaryMetric:b,hasCustomRenderer:!!e.traceRenderer,onClose:j}),(0,s.jsx)(eG,{runs:T,primaryMetric:b,bestRunId:C,selectedRunId:a,linearIssueTitles:p,onSelectRun:n})]})]})}function eY({system:e}){let[t,a]=(0,r.useState)([]),[n,l]=(0,r.useState)(null),[i,o]=(0,r.useState)(void 0),[d,m]=(0,r.useState)(null),[_,p]=(0,r.useState)(null),[h,f]=(0,r.useState)(!1),[x,j]=(0,r.useState)(!1),[g,v]=(0,r.useState)(null),N=(0,r.useRef)(e.id);N.current=e.id;let b=(0,r.useCallback)(async()=>{let t=e.id;f(!0);try{let e=await fetch(`/api/linear-ideas?systemId=${encodeURIComponent(t)}`),s=e_(await e.json());if(!e.ok)throw Error(s.error??`HTTP ${e.status}`);if(N.current!==t)return;a(s.ideas??[]),o(s.config),m(s.connection??null),l(e=>e&&(s.ideas??[]).some(t=>t.id===e)?e:s.ideas?.[0]?.id??null),p(s.error??null),v(O())}catch(e){if(N.current!==t)return;m(null),p(e instanceof Error?e.message:String(e))}finally{N.current===t&&(j(!0),f(!1))}},[e.id]),y=(0,r.useCallback)(()=>{b()},[b]);(0,r.useEffect)(()=>{j(!1),a([]),l(null),o(void 0),m(null),p(null),v(null),b();let e=setInterval(()=>void b(),2e4),t=()=>void b();return window.addEventListener("focus",t),()=>{clearInterval(e),window.removeEventListener("focus",t)}},[b,e.id]);let S=(0,r.useMemo)(()=>t.find(e=>e.id===n)??t[0]??null,[t,n]),T=i?.teamKey??null,R=i?.projectRef??null,k=i?.label??"Kaizen",I=(0,r.useMemo)(()=>{var e;return[(e={teamKey:T,projectRef:R,label:k}).teamKey?`LINEAR_TEAM_KEY=${e.teamKey}`:"any team",e.projectRef?`linear_project=${e.projectRef}`:"linear_project not set",`label=${e.label}`]},[k,R,T]);return(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsxs)(w,{title:"Linear ideas",source:"linear",syncLabel:z(g,2e4),onRefresh:y,refreshing:h,children:["This shows Linear issues that Kaizen can try as experiments. For this system, Kaizen looks",i?.projectName||i?.projectRef?(0,s.jsxs)(s.Fragment,{children:[" in project ",(0,s.jsxs)("span",{className:c().inlineSourceValue,children:[(0,s.jsx)("code",{children:i.projectName??i.projectRef}),(0,s.jsx)(u,{source:"code"})]})]}):" in the Linear project configured in this system's code"," ","for issues labeled ",(0,s.jsx)("code",{children:"Kaizen"}),". Label a Linear issue"," ",(0,s.jsx)("code",{children:"Kaizen"})," when you want Kaizen to try it as an experiment."]}),d&&"connected"!==d.state&&(0,s.jsx)(H,{status:d,currentValues:I}),_&&(0,s.jsx)("div",{className:c().errorPanel,children:_}),h&&!x?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading Linear ideas..."}):(0,s.jsxs)("div",{className:c().splitSurface,children:[(0,s.jsx)(eq,{ideas:t,selectedId:S?.id??null,onSelect:l}),(0,s.jsx)(eZ,{idea:S})]})]})}function eq({ideas:e,selectedId:t,onSelect:a}){let n=(0,r.useCallback)(e=>{let t=function(e){if(!(e instanceof Element))return null;let t=e.closest("button");return t instanceof HTMLButtonElement?t.dataset.ideaId??null:null}(e.target);t&&a(t)},[a]);return 0===e.length?(0,s.jsx)("div",{className:c().listPanelEmpty,children:"No Linear ideas"}):(0,s.jsx)("aside",{className:c().listPanel,onClick:n,children:e.map(e=>(0,s.jsxs)("button",{"data-idea-id":e.id,className:`${c().listRow} ${t===e.id?c().listRowSelected:""}`,children:[(0,s.jsx)("span",{className:c().listRowTitle,children:e.title}),(0,s.jsxs)("span",{className:c().listRowMeta,children:[e.identifier," \xb7 ",e.state?.name??"No status"]})]},e.id))})}function eZ({idea:e}){var t;let a;return e?(0,s.jsxs)("section",{className:c().detailPanel,children:[(0,s.jsxs)("div",{className:c().detailHeader,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:c().detailTitle,children:e.title}),(0,s.jsx)("a",{className:c().detailLink,href:e.url,target:"_blank",rel:"noreferrer",children:e.identifier})]}),e.state&&(0,s.jsx)("span",{className:c().statusPill,children:e.state.name})]}),(0,s.jsxs)("div",{className:c().ideaMetaGrid,children:[(0,s.jsx)(eW,{label:"Team",value:e.team?.key??e.team?.name}),(0,s.jsx)(eW,{label:"Project",value:e.project?.name}),(0,s.jsx)(eW,{label:"Assignee",value:e.assignee?.name}),(0,s.jsx)(eW,{label:"Updated",value:Number.isNaN((a=new Date(t=e.updatedAt)).getTime())?t:a.toLocaleString()})]}),e.labels.nodes.length>0&&(0,s.jsx)("div",{className:c().tagRow,children:e.labels.nodes.map(e=>(0,s.jsx)("span",{className:c().tagPill,children:e.name},e.name))}),(0,s.jsx)("div",{className:c().descriptionBlock,children:e.description||"No description."})]}):(0,s.jsx)("section",{className:c().detailPanel,children:"No idea selected"})}function eW({label:e,value:t}){return(0,s.jsxs)("div",{className:c().metaCell,children:[(0,s.jsx)("span",{className:c().metaLabel,children:e}),(0,s.jsx)("span",{className:c().metaValue,children:t??"Unassigned"})]})}function eJ({surface:e}){let{systems:t,activeSystemId:a}=(0,n.V)(),l=(0,r.useMemo)(()=>t.find(e=>e.id===a)??null,[a,t]);return(0,s.jsx)(g,{activeSystem:l,activeSurface:e,children:l?"data"===e?(0,s.jsx)(K,{system:l}):"benchmarks"===e?(0,s.jsx)(L,{system:l}):"ideas"===e?(0,s.jsx)(eY,{system:l}):(0,s.jsx)(eU,{system:l}):(0,s.jsx)(eX,{systemCount:t.length})})}function eX({systemCount:e}){return(0,s.jsxs)("div",{className:c().emptyState,children:[(0,s.jsx)("img",{src:"/logo-cream.svg",alt:"Kaizen",className:c().emptyLogo}),(0,s.jsx)("h1",{className:c().emptyTitle,children:"Kaizen"}),(0,s.jsx)("p",{className:c().emptyCopy,children:"Select a system to inspect its data, benchmarks, ideas, and experiments."}),(0,s.jsxs)("span",{className:c().emptyMeta,children:[e," system",1===e?"":"s"]})]})}},9212:e=>{e.exports={layout:"Runs_layout__Ih4Cn",heroLogo:"Runs_heroLogo__BAUu8",headerLogo:"Runs_headerLogo__TgYiK",container:"Runs_container__0aqIq",headerRow:"Runs_headerRow__abEUi",title:"Runs_title__oroey",connectedBadge:"Runs_connectedBadge__d1Ss1",disconnectedBadge:"Runs_disconnectedBadge__v3kiS",systemTabs:"Runs_systemTabs__Gtuvz",systemTab:"Runs_systemTab__XYpgy",systemTabActive:"Runs_systemTabActive__10lyk",systemTabName:"Runs_systemTabName__pER4w",systemTabStatus:"Runs_systemTabStatus__YbTNa",systemStatus_in_progress:"Runs_systemStatus_in_progress__i_6lJ",systemStatus_completed:"Runs_systemStatus_completed__pjTng",systemStatus_not_started:"Runs_systemStatus_not_started__FqOI6",subtitle:"Runs_subtitle__ZfT5k",targetBadge:"Runs_targetBadge__XoNhG",grid:"Runs_grid__7DXl9",card:"Runs_card__AxGEL",cardFlash:"Runs_cardFlash__pXo7_",cardGlow:"Runs_cardGlow__mf3t7",badgeFlash:"Runs_badgeFlash__Q0C8G",badgePop:"Runs_badgePop__PdKoP",textFlash:"Runs_textFlash__O_0mj",textHighlight:"Runs_textHighlight__9znCz",rowSlideIn:"Runs_rowSlideIn__rGZ9I",slideInFade:"Runs_slideInFade__SsIak",diagramFlash:"Runs_diagramFlash__4ZTFP",diagramPulse:"Runs_diagramPulse__yN0dx",cardHeader:"Runs_cardHeader__7EpGx",cardTitle:"Runs_cardTitle__l82f2",bestAccuracyInline:"Runs_bestAccuracyInline__0XYna",linearIssueLink:"Runs_linearIssueLink__aVa6L",statusBadge:"Runs_statusBadge__T4ifS",detailTitleStack:"Runs_detailTitleStack__a_E4h",runProgressBlock:"Runs_runProgressBlock__Hg4fw",runProgressHeader:"Runs_runProgressHeader__e69Sy",runProgressTrack:"Runs_runProgressTrack__c_Wjv",runProgressFill:"Runs_runProgressFill__JOLgM",runMetaGrid:"Runs_runMetaGrid__kiPS9",runMetaCell:"Runs_runMetaCell__lEV1l",runMetaLabel:"Runs_runMetaLabel__DxMGL",runMetaValue:"Runs_runMetaValue__gJoib",detailEmpty:"Runs_detailEmpty__wy74V",metricsTable:"Runs_metricsTable__C_A_z",iterRowClickable:"Runs_iterRowClickable__g1tjc",iterRowExpanded:"Runs_iterRowExpanded__Nbl8_",bestRow:"Runs_bestRow__A_kku",iterDetailRow:"Runs_iterDetailRow__y10KK",cardFooter:"Runs_cardFooter__o_f_i",footerUpdated:"Runs_footerUpdated__21L7o",chartContainer:"Runs_chartContainer__bTh0u",chartTitle:"Runs_chartTitle__OkYqw",chart:"Runs_chart__XhGIf",chartRow:"Runs_chartRow__DbGz_",chartLabel:"Runs_chartLabel__3FlRl",chartBarContainer:"Runs_chartBarContainer__zzYv4",chartBarTrack:"Runs_chartBarTrack__5ogbA",chartBar:"Runs_chartBar__64D55",chartRowClickable:"Runs_chartRowClickable__RxDfH",chartValue:"Runs_chartValue__lmV61",metricsTableHeader:"Runs_metricsTableHeader__8d74Z",metricsTableRow:"Runs_metricsTableRow__FEGrk",metricsTableLabel:"Runs_metricsTableLabel__K8De_",metricsTableValue:"Runs_metricsTableValue__kaegJ",metricsTableBarCell:"Runs_metricsTableBarCell__8h1wf",metricsTableBarTrack:"Runs_metricsTableBarTrack__b_CnH",metricsTableBar:"Runs_metricsTableBar__HScEe",chartItems:"Runs_chartItems__Quwyx",noData:"Runs_noData__fi5_n",runSection:"Runs_runSection__Ggi_B",runLabel:"Runs_runLabel__uGajV",treeForest:"Runs_treeForest__6GBAM",treeSvg:"Runs_treeSvg___AATo",treeNodeCard:"Runs_treeNodeCard__Y5XEX",treeNodeSelected:"Runs_treeNodeSelected__QaPg2",treeNodeBest:"Runs_treeNodeBest__U8FaL",treeNodeHighlight:"Runs_treeNodeHighlight__A7a9x",nodeHighlight:"Runs_nodeHighlight__Zuhi5",treeNodeName:"Runs_treeNodeName__XtYDH",treeNodeBadgeRow:"Runs_treeNodeBadgeRow__ZwAvw",treeNodeBadge:"Runs_treeNodeBadge__jLVIw",treeNodeElapsed:"Runs_treeNodeElapsed__vsyq2",treeNodeScoreRow:"Runs_treeNodeScoreRow__BN81e",treeNodeIssueRow:"Runs_treeNodeIssueRow__7fXg_",treeNodeAccuracy:"Runs_treeNodeAccuracy__ehSVZ",treeNodeItems:"Runs_treeNodeItems__4SRsq",treeNodeLoading:"Runs_treeNodeLoading__P7_CS",treeNodePulse:"Runs_treeNodePulse__nC6rt",pulse:"Runs_pulse__LMgDF",treeNodeLoadingText:"Runs_treeNodeLoadingText__C1_bJ",detailPanelBackdrop:"Runs_detailPanelBackdrop__UMPlF",fadeIn:"Runs_fadeIn__1nqka",detailPanel:"Runs_detailPanel__BII9F",slideInFromRight:"Runs_slideInFromRight__uHSvO",detailPanelClose:"Runs_detailPanelClose__vgQbo",detailPanelHeader:"Runs_detailPanelHeader__XMEDA",detailPanelTitle:"Runs_detailPanelTitle__vAuOY",viewTracesButton:"Runs_viewTracesButton__W3KMl"}},9965:e=>{e.exports={tableWrapper:"Leaderboard_tableWrapper__6uunR",table:"Leaderboard_table__8gTqK",noData:"Leaderboard_noData__aKd3L",thRank:"Leaderboard_thRank__e16FK",thName:"Leaderboard_thName__i_zQZ",thStatus:"Leaderboard_thStatus__F4ZyW",thMetric:"Leaderboard_thMetric__ZMVo_",thPrimary:"Leaderboard_thPrimary__SzN76",thSorted:"Leaderboard_thSorted__13fmP",thLabel:"Leaderboard_thLabel__2cqYD",sortArrow:"Leaderboard_sortArrow__3IJre",thItems:"Leaderboard_thItems__3MS6a",thStarted:"Leaderboard_thStarted__9zNIp",row:"Leaderboard_row__A9H8t",rowBest:"Leaderboard_rowBest__JCqYu",rowSelected:"Leaderboard_rowSelected__GFyz5",tdRank:"Leaderboard_tdRank__kZKT_",tdName:"Leaderboard_tdName__2ymmx",expName:"Leaderboard_expName__6rkrZ",bestBadge:"Leaderboard_bestBadge__33jMs",tdStatus:"Leaderboard_tdStatus__zRhgm",statusDot:"Leaderboard_statusDot__hEPYp",tdMetric:"Leaderboard_tdMetric__Ll0O_",tdPrimary:"Leaderboard_tdPrimary__SZr_5",metricValue:"Leaderboard_metricValue__IhFZf",metricEmpty:"Leaderboard_metricEmpty__l1hwN",tdItems:"Leaderboard_tdItems__4_5Q6",tdStarted:"Leaderboard_tdStarted__p97S3"}}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[680],{318:(_,s,u)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/[system]/data",function(){return u(5897)}])},5897:(_,s,u)=>{"use strict";u.r(s),u.d(s,{default:()=>t});var e=u(144),n=u(8673);function t(){return(0,e.jsx)(n.W,{surface:"data"})}}},_=>{_.O(0,[431,673,636,593,792],()=>_(_.s=318)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[24],{5103:(e,s,n)=>{"use strict";n.r(s),n.d(s,{default:()=>r});var _=n(144),u=n(8673);function r(){return(0,_.jsx)(u.W,{surface:"experiments"})}},8758:(e,s,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/[system]/experiments",function(){return n(5103)}])}},e=>{e.O(0,[431,673,636,593,792],()=>e(e.s=8758)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- .Studio_page__X6enu{min-height:100%;background:#0a0a0a;color:#fafafa;font-family:Geist,ui-sans-serif,system-ui,-apple-system,sans-serif}.Studio_topBar__OlLt6{display:grid;grid-template-columns:max-content max-content max-content minmax(0,1fr);align-items:center;gap:.9rem;padding:1rem 1.5rem}.Studio_logoLink__Hv20q{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;text-decoration:none}.Studio_topLogo__YEKp4{display:block;width:22px;height:22px;object-fit:contain}.Studio_systemSlot__5m3MM{min-width:0}.Studio_surfaceNav__RKZjS{display:flex;align-items:center;gap:.25rem;min-width:0}.Studio_surfaceLink__ivMXp{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 .8rem;border-radius:0;color:var(--text-tertiary);text-decoration:none;font-size:.85rem;font-weight:500;white-space:nowrap;transition:background .15s,color .15s}.Studio_surfaceLink__ivMXp:hover{color:var(--text-secondary);background:rgba(255,255,255,.05)}.Studio_surfaceLinkActive__Der5b{color:#fafafa;background:rgba(255,255,255,.08)}.Studio_surfaceLinkDisabled__gfVYR{opacity:.45;pointer-events:none}.Studio_statusPill__m2ERk{display:inline-flex;align-items:center;min-height:22px;border-radius:0;padding:0 .45rem;color:var(--text-secondary);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);font-size:.68rem;font-weight:600;white-space:nowrap}.Studio_content__LELHT{padding:0 1.5rem 2rem}.Studio_surface__lxZ_I{min-width:0}.Studio_surfaceBanner__UNvfB{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem;border:1px solid rgba(255,255,255,.08);border-radius:0;background:rgba(255,255,255,.035);padding:.8rem .9rem}.Studio_surfaceBannerText__6jNss{min-width:0}.Studio_surfaceBannerTitle__vXJox{display:flex;align-items:center;gap:.45rem;color:#fafafa;font-size:.9rem;font-weight:650}.Studio_surfaceBannerCopy__Abpvv{margin-top:.2rem;color:var(--text-secondary);font-size:.78rem;line-height:1.45}.Studio_surfaceBannerCopy__Abpvv code{color:#fafafa;background:rgba(0,0,0,.24);border-radius:0;padding:.05rem .25rem}.Studio_sourceChip___xMTP{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid rgba(255,255,255,.1);border-radius:0;background:rgba(255,255,255,.04);color:#fafafa;line-height:1;padding:0;vertical-align:middle}.Studio_sourceChip_code__DPzDj{color:#fafafa}.Studio_sourceChip_langfuse__h6LSy,.Studio_sourceChip_linear__9NNQ5{background:rgba(255,255,255,.06)}.Studio_sourceChip_local__3Ws2K{color:#fafafa}.Studio_sourceLogo__iWmOz{object-fit:contain}.Studio_sourceLogo__iWmOz,.Studio_sourceSvgIcon__dpcyH{display:block;width:15px;height:15px}.Studio_provenanceLine__a5uDd{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:.45rem;color:var(--text-tertiary);font-size:.74rem}.Studio_provenanceLine__a5uDd code{color:#fafafa;background:rgba(0,0,0,.24);border-radius:0;padding:.08rem .28rem}.Studio_inlineSourceValue__WMOb9{display:inline-flex;align-items:center;gap:.35rem;vertical-align:middle;white-space:nowrap}.Studio_syncStatus__exlkz{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;flex-shrink:0}.Studio_syncStatusLabel__C5cmS{color:var(--text-tertiary);font-size:.74rem;font-weight:500;white-space:nowrap}.Studio_iconButton__aVxFx{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid rgba(255,255,255,.09);border-radius:0;background:rgba(255,255,255,.04);color:#fafafa;cursor:pointer;font-family:inherit;font-size:1rem;line-height:1;padding:0;white-space:nowrap}.Studio_iconButton__aVxFx:hover:not(:disabled){background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.15)}.Studio_iconButton__aVxFx:disabled{color:var(--text-tertiary);cursor:default}.Studio_dataLayout__RTqFZ{display:grid;grid-template-columns:164px minmax(0,1fr);gap:1rem;align-items:start}.Studio_experimentsLayout__dJ9_W{display:flex;align-items:flex-start;min-width:0}.Studio_dataNav__Hhqcz{display:flex;flex-direction:column;gap:.25rem;align-self:stretch;min-height:calc(100vh - 8rem);padding:0 1rem 0 0;border-right:1px solid rgba(255,255,255,.08)}.Studio_experimentNav__pUm9S{min-width:220px;max-width:min(520px,45vw);overflow:auto;flex:0 0 auto;border-right:none}.Studio_sidebarResizeHandle__Bfcoi{position:relative;align-self:stretch;flex:0 0 16px;min-height:calc(100vh - 8rem);cursor:col-resize}.Studio_sidebarResizeHandle__Bfcoi:before{content:"";position:absolute;top:0;bottom:0;left:7px;width:1px;background:rgba(255,255,255,.08);transition:background .12s ease}.Studio_sidebarResizeHandle__Bfcoi:hover:before{background:rgba(255,255,255,.22)}.Studio_experimentsMain__8IYj4{margin-left:1rem}.Studio_dataNavItem__rzaJQ{display:inline-flex;align-items:center;justify-content:flex-start;width:fit-content;min-height:32px;border:1px solid transparent;border-radius:0;background:transparent;color:var(--text-tertiary);cursor:pointer;font-family:inherit;font-size:.82rem;padding:0 .65rem;text-align:left}.Studio_dataNavGroupItem__0bfKJ{flex-direction:column;align-items:flex-start;gap:.12rem;width:100%;min-height:48px;padding:.4rem .65rem}.Studio_dataNavItemMeta__PEhqv,.Studio_dataNavItemText__nSadp{display:block;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Studio_experimentNavItem__VrdaI .Studio_dataNavItemMeta__PEhqv,.Studio_experimentNavItem__VrdaI .Studio_dataNavItemText__nSadp{overflow:visible;text-overflow:clip;white-space:normal}.Studio_dataNavItemText__nSadp{color:inherit;line-height:1.2}.Studio_dataNavItemMeta__PEhqv{color:var(--text-tertiary);font-size:.7rem;line-height:1.2}.Studio_dataNavEmpty__sffpq{color:var(--text-tertiary);font-size:.78rem;padding:.5rem .65rem}.Studio_dataNavItem__rzaJQ:hover{color:var(--text-secondary);background:rgba(255,255,255,.03)}.Studio_dataNavItemActive__TANbd{color:#fafafa;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}.Studio_dataMain__rSYxU{min-width:0;flex:1 1 auto}.Studio_surfaceToolbar__ayM6U{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.Studio_surfaceTitle__7SjZP{color:#fafafa;font-size:.95rem;font-weight:600}.Studio_surfaceSubtitle__i6YB6{margin-top:.15rem;color:var(--text-tertiary);font-size:.75rem}.Studio_inlineSelector__er_h_{display:inline-flex;align-items:center;gap:.45rem;min-width:0;width:max-content}.Studio_inlineSelectorLabel__T4g6q{color:var(--text-tertiary);font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.Studio_filterBar__I6G_F{display:flex;justify-content:flex-end;margin-bottom:1rem}.Studio_dangerButton__9Bclj,.Studio_primaryButton__t0Otf,.Studio_secondaryButton__gEhyV,.Studio_select__rbQ0i{height:32px;border-radius:0;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.04);color:#fafafa;font-family:inherit;font-size:.8rem}.Studio_select__rbQ0i{max-width:340px;padding:0 .5rem}.Studio_primaryButton__t0Otf{padding:0 .85rem;cursor:pointer;color:#0a0a0a;background:#fafafa;border-color:#fafafa;font-weight:600}.Studio_dangerButton__9Bclj,.Studio_secondaryButton__gEhyV{padding:0 .75rem;cursor:pointer}.Studio_dangerButton__9Bclj{color:#ffb3a6;background:rgba(232,85,61,.08);border-color:rgba(232,85,61,.22)}.Studio_primaryButton__t0Otf:hover:not(:disabled){background:var(--text-secondary);border-color:var(--text-secondary)}.Studio_secondaryButton__gEhyV:hover:not(:disabled){background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.15)}.Studio_dangerButton__9Bclj:hover:not(:disabled){background:rgba(232,85,61,.13);border-color:rgba(232,85,61,.34)}.Studio_dangerButton__9Bclj:disabled,.Studio_primaryButton__t0Otf:disabled,.Studio_secondaryButton__gEhyV:disabled{color:var(--text-tertiary);cursor:default}.Studio_primaryButton__t0Otf:disabled{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.09)}.Studio_splitSurface__v2lGr{display:grid;grid-template-columns:minmax(240px,340px) minmax(0,1fr);gap:1rem;min-height:560px}.Studio_detailPanel__upjwv,.Studio_emptyPanel__nqsJ1,.Studio_errorPanel__OFovk,.Studio_listPanelEmpty__Ofh2D,.Studio_listPanel__KQbqx,.Studio_loadingPanel__VwGMY{border:1px solid rgba(255,255,255,.08);border-radius:0;background:rgba(255,255,255,.03)}.Studio_listPanel__KQbqx{overflow:auto;max-height:calc(100vh - 280px)}.Studio_emptyPanel__nqsJ1,.Studio_listPanelEmpty__Ofh2D,.Studio_loadingPanel__VwGMY{display:flex;align-items:center;justify-content:center;min-height:260px;color:var(--text-tertiary);font-size:.86rem;text-align:center;padding:2rem}.Studio_listRow__NObDS{display:flex;flex-direction:column;align-items:stretch;gap:.2rem;width:100%;padding:.75rem;border:0;border-bottom:1px solid rgba(255,255,255,.05);background:transparent;color:inherit;font-family:inherit;text-align:left;cursor:pointer}.Studio_listRow__NObDS:hover{background:rgba(255,255,255,.04)}.Studio_listRowSelected__v7gF6{background:rgba(91,141,239,.1);box-shadow:inset 2px 0 0 #5b8def}.Studio_listRowTitle__Dg_xF{color:#fafafa;font-size:.82rem;font-weight:500}.Studio_listRowMeta__fmtZx,.Studio_listRowTitle__Dg_xF{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Studio_listRowMeta__fmtZx{color:var(--text-tertiary);font-size:.72rem}.Studio_detailPanel__upjwv{min-width:0;padding:1rem;overflow:auto;max-height:calc(100vh - 280px)}.Studio_detailHeader__an_N2{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.Studio_detailTitle__H8HXN{margin:0;color:#fafafa;font-size:1rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.Studio_detailMeta__F__Kq,.Studio_mutedText__gxlbZ{margin-top:.2rem;color:var(--text-tertiary);font-size:.74rem;overflow-wrap:anywhere}.Studio_detailLink__QdlV6{color:#5b8def;font-size:.78rem;text-decoration:none}.Studio_detailLink__QdlV6:hover{text-decoration:underline}.Studio_detailGrid__eKjPQ{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.Studio_jsonBlock__V4yWY{min-width:0;margin-bottom:.75rem}.Studio_jsonTitle__4rJZO,.Studio_sectionTitle__AgJZy{margin-bottom:.35rem;color:var(--text-secondary);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.Studio_jsonPre__NT0BZ{max-height:320px;overflow:auto;margin:0;padding:.75rem;border-radius:0;background:rgba(0,0,0,.28);color:var(--text-secondary);font-size:.75rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.Studio_traceSection__7pMTX{margin-top:1rem}.Studio_traceHeader__Ulrn7{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.6rem}.Studio_traceName__YsChW{color:#fafafa;font-size:.9rem;font-weight:600;overflow-wrap:anywhere}.Studio_tagRow__Prgun{display:flex;flex-wrap:wrap;gap:.35rem;margin:.75rem 0}.Studio_tagPill__TRnnW{display:inline-flex;align-items:center;min-height:22px;padding:0 .45rem;border-radius:0;background:rgba(91,141,239,.12);color:#9ebcff;border:1px solid rgba(91,141,239,.22);font-size:.7rem;font-weight:500}.Studio_errorPanel__OFovk{margin-bottom:1rem;padding:.75rem;color:#ffb3a6;background:rgba(232,85,61,.1);border-color:rgba(232,85,61,.3);font-size:.82rem}.Studio_successPanel__03cvQ{margin-bottom:1rem;padding:.75rem;color:#b8f5df;background:rgba(0,212,170,.08);border:1px solid rgba(0,212,170,.22);border-radius:0;font-size:.82rem}.Studio_evalDefinitionGrid__YMID0{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.Studio_evalDefinitionCell__wS4ZE{min-width:0}.Studio_evalDefinitionCode___J0aO{display:block;width:fit-content;max-width:100%;margin-top:.2rem;background:rgba(0,0,0,.24);color:var(--text-tertiary);font-size:.72rem;padding:.1rem .28rem;overflow-wrap:anywhere}.Studio_evalHistorySection__e_91j{margin-top:1rem}.Studio_evalSectionHeader___IiLV{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.Studio_evalSummaryTable__gZ5vh{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}.Studio_evalSummaryHeader__ku_ov,.Studio_evalSummaryRow__KtPSR{display:grid;grid-template-columns:minmax(180px,1.35fr) minmax(180px,1.35fr) 80px 80px 160px;gap:.75rem;align-items:center}.Studio_evalSummaryHeader__ku_ov{padding:.55rem .75rem;border-bottom:1px solid rgba(255,255,255,.08);color:var(--text-tertiary);font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.Studio_evalSummaryRow__KtPSR{padding:.65rem .75rem;border-bottom:1px solid rgba(255,255,255,.05);color:var(--text-secondary);font-size:.78rem}.Studio_evalSummaryRow__KtPSR:last-child{border-bottom:0}.Studio_evalSummaryMeta__RgcSF,.Studio_evalSummaryPrimary__VAArE{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Studio_evalSummaryPrimary__VAArE{color:#fafafa;font-weight:500}.Studio_evalSummaryMeta__RgcSF{margin-top:.12rem;color:var(--text-tertiary);font-size:.7rem}.Studio_setupBanner__rn3R6{margin-bottom:1rem;border:1px solid rgba(245,166,35,.34);border-radius:0;background:rgba(245,166,35,.08);padding:.85rem}.Studio_setupTitle__rrPH_{color:#fafafa;font-size:.88rem;font-weight:600}.Studio_setupCopy__InFUm{margin-top:.2rem;color:var(--text-secondary);font-size:.8rem;line-height:1.5}.Studio_setupHeader__0z51Y{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.Studio_setupState__u13N3{display:inline-flex;align-items:center;min-height:22px;border-radius:0;padding:0 .45rem;color:#f5c77b;background:rgba(245,166,35,.1);border:1px solid rgba(245,166,35,.3);font-size:.68rem;font-weight:600;white-space:nowrap}.Studio_setupGrid__43Ac0{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:.8rem}.Studio_setupBlock__pXdLU{min-width:0}.Studio_setupBlockTitle__HS_1S{display:block;margin-bottom:.35rem;color:var(--text-tertiary);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.Studio_setupCode__3AADb{display:block;width:fit-content;max-width:100%;margin-top:.25rem;border-radius:0;background:rgba(0,0,0,.26);color:#fafafa;padding:.18rem .38rem;font-size:.72rem;overflow-wrap:anywhere}.Studio_setupDetail__BYnnc,.Studio_setupLookup__S7xvC{margin-top:.75rem;color:var(--text-tertiary);font-size:.75rem;line-height:1.5;overflow-wrap:anywhere}.Studio_setupLookupLabel__OOHGt{color:var(--text-secondary);font-weight:600;margin-right:.35rem}.Studio_ideaMetaGrid__QA5ZP{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:.75rem}.Studio_metaCell__lTOia{min-width:0}.Studio_metaLabel__orMyw{display:block;color:var(--text-tertiary);font-size:.7rem}.Studio_metaValue__wPOIw{display:block;margin-top:.1rem;color:var(--text-secondary);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Studio_descriptionBlock__RgZHz{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-secondary);font-size:.84rem;line-height:1.55}.Studio_formRow__CkHSQ{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.Studio_formLabel__pObCQ{color:var(--text-tertiary);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.Studio_textInput__9WjCF{min-height:34px;padding:0 .65rem}.Studio_textAreaLarge__20NQc,.Studio_textArea__yi_Lm,.Studio_textInput__9WjCF{border:1px solid rgba(255,255,255,.1);border-radius:0;background:rgba(0,0,0,.26);color:#fafafa;font-family:inherit;font-size:.84rem}.Studio_textAreaLarge__20NQc,.Studio_textArea__yi_Lm{min-height:96px;resize:vertical;line-height:1.45;padding:.6rem .65rem}.Studio_textAreaLarge__20NQc{min-height:180px;font-family:Geist Mono,ui-monospace,monospace;font-size:.78rem}.Studio_textAreaLarge__20NQc::placeholder,.Studio_textArea__yi_Lm::placeholder,.Studio_textInput__9WjCF::placeholder{color:var(--text-tertiary)}.Studio_actionRow__0pQf0{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.Studio_actionFooter__wFiYP{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.08)}.Studio_emptyState__dwICN{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:560px;gap:.9rem;text-align:center}.Studio_emptyLogo__ehso4{width:220px;height:auto;opacity:.85}.Studio_emptyTitle__ByiEP{margin:0;color:#fafafa;font-size:1.45rem;font-weight:600}.Studio_emptyCopy__NP7hT,.Studio_emptyMeta__Bsrtp,.Studio_emptyPanelCopy__EExQw{color:var(--text-tertiary);font-size:.86rem;line-height:1.5}.Studio_emptyPanel__nqsJ1{flex-direction:column;gap:.35rem}.Studio_emptyPanelTitle__g31eb{color:#fafafa;font-size:.95rem;font-weight:600}.Studio_runTracesOverlay__Obe3a{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.Studio_runTracesPanel__nh_gK{display:flex;flex-direction:column;width:90vw;max-width:1100px;height:85vh;background:#111;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden}.Studio_runTracesPanelHeader__gJlWU{display:flex;align-items:flex-start;justify-content:space-between;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid rgba(255,255,255,.06)}.Studio_runTracesPanelTitle__gUr1M{font-size:1.1rem;font-weight:500;margin:0;color:#fff}.Studio_runTracesPanelClose__SV_Tp{display:flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:1.2rem;color:rgba(255,255,255,.5);background:none;border:none;border-radius:4px;cursor:pointer}.Studio_runTracesPanelClose__SV_Tp:hover{color:#fff;background:rgba(255,255,255,.08)}.Studio_runTracesScores__OEEiI{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.06)}.Studio_runTracesScoreChip__lujZE{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.75rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:4px}.Studio_runTracesScoreLabel__rb3rj{color:rgba(255,255,255,.5)}.Studio_runTracesScoreValue__aWrWN{color:#fff;font-weight:500}.Studio_runTracesDetail__vStOu{flex:1 1;overflow-y:auto;padding:1rem 1.5rem}.Studio_runTracesTableWrap__V4tCd{flex:1 1;overflow-y:auto;padding:0 1.5rem 1rem}.Studio_runTracesTable__FzXJs{width:100%;border-collapse:collapse;font-size:.8rem}.Studio_runTracesTable__FzXJs th{position:sticky;top:0;padding:.5rem .75rem;text-align:left;font-weight:500;color:rgba(255,255,255,.5);background:#111;border-bottom:1px solid rgba(255,255,255,.08)}.Studio_runTracesTable__FzXJs td{padding:.5rem .75rem;color:rgba(255,255,255,.85);border-bottom:1px solid rgba(255,255,255,.04)}.Studio_runTracesTableRowClickable__sdAb4{cursor:pointer;transition:background .1s}.Studio_runTracesTableRowClickable__sdAb4:hover{background:rgba(255,255,255,.04)}.Studio_runTracesTableId__zVZBX{font-family:Geist Mono,ui-monospace,monospace;font-size:.75rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Studio_runTracesTraceLink___ot6u{color:rgba(99,102,241,.8);font-weight:500}.Studio_backButton__sPEo0{display:inline-flex;align-items:center;gap:.3rem;margin-bottom:1rem;padding:.35rem .7rem;font-size:.8rem;color:rgba(255,255,255,.7);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:4px;cursor:pointer;transition:background .15s}.Studio_backButton__sPEo0:hover{background:rgba(255,255,255,.08);color:#fff}@media (max-width:900px){.Studio_topBar__OlLt6{grid-template-columns:minmax(0,1fr);align-items:stretch}.Studio_surfaceNav__RKZjS{overflow-x:auto}.Studio_actionFooter__wFiYP,.Studio_detailHeader__an_N2,.Studio_setupHeader__0z51Y,.Studio_surfaceBanner__UNvfB,.Studio_surfaceToolbar__ayM6U,.Studio_traceHeader__Ulrn7{flex-direction:column;align-items:stretch}.Studio_syncStatus__exlkz{justify-content:flex-start}.Studio_dataLayout__RTqFZ,.Studio_detailGrid__eKjPQ,.Studio_evalDefinitionGrid__YMID0,.Studio_evalSummaryHeader__ku_ov,.Studio_evalSummaryRow__KtPSR,.Studio_ideaMetaGrid__QA5ZP,.Studio_setupGrid__43Ac0,.Studio_splitSurface__v2lGr{grid-template-columns:1fr}.Studio_detailPanel__upjwv,.Studio_listPanel__KQbqx{max-height:none}}.SystemSelector_wrapper__ERtiP{display:inline-flex;align-items:center;gap:.45rem;min-width:0;width:max-content}.SystemSelector_label__4i0LZ{color:var(--text-tertiary,#666);font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.SystemSelector_select__NXXNb{width:auto;max-width:280px;height:32px;border:1px solid rgba(255,255,255,.1);border-radius:0;background:rgba(255,255,255,.04);color:var(--text-primary,#fafafa);font-family:inherit;font-size:.84rem;padding:0 1.85rem 0 .65rem;cursor:pointer}.SystemSelector_select__NXXNb:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16)}.Runs_layout__Ih4Cn{display:flex;flex:1 1;min-height:100%;background:#0a0a0a}.Runs_heroLogo__BAUu8{width:240px;height:auto;opacity:.85}.Runs_headerLogo__TgYiK{width:18px;height:18px;object-fit:contain;border-radius:0;flex-shrink:0}.Runs_container__0aqIq{flex:1 1;min-width:0;margin:0;padding:2rem;font-family:Geist,ui-sans-serif,system-ui,-apple-system,sans-serif;background:#0a0a0a;color:#fafafa;min-height:100%;box-sizing:border-box;overflow-x:hidden}.Runs_headerRow__abEUi{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:.5rem}.Runs_title__oroey{font-size:1rem;font-weight:500;margin:0;color:#fff;white-space:nowrap;flex-shrink:0}.Runs_connectedBadge__d1Ss1{border:1px solid rgba(0,212,170,.4);color:#00d4aa;background:rgba(0,212,170,.1)}.Runs_connectedBadge__d1Ss1,.Runs_disconnectedBadge__v3kiS{font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:1px;padding:.2rem .6rem}.Runs_disconnectedBadge__v3kiS{border:1px solid rgba(245,166,35,.4);color:#f5a623;background:rgba(245,166,35,.1)}.Runs_systemTabs__Gtuvz{display:flex;gap:.25rem;margin-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.06);padding-bottom:0;overflow-x:auto}.Runs_systemTab__XYpgy{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-tertiary);font-family:inherit;font-size:.85rem;font-weight:400;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.Runs_systemTab__XYpgy:hover{color:var(--text-secondary)}.Runs_systemTabActive__10lyk{color:#fff;border-bottom-color:#00d4aa}.Runs_systemTabName__pER4w{font-weight:400}.Runs_systemTabStatus__YbTNa{font-size:.6rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;padding:.1rem .4rem}.Runs_systemStatus_in_progress__i_6lJ{color:#00d4aa;background:rgba(0,212,170,.1);border:1px solid rgba(0,212,170,.3)}.Runs_systemStatus_completed__pjTng{color:#5b8def;background:rgba(91,141,239,.1);border:1px solid rgba(91,141,239,.3)}.Runs_systemStatus_not_started__FqOI6{color:var(--text-tertiary);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}.Runs_subtitle__ZfT5k{color:var(--text-tertiary);font-size:.75rem;font-weight:400;line-height:1.4;margin-top:.15rem}.Runs_targetBadge__XoNhG{font-size:.65rem;color:var(--text-tertiary);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:0;padding:.1rem .4rem;white-space:nowrap;flex-shrink:0}.Runs_grid__7DXl9{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-bottom:3rem}.Runs_card__AxGEL{border:1px solid rgba(255,255,255,.08);padding:1.5rem;background:rgba(255,255,255,.03);transition:border-color .4s,box-shadow .4s;min-width:0;overflow:hidden}.Runs_card__AxGEL:hover{border-color:rgba(255,255,255,.15)}@keyframes Runs_cardGlow__mf3t7{0%{border-color:rgba(0,212,170,.8);box-shadow:0 0 20px rgba(0,212,170,.15),inset 0 0 20px rgba(0,212,170,.03)}to{border-color:rgba(255,255,255,.08);box-shadow:none}}@keyframes Runs_badgePop__PdKoP{0%{transform:scale(1.3);filter:brightness(1.8)}40%{transform:scale(.95)}to{transform:scale(1);filter:brightness(1)}}@keyframes Runs_textHighlight__9znCz{0%{color:#00d4aa}to{color:var(--text-secondary)}}@keyframes Runs_slideInFade__SsIak{0%{opacity:0;transform:translateY(-8px);background:rgba(0,212,170,.12)}40%{opacity:1;transform:translateY(0)}to{background:transparent}}@keyframes Runs_diagramPulse__yN0dx{0%{border-color:rgba(0,212,170,.5);background:rgba(0,212,170,.06)}to{border-color:rgba(255,255,255,.06);background:rgba(255,255,255,.04)}}.Runs_cardFlash__pXo7_{animation:Runs_cardGlow__mf3t7 1.2s ease-out forwards}.Runs_badgeFlash__Q0C8G{animation:Runs_badgePop__PdKoP .5s cubic-bezier(.34,1.56,.64,1) forwards}.Runs_textFlash__O_0mj{animation:Runs_textHighlight__9znCz 1.2s ease-out forwards}.Runs_rowSlideIn__rGZ9I{animation:Runs_slideInFade__SsIak .8s ease-out forwards}.Runs_diagramFlash__4ZTFP{animation:Runs_diagramPulse__yN0dx 1.2s ease-out forwards}.Runs_cardHeader__7EpGx{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.Runs_cardTitle__l82f2{font-size:1.1rem;font-weight:300;letter-spacing:-.2px;margin:0;color:#fff}.Runs_bestAccuracyInline__0XYna{margin-left:auto;font-size:.9rem;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#00d4aa}.Runs_linearIssueLink__aVa6L{display:inline-flex;align-items:center;gap:.3rem;max-width:100%;min-height:24px;padding:0 .35rem;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:var(--text-secondary);font-size:.72rem;font-weight:600;text-decoration:none;white-space:nowrap}.Runs_linearIssueLink__aVa6L span{min-width:0;overflow:hidden;text-overflow:ellipsis}.Runs_linearIssueLink__aVa6L:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16);color:#fafafa}.Runs_linearIssueLink__aVa6L img{display:block;width:14px;height:14px;object-fit:contain}.Runs_statusBadge__T4ifS{display:inline-block;padding:.2rem .6rem;font-size:.6rem;font-weight:500;text-transform:uppercase;letter-spacing:1px;flex-shrink:0}.Runs_detailTitleStack__a_E4h{display:flex;flex-direction:column;min-width:0;gap:.35rem}.Runs_runProgressBlock__Hg4fw{margin-bottom:1rem;padding:.75rem;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}.Runs_runProgressHeader__e69Sy{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.45rem;color:var(--text-secondary);font-size:.76rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.Runs_runProgressTrack__c_Wjv{height:8px;background:rgba(255,255,255,.08);overflow:hidden}.Runs_runProgressFill__JOLgM{height:100%;background:#00d4aa}.Runs_runMetaGrid__kiPS9{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:1rem}.Runs_runMetaCell__lEV1l{min-width:0;padding:.6rem .65rem;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025)}.Runs_runMetaLabel__DxMGL{display:block;color:var(--text-tertiary);font-size:.65rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.Runs_runMetaValue__gJoib{display:block;min-width:0;margin-top:.18rem;color:var(--text-secondary);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Runs_detailEmpty__wy74V{padding:.75rem;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);color:var(--text-tertiary);font-size:.8rem}.Runs_metricsTable__C_A_z{font-size:.8rem;margin-bottom:1rem;table-layout:fixed}.Runs_metricsTable__C_A_z td,.Runs_metricsTable__C_A_z th{padding:.5rem;text-align:center;border-bottom:1px solid rgba(255,255,255,.06)}.Runs_metricsTable__C_A_z th{font-weight:500;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);background:transparent;cursor:help;-webkit-text-decoration:underline dotted rgba(250,250,250,.2);text-decoration:underline dotted rgba(250,250,250,.2);text-underline-offset:3px}.Runs_metricsTable__C_A_z td{color:var(--text-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.Runs_iterRowClickable__g1tjc{cursor:pointer;transition:background .15s}.Runs_iterRowClickable__g1tjc:hover{background:rgba(255,255,255,.04)}.Runs_iterRowExpanded__Nbl8_{background:rgba(255,255,255,.03)}.Runs_iterRowExpanded__Nbl8_ td{border-bottom-color:transparent}.Runs_bestRow__A_kku{background:rgba(0,212,170,.06)}.Runs_bestRow__A_kku.Runs_iterRowClickable__g1tjc:hover{background:rgba(0,212,170,.1)}.Runs_bestRow__A_kku td{color:#00d4aa;font-weight:500}.Runs_iterDetailRow__y10KK td{padding:0;border-bottom:1px solid rgba(255,255,255,.06)}.Runs_cardFooter__o_f_i{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem .9rem;font-size:.7rem;color:var(--text-tertiary);letter-spacing:.2px;padding-top:.35rem}.Runs_footerUpdated__21L7o{margin-left:auto}.Runs_chartContainer__bTh0u{border:1px solid rgba(255,255,255,.08);padding:1.5rem;background:rgba(255,255,255,.03)}.Runs_chartTitle__OkYqw{font-size:1.25rem;font-weight:300;letter-spacing:-.3px;margin:0 0 1.25rem;color:#fff}.Runs_chart__XhGIf{display:flex;flex-direction:column;gap:.35rem}.Runs_chartRow__DbGz_{display:flex;align-items:center;gap:1rem;height:32px}.Runs_chartLabel__3FlRl{width:180px;font-size:.75rem;font-weight:400;text-align:right;flex-shrink:0;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Runs_chartBarContainer__zzYv4{flex:1 1;display:flex;align-items:center;gap:.5rem}.Runs_chartBarTrack__5ogbA{flex:1 1;height:24px;position:relative;background:transparent}.Runs_chartBar__64D55{height:100%;background:#00d4aa;transition:width .3s ease}.Runs_chartRowClickable__RxDfH{cursor:pointer;transition:background .15s}.Runs_chartRowClickable__RxDfH:hover{background:rgba(255,255,255,.04)}.Runs_chartValue__lmV61{font-size:.85rem;font-weight:500;white-space:nowrap;color:var(--text-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;width:52px;text-align:right;flex-shrink:0}.Runs_metricsTable__C_A_z{width:100%;border-collapse:collapse;font-size:.85rem}.Runs_metricsTableHeader__8d74Z{font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);padding:.4rem .75rem;border-bottom:1px solid rgba(255,255,255,.08);text-align:left}.Runs_metricsTableRow__FEGrk{border-bottom:1px solid rgba(255,255,255,.04)}.Runs_metricsTableRow__FEGrk:hover{background:rgba(255,255,255,.03)}.Runs_metricsTableLabel__K8De_{padding:.5rem .75rem;color:var(--text-secondary);font-weight:400;white-space:nowrap}.Runs_metricsTableValue__kaegJ{padding:.5rem .75rem;text-align:right;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-primary);white-space:nowrap}.Runs_metricsTableBarCell__8h1wf{padding:.5rem .75rem}.Runs_metricsTableBarTrack__b_CnH{height:6px;border-radius:0;background:rgba(255,255,255,.06);overflow:hidden}.Runs_metricsTableBar__HScEe{height:100%;border-radius:0;background:#00d4aa;transition:width .3s ease}.Runs_chartItems__Quwyx{font-size:.65rem;color:var(--text-tertiary);width:32px;text-align:right;flex-shrink:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.Runs_noData__fi5_n{color:var(--text-tertiary);text-align:center;padding:3rem;font-size:.9rem}.Runs_runSection__Ggi_B{margin-bottom:.75rem}.Runs_runSection__Ggi_B:last-child{margin-bottom:0}.Runs_runLabel__uGajV{display:block;font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);margin-bottom:.3rem}.Runs_treeForest__6GBAM{overflow-x:auto;overflow-y:hidden;padding-bottom:2rem;margin-bottom:3rem}.Runs_treeSvg___AATo{display:block;flex-shrink:0}.Runs_treeNodeCard__Y5XEX{width:100%;height:100%;box-sizing:border-box;padding:.5rem .6rem;background:#0d0d0d;border:1px solid rgba(255,255,255,.08);cursor:pointer;text-align:left;font-family:Geist,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#fafafa;transition:border-color .2s,box-shadow .2s,background .2s;display:flex;flex-direction:column;overflow:hidden}.Runs_treeNodeCard__Y5XEX:hover{border-color:rgba(255,255,255,.2);background:#131313}.Runs_treeNodeSelected__QaPg2{border-color:rgba(0,212,170,.5);box-shadow:0 0 12px rgba(0,212,170,.1);background:#0b1210}.Runs_treeNodeBest__U8FaL{box-shadow:0 0 0 1px rgba(0,212,170,.3),0 0 16px rgba(0,212,170,.08)}@keyframes Runs_nodeHighlight__Zuhi5{0%{border-color:rgba(91,141,239,1);box-shadow:0 0 24px rgba(91,141,239,.4),inset 0 0 12px rgba(91,141,239,.05)}70%{border-color:rgba(91,141,239,.6);box-shadow:0 0 16px rgba(91,141,239,.2)}to{border-color:rgba(255,255,255,.08);box-shadow:none}}.Runs_treeNodeHighlight__A7a9x{animation:Runs_nodeHighlight__Zuhi5 5s ease-out forwards}.Runs_treeNodeName__XtYDH{font-size:.65rem;font-weight:400;color:#fff;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;margin-bottom:.15rem}.Runs_treeNodeBadgeRow__ZwAvw{display:flex;align-items:center;gap:.3rem;margin-bottom:.15rem}.Runs_treeNodeBadge__jLVIw{display:inline-block;padding:.1rem .3rem;font-size:.5rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.Runs_treeNodeElapsed__vsyq2{font-size:.5rem;color:var(--text-tertiary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.Runs_treeNodeScoreRow__BN81e{margin-bottom:.25rem;min-height:1.2rem;display:flex;align-items:center}.Runs_treeNodeIssueRow__7fXg_{min-width:0;margin-top:auto}.Runs_treeNodeIssueRow__7fXg_ .Runs_linearIssueLink__aVa6L{width:100%;min-height:22px;font-size:.58rem;padding:0 .28rem}.Runs_treeNodeIssueRow__7fXg_ .Runs_linearIssueLink__aVa6L img{width:12px;height:12px}.Runs_treeNodeAccuracy__ehSVZ{font-size:1rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#00d4aa;letter-spacing:-.3px}.Runs_treeNodeItems__4SRsq{font-size:.6rem;color:var(--text-tertiary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-left:.3rem}.Runs_treeNodeLoading__P7_CS{display:flex;align-items:center;gap:.4rem}@keyframes Runs_pulse__LMgDF{0%,to{opacity:.3}50%{opacity:1}}.Runs_treeNodePulse__nC6rt{width:6px;height:6px;border-radius:0;background:#f5a623;animation:Runs_pulse__LMgDF 1.5s ease-in-out infinite}.Runs_treeNodeLoadingText__C1_bJ{font-size:.7rem;color:var(--text-tertiary);font-weight:400}@keyframes Runs_slideInFromRight__uHSvO{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes Runs_fadeIn__1nqka{0%{opacity:0}to{opacity:1}}.Runs_detailPanelBackdrop__UMPlF{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99;animation:Runs_fadeIn__1nqka .15s ease-out}.Runs_detailPanel__BII9F{position:fixed;top:0;right:0;width:50vw;max-width:90vw;height:100vh;background:#0f0f0f;border-left:1px solid rgba(255,255,255,.08);overflow-y:auto;z-index:100;padding:2rem;animation:Runs_slideInFromRight__uHSvO .2s ease-out}.Runs_detailPanelClose__vgQbo{position:absolute;top:1rem;right:1rem;background:none;border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);font-size:1.25rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s,border-color .15s;font-family:inherit}.Runs_detailPanelClose__vgQbo:hover{color:#fff;border-color:rgba(255,255,255,.2)}.Runs_detailPanelHeader__XMEDA{display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding-right:2.5rem}.Runs_detailPanelTitle__vAuOY{font-size:1.3rem;font-weight:300;letter-spacing:-.3px;margin:0;color:#fff}.Runs_viewTracesButton__W3KMl{display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;padding:.5rem 1rem;font-size:.8rem;font-weight:500;color:#fff;background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.4);border-radius:6px;cursor:pointer;transition:background .15s,border-color .15s}.Runs_viewTracesButton__W3KMl:hover{background:rgba(99,102,241,.25);border-color:rgba(99,102,241,.6)}.Leaderboard_tableWrapper__6uunR{overflow-x:auto;margin:1.5rem 0;border-radius:0;border:1px solid rgba(255,255,255,.08)}.Leaderboard_table__8gTqK{width:100%;border-collapse:collapse;font-size:.82rem;font-family:Geist,ui-sans-serif,system-ui,sans-serif}.Leaderboard_noData__aKd3L{color:rgba(255,255,255,.3);font-style:italic;text-align:center;padding:2rem 0}.Leaderboard_table__8gTqK thead{background:rgba(255,255,255,.03);border-bottom:1px solid rgba(255,255,255,.1);position:sticky;top:0;z-index:1}.Leaderboard_table__8gTqK th{padding:.6rem .75rem;text-align:right;color:rgba(255,255,255,.45);font-weight:500;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;-webkit-user-select:none;user-select:none}.Leaderboard_thRank__e16FK{width:2rem;text-align:center!important}.Leaderboard_thName__i_zQZ{text-align:left!important;min-width:180px}.Leaderboard_thStatus__F4ZyW{width:2.5rem;text-align:center!important}.Leaderboard_thMetric__ZMVo_{cursor:pointer;transition:color .15s ease;min-width:5rem}.Leaderboard_thMetric__ZMVo_:hover{color:rgba(255,255,255,.8)}.Leaderboard_thPrimary__SzN76{color:rgba(0,212,170,.7)}.Leaderboard_thPrimary__SzN76:hover{color:rgba(0,212,170,1)}.Leaderboard_thSorted__13fmP{color:rgba(255,255,255,.9)!important}.Leaderboard_thPrimary__SzN76.Leaderboard_thSorted__13fmP{color:rgba(0,212,170,1)!important}.Leaderboard_thLabel__2cqYD{margin-right:.3rem}.Leaderboard_sortArrow__3IJre{font-size:.55rem;vertical-align:middle;opacity:.8}.Leaderboard_thItems__3MS6a{width:3rem;text-align:right}.Leaderboard_thStarted__9zNIp{width:11rem;text-align:left!important}.Leaderboard_row__A9H8t{border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer;transition:background-color .15s ease;will-change:transform}.Leaderboard_row__A9H8t:hover{background:rgba(255,255,255,.04)}.Leaderboard_rowBest__JCqYu{background:rgba(0,212,170,.04)}.Leaderboard_rowBest__JCqYu:hover{background:rgba(0,212,170,.08)}.Leaderboard_rowSelected__GFyz5{background:rgba(0,120,255,.08)!important;box-shadow:inset 3px 0 0 rgba(0,120,255,.6)}.Leaderboard_table__8gTqK td{padding:.55rem .75rem;text-align:right;color:rgba(255,255,255,.75);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.Leaderboard_tdRank__kZKT_{text-align:center!important;color:rgba(255,255,255,.3);font-size:.72rem}.Leaderboard_tdName__2ymmx{text-align:left!important;display:flex;align-items:center;gap:.5rem}.Leaderboard_expName__6rkrZ{color:rgba(255,255,255,.9);font-weight:450}.Leaderboard_bestBadge__33jMs{font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#0a0a0a;background:rgba(0,212,170,.85);padding:.1rem .35rem;border-radius:0;flex-shrink:0}.Leaderboard_tdStatus__zRhgm{text-align:center!important}.Leaderboard_statusDot__hEPYp{display:inline-block;width:7px;height:7px;border-radius:0}.Leaderboard_tdMetric__Ll0O_{font-family:Geist Mono,ui-monospace,monospace;font-size:.8rem}.Leaderboard_tdPrimary__SZr_5{color:rgba(0,212,170,.9);font-weight:500}.Leaderboard_metricEmpty__l1hwN{color:rgba(255,255,255,.15)}.Leaderboard_tdItems__4_5Q6{color:rgba(255,255,255,.3);font-size:.72rem}.Leaderboard_tdStarted__p97S3{color:rgba(255,255,255,.45);font-size:.72rem;text-align:left!important;white-space:nowrap}
package/dist/lib/env.js DELETED
@@ -1,2 +0,0 @@
1
- import "../shared/env-file.js";
2
- import "../shared/env.js";
@@ -1,4 +0,0 @@
1
- import "./env-file.js";
2
- import "node:path";
3
- import "node:fs";
4
- import "node:os";