openpond 0.0.37 → 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 -7
- package/dist/api/core.d.ts +6 -0
- package/dist/api/types.d.ts +0 -50
- package/dist/api/vercel-protection.d.ts +1 -0
- package/dist/api.d.ts +2 -8
- package/dist/chunks/{app-layer-LF2HK2B2.js → app-layer-LTBWNA2F.js} +32 -10
- package/dist/chunks/app-server-runtime-VYYJ2AWX.js +18 -0
- package/dist/chunks/{apps-ZMCMQZKX.js → apps-CZAJBGE3.js} +6 -124
- package/dist/chunks/{chunk-MHBQWGCL.js → chunk-2SF6HLT7.js} +5463 -5535
- package/dist/chunks/{chunk-VFL2JVBZ.js → chunk-3CDPPVLE.js} +111 -84
- package/dist/chunks/{chunk-N6E6YSTP.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-WTA33KQQ.js → chunk-4N6E3OVF.js} +4 -4
- package/dist/chunks/{chunk-35PPAOWD.js → chunk-6V7MJVRO.js} +56 -11
- package/dist/chunks/{chunk-ICLLW5QD.js → chunk-BQQZNGI6.js} +154 -194
- package/dist/chunks/chunk-DBHSOTYZ.js +1552 -0
- package/dist/chunks/{chunk-ZZ4ECDTP.js → chunk-FCVVOMIP.js} +145 -5
- package/dist/chunks/{chunk-A3CJUBA7.js → chunk-JIEUB6OS.js} +1 -1
- package/dist/chunks/{chunk-WL76II47.js → chunk-JJPAMKXZ.js} +1 -1
- package/dist/chunks/{chunk-2WMGA5FE.js → chunk-JRROTGQT.js} +1 -110
- package/dist/chunks/chunk-KHNHUA2H.js +1737 -0
- package/dist/chunks/{chunk-LNKYEHIJ.js → chunk-L6XH4ZGZ.js} +1 -1
- package/dist/chunks/chunk-M2NXTLH2.js +4054 -0
- package/dist/chunks/{chunk-IATK3CIP.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-KT2BB4AR.js → chunk-ZJBJQCQZ.js} +179 -52
- package/dist/chunks/{cli-5NFIDCRL.js → cli-JS76LCW2.js} +9 -5
- package/dist/chunks/{core-commands-7223BEQL.js → core-commands-4MRJQZJV.js} +7 -5
- package/dist/chunks/{harness-OMJXIGEW.js → desktop-test-RNMWLOVU.js} +15 -14
- package/dist/chunks/{chunk-ZPL4GZML.js → extension-GDRW22N3.js} +5866 -3601
- package/dist/chunks/{help-YPPROIS7.js → help-LWNREJ7U.js} +1 -1
- package/dist/chunks/{opchat-K7IYFPX6.js → opchat-2K2JIGK3.js} +9 -10
- package/dist/chunks/{organizations-W3FMAWQ4.js → organizations-Z5HVD2E7.js} +11 -9
- package/dist/chunks/{profile-N4B3F7M7.js → profile-QNECVVGN.js} +12 -38
- package/dist/chunks/{project-agent-NA6SGU25.js → project-agent-W3V75WBR.js} +9 -411
- package/dist/chunks/{sandbox-command-AKCFJKKN.js → sandbox-command-X3FO74NX.js} +7 -5
- package/dist/chunks/{sandbox-template-5NKTAXCL.js → sandbox-template-5B4T4BGU.js} +8 -6
- package/dist/chunks/{src-XAVSQTVR.js → src-ESAILPUH.js} +32 -30
- package/dist/chunks/src-IC5RX4L6.js +63517 -0
- package/dist/chunks/{teams-bot-557NZC73.js → teams-bot-NTQ6VFFL.js} +6 -4
- package/dist/chunks/training-BR5A7SPU.js +320 -0
- package/dist/chunks/{workspaces-S2H75XQB.js → workspaces-XC3QBD2Y.js} +2 -2
- package/dist/cli.js +24 -12
- package/dist/client-types.d.ts +1 -9
- package/dist/client.d.ts +3 -3
- package/dist/config.d.ts +9 -3
- package/dist/index.js +1300 -1091
- 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-y6krB0MJ.js → AppDialog-Bua3f-6v.js} +1 -1
- package/dist/web/assets/{AppsView-4F6oLktr.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-B56XmI-k.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-r3CqRm6Q.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-CHd22UcG.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-KFDYjM8T.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-C8UFKlXy.js → git-commit-horizontal-CGZM0PZo.js} +1 -1
- package/dist/web/assets/{htmlMode-NbLN3n6Q.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-Bl3r4LM_.js → jsonMode-BAUNCNAX.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-DH22w5XD.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-2NDQ4-7K.js → play-Be0XDHBu.js} +1 -1
- package/dist/web/assets/{python-CQ0TmUW9.js → python-CEhEiPo7.js} +1 -1
- package/dist/web/assets/{refresh-cw-CyermMsy.js → refresh-cw-DH0KLbdD.js} +1 -1
- package/dist/web/assets/reply-D1TK2yV8.js +1 -0
- package/dist/web/assets/{save-Bij3cc3Q.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-CxALivAH.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-vH4lMS7h.js → tsMode-CKB5oOUU.js} +1 -1
- package/dist/web/assets/{upload-DbJfEI3G.js → upload-t751LLqP.js} +1 -1
- package/dist/web/assets/useLocalAgentSchedules-CzC3wfIP.js +1 -0
- package/dist/web/assets/{wifi-off-BnVFBG28.js → wifi-off-CxTHH3JU.js} +1 -1
- package/dist/web/assets/{workers-CBihj7z6.js → workers-CqYddzCd.js} +1 -1
- package/dist/web/assets/{yaml-Bhkoq1sy.js → yaml-e5wBkc-C.js} +1 -1
- package/dist/web/index.html +2 -2
- package/docs/command-reference.md +76 -41
- package/package.json +3 -1
- package/dist/chunks/chunk-3VURZQHA.js +0 -864
- package/dist/chunks/chunk-BWA3COR4.js +0 -3535
- package/dist/chunks/chunk-HLCTINEP.js +0 -224
- package/dist/chunks/chunk-PGET7EZF.js +0 -3896
- package/dist/chunks/chunk-T4QXKU5Y.js +0 -1
- package/dist/chunks/chunk-XEJ7XXUQ.js +0 -1301
- package/dist/chunks/cli-AS3DZ7XB.js +0 -23
- package/dist/chunks/extend-6N5S5KA5.js +0 -89
- package/dist/chunks/extension-FJSVCG2Q.js +0 -121
- package/dist/chunks/fileFromPath-DHCRY3BD.js +0 -2151
- package/dist/chunks/src-SCS4KKP4.js +0 -105881
- package/dist/web/assets/BrowserSidebar-C0MHQaaD.js +0 -1
- package/dist/web/assets/CloudWorkView-DNoPIlMj.css +0 -1
- package/dist/web/assets/CloudWorkView-DwFIZoXy.js +0 -1
- package/dist/web/assets/CommandMenu-CYGFrMZi.js +0 -1
- package/dist/web/assets/CommunityView-C6n89YXz.js +0 -1
- package/dist/web/assets/ComposerCreateImproveStrip-C3RwXC3_.js +0 -1
- package/dist/web/assets/GetStartedView-DBLdduwr.css +0 -1
- package/dist/web/assets/GetStartedView-fwD0ZXo9.js +0 -1
- package/dist/web/assets/LabSkillSidebar-BSuc-NJr.js +0 -1
- package/dist/web/assets/LabsRoute-BrJkBNig.css +0 -1
- package/dist/web/assets/LabsRoute-D2y8dSsT.js +0 -3
- package/dist/web/assets/MainChatThread-Dj_Ry6WQ.js +0 -2
- package/dist/web/assets/MakeAgentTutorialLearningPanel-Bz2VDaRe.js +0 -2
- package/dist/web/assets/MarkdownText-B6Nu_0Fz.js +0 -7
- package/dist/web/assets/Messages-CH2wfv2a.js +0 -10
- package/dist/web/assets/NativeSkillSidebar-4iUfgwqO.js +0 -1
- package/dist/web/assets/NewProjectDialog-8M5-6-h-.js +0 -1
- package/dist/web/assets/PostTrainingLearningPanel-CdG5KHZs.js +0 -2
- package/dist/web/assets/PostTrainingStatusPill-COZ4qISQ.js +0 -1
- package/dist/web/assets/ProfileSettingsSection-Bo7dybgW.js +0 -1
- package/dist/web/assets/ProfileSettingsSection-Cg4tKO-C.css +0 -1
- package/dist/web/assets/RightChatPanelStack-Di8zoHJI.js +0 -1
- package/dist/web/assets/SettingsView-BcYyY66X.css +0 -1
- package/dist/web/assets/SettingsView-CAaKdDHt.js +0 -6
- package/dist/web/assets/TeamChatView-Bx44q3WV.css +0 -1
- package/dist/web/assets/TeamChatView-CzQYFBap.js +0 -3
- package/dist/web/assets/TrainingCreationPanel-C_ntWAAP.js +0 -1
- package/dist/web/assets/TrainingDraftPanel-3hJIxLNn.js +0 -1
- package/dist/web/assets/WorkspaceDiffPanel-By8PWUuE.js +0 -14
- package/dist/web/assets/WorkspaceEnvironmentMenu-7wmC-spz.js +0 -32
- package/dist/web/assets/WorkspaceGitDialogs-Hn--lsRh.js +0 -1
- package/dist/web/assets/activity-Dp5V58om.js +0 -1
- package/dist/web/assets/boxes-DE7WJaEv.js +0 -1
- package/dist/web/assets/chevron-up-BWx8gGab.js +0 -1
- package/dist/web/assets/circle-x-DnmOfZIg.js +0 -1
- package/dist/web/assets/copy-BjWvaXLC.js +0 -1
- package/dist/web/assets/create-pipeline-request-C4V6-lWN.js +0 -4
- package/dist/web/assets/credit-card-Bjg0Zaw5.js +0 -1
- package/dist/web/assets/file-BrC1KjAS.js +0 -1
- package/dist/web/assets/git-branch-DTeeARsp.js +0 -1
- package/dist/web/assets/index-BcZetaeD.css +0 -1
- package/dist/web/assets/index-DQalqxbw.js +0 -177
- package/dist/web/assets/index-DYxF_d9i.js +0 -1
- package/dist/web/assets/info-BXBpMeVU.js +0 -1
- package/dist/web/assets/make-agent-tutorial-CAnTPFCK.js +0 -2
- package/dist/web/assets/monaco.contribution-C0BsxYAz.js +0 -2
- package/dist/web/assets/monaco.contribution-CzpXjm9j.js +0 -2
- package/dist/web/assets/monaco.contribution-DK-g-i00.js +0 -2
- package/dist/web/assets/monaco.contribution-iAurj7TQ.js +0 -2
- package/dist/web/assets/monitor-Ba2FFblh.js +0 -1
- package/dist/web/assets/reply-BSExNLHM.js +0 -1
- package/dist/web/assets/rotate-cw-DJ-zYG9E.js +0 -1
- package/dist/web/assets/training-BN8CALIc.css +0 -1
- package/dist/web/assets/training-model-data-BXUCzS0p.js +0 -1
- package/dist/web/tokens/eth.svg +0 -1
- package/dist/web/tokens/usdc.svg +0 -1
- package/docs/agent-edit-check-status-json.md +0 -132
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as l,j as e,X as H,au as M,ca as O,aJ as Z}from"./index-ByIQyiUl.js";import{S as ee,W as se,B as ne}from"./wifi-off-CxTHH3JU.js";import{R as F}from"./refresh-cw-DH0KLbdD.js";import{g as te,h as ie,i as ae,j as le,r as oe,k as re}from"./MainPane-aOVlVyRK.js";import{T as ce,b as J}from"./MarkdownText-D7DT1k1k.js";import{R as de}from"./reply-D1TK2yV8.js";import{S as me}from"./square-pen-CqfsvR_n.js";import"./cloud-upload-5MGPLnaA.js";import"./arrow-up-right-ecwcx3xt.js";import"./square-CemI-0g5.js";import"./folder-open-Dq3ZjeEP.js";const ue=2e4,R=10,he=12*1024*1024,ye=new Set(["image/png","image/jpeg","image/webp","image/gif"]);function ge(s){const[n,m]=l.useState(""),[a,y]=l.useState(0),[c,u]=l.useState([]),[f,i]=l.useState(null),[b,h]=l.useState(!1),[p,C]=l.useState([]),[N,v]=l.useState(0),[o,I]=l.useState(null),k=l.useRef(null),E=l.useRef(null),D=l.useRef(c);D.current=c;const g=l.useMemo(()=>xe(n,a),[n,a]),S=g?`${g.start}:${g.end}:${g.query}`:null,T=g?.query??null,w=l.useMemo(()=>{if(!g)return[];const t=new Map;for(const d of[...s.members,...p])t.set(d.userId,d);const r=g.query.toLowerCase();return[...t.values()].filter(d=>`${d.handle??""} ${d.name??""}`.toLowerCase().includes(r)).slice(0,8)},[g,s.members,p]),B=!!(g&&S!==o&&w.length>0),L=!!(s.disabled||s.busy||b),U=!L&&(!!n.trim()||c.length>0);l.useEffect(()=>{if(T==null){C([]);return}let t=!0;const r=window.setTimeout(()=>{s.onSearchMembers(T).then(d=>{t&&C(d)},()=>{t&&C([])})},150);return()=>{t=!1,window.clearTimeout(r)}},[T,s.onSearchMembers]),l.useEffect(()=>{v(0)},[S]),l.useEffect(()=>()=>K(D.current),[]);async function $(t){if(t?.preventDefault(),!!U){i(null),h(!0);try{const r=await Promise.all(c.map(oe));if(!await s.onSend({body:n,mentionUserIds:fe(n,s.members),attachments:r,replyToMessageId:s.replyTo?.id??null}))return;K(c),m(""),y(0),u([]),s.onCancelReply()}catch(r){i(r instanceof Error?r.message:String(r))}finally{h(!1)}}}function V(t){if(B){if(t.key==="ArrowDown"){t.preventDefault(),v(r=>(r+1)%w.length);return}if(t.key==="ArrowUp"){t.preventDefault(),v(r=>(r-1+w.length)%w.length);return}if(t.key==="Enter"||t.key==="Tab"){t.preventDefault(),z(w[N]??w[0]);return}if(t.key==="Escape"){t.preventDefault(),I(S);return}}t.key!=="Enter"||t.shiftKey||t.nativeEvent.isComposing||(t.preventDefault(),$())}function G(t){if(!t)return;i(null);const r=Math.max(0,R-c.length);if(r===0){i(`You can attach up to ${R} images.`),A();return}const d=[...t],j=d.slice(0,r),P=j.find(x=>!ye.has(x.type)),q=j.find(x=>x.size<=0||x.size>he);if(P){i(`${P.name} is not a supported image type.`),A();return}if(q){i(`${q.name} must be smaller than 12 MB.`),A();return}const Q=j.map(x=>({id:re(),file:x,name:x.name,mediaType:x.type,sizeBytes:x.size,kind:"image",previewUrl:URL.createObjectURL(x)}));u(x=>[...x,...Q]),d.length>r&&i(`Only ${R} images can be attached to one message.`),A()}function W(t){u(r=>{const d=r.find(j=>j.id===t);return d?.previewUrl&&URL.revokeObjectURL(d.previewUrl),r.filter(j=>j.id!==t)})}function A(){k.current&&(k.current.value="")}function z(t){if(!g)return;const r=`@${X(t)} `,d=`${n.slice(0,g.start)}${r}${n.slice(g.end)}`,j=g.start+r.length;m(d),y(j),I(null),window.requestAnimationFrame(()=>E.current?.focusAtPromptIndex(j))}return e.jsxs("form",{className:`composer dock community-composer${c.length>0?" has-attachments":""}${f?" has-attachment-error":""}`,onSubmit:$,children:[s.replyTo?e.jsxs("div",{className:"community-composer-reply",children:[e.jsxs("span",{children:[e.jsx("strong",{children:"Replying to"}),s.replyTo.body.slice(0,100)||"message"]}),e.jsx("button",{type:"button","aria-label":"Cancel reply",onClick:s.onCancelReply,children:e.jsx(H,{size:13})})]}):null,B?e.jsx("div",{className:"community-mention-menu",role:"listbox","aria-label":"Community members",children:w.map((t,r)=>e.jsxs("button",{type:"button",role:"option","aria-selected":r===N,onMouseDown:d=>d.preventDefault(),onClick:()=>z(t),children:[e.jsx("strong",{children:t.name??t.handle??"Community member"}),t.handle?e.jsxs("small",{children:["@",t.handle]}):null]},t.userId))}):null,e.jsxs("div",{className:"composer-input-shell",children:[c.length>0?e.jsx("div",{className:"composer-attachments","aria-label":"Selected attachments",children:c.map(t=>e.jsx(te,{attachment:t,onRemove:()=>W(t.id)},t.id))}):null,f?e.jsx("div",{className:"composer-attachment-error",role:"status",children:f}):null,e.jsx("div",{className:"composer-textarea-frame",onClick:t=>{t.target===t.currentTarget&&E.current?.focusAtPromptIndex(a)},children:e.jsx(ie,{ref:E,disabled:L,onCursorChange:y,onKeyDown:V,onPromptChange:(t,r)=>{const d=t.slice(0,ue);m(d),y(Math.min(r,d.length))},onTokenPositionChange:()=>{},placeholder:s.disabled?"Accept the community rules to post":"Message community",prompt:n,token:null})}),e.jsxs("div",{className:"composer-primary-controls team-chat-composer-controls",children:[e.jsx("input",{ref:k,className:"composer-file-input",hidden:!0,type:"file",accept:"image/png,image/jpeg,image/webp,image/gif",multiple:!0,onChange:t=>G(t.currentTarget.files)}),e.jsx("button",{type:"button",className:"composer-icon","aria-label":"Attach images",disabled:L||c.length>=R,onClick:()=>k.current?.click(),children:e.jsx(ae,{size:17})}),e.jsx("div",{className:"composer-spacer"}),e.jsx("button",{type:"submit",className:"send-button","aria-label":"Send message",disabled:!U,children:e.jsx(le,{size:17})})]})]})]})}function xe(s,n=s.length){const m=Math.max(0,Math.min(n,s.length)),a=/(?:^|\s)@([\w-]*)$/.exec(s.slice(0,m));return!a||a.index==null?null:{start:a.index+a[0].indexOf("@"),end:m,query:a[1]??""}}function fe(s,n){const m=new Set([...s.matchAll(/(?:^|\s)@([\w-]+)/g)].map(a=>a[1]?.toLowerCase()));return n.filter(a=>m.has(X(a).toLowerCase())).map(a=>a.userId)}function X(s){return s.handle??s.name?.replace(/[^\w-]/g,"")??s.userId}function K(s){for(const n of s)n.previewUrl&&URL.revokeObjectURL(n.previewUrl)}function be(s){const[n,m]=l.useState(!1),[a,y]=l.useState(s.message.body),c=s.message.refs.find(i=>i.refType==="message_reply"),u=c?s.messagesById.get(c.refId)??null:null,f=u?.authorUserId?s.membersById.get(u.authorUserId)??null:null;return e.jsxs("article",{className:`community-message${s.own?" own":""}`,id:`community-message-${s.message.id}`,children:[e.jsx("div",{className:"community-avatar",children:je(s.author?.name??s.author?.handle??"?")}),e.jsxs("div",{className:"community-message-content",children:[e.jsxs("header",{children:[e.jsx("strong",{children:s.author?.name??s.author?.handle??"Community member"}),e.jsx("time",{dateTime:s.message.createdAt,children:pe(s.message.createdAt)}),s.message.editedAt?e.jsx("span",{children:"edited"}):null,s.message.deletedAt?null:e.jsxs("div",{className:"community-message-actions",children:[e.jsx("button",{type:"button","aria-label":"Reply",onClick:()=>s.onReply(s.message),children:e.jsx(de,{size:13})}),s.own?e.jsx("button",{type:"button","aria-label":"Edit",onClick:()=>m(!0),children:e.jsx(me,{size:13})}):null,s.own?e.jsx("button",{type:"button","aria-label":"Delete",onClick:()=>{s.onDelete(s.message.id)},children:e.jsx(ce,{size:13})}):null]})]}),c?e.jsxs("button",{type:"button",className:"community-reply-quote",onClick:()=>document.getElementById(`community-message-${c.refId}`)?.scrollIntoView({behavior:"smooth",block:"center"}),children:[e.jsx("strong",{children:f?.name??"Community member"}),e.jsx("span",{children:u?.deletedAt?"Message deleted":u?.body??String(c.preview.body??"Earlier message")})]}):null,n?e.jsxs("form",{className:"community-message-edit",onSubmit:i=>{i.preventDefault(),s.onEdit(s.message.id,a).then(b=>{b&&m(!1)})},children:[e.jsx("textarea",{autoFocus:!0,value:a,onChange:i=>y(i.currentTarget.value)}),e.jsxs("div",{children:[e.jsx("button",{type:"button",onClick:()=>m(!1),children:"Cancel"}),e.jsx("button",{type:"submit",disabled:!a.trim(),children:"Save"})]})]}):s.message.deletedAt?e.jsx("div",{className:"community-message-deleted",children:"Message deleted"}):e.jsx(J,{content:s.message.body}),!s.message.deletedAt&&s.message.attachments.length>0?e.jsx("div",{className:"community-message-attachments",children:s.message.attachments.map(i=>s.attachmentsAccessible?e.jsxs("button",{type:"button",onClick:()=>{s.onDownloadAttachment(i.id)},children:[e.jsx("span",{children:i.name}),e.jsx("small",{children:_(i.sizeBytes)})]},i.id):e.jsxs("div",{className:"community-attachment-placeholder",children:[e.jsx("span",{children:i.name}),e.jsxs("small",{children:["Join to view · ",_(i.sizeBytes)]})]},i.id))}):null]})]})}function je(s){return s.split(/\s+/).slice(0,2).map(n=>n[0]?.toUpperCase()??"").join("")||"?"}function pe(s){const n=new Date(s);return Number.isNaN(n.getTime())?"":n.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}function _(s){return s<1024?`${s} B`:s<1024*1024?`${Math.round(s/1024)} KB`:`${(s/1024/1024).toFixed(1)} MB`}function ve(s){const[n,m]=l.useState(!1),a=l.useRef(null),y=l.useRef(s.onClose);l.useEffect(()=>m(!1),[s.rules.id]),l.useEffect(()=>{y.current=s.onClose},[s.onClose]),l.useEffect(()=>{const u=document.activeElement instanceof HTMLElement?document.activeElement:null,f=a.current,i=()=>[...f?.querySelectorAll('button:not([disabled]), input:not([disabled]), [href], [tabindex]:not([tabindex="-1"])')??[]];i()[0]?.focus();const b=h=>{if(h.key==="Escape"){h.preventDefault(),y.current();return}if(h.key!=="Tab")return;const p=i();if(p.length===0){h.preventDefault(),f?.focus();return}const C=p[0],N=p.at(-1);h.shiftKey&&document.activeElement===C?(h.preventDefault(),N.focus()):!h.shiftKey&&document.activeElement===N&&(h.preventDefault(),C.focus())};return document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b),u?.focus()}},[]);const c=s.mode!=="review";return e.jsx("div",{className:"community-dialog-backdrop",role:"presentation",onMouseDown:s.onClose,children:e.jsxs("section",{ref:a,className:"community-rules-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"community-rules-title",tabIndex:-1,onMouseDown:u=>u.stopPropagation(),children:[e.jsxs("header",{children:[e.jsxs("div",{children:[e.jsxs("small",{children:["Community rules · version ",s.rules.version]}),e.jsx("h2",{id:"community-rules-title",children:s.rules.title})]}),e.jsx("button",{type:"button","aria-label":"Close rules",onClick:s.onClose,children:e.jsx(H,{size:16})})]}),e.jsx("div",{className:"community-rules-body",children:e.jsx(J,{content:s.rules.bodyMarkdown})}),e.jsxs("footer",{children:[c?e.jsxs("label",{className:"community-rules-acceptance",children:[e.jsx("input",{type:"checkbox",checked:n,onChange:u=>m(u.currentTarget.checked)}),e.jsx("span",{children:"I have read and agree to follow these rules."})]}):e.jsx("span",{}),e.jsxs("div",{children:[e.jsx("button",{type:"button",className:"secondary",onClick:s.onClose,children:"Cancel"}),c?e.jsx("button",{type:"button",disabled:!n||s.busy,onClick:()=>{s.onAccept().then(u=>{u&&s.onClose()})},children:s.busy?"Saving…":s.mode==="join"?"Agree and join":"Accept updated rules"}):null]})]})]})})}function De({communities:s,chat:n,currentUserId:m}){M(s.discoveryError),M(s.previewError),M(s.membershipError?.message),M(n.channelsError,{prefix:"Channels"}),M(n.messagesError,{prefix:"Messages"}),M(n.actionError);const[a,y]=l.useState(null),[c,u]=l.useState(null),f=l.useRef(null),i=s.preview,b=i?.membership?.status==="active",h=!!i?.capabilities.requiresRulesAcceptance,p=l.useMemo(()=>new Map(n.members.map(o=>[o.userId,o])),[n.members]),C=l.useMemo(()=>new Map(n.messages.map(o=>[o.id,o])),[n.messages]),N=n.messages.at(-1)?.sequence??0;if(l.useEffect(()=>{const o=f.current;o&&(o.scrollTop=o.scrollHeight)},[n.selectedChannelId,N]),l.useEffect(()=>{u(null),h&&i?.currentRules&&y("reaccept")},[i?.currentRules,h]),!s.selectedSummary)return e.jsx("section",{className:"community-empty-page",children:e.jsxs("div",{className:"community-discovery-card",children:[e.jsx(O,{size:30}),e.jsx("h1",{children:"Discover communities"}),e.jsx("p",{children:s.discoveryLoading&&s.items.length===0?"Finding communities…":"Preview public conversations and join after accepting each community's rules."}),s.items.length>0?e.jsx("div",{className:"community-discovery-list",children:s.items.map(o=>e.jsxs("button",{type:"button",onClick:()=>s.selectCommunity(o.id),children:[e.jsx(Y,{name:o.displayName,imageUrl:o.imageUrl}),e.jsxs("span",{children:[e.jsx("strong",{children:o.displayName}),e.jsx("small",{children:o.description})]}),e.jsx("em",{children:o.membership?.status==="active"?"Joined":o.featuredAt?"Featured":`${o.memberCount.toLocaleString()} members`})]},o.id))}):s.discoveryLoading?null:e.jsx("div",{className:"community-state",children:"No public communities are available yet."}),e.jsxs("div",{className:"community-discovery-actions",children:[e.jsxs("button",{type:"button",onClick:()=>{s.refresh()},disabled:s.discoveryLoading,children:[e.jsx(F,{size:14})," Refresh"]}),s.nextCursor?e.jsx("button",{type:"button",className:"secondary",onClick:()=>{s.loadMore()},disabled:s.discoveryLoading,children:"Load more"}):null]})]})});if(!i&&s.previewLoading)return e.jsx("section",{className:"community-empty-page",children:e.jsxs("div",{className:"community-empty-card",children:[e.jsx("span",{className:"community-spinner"})," Loading community…"]})});if(!i)return e.jsx("section",{className:"community-empty-page",children:e.jsxs("div",{className:"community-empty-card",children:[e.jsx("h1",{children:s.selectedSummary.displayName}),e.jsx("div",{className:"community-state",children:"This community preview is unavailable."}),e.jsxs("button",{type:"button",onClick:()=>s.selectCommunity(s.selectedSummary.id),children:[e.jsx(F,{size:14})," Retry preview"]})]})});const v=i.currentRules;return e.jsxs("section",{className:"community-view",children:[e.jsxs("header",{className:"community-header",children:[e.jsxs("div",{className:"community-heading",children:[e.jsx(Y,{name:i.displayName,imageUrl:i.imageUrl}),e.jsxs("div",{children:[e.jsx("small",{children:i.displayName}),e.jsx("h1",{children:n.selectedChannel?`# ${n.selectedChannel.displayName}`:i.displayName}),e.jsx("p",{children:n.selectedChannel?.topic||i.description})]})]}),e.jsxs("div",{className:"community-header-actions",children:[e.jsxs("span",{className:"community-member-count",children:[e.jsx(O,{size:14})," ",i.memberCount.toLocaleString()]}),v?e.jsxs("button",{type:"button",className:"secondary",onClick:()=>y("review"),children:[e.jsx(ee,{size:14})," Rules"]}):null,b?e.jsx(Ce,{mode:i.membership?.notificationMode??"mentions",busy:s.membershipBusy,onMode:s.updateNotifications,onLeave:s.leave}):null]})]}),e.jsxs("div",{className:"community-chat-main conversation-surface-main",children:[e.jsxs("div",{className:"community-chat-notices",children:[b?h?e.jsxs("div",{className:"community-preview-banner warning",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"The rules have changed"}),e.jsx("span",{children:"Accept the current rules to continue reading live updates and posting."})]}),e.jsx("button",{type:"button",disabled:!v||s.membershipBusy,onClick:()=>y("reaccept"),children:"Review updated rules"})]}):null:e.jsxs("div",{className:"community-preview-banner",children:[e.jsxs("div",{children:[e.jsxs("strong",{children:["Previewing ",i.displayName]}),e.jsx("span",{children:"Read the public conversation, then accept the rules to join and post."})]}),e.jsx("button",{type:"button",disabled:!v||s.membershipBusy,onClick:()=>y("join"),children:"Join community"})]}),n.realtimeError&&b&&!h?e.jsxs("div",{className:"community-realtime-state",children:[e.jsx(se,{size:14}),e.jsx("span",{children:"Live updates are reconnecting. Loaded messages are still available."})]}):null,n.lostMembership?e.jsx("div",{className:"community-state error",children:"Your membership changed. Refresh the community before continuing."}):null,n.channelsError?e.jsx("button",{type:"button",className:"community-state",onClick:()=>{n.loadChannels()},children:"Retry loading channels"}):null]}),e.jsxs("div",{className:"community-message-pane conversation-message-scroll",ref:f,role:"log","aria-live":"polite","aria-relevant":"additions text","aria-busy":n.messagesLoading,"aria-label":n.selectedChannel?`${i.displayName}, ${n.selectedChannel.displayName}`:i.displayName,tabIndex:0,children:[n.hasMoreBefore?e.jsx("button",{type:"button",className:"community-load-older",disabled:n.olderMessagesLoading,onClick:()=>{n.loadOlder()},children:n.olderMessagesLoading?"Loading…":"Load earlier messages"}):null,n.messagesLoading&&n.messages.length===0?e.jsx("div",{className:"community-message-state",children:"Loading messages…"}):null,n.messagesError?e.jsxs("div",{className:"community-message-state",children:["Messages are unavailable. ",e.jsx("button",{type:"button",onClick:()=>{n.loadMessages()},children:"Retry"})]}):null,!n.messagesLoading&&!n.messagesError&&n.messages.length===0?e.jsx("div",{className:"community-message-state",children:"No messages in this channel yet."}):null,n.messages.map(o=>e.jsx(be,{message:o,author:o.authorUserId?p.get(o.authorUserId)??null:null,own:o.authorUserId===m,attachmentsAccessible:!n.previewMode,membersById:p,messagesById:C,onReply:u,onEdit:n.editMessage,onDelete:n.deleteMessage,onDownloadAttachment:n.downloadAttachment},o.id))]}),b?e.jsxs("div",{className:"community-composer-wrap conversation-composer-shell",children:[n.failedSend?e.jsxs("div",{className:"community-failed-send",children:[e.jsx("span",{children:"Message not sent."}),e.jsx("button",{type:"button",disabled:n.sending,onClick:()=>{n.retrySend()},children:"Retry"}),e.jsx("button",{type:"button",onClick:n.dismissFailedSend,children:"Dismiss"})]}):null,e.jsx(ge,{members:n.members,replyTo:c,busy:n.sending,disabled:h||n.lostMembership||!n.selectedChannel||n.selectedChannel.postingPolicy==="admins"&&i.membership?.role==="member",onCancelReply:()=>u(null),onSearchMembers:n.searchMembers,onSend:n.sendMessage})]}):null]}),a&&v?e.jsx(ve,{rules:v,mode:a,busy:s.membershipBusy,onAccept:a==="join"?s.join:s.acceptRules,onClose:()=>y(null)}):null]})}function Ce(s){const[n,m]=l.useState(!1);return e.jsxs("div",{className:"community-membership-menu",children:[e.jsxs("button",{type:"button",className:"secondary","aria-expanded":n,onClick:()=>m(a=>!a),children:[s.mode==="none"?e.jsx(Z,{size:14}):e.jsx(ne,{size:14})," Joined"]}),n?e.jsxs("div",{className:"community-membership-popover",children:[e.jsx("strong",{children:"Notifications"}),["mentions","all","none"].map(a=>e.jsxs("label",{children:[e.jsx("input",{type:"radio",name:"community-notifications",checked:s.mode===a,disabled:s.busy,onChange:()=>{s.onMode(a)}})," ",a==="mentions"?"Mentions":a==="all"?"All messages":"Nothing"]},a)),e.jsx("button",{type:"button",className:"danger",disabled:s.busy,onClick:()=>{window.confirm("Leave this community? You can join again later by accepting the current rules.")&&s.onLeave().then(a=>{a&&m(!1)})},children:"Leave community"})]}):null]})}function Y({name:s,imageUrl:n}){return n?e.jsx("img",{className:"community-icon",src:n,alt:""}):e.jsx("span",{className:"community-icon fallback",children:s.slice(0,2).toUpperCase()})}export{De as CommunityView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as v,j as e,cb as _,aN as A,F as x,X as j,b as y,bd as P}from"./index-ByIQyiUl.js";import{C as w}from"./circle-alert-envg1D6O.js";import{P as q}from"./MarkdownText-D7DT1k1k.js";import{P as C}from"./play-Be0XDHBu.js";import{R as k}from"./refresh-cw-DH0KLbdD.js";function U({runtime:s}){const[a,i]=v.useState(!1),[o,l]=v.useState(""),[n,u]=v.useState(null),t=s.run,h=t.plan,g=N(t),c={run:t},f=E(t.state),r=S(t),R=r?.git?.pullRequest??t.releaseOutcome.pullRequest;v.useEffect(()=>{i(!1),l(""),u(null)},[t.id,t.revision,t.state,h?.id,g?.id]);async function d(p,b){if(!(!b||n)){u(p);try{await b()}finally{u(null)}}}return e.jsxs("section",{className:`composer-create-strip ${f}`,"aria-label":"Create or improve status",children:[e.jsxs("div",{className:"composer-create-strip-heading",children:[f==="danger"?e.jsx(w,{size:15}):t.state==="awaiting_questions"?e.jsx(_,{size:15}):I(t.state)?e.jsx(A,{className:"composer-create-spin",size:15}):e.jsx(x,{size:15}),e.jsx("span",{children:z(t)}),e.jsx("small",{children:t.target.kind})]}),t.state==="awaiting_questions"&&g?e.jsxs("div",{className:"composer-create-question",children:[e.jsx("p",{children:g.prompt}),e.jsx("div",{className:"composer-create-options",children:g.options.map(p=>e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d(`answer:${p.id}`,()=>s.onAnswerQuestion?s.onAnswerQuestion(c,g.id,p.value):Promise.resolve())},children:[e.jsx("span",{children:n===`answer:${p.id}`?"Saving":p.label}),p.description?e.jsx("small",{children:p.description}):null]},p.id))})]}):t.state==="awaiting_plan_approval"&&h?e.jsxs("div",{className:"composer-create-plan-summary",children:[e.jsx("p",{children:h.summary}),e.jsx(m,{run:t}),a?e.jsxs("div",{className:"composer-create-revision",children:[e.jsx("textarea",{rows:2,value:o,placeholder:"Describe the plan revision",onChange:p=>l(p.currentTarget.value)}),e.jsxs("div",{children:[e.jsxs("button",{type:"button",disabled:!o.trim()||!!n,onClick:()=>{d("revise",()=>s.onRevise?s.onRevise(c,o):Promise.resolve())},children:[e.jsx(x,{size:13}),e.jsx("span",{children:n==="revise"?"Saving":"Save revision"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>i(!1),children:[e.jsx(j,{size:13}),e.jsx("span",{children:"Close"})]})]})]}):e.jsxs("div",{className:"composer-create-actions",children:[e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("approve",()=>s.onApprove?s.onApprove(c):Promise.resolve())},children:[e.jsx(y,{size:13}),e.jsx("span",{children:n==="approve"?"Confirming":"Confirm plan"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>i(!0),children:[e.jsx(x,{size:13}),e.jsx("span",{children:"Edit plan"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("cancel",()=>s.onCancel?s.onCancel(c):Promise.resolve())},children:[e.jsx(j,{size:13}),e.jsx("span",{children:n==="cancel"?"Cancelling":"Cancel"})]})]})]}):t.state==="paused"?e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:"This work is paused. Resume it when you are ready to continue."}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("resume",()=>s.onResume?s.onResume(c):Promise.resolve())},children:[e.jsx(C,{size:13}),e.jsx("span",{children:n==="resume"?"Resuming":"Resume"})]})]}):t.state==="awaiting_promotion"&&r?e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:T(t,r.id)}),e.jsxs("div",{className:"composer-create-actions",children:[e.jsxs("button",{type:"button",disabled:!!n||!$(t,r.id),onClick:()=>{d("apply-candidate",()=>s.onApplyCandidate?s.onApplyCandidate(c,r.id):Promise.resolve())},children:[e.jsx(y,{size:13}),e.jsx("span",{children:n==="apply-candidate"?"Applying":"Apply update"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("reject-candidate",()=>s.onRejectCandidate?s.onRejectCandidate(c,r.id):Promise.resolve())},children:[e.jsx(j,{size:13}),e.jsx("span",{children:n==="reject-candidate"?"Keeping current version":"Keep current version"})]})]})]}):t.state==="pull_request_open"&&r&&R?e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:t.target.kind==="agent"?"An Agent update review is open. Finish or close it, then refresh its status.":"An external review is open. Merge or close it, then refresh its status."}),e.jsxs("div",{className:"composer-create-actions",children:[e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("reconcile-pr",()=>s.onReconcilePullRequest?s.onReconcilePullRequest(c,r.id):Promise.resolve())},children:[e.jsx(k,{size:13}),e.jsx("span",{children:n==="reconcile-pr"?"Checking":"Refresh review"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("reject-candidate",()=>s.onRejectCandidate?s.onRejectCandidate(c,r.id):Promise.resolve())},children:[e.jsx(j,{size:13}),e.jsx("span",{children:n==="reject-candidate"?"Closing":"Close review"})]})]})]}):t.state==="blocked"||t.state==="failed"||t.state==="cancelled"?e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:t.blockedReason??"This work stopped before it was ready."}),t.state==="blocked"&&r?.git?.worktreePath&&["draft","checking"].includes(r.status)?e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("resume",()=>s.onResume?s.onResume(c):Promise.resolve())},children:[e.jsx(C,{size:13}),e.jsx("span",{children:n==="resume"?"Continuing":"Continue update"})]}):t.state==="blocked"&&r?.git?.pullRequest?.state==="merged"?e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("reconcile-pr",()=>s.onReconcilePullRequest?s.onReconcilePullRequest(c,r.id):Promise.resolve())},children:[e.jsx(k,{size:13}),e.jsx("span",{children:n==="reconcile-pr"?"Checking":"Re-run verification"})]}):null]}):t.state==="released"||t.state==="rejected"||t.state==="ready_local"||t.state==="ready"||t.state==="published_hosted"?e.jsxs("div",{className:"composer-create-status-body composer-create-status-body-reveals",children:[e.jsx("p",{children:t.state==="released"?"The Agent update is saved and its Evals passed.":t.state==="rejected"?"The Agent update was not applied.":t.state==="published_hosted"?"Published to the hosted Profile.":"The Agent and its actions are ready to use."}),e.jsx("div",{className:"composer-create-hover-details",children:e.jsx(m,{run:t})})]}):e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:B(t)}),e.jsx(m,{run:t}),t.executionPolicy.pauseAllowed&&s.onPause?e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("pause",()=>s.onPause?.(c)??Promise.resolve())},children:[e.jsx(q,{size:13}),e.jsx("span",{children:n==="pause"?"Pausing":"Pause"})]}):null]})]})}function N(s){return s.questions.find(a=>a.status==="pending"&&a.required)??s.questions.find(a=>a.status==="pending")??null}function m({run:s}){const a=s.plan,i=s.target.kind==="agent",o=i?null:s.sourceRefs[0]??a?.sourcePlan[0]?.path??null,l=s.checkRefs.length||a?.checks.length||0,n=i?0:a?.requirements.length??0,u=i?[]:[...s.sourceRefs,...s.checkRefs].slice(0,4),t=P(a?.metadata);return!o&&l===0&&n===0&&u.length===0&&!t?null:e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"composer-create-facts",children:[t?e.jsx("span",{title:t.detail,children:t.label}):null,o?e.jsx("span",{title:o,children:o}):null,l?e.jsx("span",{children:i?`${l} Evals`:s.checkRefs.length?`${s.checkRefs.length} check refs`:`${l} checks`}):null,n?e.jsxs("span",{children:[n," setup rows"]}):null]}),u.length?e.jsx("ul",{className:"composer-create-refs","aria-label":"Source and check refs",children:u.map(h=>e.jsx("li",{children:e.jsx("code",{title:h,children:h})},h))}):null]})}function z(s){const a=s.target.kind==="agent";return s.state==="awaiting_questions"?"Question":s.state==="awaiting_plan_approval"?"Plan":s.state==="applying_source"?a?"Saving Agent":"Applying source":s.state==="running_checks"?"Running Evals":s.state==="evaluating"?a?"Checking Agent":"Evaluating":s.state==="awaiting_promotion"?a?"Update ready":"Candidate ready":s.state==="opening_pull_request"?"Opening review":s.state==="pull_request_open"?"Review open":s.state==="reconciling_release"?a?"Applying update":"Merging change":s.state==="released"?a?"Agent updated":"Released":s.state==="rejected"?a?"Current Agent kept":"Rejected":s.state==="paused"?"Paused":s.state==="ready"||s.state==="ready_local"?"Ready":s.state==="published_hosted"?"Published":s.state==="cancelled"?"Cancelled":s.state==="blocked"?"Blocked":s.state==="failed"?"Failed":s.operation==="improve"?"Improve":"Create"}function B(s){const a=s.state,i=s.target.kind==="agent";return a==="applying_source"?i?"Saving the approved Agent plan.":"Applying the approved source changes.":a==="running_checks"?i?"Running Evals against the Agent.":"Running checks against the candidate.":a==="evaluating"?i?"Checking the Agent's behavior.":"Evaluating the candidate against its Evals.":a==="opening_pull_request"?i?"Preparing the Agent update review.":"Opening the candidate review.":a==="reconciling_release"?"Applying the change and verifying the active Profile.":a==="pushing_hosted"?"Pushing the Profile source.":a==="running_hosted_checks"?i?"Running hosted Evals.":"Running hosted checks.":"Preparing the work."}function E(s){return["released","ready","ready_local","published_hosted"].includes(s)?"success":["rejected","blocked","failed","cancelled"].includes(s)?"danger":["awaiting_questions","awaiting_plan_approval","awaiting_promotion","pull_request_open","paused"].includes(s)?"warning":"info"}function I(s){return["planning","applying_source","running_checks","evaluating","opening_pull_request","reconciling_release","pushing_hosted","running_hosted_checks"].includes(s)}function S(s){return[...s.candidates].reverse().find(a=>a.target.kind==="agent")??null}function $(s,a){const i=s.evaluationReceipts.filter(o=>o.candidateId===a&&o.subject==="candidate");return i.length>0&&i.every(o=>o.status==="passed"&&o.publishGate!=="failed")}function T(s,a){const i=s.evaluationReceipts.find(n=>n.candidateId===a&&n.subject==="active"),o=s.evaluationReceipts.find(n=>n.candidateId===a&&n.subject==="candidate"),l=n=>n?.summaryCounts?`${n.summaryCounts.passed}/${n.summaryCounts.total}`:n?.status??"not run";return s.target.kind==="agent"?`Current Agent: ${l(i)} Evals passed. Updated Agent: ${l(o)} Evals passed.`:`Base Evals: ${l(i)} passed. Candidate Evals: ${l(o)} passed.`}export{U as ComposerCreateImproveStrip};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as x,j as t,A as te,X as ae,a_ as I,bz as ne,bA as se,bB as ie,bC as re,bD as oe,bE as de}from"./index-ByIQyiUl.js";import{P as k}from"./play-Be0XDHBu.js";import{r as le}from"./index-D4uCeiep.js";import{A as ce}from"./AppDialog-Bua3f-6v.js";import{A as ue}from"./MarkdownText-D7DT1k1k.js";function pe({badge:e,onPlay:a,titleElement:i="h3",video:n}){const[d,s]=x.useState(!1),r=x.useRef(null),u=i,l=`${n.id}-title`;function p(){if(a){a();return}le.flushSync(()=>s(!0));const c=r.current;c&&(c.load(),c.play().catch(()=>{}))}return t.jsxs(t.Fragment,{children:[t.jsxs("article",{className:"get-started-course-card","aria-labelledby":l,children:[t.jsx("button",{"aria-haspopup":"dialog","aria-label":`Play ${n.title}`,className:"get-started-course-open",onClick:p,type:"button"}),t.jsxs("div",{className:"get-started-course-media",children:[t.jsx("img",{alt:"",className:"get-started-course-poster",decoding:"async",src:n.posterUrl}),t.jsx("span",{className:"get-started-course-play-icon","aria-hidden":"true",children:t.jsx(k,{fill:"currentColor",size:19})}),e?t.jsx("span",{className:"get-started-course-badge","aria-hidden":"true",children:e}):null]}),t.jsxs("div",{className:"get-started-course-copy",children:[t.jsx(u,{id:l,children:n.title}),t.jsxs("div",{className:"get-started-course-meta","aria-label":`${n.title} details`,children:[t.jsx("span",{children:n.eyebrow}),t.jsx("span",{"aria-hidden":"true",children:"·"}),t.jsx("span",{children:n.duration})]}),n.description?t.jsx("p",{children:n.description}):null]})]}),d&&!a?t.jsx(L,{onClose:()=>s(!1),video:n,videoRef:r}):null]})}function L({autoAdvance:e=!1,contained:a=!1,inertExclusionSelector:i,navigation:n,onEnded:d,onClose:s,onPause:r,onTimeUpdate:u,video:l,videoRef:p}){return t.jsxs(ce,{ariaLabel:`${l.title} player`,backdropClassName:"get-started-course-player-backdrop",className:"get-started-course-player",contained:a,inertExclusionSelector:i,onClose:s,children:[t.jsxs("header",{className:"get-started-course-player-header",children:[t.jsxs("div",{className:"get-started-course-player-copy",children:[t.jsx("strong",{children:l.title}),t.jsxs("span",{children:[n?`Lesson ${n.currentIndex+1} of ${n.total}`:l.eyebrow," · ",l.duration]})]}),t.jsxs("div",{className:"get-started-course-player-actions",children:[n?t.jsxs(t.Fragment,{children:[t.jsx("button",{"aria-label":"Previous lesson",disabled:!n.onPrevious,onClick:n.onPrevious,title:"Previous lesson",type:"button",children:t.jsx(te,{size:17})}),t.jsx("button",{"aria-label":"Next lesson",disabled:!n.onNext,onClick:n.onNext,title:"Next lesson",type:"button",children:t.jsx(ue,{size:17})})]}):null,t.jsx("button",{"aria-label":"Close video player","data-autofocus":!0,onClick:s,title:"Close",type:"button",children:t.jsx(ae,{size:18})})]})]}),t.jsx("div",{className:"get-started-course-player-body",children:t.jsx("div",{className:"get-started-course-player-media",children:t.jsx("div",{className:"get-started-course-player-stage",children:t.jsx("video",{"aria-label":`${l.title} video`,className:"get-started-course-player-video",controls:!0,"data-auto-advance":e?"true":void 0,onEnded:c=>d?.(c.currentTarget),onPause:c=>r?.(c.currentTarget),onTimeUpdate:c=>u?.(c.currentTarget),playsInline:!0,poster:l.posterUrl,preload:"metadata",ref:p,src:l.videoUrl,children:l.captionsUrl?t.jsx("track",{kind:"captions",label:"English",src:l.captionsUrl,srcLang:"en"}):null},l.id)})})})]})}const fe=[{id:"post-training-from-first-principles",fullVideoId:"post-training-full-course",status:"draft",title:"Post-training from first principles",videoIds:["post-training-01-how-post-training-works","post-training-02-definitions","post-training-03-on-policy-off-policy","post-training-04-rewards-credit-assignment","post-training-05-verifiable-rewards-rlvr","post-training-06-ppo-grpo","post-training-07-distillation","post-training-08-opsd-sdft-sdpo","post-training-09-credible-experiments","post-training-10-technical-appendix"]},{id:"how-to-make-an-agent",status:"published",title:"Agents",playAllVideoId:"make-agent-tutorial",videoIds:["make-agent-tutorial-create","make-agent-tutorial-use","make-agent-tutorial-improve"]}],ge=[{id:"post-training-01-how-post-training-works",localPath:"courses/post-training/01-how-post-training-works.mp4",objectKey:"media/videos/aeb54dfb42eb940672df6e41bae075ffa5e45e1609e173a91e485c808b61fd4a.mp4",sha256:"aeb54dfb42eb940672df6e41bae075ffa5e45e1609e173a91e485c808b61fd4a",sizeBytes:2114638,durationSeconds:64.967},{id:"post-training-02-definitions",localPath:"courses/post-training/02-definitions.mp4",objectKey:"media/videos/c57d021989cdf058c683b9d017eb91bd23075e6bd00d0cc055e1285b3ea119fc.mp4",sha256:"c57d021989cdf058c683b9d017eb91bd23075e6bd00d0cc055e1285b3ea119fc",sizeBytes:11956956,durationSeconds:374.367},{id:"post-training-03-on-policy-off-policy",localPath:"courses/post-training/03-on-policy-off-policy.mp4",objectKey:"media/videos/a807bd7d704f8603addc875623a3cfcc938e60e0170d555d47569394a1c31762.mp4",sha256:"a807bd7d704f8603addc875623a3cfcc938e60e0170d555d47569394a1c31762",sizeBytes:2291518,durationSeconds:66.367},{id:"post-training-04-rewards-credit-assignment",localPath:"courses/post-training/04-rewards-credit-assignment.mp4",objectKey:"media/videos/685f7ecff7fcea262dd2cf60568079633816e9116efd80c069d0e20a4959a87f.mp4",sha256:"685f7ecff7fcea262dd2cf60568079633816e9116efd80c069d0e20a4959a87f",sizeBytes:5677418,durationSeconds:179.834},{id:"post-training-05-verifiable-rewards-rlvr",localPath:"courses/post-training/05-verifiable-rewards-rlvr.mp4",objectKey:"media/videos/0633584b2036843edd1ff9c63f0858db4272ddf55b10b160ec2ef6f7650c7d3a.mp4",sha256:"0633584b2036843edd1ff9c63f0858db4272ddf55b10b160ec2ef6f7650c7d3a",sizeBytes:5666892,durationSeconds:172.534},{id:"post-training-06-ppo-grpo",localPath:"courses/post-training/06-ppo-grpo.mp4",objectKey:"media/videos/66760fec7508c413844adb06c3f3920c5f7e3a874b18dc244ba090c55f452ff3.mp4",sha256:"66760fec7508c413844adb06c3f3920c5f7e3a874b18dc244ba090c55f452ff3",sizeBytes:5519257,durationSeconds:173.6},{id:"post-training-07-distillation",localPath:"courses/post-training/07-distillation.mp4",objectKey:"media/videos/3590f94325c1986f2025b42d182f04957e9eff6d5c06b1effc28dc369651c466.mp4",sha256:"3590f94325c1986f2025b42d182f04957e9eff6d5c06b1effc28dc369651c466",sizeBytes:4687640,durationSeconds:161.667},{id:"post-training-08-opsd-sdft-sdpo",localPath:"courses/post-training/08-opsd-sdft-sdpo.mp4",objectKey:"media/videos/3c45d8c1df0a24132ec425762dc6a4274b1e5cac6dfd220a2994f8754f431031.mp4",sha256:"3c45d8c1df0a24132ec425762dc6a4274b1e5cac6dfd220a2994f8754f431031",sizeBytes:5439835,durationSeconds:163.134},{id:"post-training-09-credible-experiments",localPath:"courses/post-training/09-credible-experiments.mp4",objectKey:"media/videos/fc701a8ba4b42de53bcaec3dcf191e6ec66f1dc0c48480f0aff01c3849aff023.mp4",sha256:"fc701a8ba4b42de53bcaec3dcf191e6ec66f1dc0c48480f0aff01c3849aff023",sizeBytes:6909405,durationSeconds:211.934},{id:"post-training-10-technical-appendix",localPath:"courses/post-training/10-technical-appendix.mp4",objectKey:"media/videos/17e6b5ef161fcdc97678e5b63650bffdb4b4b0d510ba75725a2af8a5db0d7e21.mp4",sha256:"17e6b5ef161fcdc97678e5b63650bffdb4b4b0d510ba75725a2af8a5db0d7e21",sizeBytes:5481950,durationSeconds:191.767},{id:"post-training-full-course",localPath:"courses/post-training/full-course.mp4",objectKey:"media/videos/d3df6a3b2ffe6c696b9dc0774ceaec19a2b8a92b170476cacb9df8dbdb2a526f.mp4",sha256:"d3df6a3b2ffe6c696b9dc0774ceaec19a2b8a92b170476cacb9df8dbdb2a526f",sizeBytes:55740426,durationSeconds:1760.192},{id:"openpond-agent-overview",localPath:"tutorials/what-is-an-openpond-agent.mp4",objectKey:"media/videos/421160f56d82abd6515df0d5ccf144591749e0ab1d58d630805c4807913812c7.mp4",sha256:"421160f56d82abd6515df0d5ccf144591749e0ab1d58d630805c4807913812c7",sizeBytes:5259848,durationSeconds:77.467},{id:"make-agent-tutorial",localPath:"tutorials/how-to-make-an-agent.mp4",objectKey:"media/videos/252d2f27076c904d85c9854c2f4c494fe9e92b3cea7d2c58ffbaa0323c17f255.mp4",sha256:"252d2f27076c904d85c9854c2f4c494fe9e92b3cea7d2c58ffbaa0323c17f255",sizeBytes:17339101,durationSeconds:273.067},{id:"make-agent-tutorial-create",localPath:"tutorials/how-to-make-an-agent-create.mp4",objectKey:"media/videos/322c999225d4759c34334eee22edee25a737fb06c5c6d66ee1f84485bb586c44.mp4",sha256:"322c999225d4759c34334eee22edee25a737fb06c5c6d66ee1f84485bb586c44",sizeBytes:6050301,durationSeconds:100.4},{id:"make-agent-tutorial-use",localPath:"tutorials/how-to-make-an-agent-use.mp4",objectKey:"media/videos/6e28bb710f90de8968fa18f996973b869e6748797739dd93cce49d8fbba564c1.mp4",sha256:"6e28bb710f90de8968fa18f996973b869e6748797739dd93cce49d8fbba564c1",sizeBytes:5084394,durationSeconds:75.1},{id:"make-agent-tutorial-improve",localPath:"tutorials/how-to-make-an-agent-improve.mp4",objectKey:"media/videos/fe8b62bf6ed5f5b933b0023dfdd9a06e69b5b352d4c702b671ec7677b395d58d.mp4",sha256:"fe8b62bf6ed5f5b933b0023dfdd9a06e69b5b352d4c702b671ec7677b395d58d",sizeBytes:6255324,durationSeconds:108.634}],me={playlists:fe,videos:ge},be="https://media.openpond.ai",K=me,he=new Map(K.playlists.map(e=>[e.id,e])),ye=new Map(K.videos.map(e=>[e.id,e]));function z(e){const a=he.get(e);if(!a)throw new Error(`Public video manifest is missing playlist ${e}`);return a}function Te(e,a){return a?`${be}/${e.objectKey}`:I(e.localPath)}function E(e){const a=ye.get(e);if(!a)throw new Error(`Public video manifest is missing ${e}`);return Te(a,!0)}const xe=E("make-agent-tutorial"),Ae=E("openpond-agent-overview");function ve(e){return E(`make-agent-tutorial-${e}`)}const Pe={title:"How to make an agent"},je=[{id:"create",label:"Create",title:"Create an Agent",subtitle:"Turn a plain-language purpose into a working Account Health Agent.",outroTitle:"Account Health Agent created",outroSubtitle:"The agent is ready to use. · AI-generated narration",cardDuration:1.5},{id:"use",label:"Use",title:"Use the Agent",subtitle:"Chat with the Account Health Agent and run its actions with approval.",outroTitle:"First agent run complete",outroSubtitle:"The result and supporting evidence are ready to review. · AI-generated narration",cardDuration:1.5},{id:"improve",label:"Improve",title:"Improve the Agent",subtitle:"Use real run evidence and Evals to make the Account Health Agent better.",outroTitle:"Account Health Agent improved",outroSubtitle:"The updated agent passed its Evals. · AI-generated narration",cardDuration:1.5}],$={tutorial:Pe,chapters:je},Ne=z("how-to-make-an-agent"),B=$.chapters,Ie={create:"1:24",use:"1:05",improve:"1:10"},S=Ne.title,Ee=$.tutorial.title,F="4:33",H={captionsUrl:se,chapterIds:B.map(e=>e.id),description:"Create, use, and improve an Account Health Agent in one continuous walkthrough.",duration:F,eyebrow:"Play all",id:"make-agent-tutorial",lessonNumber:null,posterUrl:ne,title:Ee,videoId:"play-all",videoUrl:xe},T=B.map((e,a)=>({captionsUrl:re(e.id),chapterIds:[e.id],description:e.subtitle,duration:Ie[e.id],eyebrow:`Lesson ${a+1}`,id:`make-agent-tutorial-${e.id}`,lessonNumber:a+1,posterUrl:ie(e.id),title:e.title,videoId:e.id,videoUrl:ve(e.id)})),we=[H,...T];function W(e){return we.find(a=>a.videoId===e)??H}function Se(e){const a=T.findIndex(i=>i.videoId===e);return a<0?null:T[a+1]?.videoId??null}const Re=[2,1,0];function _e({activeVideoId:e="play-all",autoplay:a=!0,onClose:i,onOpen:n,onSelectVideo:d,open:s=!1,playRequestId:r=0}={}){const u=x.useRef(null),l=W(e);x.useEffect(()=>{if(!s)return;const c=u.current;c&&(c.load(),r>0&&c.play().catch(()=>{}))},[l.id,s,r]);function p(){if(!a||!d)return;const c=Se(e);c&&d(c)}return t.jsxs("section",{className:"get-started-series","aria-label":S,children:[t.jsxs("article",{className:"get-started-playlist-card","aria-labelledby":"make-agent-series-title",children:[t.jsx("button",{"aria-haspopup":"dialog","aria-label":`Open ${S} playlist`,className:"get-started-playlist-open",onClick:n,type:"button"}),t.jsxs("div",{className:"get-started-playlist-stack","aria-hidden":"true",children:[Re.map((c,f)=>{const m=T[c];return t.jsx("div",{className:`get-started-playlist-poster layer-${f+1}`,children:t.jsx("img",{alt:"",decoding:"async",src:m.posterUrl})},m.id)}),t.jsx("span",{className:"get-started-course-play-icon",children:t.jsx(k,{fill:"currentColor",size:19})}),t.jsxs("span",{className:"get-started-playlist-count",children:[T.length," lessons"]})]}),t.jsxs("div",{className:"get-started-playlist-copy",children:[t.jsx("h1",{id:"make-agent-series-title",children:S}),t.jsxs("div",{className:"get-started-course-meta",children:[t.jsx("span",{children:"Walkthrough playlist"}),t.jsx("span",{"aria-hidden":"true",children:"·"}),t.jsx("span",{children:F})]}),t.jsx("p",{children:"Create, use, and improve an Account Health Agent, or play the full walkthrough."})]})]}),s&&i&&d?t.jsx(Oe,{activeVideoId:e,autoplay:a,contained:!0,inertExclusionSelector:".get-started-learning-panel",onClose:i,onEnded:p,onSelectVideo:d,videoRef:u}):null]})}function Oe({activeVideoId:e="play-all",autoplay:a=!0,contained:i=!1,inertExclusionSelector:n,onClose:d,onEnded:s,onSelectVideo:r=()=>{},videoRef:u}){const l=W(e),p=T.findIndex(m=>m.videoId===e),c=p>=0?T[p+1]?.videoId:void 0,f=p>0?T[p-1]?.videoId:void 0;return t.jsx(L,{autoAdvance:a&&p>=0,contained:i,inertExclusionSelector:n,navigation:p>=0?{currentIndex:p,onNext:c?()=>r(c):void 0,onPrevious:f?()=>r(f):void 0,total:T.length}:void 0,onClose:d,onEnded:s?()=>s():void 0,video:l,videoRef:u})}const U=z("post-training-from-first-principles"),q=U.title,ke=U.status;function h(e,a,i,n,d,s){const r=`courses/post-training/${a}`,u=`post-training-${a}`;return{captionsUrl:I(`${r}.vtt`),description:s,duration:d,eyebrow:n,id:u,lessonNumber:e,posterUrl:I(`${r}-poster.webp`),slug:a,title:i,videoUrl:E(u)}}const A=[h(1,"01-how-post-training-works","How post-training works","Start here","1:05","The choose, judge, and update loop behind every method in this series."),h(2,"02-definitions","Definitions","Reference","6:14","Policy notation, softmax, rollouts, advantages, gradients, GRPO, and the acronyms used throughout the series."),h(3,"03-on-policy-off-policy","On-policy and off-policy data","Data source","1:06","Why learner rollouts and teacher or stored data support different updates."),h(4,"04-rewards-credit-assignment","Rewards and credit assignment","RL foundation","3:00","Follow a code-repair trajectory from actions and observations to advantage."),h(5,"05-verifiable-rewards-rlvr","Verifiable rewards","RLVR","2:53","See how tests create scalable rewards—and how a model can exploit the checker."),h(6,"06-ppo-grpo","PPO and GRPO","Policy updates","2:54","Compare PPO's learned critic with GRPO's sibling-response baseline."),h(7,"07-distillation","Distillation","Teacher targets","2:42","Transfer a teacher's token distribution instead of copying one final answer."),h(8,"08-opsd-sdft-sdpo","OPSD, SDFT, and SDPO","Teacher evidence","2:43","Compare trusted solutions, demonstrations, and failure feedback at one prefix."),h(9,"09-credible-experiments","Credible experiments","Research design","3:32","Build versioned datasets, fair baselines, and claims that survive scrutiny."),h(10,"10-technical-appendix","Technical appendix","Advanced details","3:12","Inspect GRPO normalization, compressed teacher logits, reported method results, and sample routing.")],Le="29 min",O=U.fullVideoId;if(!O)throw new Error("Post-training playlist is missing its full video");const Y={captionsUrl:I("courses/post-training/full-course.vtt"),description:"All ten lessons in one continuous video for watching, sharing, or uploading.",duration:"29:20",eyebrow:"Full course",id:O,posterUrl:I("courses/post-training/full-course-poster.webp"),title:q,videoUrl:E(O)};function J(e){const a=e+1;return a<A.length?a:null}const V="Subject to change, lesson work in progress";function Ue(){const e=ke==="draft"?"Draft":"Published";return t.jsx("span",{"aria-label":`${e}: ${V}`,className:"get-started-playlist-status app-tooltip","data-tooltip":V,tabIndex:0,children:e})}const C="openpond.post-training-progress.v1",j=Object.freeze({}),Ce=1e3,X=new Set;let P=null,N=null,G=!1;function R(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Me(e){if(!e||typeof e!="object"||Array.isArray(e))return j;const a={};for(const[i,n]of Object.entries(e)){if(!i||!n||typeof n!="object"||Array.isArray(n))continue;const d=n,s=R(d.duration),r=R(d.currentTime),u=R(d.updatedAt);if(s===null||s<=0||r===null)continue;const l=d.completed===!0;a[i]={completed:l,currentTime:l?s:Math.min(s,Math.max(0,r)),duration:s,updatedAt:u===null?0:Math.max(0,u)}}return Object.keys(a).length>0?a:j}function Q(e){if(!e)return j;try{return Me(JSON.parse(e))}catch{return j}}function Ve(){if(typeof window>"u")return j;try{return Q(window.localStorage.getItem(C))}catch{return j}}function Z(){if(typeof window<"u"&&N!==null&&window.clearTimeout(N),N=null,!(typeof window>"u"||P===null))try{window.localStorage.setItem(C,JSON.stringify(P))}catch{}}function Ge(){typeof window>"u"||N!==null||(N=window.setTimeout(Z,Ce))}function De(){typeof window>"u"||G||(G=!0,window.addEventListener("pagehide",Z),window.addEventListener("storage",e=>{e.key===C&&(P=Q(e.newValue),X.forEach(a=>a()))}))}function ee(){return P===null&&(P=Ve()),De(),P}function D({completed:e=!1,currentTime:a,duration:i,lessonId:n}){if(!n||!Number.isFinite(i)||i<=0||!Number.isFinite(a))return;const d=ee(),s=d[n],r=!!(s?.completed||e),u=r?i:Math.min(i,Math.max(0,a));s&&s.completed===r&&Math.abs(s.currentTime-u)<.25&&Math.abs(s.duration-i)<.25||(P={...d,[n]:{completed:r,currentTime:u,duration:i,updatedAt:Date.now()}},Ge(),X.forEach(l=>l()))}function Ke(e){return!e||e.completed||e.currentTime<1?0:e.currentTime<e.duration-2?e.currentTime:0}const _=q,ze=[2,1,0];function $e({activeLessonIndex:e,fullCourseSelected:a=!1,autoplay:i=!0,open:n,onClose:d,onOpen:s,onSelectLesson:r,playRequestId:u=0}){const l=x.useRef(null),p=x.useRef(null),c=A[e]??A[0],f=a?Y:c;x.useEffect(()=>{if(!n)return;const o=l.current;if(!o)return;let b=!1;p.current=null,o.load();const y=()=>{if(b)return;const M=Ke(ee()[f.id]);M>0&&(o.currentTime=M),u>0&&o.play().catch(()=>{})};return o.readyState>=HTMLMediaElement.HAVE_METADATA?y():o.addEventListener("loadedmetadata",y,{once:!0}),()=>{b=!0,o.removeEventListener("loadedmetadata",y),Number.isFinite(o.duration)&&o.duration>0&&o.currentTime>0&&D({completed:o.ended,currentTime:o.currentTime,duration:o.duration,lessonId:f.id})}},[f.id,n,u]);function m(o,b=!1){!Number.isFinite(o.duration)||o.duration<=0||D({completed:b,currentTime:b?o.duration:o.currentTime,duration:o.duration,lessonId:f.id})}function w(o){if(!Number.isFinite(o.duration)||o.duration<=0)return;const b=Math.min(99,Math.floor(o.currentTime/o.duration*100)),y=p.current;y?.lessonId===f.id&&y.percent===b||(p.current={lessonId:f.id,percent:b},m(o))}function v(o){m(o,!0),i&&!a&&g()}function g(){const o=J(e);o!==null&&r(o)}return t.jsxs("section",{className:"get-started-series","aria-label":_,children:[t.jsxs("article",{className:"get-started-playlist-card","aria-labelledby":"post-training-series-title",children:[t.jsx("button",{"aria-haspopup":"dialog","aria-label":`Open ${_} playlist`,className:"get-started-playlist-open",onClick:s,type:"button"}),t.jsxs("div",{className:"get-started-playlist-stack","aria-hidden":"true",children:[ze.map((o,b)=>{const y=A[o];return t.jsx("div",{className:`get-started-playlist-poster layer-${b+1}`,children:t.jsx("img",{alt:"",decoding:"async",src:y.posterUrl})},y.id)}),t.jsx("span",{className:"get-started-course-play-icon",children:t.jsx(k,{fill:"currentColor",size:19})}),t.jsxs("span",{className:"get-started-playlist-count",children:[A.length," lessons"]})]}),t.jsxs("div",{className:"get-started-playlist-copy",children:[t.jsxs("div",{className:"get-started-playlist-title",children:[t.jsx("h1",{id:"post-training-series-title",children:_}),t.jsx(Ue,{})]}),t.jsxs("div",{className:"get-started-course-meta",children:[t.jsx("span",{children:"Learning series"}),t.jsx("span",{"aria-hidden":"true",children:"·"}),t.jsx("span",{children:Le})]}),t.jsx("p",{children:"Rewards, GRPO, RLVR, distillation, experiments, and a technical appendix."})]})]}),n?t.jsx(Be,{activeLessonIndex:e,autoplay:i,fullCourseSelected:a,onClose:d,onEnded:v,onPause:m,onSelectLesson:r,onTimeUpdate:w,videoRef:l}):null]})}function Be({activeLessonIndex:e,autoplay:a,fullCourseSelected:i,onClose:n,onEnded:d,onPause:s,onSelectLesson:r,onTimeUpdate:u,videoRef:l}){const p=A[e]??A[0],c=J(e),f=i?Y:p;return t.jsx(L,{autoAdvance:a&&!i,contained:!0,inertExclusionSelector:".get-started-learning-panel",navigation:i?void 0:{currentIndex:e,onNext:c!==null?()=>r(c):void 0,onPrevious:e>0?()=>r(e-1):void 0,total:A.length},onClose:n,onEnded:d,onPause:s,onTimeUpdate:u,video:f,videoRef:l})}const Fe={captionsUrl:de,description:"See how Profile Agents combine chat, direct actions, shared runtime surfaces, and Evals.",duration:"1:16",eyebrow:"Agent overview",id:"openpond-agent-overview",posterUrl:oe,title:"What is an OpenPond Agent?",videoUrl:Ae};function Xe(e={}){const[a,i]=x.useState(null),[n,d]=x.useState(null),s=e.makeAgentTutorial===void 0?a:e.makeAgentTutorial,r=e.postTrainingCourse===void 0?n:e.postTrainingCourse,u=!!(r||s);function l(){if(e.onOpenMakeAgentTutorial){e.onOpenMakeAgentTutorial();return}d(null),i({autoplay:!0,playRequestId:0,videoId:"create"})}function p(){if(e.onCloseMakeAgentTutorial){e.onCloseMakeAgentTutorial();return}i(null)}function c(v){if(e.onSelectMakeAgentTutorialVideo){e.onSelectMakeAgentTutorialVideo(v);return}i(g=>g&&{...g,playRequestId:g.playRequestId+1,videoId:v})}function f(){if(e.onOpenPostTrainingCourse){e.onOpenPostTrainingCourse();return}i(null),d({autoplay:!0,fullCourseSelected:!1,lessonIndex:0,playRequestId:0})}function m(){if(e.onClosePostTrainingCourse){e.onClosePostTrainingCourse();return}d(null)}function w(v){if(e.onSelectPostTrainingLesson){e.onSelectPostTrainingLesson(v);return}d(g=>g&&{...g,fullCourseSelected:!1,lessonIndex:v,playRequestId:g.playRequestId+1})}return t.jsx("section",{className:`get-started-view ${u?"course-player-open":""}`,"aria-label":"Walkthroughs",children:t.jsxs("div",{className:"get-started-shell",children:[t.jsxs("section",{className:"get-started-start-here","aria-labelledby":"get-started-start-here-title",children:[t.jsx("header",{className:"get-started-section-heading",children:t.jsx("h2",{id:"get-started-start-here-title",children:"Start here"})}),t.jsx("div",{className:"get-started-learning-grid",children:t.jsx(pe,{titleElement:"h1",video:Fe})})]}),t.jsxs("section",{className:"get-started-walkthroughs","aria-labelledby":"get-started-walkthroughs-title",children:[t.jsx("header",{className:"get-started-section-heading",children:t.jsx("h2",{id:"get-started-walkthroughs-title",children:"Walkthroughs"})}),t.jsx("div",{className:"get-started-learning-grid",children:t.jsx(_e,{activeVideoId:s?.videoId??"create",autoplay:s?.autoplay??!0,onClose:p,onOpen:l,onSelectVideo:c,open:!!s,playRequestId:s?.playRequestId??0})})]}),t.jsxs("section",{className:"get-started-learn","aria-labelledby":"get-started-learn-title",children:[t.jsx("header",{className:"get-started-section-heading",children:t.jsx("h2",{id:"get-started-learn-title",children:"Learn deeper"})}),t.jsx("div",{className:"get-started-learning-grid",children:t.jsx($e,{activeLessonIndex:r?.lessonIndex??0,autoplay:r?.autoplay??!0,fullCourseSelected:r?.fullCourseSelected??!1,open:!!r,onClose:m,onOpen:f,onSelectLesson:w,playRequestId:r?.playRequestId??0})})]})]})})}export{Xe as GetStartedView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.get-started-view{display:grid;align-content:start;width:min(1040px,calc(100% - 56px));min-width:0;justify-self:center;padding:34px 0 54px;color:var(--text)}.get-started-view.course-player-open{position:relative;align-self:stretch;align-content:stretch;justify-self:stretch;width:100%;height:100%;overflow:hidden;padding:0}.get-started-shell{display:grid;min-width:0;gap:46px}.get-started-learning-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;min-width:0}.get-started-series{min-width:0}.get-started-playlist-card{position:relative;min-width:0;color:#f5f5f5}.get-started-playlist-open{position:absolute;inset:0;z-index:5;width:100%;border:0;border-radius:12px;background:transparent;padding:0;cursor:pointer}.get-started-playlist-open:focus-visible{outline:2px solid rgba(103,232,249,.72);outline-offset:4px}.get-started-playlist-stack{position:relative;aspect-ratio:16 / 10;margin-right:8px}.get-started-playlist-poster{position:absolute;width:calc(100% - 12px);aspect-ratio:16 / 9;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#0d0e11;box-shadow:0 8px 20px #00000042;transition:transform .22s ease}.get-started-playlist-poster img{display:block;width:100%;height:100%;object-fit:cover}.get-started-playlist-poster.layer-1{top:0;left:12px;opacity:.48}.get-started-playlist-poster.layer-2{top:6px;left:6px;opacity:.72}.get-started-playlist-poster.layer-3{top:12px;left:0}.get-started-playlist-card:hover .get-started-playlist-poster.layer-1,.get-started-playlist-card:focus-within .get-started-playlist-poster.layer-1{transform:translate(3px,-2px)}.get-started-playlist-card:hover .get-started-playlist-poster.layer-3,.get-started-playlist-card:focus-within .get-started-playlist-poster.layer-3{transform:translate(-2px,2px)}.get-started-playlist-stack .get-started-course-play-icon{top:calc(50% + 4px);left:calc(50% - 6px);z-index:3}.get-started-playlist-count{position:absolute;right:13px;bottom:11px;z-index:3;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#050505e0;color:#c7c7c7;padding:4px 7px;font-size:10px;font-weight:600}.get-started-playlist-copy{display:grid;gap:7px;padding:10px 0 8px}.get-started-playlist-copy h1{margin:0;color:#f5f5f5;font-size:18px;font-weight:620;letter-spacing:-.025em;line-height:1.25}.get-started-playlist-title{display:flex;align-items:center;gap:7px;min-width:0}.get-started-playlist-status{display:inline-flex;align-items:center;flex:0 0 auto;min-height:17px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:#ffffff0e;color:#a5a5a5;padding:1px 6px;font-size:9px;font-weight:600;line-height:1}.get-started-playlist-status:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:2px}.get-started-playlist-copy p{display:-webkit-box;min-height:38px;margin:0;overflow:hidden;color:#858585;font-size:12px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.get-started-course-card{position:relative;min-width:0;color:#f5f5f5}.get-started-course-open{position:absolute;inset:0;z-index:2;width:100%;border:0;border-radius:12px 12px 0 0;background:transparent;padding:0;cursor:pointer}.get-started-course-open:focus-visible{outline:2px solid rgba(103,232,249,.72);outline-offset:4px}.get-started-course-media{position:relative;aspect-ratio:16 / 9;overflow:hidden;border-radius:12px 12px 0 0;background:#0d0e11}.get-started-course-poster{display:block;width:100%;height:100%;object-fit:cover;background:#0d0e11;transition:transform .28s ease}.get-started-course-card:hover .get-started-course-poster,.get-started-course-card:focus-within .get-started-course-poster{transform:scale(1.045)}.get-started-course-play-icon{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:#080808d1;color:#f5f5f5;box-shadow:0 12px 32px #0000005c;transform:translate(-50%,-50%);transition:transform .16s ease,background .16s ease}.get-started-course-badge{position:absolute;right:8px;bottom:8px;display:grid;place-items:center;min-width:28px;height:22px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#050505db;color:#c7c7c7;font-size:10px;font-variant-numeric:tabular-nums;font-weight:620}.get-started-course-card:hover .get-started-course-play-icon,.get-started-course-card:focus-within .get-started-course-play-icon{background:#141414f0;transform:translate(-50%,-50%) scale(1.05)}.get-started-course-copy{display:grid;gap:7px;padding:14px 0 8px}.get-started-course-meta{display:flex;align-items:center;gap:7px;color:#888;font-size:11px;font-weight:500}.get-started-course-copy h1,.get-started-course-copy h2,.get-started-course-copy h3,.get-started-section-heading h2{margin:0;color:#f5f5f5;font-weight:620;letter-spacing:-.025em}.get-started-course-copy h1,.get-started-course-copy h2,.get-started-course-copy h3{font-size:17px;line-height:1.25}.get-started-course-copy h3{font-weight:620}.get-started-course-copy p{display:-webkit-box;min-height:38px;margin:0;overflow:hidden;color:#858585;font-size:12px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.get-started-course-player-backdrop{position:absolute;inset:0;z-index:20;display:grid;min-width:0;min-height:0;background:#050505;padding:16px}.get-started-course-player{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;outline:0}.get-started-course-player-body,.get-started-course-player-media{display:grid;min-width:0;min-height:0}.get-started-course-player-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:50px;padding:0 2px 14px}.get-started-course-player-copy{display:grid;gap:3px;min-width:0}.get-started-course-player-header strong,.get-started-course-player-header span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.get-started-course-player-header strong{color:#f5f5f5;font-size:14px;font-weight:600}.get-started-course-player-header span{color:#858585;font-size:12px}.get-started-course-player-actions{display:flex;align-items:center;gap:4px}.get-started-course-player-actions button{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border:0;border-radius:7px;background:transparent;color:#aaa;padding:0;cursor:pointer}.get-started-course-player-actions button:hover:not(:disabled){background:#ffffff14;color:#f5f5f5}.get-started-course-player-actions button:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:2px}.get-started-course-player-actions button:disabled{color:#3f3f3f;cursor:default}.get-started-course-player-stage{display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden;border-radius:8px;background:#0d0e11}.get-started-course-player-video{display:block;width:100%;height:100%;object-fit:contain;background:#0d0e11}.get-started-learning-panel{grid-template-rows:41px 48px minmax(0,1fr)}.get-started-learning-panel-tabs{border-bottom:1px solid var(--border)}.get-started-learning-panel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;border-bottom:1px solid var(--border);padding:0 10px 0 12px}.get-started-learning-panel-toolbar>span{display:grid;gap:2px;min-width:0}.get-started-learning-panel-toolbar strong,.get-started-learning-panel-toolbar small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.get-started-learning-panel-toolbar strong{color:#e4e4e4;font-size:12px;font-weight:600}.get-started-learning-panel-toolbar small{color:#747474;font-size:9px}.get-started-learning-autoplay{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;border:0;background:transparent;color:#777;padding:4px 0;font-size:9px;cursor:pointer}.get-started-learning-autoplay:hover,.get-started-learning-autoplay.active{color:#d4d4d4}.get-started-learning-autoplay>i{position:relative;width:23px;height:13px;border-radius:999px;background:#343434;transition:background .14s ease}.get-started-learning-autoplay>i:after{content:"";position:absolute;top:2px;left:2px;width:9px;height:9px;border-radius:50%;background:#898989;transition:background .14s ease,transform .14s ease}.get-started-learning-autoplay.active>i{background:#555}.get-started-learning-autoplay.active>i:after{background:#eee;transform:translate(10px)}.get-started-learning-autoplay:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:2px;border-radius:4px}.get-started-learning-panel-toolbar.file>span{grid-template-columns:minmax(0,auto) auto;align-items:baseline;gap:6px}.get-started-learning-panel-body{min-width:0;min-height:0;overflow:hidden}.get-started-learning-panel-body.lessons{display:grid;grid-template-rows:minmax(0,1fr) auto}.get-started-learning-panel-body ol{display:grid;align-content:start;gap:3px;min-height:0;margin:0;overflow:auto;padding:7px;list-style:none}.get-started-learning-panel-body li{min-width:0}.get-started-learning-lesson-card{display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:stretch;column-gap:3px;row-gap:2px;min-width:0;border-radius:7px;background:transparent}.get-started-learning-lesson-button{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-width:0;border:0;border-radius:6px 0 0 6px;background:transparent;color:#a0a0a0;padding:6px;text-align:left;cursor:pointer}.get-started-learning-lesson-button[aria-current=true]{color:#f1f1f1}.get-started-learning-script-button{display:grid;place-items:center;width:36px;min-width:36px;border:0;border-radius:0 6px 6px 0;background:transparent;color:#686868;padding:0;cursor:pointer}.get-started-learning-script-button:hover{color:#dedede}.get-started-learning-script-button:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:1px}.get-started-learning-progress{grid-column:1 / -1;height:2px;margin:0 6px 3px;overflow:hidden;border-radius:999px;background:#ffffff13}.get-started-learning-progress>i{display:block;height:100%;border-radius:inherit;background:#8c8c8c;transition:width .22s linear}.get-started-learning-progress.complete>i{background:#c2c2c2}.get-started-learning-full-video{border-top:1px solid var(--border);padding:6px 7px 7px}.get-started-learning-full-video>button{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:9px;width:100%;border:0;border-radius:6px;background:transparent;color:#999;padding:7px 6px;text-align:left;cursor:pointer}.get-started-learning-full-video>button:hover,.get-started-learning-full-video>button[aria-current=true]{color:#f1f1f1}.get-started-learning-full-video>button:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:1px}.get-started-learning-full-video-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#ffffff12}.get-started-learning-full-video>button>span:last-child{display:grid;gap:2px;min-width:0}.get-started-learning-full-video strong{font-size:11px;font-weight:600}.get-started-learning-full-video small{color:#747474;font-size:9px}.get-started-learning-panel-body li img{display:block;width:74px;aspect-ratio:16 / 9;border-radius:4px;object-fit:cover}.get-started-learning-panel-body li span{display:grid;gap:3px;min-width:0}.get-started-learning-panel-body li small{color:#777;font-size:9px}.get-started-learning-panel-body li strong{overflow:hidden;font-size:11px;font-weight:570;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.get-started-learning-panel-body.script{display:grid}.get-started-learning-panel-body.script>.workspace-markdown-preview{min-height:0}.get-started-learning-panel-body.make-agent-steps{overflow:auto;padding:8px}.make-agent-steps>section+section{margin-top:12px}.make-agent-steps h3{margin:0 0 5px;color:#d8d8d8;font-size:11px;font-weight:620}.make-agent-steps ol{gap:2px;overflow:visible;padding:0}.make-agent-steps li{grid-template-columns:28px minmax(0,1fr);align-items:start;gap:7px;border-radius:6px;padding:6px}.make-agent-steps li>span{color:#6f6f6f;font-size:9px;line-height:1.4}.make-agent-steps li>div{display:grid;gap:3px;min-width:0}.make-agent-steps li strong{white-space:normal}.make-agent-steps li p{margin:0;color:#858585;font-size:10px;line-height:1.4}.get-started-script-status{display:grid;place-content:center;justify-items:center;gap:9px;min-height:0;color:#777;padding:20px;text-align:center;font-size:11px}.get-started-script-status.error{color:#a3a3a3}.get-started-script-status button{display:inline-flex;align-items:center;gap:6px;min-height:30px;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:#ffffff0d;color:#d0d0d0;padding:0 10px;font-size:10px;cursor:pointer}.get-started-start-here,.get-started-learn,.get-started-walkthroughs{display:grid;min-width:0;gap:16px}.get-started-section-heading{display:grid;width:100%;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:10px}.get-started-section-heading h2{font-size:22px;line-height:1.2}@media(max-width:900px){.get-started-view{width:min(100% - 28px,1040px);padding-top:24px}.get-started-learning-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.get-started-shell{gap:34px}.get-started-learning-grid{grid-template-columns:minmax(0,1fr)}.get-started-course-copy{padding:12px 0 8px}.get-started-course-copy h1{font-size:18px}.get-started-course-play-icon{width:42px;height:42px}.get-started-course-player-backdrop{padding:10px}.get-started-course-player-header{min-height:46px;padding-bottom:10px}.get-started-course-player-copy span{font-size:11px}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as b,j as e,au as ue,n as me,a as pe}from"./index-ByIQyiUl.js";import{s as Z,e as he,b as Q,d as K,f as ie}from"./training-model-data-B7-1Bxil.js";import{L as ge,l as xe,a as be,b as fe,c as je,m as ve,d as ye,e as Ne}from"./LabsRoute-CfOe0Zt5.js";import"./cloud-upload-5MGPLnaA.js";import"./MainPane-aOVlVyRK.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"./AppDialog-Bua3f-6v.js";import"./ComposerCreateImproveStrip-DOe5Otg6.js";import"./circle-alert-envg1D6O.js";import"./play-Be0XDHBu.js";import"./refresh-cw-DH0KLbdD.js";/* empty css */import"./UsageSettingsSection-DzMLUXAO.js";import"./index-D4uCeiep.js";function ke({receipts:t}){const[l,a]=b.useState(!1);if(!t.length)return e.jsx("div",{className:"training-run-placeholder",children:"No on-policy rollout receipts were recorded for this run."});const r=[...t].sort((s,o)=>o.updatedAt.localeCompare(s.updatedAt)),u=l?r:r.slice(0,24);return e.jsxs("div",{className:"training-rollout-receipts",children:[t.length>24?e.jsxs("div",{className:"training-rollout-receipt-controls",children:[e.jsx("span",{children:l?`Showing all ${t.length} receipts`:`Showing latest ${u.length} of ${t.length} receipts`}),e.jsx("button",{className:"training-text-button",type:"button",onClick:()=>a(s=>!s),children:l?"Show latest 24":`Show all ${t.length}`})]}):null,u.map(s=>e.jsxs("details",{children:[e.jsxs("summary",{children:[e.jsx("span",{children:we(s.providerTrace.rolloutId)}),e.jsx("strong",{children:s.status}),e.jsx("em",{children:s.reward.eligible&&s.reward.raw!=null?s.reward.raw.toFixed(3):s.failureClass??"not reward eligible"})]}),e.jsxs("dl",{className:"training-configuration-list",children:[e.jsx(L,{label:"Correlation",value:s.correlationId}),e.jsx(L,{label:"Task",value:s.taskId}),e.jsx(L,{label:"Policy",value:s.policy.modelId}),e.jsx(L,{label:"Checkpoint",value:s.policy.checkpointId??"Provider initial policy"}),e.jsx(L,{label:"Environment",value:`${s.environment.id}@${s.environment.version}`}),e.jsx(L,{label:"World",value:`${s.environment.worldId} · ${s.environment.worldHash}`}),e.jsx(L,{label:"Raw reward",value:s.reward.raw==null?"Not eligible":String(s.reward.raw)}),e.jsx(L,{label:"Components",value:JSON.stringify(s.reward.components)}),e.jsx(L,{label:"Outcome",value:s.verifier?.outcome??s.failureClass??"Pending"}),e.jsx(L,{label:"Trace",value:`${s.providerTrace.experimentId}/${s.providerTrace.rolloutId}`})]})]},s.id))]})}function L({label:t,value:l}){return e.jsxs("div",{children:[e.jsx("dt",{children:t}),e.jsx("dd",{children:l})]})}function we(t){return t.replace(/^lineage_/,"").slice(0,18)}function Re({detail:t,loading:l}){if(l&&!t)return e.jsx("div",{className:"training-run-placeholder",children:"Loading evaluation results…"});const a=t?.evaluation;return a?e.jsxs("div",{className:"training-run-evaluation",children:[e.jsxs("div",{className:"training-metric-summary",children:[e.jsx(q,{label:"Base score",value:X(a.base.meanScore)}),e.jsx(q,{label:"Trained score",value:X(a.trained.meanScore)}),e.jsx(q,{label:"Score change",value:Se(a.meanScoreDelta)}),e.jsx(q,{label:"Trained pass rate",value:$e(a.trained.passRate)})]}),a.base.count===0?e.jsx("p",{className:"training-muted",children:"Base-model scoring was not imported for this earlier run. New runs retain both base and trained evaluations."}):null,a.trained.count>0&&a.trained.scoredCount===0?e.jsx("p",{className:"training-muted",children:"Outputs were captured, but the grader was unavailable, so this run has no evaluation score."}):null,e.jsx("div",{className:"training-table-wrap",children:e.jsxs("table",{className:"training-data-table training-evaluation-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Test example"}),e.jsx("th",{children:"Base"}),e.jsx("th",{children:"Trained"}),e.jsx("th",{children:"Result"})]})}),e.jsx("tbody",{children:a.examples.map(r=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("details",{children:[e.jsx("summary",{children:r.taskId}),e.jsx(Me,{input:r.input,baseOutput:r.baseOutput,trainedOutput:r.trainedOutput,baseGrade:r.baseGrade,trainedGrade:r.trainedGrade})]})}),e.jsx("td",{children:ee(r.baseGrade)}),e.jsx("td",{children:ee(r.trainedGrade)}),e.jsx("td",{children:Le(r.baseGrade,r.trainedGrade)})]},r.taskId))})]})})]}):e.jsx("div",{className:"training-run-placeholder",children:"No scored evaluation results are available for this run."})}function Me({input:t,baseOutput:l,trainedOutput:a,baseGrade:r,trainedGrade:u}){const s=[...new Set([...r?.feedback??[],...u?.feedback??[]])];return e.jsxs("div",{className:"training-evaluation-output",children:[e.jsxs("div",{children:[e.jsx("span",{children:"Input"}),e.jsx("pre",{children:JSON.stringify(t,null,2)})]}),l?e.jsxs("div",{children:[e.jsx("span",{children:"Base output"}),e.jsx("pre",{children:JSON.stringify(l,null,2)})]}):null,a?e.jsxs("div",{children:[e.jsx("span",{children:"Trained output"}),e.jsx("pre",{children:JSON.stringify(a,null,2)})]}):null,s.length?e.jsxs("div",{children:[e.jsx("span",{children:"Grader feedback"}),e.jsx("p",{children:s.join(" ")})]}):null]})}function q({label:t,value:l}){return e.jsxs("div",{children:[e.jsx("span",{children:t}),e.jsx("strong",{children:l})]})}function X(t){return t==null?"Not recorded":t.toFixed(3)}function $e(t){return t==null?"Not recorded":`${Math.round(t*100)}%`}function Se(t){return t==null?"Not comparable":`${t>=0?"+":""}${t.toFixed(3)}`}function ee(t){return t?.status==="unavailable"?"Unavailable":t?.score==null?"Not scored":t.score.toFixed(3)}function Le(t,l){if(!l)return"Not evaluated";if(l.status==="unavailable")return"Unavailable";if(!t||t.score==null||l.score==null)return l.passed?"Passed":"Failed";const a=l.score-t.score;return Math.abs(a)<5e-4?"No change":a>0?`Improved ${a.toFixed(3)}`:`Regressed ${Math.abs(a).toFixed(3)}`}const te=[{key:"loss",label:"Loss",format:g},{key:"reward",label:"Reward",format:g},{key:"policyLoss",label:"Policy loss",format:g},{key:"advantageLoss",label:"Advantage loss",format:g},{key:"learningRate",label:"Learning rate",format:G},{key:"gradientNorm",label:"Gradient norm",format:g},{key:"meanTokenAccuracy",label:"Token accuracy",format:J},{key:"preferenceAccuracy",label:"Preference accuracy",format:J},{key:"preferenceMargin",label:"Preference margin",format:g},{key:"chosenReward",label:"Chosen reward",format:g},{key:"rejectedReward",label:"Rejected reward",format:g},{key:"chosenLogProbability",label:"Chosen log probability",format:g},{key:"rejectedLogProbability",label:"Rejected log probability",format:g},{key:"entropy",label:"Entropy",format:g},{key:"memoryBytes",label:"Memory",format:oe}],le=[{key:"meanReward",label:"Reward",format:g},{key:"meanReturn",label:"Return",format:g},{key:"learningRate",label:"Learning rate",format:G},{key:"policyLoss",label:"Policy loss",format:g},{key:"valueLoss",label:"Value loss",format:g},{key:"kl",label:"KL",format:g},{key:"entropy",label:"Entropy",format:g},{key:"policyClipFraction",label:"Policy clip fraction",format:J},{key:"valueClipFraction",label:"Value clip fraction",format:J},{key:"explainedVariance",label:"Explained variance",format:g}];function Te({detail:t,loading:l,error:a}){ue(a,{prefix:"Training metrics"});const r=b.useMemo(()=>Ie(t?.stepMetrics??[]),[t?.stepMetrics]),u=b.useMemo(()=>te.filter(n=>r.some(m=>m[n.key]!=null)),[r]),[s,o]=b.useState("loss"),v=u.find(n=>n.key===s)??u[0]??te[0],x=r.flatMap(n=>n[v.key]==null?[]:[{step:n.step,value:n[v.key]}]),p=b.useMemo(()=>Ee(t?.policyMetrics??[]),[t?.policyMetrics]),h=b.useMemo(()=>le.filter(n=>p.some(m=>m[n.key]!=null)),[p]),[f,j]=b.useState("meanReward"),y=h.find(n=>n.key===f)??h[0]??le[0],A=p.flatMap(n=>n[y.key]==null?[]:[{step:n.step,value:n[y.key]}]),R=p.flatMap(n=>n.meanReward==null?[]:[{step:n.step,value:n.meanReward}]),S=p.flatMap(n=>n.learningRate==null?[]:[{step:n.step,value:n.learningRate}]),c=b.useMemo(()=>Pe(t?.events??[]),[t?.events]),d=t?Ae(t):{};if(l&&!t)return e.jsx("div",{className:"training-run-placeholder",children:"Loading training metrics…"});if(a&&!t)return e.jsx("div",{className:"training-run-placeholder",children:"Training metrics are unavailable."});if(!t)return e.jsx("div",{className:"training-run-placeholder",children:"Select a training run to inspect its metrics."});if(p.length){if(p.some(m=>m.method==="grpo")||t.job.metadata.trainingMethod==="grpo")return e.jsx(ae,{learningRatePoints:S,rewardPoints:R,rolloutPoints:c});const n=p.at(-1);return e.jsxs("div",{className:"training-run-metrics",children:[e.jsxs("div",{className:"training-metric-summary",children:[e.jsx(T,{label:"Optimizer steps",value:n.step}),e.jsx(T,{label:"Latest reward",value:n.meanReward==null?null:g(n.meanReward)}),e.jsx(T,{label:"Policy loss",value:n.policyLoss==null?null:g(n.policyLoss)}),e.jsx(T,{label:"Rollouts",value:c.length||null}),e.jsx(T,{label:"Learning rate",value:n.learningRate==null?null:G(n.learningRate)}),e.jsx(T,{label:"Environment executions",value:n.environmentExecutions})]}),h.length?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"training-metric-tabs",role:"tablist","aria-label":"Policy metrics",children:h.map(m=>e.jsx("button",{className:m.key===y.key?"active":"",role:"tab",type:"button","aria-selected":m.key===y.key,onClick:()=>j(m.key),children:m.label},m.key))}),e.jsxs("div",{className:"training-metric-chart-grid",children:[c.length?e.jsx(B,{axisLabel:"Rollout",format:g,label:"Rollout reward",points:c}):null,e.jsx(B,{format:y.format,label:y.label,points:A})]})]}):null]})}const E=t.job.metadata.trainingMethod==="grpo",F=r.flatMap(n=>n.loss==null?[]:[n.loss]),C=r.flatMap(n=>n.learningRate==null?[]:[{step:n.step,value:n.learningRate}]),N=r.flatMap(n=>n.reward==null?[]:[{step:n.step,value:n.reward}]);if(E){const n=t.job.metadata.optimizerUpdatesObserved,m=typeof n=="number"&&Number.isFinite(n)?Math.max(0,n):null;return e.jsx(ae,{learningRatePoints:m==null?C:C.filter(I=>I.step<=m),rewardPoints:m==null?N:N.filter(I=>I.step<=m),rolloutPoints:c})}return e.jsxs("div",{className:"training-run-metrics",children:[e.jsxs("div",{className:"training-metric-summary",children:[e.jsx(T,{label:"Steps",value:d.steps??Fe(r)}),e.jsx(T,{label:"Final loss",value:d.trainLoss==null?F.at(-1)==null?null:g(F.at(-1)):g(d.trainLoss)}),e.jsx(T,{label:"Peak memory",value:Be(t.stepMetrics)}),e.jsx(T,{label:"Adapter parameters",value:d.adapterParameterCount==null?null:d.adapterParameterCount.toLocaleString()})]}),u.length?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"training-metric-tabs",role:"tablist","aria-label":"Training metrics",children:u.map(n=>e.jsx("button",{type:"button",role:"tab","aria-selected":n.key===v.key,className:n.key===v.key?"active":"",onClick:()=>o(n.key),children:n.label},n.key))}),e.jsxs("div",{className:"training-metric-chart-grid",children:[e.jsx(B,{label:v.label,points:x,format:v.format}),v.key!=="learningRate"&&C.length?e.jsx(B,{label:"Learning rate",points:C,format:G}):null]})]}):e.jsx("div",{className:"training-run-placeholder",children:"This earlier run recorded its final result but not per-step Trainer logs."})]})}function ae({rewardPoints:t,rolloutPoints:l,learningRatePoints:a}){return e.jsx("div",{className:"training-run-metrics",children:e.jsxs("div",{className:"training-metric-chart-grid three",children:[e.jsx(B,{format:g,label:"Reward",points:t}),e.jsx(B,{axisLabel:"Rollout",format:g,label:"Rollout reward",points:l}),e.jsx(B,{format:G,label:"Learning rate",points:a})]})})}function B({label:t,points:l,format:a,axisLabel:r="Optimizer step"}){return e.jsxs("section",{className:"training-metric-chart-card",children:[e.jsxs("header",{children:[e.jsx("h4",{children:t}),e.jsxs("span",{children:[l.length," ",l.length===1?"point":"points"]})]}),l.length?e.jsx(Ce,{axisLabel:r,format:a,label:t,points:l}):e.jsx("div",{className:"training-metric-chart-empty",children:"Not recorded"})]})}function Ce({label:t,points:l,format:a,axisLabel:r}){const o={top:20,right:20,bottom:58,left:64},v=l.map(n=>n.value),x=Math.min(...v),p=Math.max(...v),h=p-x||Math.max(Math.abs(p)*.1,1e-9),f=x-h*.08,j=p+h*.08,y=l[0]?.step??0,A=l.at(-1)?.step??y+1,R=Math.max(1,A-y),S=760-o.right,c=n=>l.length===1?(o.left+S)/2:o.left+(n-y)/R*(760-o.left-o.right),d=n=>o.top+(j-n)/(j-f)*(270-o.top-o.bottom),E=l.map((n,m)=>`${m?"L":"M"}${c(n.step).toFixed(2)},${d(n.value).toFixed(2)}`).join(" "),F=270-o.bottom,C=l.length>1?`${E} L${c(A).toFixed(2)},${F} L${c(y).toFixed(2)},${F} Z`:"",N=r!=="Optimizer step"?r:t==="Learning rate"?"Update":"Step";return e.jsx("figure",{className:"training-line-chart","aria-label":`${t} by ${r.toLowerCase()}`,children:e.jsxs("svg",{viewBox:"0 0 760 270",role:"img","aria-labelledby":`metric-${t.replaceAll(" ","-")}`,children:[e.jsx("title",{id:`metric-${t.replaceAll(" ","-")}`,children:`${t} by ${r.toLowerCase()}`}),[0,.25,.5,.75,1].map(n=>{const m=o.top+n*(270-o.top-o.bottom),I=j-n*(j-f);return e.jsxs("g",{children:[e.jsx("line",{className:"training-chart-grid",x1:o.left,x2:760-o.right,y1:m,y2:m}),e.jsx("text",{className:"training-chart-label",x:o.left-10,y:m+4,textAnchor:"end",children:a(I)})]},n)}),e.jsx("line",{className:"training-chart-axis",x1:o.left,x2:760-o.right,y1:270-o.bottom,y2:270-o.bottom}),e.jsx("path",{className:"training-chart-area",d:C}),e.jsx("path",{className:"training-chart-line",d:E}),l.map(n=>e.jsx("circle",{className:"training-chart-point",cx:c(n.step),cy:d(n.value),r:l.length===1?"4.5":"3",children:e.jsx("title",{children:`${N} ${n.step}: ${a(n.value)}`})},`${n.step}-${n.value}`)),e.jsx("text",{className:"training-chart-label",x:c(y),y:236,textAnchor:"middle",children:y}),l.length>1?e.jsx("text",{className:"training-chart-label",x:S,y:236,textAnchor:"middle",children:A}):null,e.jsx("text",{className:"training-chart-label axis-title",x:(o.left+760-o.right)/2,y:261,textAnchor:"middle",children:r})]})})}function Pe(t){return t.flatMap(l=>{if(l.type!=="metric"||l.payload.metricKind!=="rollout_trajectory")return[];const a=ne(l.payload.rolloutIndex),r=ne(l.payload.reward);return a==null||r==null?[]:[{step:a,value:r}]})}function ne(t){return typeof t=="number"&&Number.isFinite(t)?t:null}function T({label:t,value:l}){return e.jsxs("div",{children:[e.jsx("span",{children:t}),e.jsx("strong",{children:l??"Not recorded"})]})}function Ae(t){const l=[...t.events].reverse().find(a=>a.type==="metric"&&a.payload.metricKind!=="sft_step"&&(typeof a.payload.trainLoss=="number"||typeof a.payload.steps=="number"));return Object.fromEntries(Object.entries(l?.payload??{}).filter(a=>typeof a[1]=="number"))}function Fe(t){const l=t.at(-1);return l?`${l.step} of ${l.maxSteps}`:null}function Ie(t){const l=new Map;for(const a of t)l.set(a.step,a);return[...l.values()].sort((a,r)=>a.step-r.step)}function Ee(t){const l=new Map;for(const a of t)l.set(a.step,a);return[...l.values()].sort((a,r)=>a.step-r.step)}function Be(t){const l=t.flatMap(a=>a.memoryBytes==null?[]:[a.memoryBytes]);return l.length?oe(Math.max(...l)):null}function g(t){return new Intl.NumberFormat(void 0,{maximumFractionDigits:4}).format(t)}function G(t){return t===0?"0":t.toExponential(2)}function J(t){return`${(t*100).toFixed(1)}%`}function oe(t){return`${(t/1024**3).toFixed(2)} GB`}const ze=new Set(["queued","starting","running","cancelling","reconciling"]);function Oe(t,l,a){const[r,u]=b.useState(null),[s,o]=b.useState(!1),[v,x]=b.useState(null),p=b.useCallback(async()=>{if(!t||!l)return null;o(!0);try{const h=await me.trainingRunDetail(t,l);return u(h),x(null),h}catch(h){return x(h instanceof Error?h.message:String(h)),null}finally{o(!1)}},[t,l]);return b.useEffect(()=>{u(null),x(null),!(!t||!l)&&p()},[t,l,p]),b.useEffect(()=>{if(!t||!l||!a||!ze.has(a))return;const h=window.setInterval(()=>{p()},2e3);return()=>window.clearInterval(h)},[t,l,a,p]),{detail:r,error:v,loading:s,refresh:p}}function Ve({title:t,status:l,statusValue:a,versionStatus:r,method:u,baseModel:s,taskset:o,compute:v,duration:x,output:p,reward:h,telemetry:f,evidence:j,configuration:y,children:A,failure:R,onOpenTaskset:S}){const c=f?.cost.providerReportedUsd??f?.cost.estimatedUsd??j?.cost.totalUsd??null;return e.jsxs("div",{className:"labs-model-run-summary",children:[e.jsx("section",{className:"labs-run-outcome-card",children:e.jsx("header",{children:e.jsxs("div",{children:[e.jsxs("div",{className:"labs-run-title-row",children:[e.jsx("h2",{children:t}),e.jsx(ge,{label:l,value:a})]}),e.jsxs("p",{children:[Ue(u)," on ",s]})]})})}),A,e.jsxs("section",{className:"labs-run-summary-card",children:[e.jsx("header",{children:e.jsx("h3",{children:"Run setup"})}),e.jsxs("dl",{className:"labs-run-detail-list",children:[e.jsx($,{label:"Training method",value:u}),e.jsx($,{label:"Base model",value:s}),e.jsx($,{label:"Compute",value:v}),e.jsx($,{label:"Output",value:p}),r?e.jsx($,{label:"Version status",value:r}):null,e.jsx($,{label:"Duration",value:x}),e.jsx($,{label:"Run cost",value:c===null?"Not reported":`$${c.toFixed(4)}`}),e.jsx($,{label:"Final reward",value:h===null?"Not reported":h.toFixed(4)}),y.map(d=>e.jsx($,{label:d.label,value:d.value},d.label)),f||j?e.jsxs(e.Fragment,{children:[e.jsx(V,{label:"GPU",value:De(f,j)}),e.jsx(V,{label:"Tokens",value:`${D(f?.usage.promptTokens??j?.usage.inputTokens??null)} prompt · ${D(f?.usage.generatedTokens??j?.usage.outputTokens??null)} generated`}),e.jsx(V,{label:"Trajectories",value:`${D(f?.usage.successfulTrajectories??j?.reward.eligibleTrajectoryCount??null)} succeeded · ${D(f?.usage.failedTrajectories??(j?j.reward.trajectoryCount-j.reward.eligibleTrajectoryCount:null))} failed`}),e.jsx(V,{label:"Optimizer updates",value:D(f?.usage.optimizerSteps??j?.progress.committedOptimizerSteps??null)}),e.jsx(V,{label:"GPU time",value:f?.usage.gpuSeconds==null?"Not reported":`${f.usage.gpuSeconds.toFixed(1)} seconds`})]}):e.jsx($,{label:"Resource usage",value:"Not retained for this run"}),e.jsxs("div",{children:[e.jsx("dt",{children:"Taskset"}),e.jsx("dd",{children:S?e.jsxs("button",{className:"labs-run-taskset-link",type:"button",onClick:S,children:[e.jsx("span",{children:o}),e.jsx(pe,{"aria-hidden":"true",size:14})]}):o})]})]})]}),R?e.jsx("p",{className:"labs-training-error",children:R}):null]})}function $({label:t,value:l}){return e.jsxs("div",{children:[e.jsx("dt",{children:t}),e.jsx("dd",{children:l})]})}function V({label:t,value:l}){return e.jsx($,{label:t,value:l})}function De(t,l){const a=t?.resource.gpuCount??l?.resource.gpuCount??null,r=t?.resource.gpuType??l?.resource.gpuType??null;return a===null&&r===null?"Not reported":`${a??"Unknown"} × ${r?Ge(r):"Unreported"}`}function D(t){return t===null?"Not reported":t.toLocaleString()}function Ue(t){return t==="RFT"?"Reinforcement fine-tuning":`${t} training`}function Ge(t){return t.split(" · ").map(l=>l.replaceAll("_"," ").replace(/\b[a-z]/g,a=>a.toUpperCase())).join(" · ")}function gt({connection:t,selectedEntryKey:l,workproduct:a,runs:r,training:u,onOpenDataset:s}){const[o,v]=b.useState("artifacts"),x=u.payload,p=b.useMemo(()=>xe(a,r,x),[r,x,a]),h=b.useMemo(()=>be(a,r,x),[r,x,a]),f=b.useMemo(()=>fe(a,x),[x,a]),j=b.useMemo(()=>je(a,r,x),[r,x,a]),y=b.useMemo(()=>new Map(j.map(i=>[i.id,i])),[j]),R=b.useMemo(()=>ve(p,h),[p,h]).find(i=>i.key===l)??null,S=l.startsWith("model-run:")?l.slice(10):null,c=S?f.find(i=>i.id===S)??null:R?.job?f.find(i=>i.id===R.job?.metadata.modelRunId)??null:null,d=R?.job??(c?x?.jobs.find(i=>i.id===c.id||i.metadata.modelRunId===c.id)??null:null),E=b.useMemo(()=>ye(p,h,f),[p,f,h]),F=E.findIndex(i=>i.key===l||d!==null&&i.job?.id===d.id||c!==null&&i.lifecycleRun?.id===c.id),C=F<0?null:E.length-F,N=R?.version??(c?.adapterArtifactLineageId?h.find(i=>i.lineage.id===c.adapterArtifactLineageId)??null:null),n=(c?x?.modelVersions.find(i=>i.id===c.modelVersionId)?.baseModel.modelId:null)??x?.modelVersions.filter(i=>i.modelId===a.id&&i.kind==="base_reference").sort((i,de)=>de.version-i.version)[0]?.baseModel.modelId??null,m=N?.lineage.frozenEvaluationArtifactId??null,I=N?.lineage.managedServing??null,z=N?.plan??(d?y.get(d.planId)??null:null),_=N?.taskset??Ne(x).find(i=>i.id===(c?.taskset.id??z?.tasksetId))??null,w=Oe(t,d?.id??null,d?.status??null),Y=d?x?.rolloutReceipts.filter(i=>i.jobId===d.id)??[]:[],M=w.detail?.managedEvidence??null,W=[{id:"artifacts",label:"Artifacts"},...w.loading||w.detail?.evaluation||m||M?.evaluations.length?[{id:"evaluation",label:"Evaluation"}]:[],...Y.length?[{id:"rollouts",label:"Rollouts"}]:[],...I?[{id:"serving",label:"Serving"}]:[],...d?[{id:"activity",label:"Activity"}]:[]],P=W.some(i=>i.id===o)?o:W[0].id;return!R&&!c?e.jsx("div",{className:"labs-model-version-detail",children:e.jsx("div",{className:"training-run-placeholder",children:"This training attempt is no longer available."})}):e.jsxs("div",{className:"labs-model-version-detail",children:[e.jsx(Ve,{baseModel:_e(z,n),compute:c?K(c.destinationId):z?K(z.destinationId):d?K(d.destinationId):"Not recorded",duration:c?Q(c.startedAt,c.completedAt):d?Q(d.startedAt,d.completedAt):"Not recorded",failure:d?.error??c?.failure??null,configuration:qe(z),evidence:M,method:he(c?.method??z?.recipe.method),output:N?`Version ${N.number}`:"No version created",reward:c?.reward?.raw??M?.reward.finalMean??null,status:c?Z(c.status):d?Z(d.status):"Imported",statusValue:c?.status??d?.status??"imported",taskset:_?.name??"Unavailable",telemetry:c?.receipt?.telemetry??null,title:c||d?C?`Run ${C}`:"Run details":N?`Version ${N.number}`:"Run details",versionStatus:N?N.current?"Active":"Available":null,onOpenTaskset:_?()=>s(_.id):void 0,children:d?e.jsx(Te,{detail:w.detail,error:w.error,loading:w.loading}):null}),e.jsxs("section",{className:"labs-run-detail-tabs",children:[e.jsx("div",{className:"training-detail-tabs",role:"tablist","aria-label":"Run details",children:W.map(i=>e.jsx("button",{"aria-controls":`run-detail-panel-${i.id}`,"aria-selected":P===i.id,className:P===i.id?"active":void 0,id:`run-detail-tab-${i.id}`,role:"tab",type:"button",onClick:()=>v(i.id),children:i.label},i.id))}),e.jsxs("div",{"aria-labelledby":`run-detail-tab-${P}`,className:"labs-run-detail-tab-panel",id:`run-detail-panel-${P}`,role:"tabpanel",children:[P==="artifacts"?e.jsxs("dl",{className:"training-configuration-list",children:[e.jsx(k,{label:"Training attempt",value:d?.id??"Provider import"}),e.jsx(k,{label:"Taskset",value:_?.name??"Unavailable"}),e.jsx(k,{label:"Prepared data",value:d?.bundleHash??"Provider managed"}),e.jsx(k,{label:"Version ID",value:N?.lineage.id??"No version created"}),M?.checkpoint?e.jsxs(e.Fragment,{children:[e.jsx(k,{label:"Checkpoint",value:M.checkpoint.id}),e.jsx(k,{label:"Checkpoint size",value:M.checkpoint.sizeBytes==null?"Not reported":ce(M.checkpoint.sizeBytes)}),e.jsx(k,{label:"Checkpoint hash",value:M.checkpoint.sha256??"Not reported"})]}):null,M?.canonicalPublication.state?e.jsx(k,{label:"Registry publication",value:H(M.canonicalPublication.state)}):null]}):null,P==="evaluation"?e.jsxs("div",{className:"training-run-evaluation",children:[w.loading||w.detail?.evaluation?e.jsx(Re,{detail:w.detail,loading:w.loading}):null,!w.detail?.evaluation&&M?.evaluations.length?e.jsx("dl",{className:"labs-inline-facts",children:M.evaluations.map(i=>e.jsx(k,{label:i.kind==="baseline"?"Baseline score":"Candidate score",value:i.score==null?"Not reported":i.score.toFixed(6)},`${i.kind}:${i.policyVersion}`))}):null,m?e.jsx("button",{className:"training-button secondary",type:"button",onClick:()=>{u.actions.downloadArtifact(m)},children:"Download evaluation receipt"}):null]}):null,P==="rollouts"?e.jsx(ke,{receipts:Y}):null,P==="serving"?e.jsx(Je,{projection:I}):null,P==="activity"&&d?e.jsx(We,{error:d.error??w.error,events:w.detail?.events??[],loading:w.loading}):null]})]})]})}function _e(t,l=null){if(!t)return l?re(l):"Not recorded";const a=t.recipe.method==="sft"||t.recipe.method==="grpo"?t.recipe.baseModel:t.recipe.method==="dpo"?t.recipe.policyModel:t.recipe.method==="ppo"?t.recipe.policyOptimization.policyModel:null;return a?re(a.id):"Not recorded"}function re(t){return t.split("/").at(-1)??t}function qe(t){if(!t)return[];const l=t.recipe;return l.method==="grpo"?[{label:"LoRA rank",value:String(l.lora.rank)},{label:"Learning rate",value:se(l.optimizer.learningRate)},{label:"Optimizer steps",value:String(l.optimizer.maxSteps)},{label:"Rollouts per update",value:String(l.rollout.groupSize)},{label:"Rollout concurrency",value:String(l.rollout.concurrency)},{label:"Max output tokens",value:l.rollout.maxOutputTokens.toLocaleString()},{label:"Temperature",value:String(l.rollout.temperature)},{label:"Top P",value:String(l.rollout.topP)}]:l.method==="sft"||l.method==="dpo"?[{label:"LoRA rank",value:String(l.lora.rank)},{label:"Learning rate",value:se(l.optimizer.learningRate)},{label:"Optimizer steps",value:String(l.optimizer.maxSteps)}]:[]}function se(t){return t===0?"0":t.toExponential(2)}function ce(t){const l=["B","KB","MB","GB","TB"];let a=t,r=0;for(;a>=1024&&r<l.length-1;)a/=1024,r+=1;return`${a.toFixed(r===0?0:2)} ${l[r]}`}function k({label:t,value:l}){return e.jsxs("div",{children:[e.jsx("dt",{children:t}),e.jsx("dd",{children:l})]})}function Je({projection:t}){return t?e.jsxs("dl",{className:"labs-inline-facts",children:[e.jsx(k,{label:"Admission",value:t.customerBindingAllowed?"Allowed":"Pending"}),e.jsx(k,{label:"Artifact",value:H(t.canonicalArtifactState)}),e.jsx(k,{label:"Deployment",value:H(t.canonicalDeploymentState)}),e.jsx(k,{label:"Base profile",value:t.baseProfileId??"Pending"}),e.jsx(k,{label:"Last synchronized",value:ie(t.lastSyncedAt)}),t.lastError?e.jsx(k,{label:"Synchronization",value:t.lastError}):null]}):null}function H(t){return t?t.replaceAll("_"," ").replace(/^./,l=>l.toUpperCase()):"Pending"}function We({error:t,events:l,loading:a}){return a&&!l.length?e.jsx("div",{className:"training-run-placeholder",children:"Loading run events…"}):l.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:"Time"}),e.jsx("th",{children:"Event"}),e.jsx("th",{children:"Details"})]})}),e.jsxs("tbody",{children:[l.map(r=>e.jsxs("tr",{children:[e.jsx("td",{children:ie(r.timestamp)}),e.jsx("td",{children:Ke(r.type)}),e.jsx("td",{children:He(r)})]},r.id)),t?e.jsxs("tr",{children:[e.jsx("td",{children:"Not available"}),e.jsx("td",{children:"Failure"}),e.jsx("td",{children:t})]}):null]})]})}):e.jsx("div",{className:"training-run-placeholder",children:t??"No normalized run events were recorded."})}function Ke(t){return t.replaceAll("_"," ").replace(/^./,l=>l.toUpperCase())}function He(t){const l=t.payload,a=O(l.step),r=O(l.maxSteps);if(t.type==="start")return typeof l.device=="string"?`Worker started on ${l.device}.`:"Worker started.";if(t.type==="progress"&&a!=null)return r==null?`Step ${a}.`:`Step ${a} of ${r}.`;if(t.type==="metric"){const u=typeof l.metricKind=="string"?l.metricKind.replaceAll("_"," "):"metric",s=[U("loss",l.loss),U("reward",l.meanReward??l.reward),U("policy loss",l.policyLoss),U("value loss",l.valueLoss),U("preference accuracy",l.preferenceAccuracy,Ye)].filter(o=>!!o);return`${u}${a==null?"":` · step ${a}`}${s.length?` · ${s.join(" · ")}`:""}`}if(t.type==="checkpoint"){const u=O(l.policyVersion),s=O(l.sizeBytes),o=[u==null?null:`policy ${u}`,s==null?null:ce(s),l.final===!0?"final":null].filter(v=>!!v);return o.length?`Checkpoint committed · ${o.join(" · ")}.`:"Checkpoint committed."}if(t.type==="complete"){const u=O(l.artifactCount);return u==null?"Worker completed.":`Worker completed with ${u} artifacts.`}return t.type==="failure"&&typeof l.message=="string"?l.message:Object.keys(l).length?JSON.stringify(l):"Recorded."}function U(t,l,a=r=>new Intl.NumberFormat(void 0,{maximumFractionDigits:4}).format(r)){const r=O(l);return r==null?null:`${t} ${a(r)}`}function O(t){return typeof t=="number"&&Number.isFinite(t)?t:null}function Ye(t){return`${(t*100).toFixed(1)}%`}export{gt as LabModelVersionDetailPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as n,n as g,j as e,$ as z,X as y,aN as w,F}from"./index-ByIQyiUl.js";import{M as L,F as $}from"./MarkdownText-D7DT1k1k.js";import{I as k}from"./MainPane-aOVlVyRK.js";import"./cloud-upload-5MGPLnaA.js";import"./square-pen-CqfsvR_n.js";import"./arrow-up-right-ecwcx3xt.js";import"./square-CemI-0g5.js";import"./folder-open-Dq3ZjeEP.js";function H({connection:a,expanded:l,selection:s,onClose:j,onResizeStart:h,onToggleExpanded:v}){const c=`${s.scope}:${s.name}`,[o,N]=n.useState({selectionKey:c,path:s.files[0]??"SKILL.md"}),r=o.selectionKey===c&&s.files.includes(o.path)?o.path:s.files[0]??"SKILL.md",[d,u]=n.useState(null),[m,p]=n.useState(null),[S,x]=n.useState(!1);n.useEffect(()=>{if(!a){u(null),p("Connect to the local OpenPond server to load this skill source.");return}let i=!1;return x(!0),p(null),u(null),g.skillSourceFile(a,s.scope,s.name,r).then(t=>{i||u(t)}).catch(t=>{i||p(t instanceof Error?t.message:String(t))}).finally(()=>{i||x(!1)}),()=>{i=!0}},[a,r,s.name,s.scope]);const f=r.split("/").at(-1)??r;return e.jsxs("aside",{className:`workspace-diff-panel native-skill-sidebar lab-skill-sidebar ${l?"expanded":""}`,"aria-label":`Skill package source: ${s.name}`,children:[l?null:e.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize skill source",onPointerDown:h}),e.jsxs("div",{className:"workspace-diff-topbar native-skill-sidebar-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Selected skill file",children:e.jsxs("button",{className:"workspace-diff-tab active",type:"button",role:"tab","aria-selected":!0,children:[e.jsx(b,{path:r}),e.jsx("span",{children:f})]})}),e.jsxs("div",{className:"workspace-diff-toolbar-actions",children:[e.jsx("button",{className:"diff-icon-button",type:"button",title:l?"Dock sidebar":"Expand sidebar","aria-label":l?"Dock sidebar":"Expand sidebar",onClick:v,children:l?e.jsx(L,{size:14}):e.jsx(z,{size:14})}),e.jsx("button",{className:"diff-icon-button",type:"button",title:"Close skill source","aria-label":"Close skill source",onClick:j,children:e.jsx(y,{size:14})})]})]}),e.jsxs("div",{className:"lab-skill-source-layout",children:[e.jsxs("nav",{className:"lab-skill-file-list","aria-label":`${s.name} package files`,children:[e.jsx("div",{className:"lab-skill-file-list-heading",children:"Package files"}),s.files.map(i=>e.jsxs("button",{"aria-current":i===r?"page":void 0,className:i===r?"active":void 0,type:"button",title:i,onClick:()=>N({selectionKey:c,path:i}),children:[e.jsx(b,{path:i}),e.jsx("span",{children:i})]},i))]}),e.jsxs("div",{className:"native-skill-sidebar-body lab-skill-source-body",children:[e.jsxs("header",{className:"native-skill-source-header",children:[e.jsxs("div",{className:"lab-skill-source-title-row",children:[e.jsx("h2",{children:s.name}),e.jsx("span",{children:C(s.scope)})]}),e.jsx("p",{children:s.description}),e.jsx("code",{children:s.packagePath})]}),S?e.jsxs("div",{className:"lab-skill-source-state",children:[e.jsx(w,{className:"spin",size:16})," Loading source…"]}):m?e.jsx("div",{className:"lab-skill-source-state error",children:m}):d?.isBinary?e.jsxs("div",{className:"lab-skill-source-state",children:[e.jsx(k,{size:18}),"Binary asset · ",B(d.byteSize)]}):e.jsx("pre",{className:"native-skill-markdown-source","aria-label":`${f} source`,children:e.jsx("code",{children:d?.content??""})})]})]})]})}function C(a){return a==="codex"?"Codex skill":a==="extension"?"GitHub extension":"OpenPond skill"}function b({path:a}){const l=a.split(".").at(-1)?.toLowerCase();return["avif","gif","jpeg","jpg","png","webp"].includes(l??"")?e.jsx(k,{size:14}):["md","txt","yaml","yml"].includes(l??"")?e.jsx(F,{size:14}):e.jsx($,{size:14})}function B(a){return a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1048576).toFixed(1)} MB`}export{H as LabSkillSidebar};
|