@percepta/kaizen 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard/.next/standalone/package.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/build-manifest.json +20 -20
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/prerender-manifest.json +3 -3
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/routes-manifest.json +8 -2
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/chunks/169.js +1 -0
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/chunks/588.js +8 -0
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/middleware-build-manifest.js +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/404.html +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/500.html +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/benchmarks.html +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/benchmarks.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/data/[[...path]].html +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/data/[[...path]].js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/eval.html +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/eval.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/experiments/[[...path]].html +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/experiments/[[...path]].js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/ideas.html +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[system]/ideas.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-action.js +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-action.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-dataset-item.js +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-dataset-item.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-dataset-mutation.js +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-dataset-mutation.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-dataset.js +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-dataset.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-datasets.js +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-datasets.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-trace-memberships.js +1 -0
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-trace-memberships.js.nft.json +1 -0
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-trace.js +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-trace.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-traces.js +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/langfuse-traces.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/run-traces.js +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/run-traces.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/runs.js +2 -2
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/runs.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/systems.js +2 -2
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/api/systems.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/index.html +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/index.js.nft.json +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages-manifest.json +3 -2
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/{SCF0o7YxElB9rzWaOohsA → 9JQIPpJv6qWldYoYMHZAl}/_buildManifest.js +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/53-795fe9d662eaacfe.js +8 -0
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/{benchmarks-30a17b7659010b8c.js → benchmarks-bc38d751890170d0.js} +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/data/{[[...path]]-e5f4083fe9ffe429.js → [[...path]]-8afe5a733bdde0f4.js} +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/{eval-160237a604b47416.js → eval-ab900515b5b18b4d.js} +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/experiments/{[[...path]]-91e47a4893093600.js → [[...path]]-7198800378ce98dc.js} +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/[system]/{ideas-96e58e4624952e26.js → ideas-d8fd592d7cd21bb9.js} +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/pages/{index-d3306bb6f5d7d235.js → index-842f5332939fc510.js} +1 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/css/d97fcd1d34ebab98.css +1 -0
- package/dashboard/.next/standalone/packages/kaizen/package.json +4 -1
- package/dist/package.js +2 -1
- package/package.json +4 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/chunks/27.js +0 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/chunks/516.js +0 -8
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/chunks/913.js +0 -1
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/chunks/253-85c76c34f33c9604.js +0 -8
- package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/css/cd3873236eb77caa.css +0 -1
- /package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/{SCF0o7YxElB9rzWaOohsA → 9JQIPpJv6qWldYoYMHZAl}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST=function(s,e,t,a,c,r){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:null,bitArray:[]},__routerFilterDynamic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:null,bitArray:[]},"/":[s,e,t,"static/chunks/pages/index-
|
|
1
|
+
self.__BUILD_MANIFEST=function(s,e,t,a,c,r){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:null,bitArray:[]},__routerFilterDynamic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:null,bitArray:[]},"/":[s,e,t,"static/chunks/pages/index-842f5332939fc510.js"],"/_error":["static/chunks/pages/_error-b69380d1599ed4ba.js"],"/[system]":["static/chunks/pages/[system]-adf7b3ca903bcc42.js"],"/[system]/benchmarks":[s,e,t,"static/chunks/pages/[system]/benchmarks-bc38d751890170d0.js"],"/[system]/data/[[...path]]":[s,e,t,"static/chunks/pages/[system]/data/[[...path]]-8afe5a733bdde0f4.js"],"/[system]/eval":[s,e,t,"static/chunks/pages/[system]/eval-ab900515b5b18b4d.js"],"/[system]/experiments/[[...path]]":[s,e,t,"static/chunks/pages/[system]/experiments/[[...path]]-7198800378ce98dc.js"],"/[system]/ideas":[s,e,t,"static/chunks/pages/[system]/ideas-d8fd592d7cd21bb9.js"],sortedPages:["/","/_app","/_error","/[system]","/[system]/benchmarks","/[system]/data/[[...path]]","/[system]/eval","/[system]/experiments/[[...path]]","/[system]/ideas"]}}("static/chunks/431-43358ce3c29e5e1b.js","static/css/d97fcd1d34ebab98.css","static/chunks/53-795fe9d662eaacfe.js",0,0,0),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[53],{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",experimentNavItem:"Studio_experimentNavItem__VrdaI",sidebarResizeHandle:"Studio_sidebarResizeHandle__Bfcoi",dataNavItem:"Studio_dataNavItem__rzaJQ",dataNavGroupItem:"Studio_dataNavGroupItem__0bfKJ",dataNavItemText:"Studio_dataNavItemText__nSadp",dataNavItemMeta:"Studio_dataNavItemMeta__PEhqv",dataNavEmpty:"Studio_dataNavEmpty__sffpq",experimentNavEmpty:"Studio_experimentNavEmpty__6O0bX",dataNavEmptyTitle:"Studio_dataNavEmptyTitle__VI2PP",dataNavEmptyCopy:"Studio_dataNavEmptyCopy__dq6XK",dataNavItemActive:"Studio_dataNavItemActive__TANbd",dataMain:"Studio_dataMain__rSYxU",surfaceToolbar:"Studio_surfaceToolbar__ayM6U",tracesToolbarSearch:"Studio_tracesToolbarSearch__Y_MtI",textInput:"Studio_textInput__9WjCF",traceSearchInput:"Studio_traceSearchInput__5oRye",secondaryButton:"Studio_secondaryButton__gEhyV",traceSearchButton:"Studio_traceSearchButton__EmQvq",traceDateRangeLabel:"Studio_traceDateRangeLabel__6FeBe",traceDateInput:"Studio_traceDateInput__LuThR",searchIcon:"Studio_searchIcon__siCkB",tracesToolbarRight:"Studio_tracesToolbarRight__YpWj8",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",dangerButton:"Studio_dangerButton__9Bclj",checkboxInput:"Studio_checkboxInput__E3h42",dropdown:"Studio_dropdown__Qu_kI",dropdownButton:"Studio_dropdownButton__xiN8C",dropdownValue:"Studio_dropdownValue__0_6qb",dropdownChevron:"Studio_dropdownChevron__eSQVR",dropdownMenu:"Studio_dropdownMenu__Z_P4L",dropdownOption:"Studio_dropdownOption__8vaW9",dropdownOptionSelected:"Studio_dropdownOptionSelected__Qv75j",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",listRowLinked:"Studio_listRowLinked__YG4yc",detailHeader:"Studio_detailHeader__an_N2",detailHeaderAction:"Studio_detailHeaderAction__VRlRY",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",linkedExperimentsSection:"Studio_linkedExperimentsSection__V6m61",linkedExperimentsList:"Studio_linkedExperimentsList__m3Pel",linkedExperimentsEmpty:"Studio_linkedExperimentsEmpty__j9at4",linkedExperimentRow:"Studio_linkedExperimentRow___NdVV",linkedExperimentMain:"Studio_linkedExperimentMain__P1a2y",linkedExperimentStats:"Studio_linkedExperimentStats__SKDtt",linkedExperimentTitle:"Studio_linkedExperimentTitle__zxkFB",linkedExperimentScore:"Studio_linkedExperimentScore__aOXcH",linkedExperimentMeta:"Studio_linkedExperimentMeta__UQRzL",formRow:"Studio_formRow__CkHSQ",formLabel:"Studio_formLabel__pObCQ",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",experimentEmptyPanel:"Studio_experimentEmptyPanel__p0J2y",experimentDetailSurface:"Studio_experimentDetailSurface__dwDGR",experimentDetailSummary:"Studio_experimentDetailSummary__R5pum",experimentDetailTitleRow:"Studio_experimentDetailTitleRow__dLxGu",experimentDetailTitleGroup:"Studio_experimentDetailTitleGroup__u0ltv",experimentDetailTitle:"Studio_experimentDetailTitle__WVcLo",experimentDetailTimeRow:"Studio_experimentDetailTimeRow__WBHOD",experimentDetailTimeSeparator:"Studio_experimentDetailTimeSeparator__zVrpA",experimentMetricStrip:"Studio_experimentMetricStrip__nO66g",experimentMetricItem:"Studio_experimentMetricItem__9szWE",experimentMetricItemPrimary:"Studio_experimentMetricItemPrimary__8nYrs",experimentMetricValue:"Studio_experimentMetricValue__g26s2",experimentMetricLabel:"Studio_experimentMetricLabel__g8uYl",emptyPanelTitle:"Studio_emptyPanelTitle__g31eb",runTracesPanel:"Studio_runTracesPanel__nh_gK",runTracesPanelHeader:"Studio_runTracesPanelHeader__gJlWU",runTracesPanelTitle:"Studio_runTracesPanelTitle__gUr1M",runTracesDetail:"Studio_runTracesDetail__vStOu",runTracesTableWrap:"Studio_runTracesTableWrap__V4tCd",datasetsTableWrap:"Studio_datasetsTableWrap__biwzy",runTracesTable:"Studio_runTracesTable__FzXJs",runTracesSortButton:"Studio_runTracesSortButton__ej_zF",runTracesSortButtonActive:"Studio_runTracesSortButtonActive__Oy1me",runTracesSortIcon:"Studio_runTracesSortIcon__HEo3w",runTracesTableRowClickable:"Studio_runTracesTableRowClickable__sdAb4",datasetRowMenuOpen:"Studio_datasetRowMenuOpen__7ty_2",runTracesTableId:"Studio_runTracesTableId__zVZBX",datasetActionsCell:"Studio_datasetActionsCell__xmMLt",datasetActionsCellOpen:"Studio_datasetActionsCellOpen__JsSmA",datasetMenuAnchor:"Studio_datasetMenuAnchor__D7NTr",backButton:"Studio_backButton__sPEo0",tagPillRemove:"Studio_tagPillRemove__K4mw7",dataFieldLabel:"Studio_dataFieldLabel__nb_nM",membershipPanel:"Studio_membershipPanel__EGstU",membershipPanelWithAction:"Studio_membershipPanelWithAction__efBwS",traceDatasetControls:"Studio_traceDatasetControls__IwM5z",membershipHeader:"Studio_membershipHeader___UOhR",membershipTitle:"Studio_membershipTitle__2LIen",membershipMeta:"Studio_membershipMeta__TlU5c",membershipContent:"Studio_membershipContent__jqHx_",membershipList:"Studio_membershipList__KXw_7",membershipAction:"Studio_membershipAction__RTbv1",membershipActions:"Studio_membershipActions__BUxtX",membershipPill:"Studio_membershipPill__QjB0k",membershipPillText:"Studio_membershipPillText__RwhCM",membershipPillLink:"Studio_membershipPillLink__h9fV9",membershipRemoveButton:"Studio_membershipRemoveButton__2K9Rp",membershipEmpty:"Studio_membershipEmpty__Dt4SO",modalOverlay:"Studio_modalOverlay__x1Fj4",modalContent:"Studio_modalContent__djAeV",modalTitle:"Studio_modalTitle__0QlJa",modalMessage:"Studio_modalMessage__XPzbe",modalActions:"Studio_modalActions__IU0lF",contextMenu:"Studio_contextMenu__OGBEA",contextMenuAbove:"Studio_contextMenuAbove__Hn1fV",contextMenuItem:"Studio_contextMenuItem__V_cT5",contextMenuItemDanger:"Studio_contextMenuItemDanger__pyiHt",paginationBar:"Studio_paginationBar__rQxsq",paginationBarToolbar:"Studio_paginationBarToolbar__CkBjt",paginationIconButton:"Studio_paginationIconButton__7_OgH",paginationLabel:"Studio_paginationLabel__geOOY",experimentsMain:"Studio_experimentsMain__8IYj4"}},5053:(e,t,a)=>{"use strict";a.d(t,{W:()=>tK});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)(_,{}):(0,s.jsx)(p,{})}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:"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 _(){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"})]})}function h({id:e,options:t,value:a,placeholder:n,disabled:l=!1,className:i,onChange:o,ariaLabel:d,ariaLabelledBy:u}){let[m,p]=(0,r.useState)(!1),_=(0,r.useRef)(null),h=`${e}-listbox`,f=t.find(e=>e.value===a),x=f?.label??n,g=l||0===t.length,b=[c().dropdown,i].filter(e=>"string"==typeof e&&""!==e).join(" ");(0,r.useEffect)(()=>{if(!m)return;let e=e=>{_.current?.contains(e.target)||p(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[m]);let j=(0,r.useCallback)(()=>{g||p(e=>!e)},[g]),y=(0,r.useCallback)(e=>{"Escape"===e.key&&p(!1)},[]),v=(0,r.useCallback)(e=>{let a=t.find(t=>t.value===e);a?.disabled!==!0&&(o(e),p(!1))},[o,t]),S=(0,r.useCallback)(e=>{if(!(e.target instanceof HTMLElement))return;let t=e.target.closest("button[data-option-value]"),a=t?.dataset.optionValue;void 0!==a&&v(a)},[v]);return(0,s.jsxs)("div",{className:b,ref:_,onKeyDown:y,children:[(0,s.jsxs)("button",{id:e,type:"button",className:c().dropdownButton,disabled:g,"aria-label":d,"aria-labelledby":u,"aria-haspopup":"listbox","aria-expanded":m,"aria-controls":h,onClick:j,children:[(0,s.jsx)("span",{className:c().dropdownValue,children:x}),(0,s.jsx)("span",{className:c().dropdownChevron,"aria-hidden":"true"})]}),m?(0,s.jsx)("div",{className:c().dropdownMenu,id:h,role:"listbox","aria-labelledby":e,onClick:S,children:t.map(e=>(0,s.jsx)("button",{type:"button",role:"option","aria-selected":e.value===a,"aria-disabled":!0===e.disabled,disabled:!0===e.disabled,"data-option-value":e.value,className:`${c().dropdownOption} ${e.value===a?c().dropdownOptionSelected:""}`,children:e.label},e.value))}):null]})}var f=a(7810),x=a.n(f);function g(){let{systems:e,activeSystemId:t,setActiveSystemId:a}=(0,n.V)(),l=e.find(e=>e.id===t),i="system-selector-label",o=(0,r.useMemo)(()=>e.map(e=>({value:e.id,label:e.name})),[e]),c=(0,r.useCallback)(e=>a(e),[a]);return(0,s.jsxs)("div",{className:x().wrapper,children:[(0,s.jsx)("span",{id:i,className:x().label,children:"System"}),(0,s.jsx)(h,{id:"system-selector",className:x().dropdown,options:o,value:t??"",placeholder:"Select system",disabled:0===e.length,onChange:c,ariaLabelledBy:i}),l&&(0,s.jsx)(u,{source:"code"})]})}let b=[{id:"data",label:"Data"},{id:"benchmarks",label:"Benchmarks"},{id:"ideas",label:"Ideas"},{id:"experiments",label:"Experiments"}];function j({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)(g,{})}),(0,s.jsx)("nav",{className:c().surfaceNav,"aria-label":"Kaizen surfaces",children:b.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 y(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 v(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)}function S(e){return e<60?`${e}s`:e<3600?`${Math.floor(e/60)}m`:`${Math.floor(e/3600)}h ${Math.floor(e%3600/60)}m`}var N=a(2390);N.Ik({runId:N.Yj(),runName:N.Yj(),status:N.k5(["running","complete","crashed","aborted"]),worktreeBranch:N.Yj(),parentId:N.Yj().nullable(),system:N.Yj(),progress:N.Ik({completed:N.ai(),total:N.ai(),lastHeartbeat:N.Yj()}).optional(),metrics:N.g1(N.Yj(),N.ai()),totalItems:N.ai().nullable(),langfuseRunId:N.Yj().optional(),linearIssue:N.Ik({id:N.Yj(),url:N.Yj()}).optional(),evalConfig:N.Ik({dataset:N.Yj(),evalVersion:N.ai().optional(),datasetItemCount:N.ai(),judge:N.Ik({rubric:N.Yj(),rubricHash:N.Yj(),model:N.Yj(),temperature:N.ai()}).optional()}).optional(),startedAt:N.Yj(),updatedAt:N.Yj()});let T={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 k(e){return T[e]?.label??e.replace(/[_-]+/g," ").replace(/([A-Z])/g," $1").replace(/^./,e=>e.toUpperCase()).trim()}function C(e,t){let a=T[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 w(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 I(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 ${k(l)}`;return{key:`${r}::${n}::${l}`,dataset:r,datasetLabel:R(r),evalVersion:n,evalMetric:l,evalLabel:i}}function R(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 P({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)(L,{label:r,onRefresh:n,refreshing:l})]})}function L({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 E({system:e}){var t;let{runs:a}=y(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=I(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)(P,{title:"Benchmarks",source:"code",syncLabel:"Live updates",children:"Benchmarks come from this system's code and define the dataset and scoring setup used to compare 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)(M,{label:"Dataset",value:e.evalDataset?R(e.evalDataset):"Not configured",detail:e.evalDataset}),(0,s.jsx)(M,{label:"Eval version",value:null===e.evalVersion?"Not configured":`v${e.evalVersion}`}),(0,s.jsx)(M,{label:"Primary metric",value:e.primaryMetric?k(e.primaryMetric):"Not configured",detail:e.primaryMetric}),(0,s.jsx)(M,{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:k(e.evalMetric)})]}),(0,s.jsx)("span",{children:e.count}),(0,s.jsx)("span",{children:e.itemCount??"?"}),(0,s.jsx)("span",{children:e.latestAt?v(e.latestAt):"-"})]},e.key))]})]})]})}function M({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(T);var A=a(7433);function $({label:e,onClick:t}){return(0,s.jsxs)("button",{className:c().backButton,onClick:t,type:"button",children:[(0,s.jsx)("span",{"aria-hidden":"true",children:"←"}),e]})}function D(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function B({traceId:e,systemId:t,datasets:a,title:n="Datasets this trace belongs to"}){var l,i,o;let[d,u]=(0,r.useState)([]),[m,p]=(0,r.useState)([]),[_,h]=(0,r.useState)(!1),[f,x]=(0,r.useState)(!1),[g,b]=(0,r.useState)(!1),[j,y]=(0,r.useState)(!1),[v,S]=(0,r.useState)(null),[N,T]=(0,r.useState)(null),k=a??d,C=(0,r.useMemo)(()=>[e],[e]),w=(0,r.useMemo)(()=>[...new Set(m.map(e=>e.datasetName))],[m]),I=(0,r.useCallback)(async()=>{if(a)return a;h(!0);try{let e=await fetch(`/api/langfuse-datasets?systemId=${encodeURIComponent(t)}`),a=Y(await e.json());if(!e.ok)throw Error(a.error??`HTTP ${e.status}`);let s=a.data??[];return u(s),s}finally{h(!1)}},[a,t]),R=(0,r.useCallback)(async()=>{x(!0);try{let a=await G(e,t,!0);p(a)}catch{}finally{x(!1)}},[t,e]);(0,r.useEffect)(()=>{let e=!1;if(!a)return h(!0),fetch(`/api/langfuse-datasets?systemId=${encodeURIComponent(t)}`).then(async t=>{let a=Y(await t.json());if(!t.ok)throw Error(a.error??`HTTP ${t.status}`);e||u(a.data??[])}).catch(t=>{e||S(t instanceof Error?t.message:String(t))}).finally(()=>{e||h(!1)}),()=>{e=!0}},[a,t]),(0,r.useEffect)(()=>{let a=!1;return x(!0),G(e,t).then(e=>{a||p(e)}).catch(()=>{}).finally(()=>{a||x(!1)}),()=>{a=!0}},[e,t]),(0,r.useEffect)(()=>{T(null)},[e]);let P=(0,r.useCallback)(()=>{b(!0),S(null)},[]),L=(0,r.useCallback)(()=>{b(!1)},[]),E=(0,r.useCallback)(async(a,s)=>{y(!0),S(null);try{let r=await K(a[0]??e,s,t);return T({datasetName:s,itemId:r.id}),b(!1),await I(),await R(),!0}catch(t){let e=t instanceof Error?t.message:String(t);return S(e),{error:e,added:[]}}finally{y(!1)}},[I,R,t,e]),M=(0,r.useRef)(m);M.current=m;let A=(0,r.useCallback)(async e=>{y(!0),S(null);try{let t=M.current.find(t=>t.datasetName===e);if(!t)throw Error(`Could not find membership for dataset "${e}"`);let a=await fetch("/api/langfuse-dataset-mutation",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete-item",itemId:t.datasetItemId})});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(Q(e.error)??`Failed to delete item: HTTP ${a.status}`)}p(e=>e.filter(e=>e.datasetItemId!==t.datasetItemId)),T(t=>t?.datasetName===e?null:t)}catch(e){S(e instanceof Error?e.message:String(e))}finally{y(!1)}},[]),$=(0,r.useCallback)(e=>O(t,e),[t]);return(0,s.jsxs)("div",{className:c().traceDatasetControls,children:[v&&(0,s.jsx)("div",{className:c().errorPanel,children:v}),(0,s.jsx)(F,{title:n,loading:f||_,memberDatasets:w,mutating:j,onRemove:A,datasetHref:$,action:(0,s.jsxs)("div",{className:c().membershipActions,children:[(0,s.jsx)("button",{className:c().primaryButton,disabled:_||j,onClick:P,type:"button",children:"Add to dataset"}),N?(0,s.jsx)("a",{className:c().secondaryButton,href:(l=t,i=N.datasetName,o=N.itemId,`${O(l,i)}/items/${encodeURIComponent(o)}`),children:"Open item"}):null]})}),g&&(0,s.jsx)(V,{datasets:k,traceIds:C,mutating:j,error:v,onAdd:E,onClose:L})]})}function F({title:e,loading:t,memberDatasets:a,mutating:r=!1,onRemove:n,datasetHref:l,action:i}){let o=1===a.length?"1 linked dataset":`${a.length} linked datasets`,d=null!=i&&!1!==i,u=d?`${c().membershipPanel} ${c().membershipPanelWithAction}`:c().membershipPanel;return(0,s.jsxs)("section",{className:u,"aria-label":e,children:[(0,s.jsx)("div",{className:c().membershipHeader,children:(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:c().membershipTitle,children:e}),(0,s.jsx)("div",{className:c().membershipMeta,children:t?"Checking memberships...":o})]})}),(0,s.jsx)("div",{className:c().membershipContent,children:t?(0,s.jsx)("div",{className:c().membershipEmpty,children:"Loading..."}):a.length>0?(0,s.jsx)("div",{className:c().membershipList,children:a.map(e=>(0,s.jsx)(H,{name:e,mutating:r,onRemove:n,href:l?.(e)},e))}):(0,s.jsx)("div",{className:c().membershipEmpty,children:"Not in any dataset"})}),d?(0,s.jsx)("div",{className:c().membershipAction,children:i}):null]})}function H({name:e,mutating:t,onRemove:a,href:n}){let l=(0,r.useCallback)(()=>{a&&a(e)},[e,a]);return(0,s.jsxs)("span",{className:c().membershipPill,children:[n?(0,s.jsx)("a",{className:c().membershipPillLink,href:n,children:e}):(0,s.jsx)("span",{className:c().membershipPillText,children:e}),a&&(0,s.jsx)("button",{className:c().membershipRemoveButton,disabled:t,onClick:l,title:`Remove from ${e}`,"aria-label":`Remove from ${e}`,type:"button",children:"\xd7"})]})}function O(e,t){return`/${encodeURIComponent(e)}/data/datasets/${encodeURIComponent(t)}`}function V({datasets:e,traceIds:t,mutating:a,error:n,onAdd:l,onClose:i}){let[o,d]=(0,r.useState)(e[0]?.name??"");(0,r.useEffect)(()=>{e.some(e=>e.name===o)||d(e[0]?.name??"")},[e,o]);let u=(0,r.useCallback)(e=>{d(e)},[]),m=(0,r.useCallback)(()=>void l(t,o),[l,t,o]);return(0,s.jsxs)(z,{onClose:i,children:[(0,s.jsxs)("h3",{className:c().modalTitle,children:["Add ",t.length," trace",1===t.length?"":"s"," to dataset"]}),n&&(0,s.jsx)("div",{className:c().errorPanel,children:n}),(0,s.jsxs)("div",{className:c().formRow,children:[(0,s.jsx)("label",{className:c().formLabel,htmlFor:"trace-add-dataset-select",children:"Dataset"}),(0,s.jsx)(U,{id:"trace-add-dataset-select",datasets:e,value:o,onChange:u})]}),(0,s.jsxs)("div",{className:c().modalActions,children:[(0,s.jsx)("button",{className:c().secondaryButton,onClick:i,children:"Cancel"}),(0,s.jsx)("button",{className:c().primaryButton,disabled:!o||a,onClick:m,children:a?"Adding...":"Add to dataset"})]})]})}function U({id:e,datasets:t,value:a,onChange:n}){let l=(0,r.useMemo)(()=>t.map(e=>({value:e.name,label:e.name})),[t]);return(0,s.jsx)(h,{id:e,options:l,value:a,placeholder:"No datasets available",disabled:0===t.length,onChange:n})}function z({onClose:e,children:t}){return(0,s.jsx)("div",{className:c().modalOverlay,onClick:e,children:(0,s.jsx)("div",{className:c().modalContent,onClick:ee,children:t})})}async function K(e,t,a){var s;let r=await fetch("/api/langfuse-dataset-item",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"add-from-trace",datasetName:t,source:e,expectedOutput:void 0,notes:"",systemId:a})}),n=await r.json();if(!r.ok)throw Error(Q(D(n)?n.error:void 0)??`HTTP ${r.status}`);let l=(s=D(n)?n.data:void 0,D(s)&&"string"==typeof s.id?{id:s.id,status:Q(s.status)??void 0,sourceTraceId:"string"==typeof s.sourceTraceId||null===s.sourceTraceId?s.sourceTraceId:void 0,input:s.input,expectedOutput:s.expectedOutput,metadata:D(s.metadata)?s.metadata:null,createdAt:Q(s.createdAt)??void 0,updatedAt:Q(s.updatedAt)??void 0}:null);if(!l)throw Error("Langfuse returned an invalid dataset item.");return l}async function G(e,t,a=!1){var s;let r=new URLSearchParams;r.set("traceId",e),r.set("systemId",t),a&&r.set("noCache","1");let n=await fetch(`/api/langfuse-trace-memberships?${r.toString()}`);if(!n.ok)throw Error(`Memberships request failed: HTTP ${n.status}`);return(D(s=await n.json())?{memberships:Array.isArray(s.memberships)?s.memberships.filter(W):void 0,error:Q(s.error)??void 0}:{}).memberships??[]}function Y(e){return D(e)?{data:Array.isArray(e.data)?e.data.map(q).filter(X):void 0,error:Q(e.error)??void 0}:{}}function W(e){return D(e)&&"string"==typeof e.datasetName&&"string"==typeof e.datasetItemId&&"string"==typeof e.status}function q(e){return D(e)&&"string"==typeof e.name?{id:Q(e.id)??void 0,name:e.name,description:Q(e.description),metadata:D(e.metadata)?e.metadata:null,createdAt:Q(e.createdAt)??void 0,updatedAt:Q(e.updatedAt)??void 0}:null}function J(e){if(!D(e))return null;if("string"==typeof e.sourceTraceId&&e.sourceTraceId)return e.sourceTraceId;let t=e.metadata;if(D(t)){let e=t.sourceTraceId??t.traceId;if("string"==typeof e&&e)return e}return null}function Z(e){return e.status?.toUpperCase()!=="ARCHIVED"}function Q(e){return"string"==typeof e&&e.trim()?e.trim():null}function X(e){return null!==e}function ee(e){e.stopPropagation()}let et=new Map;function ea(e,t,s="trace"){let n=`${s}:${e}`,[l,i]=(0,r.useState)(()=>{if(!t)return{Component:null,loading:!1,error:null};let e=et.get(n);return e?{Component:e,loading:!1,error:null}:{Component:null,loading:!0,error:null}}),o=(0,r.useRef)(n);if(o.current!==n)if(o.current=n,t){let e=et.get(n);e?i({Component:e,loading:!1,error:null}):i({Component:null,loading:!0,error:null})}else i({Component:null,loading:!1,error:null});let c=(0,r.useRef)(e);c.current=e;let d=(0,r.useRef)(n);d.current=n;let u=(0,r.useCallback)(async()=>{if(!t)return void i({Component:null,loading:!1,error:null});let r=et.get(n);if(r)return void i({Component:r,loading:!1,error:null});i(e=>({...e,loading:!0,error:null}));try{let t=await fetch(`/api/trace-renderer?systemId=${encodeURIComponent(e)}&surface=${encodeURIComponent(s)}`);if(!t.ok){let a=await t.json().catch(()=>({})),s="string"==typeof a.error?a.error:`HTTP ${t.status}`;c.current===e&&d.current===n&&i({Component:null,loading:!1,error:s});return}let r=await t.text(),l=function(e){let t=e.replace(/import\s*\{([^}]*)\}\s*from\s*["']react["']\s*;?/g,(e,t)=>`const {${es(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 {${es(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 {${es(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 TraceView !== 'undefined' && !__exports.default) __exports.default = TraceView;
|
|
4
|
+
if (typeof DatasetItemView !== 'undefined' && !__exports.default) __exports.default = DatasetItemView;
|
|
5
|
+
if (typeof TraceRenderer !== 'undefined' && !__exports.default) __exports.default = TraceRenderer;
|
|
6
|
+
`)(s,r,n),"function"!=typeof n.default)throw Error("Custom trace view must export a default React component");return n.default}(r);c.current===e&&d.current===n&&(et.set(n,l),i({Component:l,loading:!1,error:null}))}catch(t){c.current===e&&d.current===n&&i({Component:null,loading:!1,error:t instanceof Error?t.message:String(t)})}},[n,t,s,e]);return(0,r.useEffect)(()=>{u()},[u]),(0,r.useEffect)(()=>{if(!t)return;let e=()=>{et.delete(n),u()};return window.addEventListener("focus",e),()=>window.removeEventListener("focus",e)},[n,t,u]),l}function es(e){return e.replace(/(\w+)\s+as\s+(\w+)/g,"$1: $2")}function er({trace:e,systemId:t,hasCustomRenderer:a,datasetName:n=null,runId:l=null,surface:i,loading:o,error:d}){let{Component:u,loading:m,error:p}=ea(t,a,"trace"),_=(0,r.useMemo)(()=>({systemId:t,surface:i??"trace",datasetName:n,runId:l}),[n,l,i,t]),h=(0,r.useMemo)(()=>el({trace:e}),[e]);return o?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading trace..."}):d?(0,s.jsx)("div",{className:c().errorPanel,children:d}):e?m?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading custom renderer..."}):p?(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:c().errorPanel,children:["Custom renderer error: ",p]}),(0,s.jsx)(eu,{trace:e})]}):u?(0,s.jsx)(ep,{fallback:(0,s.jsx)(eu,{trace:e}),children:(0,s.jsx)(u,{trace:e,context:_,actions:h})},e.id??e.name??""):(0,s.jsx)(eu,{trace:e}):(0,s.jsx)("div",{className:c().mutedText,children:"No source trace linked."})}function en({trace:e,datasetItem:t,systemId:a,hasCustomRenderer:n,datasetName:l,loading:i,error:o,sourceTraceError:d}){let{Component:u,loading:m,error:p}=ea(a,n,"dataset-item"),_=(0,r.useMemo)(()=>({systemId:a,surface:"dataset-item",datasetName:l,runId:null}),[l,a]),h=(0,r.useMemo)(()=>(function({trace:e,datasetItem:t,datasetName:a}){return{...el({trace:e}),updateDatasetItem:async e=>eo({action:"update-dataset-item",datasetName:e.datasetName??a,itemId:e.itemId??t?.id,input:e.input,expectedOutput:e.expectedOutput,metadata:e.metadata,sourceTraceId:e.sourceTraceId,status:e.status}),createDatasetRunItem:async a=>eo({action:"create-dataset-run-item",datasetItemId:a.datasetItemId??t?.id,traceId:a.traceId??ec(e?.id),runName:a.runName,runDescription:a.runDescription,metadata:a.metadata})}})({trace:e,datasetItem:t,datasetName:l}),[t,l,e]);if(i)return(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading dataset item..."});if(o)return(0,s.jsx)("div",{className:c().errorPanel,children:o});if(!t)return(0,s.jsx)("div",{className:c().mutedText,children:"No dataset item selected."});let f=d?(0,s.jsxs)("div",{className:c().errorPanel,children:["Source trace could not be loaded: ",d]}):null;return m?(0,s.jsxs)(s.Fragment,{children:[f,(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading custom dataset view..."})]}):p?(0,s.jsxs)("div",{children:[f,(0,s.jsxs)("div",{className:c().errorPanel,children:["Custom dataset view error: ",p]}),(0,s.jsx)(ei,{trace:e,datasetItem:t})]}):u?(0,s.jsxs)(s.Fragment,{children:[f,(0,s.jsx)(ep,{fallback:(0,s.jsx)(ei,{trace:e,datasetItem:t}),children:(0,s.jsx)(u,{trace:e,datasetItem:t,context:_,actions:h})},t.id)]}):(0,s.jsxs)(s.Fragment,{children:[f,(0,s.jsx)(ei,{trace:e,datasetItem:t})]})}function el({trace:e}){return{createScore:async t=>eo({action:"create-score",traceId:t.traceId??ec(e?.id),name:t.name,value:t.value,comment:t.comment,metadata:t.metadata})}}function ei({trace:e,datasetItem:t}){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:c().detailGrid,children:[(0,s.jsx)(em,{title:"Input",value:t.input}),(0,s.jsx)(em,{title:"Expected output",value:t.expectedOutput})]}),(0,s.jsx)(em,{title:"Metadata",value:t.metadata}),e?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:c().sectionTitle,children:"Source trace"}),(0,s.jsx)(eu,{trace:e})]}):(0,s.jsx)("div",{className:c().mutedText,children:"No source trace linked."})]})}async function eo(e){let t=await fetch("/api/langfuse-action",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),a=await t.json().catch(()=>null);if(!t.ok)throw Error(ed(a)&&"string"==typeof a.error?a.error:`HTTP ${t.status}`);return ed(a)&&"data"in a?a.data:a}function ec(e){return"string"==typeof e&&e?e:void 0}function ed(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function eu({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)(em,{title:"Trace metadata",value:e.metadata}),(0,s.jsxs)("div",{className:c().detailGrid,children:[(0,s.jsx)(em,{title:"Trace input",value:e.input}),(0,s.jsx)(em,{title:"Trace output",value:e.output})]})]})}function em({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 ep 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 e_(e){let t=e.indexOf("?"),a=e.indexOf("#"),s=-1===t?-1===a?void 0:a:-1===a?t:Math.min(t,a);return e.slice(0,s).split("/").filter(Boolean).map(e=>(function(e){try{return decodeURIComponent(e)}catch{return e}})(e))}function eh(e){return e?.trim()||null}function ef(e){return encodeURIComponent(e)}function ex({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(eb);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)(eg,{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 eg({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 eb(e){return null!==e}function ej(e=new Date){return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(e)}let ey={shallow:!0,scroll:!1},ev={width:40},eS={width:32},eN={fontWeight:500},eT={color:"rgba(255,255,255,0.5)"},ek={fontSize:"0.75rem"},eC={padding:"0.2rem 0.5rem",fontSize:"0.75rem",minWidth:"unset"},ew={display:"flex",gap:"0.25rem",flexWrap:"wrap"},eI={opacity:.6},eR={display:"flex",gap:"0.5rem"},eP=e=>e.stopPropagation();function eL({system:e}){let t=(0,A.useRouter)(),[a,n]=(0,r.useState)("datasets"),[l,i]=(0,r.useState)([]),[o,d]=(0,r.useState)(!1),[u,m]=(0,r.useState)(null),[p,_]=(0,r.useState)(!1),[h,f]=(0,r.useState)(null),[x,g]=(0,r.useState)(null),[b,j]=(0,r.useState)("list"),[y,v]=(0,r.useState)(null),[S,N]=(0,r.useState)([]),[T,k]=(0,r.useState)(!1),[C,w]=(0,r.useState)(null),[I,R]=(0,r.useState)(null),[L,E]=(0,r.useState)(null),[M,$]=(0,r.useState)(!1),[D,B]=(0,r.useState)(1),[F,H]=(0,r.useState)(1),[O,V]=(0,r.useState)(0),U=(0,r.useRef)(D);U.current=D;let[z,K]=(0,r.useState)("list"),[G,Y]=(0,r.useState)([]),[W,q]=(0,r.useState)(!1),[J,Q]=(0,r.useState)(null),[X,ee]=(0,r.useState)(null),[et,ea]=(0,r.useState)(""),[es,er]=(0,r.useState)(""),[en,el]=(0,r.useState)(""),[ei,eo]=(0,r.useState)(1),ec=(0,r.useRef)(ei);ec.current=ei;let[ed,eu]=(0,r.useState)(1),[em,ep]=(0,r.useState)(new Set),[ef,eg]=(0,r.useState)(new Set),[eb,ev]=(0,r.useState)(!1),[eS,eN]=(0,r.useState)(null),[eT,ek]=(0,r.useState)(null),[eC,ew]=(0,r.useState)(!1),[eI,eR]=(0,r.useState)(null),[eP,eL]=(0,r.useState)(!1),[eM,e$]=(0,r.useState)(null),eB=(0,r.useRef)(e.id);eB.current=e.id;let eH=(0,r.useRef)(""),eO=(0,r.useRef)(""),eV=(0,r.useRef)(""),ez=(0,r.useRef)(null),eK=(0,r.useMemo)(()=>t.isReady?function(e){let t=function(e){let t=e.indexOf("?");if(-1===t)return new URLSearchParams;let a=e.indexOf("#",t);return new URLSearchParams(e.slice(t+1,-1===a?void 0:a))}(e),a=e_(e),[s,r,n,l]="data"===a[1]?a.slice(2):[],i=t.get("tags")??"",o=function(e){if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:null}(t.get("page"))??1,c=e3(t.get("fromTs")),d=e3(t.get("toTs"));if("traces"===s){let e=eh(r??null);return{view:"traces",datasetSubView:"list",selectedDatasetName:null,selectedItemId:null,tracesSubView:e?"detail":"list",selectedTraceId:e,tracesPage:o,tagFilter:i,fromTs:c,toTs:d}}let u="datasets"===s?eh(r??null):null,m=u&&"items"===n?eh(l??null):null;return{view:"datasets",datasetSubView:u?m?"item-detail":"detail":"list",selectedDatasetName:u,selectedItemId:u?m:null,tracesSubView:"list",selectedTraceId:null,tracesPage:1,tagFilter:"",fromTs:"",toTs:""}}(t.asPath):null,[t.asPath,t.isReady]),eY=(0,r.useCallback)(a=>{t.push(eX(e.id,a),void 0,ey)},[t,e.id]),eW=(0,r.useCallback)(async()=>{let t=e.id;d(!0);try{var a;let e=await fetch(`/api/langfuse-datasets?systemId=${encodeURIComponent(t)}`),s=(a=await e.json(),e8(a)?{data:Array.isArray(a.data)?a.data.map(e5).filter(te):void 0,connection:e2(a.connection),error:ta(a.error)}:{});if(eB.current===t&&f(s.connection??null),!e.ok)throw Error(s.error??`HTTP ${e.status}`);if(eB.current!==t)return;i(s.data??[]),m(null),g(ej())}catch(e){if(eB.current!==t)return;m(e instanceof Error?e.message:String(e))}finally{eB.current===t&&(_(!0),d(!1))}},[e.id]),eq=(0,r.useCallback)(async(t,a)=>{let s=e.id;k(!0);try{let e=new URLSearchParams;e.set("dataset",t),e.set("systemId",s),a?.page&&e.set("page",String(a.page)),a?.noCache&&e.set("noCache","1");let r=await fetch(`/api/langfuse-dataset?${e.toString()}`),n=e0(await r.json());if(eB.current===s&&f(n.connection??null),!r.ok)throw Error(n.error??`HTTP ${r.status}`);if(eB.current!==s)return -1;let l=(n.data??[]).filter(Z),i=n.meta?.page??1;return N(l),B(i),H(n.meta?.totalPages??1),V(n.meta?.totalItems??l.length),w(null),g(ej()),l.length}catch(e){if(eB.current!==s)return -1;return w(e instanceof Error?e.message:String(e)),-1}finally{eB.current===s&&k(!1)}},[e.id]),eJ=(0,r.useCallback)(async(t=1,a,s,r,n)=>{let l=e.id;q(!0);try{let e=new URLSearchParams;if(e.set("page",String(t)),e.set("limit","50"),e.set("systemId",l),a&&a.trim())for(let t of a.split(",").map(e=>e.trim()))t&&e.append("tags",t);let i=e7(s);i&&e.set("fromTimestamp",i);let o=e7(r);o&&e.set("toTimestamp",o),n?.noCache&&e.set("noCache","1");let c=await fetch(`/api/langfuse-traces?${e.toString()}`),d=function(e){if(!e8(e))return{};let t=Array.isArray(e.data)?e.data.map(e6).filter(te):void 0,a=e8(e.meta)?e.meta:void 0;return{data:t,meta:a?{page:"number"==typeof a.page?a.page:void 0,totalPages:"number"==typeof a.totalPages?a.totalPages:void 0,totalItems:"number"==typeof a.totalItems?a.totalItems:void 0}:void 0,connection:e2(e.connection),error:ta(e.error)}}(await c.json());if(eB.current===l&&f(d.connection??null),!c.ok)throw Error(d.error??`HTTP ${c.status}`);if(eB.current!==l)return;Y(d.data??[]),eu(d.meta?.totalPages??1),Q(null),g(ej())}catch(e){if(eB.current!==l)return;Q(e instanceof Error?e.message:String(e))}finally{eB.current===l&&q(!1)}},[e.id]);(0,r.useEffect)(()=>{i([]),_(!1),m(null),f(null),g(null),N([]),B(1),H(1),V(0),Y([]),Q(null),eu(1),ep(new Set),eg(new Set),ez.current=null,eW()},[eW,e.id]);let eZ=(0,r.useRef)(null),eQ=(0,r.useRef)(a);eQ.current=a;let e1=(0,r.useRef)(y);e1.current=y;let e4=(0,r.useRef)(b);e4.current=b;let e9=(0,r.useRef)(eW);e9.current=eW;let tt=(0,r.useRef)(eq);tt.current=eq;let ts=(0,r.useRef)(eJ);ts.current=eJ,(0,r.useEffect)(()=>{let e=()=>{if(document.hidden){eZ.current=Date.now();return}if(null===eZ.current||Date.now()-eZ.current<3e4){eZ.current=null;return}eZ.current=null,"traces"===eQ.current?ts.current(ec.current,eH.current,eO.current,eV.current):(e9.current(),e1.current&&"list"!==e4.current&&tt.current(e1.current,{page:U.current,noCache:!0}))};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[]),(0,r.useEffect)(()=>{if(!eK)return;let e=ez.current,t=eK.selectedDatasetName!==e?.selectedDatasetName,a=eK.view!==e?.view||eK.tracesPage!==e?.tracesPage||eK.tagFilter!==e?.tagFilter||eK.fromTs!==e?.fromTs||eK.toTs!==e?.toTs;("datasets"!==eK.view||t)&&(N([]),E(null),B(1),H(1),V(0)),n(eK.view),j(eK.datasetSubView),v(eK.selectedDatasetName),R(eK.selectedItemId),K(eK.tracesSubView),ee(eK.selectedTraceId),eo(eK.tracesPage),ea(eK.tagFilter),er(eK.fromTs),el(eK.toTs),eH.current=eK.tagFilter,eO.current=eK.fromTs,eV.current=eK.toTs,a&&ep(new Set),(eK.view!==e?.view||t)&&eg(new Set),e$(null),ez.current=eK,"traces"===eK.view&&"list"===eK.tracesSubView&&eJ(eK.tracesPage,eK.tagFilter,eK.fromTs,eK.toTs)},[eK,eJ]),(0,r.useEffect)(()=>{y&&"list"!==b&&eq(y,{page:U.current})},[eq,y,b]),(0,r.useEffect)(()=>{if("item-detail"!==b||!I||!y||S.some(e=>e.id===I)){E(null),$(!1);return}if(T)return;let t=!1;$(!0);let a=new URLSearchParams;return a.set("dataset",y),a.set("systemId",e.id),a.set("itemId",I),fetch(`/api/langfuse-dataset?${a.toString()}`).then(e=>e.json()).then(e=>{if(t)return;let a=(e0(e).data??[]).filter(Z);a.length>0&&E(a[0]??null)}).catch(()=>{}).finally(()=>{t||$(!1)}),()=>{t=!0}},[b,I,y,S,T,e.id]);let tr=(0,r.useCallback)(async e=>{eL(!0),e$(null);try{let t=await fetch("/api/langfuse-dataset-mutation",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"create",name:e})}),a=await t.json();if(!t.ok)throw Error(a.error??`HTTP ${t.status}`);await eW(),ev(!1)}catch(e){e$(e instanceof Error?e.message:String(e))}finally{eL(!1)}},[eW]),tn=(0,r.useCallback)(async e=>{eL(!0),e$(null);try{let t=await fetch("/api/langfuse-dataset-mutation",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",name:e})}),a=await t.json();if(!t.ok)throw Error(a.error??`HTTP ${t.status}`);await eW(),eN(null),y===e&&eY({view:"datasets"})}catch(e){e$(e instanceof Error?e.message:String(e))}finally{eL(!1)}},[eW,eY,y]),tl=(0,r.useCallback)(async(e,t)=>{if(l.some(e=>e.name===t))return void e$("A dataset with this name already exists.");eL(!0),e$(null);try{let a=await fetch("/api/langfuse-dataset-mutation",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"rename",oldName:e,newName:t})});if(!a.ok){let e=await a.json();throw Error(e.error??`Failed to rename dataset: HTTP ${a.status}`)}await eW(),ek(null),y===e&&eY({view:"datasets",datasetName:t})}catch(e){e$(e instanceof Error?e.message:String(e))}finally{eL(!1)}},[l,eW,eY,y]),ti=(0,r.useCallback)(async e=>{eL(!0),e$(null);try{for(let t of e){let e=await fetch("/api/langfuse-dataset-mutation",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete-item",itemId:t})}),a=await e.json();if(!e.ok)throw Error(a.error??`HTTP ${e.status}`)}if(y){let e=U.current,t=await eq(y,{noCache:!0,page:e});t>=0&&0===t&&e>1&&await eq(y,{noCache:!0,page:1})}eg(new Set)}catch(e){e$(e instanceof Error?e.message:String(e))}finally{eL(!1)}},[eq,y]),to=(0,r.useCallback)(async(t,a)=>{let s=[];try{for(let r of t){let t=await fetch("/api/langfuse-dataset-item",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"add-from-trace",datasetName:a,source:r,expectedOutput:void 0,notes:"",systemId:e.id})}),n=await t.json();if(!t.ok)throw Error(n.error??`HTTP ${t.status}`);s.push(r)}return!0}catch(e){return{error:e instanceof Error?e.message:String(e),added:s}}},[e.id]),tc=(0,r.useCallback)(()=>{"datasets"===eQ.current?(e9.current(),e1.current&&"list"!==e4.current&&tt.current(e1.current,{noCache:!0,page:U.current})):ts.current(ec.current,eH.current,eO.current,eV.current,{noCache:!0})},[]),td=(0,r.useCallback)(e=>{eY({view:"datasets",datasetName:e})},[eY]),tu=(0,r.useCallback)(()=>{eY({view:"datasets"})},[eY]),tm=(0,r.useCallback)(e=>{y&&eY({view:"datasets",datasetName:y,itemId:e})},[eY,y]),tp=(0,r.useCallback)(e=>{y&&eq(y,{page:e})},[eq,y]),t_=(0,r.useCallback)(()=>{y?eY({view:"datasets",datasetName:y}):eY({view:"datasets"})},[eY,y]),th=(0,r.useCallback)(e=>{eY({view:"traces",traceId:e,page:ei,tags:eH.current,fromTs:eO.current,toTs:eV.current})},[eY,ei]),tf=(0,r.useCallback)(()=>{eY({view:"traces",page:ei,tags:eH.current,fromTs:eO.current,toTs:eV.current})},[eY,ei]),tx=(0,r.useCallback)(()=>{eH.current=et,eO.current=es,eV.current=en,eY({view:"traces",page:1,tags:et,fromTs:es,toTs:en})},[eY,et,es,en]),tg=(0,r.useCallback)(e=>{eY({view:"traces",page:e,tags:eH.current,fromTs:eO.current,toTs:eV.current})},[eY]),tb=(0,r.useCallback)(e=>{ep(t=>{let a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a})},[]),tj=(0,r.useCallback)((e,t)=>{ep(a=>{let s=new Set(a);for(let a of e)t?s.add(a):s.delete(a);return s})},[]),ty=(0,r.useCallback)(e=>{eg(t=>{let a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a})},[]),tv=(0,r.useCallback)(()=>{eY({view:"datasets"})},[eY]),tS=(0,r.useCallback)(()=>{eY({view:"traces",page:ei,tags:eH.current,fromTs:eO.current,toTs:eV.current})},[eY,ei]),tN=(0,r.useCallback)(()=>{ev(!0),e$(null)},[]),tT=(0,r.useCallback)(()=>eN(null),[]),tk=(0,r.useCallback)(()=>ek(null),[]),tC=(0,r.useCallback)(()=>eR(null),[]),tw=(0,r.useCallback)(async(e,t)=>{eL(!0),e$(null);try{let a=await to(e,t);return!0===a?(ep(new Set),ew(!1)):(a.added.length>0&&ep(e=>{let t=new Set(e);for(let e of a.added)t.delete(e);return t}),e$(a.error)),a}finally{eL(!1)}},[to]),tI=(0,r.useCallback)(()=>{ew(!0),e$(null)},[]),tR=(0,r.useCallback)(()=>ew(!1),[]),tP=(0,r.useCallback)(()=>ev(!1),[]);return(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsx)(P,{title:"Langfuse data",source:"langfuse",syncLabel:x?`Updated ${x}`:"",onRefresh:tc,refreshing:o||T||W,children:"Browse Langfuse traces and manage evaluation datasets by reviewing source traces, selecting examples, and adding them to golden sets."}),h&&"connected"!==h.state&&(0,s.jsx)(ex,{status:h}),(0,s.jsxs)("div",{className:c().dataLayout,children:[(0,s.jsxs)("aside",{className:c().dataNav,children:[(0,s.jsx)("button",{className:`${c().dataNavItem} ${"datasets"===a?c().dataNavItemActive:""}`,onClick:tv,children:"Datasets"}),(0,s.jsx)("button",{className:`${c().dataNavItem} ${"traces"===a?c().dataNavItemActive:""}`,onClick:tS,children:"Traces"})]}),(0,s.jsx)("section",{className:c().dataMain,children:"datasets"===a?"list"===b?(0,s.jsx)(eE,{datasets:l,loading:o&&!p,error:u,mutationError:eM,mutating:eP,showDeleteConfirm:eS,showRenameModal:eT,showMenuFor:eI,onOpenDataset:td,onShowCreate:tN,onShowDelete:eN,onCloseDelete:tT,onDelete:tn,onShowRename:ek,onCloseRename:tk,onRename:tl,onShowMenu:eR,onCloseMenu:tC}):"detail"===b&&y?(0,s.jsx)(eA,{datasetName:y,items:S,loading:T,error:C,mutationError:eM,mutating:eP,selectedItemIds:ef,page:D,totalPages:F,totalItems:O,onBack:tu,onOpenItem:tm,onToggleItem:ty,onRemoveItems:ti,onPageChange:tp}):"item-detail"===b&&y&&I?(0,s.jsx)(eD,{item:S.find(e=>e.id===I)??L,loading:T||M,systemId:e.id,hasTraceRenderer:!!e.traceRenderer,hasDatasetItemRenderer:!!e.datasetItemRenderer,datasetName:y,onBack:t_}):null:"list"===z?(0,s.jsx)(eF,{traces:G,loading:W,error:J,mutationError:eM,mutating:eP,tagFilter:et,fromTs:es,toTs:en,page:ei,totalPages:ed,selectedTraceIds:em,datasets:l,showAddToDatasetModal:eC,onTagFilterChange:ea,onFromTsChange:er,onToTsChange:el,onSearch:tx,onPageChange:tg,onOpenTrace:th,onToggleTrace:tb,onToggleVisibleTraces:tj,onShowAddToDataset:tI,onCloseAddToDataset:tR,onAddToDataset:tw}):X?(0,s.jsx)(eU,{traceId:X,systemId:e.id,hasCustomRenderer:!!e.traceRenderer,datasets:l,onBack:tf}):null})]}),eb&&(0,s.jsx)(eG,{mutating:eP,error:eM,onCreate:tr,onClose:tP})]})}function eE({datasets:e,loading:t,error:a,mutationError:n,showMenuFor:l,showDeleteConfirm:i,showRenameModal:o,mutating:d,onOpenDataset:u,onShowCreate:m,onShowDelete:p,onCloseDelete:_,onDelete:h,onShowRename:f,onCloseRename:x,onRename:g,onShowMenu:b,onCloseMenu:j}){let y=(0,r.useCallback)(()=>{l&&(j(),f(l))},[l,j,f]),v=(0,r.useCallback)(()=>{l&&(j(),p(l))},[l,j,p]),S=(0,r.useCallback)(()=>{i&&h(i)},[i,h]),N=(0,r.useCallback)(e=>{o&&g(o,e)},[o,g]);return(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsxs)("div",{className:c().surfaceToolbar,children:[(0,s.jsx)("div",{className:c().surfaceTitle,children:"Datasets"}),(0,s.jsx)("button",{className:c().primaryButton,onClick:m,children:"+ New dataset"})]}),a&&(0,s.jsx)("div",{className:c().errorPanel,children:a}),n&&(0,s.jsx)("div",{className:c().errorPanel,children:n}),t?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading datasets..."}):0===e.length?(0,s.jsxs)("div",{className:c().emptyPanel,children:[(0,s.jsx)("div",{className:c().emptyPanelTitle,children:"No datasets found"}),(0,s.jsx)("div",{className:c().emptyPanelCopy,children:"Create a dataset to start organizing evaluation data."})]}):(0,s.jsx)("div",{className:`${c().runTracesTableWrap} ${c().datasetsTableWrap}`,children:(0,s.jsxs)("table",{className:c().runTracesTable,children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{children:"Name"}),(0,s.jsx)("th",{children:"Description"}),(0,s.jsx)("th",{children:"Created"}),(0,s.jsx)("th",{children:"Updated"}),(0,s.jsx)("th",{style:ev})]})}),(0,s.jsx)("tbody",{children:e.map((t,a)=>(0,s.jsx)(eM,{dataset:t,menuPlacement:a===e.length-1?"above":"below",showMenuFor:l,onOpenDataset:u,onShowMenu:b,onRename:y,onDelete:v,onCloseMenu:j},t.name))})]})}),i&&(0,s.jsx)(eW,{title:`Delete \u201C${i}\u201D?`,message:"This will remove all items from this dataset. The empty dataset shell will remain visible in Langfuse and in this list.",confirmLabel:"Delete",mutating:d,error:n,onConfirm:S,onClose:_}),o&&(0,s.jsx)(eY,{currentName:o,mutating:d,error:n,onRename:N,onClose:x})]})}function eM({dataset:e,menuPlacement:t,showMenuFor:a,onOpenDataset:n,onShowMenu:l,onRename:i,onDelete:o,onCloseMenu:d}){let u=(0,r.useCallback)(()=>n(e.name),[n,e.name]),m=(0,r.useCallback)(t=>{t.stopPropagation(),l(a===e.name?null:e.name)},[l,a,e.name]),p=a===e.name;return(0,s.jsxs)("tr",{className:`${c().runTracesTableRowClickable} ${p?c().datasetRowMenuOpen:""}`,onClick:u,children:[(0,s.jsx)("td",{style:eN,children:e.name}),(0,s.jsx)("td",{style:eT,children:e.description||"—"}),(0,s.jsx)("td",{style:ek,children:e.createdAt?eQ(e.createdAt):"—"}),(0,s.jsx)("td",{style:ek,children:e.updatedAt?eQ(e.updatedAt):"—"}),(0,s.jsx)("td",{className:`${c().datasetActionsCell} ${p?c().datasetActionsCellOpen:""}`,children:(0,s.jsxs)("div",{className:c().datasetMenuAnchor,children:[(0,s.jsx)("button",{className:c().secondaryButton,style:eC,onClick:m,"aria-label":`Actions for ${e.name}`,title:`Actions for ${e.name}`,children:"⋯"}),p&&(0,s.jsx)(eq,{placement:t,onRename:i,onDelete:o,onClose:d})]})})]})}function eA({datasetName:e,items:t,loading:a,error:n,mutationError:l,mutating:i,selectedItemIds:o,page:d,totalPages:u,totalItems:m,onBack:p,onOpenItem:_,onToggleItem:h,onRemoveItems:f,onPageChange:x}){let g=(0,r.useCallback)(()=>{f(Array.from(o))},[f,o]),b=(0,r.useCallback)(()=>{d>1&&x(d-1)},[x,d]),j=(0,r.useCallback)(()=>{d<u&&x(d+1)},[x,d,u]);return(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsx)($,{label:"Datasets",onClick:p}),(0,s.jsxs)("div",{className:c().surfaceToolbar,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:c().surfaceTitle,children:e}),(0,s.jsxs)("div",{className:c().surfaceSubtitle,children:[m," item",1===m?"":"s",u>1?` \xb7 page ${d} of ${u}`:""]})]}),(0,s.jsxs)("div",{style:eR,children:[u>1&&(0,s.jsx)(eO,{page:d,totalPages:u,onPrevious:b,onNext:j,label:"Dataset items pagination",placement:"toolbar"}),o.size>0&&(0,s.jsxs)("button",{className:c().dangerButton,disabled:i,onClick:g,children:["Remove ",o.size," item",1===o.size?"":"s"]})]})]}),n&&(0,s.jsx)("div",{className:c().errorPanel,children:n}),l&&(0,s.jsx)("div",{className:c().errorPanel,children:l}),a?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading items..."}):0===t.length?(0,s.jsxs)("div",{className:c().emptyPanel,children:[(0,s.jsx)("div",{className:c().emptyPanelTitle,children:"No items in dataset"}),(0,s.jsx)("div",{className:c().emptyPanelCopy,children:"Add traces to this dataset from the Traces tab."})]}):(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",{style:eS}),(0,s.jsx)("th",{children:"Title"}),(0,s.jsx)("th",{children:"Trace"}),(0,s.jsx)("th",{children:"Status"}),(0,s.jsx)("th",{children:"Created"})]})}),(0,s.jsx)("tbody",{children:t.map((e,t)=>(0,s.jsx)(e$,{item:e,index:t,selected:o.has(e.id),onOpenItem:_,onToggleItem:h},e.id))})]})})]})}function e$({item:e,index:t,selected:a,onOpenItem:n,onToggleItem:l}){let i=J(e),o=(0,r.useCallback)(()=>n(e.id),[n,e.id]),d=(0,r.useCallback)(e=>e.stopPropagation(),[]),u=(0,r.useCallback)(()=>l(e.id),[l,e.id]);return(0,s.jsxs)("tr",{className:c().runTracesTableRowClickable,onClick:o,children:[(0,s.jsx)("td",{onClick:d,children:(0,s.jsx)("input",{className:c().checkboxInput,type:"checkbox",checked:a,onChange:u})}),(0,s.jsx)("td",{style:eN,children:eZ(e,t)}),(0,s.jsx)("td",{className:c().runTracesTableId,children:i?i.slice(0,12):"—"}),(0,s.jsx)("td",{children:(0,s.jsx)("span",{className:c().tagPill,children:e.status??"ACTIVE"})}),(0,s.jsx)("td",{style:ek,children:e.createdAt?eQ(e.createdAt):"—"})]})}function eD({item:e,loading:t,systemId:a,hasTraceRenderer:n,hasDatasetItemRenderer:l,datasetName:i,onBack:o}){let d=e?J(e):null,[u,m]=(0,r.useState)([]),[p,_]=(0,r.useState)(!1);(0,r.useEffect)(()=>{if(!d)return;let e=!1;return _(!0),G(d,a).then(t=>{e||m([...new Set(t.map(e=>e.datasetName))])}).catch(()=>{}).finally(()=>{e||_(!1)}),()=>{e=!0}},[d,a]);let h=(0,r.useMemo)(()=>e?{...e}:null,[e]),f=(0,r.useCallback)(e=>eX(a,{view:"datasets",datasetName:e}),[a]);return e?(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsx)($,{label:i,onClick:o}),(0,s.jsxs)("div",{className:c().detailHeader,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:c().detailTitle,children:eZ(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.jsx)(F,{title:"Datasets",loading:p,memberDatasets:u,datasetHref:f}),l?(0,s.jsx)(eB,{traceId:d,systemId:a,datasetName:i,datasetItem:h}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:c().detailGrid,children:[(0,s.jsx)(eK,{title:"Input",value:e.input}),(0,s.jsx)(eK,{title:"Expected output",value:e.expectedOutput})]}),(0,s.jsx)(eK,{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)(ez,{traceId:d,systemId:a,hasCustomRenderer:n,compact:!0})]})]})]}):(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsx)($,{label:i,onClick:o}),t?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading item..."}):(0,s.jsx)("div",{className:c().emptyPanel,children:(0,s.jsx)("div",{className:c().emptyPanelTitle,children:"Item not found"})})]})}function eB({traceId:e,systemId:t,datasetName:a,datasetItem:n}){let[l,i]=(0,r.useState)(null),[o,c]=(0,r.useState)(null);return(0,r.useEffect)(()=>{if(i(null),c(null),!e)return;let a=!1;return fetch(`/api/langfuse-trace?traceId=${encodeURIComponent(e)}&systemId=${encodeURIComponent(t)}`).then(async e=>{let t=e1(await e.json());if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);a||i(t)}).catch(e=>{a||(i(null),c(e instanceof Error?e.message:String(e)))}),()=>{a=!0}},[t,e]),(0,s.jsx)(en,{trace:l,datasetItem:n,systemId:t,hasCustomRenderer:!0,datasetName:a,loading:!1,error:null,sourceTraceError:o})}function eF({traces:e,loading:t,error:a,mutationError:n,mutating:l,tagFilter:i,fromTs:o,toTs:d,page:u,totalPages:m,selectedTraceIds:p,datasets:_,showAddToDatasetModal:h,onTagFilterChange:f,onFromTsChange:x,onToTsChange:g,onSearch:b,onPageChange:j,onOpenTrace:y,onToggleTrace:v,onToggleVisibleTraces:S,onShowAddToDataset:N,onCloseAddToDataset:T,onAddToDataset:k}){let C=(0,r.useMemo)(()=>Array.from(p),[p]),w=(0,r.useMemo)(()=>e.map(e=>e.id),[e]),I=(0,r.useMemo)(()=>w.reduce((e,t)=>e+ +!!p.has(t),0),[p,w]),R=w.length>0&&I===w.length,P=I>0&&!R,L=(0,r.useRef)(null);(0,r.useEffect)(()=>{L.current&&(L.current.indeterminate=P)},[P]);let E=(0,r.useCallback)(e=>{f(e.target.value)},[f]),M=(0,r.useCallback)(e=>{x(e.target.value)},[x]),A=(0,r.useCallback)(e=>{g(e.target.value)},[g]),$=(0,r.useCallback)(e=>{"Enter"===e.key&&b()},[b]),D=(0,r.useCallback)(()=>j(u-1),[j,u]),B=(0,r.useCallback)(()=>j(u+1),[j,u]),F=(0,r.useCallback)(e=>{S(w,e.target.checked)},[S,w]);return(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsxs)("div",{className:c().surfaceToolbar,children:[(0,s.jsxs)("div",{className:c().tracesToolbarSearch,children:[(0,s.jsx)("div",{className:c().surfaceTitle,children:"Traces"}),(0,s.jsx)("input",{className:`${c().textInput} ${c().traceSearchInput}`,placeholder:"Filter by tags (comma-separated)",value:i,onChange:E,onKeyDown:$}),(0,s.jsx)("label",{className:c().traceDateRangeLabel,htmlFor:"traces-from-ts",children:"From"}),(0,s.jsx)("input",{id:"traces-from-ts",type:"datetime-local",className:`${c().textInput} ${c().traceDateInput}`,value:o,onChange:M,onKeyDown:$,title:"Start of time range (defaults to last 24 hours)"}),(0,s.jsx)("label",{className:c().traceDateRangeLabel,htmlFor:"traces-to-ts",children:"To"}),(0,s.jsx)("input",{id:"traces-to-ts",type:"datetime-local",className:`${c().textInput} ${c().traceDateInput}`,value:d,onChange:A,onKeyDown:$,title:"End of time range (leave blank for now)"}),(0,s.jsx)("button",{className:`${c().secondaryButton} ${c().traceSearchButton}`,onClick:b,"aria-label":"Search traces",title:"Search traces",children:(0,s.jsx)(eH,{})})]}),(0,s.jsxs)("div",{className:c().tracesToolbarRight,children:[!t&&e.length>0&&(0,s.jsx)(eO,{page:u,totalPages:m,onPrevious:D,onNext:B,label:"Trace table top pagination",placement:"toolbar"}),p.size>0&&(0,s.jsxs)("button",{className:c().primaryButton,onClick:N,children:["Add ",p.size," trace",1===p.size?"":"s"," to dataset"]})]})]}),a&&(0,s.jsx)("div",{className:c().errorPanel,children:a}),n&&(0,s.jsx)("div",{className:c().errorPanel,children:n}),t?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading traces..."}):0===e.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:i?"Try adjusting the tag filter.":"Traces will appear here once they are sent to Langfuse."})]}):(0,s.jsxs)(s.Fragment,{children:[(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",{style:eS,children:(0,s.jsx)("input",{ref:L,className:c().checkboxInput,type:"checkbox",checked:R,onChange:F,"aria-label":"Select all visible traces",title:"Select all visible traces"})}),(0,s.jsx)("th",{children:"Name"}),(0,s.jsx)("th",{children:"ID"}),(0,s.jsx)("th",{children:"Tags"}),(0,s.jsx)("th",{children:"Timestamp"})]})}),(0,s.jsx)("tbody",{children:e.map(e=>(0,s.jsx)(eV,{trace:e,selected:p.has(e.id),onOpenTrace:y,onToggleTrace:v},e.id))})]})}),(0,s.jsx)(eO,{page:u,totalPages:m,onPrevious:D,onNext:B,label:"Trace table bottom pagination"})]}),h&&(0,s.jsx)(V,{datasets:_,traceIds:C,mutating:l,error:n,onAdd:k,onClose:T})]})}function eH(){return(0,s.jsx)("span",{"aria-hidden":"true",className:c().searchIcon})}function eO({page:e,totalPages:t,onPrevious:a,onNext:r,label:n,placement:l="block"}){return(0,s.jsxs)("div",{className:`${c().paginationBar} ${"toolbar"===l?c().paginationBarToolbar:""}`,"aria-label":n,children:[(0,s.jsx)("button",{className:`${c().iconButton} ${c().paginationIconButton}`,disabled:e<=1,onClick:a,"aria-label":"Previous page",title:"Previous page",children:(0,s.jsx)("span",{"aria-hidden":"true",children:"←"})}),(0,s.jsxs)("span",{className:c().paginationLabel,children:["Page ",e," of ",t]}),(0,s.jsx)("button",{className:`${c().iconButton} ${c().paginationIconButton}`,disabled:e>=t,onClick:r,"aria-label":"Next page",title:"Next page",children:(0,s.jsx)("span",{"aria-hidden":"true",children:"→"})})]})}function eV({trace:e,selected:t,onOpenTrace:a,onToggleTrace:n}){let l=(0,r.useCallback)(()=>a(e.id),[a,e.id]),i=(0,r.useCallback)(e=>e.stopPropagation(),[]),o=(0,r.useCallback)(()=>n(e.id),[n,e.id]);return(0,s.jsxs)("tr",{className:c().runTracesTableRowClickable,onClick:l,children:[(0,s.jsx)("td",{onClick:i,children:(0,s.jsx)("input",{className:c().checkboxInput,type:"checkbox",checked:t,onChange:o})}),(0,s.jsx)("td",{style:eN,children:e.name||"Untitled"}),(0,s.jsx)("td",{className:c().runTracesTableId,children:e.id.slice(0,12)}),(0,s.jsx)("td",{children:e.tags&&e.tags.length>0?(0,s.jsxs)("div",{style:ew,children:[e.tags.slice(0,3).map(e=>(0,s.jsx)("span",{className:c().tagPill,children:e},e)),e.tags.length>3&&(0,s.jsxs)("span",{className:c().tagPill,style:eI,children:["+",e.tags.length-3]})]}):"—"}),(0,s.jsx)("td",{style:ek,children:e.timestamp?eQ(e.timestamp):"—"})]})}function eU({traceId:e,systemId:t,hasCustomRenderer:a,datasets:r,onBack:n}){return(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsx)($,{label:"Traces",onClick:n}),(0,s.jsx)("div",{className:c().detailHeader,children:(0,s.jsxs)("div",{children:[(0,s.jsxs)("h2",{className:c().detailTitle,children:["Trace ",e.slice(0,12)]}),(0,s.jsx)("div",{className:c().detailMeta,children:e})]})}),(0,s.jsx)(B,{traceId:e,systemId:t,datasets:r}),(0,s.jsx)("div",{className:c().traceSection,children:(0,s.jsx)(ez,{traceId:e,systemId:t,hasCustomRenderer:a,compact:!1})})]})}function ez({traceId:e,systemId:t,hasCustomRenderer:a,compact:n}){let[l,i]=(0,r.useState)(null),[o,d]=(0,r.useState)(null),[u,m]=(0,r.useState)(!1);(0,r.useEffect)(()=>{if(i(null),d(null),!e)return void m(!1);m(!0);let a=!1;return fetch(`/api/langfuse-trace?traceId=${encodeURIComponent(e)}&systemId=${encodeURIComponent(t)}`).then(async e=>{let t=e1(await e.json());if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);a||(i(t),m(!1))}).catch(e=>{a||(d(e instanceof Error?e.message:String(e)),m(!1))}),()=>{a=!0}},[t,e]);let p=(0,s.jsx)(er,{trace:l,systemId:t,hasCustomRenderer:a,loading:u,error:e?o:null});return e||n?n?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 eK({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)})]})}function eG({mutating:e,error:t,onCreate:a,onClose:n}){let[l,i]=(0,r.useState)(""),o=(0,r.useCallback)(e=>i(e.target.value),[]),d=(0,r.useCallback)(t=>{"Enter"===t.key&&l.trim()&&!e&&a(l.trim())},[l,e,a]),u=(0,r.useCallback)(()=>void a(l.trim()),[l,a]);return(0,s.jsxs)(eJ,{onClose:n,children:[(0,s.jsx)("h3",{className:c().modalTitle,children:"Create dataset"}),t&&(0,s.jsx)("div",{className:c().errorPanel,children:t}),(0,s.jsxs)("div",{className:c().formRow,children:[(0,s.jsx)("label",{className:c().formLabel,htmlFor:"create-dataset-name",children:"Name"}),(0,s.jsx)("input",{id:"create-dataset-name",className:c().textInput,value:l,onChange:o,placeholder:"e.g. golden-eval-set",autoFocus:!0,onKeyDown:d})]}),(0,s.jsxs)("div",{className:c().modalActions,children:[(0,s.jsx)("button",{className:c().secondaryButton,onClick:n,children:"Cancel"}),(0,s.jsx)("button",{className:c().primaryButton,disabled:!l.trim()||e,onClick:u,children:e?"Creating...":"Create"})]})]})}function eY({currentName:e,mutating:t,error:a,onRename:n,onClose:l}){let[i,o]=(0,r.useState)(e),d=(0,r.useCallback)(e=>o(e.target.value),[]),u=(0,r.useCallback)(a=>{"Enter"===a.key&&i.trim()&&i.trim()!==e&&!t&&n(i.trim())},[i,e,t,n]),m=(0,r.useCallback)(()=>n(i.trim()),[i,n]);return(0,s.jsxs)(eJ,{onClose:l,children:[(0,s.jsx)("h3",{className:c().modalTitle,children:"Rename dataset"}),a&&(0,s.jsx)("div",{className:c().errorPanel,children:a}),(0,s.jsxs)("div",{className:c().formRow,children:[(0,s.jsx)("label",{className:c().formLabel,htmlFor:"rename-dataset-name",children:"New name"}),(0,s.jsx)("input",{id:"rename-dataset-name",className:c().textInput,value:i,onChange:d,autoFocus:!0,onKeyDown:u})]}),(0,s.jsxs)("div",{className:c().modalActions,children:[(0,s.jsx)("button",{className:c().secondaryButton,onClick:l,children:"Cancel"}),(0,s.jsx)("button",{className:c().primaryButton,disabled:!i.trim()||i.trim()===e||t,onClick:m,children:t?"Renaming...":"Rename"})]})]})}function eW({title:e,message:t,confirmLabel:a,mutating:r,error:n,onConfirm:l,onClose:i}){return(0,s.jsxs)(eJ,{onClose:i,children:[(0,s.jsx)("h3",{className:c().modalTitle,children:e}),n&&(0,s.jsx)("div",{className:c().errorPanel,children:n}),(0,s.jsx)("p",{className:c().modalMessage,children:t}),(0,s.jsxs)("div",{className:c().modalActions,children:[(0,s.jsx)("button",{className:c().secondaryButton,onClick:i,children:"Cancel"}),(0,s.jsx)("button",{className:c().dangerButton,disabled:r,onClick:l,children:r?`${a}...`:a})]})]})}function eq({placement:e="below",onRename:t,onDelete:a,onClose:n}){(0,r.useEffect)(()=>{let e=()=>n();return document.addEventListener("click",e),()=>document.removeEventListener("click",e)},[n]);let l=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),t()},[t]),i=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),a()},[a]);return(0,s.jsxs)("div",{className:`${c().contextMenu} ${"above"===e?c().contextMenuAbove:""}`,onClick:eP,children:[(0,s.jsx)("button",{type:"button",className:c().contextMenuItem,onClick:l,children:"Rename"}),(0,s.jsx)("button",{type:"button",className:`${c().contextMenuItem} ${c().contextMenuItemDanger}`,onClick:i,children:"Delete"})]})}function eJ({onClose:e,children:t}){return(0,s.jsx)("div",{className:c().modalOverlay,onClick:e,children:(0,s.jsx)("div",{className:c().modalContent,onClick:eP,children:t})})}function eZ(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 eQ(e){try{return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}catch{return e}}function eX(e,t){let a=new URLSearchParams,s=`/${ef(e)}/data`;"traces"===t.view?(s+="/traces",t.traceId&&(s+=`/${ef(t.traceId)}`),t.page&&t.page>1&&a.set("page",String(t.page)),t.tags?.trim()&&a.set("tags",t.tags.trim()),t.fromTs?.trim()&&a.set("fromTs",t.fromTs.trim()),t.toTs?.trim()&&a.set("toTs",t.toTs.trim())):(s+="/datasets",t.datasetName&&(s+=`/${ef(t.datasetName)}`),t.datasetName&&t.itemId&&(s+=`/items/${ef(t.itemId)}`));let r=a.toString();return`${s}${r?`?${r}`:""}`}function e0(e){if(!e8(e))return{};let t=Array.isArray(e.data)?e.data.map(e4).filter(te):void 0,a=e8(e.meta)?e.meta:void 0;return{data:t,meta:a?{page:"number"==typeof a.page?a.page:void 0,totalPages:"number"==typeof a.totalPages?a.totalPages:void 0,totalItems:"number"==typeof a.totalItems?a.totalItems:void 0}:void 0,connection:e2(e.connection),error:ta(e.error)}}function e1(e){return e8(e)?{...e,id:ta(e.id),name:ta(e.name),tags:Array.isArray(e.tags)?e.tags.filter(e9):void 0,timestamp:ta(e.timestamp),metadata:e.metadata,input:e.input,output:e.output,error:ta(e.error)}:{}}function e2(e){if(e8(e)&&"string"==typeof e.state&&"string"==typeof e.message&&"string"==typeof e.remediation)return{state:e.state,message:e.message,remediation:e.remediation,requiredEnvVars:tt(e.requiredEnvVars),optionalEnvVars:tt(e.optionalEnvVars),expectedEnvFile:ta(e.expectedEnvFile),missingEnvVars:tt(e.missingEnvVars),lookup:tt(e.lookup),detail:ta(e.detail)}}function e5(e){return e8(e)&&"string"==typeof e.name?{id:ta(e.id),name:e.name,description:"string"==typeof e.description||null===e.description?e.description:void 0,metadata:e8(e.metadata)||null===e.metadata?e.metadata:void 0,createdAt:ta(e.createdAt),updatedAt:ta(e.updatedAt)}:null}function e4(e){return e8(e)&&"string"==typeof e.id?{...e,id:e.id,status:ta(e.status),sourceTraceId:"string"==typeof e.sourceTraceId||null===e.sourceTraceId?e.sourceTraceId:void 0,input:e.input,expectedOutput:e.expectedOutput,metadata:e8(e.metadata)||null===e.metadata?e.metadata:void 0,createdAt:ta(e.createdAt),updatedAt:ta(e.updatedAt)}:null}function e6(e){return e8(e)&&"string"==typeof e.id?{id:e.id,name:ta(e.name),tags:Array.isArray(e.tags)?e.tags.filter(e9):void 0,timestamp:ta(e.timestamp),input:e.input,output:e.output,metadata:e.metadata}:null}function e3(e){let t;if(!e)return"";let a=e.trim();if(!a)return"";let s=new Date(a);return Number.isNaN(s.getTime())?"":(t=e=>String(e).padStart(2,"0"),`${s.getFullYear()}-${t(s.getMonth()+1)}-${t(s.getDate())}T${t(s.getHours())}:${t(s.getMinutes())}`)}function e7(e){if(!e||!e.trim())return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}function e8(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function e9(e){return"string"==typeof e}function te(e){return null!==e}function tt(e){return Array.isArray(e)?e.filter(e9):[]}function ta(e){return"string"==typeof e?e:void 0}function ts(e){return tl(e)?{ideas:Array.isArray(e.ideas)?e.ideas.map(tr).filter(to):void 0,config:function(e){if(tl(e))return{teamKey:td(e.teamKey),projectName:td(e.projectName),projectId:td(e.projectId),projectUrl:td(e.projectUrl),projectRef:td(e.projectRef),projectRefKind:td(e.projectRefKind),label:tc(e.label)??"Kaizen"}}(e.config),connection:function(e){if(tl(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:tn(e.requiredEnvVars),optionalEnvVars:tn(e.optionalEnvVars),expectedEnvFile:tc(e.expectedEnvFile),missingEnvVars:tn(e.missingEnvVars),lookup:tn(e.lookup),detail:tc(e.detail)}}(e.connection),error:tc(e.error)}:{}}function tr(e){var t,a,s,r,n;return tl(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:tl(t=e.state)&&"string"==typeof t.name&&"string"==typeof t.type?{name:t.name,type:t.type}:null,assignee:tl(a=e.assignee)&&"string"==typeof a.name?{name:a.name}:null,project:tl(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:tl(r=e.team)&&"string"==typeof r.key&&"string"==typeof r.name?{key:r.key,name:r.name}:null,labels:tl(n=e.labels)&&Array.isArray(n.nodes)?{nodes:n.nodes.map(e=>tl(e)&&"string"==typeof e.name?{name:e.name}:null).filter(to)}:{nodes:[]}}:null}function tn(e){return Array.isArray(e)?e.filter(ti):[]}function tl(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ti(e){return"string"==typeof e}function to(e){return null!==e}function tc(e){return"string"==typeof e?e:void 0}function td(e){return"string"==typeof e?e:null}var tu=a(9212),tm=a.n(tu);function tp({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:tm().linearIssueLink,href:e.url,target:"_blank",rel:"noreferrer",title:t?`${e.id}: ${t}`:`Open ${e.id} in Linear`,onClick:t_,children:[(0,s.jsx)("img",{src:"/source-icons/linear.svg",alt:""}),(0,s.jsx)("span",{children:a?r:e.id})]})}function t_(e){e.stopPropagation()}function th(e){let t=(0,r.useRef)(new Map),a=(0,r.useRef)(new Map),s=(0,r.useRef)(new Map),n=(0,r.useCallback)(e=>{let a=s.current.get(e);if(a)return a;let r=a=>{a?t.current.set(e,a):t.current.delete(e)};return s.current.set(e,r),r},[]),l=(0,r.useCallback)(()=>{for(let[e,s]of t.current)a.current.set(e,s.getBoundingClientRect().top)},[]);return(0,r.useLayoutEffect)(()=>{if(0!==a.current.size){for(let[e,s]of t.current){let t=a.current.get(e);if(void 0===t)continue;let r=t-s.getBoundingClientRect().top;1>Math.abs(r)||(s.style.transform=`translateY(${r}px)`,s.style.transition="none",requestAnimationFrame(()=>{requestAnimationFrame(()=>{s.style.transition="transform 0.38s cubic-bezier(0.25, 1, 0.5, 1)",s.style.transform=""})}))}a.current.clear()}},[e]),{capturePositions:l,getRowRef:n}}function tf({run:e,systemId:t,primaryMetric:a,hasCustomRenderer:n,selectedTraceId:l,onBackToTraceList:i,onSelectTrace:o}){let[d,u]=(0,r.useState)([]),[m,p]=(0,r.useState)(!0),[_,h]=(0,r.useState)(null),[f,x]=(0,r.useState)(!1),[g,b]=(0,r.useState)(null),[j,y]=(0,r.useState)(null),[v,S]=(0,r.useState)(null);(0,r.useEffect)(()=>{let a=!1;return p(!0),y(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||(u(t.traces??[]),p(!1))}).catch(e=>{a||(y(e instanceof Error?e.message:String(e)),p(!1))}),()=>{a=!0}},[t,e.runId]),(0,r.useEffect)(()=>{if(h(null),b(null),!l)return void x(!1);x(!0);let e=!1;return fetch(`/api/langfuse-trace?traceId=${encodeURIComponent(l)}&systemId=${encodeURIComponent(t)}`).then(async t=>{var a,s;let r="object"!=typeof(s=a=await t.json())||null===s||Array.isArray(s)?{}:{...a,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||(b(t instanceof Error?t.message:String(t)),x(!1))}),()=>{e=!0}},[l,t]);let N=(0,r.useCallback)(e=>{let t=e.currentTarget.dataset.traceId;t&&o(t)},[o]),T=(0,r.useMemo)(()=>{let e=d.find(e=>null!=e.breakdown);if(!e?.breakdown)return[];let t=a??"score";return Object.keys(e.breakdown).filter(e=>e!==t&&"score"!==e)},[a,d]),C=(0,r.useMemo)(()=>null===v?d:[...d].sort((e,t)=>(function(e,t,a){let s=tg(e,a.key),r=tg(t,a.key);if(null==s&&null==r)return 0;if(null==s)return 1;if(null==r)return -1;let n="number"==typeof s&&"number"==typeof r?s-r:String(s).localeCompare(String(r));return"asc"===a.direction?n:-n})(e,t,v)),[v,d]),{capturePositions:w,getRowRef:I}=th((0,r.useMemo)(()=>C.map(e=>e.id),[C])),R=(0,r.useCallback)(e=>{w(),S(t=>t?.key===e?{key:e,direction:"asc"===t.direction?"desc":"asc"}:{key:e,direction:"itemId"===e?"asc":"desc"})},[w]);return(0,s.jsxs)("section",{className:c().runTracesPanel,children:[(0,s.jsx)("div",{className:c().runTracesPanelHeader,children:(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:c().runTracesPanelTitle,children:"Traces"}),(0,s.jsxs)("div",{className:c().detailMeta,children:[e.totalItems??d.length," items \xb7 ",e.status]})]})}),l?(0,s.jsxs)("div",{className:c().runTracesDetail,children:[(0,s.jsx)($,{label:"Traces",onClick:i}),(0,s.jsx)(B,{traceId:l,systemId:t}),(0,s.jsx)(er,{trace:_,systemId:t,hasCustomRenderer:n,runId:e.runId,surface:"run-trace",loading:f,error:g})]}):m?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading run traces..."}):j?(0,s.jsx)("div",{className:c().errorPanel,children:j}):0===d.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)(tx,{label:"Item ID",sortKey:"itemId",sortState:v,onSort:R}),(0,s.jsx)(tx,{label:a?k(a):"Score",sortKey:"score",sortState:v,onSort:R}),T.map(e=>(0,s.jsx)(tx,{label:k(e),sortKey:`breakdown:${e}`,sortState:v,onSort:R},e))]})}),(0,s.jsx)("tbody",{children:C.map(e=>(0,s.jsxs)("tr",{ref:I(e.id),"data-trace-id":e.traceId??void 0,className:e.traceId?c().runTracesTableRowClickable:void 0,onClick:e.traceId?N:void 0,children:[(0,s.jsx)("td",{className:c().runTracesTableId,children:e.id}),(0,s.jsx)("td",{children:e.score.toFixed(2)}),T.map(t=>(0,s.jsx)("td",{children:e.breakdown?.[t]!=null?e.breakdown[t].toFixed(2):"—"},t))]},e.id))})]})})]})}function tx({label:e,sortKey:t,sortState:a,onSort:n}){let l=a?.key===t,i=l?a.direction:null,o=(0,r.useCallback)(()=>n(t),[n,t]);return(0,s.jsx)("th",{"aria-sort":null===i?"none":"asc"===i?"ascending":"descending",children:(0,s.jsxs)("button",{type:"button",className:`${c().runTracesSortButton} ${l?c().runTracesSortButtonActive:""}`,onClick:o,children:[(0,s.jsx)("span",{children:e}),null!==i&&(0,s.jsx)("span",{className:c().runTracesSortIcon,"aria-hidden":"true",children:"asc"===i?"▲":"▼"})]})})}function tg(e,t){return"itemId"===t?e.id:"score"===t?e.score:t.startsWith("breakdown:")?e.breakdown?.[t.slice("breakdown:".length)]??null:null}var tb=a(6971),tj=a(8463),ty=a(7784),tv=a(4456);let tS={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)"}},tN=tS.running;function tT({node:e,isSelected:t,isBestGlobal:a,isHighlighted:n,primaryMetric:l,linearIssueTitles:i,onClick:o}){let c=e.data.status,d=tS[c.status]??tN,u=w(c,l),m=null!=u?`${(100*u).toFixed(1)}%`:null,p="running"===c.status,_=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:S(Math.max(0,Math.floor((a-n)/1e3)))}(c.startedAt,p),h=p?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:S(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:[tm().treeNodeCard,t?tm().treeNodeSelected:"",a?tm().treeNodeBest:"",n?tm().treeNodeHighlight:""].filter(Boolean).join(" "),onClick:o,title:f?`${c.runName}
|
|
7
|
+
${f}`:c.runName,children:[(0,s.jsx)("div",{className:tm().treeNodeName,children:c.runName}),(0,s.jsxs)("div",{className:tm().treeNodeBadgeRow,children:[(0,s.jsx)("span",{className:tm().treeNodeBadge,style:{color:d.color,backgroundColor:d.bg,border:`1px solid ${d.border}`},children:c.status}),p&&_&&(0,s.jsx)("span",{className:tm().treeNodeElapsed,children:_}),h&&(0,s.jsx)("span",{className:tm().treeNodeElapsed,children:h})]}),(0,s.jsx)("div",{className:tm().treeNodeScoreRow,children:m?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:tm().treeNodeAccuracy,children:m}),null!=c.totalItems&&(0,s.jsxs)("span",{className:tm().treeNodeItems,children:["n=",c.totalItems]})]}):"aborted"===c.status||"crashed"===c.status?(0,s.jsx)("span",{className:tm().treeNodeItems,children:"—"}):(0,s.jsxs)("span",{className:tm().treeNodeLoading,children:[(0,s.jsx)("span",{className:tm().treeNodePulse}),(0,s.jsx)("span",{className:tm().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:tm().treeNodeIssueRow,children:(0,s.jsx)(tp,{issue:c.linearIssue,issueTitle:f,showTitle:!0})})]})})}function tk({link:e}){return(0,s.jsx)(tv.A,{data:e,stroke:"rgba(255, 255, 255, 0.25)",strokeWidth:1.5,fill:"none"})}function tC(e){return{status:e.status,children:e.children.map(tC)}}function tw(e){return e.depth>0&&null!==e.data.status}function tI({roots:e,selectedId:t,bestGlobalId:a,highlightId:n,primaryMetric:l,linearIssueTitles:i,onSelect:o}){let c=(0,r.useMemo)(()=>({status:null,children:e.map(tC)}),[e]),d=(0,r.useMemo)(()=>(0,tj.Ay)(c,e=>e.children.length>0?e.children:null),[c]);return 0===e.length?null:(0,s.jsx)("div",{className:tm().treeForest,children:(0,s.jsx)(ty.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(tw),u=c.filter(e=>e.source.depth>0);if(0===d.length)return null;let m=1/0,p=-1/0,_=1/0,h=-1/0;for(let e of d)m=Math.min(m,e.x),p=Math.max(p,e.x),_=Math.min(_,e.y),h=Math.max(h,e.y);let f=p-m+200+80,x=h-_+126+80,g=-m+100+40,b=-_+63+40;return(0,s.jsx)("svg",{width:f,height:x,className:tm().treeSvg,children:(0,s.jsxs)(tb.A,{top:b,left:g,children:[u.map((e,t)=>(0,s.jsx)(tk,{link:e},`link-${t}`)),d.map(e=>(0,s.jsx)(tT,{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 tR=a(9965),tP=a.n(tR);function tL({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.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 p=(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]),{capturePositions:_,getRowRef:h}=th((0,r.useMemo)(()=>p.map(e=>e.runId),[p])),f=(0,r.useCallback)(e=>{_(),e===o?u(e=>!e):(c(e),u(!0))},[_,o]);return 0===e.length?(0,s.jsx)("p",{className:tP().noData,children:"No experiments yet."}):(0,s.jsx)("div",{className:tP().tableWrapper,children:(0,s.jsxs)("table",{className:tP().table,children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{className:tP().thRank,children:"#"}),(0,s.jsx)("th",{className:tP().thName,children:"Run"}),(0,s.jsx)("th",{className:tP().thStatus,children:"Status"}),m.map(e=>(0,s.jsxs)("th",{className:`${tP().thMetric} ${e===t?tP().thPrimary:""} ${e===o?tP().thSorted:""}`,onClick:()=>f(e),children:[(0,s.jsx)("span",{className:tP().thLabel,children:k(e)}),e===o&&(0,s.jsx)("span",{className:tP().sortArrow,children:d?"▼":"▲"})]},e)),(0,s.jsx)("th",{className:tP().thItems,children:"n"}),(0,s.jsx)("th",{className:tP().thStarted,children:"Started"})]})}),(0,s.jsx)("tbody",{children:p.map((e,r)=>{let o=tS[e.status]??tN,c=e.runId===a,d=e.runId===n;return(0,s.jsxs)("tr",{ref:h(e.runId),className:`${tP().row} ${c?tP().rowBest:""} ${d?tP().rowSelected:""}`,onClick:()=>i(e.runId),children:[(0,s.jsx)("td",{className:tP().tdRank,children:r+1}),(0,s.jsxs)("td",{className:tP().tdName,children:[(0,s.jsx)("span",{className:tP().expName,children:e.runName}),(0,s.jsx)(tp,{issue:e.linearIssue,issueTitle:e.linearIssue?l?.[e.linearIssue.id]:null}),c&&(0,s.jsx)("span",{className:tP().bestBadge,children:"BEST"})]}),(0,s.jsx)("td",{className:tP().tdStatus,children:(0,s.jsx)("span",{className:tP().statusDot,style:{backgroundColor:o.color},title:e.status})}),m.map(a=>{let r=e.metrics[a],n=a===t;return(0,s.jsx)("td",{className:`${tP().tdMetric} ${n?tP().tdPrimary:""}`,children:null!=r?(0,s.jsx)("span",{className:tP().metricValue,children:C(a,r)}):(0,s.jsx)("span",{className:tP().metricEmpty,children:"—"})},a)}),(0,s.jsx)("td",{className:tP().tdItems,children:e.totalItems??"?"}),(0,s.jsx)("td",{className:tP().tdStarted,children:v(e.startedAt)})]},e.runId)})})]})})}function tE({runs:e,primaryMetric:t,bestRunId:a,selectedRunId:r,linearIssueTitles:n,onSelectRun:l}){return(0,s.jsx)(tL,{runs:e,primaryMetric:t,bestGlobalId:a,selectedId:r,linearIssueTitles:n,onSelect:l})}let tM={shallow:!0,scroll:!1};function tA({system:e}){let t=(0,A.useRouter)(),{runs:a}=y(e.id),[n,l]=(0,r.useState)(null),[i]=(0,r.useState)(null),[o,d]=(0,r.useState)(null),[u,m]=(0,r.useState)(null),[p,_]=(0,r.useState)(280),[h,f]=(0,r.useState)({}),x=(0,r.useMemo)(()=>t.isReady?function(e){let t=e_(e),[a,s,r]="experiments"===t[1]?t.slice(2):[],n="benchmarks"===a,l=n?eh(s??null):null,i=n?null:eh(a??null),o=i&&"traces"===s?eh(r??null):null;return{benchmarkKey:l,runId:i,traceId:o}}(t.asPath):null,[t.asPath,t.isReady]),g=(0,r.useCallback)(a=>{var s,r;let n;t.push((s=e.id,r=a,n=`/${ef(s)}/experiments`,r.runId?(n+=`/${ef(r.runId)}`,r.traceId&&(n+=`/traces/${ef(r.traceId)}`)):r.benchmarkKey&&(n+=`/benchmarks/${ef(r.benchmarkKey)}`),n),void 0,tM)},[t,e.id]);(0,r.useEffect)(()=>{l(null),d(null),m(null),f({})},[e.id]),(0,r.useEffect)(()=>{x&&(d(x.benchmarkKey),l(x.runId),m(x.traceId))},[x]),(0,r.useEffect)(()=>{let t=!1;return fetch(`/api/linear-ideas?systemId=${encodeURIComponent(e.id)}`).then(e=>e.json()).then(e=>{t||f(function(e){let t={};for(let a of e)t[a.identifier]=a.title;return t}(ts(e).ideas??[]))}).catch(()=>{t||f({})}),()=>{t=!0}},[e.id]);let b=(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&&g({benchmarkKey:t})},[g]),j=(0,r.useCallback)(e=>{e.preventDefault();let t=e.clientX,a=e=>{_(Math.min(560,Math.max(220,p+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})},[p]),v=e.primaryMetric??null,S=(0,r.useMemo)(()=>{let e=new Map;for(let t of a){let a=I(t,v),s=e.get(a.key);s?s.count++:e.set(a.key,{...a,count:1})}return[...e.values()].sort((e,t)=>{let a=e.dataset.localeCompare(t.dataset);return 0===a?e.evalLabel.localeCompare(t.evalLabel):a})},[v,a]),N=(0,r.useMemo)(()=>{if(!n)return null;let e=a.find(e=>e.runId===n);return e?I(e,v).key:null},[v,a,n]),T=o&&S.some(e=>e.key===o)?o:N??S[0]?.key??null,k=(0,r.useCallback)(e=>{g({runId:e})},[g]),C=(0,r.useCallback)(()=>{g({benchmarkKey:T})},[T,g]),R=(0,r.useCallback)(e=>{n&&g({runId:n,traceId:e})},[g,n]),L=(0,r.useCallback)(()=>{n&&g({runId:n})},[g,n]),E=(0,r.useMemo)(()=>T?a.filter(e=>I(e,v).key===T):a,[a,T,v]);(0,r.useEffect)(()=>{0===a.length||!n||E.some(e=>e.runId===n)||g({benchmarkKey:T,runId:null,traceId:null})},[T,E,g,a.length,n]);let M=(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)=>(w(a.status,t)??-1)-(w(e.status,t)??-1)),e))r(a.children)};return r(s),s})(E,v),[E,v]),$=(0,r.useMemo)(()=>{let e=null,t=-1;for(let a of E){let s=w(a,v);null!=s&&s>t&&(t=s,e=a.runId)}return e},[E,v]),D=n?E.find(e=>e.runId===n):null,B=a.length>0;return(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsx)(P,{title:"Local experiments",source:"local",syncLabel:"Live updates",children:"Local experiments are grouped by benchmark so runs are compared only against the same dataset and scoring setup."}),(0,s.jsxs)("div",{className:c().experimentsLayout,children:[(0,s.jsx)("aside",{className:`${c().dataNav} ${c().experimentNav}`,style:{width:p},onClick:b,children:0===S.length?(0,s.jsxs)("div",{className:`${c().dataNavEmpty} ${c().experimentNavEmpty}`,children:[(0,s.jsx)("div",{className:c().dataNavEmptyTitle,children:"No benchmarks"}),(0,s.jsx)("div",{className:c().dataNavEmptyCopy,children:"Experiment runs will be grouped here."})]}):S.map(e=>(0,s.jsxs)("button",{"data-group-key":e.key,title:`${e.datasetLabel}
|
|
8
|
+
${e.evalLabel} \xb7 ${e.count} experiments`,className:`${c().dataNavItem} ${c().dataNavGroupItem} ${c().experimentNavItem} ${T===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:j}),(0,s.jsx)("section",{className:`${c().dataMain} ${c().experimentsMain}`,children:B&&D?(0,s.jsx)(tD,{run:D,systemId:e.id,primaryMetric:v,hasCustomRenderer:!!e.traceRenderer,selectedTraceId:u,linearIssueTitle:D.linearIssue?h[D.linearIssue.id]:null,onBack:C,onBackToTraceList:L,onSelectTrace:R}):B?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(tI,{roots:M,selectedId:n,bestGlobalId:$,highlightId:i,primaryMetric:v,linearIssueTitles:h,onSelect:k}),(0,s.jsx)(tE,{runs:E,primaryMetric:v,bestRunId:$,selectedRunId:n,linearIssueTitles:h,onSelectRun:k})]}):(0,s.jsx)(t$,{})})]})]})}function t$(){return(0,s.jsxs)("div",{className:`${c().emptyPanel} ${c().experimentEmptyPanel}`,children:[(0,s.jsx)("div",{className:c().emptyPanelTitle,children:"No local experiments"}),(0,s.jsx)("div",{className:c().emptyPanelCopy,children:"Run a Kaizen experiment for this system. The benchmark tree and results table will appear here."})]})}function tD({run:e,systemId:t,primaryMetric:a,hasCustomRenderer:r,selectedTraceId:n,linearIssueTitle:l,onBack:i,onBackToTraceList:o,onSelectTrace:d}){var u;let m,p=function(e,t){let a=[],s=new Set,r=(e,t,r)=>{!e||null==t||s.has(e)||(s.add(e),a.push({key:e,label:k(e),value:C(e,t),isPrimary:r}))};for(let[s,n]of(t&&r(t,w(e,t),!0),r("score",e.metrics.score,"score"===t),r("cost_per_item",e.metrics.cost_per_item,!1),r("avg_latency_s",e.metrics.avg_latency_s,!1),Object.entries(e.metrics))){if(a.length>=4)break;r(s,n,s===t)}return a.slice(0,4)}(e,a);return(0,s.jsxs)("div",{className:c().experimentDetailSurface,children:[(0,s.jsx)($,{label:"Experiments",onClick:i}),(0,s.jsxs)("section",{className:c().experimentDetailSummary,children:[(0,s.jsxs)("div",{className:c().experimentDetailTitleRow,children:[(0,s.jsxs)("div",{className:c().experimentDetailTitleGroup,children:[(0,s.jsx)("h2",{className:c().experimentDetailTitle,children:e.runName}),(0,s.jsx)("span",{className:c().statusPill,children:e.status}),(0,s.jsx)(tp,{issue:e.linearIssue,issueTitle:l,showTitle:!0})]}),(0,s.jsxs)("div",{className:c().experimentDetailTimeRow,children:[(0,s.jsxs)("span",{children:["Started ",Number.isNaN((m=new Date(u=e.startedAt)).getTime())?u:new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(m)]}),(0,s.jsx)("span",{className:c().experimentDetailTimeSeparator,children:"|"}),(0,s.jsx)("span",{children:function(e){let t=new Date(e.startedAt).getTime(),a="running"===e.status?Date.now():new Date(e.updatedAt).getTime();if(Number.isNaN(t)||Number.isNaN(a))return"running"===e.status?"Running --":"Ran --";let s=S(Math.max(0,Math.floor((a-t)/1e3)));return"running"===e.status?`Running ${s}`:`Ran ${s}`}(e)})]})]}),p.length>0&&(0,s.jsx)("div",{className:c().experimentMetricStrip,children:p.map(e=>(0,s.jsxs)("div",{className:`${c().experimentMetricItem} ${e.isPrimary?c().experimentMetricItemPrimary:""}`,children:[(0,s.jsx)("span",{className:c().experimentMetricLabel,children:e.label}),(0,s.jsx)("span",{className:c().experimentMetricValue,children:e.value})]},e.key))})]}),(0,s.jsx)(tf,{run:e,systemId:t,primaryMetric:a,hasCustomRenderer:r,selectedTraceId:n,onBackToTraceList:o,onSelectTrace:d})]})}let tB=[];function tF({system:e}){let t,{runs:a}=y(e.id),[n,l]=(0,r.useState)([]),[i,o]=(0,r.useState)(null),[d,u]=(0,r.useState)(void 0),[m,p]=(0,r.useState)(null),[_,h]=(0,r.useState)(null),[f,x]=(0,r.useState)(!1),[g,b]=(0,r.useState)(!1),[j,v]=(0,r.useState)(null),S=(0,r.useRef)(e.id);S.current=e.id;let N=(0,r.useCallback)(async()=>{let t=e.id;x(!0);try{let e=await fetch(`/api/linear-ideas?systemId=${encodeURIComponent(t)}`),a=ts(await e.json());if(!e.ok)throw Error(a.error??`HTTP ${e.status}`);if(S.current!==t)return;l(a.ideas??[]),u(a.config),p(a.connection??null),o(e=>e&&(a.ideas??[]).some(t=>t.id===e)?e:a.ideas?.[0]?.id??null),h(a.error??null),v(ej())}catch(e){if(S.current!==t)return;p(null),h(e instanceof Error?e.message:String(e))}finally{S.current===t&&(b(!0),x(!1))}},[e.id]),T=(0,r.useCallback)(()=>{N()},[N]);(0,r.useEffect)(()=>{b(!1),l([]),o(null),u(void 0),p(null),h(null),v(null),N();let e=setInterval(()=>void N(),2e4),t=()=>void N();return window.addEventListener("focus",t),()=>{clearInterval(e),window.removeEventListener("focus",t)}},[N,e.id]);let k=(0,r.useMemo)(()=>n.find(e=>e.id===i)??n[0]??null,[n,i]),C=(0,r.useMemo)(()=>(function(e){let t=new Map;for(let a of e){let e=a.linearIssue?.id?.toUpperCase();if(!e)continue;let s=t.get(e);s?s.push(a):t.set(e,[a])}for(let e of t.values())e.sort((e,t)=>new Date(t.startedAt).getTime()-new Date(e.startedAt).getTime());return t})(a),[a]),w=(0,r.useMemo)(()=>null!==k?C.get(k.identifier.toUpperCase())??tB:tB,[C,k]),I=d?.teamKey??null,R=d?.projectRef??null,L=d?.label??"Kaizen",E=d?.projectName??d?.projectRef??"the configured project",M=(0,r.useMemo)(()=>{var e;return[(e={teamKey:I,projectRef:R,label:L}).teamKey?`LINEAR_TEAM_KEY=${e.teamKey}`:"any team",e.projectRef?`linear_project=${e.projectRef}`:"linear_project not set",`label=${e.label}`]},[L,R,I]);return(0,s.jsxs)("div",{className:c().surface,children:[(0,s.jsxs)(P,{title:"Linear ideas",source:"linear",syncLabel:(t=`${20}s`,j?`Updated ${j} \xb7 Every ${t}`:`Every ${t}`),onRefresh:T,refreshing:f,children:["Linear issues labeled ",(0,s.jsx)("code",{children:L})," in the project"," ",(0,s.jsx)("code",{children:E})," become ideas that can be tried as experiments for this system."]}),m&&"connected"!==m.state&&(0,s.jsx)(ex,{status:m,currentValues:M}),_&&(0,s.jsx)("div",{className:c().errorPanel,children:_}),f&&!g?(0,s.jsx)("div",{className:c().loadingPanel,children:"Loading Linear ideas..."}):(0,s.jsxs)("div",{className:c().splitSurface,children:[(0,s.jsx)(tH,{ideas:n,selectedId:k?.id??null,linkedRunsByIssue:C,onSelect:o}),(0,s.jsx)(tO,{idea:k,linkedRuns:w,primaryMetric:e.primaryMetric??null})]})]})}function tH({ideas:e,selectedId:t,linkedRunsByIssue:a,onSelect:n}){let l=(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&&n(t)},[n]);return 0===e.length?(0,s.jsx)("div",{className:c().listPanelEmpty,children:"No Linear ideas"}):(0,s.jsx)("aside",{className:c().listPanel,onClick:l,children:e.map(e=>{let r=a.get(e.identifier.toUpperCase())??[];return(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"]}),(0,s.jsx)("span",{className:c().listRowLinked,children:function(e){if(0===e.length)return"No linked experiments";let t=e.slice(0,2).map(e=>e.runName),a=e.length>2?` +${e.length-2}`:"";return`Experiments: ${t.join(", ")}${a}`}(r)})]},e.id)})})}function tO({idea:e,linkedRuns:t,primaryMetric: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)(tU,{label:"Team",value:e.team?.key??e.team?.name}),(0,s.jsx)(tU,{label:"Project",value:e.project?.name}),(0,s.jsx)(tU,{label:"Assignee",value:e.assignee?.name}),(0,s.jsx)(tU,{label:"Updated",value:tz(e.updatedAt)})]}),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.jsxs)("section",{className:c().linkedExperimentsSection,children:[(0,s.jsx)("div",{className:c().sectionTitle,children:"Linked experiments"}),0===t.length?(0,s.jsx)("div",{className:c().linkedExperimentsEmpty,children:"No experiments linked to this idea yet."}):(0,s.jsx)("div",{className:c().linkedExperimentsList,children:t.map(e=>(0,s.jsx)(tV,{run:e,primaryMetric:a},e.runId))})]}),(0,s.jsx)("div",{className:c().descriptionBlock,children:e.description||"No description."})]}):(0,s.jsx)("section",{className:c().detailPanel,children:"No idea selected"})}function tV({run:e,primaryMetric:t}){let a=w(e,t),r=t&&null!=a?C(t,a):"No score";return(0,s.jsxs)("div",{className:c().linkedExperimentRow,children:[(0,s.jsxs)("div",{className:c().linkedExperimentMain,children:[(0,s.jsx)("span",{className:c().linkedExperimentTitle,children:e.runName}),(0,s.jsxs)("span",{className:c().linkedExperimentMeta,children:[e.runId," \xb7 ",tz(e.startedAt)]})]}),(0,s.jsxs)("div",{className:c().linkedExperimentStats,children:[(0,s.jsx)("span",{className:c().statusPill,children:e.status}),(0,s.jsx)("span",{className:c().linkedExperimentScore,children:r}),(0,s.jsxs)("span",{className:c().linkedExperimentMeta,children:["n=",e.totalItems??"?"]})]})]})}function tU({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 tz(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function tK({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)(j,{activeSystem:l,activeSurface:e,children:l?"data"===e?(0,s.jsx)(eL,{system:l}):"benchmarks"===e?(0,s.jsx)(E,{system:l}):"ideas"===e?(0,s.jsx)(tF,{system:l}):(0,s.jsx)(tA,{system:l}):(0,s.jsx)(tG,{systemCount:t.length})})}function tG({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"]})]})}},7810:e=>{e.exports={wrapper:"SystemSelector_wrapper__ERtiP",label:"SystemSelector_label__4i0LZ",dropdown:"SystemSelector_dropdown__mshbO"}},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",detailPanelHeader:"Runs_detailPanelHeader__XMEDA",detailPanelTitle:"Runs_detailPanelTitle__vAuOY"}},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(
|
|
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(5053);function r(){return(0,_.jsx)(u.W,{surface:"benchmarks"})}}},s=>{s.O(0,[431,53,636,593,792],()=>s(s.s=4662)),_N_E=s.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[914],{4503:(_,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>e});var u=t(144),a=t(
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[914],{4503:(_,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>e});var u=t(144),a=t(5053);function e(){return(0,u.jsx)(a.W,{surface:"data"})}},5118:(_,s,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/[system]/data/[[...path]]",function(){return t(4503)}])}},_=>{_.O(0,[431,53,636,593,792],()=>_(_.s=5118)),_N_E=_.O()}]);
|
|
@@ -1 +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=_(
|
|
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=_(5053);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,53,636,593,792],()=>e(e.s=9578)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[562],{9005:(e,s,n)=>{"use strict";n.r(s),n.d(s,{default:()=>u});var _=n(144),t=n(
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[562],{9005:(e,s,n)=>{"use strict";n.r(s),n.d(s,{default:()=>u});var _=n(144),t=n(5053);function u(){return(0,_.jsx)(t.W,{surface:"experiments"})}},9942:(e,s,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/[system]/experiments/[[...path]]",function(){return n(9005)}])}},e=>{e.O(0,[431,53,636,593,792],()=>e(e.s=9942)),_N_E=e.O()}]);
|
|
@@ -1 +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=_(
|
|
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=_(5053);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,53,636,593,792],()=>s(s.s=8694)),_N_E=s.O()}]);
|
|
@@ -1 +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(
|
|
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(5053);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,53,636,593,792],()=>e(e.s=4842)),_N_E=e.O()}]);
|
package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/css/d97fcd1d34ebab98.css
ADDED
|
@@ -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;width:100%;box-sizing:border-box;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:9.5rem minmax(0,1fr);gap:0;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;box-sizing:border-box;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;padding:0;border-right:none}.Studio_experimentNavItem__VrdaI{display:flex;width:100%;box-sizing:border-box}.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_dataNavItem__rzaJQ{display:inline-flex;align-items:center;justify-content:flex-start;width:fit-content;min-height:32px;border:0;border-radius:0;background:transparent;color:var(--text-tertiary);cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:500;padding:0 .8rem;text-align:left;text-decoration:none;transition:background .15s,color .15s}.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_experimentNavEmpty__6O0bX{display:flex;flex-direction:column;gap:.25rem;width:100%;box-sizing:border-box;padding:.5rem .65rem}.Studio_dataNavEmptyTitle__VI2PP{color:var(--text-secondary);font-size:.82rem;font-weight:500;line-height:1.25}.Studio_dataNavEmptyCopy__dq6XK{color:var(--text-tertiary);font-size:.74rem;line-height:1.4}.Studio_dataNavItem__rzaJQ:hover{color:var(--text-secondary);background:rgba(255,255,255,.05)}.Studio_dataNavItem__rzaJQ:focus{outline:none}.Studio_dataNavItemActive__TANbd{color:#fafafa;background:rgba(255,255,255,.08)}.Studio_dataLayout__RTqFZ>.Studio_dataNav__Hhqcz{width:100%;padding:0}.Studio_dataLayout__RTqFZ>.Studio_dataNav__Hhqcz .Studio_dataNavItem__rzaJQ{display:flex;width:100%;box-sizing:border-box}.Studio_dataMain__rSYxU{min-width:0;flex:1 1 auto;padding:0 1.5rem 1.5rem}.Studio_surfaceToolbar__ayM6U{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.Studio_tracesToolbarSearch__Y_MtI{display:flex;align-items:center;gap:.45rem;min-width:0;flex:1 1 auto}.Studio_textInput__9WjCF.Studio_traceSearchInput__5oRye{width:min(390px,44vw);height:28px;min-height:28px;font-size:.8rem;font-weight:500;line-height:1;padding:0 .6rem}.Studio_textInput__9WjCF.Studio_traceSearchInput__5oRye::placeholder{color:rgba(255,255,255,.42);font-weight:450}.Studio_secondaryButton__gEhyV.Studio_traceSearchButton__EmQvq{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;padding:0}.Studio_traceDateRangeLabel__6FeBe{font-size:.75rem;color:rgba(255,255,255,.6);font-weight:500;white-space:nowrap}.Studio_textInput__9WjCF.Studio_traceDateInput__LuThR{height:28px;min-height:28px;font-size:.75rem;font-weight:500;line-height:1;padding:0 .5rem;color-scheme:dark}.Studio_searchIcon__siCkB{display:block;width:14px;height:14px;background:50%/14px 14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fafafa' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m16 16 4.5 4.5'/%3E%3C/svg%3E")}.Studio_tracesToolbarRight__YpWj8{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;min-width:max-content;margin-left:auto}.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;appearance:none;background:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.58) 0) calc(100% - 14px) 13px /5px 5px no-repeat,linear-gradient(135deg,rgba(255,255,255,.58) 50%,transparent 0) calc(100% - 9px) 13px /5px 5px no-repeat,rgba(255,255,255,.04);padding:0 1.8rem 0 .5rem}.Studio_select__rbQ0i:focus{outline:none;border-color:rgba(255,255,255,.22);background-color:rgba(255,255,255,.06)}.Studio_select__rbQ0i option{background:#111;color:#fafafa}.Studio_checkboxInput__E3h42{display:inline-grid;place-content:center;width:14px;height:14px;margin:0;appearance:none;cursor:pointer;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.04);vertical-align:middle}.Studio_checkboxInput__E3h42:before{width:7px;height:4px;border-bottom:1.8px solid #0a0a0a;border-left:1.8px solid #0a0a0a;content:"";opacity:0;transform:translateY(-1px) rotate(-45deg)}.Studio_checkboxInput__E3h42:checked{border-color:#fafafa;background:#fafafa}.Studio_checkboxInput__E3h42:checked:before{opacity:1}.Studio_checkboxInput__E3h42:indeterminate{border-color:#fafafa;background:#fafafa}.Studio_checkboxInput__E3h42:indeterminate:before{width:8px;height:0;border-bottom:1.8px solid #0a0a0a;border-left:0;opacity:1;transform:none}.Studio_checkboxInput__E3h42:focus{outline:none;border-color:rgba(255,255,255,.5)}.Studio_dropdown__Qu_kI{position:relative;width:100%;max-width:340px}.Studio_dropdownButton__xiN8C{display:inline-flex;align-items:center;justify-content:space-between;gap:.65rem;width:100%;height:32px;padding:0 .6rem;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.04);color:#fafafa;cursor:pointer;font-family:inherit;font-size:.8rem;text-align:left}.Studio_dropdownButton__xiN8C:hover:not(:disabled),.Studio_dropdownButton__xiN8C[aria-expanded=true]{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.06)}.Studio_dropdownButton__xiN8C:focus{outline:none;border-color:rgba(255,255,255,.22)}.Studio_dropdownButton__xiN8C:disabled{color:var(--text-tertiary);cursor:default}.Studio_dropdownValue__0_6qb{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Studio_dropdownChevron__eSQVR{width:7px;height:7px;flex:0 0 7px;border-right:1px solid rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.62);transform:translateY(-2px) rotate(45deg)}.Studio_dropdownMenu__Z_P4L{position:absolute;top:calc(100% + .25rem);left:0;right:0;z-index:1100;max-height:220px;overflow:auto;border:1px solid rgba(255,255,255,.12);background:#111;box-shadow:0 10px 24px rgba(0,0,0,.52)}.Studio_dropdownOption__8vaW9{display:block;width:100%;min-height:32px;padding:.45rem .6rem;border:0;border-bottom:1px solid rgba(255,255,255,.06);background:transparent;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:.8rem;text-align:left}.Studio_dropdownOption__8vaW9:last-child{border-bottom:0}.Studio_dropdownOptionSelected__Qv75j,.Studio_dropdownOption__8vaW9:focus,.Studio_dropdownOption__8vaW9:hover{background:rgba(255,255,255,.08);color:#fafafa}.Studio_dropdownOption__8vaW9:focus{outline:none}.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;white-space:normal;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{display:block;min-width:0;color:#fafafa;font-size:.82rem;font-weight:500;line-height:1.28;overflow:visible;overflow-wrap:anywhere;text-overflow:clip;white-space:normal}.Studio_listRowMeta__fmtZx{color:var(--text-tertiary);font-size:.72rem}.Studio_listRowLinked__YG4yc,.Studio_listRowMeta__fmtZx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Studio_listRowLinked__YG4yc{color:rgba(158,188,255,.86);font-size:.7rem}.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_detailHeaderAction__VRlRY{align-self:flex-start}.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_linkedExperimentsSection__V6m61{margin-bottom:1rem}.Studio_linkedExperimentsList__m3Pel{display:grid;gap:.5rem}.Studio_linkedExperimentsEmpty__j9at4{color:var(--text-tertiary);font-size:.78rem}.Studio_linkedExperimentRow___NdVV,.Studio_linkedExperimentsEmpty__j9at4{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);padding:.65rem .75rem}.Studio_linkedExperimentRow___NdVV{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:.75rem}.Studio_linkedExperimentMain__P1a2y,.Studio_linkedExperimentStats__SKDtt{min-width:0}.Studio_linkedExperimentTitle__zxkFB{display:block;min-width:0;color:#fafafa;font-size:.8rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Studio_linkedExperimentStats__SKDtt{display:inline-flex;align-items:center;justify-content:flex-end;gap:.45rem}.Studio_linkedExperimentScore__aOXcH{color:#fafafa;font-size:.8rem;font-weight:600;white-space:nowrap}.Studio_linkedExperimentMeta__UQRzL{display:block;min-width:0;color:var(--text-tertiary);font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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_experimentEmptyPanel__p0J2y{min-height:360px}.Studio_experimentEmptyPanel__p0J2y .Studio_emptyPanelCopy__EExQw{max-width:420px}.Studio_experimentDetailSurface__dwDGR{display:flex;flex-direction:column;min-width:0}.Studio_experimentDetailSummary__R5pum{margin-bottom:.8rem;padding:.85rem 1rem;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.08)}.Studio_experimentDetailTitleRow__dLxGu{display:flex;align-items:center;justify-content:space-between;gap:1rem}.Studio_experimentDetailTitleGroup__u0ltv{display:flex;align-items:center;flex:1 1 auto;min-width:0;gap:.45rem;flex-wrap:nowrap}.Studio_experimentDetailTitle__WVcLo{margin:0;color:#fafafa;font-size:1rem;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Studio_experimentDetailTimeRow__WBHOD{display:flex;justify-content:flex-end;gap:.45rem;color:var(--text-tertiary);font-size:.68rem;line-height:1.35;white-space:nowrap}.Studio_experimentDetailTimeSeparator__zVrpA{color:rgba(255,255,255,.22)}.Studio_experimentMetricStrip__nO66g{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:0;margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.06)}.Studio_experimentMetricItem__9szWE{display:grid;grid-template-columns:minmax(0,auto) auto;align-items:baseline;column-gap:.45rem;row-gap:.15rem;min-width:0;padding-right:.75rem;border-right:1px solid rgba(255,255,255,.06)}.Studio_experimentMetricItem__9szWE:last-child{border-right:0}.Studio_experimentMetricItemPrimary__8nYrs .Studio_experimentMetricValue__g26s2{color:#00d4aa}.Studio_experimentMetricLabel__g8uYl{color:var(--text-tertiary);font-size:.72rem;font-weight:500}.Studio_experimentMetricValue__g26s2{color:#fafafa;font-size:.95rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.Studio_emptyPanelTitle__g31eb{color:#fafafa;font-size:.95rem;font-weight:600}.Studio_runTracesPanel__nh_gK{display:flex;flex-direction:column;width:100%;min-width:0;background:transparent;border:0;overflow:visible}.Studio_runTracesPanelHeader__gJlWU{display:flex;align-items:flex-start;justify-content:space-between;padding:0 0 .75rem}.Studio_runTracesPanelTitle__gUr1M{font-size:1.1rem;font-weight:500;margin:0;color:#fff}.Studio_runTracesDetail__vStOu{flex:1 1;overflow-y:auto;padding:1rem 1.5rem}.Studio_runTracesTableWrap__V4tCd{flex:1 1;overflow-y:auto;padding:0 0 1rem;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.08)}.Studio_datasetsTableWrap__biwzy{overflow:visible;padding-bottom:1.25rem}.Studio_runTracesTable__FzXJs{width:100%;border-collapse:collapse;font-size:.8rem;font-family:Geist,ui-sans-serif,system-ui,sans-serif}.Studio_runTracesTable__FzXJs th{position:sticky;top:0;z-index:1;padding:.6rem .75rem;text-align:left;font-size:.72rem;font-weight:600;letter-spacing:0;color:rgba(255,255,255,.48);background:#101010;border-bottom:1px solid rgba(255,255,255,.08);-webkit-user-select:none;user-select:none}.Studio_runTracesSortButton__ej_zF{display:inline-flex;align-items:center;gap:.35rem;max-width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:left;transition:color .15s ease}.Studio_runTracesSortButton__ej_zF:hover{color:var(--text-secondary)}.Studio_runTracesSortButtonActive__Oy1me{color:rgba(255,255,255,.9)}.Studio_runTracesSortIcon__HEo3w{color:inherit;font-size:.62rem;line-height:1;opacity:.76}.Studio_runTracesTable__FzXJs td{padding:.55rem .75rem;color:rgba(255,255,255,.78);border-bottom:1px solid rgba(255,255,255,.04)}.Studio_runTracesTableRowClickable__sdAb4{cursor:pointer;transition:background-color .15s ease}.Studio_runTracesTableRowClickable__sdAb4:hover{background:rgba(255,255,255,.04)}.Studio_datasetRowMenuOpen__7ty_2{position:relative;z-index:20}.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_datasetActionsCell__xmMLt{position:relative;overflow:visible;width:40px}.Studio_datasetActionsCellOpen__JsSmA{z-index:30}.Studio_datasetMenuAnchor__D7NTr{position:relative;display:inline-flex;justify-content:flex-end;width:100%;z-index:1}.Studio_datasetActionsCellOpen__JsSmA .Studio_datasetMenuAnchor__D7NTr{z-index:40}.Studio_backButton__sPEo0{display:inline-flex;align-items:center;align-self:flex-start;gap:.25rem;margin-bottom:.65rem;padding:0;font-family:inherit;font-size:.72rem;font-weight:500;color:var(--text-tertiary);background:transparent;border:0;border-radius:0;cursor:pointer;line-height:1.2;transition:color .15s}.Studio_backButton__sPEo0:hover{color:var(--text-secondary)}.Studio_tagPillRemove__K4mw7{margin-left:.35rem;background:none;border:none;color:rgba(255,255,255,.5);cursor:pointer;padding:0;font-size:.75rem;line-height:1}.Studio_tagPillRemove__K4mw7:hover{color:#fff}.Studio_dataFieldLabel__nb_nM{font-size:.8rem;color:rgba(255,255,255,.5);margin-bottom:.35rem}.Studio_membershipPanel__EGstU{display:grid;grid-template-columns:minmax(170px,max-content) minmax(0,1fr);align-items:center;gap:.75rem;margin:0 0 .65rem;padding:.65rem .75rem;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025)}.Studio_membershipPanelWithAction__efBwS{grid-template-columns:minmax(170px,max-content) minmax(0,1fr) max-content}.Studio_traceDatasetControls__IwM5z{display:grid;gap:.5rem;margin:0 0 .65rem}.Studio_traceDatasetControls__IwM5z .Studio_membershipPanel__EGstU{margin-bottom:0}.Studio_membershipHeader___UOhR{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0}.Studio_membershipTitle__2LIen{color:#fafafa;font-size:.82rem;font-weight:600}.Studio_membershipMeta__TlU5c{margin-top:.12rem;color:var(--text-tertiary);font-size:.7rem}.Studio_membershipContent__jqHx_{min-width:0}.Studio_membershipList__KXw_7{display:flex;flex-wrap:wrap;gap:.4rem}.Studio_membershipAction__RTbv1,.Studio_membershipActions__BUxtX{display:flex;justify-content:flex-end}.Studio_membershipActions__BUxtX{flex-wrap:wrap;gap:.5rem}.Studio_membershipAction__RTbv1 .Studio_primaryButton__t0Otf,.Studio_membershipAction__RTbv1 .Studio_secondaryButton__gEhyV{display:inline-flex;align-items:center;height:28px;padding:0 .65rem;font-size:.74rem;text-decoration:none}.Studio_membershipPill__QjB0k{display:inline-flex;align-items:center;gap:.3rem;min-width:0;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;transition:background .15s,border-color .15s,color .15s}.Studio_membershipPill__QjB0k:focus-within,.Studio_membershipPill__QjB0k:hover{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.07);color:#fafafa}.Studio_membershipPillLink__h9fV9,.Studio_membershipPillText__RwhCM{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Studio_membershipPillLink__h9fV9{display:inline-flex;align-items:center}.Studio_membershipPillLink__h9fV9,.Studio_membershipPillLink__h9fV9:hover{color:inherit;text-decoration:none}.Studio_membershipPillLink__h9fV9:focus{outline:none}.Studio_membershipRemoveButton__2K9Rp{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:0;background:transparent;color:rgba(255,255,255,.56);cursor:pointer;font-family:inherit;font-size:.9rem;line-height:1}.Studio_membershipRemoveButton__2K9Rp:hover:not(:disabled){color:#fafafa;background:rgba(255,255,255,.06)}.Studio_membershipRemoveButton__2K9Rp:disabled{cursor:default;opacity:.45}.Studio_membershipEmpty__Dt4SO{color:var(--text-tertiary);font-size:.76rem;white-space:nowrap}@media (max-width:760px){.Studio_membershipPanelWithAction__efBwS,.Studio_membershipPanel__EGstU{grid-template-columns:1fr}.Studio_membershipAction__RTbv1{justify-content:flex-start}.Studio_membershipEmpty__Dt4SO{white-space:normal}}.Studio_modalOverlay__x1Fj4{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000}.Studio_modalContent__djAeV{background:#1a1a1a;border:1px solid rgba(255,255,255,.12);border-radius:0;padding:1.5rem;min-width:360px;max-width:480px;box-shadow:0 8px 32px rgba(0,0,0,.6)}.Studio_modalTitle__0QlJa{margin:0 0 1rem;font-size:1rem;font-weight:600}.Studio_modalMessage__XPzbe{color:rgba(255,255,255,.6);margin:0 0 1rem;font-size:.85rem;line-height:1.4}.Studio_modalActions__IU0lF{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.Studio_contextMenu__OGBEA{position:absolute;top:100%;right:0;z-index:1000;background:#1a1a1a;border:1px solid rgba(255,255,255,.12);border-radius:0;padding:.25rem 0;min-width:120px;box-shadow:0 4px 12px rgba(0,0,0,.4);pointer-events:auto}.Studio_contextMenuAbove__Hn1fV{top:auto;bottom:calc(100% + .25rem)}.Studio_contextMenuItem__V_cT5{display:block;width:100%;padding:.5rem .75rem;text-align:left;background:none;border:none;color:rgba(255,255,255,.85);cursor:pointer;font-size:.8rem}.Studio_contextMenuItem__V_cT5:hover{background:rgba(255,255,255,.06)}.Studio_contextMenuItemDanger__pyiHt{color:#ef4444}.Studio_paginationBar__rQxsq{display:flex;align-items:center;justify-content:center;gap:.35rem;padding:.5rem}.Studio_paginationBarToolbar__CkBjt{justify-content:flex-end;padding:0}.Studio_paginationIconButton__7_OgH{flex:0 0 28px;width:28px;height:28px;font-size:.78rem}.Studio_paginationLabel__geOOY{padding:.25rem .45rem;font-size:.74rem;color:rgba(255,255,255,.6);white-space:nowrap}@media (max-width:900px){.Studio_topBar__OlLt6{grid-template-columns:minmax(0,1fr);align-items:stretch}.Studio_surfaceNav__RKZjS{overflow-x:auto}.Studio_dataNav__Hhqcz{flex-direction:row;align-self:auto;width:100%;min-height:0;overflow-x:auto;padding:0 0 .75rem;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}.Studio_dataLayout__RTqFZ>.Studio_dataNav__Hhqcz .Studio_dataNavItem__rzaJQ{flex:0 0 auto;width:auto}.Studio_dataMain__rSYxU{padding:0}.Studio_experimentNav__pUm9S{width:100%!important;min-width:0;max-width:none}.Studio_experimentsLayout__dJ9_W{flex-direction:column}.Studio_experimentsMain__8IYj4{width:100%;margin-left:0}.Studio_sidebarResizeHandle__Bfcoi{display:none}.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_tracesToolbarRight__YpWj8,.Studio_tracesToolbarSearch__Y_MtI{flex-wrap:wrap;justify-content:flex-start;min-width:0;margin-left:0}.Studio_textInput__9WjCF.Studio_traceSearchInput__5oRye{width:min(100%,240px)}.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_linkedExperimentRow___NdVV,.Studio_setupGrid__43Ac0,.Studio_splitSurface__v2lGr{grid-template-columns:1fr}.Studio_detailPanel__upjwv,.Studio_listPanel__KQbqx{max-height:none}.Studio_datasetsTableWrap__biwzy,.Studio_runTracesTableWrap__V4tCd{overflow-x:auto}}.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_dropdown__mshbO{width:clamp(144px,18vw,280px)}.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}.Runs_detailPanelHeader__XMEDA{display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem}.Runs_detailPanelTitle__vAuOY{font-size:1.3rem;font-weight:300;letter-spacing:-.3px;margin:0;color:#fff}.Leaderboard_tableWrapper__6uunR{overflow-x:auto;margin:1rem 0 0;border-radius:0;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025)}.Leaderboard_table__8gTqK{width:100%;border-collapse:collapse;font-size:.8rem;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:#101010;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,.48);font-weight:600;font-size:.72rem;letter-spacing:0;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(255,255,255,.62)}.Leaderboard_thPrimary__SzN76:hover{color:rgba(255,255,255,.86)}.Leaderboard_thSorted__13fmP{color:rgba(255,255,255,.9)!important}.Leaderboard_thPrimary__SzN76.Leaderboard_thSorted__13fmP{color:rgba(255,255,255,.92)!important}.Leaderboard_thLabel__2cqYD{margin-right:.3rem}.Leaderboard_sortArrow__3IJre{font-size:.62rem;vertical-align:middle;opacity:.76}.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(255,255,255,.045)}.Leaderboard_rowBest__JCqYu:hover{background:rgba(255,255,255,.075)}.Leaderboard_rowSelected__GFyz5{background:rgba(255,255,255,.075)!important;box-shadow:inset 2px 0 0 rgba(255,255,255,.42)}.Leaderboard_table__8gTqK td{padding:.55rem .75rem;text-align:right;color:rgba(255,255,255,.78);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:rgba(255,255,255,.88);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);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(255,255,255,.92);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.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Automated AI researcher that improves AI systems",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -74,6 +74,9 @@
|
|
|
74
74
|
"vitest": "^4.0.17",
|
|
75
75
|
"zod": "4.1.4"
|
|
76
76
|
},
|
|
77
|
+
"peerDependencies": {
|
|
78
|
+
"@types/react": "^19.0.0"
|
|
79
|
+
},
|
|
77
80
|
"engines": {
|
|
78
81
|
"node": ">=20"
|
|
79
82
|
}
|
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.
|
|
4
|
+
version: "0.8.0",
|
|
5
5
|
description: "Automated AI researcher that improves AI systems",
|
|
6
6
|
keywords: [
|
|
7
7
|
"ai",
|
|
@@ -71,6 +71,7 @@ var package_default = {
|
|
|
71
71
|
"vitest": "^4.0.17",
|
|
72
72
|
"zod": "4.1.4"
|
|
73
73
|
},
|
|
74
|
+
peerDependencies: { "@types/react": "^19.0.0" },
|
|
74
75
|
engines: { "node": ">=20" }
|
|
75
76
|
};
|
|
76
77
|
//#endregion
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@percepta/kaizen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Automated AI researcher that improves AI systems",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -59,6 +59,9 @@
|
|
|
59
59
|
"zod": "4.1.4",
|
|
60
60
|
"@percepta/build": "1.1.0"
|
|
61
61
|
},
|
|
62
|
+
"peerDependencies": {
|
|
63
|
+
"@types/react": "^19.0.0"
|
|
64
|
+
},
|
|
62
65
|
"engines": {
|
|
63
66
|
"node": ">=20"
|
|
64
67
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=27,exports.ids=[27],exports.modules={507:(a,b,c)=>{c.d(b,{F:()=>f,e:()=>g});var d=c(3641);let e=["LANGFUSE_HOST","LANGFUSE_PUBLIC_KEY","LANGFUSE_SECRET_KEY"];function f(){var a;let b,c,f,h=(0,d.Wo)(),i=(0,d.Ok)(h,e);return i.length>0?{host:"",auth:"",connection:g("missing_root_env",{missingEnvVars:i})}:{...(b=(a=h).LANGFUSE_HOST||a.LANGFUSE_BASE_URL||"",c=a.LANGFUSE_PUBLIC_KEY??"",f=a.LANGFUSE_SECRET_KEY??"",c&&f?{host:b,auth:Buffer.from(`${c}:${f}`).toString("base64")}:{host:b,auth:""}),connection:g("connected")}}function g(a,b={}){let c={requiredEnvVars:e,expectedEnvFile:d.Bo,missingEnvVars:b.missingEnvVars??[],detail:b.detail};return"connected"===a?{...c,state:a,message:"Langfuse is connected.",remediation:"Kaizen is reading Langfuse credentials from the workspace root .env.local file."}:"missing_root_env"===a?{...c,state:a,message:"Langfuse credentials are missing from the workspace root .env.local file.",remediation:"Add LANGFUSE_HOST, LANGFUSE_PUBLIC_KEY, and LANGFUSE_SECRET_KEY to the repo root .env.local file, then refresh this view."}:"auth_failed"===a?{...c,state:a,message:"Langfuse rejected the credentials in the workspace root .env.local file.",remediation:"Replace the Langfuse values in the repo root .env.local file with valid credentials, then refresh this view."}:"query_failed"===a?{...c,state:a,message:"Kaizen reached Langfuse, but the data query failed.",remediation:"Check the selected dataset or trace in Langfuse, then refresh this view."}:{...c,state:a,message:"Kaizen could not reach Langfuse.",remediation:"Check network access to Langfuse and confirm the repo root .env.local values are correct, then refresh this view."}}},2401:(a,b,c)=>{async function d(a,b){let c=await f(a);return[`Kaizen could not load ${b} from Langfuse.`,`Langfuse returned ${a.status}${a.statusText?` ${a.statusText}`:""}.`,401===a.status||403===a.status?"Check that the Langfuse host and API keys are for the right workspace and have access to this data.":404===a.status?"Confirm the selected dataset or trace still exists in Langfuse.":a.status>=500?"Langfuse may be temporarily unavailable. Try refreshing in a moment.":"Check the Langfuse connection and try refreshing.",c?`Detail: ${c}`:null].filter(Boolean).join(" ")}function e(a){if(a instanceof Error&&"AbortError"===a.name)return"Kaizen could not load Langfuse data because Langfuse did not respond in time. Check your connection and try refreshing.";let b=a instanceof Error&&a.message.trim()?` Detail: ${g(a.message.trim())}`:"";return`Kaizen could not reach Langfuse. Check your network or VPN, confirm the Langfuse host is reachable, then refresh.${b}`}async function f(a){let b,c=await a.text().catch(()=>"");if(!c.trim()||(b=c.trim().toLowerCase()).startsWith("<!doctype html")||b.startsWith("<html")||/<body[\s>]/.test(b))return null;try{let a=JSON.parse(c),b=function(a){var b;if(b=a,"object"!=typeof b||null===b||Array.isArray(b))return null;for(let b of["message","error","detail"]){let c=a[b];if("string"==typeof c&&c.trim())return c.trim()}return null}(a);if(b)return g(b)}catch{}return g(c.replace(/\s+/g," ").trim())}function g(a){return a.length>180?`${a.slice(0,177)}...`:a}c.d(b,{Y:()=>e,l:()=>d})},2563:(a,b,c)=>{c.d(b,{Tt:()=>g,rs:()=>k,sT:()=>h,vk:()=>j,wn:()=>i});var d=c(1421),e=c(3024),f=c(6760);let g="kaizen",h="systems";function i(a){return(0,f.join)((0,f.join)(a,g),h)}function j(a,b){return(0,f.join)((0,f.join)(i(a),b),"system.md")}function k(a){let b=process.env.KAIZEN_STATE_DIR;return b?(0,f.resolve)(a,b):(0,f.join)(function(a){let b=l(a),c=function(a){try{return(0,d.execFileSync)("git",["-C",a,"rev-parse","--show-toplevel"],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return null}}(b);if(!c||l(c)!==b)return b;try{let a=(0,d.execFileSync)("git",["-C",b,"worktree","list","--porcelain"],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).split("\n").find(a=>a.startsWith("worktree "));return a?l(a.slice(9)):b}catch{return b}}(a),g,".kaizen")}function l(a){try{return(0,e.realpathSync)(a)}catch{return(0,f.resolve)(a)}}},3169:(a,b,c)=>{c.d(b,{HP:()=>i,Kv:()=>x,NW:()=>v,TV:()=>s,Ts:()=>B,aO:()=>t,ag:()=>A,ck:()=>u,jS:()=>H,rj:()=>z,s:()=>y,tD:()=>w});var d=c(3024),e=c.n(d),f=c(6760),g=c.n(f),h=c(4467);function i(){return"1"===process.env.KAIZEN_DEMO_MODE}let j=g().join("dist","demo-traces.json"),k=new Date().toISOString(),l=new Date(Date.now()-864e5).toISOString(),m=new Date(Date.now()-1728e5).toISOString(),n=[{id:"ds-001",name:"golden-eval-set",description:"Primary evaluation dataset with curated examples",metadata:null,createdAt:m,updatedAt:l},{id:"ds-002",name:"regression-tests",description:"Regression test cases from production issues",metadata:null,createdAt:m,updatedAt:m},{id:"ds-003",name:"edge-cases",description:null,metadata:null,createdAt:l,updatedAt:l}],o=[{id:"dsi-001",datasetName:"golden-eval-set",status:"ACTIVE",sourceTraceId:"trace-001",input:{query:"What is the capital of France?",context:"geography"},expectedOutput:{answer:"Paris"},metadata:{callSummary:"Geography question",kaizen:{notes:"Clean example"}},createdAt:m,updatedAt:l},{id:"dsi-002",datasetName:"golden-eval-set",status:"ACTIVE",sourceTraceId:"trace-002",input:{query:"Summarize this document",document:"Lorem ipsum..."},expectedOutput:{summary:"A brief summary of the document."},metadata:{callSummary:"Summarization task",kaizen:{notes:"Standard summarization"}},createdAt:m,updatedAt:m},{id:"dsi-003",datasetName:"golden-eval-set",status:"ACTIVE",sourceTraceId:"trace-003",input:{query:"Translate to Spanish: Hello world"},expectedOutput:{translation:"Hola mundo"},metadata:{callSummary:"Translation request"},createdAt:l,updatedAt:l},{id:"dsi-004",datasetName:"regression-tests",status:"ACTIVE",sourceTraceId:"trace-004",input:{query:"Calculate 2+2",mode:"math"},expectedOutput:{result:4},metadata:{callSummary:"Math calculation",kaizen:{notes:"Regression from v1.2"}},createdAt:m,updatedAt:m},{id:"dsi-005",datasetName:"regression-tests",status:"ACTIVE",sourceTraceId:"trace-005",input:{query:"Parse this date: 2024-01-15"},expectedOutput:{year:2024,month:1,day:15},metadata:{callSummary:"Date parsing"},createdAt:l,updatedAt:l}],p=[{id:"trace-001",name:"geography-qa",tags:["eval","geography","qa"],timestamp:m,input:{query:"What is the capital of France?"},output:{answer:"Paris",confidence:.98},metadata:{model:"gpt-4",latencyMs:320}},{id:"trace-002",name:"document-summarize",tags:["eval","summarization"],timestamp:m,input:{query:"Summarize this document",document:"Lorem ipsum..."},output:{summary:"A brief summary of the document."},metadata:{model:"gpt-4",latencyMs:1240}},{id:"trace-003",name:"translate-en-es",tags:["eval","translation","spanish"],timestamp:l,input:{query:"Translate to Spanish: Hello world"},output:{translation:"Hola mundo"},metadata:{model:"gpt-3.5-turbo",latencyMs:180}},{id:"trace-004",name:"math-calc",tags:["regression","math"],timestamp:m,input:{query:"Calculate 2+2",mode:"math"},output:{result:4,workShown:"2 + 2 = 4"},metadata:{model:"gpt-4",latencyMs:95}},{id:"trace-005",name:"date-parser",tags:["regression","parsing"],timestamp:l,input:{query:"Parse this date: 2024-01-15"},output:{year:2024,month:1,day:15},metadata:{model:"gpt-3.5-turbo",latencyMs:110}},{id:"trace-006",name:"sentiment-analysis",tags:["analysis","sentiment"],timestamp:k,input:{text:"I love this product! It's amazing."},output:{sentiment:"positive",score:.95},metadata:{model:"gpt-4",latencyMs:200}},{id:"trace-007",name:"code-review",tags:["code","review"],timestamp:k,input:{code:"function add(a, b) { return a + b; }",language:"javascript"},output:{review:"Clean implementation. Consider adding type annotations."},metadata:{model:"gpt-4",latencyMs:850}},{id:"trace-008",name:"email-draft",tags:["generation","email"],timestamp:k,input:{subject:"Meeting follow-up",tone:"professional"},output:{draft:"Dear team, Thank you for attending today's meeting..."},metadata:{model:"gpt-4",latencyMs:520}}],q=[{runId:"demo-baseline",runName:"baseline-prompt",parentId:null,dataset:"golden-eval-set",startedAt:"2026-05-08T15:00:00.000Z",updatedAt:"2026-05-08T15:08:20.000Z",score:.62,chartNotes:.6,followUp:.64,cost:.0082,latency:9.4,traceIds:["trace-001","trace-002","trace-003"],branch:"kaizen/demo/baseline-prompt",linearIssue:"KZN-101"},{runId:"demo-structured-output",runName:"structured-output-sections",parentId:"demo-baseline",dataset:"golden-eval-set",startedAt:"2026-05-08T16:00:00.000Z",updatedAt:"2026-05-08T16:09:04.000Z",score:.71,chartNotes:.74,followUp:.66,cost:.0088,latency:9.8,traceIds:["trace-001","trace-002","trace-003"],branch:"kaizen/demo/structured-output-sections",linearIssue:"KZN-102"},{runId:"demo-grounded-follow-up",runName:"grounded-follow-up",parentId:"demo-structured-output",dataset:"golden-eval-set",startedAt:"2026-05-08T17:00:00.000Z",updatedAt:"2026-05-08T17:10:12.000Z",score:.78,chartNotes:.75,followUp:.82,cost:.0095,latency:10.6,traceIds:["trace-001","trace-002","trace-003"],branch:"kaizen/demo/grounded-follow-up",linearIssue:"KZN-103"},{runId:"demo-regression-baseline",runName:"regression-baseline",parentId:null,dataset:"regression-tests",startedAt:"2026-05-09T15:00:00.000Z",updatedAt:"2026-05-09T15:07:30.000Z",score:.68,chartNotes:.7,followUp:.64,cost:.0065,latency:8.1,traceIds:["trace-004","trace-005"],branch:"kaizen/demo/regression-baseline",linearIssue:"KZN-104"},{runId:"demo-parser-repair",runName:"parser-repair",parentId:"demo-regression-baseline",dataset:"regression-tests",startedAt:"2026-05-09T16:00:00.000Z",updatedAt:"2026-05-09T16:06:45.000Z",score:.84,chartNotes:.82,followUp:.86,cost:.0068,latency:8.4,traceIds:["trace-004","trace-005"],branch:"kaizen/demo/parser-repair",linearIssue:"KZN-105"}],r=100;function s(){return[...n]}function t(a){return o.filter(b=>b.datasetName===a)}function u(a,b,c){let d=C();c&&c.length>0&&(d=d.filter(a=>c.some(b=>a.tags.includes(b))));let e=d.length,f=Math.max(1,Math.ceil(e/b)),g=(a-1)*b;return{data:d.slice(g,g+b),meta:{page:a,totalPages:f,totalItems:e}}}function v(a){return C().find(b=>b.id===a)??null}function w(){return q.map(a=>{var b;return{runId:a.runId,runName:a.runName,status:"complete",worktreeBranch:a.branch,parentId:a.parentId,system:"demo-system",metrics:{score:(b=a).score,judge_quality:b.score,judge_quality_chartNotes:b.chartNotes,judge_quality_followUp:b.followUp,cost_per_item:b.cost,avg_latency_s:b.latency},totalItems:a.traceIds.length,linearIssue:{id:a.linearIssue,url:`https://linear.app/aitco/issue/${a.linearIssue}`},evalConfig:{dataset:a.dataset,evalVersion:1,datasetItemCount:a.traceIds.length},startedAt:a.startedAt,updatedAt:a.updatedAt}}).sort((a,b)=>b.startedAt<a.startedAt?-1:1)}function x(a){let b=q.find(b=>b.runId===a);return b?b.traceIds.map((a,c)=>{let d=(c%3-1)*.018,e=E(b.score+d);return{id:`${b.dataset}-item-${c+1}`,score:e,traceId:a,breakdown:{judge_quality:e,judge_quality_chartNotes:E(b.chartNotes+d/2),judge_quality_followUp:E(b.followUp-d/2),cost_per_item:Number((b.cost+2e-4*c).toFixed(4)),avg_latency_s:Number((b.latency+.18*c).toFixed(2))}}}):null}function y(a,b){let c=n.find(b=>b.name===a);if(c)return c;let d={id:`ds-${Date.now()}`,name:a,description:b??null,metadata:null,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};return n.push(d),d}function z(a){o=o.filter(b=>b.datasetName!==a),n=n.filter(b=>b.name!==a)}function A(a){o=o.filter(b=>b.id!==a)}function B(a,b){let c=C().find(a=>a.id===b),d={id:`dsi-auto-${r++}`,datasetName:a,status:"ACTIVE",sourceTraceId:b,input:c?.input??{traceId:b},expectedOutput:c?.output??null,metadata:c?{callSummary:c.name}:null,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};return o.push(d),d}function C(){let a=function(){let a=g().join((0,h.n)(),j);if(!e().existsSync(a))return[];try{let b=JSON.parse(e().readFileSync(a,"utf-8"));if(!Array.isArray(b))return[];return b.map(D).filter(a=>null!==a)}catch{return[]}}();if(0===a.length)return[...p];let b=new Map;for(let c of a)b.set(c.id,c);for(let a of p)b.has(a.id)||b.set(a.id,a);return[...b.values()].sort((a,b)=>new Date(b.timestamp).getTime()-new Date(a.timestamp).getTime())}function D(a){if(!F(a))return null;let b=G(a.id),c=G(a.name),d=G(a.timestamp);return b&&c&&d?{id:b,name:c,tags:Array.isArray(a.tags)?a.tags.filter(a=>"string"==typeof a):[],timestamp:d,input:a.input??null,output:a.output??null,metadata:F(a.metadata)?a.metadata:null}:null}function E(a){return Number(Math.max(0,Math.min(1,a)).toFixed(3))}function F(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function G(a){return"string"==typeof a&&a.trim()?a:null}let H={state:"connected",message:"Demo mode — using mock data.",remediation:"Set KAIZEN_DEMO_MODE=1 in .env.local to enable demo mode.",requiredEnvVars:[],expectedEnvFile:".env.local",missingEnvVars:[]}},3641:(a,b,c)=>{c.d(b,{Bo:()=>h,Ok:()=>j,Wo:()=>i});var d=c(6760),e=c.n(d),f=c(6873),g=c(4467);let h=".env.local";function i(){return(0,f.S)(e().join((0,g.Y)(),h))}function j(a,b){return b.filter(b=>!a[b]?.trim())}},4467:(a,b,c)=>{c.d(b,{Y:()=>g,n:()=>h});var d=c(6760),e=c.n(d),f=c(2563);function g(){let a=process.env.KAIZEN_WORKSPACE;return a?e().resolve(a):process.cwd()}function h(){return(0,f.rs)(g())}},6873:(a,b,c)=>{c.d(b,{S:()=>e});var d=c(3024);function e(a){if(!(0,d.existsSync)(a))return{};let b={};for(let c of(0,d.readFileSync)(a,"utf-8").split("\n")){let a=c.trim();if(!a||a.startsWith("#"))continue;a.startsWith("export ")&&(a=a.slice(7).trim());let d=a.indexOf("=");if(d<0)continue;let e=a.slice(0,d).trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))continue;let f=a.slice(d+1);(f.startsWith('"')&&f.endsWith('"')||f.startsWith("'")&&f.endsWith("'"))&&(f=f.slice(1,-1)),b[e]=f}return b}}};
|