openpond 0.0.67 → 0.0.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/dist/chunks/{actions-command-DZ6D7JTO.js → actions-command-6N5XWMR6.js} +4 -3
  2. package/dist/chunks/{app-layer-MAATABDM.js → app-layer-EXXOWJ5H.js} +7 -6
  3. package/dist/chunks/app-server-runtime-7FBQBE3C.js +20 -0
  4. package/dist/chunks/{apps-L23POEUT.js → apps-RZSDOFAG.js} +7 -6
  5. package/dist/chunks/{chunk-EJURKADM.js → chunk-47EIAYI7.js} +3 -3
  6. package/dist/chunks/{chunk-K4JEWEJQ.js → chunk-4L3ZJS2T.js} +426 -1
  7. package/dist/chunks/{chunk-CWCMYSX2.js → chunk-5TKZBMQM.js} +19 -3
  8. package/dist/chunks/{chunk-Z3SXHGOC.js → chunk-7C4OIFOC.js} +1 -1
  9. package/dist/chunks/{chunk-RN7MVPC6.js → chunk-BLFIIAWZ.js} +2865 -410
  10. package/dist/chunks/{chunk-3KLQ52B2.js → chunk-BVY5JYM6.js} +4 -9
  11. package/dist/chunks/{chunk-DBHSOTYZ.js → chunk-D7BO5Y5J.js} +3 -24
  12. package/dist/chunks/chunk-DLQQIWN2.js +648 -0
  13. package/dist/chunks/{chunk-T55IL3GI.js → chunk-DNXBJZAU.js} +1 -1
  14. package/dist/chunks/{chunk-2N57HMVR.js → chunk-F36ZVO6U.js} +3 -3
  15. package/dist/chunks/{chunk-42WUHGKD.js → chunk-FEOLMLYU.js} +21 -14
  16. package/dist/chunks/{chunk-QETF6ILG.js → chunk-FQS2QL5F.js} +359 -841
  17. package/dist/chunks/{chunk-J2REM7LE.js → chunk-HFPUR4CQ.js} +5 -116
  18. package/dist/chunks/{chunk-JIEUB6OS.js → chunk-J3YDKJFD.js} +1 -1
  19. package/dist/chunks/{chunk-JGOP4GCK.js → chunk-JTHL5XJ2.js} +5 -25
  20. package/dist/chunks/{chunk-BPII37IS.js → chunk-MMRJNSWY.js} +578 -118
  21. package/dist/chunks/{chunk-DEEQG5MY.js → chunk-NPNIL6SQ.js} +1 -1
  22. package/dist/chunks/{chunk-7OQFWODA.js → chunk-OOM2PHBE.js} +10377 -8267
  23. package/dist/chunks/{chunk-J3PSR6F6.js → chunk-QTN6HXOR.js} +3 -3
  24. package/dist/chunks/{chunk-MHUN6LXO.js → chunk-SFMNGWNO.js} +1 -1
  25. package/dist/chunks/{chunk-PLDCQVNW.js → chunk-WBAZFKC7.js} +4 -4
  26. package/dist/chunks/chunk-X7ZG4TSW.js +3063 -0
  27. package/dist/chunks/{chunk-XIFRFL4T.js → chunk-Y57RTLVV.js} +33 -33
  28. package/dist/chunks/{chunk-BYAPLT37.js → chunk-YVCYVDNP.js} +4 -2
  29. package/dist/chunks/{cli-6N2QZCOF.js → cli-HIXVXM72.js} +9 -8
  30. package/dist/chunks/{core-commands-5TW5I3Z6.js → core-commands-34SVH6ZQ.js} +8 -7
  31. package/dist/chunks/{desktop-test-JG6XDUTT.js → desktop-test-66DPBNJX.js} +7 -6
  32. package/dist/chunks/{extension-UUM4ELAF.js → extension-ZMRHCDO3.js} +544 -111
  33. package/dist/chunks/{help-JFQVVETR.js → help-COHCZEP2.js} +1 -1
  34. package/dist/chunks/{opchat-3772JCGJ.js → opchat-2PGW2GNN.js} +10 -17
  35. package/dist/chunks/{organizations-USWBONDO.js → organizations-NZ4OY56V.js} +10 -9
  36. package/dist/chunks/{profile-2MYIXRUK.js → profile-GEMTRPUG.js} +12 -11
  37. package/dist/chunks/{project-agent-VDKGFG5V.js → project-agent-NX6YBGWC.js} +11 -10
  38. package/dist/chunks/{sandbox-command-M5W3VWVP.js → sandbox-command-UEY53OJO.js} +8 -7
  39. package/dist/chunks/{sandbox-template-25SKARVM.js → sandbox-template-YKYRB645.js} +11 -10
  40. package/dist/chunks/{src-7RDE5SYD.js → src-IXYDKOBI.js} +4409 -1474
  41. package/dist/chunks/{src-KYP4COYD.js → src-LKJBD5AM.js} +6 -5
  42. package/dist/chunks/{teams-bot-BJJISVOG.js → teams-bot-K6KZHZJV.js} +7 -6
  43. package/dist/chunks/{workspaces-EQTHCFVV.js → workspaces-WXM72UZF.js} +2 -2
  44. package/dist/cli.js +13 -13
  45. package/dist/client.d.ts +1 -1
  46. package/dist/hosted-chat.d.ts +5 -0
  47. package/dist/index.js +14554 -14173
  48. package/dist/skills/openpond-refiner-authoring/SKILL.md +29 -0
  49. package/dist/skills/openpond-refiner-authoring/references/core-boundary.md +5 -0
  50. package/dist/skills/openpond-refiner-authoring/references/review-profile.md +7 -0
  51. package/dist/skills/openpond-refiner-authoring/references/validation-and-activation.md +5 -0
  52. package/dist/web/assets/App-BF9L0JUv.js +171 -0
  53. package/dist/web/assets/{AppDialog-B8HYaM0m.js → AppDialog-DX-xs3KA.js} +1 -1
  54. package/dist/web/assets/AppTerminalPanel-CYVj_ITT.js +2 -0
  55. package/dist/web/assets/AppsView-ByjyGog7.js +1 -0
  56. package/dist/web/assets/AppsView-CzbB5pXp.css +1 -0
  57. package/dist/web/assets/BrowserSidebar-BDwtMAZl.js +1 -0
  58. package/dist/web/assets/CartesianChart-Dv6jJfPR.js +53 -0
  59. package/dist/web/assets/CollaborationTabs-BfVlyLmR.css +1 -0
  60. package/dist/web/assets/CollaborationTabs-CC5AIhMh.js +1 -0
  61. package/dist/web/assets/CommandMenu-Ct0Sx7yP.js +1 -0
  62. package/dist/web/assets/CommunityView-C_zVE0jg.js +1 -0
  63. package/dist/web/assets/ComposerCreateImproveStrip-CNn4OywM.js +1 -0
  64. package/dist/web/assets/GetStartedView-DRFpHDLd.js +1 -0
  65. package/dist/web/assets/LabModelVersionDetailPage-BzF-IVXQ.js +1 -0
  66. package/dist/web/assets/LabSkillSidebar-B9jY4AgE.js +1 -0
  67. package/dist/web/assets/LabsRoute-CS_orT9s.css +1 -0
  68. package/dist/web/assets/LabsRoute-Di1Zs4gZ.js +2 -0
  69. package/dist/web/assets/MainChatThread-8VzlD8Hi.js +2 -0
  70. package/dist/web/assets/MainPane-StAOFINE.js +6 -0
  71. package/dist/web/assets/MarkdownText-B8D_ftSJ.js +9 -0
  72. package/dist/web/assets/{Messages-CWoU5OZ2.js → Messages-TY62tiDp.js} +6 -6
  73. package/dist/web/assets/NativeSkillSidebar-DjebFRoi.js +1 -0
  74. package/dist/web/assets/NewExperienceSwitcher-C-bJxHxY.js +1 -0
  75. package/dist/web/assets/NewProjectDialog-Cx8QcZm7.js +1 -0
  76. package/dist/web/assets/OutputsPage-Y9HM-SHX.js +1 -0
  77. package/dist/web/assets/ProjectsPage-BBr58yKT.js +1 -0
  78. package/dist/web/assets/ProjectsPage-DdG-U9ZW.css +1 -0
  79. package/dist/web/assets/RightChatPanelStack-DzUbDKwp.js +1 -0
  80. package/dist/web/assets/RightSidebarHomePanel-Dx-1elSI.js +1 -0
  81. package/dist/web/assets/ScheduledWorkPage-BuXw_W8b.js +1 -0
  82. package/dist/web/assets/SettingsView-DB_zPHYY.js +6 -0
  83. package/dist/web/assets/{TeamChatView-Cst9bXqE.js → TeamChatView-Bkyhu40R.js} +2 -2
  84. package/dist/web/assets/{TerminalOverlay-72oJPCbi.js → TerminalOverlay-CaCkZDzO.js} +3 -3
  85. package/dist/web/assets/TrainingCreationPanel-Vvi41WNT.js +1 -0
  86. package/dist/web/assets/TrainingDraftPanel-C2C3hffI.js +1 -0
  87. package/dist/web/assets/UsageSettingsSection-Csg3diiE.css +1 -0
  88. package/dist/web/assets/UsageSettingsSection-DpPBd-ra.js +7 -0
  89. package/dist/web/assets/{MainPane-BfVDe9f7.css → WorkSidebarPanel-Bky_Rqcx.css} +1 -1
  90. package/dist/web/assets/WorkSidebarPanel-CeWGboTh.js +1 -0
  91. package/dist/web/assets/WorkspaceDiffPanel-D_zKOW4K.js +14 -0
  92. package/dist/web/assets/WorkspaceEnvironmentMenu-BTz9FISP.js +32 -0
  93. package/dist/web/assets/WorkspaceGitDialogs-BnBRUYpS.js +1 -0
  94. package/dist/web/assets/{WorkspaceMonacoEditor-CxD40rNT.js → WorkspaceMonacoEditor--GOVrHFp.js} +3 -3
  95. package/dist/web/assets/activity-DA5DNQwD.js +1 -0
  96. package/dist/web/assets/arrow-up-right-BRZWXpqJ.js +1 -0
  97. package/dist/web/assets/chat-file-links-CgFHK89C.js +1 -0
  98. package/dist/web/assets/chevron-up-DSv2auz_.js +1 -0
  99. package/dist/web/assets/clipboard-dPd_3lpG.js +1 -0
  100. package/dist/web/assets/cloud-upload-DOwvN4hp.js +1 -0
  101. package/dist/web/assets/{cssMode-CJPZShEy.js → cssMode-BM4j9M0D.js} +1 -1
  102. package/dist/web/assets/desktop-files-BQj1J-ob.js +1 -0
  103. package/dist/web/assets/figtree-latin-CEHu_veL.woff2 +0 -0
  104. package/dist/web/assets/folder-open-DavjPCw4.js +1 -0
  105. package/dist/web/assets/folder-plus-Dyqast6G.js +1 -0
  106. package/dist/web/assets/git-branch-zKnZdQiX.js +1 -0
  107. package/dist/web/assets/git-commit-horizontal-s3X0cQlz.js +1 -0
  108. package/dist/web/assets/{htmlMode-fp60PdLB.js → htmlMode-Nlx7ckXa.js} +1 -1
  109. package/dist/web/assets/index-5-B6FIuE.js +9 -0
  110. package/dist/web/assets/index-CQ3CPVHZ.css +1 -0
  111. package/dist/web/assets/index-CuoGlf-W.js +1 -0
  112. package/dist/web/assets/info-CVvrNOHr.js +1 -0
  113. package/dist/web/assets/{jsonMode-9tQDt87U.js → jsonMode-B7monA6g.js} +1 -1
  114. package/dist/web/assets/{lspLanguageFeatures-DhOXsUmI.js → lspLanguageFeatures-CcJ9GDtK.js} +1 -1
  115. package/dist/web/assets/minimize-2-O1DnznGK.js +1 -0
  116. package/dist/web/assets/{monaco.contribution-BPct5K1-.js → monaco.contribution-2PozfA9g.js} +2 -2
  117. package/dist/web/assets/{monaco.contribution-D3sQBkAF.js → monaco.contribution-BMAF2bmO.js} +2 -2
  118. package/dist/web/assets/{monaco.contribution-DRNDpuUQ.js → monaco.contribution-BSJ2jQTi.js} +2 -2
  119. package/dist/web/assets/{monaco.contribution-BCc7daQX.js → monaco.contribution-QOOCizYq.js} +2 -2
  120. package/dist/web/assets/play-BpCc5ZbR.js +1 -0
  121. package/dist/web/assets/{python-CO5ats2F.js → python-BK41iew-.js} +1 -1
  122. package/dist/web/assets/refresh-cw-Csoy1ev1.js +1 -0
  123. package/dist/web/assets/save-Dbztj0W7.js +1 -0
  124. package/dist/web/assets/square-ju7fWa0W.js +1 -0
  125. package/dist/web/assets/{toggleHighContrast-7mdj7cLQ.js → toggleHighContrast-DrmwDpyz.js} +1 -1
  126. package/dist/web/assets/{training-BQVNUTZA.css → training-daZlCtKV.css} +1 -1
  127. package/dist/web/assets/{training-model-data-V8276E5q.js → training-model-data-CKOkpBBL.js} +1 -1
  128. package/dist/web/assets/{tsMode-qx-y8781.js → tsMode-CFgCMr7d.js} +1 -1
  129. package/dist/web/assets/upload-C5nhiSMq.js +1 -0
  130. package/dist/web/assets/useLocalAgentSchedules-LAsobERb.js +1 -0
  131. package/dist/web/assets/wifi-off-BHxh2UbA.js +1 -0
  132. package/dist/web/assets/{workers-DC-vdMwa.js → workers-FKb-NyBI.js} +1 -1
  133. package/dist/web/assets/{yaml-Bu611qJb.js → yaml-C5DbF9S6.js} +1 -1
  134. package/dist/web/index.html +2 -2
  135. package/package.json +1 -1
  136. package/dist/api/vercel-protection.d.ts +0 -1
  137. package/dist/chunks/app-server-runtime-CJFOO54B.js +0 -19
  138. package/dist/chunks/chunk-WYDVQOBL.js +0 -17581
  139. package/dist/web/assets/AppsView-DIhprTIC.css +0 -1
  140. package/dist/web/assets/AppsView-DzVZTM0y.js +0 -1
  141. package/dist/web/assets/BrowserSidebar-BobBdHTm.js +0 -1
  142. package/dist/web/assets/CommandMenu-pp69WTbf.js +0 -1
  143. package/dist/web/assets/CommunityView-D1V7y3l5.js +0 -1
  144. package/dist/web/assets/ComposerCreateImproveStrip-Dv5RKQaG.js +0 -1
  145. package/dist/web/assets/GetStartedView-DXmHN_BA.js +0 -1
  146. package/dist/web/assets/LabModelVersionDetailPage-BDN4AQVt.js +0 -1
  147. package/dist/web/assets/LabSkillSidebar-DYR_pq0Q.js +0 -1
  148. package/dist/web/assets/LabsRoute-CFXaPC-i.js +0 -3
  149. package/dist/web/assets/LabsRoute-DDTgtCul.css +0 -1
  150. package/dist/web/assets/MainChatThread-C1XrdeAC.js +0 -2
  151. package/dist/web/assets/MainPane-D8Mu6Nf3.js +0 -6
  152. package/dist/web/assets/MarkdownText-D5-tAHVZ.js +0 -9
  153. package/dist/web/assets/NativeSkillSidebar-cKgCM5s9.js +0 -1
  154. package/dist/web/assets/NewProjectDialog-B4wrkUrZ.js +0 -1
  155. package/dist/web/assets/OutputsPage-DoJz_FcJ.js +0 -1
  156. package/dist/web/assets/RightChatPanelStack-goxULcZy.js +0 -1
  157. package/dist/web/assets/ScheduledWorkPage-DLtJnU9O.js +0 -1
  158. package/dist/web/assets/SettingsView-M-_wJvH1.js +0 -6
  159. package/dist/web/assets/TrainingCreationPanel-BK8T_q3X.js +0 -1
  160. package/dist/web/assets/TrainingDraftPanel-DSZ8e9ve.js +0 -1
  161. package/dist/web/assets/UsageSettingsSection-Co0UH4EJ.js +0 -59
  162. package/dist/web/assets/UsageSettingsSection-O8VK0qBL.css +0 -1
  163. package/dist/web/assets/WorkspaceDiffPanel-OcpOQdEE.js +0 -14
  164. package/dist/web/assets/WorkspaceEnvironmentMenu-Cg_VY5XS.js +0 -32
  165. package/dist/web/assets/WorkspaceGitDialogs-ApPWIEpT.js +0 -1
  166. package/dist/web/assets/arrow-up-right-DtR75sMi.js +0 -1
  167. package/dist/web/assets/chevron-up-DH33C_vT.js +0 -1
  168. package/dist/web/assets/cloud-upload-Cp4pi0X7.js +0 -1
  169. package/dist/web/assets/folder-open-hEq-0bAV.js +0 -1
  170. package/dist/web/assets/folder-plus-ClgoqsjW.js +0 -1
  171. package/dist/web/assets/git-branch-CLBU2IM9.js +0 -1
  172. package/dist/web/assets/git-commit-horizontal-CpOgDvCh.js +0 -1
  173. package/dist/web/assets/index-2rbiOiLR.js +0 -179
  174. package/dist/web/assets/index-BWqDWo3b.js +0 -1
  175. package/dist/web/assets/index-CHqMtVfF.css +0 -1
  176. package/dist/web/assets/info-D3L7JgSo.js +0 -1
  177. package/dist/web/assets/play-DUBpqm-k.js +0 -1
  178. package/dist/web/assets/refresh-cw-D7OfmCic.js +0 -1
  179. package/dist/web/assets/save-CJN-WmnU.js +0 -1
  180. package/dist/web/assets/square-Bx9UTvNe.js +0 -1
  181. package/dist/web/assets/upload-Bp6EKIYv.js +0 -1
  182. package/dist/web/assets/useLocalAgentSchedules-CZ1tgG1x.js +0 -1
  183. package/dist/web/assets/wifi-off-DovWnIF6.js +0 -1
@@ -0,0 +1 @@
1
+ .collaboration-tabs{grid-column:1 / -1;grid-row:1;display:flex;align-items:end;gap:4px;min-width:0;min-height:44px;border-bottom:1px solid var(--border);background:var(--bg);padding:0 16px}.collaboration-tabs button{position:relative;display:inline-flex;align-items:center;gap:7px;min-height:43px;border:0;background:transparent;color:var(--muted);padding:0 12px;font-size:13px}.collaboration-tabs button:after{content:"";position:absolute;right:10px;bottom:-1px;left:10px;height:2px;border-radius:2px 2px 0 0;background:transparent}.collaboration-tabs button:hover,.collaboration-tabs button:focus-visible,.collaboration-tabs button.active{outline:0;color:var(--text)}.collaboration-tabs button.active:after{background:var(--cyan)}
@@ -0,0 +1 @@
1
+ import{j as a}from"./index-5-B6FIuE.js";import{aG as n}from"./App-BF9L0JUv.js";function s({onSelect:o,view:t}){return a.jsxs("nav",{className:"collaboration-tabs","aria-label":"Collaboration",children:[a.jsx("button",{"aria-current":t==="team"?"page":void 0,className:t==="team"?"active":"",onClick:()=>o("team"),type:"button",children:a.jsx("span",{children:"Team chat"})}),a.jsxs("button",{"aria-current":t==="community"?"page":void 0,className:t==="community"?"active":"",onClick:()=>o("community"),type:"button",children:[a.jsx(n,{size:15}),a.jsx("span",{children:"Communities"})]})]})}export{s as CollaborationTabs};
@@ -0,0 +1 @@
1
+ import{r as j,j as e}from"./index-5-B6FIuE.js";import{ae as N,af as b,ag as f,e as k,F as C,ah as v,ai as P,aj as M,ak as w,al as L}from"./App-BF9L0JUv.js";function y({open:s,query:r,projects:n,sessions:o,onQueryChange:t,onClose:d,onNewChat:x,onOpenProject:u,onOpenSession:m}){const c=r.trim().toLowerCase(),l=j.useMemo(()=>S(o,c,10),[c,o]),i=j.useMemo(()=>z(n,c,8),[c,n]);if(!s)return null;const g=()=>{const a=i[0];if(a){u(a);return}const p=l[0];p&&m(p)};return e.jsx("div",{className:"command-overlay",role:"presentation",onMouseDown:d,children:e.jsxs("section",{className:"command-menu",role:"dialog","aria-modal":"true","aria-label":"Search chats and projects",onMouseDown:a=>a.stopPropagation(),children:[e.jsxs("div",{className:"command-input-row",children:[e.jsx(N,{size:17}),e.jsx("input",{autoFocus:!0,value:r,onChange:a=>t(a.target.value),onKeyDown:a=>{a.key==="Enter"&&(a.preventDefault(),g()),a.key==="Escape"&&(a.preventDefault(),d())},placeholder:"Search chats and projects"}),e.jsx("kbd",{children:"Esc"})]}),e.jsxs("div",{className:"command-results",children:[e.jsxs("button",{className:"command-result command-create",onClick:x,children:[e.jsx(b,{size:15}),e.jsx("span",{children:"New local task"}),e.jsx("small",{children:"General"})]}),e.jsxs(h,{label:"Projects",children:[i.map(a=>e.jsxs("button",{className:"command-result",onClick:()=>u(a),children:[f(a)?e.jsx(k,{size:15}):e.jsx(C,{size:15}),e.jsx("span",{children:a.project.name}),e.jsx("small",{children:D(a)})]},a.project.id)),i.length===0&&e.jsx("div",{className:"command-empty",children:"No projects found"})]}),e.jsxs(h,{label:"Chats",children:[l.map(a=>e.jsxs("button",{className:"command-result",onClick:()=>m(a),children:[a.pinned?e.jsx(v,{size:15}):a.savedForLater?e.jsx(P,{size:15}):e.jsx(M,{size:15}),e.jsx("span",{children:a.title}),e.jsx("small",{children:a.appName??w(a.updatedAt)})]},a.id)),l.length===0&&e.jsx("div",{className:"command-empty",children:"No chats found"})]})]})]})})}function S(s,r,n){const o=[];for(const t of s)if((!r||`${t.title} ${t.appName??""}`.toLowerCase().includes(r))&&(o.push(t),o.length>=n))break;return o}function z(s,r,n){const o=[];for(const t of s)if((!r||$(t).toLowerCase().includes(r))&&(o.push(t),o.length>=n))break;return o}function $(s){return L(s)?`${s.project.name} ${s.project.path} ${s.project.workspacePath}`:`${s.project.name} ${s.project.sourceLabel??""} ${s.project.organizationName??""}`}function D(s){return f(s)?s.project.organizationName??"Cloud Project":s.project.linkedOpenPondApp?"OpenPond project":s.project.source==="git"?"Local Git":"Local folder"}function h({label:s,children:r}){return e.jsxs("div",{className:"command-group",children:[e.jsx("div",{className:"command-group-label",children:s}),r]})}export{y as CommandMenu};
@@ -0,0 +1 @@
1
+ import{r as l,j as e}from"./index-5-B6FIuE.js";import{S as Z,W as ee,B as se,a as ne}from"./wifi-off-BHxh2UbA.js";import{R as O}from"./refresh-cw-Csoy1ev1.js";import{X as H,af as te,am as M,cg as F}from"./App-BF9L0JUv.js";import{j as ie,k as ae,P as le,l as oe,r as re,m as ce,R as de}from"./MainPane-StAOFINE.js";import{M as J}from"./MarkdownText-B8D_ftSJ.js";import{T as me}from"./chat-file-links-CgFHK89C.js";import"./cloud-upload-DOwvN4hp.js";import"./arrow-up-right-BRZWXpqJ.js";import"./square-ju7fWa0W.js";import"./desktop-files-BQj1J-ob.js";const ue=2e4,R=10,he=12*1024*1024,ye=new Set(["image/png","image/jpeg","image/webp","image/gif"]);function ge(s){const[n,m]=l.useState(""),[a,y]=l.useState(0),[c,u]=l.useState([]),[f,i]=l.useState(null),[b,h]=l.useState(!1),[p,C]=l.useState([]),[N,v]=l.useState(0),[o,I]=l.useState(null),k=l.useRef(null),E=l.useRef(null),D=l.useRef(c);D.current=c;const g=l.useMemo(()=>xe(n,a),[n,a]),S=g?`${g.start}:${g.end}:${g.query}`:null,T=g?.query??null,w=l.useMemo(()=>{if(!g)return[];const t=new Map;for(const d of[...s.members,...p])t.set(d.userId,d);const r=g.query.toLowerCase();return[...t.values()].filter(d=>`${d.handle??""} ${d.name??""}`.toLowerCase().includes(r)).slice(0,8)},[g,s.members,p]),B=!!(g&&S!==o&&w.length>0),L=!!(s.disabled||s.busy||b),U=!L&&(!!n.trim()||c.length>0);l.useEffect(()=>{if(T==null){C([]);return}let t=!0;const r=window.setTimeout(()=>{s.onSearchMembers(T).then(d=>{t&&C(d)},()=>{t&&C([])})},150);return()=>{t=!1,window.clearTimeout(r)}},[T,s.onSearchMembers]),l.useEffect(()=>{v(0)},[S]),l.useEffect(()=>()=>K(D.current),[]);async function $(t){if(t?.preventDefault(),!!U){i(null),h(!0);try{const r=await Promise.all(c.map(re));if(!await s.onSend({body:n,mentionUserIds:fe(n,s.members),attachments:r,replyToMessageId:s.replyTo?.id??null}))return;K(c),m(""),y(0),u([]),s.onCancelReply()}catch(r){i(r instanceof Error?r.message:String(r))}finally{h(!1)}}}function V(t){if(B){if(t.key==="ArrowDown"){t.preventDefault(),v(r=>(r+1)%w.length);return}if(t.key==="ArrowUp"){t.preventDefault(),v(r=>(r-1+w.length)%w.length);return}if(t.key==="Enter"||t.key==="Tab"){t.preventDefault(),z(w[N]??w[0]);return}if(t.key==="Escape"){t.preventDefault(),I(S);return}}t.key!=="Enter"||t.shiftKey||t.nativeEvent.isComposing||(t.preventDefault(),$())}function G(t){if(!t)return;i(null);const r=Math.max(0,R-c.length);if(r===0){i(`You can attach up to ${R} images.`),A();return}const d=[...t],j=d.slice(0,r),P=j.find(x=>!ye.has(x.type)),q=j.find(x=>x.size<=0||x.size>he);if(P){i(`${P.name} is not a supported image type.`),A();return}if(q){i(`${q.name} must be smaller than 12 MB.`),A();return}const Q=j.map(x=>({id:ce(),file:x,name:x.name,mediaType:x.type,sizeBytes:x.size,kind:"image",previewUrl:URL.createObjectURL(x)}));u(x=>[...x,...Q]),d.length>r&&i(`Only ${R} images can be attached to one message.`),A()}function W(t){u(r=>{const d=r.find(j=>j.id===t);return d?.previewUrl&&URL.revokeObjectURL(d.previewUrl),r.filter(j=>j.id!==t)})}function A(){k.current&&(k.current.value="")}function z(t){if(!g)return;const r=`@${X(t)} `,d=`${n.slice(0,g.start)}${r}${n.slice(g.end)}`,j=g.start+r.length;m(d),y(j),I(null),window.requestAnimationFrame(()=>E.current?.focusAtPromptIndex(j))}return e.jsxs("form",{className:`composer dock community-composer${c.length>0?" has-attachments":""}${f?" has-attachment-error":""}`,onSubmit:$,children:[s.replyTo?e.jsxs("div",{className:"community-composer-reply",children:[e.jsxs("span",{children:[e.jsx("strong",{children:"Replying to"}),s.replyTo.body.slice(0,100)||"message"]}),e.jsx("button",{type:"button","aria-label":"Cancel reply",onClick:s.onCancelReply,children:e.jsx(H,{size:13})})]}):null,B?e.jsx("div",{className:"community-mention-menu",role:"listbox","aria-label":"Community members",children:w.map((t,r)=>e.jsxs("button",{type:"button",role:"option","aria-selected":r===N,onMouseDown:d=>d.preventDefault(),onClick:()=>z(t),children:[e.jsx("strong",{children:t.name??t.handle??"Community member"}),t.handle?e.jsxs("small",{children:["@",t.handle]}):null]},t.userId))}):null,e.jsxs("div",{className:"composer-input-shell",children:[c.length>0?e.jsx("div",{className:"composer-attachments","aria-label":"Selected attachments",children:c.map(t=>e.jsx(ie,{attachment:t,onRemove:()=>W(t.id)},t.id))}):null,f?e.jsx("div",{className:"composer-attachment-error",role:"status",children:f}):null,e.jsx("div",{className:"composer-textarea-frame",onClick:t=>{t.target===t.currentTarget&&E.current?.focusAtPromptIndex(a)},children:e.jsx(ae,{ref:E,disabled:L,onCursorChange:y,onKeyDown:V,onPromptChange:(t,r)=>{const d=t.slice(0,ue);m(d),y(Math.min(r,d.length))},onTokenPositionChange:()=>{},placeholder:s.disabled?"Accept the community rules to post":"Message community",prompt:n,token:null})}),e.jsxs("div",{className:"composer-primary-controls team-chat-composer-controls",children:[e.jsx("input",{ref:k,className:"composer-file-input",hidden:!0,type:"file",accept:"image/png,image/jpeg,image/webp,image/gif",multiple:!0,onChange:t=>G(t.currentTarget.files)}),e.jsx("button",{type:"button",className:"composer-icon","aria-label":"Attach images",disabled:L||c.length>=R,onClick:()=>k.current?.click(),children:e.jsx(le,{size:17})}),e.jsx("div",{className:"composer-spacer"}),e.jsx("button",{type:"submit",className:"send-button","aria-label":"Send message",disabled:!U,children:e.jsx(oe,{size:17})})]})]})]})}function xe(s,n=s.length){const m=Math.max(0,Math.min(n,s.length)),a=/(?:^|\s)@([\w-]*)$/.exec(s.slice(0,m));return!a||a.index==null?null:{start:a.index+a[0].indexOf("@"),end:m,query:a[1]??""}}function fe(s,n){const m=new Set([...s.matchAll(/(?:^|\s)@([\w-]+)/g)].map(a=>a[1]?.toLowerCase()));return n.filter(a=>m.has(X(a).toLowerCase())).map(a=>a.userId)}function X(s){return s.handle??s.name?.replace(/[^\w-]/g,"")??s.userId}function K(s){for(const n of s)n.previewUrl&&URL.revokeObjectURL(n.previewUrl)}function be(s){const[n,m]=l.useState(!1),[a,y]=l.useState(s.message.body),c=s.message.refs.find(i=>i.refType==="message_reply"),u=c?s.messagesById.get(c.refId)??null:null,f=u?.authorUserId?s.membersById.get(u.authorUserId)??null:null;return e.jsxs("article",{className:`community-message${s.own?" own":""}`,id:`community-message-${s.message.id}`,children:[e.jsx("div",{className:"community-avatar",children:je(s.author?.name??s.author?.handle??"?")}),e.jsxs("div",{className:"community-message-content",children:[e.jsxs("header",{children:[e.jsx("strong",{children:s.author?.name??s.author?.handle??"Community member"}),e.jsx("time",{dateTime:s.message.createdAt,children:pe(s.message.createdAt)}),s.message.editedAt?e.jsx("span",{children:"edited"}):null,s.message.deletedAt?null:e.jsxs("div",{className:"community-message-actions",children:[e.jsx("button",{type:"button","aria-label":"Reply",onClick:()=>s.onReply(s.message),children:e.jsx(de,{size:13})}),s.own?e.jsx("button",{type:"button","aria-label":"Edit",onClick:()=>m(!0),children:e.jsx(te,{size:13})}):null,s.own?e.jsx("button",{type:"button","aria-label":"Delete",onClick:()=>{s.onDelete(s.message.id)},children:e.jsx(me,{size:13})}):null]})]}),c?e.jsxs("button",{type:"button",className:"community-reply-quote",onClick:()=>document.getElementById(`community-message-${c.refId}`)?.scrollIntoView({behavior:"smooth",block:"center"}),children:[e.jsx("strong",{children:f?.name??"Community member"}),e.jsx("span",{children:u?.deletedAt?"Message deleted":u?.body??String(c.preview.body??"Earlier message")})]}):null,n?e.jsxs("form",{className:"community-message-edit",onSubmit:i=>{i.preventDefault(),s.onEdit(s.message.id,a).then(b=>{b&&m(!1)})},children:[e.jsx("textarea",{autoFocus:!0,value:a,onChange:i=>y(i.currentTarget.value)}),e.jsxs("div",{children:[e.jsx("button",{type:"button",onClick:()=>m(!1),children:"Cancel"}),e.jsx("button",{type:"submit",disabled:!a.trim(),children:"Save"})]})]}):s.message.deletedAt?e.jsx("div",{className:"community-message-deleted",children:"Message deleted"}):e.jsx(J,{content:s.message.body}),!s.message.deletedAt&&s.message.attachments.length>0?e.jsx("div",{className:"community-message-attachments",children:s.message.attachments.map(i=>s.attachmentsAccessible?e.jsxs("button",{type:"button",onClick:()=>{s.onDownloadAttachment(i.id)},children:[e.jsx("span",{children:i.name}),e.jsx("small",{children:_(i.sizeBytes)})]},i.id):e.jsxs("div",{className:"community-attachment-placeholder",children:[e.jsx("span",{children:i.name}),e.jsxs("small",{children:["Join to view · ",_(i.sizeBytes)]})]},i.id))}):null]})]})}function je(s){return s.split(/\s+/).slice(0,2).map(n=>n[0]?.toUpperCase()??"").join("")||"?"}function pe(s){const n=new Date(s);return Number.isNaN(n.getTime())?"":n.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}function _(s){return s<1024?`${s} B`:s<1024*1024?`${Math.round(s/1024)} KB`:`${(s/1024/1024).toFixed(1)} MB`}function ve(s){const[n,m]=l.useState(!1),a=l.useRef(null),y=l.useRef(s.onClose);l.useEffect(()=>m(!1),[s.rules.id]),l.useEffect(()=>{y.current=s.onClose},[s.onClose]),l.useEffect(()=>{const u=document.activeElement instanceof HTMLElement?document.activeElement:null,f=a.current,i=()=>[...f?.querySelectorAll('button:not([disabled]), input:not([disabled]), [href], [tabindex]:not([tabindex="-1"])')??[]];i()[0]?.focus();const b=h=>{if(h.key==="Escape"){h.preventDefault(),y.current();return}if(h.key!=="Tab")return;const p=i();if(p.length===0){h.preventDefault(),f?.focus();return}const C=p[0],N=p.at(-1);h.shiftKey&&document.activeElement===C?(h.preventDefault(),N.focus()):!h.shiftKey&&document.activeElement===N&&(h.preventDefault(),C.focus())};return document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b),u?.focus()}},[]);const c=s.mode!=="review";return e.jsx("div",{className:"community-dialog-backdrop",role:"presentation",onMouseDown:s.onClose,children:e.jsxs("section",{ref:a,className:"community-rules-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"community-rules-title",tabIndex:-1,onMouseDown:u=>u.stopPropagation(),children:[e.jsxs("header",{children:[e.jsxs("div",{children:[e.jsxs("small",{children:["Community rules · version ",s.rules.version]}),e.jsx("h2",{id:"community-rules-title",children:s.rules.title})]}),e.jsx("button",{type:"button","aria-label":"Close rules",onClick:s.onClose,children:e.jsx(H,{size:16})})]}),e.jsx("div",{className:"community-rules-body",children:e.jsx(J,{content:s.rules.bodyMarkdown})}),e.jsxs("footer",{children:[c?e.jsxs("label",{className:"community-rules-acceptance",children:[e.jsx("input",{type:"checkbox",checked:n,onChange:u=>m(u.currentTarget.checked)}),e.jsx("span",{children:"I have read and agree to follow these rules."})]}):e.jsx("span",{}),e.jsxs("div",{children:[e.jsx("button",{type:"button",className:"secondary",onClick:s.onClose,children:"Cancel"}),c?e.jsx("button",{type:"button",disabled:!n||s.busy,onClick:()=>{s.onAccept().then(u=>{u&&s.onClose()})},children:s.busy?"Saving…":s.mode==="join"?"Agree and join":"Accept updated rules"}):null]})]})]})})}function De({communities:s,chat:n,currentUserId:m}){M(s.discoveryError),M(s.previewError),M(s.membershipError?.message),M(n.channelsError,{prefix:"Channels"}),M(n.messagesError,{prefix:"Messages"}),M(n.actionError);const[a,y]=l.useState(null),[c,u]=l.useState(null),f=l.useRef(null),i=s.preview,b=i?.membership?.status==="active",h=!!i?.capabilities.requiresRulesAcceptance,p=l.useMemo(()=>new Map(n.members.map(o=>[o.userId,o])),[n.members]),C=l.useMemo(()=>new Map(n.messages.map(o=>[o.id,o])),[n.messages]),N=n.messages.at(-1)?.sequence??0;if(l.useEffect(()=>{const o=f.current;o&&(o.scrollTop=o.scrollHeight)},[n.selectedChannelId,N]),l.useEffect(()=>{u(null),h&&i?.currentRules&&y("reaccept")},[i?.currentRules,h]),!s.selectedSummary)return e.jsx("section",{className:"community-empty-page",children:e.jsxs("div",{className:"community-discovery-card",children:[e.jsx(F,{size:30}),e.jsx("h1",{children:"Discover communities"}),e.jsx("p",{children:s.discoveryLoading&&s.items.length===0?"Finding communities…":"Preview public conversations and join after accepting each community's rules."}),s.items.length>0?e.jsx("div",{className:"community-discovery-list",children:s.items.map(o=>e.jsxs("button",{type:"button",onClick:()=>s.selectCommunity(o.id),children:[e.jsx(Y,{name:o.displayName,imageUrl:o.imageUrl}),e.jsxs("span",{children:[e.jsx("strong",{children:o.displayName}),e.jsx("small",{children:o.description})]}),e.jsx("em",{children:o.membership?.status==="active"?"Joined":o.featuredAt?"Featured":`${o.memberCount.toLocaleString()} members`})]},o.id))}):s.discoveryLoading?null:e.jsx("div",{className:"community-state",children:"No public communities are available yet."}),e.jsxs("div",{className:"community-discovery-actions",children:[e.jsxs("button",{type:"button",onClick:()=>{s.refresh()},disabled:s.discoveryLoading,children:[e.jsx(O,{size:14})," Refresh"]}),s.nextCursor?e.jsx("button",{type:"button",className:"secondary",onClick:()=>{s.loadMore()},disabled:s.discoveryLoading,children:"Load more"}):null]})]})});if(!i&&s.previewLoading)return e.jsx("section",{className:"community-empty-page",children:e.jsxs("div",{className:"community-empty-card",children:[e.jsx("span",{className:"community-spinner"})," Loading community…"]})});if(!i)return e.jsx("section",{className:"community-empty-page",children:e.jsxs("div",{className:"community-empty-card",children:[e.jsx("h1",{children:s.selectedSummary.displayName}),e.jsx("div",{className:"community-state",children:"This community preview is unavailable."}),e.jsxs("button",{type:"button",onClick:()=>s.selectCommunity(s.selectedSummary.id),children:[e.jsx(O,{size:14})," Retry preview"]})]})});const v=i.currentRules;return e.jsxs("section",{className:"community-view",children:[e.jsxs("header",{className:"community-header",children:[e.jsxs("div",{className:"community-heading",children:[e.jsx(Y,{name:i.displayName,imageUrl:i.imageUrl}),e.jsxs("div",{children:[e.jsx("small",{children:i.displayName}),e.jsx("h1",{children:n.selectedChannel?`# ${n.selectedChannel.displayName}`:i.displayName}),e.jsx("p",{children:n.selectedChannel?.topic||i.description})]})]}),e.jsxs("div",{className:"community-header-actions",children:[e.jsxs("span",{className:"community-member-count",children:[e.jsx(F,{size:14})," ",i.memberCount.toLocaleString()]}),v?e.jsxs("button",{type:"button",className:"secondary",onClick:()=>y("review"),children:[e.jsx(Z,{size:14})," Rules"]}):null,b?e.jsx(Ce,{mode:i.membership?.notificationMode??"mentions",busy:s.membershipBusy,onMode:s.updateNotifications,onLeave:s.leave}):null]})]}),e.jsxs("div",{className:"community-chat-main conversation-surface-main",children:[e.jsxs("div",{className:"community-chat-notices",children:[b?h?e.jsxs("div",{className:"community-preview-banner warning",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"The rules have changed"}),e.jsx("span",{children:"Accept the current rules to continue reading live updates and posting."})]}),e.jsx("button",{type:"button",disabled:!v||s.membershipBusy,onClick:()=>y("reaccept"),children:"Review updated rules"})]}):null:e.jsxs("div",{className:"community-preview-banner",children:[e.jsxs("div",{children:[e.jsxs("strong",{children:["Previewing ",i.displayName]}),e.jsx("span",{children:"Read the public conversation, then accept the rules to join and post."})]}),e.jsx("button",{type:"button",disabled:!v||s.membershipBusy,onClick:()=>y("join"),children:"Join community"})]}),n.realtimeError&&b&&!h?e.jsxs("div",{className:"community-realtime-state",children:[e.jsx(ee,{size:14}),e.jsx("span",{children:"Live updates are reconnecting. Loaded messages are still available."})]}):null,n.lostMembership?e.jsx("div",{className:"community-state error",children:"Your membership changed. Refresh the community before continuing."}):null,n.channelsError?e.jsx("button",{type:"button",className:"community-state",onClick:()=>{n.loadChannels()},children:"Retry loading channels"}):null]}),e.jsxs("div",{className:"community-message-pane conversation-message-scroll",ref:f,role:"log","aria-live":"polite","aria-relevant":"additions text","aria-busy":n.messagesLoading,"aria-label":n.selectedChannel?`${i.displayName}, ${n.selectedChannel.displayName}`:i.displayName,tabIndex:0,children:[n.hasMoreBefore?e.jsx("button",{type:"button",className:"community-load-older",disabled:n.olderMessagesLoading,onClick:()=>{n.loadOlder()},children:n.olderMessagesLoading?"Loading…":"Load earlier messages"}):null,n.messagesLoading&&n.messages.length===0?e.jsx("div",{className:"community-message-state",children:"Loading messages…"}):null,n.messagesError?e.jsxs("div",{className:"community-message-state",children:["Messages are unavailable. ",e.jsx("button",{type:"button",onClick:()=>{n.loadMessages()},children:"Retry"})]}):null,!n.messagesLoading&&!n.messagesError&&n.messages.length===0?e.jsx("div",{className:"community-message-state",children:"No messages in this channel yet."}):null,n.messages.map(o=>e.jsx(be,{message:o,author:o.authorUserId?p.get(o.authorUserId)??null:null,own:o.authorUserId===m,attachmentsAccessible:!n.previewMode,membersById:p,messagesById:C,onReply:u,onEdit:n.editMessage,onDelete:n.deleteMessage,onDownloadAttachment:n.downloadAttachment},o.id))]}),b?e.jsxs("div",{className:"community-composer-wrap conversation-composer-shell",children:[n.failedSend?e.jsxs("div",{className:"community-failed-send",children:[e.jsx("span",{children:"Message not sent."}),e.jsx("button",{type:"button",disabled:n.sending,onClick:()=>{n.retrySend()},children:"Retry"}),e.jsx("button",{type:"button",onClick:n.dismissFailedSend,children:"Dismiss"})]}):null,e.jsx(ge,{members:n.members,replyTo:c,busy:n.sending,disabled:h||n.lostMembership||!n.selectedChannel||n.selectedChannel.postingPolicy==="admins"&&i.membership?.role==="member",onCancelReply:()=>u(null),onSearchMembers:n.searchMembers,onSend:n.sendMessage})]}):null]}),a&&v?e.jsx(ve,{rules:v,mode:a,busy:s.membershipBusy,onAccept:a==="join"?s.join:s.acceptRules,onClose:()=>y(null)}):null]})}function Ce(s){const[n,m]=l.useState(!1);return e.jsxs("div",{className:"community-membership-menu",children:[e.jsxs("button",{type:"button",className:"secondary","aria-expanded":n,onClick:()=>m(a=>!a),children:[s.mode==="none"?e.jsx(se,{size:14}):e.jsx(ne,{size:14})," Joined"]}),n?e.jsxs("div",{className:"community-membership-popover",children:[e.jsx("strong",{children:"Notifications"}),["mentions","all","none"].map(a=>e.jsxs("label",{children:[e.jsx("input",{type:"radio",name:"community-notifications",checked:s.mode===a,disabled:s.busy,onChange:()=>{s.onMode(a)}})," ",a==="mentions"?"Mentions":a==="all"?"All messages":"Nothing"]},a)),e.jsx("button",{type:"button",className:"danger",disabled:s.busy,onClick:()=>{window.confirm("Leave this community? You can join again later by accepting the current rules.")&&s.onLeave().then(a=>{a&&m(!1)})},children:"Leave community"})]}):null]})}function Y({name:s,imageUrl:n}){return n?e.jsx("img",{className:"community-icon",src:n,alt:""}):e.jsx("span",{className:"community-icon fallback",children:s.slice(0,2).toUpperCase()})}export{De as CommunityView};
@@ -0,0 +1 @@
1
+ import{r as v,j as e}from"./index-5-B6FIuE.js";import{ay as _,ch as A,aH as P,i as x,X as j,d as y,b3 as w}from"./App-BF9L0JUv.js";import{a as q}from"./chat-file-links-CgFHK89C.js";import{P as C}from"./play-BpCc5ZbR.js";import{R as k}from"./refresh-cw-Csoy1ev1.js";function U({runtime:s}){const[a,i]=v.useState(!1),[o,l]=v.useState(""),[n,u]=v.useState(null),t=s.run,h=t.plan,g=N(t),c={run:t},f=E(t.state),r=S(t),R=r?.git?.pullRequest??t.releaseOutcome.pullRequest;v.useEffect(()=>{i(!1),l(""),u(null)},[t.id,t.revision,t.state,h?.id,g?.id]);async function d(p,b){if(!(!b||n)){u(p);try{await b()}finally{u(null)}}}return e.jsxs("section",{className:`composer-create-strip ${f}`,"aria-label":"Create or improve status",children:[e.jsxs("div",{className:"composer-create-strip-heading",children:[f==="danger"?e.jsx(_,{size:15}):t.state==="awaiting_questions"?e.jsx(A,{size:15}):I(t.state)?e.jsx(P,{className:"composer-create-spin",size:15}):e.jsx(x,{size:15}),e.jsx("span",{children:z(t)}),e.jsx("small",{children:t.target.kind})]}),t.state==="awaiting_questions"&&g?e.jsxs("div",{className:"composer-create-question",children:[e.jsx("p",{children:g.prompt}),e.jsx("div",{className:"composer-create-options",children:g.options.map(p=>e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d(`answer:${p.id}`,()=>s.onAnswerQuestion?s.onAnswerQuestion(c,g.id,p.value):Promise.resolve())},children:[e.jsx("span",{children:n===`answer:${p.id}`?"Saving":p.label}),p.description?e.jsx("small",{children:p.description}):null]},p.id))})]}):t.state==="awaiting_plan_approval"&&h?e.jsxs("div",{className:"composer-create-plan-summary",children:[e.jsx("p",{children:h.summary}),e.jsx(m,{run:t}),a?e.jsxs("div",{className:"composer-create-revision",children:[e.jsx("textarea",{rows:2,value:o,placeholder:"Describe the plan revision",onChange:p=>l(p.currentTarget.value)}),e.jsxs("div",{children:[e.jsxs("button",{type:"button",disabled:!o.trim()||!!n,onClick:()=>{d("revise",()=>s.onRevise?s.onRevise(c,o):Promise.resolve())},children:[e.jsx(x,{size:13}),e.jsx("span",{children:n==="revise"?"Saving":"Save revision"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>i(!1),children:[e.jsx(j,{size:13}),e.jsx("span",{children:"Close"})]})]})]}):e.jsxs("div",{className:"composer-create-actions",children:[e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("approve",()=>s.onApprove?s.onApprove(c):Promise.resolve())},children:[e.jsx(y,{size:13}),e.jsx("span",{children:n==="approve"?"Confirming":"Confirm plan"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>i(!0),children:[e.jsx(x,{size:13}),e.jsx("span",{children:"Edit plan"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("cancel",()=>s.onCancel?s.onCancel(c):Promise.resolve())},children:[e.jsx(j,{size:13}),e.jsx("span",{children:n==="cancel"?"Cancelling":"Cancel"})]})]})]}):t.state==="paused"?e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:"This work is paused. Resume it when you are ready to continue."}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("resume",()=>s.onResume?s.onResume(c):Promise.resolve())},children:[e.jsx(C,{size:13}),e.jsx("span",{children:n==="resume"?"Resuming":"Resume"})]})]}):t.state==="awaiting_promotion"&&r?e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:T(t,r.id)}),e.jsxs("div",{className:"composer-create-actions",children:[e.jsxs("button",{type:"button",disabled:!!n||!$(t,r.id),onClick:()=>{d("apply-candidate",()=>s.onApplyCandidate?s.onApplyCandidate(c,r.id):Promise.resolve())},children:[e.jsx(y,{size:13}),e.jsx("span",{children:n==="apply-candidate"?"Applying":"Apply update"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("reject-candidate",()=>s.onRejectCandidate?s.onRejectCandidate(c,r.id):Promise.resolve())},children:[e.jsx(j,{size:13}),e.jsx("span",{children:n==="reject-candidate"?"Keeping current version":"Keep current version"})]})]})]}):t.state==="pull_request_open"&&r&&R?e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:t.target.kind==="agent"?"An Agent update review is open. Finish or close it, then refresh its status.":"An external review is open. Merge or close it, then refresh its status."}),e.jsxs("div",{className:"composer-create-actions",children:[e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("reconcile-pr",()=>s.onReconcilePullRequest?s.onReconcilePullRequest(c,r.id):Promise.resolve())},children:[e.jsx(k,{size:13}),e.jsx("span",{children:n==="reconcile-pr"?"Checking":"Refresh review"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("reject-candidate",()=>s.onRejectCandidate?s.onRejectCandidate(c,r.id):Promise.resolve())},children:[e.jsx(j,{size:13}),e.jsx("span",{children:n==="reject-candidate"?"Closing":"Close review"})]})]})]}):t.state==="blocked"||t.state==="failed"||t.state==="cancelled"?e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:t.blockedReason??"This work stopped before it was ready."}),t.state==="blocked"&&r?.git?.worktreePath&&["draft","checking"].includes(r.status)?e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("resume",()=>s.onResume?s.onResume(c):Promise.resolve())},children:[e.jsx(C,{size:13}),e.jsx("span",{children:n==="resume"?"Continuing":"Continue update"})]}):t.state==="blocked"&&r?.git?.pullRequest?.state==="merged"?e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("reconcile-pr",()=>s.onReconcilePullRequest?s.onReconcilePullRequest(c,r.id):Promise.resolve())},children:[e.jsx(k,{size:13}),e.jsx("span",{children:n==="reconcile-pr"?"Checking":"Re-run verification"})]}):null]}):t.state==="released"||t.state==="rejected"||t.state==="ready_local"||t.state==="ready"||t.state==="published_hosted"?e.jsxs("div",{className:"composer-create-status-body composer-create-status-body-reveals",children:[e.jsx("p",{children:t.state==="released"?"The Agent update is saved and its Evals passed.":t.state==="rejected"?"The Agent update was not applied.":t.state==="published_hosted"?"Published to the hosted Profile.":"The Agent and its actions are ready to use."}),e.jsx("div",{className:"composer-create-hover-details",children:e.jsx(m,{run:t})})]}):e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:B(t)}),e.jsx(m,{run:t}),t.executionPolicy.pauseAllowed&&s.onPause?e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("pause",()=>s.onPause?.(c)??Promise.resolve())},children:[e.jsx(q,{size:13}),e.jsx("span",{children:n==="pause"?"Pausing":"Pause"})]}):null]})]})}function N(s){return s.questions.find(a=>a.status==="pending"&&a.required)??s.questions.find(a=>a.status==="pending")??null}function m({run:s}){const a=s.plan,i=s.target.kind==="agent",o=i?null:s.sourceRefs[0]??a?.sourcePlan[0]?.path??null,l=s.checkRefs.length||a?.checks.length||0,n=i?0:a?.requirements.length??0,u=i?[]:[...s.sourceRefs,...s.checkRefs].slice(0,4),t=w(a?.metadata);return!o&&l===0&&n===0&&u.length===0&&!t?null:e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"composer-create-facts",children:[t?e.jsx("span",{title:t.detail,children:t.label}):null,o?e.jsx("span",{title:o,children:o}):null,l?e.jsx("span",{children:i?`${l} Evals`:s.checkRefs.length?`${s.checkRefs.length} check refs`:`${l} checks`}):null,n?e.jsxs("span",{children:[n," setup rows"]}):null]}),u.length?e.jsx("ul",{className:"composer-create-refs","aria-label":"Source and check refs",children:u.map(h=>e.jsx("li",{children:e.jsx("code",{title:h,children:h})},h))}):null]})}function z(s){const a=s.target.kind==="agent";return s.state==="awaiting_questions"?"Question":s.state==="awaiting_plan_approval"?"Plan":s.state==="applying_source"?a?"Saving Agent":"Applying source":s.state==="running_checks"?"Running Evals":s.state==="evaluating"?a?"Checking Agent":"Evaluating":s.state==="awaiting_promotion"?a?"Update ready":"Candidate ready":s.state==="opening_pull_request"?"Opening review":s.state==="pull_request_open"?"Review open":s.state==="reconciling_release"?a?"Applying update":"Merging change":s.state==="released"?a?"Agent updated":"Released":s.state==="rejected"?a?"Current Agent kept":"Rejected":s.state==="paused"?"Paused":s.state==="ready"||s.state==="ready_local"?"Ready":s.state==="published_hosted"?"Published":s.state==="cancelled"?"Cancelled":s.state==="blocked"?"Blocked":s.state==="failed"?"Failed":s.operation==="improve"?"Improve":"Create"}function B(s){const a=s.state,i=s.target.kind==="agent";return a==="applying_source"?i?"Saving the approved Agent plan.":"Applying the approved source changes.":a==="running_checks"?i?"Running Evals against the Agent.":"Running checks against the candidate.":a==="evaluating"?i?"Checking the Agent's behavior.":"Evaluating the candidate against its Evals.":a==="opening_pull_request"?i?"Preparing the Agent update review.":"Opening the candidate review.":a==="reconciling_release"?"Applying the change and verifying the active Profile.":a==="pushing_hosted"?"Pushing the Profile source.":a==="running_hosted_checks"?i?"Running hosted Evals.":"Running hosted checks.":"Preparing the work."}function E(s){return["released","ready","ready_local","published_hosted"].includes(s)?"success":["rejected","blocked","failed","cancelled"].includes(s)?"danger":["awaiting_questions","awaiting_plan_approval","awaiting_promotion","pull_request_open","paused"].includes(s)?"warning":"info"}function I(s){return["planning","applying_source","running_checks","evaluating","opening_pull_request","reconciling_release","pushing_hosted","running_hosted_checks"].includes(s)}function S(s){return[...s.candidates].reverse().find(a=>a.target.kind==="agent")??null}function $(s,a){const i=s.evaluationReceipts.filter(o=>o.candidateId===a&&o.subject==="candidate");return i.length>0&&i.every(o=>o.status==="passed"&&o.publishGate!=="failed")}function T(s,a){const i=s.evaluationReceipts.find(n=>n.candidateId===a&&n.subject==="active"),o=s.evaluationReceipts.find(n=>n.candidateId===a&&n.subject==="candidate"),l=n=>n?.summaryCounts?`${n.summaryCounts.passed}/${n.summaryCounts.total}`:n?.status??"not run";return s.target.kind==="agent"?`Current Agent: ${l(i)} Evals passed. Updated Agent: ${l(o)} Evals passed.`:`Base Evals: ${l(i)} passed. Candidate Evals: ${l(o)} passed.`}export{U as ComposerCreateImproveStrip};
@@ -0,0 +1 @@
1
+ import{r as x,j as t}from"./index-5-B6FIuE.js";import{P as k}from"./play-BpCc5ZbR.js";import{r as te}from"./index-CuoGlf-W.js";import{A as ae}from"./AppDialog-DX-xs3KA.js";import{A as ne,X as se,bs as I,bt as ie,bu as re,bv as oe,bw as de,bx as le,by as ce}from"./App-BF9L0JUv.js";import{b as ue}from"./chat-file-links-CgFHK89C.js";function pe({badge:e,onPlay:a,titleElement:i="h3",video:n}){const[d,s]=x.useState(!1),r=x.useRef(null),u=i,l=`${n.id}-title`;function p(){if(a){a();return}te.flushSync(()=>s(!0));const c=r.current;c&&(c.load(),c.play().catch(()=>{}))}return t.jsxs(t.Fragment,{children:[t.jsxs("article",{className:"get-started-course-card","aria-labelledby":l,children:[t.jsx("button",{"aria-haspopup":"dialog","aria-label":`Play ${n.title}`,className:"get-started-course-open",onClick:p,type:"button"}),t.jsxs("div",{className:"get-started-course-media",children:[t.jsx("img",{alt:"",className:"get-started-course-poster",decoding:"async",src:n.posterUrl}),t.jsx("span",{className:"get-started-course-play-icon","aria-hidden":"true",children:t.jsx(k,{fill:"currentColor",size:19})}),e?t.jsx("span",{className:"get-started-course-badge","aria-hidden":"true",children:e}):null]}),t.jsxs("div",{className:"get-started-course-copy",children:[t.jsx(u,{id:l,children:n.title}),t.jsxs("div",{className:"get-started-course-meta","aria-label":`${n.title} details`,children:[t.jsx("span",{children:n.eyebrow}),t.jsx("span",{"aria-hidden":"true",children:"·"}),t.jsx("span",{children:n.duration})]}),n.description?t.jsx("p",{children:n.description}):null]})]}),d&&!a?t.jsx(L,{onClose:()=>s(!1),video:n,videoRef:r}):null]})}function L({autoAdvance:e=!1,contained:a=!1,inertExclusionSelector:i,navigation:n,onEnded:d,onClose:s,onPause:r,onTimeUpdate:u,video:l,videoRef:p}){return t.jsxs(ae,{ariaLabel:`${l.title} player`,backdropClassName:"get-started-course-player-backdrop",className:"get-started-course-player",contained:a,inertExclusionSelector:i,onClose:s,children:[t.jsxs("header",{className:"get-started-course-player-header",children:[t.jsxs("div",{className:"get-started-course-player-copy",children:[t.jsx("strong",{children:l.title}),t.jsxs("span",{children:[n?`Lesson ${n.currentIndex+1} of ${n.total}`:l.eyebrow," · ",l.duration]})]}),t.jsxs("div",{className:"get-started-course-player-actions",children:[n?t.jsxs(t.Fragment,{children:[t.jsx("button",{"aria-label":"Previous lesson",disabled:!n.onPrevious,onClick:n.onPrevious,title:"Previous lesson",type:"button",children:t.jsx(ne,{size:17})}),t.jsx("button",{"aria-label":"Next lesson",disabled:!n.onNext,onClick:n.onNext,title:"Next lesson",type:"button",children:t.jsx(ue,{size:17})})]}):null,t.jsx("button",{"aria-label":"Close video player","data-autofocus":!0,onClick:s,title:"Close",type:"button",children:t.jsx(se,{size:18})})]})]}),t.jsx("div",{className:"get-started-course-player-body",children:t.jsx("div",{className:"get-started-course-player-media",children:t.jsx("div",{className:"get-started-course-player-stage",children:t.jsx("video",{"aria-label":`${l.title} video`,className:"get-started-course-player-video",controls:!0,"data-auto-advance":e?"true":void 0,onEnded:c=>d?.(c.currentTarget),onPause:c=>r?.(c.currentTarget),onTimeUpdate:c=>u?.(c.currentTarget),playsInline:!0,poster:l.posterUrl,preload:"metadata",ref:p,src:l.videoUrl,children:l.captionsUrl?t.jsx("track",{kind:"captions",label:"English",src:l.captionsUrl,srcLang:"en"}):null},l.id)})})})]})}const fe=[{id:"post-training-from-first-principles",fullVideoId:"post-training-full-course",status:"draft",title:"Post-training from first principles",videoIds:["post-training-01-how-post-training-works","post-training-02-definitions","post-training-03-on-policy-off-policy","post-training-04-rewards-credit-assignment","post-training-05-verifiable-rewards-rlvr","post-training-06-ppo-grpo","post-training-07-distillation","post-training-08-opsd-sdft-sdpo","post-training-09-credible-experiments","post-training-10-technical-appendix"]},{id:"how-to-make-an-agent",status:"published",title:"Agents",playAllVideoId:"make-agent-tutorial",videoIds:["make-agent-tutorial-create","make-agent-tutorial-use","make-agent-tutorial-improve"]}],ge=[{id:"post-training-01-how-post-training-works",localPath:"courses/post-training/01-how-post-training-works.mp4",objectKey:"media/videos/aeb54dfb42eb940672df6e41bae075ffa5e45e1609e173a91e485c808b61fd4a.mp4",sha256:"aeb54dfb42eb940672df6e41bae075ffa5e45e1609e173a91e485c808b61fd4a",sizeBytes:2114638,durationSeconds:64.967},{id:"post-training-02-definitions",localPath:"courses/post-training/02-definitions.mp4",objectKey:"media/videos/c57d021989cdf058c683b9d017eb91bd23075e6bd00d0cc055e1285b3ea119fc.mp4",sha256:"c57d021989cdf058c683b9d017eb91bd23075e6bd00d0cc055e1285b3ea119fc",sizeBytes:11956956,durationSeconds:374.367},{id:"post-training-03-on-policy-off-policy",localPath:"courses/post-training/03-on-policy-off-policy.mp4",objectKey:"media/videos/a807bd7d704f8603addc875623a3cfcc938e60e0170d555d47569394a1c31762.mp4",sha256:"a807bd7d704f8603addc875623a3cfcc938e60e0170d555d47569394a1c31762",sizeBytes:2291518,durationSeconds:66.367},{id:"post-training-04-rewards-credit-assignment",localPath:"courses/post-training/04-rewards-credit-assignment.mp4",objectKey:"media/videos/685f7ecff7fcea262dd2cf60568079633816e9116efd80c069d0e20a4959a87f.mp4",sha256:"685f7ecff7fcea262dd2cf60568079633816e9116efd80c069d0e20a4959a87f",sizeBytes:5677418,durationSeconds:179.834},{id:"post-training-05-verifiable-rewards-rlvr",localPath:"courses/post-training/05-verifiable-rewards-rlvr.mp4",objectKey:"media/videos/0633584b2036843edd1ff9c63f0858db4272ddf55b10b160ec2ef6f7650c7d3a.mp4",sha256:"0633584b2036843edd1ff9c63f0858db4272ddf55b10b160ec2ef6f7650c7d3a",sizeBytes:5666892,durationSeconds:172.534},{id:"post-training-06-ppo-grpo",localPath:"courses/post-training/06-ppo-grpo.mp4",objectKey:"media/videos/66760fec7508c413844adb06c3f3920c5f7e3a874b18dc244ba090c55f452ff3.mp4",sha256:"66760fec7508c413844adb06c3f3920c5f7e3a874b18dc244ba090c55f452ff3",sizeBytes:5519257,durationSeconds:173.6},{id:"post-training-07-distillation",localPath:"courses/post-training/07-distillation.mp4",objectKey:"media/videos/3590f94325c1986f2025b42d182f04957e9eff6d5c06b1effc28dc369651c466.mp4",sha256:"3590f94325c1986f2025b42d182f04957e9eff6d5c06b1effc28dc369651c466",sizeBytes:4687640,durationSeconds:161.667},{id:"post-training-08-opsd-sdft-sdpo",localPath:"courses/post-training/08-opsd-sdft-sdpo.mp4",objectKey:"media/videos/3c45d8c1df0a24132ec425762dc6a4274b1e5cac6dfd220a2994f8754f431031.mp4",sha256:"3c45d8c1df0a24132ec425762dc6a4274b1e5cac6dfd220a2994f8754f431031",sizeBytes:5439835,durationSeconds:163.134},{id:"post-training-09-credible-experiments",localPath:"courses/post-training/09-credible-experiments.mp4",objectKey:"media/videos/fc701a8ba4b42de53bcaec3dcf191e6ec66f1dc0c48480f0aff01c3849aff023.mp4",sha256:"fc701a8ba4b42de53bcaec3dcf191e6ec66f1dc0c48480f0aff01c3849aff023",sizeBytes:6909405,durationSeconds:211.934},{id:"post-training-10-technical-appendix",localPath:"courses/post-training/10-technical-appendix.mp4",objectKey:"media/videos/17e6b5ef161fcdc97678e5b63650bffdb4b4b0d510ba75725a2af8a5db0d7e21.mp4",sha256:"17e6b5ef161fcdc97678e5b63650bffdb4b4b0d510ba75725a2af8a5db0d7e21",sizeBytes:5481950,durationSeconds:191.767},{id:"post-training-full-course",localPath:"courses/post-training/full-course.mp4",objectKey:"media/videos/d3df6a3b2ffe6c696b9dc0774ceaec19a2b8a92b170476cacb9df8dbdb2a526f.mp4",sha256:"d3df6a3b2ffe6c696b9dc0774ceaec19a2b8a92b170476cacb9df8dbdb2a526f",sizeBytes:55740426,durationSeconds:1760.192},{id:"openpond-agent-overview",localPath:"tutorials/what-is-an-openpond-agent.mp4",objectKey:"media/videos/421160f56d82abd6515df0d5ccf144591749e0ab1d58d630805c4807913812c7.mp4",sha256:"421160f56d82abd6515df0d5ccf144591749e0ab1d58d630805c4807913812c7",sizeBytes:5259848,durationSeconds:77.467},{id:"make-agent-tutorial",localPath:"tutorials/how-to-make-an-agent.mp4",objectKey:"media/videos/252d2f27076c904d85c9854c2f4c494fe9e92b3cea7d2c58ffbaa0323c17f255.mp4",sha256:"252d2f27076c904d85c9854c2f4c494fe9e92b3cea7d2c58ffbaa0323c17f255",sizeBytes:17339101,durationSeconds:273.067},{id:"make-agent-tutorial-create",localPath:"tutorials/how-to-make-an-agent-create.mp4",objectKey:"media/videos/322c999225d4759c34334eee22edee25a737fb06c5c6d66ee1f84485bb586c44.mp4",sha256:"322c999225d4759c34334eee22edee25a737fb06c5c6d66ee1f84485bb586c44",sizeBytes:6050301,durationSeconds:100.4},{id:"make-agent-tutorial-use",localPath:"tutorials/how-to-make-an-agent-use.mp4",objectKey:"media/videos/6e28bb710f90de8968fa18f996973b869e6748797739dd93cce49d8fbba564c1.mp4",sha256:"6e28bb710f90de8968fa18f996973b869e6748797739dd93cce49d8fbba564c1",sizeBytes:5084394,durationSeconds:75.1},{id:"make-agent-tutorial-improve",localPath:"tutorials/how-to-make-an-agent-improve.mp4",objectKey:"media/videos/fe8b62bf6ed5f5b933b0023dfdd9a06e69b5b352d4c702b671ec7677b395d58d.mp4",sha256:"fe8b62bf6ed5f5b933b0023dfdd9a06e69b5b352d4c702b671ec7677b395d58d",sizeBytes:6255324,durationSeconds:108.634}],me={playlists:fe,videos:ge},be="https://media.openpond.ai",K=me,he=new Map(K.playlists.map(e=>[e.id,e])),ye=new Map(K.videos.map(e=>[e.id,e]));function $(e){const a=he.get(e);if(!a)throw new Error(`Public video manifest is missing playlist ${e}`);return a}function Te(e,a){return a?`${be}/${e.objectKey}`:I(e.localPath)}function E(e){const a=ye.get(e);if(!a)throw new Error(`Public video manifest is missing ${e}`);return Te(a,!0)}const xe=E("make-agent-tutorial"),Ae=E("openpond-agent-overview");function ve(e){return E(`make-agent-tutorial-${e}`)}const Pe={title:"How to make an agent"},je=[{id:"create",label:"Create",title:"Create an Agent",subtitle:"Turn a plain-language purpose into a working Account Health Agent.",outroTitle:"Account Health Agent created",outroSubtitle:"The agent is ready to use. · AI-generated narration",cardDuration:1.5},{id:"use",label:"Use",title:"Use the Agent",subtitle:"Chat with the Account Health Agent and run its actions with approval.",outroTitle:"First agent run complete",outroSubtitle:"The result and supporting evidence are ready to review. · AI-generated narration",cardDuration:1.5},{id:"improve",label:"Improve",title:"Improve the Agent",subtitle:"Use real run evidence and Evals to make the Account Health Agent better.",outroTitle:"Account Health Agent improved",outroSubtitle:"The updated agent passed its Evals. · AI-generated narration",cardDuration:1.5}],z={tutorial:Pe,chapters:je},Ne=$("how-to-make-an-agent"),B=z.chapters,Ie={create:"1:24",use:"1:05",improve:"1:10"},S=Ne.title,Ee=z.tutorial.title,F="4:33",H={captionsUrl:re,chapterIds:B.map(e=>e.id),description:"Create, use, and improve an Account Health Agent in one continuous walkthrough.",duration:F,eyebrow:"Play all",id:"make-agent-tutorial",lessonNumber:null,posterUrl:ie,title:Ee,videoId:"play-all",videoUrl:xe},T=B.map((e,a)=>({captionsUrl:de(e.id),chapterIds:[e.id],description:e.subtitle,duration:Ie[e.id],eyebrow:`Lesson ${a+1}`,id:`make-agent-tutorial-${e.id}`,lessonNumber:a+1,posterUrl:oe(e.id),title:e.title,videoId:e.id,videoUrl:ve(e.id)})),we=[H,...T];function W(e){return we.find(a=>a.videoId===e)??H}function Se(e){const a=T.findIndex(i=>i.videoId===e);return a<0?null:T[a+1]?.videoId??null}const Re=[2,1,0];function _e({activeVideoId:e="play-all",autoplay:a=!0,onClose:i,onOpen:n,onSelectVideo:d,open:s=!1,playRequestId:r=0}={}){const u=x.useRef(null),l=W(e);x.useEffect(()=>{if(!s)return;const c=u.current;c&&(c.load(),r>0&&c.play().catch(()=>{}))},[l.id,s,r]);function p(){if(!a||!d)return;const c=Se(e);c&&d(c)}return t.jsxs("section",{className:"get-started-series","aria-label":S,children:[t.jsxs("article",{className:"get-started-playlist-card","aria-labelledby":"make-agent-series-title",children:[t.jsx("button",{"aria-haspopup":"dialog","aria-label":`Open ${S} playlist`,className:"get-started-playlist-open",onClick:n,type:"button"}),t.jsxs("div",{className:"get-started-playlist-stack","aria-hidden":"true",children:[Re.map((c,f)=>{const m=T[c];return t.jsx("div",{className:`get-started-playlist-poster layer-${f+1}`,children:t.jsx("img",{alt:"",decoding:"async",src:m.posterUrl})},m.id)}),t.jsx("span",{className:"get-started-course-play-icon",children:t.jsx(k,{fill:"currentColor",size:19})}),t.jsxs("span",{className:"get-started-playlist-count",children:[T.length," lessons"]})]}),t.jsxs("div",{className:"get-started-playlist-copy",children:[t.jsx("h1",{id:"make-agent-series-title",children:S}),t.jsxs("div",{className:"get-started-course-meta",children:[t.jsx("span",{children:"Walkthrough playlist"}),t.jsx("span",{"aria-hidden":"true",children:"·"}),t.jsx("span",{children:F})]}),t.jsx("p",{children:"Create, use, and improve an Account Health Agent, or play the full walkthrough."})]})]}),s&&i&&d?t.jsx(Oe,{activeVideoId:e,autoplay:a,contained:!0,inertExclusionSelector:".get-started-learning-panel",onClose:i,onEnded:p,onSelectVideo:d,videoRef:u}):null]})}function Oe({activeVideoId:e="play-all",autoplay:a=!0,contained:i=!1,inertExclusionSelector:n,onClose:d,onEnded:s,onSelectVideo:r=()=>{},videoRef:u}){const l=W(e),p=T.findIndex(m=>m.videoId===e),c=p>=0?T[p+1]?.videoId:void 0,f=p>0?T[p-1]?.videoId:void 0;return t.jsx(L,{autoAdvance:a&&p>=0,contained:i,inertExclusionSelector:n,navigation:p>=0?{currentIndex:p,onNext:c?()=>r(c):void 0,onPrevious:f?()=>r(f):void 0,total:T.length}:void 0,onClose:d,onEnded:s?()=>s():void 0,video:l,videoRef:u})}const U=$("post-training-from-first-principles"),q=U.title,ke=U.status;function h(e,a,i,n,d,s){const r=`courses/post-training/${a}`,u=`post-training-${a}`;return{captionsUrl:I(`${r}.vtt`),description:s,duration:d,eyebrow:n,id:u,lessonNumber:e,posterUrl:I(`${r}-poster.webp`),slug:a,title:i,videoUrl:E(u)}}const A=[h(1,"01-how-post-training-works","How post-training works","Start here","1:05","The choose, judge, and update loop behind every method in this series."),h(2,"02-definitions","Definitions","Reference","6:14","Policy notation, softmax, rollouts, advantages, gradients, GRPO, and the acronyms used throughout the series."),h(3,"03-on-policy-off-policy","On-policy and off-policy data","Data source","1:06","Why learner rollouts and teacher or stored data support different updates."),h(4,"04-rewards-credit-assignment","Rewards and credit assignment","RL foundation","3:00","Follow a code-repair trajectory from actions and observations to advantage."),h(5,"05-verifiable-rewards-rlvr","Verifiable rewards","RLVR","2:53","See how tests create scalable rewards—and how a model can exploit the checker."),h(6,"06-ppo-grpo","PPO and GRPO","Policy updates","2:54","Compare PPO's learned critic with GRPO's sibling-response baseline."),h(7,"07-distillation","Distillation","Teacher targets","2:42","Transfer a teacher's token distribution instead of copying one final answer."),h(8,"08-opsd-sdft-sdpo","OPSD, SDFT, and SDPO","Teacher evidence","2:43","Compare trusted solutions, demonstrations, and failure feedback at one prefix."),h(9,"09-credible-experiments","Credible experiments","Research design","3:32","Build versioned datasets, fair baselines, and claims that survive scrutiny."),h(10,"10-technical-appendix","Technical appendix","Advanced details","3:12","Inspect GRPO normalization, compressed teacher logits, reported method results, and sample routing.")],Le="29 min",O=U.fullVideoId;if(!O)throw new Error("Post-training playlist is missing its full video");const Y={captionsUrl:I("courses/post-training/full-course.vtt"),description:"All ten lessons in one continuous video for watching, sharing, or uploading.",duration:"29:20",eyebrow:"Full course",id:O,posterUrl:I("courses/post-training/full-course-poster.webp"),title:q,videoUrl:E(O)};function J(e){const a=e+1;return a<A.length?a:null}const V="Subject to change, lesson work in progress";function Ue(){const e=ke==="draft"?"Draft":"Published";return t.jsx("span",{"aria-label":`${e}: ${V}`,className:"get-started-playlist-status app-tooltip","data-tooltip":V,tabIndex:0,children:e})}const C="openpond.post-training-progress.v1",j=Object.freeze({}),Ce=1e3,X=new Set;let P=null,N=null,G=!1;function R(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Me(e){if(!e||typeof e!="object"||Array.isArray(e))return j;const a={};for(const[i,n]of Object.entries(e)){if(!i||!n||typeof n!="object"||Array.isArray(n))continue;const d=n,s=R(d.duration),r=R(d.currentTime),u=R(d.updatedAt);if(s===null||s<=0||r===null)continue;const l=d.completed===!0;a[i]={completed:l,currentTime:l?s:Math.min(s,Math.max(0,r)),duration:s,updatedAt:u===null?0:Math.max(0,u)}}return Object.keys(a).length>0?a:j}function Q(e){if(!e)return j;try{return Me(JSON.parse(e))}catch{return j}}function Ve(){if(typeof window>"u")return j;try{return Q(window.localStorage.getItem(C))}catch{return j}}function Z(){if(typeof window<"u"&&N!==null&&window.clearTimeout(N),N=null,!(typeof window>"u"||P===null))try{window.localStorage.setItem(C,JSON.stringify(P))}catch{}}function Ge(){typeof window>"u"||N!==null||(N=window.setTimeout(Z,Ce))}function De(){typeof window>"u"||G||(G=!0,window.addEventListener("pagehide",Z),window.addEventListener("storage",e=>{e.key===C&&(P=Q(e.newValue),X.forEach(a=>a()))}))}function ee(){return P===null&&(P=Ve()),De(),P}function D({completed:e=!1,currentTime:a,duration:i,lessonId:n}){if(!n||!Number.isFinite(i)||i<=0||!Number.isFinite(a))return;const d=ee(),s=d[n],r=!!(s?.completed||e),u=r?i:Math.min(i,Math.max(0,a));s&&s.completed===r&&Math.abs(s.currentTime-u)<.25&&Math.abs(s.duration-i)<.25||(P={...d,[n]:{completed:r,currentTime:u,duration:i,updatedAt:Date.now()}},Ge(),X.forEach(l=>l()))}function Ke(e){return!e||e.completed||e.currentTime<1?0:e.currentTime<e.duration-2?e.currentTime:0}const _=q,$e=[2,1,0];function ze({activeLessonIndex:e,fullCourseSelected:a=!1,autoplay:i=!0,open:n,onClose:d,onOpen:s,onSelectLesson:r,playRequestId:u=0}){const l=x.useRef(null),p=x.useRef(null),c=A[e]??A[0],f=a?Y:c;x.useEffect(()=>{if(!n)return;const o=l.current;if(!o)return;let b=!1;p.current=null,o.load();const y=()=>{if(b)return;const M=Ke(ee()[f.id]);M>0&&(o.currentTime=M),u>0&&o.play().catch(()=>{})};return o.readyState>=HTMLMediaElement.HAVE_METADATA?y():o.addEventListener("loadedmetadata",y,{once:!0}),()=>{b=!0,o.removeEventListener("loadedmetadata",y),Number.isFinite(o.duration)&&o.duration>0&&o.currentTime>0&&D({completed:o.ended,currentTime:o.currentTime,duration:o.duration,lessonId:f.id})}},[f.id,n,u]);function m(o,b=!1){!Number.isFinite(o.duration)||o.duration<=0||D({completed:b,currentTime:b?o.duration:o.currentTime,duration:o.duration,lessonId:f.id})}function w(o){if(!Number.isFinite(o.duration)||o.duration<=0)return;const b=Math.min(99,Math.floor(o.currentTime/o.duration*100)),y=p.current;y?.lessonId===f.id&&y.percent===b||(p.current={lessonId:f.id,percent:b},m(o))}function v(o){m(o,!0),i&&!a&&g()}function g(){const o=J(e);o!==null&&r(o)}return t.jsxs("section",{className:"get-started-series","aria-label":_,children:[t.jsxs("article",{className:"get-started-playlist-card","aria-labelledby":"post-training-series-title",children:[t.jsx("button",{"aria-haspopup":"dialog","aria-label":`Open ${_} playlist`,className:"get-started-playlist-open",onClick:s,type:"button"}),t.jsxs("div",{className:"get-started-playlist-stack","aria-hidden":"true",children:[$e.map((o,b)=>{const y=A[o];return t.jsx("div",{className:`get-started-playlist-poster layer-${b+1}`,children:t.jsx("img",{alt:"",decoding:"async",src:y.posterUrl})},y.id)}),t.jsx("span",{className:"get-started-course-play-icon",children:t.jsx(k,{fill:"currentColor",size:19})}),t.jsxs("span",{className:"get-started-playlist-count",children:[A.length," lessons"]})]}),t.jsxs("div",{className:"get-started-playlist-copy",children:[t.jsxs("div",{className:"get-started-playlist-title",children:[t.jsx("h1",{id:"post-training-series-title",children:_}),t.jsx(Ue,{})]}),t.jsxs("div",{className:"get-started-course-meta",children:[t.jsx("span",{children:"Learning series"}),t.jsx("span",{"aria-hidden":"true",children:"·"}),t.jsx("span",{children:Le})]}),t.jsx("p",{children:"Rewards, GRPO, RLVR, distillation, experiments, and a technical appendix."})]})]}),n?t.jsx(Be,{activeLessonIndex:e,autoplay:i,fullCourseSelected:a,onClose:d,onEnded:v,onPause:m,onSelectLesson:r,onTimeUpdate:w,videoRef:l}):null]})}function Be({activeLessonIndex:e,autoplay:a,fullCourseSelected:i,onClose:n,onEnded:d,onPause:s,onSelectLesson:r,onTimeUpdate:u,videoRef:l}){const p=A[e]??A[0],c=J(e),f=i?Y:p;return t.jsx(L,{autoAdvance:a&&!i,contained:!0,inertExclusionSelector:".get-started-learning-panel",navigation:i?void 0:{currentIndex:e,onNext:c!==null?()=>r(c):void 0,onPrevious:e>0?()=>r(e-1):void 0,total:A.length},onClose:n,onEnded:d,onPause:s,onTimeUpdate:u,video:f,videoRef:l})}const Fe={captionsUrl:ce,description:"See how Profile Agents combine chat, direct actions, shared runtime surfaces, and Evals.",duration:"1:16",eyebrow:"Agent overview",id:"openpond-agent-overview",posterUrl:le,title:"What is an OpenPond Agent?",videoUrl:Ae};function Qe(e={}){const[a,i]=x.useState(null),[n,d]=x.useState(null),s=e.makeAgentTutorial===void 0?a:e.makeAgentTutorial,r=e.postTrainingCourse===void 0?n:e.postTrainingCourse,u=!!(r||s);function l(){if(e.onOpenMakeAgentTutorial){e.onOpenMakeAgentTutorial();return}d(null),i({autoplay:!0,playRequestId:0,videoId:"create"})}function p(){if(e.onCloseMakeAgentTutorial){e.onCloseMakeAgentTutorial();return}i(null)}function c(v){if(e.onSelectMakeAgentTutorialVideo){e.onSelectMakeAgentTutorialVideo(v);return}i(g=>g&&{...g,playRequestId:g.playRequestId+1,videoId:v})}function f(){if(e.onOpenPostTrainingCourse){e.onOpenPostTrainingCourse();return}i(null),d({autoplay:!0,fullCourseSelected:!1,lessonIndex:0,playRequestId:0})}function m(){if(e.onClosePostTrainingCourse){e.onClosePostTrainingCourse();return}d(null)}function w(v){if(e.onSelectPostTrainingLesson){e.onSelectPostTrainingLesson(v);return}d(g=>g&&{...g,fullCourseSelected:!1,lessonIndex:v,playRequestId:g.playRequestId+1})}return t.jsx("section",{className:`get-started-view ${u?"course-player-open":""}`,"aria-label":"Walkthroughs",children:t.jsxs("div",{className:"get-started-shell",children:[t.jsxs("section",{className:"get-started-start-here","aria-labelledby":"get-started-start-here-title",children:[t.jsx("header",{className:"get-started-section-heading",children:t.jsx("h2",{id:"get-started-start-here-title",children:"Start here"})}),t.jsx("div",{className:"get-started-learning-grid",children:t.jsx(pe,{titleElement:"h1",video:Fe})})]}),t.jsxs("section",{className:"get-started-walkthroughs","aria-labelledby":"get-started-walkthroughs-title",children:[t.jsx("header",{className:"get-started-section-heading",children:t.jsx("h2",{id:"get-started-walkthroughs-title",children:"Walkthroughs"})}),t.jsx("div",{className:"get-started-learning-grid",children:t.jsx(_e,{activeVideoId:s?.videoId??"create",autoplay:s?.autoplay??!0,onClose:p,onOpen:l,onSelectVideo:c,open:!!s,playRequestId:s?.playRequestId??0})})]}),t.jsxs("section",{className:"get-started-learn","aria-labelledby":"get-started-learn-title",children:[t.jsx("header",{className:"get-started-section-heading",children:t.jsx("h2",{id:"get-started-learn-title",children:"Learn deeper"})}),t.jsx("div",{className:"get-started-learning-grid",children:t.jsx(ze,{activeLessonIndex:r?.lessonIndex??0,autoplay:r?.autoplay??!0,fullCourseSelected:r?.fullCourseSelected??!1,open:!!r,onClose:m,onOpen:f,onSelectLesson:w,playRequestId:r?.playRequestId??0})})]})]})})}export{Qe as GetStartedView};
@@ -0,0 +1 @@
1
+ import{r as u,j as a}from"./index-5-B6FIuE.js";import{am as vt,o as gt,a as xt}from"./App-BF9L0JUv.js";import{a as fe,i as se,aw as Ue,al as Ke,ax as We,ay as bt,a1 as ve,X as ge,W as xe,d as Ge,af as yt,az as jt,y as ue,ag as qe,aA as kt,aB as Pt,E as be,H as He,aC as Nt,J as Je,K as Xe,M as wt,aD as At,L as Ae,p as St,r as Ye,aE as Tt,Z as Ze,_ as Ct,$ as It,a0 as Et,a2 as H,a3 as Qe,a4 as $t,a5 as Rt,a6 as Lt,aF as Ot,a7 as Mt,ab as Dt,a9 as zt,aa as et,aG as Se,ah as Ft,ai as Bt,aj as _t,ak as Vt,s as Ut,D as Kt,ap as Wt,aq as Gt,ar as qt,as as Ht,at as Jt,au as Xt,av as Yt}from"./CartesianChart-Dv6jJfPR.js";import{s as F,c as J,b as X,g as Te,d as oe,f as pe}from"./training-model-data-CKOkpBBL.js";import{L as ae,b as ye,a as Zt,l as Qt,c as ea,d as ta,e as aa,m as na,f as ra,g as ia,M as tt,h as la,E as Ce}from"./LabsRoute-Di1Zs4gZ.js";import"./index-CuoGlf-W.js";import"./cloud-upload-DOwvN4hp.js";import"./MainPane-StAOFINE.js";import"./chat-file-links-CgFHK89C.js";import"./arrow-up-right-BRZWXpqJ.js";import"./square-ju7fWa0W.js";import"./AppDialog-DX-xs3KA.js";import"./ComposerCreateImproveStrip-CNn4OywM.js";import"./play-BpCc5ZbR.js";import"./refresh-cw-Csoy1ev1.js";/* empty css */function me(){return me=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},me.apply(null,arguments)}var at=e=>{var t=e.cx,n=e.cy,r=e.r,l=e.className,i=fe("recharts-dot",l);return se(t)&&se(n)&&se(r)?u.createElement("circle",me({},Ke(e),Ue(e),{className:i,cx:t,cy:n,r})):null},sa=["points"];function Ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function ce(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ie(Object(n),!0).forEach(function(r){oa(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ie(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function oa(e,t,n){return(t=ca(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ca(e){var t=da(e,"string");return typeof t=="symbol"?t:t+""}function da(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ee(){return ee=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ee.apply(null,arguments)}function ua(e,t){if(e==null)return{};var n,r,l=pa(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function pa(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function ma(e){var t=e.option,n=e.dotProps,r=e.className;if(u.isValidElement(t))return u.cloneElement(t,n);if(typeof t=="function")return t(n);var l=fe(r,typeof t!="boolean"?t.className:""),i=n??{};i.points;var o=ua(i,sa);return u.createElement(at,ee({},o,{className:l}))}function ha(e,t){return e==null?!1:t?!0:e.length===1}function fa(e){var t=e.points,n=e.dot,r=e.className,l=e.dotClassName,i=e.dataKey,o=e.baseProps,s=e.needClip,c=e.clipPathId,d=e.zIndex,v=d===void 0?ge.scatter:d;if(!ha(t,n))return null;var p=We(n),m=bt(n),h=t.map((j,y)=>{var w,g,f=ce(ce(ce({r:3},o),m),{},{index:y,cx:(w=j.x)!==null&&w!==void 0?w:void 0,cy:(g=j.y)!==null&&g!==void 0?g:void 0,dataKey:i,value:j.value,payload:j.payload,points:t});return u.createElement(ma,{key:"dot-".concat(y),option:n,dotProps:f,className:l})}),b={};return s&&c!=null&&(b.clipPath="url(#clipPath-".concat(p?"":"dots-").concat(c,")")),u.createElement(ve,{zIndex:v},u.createElement(xe,ee({className:r},b),h))}function Ee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function de(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ee(Object(n),!0).forEach(function(r){va(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ee(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function va(e,t,n){return(t=ga(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ga(e){var t=xa(e,"string");return typeof t=="symbol"?t:t+""}function xa(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var ba=e=>{var t=e.point,n=e.childIndex,r=e.mainColor,l=e.activeDot,i=e.dataKey,o=e.clipPath;if(l===!1||t.x==null||t.y==null)return null;var s={index:n,dataKey:i,cx:t.x,cy:t.y,r:4,fill:r??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},c=de(de(de({},s),qe(l)),Ue(l)),d;return u.isValidElement(l)?d=u.cloneElement(l,c):typeof l=="function"?d=l(c):d=u.createElement(at,c),u.createElement(xe,{className:"recharts-active-dot",clipPath:o},d)};function ya(e){var t=e.points,n=e.mainColor,r=e.activeDot,l=e.itemDataKey,i=e.clipPath,o=e.zIndex,s=o===void 0?ge.activeDot:o,c=Ge(yt),d=jt();if(t==null||d==null)return null;var v=t.find(p=>d.includes(p.payload));return ue(v)?null:u.createElement(ve,{zIndex:s},u.createElement(ba,{point:v,childIndex:Number(c),mainColor:n,dataKey:l,activeDot:r,clipPath:i}))}var ja=["animationElapsedTime","isAnimating","isEntrance","visibleLength","strokeDasharray","connectNulls"];function he(){return he=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},he.apply(null,arguments)}function ka(e,t){if(e==null)return{};var n,r,l=Pa(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function Pa(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Na(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function nt(e,t){return"".concat(t,"px ").concat(e,"px")}function wa(e){return e.length%2!==0?[...e,...e]:e}function Aa(e,t){for(var n=[],r=0;r<t;++r)n.push(...e);return n}function Sa(e,t,n){var r=wa(n),l=r.reduce((h,b)=>h+b,0);if(!l)return nt(t,e);for(var i=Math.floor(e/l),o=e%l,s=[],c=0,d=0;c<r.length;d+=(v=r[c])!==null&&v!==void 0?v:0,++c){var v,p=r[c];if(p!=null&&d+p>o){s=[...r.slice(0,c),o-d];break}}var m=s.length%2===0?[0,t]:[t];return[...Aa(r,i),...s,...m].map(h=>"".concat(h,"px")).join(", ")}function Ta(e,t,n){if(e){var r="".concat(e).split(/[,\s]+/gim).map(l=>parseFloat(l));return Sa(n,t,r)}return nt(t,n)}function Ca(e){e.animationElapsedTime,e.isAnimating,e.isEntrance;var t=e.visibleLength,n=e.strokeDasharray,r=e.connectNulls,l=ka(e,ja),i=r??!1,o;if(t!=null){var s,c=l.pathRef,d=Na((s=c?.current)!==null&&s!==void 0?s:null);o=Ta(n,d,t)}else n!=null&&(o=String(n));return u.createElement(kt,he({},l,{connectNulls:i,strokeDasharray:o}))}function Ia(e){var t=u.useRef(0),n=u.useRef(0),r=u.useRef(!1),l=u.useRef(e);return l.current!==e&&(t.current=n.current,l.current=e),u.useCallback((i,o)=>{if(r.current)return null;var s=Math.min(Pt(t.current+i*o),o);return i>0&&o>0&&(n.current=Math.max(n.current,s),s>=o)?(r.current=!0,null):s},[])}var rt=(e,t,n,r)=>Je(e,"xAxis",t,r),it=(e,t,n,r)=>Xe(e,"xAxis",t,r),lt=(e,t,n,r)=>Je(e,"yAxis",n,r),st=(e,t,n,r)=>Xe(e,"yAxis",n,r),Ea=be([He,rt,lt,it,st],(e,t,n,r,l)=>At(e,"xAxis")?Ae(t,r,!1):Ae(n,l,!1)),$a=(e,t,n,r,l)=>l;function Ra(e){return e.type==="line"}var La=be([wt,$a],(e,t)=>e.filter(Ra).find(n=>n.id===t)),Oa=be([He,rt,lt,it,st,La,Ea,Nt],(e,t,n,r,l,i,o,s)=>{var c=s.chartData,d=s.dataStartIndex,v=s.dataEndIndex;if(!(i==null||t==null||n==null||r==null||l==null||r.length===0||l.length===0||o==null||e!=="horizontal"&&e!=="vertical")){var p=i.dataKey,m=i.data,h;if(m!=null&&m.length>0?h=m:h=c?.slice(d,v+1),h!=null)return nn({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:l,dataKey:p,bandSize:o,displayedData:h})}});function Ma(e){var t=qe(e),n=3,r=2;if(t!=null){var l=t.r,i=t.strokeWidth,o=Number(l),s=Number(i);return(Number.isNaN(o)||o<0)&&(o=n),(Number.isNaN(s)||s<0)&&(s=r),{r:o,strokeWidth:s}}return{r:n,strokeWidth:r}}var Da=["id"],za=["type","layout","connectNulls","needClip","shape","strokeDasharray"],Fa=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function te(){return te=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},te.apply(null,arguments)}function je(e,t){if(e==null)return{};var n,r,l=Ba(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function Ba(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function $e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function M(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?$e(Object(n),!0).forEach(function(r){_a(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$e(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function _a(e,t,n){return(t=Va(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Va(e){var t=Ua(e,"string");return typeof t=="symbol"?t:t+""}function Ua(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ka(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function Wa(e){var t=0,n=0;for(var r of e)r.status==="matched"&&r.prev.x!=null&&r.next.x!=null&&(t+=r.next.x-r.prev.x,n++);return n>0?t/n:0}var Ga=(e,t)=>{if(e==null)return[];if(t===1)return e.flatMap(s=>s.status==="removed"?[]:[s.next]);var n=Wa(e),r=[];for(var l of e)if(l.status==="matched")r.push(M(M({},l.next),{},{x:H(l.prev.x,l.next.x,t),y:H(l.prev.y,l.next.y,t)}));else if(l.status==="added")if(l.next.x!=null){var i=l.next.x-n;r.push(M(M({},l.next),{},{x:H(i,l.next.x,t),y:l.next.y}))}else r.push(l.next);else if(l.status==="removed"&&l.prev.x!=null){var o=l.prev.x+n;r.push(M(M({},l.prev),{},{x:H(l.prev.x,o,t),y:l.prev.y}))}return r},ke={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:Ga,animationMatchBy:Tt,connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:"auto",label:!1,legendType:"line",shape:Ca,stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:ge.line,type:"linear"},qa=e=>{var t=e.dataKey,n=e.name,r=e.stroke,l=e.legendType,i=e.hide;return[{inactive:i,dataKey:t,type:l,color:r,value:Qe(n,t),payload:e}]},Ha=u.memo(e=>{var t=e.dataKey,n=e.data,r=e.stroke,l=e.strokeWidth,i=e.fill,o=e.name,s=e.hide,c=e.unit,d=e.formatter,v=e.tooltipType,p=e.id,m={dataDefinedOnItem:n,getPosition:Rt,settings:{stroke:r,strokeWidth:l,fill:i,dataKey:t,nameKey:void 0,name:Qe(o,t),hide:s,type:v,color:r,unit:c,formatter:d,graphicalItemId:p}};return u.createElement($t,{tooltipEntrySettings:m})});function Ja(e){var t=e.clipPathId,n=e.points,r=e.props,l=r.dot,i=r.dataKey,o=r.needClip;r.id;var s=je(r,Da),c=Ke(s);return u.createElement(fa,{points:n,dot:l,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:i,baseProps:c,needClip:o,clipPathId:t})}function Xa(e){var t=e.showLabels,n=e.children,r=e.points,l=u.useMemo(()=>r?.map(i=>{var o,s,c={x:(o=i.x)!==null&&o!==void 0?o:0,y:(s=i.y)!==null&&s!==void 0?s:0,width:0,lowerWidth:0,upperWidth:0,height:0};return M(M({},c),{},{value:i.value,payload:i.payload,viewBox:c,parentViewBox:void 0,fill:void 0})}),[r]);return u.createElement(Vt,{value:t?l:void 0},n)}function Ya(e){var t=e.clipPathId,n=e.pathRef,r=e.points,l=e.props,i=e.animationElapsedTime,o=e.isAnimating,s=e.isEntrance,c=e.visibleLength,d=l.type,v=l.layout,p=l.connectNulls,m=l.needClip,h=l.shape,b=l.strokeDasharray,j=je(l,za),y=M(M({},Ut(j)),{},{fill:"none",className:"recharts-line-curve",clipPath:m?"url(#clipPath-".concat(t,")"):void 0,points:r,type:d,layout:v,connectNulls:p,strokeDasharray:b??l.strokeDasharray,pathRef:n,animationElapsedTime:i,isAnimating:o,isEntrance:l.animateNewValues?s:!1,visibleLength:c});return u.createElement(u.Fragment,null,r?.length>1&&u.createElement(Kt,{option:h,DefaultShape:ke.shape,shapeProps:y}),u.createElement(Ja,{points:r,clipPathId:t,props:l}))}function Za(e){var t=e.clipPathId,n=e.props,r=e.pathRef,l=e.previousPointsRef,i=n.points,o=n.isAnimationActive,s=n.animationBegin,c=n.animationDuration,d=n.animationEasing,v=n.animationMatchBy,p=n.animationInterpolateFn,m=n.layout,h=Ka(r.current),b=Ft(n.onAnimationStart,n.onAnimationEnd),j=b.isAnimating,y=b.handleAnimationStart,w=b.handleAnimationEnd,g=!j,f=Ia(i),$=u.useCallback(I=>I>0&&h>0,[h]);return u.createElement(Xa,{points:i,showLabels:g},n.children,u.createElement(Bt,{animationInput:i,animationIdPrefix:"recharts-line-",items:i,previousItemsRef:l,isAnimationActive:o,animationBegin:s,animationDuration:c,animationEasing:d,onAnimationStart:y,onAnimationEnd:w,animationInterpolateFn:p,animationMatchBy:v,shouldUpdatePreviousRef:$,layout:m},(I,T,P)=>{var D=j||T<1,B=D?f(T,h):null;return u.createElement(Ya,{props:n,points:I,clipPathId:t,pathRef:r,animationElapsedTime:T,isAnimating:D,isEntrance:P,visibleLength:B})}),u.createElement(_t,{label:n.label}))}function Qa(e){var t=e.clipPathId,n=e.props,r=u.useRef(null),l=u.useRef(null);return u.createElement(Za,{props:n,clipPathId:t,previousPointsRef:r,pathRef:l})}var en=(e,t)=>{var n,r;return{x:(n=e.x)!==null&&n!==void 0?n:void 0,y:(r=e.y)!==null&&r!==void 0?r:void 0,value:e.value,errorVal:et(e.payload,t)}};class tn extends u.Component{render(){var t=this.props,n=t.hide,r=t.dot,l=t.points,i=t.className,o=t.xAxisId,s=t.yAxisId,c=t.top,d=t.left,v=t.width,p=t.height,m=t.id,h=t.needClip,b=t.zIndex;if(n)return null;var j=fe("recharts-line",i),y=m,w=Ma(r),g=w.r,f=w.strokeWidth,$=We(r),I=g*2+f,T=h?"url(#clipPath-".concat($?"":"dots-").concat(y,")"):void 0;return u.createElement(ve,{zIndex:b},u.createElement(xe,{className:j},h&&u.createElement("defs",null,u.createElement(Dt,{clipPathId:y,xAxisId:o,yAxisId:s}),!$&&u.createElement("clipPath",{id:"clipPath-dots-".concat(y)},u.createElement("rect",{x:d-I/2,y:c-I/2,width:v+I,height:p+I}))),u.createElement(zt,{xAxisId:o,yAxisId:s,data:l,dataPointFormatter:en,errorBarOffset:0},u.createElement(Qa,{props:this.props,clipPathId:y}))),u.createElement(ya,{activeDot:this.props.activeDot,points:l,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:T}))}}function an(e){var t=Ye(e,ke),n=t.activeDot,r=t.animateNewValues,l=t.animationBegin,i=t.animationDuration,o=t.animationEasing,s=t.connectNulls,c=t.dot,d=t.hide,v=t.isAnimationActive,p=t.label,m=t.legendType,h=t.xAxisId,b=t.yAxisId,j=t.id,y=je(t,Fa),w=Lt(h,b),g=w.needClip,f=Ot(),$=Mt(),I=Ze(),T=Ge(L=>Oa(L,h,b,I,j));if($!=="horizontal"&&$!=="vertical"||T==null||f==null)return null;var P=f.height,D=f.width,B=f.x,A=f.y;return u.createElement(tn,te({},y,{id:j,connectNulls:s,dot:c,activeDot:n,animateNewValues:r,animationBegin:l,animationDuration:i,animationEasing:o,isAnimationActive:v,hide:d,label:p,legendType:m,xAxisId:h,yAxisId:b,points:T,layout:$,height:P,width:D,left:B,top:A,needClip:g}))}function nn(e){var t=e.layout,n=e.xAxis,r=e.yAxis,l=e.xAxisTicks,i=e.yAxisTicks,o=e.dataKey,s=e.bandSize,c=e.displayedData;return c.map((d,v)=>{var p=et(d,o);if(t==="horizontal"){var m=Se({axis:n,ticks:l,bandSize:s,entry:d,index:v}),h=ue(p)?null:r.scale.map(p);return{x:m,y:h??null,value:p,payload:d}}var b=ue(p)?null:n.scale.map(p),j=Se({axis:r,ticks:i,bandSize:s,entry:d,index:v});return b==null||j==null?null:{x:b,y:j,value:p,payload:d}}).filter(Boolean)}function rn(e){var t=Ye(e,ke),n=Ze();return u.createElement(Ct,{id:t.id,type:"line"},r=>u.createElement(u.Fragment,null,u.createElement(It,{legendPayload:qa(t)}),u.createElement(Ha,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:r}),u.createElement(Et,{type:"line",id:r,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:n}),u.createElement(an,te({},t,{id:r}))))}var ot=u.memo(rn,St);ot.displayName="Line";var ln=["axis"],sn=u.forwardRef((e,t)=>u.createElement(Wt,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:ln,tooltipPayloadSearcher:Gt,categoricalChartProps:e,ref:t}));function on({events:e}){const t=e.filter(n=>n.type==="metric"&&n.payload.metricKind==="rollout_trajectory");return t.length?a.jsx("div",{className:"training-rollout-receipts",children:t.map((n,r)=>{const l=n.payload.rewardEligible===!0,i=U(n.payload.reward),o=typeof n.payload.failureClass=="string"?n.payload.failureClass:null,s=typeof n.payload.failureCode=="string"?n.payload.failureCode:null;return a.jsxs("details",{children:[a.jsxs("summary",{children:[a.jsxs("span",{children:["Attempt ",r+1]}),a.jsx("strong",{children:l?"eligible":"ineligible"}),a.jsx("em",{children:l&&i!=null?i.toFixed(3):s??o??"not reward eligible"})]}),a.jsxs("dl",{className:"training-configuration-list",children:[a.jsx(k,{label:"Rollout",value:Re(n.payload.rolloutId)}),a.jsx(k,{label:"Group",value:Re(n.payload.rolloutGroupId)}),a.jsx(k,{label:"Policy",value:`v${U(n.payload.policyVersion)??0}`}),a.jsx(k,{label:"Worker",value:String((U(n.payload.workerSlot)??0)+1)}),a.jsx(k,{label:"Reward",value:i==null?"Not eligible":String(i)}),a.jsx(k,{label:"Failure class",value:o??"None"}),a.jsx(k,{label:"Failure code",value:s??"None"}),a.jsx(k,{label:"Components",value:JSON.stringify(n.payload.rewardComponents??{})}),a.jsx(k,{label:"Tokens",value:`${U(n.payload.inputTokens)??0} input · ${U(n.payload.outputTokens)??0} output`})]})]},n.id)})}):a.jsx("div",{className:"training-run-placeholder",children:"No managed attempts were recorded for this run."})}function cn({receipts:e}){const[t,n]=u.useState(!1);if(!e.length)return a.jsx("div",{className:"training-run-placeholder",children:"No on-policy rollout receipts were recorded for this run."});const r=[...e].sort((i,o)=>o.updatedAt.localeCompare(i.updatedAt)),l=t?r:r.slice(0,24);return a.jsxs("div",{className:"training-rollout-receipts",children:[e.length>24?a.jsxs("div",{className:"training-rollout-receipt-controls",children:[a.jsx("span",{children:t?`Showing all ${e.length} receipts`:`Showing latest ${l.length} of ${e.length} receipts`}),a.jsx("button",{className:"training-text-button",type:"button",onClick:()=>n(i=>!i),children:t?"Show latest 24":`Show all ${e.length}`})]}):null,l.map(i=>a.jsxs("details",{children:[a.jsxs("summary",{children:[a.jsx("span",{children:dn(i.providerTrace.rolloutId)}),a.jsx("strong",{children:i.status}),a.jsx("em",{children:i.reward.eligible&&i.reward.raw!=null?i.reward.raw.toFixed(3):i.failureClass??"not reward eligible"})]}),a.jsxs("dl",{className:"training-configuration-list",children:[a.jsx(k,{label:"Correlation",value:i.correlationId}),a.jsx(k,{label:"Task",value:i.taskId}),a.jsx(k,{label:"Policy",value:i.policy.modelId}),a.jsx(k,{label:"Checkpoint",value:i.policy.checkpointId??"Provider initial policy"}),a.jsx(k,{label:"Environment",value:`${i.environment.id}@${i.environment.version}`}),a.jsx(k,{label:"World",value:`${i.environment.worldId} · ${i.environment.worldHash}`}),a.jsx(k,{label:"Raw reward",value:i.reward.raw==null?"Not eligible":String(i.reward.raw)}),a.jsx(k,{label:"Components",value:JSON.stringify(i.reward.components)}),a.jsx(k,{label:"Outcome",value:i.verifier?.outcome??i.failureClass??"Pending"}),a.jsx(k,{label:"Trace",value:`${i.providerTrace.experimentId}/${i.providerTrace.rolloutId}`})]})]},i.id))]})}function k({label:e,value:t}){return a.jsxs("div",{children:[a.jsx("dt",{children:e}),a.jsx("dd",{children:t})]})}function U(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Re(e){return typeof e=="string"&&e?e:"Not recorded"}function dn(e){return e.replace(/^lineage_/,"").slice(0,18)}function un({detail:e,loading:t,pending:n=!1}){if(t&&!e)return a.jsx("div",{className:"training-run-placeholder",children:"Loading evaluation results…"});const r=e?.evaluation;return r?a.jsxs("div",{className:"training-run-evaluation",children:[a.jsxs("div",{className:"training-metric-summary",children:[a.jsx(Y,{label:"Base score",value:Le(r.base.meanScore)}),a.jsx(Y,{label:"Trained score",value:Le(r.trained.meanScore)}),a.jsx(Y,{label:"Score change",value:hn(r.meanScoreDelta)}),a.jsx(Y,{label:"Trained pass rate",value:mn(r.trained.passRate)})]}),r.base.count===0?a.jsx("p",{className:"training-muted",children:"Base-model scoring was not imported for this earlier run. New runs retain both base and trained evaluations."}):null,r.trained.count>0&&r.trained.scoredCount===0?a.jsx("p",{className:"training-muted",children:"Outputs were captured, but the grader was unavailable, so this run has no evaluation score."}):null,a.jsx("div",{className:"training-table-wrap",children:a.jsxs("table",{className:"training-data-table training-evaluation-table",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{children:"Test example"}),a.jsx("th",{children:"Base"}),a.jsx("th",{children:"Trained"}),a.jsx("th",{children:"Result"})]})}),a.jsx("tbody",{children:r.examples.map(l=>a.jsxs("tr",{children:[a.jsx("td",{children:a.jsxs("details",{children:[a.jsx("summary",{children:l.taskId}),a.jsx(pn,{input:l.input,baseOutput:l.baseOutput,trainedOutput:l.trainedOutput,baseGrade:l.baseGrade,trainedGrade:l.trainedGrade})]})}),a.jsx("td",{children:Oe(l.baseGrade)}),a.jsx("td",{children:Oe(l.trainedGrade)}),a.jsx("td",{children:fn(l.baseGrade,l.trainedGrade)})]},l.taskId))})]})})]}):a.jsx("div",{className:"training-run-placeholder",children:n?"Evaluation will appear here after the first eligible checkpoint is scored.":"No scored evaluation results are available for this run."})}function pn({input:e,baseOutput:t,trainedOutput:n,baseGrade:r,trainedGrade:l}){const i=[...new Set([...r?.feedback??[],...l?.feedback??[]])];return a.jsxs("div",{className:"training-evaluation-output",children:[a.jsxs("div",{children:[a.jsx("span",{children:"Input"}),a.jsx("pre",{children:JSON.stringify(e,null,2)})]}),t?a.jsxs("div",{children:[a.jsx("span",{children:"Base output"}),a.jsx("pre",{children:JSON.stringify(t,null,2)})]}):null,n?a.jsxs("div",{children:[a.jsx("span",{children:"Trained output"}),a.jsx("pre",{children:JSON.stringify(n,null,2)})]}):null,i.length?a.jsxs("div",{children:[a.jsx("span",{children:"Grader feedback"}),a.jsx("p",{children:i.join(" ")})]}):null]})}function Y({label:e,value:t}){return a.jsxs("div",{children:[a.jsx("span",{children:e}),a.jsx("strong",{children:t})]})}function Le(e){return e==null?"Not recorded":e.toFixed(3)}function mn(e){return e==null?"Not recorded":`${Math.round(e*100)}%`}function hn(e){return e==null?"Not comparable":`${e>=0?"+":""}${e.toFixed(3)}`}function Oe(e){return e?.status==="unavailable"?"Unavailable":e?.score==null?"Not scored":e.score.toFixed(3)}function fn(e,t){if(!t)return"Not evaluated";if(t.status==="unavailable")return"Unavailable";if(!e||e.score==null||t.score==null)return t.passed?"Passed":"Failed";const n=t.score-e.score;return Math.abs(n)<5e-4?"No change":n>0?`Improved ${n.toFixed(3)}`:`Regressed ${Math.abs(n).toFixed(3)}`}const vn=[{id:"rollout.reward",label:"Rollout reward",points:[]},{id:"optimizer.reward",label:"Mean reward",points:[]},{id:"reward.variance",label:"Reward variance",points:[]},{id:"optimizer.kl",label:"KL divergence",points:[]},{id:"optimizer.policy_loss",label:"Policy loss",points:[]},{id:"optimizer.learning_rate",label:"Learning rate",points:[],format:"scientific"}];function gn({series:e,loading:t=!1,live:n=!1}){const[r,l]=u.useState(!1),i=u.useMemo(()=>{const o=e.filter(c=>c.points.length);if(!t&&!n)return o;const s=new Map(o.map(c=>[c.id,c]));for(const c of vn)s.has(c.id)||s.set(c.id,c);return[...s.values()]},[n,t,e]);return i.length?a.jsxs("section",{className:"training-metric-workbench","aria-label":"Training metrics",children:[a.jsxs("header",{className:"training-metric-workbench-toolbar",children:[a.jsxs("div",{children:[a.jsx("h3",{children:"Training metrics"}),a.jsx("p",{children:n?"Live metrics update as each rollout and optimizer step completes.":`${i.length} recorded metric ${i.length===1,"series"}.`})]}),a.jsxs("div",{className:"training-metric-view-toggle","aria-label":"Metric trend",role:"group",children:[a.jsx("button",{className:r?void 0:"active",type:"button",onClick:()=>l(!1),children:"Raw"}),a.jsx("button",{className:r?"active":void 0,type:"button",onClick:()=>l(!0),children:"Smoothed"})]})]}),a.jsx("div",{className:"training-metric-chart-grid",children:i.map(o=>a.jsx(xn,{loading:t&&!o.points.length,metric:o,pending:n&&!o.points.length,smoothed:r},o.id))})]}):a.jsx("div",{className:"training-run-placeholder",children:"This run did not report chartable metrics."})}const xn=u.memo(function({metric:t,loading:n,pending:r,smoothed:l}){const i=u.useMemo(()=>l?bn(t.points,3):t.points,[t.points,l]),o=u.useMemo(()=>t.points.length?yn(t.points.map(c=>c.value)):null,[t.points]),s=c=>jn(c,t.format);return a.jsxs("article",{className:"training-metric-chart-card",children:[a.jsxs("header",{children:[a.jsxs("div",{children:[a.jsx("h4",{children:t.label}),a.jsx("span",{children:t.points.length?`${t.points.length} ${t.points.length===1?"point":"points"}`:r?"Live":"No data"})]}),o?a.jsx("strong",{children:s(o.latest)}):null]}),t.points.length?a.jsx("div",{className:"training-metric-card-chart","aria-label":`${t.label} by optimizer step`,children:a.jsx(qt,{height:"100%",width:"100%",children:a.jsxs(sn,{data:i,margin:{top:18,right:18,bottom:4,left:0},children:[a.jsx(Ht,{stroke:"var(--border)",strokeDasharray:"3 4",vertical:!1}),a.jsx(Jt,{axisLine:!1,dataKey:"step",fontSize:10,stroke:"var(--muted)",tickLine:!1}),a.jsx(Xt,{axisLine:!1,dataKey:"value",domain:t.format==="percent"?[0,1]:["auto","auto"],fontSize:10,stroke:"var(--muted)",tickFormatter:s,tickLine:!1,width:66}),a.jsx(Yt,{contentStyle:{background:"var(--panel)",border:"1px solid var(--border)",borderRadius:8,fontSize:11},formatter:c=>[s(Number(c)),t.label],labelFormatter:c=>`Step ${c}`}),a.jsx(ot,{activeDot:{fill:"var(--cyan, #06b6d4)",r:5},dataKey:"value",dot:{fill:"var(--cyan, #06b6d4)",r:2.5},isAnimationActive:!1,stroke:"var(--cyan, #06b6d4)",strokeWidth:2,type:"monotone"})]})})}):a.jsxs("div",{className:n?"training-metric-chart-empty is-loading":"training-metric-chart-empty",children:[n?a.jsxs("span",{className:"sr-only",children:["Loading ",t.label]}):null,n?null:a.jsx("span",{children:r?"Waiting for rollout…":"No data reported"})]}),o?a.jsxs("dl",{className:"training-metric-card-stats",children:[a.jsx(Z,{label:"Mean",value:s(o.mean)}),a.jsx(Z,{label:"Min",value:s(o.min)}),a.jsx(Z,{label:"Max",value:s(o.max)}),a.jsx(Z,{label:"Std. dev.",value:s(o.standardDeviation)})]}):null]})});function Z({label:e,value:t}){return a.jsxs("div",{children:[a.jsx("dt",{children:e}),a.jsx("dd",{children:t})]})}function bn(e,t){return e.map((n,r)=>{const l=e.slice(Math.max(0,r-t+1),r+1);return{step:n.step,value:l.reduce((i,o)=>i+o.value,0)/l.length}})}function yn(e){const t=[...e].sort((l,i)=>l-i),n=e.reduce((l,i)=>l+i,0)/e.length,r=e.reduce((l,i)=>l+(i-n)**2,0)/e.length;return{latest:e.at(-1),mean:n,min:t[0],max:t.at(-1),standardDeviation:Math.sqrt(r)}}function jn(e,t="number"){return t==="percent"?`${(e*100).toFixed(2)}%`:t==="scientific"?e.toExponential(2):Math.abs(e)>=1e3?e.toLocaleString(void 0,{maximumFractionDigits:2}):e.toFixed(4)}const kn=[{key:"meanReward",id:"optimizer.reward",label:"Mean reward"},{key:"meanReturn",id:"optimizer.return",label:"Mean return"},{key:"learningRate",id:"optimizer.learning_rate",label:"Learning rate",format:"scientific"},{key:"policyLoss",id:"optimizer.policy_loss",label:"Policy loss"},{key:"valueLoss",id:"optimizer.value_loss",label:"Value loss"},{key:"gradientNorm",id:"optimizer.gradient_norm",label:"Gradient norm"},{key:"kl",id:"optimizer.kl",label:"KL divergence"},{key:"entropy",id:"optimizer.entropy",label:"Entropy"},{key:"policyClipFraction",id:"optimizer.policy_clip_fraction",label:"Policy clip fraction",format:"percent"},{key:"valueClipFraction",id:"optimizer.value_clip_fraction",label:"Value clip fraction",format:"percent"},{key:"explainedVariance",id:"optimizer.explained_variance",label:"Explained variance"}],Pn=[{key:"loss",id:"optimizer.loss",label:"Loss"},{key:"reward",id:"optimizer.reward",label:"Reward"},{key:"policyLoss",id:"optimizer.policy_loss",label:"Policy loss"},{key:"advantageLoss",id:"optimizer.advantage_loss",label:"Advantage loss"},{key:"learningRate",id:"optimizer.learning_rate",label:"Learning rate",format:"scientific"},{key:"gradientNorm",id:"optimizer.gradient_norm",label:"Gradient norm"},{key:"meanTokenAccuracy",id:"train.token_accuracy",label:"Token accuracy",format:"percent"},{key:"preferenceAccuracy",id:"train.preference_accuracy",label:"Preference accuracy",format:"percent"},{key:"preferenceMargin",id:"train.preference_margin",label:"Preference margin"},{key:"chosenReward",id:"train.chosen_reward",label:"Chosen reward"},{key:"rejectedReward",id:"train.rejected_reward",label:"Rejected reward"},{key:"entropy",id:"optimizer.entropy",label:"Entropy"}];function Nn({detail:e,loading:t,error:n}){vt(n,{prefix:"Training metrics"});const r=u.useMemo(()=>e?wn(e):[],[e]);if(n&&!e)return a.jsx("div",{className:"training-run-placeholder",children:"Training metrics are unavailable."});if(!e&&!t)return a.jsx("div",{className:"training-run-placeholder",children:"Select a training run to inspect its metrics."});const l=e?["queued","starting","running","reconciling"].includes(e.job.status):!1;return a.jsx(gn,{live:l,loading:t&&!e,series:r})}function wn(e){const t=e.job.metadata.trainingMethod==="grpo"&&typeof e.job.metadata.optimizerUpdatesObserved=="number"?Math.max(0,e.job.metadata.optimizerUpdatesObserved):null,n=ze(e.stepMetrics).filter(o=>t===null||o.step<=t),r=[...De(ze(e.policyMetrics),kn),...De(n,Pn),...An(e.events)],l=new Map;for(const o of r){const s=l.get(o.id);(!s||o.points.length>s.points.length)&&l.set(o.id,o)}const i=["optimizer.reward","rollout.reward","optimizer.kl","optimizer.loss","optimizer.learning_rate"];return[...l.values()].sort((o,s)=>Me(o.id,i)-Me(s.id,i)||o.label.localeCompare(s.label))}function Me(e,t){const n=t.indexOf(e);return n<0?999:n}function De(e,t){return t.flatMap(n=>{const r=e.flatMap(l=>{const i=l[n.key];return typeof i=="number"&&Number.isFinite(i)?[{step:l.step,value:i}]:[]});return r.length?[{id:n.id,label:n.label,points:r,format:n.format}]:[]})}function ze(e){const t=new Map;for(const n of e)t.set(n.step,n);return[...t.values()].sort((n,r)=>n.step-r.step)}function An(e){const t=new Map,n=new Map,r=(i,o,s,c)=>{t.set(i,[...t.get(i)??[],{step:s,value:c}]),n.set(i,o)},l=new Map;for(const i of e)if(i.type==="metric"){if(i.payload.metricKind==="managed_telemetry"){const o=typeof i.payload.metricId=="string"?i.payload.metricId:null,s=z(i.payload.value),c=z(i.payload.step)??i.sequence;o&&s!==null&&r(o,Fe(o),c,s)}if(i.payload.metricKind==="rollout_trajectory"){const o=z(i.payload.rolloutIndex)??i.sequence,s=z(i.payload.reward);s!==null&&r("rollout.reward","Rollout reward",o,s);const c=typeof i.payload.rolloutGroupId=="string"?i.payload.rolloutGroupId:"group-0",d=i.payload.rewardEligible===!1||typeof i.payload.failureClass=="string"||typeof i.payload.failureCode=="string";l.set(c,[...l.get(c)??[],{reward:s,eligible:i.payload.rewardEligible===!0,resolved:s!==null||d,attempt:z(i.payload.attempt)??1,input:z(i.payload.inputTokens)??0,output:z(i.payload.outputTokens)??0}])}}return[...l.values()].forEach((i,o)=>{const s=i.filter(m=>m.resolved);if(!s.length)return;const c=s.flatMap(m=>m.eligible&&m.reward!==null?[m.reward]:[]),d=c.length?c.reduce((m,h)=>m+h,0)/c.length:0,v=c.length?c.reduce((m,h)=>m+(h-d)**2,0)/c.length:0,p=c.length?Math.max(...c):0;r("attempt.valid_rate","Valid attempt rate",o,c.length/s.length),r("attempt.failure_count","Attempt failures",o,s.length-c.length),r("attempt.retry_count","Attempt retries",o,s.reduce((m,h)=>m+Math.max(0,h.attempt-1),0)),r("reward.variance","Reward variance",o,v),r("reward.best","Best reward",o,p),r("tokens.input","Input tokens",o,i.reduce((m,h)=>m+h.input,0)),r("tokens.output","Output tokens",o,i.reduce((m,h)=>m+h.output,0))}),[...t].map(([i,o])=>({id:i,label:n.get(i)??Fe(i),points:o,format:i.endsWith("rate")||i.includes("fraction")?"percent":"number"}))}function z(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Fe(e){return e.replaceAll(/[._]/g," ").replace(/^./,t=>t.toUpperCase())}const Sn=new Set(["queued","starting","running","cancelling","reconciling"]);function Tn(e,t,n){const[r,l]=u.useState(null),[i,o]=u.useState(!1),[s,c]=u.useState(null),d=u.useRef(t),v=u.useRef(null);d.current=t;const p=u.useCallback(()=>{if(!e||!t)return Promise.resolve(null);if(v.current?.jobId===t)return v.current.request;o(!0);const m=gt.trainingRunDetail(e,t).then(h=>(d.current===t&&(l(h),c(null)),h)).catch(h=>(d.current===t&&c(h instanceof Error?h.message:String(h)),null)).finally(()=>{v.current?.request===m&&(v.current=null,o(!1))});return v.current={jobId:t,request:m},m},[e,t]);return u.useEffect(()=>{l(null),c(null),!(!e||!t)&&p()},[e,t,p]),u.useEffect(()=>{if(!e||!t||!n||!Sn.has(n))return;const m=window.setInterval(()=>{p()},2e3);return()=>window.clearInterval(m)},[e,t,n,p]),{detail:r,error:s,loading:i,refresh:p}}function Cn({title:e,status:t,statusValue:n,versionStatus:r,method:l,baseModel:i,taskset:o,compute:s,duration:c,output:d,reward:v,telemetry:p,evidence:m,configuration:h,children:b,failure:j,onOpenTaskset:y,showHeader:w=!0}){const g=p?.cost.providerReportedUsd??p?.cost.estimatedUsd??m?.cost.totalUsd??null;return a.jsxs("div",{className:"labs-model-run-summary",children:[w?a.jsx("section",{className:"labs-run-outcome-card",children:a.jsx("header",{children:a.jsxs("div",{children:[a.jsxs("div",{className:"labs-run-title-row",children:[a.jsx("h2",{children:e}),a.jsx(ae,{label:t,value:n})]}),a.jsxs("p",{children:[En(l)," on ",i]})]})})}):null,b,a.jsxs("section",{className:"labs-run-summary-card",children:[a.jsx("header",{children:a.jsx("h3",{children:"Run setup"})}),a.jsxs("dl",{className:"labs-run-detail-list",children:[a.jsx(R,{label:"Training method",value:l}),a.jsx(R,{label:"Base model",value:i}),a.jsx(R,{label:"Compute",value:s}),a.jsx(R,{label:"Output",value:d}),r?a.jsx(R,{label:"Version status",value:r}):null,a.jsx(R,{label:"Duration",value:c}),a.jsx(R,{label:"Run cost",value:g===null?"Not reported":`$${g.toFixed(4)}`}),a.jsx(R,{label:"Final reward",value:v===null?"Not reported":v.toFixed(4)}),h.map(f=>a.jsx(R,{label:f.label,value:f.value},f.label)),p||m?a.jsxs(a.Fragment,{children:[a.jsx(K,{label:"GPU",value:In(p,m)}),a.jsx(K,{label:"Tokens",value:`${W(p?.usage.promptTokens??m?.usage.inputTokens??null)} prompt · ${W(p?.usage.generatedTokens??m?.usage.outputTokens??null)} generated`}),a.jsx(K,{label:"Trajectories",value:`${W(p?.usage.successfulTrajectories??m?.reward.eligibleTrajectoryCount??null)} succeeded · ${W(p?.usage.failedTrajectories??(m?m.reward.trajectoryCount-m.reward.eligibleTrajectoryCount:null))} failed`}),a.jsx(K,{label:"Optimizer updates",value:W(p?.usage.optimizerSteps??m?.progress.committedOptimizerSteps??null)}),a.jsx(K,{label:"GPU time",value:p?.usage.gpuSeconds==null?"Not reported":`${p.usage.gpuSeconds.toFixed(1)} seconds`})]}):a.jsx(R,{label:"Resource usage",value:"Not retained for this run"}),a.jsxs("div",{children:[a.jsx("dt",{children:"Taskset"}),a.jsx("dd",{children:y?a.jsxs("button",{className:"labs-run-taskset-link",type:"button",onClick:y,children:[a.jsx("span",{children:o}),a.jsx(xt,{"aria-hidden":"true",size:14})]}):o})]})]})]}),j?a.jsx("p",{className:"labs-training-error",children:j}):null]})}function R({label:e,value:t}){return a.jsxs("div",{children:[a.jsx("dt",{children:e}),a.jsx("dd",{children:t})]})}function K({label:e,value:t}){return a.jsx(R,{label:e,value:t})}function In(e,t){const n=e?.resource.gpuCount??t?.resource.gpuCount??null,r=e?.resource.gpuType??t?.resource.gpuType??null;return n===null&&r===null?"Not reported":`${n??"Unknown"} × ${r?$n(r):"Unreported"}`}function W(e){return e===null?"Not reported":e.toLocaleString()}function En(e){return e==="RFT"?"Reinforcement fine-tuning":`${e} training`}function $n(e){return e.split(" · ").map(t=>t.replaceAll("_"," ").replace(/\b[a-z]/g,n=>n.toUpperCase())).join(" · ")}function Rn({receipt:e,onOpenConversation:t}){return a.jsxs(a.Fragment,{children:[a.jsxs("section",{className:"labs-run-summary-card",children:[a.jsx("header",{children:a.jsx("h3",{children:"Inconclusive benchmark"})}),a.jsx("p",{className:"training-run-placeholder",children:e.reason}),a.jsxs("dl",{className:"labs-run-detail-list",children:[a.jsx(N,{label:"Held-out baseline tokens",value:e.usage.baseline.totalTokens.toLocaleString()}),a.jsx(N,{label:"Adaptation baseline tokens",value:e.usage.adaptation.totalTokens.toLocaleString()}),a.jsx(N,{label:"Refiner tokens",value:e.usage.refiner.totalTokens.toLocaleString()}),a.jsx(N,{label:"Grader tokens",value:e.usage.grader.totalTokens.toLocaleString()}),a.jsx(N,{label:"Observed / maximum spend",value:`$${e.budget.observedSpendUsd.toFixed(4)} / $${e.budget.maximumSpendUsd.toFixed(2)}`}),a.jsx(N,{label:"Harness candidate",value:e.stopReason==="candidate_harness_unchanged"?"Unchanged":"Lineage invalid"}),a.jsx(N,{label:"Completed attempts",value:e.attempts.length.toLocaleString()}),a.jsx(N,{label:"Candidate attempts",value:"Skipped"})]})]}),e.attempts.length?a.jsx(ct,{receipt:e,onOpenConversation:t}):null]})}function Ln({run:e}){const t=["baseline","adaptation","refiner","candidate_adaptation","candidate","comparison"],n={baseline:"Baseline",adaptation:"Adaptation",refiner:"Refiner",candidate_adaptation:"Sequential adaptation",candidate:"Candidate",comparison:"Comparison"},r=Math.max(0,t.indexOf(e.evaluationProgress?.stage??"baseline")),l=e.evaluationProgress?.completedAttempts??0,i=e.evaluationProgress?.totalAttempts??1;return a.jsxs("div",{className:"labs-benchmark-progress",children:[a.jsxs("header",{children:[a.jsx("h3",{children:"Benchmark progress"}),a.jsxs("strong",{children:[l," of ",i," attempts"]})]}),a.jsx("div",{className:"labs-benchmark-progress-track","aria-hidden":"true",children:a.jsx("span",{style:{width:`${Math.min(100,l/i*100)}%`}})}),a.jsx("ol",{children:t.map((o,s)=>a.jsxs("li",{className:s<r?"complete":s===r?"active":void 0,children:[a.jsx("span",{}),n[o]]},o))})]})}function On({receipt:e}){const t=ye(e),n=t.pairs.filter(i=>i.cohort==="held_out"),r=t.pairs.filter(i=>i.cohort==="adaptation"),l=i=>i.length?i.reduce((o,s)=>o+s,0)/i.length:0;return a.jsxs("div",{className:"labs-benchmark-attempt-charts",children:[a.jsx(Q,{title:"Held-out tokens by task",baseline:n.map(i=>i.baseline.totalTokens),candidate:n.map(i=>i.refined.totalTokens),format:i=>Math.round(i).toLocaleString()}),a.jsx(Q,{title:"Adaptation tokens by task",baseline:r.map(i=>i.baseline.totalTokens),candidate:r.map(i=>i.refined.totalTokens),format:i=>Math.round(i).toLocaleString()}),a.jsx(Q,{title:"Held-out quality by task",baseline:n.map(i=>i.baseline.score),candidate:n.map(i=>i.refined.score),format:i=>i.toFixed(2),summarize:l}),a.jsx(Q,{title:"Adaptation quality by task",baseline:r.map(i=>i.baseline.score),candidate:r.map(i=>i.refined.score),format:i=>i.toFixed(2),summarize:l})]})}function Mn({receipt:e,run:t,tasksetName:n,onOpenTaskset:r}){const l=ye(e),i=l.comparedTaskCount>0,o=l.passed,s=l.tokenDeltaPercent===null?"—":`${l.tokenDeltaPercent>0?"+":""}${l.tokenDeltaPercent.toFixed(2)}%`,c=d=>{const v=l.cohorts[d];return`${v.passedTaskCount}/${v.comparedTaskCount} passed`};return a.jsxs("section",{className:"labs-run-summary-card",children:[a.jsx("header",{children:a.jsx("h3",{children:"Token efficiency"})}),i?a.jsxs("div",{className:"labs-benchmark-efficiency-summary",children:[a.jsxs("strong",{children:[l.passedTaskCount," of ",l.comparedTaskCount," tasks passed"]}),a.jsxs("p",{children:["A task passes only when its refined token count is strictly lower than its own baseline. ",l.failedTaskCount," failed this token-efficiency test; aggregate usage changed by ",s,"."]})]}):a.jsx("p",{className:"training-run-placeholder",children:"Paired task-level token evidence is unavailable for this run."}),a.jsxs("dl",{className:"labs-run-detail-list",children:[a.jsx(N,{label:"Execution",value:F(t.status)}),a.jsx(N,{label:"Token-efficiency result",value:o?"Passed":"Failed"}),a.jsx(N,{label:"Efficiency passes",value:`${l.passedTaskCount}/${l.comparedTaskCount}`}),a.jsx(N,{label:"Efficiency failures",value:`${l.failedTaskCount}/${l.comparedTaskCount}`}),a.jsx(N,{label:"All-task foreground tokens",value:`${l.baselineTokens.toLocaleString()} → ${l.refinedTokens.toLocaleString()}`}),a.jsx(N,{label:"Aggregate token change",value:s}),a.jsx(N,{label:"Adaptation replay",value:c("adaptation")}),a.jsx(N,{label:"Held-out replay",value:c("held_out")}),a.jsx(N,{label:"Task quality",value:`${l.baselinePassedCount}/${l.comparedTaskCount} → ${l.refinedPassedCount}/${l.comparedTaskCount}`}),a.jsx(N,{label:"Result lineage",value:e.lineage.valid?"Valid":"Invalid"}),a.jsxs("div",{children:[a.jsx("dt",{children:"Taskset"}),a.jsx("dd",{children:r?a.jsx("button",{className:"labs-run-taskset-link",type:"button",onClick:r,children:n}):n})]})]})]})}function Q({title:e,baseline:t,candidate:n,format:r,summarize:l=i=>i.reduce((o,s)=>o+s,0)}){const i=t.filter(p=>p!==null),o=n.filter(p=>p!==null),s=Math.max(1,...i,...o),c=Math.max(2,t.length,n.length),d=p=>{const m=[];let h=[];return p.forEach((b,j)=>{if(b===null){h.length&&m.push(h.join(" ")),h=[];return}const y=6+j/(c-1)*88,w=44-b/s*36;h.push(`${y},${w}`)}),h.length&&m.push(h.join(" ")),m},v=p=>p.flatMap((m,h)=>m===null?[]:[{x:6+h/(c-1)*88,y:44-m/s*36}]);return a.jsxs("section",{className:"labs-benchmark-line-chart",children:[a.jsxs("header",{children:[a.jsx("h4",{children:e}),a.jsxs("div",{children:[a.jsxs("span",{children:["Baseline ",r(l(i))]}),a.jsxs("span",{children:["Refined ",r(l(o))]})]})]}),a.jsxs("svg",{"aria-label":e,role:"img",viewBox:"0 0 100 50",preserveAspectRatio:"none",children:[a.jsx("line",{x1:"6",x2:"94",y1:"44",y2:"44"}),d(t).map((p,m)=>a.jsx("polyline",{className:"baseline",points:p},`baseline-${m}`)),d(n).map((p,m)=>a.jsx("polyline",{className:"candidate",points:p},`candidate-${m}`)),v(t).map((p,m)=>a.jsx("circle",{className:"baseline",cx:p.x,cy:p.y,r:"1"},`baseline-point-${m}`)),v(n).map((p,m)=>a.jsx("circle",{className:"candidate",cx:p.x,cy:p.y,r:"1"},`candidate-point-${m}`))]})]})}function ct({receipt:e,onOpenConversation:t}){const n=e.schemaVersion==="openpond.modelEvaluationReceipt.v1"?Zt(e.attempts??[]):e.attempts??[];return a.jsxs("section",{className:"labs-run-summary-card",children:[a.jsx("header",{children:a.jsx("h3",{children:e.schemaVersion==="openpond.modelEvaluationReceipt.v1"?"Selected task results":"Completed attempts"})}),a.jsx("div",{className:"training-table-wrap",children:a.jsxs("table",{className:"training-data-table labs-benchmark-attempt-table",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{children:"Task"}),a.jsx("th",{children:"Phase"}),a.jsx("th",{children:"Result"}),a.jsx("th",{children:"Score"}),a.jsx("th",{children:"Tokens"}),a.jsx("th",{children:"Work chat"})]})}),a.jsx("tbody",{children:n.map(r=>a.jsxs("tr",{children:[a.jsx("td",{children:Dn(r.taskId)}),a.jsx("td",{children:r.phase}),a.jsx("td",{children:a.jsx(ae,{label:r.passed?"Passed":"Failed",value:r.passed?"succeeded":"failed"})}),a.jsx("td",{children:r.score===null?"—":r.score.toFixed(2)}),a.jsx("td",{children:r.totalTokens.toLocaleString()}),a.jsx("td",{children:r.sessionId?a.jsx("button",{className:"labs-run-taskset-link",type:"button",onClick:()=>t(r.sessionId),children:"Open chat"}):"Not retained"})]},`${r.phase}:${r.attemptId}`))})]})})]})}function Dn(e){return e.replace(/^(?:adaptation|frozen)-/,"").replaceAll("-"," ").replace(/^./,t=>t.toUpperCase())}function N({label:e,value:t}){return a.jsxs("div",{children:[a.jsx("dt",{children:e}),a.jsx("dd",{children:t})]})}function dr({connection:e,selectedEntryKey:t,workproduct:n,runs:r,training:l,onOpenDataset:i,onOpenConversation:o}){const[s,c]=u.useState("overview"),d=l.payload,v=u.useMemo(()=>Qt(n,r,d),[r,d,n]),p=u.useMemo(()=>ea(n,r,d),[r,d,n]),m=u.useMemo(()=>ta(n,d),[d,n]),h=u.useMemo(()=>aa(n,r,d),[r,d,n]),b=u.useMemo(()=>new Map(h.map(x=>[x.id,x])),[h]),y=u.useMemo(()=>na(v,p),[v,p]).find(x=>x.key===t)??null,w=t.startsWith("model-run:")?t.slice(10):null,g=w?m.find(x=>x.id===w)??null:y?.job?m.find(x=>x.id===y.job?.metadata.modelRunId)??null:null,f=y?.job??(g?d?.jobs.find(x=>x.id===g.id||x.metadata.modelRunId===g.id)??null:null),$=u.useMemo(()=>ra(v,p,m),[v,m,p]),I=$.findIndex(x=>x.key===t||f!==null&&x.job?.id===f.id||g!==null&&x.lifecycleRun?.id===g.id),T=I<0?null:$.length-I,P=y?.version??(g?.adapterArtifactLineageId?p.find(x=>x.lineage.id===g.adapterArtifactLineageId)??null:null),D=(g?d?.modelVersions.find(x=>x.id===g.modelVersionId)?.baseModel.modelId:null)??d?.modelVersions.filter(x=>x.modelId===n.id&&x.kind==="base_reference").sort((x,V)=>V.version-x.version)[0]?.baseModel.modelId??null,B=P?.lineage.frozenEvaluationArtifactId??null,A=P?.plan??(f?b.get(f.planId)??null:null),L=P?.taskset??ia(d).find(x=>x.id===(g?.taskset.id??A?.tasksetId))??null,S=Tn(e,f?.id??null,f?.status??null),ne=f?d?.rolloutReceipts.filter(x=>x.jobId===f.id)??[]:[],C=S.detail?.managedEvidence??null,mt=S.detail?.events.some(x=>x.type==="metric"&&x.payload.metricKind==="rollout_trajectory")??!1,re=S.detail?.job.status??g?.status??f?.status??"imported",q=["queued","starting","running","reconciling"].includes(re),Pe=S.detail?.events.at(-1),Ne=F(re),ie=(A&&(A.recipe.method==="sft"||A.recipe.method==="dpo"||A.recipe.method==="grpo")?A.recipe.optimizer.maxSteps:null)??C?.progress.targetOptimizerSteps??null,ht=ie!==null&&typeof f?.metadata.progress=="number"&&Number.isFinite(f.metadata.progress)?Math.floor(Math.max(0,f.metadata.progress)*ie):0,ft=Math.max(0,ht,S.detail?.policyMetrics.reduce((x,V)=>Math.max(x,V.step),0)??0,S.detail?.stepMetrics.reduce((x,V)=>Math.max(x,V.step),0)??0,C?.progress.committedOptimizerSteps??0),we=zn(ft,ie),le=[{id:"overview",label:"Overview"},...f?[{id:"metrics",label:"Metrics"}]:[],{id:"evaluation",label:"Evaluation"},...ne.length||mt?[{id:"rollouts",label:"Rollouts"}]:[],{id:"artifacts",label:"Artifacts"},...f?[{id:"activity",label:"Activity"}]:[]],O=le.some(x=>x.id===s)?s:le[0].id;return!y&&!g?a.jsx("div",{className:"labs-model-version-detail",children:a.jsx("div",{className:"training-run-placeholder",children:"This training attempt is no longer available."})}):g?.kind==="evaluation"?a.jsx(Fn,{run:g,runNumber:T,tasksetName:L?.name??"Unavailable",onOpenTaskset:L?()=>i(L.id):void 0,onOpenConversation:o}):a.jsxs("div",{className:"labs-model-version-detail",children:[a.jsx(tt,{title:g||f?T?`Run ${T}`:"Run details":P?`Version ${P.number}`:"Run details",description:`${Te(g?.method??A?.recipe.method)} on ${Be(A,D)}`,status:a.jsx(ae,{label:q&&Pe?`${Ne} · ${ut(Pe)}`:Ne,pulse:q,tone:q?"positive":void 0,value:re}),metrics:[{label:A?.recipe.method==="grpo"?"Rollout groups":"Training steps",value:we.value,hint:we.hint},{label:"Final reward",value:Bn(g?.reward?.raw??C?.reward.finalMean??null)},{label:"Duration",value:g?J(g.startedAt,X(g.status,g.completedAt,g.updatedAt)):f?J(f.startedAt,X(f.status,f.completedAt,f.updatedAt)):"Not recorded"},{label:"Output",value:P?`Version ${P.number}`:"No version"},{label:"Taskset",value:L?.name??"Unavailable"}]}),a.jsxs("section",{className:"labs-run-detail-tabs",children:[a.jsx("div",{className:"training-detail-tabs",role:"tablist","aria-label":"Run details",children:le.map(x=>a.jsx("button",{"aria-controls":`run-detail-panel-${x.id}`,"aria-selected":O===x.id,className:O===x.id?"active":void 0,id:`run-detail-tab-${x.id}`,role:"tab",type:"button",onClick:()=>c(x.id),children:x.label},x.id))}),a.jsxs("div",{"aria-labelledby":`run-detail-tab-${O}`,className:"labs-run-detail-tab-panel",id:`run-detail-panel-${O}`,role:"tabpanel",children:[O==="overview"?a.jsx(Cn,{baseModel:Be(A,D),compute:g?oe(g.destinationId??""):A?oe(A.destinationId):f?oe(f.destinationId):"Not recorded",duration:g?J(g.startedAt,X(g.status,g.completedAt,g.updatedAt)):f?J(f.startedAt,X(f.status,f.completedAt,f.updatedAt)):"Not recorded",failure:f?.error??g?.failure??null,configuration:_n(A),evidence:C,method:Te(g?.method??A?.recipe.method),output:P?`Version ${P.number}`:"No version created",reward:g?.reward?.raw??C?.reward.finalMean??null,status:g?F(g.status):f?F(f.status):"Imported",statusValue:g?.status??f?.status??"imported",taskset:L?.name??"Unavailable",telemetry:g?.receipt?.schemaVersion==="openpond.modelRunReceipt.v1"?g.receipt.telemetry:null,title:g||f?T?`Run ${T}`:"Run details":P?`Version ${P.number}`:"Run details",versionStatus:P?P.current?"Active":"Available":null,onOpenTaskset:L?()=>i(L.id):void 0,showHeader:!1}):null,O==="metrics"&&f?a.jsx(Nn,{detail:S.detail,error:S.error,loading:S.loading}):null,O==="artifacts"?a.jsxs("dl",{className:"training-configuration-list",children:[a.jsx(E,{label:"Training attempt",value:f?.id??"Provider import"}),a.jsx(E,{label:"Taskset",value:L?.name??"Unavailable"}),a.jsx(E,{label:"Prepared data",value:f?.bundleHash??"Provider managed"}),a.jsx(E,{label:"Version ID",value:P?.lineage.id??"No version created"}),C?.checkpoint?a.jsxs(a.Fragment,{children:[a.jsx(E,{label:"Checkpoint",value:C.checkpoint.id}),a.jsx(E,{label:"Checkpoint size",value:C.checkpoint.sizeBytes==null?"Not reported":dt(C.checkpoint.sizeBytes)}),a.jsx(E,{label:"Checkpoint hash",value:C.checkpoint.sha256??"Not reported"})]}):null,C?.canonicalPublication.state?a.jsx(E,{label:"Registry publication",value:Vn(C.canonicalPublication.state)}):null]}):null,O==="evaluation"?a.jsxs("div",{className:"training-run-evaluation",children:[a.jsx(un,{detail:S.detail,loading:S.loading,pending:q}),!S.detail?.evaluation&&C?.evaluations.length?a.jsx("dl",{className:"labs-inline-facts",children:C.evaluations.map(x=>a.jsx(E,{label:x.kind==="baseline"?"Baseline score":"Candidate score",value:x.score==null?"Not reported":x.score.toFixed(6)},`${x.kind}:${x.policyVersion}`))}):null,B?a.jsx("button",{className:"training-button secondary",type:"button",onClick:()=>{l.actions.downloadArtifact(B)},children:"Download evaluation receipt"}):null]}):null,O==="rollouts"?ne.length?a.jsx(cn,{receipts:ne}):a.jsx(on,{events:S.detail?.events??[]}):null,O==="activity"&&f?a.jsx(Un,{error:f.error??S.error,events:S.detail?.events??[],loading:S.loading}):null]})]})]})}function zn(e,t){const n=Math.max(0,Math.floor(e));if(t===null||!Number.isFinite(t)||t<=0)return{value:n.toLocaleString(),hint:n===1?"completed update":"completed updates"};const r=Math.max(1,Math.floor(t));return{value:`${n.toLocaleString()} / ${r.toLocaleString()}`,hint:"completed / planned"}}function Fn({run:e,runNumber:t,tasksetName:n,onOpenTaskset:r,onOpenConversation:l}){const[i,o]=u.useState("results"),s=e.receipt?.schemaVersion==="openpond.modelEvaluationReceipt.v1"?e.receipt:null,c=e.receipt?.schemaVersion==="openpond.modelEvaluationStopReceipt.v1"?e.receipt:null,d=s?la(s):null,v=s?ye(s):null;return a.jsxs("div",{className:"labs-model-version-detail labs-model-evaluation-detail",children:[a.jsx(tt,{title:t?`Eval ${t}`:"Evaluation run",description:`Harness Refiner benchmark · ${n}`,status:a.jsx(ae,{label:s?v?.comparedTaskCount?`${v.passedTaskCount}/${v.comparedTaskCount} passed`:"No paired result":c?"Inconclusive":F(e.status),value:s?v?.comparedTaskCount&&v.passed?"succeeded":"neutral":c?.terminalClassification??e.status}),metrics:[{label:"Baseline pass rate",value:s?`${(s.quality.baselinePassRate*100).toFixed(1)}%`:"—"},{label:"Candidate pass rate",value:s?`${(s.quality.candidatePassRate*100).toFixed(1)}%`:"—"},{label:"Scenarios",value:s?.attempts?.length??0},{label:"Execution",value:F(e.status)}]}),a.jsx("div",{className:"training-detail-tabs",role:"tablist","aria-label":"Evaluation details",children:["results","scenarios","activity"].map(p=>a.jsx("button",{className:i===p?"active":void 0,"aria-selected":i===p,role:"tab",type:"button",onClick:()=>o(p),children:p==="results"?"Results":p==="scenarios"?"Scenarios":"Activity"},p))}),i==="results"&&s?a.jsxs(a.Fragment,{children:[a.jsx(Ce,{series:[{id:"baseline",label:"Held-out baseline",inputTokens:d.baseline.inputTokens,outputTokens:d.baseline.outputTokens,tokens:d.baseline.totalTokens,passRate:s.quality.baselinePassRate,costUsd:d.baseline.costUsd},{id:"candidate",label:"Held-out refined",inputTokens:d.candidate.inputTokens,outputTokens:d.candidate.outputTokens,tokens:d.candidate.totalTokens,passRate:s.quality.candidatePassRate,costUsd:d.candidate.costUsd}]}),a.jsx(Ce,{series:[{id:"adaptation-baseline",label:"Adaptation baseline",inputTokens:d.adaptation.inputTokens,outputTokens:d.adaptation.outputTokens,tokens:d.adaptation.totalTokens,passRate:s.quality.adaptationBaselinePassRate,costUsd:d.adaptation.costUsd},{id:"adaptation-candidate",label:"Adaptation replay",inputTokens:d.candidate_adaptation.inputTokens,outputTokens:d.candidate_adaptation.outputTokens,tokens:d.candidate_adaptation.totalTokens,passRate:s.quality.adaptationCandidatePassRate,costUsd:d.candidate_adaptation.costUsd}]}),a.jsx(Mn,{receipt:s,run:e,tasksetName:n,onOpenTaskset:r})]}):i==="results"&&c?a.jsx(Rn,{receipt:c,onOpenConversation:l}):i==="results"?a.jsx("section",{className:"labs-run-summary-card",children:e.failure?a.jsx("p",{className:"training-run-placeholder",children:e.failure}):a.jsx(Ln,{run:e})}):null,i==="scenarios"&&s?a.jsxs(a.Fragment,{children:[(s.attempts??[]).length?a.jsx(On,{receipt:s}):null,(s.attempts??[]).length?a.jsx(ct,{receipt:s,onOpenConversation:l}):a.jsx("div",{className:"training-run-placeholder",children:"No per-scenario attempts were retained."})]}):null,i==="activity"?a.jsxs("dl",{className:"labs-inline-facts",children:[a.jsx(E,{label:"Run ID",value:e.id}),a.jsx(E,{label:"Status",value:F(e.status)}),a.jsx(E,{label:"Started",value:e.startedAt?pe(e.startedAt):"Not started"}),a.jsx(E,{label:"Completed",value:e.completedAt?pe(e.completedAt):"In progress"})]}):null]})}function Be(e,t=null){if(!e)return t?_e(t):"Not recorded";const n=e.recipe.method==="sft"||e.recipe.method==="grpo"?e.recipe.baseModel:e.recipe.method==="dpo"?e.recipe.policyModel:e.recipe.method==="ppo"?e.recipe.policyOptimization.policyModel:null;return n?_e(n.id):"Not recorded"}function _e(e){return e.split("/").at(-1)??e}function Bn(e){return e===null?"Not reported":e.toFixed(4)}function _n(e){if(!e)return[];const t=e.recipe;return t.method==="grpo"?[{label:"LoRA rank",value:String(t.lora.rank)},{label:"Learning rate",value:Ve(t.optimizer.learningRate)},{label:"Optimizer steps",value:String(t.optimizer.maxSteps)},{label:"Rollouts per update",value:String(t.rollout.groupSize)},{label:"Rollout concurrency",value:String(t.rollout.concurrency)},{label:"Max output tokens",value:t.rollout.maxOutputTokens.toLocaleString()},{label:"Temperature",value:String(t.rollout.temperature)},{label:"Top P",value:String(t.rollout.topP)}]:t.method==="sft"||t.method==="dpo"?[{label:"LoRA rank",value:String(t.lora.rank)},{label:"Learning rate",value:Ve(t.optimizer.learningRate)},{label:"Optimizer steps",value:String(t.optimizer.maxSteps)}]:[]}function Ve(e){return e===0?"0":e.toExponential(2)}function dt(e){const t=["B","KB","MB","GB","TB"];let n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n.toFixed(r===0?0:2)} ${t[r]}`}function E({label:e,value:t}){return a.jsxs("div",{children:[a.jsx("dt",{children:e}),a.jsx("dd",{children:t})]})}function Vn(e){return e?e.replaceAll("_"," ").replace(/^./,t=>t.toUpperCase()):"Pending"}function Un({error:e,events:t,loading:n}){return n&&!t.length?a.jsx("div",{className:"training-run-placeholder",children:"Loading run events…"}):t.length?a.jsxs("div",{"aria-label":"Training activity log","aria-live":"polite",className:"training-event-log",role:"log",children:[t.map(r=>a.jsxs("div",{className:`training-event-log-line ${r.type}`,children:[a.jsx("time",{dateTime:r.timestamp,children:pe(r.timestamp)}),a.jsx("span",{children:Kn(r.type)}),a.jsx("code",{children:ut(r)})]},r.id)),e?a.jsxs("div",{className:"training-event-log-line failure",children:[a.jsx("time",{children:"—"}),a.jsx("span",{children:"Failure"}),a.jsx("code",{children:e})]}):null]}):a.jsx("div",{className:"training-run-placeholder",children:e??"No normalized run events were recorded."})}function Kn(e){return e.replaceAll("_"," ").replace(/^./,t=>t.toUpperCase())}function ut(e){const t=e.payload,n=_(t.step),r=_(t.maxSteps);if(typeof t.telemetryType=="string"){const l=typeof t.message=="string"?t.message:null,i=typeof t.errorCode=="string"?t.errorCode:null,o=typeof t.telemetrySource=="string"?` · ${t.telemetrySource}`:"";return`${l??t.telemetryType.replaceAll("_"," ")}${n==null?"":` · step ${n}`}${o}${i?` · ${i}`:""}`}if(typeof t.remoteEventType=="string"){const l=Wn(t.remoteEventType),i=typeof t.remotePhase=="string"?Gn(t.remotePhase):null,o=typeof t.errorCode=="string"&&t.errorCode.trim()?t.errorCode.trim():null;return[l,i,n==null?null:`step ${n}`,o?`error ${o}`:null].filter(s=>!!s).join(" · ")}if(e.type==="start")return typeof t.device=="string"?`Worker started on ${t.device}.`:"Worker started.";if(e.type==="progress"&&n!=null)return r==null?`Step ${n}.`:`Step ${n} of ${r}.`;if(e.type==="metric"){const l=typeof t.metricKind=="string"?t.metricKind.replaceAll("_"," "):"metric",i=[G("loss",t.loss),G("reward",t.meanReward??t.reward),G("policy loss",t.policyLoss),G("value loss",t.valueLoss),G("preference accuracy",t.preferenceAccuracy,qn)].filter(d=>!!d),o=typeof t.failureClass=="string"?t.failureClass:null,s=typeof t.failureCode=="string"?t.failureCode:null,c=typeof t.metricId=="string"&&typeof t.value=="number"?` · ${t.metricId}: ${t.value.toPrecision(4)}`:"";return`${l}${n==null?"":` · step ${n}`}${c}${o?` · ${o}`:""}${s?` · ${s}`:""}${i.length?` · ${i.join(" · ")}`:""}`}if(e.type==="checkpoint"){const l=_(t.policyVersion),i=_(t.sizeBytes),o=[l==null?null:`policy ${l}`,i==null?null:dt(i),t.final===!0?"final":null].filter(s=>!!s);return o.length?`Checkpoint committed · ${o.join(" · ")}.`:"Checkpoint committed."}if(e.type==="complete"){const l=_(t.artifactCount);return l==null?"Worker completed.":`Worker completed with ${l} artifacts.`}return e.type==="failure"&&typeof t.message=="string"?t.message:Object.keys(t).length?JSON.stringify(t):"Recorded."}function Wn(e){return{drain:"Rollout drain",infer:"Model inference",materialize_checkpoint:"Checkpoint materialization",optimizer_metric:"Optimizer metric",provision_gpu:"GPU provisioning",rollout_metric:"Rollout trajectory",score_reward_model:"Reward scoring",start_inference:"Policy server",train_step:"Optimizer update",upload_checkpoint:"Checkpoint upload"}[e]??pt(e)}function Gn(e){return{committed:"committed",completed:"completed",eligible:"recorded",failed:"failed",running:"running",succeeded:"succeeded"}[e]??pt(e).toLocaleLowerCase()}function pt(e){return e.replaceAll("_"," ").replace(/^./,t=>t.toUpperCase())}function G(e,t,n=r=>new Intl.NumberFormat(void 0,{maximumFractionDigits:4}).format(r)){const r=_(t);return r==null?null:`${e} ${n(r)}`}function _(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function qn(e){return`${(e*100).toFixed(1)}%`}export{dr as LabModelVersionDetailPage,ut as eventSummary,zn as formatTrainingProgress};
@@ -0,0 +1 @@
1
+ import{r as n,j as e}from"./index-5-B6FIuE.js";import{o as g,b2 as z,X as y,aH as w,i as L}from"./App-BF9L0JUv.js";import{F as C}from"./chat-file-links-CgFHK89C.js";import{I as k}from"./MainPane-StAOFINE.js";import{M as F}from"./minimize-2-O1DnznGK.js";import"./cloud-upload-DOwvN4hp.js";import"./arrow-up-right-BRZWXpqJ.js";import"./square-ju7fWa0W.js";function G({connection:a,expanded:l,selection:s,onClose:j,onResizeStart:h,onToggleExpanded:v}){const c=`${s.scope}:${s.name}`,[o,N]=n.useState({selectionKey:c,path:s.files[0]??"SKILL.md"}),r=o.selectionKey===c&&s.files.includes(o.path)?o.path:s.files[0]??"SKILL.md",[d,u]=n.useState(null),[m,p]=n.useState(null),[S,f]=n.useState(!1);n.useEffect(()=>{if(!a){u(null),p("Connect to the local OpenPond server to load this skill source.");return}let i=!1;return f(!0),p(null),u(null),g.skillSourceFile(a,s.scope,s.name,r).then(t=>{i||u(t)}).catch(t=>{i||p(t instanceof Error?t.message:String(t))}).finally(()=>{i||f(!1)}),()=>{i=!0}},[a,r,s.name,s.scope]);const x=r.split("/").at(-1)??r;return e.jsxs("aside",{className:`workspace-diff-panel native-skill-sidebar lab-skill-sidebar ${l?"expanded":""}`,"aria-label":`Skill package source: ${s.name}`,children:[l?null:e.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize skill source",onPointerDown:h}),e.jsxs("div",{className:"workspace-diff-topbar native-skill-sidebar-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Selected skill file",children:e.jsxs("button",{className:"workspace-diff-tab active",type:"button",role:"tab","aria-selected":!0,children:[e.jsx(b,{path:r}),e.jsx("span",{children:x})]})}),e.jsxs("div",{className:"workspace-diff-toolbar-actions",children:[e.jsx("button",{className:"diff-icon-button",type:"button",title:l?"Dock sidebar":"Expand sidebar","aria-label":l?"Dock sidebar":"Expand sidebar",onClick:v,children:l?e.jsx(F,{size:14}):e.jsx(z,{size:14})}),e.jsx("button",{className:"diff-icon-button",type:"button",title:"Close skill source","aria-label":"Close skill source",onClick:j,children:e.jsx(y,{size:14})})]})]}),e.jsxs("div",{className:"lab-skill-source-layout",children:[e.jsxs("nav",{className:"lab-skill-file-list","aria-label":`${s.name} package files`,children:[e.jsx("div",{className:"lab-skill-file-list-heading",children:"Package files"}),s.files.map(i=>e.jsxs("button",{"aria-current":i===r?"page":void 0,className:i===r?"active":void 0,type:"button",title:i,onClick:()=>N({selectionKey:c,path:i}),children:[e.jsx(b,{path:i}),e.jsx("span",{children:i})]},i))]}),e.jsxs("div",{className:"native-skill-sidebar-body lab-skill-source-body",children:[e.jsxs("header",{className:"native-skill-source-header",children:[e.jsxs("div",{className:"lab-skill-source-title-row",children:[e.jsx("h2",{children:s.name}),e.jsx("span",{children:$(s.scope)})]}),e.jsx("p",{children:s.description}),e.jsx("code",{children:s.packagePath})]}),S?e.jsxs("div",{className:"lab-skill-source-state",children:[e.jsx(w,{className:"spin",size:16})," Loading source…"]}):m?e.jsx("div",{className:"lab-skill-source-state error",children:m}):d?.isBinary?e.jsxs("div",{className:"lab-skill-source-state",children:[e.jsx(k,{size:18}),"Binary asset · ",B(d.byteSize)]}):e.jsx("pre",{className:"native-skill-markdown-source","aria-label":`${x} source`,children:e.jsx("code",{children:d?.content??""})})]})]})]})}function $(a){return a==="codex"?"Codex skill":a==="extension"?"GitHub extension":"OpenPond skill"}function b({path:a}){const l=a.split(".").at(-1)?.toLowerCase();return["avif","gif","jpeg","jpg","png","webp"].includes(l??"")?e.jsx(k,{size:14}):["md","txt","yaml","yml"].includes(l??"")?e.jsx(L,{size:14}):e.jsx(C,{size:14})}function B(a){return a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1048576).toFixed(1)} MB`}export{G as LabSkillSidebar};
@@ -0,0 +1 @@
1
+ .labs-status-badge{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:3px 8px;color:#fff;font-size:10px;font-weight:600;line-height:1.25;white-space:nowrap}.labs-status-badge.is-live{max-width:min(560px,60vw);gap:6px}.labs-status-badge-label{overflow:hidden;text-overflow:ellipsis}.labs-status-live-dot{width:6px;height:6px;flex:0 0 auto;border-radius:999px;background:currentColor;box-shadow:0 0 #ffffff8c;animation:labs-status-live-pulse 1.6s ease-out infinite}@keyframes labs-status-live-pulse{0%{box-shadow:0 0 #ffffff8c}70%,to{box-shadow:0 0 0 5px #fff0}}@media(prefers-reduced-motion:reduce){.labs-status-live-dot{animation:none}}.labs-status-badge.positive{background:#34784e}.labs-status-badge.info{background:#3f6394}.labs-status-badge.warning{background:#8b681f}.labs-status-badge.negative{background:#91484b}.labs-status-badge.neutral{background:#565861}.labs-route{display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:var(--bg);color:var(--text)}.main-pane.page-active>.labs-route{grid-column:1;grid-row:1}.main-pane.page-active:has(>.labs-route){align-content:stretch;overflow:hidden}.main-pane.page-active.diff-open>.labs-route{max-height:100%}.labs-header{display:flex;align-items:center;justify-content:flex-end;gap:16px;min-width:0;padding:8px 28px 0;background:color-mix(in srgb,var(--bg) 94%,var(--panel))}.labs-header-navigation,.labs-header-actions{display:flex;align-items:center;gap:8px;min-width:0}.labs-model-project-picker{display:inline-flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:11px}.labs-model-project-picker select{width:min(260px,34vw);height:28px;padding:0 28px 0 9px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);font:inherit;font-size:12px}.labs-create-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:28px;flex:0 0 auto;padding:0 9px;border:1px solid #fff;border-radius:7px;background:#fff;color:#111;font:inherit;font-size:12px;font-weight:550;cursor:pointer}.labs-create-button:hover{background:#f1f1f1;border-color:#f1f1f1}.labs-primary-tabs{display:flex;align-items:center;gap:2px;min-width:0}.labs-primary-tabs button,.labs-subtabs button{display:inline-flex;align-items:center;gap:6px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:11px 12px 10px;font:inherit;font-size:12px;cursor:pointer}.labs-primary-tabs button.active,.labs-subtabs button.active{border-bottom-color:var(--text);color:var(--text)}.labs-primary-tabs button span,.labs-subtabs button span{color:var(--muted);font-size:10px}.labs-create-anchor{position:relative}.labs-create-menu{position:absolute;z-index:50;top:calc(100% + 4px);right:0;min-width:174px;border:0;border-radius:8px;background:#1d1d1d;box-shadow:0 14px 36px #0000006b;padding:4px}.labs-create-menu button{display:flex;align-items:center;gap:8px;width:100%;min-height:30px;border:0;border-radius:6px;background:transparent;color:var(--muted-strong);padding:0 9px;text-align:left;text-decoration:none;font-size:13px;cursor:pointer}.labs-create-menu button svg{flex:0 0 auto}.labs-create-menu button:hover,.labs-create-menu button:focus-visible{outline:0;background:#ffffff14;color:var(--text)}.labs-create-menu button:disabled{color:var(--muted);cursor:default;opacity:.62}.labs-create-menu button:disabled:hover,.labs-create-menu button:disabled:focus-visible{background:transparent;color:var(--muted)}.labs-create-menu strong{font-size:inherit;font-weight:400}.labs-create-menu small{display:none}.labs-panel{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:rgba(255,255,255,.24) transparent;scrollbar-width:thin}.labs-flat-body{display:grid;gap:12px;width:min(1180px,calc(100% - 56px));margin-inline:auto;padding:8px 0 56px}.labs-datasets-page{box-sizing:border-box;min-height:100%;align-content:start}.labs-dataset-detail-heading h1{margin:0;font-size:20px}.labs-dataset-detail-heading p{max-width:760px;margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.labs-dataset-detail-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px 0 6px}.labs-dataset-detail-actions{display:flex;align-items:center;gap:8px}.labs-datasets-page>.training-detail-tabs{padding:0}.labs-datasets-page>.training-detail-tabs button:disabled{cursor:not-allowed;opacity:.45}.labs-dataset-heading-spacer{width:31px;height:31px}.labs-back-button{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text);cursor:pointer}.labs-back-button:hover{background:var(--panel-soft)}.labs-datasets-table td:first-child{min-width:320px}.labs-workproduct-link{appearance:none;display:grid;width:100%;min-width:0;gap:3px;border:0;background:transparent;color:var(--text);padding:0;text-align:left;cursor:pointer;font:inherit}.labs-workproduct-link strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.labs-workproduct-link span{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.labs-home-models{display:grid;gap:10px;margin-top:10px;border-top:1px solid var(--border);padding-top:18px}.labs-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.labs-section-heading h2{margin:0;font-size:15px}.labs-section-heading p{margin:3px 0 0;color:var(--muted);font-size:10px}.labs-section-heading>button{border:0;background:transparent;color:var(--muted-strong);padding:3px 0;font:inherit;font-size:11px;cursor:pointer}.labs-section-heading>button:hover{color:var(--text)}.labs-home-profile-controls .account-settings{max-width:none}.labs-home-profile-controls .profile-view{width:100%;justify-self:stretch;gap:0;padding:0}.labs-home-profile-controls .profile-control-panel{padding:2px 0 4px}.labs-training-run-name{display:grid;min-width:260px;gap:3px;padding:4px 0}.labs-training-run-progress-wrap{display:grid;gap:2px;margin-top:2px}.labs-training-run-name>strong{color:var(--text);font-size:12px}.labs-training-run-name>span,.labs-training-run-progress small,.labs-training-run-verdicts{color:var(--muted);font-size:10px;line-height:1.4}.labs-training-run-progress{display:flex;align-items:center;gap:8px}.labs-training-run-progress progress{width:min(180px,45%);height:5px;accent-color:var(--cyan)}.labs-model-baseline-facts{margin-top:12px}.labs-training-run-progress small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.labs-workproduct-toolbar{display:flex;align-items:center;gap:8px}.labs-search{display:flex;align-items:center;flex:1;min-width:0;gap:7px;border:1px solid var(--border);border-radius:7px;background:var(--panel);padding:0 9px;color:var(--muted)}.labs-search input{width:100%;min-width:0;border:0;background:transparent;color:var(--text);padding:8px 0;font:inherit;font-size:12px;outline:0}.labs-workproduct-toolbar select{min-width:130px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);padding:8px 9px;font:inherit;font-size:12px}.labs-workproduct-toolbar .dropdown-select{min-width:160px}.labs-workproduct-toolbar .dropdown-trigger{background:var(--panel)}.labs-table-empty{display:flex;min-height:88px;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--muted);font-size:12px}.labs-workproducts-table{min-width:860px}.labs-workproducts-table th:first-child{width:8%}.labs-workproducts-table th:nth-child(2){width:32%}.labs-workproducts-table th:nth-child(4){width:9%}.labs-workproducts-table th:nth-child(5){width:8%}.labs-workproducts-table th:nth-child(6){width:9%}.labs-workproducts-table td:last-child{text-align:right;color:var(--muted)}.labs-workproducts-table.models-only th:first-child{width:42%}.labs-workproducts-table.models-only th:nth-child(2){width:18%}.labs-workproducts-table.models-only th:nth-child(3),.labs-workproducts-table.models-only th:nth-child(4){width:10%}.labs-workproducts-table.models-only td:first-child{min-width:280px}.labs-workproduct-use{min-height:28px}.labs-compact-button{min-height:28px;padding:5px 8px;font-size:11px}.labs-workproduct-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}.labs-workproduct-training,.labs-workproduct-evals{text-align:center}.labs-workproduct-indicator{display:inline-flex;min-width:28px;align-items:center;justify-content:center;gap:4px;color:var(--muted)}.labs-workproduct-indicator strong{font-size:11px;font-variant-numeric:tabular-nums}.labs-workproduct-indicator.active{color:#68a8dd}.labs-workproduct-indicator.positive{color:#55aa74}.labs-workproduct-indicator.negative{color:#d76b70}.labs-workproduct-indicator.neutral,.labs-workproduct-na{color:var(--muted)}.labs-workproduct-na{font-size:12px}.labs-workproduct-updated{color:var(--muted);font-size:10px;white-space:nowrap}.labs-workproducts-table td:nth-child(2) button{display:grid;gap:3px;border:0;background:transparent;color:var(--text);padding:0;font:inherit;text-align:left;cursor:pointer}.labs-workproducts-table td:nth-child(2) strong{font-size:13px}.labs-workproducts-table td:nth-child(2) span{display:block;max-width:360px;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.labs-workproducts-table code{display:block;max-width:220px;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.labs-workproduct-type{color:var(--muted-strong);font-size:11px;font-weight:600}.labs-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:var(--muted);font-size:11px}.labs-pagination button{border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text);padding:5px 8px;font:inherit;font-size:11px;cursor:pointer}.labs-pagination button:disabled{opacity:.42;cursor:default}.labs-suggestions-page{min-height:100%}.labs-subtabs{display:flex;gap:2px;padding:0 28px}.labs-suggestions-body{overflow:auto}.labs-suggestions-body .training-page-body{width:min(1180px,calc(100% - 56px));margin-inline:auto}.labs-workproduct-detail{padding-top:22px}.labs-workproduct-detail-header{align-items:center}.labs-workproduct-detail-header>div:first-child{display:grid;min-width:0;gap:8px}.labs-workproduct-name-row{display:flex;align-items:center;min-width:0;gap:10px}.labs-workproduct-name-row h1{min-width:0}.labs-workproduct-header-actions,.labs-eval-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}.labs-rename-backdrop{position:fixed;z-index:100;inset:0;display:flex;align-items:center;justify-content:center;background:#050609ad;padding:24px}.labs-rename-dialog{width:min(440px,100%);overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--panel);box-shadow:0 22px 70px #0000006b}.labs-rename-dialog>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:11px;border-bottom:1px solid var(--border);padding:16px 17px}.labs-rename-dialog h2,.labs-rename-dialog p{margin:0}.labs-rename-dialog h2{color:var(--text);font-size:14px}.labs-rename-dialog header p{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}.labs-rename-dialog-icon{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:8px;background:#6291d124;color:#7da9e4}.labs-rename-dialog header button{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.labs-rename-dialog header button:hover:not(:disabled){background:#ffffff12;color:var(--text)}.labs-rename-dialog form{display:grid;gap:14px;padding:17px}.labs-rename-dialog form>label{display:grid;gap:7px;color:var(--muted-strong);font-size:11px;font-weight:650}.labs-rename-dialog input{width:100%;min-width:0;border:1px solid var(--border);border-radius:7px;outline:none;background:var(--bg);color:var(--text);padding:9px 10px;font:inherit;font-size:12px}.labs-rename-dialog input:focus{border-color:#5c8cc9;box-shadow:0 0 0 2px #5c8cc92e}.labs-rename-agent-id{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:10px}.labs-rename-agent-id code{overflow:hidden;color:var(--muted-strong);text-overflow:ellipsis;white-space:nowrap}.labs-rename-error{color:#e47b7f;font-size:11px}.labs-rename-dialog footer{display:flex;justify-content:flex-end;gap:8px}.labs-rename-dialog footer button{min-height:30px;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--text);padding:0 12px;font:inherit;font-size:11px;font-weight:650;cursor:pointer}.labs-rename-dialog footer button[type=submit]{border-color:#4e7db9;background:#416da3;color:#fff}.labs-rename-dialog button:disabled{cursor:default;opacity:.5}.labs-run-decision .composer-create-strip{margin:0}.labs-run-decision{display:grid;gap:10px}.labs-run-decision-actions{display:flex;justify-content:flex-end;gap:7px}.labs-status-dot{width:9px;height:9px;flex:0 0 auto;border-radius:999px;background:#565861}.labs-status-dot.small{width:7px;height:7px;margin-left:1px}.labs-status-dot.positive{background:#48a868}.labs-status-dot.info{background:#6291d1}.labs-status-dot.warning{background:#c89b3c}.labs-status-dot.negative{background:#c45e62}.labs-dataset-build-editor{display:flex;min-height:100%;flex-direction:column}.labs-dataset-build-back{align-self:flex-start;margin-top:16px}.labs-dataset-builder-workspace{display:flex;min-height:520px;flex:1;flex-direction:column;padding-top:12px}.labs-dataset-builder-workspace>.training-dialog-scroll-body,.labs-dataset-builder-workspace>.training-evidence-required>.training-dialog-scroll-body{max-height:none;overflow:visible}.labs-dataset-builder-workspace>.training-dialog-actions,.labs-dataset-builder-workspace>.training-evidence-required>.training-dialog-actions{margin-top:24px;border-top:1px solid var(--border);padding-top:16px}.labs-dataset-builder-workspace .training-source-options{max-height:440px}.labs-dataset-grader-list{display:grid;border:1px solid var(--border);border-radius:8px;overflow:hidden}.labs-dataset-grader-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 12px;border-bottom:1px solid var(--border)}.labs-dataset-grader-list>div:last-child{border-bottom:0}.labs-dataset-grader-list strong{font-size:12px}.labs-dataset-grader-list small{color:var(--muted);font-size:10px}.taskset-draft-editor{width:min(1180px,100%);margin:0 auto;padding:10px 24px 56px}.taskset-draft-loading{display:grid;place-items:center;align-content:center;min-height:420px;gap:7px;color:var(--muted);text-align:center}.taskset-draft-loading strong{color:var(--text)}.taskset-draft-header{position:sticky;z-index:12;top:0;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:8px 0 10px;background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.taskset-draft-header>div:first-child{display:grid;min-width:0;gap:2px}.taskset-draft-header .training-text-button{width:max-content;padding-left:0}.taskset-draft-header small,.taskset-draft-json-actions small{color:var(--muted);font-size:10px}.taskset-draft-workspace{max-width:62vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.taskset-draft-validation-toggle{color:var(--muted)}.taskset-draft-name{width:min(520px,55vw);padding:0;border:0;outline:0;background:transparent;color:var(--text);font:700 24px/1.25 inherit}.taskset-draft-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--border)}.taskset-draft-tabs button{flex:none;padding:10px 9px 9px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font:inherit;font-size:11px;cursor:pointer}.taskset-draft-tabs button.active{border-bottom-color:var(--cyan);color:var(--text)}.taskset-draft-body{padding-top:20px}.taskset-draft-validation{display:grid;gap:12px;margin-bottom:18px;padding:14px;border:1px solid var(--border);border-radius:9px;background:var(--panel)}.taskset-draft-validation>div:first-child{display:grid;gap:3px}.taskset-draft-validation>div:first-child span{color:var(--muted);font-size:11px}.taskset-draft-advanced{margin-top:18px;border:1px solid var(--border);border-radius:9px}.taskset-draft-advanced>summary{padding:13px 15px;color:var(--muted);font-size:11px;font-weight:600;cursor:pointer}.taskset-draft-advanced[open]>summary{border-bottom:1px solid var(--border)}.taskset-draft-advanced .taskset-draft-section{padding:16px}.taskset-split-builder{margin-top:0}.taskset-split-builder .training-button{width:max-content}.taskset-json-file-import{width:max-content;cursor:pointer}.taskset-json-file-import input{display:none}.taskset-json-file-import-row{display:flex;align-items:center;gap:10px}.taskset-draft-section{display:grid;gap:18px}.taskset-draft-section>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.taskset-draft-section>header>div{display:grid;gap:5px}.taskset-draft-section h2{margin:0;font-size:17px}.taskset-draft-section p{max-width:760px;margin:0;color:var(--muted);font-size:11px;line-height:1.5}.taskset-draft-field{display:grid;min-width:0;gap:6px}.taskset-draft-field>span:first-child,.taskset-draft-checks legend{color:var(--muted);font-size:10px;font-weight:650}.taskset-draft-field input,.taskset-draft-field select,.taskset-draft-field textarea{width:100%;border:1px solid var(--border);border-radius:7px;background:var(--panel-soft);color:var(--text);padding:8px 9px;font:inherit;font-size:11px}.taskset-draft-field textarea{line-height:1.5;resize:vertical}.taskset-draft-field input:focus,.taskset-draft-field select:focus,.taskset-draft-field textarea:focus{border-color:var(--border-strong);outline:0}.taskset-draft-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.taskset-draft-field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.taskset-draft-checks{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0;border:0;padding:0}.taskset-draft-checks legend{margin-bottom:8px}.taskset-draft-checks label,.taskset-draft-compact-check{display:flex;align-items:center;gap:6px;font-size:11px}.taskset-draft-card-list{display:grid;gap:10px}.taskset-draft-card{display:grid;gap:13px;padding:13px;border:1px solid var(--border);border-radius:9px;background:color-mix(in srgb,var(--panel-soft) 55%,transparent)}.taskset-draft-card.compact{padding:10px}.taskset-draft-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.taskset-draft-card>header strong{font-size:12px;text-transform:capitalize}.taskset-draft-empty{padding:36px 16px;border:1px dashed var(--border);border-radius:9px;color:var(--muted);font-size:11px;text-align:center}.taskset-draft-inline-actions{display:flex;flex-wrap:wrap;gap:7px}.taskset-draft-fixture-summary,.taskset-draft-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;border:1px solid var(--border);border-radius:8px}.taskset-draft-fixture-summary>div,.taskset-draft-toggle>span{display:grid;gap:3px}.taskset-draft-fixture-summary strong,.taskset-draft-toggle strong{font-size:11px}.taskset-draft-fixture-summary span,.taskset-draft-toggle small{color:var(--muted);font-size:10px;line-height:1.4}.taskset-draft-toggle{justify-content:flex-start}.taskset-draft-json-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.taskset-draft-json-error{color:var(--destructive,#e66)!important}.taskset-draft-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;overflow:hidden;border:1px solid var(--border);border-radius:8px}.taskset-draft-summary>div{display:grid;gap:4px;padding:11px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.taskset-draft-summary dt{color:var(--muted);font-size:9px}.taskset-draft-summary dd{margin:0;font-size:12px;font-weight:650;text-transform:capitalize}.taskset-draft-issues{margin:0;padding:13px 13px 13px 32px;border:1px solid var(--warning);border-radius:8px;font-size:11px;line-height:1.7}.taskset-draft-success{padding:13px;border:1px solid var(--positive,#48a868);border-radius:8px;color:var(--positive,#48a868);font-size:11px}.labs-taskset-draft-badge{display:inline-flex;margin-left:7px;padding:1px 5px;border:1px solid var(--border-strong);border-radius:999px;color:var(--muted);font-size:8px;font-weight:650;line-height:1.4;text-transform:uppercase;vertical-align:1px}@media(max-width:760px){.taskset-draft-editor{padding:8px 12px 48px}.taskset-draft-header{position:static;align-items:stretch;flex-direction:column}.taskset-draft-header .model-build-actions{width:100%;flex-wrap:wrap}.taskset-draft-name{width:100%}.taskset-draft-field-grid,.taskset-draft-field-grid.three,.taskset-draft-summary{grid-template-columns:1fr}.taskset-draft-fixture-summary{align-items:flex-start;flex-direction:column}}.labs-models-table{min-width:660px}.labs-models-table th:first-child{width:42%}.labs-models-table th:nth-child(2),.labs-models-table th:nth-child(3){width:18%}.labs-models-table th:nth-child(4){width:12%}.labs-models-table td:nth-child(4){color:var(--muted-strong);font-size:11px}.labs-model-table-summary{display:grid;justify-items:start;gap:5px}.labs-model-table-summary>span{color:var(--muted);font-size:10px;white-space:nowrap}.labs-model-run-list-actions{display:flex;justify-content:center;padding-top:2px}.labs-model-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.labs-dataset-advanced-details{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.labs-dataset-advanced-details summary{width:max-content;color:var(--muted-strong);font-size:11px;font-weight:650;cursor:pointer}.labs-dataset-advanced-details[open] summary{margin-bottom:12px}.labs-dataset-advanced-details .training-button{margin-top:12px}.labs-dataset-advanced-action{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.labs-dataset-advanced-action code{min-width:0;overflow:hidden;color:var(--muted-strong);text-overflow:ellipsis;white-space:nowrap}.labs-dataset-advanced-action .training-button{flex:0 0 auto;margin-top:0}.labs-model-create-dialog textarea,.labs-model-create-dialog select{width:100%;min-width:0;border:1px solid var(--border);border-radius:7px;outline:none;background:var(--bg);color:var(--text);padding:9px 10px;font:inherit;font-size:12px}.labs-model-create-dialog>header{grid-template-columns:minmax(0,1fr) auto;border-bottom:0;padding-bottom:4px}.labs-model-create-dialog{overflow:visible}.labs-model-create-purpose{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;border:0}.labs-model-create-purpose legend{grid-column:1 / -1;margin-bottom:1px;color:var(--muted-strong);font-size:11px;font-weight:650}.labs-model-create-purpose button{display:grid;gap:5px;min-height:82px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text);padding:11px;text-align:left;cursor:pointer}.labs-model-create-purpose button:hover,.labs-model-create-purpose button.selected{background:var(--panel-soft)}.labs-model-create-purpose button.selected{border-color:var(--muted-strong)}.labs-model-create-purpose small{color:var(--muted);font-size:10px;line-height:1.4}.labs-model-create-field{display:grid;gap:7px;color:var(--muted-strong);font-size:11px;font-weight:650}.labs-model-create-field>small{color:var(--muted);font-size:10px;font-weight:500;line-height:1.45}.labs-model-create-select-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:7px}.labs-model-create-select-row .dropdown-select{width:100%}.labs-model-create-select-row .dropdown-trigger{background:var(--bg)}.labs-model-create-select-row .dropdown-menu{right:auto;left:0;width:100%;min-width:100%}.labs-model-create-add{display:inline-flex;width:34px;min-height:34px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--muted-strong);font:inherit;font-size:17px;font-weight:400;cursor:pointer}.labs-model-create-add:hover:not(:disabled){background:#ffffff0f;color:var(--text)}.labs-model-create-dialog textarea{resize:vertical;line-height:1.45}.labs-model-create-dialog label>span,.labs-model-create-field>span{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.labs-model-create-dialog label small,.labs-model-create-field small{color:var(--muted);font-size:9px;font-weight:500}.labs-model-create-dialog textarea:focus{border-color:var(--border);box-shadow:none}.labs-model-create-dialog footer button[type=submit]{border-color:#fff;background:#fff;color:#111}.labs-model-create-dialog footer button[type=submit]:hover:not(:disabled){border-color:#f1f1f1;background:#f1f1f1}.labs-serving-page,.labs-usage-page{display:grid;gap:28px}.labs-operational-section{display:grid;gap:12px;min-width:0}.labs-operational-section>header,.labs-operational-header{display:flex;align-items:end;justify-content:space-between;gap:16px}.labs-operational-section h2,.labs-operational-header h2{margin:0;color:var(--text);font-size:14px;font-weight:560}.labs-operational-section p,.labs-operational-header p{max-width:720px;margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.labs-serving-table,.labs-managed-serving-table{min-width:760px}.labs-operational-section>.training-table-wrap{min-width:0;max-width:100%;contain:inline-size}.labs-serving-model{display:grid;gap:3px}.labs-serving-model strong{color:var(--text);font-size:12px;font-weight:580}.labs-serving-model span{color:var(--muted);font-size:10px}.labs-usage-page>.usage-settings{width:100%;max-width:none;padding:0 0 48px}@media(max-width:640px){.labs-operational-section>header,.labs-operational-header{align-items:start;flex-direction:column}}.labs-change-page{display:grid;gap:20px;padding-top:18px}.labs-change-index,.labs-change-run-detail{display:grid;gap:14px;padding-top:18px}.labs-change-actions{display:flex;flex:0 0 auto;align-items:center;gap:7px}.labs-change-facts{display:grid;grid-template-columns:130px 130px minmax(0,1fr);margin:0;border-block:1px solid var(--border)}.labs-change-facts>div{display:grid;min-width:0;gap:4px;padding:12px 14px;border-right:1px solid var(--border)}.labs-change-facts>div:first-child{padding-left:0}.labs-change-facts>div:last-child{border-right:0}.labs-change-facts dt{color:var(--muted);font-size:10px}.labs-change-facts dd{margin:0;overflow:hidden;font:11px/1.4 monospace;text-overflow:ellipsis;white-space:nowrap}.labs-change-message,.labs-change-empty{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;padding:11px 12px;color:var(--muted);font-size:12px}.labs-change-message.negative,.labs-change-empty.negative{border-color:color-mix(in srgb,#c45e62 48%,var(--border));color:#db7779}.labs-change-timeline{position:relative;display:grid;gap:14px}.labs-change-timeline:before{position:absolute;z-index:0;top:0;bottom:0;left:7.5%;width:1px;background:var(--border);content:""}.labs-change-timeline-item{position:relative;z-index:1}.labs-change-card{display:grid;overflow:hidden;min-width:0;border:1px solid var(--border);border-radius:9px;background:var(--panel)}.labs-change-card-header,.labs-change-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px}.labs-change-card-header{padding-bottom:4px}.labs-change-card-header>span:last-child{color:var(--muted);font-size:10px}.labs-change-card-body{display:grid;gap:6px;padding:14px 13px}.labs-change-card-body h3{margin:0;font-size:14px;line-height:1.45}.labs-change-card-body p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.labs-change-card-footer{padding-top:4px}.labs-change-card-footer.end{justify-content:flex-end}.labs-change-timeline-label{color:var(--muted);font-size:10px}.labs-change-footer-status{display:flex;align-items:center;gap:7px;color:var(--muted-strong);font-size:11px}.labs-change-evals{display:grid}.labs-change-eval{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;padding:0 13px;border-bottom:1px solid var(--border)}.labs-change-eval:last-child{border-bottom:0}.labs-change-eval>div{display:grid;min-width:0;gap:3px}.labs-change-eval strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.labs-change-eval span{color:var(--muted);font-size:10px}.labs-change-evals .labs-change-empty{border:0;border-radius:0}.labs-eval-receipts{display:grid;gap:8px}.labs-agent-change-history{min-width:700px}.labs-agent-change-history th:first-child{width:48%}.labs-agent-change-history td:first-child button{display:grid;gap:3px;width:100%;border:0;background:transparent;color:var(--text);padding:0;font:inherit;text-align:left;cursor:pointer}.labs-agent-change-history td:first-child strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.labs-agent-change-history td:first-child span{color:var(--muted);font-size:10px}.labs-inline-facts{display:flex;gap:28px;flex-wrap:wrap;margin:0}.labs-inline-facts>div{display:grid;gap:3px}.labs-inline-facts dt{color:var(--muted);font-size:10px}.labs-inline-facts dd{margin:0;max-width:420px;overflow-wrap:anywhere;font-size:12px;font-weight:560}.labs-method-tabs{display:inline-flex;gap:3px;margin:0 0 18px;border:1px solid var(--border);border-radius:8px;background:var(--panel-soft);padding:3px}.labs-method-tabs button{display:flex;align-items:baseline;gap:8px;min-width:150px;border:0;border-radius:5px;background:transparent;color:var(--muted);padding:8px 11px;font:inherit;font-size:12px;text-align:left;cursor:pointer}.labs-method-tabs button:hover{color:var(--text)}.labs-method-tabs button.active{background:var(--panel);color:var(--text);box-shadow:inset 0 0 0 1px var(--border)}.labs-method-tabs button strong{margin-left:auto;color:inherit;font-size:10px}.labs-dataset-summary,.labs-eval-copy,.labs-version-storage-copy{margin-top:0;margin-bottom:16px}.labs-dataset-method-readiness{display:grid;gap:9px;margin-top:18px;border-top:1px solid var(--border);padding-top:14px}.labs-dataset-method-readiness ul{display:grid;gap:5px;margin:0;padding-left:18px;color:var(--muted);font-size:11px;line-height:1.45}.labs-dataset-tabs{display:flex;width:fit-content}.labs-dataset-tabs button{min-width:132px}.labs-dataset-tabs button>span{margin-left:auto;color:var(--muted);font-size:10px}.labs-dataset-examples{display:grid;gap:8px}.labs-dataset-example{overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--panel-soft)}.labs-dataset-example>summary{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;list-style:none}.labs-dataset-example>summary::-webkit-details-marker{display:none}.labs-dataset-example[open]>summary{background:var(--panel)}.labs-dataset-example-index{color:var(--muted);font:10px/1 var(--mono)}.labs-dataset-example-title{display:grid;min-width:0;gap:4px}.labs-dataset-example-title strong{overflow:hidden;font-size:12px;font-weight:560;text-overflow:ellipsis;white-space:nowrap}.labs-dataset-example-title small{color:var(--muted);font-size:10px}.labs-dataset-example-body{display:grid;gap:15px;border-top:1px solid var(--border);padding:14px}.labs-dataset-example-body section{display:grid;gap:6px}.labs-dataset-example-body h3,.labs-version-promotion>h3{margin:0;font-size:11px}.labs-dataset-example-body p{margin:0;color:var(--muted-strong);font-size:12px;line-height:1.55}.labs-dataset-example-body pre{max-height:180px;overflow:auto;margin:0;border:1px solid var(--border);border-radius:6px;background:var(--bg);padding:9px 10px;color:var(--text);font:10px/1.5 var(--mono);white-space:pre-wrap}.labs-dataset-example-advanced>summary,.labs-run-technical>summary{color:var(--muted);font-size:11px;cursor:pointer}.labs-dataset-example-advanced .training-configuration-list,.labs-run-technical .training-configuration-list{margin-top:10px}.labs-run-technical{margin-top:14px;border-top:1px solid var(--border);padding-top:10px}.labs-eval-setup>summary{color:var(--muted-strong);font-size:12px;cursor:pointer}.labs-eval-setup .training-table-wrap{margin-top:12px}.labs-version-storage{display:grid;gap:4px;max-width:280px}.labs-version-name{min-width:92px}.labs-version-name strong,.labs-version-name small{display:block}.labs-version-name small{margin-top:3px;color:var(--muted);font-size:10px}.labs-version-storage code{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.labs-version-promotion{display:grid;gap:12px;margin-top:18px;border-top:1px solid var(--border);padding-top:16px}.labs-detail-copy{margin:14px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.labs-expert-bootstrap-summary{display:grid;gap:12px}.labs-expert-bootstrap-summary>div:first-child{display:flex;align-items:center;gap:10px}.labs-expert-bootstrap-summary p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.labs-expert-bootstrap-dialog{width:min(820px,calc(100vw - 40px));max-height:min(780px,calc(100vh - 40px))}.labs-expert-trajectory-list{display:grid;gap:9px;margin-top:16px}.labs-expert-preview-facts{margin-bottom:4px}.labs-expert-trajectory{overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--panel-soft)}.labs-expert-trajectory>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;cursor:pointer;list-style:none}.labs-expert-trajectory>summary::-webkit-details-marker{display:none}.labs-expert-trajectory>summary>span:first-child{display:grid;gap:3px}.labs-expert-trajectory summary strong{font-size:12px}.labs-expert-trajectory summary small,.labs-expert-approval-note{color:var(--muted);font-size:11px}.labs-expert-trajectory[open]>summary>span:last-child{transform:rotate(90deg)}.labs-expert-trajectory-body{display:grid;gap:14px;border-top:1px solid var(--border);padding:13px}.labs-expert-trajectory-body section{display:grid;gap:6px}.labs-expert-trajectory-body h3{margin:0;font-size:11px}.labs-expert-trajectory-body p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.labs-expert-trajectory-body .training-pills span{border:1px solid var(--border);border-radius:999px;background:var(--panel);padding:3px 7px;color:var(--muted);font-family:var(--mono);font-size:10px}.labs-expert-trajectory-body pre{max-height:260px;overflow:auto;margin:0;border:1px solid var(--border);border-radius:6px;background:var(--bg);padding:9px;color:var(--text);font:10px/1.5 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}.labs-expert-messages>summary{color:var(--muted);font-size:11px;cursor:pointer}.labs-expert-messages pre{margin-top:8px}.labs-expert-bootstrap-dialog .training-dialog-actions{flex-wrap:nowrap}.labs-expert-approval-note{margin-right:auto}.labs-eval-summary{display:grid;gap:14px}.labs-eval-actions .dropdown-select{min-width:160px}.labs-validation-list{margin:14px 0 0;padding-left:18px;color:var(--muted);font-size:11px;line-height:1.5}.labs-activity-table{min-width:720px}.labs-model-eval-table{min-width:680px}.labs-training-error{margin:14px 0 0;color:#db7779;font-size:11px;line-height:1.5;white-space:pre-wrap}.labs-source-evals{display:grid;gap:8px}.labs-source-evals>strong{font-size:12px}.labs-source-evals ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.labs-source-evals li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:0 0 6px}.labs-source-evals code{color:var(--muted);font-size:11px}.labs-source-evals+.labs-source-evals,.labs-source-evals+.training-table-wrap{margin-top:14px}.labs-model-versions-table{min-width:760px}.labs-model-version-index{display:grid;min-width:0;gap:16px}.labs-model-run-modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;background:#0000008c}.labs-model-run-modal{width:min(1100px,100%);max-height:calc(100vh - 48px);overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--bg);box-shadow:0 20px 60px #00000059}.labs-model-run-modal .model-build-page{width:100%;min-height:0}.labs-model-section-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.labs-model-section-intro h2,.labs-model-section-intro p{margin:0}.labs-model-section-intro h2{font-size:16px;font-weight:600}.labs-model-section-intro p,.labs-model-section-intro>span{color:var(--muted);font-size:11px}.labs-model-section-intro p{margin-top:4px}.labs-model-section-intro>span{white-space:nowrap}.labs-model-overview{min-width:0}.labs-workproduct-description{max-width:720px;margin:0;color:var(--muted);font-size:11px;line-height:1.5}.labs-workproduct-detail .training-detail-sections{gap:22px;padding-top:22px}.labs-model-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid var(--border);border-radius:9px;background:var(--border);gap:1px}.labs-model-kpi{display:grid;min-width:0;gap:5px;border:0;background:var(--panel);padding:14px 15px;color:inherit;font:inherit;text-align:left}.labs-model-kpi>span,.labs-model-kpi>small{color:var(--muted);font-size:10px}.labs-model-kpi>strong{overflow:hidden;font-size:17px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.labs-model-kpi>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.labs-model-overview .training-detail-section-panel{border-style:solid;background:var(--panel)}.labs-model-runs-table{min-width:760px}.labs-model-version-detail{display:grid;min-width:0;gap:20px}.labs-model-version-detail .training-detail-section-heading h2{text-decoration:none}.labs-model-version-detail .training-detail-section-panel{border-style:solid;background:var(--panel)}.labs-model-run-summary{display:grid;min-width:0;gap:16px}.labs-run-outcome-card,.labs-run-summary-card{overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.labs-run-outcome-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 19px 16px}.labs-run-title-row{display:flex;align-items:center;gap:10px}.labs-run-title-row h2{margin:0;font-size:18px;font-weight:620}.labs-run-outcome-card>header p{margin:4px 0 0;color:var(--muted);font-size:11px}.labs-run-detail-list dt{color:var(--muted);font-size:10px}.labs-run-detail-list dd{margin:0;overflow-wrap:anywhere}.labs-run-summary-card>header{border-bottom:1px solid var(--border);padding:14px 16px 12px}.labs-run-summary-card>header h3{margin:0;font-size:13px;font-weight:610}.labs-run-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;margin:0;padding:2px 16px}.labs-run-detail-list>div{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);align-items:center;gap:16px;border-bottom:1px solid var(--border);padding:9px 0}.labs-run-detail-list>div:nth-child(odd){border-right:1px solid var(--border);padding-right:14px}.labs-run-detail-list>div:nth-child(2n){padding-left:14px}.labs-run-detail-list>div:nth-last-child(-n+2){border-bottom:0}.labs-run-detail-list dd{font-size:12px;font-weight:540;text-align:right}.labs-run-taskset-link{display:inline-flex;max-width:100%;align-items:center;justify-content:flex-end;gap:4px;border:0;background:transparent;color:var(--text);padding:0;font:inherit;font-weight:560;text-align:right;cursor:pointer}.labs-run-taskset-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.labs-run-taskset-link:hover span{text-decoration:underline;text-underline-offset:2px}.labs-run-taskset-link svg{flex:0 0 auto;color:var(--muted)}.labs-run-detail-tabs{min-width:0}.labs-run-detail-tabs>.training-detail-tabs{padding:0}.labs-run-detail-tab-panel{min-width:0;padding-top:14px}.labs-version-row-button{display:grid;width:100%;gap:2px;border:0;background:transparent;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.labs-version-row-button small{color:var(--muted);font-family:var(--mono);font-size:10px}.labs-version-dataset-link{border:0;background:transparent;padding:0;color:var(--text);font:inherit;text-align:left;cursor:pointer}.labs-version-dataset-link:hover{text-decoration:underline;text-underline-offset:2px}.labs-version-detail-dataset{margin-top:14px}.labs-version-icon-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--muted-strong)}.labs-version-icon-button[aria-pressed=true]{background:var(--panel-soft);color:var(--text)}.labs-new-version-dialog{width:min(640px,calc(100vw - 32px))}.labs-new-version-step{display:flex;align-items:flex-start;gap:10px;margin-top:16px}.labs-new-version-step-number{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:var(--blue);color:#fff;font-size:11px;font-weight:700}.labs-new-version-step>div{display:grid;gap:2px}.labs-new-version-step p{margin:0;color:var(--muted);font-size:11px}.labs-new-version-select{display:grid;gap:6px;margin:12px 0;color:var(--muted-strong);font-size:11px}.labs-new-version-select select{width:100%;border:1px solid var(--border);border-radius:8px;background:var(--panel-soft);padding:9px 10px;color:var(--text)}.labs-new-version-dataset-facts{margin-bottom:18px}@media(max-width:1120px){.labs-model-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.labs-header{padding:8px 18px 0}.labs-primary-tabs button{padding-inline:8px}.labs-flat-body{width:calc(100% - 36px);padding:20px 0 36px}.labs-workproduct-toolbar{align-items:stretch;flex-direction:column}.labs-workproduct-toolbar select,.labs-workproduct-toolbar .dropdown-select{width:100%}.labs-workproduct-detail{width:calc(100% - 36px)}.labs-workproduct-detail-header{align-items:flex-start;flex-direction:column}.labs-change-actions{width:100%}.labs-change-actions .training-button{flex:1}.labs-change-facts{grid-template-columns:minmax(0,1fr)}.labs-change-facts>div{border-right:0;border-bottom:1px solid var(--border);padding-inline:14px}.labs-change-facts>div:last-child{border-bottom:0}.labs-change-card-footer:not(.end){align-items:stretch;flex-direction:column}.labs-change-card-footer.end .training-button{width:100%}.labs-inline-facts{gap:16px}.labs-method-tabs{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.labs-dataset-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.labs-method-tabs button,.labs-dataset-tabs button{min-width:0}.labs-suggestions-body .training-page-body{width:calc(100% - 36px)}}@media(max-width:560px){.labs-model-kpi-grid{grid-template-columns:1fr}.labs-run-detail-list>div{grid-template-columns:1fr;gap:4px}.labs-run-detail-list{grid-template-columns:1fr}.labs-run-detail-list>div:nth-child(odd),.labs-run-detail-list>div:nth-child(2n){border-right:0;border-bottom:1px solid var(--border);padding-right:0;padding-left:0}.labs-run-detail-list>div:last-child{border-bottom:0}.labs-run-detail-list dd,.labs-run-taskset-link{justify-content:flex-start;text-align:left}.labs-primary-tabs button{font-size:11px;padding-inline:6px}.labs-primary-tabs button span{display:none}.labs-create-menu{right:-2px;width:min(270px,calc(100vw - 28px))}}.labs-model-benchmark-dialog{width:min(900px,calc(100vw - 40px));max-height:min(820px,calc(100vh - 40px));overflow:hidden}.labs-model-benchmark-dialog .labs-evaluation-comparison{grid-template-columns:repeat(2,minmax(0,1fr))}.labs-model-benchmark-dialog .labs-evaluation-comparison>:last-child,.labs-model-evaluation-detail>.labs-evaluation-comparison>:last-child{grid-column:1 / -1}.labs-model-evaluation-detail>.labs-evaluation-comparison{grid-template-columns:repeat(2,minmax(0,1fr))}.labs-model-benchmark-dialog>header{grid-template-columns:minmax(0,1fr) auto}.labs-model-benchmark-dialog-body{min-height:0;overflow:auto;padding:0 20px 20px}.labs-model-benchmark-card{border:1px solid var(--border);border-radius:14px;background:transparent;padding:16px;display:grid;gap:18px}.labs-model-benchmark-heading,.labs-model-benchmark-result-row,.labs-model-benchmark-controls{display:flex;align-items:center;justify-content:space-between;gap:14px}.labs-model-benchmark-heading h3,.labs-evaluation-chart h4{margin:0}.labs-model-benchmark-heading p,.labs-evaluation-chart header p,.labs-model-benchmark-empty{color:var(--muted);margin:5px 0 0}.labs-evaluation-comparison{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.labs-evaluation-token-mix,.labs-evaluation-token-mix>div{display:grid;gap:8px}.labs-evaluation-token-mix{gap:12px}.labs-evaluation-token-label,.labs-evaluation-token-legend,.labs-evaluation-chart>header,.labs-evaluation-chart-label{display:flex;align-items:center;justify-content:space-between;gap:12px}.labs-evaluation-token-label span,.labs-evaluation-token-mix small{font-size:11px}.labs-evaluation-token-label span,.labs-evaluation-chart-label span{min-width:0;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.labs-evaluation-token-label strong,.labs-evaluation-chart-label strong{color:var(--text);font-size:15px;font-variant-numeric:tabular-nums}.labs-evaluation-token-mix small{color:var(--muted)}.labs-evaluation-token-stack{display:flex;height:9px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--text) 6%,transparent)}.labs-evaluation-token-stack span:first-child{background:#79a7eb}.labs-evaluation-token-stack span:last-child{background:#8d72d9}.labs-evaluation-token-legend{flex:0 0 auto;color:var(--muted);font-size:10px}.labs-evaluation-token-legend span:before{content:"";display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:2px;background:#79a7eb}.labs-evaluation-token-legend span:last-child:before{background:#8d72d9}.labs-evaluation-chart{overflow:hidden;border:1px solid color-mix(in srgb,var(--text) 10%,transparent);border-radius:12px;background:linear-gradient(145deg,color-mix(in srgb,var(--text) 3%,transparent),transparent 62%),var(--panel);padding:16px;display:grid;gap:18px}.labs-evaluation-chart>header{align-items:flex-start}.labs-evaluation-chart>header>div:first-child{min-width:0}.labs-evaluation-chart h4{font-size:13px;font-weight:650}.labs-evaluation-chart header p{max-width:420px;font-size:10px;line-height:1.45}.labs-evaluation-direction{flex:0 0 auto;border:1px solid var(--border);border-radius:999px;color:var(--muted);padding:3px 7px;font-size:9px;white-space:nowrap}.labs-evaluation-chart-series{display:grid;gap:10px}.labs-evaluation-chart-row{display:grid;gap:7px;font-size:13px}.labs-evaluation-chart-track{height:9px;border-radius:999px;background:color-mix(in srgb,var(--text) 6%,transparent);overflow:hidden}.labs-evaluation-chart-track>span{display:block;height:100%;border-radius:inherit;background:#7e8795}.labs-evaluation-chart-row[data-series-index="1"] .labs-evaluation-chart-track>span{background:#67a8ff}.labs-model-benchmark-controls{justify-content:flex-end;padding-top:2px}.labs-model-benchmark-model{display:grid;gap:5px;margin-right:auto}.labs-model-benchmark-model span,.labs-model-benchmark-model small{color:var(--muted);font-size:11px}.labs-model-benchmark-model select{min-width:220px}.labs-model-benchmark-controls label{display:grid;gap:5px;color:var(--muted);font-size:12px}.labs-model-benchmark-controls select{min-width:130px}.labs-model-benchmark-running{border:1px solid var(--border);background:transparent;color:inherit;border-radius:10px;padding:12px 14px;display:flex;justify-content:space-between;gap:12px;text-align:left;cursor:pointer}.labs-benchmark-progress{display:grid;gap:16px}.labs-benchmark-efficiency-summary{display:grid;gap:5px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--blue) 7%,var(--panel));padding:15px 16px}.labs-benchmark-efficiency-summary strong{font-size:17px;font-weight:650}.labs-benchmark-efficiency-summary p{max-width:720px;margin:0;color:var(--muted);font-size:11px;line-height:1.55}.labs-benchmark-progress>header,.labs-benchmark-progress ol{display:flex;align-items:center;justify-content:space-between;gap:12px}.labs-benchmark-progress>header h3{margin:0}.labs-benchmark-progress>header strong{color:var(--muted);font-size:12px}.labs-benchmark-progress-track{height:7px;overflow:hidden;border-radius:999px;background:var(--panel-soft)}.labs-benchmark-progress-track>span{display:block;height:100%;border-radius:inherit;background:var(--blue)}.labs-benchmark-progress ol{margin:0;padding:0;list-style:none}.labs-benchmark-progress li{display:grid;justify-items:center;gap:7px;color:var(--muted);font-size:11px;text-transform:capitalize}.labs-benchmark-progress li>span{width:9px;height:9px;border:1px solid var(--border);border-radius:50%;background:var(--panel-soft)}.labs-benchmark-progress li.complete>span,.labs-benchmark-progress li.active>span{border-color:var(--blue);background:var(--blue)}.labs-benchmark-progress li.active{color:var(--text);font-weight:650}.labs-benchmark-attempt-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.labs-benchmark-line-chart{display:grid;gap:12px;border:1px solid var(--border);border-radius:10px;padding:14px}.labs-benchmark-line-chart header,.labs-benchmark-line-chart header div{display:flex;align-items:center;justify-content:space-between;gap:10px}.labs-benchmark-line-chart h4{margin:0}.labs-benchmark-line-chart header span{color:var(--muted);font-size:10px}.labs-benchmark-line-chart header span:first-child:before,.labs-benchmark-line-chart header span:last-child:before{content:"";display:inline-block;width:7px;height:2px;margin-right:4px;vertical-align:middle;background:var(--muted)}.labs-benchmark-line-chart header span:last-child:before{background:var(--blue)}.labs-benchmark-line-chart svg{width:100%;height:150px;overflow:visible}.labs-benchmark-line-chart svg line{stroke:var(--border);stroke-width:.5}.labs-benchmark-line-chart svg polyline{fill:none;vector-effect:non-scaling-stroke;stroke-width:2}.labs-benchmark-line-chart svg .baseline{stroke:var(--muted)}.labs-benchmark-line-chart svg .candidate{stroke:var(--blue)}.labs-benchmark-line-chart svg circle.baseline{fill:var(--muted)}.labs-benchmark-line-chart svg circle.candidate{fill:var(--blue)}.labs-benchmark-attempt-table td:first-child{min-width:220px}@media(max-width:760px){.labs-evaluation-comparison,.labs-model-evaluation-detail>.labs-evaluation-comparison{grid-template-columns:1fr}.labs-benchmark-attempt-charts{grid-template-columns:1fr}.labs-model-benchmark-heading,.labs-model-benchmark-result-row,.labs-model-benchmark-controls{align-items:stretch;flex-direction:column}}.model-project-page-header{display:grid;gap:16px;border-bottom:1px solid var(--border);padding:2px 0 18px}.model-project-page-heading,.model-project-page-title-row,.model-project-page-actions{display:flex;align-items:center}.model-project-page-heading{justify-content:space-between;gap:24px}.model-project-page-title-row,.model-project-page-actions{gap:10px}.model-project-page-heading h1,.model-project-page-heading p{margin:0}.model-project-page-heading h1{font-size:20px;font-weight:640}.model-project-page-heading p{margin-top:4px;color:var(--muted);font-size:12px}.model-project-page-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));margin:0}.model-project-page-metrics>div{display:grid;gap:4px;border-right:1px solid var(--border);padding:0 16px}.model-project-page-metrics>div:first-child{padding-left:0}.model-project-page-metrics>div:last-child{border-right:0}.model-project-page-metrics dt,.model-project-page-metrics small{color:var(--muted);font-size:10px}.model-project-page-metrics dd{margin:0;overflow-wrap:anywhere;font-size:16px;font-weight:620}@media(max-width:700px){.model-project-page-heading{align-items:flex-start;flex-direction:column}.model-project-page-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 0}.model-project-page-metrics>div:nth-child(2){border-right:0}}.labs-model-compare-dialog{width:min(980px,calc(100vw - 40px));max-height:min(860px,calc(100vh - 40px));overflow:hidden}.labs-model-compare-dialog>header{grid-template-columns:minmax(0,1fr) auto}.labs-model-compare-body{display:grid;min-height:0;gap:18px;overflow:auto;padding:0 20px 20px}.labs-model-compare-selectors,.labs-model-compare-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.labs-model-compare-selectors label{display:grid;gap:6px;color:var(--text-secondary);font-size:11px}.labs-model-compare-selectors select{width:100%;min-width:0;border:1px solid var(--border);border-radius:7px;outline:none;background:var(--bg);color:var(--text);padding:8px 9px;font:inherit;font-size:11px}.labs-model-compare-facts article{display:grid;gap:14px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--panel);padding:14px}.labs-model-compare-facts article>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.labs-model-compare-facts article>header>div{display:grid;min-width:0;gap:3px}.labs-model-compare-facts article>header span{overflow:hidden;color:var(--text-secondary);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.labs-model-compare-facts article>header .training-button{flex:0 0 auto;white-space:nowrap}.labs-model-compare-facts dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;gap:1px;overflow:hidden;border:1px solid var(--border-subtle);border-radius:8px;background:var(--border-subtle)}.labs-model-compare-facts dl>div{display:grid;gap:4px;background:var(--panel);padding:10px}.labs-model-compare-facts dt{color:var(--text-secondary);font-size:9px}.labs-model-compare-facts dd{margin:0;font-size:12px;font-weight:600}@media(max-width:760px){.labs-model-compare-selectors,.labs-model-compare-facts{grid-template-columns:1fr}}