openpond 0.2.65 → 0.2.66

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 (157) hide show
  1. package/dist/app-server.js +1 -1
  2. package/dist/chunks/{acp-PHMBLRCV.js → acp-YYZ3ZO3Q.js} +1 -1
  3. package/dist/chunks/{acp-agent-A7GK2VSH.js → acp-agent-T26S7TU2.js} +1 -1
  4. package/dist/chunks/{app-layer-J66CQ2QN.js → app-layer-5XUMNHDO.js} +1 -1
  5. package/dist/chunks/{app-server-runtime-OMR2VE6L.js → app-server-runtime-TH56EG2Z.js} +1 -1
  6. package/dist/chunks/{apps-IHUFERZO.js → apps-MNT3KXIY.js} +1 -1
  7. package/dist/chunks/chunk-2ZNW6GUU.js +2 -0
  8. package/dist/chunks/{chunk-E2S2EMYQ.js → chunk-BQVB2SPF.js} +5 -5
  9. package/dist/chunks/{chunk-UM6EQOT2.js → chunk-JKI53ED7.js} +1 -1
  10. package/dist/chunks/{chunk-FGOTSCSE.js → chunk-NABPZ7AK.js} +1 -1
  11. package/dist/chunks/{chunk-KGUPAPGR.js → chunk-PLVWARB7.js} +1 -1
  12. package/dist/chunks/chunk-SBQ6KLXB.js +33 -0
  13. package/dist/chunks/{chunk-N2AV7PHV.js → chunk-UXPO3ZV7.js} +2 -2
  14. package/dist/chunks/{command-NDHFZAKA.js → command-NW6BGKOM.js} +3 -3
  15. package/dist/chunks/{configuration-command-465ODYTC.js → configuration-command-4WTS2MZS.js} +1 -1
  16. package/dist/chunks/{connected-evidence-XPAZQRFQ.js → connected-evidence-D7C45HYD.js} +1 -1
  17. package/dist/chunks/{connected-starting-assets-2YX3QVDB.js → connected-starting-assets-4LDXQVLN.js} +1 -1
  18. package/dist/chunks/{core-commands-PJOGRBHJ.js → core-commands-RXPXOYOP.js} +1 -1
  19. package/dist/chunks/{datasets-OTE2I4VT.js → datasets-LBLEKLCS.js} +1 -1
  20. package/dist/chunks/{desktop-test-Q6REQJ7K.js → desktop-test-INJPZ5VP.js} +1 -1
  21. package/dist/chunks/{evaluation-coordination-KRCY2H4C.js → evaluation-coordination-3ARLJAFH.js} +1 -1
  22. package/dist/chunks/{experiment-improvements-7MI2VYBR.js → experiment-improvements-UB4C5CSP.js} +1 -1
  23. package/dist/chunks/{experiments-CNUQKJZE.js → experiments-AHHKFJD6.js} +1 -1
  24. package/dist/chunks/{experiments-signal-4N344D4Y.js → experiments-signal-MTR475QV.js} +1 -1
  25. package/dist/chunks/{help-ZUKVY6RO.js → help-JQA3YMCX.js} +1 -1
  26. package/dist/chunks/{hosted-app-server-composition-DWSU6ASL.js → hosted-app-server-composition-GPXH3BOG.js} +1 -1
  27. package/dist/chunks/{human-review-HOBGC6RC.js → human-review-DVHVJXBA.js} +1 -1
  28. package/dist/chunks/{import-Q3YRFVY7.js → import-CLWTKDG6.js} +1 -1
  29. package/dist/chunks/{opchat-2LLDIWEJ.js → opchat-LMKH3OWR.js} +1 -1
  30. package/dist/chunks/{opchat-bounded-chat-FLDS36LU.js → opchat-bounded-chat-PPOWO7H4.js} +1 -1
  31. package/dist/chunks/{organizations-VIFSOY6P.js → organizations-T6ZUSHNJ.js} +1 -1
  32. package/dist/chunks/{profile-KIHMW2WB.js → profile-RIDNU2I5.js} +1 -1
  33. package/dist/chunks/{project-agent-TJLQNMLA.js → project-agent-GBMVDJY3.js} +1 -1
  34. package/dist/chunks/{sandbox-command-CQO6BEMQ.js → sandbox-command-L5VQ2T6C.js} +1 -1
  35. package/dist/chunks/{sandbox-template-MU33IILL.js → sandbox-template-NN3XQI7M.js} +1 -1
  36. package/dist/chunks/{setup-HSRCZ3WR.js → setup-TXEM2QSG.js} +1 -1
  37. package/dist/chunks/{src-CHQVWHV7.js → src-HJHIBDFX.js} +1 -1
  38. package/dist/chunks/{teams-bot-D3LWA4S5.js → teams-bot-FXMCOCPP.js} +1 -1
  39. package/dist/chunks/{tool-learning-NGO7QHYK.js → tool-learning-O7QTTEDB.js} +1 -1
  40. package/dist/cli.js +1 -1
  41. package/dist/skills/manifest.json +1 -1
  42. package/dist/web/assets/{App-BZuSv1XM.js → App-CNQi3RlI.js} +4 -4
  43. package/dist/web/assets/{AppDialog-BILEK4np.js → AppDialog-DuSd0wk6.js} +1 -1
  44. package/dist/web/assets/{AppTerminalPanel-BvxZ8bwD.js → AppTerminalPanel-DLz34eSs.js} +2 -2
  45. package/dist/web/assets/{AppToastContext-C-FsCKXW.js → AppToastContext-Dklk6CaG.js} +1 -1
  46. package/dist/web/assets/{AppsView-BMaq5oxx.js → AppsView-DkCMr67-.js} +1 -1
  47. package/dist/web/assets/{AttachmentTypeIcon-Bh7Ft_UL.js → AttachmentTypeIcon-DipNT6Tj.js} +1 -1
  48. package/dist/web/assets/{BrowserSidebar-BG2MLJ9I.js → BrowserSidebar-BBaaanMS.js} +1 -1
  49. package/dist/web/assets/{CartesianChart-CS6ES_XT.js → CartesianChart-UU1sdoUO.js} +1 -1
  50. package/dist/web/assets/{ChatTimelineEntry-Dr5X_XyN.js → ChatTimelineEntry-Ct59FKw1.js} +1 -1
  51. package/dist/web/assets/{CollaborationTabs-CPJ2w67F.js → CollaborationTabs-BWYRQ1PE.js} +1 -1
  52. package/dist/web/assets/{CommandMenu-Fe1V7NJd.js → CommandMenu-B08F9x5g.js} +1 -1
  53. package/dist/web/assets/{CommunityView-DHTcmOnI.js → CommunityView-BLTlSxyb.js} +1 -1
  54. package/dist/web/assets/{ComposerAttachments-Ck9VWD6o.js → ComposerAttachments-srWBKvCv.js} +1 -1
  55. package/dist/web/assets/{ComposerCreateImproveStrip-yiXO7cf8.js → ComposerCreateImproveStrip-DqTpU5cO.js} +1 -1
  56. package/dist/web/assets/{ConversationImportsSettings-_VLzUnHQ.js → ConversationImportsSettings-2KC-KQvu.js} +1 -1
  57. package/dist/web/assets/{FilePagePreview-BpcM1DfE.js → FilePagePreview-B-iUVPhh.js} +2 -2
  58. package/dist/web/assets/{GetStartedView-BH-WJ-rW.js → GetStartedView-5v0vBWXy.js} +1 -1
  59. package/dist/web/assets/{GettingStartedDialog-CdQfj7RA.js → GettingStartedDialog-Bn4072K-.js} +1 -1
  60. package/dist/web/assets/{HostedModelLearningReview-C3GsOlu9.js → HostedModelLearningReview-DWF6WPao.js} +1 -1
  61. package/dist/web/assets/{HostedModelLearningSettings-SSMst6dl.js → HostedModelLearningSettings-BYl-2j7B.js} +1 -1
  62. package/dist/web/assets/{HtmlVisual-CH0tb3fv.js → HtmlVisual-C2WsMj90.js} +1 -1
  63. package/dist/web/assets/{LabModelVersionDetailPage-J2t9yILv.js → LabModelVersionDetailPage-CQz29DwD.js} +1 -1
  64. package/dist/web/assets/{LabSkillSidebar-DdDYvfj2.js → LabSkillSidebar-C50P74LI.js} +1 -1
  65. package/dist/web/assets/{LabsRoute-MJwIjSKg.js → LabsRoute-DJRgF1kQ.js} +6 -6
  66. package/dist/web/assets/{MainChatThread-BcwtaTDZ.js → MainChatThread-gwmhe1Nw.js} +2 -2
  67. package/dist/web/assets/{MainPane-DDO6diPt.js → MainPane-CqtgV9rU.js} +5 -5
  68. package/dist/web/assets/{NativeSetupTerminal-BPSUFpRm.js → NativeSetupTerminal-DrQldDsG.js} +2 -2
  69. package/dist/web/assets/{NativeSkillSidebar-DPYavzau.js → NativeSkillSidebar-Clv0IWyn.js} +1 -1
  70. package/dist/web/assets/{NewProjectDialog-BtmvE9Sp.js → NewProjectDialog-Cw_F5Eaa.js} +1 -1
  71. package/dist/web/assets/{OutputsPage-BMRY7RK2.js → OutputsPage-Btyiie4B.js} +1 -1
  72. package/dist/web/assets/{PageChrome-5VRxH6Rp.js → PageChrome-BLLw_cEA.js} +1 -1
  73. package/dist/web/assets/{ProjectsPage-1LHqxOMo.js → ProjectsPage-BpSHWQgj.js} +1 -1
  74. package/dist/web/assets/{RightChatPanelStack-D_7KgExz.js → RightChatPanelStack-xW5rKbp0.js} +1 -1
  75. package/dist/web/assets/RightSidebarHomePanel-BDmIxvIm.js +1 -0
  76. package/dist/web/assets/{ScheduledWorkPage-Dtz4zJ0T.js → ScheduledWorkPage-WytWGQgw.js} +1 -1
  77. package/dist/web/assets/{SettingsView-BeDYNPcD.js → SettingsView-BJq5zNkv.js} +3 -3
  78. package/dist/web/assets/{TasksetDraftEditorPrimitives-CcvKO3YA.js → TasksetDraftEditorPrimitives-BxFEWI9W.js} +1 -1
  79. package/dist/web/assets/{TeamChatView-DaXxOkTe.js → TeamChatView-BisSMAXy.js} +1 -1
  80. package/dist/web/assets/{TerminalOverlay-CF8uB4qA.js → TerminalOverlay-C7OM2F0-.js} +1 -1
  81. package/dist/web/assets/{TrainingCreationPanel-DmMO7x5T.js → TrainingCreationPanel-KH5GFacT.js} +1 -1
  82. package/dist/web/assets/{TrainingDraftPanel-DCHbXjSx.js → TrainingDraftPanel-DzOw13Md.js} +1 -1
  83. package/dist/web/assets/{TrainingRunLineage-CwisTWs_.js → TrainingRunLineage-B2WBOchk.js} +1 -1
  84. package/dist/web/assets/{UsageSettingsSection-Drt7gwRb.js → UsageSettingsSection-nZHno_4P.js} +1 -1
  85. package/dist/web/assets/WorkSidebarPanel-D3Ub_jVj.js +1 -0
  86. package/dist/web/assets/{WorkspaceDiffPanel-Dmbrg0-y.js → WorkspaceDiffPanel-CyTa8Cjs.js} +3 -3
  87. package/dist/web/assets/{WorkspaceEnvironmentMenu-KEZm1gdb.js → WorkspaceEnvironmentMenu-CtZzxQ1e.js} +1 -1
  88. package/dist/web/assets/{WorkspaceFileLocation-ChbOKrPO.js → WorkspaceFileLocation-1U8DDj1J.js} +1 -1
  89. package/dist/web/assets/{WorkspaceGitDialogs-BS2JQKNQ.js → WorkspaceGitDialogs-BO1EUA3G.js} +1 -1
  90. package/dist/web/assets/{WorkspaceMonacoEditor-CN1hE_C4.js → WorkspaceMonacoEditor-Rqq_sKW_.js} +3 -3
  91. package/dist/web/assets/{WorkspacePdfPreview-Clb4m0le.js → WorkspacePdfPreview-zmmMp09R.js} +2 -2
  92. package/dist/web/assets/{WorkspacePresentationPreview-CwQsdvAR.js → WorkspacePresentationPreview-DNbhGjkE.js} +1 -1
  93. package/dist/web/assets/{bot-BNFltD5O.js → bot-D-eTQib6.js} +1 -1
  94. package/dist/web/assets/{chevron-down-BnnT0tnM.js → chevron-down-75im8nFF.js} +1 -1
  95. package/dist/web/assets/chevron-right-CpbCIUFo.js +1 -0
  96. package/dist/web/assets/{chevron-up-BAnwJJN3.js → chevron-up-BD8jg0bQ.js} +1 -1
  97. package/dist/web/assets/{client-choice-storage-Iuzoszas.js → client-choice-storage-CXlWJW5g.js} +1 -1
  98. package/dist/web/assets/{cloud-upload-CdSXJ7ms.js → cloud-upload-4lP-5zmp.js} +1 -1
  99. package/dist/web/assets/{copy-CBFg6m0d.js → copy-DRnATDDY.js} +1 -1
  100. package/dist/web/assets/{createLucideIcon-DF2VR6WA.js → createLucideIcon-CmkSm39S.js} +1 -1
  101. package/dist/web/assets/{cssMode-BSQUZhUO.js → cssMode-Cps-05f3.js} +1 -1
  102. package/dist/web/assets/{external-link-Cql9bKdv.js → external-link-D_nBEDFO.js} +1 -1
  103. package/dist/web/assets/{folder-open-BXdVB5J1.js → folder-open-tD5Lle1M.js} +1 -1
  104. package/dist/web/assets/{folder-plus-Cma2HulC.js → folder-plus-DlZ4hM48.js} +1 -1
  105. package/dist/web/assets/{git-commit-horizontal-eF--16ps.js → git-commit-horizontal-g8KBhvfr.js} +1 -1
  106. package/dist/web/assets/{htmlMode-aLPlQtyU.js → htmlMode-Do72TyNy.js} +1 -1
  107. package/dist/web/assets/icons-B8_Rkg-l.js +1 -0
  108. package/dist/web/assets/{image-CqKPwnBn.js → image-CUZMnZYi.js} +1 -1
  109. package/dist/web/assets/{index-CM0IRu1U.js → index-D7igQSAg.js} +2 -2
  110. package/dist/web/assets/{info-CqeYEqG0.js → info-SmuBZiE5.js} +1 -1
  111. package/dist/web/assets/{jsonMode-fu7bEcHB.js → jsonMode-B2N7W15Y.js} +1 -1
  112. package/dist/web/assets/loader-circle-D_KVxLLz.js +1 -0
  113. package/dist/web/assets/{lspLanguageFeatures-DraXQA4w.js → lspLanguageFeatures-DPmyOFVA.js} +1 -1
  114. package/dist/web/assets/{maximize-2-yMp8X9ts.js → maximize-2-B8HN3jsA.js} +1 -1
  115. package/dist/web/assets/{message-square-DbIMQqfj.js → message-square-CrDvzn66.js} +1 -1
  116. package/dist/web/assets/{monaco.contribution-Bd8EqYGR.js → monaco.contribution-BfOxF9PJ.js} +2 -2
  117. package/dist/web/assets/{monaco.contribution-BQhp1CJs.js → monaco.contribution-CRdTg0FH.js} +2 -2
  118. package/dist/web/assets/{monaco.contribution-CYWKnVxQ.js → monaco.contribution-DNONXznc.js} +2 -2
  119. package/dist/web/assets/{monaco.contribution-CmbWO0tB.js → monaco.contribution-DqqJBDzF.js} +2 -2
  120. package/dist/web/assets/{monitor-DFE2fTkT.js → monitor-CW-M_aaj.js} +1 -1
  121. package/dist/web/assets/{paperclip-D_qsKbVs.js → paperclip-DL449Io5.js} +1 -1
  122. package/dist/web/assets/{pdf-DkQRsi4n.js → pdf-BCq2Oosd.js} +1 -1
  123. package/dist/web/assets/play-DYLqBrwg.js +1 -0
  124. package/dist/web/assets/plus-DXZIpQuY.js +1 -0
  125. package/dist/web/assets/{presentation-BN_kIBPL.js → presentation-CupIXaYv.js} +1 -1
  126. package/dist/web/assets/{python-DB9pj5Hr.js → python-DuGMr666.js} +1 -1
  127. package/dist/web/assets/{refresh-cw-B27ohHfn.js → refresh-cw-CzVf5_oo.js} +1 -1
  128. package/dist/web/assets/{save-D-rwjKop.js → save-DatjrYPV.js} +1 -1
  129. package/dist/web/assets/{settings-lists-DgSaJQA4.js → settings-lists-D2ol3uNK.js} +1 -1
  130. package/dist/web/assets/square-BWB1nbZF.js +1 -0
  131. package/dist/web/assets/{square-terminal-CeoK51wH.js → square-terminal-Buj-s-fz.js} +1 -1
  132. package/dist/web/assets/{submit-issue-command-DZNW7Evj.js → submit-issue-command-wfngGS6Y.js} +1 -1
  133. package/dist/web/assets/{toggleHighContrast-Bs8L1gx0.js → toggleHighContrast-cl0cw2QK.js} +1 -1
  134. package/dist/web/assets/{training-model-data-wHvE7xL1.js → training-model-data-CWnu1bz9.js} +1 -1
  135. package/dist/web/assets/{tsMode-C7EqshxC.js → tsMode-DLEc0PYL.js} +1 -1
  136. package/dist/web/assets/{upload-BWgjC2Jf.js → upload-DaFVH6R1.js} +1 -1
  137. package/dist/web/assets/{useAccountSettings-Dva1MpsJ.js → useAccountSettings-ByxjI9BG.js} +1 -1
  138. package/dist/web/assets/{useAgentInventory-CrjIOmvb.js → useAgentInventory-Df64T07n.js} +1 -1
  139. package/dist/web/assets/{useLocalAgentSchedules-P-UaUKMb.js → useLocalAgentSchedules-DNh_x9gQ.js} +1 -1
  140. package/dist/web/assets/{useQuery-Bn3KqR4r.js → useQuery-yUz7Ui8g.js} +1 -1
  141. package/dist/web/assets/{wifi-off--mKrSPFc.js → wifi-off-CtNwnIJc.js} +1 -1
  142. package/dist/web/assets/{workers-p0Kn2KMK.js → workers-CnqrOtic.js} +1 -1
  143. package/dist/web/assets/x-Bhl-4Zlt.js +1 -0
  144. package/dist/web/assets/{yaml-BeIdC4tu.js → yaml-C9vtYV4w.js} +1 -1
  145. package/dist/web/index.html +1 -1
  146. package/package.json +1 -1
  147. package/dist/chunks/chunk-LOIYNRBC.js +0 -33
  148. package/dist/chunks/chunk-MMJU6PZV.js +0 -2
  149. package/dist/web/assets/RightSidebarHomePanel-iznJwDMf.js +0 -1
  150. package/dist/web/assets/WorkSidebarPanel-BrIIRtGW.js +0 -1
  151. package/dist/web/assets/chevron-right-C8K5PZj7.js +0 -1
  152. package/dist/web/assets/icons-c3vt7y6n.js +0 -1
  153. package/dist/web/assets/loader-circle-pxp89T5x.js +0 -1
  154. package/dist/web/assets/play-BtlX2stU.js +0 -1
  155. package/dist/web/assets/plus-DbASL_gy.js +0 -1
  156. package/dist/web/assets/square-C2caJ3NG.js +0 -1
  157. package/dist/web/assets/x-D9GTV9ke.js +0 -1
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-CM0IRu1U.js";import{t as r}from"./useQuery-Bn3KqR4r.js";import{o as i}from"./training-DCdoHJ0Y.js";import{a,i as o,l as s}from"./TrainingRunLineage-CwisTWs_.js";import{t as c}from"./query-scope-BRpcgljO.js";import"./icons-c3vt7y6n.js";import{c as l,l as u,n as d,o as f,r as p,t as m}from"./training-model-data-wHvE7xL1.js";import{t as h}from"./chevron-down-BnnT0tnM.js";import{t as g}from"./chevron-right-C8K5PZj7.js";import{t as _}from"./loader-circle-pxp89T5x.js";import{Bt as v,Qt as y,bn as b,dn as x}from"./App-BZuSv1XM.js";import{l as S}from"./MainPane-DDO6diPt.js";import{C,S as w,_ as T,b as ee,c as te,d as ne,f as re,g as E,h as ie,l as ae,m as oe,p as D,s as se,u as ce,v as O,x as le,y as ue}from"./LabsRoute-MJwIjSKg.js";function de(e){if(!e)return[];let t=e.recipe;return t.method===`grpo`?[{label:`LoRA rank`,value:String(t.lora.rank)},{label:`Learning rate`,value:k(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:k(t.optimizer.learningRate)},{label:`Optimizer steps`,value:String(t.optimizer.maxSteps)}]:[]}function fe(e,t){if(!e||!t)return[];if(t.parent.kind===`base_model`)return[{label:`Starting checkpoint`,value:`Frozen base · ${t.parent.revision}`},{label:`Optimizer`,value:`Fresh`}];let n=e.modelVersions.find(e=>e.id===t.parent.id);return[{label:`Starting checkpoint`,value:[e.comparisonSeriesEntries.find(e=>e.seriesId===t.seriesId&&e.modelVersionId===t.parent.id)?.label??null,n?`Version ${n.version}`:t.parent.id].filter(e=>!!e).join(` · `)},{label:`Optimizer`,value:`Fresh`}]}function pe(e,t){if(!e||!t||t.parent.kind===`base_model`)return`Frozen base`;let n=e.comparisonSeriesEntries.find(e=>e.seriesId===t.seriesId&&e.modelVersionId===t.parent.id),r=e.modelVersions.find(e=>e.id===t.parent.id);return[n?.label??`Prior checkpoint`,r?`Version ${r.version}`:null].filter(e=>!!e).join(` · `)}function k(e){return e===0?`0`:e.toExponential(2)}var A=e(t(),1),j=n();function me({events:e}){let t=e.filter(e=>e.type===`metric`&&e.payload.metricKind===`rollout_trajectory`);return t.length?(0,j.jsx)(`div`,{className:`training-rollout-receipts`,children:t.map((e,t)=>{let n=e.payload.rewardEligible===!0,r=N(e.payload.reward),i=typeof e.payload.failureClass==`string`?e.payload.failureClass:null,a=typeof e.payload.failureCode==`string`?e.payload.failureCode:null;return(0,j.jsxs)(`details`,{children:[(0,j.jsxs)(`summary`,{children:[(0,j.jsxs)(`span`,{children:[`Attempt `,t+1]}),(0,j.jsx)(`strong`,{children:n?`eligible`:`ineligible`}),(0,j.jsx)(`em`,{children:n&&r!=null?r.toFixed(3):a??i??`not reward eligible`})]}),(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)(M,{label:`Rollout`,value:P(e.payload.rolloutId)}),(0,j.jsx)(M,{label:`Group`,value:P(e.payload.rolloutGroupId)}),(0,j.jsx)(M,{label:`Policy`,value:`v${N(e.payload.policyVersion)??0}`}),(0,j.jsx)(M,{label:`Worker`,value:String((N(e.payload.workerSlot)??0)+1)}),(0,j.jsx)(M,{label:`Reward`,value:r==null?`Not eligible`:String(r)}),(0,j.jsx)(M,{label:`Failure class`,value:i??`None`}),(0,j.jsx)(M,{label:`Failure code`,value:a??`None`}),(0,j.jsx)(M,{label:`Components`,value:JSON.stringify(e.payload.rewardComponents??{})}),(0,j.jsx)(M,{label:`Tokens`,value:`${N(e.payload.inputTokens)??0} input · ${N(e.payload.outputTokens)??0} output`})]})]},e.id)})}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No managed attempts were recorded for this run.`})}function he({receipts:e}){let[t,n]=(0,A.useState)(!1);if(!e.length)return(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No on-policy rollout receipts were recorded for this run.`});let r=[...e].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)),i=t?r:r.slice(0,24);return(0,j.jsxs)(`div`,{className:`training-rollout-receipts`,children:[e.length>24?(0,j.jsxs)(`div`,{className:`training-rollout-receipt-controls`,children:[(0,j.jsx)(`span`,{children:t?`Showing all ${e.length} receipts`:`Showing latest ${i.length} of ${e.length} receipts`}),(0,j.jsx)(`button`,{className:`training-text-button`,type:`button`,onClick:()=>n(e=>!e),children:t?`Show latest 24`:`Show all ${e.length}`})]}):null,i.map(e=>(0,j.jsxs)(`details`,{children:[(0,j.jsxs)(`summary`,{children:[(0,j.jsx)(`span`,{children:ge(e.providerTrace.rolloutId)}),(0,j.jsx)(`strong`,{children:e.status}),(0,j.jsx)(`em`,{children:e.reward.eligible&&e.reward.raw!=null?e.reward.raw.toFixed(3):e.failureClass??`not reward eligible`})]}),(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)(M,{label:`Correlation`,value:e.correlationId}),(0,j.jsx)(M,{label:`Task`,value:e.taskId}),(0,j.jsx)(M,{label:`Policy`,value:e.policy.modelId}),(0,j.jsx)(M,{label:`Checkpoint`,value:e.policy.checkpointId??`Provider initial policy`}),(0,j.jsx)(M,{label:`Environment`,value:`${e.environment.id}@${e.environment.version}`}),(0,j.jsx)(M,{label:`World`,value:`${e.environment.worldId} · ${e.environment.worldHash}`}),(0,j.jsx)(M,{label:`Raw reward`,value:e.reward.raw==null?`Not eligible`:String(e.reward.raw)}),(0,j.jsx)(M,{label:`Components`,value:JSON.stringify(e.reward.components)}),(0,j.jsx)(M,{label:`Outcome`,value:e.verifier?.outcome??e.failureClass??`Pending`}),(0,j.jsx)(M,{label:`Trace`,value:`${e.providerTrace.experimentId}/${e.providerTrace.rolloutId}`})]})]},e.id))]})}function M({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function N(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function P(e){return typeof e==`string`&&e?e:`Not recorded`}function ge(e){return e.replace(/^lineage_/,``).slice(0,18)}function _e({detail:e,loading:t,pending:n=!1}){if(t&&!e)return(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`Loading evaluation results…`});let r=e?.evaluation;return r?(0,j.jsxs)(`div`,{className:`training-run-evaluation`,children:[(0,j.jsxs)(`div`,{className:`training-metric-summary`,children:[(0,j.jsx)(F,{label:`Base score`,value:ye(r.base.meanScore)}),(0,j.jsx)(F,{label:`Trained score`,value:ye(r.trained.meanScore)}),(0,j.jsx)(F,{label:`Score change`,value:L(r.meanScoreDelta)}),(0,j.jsx)(F,{label:`Trained pass rate`,value:I(r.trained.passRate)})]}),r.base.count===0?(0,j.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?(0,j.jsx)(`p`,{className:`training-muted`,children:`Outputs were captured, but the grader was unavailable, so this run has no evaluation score.`}):null,(0,j.jsx)(`div`,{className:`training-table-wrap`,children:(0,j.jsxs)(`table`,{className:`training-data-table training-evaluation-table`,children:[(0,j.jsx)(`thead`,{children:(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`th`,{children:`Test example`}),(0,j.jsx)(`th`,{children:`Base`}),(0,j.jsx)(`th`,{children:`Trained`}),(0,j.jsx)(`th`,{children:`Result`})]})}),(0,j.jsx)(`tbody`,{children:r.examples.map(e=>(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`td`,{children:(0,j.jsxs)(`details`,{children:[(0,j.jsx)(`summary`,{children:e.taskId}),(0,j.jsx)(ve,{input:e.input,baseOutput:e.baseOutput,trainedOutput:e.trainedOutput,baseGrade:e.baseGrade,trainedGrade:e.trainedGrade})]})}),(0,j.jsx)(`td`,{children:be(e.baseGrade)}),(0,j.jsx)(`td`,{children:be(e.trainedGrade)}),(0,j.jsx)(`td`,{children:xe(e.baseGrade,e.trainedGrade)})]},e.taskId))})]})})]}):(0,j.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 ve({input:e,baseOutput:t,trainedOutput:n,baseGrade:r,trainedGrade:i}){let a=[...new Set([...r?.feedback??[],...i?.feedback??[]])];return(0,j.jsxs)(`div`,{className:`training-evaluation-output`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Input`}),(0,j.jsx)(`pre`,{children:JSON.stringify(e,null,2)})]}),t?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Base output`}),(0,j.jsx)(`pre`,{children:JSON.stringify(t,null,2)})]}):null,n?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Trained output`}),(0,j.jsx)(`pre`,{children:JSON.stringify(n,null,2)})]}):null,a.length?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Grader feedback`}),(0,j.jsx)(`p`,{children:a.join(` `)})]}):null]})}function F({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:e}),(0,j.jsx)(`strong`,{children:t})]})}function ye(e){return e==null?`Not recorded`:e.toFixed(3)}function I(e){return e==null?`Not recorded`:`${Math.round(e*100)}%`}function L(e){return e==null?`Not comparable`:`${e>=0?`+`:``}${e.toFixed(3)}`}function be(e){return e?.status===`unavailable`?`Unavailable`:e?.score==null?`Not scored`:e.score.toFixed(3)}function xe(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`;let 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)}`}function Se({connection:e,lineageId:t,jobId:n,onSaved:r}){let i=n??t,a=n?`jobs`:`models`,[o,s]=(0,A.useState)(null),[c,l]=(0,A.useState)(0),[u,d]=(0,A.useState)(!0),[f,p]=(0,A.useState)(!1),[m,h]=(0,A.useState)(!1),[g,_]=(0,A.useState)(null),[y,x]=(0,A.useState)(null),[S,C]=(0,A.useState)(``),[w,T]=(0,A.useState)(null),[ee,te]=(0,A.useState)([]),[ne,re]=(0,A.useState)(!1);(0,A.useEffect)(()=>{if(!e){d(!1),p(!1),_(`Connect to OpenPond to review this candidate.`);return}let t=!0;return d(!0),p(!1),_(null),te([]),(async()=>{try{if(a===`models`){let n=await b.candidateReview(e,i);t&&n&&s(n)}let n=await b.candidateReview(e,i,!0,a);t&&(s(n),p(!!n))}catch(e){t&&_(R(e))}finally{t&&d(!1)}})(),()=>{t=!1}},[e,i,a,c]);function E(e){x(e),C(``),T(null)}async function ie(){if(!e||!o||!y||!S.trim())return;let t=w&&w.reason===S.trim()&&w.decision===y?w:{schemaVersion:`openpond.trainingCandidateDecisionRequest.v1`,...o.target,decision:y,reason:S.trim(),idempotencyKey:crypto.randomUUID(),expectedDecision:o.decision?{id:o.decision.id,contentHash:o.decision.contentHash}:null};T(t),h(!0),_(null);try{s(await b.recordCandidateReview(e,i,t,a)),x(null),T(null),te([]),await r()}catch(e){_(R(e))}finally{h(!1)}}let ae=(ee.at(-1)??o?.decision)?.request.expectedDecision;async function oe(){if(e&&ae){re(!0),_(null);try{let t=await b.candidateReviewHistory(e,i,ae,a);te(e=>[...e,t])}catch(e){_(R(e))}finally{re(!1)}}}let D=o?.decision;return(0,j.jsxs)(`section`,{className:`training-run-evaluation`,"aria-label":`Candidate review`,children:[(0,j.jsx)(`h3`,{children:`Candidate review`}),D?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`strong`,{children:D.request.decision===`accepted`?`Accepted`:`Rejected`}),(0,j.jsx)(`p`,{children:D.request.reason}),(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Review `,D.revision,` · `,new Date(D.decidedAt).toLocaleString()]})]}):(0,j.jsx)(`p`,{className:`training-muted`,children:u?`Loading candidate review…`:o?`No candidate decision recorded.`:`Candidate review unavailable.`}),o?(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Last synced `,new Date(o.syncedAt).toLocaleString(),`. Acceptance keeps this candidate for later use; serving is activated separately.`]}):null,g?(0,j.jsx)(v,{error:g}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:u||m,onClick:()=>l(e=>e+1),children:`Refresh review`}),(0,j.jsx)(`button`,{className:`training-button`,type:`button`,disabled:!f||u||m||D?.request.decision===`accepted`,onClick:()=>E(`accepted`),children:`Accept candidate`}),(0,j.jsx)(`button`,{className:`training-button danger`,type:`button`,disabled:!f||u||m||D?.request.decision===`rejected`,onClick:()=>E(`rejected`),children:`Reject candidate`})]}),ee.map(e=>(0,j.jsxs)(`details`,{className:`training-evidence`,children:[(0,j.jsxs)(`summary`,{children:[`Review `,e.revision,` · `,e.request.decision]}),(0,j.jsx)(`p`,{children:e.request.reason}),(0,j.jsx)(`p`,{children:new Date(e.decidedAt).toLocaleString()})]},e.id)),ae?(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:ne||m,onClick:()=>void oe(),children:ne?`Loading…`:`Earlier review`}):null,y?(0,j.jsx)(`div`,{className:`training-dialog-backdrop`,role:`presentation`,onMouseDown:()=>!m&&x(null),children:(0,j.jsxs)(`section`,{className:`training-dialog training-promotion-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Review candidate`,onMouseDown:e=>e.stopPropagation(),children:[(0,j.jsx)(`div`,{className:`training-dialog-header`,children:(0,j.jsx)(`h2`,{children:y===`accepted`?`Accept this candidate?`:`Reject this candidate?`})}),(0,j.jsx)(`p`,{children:`The adapter and its recorded evaluation remain in the candidate’s history.`}),(0,j.jsxs)(`label`,{className:`training-promotion-reason`,children:[(0,j.jsx)(`span`,{children:`Reason`}),(0,j.jsx)(`textarea`,{autoFocus:!0,maxLength:5e3,value:S,onChange:e=>C(e.target.value)})]}),g?(0,j.jsx)(v,{error:g}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:m,onClick:()=>x(null),children:`Cancel`}),(0,j.jsx)(`button`,{className:`training-button ${y===`rejected`?`danger`:``}`,type:`button`,disabled:m||!S.trim(),onClick:()=>void ie(),children:m?`Saving…`:w?`Retry save`:`Save decision`})]})]})}):null]})}function R(e){return e instanceof Error?e.message:`Candidate review could not be loaded.`}function Ce({connection:e,jobId:t,evaluations:n}){let[r,i]=(0,A.useState)(null),a=n.filter(e=>e.reference),o=a.find(e=>e.reference?.id===r)??a.filter(e=>e.kind===`candidate`).at(-1)??a[0];return!e||!o?.reference?null:(0,j.jsxs)(`section`,{className:`training-run-evaluation`,"aria-label":`Retained evaluation answers`,children:[(0,j.jsxs)(`label`,{className:`training-taskset-selector`,children:[(0,j.jsx)(`span`,{children:`Evaluation answers`}),(0,j.jsx)(`select`,{value:o.reference.id,onChange:e=>i(e.target.value),children:a.map(e=>(0,j.jsxs)(`option`,{value:e.reference.id,children:[e.kind===`baseline`?`Baseline`:`Candidate`,` · policy `,e.policyVersion]},e.reference.id))})]}),(0,j.jsx)(z,{connection:e,jobId:t,evaluation:o.reference},`${t}:${o.reference.id}:${o.reference.contentHash}`)]})}function z({connection:e,jobId:t,evaluation:n}){let[r,i]=(0,A.useState)(),[a,o]=(0,A.useState)([]),[s,c]=(0,A.useState)(null),[l,u]=(0,A.useState)(null),[d,f]=(0,A.useState)(!0),[p,m]=(0,A.useState)(0),{id:h,contentHash:g}=n;return(0,A.useEffect)(()=>{let n=!0;return f(!0),u(null),c(null),b.trainingEvaluationTasks(e,t,{id:h,contentHash:g},r).then(e=>{n&&c(e)}).catch(e=>{n&&u(e instanceof Error?e.message:String(e))}).finally(()=>{n&&f(!1)}),()=>{n=!1}},[e,t,h,g,r,p]),(0,j.jsxs)(`div`,{className:`training-run-evaluation`,"aria-busy":d,children:[d?(0,j.jsx)(`p`,{className:`training-muted`,children:`Loading recorded answers…`}):null,l?(0,j.jsx)(v,{error:l,children:(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,onClick:()=>m(e=>e+1),children:`Retry answers`})}):null,s?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Tasks `,s.offset+1,`–`,s.offset+s.tasks.length,` of`,` `,s.total,`. Recorded outputs and scores are retained for this run.`]}),s.tasks.map((e,t)=>(0,j.jsxs)(`details`,{className:`training-evidence`,children:[(0,j.jsxs)(`summary`,{children:[`Example `,s.offset+t+1,` · score `,e.score.toFixed(3)]}),(0,j.jsxs)(`div`,{className:`training-evaluation-output`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Instruction`}),(0,j.jsx)(`pre`,{children:e.input.instruction})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Context`}),(0,j.jsx)(`pre`,{children:JSON.stringify(e.input.context,null,2)})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Recorded output`}),(0,j.jsx)(`pre`,{children:e.output})]})]})]},e.taskId))]}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:d||!a.length,onClick:()=>{i(a.at(-1)),o(e=>e.slice(0,-1))},children:`Previous tasks`}),(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:d||!s?.nextCursor,onClick:()=>{s?.nextCursor&&(o(e=>[...e,r]),i(s.nextCursor))},children:`Next tasks`})]})]})}var B=new Set([`queued`,`starting`,`running`,`cancelling`,`reconciling`]);function we(e,t,n,i=!1){let a=[`training-run-detail`,c(e),t,i],o=!!(e&&t),s=r({queryKey:[...a,`retained`],queryFn:({signal:n})=>b.trainingRunDetail(e,t,{includeEvaluation:i,refresh:!1,signal:n}),enabled:o,staleTime:3e4,gcTime:6e4}),l=r({queryKey:[...a,`hosted`],queryFn:({signal:n})=>b.trainingRunDetail(e,t,{includeEvaluation:i,signal:n}),enabled:o,staleTime:3e4,gcTime:6e4,refetchInterval:n&&B.has(n)?3e3:!1,refetchIntervalInBackground:!1}),u=l.data??s.data??null;return{detail:u,loading:o&&!u&&(s.isPending||l.isPending),error:l.error?.message??s.error?.message??null,refresh:async()=>(await l.refetch()).data??null}}function Te({title:e,status:t,statusValue:n,versionStatus:r,method:i,baseModel:a,taskset:o,compute:s,duration:c,output:l,reward:u,telemetry:d,evidence:f,configuration:p,children:m,failure:h,onOpenTaskset:_,showHeader:v=!0}){let y=d?.cost.providerReportedUsd??d?.cost.estimatedUsd??f?.cost.totalUsd??null;return(0,j.jsxs)(`div`,{className:`labs-model-run-summary`,children:[v?(0,j.jsx)(`section`,{className:`labs-run-outcome-card`,children:(0,j.jsx)(`header`,{children:(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`div`,{className:`labs-run-title-row`,children:[(0,j.jsx)(`h2`,{children:e}),(0,j.jsx)(C,{label:t,value:n})]}),(0,j.jsxs)(`p`,{children:[Ee(i),` on `,a]})]})})}):null,m,(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Run setup`})}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(V,{label:`Training method`,value:i}),(0,j.jsx)(V,{label:`Base model`,value:a}),(0,j.jsx)(V,{label:`Compute`,value:s}),(0,j.jsx)(V,{label:`Output`,value:l}),r?(0,j.jsx)(V,{label:`Version status`,value:r}):null,(0,j.jsx)(V,{label:`Duration`,value:c}),(0,j.jsx)(V,{label:`Run cost`,value:y===null?`Not reported`:`$${y.toFixed(4)}`}),(0,j.jsx)(V,{label:le(n)?`Latest reward`:`Final reward`,value:u===null?`Not reported`:u.toFixed(4)}),p.map(e=>(0,j.jsx)(V,{label:e.label,value:e.value},e.label)),d||f?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(H,{label:`GPU`,value:U(d,f)}),(0,j.jsx)(H,{label:`Tokens`,value:`${W(d?.usage.promptTokens??f?.usage.inputTokens??null)} prompt · ${W(d?.usage.generatedTokens??f?.usage.outputTokens??null)} generated`}),(0,j.jsx)(H,{label:`Trajectories`,value:`${W(d?.usage.successfulTrajectories??f?.reward.eligibleTrajectoryCount??null)} succeeded · ${W(d?.usage.failedTrajectories??(f?f.reward.trajectoryCount-f.reward.eligibleTrajectoryCount:null))} failed`}),(0,j.jsx)(H,{label:`Optimizer updates`,value:W(d?.usage.optimizerSteps??f?.progress.committedOptimizerSteps??null)}),(0,j.jsx)(H,{label:`GPU time`,value:d?.usage.gpuSeconds==null?`Not reported`:`${d.usage.gpuSeconds.toFixed(1)} seconds`})]}):(0,j.jsx)(V,{label:`Resource usage`,value:`Not retained for this run`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Taskset`}),(0,j.jsx)(`dd`,{children:_?(0,j.jsxs)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:_,children:[(0,j.jsx)(`span`,{children:o}),(0,j.jsx)(g,{"aria-hidden":`true`,size:14})]}):o})]})]})]}),h?(0,j.jsx)(`p`,{className:`labs-training-error`,children:h}):null]})}function V({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function H({label:e,value:t}){return(0,j.jsx)(V,{label:e,value:t})}function U(e,t){let 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?De(r):`Unreported`}`}function W(e){return e===null?`Not reported`:e.toLocaleString()}function Ee(e){return e===`RFT`?`Reinforcement fine-tuning`:`${e} training`}function De(e){return e.split(` · `).map(e=>e.replaceAll(`_`,` `).replace(/\b[a-z]/g,e=>e.toUpperCase())).join(` · `)}function G({receipt:e,onOpenConversation:t}){return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Inconclusive benchmark`})}),(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:e.reason}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(Y,{label:`Held-out baseline tokens`,value:e.usage.baseline.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Adaptation baseline tokens`,value:e.usage.adaptation.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Refiner tokens`,value:e.usage.refiner.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Grader tokens`,value:e.usage.grader.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Observed / maximum spend`,value:`$${e.budget.observedSpendUsd.toFixed(4)} / $${e.budget.maximumSpendUsd.toFixed(2)}`}),(0,j.jsx)(Y,{label:`Harness candidate`,value:e.stopReason===`candidate_harness_unchanged`?`Unchanged`:`Lineage invalid`}),(0,j.jsx)(Y,{label:`Completed attempts`,value:e.attempts.length.toLocaleString()}),(0,j.jsx)(Y,{label:`Candidate attempts`,value:`Skipped`})]})]}),e.attempts.length?(0,j.jsx)(J,{receipt:e,onOpenConversation:t}):null]})}function Oe({run:e}){let 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`)),i=e.evaluationProgress?.completedAttempts??0,a=e.evaluationProgress?.totalAttempts??1;return(0,j.jsxs)(`div`,{className:`labs-benchmark-progress`,children:[(0,j.jsxs)(`header`,{children:[(0,j.jsx)(`h3`,{children:`Benchmark progress`}),(0,j.jsxs)(`strong`,{children:[i,` of `,a,` attempts`]})]}),(0,j.jsx)(`div`,{className:`labs-benchmark-progress-track`,"aria-hidden":`true`,children:(0,j.jsx)(`span`,{style:{width:`${Math.min(100,i/a*100)}%`}})}),(0,j.jsx)(`ol`,{children:t.map((e,t)=>(0,j.jsxs)(`li`,{className:t<r?`complete`:t===r?`active`:void 0,children:[(0,j.jsx)(`span`,{}),n[e]]},e))})]})}function K({receipt:e}){let t=O(e),n=t.pairs.filter(e=>e.cohort===`held_out`),r=t.pairs.filter(e=>e.cohort===`adaptation`),i=e=>e.length?e.reduce((e,t)=>e+t,0)/e.length:0;return(0,j.jsxs)(`div`,{className:`labs-benchmark-attempt-charts`,children:[(0,j.jsx)(q,{title:`Held-out tokens by task`,baseline:n.map(e=>e.baseline.totalTokens),candidate:n.map(e=>e.refined.totalTokens),format:e=>Math.round(e).toLocaleString()}),(0,j.jsx)(q,{title:`Adaptation tokens by task`,baseline:r.map(e=>e.baseline.totalTokens),candidate:r.map(e=>e.refined.totalTokens),format:e=>Math.round(e).toLocaleString()}),(0,j.jsx)(q,{title:`Held-out quality by task`,baseline:n.map(e=>e.baseline.score),candidate:n.map(e=>e.refined.score),format:e=>e.toFixed(2),summarize:i}),(0,j.jsx)(q,{title:`Adaptation quality by task`,baseline:r.map(e=>e.baseline.score),candidate:r.map(e=>e.refined.score),format:e=>e.toFixed(2),summarize:i})]})}function ke({receipt:e,run:t,tasksetName:n,onOpenTaskset:r}){let i=O(e),a=i.comparedTaskCount>0,o=i.passed,s=i.tokenDeltaPercent===null?`—`:`${i.tokenDeltaPercent>0?`+`:``}${i.tokenDeltaPercent.toFixed(2)}%`,c=e=>{let t=i.cohorts[e];return`${t.passedTaskCount}/${t.comparedTaskCount} passed`};return(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Token efficiency`})}),a?(0,j.jsxs)(`div`,{className:`labs-benchmark-efficiency-summary`,children:[(0,j.jsxs)(`strong`,{children:[i.passedTaskCount,` of `,i.comparedTaskCount,` tasks passed`]}),(0,j.jsxs)(`p`,{children:[`A task passes only when its refined token count is strictly lower than its own baseline. `,i.failedTaskCount,` failed this token-efficiency test; aggregate usage changed by `,s,`.`]})]}):(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:`Paired task-level token evidence is unavailable for this run.`}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(Y,{label:`Execution`,value:f(t.status)}),(0,j.jsx)(Y,{label:`Token-efficiency result`,value:o?`Passed`:`Failed`}),(0,j.jsx)(Y,{label:`Efficiency passes`,value:`${i.passedTaskCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`Efficiency failures`,value:`${i.failedTaskCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`All-task foreground tokens`,value:`${i.baselineTokens.toLocaleString()} → ${i.refinedTokens.toLocaleString()}`}),(0,j.jsx)(Y,{label:`Aggregate token change`,value:s}),(0,j.jsx)(Y,{label:`Adaptation replay`,value:c(`adaptation`)}),(0,j.jsx)(Y,{label:`Held-out replay`,value:c(`held_out`)}),(0,j.jsx)(Y,{label:`Task quality`,value:`${i.baselinePassedCount}/${i.comparedTaskCount} → ${i.refinedPassedCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`Result lineage`,value:e.lineage.valid?`Valid`:`Invalid`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Taskset`}),(0,j.jsx)(`dd`,{children:r?(0,j.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:i=e=>e.reduce((e,t)=>e+t,0)}){let a=t.filter(e=>e!==null),o=n.filter(e=>e!==null),s=Math.max(1,...a,...o),c=Math.max(2,t.length,n.length),l=e=>{let t=[],n=[];return e.forEach((e,r)=>{if(e===null){n.length&&t.push(n.join(` `)),n=[];return}let i=6+r/(c-1)*88,a=44-e/s*36;n.push(`${i},${a}`)}),n.length&&t.push(n.join(` `)),t},u=e=>e.flatMap((e,t)=>e===null?[]:[{x:6+t/(c-1)*88,y:44-e/s*36}]);return(0,j.jsxs)(`section`,{className:`labs-benchmark-line-chart`,children:[(0,j.jsxs)(`header`,{children:[(0,j.jsx)(`h4`,{children:e}),(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`span`,{children:[`Baseline `,r(i(a))]}),(0,j.jsxs)(`span`,{children:[`Refined `,r(i(o))]})]})]}),(0,j.jsxs)(`svg`,{"aria-label":e,role:`img`,viewBox:`0 0 100 50`,preserveAspectRatio:`none`,children:[(0,j.jsx)(`line`,{x1:`6`,x2:`94`,y1:`44`,y2:`44`}),l(t).map((e,t)=>(0,j.jsx)(`polyline`,{className:`baseline`,points:e},`baseline-${t}`)),l(n).map((e,t)=>(0,j.jsx)(`polyline`,{className:`candidate`,points:e},`candidate-${t}`)),u(t).map((e,t)=>(0,j.jsx)(`circle`,{className:`baseline`,cx:e.x,cy:e.y,r:`1`},`baseline-point-${t}`)),u(n).map((e,t)=>(0,j.jsx)(`circle`,{className:`candidate`,cx:e.x,cy:e.y,r:`1`},`candidate-point-${t}`))]})]})}function J({receipt:e,onOpenConversation:t}){let n=e.schemaVersion===`openpond.modelEvaluationReceipt.v1`?T(e.attempts??[]):e.attempts??[];return(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:e.schemaVersion===`openpond.modelEvaluationReceipt.v1`?`Selected task results`:`Completed attempts`})}),(0,j.jsx)(`div`,{className:`training-table-wrap`,children:(0,j.jsxs)(`table`,{className:`training-data-table labs-benchmark-attempt-table`,children:[(0,j.jsx)(`thead`,{children:(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`th`,{children:`Task`}),(0,j.jsx)(`th`,{children:`Phase`}),(0,j.jsx)(`th`,{children:`Result`}),(0,j.jsx)(`th`,{children:`Score`}),(0,j.jsx)(`th`,{children:`Tokens`}),(0,j.jsx)(`th`,{children:`Work chat`})]})}),(0,j.jsx)(`tbody`,{children:n.map(e=>(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`td`,{children:Ae(e.taskId)}),(0,j.jsx)(`td`,{children:e.phase}),(0,j.jsx)(`td`,{children:(0,j.jsx)(C,{label:e.passed?`Passed`:`Failed`,value:e.passed?`succeeded`:`failed`})}),(0,j.jsx)(`td`,{children:e.score===null?`—`:e.score.toFixed(2)}),(0,j.jsx)(`td`,{children:e.totalTokens.toLocaleString()}),(0,j.jsx)(`td`,{children:e.sessionId?(0,j.jsx)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:()=>t(e.sessionId),children:`Open chat`}):`Not retained`})]},`${e.phase}:${e.attemptId}`))})]})})]})}function Ae(e){return e.replace(/^(?:adaptation|frozen)-/,``).replaceAll(`-`,` `).replace(/^./,e=>e.toUpperCase())}function Y({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function je(e){let t=[`B`,`KB`,`MB`,`GB`,`TB`],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 Me({error:e,events:t,loading:n,pending:r}){let[i,a]=(0,A.useState)(!1),[o,s]=(0,A.useState)({}),[c,l]=(0,A.useState)(!0),u=(0,A.useRef)(null),f=(0,A.useRef)(null),p=(0,A.useRef)(null),m=(0,A.useMemo)(()=>Ne(t),[t]),g=(0,A.useMemo)(()=>t.filter(e=>o[X(e)]??Pe(X(e))),[t,o]),v=m.filter(e=>o[e.id]??Pe(e.id)).length,b=m.length>0&&v===m.length,S=v>0&&!b;return(0,A.useEffect)(()=>{p.current&&(p.current.indeterminate=S)},[S]),(0,A.useEffect)(()=>{if(!i)return;let e=e=>{f.current?.contains(e.target)||a(!1)},t=e=>{e.key===`Escape`&&a(!1)};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[i]),(0,A.useLayoutEffect)(()=>{let e=u.current;e&&c&&(e.scrollTop=e.scrollHeight)},[e,c,r,g]),n&&!t.length?(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`Loading run events…`}):t.length?(0,j.jsxs)(`div`,{className:`training-event-log-shell`,children:[(0,j.jsxs)(`div`,{className:`training-event-log-toolbar`,children:[(0,j.jsx)(`div`,{children:(0,j.jsx)(`strong`,{children:`Activity log`})}),(0,j.jsxs)(`div`,{className:`training-event-filter`,ref:f,children:[(0,j.jsxs)(`button`,{"aria-expanded":i,"aria-haspopup":`menu`,className:`training-event-filter-trigger`,type:`button`,onClick:()=>a(e=>!e),children:[(0,j.jsx)(y,{"aria-hidden":`true`,size:14}),`Event types`,(0,j.jsxs)(`span`,{children:[v,`/`,m.length]}),(0,j.jsx)(h,{"aria-hidden":`true`,size:13})]}),i?(0,j.jsxs)(`div`,{"aria-label":`Filter training activity by event type`,className:`training-event-filter-menu`,role:`menu`,children:[(0,j.jsxs)(`label`,{className:`training-event-filter-option select-all`,children:[(0,j.jsx)(`input`,{checked:b,ref:p,type:`checkbox`,onChange:e=>{let t=e.currentTarget.checked;s(Object.fromEntries(m.map(e=>[e.id,t])))}}),(0,j.jsx)(`span`,{className:`training-event-filter-check`,children:(0,j.jsx)(x,{"aria-hidden":`true`,size:12})}),`Select all`]}),(0,j.jsx)(`div`,{className:`training-event-filter-options`,children:m.map(e=>{let t=o[e.id]??Pe(e.id);return(0,j.jsxs)(`label`,{className:`training-event-filter-option`,children:[(0,j.jsx)(`input`,{checked:t,type:`checkbox`,onChange:t=>s(n=>({...n,[e.id]:t.currentTarget.checked}))}),(0,j.jsx)(`span`,{className:`training-event-filter-check`,children:(0,j.jsx)(x,{"aria-hidden":`true`,size:12})}),(0,j.jsx)(`span`,{children:e.label}),(0,j.jsx)(`small`,{children:e.count.toLocaleString()})]},e.id)})})]}):null]})]}),(0,j.jsxs)(`div`,{"aria-label":`Training activity log`,"aria-live":`polite`,className:`training-event-log`,ref:u,role:`log`,onScroll:e=>{let t=e.currentTarget,n=t.scrollHeight-t.scrollTop-t.clientHeight;l(n<=6)},children:[(0,j.jsxs)(`div`,{"aria-hidden":`true`,className:`training-event-log-header`,children:[(0,j.jsx)(`span`,{children:`Time`}),(0,j.jsx)(`span`,{children:`Event type`}),(0,j.jsx)(`span`,{children:`Details`})]}),g.map(e=>(0,j.jsxs)(`div`,{className:`training-event-log-line ${e.type}`,children:[(0,j.jsx)(`time`,{dateTime:e.timestamp,children:d(e.timestamp)}),(0,j.jsx)(`span`,{children:Fe(X(e))}),(0,j.jsx)(`code`,{children:Ie(e)})]},e.id)),r&&!e?(0,j.jsxs)(`div`,{className:`training-event-log-loading`,role:`status`,children:[(0,j.jsx)(_,{"aria-hidden":`true`,className:`spin`,size:14}),(0,j.jsx)(`span`,{className:`sr-only`,children:`Waiting for new activity`})]}):null,g.length?null:(0,j.jsx)(`div`,{className:`training-event-log-empty`,children:`No events match the selected event types.`}),e?(0,j.jsxs)(`div`,{className:`training-event-log-line failure`,children:[(0,j.jsx)(`time`,{children:`—`}),(0,j.jsx)(`span`,{children:`Failure`}),(0,j.jsx)(`code`,{children:e})]}):null]})]}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:e??`No normalized run events were recorded.`})}function X(e){return typeof e.payload.remoteEventType==`string`&&e.payload.remoteEventType.trim()?e.payload.remoteEventType:typeof e.payload.telemetryType==`string`&&e.payload.telemetryType.trim()?e.payload.telemetryType:e.type}function Ne(e){let t=new Map;for(let n of e){let e=X(n);t.set(e,(t.get(e)??0)+1)}return[...t.entries()].map(([e,t])=>({id:e,count:t,label:Fe(e)})).sort((e,t)=>e.label.localeCompare(t.label))}function Pe(e){return e!==`metric`&&!e.endsWith(`_metric`)}function Fe(e){return e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase())}function Ie(e){let t=e.payload,n=Q(t.step),r=Q(t.maxSteps);if(typeof t.telemetryType==`string`){let e=typeof t.message==`string`?t.message:null,r=typeof t.errorCode==`string`?t.errorCode:null,i=typeof t.telemetrySource==`string`?` · ${t.telemetrySource}`:``;return`${e??t.telemetryType.replaceAll(`_`,` `)}${n==null?``:` · step ${n}`}${i}${r?` · ${r}`:``}`}if(typeof t.remoteEventType==`string`){let e=Le(t.remoteEventType),r=typeof t.remotePhase==`string`?Re(t.remotePhase):null,i=typeof t.errorCode==`string`&&t.errorCode.trim()?t.errorCode.trim():null;return[e,r,n==null?null:`step ${n}`,i?`error ${i}`:null].filter(e=>!!e).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`){let e=typeof t.metricKind==`string`?t.metricKind.replaceAll(`_`,` `):`metric`,r=[Z(`loss`,t.loss),Z(`reward`,t.meanReward??t.reward),Z(`policy loss`,t.policyLoss),Z(`value loss`,t.valueLoss),Z(`preference accuracy`,t.preferenceAccuracy,Be)].filter(e=>!!e),i=typeof t.failureClass==`string`?t.failureClass:null,a=typeof t.failureCode==`string`?t.failureCode:null,o=typeof t.metricId==`string`&&typeof t.value==`number`?` · ${t.metricId}: ${t.value.toPrecision(4)}`:``;return`${e}${n==null?``:` · step ${n}`}${o}${i?` · ${i}`:``}${a?` · ${a}`:``}${r.length?` · ${r.join(` · `)}`:``}`}if(e.type===`checkpoint`){let e=Q(t.policyVersion),n=Q(t.sizeBytes),r=[e==null?null:`policy ${e}`,n==null?null:je(n),t.final===!0?`final`:null].filter(e=>!!e);return r.length?`Checkpoint committed · ${r.join(` · `)}.`:`Checkpoint committed.`}if(e.type===`complete`){let e=Q(t.artifactCount);return e==null?`Worker completed.`:`Worker completed with ${e} artifacts.`}return e.type===`failure`&&typeof t.message==`string`?t.message:Object.keys(t).length?JSON.stringify(t):`Recorded.`}function Le(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]??ze(e)}function Re(e){return{committed:`committed`,completed:`completed`,eligible:`recorded`,failed:`failed`,running:`running`,succeeded:`succeeded`}[e]??ze(e).toLocaleLowerCase()}function ze(e){return e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase())}function Z(e,t,n=e=>new Intl.NumberFormat(void 0,{maximumFractionDigits:4}).format(e)){let r=Q(t);return r==null?null:`${e} ${n(r)}`}function Q(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function Be(e){return`${(e*100).toFixed(1)}%`}function Ve({connection:e,detailTab:t,onDetailTabChange:n,selectedEntryKey:r,workproduct:c,runs:d,training:h,onOpenDataset:g,onOpenConversation:_,detailKind:v}){let y=h.payload,[b,x]=(0,A.useState)(null),C=(0,A.useMemo)(()=>ne(c,d,y),[d,y,c]),T=(0,A.useMemo)(()=>oe(c,d,y),[d,y,c]),E=(0,A.useMemo)(()=>ce(c,y),[y,c]),O=(0,A.useMemo)(()=>re(c,d,y),[d,y,c]),ue=(0,A.useMemo)(()=>new Map(O.map(e=>[e.id,e])),[O]),k=(0,A.useMemo)(()=>ae(C,T),[C,T]).find(e=>e.key===r)??null,M=r.startsWith(`model-run:`)?r.slice(10):null,N=M?E.find(e=>e.id===M)??null:k?.job?E.find(e=>e.id===k.job?.metadata.modelRunId)??null:null,P=k?.job??(N?y?.jobs.find(e=>e.id===N.id||e.metadata.modelRunId===N.id)??null:null),ge=y?.comparisonSeriesEntries.find(e=>e.modelRunId===N?.id||e.modelRunId===P?.metadata.modelRunId)??null,ve=s.shape.recovery.safeParse(P?.metadata.hostedRecovery),F=ve.success?ve.data:void 0,ye=i.shape.continuation.safeParse(P?.metadata.hostedContinuation),I=ye.success?ye.data:void 0,L=I?T.find(e=>e.lineage.jobId===I.sourceArtifact.jobId):void 0,be=F?`Recovered checkpoint`:L?`Version ${L.number}`:I?`Checkpoint ${I.sourceArtifact.checkpointId}`:typeof P?.metadata.parentHostedArtifactId==`string`?`Prior hosted run`:pe(y,ge),xe=(0,A.useMemo)(()=>{let e=se(C,T,E);return te(e,N?.kind===`evaluation`?`evals`:`training`)},[C,E,N?.kind,T]),R=xe.findIndex(e=>e.key===r||P!==null&&e.job?.id===P.id||N!==null&&e.lifecycleRun?.id===N.id),z=R<0?null:xe.length-R,B=k?.version??(N?.adapterArtifactLineageId?T.find(e=>e.lineage.id===N.adapterArtifactLineageId)??null:null),V=(N?y?.modelVersions.find(e=>e.id===N.modelVersionId)?.baseModel.modelId:null)??y?.modelVersions.filter(e=>e.modelId===c.id&&e.kind===`base_reference`).sort((e,t)=>t.version-e.version)[0]?.baseModel.modelId??(typeof P?.metadata.baseModelId==`string`?P.metadata.baseModelId:null),H=B?.lineage.frozenEvaluationArtifactId??null,U=B?.plan??(P?ue.get(P.planId)??null:null),W=B?.taskset??D(y).find(e=>e.id===(N?.taskset.id??U?.tasksetId??P?.metadata.tasksetId))??null,Ee=W?.name??(typeof P?.metadata.tasksetId==`string`?P.metadata.tasksetId:`Unavailable`),De=N?.method??U?.recipe.method??Ke(P?.metadata),G=we(e,P?.id??null,P?.status??null,t===`evaluation`),Oe=P?y?.rolloutReceipts.filter(e=>e.jobId===P.id)??[]:[],K=G.detail?.managedEvidence??null,ke=G.detail?.events.some(e=>e.type===`metric`&&e.payload.metricKind===`rollout_trajectory`)??!1,q=w({lifecycleRun:N,job:G.detail?.job??P}),J=le(q),Ae=N?.status===`failed`&&P?.metadata.phase===`artifact_collection_failed`,Y=De===`grpo`,X=Ue(P?.metadata),Ne=(U&&(U.recipe.method===`sft`||U.recipe.method===`dpo`||U.recipe.method===`grpo`)?U.recipe.optimizer.maxSteps:null)??K?.progress.targetOptimizerSteps??null,Pe=Ne!==null&&typeof P?.metadata.progress==`number`&&Number.isFinite(P.metadata.progress)?Math.floor(Math.max(0,P.metadata.progress)*Ne):0,Fe=Math.max(0,X?.optimizerUpdatesApplied??0,Pe,G.detail?.policyMetrics.reduce((e,t)=>Math.max(e,t.step),0)??0,G.detail?.stepMetrics.reduce((e,t)=>Math.max(e,t.step),0)??0,K?.progress.committedOptimizerSteps??0),Ie=He(Y&&X?X.groupsCompleted:Fe,Y&&X?X.groupsTarget:Ne),Le=v===`run`?{id:`details`,label:`Details`}:{id:`overview`,label:`Overview`},Re=[...v===`run`&&P?[{id:`metrics`,label:`Metrics`}]:[],Le,...v===`version`&&P?[{id:`metrics`,label:`Metrics`}]:[],{id:`evaluation`,label:`Evaluation`},...Oe.length||ke?[{id:`rollouts`,label:`Rollouts`}]:[],{id:`artifacts`,label:`Artifacts`},...P?[{id:`activity`,label:`Activity`}]:[]],ze=t,Z=Re.some(e=>e.id===ze)?ze:Re[0].id;return!k&&!N&&h.loading?(0,j.jsxs)(`div`,{className:`labs-model-version-detail`,children:[(0,j.jsx)(ie,{title:`Run details`}),(0,j.jsx)(`p`,{role:`status`,children:`Loading training run…`})]}):!k&&!N?(0,j.jsx)(`div`,{className:`labs-model-version-detail`,children:(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`This training attempt is no longer available.`})}):N?.kind===`evaluation`?(0,j.jsx)(We,{run:N,runNumber:z,tasksetName:W?.name??`Unavailable`,onOpenTaskset:W?()=>g(W.id):void 0,onOpenConversation:_}):(0,j.jsxs)(`div`,{className:`labs-model-version-detail`,children:[(0,j.jsx)(ie,{title:N||P?z?`Run ${z}`:`Run details`:B?`Version ${B.number}`:`Run details`,description:`${u(De)} on ${Ge(U,V)}`,status:(0,j.jsx)(ee,{status:q}),actions:J&&(N||P)?(0,j.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:h.busyAction!==null||q===`cancelling`,onClick:async()=>{let e=N?.id??P.id,t=N?await h.actions.cancelModelRun(N.id):await h.actions.cancelJob(P.id);x({runId:e,message:t?`Cancellation requested. Waiting for the training service to confirm.`:`Cancellation could not be requested. Try again.`})},children:q===`cancelling`?`Cancelling…`:h.busyAction===`cancel-model-run`||h.busyAction===`cancel-job`?`Requesting cancellation…`:`Cancel run`}):Ae&&N?(0,j.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:h.busyAction!==null,onClick:async()=>{let e=await h.actions.retryModelRunCollection(N.id);x({runId:N.id,message:e?.state===`succeeded`?`Outputs collected from the completed training job.`:`Collection failed. The training job and its outputs are retained.`})},children:h.busyAction===`retry-model-run-collection`?`Collecting…`:`Retry collection`}):void 0,metrics:[{label:Y&&X?`Training groups`:`Training steps`,value:Ie.value},...F&&X?[{label:`Optimizer updates`,value:`${Math.max(0,X.optimizerUpdatesApplied-F.policyVersion)} new · ${F.policyVersion} reused`}]:[],{label:J?`Latest reward`:`Final reward`,value:Je(N?.reward?.raw??K?.reward.finalMean??null)},{label:`Duration`,value:N?p(N.startedAt,l(N.status,N.completedAt,N.updatedAt)):P?p(P.startedAt,l(P.status,P.completedAt,P.updatedAt)):`Not recorded`},{label:`Output`,value:B?`Version ${B.number}`:`No version`},{label:`Based on`,value:be},{label:`Taskset`,value:Ee,onSelect:W?()=>g(W.id):void 0,ariaLabel:W?`Open Taskset ${W.name}`:void 0}]}),(0,j.jsx)(a,{recovery:F}),I?(0,j.jsx)(o,{continuation:{sourceJobId:I.sourceArtifact.jobId,checkpointId:I.sourceArtifact.checkpointId}}):null,b&&b.runId===(N?.id??P?.id)?(0,j.jsx)(`p`,{role:`status`,children:b.message}):null,(0,j.jsxs)(`section`,{className:`labs-run-detail-tabs`,children:[(0,j.jsx)(`div`,{className:`training-detail-tabs`,role:`tablist`,"aria-label":`Run details`,children:Re.map(e=>(0,j.jsx)(`button`,{"aria-controls":`run-detail-panel-${e.id}`,"aria-selected":Z===e.id,className:Z===e.id?`active`:void 0,id:`run-detail-tab-${e.id}`,role:`tab`,type:`button`,onClick:()=>n(e.id),children:e.label},e.id))}),(0,j.jsxs)(`div`,{"aria-labelledby":`run-detail-tab-${Z}`,className:`labs-run-detail-tab-panel`,id:`run-detail-panel-${Z}`,role:`tabpanel`,children:[Z===Le.id?(0,j.jsx)(Te,{baseModel:Ge(U,V),compute:N?m(N.destinationId??``):U?m(U.destinationId):P?m(P.destinationId):`Not recorded`,duration:N?p(N.startedAt,l(N.status,N.completedAt,N.updatedAt)):P?p(P.startedAt,l(P.status,P.completedAt,P.updatedAt)):`Not recorded`,failure:P?.error??N?.failure??null,configuration:[...I?[{label:`Starting checkpoint`,value:[L?`Version ${L.number}`:null,I.sourceArtifact.checkpointId].filter(Boolean).join(` · `)},{label:`Parent run`,value:I.sourceArtifact.jobId},{label:`Parent artifact`,value:I.sourceArtifact.artifactId},{label:`Optimizer`,value:I.optimizerMode===`reset`?`Reset`:`Continue`}]:fe(y,ge),...de(U)],evidence:K,method:u(De),output:B?`Version ${B.number}`:`No version created`,reward:N?.reward?.raw??K?.reward.finalMean??null,status:N?f(N.status):P?f(P.status):`Imported`,statusValue:N?.status??P?.status??`imported`,taskset:Ee,telemetry:N?.receipt?.schemaVersion===`openpond.modelRunReceipt.v1`?N.receipt.telemetry:null,title:N||P?z?`Run ${z}`:`Run details`:B?`Version ${B.number}`:`Run details`,versionStatus:B?B.current?`Active`:`Available`:null,onOpenTaskset:W?()=>g(W.id):void 0,showHeader:!1}):null,Z===`metrics`&&P?(0,j.jsx)(S,{detail:G.detail,error:G.error,loading:G.loading,taskset:W}):null,Z===`artifacts`?(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)($,{label:`Training attempt`,value:P?.id??`Provider import`}),(0,j.jsx)($,{label:`Taskset`,value:Ee}),(0,j.jsx)($,{label:`Prepared data`,value:P?.bundleHash??`Provider managed`}),(0,j.jsx)($,{label:`Version ID`,value:B?.lineage.id??`No version created`}),K?.checkpoint?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)($,{label:`Checkpoint`,value:K.checkpoint.id}),(0,j.jsx)($,{label:`Checkpoint size`,value:K.checkpoint.sizeBytes==null?`Not reported`:je(K.checkpoint.sizeBytes)}),(0,j.jsx)($,{label:`Checkpoint hash`,value:K.checkpoint.sha256??`Not reported`})]}):null,K?.canonicalPublication.state?(0,j.jsx)($,{label:`Registry publication`,value:Ye(K.canonicalPublication.state)}):null]}):null,Z===`evaluation`?(0,j.jsxs)(`div`,{className:`training-run-evaluation`,children:[!K?.evaluations.length||G.detail?.evaluation?(0,j.jsx)(_e,{detail:G.detail,loading:G.loading,pending:J}):null,!G.detail?.evaluation&&K?.evaluations.length?(0,j.jsx)(`dl`,{className:`labs-inline-facts`,children:K.evaluations.map(e=>(0,j.jsxs)(A.Fragment,{children:[(0,j.jsx)($,{label:e.kind===`baseline`?`Baseline score`:`Candidate score`,value:e.score==null?`Not reported`:e.score.toFixed(6)}),(0,j.jsx)($,{label:e.kind===`baseline`?`Baseline coverage`:`Candidate coverage`,value:e.taskCount==null?`Not reported`:e.targetTaskCount==null?`${e.taskCount} ${e.taskCount===1?`task`:`tasks`} scored`:`${e.taskCount} of ${e.targetTaskCount} ${e.targetTaskCount===1?`task`:`tasks`} scored`})]},`${e.kind}:${e.policyVersion}`))}):null,B&&P?.destinationId===`openpond_managed`?(0,j.jsx)(Se,{connection:e,lineageId:B.lineage.id,onSaved:h.refresh},B.lineage.id):null,!B&&P?.metadata.source===`hosted_model_project_import`&&P.status===`succeeded`?(0,j.jsx)(Se,{connection:e,jobId:P.id,onSaved:h.refresh},`candidate:${P.id}`):null,P&&K?.evaluations.length?(0,j.jsx)(Ce,{connection:e,jobId:P.id,evaluations:K.evaluations},P.id):null,H?(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,onClick:()=>void h.actions.downloadArtifact(H),children:`Download evaluation receipt`}):null]}):null,Z===`rollouts`?Oe.length?(0,j.jsx)(he,{receipts:Oe}):(0,j.jsx)(me,{events:G.detail?.events??[]}):null,Z===`activity`&&P?(0,j.jsx)(Me,{error:P.error??G.error,events:G.detail?.events??[],loading:G.loading,pending:J}):null]})]})]})}function He(e,t){let 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`};let r=Math.max(1,Math.floor(t));return{value:`${n.toLocaleString()} / ${r.toLocaleString()}`,hint:`completed / planned`}}function Ue(e){let t=e?.rolloutProgress;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t;return[`groupsCompleted`,`groupsTarget`,`optimizerUpdatesApplied`,`optimizerUpdatesSkipped`].some(e=>typeof n[e]!=`number`||!Number.isInteger(n[e])||n[e]<0)?null:{groupsCompleted:n.groupsCompleted,groupsTarget:n.groupsTarget,optimizerUpdatesApplied:n.optimizerUpdatesApplied,optimizerUpdatesSkipped:n.optimizerUpdatesSkipped}}function We({run:e,runNumber:t,tasksetName:n,onOpenTaskset:r,onOpenConversation:i}){let[a,o]=(0,A.useState)(`results`),s=e.receipt?.schemaVersion===`openpond.modelEvaluationReceipt.v1`?e.receipt:null,c=e.receipt?.schemaVersion===`openpond.modelEvaluationStopReceipt.v1`?e.receipt:null,l=s?E(s):null,u=s?O(s):null;return(0,j.jsxs)(`div`,{className:`labs-model-version-detail labs-model-evaluation-detail`,children:[(0,j.jsx)(ie,{title:t?`Eval ${t}`:`Evaluation run`,description:`Harness Refiner benchmark · ${n}`,status:(0,j.jsx)(C,{label:s?u?.comparedTaskCount?`${u.passedTaskCount}/${u.comparedTaskCount} passed`:`No paired result`:c?`Inconclusive`:f(e.status),value:s?u?.comparedTaskCount&&u.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)}]}),(0,j.jsx)(`div`,{className:`training-detail-tabs`,role:`tablist`,"aria-label":`Evaluation details`,children:[`results`,`scenarios`,`activity`].map(e=>(0,j.jsx)(`button`,{className:a===e?`active`:void 0,"aria-selected":a===e,role:`tab`,type:`button`,onClick:()=>o(e),children:e===`results`?`Results`:e===`scenarios`?`Scenarios`:`Activity`},e))}),a===`results`&&s?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(ue,{series:[{id:`baseline`,label:`Held-out baseline`,inputTokens:l.baseline.inputTokens,outputTokens:l.baseline.outputTokens,tokens:l.baseline.totalTokens,passRate:s.quality.baselinePassRate,costUsd:l.baseline.costUsd},{id:`candidate`,label:`Held-out refined`,inputTokens:l.candidate.inputTokens,outputTokens:l.candidate.outputTokens,tokens:l.candidate.totalTokens,passRate:s.quality.candidatePassRate,costUsd:l.candidate.costUsd}]}),(0,j.jsx)(ue,{series:[{id:`adaptation-baseline`,label:`Adaptation baseline`,inputTokens:l.adaptation.inputTokens,outputTokens:l.adaptation.outputTokens,tokens:l.adaptation.totalTokens,passRate:s.quality.adaptationBaselinePassRate,costUsd:l.adaptation.costUsd},{id:`adaptation-candidate`,label:`Adaptation replay`,inputTokens:l.candidate_adaptation.inputTokens,outputTokens:l.candidate_adaptation.outputTokens,tokens:l.candidate_adaptation.totalTokens,passRate:s.quality.adaptationCandidatePassRate,costUsd:l.candidate_adaptation.costUsd}]}),(0,j.jsx)(ke,{receipt:s,run:e,tasksetName:n,onOpenTaskset:r})]}):a===`results`&&c?(0,j.jsx)(G,{receipt:c,onOpenConversation:i}):a===`results`?(0,j.jsx)(`section`,{className:`labs-run-summary-card`,children:e.failure?(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:e.failure}):(0,j.jsx)(Oe,{run:e})}):null,a===`scenarios`&&s?(0,j.jsxs)(j.Fragment,{children:[(s.attempts??[]).length?(0,j.jsx)(K,{receipt:s}):null,(s.attempts??[]).length?(0,j.jsx)(J,{receipt:s,onOpenConversation:i}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No per-scenario attempts were retained.`})]}):null,a===`activity`?(0,j.jsxs)(`dl`,{className:`labs-inline-facts`,children:[(0,j.jsx)($,{label:`Run ID`,value:e.id}),(0,j.jsx)($,{label:`Status`,value:f(e.status)}),(0,j.jsx)($,{label:`Started`,value:e.startedAt?d(e.startedAt):`Not started`}),(0,j.jsx)($,{label:`Completed`,value:e.completedAt?d(e.completedAt):`In progress`})]}):null]})}function Ge(e,t=null){if(!e)return t?qe(t):`Not recorded`;let 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?qe(n.id):`Not recorded`}function Ke(e){let t=e?.trainingMethod;return t===`sft`||t===`dpo`||t===`grpo`||t===`ppo`||t===`sdft`||t===`opd`||t===`opsd`||t===`sdpo`?t:null}function qe(e){return e.split(`/`).at(-1)??e}function Je(e){return e===null?`Not reported`:e.toFixed(4)}function $({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function Ye(e){return e?e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase()):`Pending`}export{Ve as LabModelVersionDetailPage,Ie as eventSummary,He as formatTrainingProgress,Ue as managedRolloutProgress};
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-D7igQSAg.js";import{t as r}from"./useQuery-yUz7Ui8g.js";import{o as i}from"./training-DCdoHJ0Y.js";import{a,i as o,l as s}from"./TrainingRunLineage-B2WBOchk.js";import{t as c}from"./query-scope-BRpcgljO.js";import"./icons-B8_Rkg-l.js";import{c as l,l as u,n as d,o as f,r as p,t as m}from"./training-model-data-CWnu1bz9.js";import{t as h}from"./chevron-down-75im8nFF.js";import{t as g}from"./chevron-right-CpbCIUFo.js";import{t as _}from"./loader-circle-D_KVxLLz.js";import{Bt as v,Qt as y,bn as b,dn as x}from"./App-CNQi3RlI.js";import{l as S}from"./MainPane-CqtgV9rU.js";import{C,S as w,_ as T,b as ee,c as te,d as ne,f as re,g as E,h as ie,l as ae,m as oe,p as D,s as se,u as ce,v as O,x as le,y as ue}from"./LabsRoute-DJRgF1kQ.js";function de(e){if(!e)return[];let t=e.recipe;return t.method===`grpo`?[{label:`LoRA rank`,value:String(t.lora.rank)},{label:`Learning rate`,value:k(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:k(t.optimizer.learningRate)},{label:`Optimizer steps`,value:String(t.optimizer.maxSteps)}]:[]}function fe(e,t){if(!e||!t)return[];if(t.parent.kind===`base_model`)return[{label:`Starting checkpoint`,value:`Frozen base · ${t.parent.revision}`},{label:`Optimizer`,value:`Fresh`}];let n=e.modelVersions.find(e=>e.id===t.parent.id);return[{label:`Starting checkpoint`,value:[e.comparisonSeriesEntries.find(e=>e.seriesId===t.seriesId&&e.modelVersionId===t.parent.id)?.label??null,n?`Version ${n.version}`:t.parent.id].filter(e=>!!e).join(` · `)},{label:`Optimizer`,value:`Fresh`}]}function pe(e,t){if(!e||!t||t.parent.kind===`base_model`)return`Frozen base`;let n=e.comparisonSeriesEntries.find(e=>e.seriesId===t.seriesId&&e.modelVersionId===t.parent.id),r=e.modelVersions.find(e=>e.id===t.parent.id);return[n?.label??`Prior checkpoint`,r?`Version ${r.version}`:null].filter(e=>!!e).join(` · `)}function k(e){return e===0?`0`:e.toExponential(2)}var A=e(t(),1),j=n();function me({events:e}){let t=e.filter(e=>e.type===`metric`&&e.payload.metricKind===`rollout_trajectory`);return t.length?(0,j.jsx)(`div`,{className:`training-rollout-receipts`,children:t.map((e,t)=>{let n=e.payload.rewardEligible===!0,r=N(e.payload.reward),i=typeof e.payload.failureClass==`string`?e.payload.failureClass:null,a=typeof e.payload.failureCode==`string`?e.payload.failureCode:null;return(0,j.jsxs)(`details`,{children:[(0,j.jsxs)(`summary`,{children:[(0,j.jsxs)(`span`,{children:[`Attempt `,t+1]}),(0,j.jsx)(`strong`,{children:n?`eligible`:`ineligible`}),(0,j.jsx)(`em`,{children:n&&r!=null?r.toFixed(3):a??i??`not reward eligible`})]}),(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)(M,{label:`Rollout`,value:P(e.payload.rolloutId)}),(0,j.jsx)(M,{label:`Group`,value:P(e.payload.rolloutGroupId)}),(0,j.jsx)(M,{label:`Policy`,value:`v${N(e.payload.policyVersion)??0}`}),(0,j.jsx)(M,{label:`Worker`,value:String((N(e.payload.workerSlot)??0)+1)}),(0,j.jsx)(M,{label:`Reward`,value:r==null?`Not eligible`:String(r)}),(0,j.jsx)(M,{label:`Failure class`,value:i??`None`}),(0,j.jsx)(M,{label:`Failure code`,value:a??`None`}),(0,j.jsx)(M,{label:`Components`,value:JSON.stringify(e.payload.rewardComponents??{})}),(0,j.jsx)(M,{label:`Tokens`,value:`${N(e.payload.inputTokens)??0} input · ${N(e.payload.outputTokens)??0} output`})]})]},e.id)})}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No managed attempts were recorded for this run.`})}function he({receipts:e}){let[t,n]=(0,A.useState)(!1);if(!e.length)return(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No on-policy rollout receipts were recorded for this run.`});let r=[...e].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)),i=t?r:r.slice(0,24);return(0,j.jsxs)(`div`,{className:`training-rollout-receipts`,children:[e.length>24?(0,j.jsxs)(`div`,{className:`training-rollout-receipt-controls`,children:[(0,j.jsx)(`span`,{children:t?`Showing all ${e.length} receipts`:`Showing latest ${i.length} of ${e.length} receipts`}),(0,j.jsx)(`button`,{className:`training-text-button`,type:`button`,onClick:()=>n(e=>!e),children:t?`Show latest 24`:`Show all ${e.length}`})]}):null,i.map(e=>(0,j.jsxs)(`details`,{children:[(0,j.jsxs)(`summary`,{children:[(0,j.jsx)(`span`,{children:ge(e.providerTrace.rolloutId)}),(0,j.jsx)(`strong`,{children:e.status}),(0,j.jsx)(`em`,{children:e.reward.eligible&&e.reward.raw!=null?e.reward.raw.toFixed(3):e.failureClass??`not reward eligible`})]}),(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)(M,{label:`Correlation`,value:e.correlationId}),(0,j.jsx)(M,{label:`Task`,value:e.taskId}),(0,j.jsx)(M,{label:`Policy`,value:e.policy.modelId}),(0,j.jsx)(M,{label:`Checkpoint`,value:e.policy.checkpointId??`Provider initial policy`}),(0,j.jsx)(M,{label:`Environment`,value:`${e.environment.id}@${e.environment.version}`}),(0,j.jsx)(M,{label:`World`,value:`${e.environment.worldId} · ${e.environment.worldHash}`}),(0,j.jsx)(M,{label:`Raw reward`,value:e.reward.raw==null?`Not eligible`:String(e.reward.raw)}),(0,j.jsx)(M,{label:`Components`,value:JSON.stringify(e.reward.components)}),(0,j.jsx)(M,{label:`Outcome`,value:e.verifier?.outcome??e.failureClass??`Pending`}),(0,j.jsx)(M,{label:`Trace`,value:`${e.providerTrace.experimentId}/${e.providerTrace.rolloutId}`})]})]},e.id))]})}function M({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function N(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function P(e){return typeof e==`string`&&e?e:`Not recorded`}function ge(e){return e.replace(/^lineage_/,``).slice(0,18)}function _e({detail:e,loading:t,pending:n=!1}){if(t&&!e)return(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`Loading evaluation results…`});let r=e?.evaluation;return r?(0,j.jsxs)(`div`,{className:`training-run-evaluation`,children:[(0,j.jsxs)(`div`,{className:`training-metric-summary`,children:[(0,j.jsx)(F,{label:`Base score`,value:ye(r.base.meanScore)}),(0,j.jsx)(F,{label:`Trained score`,value:ye(r.trained.meanScore)}),(0,j.jsx)(F,{label:`Score change`,value:L(r.meanScoreDelta)}),(0,j.jsx)(F,{label:`Trained pass rate`,value:I(r.trained.passRate)})]}),r.base.count===0?(0,j.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?(0,j.jsx)(`p`,{className:`training-muted`,children:`Outputs were captured, but the grader was unavailable, so this run has no evaluation score.`}):null,(0,j.jsx)(`div`,{className:`training-table-wrap`,children:(0,j.jsxs)(`table`,{className:`training-data-table training-evaluation-table`,children:[(0,j.jsx)(`thead`,{children:(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`th`,{children:`Test example`}),(0,j.jsx)(`th`,{children:`Base`}),(0,j.jsx)(`th`,{children:`Trained`}),(0,j.jsx)(`th`,{children:`Result`})]})}),(0,j.jsx)(`tbody`,{children:r.examples.map(e=>(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`td`,{children:(0,j.jsxs)(`details`,{children:[(0,j.jsx)(`summary`,{children:e.taskId}),(0,j.jsx)(ve,{input:e.input,baseOutput:e.baseOutput,trainedOutput:e.trainedOutput,baseGrade:e.baseGrade,trainedGrade:e.trainedGrade})]})}),(0,j.jsx)(`td`,{children:be(e.baseGrade)}),(0,j.jsx)(`td`,{children:be(e.trainedGrade)}),(0,j.jsx)(`td`,{children:xe(e.baseGrade,e.trainedGrade)})]},e.taskId))})]})})]}):(0,j.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 ve({input:e,baseOutput:t,trainedOutput:n,baseGrade:r,trainedGrade:i}){let a=[...new Set([...r?.feedback??[],...i?.feedback??[]])];return(0,j.jsxs)(`div`,{className:`training-evaluation-output`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Input`}),(0,j.jsx)(`pre`,{children:JSON.stringify(e,null,2)})]}),t?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Base output`}),(0,j.jsx)(`pre`,{children:JSON.stringify(t,null,2)})]}):null,n?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Trained output`}),(0,j.jsx)(`pre`,{children:JSON.stringify(n,null,2)})]}):null,a.length?(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Grader feedback`}),(0,j.jsx)(`p`,{children:a.join(` `)})]}):null]})}function F({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:e}),(0,j.jsx)(`strong`,{children:t})]})}function ye(e){return e==null?`Not recorded`:e.toFixed(3)}function I(e){return e==null?`Not recorded`:`${Math.round(e*100)}%`}function L(e){return e==null?`Not comparable`:`${e>=0?`+`:``}${e.toFixed(3)}`}function be(e){return e?.status===`unavailable`?`Unavailable`:e?.score==null?`Not scored`:e.score.toFixed(3)}function xe(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`;let 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)}`}function Se({connection:e,lineageId:t,jobId:n,onSaved:r}){let i=n??t,a=n?`jobs`:`models`,[o,s]=(0,A.useState)(null),[c,l]=(0,A.useState)(0),[u,d]=(0,A.useState)(!0),[f,p]=(0,A.useState)(!1),[m,h]=(0,A.useState)(!1),[g,_]=(0,A.useState)(null),[y,x]=(0,A.useState)(null),[S,C]=(0,A.useState)(``),[w,T]=(0,A.useState)(null),[ee,te]=(0,A.useState)([]),[ne,re]=(0,A.useState)(!1);(0,A.useEffect)(()=>{if(!e){d(!1),p(!1),_(`Connect to OpenPond to review this candidate.`);return}let t=!0;return d(!0),p(!1),_(null),te([]),(async()=>{try{if(a===`models`){let n=await b.candidateReview(e,i);t&&n&&s(n)}let n=await b.candidateReview(e,i,!0,a);t&&(s(n),p(!!n))}catch(e){t&&_(R(e))}finally{t&&d(!1)}})(),()=>{t=!1}},[e,i,a,c]);function E(e){x(e),C(``),T(null)}async function ie(){if(!e||!o||!y||!S.trim())return;let t=w&&w.reason===S.trim()&&w.decision===y?w:{schemaVersion:`openpond.trainingCandidateDecisionRequest.v1`,...o.target,decision:y,reason:S.trim(),idempotencyKey:crypto.randomUUID(),expectedDecision:o.decision?{id:o.decision.id,contentHash:o.decision.contentHash}:null};T(t),h(!0),_(null);try{s(await b.recordCandidateReview(e,i,t,a)),x(null),T(null),te([]),await r()}catch(e){_(R(e))}finally{h(!1)}}let ae=(ee.at(-1)??o?.decision)?.request.expectedDecision;async function oe(){if(e&&ae){re(!0),_(null);try{let t=await b.candidateReviewHistory(e,i,ae,a);te(e=>[...e,t])}catch(e){_(R(e))}finally{re(!1)}}}let D=o?.decision;return(0,j.jsxs)(`section`,{className:`training-run-evaluation`,"aria-label":`Candidate review`,children:[(0,j.jsx)(`h3`,{children:`Candidate review`}),D?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`strong`,{children:D.request.decision===`accepted`?`Accepted`:`Rejected`}),(0,j.jsx)(`p`,{children:D.request.reason}),(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Review `,D.revision,` · `,new Date(D.decidedAt).toLocaleString()]})]}):(0,j.jsx)(`p`,{className:`training-muted`,children:u?`Loading candidate review…`:o?`No candidate decision recorded.`:`Candidate review unavailable.`}),o?(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Last synced `,new Date(o.syncedAt).toLocaleString(),`. Acceptance keeps this candidate for later use; serving is activated separately.`]}):null,g?(0,j.jsx)(v,{error:g}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:u||m,onClick:()=>l(e=>e+1),children:`Refresh review`}),(0,j.jsx)(`button`,{className:`training-button`,type:`button`,disabled:!f||u||m||D?.request.decision===`accepted`,onClick:()=>E(`accepted`),children:`Accept candidate`}),(0,j.jsx)(`button`,{className:`training-button danger`,type:`button`,disabled:!f||u||m||D?.request.decision===`rejected`,onClick:()=>E(`rejected`),children:`Reject candidate`})]}),ee.map(e=>(0,j.jsxs)(`details`,{className:`training-evidence`,children:[(0,j.jsxs)(`summary`,{children:[`Review `,e.revision,` · `,e.request.decision]}),(0,j.jsx)(`p`,{children:e.request.reason}),(0,j.jsx)(`p`,{children:new Date(e.decidedAt).toLocaleString()})]},e.id)),ae?(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:ne||m,onClick:()=>void oe(),children:ne?`Loading…`:`Earlier review`}):null,y?(0,j.jsx)(`div`,{className:`training-dialog-backdrop`,role:`presentation`,onMouseDown:()=>!m&&x(null),children:(0,j.jsxs)(`section`,{className:`training-dialog training-promotion-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Review candidate`,onMouseDown:e=>e.stopPropagation(),children:[(0,j.jsx)(`div`,{className:`training-dialog-header`,children:(0,j.jsx)(`h2`,{children:y===`accepted`?`Accept this candidate?`:`Reject this candidate?`})}),(0,j.jsx)(`p`,{children:`The adapter and its recorded evaluation remain in the candidate’s history.`}),(0,j.jsxs)(`label`,{className:`training-promotion-reason`,children:[(0,j.jsx)(`span`,{children:`Reason`}),(0,j.jsx)(`textarea`,{autoFocus:!0,maxLength:5e3,value:S,onChange:e=>C(e.target.value)})]}),g?(0,j.jsx)(v,{error:g}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:m,onClick:()=>x(null),children:`Cancel`}),(0,j.jsx)(`button`,{className:`training-button ${y===`rejected`?`danger`:``}`,type:`button`,disabled:m||!S.trim(),onClick:()=>void ie(),children:m?`Saving…`:w?`Retry save`:`Save decision`})]})]})}):null]})}function R(e){return e instanceof Error?e.message:`Candidate review could not be loaded.`}function Ce({connection:e,jobId:t,evaluations:n}){let[r,i]=(0,A.useState)(null),a=n.filter(e=>e.reference),o=a.find(e=>e.reference?.id===r)??a.filter(e=>e.kind===`candidate`).at(-1)??a[0];return!e||!o?.reference?null:(0,j.jsxs)(`section`,{className:`training-run-evaluation`,"aria-label":`Retained evaluation answers`,children:[(0,j.jsxs)(`label`,{className:`training-taskset-selector`,children:[(0,j.jsx)(`span`,{children:`Evaluation answers`}),(0,j.jsx)(`select`,{value:o.reference.id,onChange:e=>i(e.target.value),children:a.map(e=>(0,j.jsxs)(`option`,{value:e.reference.id,children:[e.kind===`baseline`?`Baseline`:`Candidate`,` · policy `,e.policyVersion]},e.reference.id))})]}),(0,j.jsx)(z,{connection:e,jobId:t,evaluation:o.reference},`${t}:${o.reference.id}:${o.reference.contentHash}`)]})}function z({connection:e,jobId:t,evaluation:n}){let[r,i]=(0,A.useState)(),[a,o]=(0,A.useState)([]),[s,c]=(0,A.useState)(null),[l,u]=(0,A.useState)(null),[d,f]=(0,A.useState)(!0),[p,m]=(0,A.useState)(0),{id:h,contentHash:g}=n;return(0,A.useEffect)(()=>{let n=!0;return f(!0),u(null),c(null),b.trainingEvaluationTasks(e,t,{id:h,contentHash:g},r).then(e=>{n&&c(e)}).catch(e=>{n&&u(e instanceof Error?e.message:String(e))}).finally(()=>{n&&f(!1)}),()=>{n=!1}},[e,t,h,g,r,p]),(0,j.jsxs)(`div`,{className:`training-run-evaluation`,"aria-busy":d,children:[d?(0,j.jsx)(`p`,{className:`training-muted`,children:`Loading recorded answers…`}):null,l?(0,j.jsx)(v,{error:l,children:(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,onClick:()=>m(e=>e+1),children:`Retry answers`})}):null,s?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`p`,{className:`training-muted`,children:[`Tasks `,s.offset+1,`–`,s.offset+s.tasks.length,` of`,` `,s.total,`. Recorded outputs and scores are retained for this run.`]}),s.tasks.map((e,t)=>(0,j.jsxs)(`details`,{className:`training-evidence`,children:[(0,j.jsxs)(`summary`,{children:[`Example `,s.offset+t+1,` · score `,e.score.toFixed(3)]}),(0,j.jsxs)(`div`,{className:`training-evaluation-output`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Instruction`}),(0,j.jsx)(`pre`,{children:e.input.instruction})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Context`}),(0,j.jsx)(`pre`,{children:JSON.stringify(e.input.context,null,2)})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`span`,{children:`Recorded output`}),(0,j.jsx)(`pre`,{children:e.output})]})]})]},e.taskId))]}):null,(0,j.jsxs)(`div`,{className:`training-dialog-actions`,children:[(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:d||!a.length,onClick:()=>{i(a.at(-1)),o(e=>e.slice(0,-1))},children:`Previous tasks`}),(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,disabled:d||!s?.nextCursor,onClick:()=>{s?.nextCursor&&(o(e=>[...e,r]),i(s.nextCursor))},children:`Next tasks`})]})]})}var B=new Set([`queued`,`starting`,`running`,`cancelling`,`reconciling`]);function we(e,t,n,i=!1){let a=[`training-run-detail`,c(e),t,i],o=!!(e&&t),s=r({queryKey:[...a,`retained`],queryFn:({signal:n})=>b.trainingRunDetail(e,t,{includeEvaluation:i,refresh:!1,signal:n}),enabled:o,staleTime:3e4,gcTime:6e4}),l=r({queryKey:[...a,`hosted`],queryFn:({signal:n})=>b.trainingRunDetail(e,t,{includeEvaluation:i,signal:n}),enabled:o,staleTime:3e4,gcTime:6e4,refetchInterval:n&&B.has(n)?3e3:!1,refetchIntervalInBackground:!1}),u=l.data??s.data??null;return{detail:u,loading:o&&!u&&(s.isPending||l.isPending),error:l.error?.message??s.error?.message??null,refresh:async()=>(await l.refetch()).data??null}}function Te({title:e,status:t,statusValue:n,versionStatus:r,method:i,baseModel:a,taskset:o,compute:s,duration:c,output:l,reward:u,telemetry:d,evidence:f,configuration:p,children:m,failure:h,onOpenTaskset:_,showHeader:v=!0}){let y=d?.cost.providerReportedUsd??d?.cost.estimatedUsd??f?.cost.totalUsd??null;return(0,j.jsxs)(`div`,{className:`labs-model-run-summary`,children:[v?(0,j.jsx)(`section`,{className:`labs-run-outcome-card`,children:(0,j.jsx)(`header`,{children:(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`div`,{className:`labs-run-title-row`,children:[(0,j.jsx)(`h2`,{children:e}),(0,j.jsx)(C,{label:t,value:n})]}),(0,j.jsxs)(`p`,{children:[Ee(i),` on `,a]})]})})}):null,m,(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Run setup`})}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(V,{label:`Training method`,value:i}),(0,j.jsx)(V,{label:`Base model`,value:a}),(0,j.jsx)(V,{label:`Compute`,value:s}),(0,j.jsx)(V,{label:`Output`,value:l}),r?(0,j.jsx)(V,{label:`Version status`,value:r}):null,(0,j.jsx)(V,{label:`Duration`,value:c}),(0,j.jsx)(V,{label:`Run cost`,value:y===null?`Not reported`:`$${y.toFixed(4)}`}),(0,j.jsx)(V,{label:le(n)?`Latest reward`:`Final reward`,value:u===null?`Not reported`:u.toFixed(4)}),p.map(e=>(0,j.jsx)(V,{label:e.label,value:e.value},e.label)),d||f?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(H,{label:`GPU`,value:U(d,f)}),(0,j.jsx)(H,{label:`Tokens`,value:`${W(d?.usage.promptTokens??f?.usage.inputTokens??null)} prompt · ${W(d?.usage.generatedTokens??f?.usage.outputTokens??null)} generated`}),(0,j.jsx)(H,{label:`Trajectories`,value:`${W(d?.usage.successfulTrajectories??f?.reward.eligibleTrajectoryCount??null)} succeeded · ${W(d?.usage.failedTrajectories??(f?f.reward.trajectoryCount-f.reward.eligibleTrajectoryCount:null))} failed`}),(0,j.jsx)(H,{label:`Optimizer updates`,value:W(d?.usage.optimizerSteps??f?.progress.committedOptimizerSteps??null)}),(0,j.jsx)(H,{label:`GPU time`,value:d?.usage.gpuSeconds==null?`Not reported`:`${d.usage.gpuSeconds.toFixed(1)} seconds`})]}):(0,j.jsx)(V,{label:`Resource usage`,value:`Not retained for this run`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Taskset`}),(0,j.jsx)(`dd`,{children:_?(0,j.jsxs)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:_,children:[(0,j.jsx)(`span`,{children:o}),(0,j.jsx)(g,{"aria-hidden":`true`,size:14})]}):o})]})]})]}),h?(0,j.jsx)(`p`,{className:`labs-training-error`,children:h}):null]})}function V({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function H({label:e,value:t}){return(0,j.jsx)(V,{label:e,value:t})}function U(e,t){let 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?De(r):`Unreported`}`}function W(e){return e===null?`Not reported`:e.toLocaleString()}function Ee(e){return e===`RFT`?`Reinforcement fine-tuning`:`${e} training`}function De(e){return e.split(` · `).map(e=>e.replaceAll(`_`,` `).replace(/\b[a-z]/g,e=>e.toUpperCase())).join(` · `)}function G({receipt:e,onOpenConversation:t}){return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Inconclusive benchmark`})}),(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:e.reason}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(Y,{label:`Held-out baseline tokens`,value:e.usage.baseline.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Adaptation baseline tokens`,value:e.usage.adaptation.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Refiner tokens`,value:e.usage.refiner.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Grader tokens`,value:e.usage.grader.totalTokens.toLocaleString()}),(0,j.jsx)(Y,{label:`Observed / maximum spend`,value:`$${e.budget.observedSpendUsd.toFixed(4)} / $${e.budget.maximumSpendUsd.toFixed(2)}`}),(0,j.jsx)(Y,{label:`Harness candidate`,value:e.stopReason===`candidate_harness_unchanged`?`Unchanged`:`Lineage invalid`}),(0,j.jsx)(Y,{label:`Completed attempts`,value:e.attempts.length.toLocaleString()}),(0,j.jsx)(Y,{label:`Candidate attempts`,value:`Skipped`})]})]}),e.attempts.length?(0,j.jsx)(J,{receipt:e,onOpenConversation:t}):null]})}function Oe({run:e}){let 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`)),i=e.evaluationProgress?.completedAttempts??0,a=e.evaluationProgress?.totalAttempts??1;return(0,j.jsxs)(`div`,{className:`labs-benchmark-progress`,children:[(0,j.jsxs)(`header`,{children:[(0,j.jsx)(`h3`,{children:`Benchmark progress`}),(0,j.jsxs)(`strong`,{children:[i,` of `,a,` attempts`]})]}),(0,j.jsx)(`div`,{className:`labs-benchmark-progress-track`,"aria-hidden":`true`,children:(0,j.jsx)(`span`,{style:{width:`${Math.min(100,i/a*100)}%`}})}),(0,j.jsx)(`ol`,{children:t.map((e,t)=>(0,j.jsxs)(`li`,{className:t<r?`complete`:t===r?`active`:void 0,children:[(0,j.jsx)(`span`,{}),n[e]]},e))})]})}function K({receipt:e}){let t=O(e),n=t.pairs.filter(e=>e.cohort===`held_out`),r=t.pairs.filter(e=>e.cohort===`adaptation`),i=e=>e.length?e.reduce((e,t)=>e+t,0)/e.length:0;return(0,j.jsxs)(`div`,{className:`labs-benchmark-attempt-charts`,children:[(0,j.jsx)(q,{title:`Held-out tokens by task`,baseline:n.map(e=>e.baseline.totalTokens),candidate:n.map(e=>e.refined.totalTokens),format:e=>Math.round(e).toLocaleString()}),(0,j.jsx)(q,{title:`Adaptation tokens by task`,baseline:r.map(e=>e.baseline.totalTokens),candidate:r.map(e=>e.refined.totalTokens),format:e=>Math.round(e).toLocaleString()}),(0,j.jsx)(q,{title:`Held-out quality by task`,baseline:n.map(e=>e.baseline.score),candidate:n.map(e=>e.refined.score),format:e=>e.toFixed(2),summarize:i}),(0,j.jsx)(q,{title:`Adaptation quality by task`,baseline:r.map(e=>e.baseline.score),candidate:r.map(e=>e.refined.score),format:e=>e.toFixed(2),summarize:i})]})}function ke({receipt:e,run:t,tasksetName:n,onOpenTaskset:r}){let i=O(e),a=i.comparedTaskCount>0,o=i.passed,s=i.tokenDeltaPercent===null?`—`:`${i.tokenDeltaPercent>0?`+`:``}${i.tokenDeltaPercent.toFixed(2)}%`,c=e=>{let t=i.cohorts[e];return`${t.passedTaskCount}/${t.comparedTaskCount} passed`};return(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:`Token efficiency`})}),a?(0,j.jsxs)(`div`,{className:`labs-benchmark-efficiency-summary`,children:[(0,j.jsxs)(`strong`,{children:[i.passedTaskCount,` of `,i.comparedTaskCount,` tasks passed`]}),(0,j.jsxs)(`p`,{children:[`A task passes only when its refined token count is strictly lower than its own baseline. `,i.failedTaskCount,` failed this token-efficiency test; aggregate usage changed by `,s,`.`]})]}):(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:`Paired task-level token evidence is unavailable for this run.`}),(0,j.jsxs)(`dl`,{className:`labs-run-detail-list`,children:[(0,j.jsx)(Y,{label:`Execution`,value:f(t.status)}),(0,j.jsx)(Y,{label:`Token-efficiency result`,value:o?`Passed`:`Failed`}),(0,j.jsx)(Y,{label:`Efficiency passes`,value:`${i.passedTaskCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`Efficiency failures`,value:`${i.failedTaskCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`All-task foreground tokens`,value:`${i.baselineTokens.toLocaleString()} → ${i.refinedTokens.toLocaleString()}`}),(0,j.jsx)(Y,{label:`Aggregate token change`,value:s}),(0,j.jsx)(Y,{label:`Adaptation replay`,value:c(`adaptation`)}),(0,j.jsx)(Y,{label:`Held-out replay`,value:c(`held_out`)}),(0,j.jsx)(Y,{label:`Task quality`,value:`${i.baselinePassedCount}/${i.comparedTaskCount} → ${i.refinedPassedCount}/${i.comparedTaskCount}`}),(0,j.jsx)(Y,{label:`Result lineage`,value:e.lineage.valid?`Valid`:`Invalid`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:`Taskset`}),(0,j.jsx)(`dd`,{children:r?(0,j.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:i=e=>e.reduce((e,t)=>e+t,0)}){let a=t.filter(e=>e!==null),o=n.filter(e=>e!==null),s=Math.max(1,...a,...o),c=Math.max(2,t.length,n.length),l=e=>{let t=[],n=[];return e.forEach((e,r)=>{if(e===null){n.length&&t.push(n.join(` `)),n=[];return}let i=6+r/(c-1)*88,a=44-e/s*36;n.push(`${i},${a}`)}),n.length&&t.push(n.join(` `)),t},u=e=>e.flatMap((e,t)=>e===null?[]:[{x:6+t/(c-1)*88,y:44-e/s*36}]);return(0,j.jsxs)(`section`,{className:`labs-benchmark-line-chart`,children:[(0,j.jsxs)(`header`,{children:[(0,j.jsx)(`h4`,{children:e}),(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`span`,{children:[`Baseline `,r(i(a))]}),(0,j.jsxs)(`span`,{children:[`Refined `,r(i(o))]})]})]}),(0,j.jsxs)(`svg`,{"aria-label":e,role:`img`,viewBox:`0 0 100 50`,preserveAspectRatio:`none`,children:[(0,j.jsx)(`line`,{x1:`6`,x2:`94`,y1:`44`,y2:`44`}),l(t).map((e,t)=>(0,j.jsx)(`polyline`,{className:`baseline`,points:e},`baseline-${t}`)),l(n).map((e,t)=>(0,j.jsx)(`polyline`,{className:`candidate`,points:e},`candidate-${t}`)),u(t).map((e,t)=>(0,j.jsx)(`circle`,{className:`baseline`,cx:e.x,cy:e.y,r:`1`},`baseline-point-${t}`)),u(n).map((e,t)=>(0,j.jsx)(`circle`,{className:`candidate`,cx:e.x,cy:e.y,r:`1`},`candidate-point-${t}`))]})]})}function J({receipt:e,onOpenConversation:t}){let n=e.schemaVersion===`openpond.modelEvaluationReceipt.v1`?T(e.attempts??[]):e.attempts??[];return(0,j.jsxs)(`section`,{className:`labs-run-summary-card`,children:[(0,j.jsx)(`header`,{children:(0,j.jsx)(`h3`,{children:e.schemaVersion===`openpond.modelEvaluationReceipt.v1`?`Selected task results`:`Completed attempts`})}),(0,j.jsx)(`div`,{className:`training-table-wrap`,children:(0,j.jsxs)(`table`,{className:`training-data-table labs-benchmark-attempt-table`,children:[(0,j.jsx)(`thead`,{children:(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`th`,{children:`Task`}),(0,j.jsx)(`th`,{children:`Phase`}),(0,j.jsx)(`th`,{children:`Result`}),(0,j.jsx)(`th`,{children:`Score`}),(0,j.jsx)(`th`,{children:`Tokens`}),(0,j.jsx)(`th`,{children:`Work chat`})]})}),(0,j.jsx)(`tbody`,{children:n.map(e=>(0,j.jsxs)(`tr`,{children:[(0,j.jsx)(`td`,{children:Ae(e.taskId)}),(0,j.jsx)(`td`,{children:e.phase}),(0,j.jsx)(`td`,{children:(0,j.jsx)(C,{label:e.passed?`Passed`:`Failed`,value:e.passed?`succeeded`:`failed`})}),(0,j.jsx)(`td`,{children:e.score===null?`—`:e.score.toFixed(2)}),(0,j.jsx)(`td`,{children:e.totalTokens.toLocaleString()}),(0,j.jsx)(`td`,{children:e.sessionId?(0,j.jsx)(`button`,{className:`labs-run-taskset-link`,type:`button`,onClick:()=>t(e.sessionId),children:`Open chat`}):`Not retained`})]},`${e.phase}:${e.attemptId}`))})]})})]})}function Ae(e){return e.replace(/^(?:adaptation|frozen)-/,``).replaceAll(`-`,` `).replace(/^./,e=>e.toUpperCase())}function Y({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function je(e){let t=[`B`,`KB`,`MB`,`GB`,`TB`],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 Me({error:e,events:t,loading:n,pending:r}){let[i,a]=(0,A.useState)(!1),[o,s]=(0,A.useState)({}),[c,l]=(0,A.useState)(!0),u=(0,A.useRef)(null),f=(0,A.useRef)(null),p=(0,A.useRef)(null),m=(0,A.useMemo)(()=>Ne(t),[t]),g=(0,A.useMemo)(()=>t.filter(e=>o[X(e)]??Pe(X(e))),[t,o]),v=m.filter(e=>o[e.id]??Pe(e.id)).length,b=m.length>0&&v===m.length,S=v>0&&!b;return(0,A.useEffect)(()=>{p.current&&(p.current.indeterminate=S)},[S]),(0,A.useEffect)(()=>{if(!i)return;let e=e=>{f.current?.contains(e.target)||a(!1)},t=e=>{e.key===`Escape`&&a(!1)};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[i]),(0,A.useLayoutEffect)(()=>{let e=u.current;e&&c&&(e.scrollTop=e.scrollHeight)},[e,c,r,g]),n&&!t.length?(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`Loading run events…`}):t.length?(0,j.jsxs)(`div`,{className:`training-event-log-shell`,children:[(0,j.jsxs)(`div`,{className:`training-event-log-toolbar`,children:[(0,j.jsx)(`div`,{children:(0,j.jsx)(`strong`,{children:`Activity log`})}),(0,j.jsxs)(`div`,{className:`training-event-filter`,ref:f,children:[(0,j.jsxs)(`button`,{"aria-expanded":i,"aria-haspopup":`menu`,className:`training-event-filter-trigger`,type:`button`,onClick:()=>a(e=>!e),children:[(0,j.jsx)(y,{"aria-hidden":`true`,size:14}),`Event types`,(0,j.jsxs)(`span`,{children:[v,`/`,m.length]}),(0,j.jsx)(h,{"aria-hidden":`true`,size:13})]}),i?(0,j.jsxs)(`div`,{"aria-label":`Filter training activity by event type`,className:`training-event-filter-menu`,role:`menu`,children:[(0,j.jsxs)(`label`,{className:`training-event-filter-option select-all`,children:[(0,j.jsx)(`input`,{checked:b,ref:p,type:`checkbox`,onChange:e=>{let t=e.currentTarget.checked;s(Object.fromEntries(m.map(e=>[e.id,t])))}}),(0,j.jsx)(`span`,{className:`training-event-filter-check`,children:(0,j.jsx)(x,{"aria-hidden":`true`,size:12})}),`Select all`]}),(0,j.jsx)(`div`,{className:`training-event-filter-options`,children:m.map(e=>{let t=o[e.id]??Pe(e.id);return(0,j.jsxs)(`label`,{className:`training-event-filter-option`,children:[(0,j.jsx)(`input`,{checked:t,type:`checkbox`,onChange:t=>s(n=>({...n,[e.id]:t.currentTarget.checked}))}),(0,j.jsx)(`span`,{className:`training-event-filter-check`,children:(0,j.jsx)(x,{"aria-hidden":`true`,size:12})}),(0,j.jsx)(`span`,{children:e.label}),(0,j.jsx)(`small`,{children:e.count.toLocaleString()})]},e.id)})})]}):null]})]}),(0,j.jsxs)(`div`,{"aria-label":`Training activity log`,"aria-live":`polite`,className:`training-event-log`,ref:u,role:`log`,onScroll:e=>{let t=e.currentTarget,n=t.scrollHeight-t.scrollTop-t.clientHeight;l(n<=6)},children:[(0,j.jsxs)(`div`,{"aria-hidden":`true`,className:`training-event-log-header`,children:[(0,j.jsx)(`span`,{children:`Time`}),(0,j.jsx)(`span`,{children:`Event type`}),(0,j.jsx)(`span`,{children:`Details`})]}),g.map(e=>(0,j.jsxs)(`div`,{className:`training-event-log-line ${e.type}`,children:[(0,j.jsx)(`time`,{dateTime:e.timestamp,children:d(e.timestamp)}),(0,j.jsx)(`span`,{children:Fe(X(e))}),(0,j.jsx)(`code`,{children:Ie(e)})]},e.id)),r&&!e?(0,j.jsxs)(`div`,{className:`training-event-log-loading`,role:`status`,children:[(0,j.jsx)(_,{"aria-hidden":`true`,className:`spin`,size:14}),(0,j.jsx)(`span`,{className:`sr-only`,children:`Waiting for new activity`})]}):null,g.length?null:(0,j.jsx)(`div`,{className:`training-event-log-empty`,children:`No events match the selected event types.`}),e?(0,j.jsxs)(`div`,{className:`training-event-log-line failure`,children:[(0,j.jsx)(`time`,{children:`—`}),(0,j.jsx)(`span`,{children:`Failure`}),(0,j.jsx)(`code`,{children:e})]}):null]})]}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:e??`No normalized run events were recorded.`})}function X(e){return typeof e.payload.remoteEventType==`string`&&e.payload.remoteEventType.trim()?e.payload.remoteEventType:typeof e.payload.telemetryType==`string`&&e.payload.telemetryType.trim()?e.payload.telemetryType:e.type}function Ne(e){let t=new Map;for(let n of e){let e=X(n);t.set(e,(t.get(e)??0)+1)}return[...t.entries()].map(([e,t])=>({id:e,count:t,label:Fe(e)})).sort((e,t)=>e.label.localeCompare(t.label))}function Pe(e){return e!==`metric`&&!e.endsWith(`_metric`)}function Fe(e){return e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase())}function Ie(e){let t=e.payload,n=Q(t.step),r=Q(t.maxSteps);if(typeof t.telemetryType==`string`){let e=typeof t.message==`string`?t.message:null,r=typeof t.errorCode==`string`?t.errorCode:null,i=typeof t.telemetrySource==`string`?` · ${t.telemetrySource}`:``;return`${e??t.telemetryType.replaceAll(`_`,` `)}${n==null?``:` · step ${n}`}${i}${r?` · ${r}`:``}`}if(typeof t.remoteEventType==`string`){let e=Le(t.remoteEventType),r=typeof t.remotePhase==`string`?Re(t.remotePhase):null,i=typeof t.errorCode==`string`&&t.errorCode.trim()?t.errorCode.trim():null;return[e,r,n==null?null:`step ${n}`,i?`error ${i}`:null].filter(e=>!!e).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`){let e=typeof t.metricKind==`string`?t.metricKind.replaceAll(`_`,` `):`metric`,r=[Z(`loss`,t.loss),Z(`reward`,t.meanReward??t.reward),Z(`policy loss`,t.policyLoss),Z(`value loss`,t.valueLoss),Z(`preference accuracy`,t.preferenceAccuracy,Be)].filter(e=>!!e),i=typeof t.failureClass==`string`?t.failureClass:null,a=typeof t.failureCode==`string`?t.failureCode:null,o=typeof t.metricId==`string`&&typeof t.value==`number`?` · ${t.metricId}: ${t.value.toPrecision(4)}`:``;return`${e}${n==null?``:` · step ${n}`}${o}${i?` · ${i}`:``}${a?` · ${a}`:``}${r.length?` · ${r.join(` · `)}`:``}`}if(e.type===`checkpoint`){let e=Q(t.policyVersion),n=Q(t.sizeBytes),r=[e==null?null:`policy ${e}`,n==null?null:je(n),t.final===!0?`final`:null].filter(e=>!!e);return r.length?`Checkpoint committed · ${r.join(` · `)}.`:`Checkpoint committed.`}if(e.type===`complete`){let e=Q(t.artifactCount);return e==null?`Worker completed.`:`Worker completed with ${e} artifacts.`}return e.type===`failure`&&typeof t.message==`string`?t.message:Object.keys(t).length?JSON.stringify(t):`Recorded.`}function Le(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]??ze(e)}function Re(e){return{committed:`committed`,completed:`completed`,eligible:`recorded`,failed:`failed`,running:`running`,succeeded:`succeeded`}[e]??ze(e).toLocaleLowerCase()}function ze(e){return e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase())}function Z(e,t,n=e=>new Intl.NumberFormat(void 0,{maximumFractionDigits:4}).format(e)){let r=Q(t);return r==null?null:`${e} ${n(r)}`}function Q(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function Be(e){return`${(e*100).toFixed(1)}%`}function Ve({connection:e,detailTab:t,onDetailTabChange:n,selectedEntryKey:r,workproduct:c,runs:d,training:h,onOpenDataset:g,onOpenConversation:_,detailKind:v}){let y=h.payload,[b,x]=(0,A.useState)(null),C=(0,A.useMemo)(()=>ne(c,d,y),[d,y,c]),T=(0,A.useMemo)(()=>oe(c,d,y),[d,y,c]),E=(0,A.useMemo)(()=>ce(c,y),[y,c]),O=(0,A.useMemo)(()=>re(c,d,y),[d,y,c]),ue=(0,A.useMemo)(()=>new Map(O.map(e=>[e.id,e])),[O]),k=(0,A.useMemo)(()=>ae(C,T),[C,T]).find(e=>e.key===r)??null,M=r.startsWith(`model-run:`)?r.slice(10):null,N=M?E.find(e=>e.id===M)??null:k?.job?E.find(e=>e.id===k.job?.metadata.modelRunId)??null:null,P=k?.job??(N?y?.jobs.find(e=>e.id===N.id||e.metadata.modelRunId===N.id)??null:null),ge=y?.comparisonSeriesEntries.find(e=>e.modelRunId===N?.id||e.modelRunId===P?.metadata.modelRunId)??null,ve=s.shape.recovery.safeParse(P?.metadata.hostedRecovery),F=ve.success?ve.data:void 0,ye=i.shape.continuation.safeParse(P?.metadata.hostedContinuation),I=ye.success?ye.data:void 0,L=I?T.find(e=>e.lineage.jobId===I.sourceArtifact.jobId):void 0,be=F?`Recovered checkpoint`:L?`Version ${L.number}`:I?`Checkpoint ${I.sourceArtifact.checkpointId}`:typeof P?.metadata.parentHostedArtifactId==`string`?`Prior hosted run`:pe(y,ge),xe=(0,A.useMemo)(()=>{let e=se(C,T,E);return te(e,N?.kind===`evaluation`?`evals`:`training`)},[C,E,N?.kind,T]),R=xe.findIndex(e=>e.key===r||P!==null&&e.job?.id===P.id||N!==null&&e.lifecycleRun?.id===N.id),z=R<0?null:xe.length-R,B=k?.version??(N?.adapterArtifactLineageId?T.find(e=>e.lineage.id===N.adapterArtifactLineageId)??null:null),V=(N?y?.modelVersions.find(e=>e.id===N.modelVersionId)?.baseModel.modelId:null)??y?.modelVersions.filter(e=>e.modelId===c.id&&e.kind===`base_reference`).sort((e,t)=>t.version-e.version)[0]?.baseModel.modelId??(typeof P?.metadata.baseModelId==`string`?P.metadata.baseModelId:null),H=B?.lineage.frozenEvaluationArtifactId??null,U=B?.plan??(P?ue.get(P.planId)??null:null),W=B?.taskset??D(y).find(e=>e.id===(N?.taskset.id??U?.tasksetId??P?.metadata.tasksetId))??null,Ee=W?.name??(typeof P?.metadata.tasksetId==`string`?P.metadata.tasksetId:`Unavailable`),De=N?.method??U?.recipe.method??Ke(P?.metadata),G=we(e,P?.id??null,P?.status??null,t===`evaluation`),Oe=P?y?.rolloutReceipts.filter(e=>e.jobId===P.id)??[]:[],K=G.detail?.managedEvidence??null,ke=G.detail?.events.some(e=>e.type===`metric`&&e.payload.metricKind===`rollout_trajectory`)??!1,q=w({lifecycleRun:N,job:G.detail?.job??P}),J=le(q),Ae=N?.status===`failed`&&P?.metadata.phase===`artifact_collection_failed`,Y=De===`grpo`,X=Ue(P?.metadata),Ne=(U&&(U.recipe.method===`sft`||U.recipe.method===`dpo`||U.recipe.method===`grpo`)?U.recipe.optimizer.maxSteps:null)??K?.progress.targetOptimizerSteps??null,Pe=Ne!==null&&typeof P?.metadata.progress==`number`&&Number.isFinite(P.metadata.progress)?Math.floor(Math.max(0,P.metadata.progress)*Ne):0,Fe=Math.max(0,X?.optimizerUpdatesApplied??0,Pe,G.detail?.policyMetrics.reduce((e,t)=>Math.max(e,t.step),0)??0,G.detail?.stepMetrics.reduce((e,t)=>Math.max(e,t.step),0)??0,K?.progress.committedOptimizerSteps??0),Ie=He(Y&&X?X.groupsCompleted:Fe,Y&&X?X.groupsTarget:Ne),Le=v===`run`?{id:`details`,label:`Details`}:{id:`overview`,label:`Overview`},Re=[...v===`run`&&P?[{id:`metrics`,label:`Metrics`}]:[],Le,...v===`version`&&P?[{id:`metrics`,label:`Metrics`}]:[],{id:`evaluation`,label:`Evaluation`},...Oe.length||ke?[{id:`rollouts`,label:`Rollouts`}]:[],{id:`artifacts`,label:`Artifacts`},...P?[{id:`activity`,label:`Activity`}]:[]],ze=t,Z=Re.some(e=>e.id===ze)?ze:Re[0].id;return!k&&!N&&h.loading?(0,j.jsxs)(`div`,{className:`labs-model-version-detail`,children:[(0,j.jsx)(ie,{title:`Run details`}),(0,j.jsx)(`p`,{role:`status`,children:`Loading training run…`})]}):!k&&!N?(0,j.jsx)(`div`,{className:`labs-model-version-detail`,children:(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`This training attempt is no longer available.`})}):N?.kind===`evaluation`?(0,j.jsx)(We,{run:N,runNumber:z,tasksetName:W?.name??`Unavailable`,onOpenTaskset:W?()=>g(W.id):void 0,onOpenConversation:_}):(0,j.jsxs)(`div`,{className:`labs-model-version-detail`,children:[(0,j.jsx)(ie,{title:N||P?z?`Run ${z}`:`Run details`:B?`Version ${B.number}`:`Run details`,description:`${u(De)} on ${Ge(U,V)}`,status:(0,j.jsx)(ee,{status:q}),actions:J&&(N||P)?(0,j.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:h.busyAction!==null||q===`cancelling`,onClick:async()=>{let e=N?.id??P.id,t=N?await h.actions.cancelModelRun(N.id):await h.actions.cancelJob(P.id);x({runId:e,message:t?`Cancellation requested. Waiting for the training service to confirm.`:`Cancellation could not be requested. Try again.`})},children:q===`cancelling`?`Cancelling…`:h.busyAction===`cancel-model-run`||h.busyAction===`cancel-job`?`Requesting cancellation…`:`Cancel run`}):Ae&&N?(0,j.jsx)(`button`,{type:`button`,className:`training-button secondary`,disabled:h.busyAction!==null,onClick:async()=>{let e=await h.actions.retryModelRunCollection(N.id);x({runId:N.id,message:e?.state===`succeeded`?`Outputs collected from the completed training job.`:`Collection failed. The training job and its outputs are retained.`})},children:h.busyAction===`retry-model-run-collection`?`Collecting…`:`Retry collection`}):void 0,metrics:[{label:Y&&X?`Training groups`:`Training steps`,value:Ie.value},...F&&X?[{label:`Optimizer updates`,value:`${Math.max(0,X.optimizerUpdatesApplied-F.policyVersion)} new · ${F.policyVersion} reused`}]:[],{label:J?`Latest reward`:`Final reward`,value:Je(N?.reward?.raw??K?.reward.finalMean??null)},{label:`Duration`,value:N?p(N.startedAt,l(N.status,N.completedAt,N.updatedAt)):P?p(P.startedAt,l(P.status,P.completedAt,P.updatedAt)):`Not recorded`},{label:`Output`,value:B?`Version ${B.number}`:`No version`},{label:`Based on`,value:be},{label:`Taskset`,value:Ee,onSelect:W?()=>g(W.id):void 0,ariaLabel:W?`Open Taskset ${W.name}`:void 0}]}),(0,j.jsx)(a,{recovery:F}),I?(0,j.jsx)(o,{continuation:{sourceJobId:I.sourceArtifact.jobId,checkpointId:I.sourceArtifact.checkpointId}}):null,b&&b.runId===(N?.id??P?.id)?(0,j.jsx)(`p`,{role:`status`,children:b.message}):null,(0,j.jsxs)(`section`,{className:`labs-run-detail-tabs`,children:[(0,j.jsx)(`div`,{className:`training-detail-tabs`,role:`tablist`,"aria-label":`Run details`,children:Re.map(e=>(0,j.jsx)(`button`,{"aria-controls":`run-detail-panel-${e.id}`,"aria-selected":Z===e.id,className:Z===e.id?`active`:void 0,id:`run-detail-tab-${e.id}`,role:`tab`,type:`button`,onClick:()=>n(e.id),children:e.label},e.id))}),(0,j.jsxs)(`div`,{"aria-labelledby":`run-detail-tab-${Z}`,className:`labs-run-detail-tab-panel`,id:`run-detail-panel-${Z}`,role:`tabpanel`,children:[Z===Le.id?(0,j.jsx)(Te,{baseModel:Ge(U,V),compute:N?m(N.destinationId??``):U?m(U.destinationId):P?m(P.destinationId):`Not recorded`,duration:N?p(N.startedAt,l(N.status,N.completedAt,N.updatedAt)):P?p(P.startedAt,l(P.status,P.completedAt,P.updatedAt)):`Not recorded`,failure:P?.error??N?.failure??null,configuration:[...I?[{label:`Starting checkpoint`,value:[L?`Version ${L.number}`:null,I.sourceArtifact.checkpointId].filter(Boolean).join(` · `)},{label:`Parent run`,value:I.sourceArtifact.jobId},{label:`Parent artifact`,value:I.sourceArtifact.artifactId},{label:`Optimizer`,value:I.optimizerMode===`reset`?`Reset`:`Continue`}]:fe(y,ge),...de(U)],evidence:K,method:u(De),output:B?`Version ${B.number}`:`No version created`,reward:N?.reward?.raw??K?.reward.finalMean??null,status:N?f(N.status):P?f(P.status):`Imported`,statusValue:N?.status??P?.status??`imported`,taskset:Ee,telemetry:N?.receipt?.schemaVersion===`openpond.modelRunReceipt.v1`?N.receipt.telemetry:null,title:N||P?z?`Run ${z}`:`Run details`:B?`Version ${B.number}`:`Run details`,versionStatus:B?B.current?`Active`:`Available`:null,onOpenTaskset:W?()=>g(W.id):void 0,showHeader:!1}):null,Z===`metrics`&&P?(0,j.jsx)(S,{detail:G.detail,error:G.error,loading:G.loading,taskset:W}):null,Z===`artifacts`?(0,j.jsxs)(`dl`,{className:`training-configuration-list`,children:[(0,j.jsx)($,{label:`Training attempt`,value:P?.id??`Provider import`}),(0,j.jsx)($,{label:`Taskset`,value:Ee}),(0,j.jsx)($,{label:`Prepared data`,value:P?.bundleHash??`Provider managed`}),(0,j.jsx)($,{label:`Version ID`,value:B?.lineage.id??`No version created`}),K?.checkpoint?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)($,{label:`Checkpoint`,value:K.checkpoint.id}),(0,j.jsx)($,{label:`Checkpoint size`,value:K.checkpoint.sizeBytes==null?`Not reported`:je(K.checkpoint.sizeBytes)}),(0,j.jsx)($,{label:`Checkpoint hash`,value:K.checkpoint.sha256??`Not reported`})]}):null,K?.canonicalPublication.state?(0,j.jsx)($,{label:`Registry publication`,value:Ye(K.canonicalPublication.state)}):null]}):null,Z===`evaluation`?(0,j.jsxs)(`div`,{className:`training-run-evaluation`,children:[!K?.evaluations.length||G.detail?.evaluation?(0,j.jsx)(_e,{detail:G.detail,loading:G.loading,pending:J}):null,!G.detail?.evaluation&&K?.evaluations.length?(0,j.jsx)(`dl`,{className:`labs-inline-facts`,children:K.evaluations.map(e=>(0,j.jsxs)(A.Fragment,{children:[(0,j.jsx)($,{label:e.kind===`baseline`?`Baseline score`:`Candidate score`,value:e.score==null?`Not reported`:e.score.toFixed(6)}),(0,j.jsx)($,{label:e.kind===`baseline`?`Baseline coverage`:`Candidate coverage`,value:e.taskCount==null?`Not reported`:e.targetTaskCount==null?`${e.taskCount} ${e.taskCount===1?`task`:`tasks`} scored`:`${e.taskCount} of ${e.targetTaskCount} ${e.targetTaskCount===1?`task`:`tasks`} scored`})]},`${e.kind}:${e.policyVersion}`))}):null,B&&P?.destinationId===`openpond_managed`?(0,j.jsx)(Se,{connection:e,lineageId:B.lineage.id,onSaved:h.refresh},B.lineage.id):null,!B&&P?.metadata.source===`hosted_model_project_import`&&P.status===`succeeded`?(0,j.jsx)(Se,{connection:e,jobId:P.id,onSaved:h.refresh},`candidate:${P.id}`):null,P&&K?.evaluations.length?(0,j.jsx)(Ce,{connection:e,jobId:P.id,evaluations:K.evaluations},P.id):null,H?(0,j.jsx)(`button`,{className:`training-button secondary`,type:`button`,onClick:()=>void h.actions.downloadArtifact(H),children:`Download evaluation receipt`}):null]}):null,Z===`rollouts`?Oe.length?(0,j.jsx)(he,{receipts:Oe}):(0,j.jsx)(me,{events:G.detail?.events??[]}):null,Z===`activity`&&P?(0,j.jsx)(Me,{error:P.error??G.error,events:G.detail?.events??[],loading:G.loading,pending:J}):null]})]})]})}function He(e,t){let 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`};let r=Math.max(1,Math.floor(t));return{value:`${n.toLocaleString()} / ${r.toLocaleString()}`,hint:`completed / planned`}}function Ue(e){let t=e?.rolloutProgress;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t;return[`groupsCompleted`,`groupsTarget`,`optimizerUpdatesApplied`,`optimizerUpdatesSkipped`].some(e=>typeof n[e]!=`number`||!Number.isInteger(n[e])||n[e]<0)?null:{groupsCompleted:n.groupsCompleted,groupsTarget:n.groupsTarget,optimizerUpdatesApplied:n.optimizerUpdatesApplied,optimizerUpdatesSkipped:n.optimizerUpdatesSkipped}}function We({run:e,runNumber:t,tasksetName:n,onOpenTaskset:r,onOpenConversation:i}){let[a,o]=(0,A.useState)(`results`),s=e.receipt?.schemaVersion===`openpond.modelEvaluationReceipt.v1`?e.receipt:null,c=e.receipt?.schemaVersion===`openpond.modelEvaluationStopReceipt.v1`?e.receipt:null,l=s?E(s):null,u=s?O(s):null;return(0,j.jsxs)(`div`,{className:`labs-model-version-detail labs-model-evaluation-detail`,children:[(0,j.jsx)(ie,{title:t?`Eval ${t}`:`Evaluation run`,description:`Harness Refiner benchmark · ${n}`,status:(0,j.jsx)(C,{label:s?u?.comparedTaskCount?`${u.passedTaskCount}/${u.comparedTaskCount} passed`:`No paired result`:c?`Inconclusive`:f(e.status),value:s?u?.comparedTaskCount&&u.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)}]}),(0,j.jsx)(`div`,{className:`training-detail-tabs`,role:`tablist`,"aria-label":`Evaluation details`,children:[`results`,`scenarios`,`activity`].map(e=>(0,j.jsx)(`button`,{className:a===e?`active`:void 0,"aria-selected":a===e,role:`tab`,type:`button`,onClick:()=>o(e),children:e===`results`?`Results`:e===`scenarios`?`Scenarios`:`Activity`},e))}),a===`results`&&s?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(ue,{series:[{id:`baseline`,label:`Held-out baseline`,inputTokens:l.baseline.inputTokens,outputTokens:l.baseline.outputTokens,tokens:l.baseline.totalTokens,passRate:s.quality.baselinePassRate,costUsd:l.baseline.costUsd},{id:`candidate`,label:`Held-out refined`,inputTokens:l.candidate.inputTokens,outputTokens:l.candidate.outputTokens,tokens:l.candidate.totalTokens,passRate:s.quality.candidatePassRate,costUsd:l.candidate.costUsd}]}),(0,j.jsx)(ue,{series:[{id:`adaptation-baseline`,label:`Adaptation baseline`,inputTokens:l.adaptation.inputTokens,outputTokens:l.adaptation.outputTokens,tokens:l.adaptation.totalTokens,passRate:s.quality.adaptationBaselinePassRate,costUsd:l.adaptation.costUsd},{id:`adaptation-candidate`,label:`Adaptation replay`,inputTokens:l.candidate_adaptation.inputTokens,outputTokens:l.candidate_adaptation.outputTokens,tokens:l.candidate_adaptation.totalTokens,passRate:s.quality.adaptationCandidatePassRate,costUsd:l.candidate_adaptation.costUsd}]}),(0,j.jsx)(ke,{receipt:s,run:e,tasksetName:n,onOpenTaskset:r})]}):a===`results`&&c?(0,j.jsx)(G,{receipt:c,onOpenConversation:i}):a===`results`?(0,j.jsx)(`section`,{className:`labs-run-summary-card`,children:e.failure?(0,j.jsx)(`p`,{className:`training-run-placeholder`,children:e.failure}):(0,j.jsx)(Oe,{run:e})}):null,a===`scenarios`&&s?(0,j.jsxs)(j.Fragment,{children:[(s.attempts??[]).length?(0,j.jsx)(K,{receipt:s}):null,(s.attempts??[]).length?(0,j.jsx)(J,{receipt:s,onOpenConversation:i}):(0,j.jsx)(`div`,{className:`training-run-placeholder`,children:`No per-scenario attempts were retained.`})]}):null,a===`activity`?(0,j.jsxs)(`dl`,{className:`labs-inline-facts`,children:[(0,j.jsx)($,{label:`Run ID`,value:e.id}),(0,j.jsx)($,{label:`Status`,value:f(e.status)}),(0,j.jsx)($,{label:`Started`,value:e.startedAt?d(e.startedAt):`Not started`}),(0,j.jsx)($,{label:`Completed`,value:e.completedAt?d(e.completedAt):`In progress`})]}):null]})}function Ge(e,t=null){if(!e)return t?qe(t):`Not recorded`;let 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?qe(n.id):`Not recorded`}function Ke(e){let t=e?.trainingMethod;return t===`sft`||t===`dpo`||t===`grpo`||t===`ppo`||t===`sdft`||t===`opd`||t===`opsd`||t===`sdpo`?t:null}function qe(e){return e.split(`/`).at(-1)??e}function Je(e){return e===null?`Not reported`:e.toFixed(4)}function $({label:e,value:t}){return(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]})}function Ye(e){return e?e.replaceAll(`_`,` `).replace(/^./,e=>e.toUpperCase()):`Pending`}export{Ve as LabModelVersionDetailPage,Ie as eventSummary,He as formatTrainingProgress,Ue as managedRolloutProgress};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-CM0IRu1U.js";import"./icons-c3vt7y6n.js";import{L as r,R as i}from"./training-model-data-wHvE7xL1.js";import{t as a}from"./image-CqKPwnBn.js";import{t as o}from"./loader-circle-pxp89T5x.js";import{t as s}from"./maximize-2-yMp8X9ts.js";import{t as c}from"./x-D9GTV9ke.js";import{Bt as l,an as u,bn as d}from"./App-BZuSv1XM.js";var f=e(t(),1),p=n();function m({connection:e,expanded:t,selection:n,onClose:i,onResizeStart:u,onToggleExpanded:m}){let v=`${n.scope}:${n.name}`,[y,b]=(0,f.useState)({selectionKey:v,path:n.files[0]??`SKILL.md`}),x=y.selectionKey===v&&n.files.includes(y.path)?y.path:n.files[0]??`SKILL.md`,[S,C]=(0,f.useState)(null),[w,T]=(0,f.useState)(null),[E,D]=(0,f.useState)(!1);(0,f.useEffect)(()=>{if(!e){C(null),T(`Connect to the local OpenPond server to load this skill source.`);return}let t=!1;return D(!0),T(null),C(null),d.skillSourceFile(e,n.scope,n.name,x).then(e=>{t||C(e)}).catch(e=>{t||T(e instanceof Error?e.message:String(e))}).finally(()=>{t||D(!1)}),()=>{t=!0}},[e,x,n.name,n.scope]);let O=x.split(`/`).at(-1)??x;return(0,p.jsxs)(`aside`,{className:`workspace-diff-panel native-skill-sidebar lab-skill-sidebar ${t?`expanded`:``}`,"aria-label":`Skill package source: ${n.name}`,children:[t?null:(0,p.jsx)(`div`,{className:`workspace-diff-resize-handle`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize skill source`,onPointerDown:u}),(0,p.jsxs)(`div`,{className:`workspace-diff-topbar native-skill-sidebar-topbar`,children:[(0,p.jsx)(`div`,{className:`workspace-diff-tabs`,role:`tablist`,"aria-label":`Selected skill file`,children:(0,p.jsxs)(`button`,{className:`workspace-diff-tab active`,type:`button`,role:`tab`,"aria-selected":!0,children:[(0,p.jsx)(g,{path:x}),(0,p.jsx)(`span`,{children:O})]})}),(0,p.jsxs)(`div`,{className:`workspace-diff-toolbar-actions`,children:[(0,p.jsx)(`button`,{className:`diff-icon-button`,type:`button`,title:t?`Dock sidebar`:`Expand sidebar`,"aria-label":t?`Dock sidebar`:`Expand sidebar`,onClick:m,children:t?(0,p.jsx)(r,{size:14}):(0,p.jsx)(s,{size:14})}),(0,p.jsx)(`button`,{className:`diff-icon-button`,type:`button`,title:`Close skill source`,"aria-label":`Close skill source`,onClick:i,children:(0,p.jsx)(c,{size:14})})]})]}),(0,p.jsxs)(`div`,{className:`lab-skill-source-layout`,children:[(0,p.jsxs)(`nav`,{className:`lab-skill-file-list`,"aria-label":`${n.name} package files`,children:[(0,p.jsx)(`div`,{className:`lab-skill-file-list-heading`,children:`Package files`}),n.files.map(e=>(0,p.jsxs)(`button`,{"aria-current":e===x?`page`:void 0,className:e===x?`active`:void 0,type:`button`,title:e,onClick:()=>b({selectionKey:v,path:e}),children:[(0,p.jsx)(g,{path:e}),(0,p.jsx)(`span`,{children:e})]},e))]}),(0,p.jsxs)(`div`,{className:`native-skill-sidebar-body lab-skill-source-body`,children:[(0,p.jsxs)(`header`,{className:`native-skill-source-header`,children:[(0,p.jsxs)(`div`,{className:`lab-skill-source-title-row`,children:[(0,p.jsx)(`h2`,{children:n.name}),(0,p.jsx)(`span`,{children:h(n.scope)})]}),(0,p.jsx)(`p`,{children:n.description}),(0,p.jsx)(`code`,{children:n.packagePath})]}),E?(0,p.jsxs)(`div`,{className:`lab-skill-source-state`,children:[(0,p.jsx)(o,{className:`spin`,size:16}),` Loading source…`]}):w?(0,p.jsx)(l,{error:w}):S?.isBinary?(0,p.jsxs)(`div`,{className:`lab-skill-source-state`,children:[(0,p.jsx)(a,{size:18}),`Binary asset · `,_(S.byteSize)]}):(0,p.jsx)(`pre`,{className:`native-skill-markdown-source`,"aria-label":`${O} source`,children:(0,p.jsx)(`code`,{children:S?.content??``})})]})]})]})}function h(e){return e===`codex`?`Codex skill`:e===`extension`?`GitHub extension`:`OpenPond skill`}function g({path:e}){let t=e.split(`.`).at(-1)?.toLowerCase();return[`avif`,`gif`,`jpeg`,`jpg`,`png`,`webp`].includes(t??``)?(0,p.jsx)(a,{size:14}):[`md`,`txt`,`yaml`,`yml`].includes(t??``)?(0,p.jsx)(u,{size:14}):(0,p.jsx)(i,{size:14})}function _(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}export{m as LabSkillSidebar};
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{g as t,m as n}from"./index-D7igQSAg.js";import"./icons-B8_Rkg-l.js";import{L as r,R as i}from"./training-model-data-CWnu1bz9.js";import{t as a}from"./image-CUZMnZYi.js";import{t as o}from"./loader-circle-D_KVxLLz.js";import{t as s}from"./maximize-2-B8HN3jsA.js";import{t as c}from"./x-Bhl-4Zlt.js";import{Bt as l,an as u,bn as d}from"./App-CNQi3RlI.js";var f=e(t(),1),p=n();function m({connection:e,expanded:t,selection:n,onClose:i,onResizeStart:u,onToggleExpanded:m}){let v=`${n.scope}:${n.name}`,[y,b]=(0,f.useState)({selectionKey:v,path:n.files[0]??`SKILL.md`}),x=y.selectionKey===v&&n.files.includes(y.path)?y.path:n.files[0]??`SKILL.md`,[S,C]=(0,f.useState)(null),[w,T]=(0,f.useState)(null),[E,D]=(0,f.useState)(!1);(0,f.useEffect)(()=>{if(!e){C(null),T(`Connect to the local OpenPond server to load this skill source.`);return}let t=!1;return D(!0),T(null),C(null),d.skillSourceFile(e,n.scope,n.name,x).then(e=>{t||C(e)}).catch(e=>{t||T(e instanceof Error?e.message:String(e))}).finally(()=>{t||D(!1)}),()=>{t=!0}},[e,x,n.name,n.scope]);let O=x.split(`/`).at(-1)??x;return(0,p.jsxs)(`aside`,{className:`workspace-diff-panel native-skill-sidebar lab-skill-sidebar ${t?`expanded`:``}`,"aria-label":`Skill package source: ${n.name}`,children:[t?null:(0,p.jsx)(`div`,{className:`workspace-diff-resize-handle`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize skill source`,onPointerDown:u}),(0,p.jsxs)(`div`,{className:`workspace-diff-topbar native-skill-sidebar-topbar`,children:[(0,p.jsx)(`div`,{className:`workspace-diff-tabs`,role:`tablist`,"aria-label":`Selected skill file`,children:(0,p.jsxs)(`button`,{className:`workspace-diff-tab active`,type:`button`,role:`tab`,"aria-selected":!0,children:[(0,p.jsx)(g,{path:x}),(0,p.jsx)(`span`,{children:O})]})}),(0,p.jsxs)(`div`,{className:`workspace-diff-toolbar-actions`,children:[(0,p.jsx)(`button`,{className:`diff-icon-button`,type:`button`,title:t?`Dock sidebar`:`Expand sidebar`,"aria-label":t?`Dock sidebar`:`Expand sidebar`,onClick:m,children:t?(0,p.jsx)(r,{size:14}):(0,p.jsx)(s,{size:14})}),(0,p.jsx)(`button`,{className:`diff-icon-button`,type:`button`,title:`Close skill source`,"aria-label":`Close skill source`,onClick:i,children:(0,p.jsx)(c,{size:14})})]})]}),(0,p.jsxs)(`div`,{className:`lab-skill-source-layout`,children:[(0,p.jsxs)(`nav`,{className:`lab-skill-file-list`,"aria-label":`${n.name} package files`,children:[(0,p.jsx)(`div`,{className:`lab-skill-file-list-heading`,children:`Package files`}),n.files.map(e=>(0,p.jsxs)(`button`,{"aria-current":e===x?`page`:void 0,className:e===x?`active`:void 0,type:`button`,title:e,onClick:()=>b({selectionKey:v,path:e}),children:[(0,p.jsx)(g,{path:e}),(0,p.jsx)(`span`,{children:e})]},e))]}),(0,p.jsxs)(`div`,{className:`native-skill-sidebar-body lab-skill-source-body`,children:[(0,p.jsxs)(`header`,{className:`native-skill-source-header`,children:[(0,p.jsxs)(`div`,{className:`lab-skill-source-title-row`,children:[(0,p.jsx)(`h2`,{children:n.name}),(0,p.jsx)(`span`,{children:h(n.scope)})]}),(0,p.jsx)(`p`,{children:n.description}),(0,p.jsx)(`code`,{children:n.packagePath})]}),E?(0,p.jsxs)(`div`,{className:`lab-skill-source-state`,children:[(0,p.jsx)(o,{className:`spin`,size:16}),` Loading source…`]}):w?(0,p.jsx)(l,{error:w}):S?.isBinary?(0,p.jsxs)(`div`,{className:`lab-skill-source-state`,children:[(0,p.jsx)(a,{size:18}),`Binary asset · `,_(S.byteSize)]}):(0,p.jsx)(`pre`,{className:`native-skill-markdown-source`,"aria-label":`${O} source`,children:(0,p.jsx)(`code`,{children:S?.content??``})})]})]})]})}function h(e){return e===`codex`?`Codex skill`:e===`extension`?`GitHub extension`:`OpenPond skill`}function g({path:e}){let t=e.split(`.`).at(-1)?.toLowerCase();return[`avif`,`gif`,`jpeg`,`jpg`,`png`,`webp`].includes(t??``)?(0,p.jsx)(a,{size:14}):[`md`,`txt`,`yaml`,`yml`].includes(t??``)?(0,p.jsx)(u,{size:14}):(0,p.jsx)(i,{size:14})}function _(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}export{m as LabSkillSidebar};