openpond 0.0.38 → 0.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -4
- package/dist/api/core.d.ts +6 -0
- package/dist/api/vercel-protection.d.ts +1 -0
- package/dist/chunks/{app-layer-DPUJRNO2.js → app-layer-LTBWNA2F.js} +32 -10
- package/dist/chunks/app-server-runtime-VYYJ2AWX.js +18 -0
- package/dist/chunks/{apps-AKBI6AS7.js → apps-CZAJBGE3.js} +6 -4
- package/dist/chunks/{chunk-LZZM3IHS.js → chunk-2SF6HLT7.js} +5899 -5939
- package/dist/chunks/{chunk-XCATKTK3.js → chunk-3CDPPVLE.js} +108 -66
- package/dist/chunks/{chunk-JWF37O5E.js → chunk-3HW6OSHP.js} +1 -3
- package/dist/chunks/{chunk-43YI36NA.js → chunk-3KLQ52B2.js} +228 -5
- package/dist/chunks/chunk-4HIWFIMN.js +37172 -0
- package/dist/chunks/{chunk-AHPQTEIJ.js → chunk-4N6E3OVF.js} +4 -4
- package/dist/chunks/{chunk-YTJL6XPU.js → chunk-6V7MJVRO.js} +56 -11
- package/dist/chunks/{chunk-QRM7XMAO.js → chunk-BQQZNGI6.js} +152 -161
- package/dist/chunks/chunk-DBHSOTYZ.js +1552 -0
- package/dist/chunks/{chunk-275WCETC.js → chunk-FCVVOMIP.js} +145 -5
- package/dist/chunks/{chunk-GB6VUZUA.js → chunk-JIEUB6OS.js} +1 -1
- package/dist/chunks/{chunk-HS2AGRDV.js → chunk-JJPAMKXZ.js} +1 -1
- package/dist/chunks/{chunk-GDZYDLEL.js → chunk-JRROTGQT.js} +1 -110
- package/dist/chunks/chunk-KHNHUA2H.js +1737 -0
- package/dist/chunks/{chunk-AHNFNWUN.js → chunk-L6XH4ZGZ.js} +1 -1
- package/dist/chunks/chunk-M2NXTLH2.js +4054 -0
- package/dist/chunks/{chunk-SLMP353Q.js → chunk-MIZHCABO.js} +2 -195
- package/dist/chunks/chunk-SMNFI2FU.js +113 -0
- package/dist/chunks/chunk-VCVQLECH.js +675 -0
- package/dist/chunks/{chunk-V35STJF4.js → chunk-ZJBJQCQZ.js} +179 -52
- package/dist/chunks/{cli-7BKDWFNU.js → cli-JS76LCW2.js} +9 -5
- package/dist/chunks/{core-commands-YN4RMWA3.js → core-commands-4MRJQZJV.js} +7 -5
- package/dist/chunks/{harness-BHQRMXJR.js → desktop-test-RNMWLOVU.js} +15 -14
- package/dist/chunks/{chunk-XERQHYBO.js → extension-GDRW22N3.js} +5868 -3580
- package/dist/chunks/{help-VREQNA4I.js → help-LWNREJ7U.js} +1 -1
- package/dist/chunks/{opchat-D63YTNSX.js → opchat-2K2JIGK3.js} +9 -10
- package/dist/chunks/{organizations-I46KG7TC.js → organizations-Z5HVD2E7.js} +11 -9
- package/dist/chunks/{profile-WKZJHEPG.js → profile-QNECVVGN.js} +12 -38
- package/dist/chunks/{project-agent-ZUC3YMCT.js → project-agent-W3V75WBR.js} +9 -411
- package/dist/chunks/{sandbox-command-AAOPFTI5.js → sandbox-command-X3FO74NX.js} +7 -5
- package/dist/chunks/{sandbox-template-GKNVR4C5.js → sandbox-template-5B4T4BGU.js} +8 -6
- package/dist/chunks/{src-RPW5TOPI.js → src-ESAILPUH.js} +32 -30
- package/dist/chunks/src-IC5RX4L6.js +63517 -0
- package/dist/chunks/{teams-bot-PSL3ZO6Z.js → teams-bot-NTQ6VFFL.js} +6 -4
- package/dist/chunks/training-BR5A7SPU.js +320 -0
- package/dist/chunks/{workspaces-BPXC2DHT.js → workspaces-XC3QBD2Y.js} +2 -2
- package/dist/cli.js +24 -12
- package/dist/config.d.ts +9 -3
- package/dist/index.js +1300 -1045
- package/dist/profile/local-profile-types.d.ts +16 -0
- package/dist/profile/local-profile.d.ts +50 -4
- package/dist/sandbox/client-handles.d.ts +33 -46
- package/dist/sandbox/client.d.ts +4 -26
- package/dist/sandbox/sandbox-instance-client.d.ts +5 -5
- package/dist/sandbox/types/client.d.ts +1 -2
- package/dist/sandbox/types/core.d.ts +0 -1
- package/dist/sandbox/types/org-project-agent.d.ts +3 -89
- package/dist/sandbox/types/record.d.ts +1 -2
- package/dist/sandbox/types/runtime-profiles.d.ts +2 -2
- package/dist/sandbox-template/manifest.d.ts +1 -1
- package/dist/skills/openpond-agent-authoring/SKILL.md +40 -0
- package/dist/skills/openpond-agent-authoring/references/action-and-chat-design.md +13 -0
- package/dist/skills/openpond-agent-authoring/references/integrations-and-setup.md +13 -0
- package/dist/skills/openpond-agent-authoring/references/profile-layout.md +29 -0
- package/dist/skills/openpond-agent-authoring/references/validation-and-repair.md +14 -0
- package/dist/skills/openpond-desktop-harness/SKILL.md +1 -1
- package/dist/skills/openpond-skill-authoring/SKILL.md +44 -0
- package/dist/skills/openpond-skill-authoring/references/copying-and-adaptation.md +16 -0
- package/dist/skills/openpond-skill-authoring/references/skill-package-layout.md +38 -0
- package/dist/skills/openpond-skill-authoring/references/validation-and-repair.md +24 -0
- package/dist/skills/openpond-skill-authoring/scripts/validate-skill.mjs +102 -0
- package/dist/skills/openpond-taskset-authoring/SKILL.md +64 -22
- package/dist/skills/openpond-taskset-authoring/artifact.json +39 -0
- package/dist/skills/openpond-taskset-authoring/references/graders-and-rewards.md +3 -0
- package/dist/skills/openpond-taskset-authoring/references/method-selection.md +1 -1
- package/dist/skills/openpond-taskset-authoring/references/privacy-and-provenance.md +2 -0
- package/dist/skills/openpond-taskset-authoring/references/task-design.md +32 -0
- package/dist/web/assets/{AppDialog-DrwJb_wG.js → AppDialog-Bua3f-6v.js} +1 -1
- package/dist/web/assets/{AppsView-DPagLMsc.js → AppsView-DrJkHeSO.js} +1 -1
- package/dist/web/assets/BrowserSidebar-Bf-4Vozm.js +1 -0
- package/dist/web/assets/CommandMenu-DDZlGQiB.js +1 -0
- package/dist/web/assets/CommunityView-BtcCrba7.js +1 -0
- package/dist/web/assets/ComposerCreateImproveStrip-DOe5Otg6.js +1 -0
- package/dist/web/assets/GetStartedView-CG4z0Dtw.js +1 -0
- package/dist/web/assets/GetStartedView-yVmnGZPw.css +1 -0
- package/dist/web/assets/LabModelVersionDetailPage-BEkmSKuv.js +1 -0
- package/dist/web/assets/LabSkillSidebar-BIotN_RB.js +1 -0
- package/dist/web/assets/LabsRoute-CfOe0Zt5.js +3 -0
- package/dist/web/assets/LabsRoute-CoSPO4HR.css +1 -0
- package/dist/web/assets/MainChatThread-C0-l1mHt.js +2 -0
- package/dist/web/assets/MainPane-Bky_Rqcx.css +1 -0
- package/dist/web/assets/MainPane-aOVlVyRK.js +6 -0
- package/dist/web/assets/MarkdownText-D7DT1k1k.js +9 -0
- package/dist/web/assets/Messages-CBIXruA9.js +9 -0
- package/dist/web/assets/NativeSkillSidebar-C4t69Y7B.js +1 -0
- package/dist/web/assets/NewProjectDialog-Bat65tYD.js +1 -0
- package/dist/web/assets/OutputsPage-C58n39Db.js +1 -0
- package/dist/web/assets/RightChatPanelStack-Bp7nZxQ0.js +1 -0
- package/dist/web/assets/ScheduledWorkPage-BXP0j_c_.js +1 -0
- package/dist/web/assets/SettingsView-CtWK_aQ0.css +1 -0
- package/dist/web/assets/SettingsView-DOOfhO9a.js +6 -0
- package/dist/web/assets/TeamChatView-Cgxm-pKA.css +1 -0
- package/dist/web/assets/TeamChatView-De2wdqyY.js +3 -0
- package/dist/web/assets/{TerminalOverlay-BKl0p8pa.js → TerminalOverlay-BsuCH3NX.js} +1 -1
- package/dist/web/assets/TrainingCreationPanel-D2OFWyQ-.js +1 -0
- package/dist/web/assets/TrainingDraftPanel-DBpulXTz.js +1 -0
- package/dist/web/assets/{UsageSettingsSection-zDAwzTGl.js → UsageSettingsSection-DzMLUXAO.js} +37 -37
- package/dist/web/assets/WorkspaceDiffPanel-B7yIhjNF.js +14 -0
- package/dist/web/assets/WorkspaceEnvironmentMenu-B6jXM9xG.js +32 -0
- package/dist/web/assets/WorkspaceGitDialogs-CQ0fl9Qk.js +1 -0
- package/dist/web/assets/{WorkspaceMonacoEditor-DPGcG8fy.js → WorkspaceMonacoEditor-C2ctzITz.js} +3 -3
- package/dist/web/assets/arrow-up-right-ecwcx3xt.js +1 -0
- package/dist/web/assets/chevron-up-DP8PPfWd.js +1 -0
- package/dist/web/assets/circle-alert-envg1D6O.js +1 -0
- package/dist/web/assets/cloud-upload-5MGPLnaA.js +1 -0
- package/dist/web/assets/{cssMode-CKN9CcfG.js → cssMode-CFifcEfw.js} +1 -1
- package/dist/web/assets/folder-open-Dq3ZjeEP.js +1 -0
- package/dist/web/assets/folder-plus-EiZ5wbv_.js +1 -0
- package/dist/web/assets/git-branch-w29jmQ-X.js +1 -0
- package/dist/web/assets/{git-commit-horizontal-Bxi8YPep.js → git-commit-horizontal-CGZM0PZo.js} +1 -1
- package/dist/web/assets/{htmlMode-CeUcNhBZ.js → htmlMode-Ct1P-_lf.js} +1 -1
- package/dist/web/assets/index-ByIQyiUl.js +178 -0
- package/dist/web/assets/index-D4uCeiep.js +1 -0
- package/dist/web/assets/index-D9jTe16Q.css +1 -0
- package/dist/web/assets/info-Cd2HkIeb.js +1 -0
- package/dist/web/assets/{jsonMode-97z0Yz9u.js → jsonMode-BAUNCNAX.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-D4Tp-JmI.js → lspLanguageFeatures-fucFYI1A.js} +1 -1
- package/dist/web/assets/monaco.contribution-Ce4v5kei.js +2 -0
- package/dist/web/assets/monaco.contribution-DLLMi4cB.js +2 -0
- package/dist/web/assets/monaco.contribution-g9QiIm1d.js +2 -0
- package/dist/web/assets/monaco.contribution-nG-5Cyjz.js +2 -0
- package/dist/web/assets/monitor-DgHCnCKl.js +1 -0
- package/dist/web/assets/{play-C-37dnR1.js → play-Be0XDHBu.js} +1 -1
- package/dist/web/assets/{python-CGpDXY7_.js → python-CEhEiPo7.js} +1 -1
- package/dist/web/assets/{refresh-cw-BAaaPCXl.js → refresh-cw-DH0KLbdD.js} +1 -1
- package/dist/web/assets/reply-D1TK2yV8.js +1 -0
- package/dist/web/assets/{save-Cvxs3XyC.js → save-C1MSeBnQ.js} +1 -1
- package/dist/web/assets/square-CemI-0g5.js +1 -0
- package/dist/web/assets/square-pen-CqfsvR_n.js +1 -0
- package/dist/web/assets/{toggleHighContrast-CD42jH4g.js → toggleHighContrast-DrdQN3Rl.js} +1 -1
- package/dist/web/assets/training-BQVNUTZA.css +1 -0
- package/dist/web/assets/training-model-data-B7-1Bxil.js +1 -0
- package/dist/web/assets/{tsMode-ZROIxEjv.js → tsMode-CKB5oOUU.js} +1 -1
- package/dist/web/assets/{upload-DvCSGERK.js → upload-t751LLqP.js} +1 -1
- package/dist/web/assets/useLocalAgentSchedules-CzC3wfIP.js +1 -0
- package/dist/web/assets/{wifi-off-BIb94PkS.js → wifi-off-CxTHH3JU.js} +1 -1
- package/dist/web/assets/{workers-oYqbrVYG.js → workers-CqYddzCd.js} +1 -1
- package/dist/web/assets/{yaml-WqBjNgOO.js → yaml-e5wBkc-C.js} +1 -1
- package/dist/web/index.html +2 -2
- package/docs/command-reference.md +75 -40
- package/package.json +3 -1
- package/dist/chunks/chunk-FWLOFUPU.js +0 -864
- package/dist/chunks/chunk-HLCTINEP.js +0 -224
- package/dist/chunks/chunk-MPGSHXGF.js +0 -3896
- package/dist/chunks/chunk-T4QXKU5Y.js +0 -1
- package/dist/chunks/chunk-XEJ7XXUQ.js +0 -1301
- package/dist/chunks/chunk-ZI4GDAUB.js +0 -3522
- package/dist/chunks/cli-2KBVNDRY.js +0 -23
- package/dist/chunks/extend-REGNTBK3.js +0 -89
- package/dist/chunks/extension-7K77DAVL.js +0 -121
- package/dist/chunks/fileFromPath-DHCRY3BD.js +0 -2151
- package/dist/chunks/src-MWDIK56B.js +0 -105881
- package/dist/web/assets/BrowserSidebar-DMn2V8RV.js +0 -1
- package/dist/web/assets/CloudWorkView-Cl_7mM3c.js +0 -1
- package/dist/web/assets/CloudWorkView-DNoPIlMj.css +0 -1
- package/dist/web/assets/CommandMenu-CHMQLez_.js +0 -1
- package/dist/web/assets/CommunityView-DcHVDUk0.js +0 -1
- package/dist/web/assets/ComposerCreateImproveStrip-BZ3Dgzmo.js +0 -1
- package/dist/web/assets/GetStartedView-DBLdduwr.css +0 -1
- package/dist/web/assets/GetStartedView-DTRotFqz.js +0 -1
- package/dist/web/assets/LabSkillSidebar-D-PqFe1T.js +0 -1
- package/dist/web/assets/LabsRoute-BrJkBNig.css +0 -1
- package/dist/web/assets/LabsRoute-Dew1BwK5.js +0 -3
- package/dist/web/assets/MainChatThread-BaPxxzrw.js +0 -2
- package/dist/web/assets/MakeAgentTutorialLearningPanel-CBsfnONQ.js +0 -2
- package/dist/web/assets/MarkdownText-DGLfAM_Z.js +0 -7
- package/dist/web/assets/Messages-CIX9uTjX.js +0 -10
- package/dist/web/assets/NativeSkillSidebar-AP_uHn6g.js +0 -1
- package/dist/web/assets/NewProjectDialog-C6lHkafU.js +0 -1
- package/dist/web/assets/PostTrainingLearningPanel-CZEgPc8O.js +0 -2
- package/dist/web/assets/PostTrainingStatusPill-CeEpwUDB.js +0 -1
- package/dist/web/assets/ProfileSettingsSection-Cg4tKO-C.css +0 -1
- package/dist/web/assets/ProfileSettingsSection-EumMLlEp.js +0 -1
- package/dist/web/assets/RightChatPanelStack-MXBcx3zO.js +0 -1
- package/dist/web/assets/SettingsView-Caljbns2.css +0 -1
- package/dist/web/assets/SettingsView-DyURG_Uh.js +0 -6
- package/dist/web/assets/TeamChatView-Bx44q3WV.css +0 -1
- package/dist/web/assets/TeamChatView-D3v6aqJ3.js +0 -3
- package/dist/web/assets/TrainingCreationPanel-CfZQTuT5.js +0 -1
- package/dist/web/assets/TrainingDraftPanel-DslRPSDW.js +0 -1
- package/dist/web/assets/WorkspaceDiffPanel-C_MZPPlL.js +0 -14
- package/dist/web/assets/WorkspaceEnvironmentMenu-BUAnn80j.js +0 -32
- package/dist/web/assets/WorkspaceGitDialogs-Drbf4ujA.js +0 -1
- package/dist/web/assets/activity-Dnr3jqb3.js +0 -1
- package/dist/web/assets/boxes-BinC8UPn.js +0 -1
- package/dist/web/assets/chevron-up-Bjp_-_Cb.js +0 -1
- package/dist/web/assets/circle-x-ubnvEYuE.js +0 -1
- package/dist/web/assets/copy-B_ZCCUMz.js +0 -1
- package/dist/web/assets/create-pipeline-request-D6uLUxe9.js +0 -4
- package/dist/web/assets/file-8HAMlTmQ.js +0 -1
- package/dist/web/assets/git-branch-l2Zih3Bv.js +0 -1
- package/dist/web/assets/index-BMFyOFRU.css +0 -1
- package/dist/web/assets/index-BzwcDzbT.js +0 -1
- package/dist/web/assets/index-KoQSSt_f.js +0 -177
- package/dist/web/assets/info-JTbDQxHx.js +0 -1
- package/dist/web/assets/make-agent-tutorial-D6nBCgv-.js +0 -2
- package/dist/web/assets/monaco.contribution-B3j6oown.js +0 -2
- package/dist/web/assets/monaco.contribution-BXHxPPWL.js +0 -2
- package/dist/web/assets/monaco.contribution-C2P5zIzh.js +0 -2
- package/dist/web/assets/monaco.contribution-C8c6OtGi.js +0 -2
- package/dist/web/assets/monitor-kzHtxHnA.js +0 -1
- package/dist/web/assets/reply-9rehU13k.js +0 -1
- package/dist/web/assets/rotate-cw-C1Z_Xs23.js +0 -1
- package/dist/web/assets/training-BN8CALIc.css +0 -1
- package/dist/web/assets/training-model-data-BXUCzS0p.js +0 -1
- package/docs/agent-edit-check-status-json.md +0 -132
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./LabModelVersionDetailPage-BEkmSKuv.js","./index-ByIQyiUl.js","./index-D9jTe16Q.css","./training-model-data-B7-1Bxil.js","./cloud-upload-5MGPLnaA.js","./MainPane-aOVlVyRK.js","./square-pen-CqfsvR_n.js","./arrow-up-right-ecwcx3xt.js","./MarkdownText-D7DT1k1k.js","./square-CemI-0g5.js","./folder-open-Dq3ZjeEP.js","./MainPane-Bky_Rqcx.css","./AppDialog-Bua3f-6v.js","./ComposerCreateImproveStrip-DOe5Otg6.js","./circle-alert-envg1D6O.js","./play-Be0XDHBu.js","./refresh-cw-DH0KLbdD.js","./UsageSettingsSection-DzMLUXAO.js","./index-D4uCeiep.js","./UsageSettingsSection-O8VK0qBL.css","./training-BQVNUTZA.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as d,b2 as sa,j as e,X as we,A as _n,aN as ct,b3 as ia,a1 as Tn,bF as Vt,n as qe,bG as lt,bH as fe,bI as Ht,P as la,aq as oa,aF as rt,_ as ra,bJ as da,bK as Kt,a6 as Pn,a as ca,bL as Rt,bM as ua,bN as an,bO as ma,bP as ha,av as pa,aB as ga,au as sn,bQ as ln,bR as Mt,bS as fa}from"./index-ByIQyiUl.js";import{C as ba}from"./cloud-upload-5MGPLnaA.js";import{C as xa}from"./MainPane-aOVlVyRK.js";import{A as Ke}from"./AppDialog-Bua3f-6v.js";import{c as ja,s as ke,f as Ge,e as _e,j as En,g as va}from"./training-model-data-B7-1Bxil.js";import{D as Ie}from"./MarkdownText-D7DT1k1k.js";import{ComposerCreateImproveStrip as ya}from"./ComposerCreateImproveStrip-DOe5Otg6.js";import{S as Sa}from"./square-pen-CqfsvR_n.js";/* empty css */import{UsageSettingsSection as Na}from"./UsageSettingsSection-DzMLUXAO.js";const It=8,on=24,ka=2;function Ca(t){const n=Ma(t);if(n.length){const l=on+n.reduce((i,o)=>i+It+ze(o.content),0),r=n.filter(i=>i.role==="assistant").map(i=>It+ze(i.content));return{renderedTokens:l,maximumAssistantTargetTokens:Math.max(0,...r),assistantTargetCount:r.length}}const a=Aa(t.input),s=wa(t.expectedOutput);return{renderedTokens:on+ze(a)+ze(s),maximumAssistantTargetTokens:It+ze(s),assistantTargetCount:s?1:0}}function Ra(t,n={}){const a=n.minimum??64,s=n.maximum??4096,l=t.tasks.filter(r=>r.split==="train").reduce((r,i)=>Math.max(r,Ca(i).renderedTokens),0);return l<=a?a:Math.min(s,2**Math.ceil(Math.log2(l)))}function Ma(t){const n=[...rn(t.input.messages),...rn(t.expectedOutput?.messages)],a=[],s=new Map,l=r=>{const i=typeof r=="string"&&r?r:`missing_${s.size+1}`;return s.has(i)||s.set(i,`call_${s.size+1}`),s.get(i)};for(const r of n){if(!ot(r))continue;const i=r.role,o=r.content;if(i==="tool"){a.push({role:"user",content:dt({content:typeof o=="string"?o:"",tool_call_id:l(r.tool_call_id),type:"tool_result"})});continue}if(i==="assistant"&&Array.isArray(r.tool_calls)&&r.tool_calls.length){for(const h of r.tool_calls)!ot(h)||!ot(h.function)||(a.push({role:"assistant",content:dt({arguments:Ia(h.function.arguments),name:h.function.name??null,type:"tool_call"})}),l(h.id));typeof o=="string"&&o&&a.push({role:"assistant",content:o});continue}(i==="system"||i==="user"||i==="assistant")&&typeof o=="string"&&o&&a.push({role:i,content:o})}return a}function rn(t){return Array.isArray(t)?t:[]}function Ia(t){if(typeof t!="string")return{};try{return JSON.parse(t)}catch{return{malformed_arguments:t}}}function dt(t){return JSON.stringify(Lt(t))}function Lt(t){return Array.isArray(t)?t.map(Lt):ot(t)?Object.fromEntries(Object.keys(t).sort().map(n=>[n,Lt(t[n])])):t}function Aa(t){return typeof t.prompt=="string"?t.prompt:dt(t)}function wa(t){return t?typeof t.text=="string"?t.text:dt(t):""}function ze(t){return Math.ceil(t.length/ka)}function ot(t){return!!(t&&typeof t=="object"&&!Array.isArray(t))}const dn=[{id:"build",title:"Build",description:"Create from a purpose, conversations, or both.",icon:sa,available:!0},{id:"huggingface",title:"Hugging Face",description:"Import task data from a Dataset URL or repository ID.",icon:xa,available:!0},{id:"upload",title:"Upload file",description:"JSON, JSONL, CSV, and Parquet import is coming next.",icon:ba,available:!1}];function _a({onClose:t,onSelect:n}){const[a,s]=d.useState(null),l=dn.find(r=>r.id===a)??null;return e.jsxs(Ke,{ariaLabel:"New Taskset",className:"training-dialog training-run-dialog training-run-start-step",onClose:t,children:[e.jsxs("div",{className:"training-dialog-header",children:[e.jsx("h2",{children:"New Taskset"}),e.jsx("button",{"aria-label":"Close",className:"training-icon-button",type:"button",onClick:t,children:e.jsx(we,{size:16})})]}),e.jsxs("div",{className:"training-run-step-heading",children:[e.jsx("h3",{children:"Choose a source"}),e.jsx("p",{children:"Every source becomes an immutable OpenPond Taskset with Parquet-backed Data."})]}),e.jsx("div",{"aria-label":"How to create a Taskset",className:"training-method-options training-start-mode-options",role:"radiogroup",children:dn.map(r=>{const i=r.icon;return e.jsxs("button",{"aria-describedby":r.available?void 0:`${r.id}-availability`,"aria-checked":a===r.id,className:a===r.id?"selected":void 0,disabled:!r.available,role:"radio",type:"button",onClick:()=>s(r.id),children:[e.jsx("span",{className:"training-start-mode-icon","aria-hidden":"true",children:e.jsx(i,{size:18})}),e.jsxs("span",{className:"training-start-mode-copy",children:[e.jsxs("strong",{children:[r.title,r.available?null:e.jsx("span",{className:"dataset-source-availability",id:`${r.id}-availability`,children:"Coming next"})]}),e.jsx("small",{children:r.description})]})]},r.id)})}),e.jsxs("div",{className:"training-dialog-actions",children:[e.jsx("button",{className:"training-button secondary",type:"button",onClick:t,children:"Cancel"}),e.jsx("button",{className:"training-button",disabled:!l,type:"button",onClick:()=>{l&&n(l.id)},children:a==="build"?"Create":"Continue"})]})]})}const Ta=["row_id","cluster_id","prompt","messages","demonstration","chosen","rejected","expected_output","privileged_context","reward","feedback","tag","metadata"],Pa=["visible","privileged","metadata"];function Ea({onBack:t,onClose:n,onImported:a,onOpenDatasetStorageSettings:s,training:l}){const[r,i]=d.useState(""),[o,h]=d.useState(null),[c,u]=d.useState(null),[v,m]=d.useState(""),[g,S]=d.useState(""),[x,j]=d.useState(!1),[b,y]=d.useState(null),w=d.useRef(null),f=l.payload?.datasetImports.find(M=>M.id===o?.id)??o,z=f?.inspection??null,p=!!(f&&["inspecting","materializing","validating","cancelling"].includes(f.status)),k=!z?.declaredLicense||["unknown","other"].includes(z.declaredLicense.toLowerCase()),E=d.useMemo(()=>z?.sourceFiles.reduce((M,K)=>M===null||K.sizeBytes===null?null:M+K.sizeBytes,0)??null,[z]);d.useEffect(()=>{!f||f.status!=="ready"||!f.tasksetId||w.current!==f.id&&(w.current=f.id,a(f.tasksetId))},[f,a]);async function Q(){if(!r.trim())return;y(null);const M=await l.actions.inspectHuggingFaceDataset(r);if(!M){y(l.error??"OpenPond could not inspect this Dataset.");return}h(M),M.inspection&&M.mapping&&$(M)}function $(M){u(M.mapping),m(M.inspection?.title??M.locator?.repositoryId.split("/").at(-1)??"Imported Dataset"),S(M.inspection?.description?.trim().slice(0,2e3)||`Train and evaluate tasks from ${M.locator?.repositoryId??"this Dataset"}.`)}function P(M,K){u(B=>B&&{...B,bindings:B.bindings.map((G,ae)=>ae===M?{...G,...K}:G)})}async function J(){if(!f||!c||!v.trim()||!g.trim())return;y(null);const M=await l.actions.materializeDatasetImport(f.id,{name:v.trim(),objective:g.trim(),mapping:c,targetStorageRoot:null,licenseApproved:x});if(!M){y(l.error??"OpenPond could not start Dataset materialization.");return}h(M)}async function V(){if(!f)return;const M=await l.actions.cancelDatasetImport(f.id);M&&h(M)}const Y=!!(z&&c)&&!["materializing","validating","ready","cancelling","cancelled"].includes(f?.status??"");return e.jsxs(Ke,{ariaLabel:"Import Hugging Face data",className:"training-dialog training-run-dialog training-run-workflow-step dataset-import-dialog",dismissDisabled:p,initialFocusKey:z?"review":"locator",onClose:n,children:[e.jsxs("div",{className:"training-dialog-header",children:[e.jsxs("div",{className:"training-run-dialog-title",children:[e.jsx("button",{"aria-label":"Back to Taskset sources",className:"training-icon-button",type:"button",onClick:t,children:e.jsx(_n,{size:16})}),e.jsx("h2",{children:"Import from Hugging Face"})]}),e.jsx("button",{"aria-label":"Close",className:"training-icon-button",type:"button",onClick:n,children:e.jsx(we,{size:16})})]}),z?Y?e.jsxs("div",{className:"training-dialog-scroll-body dataset-import-review",children:[e.jsx($a,{job:f,sourceBytes:E}),e.jsxs("label",{className:"training-objective-field",children:[e.jsx("span",{children:"Taskset name"}),e.jsx("input",{value:v,onChange:M=>m(M.target.value)})]}),e.jsxs("label",{className:"training-objective-field",children:[e.jsx("span",{children:"Purpose"}),e.jsx("textarea",{value:g,onChange:M=>S(M.target.value)})]}),e.jsxs("div",{className:"dataset-import-mapping",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Semantic mapping"}),e.jsx("small",{children:"Review which fields the policy can see and which stay privileged for grading."})]}),e.jsx("div",{className:"dataset-import-mapping-table",children:c.bindings.map((M,K)=>e.jsxs("div",{children:[e.jsx("code",{children:M.sourcePath}),e.jsx("select",{"aria-label":`Target for ${M.sourcePath}`,value:M.target,onChange:B=>P(K,{target:B.target.value}),children:Ta.map(B=>e.jsx("option",{value:B,children:Dt(B)},B))}),e.jsx("select",{"aria-label":`Policy for ${M.sourcePath}`,value:M.policy,onChange:B=>P(K,{policy:B.target.value}),children:Pa.map(B=>e.jsx("option",{value:B,children:Dt(B)},B))})]},`${M.sourcePath}:${K}`))})]}),k?e.jsxs("label",{className:"dataset-import-license-review",children:[e.jsx("input",{checked:x,type:"checkbox",onChange:M=>j(M.target.checked)}),e.jsx("span",{children:"I reviewed the repository license and approve importing this Dataset."})]}):null,f?.status==="failed"&&f.error?e.jsx("div",{className:"training-banner error",role:"alert",children:f.error}):null]}):e.jsx(La,{job:f}):e.jsxs("div",{className:"training-dialog-scroll-body dataset-import-locator",children:[e.jsxs("div",{className:"training-run-step-heading",children:[e.jsx("h3",{children:"Paste a Dataset URL"}),e.jsx("p",{children:"OpenPond inspects the public repository, pins its exact commit, and shows the fields before downloading any rows."})]}),e.jsxs("label",{className:"training-objective-field",children:[e.jsx("span",{children:"Hugging Face URL or repository ID"}),e.jsx("input",{"data-autofocus":!0,disabled:p,placeholder:"BytedTsinghua-SIA/DAPO-Math-17k",value:r,onChange:M=>i(M.target.value)})]}),f?.status==="failed"&&f.error?e.jsx("div",{className:"training-banner error",role:"alert",children:f.error}):null]}),b?e.jsx("div",{className:"training-banner error",role:"alert",children:b}):null,e.jsx("div",{className:"training-dialog-actions",children:z?Y?e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"training-button secondary",type:"button",onClick:s,children:"Dataset storage"}),e.jsx("button",{className:"training-button",disabled:!v.trim()||!g.trim()||!c||k&&!x,type:"button",onClick:()=>{J()},children:"Import and save"})]}):p?e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"training-button secondary",type:"button",onClick:n,children:"Run in background"}),e.jsx("button",{className:"training-button",disabled:f?.status==="cancelling",type:"button",onClick:()=>{V()},children:"Cancel import"})]}):e.jsx("button",{className:"training-button",type:"button",onClick:n,children:"Close"}):e.jsxs("button",{className:"training-button",disabled:!r.trim()||p,type:"button",onClick:()=>{Q()},children:[p?e.jsx(ct,{className:"spin",size:14}):null,"Inspect Dataset"]})})]})}function $a({job:t,sourceBytes:n}){const a=t.inspection,s=a.splits.reduce((l,r)=>l===null||r.rowCount===null?null:l+r.rowCount,0);return e.jsxs("div",{className:"dataset-import-summary",children:[e.jsxs("div",{children:[e.jsx("strong",{children:a.title}),e.jsxs("a",{href:a.locator.repositoryUrl,rel:"noreferrer",target:"_blank",children:["Open on Hugging Face ",e.jsx(ia,{size:12})]})]}),e.jsxs("dl",{children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Revision"}),e.jsx("dd",{children:e.jsx("code",{children:a.resolvedRevision.slice(0,12)})})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Rows"}),e.jsx("dd",{children:s===null?"Unknown":s.toLocaleString()})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Source size"}),e.jsx("dd",{children:n===null?"Unknown":Ot(n)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"License"}),e.jsx("dd",{children:a.declaredLicense??"Review required"})]})]}),e.jsx("p",{children:a.splits.map(l=>`${l.configuration}/${l.split}: ${l.rowCount?.toLocaleString()??"unknown"} rows`).join(" · ")})]})}function La({job:t}){const n=t.progress,a=n.totalBytes&&n.totalBytes>0?Math.min(100,n.completedBytes/n.totalBytes*100):null,l=(n.totalRows&&n.totalRows>0?Math.min(100,n.completedRows/n.totalRows*100):null)??a;return e.jsxs("div",{className:"training-dialog-scroll-body dataset-import-progress",role:"status",children:[e.jsx(ct,{className:t.status==="ready"?"":"spin",size:22}),e.jsx("h3",{children:t.status==="ready"?"Taskset saved":"Importing data"}),e.jsx("p",{children:t.progress.message}),e.jsx("div",{className:"dataset-import-progress-track",children:e.jsx("span",{style:{width:`${l??8}%`}})}),e.jsx("small",{children:n.completedRows?`${n.completedRows.toLocaleString()}${n.totalRows?` of ${n.totalRows.toLocaleString()}`:""} rows`:n.completedBytes?`${Ot(n.completedBytes)}${n.totalBytes?` of ${Ot(n.totalBytes)}`:""}`:Dt(n.phase)}),t.error?e.jsx("div",{className:"training-banner error",children:t.error}):null]})}function Dt(t){return t.replaceAll("_"," ").replace(/^./,n=>n.toUpperCase())}function Ot(t){const n=["B","KB","MB","GB","TB"];let a=t,s=0;for(;a>=1024&&s<n.length-1;)a/=1024,s+=1;return`${a>=10?a.toFixed(0):a.toFixed(1)} ${n[s]}`}function $n({lineage:t,taskset:n,training:a,onChat:s,onClose:l}){const r=!!a.busyAction;function i(){s(Vt({modelId:t.id,taskset:n})),l()}return e.jsxs(Ke,{ariaLabel:`Use ${n.name}`,className:"training-dialog training-model-use-dialog",dismissDisabled:r,onClose:l,children:[e.jsxs("div",{className:"training-dialog-header",children:[e.jsxs("div",{children:[e.jsx("h2",{children:"Use model"}),e.jsx("p",{children:n.name})]}),e.jsx("button",{"aria-label":"Close model use",disabled:r,type:"button",onClick:l,children:e.jsx(we,{size:16})})]}),t.promotable?null:e.jsx("p",{className:"training-model-use-warning",children:"This run did not pass its frozen Eval. Chat is available for inspection, but the model cannot be promoted."}),e.jsx("p",{className:"training-model-use-note",children:"Open a chat with this trained version. OpenPond selects its managed or Local runtime from the recorded model lineage."}),e.jsxs("div",{className:"training-dialog-actions",children:[e.jsx("button",{className:"training-button secondary",disabled:r,type:"button",onClick:l,children:"Cancel"}),e.jsxs("button",{className:"training-button",disabled:r,type:"button",onClick:i,children:[e.jsx(Tn,{size:14}),"Chat now"]})]})]})}const Da=new Set(["planning","awaiting_questions","awaiting_plan_approval","paused","applying_source","running_checks","evaluating","awaiting_promotion","opening_pull_request","pull_request_open","reconciling_release","pushing_hosted","running_hosted_checks"]);function Oa(t){const{connection:n,profileId:a}=t,[s,l]=d.useState([]),[r,i]=d.useState(!1),[o,h]=d.useState(null),c=d.useRef(null),u=d.useCallback(()=>{if(!n)return Promise.resolve(null);if(c.current)return c.current;i(!0);const m=qe.listCreateImproveRuns(n,{profileId:a,limit:500}).then(g=>(l(g.runs),h(null),g.runs)).catch(g=>(h(g instanceof Error?g.message:String(g)),null)).finally(()=>{c.current===m&&(c.current=null),i(!1)});return c.current=m,m},[n,a]);d.useEffect(()=>{if(!n){l([]),h(null);return}u()},[n,a,u]);const v=d.useMemo(()=>s.some(m=>Da.has(m.state)),[s]);return d.useEffect(()=>{if(!n)return;let m=!0,g=null;const S=async()=>{await u(),m&&(g=window.setTimeout(()=>{S()},v?1e3:15e3))};return g=window.setTimeout(()=>{S()},v?1e3:15e3),()=>{m=!1,g!==null&&window.clearTimeout(g)}},[n,v,u]),{runs:s,loading:r,error:o,refresh:u}}function he({title:t,actions:n,children:a}){return e.jsxs("section",{className:"training-detail-section",children:[e.jsxs("div",{className:"training-detail-section-heading",children:[e.jsx("h2",{children:t}),n?e.jsx("div",{children:n}):null]}),e.jsx("div",{className:"training-detail-section-panel",children:a})]})}const Ba=new Set(["released","rejected","ready","ready_local","published_hosted","cancelled"]);function Ln(t){const n=new Map,a=new Set((t.training?.modelProjects??[]).map(i=>i.id)),s=new Map,l=new Map((t.training?.plans??[]).map(i=>[i.id,i.modelId]));for(const i of t.training?.jobs??[]){const o=l.get(i.planId);if(!o)continue;const h=s.get(o)??new Set;h.add(i.id),s.set(o,h)}for(const i of t.runs){if(i.target.kind!=="model"||!i.target.id||!i.target.trainingPlanId)continue;const o=s.get(i.target.id)??new Set;for(const h of t.training?.jobs??[])h.planId===i.target.trainingPlanId&&o.add(h.id);s.set(i.target.id,o)}const r=new Date(0).toISOString();for(const i of t.profile?.agents??[]){const o=Ne("agent",i.id),h=t.profile?.actionCatalog.find(c=>c.agentId===i.id&&c.sourceActionId==="chat"&&c.visibility!=="internal"&&c.visibility!=="debug")??null;n.set(o,{key:o,kind:"agent",id:i.id,ownerProfileId:t.profile?.activeProfile??null,name:i.name||i.id,description:i.enabled?"Enabled Profile Agent":"Disabled Profile Agent",status:i.enabled?"Ready":"Disabled",updatedAt:t.profile?.lastCheck?.checkedAt??r,path:i.path,enabled:i.enabled,runIds:[],conversationId:null,tasksetId:null,trainingRunCount:0,evaluationStatus:"not_run",useActionId:h?.id??null})}for(const i of t.profile?.skills??[]){const o=Ne("skill",i.name);n.set(o,{key:o,kind:"skill",id:i.name,ownerProfileId:t.profile?.activeProfile??null,name:i.name,description:i.description,status:i.validationStatus==="valid"?"Ready":i.validationStatus,updatedAt:r,path:i.path,enabled:i.enabled,runIds:[],conversationId:null,tasksetId:null,trainingRunCount:0,evaluationStatus:"not_run",useActionId:null,skillSource:"profile",skillValidationStatus:i.validationStatus,skillValidationMessages:i.validationMessages,skillSourceHash:i.sourceHash,skillCharCount:i.charCount,skillResourceFiles:i.resourceFiles})}for(const i of t.training?.modelProjects??[]){const h=(t.training?.modelRunDrafts??[]).filter(x=>x.modelId===i.id&&(x.status==="draft"||x.status==="ready_to_run"))[0]??null,c=(t.training?.modelRuns??[]).filter(x=>x.modelId===i.id).sort((x,j)=>j.updatedAt.localeCompare(x.updatedAt)),u=new Set(c.map(x=>x.id)),v=[...s.get(i.id)??[]].filter(x=>{const j=t.training?.jobs.find(y=>y.id===x),b=typeof j?.metadata.modelRunId=="string"?j.metadata.modelRunId:null;return!b||!u.has(b)}).length,m=c[0]??null,g=(t.training?.modelVersions??[]).find(x=>x.modelId===i.id&&x.kind==="base_reference"&&x.version===0)??null,S=Ne("model",i.id);n.set(S,{key:S,kind:"model",id:i.id,ownerProfileId:i.profileId,name:lt(i.name,"Untitled Model"),description:i.objective??"No description",status:m?Ua(m.status):h?.status==="ready_to_run"?"Ready to run":h?"Draft":g?"Base ready":"Ready",updatedAt:m?.updatedAt??h?.updatedAt??i.updatedAt,path:m?`tasksets/${m.taskset.id}`:h?.tasksetRef?`tasksets/${h.tasksetRef.id}`:g?`tasksets/${g.taskset.id}`:null,enabled:g?!1:null,runIds:[],conversationId:null,tasksetId:m?.taskset.id??h?.tasksetRef?.id??g?.taskset.id??null,trainingRunCount:c.length+v,evaluationStatus:"not_run",useActionId:null})}for(const i of ja(t.training)){if(i.taskset.metadata.resourceIntent==="dataset"&&!i.latestPlan&&!i.localModel)continue;const o=t.runs.filter(j=>j.target.kind==="model"&&(i.latestPlan&&j.target.trainingPlanId===i.latestPlan.id||!i.latestPlan&&i.localModel&&j.target.trainingJobId===i.localModel.jobId)).sort((j,b)=>b.updatedAt.localeCompare(j.updatedAt))[0]??null,h=o?.target.kind==="model"&&o.target.id?o.target.id:i.latestPlan?.modelId??i.localModel?.modelId??null;if(!h)continue;const c=Ne("model",h),u=n.get(c),v=o?.target.kind==="model"?o.target.trainingPlanId:null,m=new Set((t.training?.plans??[]).filter(j=>j.modelId===h||v!=null&&j.id===v).map(j=>j.id)),g=(t.training?.jobs??[]).filter(j=>m.has(j.planId)).sort((j,b)=>b.createdAt.localeCompare(j.createdAt)),S=g[0]??null,x=S?t.training?.models.find(j=>j.jobId===S.id)??null:null;n.set(c,{key:c,kind:"model",id:h,ownerProfileId:u?.ownerProfileId??i.taskset.profileId,name:lt(u?.name??o?.target.displayName??i.name,"New model"),description:u?.description??i.taskset.objective,status:S?ke(S.status):i.status,updatedAt:S?.updatedAt??i.updatedAt,path:`tasksets/${i.taskset.id}`,enabled:i.localModel?i.localModel.status==="imported"&&!!fe(i.localModel):null,runIds:o?[...new Set([...u?.runIds??[],o.id])]:u?.runIds??[],conversationId:null,tasksetId:i.taskset.id,trainingRunCount:Math.max(u?.trainingRunCount??0,g.length),evaluationStatus:Ka(S,x),useActionId:null})}for(const i of t.runs){if(i.target.kind==="configuration"||i.target.kind==="unselected"||i.target.kind==="model"&&!i.tasksetRef&&["cancelled","failed","rejected"].includes(i.state)||i.target.kind==="model"&&!i.target.id)continue;const o=i.target.kind,h=i.target.kind==="model"?i.target.id:i.target.id??i.id,c=Ne(o,h),u=n.get(c),v=o==="agent"?qa(i,u?.name??null):o==="model"&&a.has(h)?u?.name??i.target.displayName??un(i):i.target.displayName??u?.name??un(i),m=o==="model"?lt(v,"New model"):v;n.set(c,{key:c,kind:o,id:h,ownerProfileId:u?.ownerProfileId??i.scope.profileId,name:m,description:u?.description??i.objective,status:Va(i),updatedAt:Ga(u?.updatedAt,i.updatedAt),path:u?.path??i.plan?.sourcePlan[0]?.path??null,enabled:u?.enabled??null,runIds:[...new Set([...u?.runIds??[],i.id])],conversationId:i.scope.conversationId??u?.conversationId??null,tasksetId:i.target.kind==="model"?i.tasksetRef?.id??u?.tasksetId??null:null,trainingRunCount:o==="model"?Math.max(u?.trainingRunCount??0,s.get(h)?.size??0):u?.trainingRunCount??0,evaluationStatus:Ha(i)??u?.evaluationStatus??"not_run",useActionId:u?.useActionId??null})}return[...n.values()].sort((i,o)=>{const h=Number(cn(i,t.runs))-Number(cn(o,t.runs));return h!==0?-h:o.updatedAt.localeCompare(i.updatedAt)||i.name.localeCompare(o.name)})}function Ua(t){return t==="prepared"?"Prepared":t==="running"?"Running":t==="succeeded"?"Rollout complete":t==="failed"?"Failed":"Cancelled"}function Ne(t,n){return`${t}:${n}`}function za(t){return t==="agent"?"Agents":t==="skill"?"Skills":t==="extension"?"Extensions":"Models"}function Fa(t,n){const a=new Set(t.runIds);return n.filter(s=>a.has(s.id)).sort((s,l)=>l.updatedAt.localeCompare(s.updatedAt))}function cn(t,n){const a=new Set(t.runIds);return n.some(s=>a.has(s.id)&&!Ba.has(s.state))}function un(t){return`${t.operation==="improve"?"Improve":"Create"} ${t.target.kind}`}function qa(t,n){const a=mn(t.target.displayName);if(a)return a;const s=mn(n);if(s)return s;const l=t.objective.replace(/^(?:please\s+)?(?:create|make|build|improve)\s+(?:an?\s+)?agent\s+(?:that\s+|to\s+)?/i,"").trim(),r=lt(l,"New agent");return r==="New agent"?r:`Agent for ${r}`}function mn(t){const n=t?.trim();if(!n)return null;const a=n.toLowerCase().replace(/\s+/g," ");return/^(?:create|creating|improve|improving|new) (?:an )?agent$/.test(a)?null:n}function Va(t){return t.state.replaceAll("_"," ")}function Ha(t){const n=t.evaluationReceipts.filter(a=>a.subject==="candidate"||a.subject==="post_release");return n.length?n.some(a=>a.status==="failed"||a.status==="blocked"||a.publishGate==="failed")?"failed":n.every(a=>a.status==="passed"&&a.publishGate!=="failed")?"passed":null:null}function Ka(t,n){return!t||!(!!(n&&fe(n))||t.metadata.frozenEvaluationComplete===!0||!!n?.frozenEvaluationArtifactId||!!n?.managedServing?.customerBindingAllowed)?"not_run":!!(n&&(fe(n)||Ht(n)))?"passed":"failed"}function Ga(t,n){return t&&t.localeCompare(n)>=0?t:n}function Ja({agentId:t,evals:n,onAttach:a,onCreate:s}){const l=d.useMemo(()=>n.filter(o=>o.agentId===null||o.agentId===t),[t,n]),[r,i]=d.useState(l[0]?.id??"");return d.useEffect(()=>{l.some(o=>o.id===r)||i(l[0]?.id??"")},[l,r]),e.jsxs("div",{className:"labs-eval-actions",children:[e.jsxs("button",{className:"training-button secondary",type:"button",onClick:s,children:[e.jsx(la,{size:13}),"Create Eval"]}),l.length?e.jsxs(e.Fragment,{children:[e.jsx(Ie,{compact:!0,searchable:!0,label:"Existing Eval",options:l.map(o=>({value:o.id,label:o.name,shortLabel:o.name,description:o.path})),value:r,onChange:i}),e.jsx("button",{className:"training-button secondary",disabled:!r,type:"button",onClick:()=>a(r),children:"Add Eval"})]}):null]})}function re({label:t,value:n=t}){return e.jsx("span",{className:`labs-status-badge ${Dn(n)}`,children:t})}function Dn(t){const n=t.trim().toLowerCase().replaceAll("_"," ");return n.includes("ready")||n.includes("passed")||n.includes("succeeded")||n.includes("published")||n.includes("released")||n.includes("merged")||n.includes("imported")?"positive":n.includes("planning")||n.includes("applying")||n.includes("running")||n.includes("evaluating")||n.includes("pushing")?"info":n.includes("awaiting")||n.includes("paused")||n.includes("pr open")||n.includes("blocked")||n.includes("review")||n.includes("dirty")||n.includes("pending")?"warning":n.includes("failed")||n.includes("rejected")||n.includes("closed")||n.includes("error")||n.includes("disabled")?"negative":"neutral"}function Bt({decorative:t=!1,label:n,size:a="default",tone:s,value:l=n}){return e.jsx("span",{"aria-hidden":t||void 0,"aria-label":t?void 0:n,className:`labs-status-dot ${s??Dn(l)} ${a}`,role:t?void 0:"status",title:n})}function Wa({candidate:t,diff:n,error:a,run:s,onApplyCandidate:l,onOpenFiles:r,onRejectCandidate:i}){const[o,h]=d.useState(null),u=d.useMemo(()=>s.evaluationReceipts.filter(j=>j.candidateId===t.id),[t.id,s.evaluationReceipts]).filter(j=>j.subject==="candidate"),m=u.length>0&&u.every(j=>j.status==="passed"&&j.publishGate!=="failed")&&(s.state==="awaiting_promotion"||s.state==="blocked"&&!!s.localProfileCommit),g=s.state==="reconciling_release",S=n?.filesChanged??t.git?.changedPaths.length??0;async function x(j,b){if(!o){h(j);try{await b()}finally{h(null)}}}return e.jsxs("div",{className:"labs-change-page",children:[s.blockedReason?e.jsx("div",{className:"labs-change-message negative",children:s.blockedReason}):null,e.jsxs("div",{className:"labs-change-timeline",children:[e.jsx("article",{className:"labs-change-timeline-item",children:e.jsxs("div",{className:"labs-change-card",children:[e.jsx("header",{className:"labs-change-card-header",children:e.jsx("span",{className:"labs-change-timeline-label",children:"Request"})}),e.jsxs("div",{className:"labs-change-card-body",children:[e.jsx("h3",{children:s.objective}),e.jsx("p",{children:"This is the behavior the Agent update should improve."})]})]})}),e.jsx("article",{className:"labs-change-timeline-item",children:e.jsxs("div",{className:"labs-change-card",children:[e.jsxs("header",{className:"labs-change-card-header",children:[e.jsx("span",{className:"labs-change-timeline-label",children:"Changes"}),e.jsx("span",{children:Ut(S)})]}),e.jsxs("div",{className:"labs-change-card-body",children:[e.jsx("h3",{children:"Drafted update"}),e.jsx("p",{children:Xa(t,n,a)})]}),e.jsx("footer",{className:"labs-change-card-footer end",children:e.jsx("button",{className:"training-button secondary",disabled:!!a,title:a??void 0,type:"button",onClick:r,children:a?"Files unavailable":`Files${S?` (${S})`:""}`})})]})}),e.jsx("article",{className:"labs-change-timeline-item",children:e.jsxs("div",{className:"labs-change-card",children:[e.jsxs("header",{className:"labs-change-card-header",children:[e.jsx("span",{className:"labs-change-timeline-label",children:"Evals"}),e.jsx("span",{children:Qa(u)})]}),e.jsx("div",{className:"labs-change-evals",children:u.length?u.map(j=>e.jsxs("div",{className:"labs-change-eval",children:[e.jsxs("div",{children:[e.jsx("strong",{children:j.summary??"Agent Evals"}),e.jsx("span",{children:j.summaryCounts?`${j.summaryCounts.passed}/${j.summaryCounts.total} passed`:j.status})]}),e.jsx(re,{label:j.status,value:j.status})]},j.id)):e.jsx("div",{className:"labs-change-empty",children:"Agent Evals have not finished yet."})})]})}),e.jsx("article",{className:"labs-change-timeline-item",children:e.jsxs("div",{className:"labs-change-card",children:[e.jsx("header",{className:"labs-change-card-header",children:e.jsx("span",{className:"labs-change-timeline-label",children:"Apply"})}),e.jsxs("div",{className:"labs-change-card-body",children:[e.jsx("h3",{children:"Save this Agent update"}),e.jsx("p",{children:"Applying the update changes the Agent in your Profile, then runs its Evals again."})]}),e.jsxs("footer",{className:"labs-change-card-footer",children:[e.jsxs("span",{className:"labs-change-footer-status",children:[e.jsx(Bt,{label:hn(s),value:s.state}),hn(s)]}),e.jsxs("div",{className:"labs-change-actions",children:[e.jsx("button",{className:"training-button secondary",disabled:!!o||g||s.state!=="awaiting_promotion",type:"button",onClick:()=>{x("reject",()=>i(s,t.id))},children:o==="reject"?"Keeping current version":"Keep current version"}),e.jsx("button",{className:"training-button",disabled:!m||!!o||g,type:"button",onClick:()=>{x("apply",()=>l(s,t.id))},children:g||o==="apply"?"Applying":s.state==="blocked"?"Re-run Evals":"Apply update"})]})]})]})})]})]})}function Ut(t){return`${t} ${t===1?"file":"files"}`}function Xa(t,n,a){if(a)return a;const s=n?.filesChanged??t.git?.changedPaths.length??0;return s?n?`${Ut(s)} drafted · +${n.additions} −${n.deletions}`:`${Ut(s)} drafted for this Agent. Open Files to review the changes.`:"The drafted Agent update is ready, but no file summary is available yet."}function Qa(t){if(!t.length)return"Waiting for Agent Evals";const n=t.reduce((s,l)=>({passed:s.passed+(l.summaryCounts?.passed??0),tests:s.tests+(l.summaryCounts?.total??0)}),{passed:0,tests:0});return n.tests>0?`${n.passed}/${n.tests} Evals passed`:`${t.filter(s=>s.status==="passed").length}/${t.length} Eval results passed`}function hn(t){return t.state==="awaiting_promotion"?"Ready to apply":t.state==="reconciling_release"?"Applying update":t.state==="released"?"Update applied":t.state==="rejected"?"Current version kept":t.state==="blocked"?t.localProfileCommit?"Needs verification":"Blocked":t.state.replaceAll("_"," ")}function Ya({runs:t,onReview:n}){return t.length?e.jsx("div",{className:"training-table-wrap",children:e.jsxs("table",{className:"training-data-table labs-agent-change-history",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Change"}),e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Evals"}),e.jsx("th",{children:"Updated"})]})}),e.jsx("tbody",{children:t.map(a=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("button",{type:"button",onClick:()=>n(a),children:[e.jsx("strong",{children:a.objective}),e.jsx("span",{children:es(a)})]})}),e.jsx("td",{children:e.jsx(re,{label:ts(a),value:a.state})}),e.jsx("td",{children:Za(a)}),e.jsx("td",{children:Ge(a.updatedAt)})]},a.id))})]})}):e.jsx("div",{className:"training-run-placeholder",children:"No changes yet."})}function Za(t){const n=[...t.candidates].reverse().find(l=>l.target.kind===t.target.kind);if(!n)return"—";const a=t.evaluationReceipts.filter(l=>l.candidateId===n.id&&l.subject==="candidate"),s=a.reduce((l,r)=>({passed:l.passed+(r.summaryCounts?.passed??0),tests:l.tests+(r.summaryCounts?.total??0)}),{passed:0,tests:0});return s.tests>0?`${s.passed}/${s.tests} passed`:a[0]?.status??"Not run"}function es(t){return`${`${t.target.kind[0].toUpperCase()}${t.target.kind.slice(1)}`} ${t.operation==="improve"?"improvement":"creation"}`}function ts(t){const n=t.state;return t.state==="planning"?"Planning":t.state==="awaiting_questions"?"Waiting for input":t.state==="awaiting_plan_approval"?"Plan ready":t.state==="applying_source"?"Saving Agent":t.state==="running_checks"||t.state==="evaluating"?"Running Evals":t.state==="awaiting_promotion"?"Update ready":t.state==="opening_pull_request"?"Preparing review":t.state==="pull_request_open"?"Review open":t.state==="reconciling_release"?"Applying update":t.state==="released"?"Updated":t.state==="rejected"?"Current version kept":t.state==="paused"?"Paused":t.state==="ready"||t.state==="ready_local"?"Ready":t.state==="pushing_hosted"?"Saving to hosted Profile":t.state==="running_hosted_checks"?"Running hosted Evals":t.state==="published_hosted"?"Published":t.state==="cancelled"?"Cancelled":t.state==="blocked"?"Blocked":t.state==="failed"?"Failed":n.replaceAll("_"," ")}function Gt(t){if(!t)return[];const n=new Map;for(const a of[...t.modelTasksets??[],...t.tasksets??[]])n.set(`${a.id}:${a.revision}:${a.contentHash}`,a);return[...n.values()]}function Je(t,n){return(n?.modelRuns??[]).filter(a=>a.modelId===t.id).sort((a,s)=>s.updatedAt.localeCompare(a.updatedAt))??[]}function ut(t,n,a){if(!a)return[];const s=n.filter(i=>i.target.kind==="model"&&i.target.id===t.id),l=new Set(s.flatMap(i=>i.target.kind==="model"&&i.target.trainingPlanId?[i.target.trainingPlanId]:[])),r=new Set(s.flatMap(i=>i.tasksetRef?[i.tasksetRef.id]:[]));return t.tasksetId&&r.add(t.tasksetId),a.plans.filter(i=>i.modelId===t.id||l.has(i.id)||i.modelId===null&&r.has(i.tasksetId)).sort((i,o)=>o.createdAt.localeCompare(i.createdAt))}function Te(t,n,a){if(!a)return[];const s=new Set(ut(t,n,a).map(r=>r.id)),l=new Set(Je(t,a).map(r=>r.id));return a.jobs.filter(r=>s.has(r.planId)||typeof r.metadata.modelRunId=="string"&&l.has(r.metadata.modelRunId)).sort((r,i)=>i.createdAt.localeCompare(r.createdAt))}function ns(t,n,a){if(!a)return[];const s=new Set(ut(t,n,a).map(l=>l.tasksetId));for(const l of n)l.target.kind==="model"&&l.target.id===t.id&&l.tasksetRef&&s.add(l.tasksetRef.id);return t.tasksetId&&s.add(t.tasksetId),Gt(a).filter(l=>s.has(l.id))}function Pe(t,n,a){if(!a)return[];const s=ut(t,n,a),l=new Map(s.map(u=>[u.id,u])),r=Te(t,n,a),i=new Map(r.map(u=>[u.id,u])),o=On(t,n,a),h=new Set(r.map(u=>u.id));return a.models.filter(u=>u.modelId===t.id||h.has(u.jobId)).sort((u,v)=>u.importedAt.localeCompare(v.importedAt)).map((u,v)=>{const m=i.get(u.jobId)??null;return{lineage:u,number:v+1,job:m,plan:m?l.get(m.planId)??null:null,taskset:Gt(a).find(g=>g.id===u.tasksetId)??null,current:o?.modelArtifactLineageId===u.id}}).sort((u,v)=>v.number-u.number)}function On(t,n,a){if(!a)return null;const s=new Set(Te(t,n,a).map(i=>i.id)),l=new Set(a.models.filter(i=>i.modelId===t.id||s.has(i.jobId)).map(i=>i.id)),r=new Set(n.flatMap(i=>i.target.kind==="model"&&i.target.id===t.id&&i.tasksetRef?[i.tasksetRef.id]:[]));return t.tasksetId&&r.add(t.tasksetId),a.modelBindings.filter(i=>i.status==="active"&&i.role==="chat_manual"&&(i.roleTargetId===t.id||r.has(i.roleTargetId)||i.roleTargetId==="default"&&l.has(i.modelArtifactLineageId))).sort((i,o)=>o.promotedAt.localeCompare(i.promotedAt))[0]??null}function as({workproduct:t,runs:n,training:a,onOpenDataset:s,onOpenEntry:l,onResumeDraft:r,readOnly:i=!1}){const o=a.payload,h=d.useMemo(()=>Te(t,n,o),[n,o,t]),c=d.useMemo(()=>Pe(t,n,o),[n,o,t]),u=d.useMemo(()=>ut(t,n,o),[n,o,t]),v=d.useMemo(()=>new Map(u.map(p=>[p.id,p])),[u]),m=Je(t,o),g=Gt(o),S=d.useMemo(()=>(o?.modelRunDrafts??[]).filter(p=>p.modelId===t.id&&(p.status==="draft"||p.status==="ready_to_run")).sort((p,k)=>k.updatedAt.localeCompare(p.updatedAt)),[o?.modelRunDrafts,t.id]),x=d.useMemo(()=>Ve(h,c,m,i?[]:S),[S,h,m,i,c]),[j,b]=d.useState(!1),y=j?x:x.slice(0,5),w=x.filter(p=>!p.draft).length,R=x.length-w,f=d.useMemo(()=>{let p=w;const k=new Map;for(const E of x)E.draft||(k.set(E.key,p),p-=1);return k},[x,w]);function z(p){if(p.draft){r(p.draft.id);return}l(p.key)}return e.jsxs("section",{className:"labs-model-version-index","aria-label":"Model runs",children:[e.jsxs("header",{className:"labs-model-section-intro",children:[e.jsxs("div",{children:[e.jsx("h2",{children:"Recent runs"}),e.jsx("p",{children:"Training and evaluation history, including unfinished drafts."})]}),e.jsxs("span",{children:[w," ",w===1?"run":"runs",R?` · ${R} ${R===1?"draft":"drafts"}`:""]})]}),e.jsx("div",{className:"training-table-wrap",children:e.jsxs("table",{className:"training-data-table labs-model-runs-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Run or draft"}),e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Method"}),e.jsx("th",{children:"Dataset"}),e.jsx("th",{children:"Result"}),e.jsx("th",{children:"Updated"})]})}),e.jsxs("tbody",{children:[x.length?null:e.jsx("tr",{children:e.jsx("td",{colSpan:6,children:e.jsx("div",{className:"training-run-placeholder",children:"No runs or drafts yet."})})}),y.map(p=>{const k=f.get(p.key)??null,E=p.version?.plan??(p.job?v.get(p.job.planId)??null:null),Q=p.version?.taskset??g.find(P=>P.id===(p.draft?.tasksetRef?.id??p.lifecycleRun?.taskset.id??E?.tasksetId))??null,$=p.version;return e.jsxs("tr",{className:p.draft?"labs-model-run-draft":void 0,onClick:()=>z(p),children:[e.jsx("td",{children:e.jsxs("button",{className:"labs-version-row-button",type:"button",onClick:P=>{P.stopPropagation(),z(p)},children:[e.jsx("strong",{children:p.draft?p.draft.title||"Run draft":`Run ${k}`}),e.jsx("small",{children:p.draft?p.draft.status==="ready_to_run"?"Review and run":"Resume draft":$?`Created Version ${$.number}`:p.lifecycleRun?.kind==="evaluation"?"Evaluation":p.lifecycleRun?.kind==="rollout_smoke"?"Preflight rollout":"Training"})]})}),e.jsx("td",{children:e.jsx(re,{label:p.draft?p.draft.status==="ready_to_run"?"Ready to run":"Draft":p.lifecycleRun?ke(p.lifecycleRun.status):p.job?ke(p.job.status):"Not started",value:p.draft?.status??p.lifecycleRun?.status??p.job?.status??"not_run"})}),e.jsx("td",{children:_e(p.draft?.method??p.lifecycleRun?.method??E?.recipe.method)}),e.jsx("td",{children:Q?e.jsx("button",{className:"labs-version-dataset-link",type:"button",onClick:P=>{P.stopPropagation(),s(Q.id)},children:Q.name}):"Unavailable"}),e.jsx("td",{children:is(p)}),e.jsx("td",{children:Ge(p.lifecycleRun?.updatedAt??p.draft?.updatedAt??$?.lineage.importedAt??p.job?.updatedAt??"")})]},p.key)})]})]})}),x.length>5?e.jsx("div",{className:"labs-model-run-list-actions",children:e.jsx("button",{className:"training-button secondary labs-compact-button",type:"button",onClick:()=>b(p=>!p),children:j?"Show latest 5":`Show all ${x.length} activities`})}):null]})}function ss({workproduct:t,runs:n,training:a,onOpenDataset:s,onOpenEntry:l,onToast:r,readOnly:i=!1}){const o=a.payload,h=d.useMemo(()=>Pe(t,n,o),[n,o,t]),c=On(t,n,o);async function u(m){if(i)return;const g=h.find(x=>x.lineage.id===m);if(!g||!fe(g.lineage)||!window.confirm(`Set Version ${g.number} as active for ${t.name}?`))return;const S=await a.actions.bindModel(g.lineage.id,"chat_manual",t.id);r(S?`Version ${g.number} is now active.`:"The active Version could not be changed.",S?"success":"error")}async function v(m,g){if(i)return;const S=await a.actions.setModelPinned(m,g);r(S?g?"Version pinned.":"Version unpinned.":"Version pin could not be changed.",S?"success":"error")}return e.jsxs("section",{className:"labs-model-version-index","aria-label":"Model versions",children:[e.jsxs("header",{className:"labs-model-section-intro",children:[e.jsxs("div",{children:[e.jsx("h2",{children:"Versions"}),e.jsx("p",{children:"Trained outputs that can be evaluated, activated, and downloaded."})]}),e.jsxs("span",{children:[h.length," trained"]})]}),e.jsx("div",{className:"training-table-wrap",children:e.jsxs("table",{className:"training-data-table labs-model-versions-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Version"}),e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Training"}),e.jsx("th",{children:"Dataset"}),e.jsx("th",{children:"Evaluation"}),e.jsx("th",{children:"Created"}),e.jsx("th",{children:e.jsx("span",{className:"sr-only",children:"Actions"})})]})}),e.jsxs("tbody",{children:[h.length?null:e.jsx("tr",{children:e.jsx("td",{colSpan:7,children:e.jsx("div",{className:"training-run-placeholder",children:"No trained Versions yet. A successful run will appear here."})})}),h.map(m=>{const g=c?.modelArtifactLineageId===m.lineage.id;return e.jsxs("tr",{onClick:()=>l(m.job?`job:${m.job.id}`:`version:${m.lineage.id}`),children:[e.jsx("td",{children:e.jsxs("button",{className:"labs-version-row-button",type:"button",onClick:()=>l(m.job?`job:${m.job.id}`:`version:${m.lineage.id}`),children:[e.jsxs("strong",{children:["Version ",m.number]}),e.jsx("small",{children:rs(m.lineage.id)})]})}),e.jsx("td",{children:e.jsx(os,{job:m.job,version:m})}),e.jsx("td",{children:_e(m.plan?.recipe.method)}),e.jsx("td",{children:m.taskset?e.jsx("button",{className:"labs-version-dataset-link",type:"button",onClick:S=>{S.stopPropagation(),s(m.taskset.id)},children:m.taskset.name}):"Unavailable"}),e.jsx("td",{children:e.jsx(ls,{job:m.job,version:m})}),e.jsx("td",{children:Ge(m.lineage.importedAt)}),e.jsx("td",{children:e.jsxs("div",{className:"training-table-actions",children:[e.jsx("button",{"aria-pressed":m.lineage.pinned||g,className:"labs-version-icon-button",disabled:i||g,title:g?"The active Version stays pinned":m.lineage.pinned?"Unpin Version":"Pin Version",type:"button",onClick:S=>{S.stopPropagation(),v(m.lineage.id,!m.lineage.pinned)},children:e.jsx(oa,{size:14})}),m.current?null:e.jsx("button",{className:"training-button secondary",disabled:i||!fe(m.lineage),type:"button",onClick:S=>{S.stopPropagation(),u(m.lineage.id)},children:"Activate"}),e.jsx("button",{"aria-label":`Download Version ${m.number}`,className:"labs-version-icon-button",type:"button",onClick:S=>{S.stopPropagation(),a.actions.downloadModelPackage(m.lineage.id)},children:e.jsx(rt,{size:14})})]})})]},m.lineage.id)})]})]})})]})}function dl(t,n,a=[]){const s=new Map(n.flatMap(i=>i.job?[[i.job.id,i]]:[])),l=t.map(i=>({key:`job:${i.id}`,job:i,version:s.get(i.id)??null,draft:null})),r=new Set(t.map(i=>i.id));for(const i of n)i.job&&r.has(i.job.id)||l.push({key:`version:${i.lineage.id}`,job:i.job,version:i,draft:null});for(const i of a)l.push({key:`draft:${i.id}`,job:null,version:null,draft:i});return l.sort((i,o)=>pn(o).localeCompare(pn(i)))}function Ve(t,n,a,s=[]){const l=new Map(t.flatMap(c=>typeof c.metadata.modelRunId=="string"?[[c.metadata.modelRunId,c]]:[])),r=new Map(n.flatMap(c=>c.job?[[c.job.id,c]]:[])),i=new Map(n.map(c=>[c.lineage.id,c])),o=new Set,h=a.map(c=>{const u=l.get(c.id)??t.find(v=>v.id===c.id)??null;return u&&o.add(u.id),{key:`model-run:${c.id}`,job:u,lifecycleRun:c,version:(u?r.get(u.id)??null:null)??(c.adapterArtifactLineageId?i.get(c.adapterArtifactLineageId)??null:null),draft:null}});for(const c of t)o.has(c.id)||h.push({key:`job:${c.id}`,job:c,lifecycleRun:null,version:r.get(c.id)??null,draft:null});for(const c of s)h.push({key:`draft:${c.id}`,job:null,lifecycleRun:null,version:null,draft:c});return h.sort((c,u)=>gn(u).localeCompare(gn(c)))}function pn(t){return t.version?.lineage.importedAt??t.draft?.updatedAt??t.job?.updatedAt??t.job?.createdAt??""}function gn(t){return t.draft?.updatedAt??t.lifecycleRun?.updatedAt??t.job?.updatedAt??t.job?.createdAt??""}function is(t){return t.draft?t.draft.status==="ready_to_run"?"Review and run":"Resume draft":t.version?`Version ${t.version.number}`:t.lifecycleRun?.reward?`Reward ${t.lifecycleRun.reward.raw.toFixed(3)}`:t.lifecycleRun?.status==="failed"||t.job?.status==="failed"?"Failed":t.lifecycleRun?.status==="succeeded"||t.job?.status==="succeeded"?"Completed":"No output"}function ls({job:t,version:n}){const a=n?!!fe(n.lineage)||t?.metadata.frozenEvaluationComplete===!0||!!n.lineage.frozenEvaluationArtifactId||!!n.lineage.managedServing?.customerBindingAllowed:!1,s=n?!!fe(n.lineage)||Ht(n.lineage):!1,l=n?a?s?"Passed":"Failed":"Not run":t&&["queued","starting","running","cancelling","reconciling"].includes(t.status)?"Pending":"Not run",r=n?s?"passed":a?"failed":"not_run":"not_run";return e.jsx(re,{label:l,value:r})}function os({job:t,version:n}){const a=!!(t&&["queued","starting","running","cancelling","reconciling"].includes(t.status));return e.jsx(re,{label:n?n.current?"Active":"Available":a?"Pending":"Not created",value:n?n.current?"current":"ready":a?"running":"not_run"})}function rs(t){const n=t.replace(/^baseline_run_/,"").replace(/^(?:training_job_|lineage_)(?:artifact_)?/,"").replace(/^model_run_/,"");return n.length<=12?n:n.slice(-8)}function ds({workproduct:t,runs:n,training:a}){const s=a.payload,l=d.useMemo(()=>Te(t,n,s),[n,s,t]),r=d.useMemo(()=>Pe(t,n,s),[n,s,t]),i=d.useMemo(()=>Je(t,s),[s,t]),o=d.useMemo(()=>Ve(l,r,i).length,[l,i,r]),h=d.useMemo(()=>Ve(l,r,i)[0]??null,[l,i,r]),c=r.find(m=>m.current)??null,u=cs(c,t.evaluationStatus),v=h?.lifecycleRun?.status??h?.job?.status??null;return e.jsx("section",{className:"labs-model-overview","aria-label":"Model summary",children:e.jsxs("div",{className:"labs-model-kpi-grid",children:[e.jsx(nt,{label:"Active release",value:c?`Version ${c.number}`:"None",supporting:c?"Used when you chat with this Model":"No release is active"}),e.jsx(nt,{label:"Recent run",value:v?ke(v):"Not started",supporting:h?h.version?`Run ${o} created Version ${h.version.number}`:`Run ${o} has no trained output yet`:"Start a run to train this Model"}),e.jsx(nt,{label:"Evaluation",value:u.label,supporting:u.supporting}),e.jsx(nt,{label:"Runs",value:String(o),supporting:`${r.length} trained ${r.length===1?"Version":"Versions"}`})]})})}function nt({label:t,value:n,supporting:a}){return e.jsxs("div",{className:"labs-model-kpi",children:[e.jsx("span",{children:t}),e.jsx("strong",{children:n}),e.jsx("small",{children:a})]})}function cs(t,n){return t?n==="passed"||fe(t.lineage)||Ht(t.lineage)?{label:"Passed",supporting:`Version ${t.number} is ready to use`}:n==="failed"||t.job?.metadata.frozenEvaluationComplete===!0||t.lineage.frozenEvaluationArtifactId||t.lineage.managedServing?.customerBindingAllowed?{label:"Failed",supporting:`Version ${t.number} needs review`}:{label:"Not run",supporting:`Version ${t.number} has not been evaluated`}:{label:"Not run",supporting:"Train a Version before evaluating it"}}function us({run:t,onAnswerQuestion:n,onApplyCandidate:a,onApprove:s,onCancel:l,onOpenPullRequest:r,onPause:i,onOpenConversation:o,onReconcilePullRequest:h,onRejectCandidate:c,onRetry:u,onResume:v,onRevise:m}){const g=t.state==="blocked"?"Review blocker":t.state==="failed"?"Review failure":"View progress",S=t.target.kind==="agent"&&["blocked","failed","cancelled"].includes(t.state);return e.jsxs("div",{className:"labs-run-decision",children:[e.jsx(ya,{runtime:{run:t,onAnswerQuestion:n,onApplyCandidate:a,onApprove:s,onCancel:l,onOpenPullRequest:r,onPause:i,onReconcilePullRequest:h,onRejectCandidate:c,onResume:v,onRevise:m}}),t.scope.conversationId||S?e.jsxs("div",{className:"labs-run-decision-actions",children:[t.scope.conversationId?e.jsx("button",{className:"training-button secondary",type:"button",onClick:()=>o(t.scope.conversationId),children:g}):null,S?e.jsx("button",{className:"training-button",type:"button",onClick:u,children:"Try again"}):null]}):null]})}function ms(t,n){const a=new Blob([`${JSON.stringify(n,null,2)}
|
|
3
|
+
`],{type:"application/json"}),s=URL.createObjectURL(a),l=document.createElement("a");l.href=s,l.download=t,l.click(),URL.revokeObjectURL(s)}const hs=new Set(["released","rejected","ready","ready_local","published_hosted","blocked","failed","cancelled"]),Bn=new Set(["queued","starting","running","cancelling","reconciling"]);function ps(t){const n=t.runs[0]??null,a=n?.state==="blocked"&&n.candidates.some(l=>!!l.git?.worktreePath&&["draft","checking"].includes(l.status))?n:null,s=t.runs.find(l=>!hs.has(l.state))??null;if(t.workproduct.kind==="model"&&t.taskset){const l=En(t.training,t.taskset.id)[0]??null;if(l&&Bn.has(l.status))return fn({taskset:t.taskset,training:t.training,latestRun:n,fallbackStatus:t.workproduct.status})}return a?At(a):s?At(s):t.workproduct.kind==="model"?!t.taskset&&n&&["failed","blocked","cancelled"].includes(n.state)?At(n):fn({taskset:t.taskset,training:t.training,latestRun:n,fallbackStatus:t.workproduct.status}):t.workproduct.kind==="agent"?{statusLabel:t.workproduct.status,statusValue:t.workproduct.status,action:{kind:"start_agent_change",label:"Improve agent"},runId:n?.id??null,conversationId:n?.scope.conversationId??null}:n?.scope.conversationId?{statusLabel:t.workproduct.status,statusValue:t.workproduct.status,action:{kind:"open_conversation",label:"Open chat"},runId:n.id,conversationId:n.scope.conversationId}:{statusLabel:t.workproduct.status,statusValue:t.workproduct.status,action:null,runId:n?.id??null,conversationId:n?.scope.conversationId??null}}function At(t){const n={statusLabel:gs(t),statusValue:t.state,runId:t.id,conversationId:t.scope.conversationId};if(t.state==="awaiting_questions")return{...n,action:{kind:"review_run",label:"Review questions"}};if(t.state==="awaiting_plan_approval")return{...n,action:{kind:"review_run",label:"Review plan"}};if(t.state==="awaiting_promotion")return{...n,action:{kind:"review_run",label:t.target.kind==="agent"?"Review update":"Review candidate"}};if(t.state==="pull_request_open")return{...n,action:{kind:"review_run",label:"Review change"}};if(t.state==="paused")return{...n,action:{kind:"resume_run",label:"Resume"}};if(t.state==="blocked"){const a=t.candidates.some(s=>!!s.git?.worktreePath&&["draft","checking"].includes(s.status));return{...n,action:a?{kind:"resume_run",label:t.target.kind==="agent"?"Continue update":"Continue candidate"}:t.target.kind==="agent"?{kind:"start_agent_change",label:"Try again"}:t.scope.conversationId?{kind:"open_conversation",label:"Review blocker"}:null}}return t.state==="failed"?{...n,action:t.scope.conversationId?{kind:"open_conversation",label:"Review failure"}:null}:{...n,action:t.scope.conversationId?{kind:"open_conversation",label:"View progress"}:null}}function fn(t){const n=t.latestRun?.scope.conversationId??null;if(!t.taskset)return{statusLabel:"Not hosted",statusValue:"not_run",action:n?{kind:"open_conversation",label:"View progress"}:null,runId:t.latestRun?.id??null,conversationId:n};const s=En(t.training,t.taskset.id)[0]??null,l=s?t.training?.models.find(r=>r.jobId===s.id&&r.status==="imported")??null:null;if(s&&Bn.has(s.status))return{statusLabel:ke(s.status),statusValue:s.status,action:{kind:"open_training",label:"View run"},runId:t.latestRun?.id??null,conversationId:n};if(s?.status==="failed")return{statusLabel:"Training failed",statusValue:"failed",action:{kind:"open_training",label:"Review failure"},runId:t.latestRun?.id??null,conversationId:n};if(s?.status==="succeeded"){const r=s.metadata.frozenEvaluationComplete===!0||!!l?.frozenEvaluationArtifactId,i=typeof s.metadata.frozenEvaluationThresholdPassed=="boolean"?s.metadata.frozenEvaluationThresholdPassed:l?.promotable===!0;return r&&!i?{statusLabel:"Evaluation failed",statusValue:"failed",action:{kind:"open_training",label:"Review results"},runId:t.latestRun?.id??null,conversationId:n}:r&&i?{statusLabel:l?.promotable?"Model ready":"Evaluation passed",statusValue:l?.promotable?"ready":"passed",action:{kind:"open_training",label:"Review results"},runId:t.latestRun?.id??null,conversationId:n}:{statusLabel:l?"Evaluation pending":"Collecting model",statusValue:"running",action:{kind:"open_training",label:"Review results"},runId:t.latestRun?.id??null,conversationId:n}}return t.taskset.readiness?.ready?{statusLabel:"Ready to train",statusValue:"ready",action:{kind:"start_training",label:"Start training"},runId:t.latestRun?.id??null,conversationId:n}:{statusLabel:"Needs review",statusValue:"needs_review",action:{kind:"open_data",label:"Review data"},runId:t.latestRun?.id??null,conversationId:n}}function gs(t){const n=t.state,a=t.target.kind==="agent";return{planning:"Planning",awaiting_questions:"Needs answers",awaiting_plan_approval:"Plan ready",paused:"Paused",applying_source:a?"Saving Agent":"Applying changes",running_checks:a?"Running Evals":"Running checks",evaluating:a?"Running Evals":"Evaluating",awaiting_promotion:a?"Update ready":"Candidate ready",opening_pull_request:"Opening review",pull_request_open:"Review open",reconciling_release:a?"Saving update":"Merging change",released:"Released",rejected:"Rejected",ready:"Ready",ready_local:"Ready",pushing_hosted:"Syncing",running_hosted_checks:"Verifying hosted",published_hosted:"Published",blocked:"Blocked",failed:"Failed",cancelled:"Cancelled"}[n]}const bn={chat_manual:"Default chat model",agent:"Agent runtime",extension:"Extension runtime",authoring_optimizer:"Authoring / optimizer"};function fs({lineage:t,state:n,training:a,onToast:s}){const[l,r]=d.useState("chat_manual"),[i,o]=d.useState("default"),[h,c]=d.useState(null),[u,v]=d.useState(""),m=d.useMemo(()=>n?.modelBindings.find(k=>k.status==="active"&&k.role===l&&k.roleTargetId===i.trim())??null,[l,i,n?.modelBindings]),g=m?n?.models.find(k=>k.id===m.modelArtifactLineageId)??null:null,x=(t?.frozenEvaluationArtifactId?n?.artifacts.find(k=>k.id===t.frozenEvaluationArtifactId)??null:null)?.metadata.evaluationComplete===!1;if(!t)return e.jsx("div",{className:"training-run-placeholder",children:"Promotion is available after a verified artifact is imported."});const j=t,b=fe(j),y=!!a.busyAction,w=j.status==="imported"&&!!b&&!!i.trim(),R=m?.modelArtifactLineageId===j.id;async function f(){const k=await a.actions.bindModel(j.id,l,i.trim());c(null),s(k?"Model binding activated.":"Couldn’t activate Model binding.",k?"success":"error")}async function z(){const k=u.trim();if(!k)return;const E=await a.actions.rejectModel(j.id,k);c(null),s(E?"Model candidate rejected.":"Couldn’t reject Model candidate.",E?"success":"error")}async function p(){if(!m)return;const k=await a.actions.rollbackModelBinding(m.id);s(k?"Model binding rolled back.":"Couldn’t roll back Model binding.",k?"success":"error")}return e.jsxs("div",{className:"training-promotion",children:[e.jsxs("div",{className:"training-promotion-status",children:[e.jsxs("div",{children:[e.jsx("span",{children:"Promotion gate"}),e.jsx("strong",{children:b?"Passed":"Blocked"})]}),e.jsxs("div",{children:[e.jsx("span",{children:"Selected role"}),e.jsx("strong",{children:g?wt(g.id):"No active binding"})]}),e.jsxs("div",{children:[e.jsx("span",{children:"Rollback target"}),e.jsx("strong",{children:m?.rollbackTargetBindingId?wt(m.rollbackTargetBindingId):"None"})]})]}),e.jsxs("div",{className:"training-promotion-controls",children:[e.jsxs("label",{children:[e.jsx("span",{children:"Role"}),e.jsx("select",{value:l,onChange:k=>{const E=k.target.value;r(E),o(E==="chat_manual"?"default":"")},children:Object.entries(bn).map(([k,E])=>e.jsx("option",{value:k,children:E},k))})]}),e.jsxs("label",{children:[e.jsx("span",{children:"Role target"}),e.jsx("input",{value:i,placeholder:l==="agent"?"agent id":l==="extension"?"extension id":"default",onChange:k=>o(k.target.value)})]}),e.jsxs("div",{className:"training-promotion-actions",children:[R?e.jsx("button",{className:"training-button secondary",type:"button",disabled:y,onClick:()=>{p()},children:"Roll back"}):e.jsx("button",{className:"training-button",type:"button",disabled:y||!w,onClick:()=>c("bind"),children:m?"Replace binding":"Bind model"}),e.jsx("button",{className:"training-button danger",type:"button",disabled:y||t.status==="rejected"||R,onClick:()=>c("reject"),children:"Reject"})]})]}),b?null:e.jsx("p",{className:"training-promotion-note",children:x?"The artifact remains inspectable. Its prior evaluation was blocked by provider infrastructure and recorded no quality result.":"The artifact remains inspectable, but it cannot be bound until its frozen-evaluation threshold passes."}),h?e.jsx("div",{className:"training-dialog-backdrop",role:"presentation",onMouseDown:()=>!y&&c(null),children:e.jsxs("section",{className:"training-dialog training-promotion-dialog",role:"dialog","aria-modal":"true","aria-label":h==="bind"?"Confirm Model binding":"Reject Model candidate",onMouseDown:k=>k.stopPropagation(),children:[e.jsx("div",{className:"training-dialog-header",children:e.jsxs("div",{children:[e.jsx("h2",{children:h==="bind"?"Activate this Model binding?":"Reject this Model candidate?"}),e.jsx("p",{children:h==="bind"?`${bn[l]} · ${i.trim()}`:"The artifact and evaluation evidence are retained."})]})}),h==="bind"?e.jsx("p",{children:m?`The current binding ${wt(m.modelArtifactLineageId)} becomes the recorded rollback target.`:"This is an explicit activation; training success alone never changes runtime selection."}):e.jsxs("label",{className:"training-promotion-reason",children:[e.jsx("span",{children:"Reason"}),e.jsx("textarea",{autoFocus:!0,value:u,onChange:k=>v(k.target.value)})]}),e.jsxs("div",{className:"training-dialog-actions",children:[e.jsx("button",{className:"training-button secondary",type:"button",disabled:y,onClick:()=>c(null),children:"Cancel"}),e.jsx("button",{className:`training-button ${h==="reject"?"danger":""}`,type:"button",disabled:y||h==="reject"&&!u.trim(),onClick:()=>{h==="bind"?f():z()},children:y?"Applying…":h==="bind"?"Activate binding":"Reject candidate"})]})]})}):null]})}function wt(t){return t.replace(/^lineage_/,"").replace(/^model_binding_/,"").slice(0,16)}function bs(t){return[...t.candidates].reverse().find(n=>!!n.git?.headCommit)??null}function xs(t){return t?t.state==="released"?"positive":t.state==="blocked"||t.state==="failed"||t.state==="rejected"?"negative":t.state==="reconciling_release"?"info":"warning":"neutral"}function js({workproduct:t,profile:n}){if(t.kind==="agent"){const a=n?.agents.find(s=>s.id===t.id)??null;return e.jsx(he,{title:"Agent",children:e.jsxs("dl",{className:"training-configuration-list",children:[e.jsx(ie,{label:"Enabled",value:a?.enabled?"Yes":"No"}),e.jsx(ie,{label:"Source",value:a?.path??t.path??"Draft"}),e.jsx(ie,{label:"Default action",value:`${t.id}.chat`}),e.jsx(ie,{label:"Profile checks",value:n?.lastCheck?.status??"Not run"})]})})}if(t.kind==="skill"){const a=t.skillSource==="codex"?null:n?.skills.find(i=>i.name===t.id)??null,s=t.skillValidationStatus??a?.validationStatus??"error",l=t.skillValidationMessages??a?.validationMessages??[],r=t.skillResourceFiles??[];return e.jsxs(he,{title:"Skill",children:[e.jsxs("dl",{className:"training-configuration-list",children:[e.jsx(ie,{label:"Scope",value:t.skillSource==="codex"?"Codex personal":"OpenPond profile"}),e.jsx(ie,{label:"Enabled",value:t.enabled?"Yes":"No"}),e.jsx(ie,{label:"Validation",value:s}),e.jsx(ie,{label:"Source",value:t.path??"Not available"}),e.jsx(ie,{label:"Source hash",value:t.skillSourceHash??a?.sourceHash??"Not available"}),e.jsx(ie,{label:"Characters",value:String(t.skillCharCount??a?.charCount??"Not available")}),t.skillSource==="codex"?e.jsx(ie,{label:"Packaged resources",value:String(r.length)}):null]}),r.length?e.jsxs("div",{className:"labs-source-evals",children:[e.jsx("strong",{children:"Packaged resources"}),e.jsx("ul",{children:r.map(i=>e.jsx("li",{children:e.jsx("code",{children:i})},i))})]}):null,l.length?e.jsx("ul",{className:"labs-validation-list",children:l.map(i=>e.jsx("li",{children:i},i))}):null]})}return t.kind==="extension"?e.jsx(he,{title:"Extension",children:e.jsx("div",{className:"training-run-placeholder",children:"Runtime bindings arrive with the Extension phase."})}):t.kind==="model"?e.jsx(he,{title:"Model",children:e.jsxs("dl",{className:"training-configuration-list",children:[e.jsx(ie,{label:"Stable Model ID",value:t.id}),e.jsx(ie,{label:"Taskset",value:t.tasksetId??"Select one in Build"}),e.jsx(ie,{label:"Training runs",value:String(t.trainingRunCount)}),e.jsx(ie,{label:"Status",value:t.status})]})}):null}function vs({runs:t,selectedRun:n,onSelectedRunIdChange:a}){return e.jsx(he,{title:"Activity",children:t.length?e.jsx("div",{className:"training-table-wrap",children:e.jsxs("table",{className:"training-data-table labs-activity-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Run"}),e.jsx("th",{children:"Operation"}),e.jsx("th",{children:"State"}),e.jsx("th",{children:"Revision"}),e.jsx("th",{children:"Updated"})]})}),e.jsx("tbody",{children:t.map(s=>e.jsxs("tr",{className:s.id===n?.id?"selected":void 0,onClick:()=>a(s.id),children:[e.jsx("td",{children:mt(s.id)}),e.jsx("td",{children:s.operation}),e.jsx("td",{children:e.jsx(re,{label:s.state.replaceAll("_"," "),value:s.state})}),e.jsx("td",{children:s.revision}),e.jsx("td",{children:Ge(s.updatedAt)})]},s.id))})]})}):e.jsx("div",{className:"training-run-placeholder",children:"No Create/Improve activity yet."})})}function ys({profileEvals:t,run:n,workproduct:a}){const s=n?.evaluationReceipts??[],l=[...new Set([...n?.context.evalRefs??[],...s.flatMap(o=>o.evalRefs)])],r=a.kind==="agent"?t.filter(o=>o.agentId===null||o.agentId===a.id):[],i=a.kind==="agent";return!s.length&&!r.length&&!l.length?e.jsx("div",{className:"training-run-placeholder",children:"No Eval receipts yet."}):e.jsxs("div",{className:"labs-eval-summary",children:[r.length?e.jsxs("div",{className:"labs-source-evals",children:[e.jsx("strong",{children:"Available Evals"}),e.jsx("ul",{children:r.map(o=>e.jsxs("li",{children:[e.jsx("span",{children:o.name}),i?null:e.jsx("code",{children:o.path})]},o.id))})]}):null,l.length?e.jsxs("div",{className:"labs-source-evals",children:[e.jsx("strong",{children:i?"Included in this update":"Used for this change"}),e.jsx("ul",{children:i?e.jsx("li",{children:e.jsxs("span",{children:[l.length," Eval set",l.length===1?"":"s"]})}):l.map(o=>e.jsx("li",{children:e.jsx("code",{children:o})},o))})]}):null,s.length?e.jsxs("div",{className:"labs-eval-receipts",children:[e.jsx("strong",{children:i?"Check results":"Eval receipts"}),e.jsx("div",{className:"training-table-wrap",children:e.jsxs("table",{className:"training-data-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[i?null:e.jsx("th",{children:"Receipt"}),e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Evals"}),e.jsx("th",{children:"Summary"})]})}),e.jsx("tbody",{children:s.map(o=>e.jsxs("tr",{children:[i?null:e.jsx("td",{children:mt(o.id)}),e.jsx("td",{children:e.jsx(re,{label:o.status})}),e.jsx("td",{children:o.evalRefs.length}),e.jsx("td",{children:i?Ss(o):o.summary??"No summary"})]},o.id))})]})})]}):null]})}function Ss(t){return t.summaryCounts?`${t.summaryCounts.passed} of ${t.summaryCounts.total} Evals passed.`:t.status==="passed"?"Agent behavior Evals passed.":t.status==="failed"?"One or more Agent behavior Evals failed.":"Agent behavior Evals are still running."}function Ns({runs:t,selectedRun:n,taskset:a,training:s,trainingState:l,onToast:r}){const i=(a?l?.models.filter(u=>u.tasksetId===a.id)??[]:[]).sort((u,v)=>v.importedAt.localeCompare(u.importedAt)),o=new Map(l?.jobs.map(u=>[u.id,u])??[]),h=new Map(l?.plans.map(u=>[u.id,u])??[]),c=new Map(l?.artifacts.map(u=>[u.id,u])??[]);return e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"labs-detail-copy labs-version-storage-copy",children:"OpenPond automatically saves provider weights in app-managed local storage. Download LoRA creates a portable copy for moving or sharing the adapter."}),e.jsxs("dl",{className:"labs-inline-facts",children:[e.jsx(ve,{label:"Create/Improve runs",value:String(t.length)}),e.jsx(ve,{label:"Candidates",value:String(n?.candidates.length??0)}),e.jsx(ve,{label:"Profile commit",value:n?.localProfileCommit??"Not released"}),e.jsx(ve,{label:"Model artifacts",value:String(i.length)})]}),i.length?e.jsx("div",{className:"training-table-wrap",children:e.jsxs("table",{className:"training-data-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Version"}),e.jsx("th",{children:"Method"}),e.jsx("th",{children:"Storage"}),e.jsx("th",{children:"Frozen Eval"}),e.jsx("th",{children:"Imported"}),e.jsx("th",{children:e.jsx("span",{className:"sr-only",children:"Download"})})]})}),e.jsx("tbody",{children:i.map((u,v)=>{const m=o.get(u.jobId),g=m?h.get(m.planId):null,S=c.get(u.artifactId)??null,x=S?ks(S.path):null;return e.jsxs("tr",{children:[e.jsxs("td",{className:"labs-version-name",children:[e.jsx("strong",{children:v===0?"Latest":`Prior ${v}`}),e.jsx("small",{children:mt(u.id)})]}),e.jsx("td",{children:_e(g?.recipe.method)}),e.jsxs("td",{className:"labs-version-storage",children:[e.jsx("strong",{children:x?"Saved locally":"Unavailable"}),x?e.jsx("code",{title:S?.path,children:x}):null]}),e.jsx("td",{children:u.promotable?"Passed":u.frozenEvaluationArtifactId?"Failed":"Not run"}),e.jsx("td",{children:Ge(u.importedAt)}),e.jsx("td",{children:e.jsxs("button",{className:"training-button secondary",type:"button",onClick:()=>{s.actions.downloadModelPackage(u.id)},children:[e.jsx(rt,{size:14}),"Download LoRA"]})})]},u.id)})})]})}):e.jsx("div",{className:"training-run-placeholder",children:"Model versions appear after the first adapter is imported."}),i[0]?e.jsxs("div",{className:"labs-version-promotion",children:[e.jsx("h3",{children:"Promotion & bindings"}),e.jsx(fs,{lineage:i[0],state:l,training:s,onToast:r})]}):null]})}function ks(t){return t.replace(/[/\\][^/\\]+$/,"").replace(/^\/home\/[^/]+/,"~")}function ve({label:t,value:n}){return e.jsxs("div",{children:[e.jsx("dt",{children:t}),e.jsx("dd",{children:n})]})}function ie({label:t,value:n}){return e.jsxs("div",{children:[e.jsx("dt",{children:t}),e.jsx("dd",{children:n})]})}function mt(t){return t.replace(/^(create_improve|training_job|agent_candidate|model_candidate)_/,"").slice(0,14)}function Un(t){return t&&`${t[0].toUpperCase()}${t.slice(1).replaceAll("_"," ")}`}function Cs(t,n,a,s=!1){return t==="changes"?n?["Changes",a?`Change ${a.slice(0,8)}`:`Change ${mt(n)}`]:["Changes"]:[Un(t)]}function Rs(t,n,a){const s=a.git?.changedPaths??[],l=s[0]??null,r=t.path?.trim().replace(/^\.\/+|\/+$/g,"")??"";if(!r)return{fileRootPath:null,initialPath:l};const i=r.split("/").filter(Boolean);i.at(-1)?.includes(".")&&i.pop();const o=i.join("/");if(!o)return{fileRootPath:null,initialPath:l};const h=o.startsWith("profiles/")?o:`profiles/${n?.activeProfile??"default"}/${o}`,c=s.find(u=>u===h||u.startsWith(`${h}/`))??null;return c?{fileRootPath:h,initialPath:c}:{fileRootPath:null,initialPath:l}}function Ms(t){return t?t.state==="planning"?"Planning update":t.state==="awaiting_questions"?"Waiting for input":t.state==="awaiting_plan_approval"?"Plan ready":t.state==="applying_source"?"Saving Agent":t.state==="running_checks"||t.state==="evaluating"?"Running Evals":t.state==="awaiting_promotion"?"Update ready to apply":t.state==="opening_pull_request"||t.state==="pull_request_open"?"Update review open":t.state==="reconciling_release"?"Applying update":t.state==="released"?"Update applied":t.state==="rejected"?"Current version kept":t.state==="ready"||t.state==="ready_local"?"Agent ready":t.state==="published_hosted"?"Agent published":t.state==="paused"?"Update paused":t.state==="cancelled"?"Update cancelled":t.state==="blocked"?"Update blocked":t.state==="failed"?"Update failed":`Change ${t.state.replaceAll("_"," ")}`:"No change status"}const Is=d.lazy(()=>ra(()=>import("./LabModelVersionDetailPage-BEkmSKuv.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]),import.meta.url).then(t=>({default:t.LabModelVersionDetailPage})));function As({workproduct:t,runs:n,profile:a,training:s,connection:l,onOpenConversation:r,onClose:i,onLocationChange:o,onRenameAgent:h,onStartAgentChange:c,onOpenDataset:u,onToast:v,onAnswerQuestion:m,candidateReview:g,onApprove:S,onCancel:x,onChatWithModel:j,onApplyCandidate:b,onCandidateReviewChange:y,onOpenCandidateFiles:w,onOpenPullRequest:R,onPause:f,onReconcilePullRequest:z,onRejectCandidate:p,onResume:k,onRevise:E,renderModelRunEditor:Q}){const $=d.useMemo(()=>Fa(t,n),[n,t]),[P,J]=d.useState($[0]?.id??""),[V,Y]=d.useState(null),[M,K]=d.useState("overview"),[B,G]=d.useState(null),[ae,X]=d.useState("run"),ue=d.useRef("runs"),[F,se]=d.useState(null),[Z,N]=d.useState(null),U=$.find(A=>A.id===P)??$[0]??null,O=V?$.find(A=>A.id===V)??null:null,ee=O?bs(O):null,W=za(t.kind),de=t.kind==="model"&&!!(t.ownerProfileId&&t.ownerProfileId!==a?.activeProfile),le=d.useMemo(()=>t.kind==="model"?Pe(t,n,s.payload):[],[n,s.payload,t]),ce=d.useMemo(()=>t.kind==="model"?Te(t,n,s.payload):[],[n,s.payload,t]),pe=d.useMemo(()=>t.kind==="model"?Je(t,s.payload):[],[s.payload,t]),I=F?.startsWith("job:")?ce.find(A=>A.id===F.slice(4))??null:null,L=F?.startsWith("model-run:")?pe.find(A=>A.id===F.slice(10))??null:I?.metadata.modelRunId?pe.find(A=>A.id===I.metadata.modelRunId)??null:null,te=(F?.startsWith("version:")?le.find(A=>A.lineage.id===F.slice(8))??null:null)??(I?le.find(A=>A.job?.id===I.id)??null:null)??(L?.adapterArtifactLineageId?le.find(A=>A.lineage.id===L.adapterArtifactLineageId)??null:null),C=d.useMemo(()=>Ve(ce,le,pe),[ce,pe,le]),D=C.findIndex(A=>A.key===F||I!==null&&A.job?.id===I.id||L!==null&&A.lifecycleRun?.id===L.id),T=D<0?null:C.length-D,be=ee?.git?.headCommit??null,me=d.useMemo(()=>t.kind==="model"?B?[{label:"Runs",onSelect:()=>Oe("runs")},{label:B==="new"?"New run":"Resume draft"},...ae==="dataset"?[{label:"New Taskset"}]:[]]:F?[{label:F.startsWith("version:")?"Versions":"Runs",onSelect:()=>{se(null)}},{label:F.startsWith("version:")&&te?`Version ${te.number}`:T?`Run ${T}`:F.startsWith("version:")?"Version details":"Run details"}]:[]:Cs(M==="runs"?"overview":M,V,be,t.kind==="agent").map(A=>({label:A})),[M,ae,B,be,V,F,T,te,t.kind]),ye=t.tasksetId?[...s.payload?.tasksets??[],...s.payload?.modelTasksets??[]].find(A=>A.id===t.tasksetId)??null:null,Ee=t.kind==="agent"?a?.agents.some(A=>A.id===t.id)??!1:!1,xe=ps({workproduct:t,runs:$,taskset:ye,training:s.payload}),Ce=t.kind==="model"?le.find(A=>A.current)??null:null,$e=t.kind==="model"?Ce?{label:"Hosted",value:"ready"}:{label:"Not hosted",value:"not_run"}:{label:xe.statusLabel,value:xe.statusValue},Le=xe.runId??$[0]?.id??"",De=$.some(A=>A.id===P),We=V?$.some(A=>A.id===V):!0,ht=[["overview","Overview"],["changes","Changes"],["evals","Evals"],["versions","Versions"],["configuration","Configuration"]];d.useEffect(()=>{y(null),J(Le),Y(null),se(null),K("overview"),G(null),X("run")},[t.key]),d.useEffect(()=>{P&&De||J(Le)},[Le,De,P]),d.useEffect(()=>{We||Y(null)},[We]),d.useEffect(()=>{if(M==="changes"&&O&&ee){const A=Rs(t,a,ee);y({run:O,candidate:ee,fileRootPath:A.fileRootPath,initialPath:A.initialPath});return}y(null)},[M,y,a,ee,O,t]),d.useEffect(()=>{o({kind:t.kind,kindLabel:W,kindOnSelect:t.kind==="model"?()=>{if(B){Oe("collection");return}i()}:void 0,workproductLabel:t.name,workproductOnSelect:t.kind==="model"?()=>{if(B){Oe("overview");return}G(null),se(null),K("overview")}:void 0,segments:me})},[W,me,i,o,t.kind,t.name]),d.useEffect(()=>()=>y(null),[y]);function pt(A){if(de)return;const ge=le.find(gt=>gt.lineage.id===A);ge?.taskset&&j(Vt({modelId:A,taskset:ge.taskset}))}function Oe(A){ue.current=A,document.getElementById("model-run-editor-cancel")?.click()}return t.kind==="model"&&B?Q({initialTasksetId:ye?.id??null,draftId:B==="new"?null:B,modelId:t.id,modelName:t.name,onCancel:()=>{const A=ue.current;if(G(null),X("run"),A==="collection"){i();return}K(A)},onFinished:async()=>{G(null),X("run"),K("runs")},onSectionChange:X}):e.jsxs("div",{className:"training-model-detail labs-workproduct-detail",children:[e.jsxs("header",{className:"training-model-detail-header labs-workproduct-detail-header",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"labs-workproduct-name-row",children:[e.jsx("h1",{children:t.name}),e.jsx(Bt,{label:$e.label,value:$e.value})]}),t.description&&t.description!=="No description"?e.jsx("p",{className:"labs-workproduct-description",children:t.description}):null]}),t.kind==="model"?e.jsxs("div",{className:"labs-workproduct-header-actions",children:[te?.taskset?e.jsxs("button",{className:"training-button secondary",disabled:de||!fe(te.lineage),title:fe(te.lineage)?"Chat with this Version":"Chat is unavailable because this Version did not pass evaluation.",type:"button",onClick:()=>pt(te.lineage.id),children:[e.jsx(Tn,{size:14}),"Chat"]}):null,te?e.jsxs("button",{className:"training-button secondary",type:"button",onClick:()=>{s.actions.downloadModelPackage(te.lineage.id)},children:[e.jsx(rt,{size:14}),"Download LoRA"]}):null,L?.receipt?e.jsxs("button",{className:"training-button secondary",type:"button",onClick:()=>ms(`${L.id}-receipt.json`,L.receipt),children:[e.jsx(rt,{size:14}),"Download receipt"]}):null,de?null:e.jsx("button",{className:"training-button",type:"button",onClick:()=>G("new"),children:"New run"})]}):t.kind==="agent"?e.jsxs("div",{className:"labs-workproduct-header-actions",children:[e.jsx("button",{className:"training-button",type:"button",onClick:()=>c(t.id),children:"Improve agent"}),Ee?e.jsxs("button",{className:"training-button secondary labs-compact-button",type:"button",onClick:h,children:[e.jsx(Sa,{size:14}),e.jsx("span",{children:"Rename"})]}):null]}):null]}),t.kind==="model"||F?null:e.jsx("div",{className:"training-detail-tabs",role:"tablist","aria-label":"Workproduct detail",children:ht.map(([A,ge])=>e.jsxs("button",{className:M===A?"active":void 0,"aria-selected":M===A,role:"tab",type:"button",onClick:()=>{K(A),A==="changes"&&Y(null)},children:[ge,A==="changes"?e.jsx(Bt,{decorative:!0,label:Ms($[0]??null),size:"small",tone:xs($[0]??null)}):null]},A))}),e.jsx("div",{className:"training-detail-sections",children:t.kind==="model"&&F?e.jsx(d.Suspense,{fallback:e.jsx("div",{className:"training-run-placeholder",children:"Loading run details…"}),children:e.jsx(Is,{connection:l,runs:n,selectedEntryKey:F,training:s,workproduct:t,onOpenDataset:u})}):t.kind==="model"?e.jsxs(e.Fragment,{children:[e.jsx(ds,{runs:n,training:s,workproduct:t}),e.jsx(as,{runs:n,training:s,workproduct:t,readOnly:de,onOpenDataset:u,onOpenEntry:se,onResumeDraft:G}),e.jsx(ss,{runs:n,training:s,workproduct:t,readOnly:de,onOpenDataset:u,onOpenEntry:se,onToast:v})]}):M==="overview"?e.jsxs(he,{title:"Overview",children:[e.jsxs("dl",{className:"labs-inline-facts",children:[e.jsx(ve,{label:"Type",value:Un(t.kind)}),e.jsx(ve,{label:"Status",value:xe.statusLabel}),t.kind==="agent"?e.jsx(ve,{label:"Profile",value:"Saved in your Profile"}):e.jsxs(e.Fragment,{children:[e.jsx(ve,{label:"ID",value:t.id}),e.jsx(ve,{label:"Path",value:t.path??"Managed artifact"})]})]}),e.jsx("p",{className:"labs-detail-copy",children:t.description})]}):M==="changes"&&!O?e.jsx("div",{className:"labs-change-index",children:e.jsx(Ya,{runs:$,onReview:A=>{J(A.id),Y(A.id)}})}):M==="changes"&&O&&ee?e.jsx(Wa,{candidate:ee,diff:g.diff,error:g.error,run:O,onApplyCandidate:(A,ge)=>b({run:A},ge),onOpenFiles:w,onRejectCandidate:(A,ge)=>p({run:A},ge)}):M==="changes"&&O?e.jsxs("div",{className:"labs-change-run-detail",children:[e.jsxs("article",{className:"labs-change-card",children:[e.jsxs("header",{className:"labs-change-card-header",children:[e.jsx("span",{className:"labs-change-timeline-label",children:"Request"}),e.jsx(re,{label:O.state.replaceAll("_"," "),value:O.state})]}),e.jsx("div",{className:"labs-change-card-body",children:e.jsx("h3",{children:O.objective})})]}),e.jsx(us,{run:O,onAnswerQuestion:m,onApplyCandidate:b,onApprove:S,onCancel:x,onOpenConversation:r,onOpenPullRequest:R,onPause:f,onReconcilePullRequest:z,onRejectCandidate:p,onResume:k,onRetry:()=>c(t.id,O.objective),onRevise:E})]}):M==="evals"?e.jsx(he,{title:"Evals",actions:t.kind==="agent"?e.jsx(Ja,{agentId:t.id,evals:a?.evals??[],onCreate:()=>c(t.id,`Create an Eval for ${t.name}. Describe the behavior this Eval should specify: `),onAttach:A=>c(t.id,`--eval ${JSON.stringify(A)} Improve ${t.name} using this existing Eval: `)}):null,children:e.jsx(ys,{profileEvals:a?.evals??[],run:U,workproduct:t})}):M==="versions"?e.jsxs(e.Fragment,{children:[e.jsx(he,{title:"Versions",children:e.jsx(Ns,{runs:$,selectedRun:U,taskset:ye,training:s,trainingState:s.payload,onToast:v})}),e.jsx(vs,{runs:$,selectedRun:U,onSelectedRunIdChange:J})]}):e.jsxs(e.Fragment,{children:[e.jsx(he,{title:"Connections",children:e.jsxs("dl",{className:"training-configuration-list",children:[e.jsx(ie,{label:"Profile",value:a?.activeProfile??"default"}),e.jsx(ie,{label:"Conversation",value:U?.scope.conversationId??"Not linked"}),e.jsx(ie,{label:"Project",value:U?.scope.projectId??"Not linked"}),e.jsx(ie,{label:"Source authority",value:U?.adapter.sourceAuthority??"Profile"})]})}),e.jsx(js,{workproduct:t,profile:a})]})}),Z?(()=>{const A=le.find(ge=>ge.lineage.id===Z);return A?.taskset?e.jsx($n,{lineage:A.lineage,taskset:A.taskset,training:s,onChat:j,onClose:()=>N(null)}):null})():null]})}function ws({activeTab:t,children:n,showHeader:a=!0,onCreateDataset:s,onCreateModel:l}){return e.jsxs("section",{className:"labs-route","aria-label":"Models",children:[a?e.jsx("header",{className:"labs-header",children:e.jsx("div",{className:"labs-header-actions",children:t==="models"?e.jsx("button",{className:"labs-create-button",type:"button",onClick:l,children:e.jsx("span",{children:"New model"})}):t==="tasksets"?e.jsx("button",{className:"labs-create-button",type:"button",onClick:s,children:e.jsx("span",{children:"New Taskset"})}):null})}):null,e.jsx("div",{className:"labs-panel",children:n})]})}function _s({taskset:t,busyAction:n,onPreview:a,onApprove:s,onToast:l}){const[r,i]=d.useState(null),[o,h]=d.useState(!1),c=Ps(t),u=t.learningSignals.demonstrations.filter(x=>x.approved&&x.metadata.exampleOrigin==="expert_authored").length,v=n==="preview-expert-bootstrap",m=n==="approve-expert-bootstrap";async function g(){h(!0);const x=await a();if(x){i(x);return}h(!1),l("Couldn’t load the expert trajectories.","error")}async function S(){if(!r)return;const x=await s(r.previewHash);if(!x){l("The expert trajectories were not approved.","error");return}h(!1),l(`${x.approval.trajectoryCount} expert trajectories approved by ${x.approval.approvedBy}.`,"success")}return e.jsxs(e.Fragment,{children:[e.jsx(he,{title:"SFT bootstrap data",actions:e.jsx("button",{className:"training-button secondary",disabled:v||m,type:"button",onClick:()=>{g()},children:c?"Review trajectories":v?"Loading…":"Review expert trajectories"}),children:e.jsxs("div",{className:"labs-expert-bootstrap-summary",children:[e.jsxs("div",{children:[e.jsx(re,{label:c?"Approved":"Review required",value:c?"ready":"needs_review"}),e.jsx("p",{children:c?`${u} deterministic train-split trajectories are approved for the optional SFT bootstrap.`:"Five deterministic train-split trajectories are available. Failed model outputs remain excluded."})]}),c?e.jsxs("dl",{className:"labs-inline-facts",children:[e.jsx(Fe,{label:"Approved by",value:c.approvedBy}),e.jsx(Fe,{label:"Taskset revision",value:String(t.revision)})]}):null]})}),o?e.jsx(Ts,{approving:m,loading:v,preview:r,onApprove:()=>{S()},onClose:()=>{m||h(!1)}}):null]})}function Ts({preview:t,loading:n,approving:a,onApprove:s,onClose:l}){return e.jsxs(Ke,{ariaLabel:"Review expert trajectories",className:"training-dialog labs-expert-bootstrap-dialog",dismissDisabled:a,onClose:l,children:[e.jsxs("div",{className:"training-dialog-header",children:[e.jsxs("div",{children:[e.jsx("h2",{children:"Review expert trajectories"}),e.jsx("p",{children:"These examples were executed in the deterministic synthetic environment and passed the exact verifier. Approval is bound to the signed-in OpenPond account."})]}),e.jsx("button",{"aria-label":"Close",disabled:a,type:"button",onClick:l,children:"×"})]}),e.jsx("div",{className:"training-dialog-scroll-body labs-expert-trajectory-list",children:n||!t?e.jsx("div",{className:"training-run-placeholder",children:"Generating and verifying the review set…"}):e.jsxs(e.Fragment,{children:[e.jsxs("dl",{className:"labs-inline-facts labs-expert-preview-facts",children:[e.jsx(Fe,{label:"Taskset revision",value:String(t.tasksetRevision)}),e.jsx(Fe,{label:"Trajectories",value:String(t.tasks.length)}),e.jsx(Fe,{label:"Review state",value:t.status==="approved"?"Approved":"Pending"})]}),t.tasks.map(r=>e.jsxs("details",{className:"labs-expert-trajectory",children:[e.jsxs("summary",{children:[e.jsxs("span",{children:[e.jsx("strong",{children:Es(r.family)}),e.jsxs("small",{children:[r.toolCallCount," tool calls · exact reward ",r.reward.toFixed(3)]})]}),e.jsx("span",{"aria-hidden":"true",children:"›"})]}),e.jsxs("div",{className:"labs-expert-trajectory-body",children:[e.jsxs("section",{children:[e.jsx("h3",{children:"Prompt"}),e.jsx("p",{children:r.prompt})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Tool sequence"}),e.jsx("div",{className:"training-pills",children:r.toolNames.map((i,o)=>e.jsx("span",{children:i},`${r.trajectoryId}-${i}-${o}`))})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Verified answer"}),e.jsx("pre",{children:r.finalAnswer})]}),e.jsxs("details",{className:"labs-expert-messages",children:[e.jsxs("summary",{children:["View ",r.messageCount," training messages"]}),e.jsx("pre",{children:JSON.stringify(r.messages,null,2)})]})]})]},r.trajectoryId))]})}),e.jsxs("div",{className:"training-dialog-actions",children:[e.jsx("span",{className:"labs-expert-approval-note",children:"Train split only · failed policy outputs excluded"}),e.jsx("button",{className:"training-button secondary",disabled:a,type:"button",onClick:l,children:"Close"}),t?.status!=="approved"?e.jsx("button",{className:"training-button",disabled:!t||n||a,type:"button",onClick:s,children:a?"Approving…":`Approve ${t?.tasks.length??0} trajectories`}):null]})]})}function Ps(t){const n=xn(t.metadata.expertBootstrap),a=xn(n.approval);return a.status!=="approved"||typeof a.approvedBy!="string"||typeof a.approvedAt!="string"||typeof a.previewHash!="string"||typeof a.trajectoryCount!="number"?null:a}function Fe({label:t,value:n}){return e.jsxs("div",{children:[e.jsx("dt",{children:t}),e.jsx("dd",{children:n})]})}function Es(t){return t.split("_").map(n=>`${n.slice(0,1).toUpperCase()}${n.slice(1)}`).join(" ")}function xn(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}const $s=[{id:"train",label:"Training"},{id:"validation",label:"Validation"},{id:"frozen_eval",label:"Frozen Eval"}],Me=10;function Ls({artifact:t,defaultModel:n,tab:a="overview",taskset:s,onOpenFiles:l,onToast:r,training:i}){const o=d.useMemo(()=>t?new Map(Object.entries(t.splitCounts)):Gs(s.tasks.map(N=>N.split)),[t,s.tasks]),h=o.get("train")?"train":o.get("validation")?"validation":o.get("frozen_eval")?"frozen_eval":s.tasks[0]?.split??"train",[c,u]=d.useState(h==="test"?"frozen_eval":h),[v,m]=d.useState(1),[g,S]=d.useState([]),[x,j]=d.useState(null),[b,y]=d.useState([]),[w,R]=d.useState(null),[f,z]=d.useState(!1),[p,k]=d.useState(null),[E,Q]=d.useState(null),$=d.useMemo(()=>new Map(s.sourceRefs.map(N=>[N.id,N])),[s.sourceRefs]);d.useEffect(()=>{if(a!=="cases"||!t)return;let N=!1;return z(!0),k(null),i.actions.datasetRows(s.id,{split:c,cursor:x,limit:Me}).then(U=>{N||!U||(S(U.rows.map(O=>da.parse(O))),R(U.nextCursor))}).catch(U=>{N||(S([]),R(null),k(U instanceof Error?U.message:String(U)))}).finally(()=>{N||z(!1)}),()=>{N=!0}},[t,x,c,a,s.id,i.actions]);const P=t?g:s.tasks.filter(N=>N.split===c),J=Math.max(1,Math.ceil(P.length/Me)),V=t?P:P.slice((v-1)*Me,v*Me),Y=t?b.length*Me:(v-1)*Me,M=s.sourceRefs.filter(Jt).length,K=s.sourceRefs.filter(N=>Kt(N)&&N.turnIds.length>0).length,B=s.sourceRefs.filter(N=>N.metadata.containsCustomerData===!0).length,G=s.learningSignals.demonstrations.filter(N=>N.approved).length,ae=s.learningSignals.preferences.filter(N=>N.approved).length,X=s.learningSignals.rewards.filter(N=>N.approved).length,ue=s.learningSignals.labels.filter(N=>N.approved&&N.labelKind==="rubric").length,F=s.graders.some(N=>N.kind==="model_judge"),se=s.environment.kind==="work"?s.tasks.find(N=>N.split!=="frozen_eval")??null:null;async function Z(N,U){if(Q(null),!await U()){Q(`${N} did not complete. Check the latest error and try again.`);return}Q(`${N} started or completed successfully.`),r(`${N} started or completed successfully.`,"success")}return a==="overview"?e.jsxs(he,{title:"Taskset",children:[e.jsx("p",{className:"labs-detail-copy labs-dataset-summary",children:Os({syntheticSources:M,chatSources:K,customerSources:B,sourceCount:s.sourceRefs.length})}),e.jsxs("dl",{className:"labs-inline-facts",children:[e.jsx(oe,{label:"Training",value:String(o.get("train")??0)}),e.jsx(oe,{label:"Validation",value:String(o.get("validation")??0)}),e.jsx(oe,{label:"Frozen Eval",value:String(o.get("frozen_eval")??0)}),e.jsx(oe,{label:"Demonstrations",value:String(G)}),e.jsx(oe,{label:"Preference pairs",value:String(ae)}),e.jsx(oe,{label:"Reward specs",value:String(X)}),e.jsx(oe,{label:"Rubrics",value:String(ue)})]}),e.jsxs("div",{className:"labs-dataset-method-readiness",children:[e.jsx("strong",{children:"Training compatibility"}),e.jsx("div",{className:"training-pills",children:s.readiness?.methodReadiness.length?s.readiness.methodReadiness.map(N=>e.jsxs("span",{title:N.reasons.join(" "),children:[N.method.toUpperCase()," · ",Ae(N.status)]},N.method)):s.capabilities.compatibleMethods.filter(N=>!["none","retrieval"].includes(N)).map(N=>e.jsx("span",{children:N.toUpperCase()},N))}),s.readiness?.methodReadiness.some(N=>N.reasons.length)?e.jsx("ul",{children:s.readiness.methodReadiness.flatMap(N=>N.reasons.map(U=>e.jsxs("li",{children:[e.jsxs("strong",{children:[N.method.toUpperCase(),":"]})," ",U]},`${N.method}:${U}`)))}):null]}),e.jsxs("details",{className:"labs-dataset-advanced-details",children:[e.jsx("summary",{children:"Technical details"}),e.jsxs("dl",{className:"training-configuration-list",children:[e.jsx(oe,{label:"Taskset ID",value:s.id}),e.jsx(oe,{label:"Revision",value:String(s.revision)}),e.jsx(oe,{label:"Format",value:t?.format.toUpperCase()??"Inline Taskset"}),e.jsx(oe,{label:"Rows",value:String(t?.rowCount??s.tasks.length)}),e.jsx(oe,{label:"Storage",value:t?Js(t.sizeBytes):"Managed inline"}),e.jsx(oe,{label:"Availability",value:t?.available===!1?t.unavailableReason??"Unavailable":"Available"}),e.jsx(oe,{label:"Content hash",value:t?.contentHash??s.contentHash})]}),e.jsx("button",{className:"training-button secondary",type:"button",onClick:l,children:"Open files"})]})]}):a==="scoring"?e.jsxs(e.Fragment,{children:[e.jsxs(he,{title:"Taskset checks",children:[e.jsx("p",{className:"labs-detail-copy",children:"Audit the reward and graders before creating a Model run."}),e.jsxs("div",{className:"labs-dataset-detail-actions",children:[se?e.jsx("button",{className:"training-button secondary",disabled:i.busyAction!==null,type:"button",onClick:()=>{Z("Work attempt",()=>i.actions.executeTasksetAttempt(s.id,se.id,n))},children:"Run Work attempt"}):null,e.jsx("button",{className:"training-button secondary",disabled:i.busyAction!==null,type:"button",onClick:()=>{Z("Grader audit",()=>i.actions.auditGraders(s.id))},children:"Audit graders"}),F?e.jsx("button",{className:"training-button secondary",disabled:i.busyAction!==null,type:"button",onClick:()=>{Z("Judge calibration",()=>i.actions.calibrateJudges(s.id))},children:"Calibrate judges"}):null,e.jsx("button",{className:"training-button secondary",disabled:i.busyAction!==null,type:"button",onClick:()=>{Z("Readiness check",()=>i.actions.readiness(s.id))},children:"Refresh readiness"})]}),E?e.jsx("p",{className:"labs-detail-copy",role:"status",children:E}):null,s.readiness?.blockers.length?e.jsxs("div",{className:"training-banner warning",children:[e.jsx("strong",{children:"Readiness blockers"}),e.jsx("ul",{children:s.readiness.blockers.map(N=>e.jsx("li",{children:N.message},`${N.code}:${N.path??""}`))})]}):null]}),e.jsx(he,{title:"Graders",children:e.jsx("div",{className:"labs-dataset-grader-list",children:s.graders.map(N=>e.jsxs("div",{children:[e.jsx("strong",{children:N.label}),e.jsx("small",{children:Ae(N.kind)})]},N.id))})})]}):e.jsxs(he,{title:"Cases",children:[e.jsx("div",{className:"labs-method-tabs labs-dataset-tabs",role:"tablist","aria-label":"Taskset splits",children:$s.map(N=>e.jsxs("button",{"aria-selected":c===N.id,className:c===N.id?"active":"",role:"tab",type:"button",onClick:()=>{u(N.id),m(1),j(null),y([])},children:[N.label,e.jsx("span",{children:o.get(N.id)??0})]},N.id))}),e.jsxs("div",{className:"labs-dataset-examples",children:[V.map((N,U)=>e.jsx(Ds,{index:Y+U,source:N.sourceRefs.map(O=>$.get(O)).find(Boolean)??null,task:N},N.id)),t?e.jsxs("nav",{className:"labs-pagination","aria-label":"Task data pages",children:[e.jsx("button",{type:"button",disabled:!b.length||f,onClick:()=>{const N=b.at(-1)??null;y(U=>U.slice(0,-1)),j(N||null)},children:"Previous"}),e.jsx("span",{children:f?"Loading…":`Page ${b.length+1} · ${g.length.toLocaleString()} rows`}),e.jsx("button",{type:"button",disabled:!w||f,onClick:()=>{y(N=>[...N,x??""]),j(w)},children:"Next"})]}):J>1?e.jsxs("nav",{className:"labs-pagination","aria-label":"Task data pages",children:[e.jsx("button",{type:"button",disabled:v<=1,onClick:()=>m(N=>Math.max(1,N-1)),children:"Previous"}),e.jsxs("span",{children:[v," of ",J]}),e.jsx("button",{type:"button",disabled:v>=J,onClick:()=>m(N=>Math.min(J,N+1)),children:"Next"})]}):null,p?e.jsx("div",{className:"training-banner error",role:"alert",children:p}):null]})]})}function Ds({index:t,source:n,task:a}){const s=Bs(a),l=zs(a),r=Us(a),i=n?Vs(n):"Source unavailable",o=Fs(a,n),h=qs(a,n);return e.jsxs("details",{className:"labs-dataset-example",children:[e.jsxs("summary",{children:[e.jsx("span",{className:"labs-dataset-example-index",children:String(t+1).padStart(2,"0")}),e.jsxs("span",{className:"labs-dataset-example-title",children:[e.jsx("strong",{children:s}),e.jsx("small",{children:[o,h,i].filter(Boolean).join(" · ")})]}),e.jsx(re,{label:Ks(a.split),value:a.split})]}),e.jsxs("div",{className:"labs-dataset-example-body",children:[e.jsxs("section",{children:[e.jsx("h3",{children:"Prompt"}),e.jsx("p",{children:s})]}),e.jsxs("section",{children:[e.jsx("h3",{children:a.split==="frozen_eval"?"Expected result":"Approved answer"}),a.split==="frozen_eval"?e.jsx("p",{children:"The answer stays held out and is only opened by the Eval runner."}):e.jsx("pre",{children:r??"No approved answer is attached."})]}),l.length?e.jsxs("section",{children:[e.jsx("h3",{children:"Tool trajectory"}),e.jsx("div",{className:"training-pills",children:l.map((c,u)=>e.jsx("span",{children:c},`${c}:${u}`))})]}):null,e.jsxs("section",{children:[e.jsx("h3",{children:"Source"}),e.jsxs("p",{children:[e.jsx("strong",{children:n?.title??"Source unavailable"})," — ",Hs(n)]})]}),e.jsxs("details",{className:"labs-dataset-example-advanced",children:[e.jsx("summary",{children:"Technical details"}),e.jsxs("dl",{className:"training-configuration-list",children:[e.jsx(oe,{label:"Task",value:a.id}),e.jsx(oe,{label:"Source",value:n?.id??"Unavailable"}),e.jsx(oe,{label:"Cluster",value:a.clusterKey})]})]})]})]})}function Os(t){if(t.sourceCount>0&&t.syntheticSources===t.sourceCount&&t.chatSources===0&&t.customerSources===0)return`This dataset contains ${t.sourceCount} generated scenarios. It uses no raw chats or customer data.`;const n=[`${t.sourceCount} source${t.sourceCount===1?"":"s"}`,`${t.chatSources} chat${t.chatSources===1?"":"s"}`,`${t.syntheticSources} generated scenario${t.syntheticSources===1?"":"s"}`];return t.customerSources===0?n.push("no sources marked as customer data"):n.push(`${t.customerSources} source${t.customerSources===1?"":"s"} marked as customer data`),`This dataset contains ${n.join(", ")}.`}function Bs(t){return typeof t.input.prompt=="string"?t.input.prompt:"Untitled dataset example"}function Us(t){if(!t.expectedOutput)return null;if(typeof t.expectedOutput.text=="string")return t.expectedOutput.text;const n=Array.isArray(t.expectedOutput.messages)?t.expectedOutput.messages:[];for(const a of[...n].reverse())if(a&&typeof a=="object"&&"content"in a&&typeof a.content=="string")return a.content;return null}function zs(t){if(!t.expectedOutput||!Array.isArray(t.expectedOutput.messages))return[];const n=[];for(const a of t.expectedOutput.messages){if(!a||typeof a!="object"||!("tool_calls"in a))continue;const s=Array.isArray(a.tool_calls)?a.tool_calls:[];for(const l of s){if(!l||typeof l!="object"||!("function"in l))continue;const r=l.function;r&&typeof r=="object"&&"name"in r&&typeof r.name=="string"&&n.push(r.name)}}return n}function Fs(t,n){const a=n?.metadata.crossSystemOperations;if(a&&typeof a=="object"&&"taskFamily"in a){const l=a.taskFamily;if(typeof l=="string")return Ae(l)}const s=t.tags.find(l=>!["synthetic","structured-tool-trajectory"].includes(l));return s?Ae(s):null}function qs(t,n){const a=n?.metadata.crossSystemOperations;if(a&&typeof a=="object"&&"worldDifficulty"in a){const s=a.worldDifficulty;if(typeof s=="string")return Ae(s)}return t.clusterKey.match(/_(easy|medium|hard)$/)?.[1]??null}function Jt(t){return t.schemaVersion==="openpond.generatedDatasetSource.v1"||t.metadata.syntheticSpecification===!0}function Vs(t){return Jt(t)?"Generated scenario":Kt(t)&&t.turnIds.length>0?"Chat":t.schemaVersion==="openpond.huggingFaceDatasetSource.v1"?"Hugging Face":t.schemaVersion==="openpond.uploadedFileDatasetSource.v1"?"Uploaded file":"Imported source"}function Hs(t){return t?Jt(t)&&t.metadata.containsCustomerData===!1?"generated locally from a deterministic specification; no customer content is attached.":Kt(t)&&t.turnIds.length>0?`${t.turnIds.length} approved chat turn${t.turnIds.length===1?"":"s"} are attached.`:t.schemaVersion==="openpond.huggingFaceDatasetSource.v1"?`${t.repositoryId}@${t.revision.slice(0,12)} is attached.`:"an approved imported source is attached.":"The referenced source could not be loaded."}function Ks(t){return t==="frozen_eval"?"Frozen Eval":Ae(t)}function Ae(t){return t.replaceAll("-"," ").replaceAll("_"," ").replace(/\b\w/g,n=>n.toUpperCase())}function Gs(t){const n=new Map;for(const a of t)n.set(a,(n.get(a)??0)+1);return n}function Js(t){return t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:t<1073741824?`${(t/1048576).toFixed(1)} MB`:`${(t/1073741824).toFixed(1)} GB`}function oe({label:t,value:n}){return e.jsxs("div",{children:[e.jsx("dt",{children:t}),e.jsx("dd",{children:n})]})}const zt=10,Ws=[{id:"overview",label:"Overview"},{id:"cases",label:"Cases"},{id:"scoring",label:"Scoring"},{id:"history",label:"History"}];function Xs({state:t,runs:n,selectedId:a,onSelectedIdChange:s,defaultModel:l,onImproveInChat:r,onTrainModel:i,onOpenFiles:o,training:h,onToast:c}){const[u,v]=d.useState(""),[m,g]=d.useState(1),[S,x]=d.useState("overview"),j=t?.tasksets??[],b=[...j,...t?.modelTasksets??[]].find(p=>p.id===a)??null,y=!!(b&&b.profileId!==t?.profileId),w=b?.datasetArtifact?t?.datasetArtifacts.find(p=>p.tasksetId===a&&p.tasksetRevision===b.revision)??null:null,R=d.useMemo(()=>{const p=u.trim().toLowerCase();return p?j.filter(k=>[k.name,k.objective,k.id].some(E=>E.toLowerCase().includes(p))):j},[u,j]),f=R.slice((m-1)*zt,m*zt),z=d.useMemo(()=>{const p=new Map;if(!t)return p;const k=Ln({profile:null,training:t,runs:n}).filter(E=>E.kind==="model");for(const E of k)for(const Q of ns(E,n,t))p.set(Q.id,(p.get(Q.id)??0)+1);return p},[n,t]);return d.useEffect(()=>{x("overview")},[a]),b?e.jsxs("div",{className:"labs-flat-body labs-datasets-page",children:[e.jsxs("div",{className:"labs-dataset-detail-heading",children:[e.jsx("button",{"aria-label":"Back to Tasksets",className:"labs-back-button",type:"button",onClick:()=>s(null),children:e.jsx(_n,{size:15})}),e.jsxs("div",{children:[e.jsx("h1",{children:b.name}),e.jsx("p",{children:b.objective})]}),e.jsxs("div",{className:"labs-dataset-detail-actions",children:[y?e.jsx(re,{label:`Profile: ${b.profileId}`,value:"available"}):null,e.jsx("button",{className:"training-button secondary",disabled:y,title:y?"Switch to this Taskset's Profile to modify it.":"Improve this Taskset in Chat.",type:"button",onClick:()=>r(b),children:"Improve in Chat"}),e.jsx("button",{className:"training-button",disabled:y||!b.readiness?.ready,title:y?"Switch to this Taskset's Profile before launching a Model run.":b.readiness?.ready?"Create a Model run from this ready Taskset.":b.readiness?.blockers[0]?.message??"Run Taskset checks before training.",type:"button",onClick:()=>i(b.id),children:"Train Model"}),e.jsx(re,{label:Ys(b),value:b.status})]})]}),e.jsx("div",{className:"training-detail-tabs",role:"tablist","aria-label":"Taskset detail",children:Ws.map(p=>e.jsx("button",{"aria-selected":S===p.id,className:S===p.id?"active":void 0,role:"tab",type:"button",onClick:()=>x(p.id),children:p.label},p.id))}),S==="history"?e.jsx(Qs,{state:t,taskset:b}):e.jsxs(e.Fragment,{children:[e.jsx(Ls,{artifact:w,defaultModel:l,tab:S,taskset:b,onOpenFiles:()=>o(b.id),onToast:c,training:h}),S==="scoring"&&b.metadata.flagship==="cross-system-operations"?e.jsx(_s,{busyAction:h.busyAction,taskset:b,onApprove:p=>h.actions.approveExpertBootstrap(b.id,p),onPreview:()=>h.actions.previewExpertBootstrap(b.id),onToast:c}):null]})]}):e.jsxs("div",{className:"labs-flat-body labs-datasets-page",children:[e.jsx("div",{className:"labs-workproduct-toolbar",children:e.jsxs("label",{className:"labs-search",children:[e.jsx(Pn,{size:14}),e.jsx("input",{"aria-label":"Search Tasksets",placeholder:"Search Tasksets",value:u,onChange:p=>{v(p.target.value),g(1)}})]})}),e.jsx("div",{className:"training-table-wrap",children:e.jsxs("table",{className:"training-data-table labs-datasets-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Taskset"}),e.jsx("th",{children:"Training"}),e.jsx("th",{children:"Validation"}),e.jsx("th",{children:"Frozen Eval"}),e.jsx("th",{children:"Graders"}),e.jsx("th",{children:"Models"}),e.jsx("th",{children:"Updated"})]})}),e.jsx("tbody",{children:f.map(p=>{const k=z.get(p.id)??0;return e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("button",{className:"labs-workproduct-link",type:"button",onClick:()=>s(p.id),children:[e.jsx("strong",{children:p.name}),e.jsx("span",{children:p.objective})]})}),e.jsx("td",{children:_t(p,t,"train")}),e.jsx("td",{children:_t(p,t,"validation")}),e.jsx("td",{children:_t(p,t,"frozen_eval")}),e.jsx("td",{children:p.graders.length}),e.jsx("td",{children:k||"—"}),e.jsx("td",{children:zn(p.updatedAt)})]},p.id)})})]})}),f.length?null:e.jsx("div",{className:"labs-table-empty",children:"No Tasksets match this view."}),e.jsx(Zs,{page:m,total:R.length,onChange:g})]})}function Qs({state:t,taskset:n}){const[a,s]=d.useState(!1),l=(t?.modelRuns??[]).filter(o=>o.taskset.id===n.id).sort((o,h)=>h.updatedAt.localeCompare(o.updatedAt)),r=a?l:l.slice(0,10),i=new Map((t?.modelProjects??[]).map(o=>[o.id,o.name]));return l.length?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"training-table-wrap",children:e.jsxs("table",{className:"training-data-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Model"}),e.jsx("th",{children:"Run"}),e.jsx("th",{children:"Method"}),e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Updated"})]})}),e.jsx("tbody",{children:r.map(o=>e.jsxs("tr",{children:[e.jsx("td",{children:i.get(o.modelId)??o.modelId}),e.jsx("td",{children:ke(o.kind)}),e.jsx("td",{children:_e(o.method)}),e.jsx("td",{children:e.jsx(re,{label:ke(o.status),value:o.status})}),e.jsx("td",{children:zn(o.updatedAt)})]},o.id))})]})}),l.length>10?e.jsx("div",{className:"labs-model-run-list-actions",children:e.jsx("button",{className:"training-button secondary labs-compact-button",type:"button",onClick:()=>s(o=>!o),children:a?"Show latest 10":`Show all ${l.length} runs`})}):null]}):e.jsx("div",{className:"labs-table-empty",children:"This Taskset has not been used in a submitted run yet."})}function _t(t,n,a){const s=t.datasetArtifact?n?.datasetArtifacts.find(l=>l.tasksetId===t.id&&l.tasksetRevision===t.revision):null;return s?s.splitCounts[a]??0:t.tasks.filter(l=>l.split===a).length}function Ys(t){return t.readiness?.ready?"Ready":t.status==="ready"?"Needs Evals":t.status.replaceAll("_"," ").replace(/^./,n=>n.toUpperCase())}function zn(t){const n=new Date(t);return Number.isFinite(n.getTime())?n.toLocaleDateString(void 0,{month:"short",day:"numeric"}):"—"}function Zs({page:t,total:n,onChange:a}){const s=Math.max(1,Math.ceil(n/zt));return s===1?null:e.jsxs("nav",{className:"labs-pagination","aria-label":"Taskset pages",children:[e.jsx("button",{type:"button",disabled:t<=1,onClick:()=>a(t-1),children:"Previous"}),e.jsxs("span",{children:[t," of ",s]}),e.jsx("button",{type:"button",disabled:t>=s,onClick:()=>a(t+1),children:"Next"})]})}function ei({baseModelCandidates:t,busy:n,initialName:a,onClose:s,onCreate:l,onManageModels:r}){const i=d.useMemo(()=>ti(t),[t]),[o,h]=d.useState(a),[c,u]=d.useState(""),[v,m]=d.useState(""),[g,S]=d.useState(null),x=o.trim().replace(/\s+/g," ");async function j(b){if(b.preventDefault(),!x||n)return;S(null);const y=i.find(R=>R.selectionKey===v)??null;await l({name:x,description:c.trim()||null,defaultBaseModel:y?.preference??null})||S("OpenPond could not create the Model. Review the latest error and try again.")}return e.jsxs(Ke,{ariaLabel:"New model",backdropClassName:"labs-rename-backdrop",className:"labs-rename-dialog labs-model-create-dialog",dismissDisabled:n,initialFocusKey:a,onClose:s,children:[e.jsxs("header",{children:[e.jsxs("div",{children:[e.jsx("h2",{children:"New model"}),e.jsx("p",{children:"Create the Model now. Tasksets, runs, and releases can be added later."})]}),e.jsx("button",{"aria-label":"Close new model",disabled:n,type:"button",onClick:s,children:e.jsx(we,{size:16})})]}),e.jsxs("form",{onSubmit:b=>{j(b)},children:[e.jsxs("label",{children:[e.jsx("span",{children:"Name"}),e.jsx("input",{"data-autofocus":!0,maxLength:200,required:!0,value:o,onChange:b=>h(b.currentTarget.value)})]}),e.jsxs("label",{children:[e.jsxs("span",{children:["Description ",e.jsx("small",{children:"Optional"})]}),e.jsx("textarea",{maxLength:5e3,rows:3,value:c,onChange:b=>u(b.currentTarget.value)})]}),e.jsxs("div",{className:"labs-model-create-field",children:[e.jsxs("span",{children:["Starting model ",e.jsx("small",{children:"Optional"})]}),e.jsxs("div",{className:"labs-model-create-select-row",children:[e.jsx(Ie,{label:"Starting model",value:v,options:[{value:"",label:"Choose later"},...i.map(b=>({value:b.selectionKey,label:`${b.label} · ${b.sourceLabel}${b.available?"":" · Unavailable"}`,disabled:!b.available}))],onChange:m}),e.jsx("button",{"aria-label":"Add starting model",className:"labs-model-create-add",disabled:n,title:"Manage models in Compute settings",type:"button",onClick:r,children:"+"})]})]}),g?e.jsx("div",{className:"labs-rename-error",role:"alert",children:g}):null,e.jsxs("footer",{children:[e.jsx("button",{disabled:n,type:"button",onClick:s,children:"Cancel"}),e.jsx("button",{disabled:!x||n,type:"submit",children:n?"Creating…":"Create model"})]})]})]})}function ti(t){return t.filter(n=>!(n.preference.source==="builtin"&&n.nonProduction))}const ni=10;new Date(0).toISOString();function ai({items:t,loading:n,runs:a,state:s,emptyMessage:l="No Models yet.",onSelect:r,onUseModel:i}){return n?e.jsxs("div",{className:"labs-table-empty",children:[e.jsx(ct,{className:"spin",size:16})," Loading Models…"]}):t.length?e.jsx("div",{className:"training-table-wrap",children:e.jsxs("table",{className:"training-data-table labs-models-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Model"}),e.jsx("th",{children:"Availability"}),e.jsx("th",{children:"Recent run"}),e.jsx("th",{children:"Updated"}),e.jsx("th",{children:e.jsx("span",{className:"sr-only",children:"Actions"})})]})}),e.jsx("tbody",{children:t.map(o=>{const h=Pe(o,a,s),c=h.find(g=>g.current)??null,v=Ve(Te(o,a,s),h,Je(o,s))[0]??null,m=v?.lifecycleRun?.status??v?.job?.status??"not_run";return e.jsxs("tr",{onClick:()=>r(o.key),children:[e.jsx("td",{children:e.jsxs("button",{className:"labs-workproduct-link",type:"button",onClick:()=>r(o.key),children:[e.jsx("strong",{children:o.name}),e.jsx("span",{children:o.description})]})}),e.jsx("td",{children:e.jsxs("div",{className:"labs-model-table-summary",children:[e.jsx(re,{label:c?"Hosted":"Not hosted",value:c?"ready":"not_run"}),e.jsx("span",{children:c?`Release ${c.number}`:"No active release"})]})}),e.jsx("td",{children:e.jsxs("div",{className:"labs-model-table-summary",children:[e.jsx(re,{label:ke(m),value:m}),e.jsxs("span",{children:[o.trainingRunCount," ",o.trainingRunCount===1?"run":"runs"]})]})}),e.jsx("td",{children:si(o.updatedAt)}),e.jsx("td",{children:e.jsxs("div",{className:"labs-workproduct-actions",children:[e.jsx("button",{className:"training-button secondary labs-compact-button labs-workproduct-use",disabled:!c,title:c?"Chat with the active Version":"Set a passing Version active before Chat",type:"button",onClick:g=>{g.stopPropagation(),i(o.id)},children:"Chat"}),e.jsx(ca,{size:15})]})})]},o.key)})})]})}):e.jsx("div",{className:"labs-table-empty",children:l})}function si(t){const n=new Date(t),a=new Date;return n.toDateString()===a.toDateString()?new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(n):new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",...n.getFullYear()===a.getFullYear()?{}:{year:"2-digit"}}).format(n)}function ii({page:t,total:n,onChange:a}){const s=Math.max(1,Math.ceil(n/ni));return s<=1?null:e.jsxs("nav",{className:"labs-pagination","aria-label":"Pagination",children:[e.jsx("button",{type:"button",disabled:t<=1,onClick:()=>a(t-1),children:"Previous"}),e.jsxs("span",{children:[t," of ",s]}),e.jsx("button",{type:"button",disabled:t>=s,onClick:()=>a(t+1),children:"Next"})]})}function li(t){return t?[...t.jobs.map(n=>`job:${n.id}:${n.status}`),...t.models.map(n=>`model:${n.id}:${n.status}:${n.artifactId}:${n.jobId}`)].sort().join("|"):""}const jn=10;function oi({activeProfileId:t,items:n,loading:a,runs:s,state:l,onSelect:r,onUseModel:i}){const[o,h]=d.useState("all"),[c,u]=d.useState(""),[v,m]=d.useState(1),g=d.useMemo(()=>[...new Set(n.flatMap(b=>b.ownerProfileId?[b.ownerProfileId]:[]))].sort((b,y)=>b===t?-1:y===t?1:b.localeCompare(y)),[t,n]),S=d.useMemo(()=>{const b=c.trim().toLowerCase();return n.filter(y=>o!=="all"&&y.ownerProfileId!==o?!1:!b||[y.name,y.description,y.id,y.ownerProfileId??""].some(w=>w.toLowerCase().includes(b)))},[n,o,c]),x=S.slice((v-1)*jn,v*jn),j=n.length?"No Models match this Profile or search.":"No Models exist in this workspace yet.";return e.jsxs("div",{className:"labs-flat-body labs-models-page",children:[e.jsxs("div",{className:"labs-workproduct-toolbar",children:[e.jsxs("label",{className:"labs-search",children:[e.jsx(Pn,{size:14}),e.jsx("input",{"aria-label":"Search Models",placeholder:"Search Models",value:c,onChange:b=>{u(b.target.value),m(1)}})]}),e.jsx(Ie,{className:"labs-model-profile-filter",label:"Filter Models by Profile",value:o,options:[{value:"all",label:"All profiles"},...g.map(b=>({value:b,label:`${b}${b===t?" (active)":""}`}))],onChange:b=>{h(b),m(1)}})]}),e.jsx(ai,{emptyMessage:j,items:x,loading:a,runs:s,state:l,onSelect:r,onUseModel:i}),e.jsx(ii,{page:v,total:S.length,onChange:m})]})}function ri({state:t}){if(!t)return e.jsxs("div",{className:"labs-table-empty",children:[e.jsx(ct,{className:"spin",size:16})," Loading serving state…"]});const n=di(t);return e.jsx("div",{className:"labs-flat-body labs-serving-page",children:e.jsxs("section",{className:"labs-operational-section","aria-labelledby":"managed-serving-title",children:[e.jsx("header",{children:e.jsxs("div",{children:[e.jsx("h2",{id:"managed-serving-title",children:"Managed serving"}),e.jsx("p",{children:"Durable adapter publication and binding state synchronized from OpenPond Managed training."})]})}),n.length?e.jsx("div",{className:"training-table-wrap",children:e.jsxs("table",{className:"training-data-table labs-managed-serving-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Model"}),e.jsx("th",{children:"Synchronization"}),e.jsx("th",{children:"Artifact"}),e.jsx("th",{children:"Deployment"}),e.jsx("th",{children:"Admission"}),e.jsx("th",{children:"Updated"})]})}),e.jsx("tbody",{children:n.map(a=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("span",{className:"labs-serving-model",children:[e.jsx("strong",{children:a.modelName}),e.jsx("span",{children:a.versionLabel})]})}),e.jsx("td",{children:e.jsx(re,{label:Tt(a.managed.state),value:a.managed.state})}),e.jsx("td",{children:Tt(a.managed.canonicalArtifactState)}),e.jsx("td",{children:Tt(a.managed.canonicalDeploymentState)}),e.jsx("td",{children:a.managed.customerBindingAllowed?"Allowed":"Pending"}),e.jsx("td",{children:ci(a.updatedAt)})]},a.lineageId))})]})}):e.jsx("div",{className:"labs-table-empty",children:"No managed serving bindings are synchronized."})]})})}function di(t){const n=new Map(t.modelProjects.map(s=>[s.id,s])),a=new Map(t.modelVersions.flatMap(s=>s.artifactLineageId?[[s.artifactLineageId,s]]:[]));return t.models.flatMap(s=>{if(!s.managedServing)return[];const l=a.get(s.id)??null,r=n.get(s.modelId)??null;return[{lineageId:s.id,modelName:r?.name??s.modelId,versionLabel:l?`Version ${l.version}`:s.id,managed:s.managedServing,updatedAt:s.managedServing.lastSyncedAt}]}).sort((s,l)=>l.updatedAt.localeCompare(s.updatedAt))}function Tt(t){return t?t.replaceAll("_"," ").replace(/^./,n=>n.toUpperCase()):"Pending"}function ci(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function ui({account:t,connection:n,onError:a,onOpenSourceSession:s}){return e.jsxs("div",{className:"labs-flat-body labs-usage-page",children:[e.jsxs("header",{className:"labs-operational-header",children:[e.jsx("h2",{children:"Model usage"}),e.jsx("p",{children:"All recorded model calls for this account. Narrow the projection by provider, model, status, visibility, or time range."})]}),e.jsx(Na,{account:t,connection:n,enabled:!0,modelFocused:!0,onError:a,onOpenSourceSession:s})]})}function mi({project:t,persisted:n,busy:a,dirty:s,canRun:l,pageReason:r,actionLabel:i,onProjectChange:o,onCancel:h,onSave:c,onLaunch:u}){const[v,m]=d.useState(!1),g=d.useRef(t.name);return e.jsxs("header",{className:"model-build-header",children:[e.jsx("div",{children:n?e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"model-build-name",children:"New run"}),e.jsx("p",{children:t.name})]}):v?e.jsx("input",{"aria-label":"Model name",autoFocus:!0,className:"model-build-name model-build-name-input",value:t.name,onBlur:()=>{o({...t,name:t.name.trim()||g.current,updatedAt:new Date().toISOString()}),m(!1)},onChange:S=>o({...t,name:S.target.value,updatedAt:new Date().toISOString()}),onKeyDown:S=>{S.key==="Enter"&&S.currentTarget.blur(),S.key==="Escape"&&(o({...t,name:g.current,updatedAt:new Date().toISOString()}),m(!1))}}):e.jsx("button",{"aria-label":`Rename ${t.name}`,className:"model-build-name model-build-name-button",type:"button",onClick:()=>{g.current=t.name,m(!0)},children:t.name})}),e.jsxs("div",{className:"model-build-actions",children:[e.jsx("button",{id:"model-run-editor-cancel",className:"training-button secondary",type:"button",disabled:a,onClick:h,children:"Cancel"}),e.jsx("button",{className:"training-button secondary",type:"button",disabled:a||!s||!t.name.trim(),onClick:c,children:"Save"}),e.jsx("span",{className:"model-build-run-control",title:r??i,children:e.jsx("button",{className:"training-button",type:"button",disabled:!l,onClick:u,children:i})})]})]})}function hi(t){return t==="gspo-token"?"GSPO-token":t.toUpperCase()}function Ft(t){return t==="openpond/tiny-cpu-gpt2-fixture"?.01:2e-4}function pi(t){const n=t.metadata.trainingMethod;if(typeof n=="string"&&n!=="none")return n;const a=t.readiness?.recommendedMethod;return a&&a!=="none"?a:"sft"}function gi(t){const n=new Set;for(const a of t.capabilities.compatibleMethods)(a==="sft"||a==="dpo"||a==="grpo"||a==="ppo")&&n.add(a);return t.readiness?.trainingPath?.bootstrap?.method==="sft"&&n.add("sft"),t.readiness?.trainingPath?.primaryMethod==="grpo"&&n.add("grpo"),t.readiness?.trainingPath?.primaryMethod==="ppo"&&n.add("ppo"),["sft","dpo","grpo","ppo"].filter(a=>n.has(a)).length>0?["sft","dpo","grpo","ppo"].filter(a=>n.has(a)):["sft"]}function Fn(t,n){return t.datasetArtifact?.splitCounts[n]??t.tasks.filter(a=>a.split===n).length}function He(t){return t.replaceAll("_"," ").replace(/\b\w/g,n=>n.toUpperCase())}function fi(t,n){return n?t.find(a=>a.preference.modelId===n.modelId&&a.preference.source===n.source&&a.preference.revision===n.revision&&a.preference.modelAssetId===n.modelAssetId)??t.find(a=>a.preference.modelId===n.modelId)??null:null}function bi(t,n,a){return t.find(s=>s.executionOptions.some(l=>l.destinationId===n&&l.available&&l.methods.includes(a)))??null}function qn(t){return(t.split("/").at(-1)??t).replaceAll("-"," ").replace(/\b\w/g,a=>a.toUpperCase())}function vn(t){return{ready:"Ready",model_download_required:"Model download required",compute_setup_required:"Compute setup required",provider_managed:"Provider managed",unsupported:"Unsupported"}[t]??"Unsupported"}function Wt(t){return t==null?"size unknown":t<1024?`${t} B`:t<1024**2?`${(t/1024).toFixed(1)} KB`:`${(t/1024/1024).toFixed(0)} MB`}function xi({busy:t,catalog:n,catalogError:a,selectedComputeTarget:s,modelSearch:l,onModelSearchChange:r,baseModelKey:i,baseModelCandidates:o,destinationId:h,method:c,onBaseModelChange:u,visibleCatalogModels:v,selectedCatalogCompatibility:m,selectedCatalogModel:g,configurationContent:S,inlineProviderApproval:x}){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"training-start-fields",children:e.jsxs("section",{className:"training-catalog-setup","aria-label":"Training compute and Model catalog",children:[e.jsxs("div",{className:"training-catalog-field",children:[e.jsx("span",{children:"Compute"}),e.jsx("strong",{children:n?"Automatic":"Resolving…"}),e.jsx("small",{children:s?.description??"The backend selects the available provider, device, runtime, and engine."})]}),a?e.jsx("p",{className:"training-catalog-error",children:a}):null,e.jsxs("label",{className:"training-catalog-field",children:[e.jsx("span",{children:"Base model"}),e.jsx("input",{"aria-label":"Search Model catalog",placeholder:"Search all known Models",type:"search",value:l,disabled:t||!n,onChange:j=>r(j.target.value)})]}),n?e.jsxs("div",{className:"training-model-catalog",role:"listbox","aria-label":"Available base Models",children:[v.map(j=>{const b=j.compatibilities.find(f=>f.targetId===s?.id&&f.methods.includes(c)),y=b?.state??"unsupported",w=b?.reason??`This target does not support ${c.toUpperCase()} for this Model.`,R=y!=="unsupported";return e.jsxs("button",{"aria-selected":j.selectionKey===i,className:`${j.selectionKey===i?"selected ":""}${R?"":"unsupported"}`,disabled:t||!R,role:"option",title:w,type:"button",onClick:()=>u(j.selectionKey,j.modelId),children:[e.jsxs("span",{children:[e.jsx("strong",{children:j.label}),e.jsxs("small",{children:[j.modelId," · ",j.source]})]}),e.jsx("span",{className:`training-preparation-state ${y}`,children:vn(y)}),w?e.jsx("small",{children:w}):null]},j.selectionKey)}),v.length===0?e.jsx("p",{children:"No Models match this search. Clear the search to see the full catalog."}):null]}):e.jsx("label",{className:"training-catalog-field",children:e.jsxs("select",{"aria-label":"Available base Models",value:i,disabled:t,onChange:j=>{const b=j.target.value,y=o.find(w=>w.selectionKey===b)?.preference.modelId??"";u(b,y)},children:[e.jsx("option",{value:"",disabled:!0,children:"Choose starting weights"}),o.map(j=>{const b=j.executionOptions.find(y=>y.destinationId===h&&y.methods.includes(c));return e.jsxs("option",{disabled:!b?.available,value:j.selectionKey,children:[j.label," · ",j.sourceLabel,b?.available?"":` — ${b?.unavailableReason??"Unsupported"}`]},j.selectionKey)})]})}),e.jsx("div",{className:"training-start-fields training-resolved-device",children:e.jsxs("label",{children:[e.jsx("span",{children:"Training engine"}),e.jsx("input",{readOnly:!0,value:s?.engineAdapterId??"Resolving…"})]})}),e.jsx("p",{className:"training-start-note",children:"The backend can change providers as availability changes. The exact provider and spend are shown before launch."})]})}),S,x,e.jsxs("section",{className:"training-preparation-summary","aria-label":"Preparation summary",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Preparation"}),e.jsx("span",{children:vn(m?.state??g?.preparationState??"unsupported")})]}),e.jsxs("dl",{className:"training-start-summary",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Model weights / cache"}),e.jsx("dd",{children:g?.cached?"Pinned revision is cached":g?.expectedBytes!=null?`${Wt(g.expectedBytes)} download after Run review`:"Resolved during Run review"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Worker image"}),e.jsx("dd",{children:s?.engineAdapterId==="local-trl"?"Bundled CPU reference worker":"Backend-pinned immutable image"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Harness runtime"}),e.jsx("dd",{children:s?.runtimeAdapterId??"Resolving…"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Data movement"}),e.jsx("dd",{children:s?.computeAdapterId==="local-cpu"?"No remote transfer":"Exact upload and artifact return shown before approval"})]})]}),e.jsx("p",{children:"Selection starts no download, connection, upload, provisioning, or spend. The top-level Run review shows exact actions and approvals."})]})]})}function ji({open:t,busy:n,destinationId:a,baseModelId:s,approvalFields:l,prepared:r,preparedQuote:i,compatible:o,actionLabel:h,onClose:c,onConfirm:u}){return t?e.jsx("div",{className:"training-dialog-backdrop",role:"presentation",onMouseDown:n?void 0:c,children:e.jsxs("section",{"aria-label":"Review provider approval","aria-modal":"true",className:"training-dialog training-provider-approval-dialog",role:"dialog",onMouseDown:v=>v.stopPropagation(),children:[e.jsxs("div",{className:"training-dialog-header",children:[e.jsxs("div",{children:[e.jsx("h2",{children:"Review and run"}),e.jsxs("p",{children:[He(a)," · ",qn(s)]})]}),e.jsx("button",{"aria-label":"Close provider approval",disabled:n,type:"button",onClick:c,children:e.jsx(we,{size:16})})]}),l,r?e.jsxs("dl",{className:"training-start-summary",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Exact quote"}),e.jsx("dd",{children:i==null?"Unavailable":`$${i.toFixed(2)}`})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Prepared data"}),e.jsxs("dd",{children:[Wt(r.bundle.totalSizeBytes)," · verified"]})]})]}):null,e.jsxs("div",{className:"training-dialog-actions",children:[e.jsx("button",{className:"training-button secondary",type:"button",disabled:n,onClick:c,children:"Cancel"}),e.jsx("button",{className:"training-button",type:"button",disabled:n||!o,onClick:u,children:h})]})]})}):null}function vi({approvalPolicy:t,providerLabel:n,method:a,busy:s,exportApproved:l,maximumCostUsd:r,retentionDays:i,onManageProvider:o,onExportApprovedChange:h,onMaximumCostChange:c,onRetentionDaysChange:u}){return e.jsxs("fieldset",{className:"training-provider-approval",children:[e.jsx("legend",{children:"Provider approval"}),o?e.jsx("button",{className:"training-text-button",type:"button",disabled:s,onClick:o,children:t.settingsActionLabel??`Manage ${n}`}):null,e.jsxs("label",{className:"training-provider-consent",children:[e.jsx("input",{type:"checkbox",checked:l,disabled:s,onChange:v=>h(v.target.checked)}),e.jsx("span",{children:t.exportDescription??`Export only the approved train split to ${n}.`})]}),e.jsxs("div",{className:"training-start-fields",children:[e.jsxs("label",{children:[e.jsx("span",{children:"Maximum provider spend (USD)"}),e.jsx("input",{"aria-label":"Maximum provider spend (USD)",type:"number",min:t.minimumSpendUsd,max:t.maximumSpendUsd,step:.01,value:r??"",disabled:s,onChange:v=>c(v.target.valueAsNumber)})]}),e.jsxs("label",{children:[e.jsx("span",{children:"Retention record (days)"}),e.jsx("input",{"aria-label":"Retention record (days)",type:"number",min:t.minimumRetentionDays,max:t.maximumRetentionDays,step:1,value:i,disabled:s,onChange:v=>u(v.target.valueAsNumber)})]})]}),e.jsx("p",{className:"training-start-note",children:"Approval is bound server-side to the signed-in OpenPond account at launch."}),a==="grpo"?e.jsx("p",{className:"training-start-note",children:t.methodRequirement}):null]})}function yi({busy:t,method:n,options:a,onSelect:s}){return e.jsx("div",{className:"training-method-tabs",role:"tablist","aria-label":"Training method",children:a.map(l=>e.jsxs("button",{"aria-selected":l===n,className:l===n?"active":"",disabled:t,role:"tab",type:"button",onClick:()=>s(l),children:[e.jsx("span",{children:va(l)}),e.jsx("strong",{children:_e(l)})]},l))})}function Si({method:t,trainingExamples:n,availableTrainExamples:a,approvedExamples:s,evaluationExamples:l,preparedQuote:r,selectedComputeTarget:i,selectedModel:o,maxSteps:h,sequenceLength:c,approvalPresentation:u,maximumCostUsd:v,providerManaged:m,storagePath:g}){const S=i?.approvalPolicy??null,x=t==="grpo"||t==="ppo"?`${Math.min(n,a)} of ${a} approved train prompts`:t==="dpo"?`${Math.min(n,s)} of ${s} approved preference pairs`:`${Math.min(n,s||a)} approved example${n===1?"":"s"}`,j=i?.computeAdapterId==="local-cpu"?o?`$0 · ${h} steps × ${c} tokens · 15-minute hard stop`:"$0 · 2-minute hard stop":S?u==="dialog"?"Reviewed when you Run":r==null?`Prepare a provider-validated quote · hard cap $${v!=null&&Number.isFinite(v)?v.toFixed(2):"—"}`:`$${r.toFixed(2)} · hard cap $${(v??0).toFixed(2)}`:"Provided before approval";return e.jsxs("dl",{className:"training-start-summary",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Training data"}),e.jsx("dd",{children:x})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Evaluation"}),e.jsxs("dd",{children:[l," test example",l===1?"":"s"]})]}),e.jsxs("div",{children:[e.jsx("dt",{children:r==null?"Estimate":"Exact quote"}),e.jsx("dd",{children:j})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Storage"}),e.jsx("dd",{children:m?"Portable output imported into app-managed storage":g??"App-managed storage"})]})]})}function Ni({prepared:t,preparedQuote:n,maximumCostUsd:a}){const s=t.plan.recipe,l=s.method==="dpo"?s.policyModel.id:s.method==="ppo"?s.policyOptimization.policyModel.id:s.method==="sft"||s.method==="grpo"?s.baseModel.id:"",r=s.method==="grpo"?`RFT · ${hi(s.loss.method)}`:`${_e(s.method)} · ${s.parameterization.toUpperCase()}`;return e.jsxs("section",{className:"training-prepared-confirmation","aria-label":"Confirm paid training launch",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Ready to launch"}),e.jsx("span",{children:"The quote and prepared data are fixed to this confirmation."})]}),e.jsxs("dl",{className:"training-start-summary",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Account"}),e.jsx("dd",{children:t.approvalActor??"Local user"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Provider"}),e.jsx("dd",{children:He(t.plan.destinationId)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Model"}),e.jsx("dd",{children:qn(l)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Method"}),e.jsx("dd",{children:r})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Quote"}),e.jsx("dd",{children:n==null?"Unavailable":`$${n.toFixed(2)}`})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Maximum"}),e.jsx("dd",{children:a==null?"Unavailable":`$${a.toFixed(2)}`})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Retention"}),e.jsxs("dd",{children:[t.plan.dataPolicy.retentionDays," days"]})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Prepared data"}),e.jsxs("dd",{children:[Wt(t.bundle.totalSizeBytes)," · verified"]})]})]}),e.jsx("p",{children:"No provider dataset or job exists until you launch."})]})}function ki({method:t,trainingExamples:n,maximumTrainingExamples:a,maxSteps:s,sequenceLength:l,maximumSequenceLength:r,rolloutMaxOutputTokens:i,maximumOutputTokens:o,defaultRolloutOutputTokens:h,rank:c,learningRate:u,rftLossMethod:v,rolloutGroupSize:m,rolloutConcurrency:g,onTrainingExamplesChange:S,onMaxStepsChange:x,onSequenceLengthChange:j,onRolloutMaxOutputTokensChange:b,onRankChange:y,onLearningRateChange:w,onRftLossMethodChange:R,onRolloutGroupSizeChange:f,onRolloutConcurrencyChange:z}){return e.jsxs("details",{className:"training-start-advanced",children:[e.jsx("summary",{children:"Advanced settings"}),e.jsxs("div",{className:"training-start-fields",children:[e.jsxs("label",{children:[e.jsx("span",{children:"Training examples"}),e.jsx("input",{type:"number",min:1,max:a,value:n,onChange:p=>S(Math.max(1,Math.min(a,p.target.valueAsNumber||1)))})]}),e.jsxs("label",{children:[e.jsx("span",{children:"Optimizer steps"}),e.jsx("input",{type:"number",min:1,max:1e3,value:s,onChange:p=>x(p.target.valueAsNumber||1)})]}),e.jsxs("label",{children:[e.jsx("span",{children:t==="grpo"?"Prompt length":"Sequence length"}),e.jsx("input",{type:"number",min:16,max:r,value:l,onChange:p=>j(p.target.valueAsNumber||64)})]}),t==="grpo"?e.jsxs("label",{children:[e.jsx("span",{children:"Maximum output"}),e.jsx("input",{type:"number",min:16,max:o,value:i,onChange:p=>b(Math.max(16,Math.min(o,p.target.valueAsNumber||h)))})]}):null,e.jsxs("label",{children:[e.jsx("span",{children:"LoRA rank"}),e.jsx("input",{type:"number",min:1,max:256,value:c,onChange:p=>y(p.target.valueAsNumber||2)})]}),e.jsxs("label",{children:[e.jsx("span",{children:"Learning rate"}),e.jsx("input",{type:"number",min:1e-6,max:.1,step:1e-4,value:u,onChange:p=>{const k=p.target.valueAsNumber;Number.isFinite(k)&&w(k)}})]}),t==="grpo"?e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:[e.jsx("span",{children:"RL loss"}),e.jsxs("select",{"aria-label":"RL loss",value:v,onChange:p=>R(p.target.value),children:[e.jsx("option",{value:"dapo",children:"DAPO"}),e.jsx("option",{value:"grpo",children:"GRPO"}),e.jsx("option",{value:"gspo-token",children:"GSPO-token"})]})]}),e.jsxs("label",{children:[e.jsx("span",{children:"Rollouts per prompt"}),e.jsx("input",{type:"number",min:2,max:16,value:m,onChange:p=>f(p.target.valueAsNumber||8)})]}),e.jsxs("label",{children:[e.jsx("span",{children:"Concurrent rollouts"}),e.jsx("input",{type:"number",min:1,max:16,value:g,onChange:p=>z(p.target.valueAsNumber||4)})]})]}):null]})]})}const Ci=64,Ri=4096;function qt(t,n=Ri){return Ra(t,{minimum:Ci,maximum:n})}const Vn=["q_proj","k_proj","v_proj","o_proj","gate_proj","up_proj","down_proj"];function Mi(t){if(t.method==="grpo"&&t.executionMode==="provider_native"){const n=t.destinationId==="openpond_managed",a=t.maxSteps,s=n?4:t.rolloutGroupSize,l=t.taskset.metadata.toolContractHash===Rt||t.taskset.environment.metadata.toolContractHash===Rt,r=t.taskset.graders.find(i=>i.rewardEligible);return{schemaVersion:"openpond.rftRecipe.v1",method:"grpo",parameterization:"lora",baseModel:Sn(t),dataset:{trainSplit:"train",validationSplit:"frozen_eval",maxPromptTokens:n?4096:t.sequenceLength,maxExamples:t.trainingExamples,selectionStrategy:t.taskset.datasetArtifact?"rft_easy_curriculum_v1":"stable_hash_top_n"},lora:{rank:n?16:t.rank},rollout:{groupSize:s,concurrency:n?4:t.rolloutConcurrency,maxTurns:l?15:1,maxOutputTokens:n?512:t.rolloutMaxOutputTokens,temperature:.8,topP:.95,seed:17},optimizer:{learningRate:n?1e-5:t.learningRate,maxSteps:a},loss:{method:t.rftLossMethod??Hn(t.taskset),klBeta:null},reward:l?{graderId:"cross-system-exact-verifier",graderHash:"server-derived-grader-hash",environmentId:"cross-system-operations",environmentVersion:ua,toolContractHash:Rt}:{graderId:r?.id??"math_final_answer",graderHash:"server-derived-grader-hash",environmentId:ha,environmentVersion:ma,toolContractHash:an},resourceLimits:{wallTimeMs:n?18e5:18e4,maxRollouts:Math.max(s,n?a*s:t.trainingExamples*s),maxPayloadBytes:1e6},policyOptimization:null}}if(t.method==="ppo"&&t.destinationId==="local_cpu_fixture"){const n=at(t.model),a={...n,id:`${n.id}:value-head-v1`},s=Math.max(t.maxSteps,t.trainingExamples),l=Math.max(1,Math.min(64,t.rolloutMaxOutputTokens)),r=t.taskset.environment.metadata.toolContractHash,i=typeof r=="string"?r:an;return{schemaVersion:"openpond.ppoRecipe.v1",method:"ppo",parameterization:"lora",policyOptimization:{schemaVersion:"openpond.policyOptimization.v1",policyModel:n,referenceModel:{...n},dataset:{tasksetId:t.taskset.id,tasksetHash:t.taskset.contentHash,split:"train",selectionStrategy:"stable_hash_top_n",selectionSeed:17,maxExamples:t.trainingExamples},sampler:{temperature:.8,topP:.95,maxOutputTokens:l,maxTurns:1,concurrency:1},environment:{id:t.taskset.environment.entrypoint.slice(0,240),version:t.taskset.environment.protocolVersion,toolContractHash:i},reward:{graderId:"openpond.deterministic_token_match.v1",graderHash:"server-authoritative-grader-hash"},kl:{coefficient:.05,referenceConstraint:"fixed_reference"},budgets:{maxRollouts:s,maxEnvironmentExecutions:s,maxInputTokens:s*Math.max(16,t.sequenceLength),maxOutputTokens:s*l,maxOptimizerSteps:t.maxSteps,wallTimeMs:t.model?9e5:12e4,maximumCostUsd:0},checkpointEverySteps:1,seed:17,evaluationSplit:"frozen_eval",optimizer:{method:"ppo",valueModel:a,gamma:1,gaeLambda:.95,policyClip:.2,valueClip:.2,valueLossCoefficient:.5,ppoEpochs:2,minibatchSize:1}},lora:Et(t),valueHead:{initialization:"policy_hidden_state_linear",optimizerLearningRate:t.learningRate,artifactName:"value_head.safetensors"},policyLearningRate:t.learningRate,resume:{checkpointId:null,policyHash:"server-authoritative-policy-hash",referenceHash:"server-authoritative-reference-hash",valueModelHash:"server-authoritative-value-hash",optimizerStateHash:null},resourceLimits:it(t.model)}}if(t.method==="dpo"&&t.destinationId==="local_cpu_fixture"){const n=at(t.model);return{schemaVersion:"openpond.dpoRecipe.v1",method:"dpo",parameterization:"lora",policyModel:n,referenceModel:{...n},dataset:{trainSplit:"train",validationSplit:"frozen_eval",maxPairs:t.trainingExamples,maxPromptTokens:Math.max(16,Math.floor(t.sequenceLength/2)),maxCompletionTokens:Math.max(16,Math.ceil(t.sequenceLength/2)),selectionStrategy:"stable_hash_top_n",selectionSeed:17},lora:Et(t),loss:{variant:"sigmoid",beta:.1,labelSmoothing:0},optimizer:st(t),referenceLogprobs:{cacheSchemaVersion:"openpond.dpoReferenceLogprobs.v1",cacheKey:"server-authoritative-cache-key",invalidationHash:"server-authoritative-invalidation-hash"},resourceLimits:it(t.model)}}return t.executionMode==="provider_native"?{schemaVersion:"openpond.sftRecipe.v1",method:"sft",parameterization:"lora",baseModel:Sn(t),dataset:Pt(t),lora:{rank:t.rank,alpha:t.rank*2,dropout:.05,targetModules:Vn},optimizer:st(t),resourceLimits:{cpuThreads:1,memoryBytes:1e9,wallTimeMs:36e5}}:!t.model?.modelId||!t.model.revision||!t.model.tokenizerRevision||!t.model.chatTemplateHash?{schemaVersion:"openpond.sftRecipe.v1",method:"sft",parameterization:"lora",baseModel:at(null),dataset:Pt(t),lora:{rank:t.rank,alpha:t.rank*2,dropout:0,targetModules:["c_attn"]},optimizer:st(t),resourceLimits:it(null)}:{schemaVersion:"openpond.sftRecipe.v1",method:"sft",parameterization:"lora",baseModel:at(t.model),dataset:Pt(t),lora:Et(t),optimizer:st(t),resourceLimits:it(t.model)}}function Hn(t){return t.sourceRefs.some(a=>{const s=a.metadata;return("repositoryId"in a?String(a.repositoryId):"").toLowerCase().includes("dapo-math")||a.title.toLowerCase().includes("dapo-math")||String(s.datasetName??"").toLowerCase().includes("dapo-math")})?"dapo":"grpo"}function yn(t,n,a,s){return t.find(r=>r.selectionKey===n)?.executionOptions.some(r=>r.destinationId===a&&r.methods.includes(s))?n:""}function Sn(t){return{id:t.baseModelId,revision:t.catalogModel?.revision??"provider-managed-model-resource-v1",tokenizerRevision:t.catalogModel?.tokenizerRevision??"provider-managed-tokenizer-v1",chatTemplateHash:t.catalogModel?.chatTemplateHash??"provider-managed-chat-template-v1"}}function at(t){return t?.modelId&&t.revision&&t.tokenizerRevision&&t.chatTemplateHash?{id:t.modelId,revision:t.revision,tokenizerRevision:t.tokenizerRevision,chatTemplateHash:t.chatTemplateHash}:{id:"openpond/tiny-cpu-gpt2-fixture",revision:"architecture-v2-seed-17-context-512",tokenizerRevision:"wordlevel-v1",chatTemplateHash:"fixture00000000"}}function Pt(t){return{trainSplit:"train",validationSplit:"frozen_eval",completionOnly:!0,maxSequenceLength:t.sequenceLength,maxExamples:t.trainingExamples,selectionStrategy:"stable_hash_top_n",selectionSeed:17}}function Et(t){return{rank:t.rank,alpha:t.rank*2,dropout:t.model?.05:0,targetModules:t.model?Vn:["c_attn"]}}function st(t){return{learningRate:t.learningRate,epochs:1,maxSteps:t.maxSteps,batchSize:1,gradientAccumulationSteps:1,seed:17}}function it(t){return{cpuThreads:4,memoryBytes:t?8e9:2e9,wallTimeMs:t?9e5:12e4}}const Ii=4096,Ai=4096,wi=64;function _i(t){const[n,a]=d.useState(null),[s,l]=d.useState(null),[r,i]=d.useState(null),[o,h]=d.useState(""),c=d.useMemo(()=>{if(s?.targets)return s.targets;const m=t.destinations.find(g=>g.destinationId===t.initialDestination)??t.destinations.find(g=>g.available);return m?[{id:"automatic",label:"Automatic",description:m.unavailableReason??"Server-reported training destination.",destinationId:m.destinationId,computeAdapterId:m.destinationId,runtimeAdapterId:"resolving",engineAdapterId:"resolving",methods:m.methods,capabilityPills:[He(m.destinationId)],executionMode:"local_worker",approvalPolicy:null,limits:{maximumSequenceLength:Ii,maximumOutputTokens:Ai,maximumTrainingExamples:null},defaults:{loraRank:2,maxSteps:8,rolloutGroupSize:4,rolloutConcurrency:1,rolloutOutputTokens:wi},available:m.available,unavailableReason:m.unavailableReason}]:[]},[s?.targets,t.destinations,t.initialDestination]),u=d.useMemo(()=>{const m=s?.models??[],g=o.trim().toLowerCase();return g?m.filter(S=>`${S.label} ${S.modelId} ${S.source}`.toLowerCase().includes(g)):m.filter(S=>S.source!=="search")},[s?.models,o]),v=c[0]?.id??"automatic";return d.useEffect(()=>{if(!t.connection)return;let m=!0;return qe.computeState(t.connection).then(g=>{m&&a(g)}),()=>{m=!1}},[t.connection]),d.useEffect(()=>{if(!t.connection)return;let m=!0;const g=o.trim().length>=2?o.trim():"",S=window.setTimeout(()=>{qe.portableTrainingCatalog(t.connection,g,t.method).then(x=>{m&&(l(x),i(null))}).catch(x=>{m&&i(x instanceof Error?x.message:"The Model registry search could not be completed.")})},g?250:0);return()=>{m=!1,window.clearTimeout(S)}},[t.connection,t.method,o]),{compute:n,catalog:s,catalogError:r,catalogTargets:c,visibleCatalogModels:u,computeTargetId:v,modelSearch:o,setModelSearch:h}}const Ti=64;function Pi(t){const n=t.taskset.readiness?.trainingPath??null,a=n?.primaryMethod??pi(t.taskset),s=n?.bootstrap??null,l=gi(t.taskset),r=t.initialMethod&&l.includes(t.initialMethod)?t.initialMethod:a==="grpo"?"grpo":a==="dpo"?"dpo":a==="ppo"?"ppo":"sft",i=t.runPreset==="small"||t.runPreset==="small_experiment",o=fi(t.baseModelCandidates,t.preferredBaseModel),h=o?.executionOptions.find(W=>W.available&&W.methods.includes(r))??null,c=h?.destinationId??t.destinations.find(W=>W.destinationId==="local_cpu_fixture"&&W.available)?.destinationId??t.destinations.find(W=>W.available)?.destinationId??"local_cpu_fixture",u=h?o:bi(t.baseModelCandidates,c,r),v=Fn(t.taskset,"train"),[m,g]=d.useState(c),[S,x]=d.useState(u?.selectionKey??""),[j,b]=d.useState(()=>i&&r!=="grpo"?1:r==="grpo"?t.runPreset==="standard"?50:8:r==="dpo"?t.runPreset==="standard"?100:4:r==="ppo"?t.runPreset==="standard"?20:2:t.runPreset==="standard"?100:2),[y,w]=d.useState(()=>Math.max(1,Math.min(v,r==="dpo"?i?2:t.taskset.learningSignals.preferences.filter(W=>W.approved).length:r==="ppo"?i?2:t.runPreset==="standard"?16:4:r==="grpo"&&t.taskset.datasetArtifact?t.runPreset==="standard"?32:16:i?4:1e3))),[R,f]=d.useState(()=>qt(t.taskset)),[z,p]=d.useState(2),[k,E]=d.useState(()=>Ft(u?.preference.modelId??"")),[Q,$]=d.useState(!1),[P,J]=d.useState(null),[V,Y]=d.useState(7),[M,K]=d.useState(8),[B,G]=d.useState(4),[ae,X]=d.useState(Ti),[ue,F]=d.useState(()=>Hn(t.taskset)),[se,Z]=d.useState(r),[N,U]=d.useState(null),[O,ee]=d.useState(!1);return{primaryMethod:a,bootstrap:s,methodOptions:l,quickTest:i,initialDestination:c,availableTrainExamples:v,destinationId:m,setDestinationId:g,baseModelKey:S,setBaseModelKey:x,maxSteps:j,setMaxSteps:b,trainingExamples:y,setTrainingExamples:w,sequenceLength:R,setSequenceLength:f,rank:z,setRank:p,learningRate:k,setLearningRate:E,exportApproved:Q,setExportApproved:$,maximumCostUsd:P,setMaximumCostUsd:J,retentionDays:V,setRetentionDays:Y,rolloutGroupSize:M,setRolloutGroupSize:K,rolloutConcurrency:B,setRolloutConcurrency:G,rolloutMaxOutputTokens:ae,setRolloutMaxOutputTokens:X,rftLossMethod:ue,setRftLossMethod:F,method:se,setMethod:Z,prepared:N,setPrepared:U,providerApprovalOpen:O,setProviderApprovalOpen:ee}}const Nn=4096,Ei=4096,kn=64;function $i({baseModelCandidates:t,connection:n,taskset:a,modelId:s=null,destinations:l,initialMethod:r,preferredBaseModel:i=null,busy:o,onClose:h,onStart:c,onPrepare:u,onConfirmPrepared:v,onOpenProviderSettings:m,presentation:g="dialog",runControlId:S,hideActions:x=!1,onReadinessChange:j,onConfigurationChange:b,runPreset:y="custom",hideMethodTabs:w=!1,approvalPresentation:R="inline",configurationContent:f}){const{primaryMethod:z,bootstrap:p,methodOptions:k,quickTest:E,initialDestination:Q,availableTrainExamples:$,destinationId:P,setDestinationId:J,baseModelKey:V,setBaseModelKey:Y,maxSteps:M,setMaxSteps:K,trainingExamples:B,setTrainingExamples:G,sequenceLength:ae,setSequenceLength:X,rank:ue,setRank:F,learningRate:se,setLearningRate:Z,exportApproved:N,setExportApproved:U,maximumCostUsd:O,setMaximumCostUsd:ee,retentionDays:W,setRetentionDays:de,rolloutGroupSize:le,setRolloutGroupSize:ce,rolloutConcurrency:pe,setRolloutConcurrency:I,rolloutMaxOutputTokens:L,setRolloutMaxOutputTokens:te,rftLossMethod:C,setRftLossMethod:D,method:T,setMethod:be,prepared:me,setPrepared:ye,providerApprovalOpen:Ee,setProviderApprovalOpen:xe}=Pi({baseModelCandidates:t,preferredBaseModel:i,destinations:l,taskset:a,initialMethod:r,runPreset:y}),{compute:Ce,catalog:$e,catalogError:Le,catalogTargets:De,visibleCatalogModels:We,computeTargetId:ht,modelSearch:pt,setModelSearch:Oe}=_i({connection:n,destinations:l,initialDestination:Q,method:T}),A=l.find(_=>_.destinationId===P)??null,ge=T==="sft"&&z!=="sft"&&p?.method==="sft",gt=T==="dpo"?a.learningSignals.preferences.filter(_=>_.approved).length:a.learningSignals.demonstrations.filter(_=>_.approved).length,Wn=Fn(a,"frozen_eval"),Xt=d.useMemo(()=>Ce?.inventory?.models.filter(_=>_.trainingCompatible&&_.modelId&&_.revision&&_.tokenizerRevision&&_.chatTemplateHash)??[],[Ce?.inventory?.models]),Se=t.find(_=>_.selectionKey===V)??null,ft=Se?.executionOptions.find(_=>_.destinationId===P&&_.methods.includes(T))??null,Xe=Se?.preference.modelId??"",Qe=Se?.preference.modelAssetId?Xt.find(_=>_.id===Se.preference.modelAssetId)??null:Xt.find(_=>_.modelId===Xe)??null,H=De.find(_=>_.id===ht)??null,Qt=d.useRef(null),bt=$e?.models.find(_=>_.selectionKey===V)??null,Re=bt?.compatibilities.find(_=>_.targetId===H?.id&&_.methods.includes(T))??null,q=H?.approvalPolicy??null,xt=H?.executionMode==="provider_native",jt=q?.providerLabel??"provider";d.useEffect(()=>{if(!H||H.destinationId!==P)return;const _=JSON.stringify({destinationId:H.destinationId,defaults:H.defaults,approvalPolicy:H.approvalPolicy});Qt.current!==_&&(Qt.current=_,F(H.defaults.loraRank),ce(H.defaults.rolloutGroupSize),I(H.defaults.rolloutConcurrency),te(H.defaults.rolloutOutputTokens),K(H.defaults.maxSteps),ee(H.approvalPolicy?.defaultMaximumSpendUsd??null),de(H.approvalPolicy?.defaultRetentionDays??7),H.destinationId==="openpond_managed"&&(Z(1e-5),X(4096)))},[P,H,Z,K,ee,F,de,I,ce,te,X]);const Xn=H?.limits.maximumSequenceLength??Nn,Qn=H?.limits.maximumOutputTokens??Ei,Yn=T==="dpo"?Math.max(1,a.learningSignals.preferences.filter(_=>_.approved).length):T==="ppo"?Math.max(1,Math.min(1e3,$)):T==="grpo"&&xt&&a.datasetArtifact?Math.max(1,Math.min(H?.limits.maximumTrainingExamples??$,$)):Math.max(1,Math.min(1e5,$)),Zn=!q||(!q.exportApprovalRequired||N)&&O!=null&&O>=q.minimumSpendUsd&&O<=q.maximumSpendUsd&&Number.isInteger(W)&&W>=q.minimumRetentionDays&&W<=q.maximumRetentionDays,Yt=H?.methods.includes(T)??A?.methods.includes(T)??!1,ea=a.capabilities.compatibleMethods.includes(T)||p?.method===T,vt=!!(a.readiness?.ready&&Yt&&A?.available&&A.methods.includes(T)&&ea&&ft?.available&&Re?.state!=="unsupported"&&Re?.state!=="compute_setup_required"&&(Se?.preference.source!=="local"||Qe)),Ye=vt&&Zn,Ze=a.readiness?.ready?Yt?Re?.state==="unsupported"||Re?.state==="compute_setup_required"?Re.reason??"The selected Model and compute target are not ready.":Se?ft?.available?Se.preference.source==="local"&&!Qe?"The selected local model is no longer present in the verified compute inventory. Scan Compute and select it again.":A?.methods.includes(T)?A?.unavailableReason??null:`${He(P)} does not execute ${T.toUpperCase()}.`:ft?.unavailableReason??"The selected base model cannot run on this compute destination.":`Choose starting weights compatible with ${He(P)} and ${T.toUpperCase()}.`:`${T.toUpperCase()} is the primary recommendation but no compatible execution backend is available here.${p?" Choose the optional SFT trajectory bootstrap to run the local precursor.":""}`:"The Taskset must pass environment, grader, and data readiness before training.",yt=Ze??(q?.exportApprovalRequired&&!N?`Approve the bounded train-split export before launching ${jt}.`:q&&(O==null||O<q.minimumSpendUsd||O>q.maximumSpendUsd)?`Set a ${jt} cap from $${q.minimumSpendUsd.toFixed(2)} through $${q.maximumSpendUsd.toFixed(2)}.`:q&&(!Number.isInteger(W)||W<q.minimumRetentionDays||W>q.maximumRetentionDays)?"Choose a provider retention record from 1 through 30 days.":null),et=Mi({method:T,taskset:a,destinationId:P,baseModelId:Xe,maxSteps:M,sequenceLength:ae,rank:ue,learningRate:se,model:Qe,rolloutGroupSize:le,rolloutConcurrency:pe,rolloutMaxOutputTokens:L,trainingExamples:B,rftLossMethod:C,executionMode:H?.executionMode,catalogModel:bt}),tt={exportApproved:q?N:!0,maximumCostUsd:q?O:0,retentionDays:q?W:null,region:null},St=JSON.stringify({modelId:s,destinationId:P,recipe:et,approval:tt}),je=me?.configurationKey===St?me.value:null;async function Zt(){if(!Ye)return;if(q?.preparationRequired&&!je){const ne=await u(P,et,tt);ne&&ye({configurationKey:St,value:ne});return}(q?.preparationRequired&&je?await v(je,O??0):await c(P,et,tt))&&(xe(!1),h())}async function en(){if(vt){if(q&&R==="dialog"){xe(!0);return}await Zt()}}function ta(_,ne=De.find(Ct=>Ct.destinationId===_)){J(_),Y(Ct=>yn(t,Ct,_,T)),F(ne?.defaults.loraRank??2),ce(ne?.defaults.rolloutGroupSize??4),I(ne?.defaults.rolloutConcurrency??1),te(ne?.defaults.rolloutOutputTokens??kn),Z(_==="openpond_managed"?1e-5:Ft(Xe)),ee(ne?.approvalPolicy?.defaultMaximumSpendUsd??null),de(ne?.approvalPolicy?.defaultRetentionDays??7),U(!1),T==="grpo"?(K(ne?.defaults.maxSteps??8),a.datasetArtifact&&ne?.executionMode==="provider_native"&&G(Math.max(1,Math.min($,ne.limits.maximumTrainingExamples??16))),X(Math.min(ne?.limits.maximumSequenceLength??Nn,Math.max(512,qt(a,ne?.limits.maximumSequenceLength))))):X(qt(a,ne?.limits.maximumSequenceLength))}function na(_){if(be(_),ye(null),Y(ne=>yn(t,ne,P,_)),_==="grpo"){K(8),xt&&a.datasetArtifact&&X(ne=>Math.max(512,ne)),G(Math.max(1,Math.min($,a.datasetArtifact?16:1e3)));return}if(K(E?1:_==="dpo"?4:2),_==="dpo"){G(Math.max(1,Math.min(a.learningSignals.preferences.filter(ne=>ne.approved).length,E?2:64)));return}if(_==="ppo"){G(Math.max(1,Math.min($,E?2:4)));return}G(Math.max(1,Math.min($,E?4:32)))}const Be=je?.plan.estimatedCostUsd??null,Nt=o?je?"Launching…":q?.preparationRequired?"Preparing…":"Starting…":je&&Be!=null?`Launch $${Be.toFixed(2)} job`:q?.preparationRequired?"Prepare exact quote":"Start training",Ue=R==="dialog"&&q?vt:Ye,kt=R==="dialog"&&q?"Run":Nt;d.useEffect(()=>{H&&ta(H.destinationId,H)},[H?.id,H?.destinationId]),d.useEffect(()=>{j?.({ready:Ue,reason:Ue?null:R==="dialog"&&q?Ze??"This setup is unavailable.":yt??"This setup is unavailable.",actionLabel:kt})},[R,Ze,q,yt,j,kt,Ue]),d.useEffect(()=>{b?.({baseModel:Se?.preference??null,method:T,destinationId:P,recipe:et,approval:tt})},[St,b]);const tn=q?e.jsx(vi,{approvalPolicy:q,providerLabel:jt,method:T,busy:o,exportApproved:N,maximumCostUsd:O,retentionDays:W,onManageProvider:m?()=>{R==="dialog"?xe(!1):h(),m()}:void 0,onExportApprovedChange:U,onMaximumCostChange:ee,onRetentionDaysChange:de}):null,nn=e.jsxs("section",{className:`training-dialog training-start-dialog${g==="embedded"?" embedded":""}${w?" hide-method-tabs":""}`,role:g==="dialog"?"dialog":"region","aria-modal":g==="dialog"?"true":void 0,"aria-label":"Start training",onMouseDown:_=>_.stopPropagation(),children:[g==="dialog"?e.jsxs("div",{className:"training-dialog-header",children:[e.jsxs("div",{children:[e.jsx("h2",{children:"Start training"}),e.jsx("p",{children:a.name})]}),e.jsx("button",{type:"button","aria-label":"Close start training",disabled:o,onClick:h,children:e.jsx(we,{size:16})})]}):null,w?null:e.jsx(yi,{busy:o,method:T,options:k,onSelect:na}),e.jsx(xi,{busy:o,catalog:$e,catalogError:Le,selectedComputeTarget:H,modelSearch:pt,onModelSearchChange:Oe,baseModelKey:V,baseModelCandidates:t,destinationId:P,method:T,onBaseModelChange:(_,ne)=>{Y(_),Z(Ft(ne))},visibleCatalogModels:We,selectedCatalogCompatibility:Re,selectedCatalogModel:bt,configurationContent:f,inlineProviderApproval:R==="inline"?tn:null}),e.jsx(Si,{method:T,trainingExamples:B,availableTrainExamples:$,approvedExamples:gt,evaluationExamples:Wn,preparedQuote:Be,selectedComputeTarget:H,selectedModel:!!Qe,maxSteps:M,sequenceLength:ae,approvalPresentation:R,maximumCostUsd:O,providerManaged:xt,storagePath:Ce?.settings.modelStorePath??null}),R==="inline"&&je?e.jsx(Ni,{prepared:je,preparedQuote:Be,maximumCostUsd:O}):null,ge&&p?e.jsxs("div",{className:"training-bootstrap-limitations",children:[e.jsx("strong",{children:"Supervised precursor"}),e.jsx("p",{children:"This SFT run teaches the approved tool trajectories. It does not replace reinforcement training."}),e.jsx("ul",{children:p.limitations.map(_=>e.jsx("li",{children:_},_))})]}):null,e.jsx(ki,{method:T,trainingExamples:B,maximumTrainingExamples:Yn,maxSteps:M,sequenceLength:ae,maximumSequenceLength:Xn,rolloutMaxOutputTokens:L,maximumOutputTokens:Qn,defaultRolloutOutputTokens:H?.defaults.rolloutOutputTokens??kn,rank:ue,learningRate:se,rftLossMethod:C,rolloutGroupSize:le,rolloutConcurrency:pe,onTrainingExamplesChange:G,onMaxStepsChange:K,onSequenceLengthChange:X,onRolloutMaxOutputTokensChange:te,onRankChange:F,onLearningRateChange:Z,onRftLossMethodChange:D,onRolloutGroupSizeChange:ce,onRolloutConcurrencyChange:I}),Ue?A?.nonProduction?e.jsx("p",{className:"training-start-note",children:"This local worker is an experimental correctness run. It does not claim useful model quality."}):null:e.jsx("div",{className:"training-banner error training-dialog-error",children:R==="dialog"&&q?Ze??"This setup is unavailable.":yt??"This setup is unavailable."}),x?e.jsx("button",{id:S,hidden:!0,type:"button",disabled:o||!Ue,onClick:()=>{en()},children:kt}):e.jsxs("div",{className:"training-dialog-actions",children:[e.jsx("button",{className:"training-button secondary",type:"button",disabled:o,onClick:h,children:"Cancel"}),e.jsx("button",{id:S,className:"training-button",type:"button",disabled:o||!Ye,onClick:()=>{en()},children:Nt})]})]}),aa=e.jsx(ji,{open:R==="dialog"&&!!q&&Ee,busy:o,destinationId:P,baseModelId:Xe,approvalFields:tn,prepared:je,preparedQuote:Be,compatible:Ye,actionLabel:Nt,onClose:()=>xe(!1),onConfirm:()=>{Zt()}});return g==="embedded"?e.jsxs(e.Fragment,{children:[nn,aa]}):e.jsx("div",{className:"training-dialog-backdrop",role:"presentation",onMouseDown:o?void 0:h,children:nn})}const Li=[{id:"dataset",label:"Taskset"},{id:"method",label:"Training method"},{id:"configuration",label:"Model and compute"}];function Di({activeStep:t,steps:n,onStepChange:a}){return e.jsx("ol",{className:"model-setup-step-list","aria-label":"Run setup progress",children:n.map((s,l)=>e.jsx("li",{className:[t===s.id?"active":"",s.complete?"complete":""].filter(Boolean).join(" "),children:e.jsxs("button",{"aria-current":t===s.id?"step":void 0,type:"button",onClick:()=>a(s.id),children:[e.jsxs("span",{className:"model-setup-step-label",children:[l+1,". ",s.label]}),e.jsx("span",{className:"model-setup-step-segment","aria-hidden":"true"})]})},s.id))})}const Oi=["sft","dpo","grpo","ppo"];function Kn(t,n,a,s){const l=new Date().toISOString(),r=crypto.randomUUID();return{schemaVersion:"openpond.modelProject.v1",id:a??`model_${r}`,profileId:t,name:s?.trim()||"Model #1",objective:n,defaultBaseModel:null,defaultDestinationId:null,createdAt:l,updatedAt:l}}function Bi(t){return t.tasksetRef?t.method?"configuration":"method":"dataset"}function Ui(t,n,a,s){return t==="dataset"?!!a:t==="method"?!!n.method:s}function Gn(t){let n=t.length;for(const a of t){const s=/^Model #(\d+)$/.exec(a.name.trim());s&&(n=Math.max(n,Number(s[1])))}return`Model #${n+1}`}function zi(t,n){const a=new Date().toISOString();return{schemaVersion:"openpond.modelRunDraft.v1",id:`run_draft_${crypto.randomUUID()}`,profileId:t,modelId:n,status:"draft",title:"Run draft",datasetMode:null,tasksetRef:null,datasetCreationId:null,buildIntent:null,buildSpecification:null,baseModel:null,method:null,destinationId:null,managedRolloutPlacement:"local",runPreset:null,recipe:null,createdAt:a,updatedAt:a}}function Cn(t,n){return{...t,datasetMode:"existing",tasksetRef:{id:n.id,revision:n.revision,contentHash:n.contentHash},buildIntent:t.buildIntent??qi(n),updatedAt:new Date().toISOString()}}function Fi(t){const n=new Date().toISOString();return{...t,id:`run_draft_${crypto.randomUUID()}`,status:"draft",title:"Run draft",createdAt:n,updatedAt:n}}function qi(t){return t.capabilities.supportedSignals.includes("preference")||t.capabilities.compatibleMethods.includes("dpo")?"preferences":t.capabilities.supportedSignals.includes("reward")||t.capabilities.compatibleMethods.includes("grpo")||t.capabilities.compatibleMethods.includes("ppo")?"verifiable_reward":t.capabilities.supportedSignals.includes("label")?"rubric":"demonstrations"}function $t(t,n){const{updatedAt:a,...s}=t,{updatedAt:l,status:r,...i}=n;return JSON.stringify({project:s,draft:i})}function Vi(t,n,a,s){if(!t.name.trim())return"Name this Model.";if(!n.datasetMode)return"Choose a Taskset.";if(!a)return"Choose a Taskset to enable Run.";if(!n.method)return"Choose a training method.";const l=a.readiness?.methodReadiness.find(r=>r.method===n.method);return l?.status==="needs_dataset_work"?l.reasons[0]??"Resolve Taskset readiness for this method.":n.runPreset?n.baseModel?n.destinationId?s.ready?null:s.reason??"Complete the launch checks.":"Choose a compatible destination.":"Choose a base model.":n.method==="grpo"||n.method==="ppo"?"Choose an experiment size.":"Choose a run size."}function Hi(t){const n=t.downloads.length?t.downloads.map(l=>`${l.label}: ${In(l.diskImpactBytes)} (${l.state})`).join("; "):"No downloads",a=t.dataMovement.length?t.dataMovement.map(l=>`${l.label}: ${l.direction}${l.bytes==null?"":` ${In(l.bytes)}`}`).join("; "):"No remote data movement",s=t.quoteUsd==null?"No provider spend quoted":`Quote $${t.quoteUsd.toFixed(2)}; maximum $${t.maximumSpendUsd?.toFixed(2)??"not set"}`;return[`${Wi(t.state)}${t.reason?` — ${t.reason}`:""}.`,`Downloads: ${n}.`,`Data: ${a}.`,`${s}. Retention: ${t.retentionDays==null?"local policy":`${t.retentionDays} days`}.`,"No side effects have started. Confirming may begin downloads, connections, uploads, provisioning, or spend."].join(" ")}function Ki(t,n){return Oi.map(a=>{const s=t?.readiness?.methodReadiness.find(h=>h.method===a),l=!!(t&&(t.capabilities.compatibleMethods.includes(a)||t.readiness?.trainingPath?.bootstrap?.method===a)),r=n.some(h=>h.available&&h.methods.includes(a)),i=s?.status==="needs_dataset_work"?"Needs Taskset work":l?r?s?.status==="recommended"?"Recommended":"Compatible":"Destination unavailable":"Incompatible Taskset",o=s?.reasons[0]??(l?r?Ji(a):`No configured destination currently executes ${a.toUpperCase()}.`:`This Taskset revision does not contain the evidence required for ${a.toUpperCase()}.`);return{method:a,state:i,reason:o,executionTargets:Gi(a,n),available:l&&s?.status!=="needs_dataset_work"&&r}})}function Gi(t,n){return[Rn(t,"local_cpu_fixture","Local CPU · Experimental",n),Rn(t,"openpond_managed","OpenPond Managed",n)]}function Rn(t,n,a,s){const l=s.find(o=>o.destinationId===n),r=n==="local_cpu_fixture"?"Local CPU":"OpenPond Managed",i=!!l?.methods.includes(t);return{id:n,label:a,available:!!(l?.available&&i),reason:l?i?l.unavailableReason??`${r} is not available in this environment.`:`${r} does not execute ${t.toUpperCase()}.`:`${r} capabilities have not loaded.`}}function Ji(t){return t==="sft"?"Imitate approved responses with assistant-only loss.":t==="dpo"?"Increase the margin between chosen and rejected responses.":t==="grpo"?"Sample grouped responses and optimize executable rewards.":"Optimize a policy with a separately tracked value model."}function Jn(t){return t==="grpo"||t==="ppo"?[{id:"small_experiment",label:"Quick test",description:"Bound prompts, rollouts, output tokens, steps, time, and spend."},{id:"standard",label:"Recommended",description:"Use the Taskset-aware recommended online budgets."},{id:"custom",label:"Custom",description:"Set each rollout and optimizer limit explicitly."}]:[{id:"small",label:"Quick test",description:"A bounded LoRA experiment with independent frozen evaluation."},{id:"standard",label:"Recommended",description:"Use Taskset-aware recommended examples and optimizer limits."},{id:"custom",label:"Custom",description:"Set examples, steps, sequence length, rank, time, and spend."}]}function Mn(t,n){return Jn(t).find(a=>a.id===(n??"standard"))}function Wi(t){return t.replaceAll("_"," ").replace(/^\w/,n=>n.toUpperCase())}function In(t){return t<1024?`${t} B`:t<1024**2?`${(t/1024).toFixed(1)} KB`:t<1024**3?`${(t/1024**2).toFixed(1)} MB`:`${(t/1024**3).toFixed(1)} GB`}const Xi="model-build-run-control";function Qi({activeStep:t,onStepChange:n,draft:a,setDraft:s,selectedTaskset:l,methodCards:r,tasksets:i,baseModelCandidates:o,destinations:h,connection:c,training:u,canRun:v,onSelectTaskset:m,onOpenDatasetBuilder:g,onLaunchStateChange:S,onConfigurationChange:x,onOpenProviderSettings:j,onFinished:b}){return e.jsxs(e.Fragment,{children:[e.jsx(Di,{activeStep:t,steps:Li.map(y=>({...y,complete:Ui(y.id,a,l,v)})),onStepChange:n}),t==="dataset"?e.jsxs("section",{className:"model-build-section",children:[e.jsx("div",{className:"model-build-section-heading",children:e.jsxs("div",{children:[e.jsx("h2",{children:"Choose a Taskset"}),e.jsx("p",{children:"Use a ready Taskset, or create one conversationally in Chat."})]})}),e.jsx("div",{className:"model-build-dataset-step",children:e.jsxs("div",{className:"model-build-existing-dataset",children:[e.jsxs("div",{className:"model-build-field",children:[e.jsx("span",{children:"Taskset revision"}),e.jsx(Ie,{label:"Taskset revision",value:l?.id??"",options:[{value:"",label:i.length?"Select a Taskset":"No Tasksets yet",disabled:i.length===0},...i.map(y=>({value:y.id,label:`${y.name} · r${y.revision} · ${y.readiness?.ready?"ready":"needs work"}`}))],onChange:y=>{const w=i.find(R=>R.id===y);w&&m(w)}})]}),e.jsx("button",{className:"training-button secondary",type:"button",onClick:g,children:a.datasetMode==="build"?"Continue building Taskset":"Build a Taskset"})]})})]}):t==="method"?e.jsxs("section",{className:"model-build-section",children:[e.jsx("div",{className:"model-build-section-heading",children:e.jsx("h2",{children:"Choose a training method"})}),e.jsx("div",{className:"model-build-method-grid",children:r.map(y=>e.jsxs("button",{className:a.method===y.method?"model-build-method selected":"model-build-method",type:"button",disabled:!y.available,title:y.available?void 0:y.reason,onClick:()=>{s(w=>({...w,method:y.method,runPreset:"standard",recipe:null,updatedAt:new Date().toISOString()})),n("configuration")},children:[e.jsxs("span",{children:[e.jsx("strong",{children:y.method.toUpperCase()}),e.jsx("em",{children:y.state})]}),e.jsx("small",{children:y.reason}),e.jsx("span",{className:"model-build-method-targets","aria-label":"Execution targets",children:y.executionTargets.map(w=>e.jsx("span",{"aria-label":`${w.label}: ${w.available?"available":w.reason}`,className:w.available?"model-build-target-pill available":"model-build-target-pill unavailable",title:w.available?void 0:w.reason,children:w.label},w.id))}),e.jsx("span",{className:"training-choice-indicator","aria-hidden":"true"})]},y.method))})]}):e.jsxs("section",{className:"model-build-section",children:[e.jsx("div",{className:"model-build-section-heading",children:e.jsxs("div",{children:[e.jsx("h2",{children:"Choose a model"}),e.jsx("p",{children:"Select the starting model and where it will train."})]})}),l&&(a.method==="sft"||a.method==="dpo"||a.method==="grpo"||a.method==="ppo")?e.jsx($i,{baseModelCandidates:o,connection:c,taskset:l,modelId:a.modelId,destinations:h,initialMethod:a.method,preferredBaseModel:a.baseModel,busy:["prepare-training","prepare-model-run","start-prepared-training","start-training","start-model-run"].includes(u.busyAction??""),busyAction:u.busyAction,presentation:"embedded",hideActions:!0,runControlId:Xi,runPreset:a.runPreset??"standard",hideMethodTabs:!0,approvalPresentation:"dialog",configurationContent:e.jsxs("details",{className:"model-run-options",children:[e.jsxs("summary",{children:[e.jsx("span",{children:"Training configuration"}),e.jsx("strong",{children:Mn(a.method,a.runPreset)?.label??"Recommended"})]}),e.jsxs("div",{className:"model-build-field",children:[e.jsx("span",{children:"Training budget"}),e.jsx(Ie,{label:"Training budget",value:a.runPreset??"standard",options:Jn(a.method).map(y=>({value:y.id,label:y.label})),onChange:y=>s(w=>({...w,runPreset:y,recipe:null,updatedAt:new Date().toISOString()}))}),e.jsx("small",{children:Mn(a.method,a.runPreset)?.description??"Use Taskset-aware recommended limits."})]}),a.destinationId==="openpond_managed"?e.jsxs("div",{className:"model-build-field",children:[e.jsx("span",{children:"Rollout execution"}),e.jsx(Ie,{label:"Rollout execution",value:a.managedRolloutPlacement??"local",options:[{value:"local",label:"This desktop"},{value:"remote",label:"Hosted Sandboxes"}],onChange:y=>s(w=>({...w,managedRolloutPlacement:y==="remote"?"remote":"local",updatedAt:new Date().toISOString()}))}),e.jsx("small",{children:"This desktop keeps local integrations and provider credentials on this device. Hosted Sandboxes can run unattended."})]}):null]}),onReadinessChange:S,onConfigurationChange:x,onClose:()=>{},onOpenProviderSettings:j,onPrepare:(y,w,R)=>u.actions.prepareTraining({modelId:a.modelId,tasksetId:l.id,destinationId:y,recipe:w,exportApproved:R.exportApproved,retentionDays:R.retentionDays,region:R.region}),onConfirmPrepared:async(y,w)=>await u.actions.startPreparedTraining({planId:y.plan.id,bundleId:y.bundle.id,maximumCostUsd:w})?(await u.actions.saveModelRunDraft({...a,status:"launched",updatedAt:new Date().toISOString()}),await b(a.modelId,l.id),!0):!1,onStart:async(y,w,R)=>await u.actions.startTraining({modelId:a.modelId,tasksetId:l.id,destinationId:y,recipe:w,...R})?(await u.actions.saveModelRunDraft({...a,status:"launched",updatedAt:new Date().toISOString()}),await b(a.modelId,l.id),!0):!1},`${l.id}:${l.revision}:${a.method}:${a.runPreset}`):e.jsx("div",{className:"model-build-empty",children:"Choose a Taskset and training method to select a model."})]})]})}function An({connection:t,initialObjective:n,initialModelId:a,initialName:s,initialDraftId:l,initialTasksetId:r,profileId:i,training:o,onCancel:h,onFinished:c,onNameChange:u,onSectionChange:v,onSaved:m,renderDatasetBuilder:g,onOpenProviderSettings:S}){const x=o.payload,j=d.useMemo(()=>x?.modelRunDrafts.find(I=>(I.status==="draft"||I.status==="ready_to_run")&&I.id===l)??null,[l,x?.modelRunDrafts]),b=x?.modelProjects.find(I=>I.id===a)??null,y=x?.tasksets.find(I=>I.id===r)??null,w=d.useMemo(()=>!a||l?null:[...x?.modelRunDrafts??[]].filter(I=>I.modelId===a&&I.status==="launched"&&x?.tasksets.some(L=>L.id===I.tasksetRef?.id&&L.revision===I.tasksetRef.revision&&L.contentHash===I.tasksetRef.contentHash)).sort((I,L)=>L.updatedAt.localeCompare(I.updatedAt))[0]??null,[l,a,x?.modelRunDrafts,x?.tasksets]),R=d.useRef(null);R.current||(R.current=b??Kn(i,n,a,s??Gn(x?.modelProjects??[])));const[f,z]=d.useState(R.current),p=d.useRef(null);if(!p.current){const I=j??(w?Fi(w):zi(i,R.current.id));p.current=y?Cn(I,y):I}const[k,E]=d.useState(p.current),[Q,$]=d.useState(()=>Bi(p.current)),[P,J]=d.useState(p.current.datasetMode==="build"&&!p.current.tasksetRef),[V,Y]=d.useState(j&&b?$t(b,j):""),{confirmAction:M,confirmDialog:K,resolveConfirmDialog:B}=pa(),[G,ae]=d.useState({ready:!1,reason:"Select a Taskset.",actionLabel:"Run"}),[X,ue]=d.useState({exportApproved:!0,maximumCostUsd:0,retentionDays:null,region:null}),F=x?.tasksets.find(I=>I.id===k.tasksetRef?.id&&I.revision===k.tasksetRef.revision&&I.contentHash===k.tasksetRef.contentHash)??null,se=d.useMemo(()=>Ki(F,x?.destinations??[]),[F,x?.destinations]),Z=$t(f,k)!==V,N=!!o.busyAction,U=Vi(f,k,F,G),O=!N&&U===null;d.useEffect(()=>{v?.(P?"dataset":"run")},[P,v]),d.useEffect(()=>{u?.(f.name)},[u,f.name]),d.useEffect(()=>{if(!Z)return;const I=L=>{L.preventDefault(),L.returnValue=""};return window.addEventListener("beforeunload",I),()=>window.removeEventListener("beforeunload",I)},[Z]),d.useEffect(()=>{!k.method||se.find(L=>L.method===k.method)?.available||E(L=>({...L,method:null,recipe:null,runPreset:null,baseModel:null,destinationId:null,updatedAt:new Date().toISOString()}))},[k.method,se]),d.useEffect(()=>{!k.method||k.runPreset||E(I=>({...I,runPreset:"standard",updatedAt:new Date().toISOString()}))},[k.method,k.runPreset]);const ee=d.useCallback(I=>{ue(I.approval),E(L=>({...L,baseModel:I.baseModel,method:L.method??I.method,destinationId:I.destinationId,recipe:I.recipe,updatedAt:new Date().toISOString()}))},[]),W=d.useCallback(I=>ae(I),[]);async function de(I=!0){const L=new Date().toISOString(),te={...f,updatedAt:L},C=await o.actions.saveModelProject(te);if(!C)return null;const D={...k,status:U===null?"ready_to_run":"draft",updatedAt:L},T=await o.actions.saveModelRunDraft(D);return T?(z(C),E(T),Y($t(C,T)),I&&await m?.(T.modelId),T):null}async function le(){Z&&!await M({title:"Discard run setup?",body:"Your Model and run setup changes will be discarded.",confirmLabel:"Discard",cancelLabel:"Keep editing",tone:"danger"})||h()}async function ce(){if(!O||!F)return;const I=await de(!1);if(!I)return;const L=await o.actions.prepareModelRun(I.id,{maximumSpendUsd:X.maximumCostUsd,retentionDays:X.retentionDays});!L||!await M({title:"Review and start training",body:Hi(L),confirmLabel:L.quoteUsd?`Approve up to $${(L.maximumSpendUsd??L.quoteUsd).toFixed(2)} and run`:"Start exact run",cancelLabel:"Back"})||!await o.actions.startModelRun(I.id,{maximumSpendUsd:X.maximumCostUsd,retentionDays:X.retentionDays,exportApproved:X.exportApproved})||await c(I.modelId,F.id)}function pe(I){J(!1),$("method"),E(L=>Cn(L,I))}return P?e.jsxs("main",{className:"model-build-page model-build-dataset-page","aria-label":"New Taskset",children:[e.jsxs("header",{className:"model-build-header",children:[e.jsx("div",{children:e.jsx("h1",{children:"New Taskset"})}),e.jsx("button",{className:"training-button secondary",type:"button",onClick:()=>{J(!1),E(I=>({...I,datasetMode:null,updatedAt:new Date().toISOString()}))},children:"Back to run setup"})]}),g(I=>{const L=x?.tasksets.find(te=>te.id===I);L?pe(L):o.refresh().then(te=>{const C=te?.tasksets.find(D=>D.id===I);C&&pe(C)})},()=>{J(!1),E(I=>({...I,datasetMode:"existing",tasksetRef:null,updatedAt:new Date().toISOString()}))})]}):e.jsxs(e.Fragment,{children:[e.jsxs("main",{className:"model-build-page","aria-label":"Run setup",children:[e.jsx(mi,{project:f,persisted:!!b,busy:N,dirty:Z,canRun:O,pageReason:U,actionLabel:G.actionLabel,onProjectChange:z,onCancel:()=>{le()},onSave:()=>{de()},onLaunch:()=>{ce()}}),e.jsx(Qi,{activeStep:Q,onStepChange:$,draft:k,setDraft:E,selectedTaskset:F,methodCards:se,tasksets:x?.tasksets??[],baseModelCandidates:x?.baseModelCandidates??[],destinations:x?.destinations??[],connection:t,training:o,canRun:O,onSelectTaskset:pe,onOpenDatasetBuilder:()=>{E(I=>({...I,datasetMode:"build",tasksetRef:null,updatedAt:new Date().toISOString()})),J(!0)},onLaunchStateChange:W,onConfigurationChange:ee,onOpenProviderSettings:S,onFinished:c})]}),e.jsx(ga,{state:K,onResolve:B})]})}function Yi({account:t,closeDetailKind:n,closeDetailRequestId:a,onAnswerQuestion:s,onApplyCandidate:l,onApprove:r,onCancel:i,candidateReview:o,onCandidateReviewChange:h,onDetailOpenChange:c,onSkillSelectionChange:u,onNewModel:v,onOpenPullRequest:m,onOpenCandidateFiles:g,onOpenRunConversation:S,onPause:x,onReconcilePullRequest:j,onRejectCandidate:b,onResume:y,onRevise:w,profileView:R,training:f}){const z=R.payload?.profile??null,p=z?.activeProfile??"default",k=Oa({connection:R.connection,profileId:p});sn(k.error),sn(f.training.error);const E=d.useMemo(()=>li(f.training.payload),[f.training.payload]),Q=d.useMemo(()=>k.runs.filter(C=>C.target.kind==="agent"&&["ready_local","released","published_hosted"].includes(C.state)).map(C=>`${C.id}:${C.revision}:${C.state}`).sort().join("|"),[k.runs]),[$,P]=d.useState(()=>typeof window>"u"?"models":ln(window.location.search)),[J,V]=d.useState(null),[Y,M]=d.useState(null),[K,B]=d.useState(!1),[G,ae]=d.useState(null),[X,ue]=d.useState("run"),[F,se]=d.useState(null),[Z,N]=d.useState(null),U=d.useMemo(()=>Ln({profile:z,training:f.training.payload,runs:k.runs}),[k.runs,z,f.training.payload]),O=d.useMemo(()=>U.filter(C=>C.kind==="model"),[U]),ee=O.find(C=>C.key===J)??null;d.useEffect(()=>{if(!R.connection)return;let C=!1;return qe.bootstrap(R.connection).then(D=>{C||R.onPayload(D)}).catch(D=>{C||R.onError(D instanceof Error?D.message:String(D))}),()=>{C=!0}},[R.connection,R.onError,R.onPayload]),d.useEffect(()=>{const C=()=>{V(null),M(null),P(ln(window.location.search))};return window.addEventListener("popstate",C),window.addEventListener(Mt,C),()=>{window.removeEventListener("popstate",C),window.removeEventListener(Mt,C)}},[]),d.useEffect(()=>{const C=fa(window.location.search,$),D=`${window.location.pathname}${C}${window.location.hash}`,T=`${window.location.pathname}${window.location.search}${window.location.hash}`;D!==T&&(window.history.replaceState(window.history.state,"",D),window.dispatchEvent(new Event(Mt)))},[$]),d.useEffect(()=>{E&&k.refresh()},[k.refresh,E]),d.useEffect(()=>{if(!Q||!R.connection)return;let C=!1;return qe.bootstrap(R.connection).then(D=>{C||R.onPayload(D)}).catch(D=>{C||R.onError(D instanceof Error?D.message:String(D))}),()=>{C=!0}},[Q,R.connection,R.onError,R.onPayload]),d.useEffect(()=>{J&&!U.some(C=>C.key===J)&&V(null)},[J,U]),d.useEffect(()=>{u(null)},[u]),d.useEffect(()=>{if(!(a<=0)){if(V(null),M(null),n==="dataset"){P("tasksets");return}P("models")}},[n,a]),d.useEffect(()=>{se(null)},[f.launchRequest?.id]),d.useEffect(()=>{if(f.launchRequest){c({kind:"model",kindLabel:"Models",kindOnSelect:()=>document.getElementById("model-run-editor-cancel")?.click(),workproductLabel:null,segments:[{label:F??"Model"},...X==="dataset"?[{label:"New Taskset"}]:[]]});return}if($==="tasksets"){c(Y?{kind:"dataset",kindLabel:"Tasksets",workproductLabel:[...f.training.payload?.tasksets??[],...f.training.payload?.modelTasksets??[]].find(C=>C.id===Y)?.name??"Taskset",segments:[]}:null);return}if($!=="models"){c(null);return}ee||c(null)},[$,c,ee,Y,X,F,f.launchRequest,f.training.payload?.modelTasksets,f.training.payload?.tasksets]),d.useEffect(()=>()=>c(null),[c]);function W(C){const D=U.find(me=>me.kind==="model"&&me.id===C);if(!D)return;const T=Pe(D,k.runs,f.training.payload),be=T.find(me=>me.current)??T.find(me=>me.lineage.promotable)??null;be?.taskset&&f.onChatWithModel(Vt({modelId:be.lineage.id,taskset:be.taskset}))}function de(){ae("source"),M(null),P("tasksets")}function le(){ae(null)}function ce(C){const D=C?`Help me improve the ${C.name} Taskset.`:"Help me create a Taskset.";R.onSkillCommand?.(`$openpond-taskset-authoring ${D}`,"openpond"),le()}function pe(C){ae(null),V(null),P("tasksets"),M(C)}function I(C){ue("run"),V(null),M(null),P("models"),v(C)}async function L(C){const D={...Kn(p,C.description,void 0,C.name),defaultBaseModel:C.defaultBaseModel},T=await f.training.actions.saveModelProject(D);return T?(B(!1),P("models"),V(Ne("model",T.id)),R.onToast?.(`${T.name} created.`,"success"),!0):!1}const te=d.useCallback(()=>V(null),[]);return e.jsxs(ws,{activeTab:$,showHeader:!f.launchRequest&&!ee&&!Y,onCreateDataset:de,onCreateModel:()=>B(!0),children:[$==="tasksets"?e.jsx(Xs,{defaultModel:f.defaultModel,runs:k.runs,selectedId:Y,state:f.training.payload,training:f.training,onToast:(C,D)=>R.onToast?.(C,D)??0,onSelectedIdChange:M,onImproveInChat:C=>ce(C),onTrainModel:I,onOpenFiles:C=>{f.onSelectedTasksetIdChange(C),f.onOpenTasksetFiles()}}):$==="serving"?e.jsx(ri,{state:f.training.payload}):$==="usage"?e.jsx(ui,{account:t,connection:R.connection,onError:R.onError,onOpenSourceSession:S}):f.launchRequest&&f.training.payload?e.jsx(An,{connection:R.connection,initialObjective:f.launchRequest.objective,initialTasksetId:f.launchRequest.initialTasksetId,profileId:p,training:f.training,onCancel:()=>{f.onLaunchHandled(f.launchRequest.id)},onFinished:async(C,D)=>{f.onSelectedTasksetIdChange(D),f.onDetailTasksetIdChange(D),f.onLaunchHandled(f.launchRequest.id),V(Ne("model",C)),P("models"),await k.refresh()},onNameChange:se,onSectionChange:ue,onSaved:async C=>{f.onLaunchHandled(f.launchRequest.id),V(Ne("model",C)),P("models")},onOpenProviderSettings:f.onOpenProviderSettings,renderDatasetBuilder:(C,D)=>e.jsx(wn,{onOpenChat:()=>ce(),onUseExistingDataset:D})}):ee?e.jsx(As,{connection:R.connection,profile:z,runs:k.runs,training:f.training,workproduct:ee,onAnswerQuestion:s,onApplyCandidate:l,onApprove:r,onCancel:i,candidateReview:o,onCandidateReviewChange:h,onChatWithModel:f.onChatWithModel,onOpenPullRequest:m,onOpenCandidateFiles:g,onOpenConversation:S,onClose:te,onLocationChange:c,onRenameAgent:()=>{},onOpenDataset:C=>{V(null),M(C),P("tasksets")},onPause:x,onReconcilePullRequest:j,onRejectCandidate:b,onResume:y,onRevise:w,renderModelRunEditor:({initialTasksetId:C,draftId:D,modelId:T,modelName:be,onCancel:me,onFinished:ye,onSectionChange:Ee})=>e.jsx(An,{connection:R.connection,initialModelId:T,initialName:be,initialDraftId:D??void 0,initialObjective:ee.description,initialTasksetId:C??void 0,profileId:p,training:f.training,onCancel:me,onFinished:async()=>{await k.refresh(),await ye()},onSectionChange:Ee,onOpenProviderSettings:f.onOpenProviderSettings,renderDatasetBuilder:(xe,Ce)=>e.jsx(wn,{onOpenChat:()=>ce(),onUseExistingDataset:Ce})}),onStartAgentChange:()=>{},onToast:f.onToast}):e.jsx(oi,{activeProfileId:p,items:O,loading:f.training.loading&&!O.length,runs:k.runs,state:f.training.payload,onSelect:V,onUseModel:W}),K?e.jsx(ei,{baseModelCandidates:f.training.payload?.baseModelCandidates??[],busy:f.training.busyAction==="save-model-project",initialName:Gn(f.training.payload?.modelProjects??[]),onClose:()=>B(!1),onCreate:L,onManageModels:()=>{B(!1),f.onOpenComputeSettings()}}):null,G==="source"?e.jsx(_a,{onClose:le,onSelect:C=>{if(C==="build"){ce();return}ae(C)}}):null,G==="huggingface"?e.jsx(Ea,{onBack:()=>ae("source"),onClose:le,onImported:async C=>{await f.training.refresh(),pe(C)},onOpenDatasetStorageSettings:()=>{ae(null),f.onOpenDatasetStorageSettings()},training:f.training}):null,Z?(()=>{const C=f.training.payload?.models.find(T=>T.id===Z),D=f.training.payload?.tasksets.find(T=>T.id===C?.tasksetId);return!C||!D?null:e.jsx($n,{lineage:C,taskset:D,training:f.training,onChat:f.onChatWithModel,onClose:()=>N(null)})})():null]})}function wn({onOpenChat:t,onUseExistingDataset:n}){return e.jsxs("section",{className:"training-run-placeholder",children:[e.jsx("h3",{children:"Build the Taskset in full Chat"}),e.jsx("p",{children:"The Taskset authoring Skill gathers tasks and data conversationally, then uses typed actions to materialize graders, evaluations, and the executable Taskset. No training starts from this flow."}),e.jsxs("div",{className:"labs-dataset-detail-actions",children:[e.jsx("button",{className:"training-button",type:"button",onClick:t,children:"Open Taskset Builder"}),n?e.jsx("button",{className:"training-button secondary",type:"button",onClick:n,children:"Use existing Taskset"}):null]})]})}const cl=Object.freeze(Object.defineProperty({__proto__:null,LabsRoute:Yi},Symbol.toStringTag,{value:"Module"}));export{re as L,Pe as a,Je as b,ut as c,Ve as d,Gt as e,cl as f,Te as l,dl as m};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.labs-route{display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:var(--bg);color:var(--text)}.main-pane.page-active>.labs-route{grid-column:1;grid-row:1}.main-pane.page-active:has(>.labs-route){align-content:stretch;overflow:hidden}.main-pane.page-active.diff-open>.labs-route{max-height:100%}.labs-header{display:flex;align-items:center;justify-content:flex-end;gap:16px;min-width:0;padding:8px 28px 0;background:color-mix(in srgb,var(--bg) 94%,var(--panel))}.labs-header-navigation,.labs-header-actions{display:flex;align-items:center;gap:8px;min-width:0}.labs-create-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:28px;flex:0 0 auto;padding:0 9px;border:1px solid #fff;border-radius:7px;background:#fff;color:#111;font:inherit;font-size:12px;font-weight:550;cursor:pointer}.labs-create-button:hover{background:#f1f1f1;border-color:#f1f1f1}.labs-primary-tabs{display:flex;align-items:center;gap:2px;min-width:0}.labs-primary-tabs button,.labs-subtabs button{display:inline-flex;align-items:center;gap:6px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:11px 12px 10px;font:inherit;font-size:12px;cursor:pointer}.labs-primary-tabs button.active,.labs-subtabs button.active{border-bottom-color:var(--text);color:var(--text)}.labs-primary-tabs button span,.labs-subtabs button span{color:var(--muted);font-size:10px}.labs-create-anchor{position:relative}.labs-create-menu{position:absolute;z-index:50;top:calc(100% + 4px);right:0;min-width:174px;border:0;border-radius:8px;background:#1d1d1d;box-shadow:0 14px 36px #0000006b;padding:4px}.labs-create-menu button{display:flex;align-items:center;gap:8px;width:100%;min-height:30px;border:0;border-radius:6px;background:transparent;color:var(--muted-strong);padding:0 9px;text-align:left;text-decoration:none;font-size:13px;cursor:pointer}.labs-create-menu button svg{flex:0 0 auto}.labs-create-menu button:hover,.labs-create-menu button:focus-visible{outline:0;background:#ffffff14;color:var(--text)}.labs-create-menu button:disabled{color:var(--muted);cursor:default;opacity:.62}.labs-create-menu button:disabled:hover,.labs-create-menu button:disabled:focus-visible{background:transparent;color:var(--muted)}.labs-create-menu strong{font-size:inherit;font-weight:400}.labs-create-menu small{display:none}.labs-panel{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:rgba(255,255,255,.24) transparent;scrollbar-width:thin}.labs-flat-body{display:grid;gap:12px;width:min(1180px,calc(100% - 56px));margin-inline:auto;padding:8px 0 56px}.labs-datasets-page{box-sizing:border-box;min-height:100%;align-content:start}.labs-dataset-detail-heading h1{margin:0;font-size:20px}.labs-dataset-detail-heading p{max-width:760px;margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.labs-dataset-detail-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px 0 6px}.labs-dataset-detail-actions{display:flex;align-items:center;gap:8px}.labs-datasets-page>.training-detail-tabs{padding:0}.labs-datasets-page>.training-detail-tabs button:disabled{cursor:not-allowed;opacity:.45}.labs-dataset-heading-spacer{width:31px;height:31px}.labs-back-button{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text);cursor:pointer}.labs-back-button:hover{background:var(--panel-soft)}.labs-datasets-table td:first-child{min-width:320px}.labs-workproduct-link{appearance:none;display:grid;width:100%;min-width:0;gap:3px;border:0;background:transparent;color:var(--text);padding:0;text-align:left;cursor:pointer;font:inherit}.labs-workproduct-link strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.labs-workproduct-link span{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.labs-home-models{display:grid;gap:10px;margin-top:10px;border-top:1px solid var(--border);padding-top:18px}.labs-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.labs-section-heading h2{margin:0;font-size:15px}.labs-section-heading p{margin:3px 0 0;color:var(--muted);font-size:10px}.labs-section-heading>button{border:0;background:transparent;color:var(--muted-strong);padding:3px 0;font:inherit;font-size:11px;cursor:pointer}.labs-section-heading>button:hover{color:var(--text)}.labs-home-profile-controls .account-settings{max-width:none}.labs-home-profile-controls .profile-view{width:100%;justify-self:stretch;gap:0;padding:0}.labs-home-profile-controls .profile-control-panel{padding:2px 0 4px}.labs-training-run-name{display:grid;min-width:260px;gap:3px;padding:4px 0}.labs-training-run-progress-wrap{display:grid;gap:2px;margin-top:2px}.labs-training-run-name>strong{color:var(--text);font-size:12px}.labs-training-run-name>span,.labs-training-run-progress small,.labs-training-run-verdicts{color:var(--muted);font-size:10px;line-height:1.4}.labs-training-run-progress{display:flex;align-items:center;gap:8px}.labs-training-run-progress progress{width:min(180px,45%);height:5px;accent-color:var(--cyan)}.labs-model-baseline-facts{margin-top:12px}.labs-training-run-progress small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.labs-workproduct-toolbar{display:flex;align-items:center;gap:8px}.labs-search{display:flex;align-items:center;flex:1;min-width:0;gap:7px;border:1px solid var(--border);border-radius:7px;background:var(--panel);padding:0 9px;color:var(--muted)}.labs-search input{width:100%;min-width:0;border:0;background:transparent;color:var(--text);padding:8px 0;font:inherit;font-size:12px;outline:0}.labs-workproduct-toolbar select{min-width:130px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);padding:8px 9px;font:inherit;font-size:12px}.labs-workproduct-toolbar .dropdown-select{min-width:160px}.labs-workproduct-toolbar .dropdown-trigger{background:var(--panel)}.labs-table-empty{display:flex;min-height:88px;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--muted);font-size:12px}.labs-workproducts-table{min-width:860px}.labs-workproducts-table th:first-child{width:8%}.labs-workproducts-table th:nth-child(2){width:32%}.labs-workproducts-table th:nth-child(4){width:9%}.labs-workproducts-table th:nth-child(5){width:8%}.labs-workproducts-table th:nth-child(6){width:9%}.labs-workproducts-table td:last-child{text-align:right;color:var(--muted)}.labs-workproducts-table.models-only th:first-child{width:42%}.labs-workproducts-table.models-only th:nth-child(2){width:18%}.labs-workproducts-table.models-only th:nth-child(3),.labs-workproducts-table.models-only th:nth-child(4){width:10%}.labs-workproducts-table.models-only td:first-child{min-width:280px}.labs-workproduct-use{min-height:28px}.labs-compact-button{min-height:28px;padding:5px 8px;font-size:11px}.labs-workproduct-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}.labs-workproduct-training,.labs-workproduct-evals{text-align:center}.labs-workproduct-indicator{display:inline-flex;min-width:28px;align-items:center;justify-content:center;gap:4px;color:var(--muted)}.labs-workproduct-indicator strong{font-size:11px;font-variant-numeric:tabular-nums}.labs-workproduct-indicator.active{color:#68a8dd}.labs-workproduct-indicator.positive{color:#55aa74}.labs-workproduct-indicator.negative{color:#d76b70}.labs-workproduct-indicator.neutral,.labs-workproduct-na{color:var(--muted)}.labs-workproduct-na{font-size:12px}.labs-workproduct-updated{color:var(--muted);font-size:10px;white-space:nowrap}.labs-workproducts-table td:nth-child(2) button{display:grid;gap:3px;border:0;background:transparent;color:var(--text);padding:0;font:inherit;text-align:left;cursor:pointer}.labs-workproducts-table td:nth-child(2) strong{font-size:13px}.labs-workproducts-table td:nth-child(2) span{display:block;max-width:360px;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.labs-workproducts-table code{display:block;max-width:220px;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.labs-workproduct-type{color:var(--muted-strong);font-size:11px;font-weight:600}.labs-status-badge{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:3px 8px;color:#fff;font-size:10px;font-weight:600;line-height:1.25;white-space:nowrap}.labs-status-badge.positive{background:#34784e}.labs-status-badge.info{background:#3f6394}.labs-status-badge.warning{background:#8b681f}.labs-status-badge.negative{background:#91484b}.labs-status-badge.neutral{background:#565861}.labs-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:var(--muted);font-size:11px}.labs-pagination button{border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text);padding:5px 8px;font:inherit;font-size:11px;cursor:pointer}.labs-pagination button:disabled{opacity:.42;cursor:default}.labs-suggestions-page{min-height:100%}.labs-subtabs{display:flex;gap:2px;padding:0 28px}.labs-suggestions-body{overflow:auto}.labs-suggestions-body .training-page-body{width:min(1180px,calc(100% - 56px));margin-inline:auto}.labs-workproduct-detail{padding-top:22px}.labs-workproduct-detail-header{align-items:center}.labs-workproduct-detail-header>div:first-child{display:grid;min-width:0;gap:8px}.labs-workproduct-name-row{display:flex;align-items:center;min-width:0;gap:10px}.labs-workproduct-name-row h1{min-width:0}.labs-workproduct-header-actions,.labs-eval-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}.labs-rename-backdrop{position:fixed;z-index:100;inset:0;display:flex;align-items:center;justify-content:center;background:#050609ad;padding:24px}.labs-rename-dialog{width:min(440px,100%);overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--panel);box-shadow:0 22px 70px #0000006b}.labs-rename-dialog>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:11px;border-bottom:1px solid var(--border);padding:16px 17px}.labs-rename-dialog h2,.labs-rename-dialog p{margin:0}.labs-rename-dialog h2{color:var(--text);font-size:14px}.labs-rename-dialog header p{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}.labs-rename-dialog-icon{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:8px;background:#6291d124;color:#7da9e4}.labs-rename-dialog header button{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.labs-rename-dialog header button:hover:not(:disabled){background:#ffffff12;color:var(--text)}.labs-rename-dialog form{display:grid;gap:14px;padding:17px}.labs-rename-dialog form>label{display:grid;gap:7px;color:var(--muted-strong);font-size:11px;font-weight:650}.labs-rename-dialog input{width:100%;min-width:0;border:1px solid var(--border);border-radius:7px;outline:none;background:var(--bg);color:var(--text);padding:9px 10px;font:inherit;font-size:12px}.labs-rename-dialog input:focus{border-color:#5c8cc9;box-shadow:0 0 0 2px #5c8cc92e}.labs-rename-agent-id{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:10px}.labs-rename-agent-id code{overflow:hidden;color:var(--muted-strong);text-overflow:ellipsis;white-space:nowrap}.labs-rename-error{color:#e47b7f;font-size:11px}.labs-rename-dialog footer{display:flex;justify-content:flex-end;gap:8px}.labs-rename-dialog footer button{min-height:30px;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--text);padding:0 12px;font:inherit;font-size:11px;font-weight:650;cursor:pointer}.labs-rename-dialog footer button[type=submit]{border-color:#4e7db9;background:#416da3;color:#fff}.labs-rename-dialog button:disabled{cursor:default;opacity:.5}.labs-run-decision .composer-create-strip{margin:0}.labs-run-decision{display:grid;gap:10px}.labs-run-decision-actions{display:flex;justify-content:flex-end;gap:7px}.labs-status-dot{width:9px;height:9px;flex:0 0 auto;border-radius:999px;background:#565861}.labs-status-dot.small{width:7px;height:7px;margin-left:1px}.labs-status-dot.positive{background:#48a868}.labs-status-dot.info{background:#6291d1}.labs-status-dot.warning{background:#c89b3c}.labs-status-dot.negative{background:#c45e62}.labs-dataset-build-editor{display:flex;min-height:100%;flex-direction:column}.labs-dataset-build-back{align-self:flex-start;margin-top:16px}.labs-dataset-builder-workspace{display:flex;min-height:520px;flex:1;flex-direction:column;padding-top:12px}.labs-dataset-builder-workspace>.training-dialog-scroll-body,.labs-dataset-builder-workspace>.training-evidence-required>.training-dialog-scroll-body{max-height:none;overflow:visible}.labs-dataset-builder-workspace>.training-dialog-actions,.labs-dataset-builder-workspace>.training-evidence-required>.training-dialog-actions{margin-top:24px;border-top:1px solid var(--border);padding-top:16px}.labs-dataset-builder-workspace .training-source-options{max-height:440px}.labs-dataset-grader-list{display:grid;border:1px solid var(--border);border-radius:8px;overflow:hidden}.labs-dataset-grader-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 12px;border-bottom:1px solid var(--border)}.labs-dataset-grader-list>div:last-child{border-bottom:0}.labs-dataset-grader-list strong{font-size:12px}.labs-dataset-grader-list small{color:var(--muted);font-size:10px}.labs-models-table{min-width:660px}.labs-models-table th:first-child{width:42%}.labs-models-table th:nth-child(2),.labs-models-table th:nth-child(3){width:18%}.labs-models-table th:nth-child(4){width:12%}.labs-models-table td:nth-child(4){color:var(--muted-strong);font-size:11px}.labs-model-table-summary{display:grid;justify-items:start;gap:5px}.labs-model-table-summary>span{color:var(--muted);font-size:10px;white-space:nowrap}.labs-model-run-list-actions{display:flex;justify-content:center;padding-top:2px}.labs-dataset-advanced-details{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.labs-dataset-advanced-details summary{width:max-content;color:var(--muted-strong);font-size:11px;font-weight:650;cursor:pointer}.labs-dataset-advanced-details[open] summary{margin-bottom:12px}.labs-dataset-advanced-details .training-button{margin-top:12px}.labs-model-create-dialog textarea,.labs-model-create-dialog select{width:100%;min-width:0;border:1px solid var(--border);border-radius:7px;outline:none;background:var(--bg);color:var(--text);padding:9px 10px;font:inherit;font-size:12px}.labs-model-create-dialog>header{grid-template-columns:minmax(0,1fr) auto;border-bottom:0;padding-bottom:4px}.labs-model-create-dialog{overflow:visible}.labs-model-create-field{display:grid;gap:7px;color:var(--muted-strong);font-size:11px;font-weight:650}.labs-model-create-select-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:7px}.labs-model-create-select-row .dropdown-select{width:100%}.labs-model-create-select-row .dropdown-trigger{background:var(--bg)}.labs-model-create-select-row .dropdown-menu{right:auto;left:0;width:100%;min-width:100%}.labs-model-create-add{display:inline-flex;width:34px;min-height:34px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--muted-strong);font:inherit;font-size:17px;font-weight:400;cursor:pointer}.labs-model-create-add:hover:not(:disabled){background:#ffffff0f;color:var(--text)}.labs-model-create-dialog textarea{resize:vertical;line-height:1.45}.labs-model-create-dialog label>span,.labs-model-create-field>span{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.labs-model-create-dialog label small,.labs-model-create-field small{color:var(--muted);font-size:9px;font-weight:500}.labs-model-create-dialog textarea:focus{border-color:var(--border);box-shadow:none}.labs-model-create-dialog footer button[type=submit]{border-color:#fff;background:#fff;color:#111}.labs-model-create-dialog footer button[type=submit]:hover:not(:disabled){border-color:#f1f1f1;background:#f1f1f1}.labs-serving-page,.labs-usage-page{display:grid;gap:28px}.labs-operational-section{display:grid;gap:12px;min-width:0}.labs-operational-section>header,.labs-operational-header{display:flex;align-items:end;justify-content:space-between;gap:16px}.labs-operational-section h2,.labs-operational-header h2{margin:0;color:var(--text);font-size:14px;font-weight:560}.labs-operational-section p,.labs-operational-header p{max-width:720px;margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.labs-serving-table,.labs-managed-serving-table{min-width:760px}.labs-operational-section>.training-table-wrap{min-width:0;max-width:100%;contain:inline-size}.labs-serving-model{display:grid;gap:3px}.labs-serving-model strong{color:var(--text);font-size:12px;font-weight:580}.labs-serving-model span{color:var(--muted);font-size:10px}.labs-usage-page>.usage-settings{width:100%;max-width:none;padding:0 0 48px}@media(max-width:640px){.labs-operational-section>header,.labs-operational-header{align-items:start;flex-direction:column}}.labs-change-page{display:grid;gap:20px;padding-top:18px}.labs-change-index,.labs-change-run-detail{display:grid;gap:14px;padding-top:18px}.labs-change-actions{display:flex;flex:0 0 auto;align-items:center;gap:7px}.labs-change-facts{display:grid;grid-template-columns:130px 130px minmax(0,1fr);margin:0;border-block:1px solid var(--border)}.labs-change-facts>div{display:grid;min-width:0;gap:4px;padding:12px 14px;border-right:1px solid var(--border)}.labs-change-facts>div:first-child{padding-left:0}.labs-change-facts>div:last-child{border-right:0}.labs-change-facts dt{color:var(--muted);font-size:10px}.labs-change-facts dd{margin:0;overflow:hidden;font:11px/1.4 monospace;text-overflow:ellipsis;white-space:nowrap}.labs-change-message,.labs-change-empty{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;padding:11px 12px;color:var(--muted);font-size:12px}.labs-change-message.negative,.labs-change-empty.negative{border-color:color-mix(in srgb,#c45e62 48%,var(--border));color:#db7779}.labs-change-timeline{position:relative;display:grid;gap:14px}.labs-change-timeline:before{position:absolute;z-index:0;top:0;bottom:0;left:7.5%;width:1px;background:var(--border);content:""}.labs-change-timeline-item{position:relative;z-index:1}.labs-change-card{display:grid;overflow:hidden;min-width:0;border:1px solid var(--border);border-radius:9px;background:var(--panel)}.labs-change-card-header,.labs-change-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px}.labs-change-card-header{padding-bottom:4px}.labs-change-card-header>span:last-child{color:var(--muted);font-size:10px}.labs-change-card-body{display:grid;gap:6px;padding:14px 13px}.labs-change-card-body h3{margin:0;font-size:14px;line-height:1.45}.labs-change-card-body p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.labs-change-card-footer{padding-top:4px}.labs-change-card-footer.end{justify-content:flex-end}.labs-change-timeline-label{color:var(--muted);font-size:10px}.labs-change-footer-status{display:flex;align-items:center;gap:7px;color:var(--muted-strong);font-size:11px}.labs-change-evals{display:grid}.labs-change-eval{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;padding:0 13px;border-bottom:1px solid var(--border)}.labs-change-eval:last-child{border-bottom:0}.labs-change-eval>div{display:grid;min-width:0;gap:3px}.labs-change-eval strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.labs-change-eval span{color:var(--muted);font-size:10px}.labs-change-evals .labs-change-empty{border:0;border-radius:0}.labs-eval-receipts{display:grid;gap:8px}.labs-agent-change-history{min-width:700px}.labs-agent-change-history th:first-child{width:48%}.labs-agent-change-history td:first-child button{display:grid;gap:3px;width:100%;border:0;background:transparent;color:var(--text);padding:0;font:inherit;text-align:left;cursor:pointer}.labs-agent-change-history td:first-child strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.labs-agent-change-history td:first-child span{color:var(--muted);font-size:10px}.labs-inline-facts{display:flex;gap:28px;flex-wrap:wrap;margin:0}.labs-inline-facts>div{display:grid;gap:3px}.labs-inline-facts dt{color:var(--muted);font-size:10px}.labs-inline-facts dd{margin:0;max-width:420px;overflow-wrap:anywhere;font-size:12px;font-weight:560}.labs-method-tabs{display:inline-flex;gap:3px;margin:0 0 18px;border:1px solid var(--border);border-radius:8px;background:var(--panel-soft);padding:3px}.labs-method-tabs button{display:flex;align-items:baseline;gap:8px;min-width:150px;border:0;border-radius:5px;background:transparent;color:var(--muted);padding:8px 11px;font:inherit;font-size:12px;text-align:left;cursor:pointer}.labs-method-tabs button:hover{color:var(--text)}.labs-method-tabs button.active{background:var(--panel);color:var(--text);box-shadow:inset 0 0 0 1px var(--border)}.labs-method-tabs button strong{margin-left:auto;color:inherit;font-size:10px}.labs-dataset-summary,.labs-eval-copy,.labs-version-storage-copy{margin-top:0;margin-bottom:16px}.labs-dataset-method-readiness{display:grid;gap:9px;margin-top:18px;border-top:1px solid var(--border);padding-top:14px}.labs-dataset-method-readiness ul{display:grid;gap:5px;margin:0;padding-left:18px;color:var(--muted);font-size:11px;line-height:1.45}.labs-dataset-tabs{display:flex;width:fit-content}.labs-dataset-tabs button{min-width:132px}.labs-dataset-tabs button>span{margin-left:auto;color:var(--muted);font-size:10px}.labs-dataset-examples{display:grid;gap:8px}.labs-dataset-example{overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--panel-soft)}.labs-dataset-example>summary{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;list-style:none}.labs-dataset-example>summary::-webkit-details-marker{display:none}.labs-dataset-example[open]>summary{background:var(--panel)}.labs-dataset-example-index{color:var(--muted);font:10px/1 var(--mono)}.labs-dataset-example-title{display:grid;min-width:0;gap:4px}.labs-dataset-example-title strong{overflow:hidden;font-size:12px;font-weight:560;text-overflow:ellipsis;white-space:nowrap}.labs-dataset-example-title small{color:var(--muted);font-size:10px}.labs-dataset-example-body{display:grid;gap:15px;border-top:1px solid var(--border);padding:14px}.labs-dataset-example-body section{display:grid;gap:6px}.labs-dataset-example-body h3,.labs-version-promotion>h3{margin:0;font-size:11px}.labs-dataset-example-body p{margin:0;color:var(--muted-strong);font-size:12px;line-height:1.55}.labs-dataset-example-body pre{max-height:180px;overflow:auto;margin:0;border:1px solid var(--border);border-radius:6px;background:var(--bg);padding:9px 10px;color:var(--text);font:10px/1.5 var(--mono);white-space:pre-wrap}.labs-dataset-example-advanced>summary,.labs-run-technical>summary{color:var(--muted);font-size:11px;cursor:pointer}.labs-dataset-example-advanced .training-configuration-list,.labs-run-technical .training-configuration-list{margin-top:10px}.labs-run-technical{margin-top:14px;border-top:1px solid var(--border);padding-top:10px}.labs-eval-setup>summary{color:var(--muted-strong);font-size:12px;cursor:pointer}.labs-eval-setup .training-table-wrap{margin-top:12px}.labs-version-storage{display:grid;gap:4px;max-width:280px}.labs-version-name{min-width:92px}.labs-version-name strong,.labs-version-name small{display:block}.labs-version-name small{margin-top:3px;color:var(--muted);font-size:10px}.labs-version-storage code{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.labs-version-promotion{display:grid;gap:12px;margin-top:18px;border-top:1px solid var(--border);padding-top:16px}.labs-detail-copy{margin:14px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.labs-expert-bootstrap-summary{display:grid;gap:12px}.labs-expert-bootstrap-summary>div:first-child{display:flex;align-items:center;gap:10px}.labs-expert-bootstrap-summary p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.labs-expert-bootstrap-dialog{width:min(820px,calc(100vw - 40px));max-height:min(780px,calc(100vh - 40px))}.labs-expert-trajectory-list{display:grid;gap:9px;margin-top:16px}.labs-expert-preview-facts{margin-bottom:4px}.labs-expert-trajectory{overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--panel-soft)}.labs-expert-trajectory>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;cursor:pointer;list-style:none}.labs-expert-trajectory>summary::-webkit-details-marker{display:none}.labs-expert-trajectory>summary>span:first-child{display:grid;gap:3px}.labs-expert-trajectory summary strong{font-size:12px}.labs-expert-trajectory summary small,.labs-expert-approval-note{color:var(--muted);font-size:11px}.labs-expert-trajectory[open]>summary>span:last-child{transform:rotate(90deg)}.labs-expert-trajectory-body{display:grid;gap:14px;border-top:1px solid var(--border);padding:13px}.labs-expert-trajectory-body section{display:grid;gap:6px}.labs-expert-trajectory-body h3{margin:0;font-size:11px}.labs-expert-trajectory-body p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.labs-expert-trajectory-body .training-pills span{border:1px solid var(--border);border-radius:999px;background:var(--panel);padding:3px 7px;color:var(--muted);font-family:var(--mono);font-size:10px}.labs-expert-trajectory-body pre{max-height:260px;overflow:auto;margin:0;border:1px solid var(--border);border-radius:6px;background:var(--bg);padding:9px;color:var(--text);font:10px/1.5 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}.labs-expert-messages>summary{color:var(--muted);font-size:11px;cursor:pointer}.labs-expert-messages pre{margin-top:8px}.labs-expert-bootstrap-dialog .training-dialog-actions{flex-wrap:nowrap}.labs-expert-approval-note{margin-right:auto}.labs-eval-summary{display:grid;gap:14px}.labs-eval-actions .dropdown-select{min-width:160px}.labs-validation-list{margin:14px 0 0;padding-left:18px;color:var(--muted);font-size:11px;line-height:1.5}.labs-activity-table{min-width:720px}.labs-model-eval-table{min-width:680px}.labs-training-error{margin:14px 0 0;color:#db7779;font-size:11px;line-height:1.5;white-space:pre-wrap}.labs-source-evals{display:grid;gap:8px}.labs-source-evals>strong{font-size:12px}.labs-source-evals ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.labs-source-evals li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:0 0 6px}.labs-source-evals code{color:var(--muted);font-size:11px}.labs-source-evals+.labs-source-evals,.labs-source-evals+.training-table-wrap{margin-top:14px}.labs-model-versions-table{min-width:760px}.labs-model-version-index{display:grid;min-width:0;gap:16px}.labs-model-section-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.labs-model-section-intro h2,.labs-model-section-intro p{margin:0}.labs-model-section-intro h2{font-size:16px;font-weight:600}.labs-model-section-intro p,.labs-model-section-intro>span{color:var(--muted);font-size:11px}.labs-model-section-intro p{margin-top:4px}.labs-model-section-intro>span{white-space:nowrap}.labs-model-overview{min-width:0}.labs-workproduct-description{max-width:720px;margin:0;color:var(--muted);font-size:11px;line-height:1.5}.labs-workproduct-detail .training-detail-sections{gap:22px;padding-top:22px}.labs-model-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid var(--border);border-radius:9px;background:var(--border);gap:1px}.labs-model-kpi{display:grid;min-width:0;gap:5px;border:0;background:var(--panel);padding:14px 15px;color:inherit;font:inherit;text-align:left}.labs-model-kpi>span,.labs-model-kpi>small{color:var(--muted);font-size:10px}.labs-model-kpi>strong{overflow:hidden;font-size:17px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.labs-model-kpi>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.labs-model-overview .training-detail-section-panel{border-style:solid;background:var(--panel)}.labs-model-runs-table{min-width:760px}.labs-model-run-draft{background:color-mix(in srgb,#6291d1 6%,var(--panel))}.labs-model-run-draft .labs-version-row-button small{color:#7da9e4}.labs-model-version-detail{display:grid;min-width:0;gap:20px}.labs-model-version-detail .training-detail-section-heading h2{text-decoration:none}.labs-model-version-detail .training-detail-section-panel{border-style:solid;background:var(--panel)}.labs-model-run-summary{display:grid;min-width:0;gap:16px}.labs-run-outcome-card,.labs-run-summary-card{overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.labs-run-outcome-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 19px 16px}.labs-run-title-row{display:flex;align-items:center;gap:10px}.labs-run-title-row h2{margin:0;font-size:18px;font-weight:620}.labs-run-outcome-card>header p{margin:4px 0 0;color:var(--muted);font-size:11px}.labs-run-detail-list dt{color:var(--muted);font-size:10px}.labs-run-detail-list dd{margin:0;overflow-wrap:anywhere}.labs-run-summary-card>header{border-bottom:1px solid var(--border);padding:14px 16px 12px}.labs-run-summary-card>header h3{margin:0;font-size:13px;font-weight:610}.labs-run-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;margin:0;padding:2px 16px}.labs-run-detail-list>div{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);align-items:center;gap:16px;border-bottom:1px solid var(--border);padding:9px 0}.labs-run-detail-list>div:nth-child(odd){border-right:1px solid var(--border);padding-right:14px}.labs-run-detail-list>div:nth-child(2n){padding-left:14px}.labs-run-detail-list>div:nth-last-child(-n+2){border-bottom:0}.labs-run-detail-list dd{font-size:12px;font-weight:540;text-align:right}.labs-run-taskset-link{display:inline-flex;max-width:100%;align-items:center;justify-content:flex-end;gap:4px;border:0;background:transparent;color:var(--text);padding:0;font:inherit;font-weight:560;text-align:right;cursor:pointer}.labs-run-taskset-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.labs-run-taskset-link:hover span{text-decoration:underline;text-underline-offset:2px}.labs-run-taskset-link svg{flex:0 0 auto;color:var(--muted)}.labs-run-detail-tabs{min-width:0}.labs-run-detail-tabs>.training-detail-tabs{padding:0}.labs-run-detail-tab-panel{min-width:0;padding-top:14px}.labs-version-row-button{display:grid;width:100%;gap:2px;border:0;background:transparent;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.labs-version-row-button small{color:var(--muted);font-family:var(--mono);font-size:10px}.labs-version-dataset-link{border:0;background:transparent;padding:0;color:var(--text);font:inherit;text-align:left;cursor:pointer}.labs-version-dataset-link:hover{text-decoration:underline;text-underline-offset:2px}.labs-version-detail-dataset{margin-top:14px}.labs-version-icon-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--muted-strong)}.labs-version-icon-button[aria-pressed=true]{background:var(--panel-soft);color:var(--text)}.labs-new-version-dialog{width:min(640px,calc(100vw - 32px))}.labs-new-version-step{display:flex;align-items:flex-start;gap:10px;margin-top:16px}.labs-new-version-step-number{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px;font-weight:700}.labs-new-version-step>div{display:grid;gap:2px}.labs-new-version-step p{margin:0;color:var(--muted);font-size:11px}.labs-new-version-select{display:grid;gap:6px;margin:12px 0;color:var(--muted-strong);font-size:11px}.labs-new-version-select select{width:100%;border:1px solid var(--border);border-radius:8px;background:var(--panel-soft);padding:9px 10px;color:var(--text)}.labs-new-version-dataset-facts{margin-bottom:18px}@media(max-width:1120px){.labs-model-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.labs-header{padding:8px 18px 0}.labs-primary-tabs button{padding-inline:8px}.labs-flat-body{width:calc(100% - 36px);padding:20px 0 36px}.labs-workproduct-toolbar{align-items:stretch;flex-direction:column}.labs-workproduct-toolbar select,.labs-workproduct-toolbar .dropdown-select{width:100%}.labs-workproduct-detail{width:calc(100% - 36px)}.labs-workproduct-detail-header{align-items:flex-start;flex-direction:column}.labs-change-actions{width:100%}.labs-change-actions .training-button{flex:1}.labs-change-facts{grid-template-columns:minmax(0,1fr)}.labs-change-facts>div{border-right:0;border-bottom:1px solid var(--border);padding-inline:14px}.labs-change-facts>div:last-child{border-bottom:0}.labs-change-card-footer:not(.end){align-items:stretch;flex-direction:column}.labs-change-card-footer.end .training-button{width:100%}.labs-inline-facts{gap:16px}.labs-method-tabs{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.labs-dataset-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.labs-method-tabs button,.labs-dataset-tabs button{min-width:0}.labs-suggestions-body .training-page-body{width:calc(100% - 36px)}}@media(max-width:560px){.labs-model-kpi-grid{grid-template-columns:1fr}.labs-run-detail-list>div{grid-template-columns:1fr;gap:4px}.labs-run-detail-list{grid-template-columns:1fr}.labs-run-detail-list>div:nth-child(odd),.labs-run-detail-list>div:nth-child(2n){border-right:0;border-bottom:1px solid var(--border);padding-right:0;padding-left:0}.labs-run-detail-list>div:last-child{border-bottom:0}.labs-run-detail-list dd,.labs-run-taskset-link{justify-content:flex-start;text-align:left}.labs-primary-tabs button{font-size:11px;padding-inline:6px}.labs-primary-tabs button span{display:none}.labs-create-menu{right:-2px;width:min(270px,calc(100vw - 28px))}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./TrainingCreationPanel-D2OFWyQ-.js","./index-ByIQyiUl.js","./index-D9jTe16Q.css","./circle-alert-envg1D6O.js","./training-BQVNUTZA.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as t,j as s,_ as I}from"./index-ByIQyiUl.js";import{u as k,T as L,M as O}from"./Messages-CBIXruA9.js";import"./chevron-up-DP8PPfWd.js";import"./MainPane-aOVlVyRK.js";import"./cloud-upload-5MGPLnaA.js";import"./square-pen-CqfsvR_n.js";import"./arrow-up-right-ecwcx3xt.js";import"./MarkdownText-D7DT1k1k.js";import"./square-CemI-0g5.js";import"./folder-open-Dq3ZjeEP.js";import"./git-branch-w29jmQ-X.js";import"./circle-alert-envg1D6O.js";import"./play-Be0XDHBu.js";const R=t.lazy(()=>I(()=>import("./TrainingCreationPanel-D2OFWyQ-.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url).then(i=>({default:i.TrainingStatusReceipt})));function H({accountBaseUrl:i,activeWorkspaceAppId:p,billingOrganizationSlug:u,billingTeamId:c,connection:l,conversationKey:d,creation:o,onOpenBrowserLink:g,onOpenAttachmentInSidebar:h,onOpenFileInSidebar:f,onOpenProfileSettings:x,onContentMutation:a,onResolveUserQuestion:v,onOpenSession:_,onScroll:b,preparingInitialScroll:j,rows:r,userAttachmentDisplay:M,threadRef:n,workspaceRootPath:T}){const y=t.useMemo(()=>r.flatMap(e=>e.type==="message"?[e.message]:[]),[r]),E=k(y,d);return t.useLayoutEffect(()=>{const e=n.current;if(!e||typeof MutationObserver>"u")return;a(e);const m=new MutationObserver(()=>a(e));return m.observe(e,{childList:!0,characterData:!0,subtree:!0}),()=>m.disconnect()},[a,n]),s.jsxs("section",{className:`chat-thread${j?" initial-scroll-pending":""}`,"aria-label":"Conversation",ref:n,onScroll:b,children:[r.map(e=>e.type==="thinking"?s.jsx(L,{},e.id):s.jsx(O,{activeWorkspaceAppId:p,accountBaseUrl:i,billingOrganizationSlug:u,billingTeamId:c,connection:l,animateInitialContent:e.message.role==="assistant"&&E.has(e.message.id),message:e.message,onOpenAttachmentInSidebar:h,onOpenFileInSidebar:f,onOpenBrowserLink:g,onOpenProfileSettings:x,onResolveUserQuestion:v,onOpenSession:_,userAttachmentDisplay:M,workspaceRootPath:T,showFooter:e.showFooter},e.id)),o?s.jsx(t.Suspense,{fallback:null,children:s.jsx(R,{creation:o})}):null]})}export{H as MainChatThread};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.work-sidebar-panel{display:grid;grid-template-rows:auto minmax(0,1fr)}.work-sidebar-body{min-height:0;overflow:auto;padding:12px}.work-output-list,.work-activity-list,.work-context{display:grid;gap:10px}.work-output-card,.work-context section{display:grid;gap:10px;padding:12px;border:1px solid rgba(255,255,255,.09);border-radius:9px;background:#ffffff06}.work-output-card>header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px}.work-output-card>header span,.work-context li span{display:grid;min-width:0}.work-output-version{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px}.work-output-version select{border:1px solid var(--border);border-radius:5px;background:var(--panel);color:var(--text);padding:2px 5px;font:inherit}.work-output-card strong,.work-output-card small,.work-context strong,.work-context small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.work-output-card strong,.work-context strong{color:var(--text);font-size:12px}.work-output-card small,.work-context small,.work-context p{color:var(--muted);font-size:11px}.work-output-validation{display:flex;gap:6px;align-items:center;color:#78b986;font-size:11px}.work-output-actions{display:flex;flex-wrap:wrap;gap:6px}.work-output-actions button,.work-output-preview header button{display:inline-flex;align-items:center;gap:5px;min-height:27px;padding:0 8px;border:1px solid rgba(255,255,255,.09);border-radius:6px;background:#ffffff09;color:var(--muted);font:inherit;font-size:11px;cursor:pointer}.work-output-actions button:hover,.work-output-preview header button:hover{color:var(--text);border-color:#ffffff2b}.work-output-actions button.danger:hover{color:#e28b8b}.work-output-actions button:disabled{opacity:.5;cursor:wait}.work-output-preview{display:grid;gap:14px}.work-output-preview>img,.work-output-preview>iframe,.work-output-preview>video{display:block;width:100%;max-height:62vh;border:0;border-radius:8px;object-fit:contain}.work-output-preview>iframe{min-height:58vh;background:#fff}.work-output-preview>audio{width:100%}.work-output-annotation{display:grid;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.work-output-annotation label{color:var(--muted);font-size:11px;font-weight:600}.work-output-annotation textarea{min-height:72px;resize:vertical;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);padding:8px;font:inherit;font-size:12px}.work-output-annotation button{justify-self:end;border:1px solid var(--border);border-radius:7px;background:var(--panel-soft);color:var(--text);padding:6px 9px;font:inherit;font-size:12px;cursor:pointer}.work-output-annotation button:disabled{cursor:default;opacity:.45}.work-output-preview>header{display:flex;align-items:center;gap:8px}.work-output-preview>header strong{overflow:hidden;color:var(--text);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.work-activity-row{border-bottom:1px solid rgba(255,255,255,.07);padding:2px 0 9px}.work-activity-row summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;min-height:28px;color:var(--text);font-size:12px;cursor:pointer;list-style:none}.work-activity-row summary::-webkit-details-marker{display:none}.work-activity-row summary small{color:var(--muted);font-size:10px;text-transform:capitalize}.work-activity-row.failed summary small{color:#dc8585}.work-activity-row p,.work-activity-row pre{margin:5px 0 0 21px;color:var(--muted);font-size:11px;line-height:1.45;white-space:pre-wrap}.work-activity-row pre{overflow:auto;max-height:220px;padding:8px;border-radius:6px;background:#00000038}.work-context h3{margin:0;color:var(--text);font-size:12px}.work-context p{margin:0;line-height:1.45}.work-context ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.work-context li{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}.work-sidebar-empty{display:grid;justify-items:center;gap:7px;padding:48px 20px;color:var(--muted);text-align:center}.work-sidebar-empty strong{color:var(--text);font-size:13px}.work-sidebar-empty p{max-width:250px;margin:0;font-size:11px;line-height:1.45}
|