@percepta/kaizen 0.5.1 → 0.6.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 (51) hide show
  1. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/BUILD_ID +1 -1
  2. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/build-manifest.json +20 -20
  3. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/routes-manifest.json +14 -2
  5. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/chunks/715.js +6 -0
  6. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/middleware-build-manifest.js +1 -1
  7. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/404.html +1 -1
  8. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/500.html +1 -1
  9. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/benchmarks.html +1 -1
  10. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/benchmarks.js.nft.json +1 -1
  11. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/data.html +1 -1
  12. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/data.js.nft.json +1 -1
  13. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/eval.html +1 -1
  14. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/eval.js.nft.json +1 -1
  15. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/experiments.html +1 -1
  16. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/experiments.js.nft.json +1 -1
  17. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/ideas.html +1 -1
  18. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/ideas.js.nft.json +1 -1
  19. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/linear-ideas.js +2 -2
  20. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/run-traces.js +1 -0
  21. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/run-traces.js.nft.json +1 -0
  22. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/systems.js +1 -1
  23. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/trace-renderer.js +1 -0
  24. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/trace-renderer.js.nft.json +1 -0
  25. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/index.html +1 -1
  26. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/index.js.nft.json +1 -1
  27. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages-manifest.json +5 -3
  28. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/YpQ-I4VL-aEdQrM5uN7_3/_buildManifest.js +1 -0
  29. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/673-ed4be46027ae7a37.js +6 -0
  30. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/{benchmarks-ea3ad9fe4e28dd88.js → benchmarks-559dc9df52db3af4.js} +1 -1
  31. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/{data-57686b9546f2794a.js → data-644e4280b4c86fe0.js} +1 -1
  32. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/eval-3c911ea8744631fd.js +1 -0
  33. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/experiments-42f31600c2bb47ad.js +1 -0
  34. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/ideas-6829a271003150a9.js +1 -0
  35. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/index-1d8b6719f49e4ae0.js +1 -0
  36. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/css/b18a6732b96168e1.css +1 -0
  37. package/dashboard/.next/standalone/packages/kaizen/package.json +2 -1
  38. package/dist/lib/system.js.map +1 -1
  39. package/dist/package.js +2 -1
  40. package/dist/types.d.ts +21 -1
  41. package/dist/types.d.ts.map +1 -1
  42. package/package.json +2 -1
  43. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/chunks/424.js +0 -3
  44. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/374-421036d63d323cc9.js +0 -3
  45. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/eval-d9b5f1b8db0f0f90.js +0 -1
  46. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/experiments-4d2122d6ada9a04a.js +0 -1
  47. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/ideas-6c1ff7f9e0da750b.js +0 -1
  48. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/index-1556edd8356dd19f.js +0 -1
  49. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/css/e75cf1946c214544.css +0 -1
  50. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/q7hDbHI4NR8DdLDV3kWYh/_buildManifest.js +0 -1
  51. /package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/{q7hDbHI4NR8DdLDV3kWYh → YpQ-I4VL-aEdQrM5uN7_3}/_ssgManifest.js +0 -0
@@ -0,0 +1,6 @@
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 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[580],{4662:(s,e,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/[system]/benchmarks",function(){return n(9329)}])},9329:(s,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});var _=n(144),u=n(374);function r(){return(0,_.jsx)(u.W,{surface:"benchmarks"})}}},s=>{s.O(0,[431,374,636,593,792],()=>s(s.s=4662)),_N_E=s.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[580],{4662:(s,e,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/[system]/benchmarks",function(){return n(9329)}])},9329:(s,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});var _=n(144),u=n(8673);function r(){return(0,_.jsx)(u.W,{surface:"benchmarks"})}}},s=>{s.O(0,[431,673,636,593,792],()=>s(s.s=4662)),_N_E=s.O()}]);
@@ -1 +1 @@
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(374);function t(){return(0,e.jsx)(n.W,{surface:"data"})}}},_=>{_.O(0,[431,374,636,593,792],()=>_(_.s=318)),_N_E=_.O()}]);
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()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[250],{9403:(e,s,_)=>{"use strict";_.r(s),_.d(s,{default:()=>r});var n=_(144),u=_(8673);function r(){return(0,n.jsx)(u.W,{surface:"benchmarks"})}},9578:(e,s,_)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/[system]/eval",function(){return _(9403)}])}},e=>{e.O(0,[431,673,636,593,792],()=>e(e.s=9578)),_N_E=e.O()}]);
@@ -0,0 +1 @@
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()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[912],{4983:(s,e,_)=>{"use strict";_.r(e),_.d(e,{default:()=>r});var u=_(144),n=_(8673);function r(){return(0,u.jsx)(n.W,{surface:"ideas"})}},8694:(s,e,_)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/[system]/ideas",function(){return _(4983)}])}},s=>{s.O(0,[431,673,636,593,792],()=>s(s.s=8694)),_N_E=s.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[332],{1881:(e,_,n)=>{"use strict";n.r(_),n.d(_,{default:()=>r});var u=n(144),s=n(8673);function r(){return(0,u.jsx)(s.W,{surface:"experiments"})}},4842:(e,_,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return n(1881)}])}},e=>{e.O(0,[431,673,636,593,792],()=>e(e.s=4842)),_N_E=e.O()}]);
@@ -0,0 +1 @@
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}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@percepta/kaizen",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "description": "Automated AI researcher that improves AI systems",
5
5
  "keywords": [
6
6
  "ai",
@@ -51,6 +51,7 @@
51
51
  "kaizen": "tsx src/index.ts"
52
52
  },
53
53
  "dependencies": {
54
+ "esbuild": "^0.25.0",
54
55
  "tsx": "^4.21.0",
55
56
  "yaml": "^2.8.2"
56
57
  },
@@ -1 +1 @@
1
- {"version":3,"file":"system.js","names":["parseYaml"],"sources":["../../src/lib/system.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { parse as parseYaml } from \"yaml\";\n\nexport type EvalStyle = \"ground-truth\" | \"llm-as-judge\" | \"hybrid\";\nexport type ExecutionMode = \"in_process\" | \"server\";\n\nexport interface SubgroupDef {\n name: string;\n field: string;\n}\n\nexport interface SystemFrontmatter {\n name: string;\n description?: string;\n run_eval: string;\n eval_version: number;\n dataset_version: string;\n eval_style?: EvalStyle;\n primary_metric: string;\n target?: number;\n execution_mode?: ExecutionMode;\n kaizen_version?: string;\n subgroups?: SubgroupDef[];\n [key: string]: unknown;\n}\n\nexport interface SystemDef {\n id: string;\n path: string;\n frontmatter: SystemFrontmatter;\n body: string;\n}\n\nexport function systemPath(workspaceRoot: string, id: string): string {\n return join(workspaceRoot, \"systems\", `${id}.md`);\n}\n\nexport function loadSystem(workspaceRoot: string, id: string): SystemDef {\n const path = systemPath(workspaceRoot, id);\n if (!existsSync(path)) {\n throw new Error(\n `system \"${id}\" not found at ${path}. run \\`kaizen create system ${id}\\` to scaffold one.`,\n );\n }\n const text = readFileSync(path, \"utf-8\");\n const { frontmatter, body } = splitFrontmatter(text);\n if (!frontmatter) {\n throw new Error(`system ${id}: no YAML frontmatter found in ${path}`);\n }\n const fm = parseYaml(frontmatter) as Partial<SystemFrontmatter> | null;\n if (!fm || typeof fm !== \"object\") {\n throw new Error(`system ${id}: frontmatter is not a YAML mapping`);\n }\n const required = [\n \"name\",\n \"run_eval\",\n \"eval_version\",\n \"dataset_version\",\n \"primary_metric\",\n ] as const;\n for (const k of required) {\n if (fm[k] === undefined || fm[k] === null || fm[k] === \"\") {\n throw new Error(\n `system ${id}: frontmatter missing required field \"${k}\"`,\n );\n }\n }\n return {\n id,\n path,\n frontmatter: fm as SystemFrontmatter,\n body,\n };\n}\n\nexport function resolveEvalPath(\n workspaceRoot: string,\n system: SystemDef,\n): string {\n return resolve(workspaceRoot, system.frontmatter.run_eval);\n}\n\nfunction splitFrontmatter(text: string): {\n frontmatter: string | null;\n body: string;\n} {\n // Frontmatter starts on line 1 with ---, ends with --- on its own line.\n if (!text.startsWith(\"---\")) return { frontmatter: null, body: text };\n const lines = text.split(\"\\n\");\n // First line is \"---\". Find the next \"---\".\n let close = -1;\n for (let i = 1; i < lines.length; i++) {\n if (lines[i].trim() === \"---\") {\n close = i;\n break;\n }\n }\n if (close === -1) return { frontmatter: null, body: text };\n return {\n frontmatter: lines.slice(1, close).join(\"\\n\"),\n body: lines.slice(close + 1).join(\"\\n\"),\n };\n}\n"],"mappings":";;;;AAkCA,SAAgB,WAAW,eAAuB,IAAoB;AACpE,QAAO,KAAK,eAAe,WAAW,GAAG,GAAG,KAAK;;AAGnD,SAAgB,WAAW,eAAuB,IAAuB;CACvE,MAAM,OAAO,WAAW,eAAe,GAAG;AAC1C,KAAI,CAAC,WAAW,KAAK,CACnB,OAAM,IAAI,MACR,WAAW,GAAG,iBAAiB,KAAK,+BAA+B,GAAG,qBACvE;CAGH,MAAM,EAAE,aAAa,SAAS,iBADjB,aAAa,MAAM,QACmB,CAAC;AACpD,KAAI,CAAC,YACH,OAAM,IAAI,MAAM,UAAU,GAAG,iCAAiC,OAAO;CAEvE,MAAM,KAAKA,MAAU,YAAY;AACjC,KAAI,CAAC,MAAM,OAAO,OAAO,SACvB,OAAM,IAAI,MAAM,UAAU,GAAG,qCAAqC;AASpE,MAAK,MAAM,KAAK;EANd;EACA;EACA;EACA;EACA;EAEsB,CACtB,KAAI,GAAG,OAAO,KAAA,KAAa,GAAG,OAAO,QAAQ,GAAG,OAAO,GACrD,OAAM,IAAI,MACR,UAAU,GAAG,wCAAwC,EAAE,GACxD;AAGL,QAAO;EACL;EACA;EACA,aAAa;EACb;EACD;;AAGH,SAAgB,gBACd,eACA,QACQ;AACR,QAAO,QAAQ,eAAe,OAAO,YAAY,SAAS;;AAG5D,SAAS,iBAAiB,MAGxB;AAEA,KAAI,CAAC,KAAK,WAAW,MAAM,CAAE,QAAO;EAAE,aAAa;EAAM,MAAM;EAAM;CACrE,MAAM,QAAQ,KAAK,MAAM,KAAK;CAE9B,IAAI,QAAQ;AACZ,MAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,IAChC,KAAI,MAAM,GAAG,MAAM,KAAK,OAAO;AAC7B,UAAQ;AACR;;AAGJ,KAAI,UAAU,GAAI,QAAO;EAAE,aAAa;EAAM,MAAM;EAAM;AAC1D,QAAO;EACL,aAAa,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,KAAK;EAC7C,MAAM,MAAM,MAAM,QAAQ,EAAE,CAAC,KAAK,KAAK;EACxC"}
1
+ {"version":3,"file":"system.js","names":["parseYaml"],"sources":["../../src/lib/system.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { parse as parseYaml } from \"yaml\";\n\nexport type EvalStyle = \"ground-truth\" | \"llm-as-judge\" | \"hybrid\";\nexport type ExecutionMode = \"in_process\" | \"server\";\n\nexport interface SubgroupDef {\n name: string;\n field: string;\n}\n\nexport interface SystemFrontmatter {\n name: string;\n description?: string;\n run_eval: string;\n eval_version: number;\n dataset_version: string;\n eval_style?: EvalStyle;\n primary_metric: string;\n target?: number;\n execution_mode?: ExecutionMode;\n kaizen_version?: string;\n subgroups?: SubgroupDef[];\n trace_renderer?: string;\n [key: string]: unknown;\n}\n\nexport interface SystemDef {\n id: string;\n path: string;\n frontmatter: SystemFrontmatter;\n body: string;\n}\n\nexport function systemPath(workspaceRoot: string, id: string): string {\n return join(workspaceRoot, \"systems\", `${id}.md`);\n}\n\nexport function loadSystem(workspaceRoot: string, id: string): SystemDef {\n const path = systemPath(workspaceRoot, id);\n if (!existsSync(path)) {\n throw new Error(\n `system \"${id}\" not found at ${path}. run \\`kaizen create system ${id}\\` to scaffold one.`,\n );\n }\n const text = readFileSync(path, \"utf-8\");\n const { frontmatter, body } = splitFrontmatter(text);\n if (!frontmatter) {\n throw new Error(`system ${id}: no YAML frontmatter found in ${path}`);\n }\n const fm = parseYaml(frontmatter) as Partial<SystemFrontmatter> | null;\n if (!fm || typeof fm !== \"object\") {\n throw new Error(`system ${id}: frontmatter is not a YAML mapping`);\n }\n const required = [\n \"name\",\n \"run_eval\",\n \"eval_version\",\n \"dataset_version\",\n \"primary_metric\",\n ] as const;\n for (const k of required) {\n if (fm[k] === undefined || fm[k] === null || fm[k] === \"\") {\n throw new Error(\n `system ${id}: frontmatter missing required field \"${k}\"`,\n );\n }\n }\n return {\n id,\n path,\n frontmatter: fm as SystemFrontmatter,\n body,\n };\n}\n\nexport function resolveEvalPath(\n workspaceRoot: string,\n system: SystemDef,\n): string {\n return resolve(workspaceRoot, system.frontmatter.run_eval);\n}\n\nfunction splitFrontmatter(text: string): {\n frontmatter: string | null;\n body: string;\n} {\n // Frontmatter starts on line 1 with ---, ends with --- on its own line.\n if (!text.startsWith(\"---\")) return { frontmatter: null, body: text };\n const lines = text.split(\"\\n\");\n // First line is \"---\". Find the next \"---\".\n let close = -1;\n for (let i = 1; i < lines.length; i++) {\n if (lines[i].trim() === \"---\") {\n close = i;\n break;\n }\n }\n if (close === -1) return { frontmatter: null, body: text };\n return {\n frontmatter: lines.slice(1, close).join(\"\\n\"),\n body: lines.slice(close + 1).join(\"\\n\"),\n };\n}\n"],"mappings":";;;;AAmCA,SAAgB,WAAW,eAAuB,IAAoB;AACpE,QAAO,KAAK,eAAe,WAAW,GAAG,GAAG,KAAK;;AAGnD,SAAgB,WAAW,eAAuB,IAAuB;CACvE,MAAM,OAAO,WAAW,eAAe,GAAG;AAC1C,KAAI,CAAC,WAAW,KAAK,CACnB,OAAM,IAAI,MACR,WAAW,GAAG,iBAAiB,KAAK,+BAA+B,GAAG,qBACvE;CAGH,MAAM,EAAE,aAAa,SAAS,iBADjB,aAAa,MAAM,QACmB,CAAC;AACpD,KAAI,CAAC,YACH,OAAM,IAAI,MAAM,UAAU,GAAG,iCAAiC,OAAO;CAEvE,MAAM,KAAKA,MAAU,YAAY;AACjC,KAAI,CAAC,MAAM,OAAO,OAAO,SACvB,OAAM,IAAI,MAAM,UAAU,GAAG,qCAAqC;AASpE,MAAK,MAAM,KAAK;EANd;EACA;EACA;EACA;EACA;EAEsB,CACtB,KAAI,GAAG,OAAO,KAAA,KAAa,GAAG,OAAO,QAAQ,GAAG,OAAO,GACrD,OAAM,IAAI,MACR,UAAU,GAAG,wCAAwC,EAAE,GACxD;AAGL,QAAO;EACL;EACA;EACA,aAAa;EACb;EACD;;AAGH,SAAgB,gBACd,eACA,QACQ;AACR,QAAO,QAAQ,eAAe,OAAO,YAAY,SAAS;;AAG5D,SAAS,iBAAiB,MAGxB;AAEA,KAAI,CAAC,KAAK,WAAW,MAAM,CAAE,QAAO;EAAE,aAAa;EAAM,MAAM;EAAM;CACrE,MAAM,QAAQ,KAAK,MAAM,KAAK;CAE9B,IAAI,QAAQ;AACZ,MAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,IAChC,KAAI,MAAM,GAAG,MAAM,KAAK,OAAO;AAC7B,UAAQ;AACR;;AAGJ,KAAI,UAAU,GAAI,QAAO;EAAE,aAAa;EAAM,MAAM;EAAM;AAC1D,QAAO;EACL,aAAa,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,KAAK;EAC7C,MAAM,MAAM,MAAM,QAAQ,EAAE,CAAC,KAAK,KAAK;EACxC"}
package/dist/package.js CHANGED
@@ -1,7 +1,7 @@
1
1
  //#region package.json
2
2
  var package_default = {
3
3
  name: "@percepta/kaizen",
4
- version: "0.5.1",
4
+ version: "0.6.0",
5
5
  description: "Automated AI researcher that improves AI systems",
6
6
  keywords: [
7
7
  "ai",
@@ -48,6 +48,7 @@ var package_default = {
48
48
  "kaizen": "tsx src/index.ts"
49
49
  },
50
50
  dependencies: {
51
+ "esbuild": "^0.25.0",
51
52
  "tsx": "^4.21.0",
52
53
  "yaml": "^2.8.2"
53
54
  },
package/dist/types.d.ts CHANGED
@@ -13,6 +13,26 @@ interface KaizenConfig {
13
13
  port?: number;
14
14
  };
15
15
  }
16
+ /** Data shape passed to custom trace renderers. */
17
+ interface TraceData {
18
+ id?: string;
19
+ name?: string;
20
+ tags?: string[];
21
+ timestamp?: string;
22
+ metadata?: unknown;
23
+ input?: unknown;
24
+ output?: unknown;
25
+ }
26
+ /** Props contract for custom trace renderer components. */
27
+ interface TraceRendererProps {
28
+ trace: TraceData;
29
+ datasetItem?: {
30
+ id: string;
31
+ input?: unknown;
32
+ expectedOutput?: unknown;
33
+ metadata?: Record<string, unknown> | null;
34
+ } | null;
35
+ }
16
36
  //#endregion
17
- export { KaizenConfig };
37
+ export { KaizenConfig, TraceData, TraceRendererProps };
18
38
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"mappings":";UAAiB,YAAA;EACf,QAAA;IACE,IAAA;IACA,IAAA;EAAA;EAEF,QAAA;IACE,IAAA;IACA,YAAA;IACA,YAAA;EAAA;EAEF,MAAA;IACE,IAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"mappings":";UAAiB,YAAA;EACf,QAAA;IACE,IAAA;IACA,IAAA;EAAA;EAEF,QAAA;IACE,IAAA;IACA,YAAA;IACA,YAAA;EAAA;EAEF,MAAA;IACE,IAAA;EAAA;AAAA;;UAKa,SAAA;EACf,EAAA;EACA,IAAA;EACA,IAAA;EACA,SAAA;EACA,QAAA;EACA,KAAA;EACA,MAAA;AAAA;;UAIe,kBAAA;EACf,KAAA,EAAO,SAAA;EACP,WAAA;IACE,EAAA;IACA,KAAA;IACA,cAAA;IACA,QAAA,GAAW,MAAA;EAAA;AAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@percepta/kaizen",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "description": "Automated AI researcher that improves AI systems",
5
5
  "keywords": [
6
6
  "ai",
@@ -37,6 +37,7 @@
37
37
  "access": "public"
38
38
  },
39
39
  "dependencies": {
40
+ "esbuild": "^0.25.0",
40
41
  "tsx": "^4.21.0",
41
42
  "yaml": "^2.8.2"
42
43
  },