openpond 0.2.50 → 0.2.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/app-server.js +1 -1
  2. package/dist/chunks/{app-server-runtime-OG7GYIIA.js → app-server-runtime-NITNSHYS.js} +1 -1
  3. package/dist/chunks/{chunk-42GOV5ZU.js → chunk-AV3WI7JZ.js} +1 -1
  4. package/dist/chunks/{chunk-OC6UWKBL.js → chunk-CFLMKFOE.js} +1 -1
  5. package/dist/chunks/{chunk-UBFRWC6I.js → chunk-FQZFLNLY.js} +1 -1
  6. package/dist/chunks/{chunk-JCCU3VFK.js → chunk-HJEY5LBD.js} +1 -1
  7. package/dist/chunks/{chunk-TBNBCOW7.js → chunk-L3V4QKRV.js} +1 -1
  8. package/dist/chunks/chunk-PVSUQGWK.js +9 -0
  9. package/dist/chunks/{chunk-ZCWHVLJ4.js → chunk-T5T7NCHJ.js} +1 -1
  10. package/dist/chunks/{chunk-2ZJJFBIA.js → chunk-USMZT5FZ.js} +12 -12
  11. package/dist/chunks/{chunk-V67DJQQ3.js → chunk-XC7AHL57.js} +114 -113
  12. package/dist/chunks/{chunk-O7VGFMDO.js → chunk-ZBZBV5TB.js} +1 -1
  13. package/dist/chunks/{cli-ZLDLOKPL.js → cli-ZYFSCHZK.js} +1 -1
  14. package/dist/chunks/{dist-BLBZENVB.js → dist-5VFPYEIV.js} +1 -1
  15. package/dist/chunks/{hosted-experiment-improvement-NTYYSPQX.js → hosted-experiment-improvement-MGBPXXW2.js} +1 -1
  16. package/dist/chunks/{hosted-harness-runtime-FZZLWLBR.js → hosted-harness-runtime-WOLADXXP.js} +1 -1
  17. package/dist/chunks/{hosted-profile-compiler-JODGZCA7.js → hosted-profile-compiler-NBMUCZVS.js} +1 -1
  18. package/dist/chunks/{hosted-profile-evaluation-preparation-F2SPAEKK.js → hosted-profile-evaluation-preparation-I6H6RFT6.js} +1 -1
  19. package/dist/chunks/{src-4RLFNNVK.js → src-MGP3OYHL.js} +115 -115
  20. package/dist/chunks/{workspaces-XIQNPAP7.js → workspaces-MFZ3OO6O.js} +1 -1
  21. package/dist/cli.js +1 -1
  22. package/dist/web/assets/App-Dg6mZIQk.js +234 -0
  23. package/dist/web/assets/{AppDialog-1iGodoot.js → AppDialog-gcj3rrTZ.js} +1 -1
  24. package/dist/web/assets/{AppTerminalPanel-udtBdWFn.js → AppTerminalPanel-Be-E4qZF.js} +2 -2
  25. package/dist/web/assets/{AppsView-DhKsU4yi.js → AppsView-BdyPNSpT.js} +1 -1
  26. package/dist/web/assets/{BrowserSidebar-BnOyqIQT.js → BrowserSidebar-CcQxU0uO.js} +1 -1
  27. package/dist/web/assets/{CartesianChart-C24DAywn.js → CartesianChart-CN5hB6rV.js} +1 -1
  28. package/dist/web/assets/{CollaborationTabs-DgmOF5Fe.js → CollaborationTabs-BiDPHgXG.js} +1 -1
  29. package/dist/web/assets/{CommandMenu-CUNGtHwS.js → CommandMenu-B2qJCgWH.js} +1 -1
  30. package/dist/web/assets/{CommunityView-CE7qeJnr.js → CommunityView-D1aOQKfS.js} +1 -1
  31. package/dist/web/assets/{ComposerCreateImproveStrip-BixNsg2a.js → ComposerCreateImproveStrip-f1tdD0QS.js} +1 -1
  32. package/dist/web/assets/{GetStartedView-B8gCwmBX.js → GetStartedView-CPYs0fYN.js} +1 -1
  33. package/dist/web/assets/{HostedModelLearningReview-CitgUNfC.js → HostedModelLearningReview-DVfJyUW_.js} +1 -1
  34. package/dist/web/assets/{HostedModelLearningSettings-WUaqzNsa.js → HostedModelLearningSettings-IEKRXOkG.js} +1 -1
  35. package/dist/web/assets/{LabModelVersionDetailPage-Cx0kL69J.js → LabModelVersionDetailPage-DkIa0oG_.js} +1 -1
  36. package/dist/web/assets/{LabSkillSidebar-DRggqZ1j.js → LabSkillSidebar-BUlU1Ti-.js} +1 -1
  37. package/dist/web/assets/{LabsRoute-BujTZhqC.js → LabsRoute-8cKFNq19.js} +4 -4
  38. package/dist/web/assets/{MainChatThread-CyA_644R.js → MainChatThread-C5GwaIl_.js} +2 -2
  39. package/dist/web/assets/MainPane-SMqq5YAM.js +19 -0
  40. package/dist/web/assets/{MarkdownText-DJI5LwT0.js → MarkdownText-CLnvdLVg.js} +21 -21
  41. package/dist/web/assets/{NativeSkillSidebar-CkFpWxjd.js → NativeSkillSidebar-B9bVb00x.js} +1 -1
  42. package/dist/web/assets/{NewExperienceSwitcher-DXcRHHsu.js → NewExperienceSwitcher-CelgG7Ua.js} +1 -1
  43. package/dist/web/assets/{NewProjectDialog-gDzX_ZIJ.js → NewProjectDialog-eEnsg9s2.js} +1 -1
  44. package/dist/web/assets/{OutputsPage-J_k-_N82.js → OutputsPage-ByvsTUW-.js} +1 -1
  45. package/dist/web/assets/{ProjectsPage-BsyZmvlg.js → ProjectsPage-Cl2zFh8X.js} +1 -1
  46. package/dist/web/assets/{RightChatPanelStack-Bz8puMUB.js → RightChatPanelStack-MnGscF87.js} +1 -1
  47. package/dist/web/assets/{RightSidebarHomePanel-DmorYb6p.js → RightSidebarHomePanel-C6NXMYuy.js} +1 -1
  48. package/dist/web/assets/{ScheduledWorkPage-BFDzQUyL.js → ScheduledWorkPage-DCb6d7Lg.js} +1 -1
  49. package/dist/web/assets/{SettingsView-BB7wCdbr.js → SettingsView-BMFfrxmo.js} +3 -3
  50. package/dist/web/assets/{TeamChatView-CZ3b7rq2.js → TeamChatView-DW_v2B9E.js} +1 -1
  51. package/dist/web/assets/{TerminalOverlay-Ck43Qri3.js → TerminalOverlay-BJ7qsr9F.js} +1 -1
  52. package/dist/web/assets/{TrainingCreationPanel-ejqPZm3g.js → TrainingCreationPanel-GSIwP6f1.js} +1 -1
  53. package/dist/web/assets/{TrainingDraftPanel-Cy2AQxxL.js → TrainingDraftPanel-DorY6I29.js} +1 -1
  54. package/dist/web/assets/{UsageSettingsSection-B7nyMItm.js → UsageSettingsSection-DmzStI9q.js} +1 -1
  55. package/dist/web/assets/{WorkSidebarPanel-BfjAc097.js → WorkSidebarPanel-zsJrGaaL.js} +1 -1
  56. package/dist/web/assets/WorkspaceDiffPanel-CiFsZjMm.js +14 -0
  57. package/dist/web/assets/{WorkspaceEnvironmentMenu-B-K9XgFB.js → WorkspaceEnvironmentMenu-vJw9hE0y.js} +1 -1
  58. package/dist/web/assets/{WorkspaceGitDialogs-BJVFx_L3.js → WorkspaceGitDialogs-BpL-xtRX.js} +1 -1
  59. package/dist/web/assets/{WorkspaceMonacoEditor-p-FWMXoZ.js → WorkspaceMonacoEditor-CJ3x0GHH.js} +3 -3
  60. package/dist/web/assets/{arrow-up-right-CFGI2YSt.js → arrow-up-right-C60QSULo.js} +1 -1
  61. package/dist/web/assets/{chunk-UHVJOMWN-BAlur2vw.js → chunk-UHVJOMWN-BxgPi0yP.js} +1 -1
  62. package/dist/web/assets/{clipboard-DIIxBort.js → clipboard-QIy0Jd_K.js} +1 -1
  63. package/dist/web/assets/{cloud-upload-BaQFNCTp.js → cloud-upload-B9L-_gy0.js} +1 -1
  64. package/dist/web/assets/{cssMode-6LOkSggB.js → cssMode-ffPyPUW9.js} +1 -1
  65. package/dist/web/assets/{folder-open-DZSxfPtr.js → folder-open-BFy7KXWm.js} +1 -1
  66. package/dist/web/assets/{folder-plus-21v4D_Vx.js → folder-plus-C3iGtUOI.js} +1 -1
  67. package/dist/web/assets/{git-commit-horizontal-CgGixL64.js → git-commit-horizontal-DsTniKvi.js} +1 -1
  68. package/dist/web/assets/{htmlMode-B5uRraNd.js → htmlMode-7ytlsiyK.js} +1 -1
  69. package/dist/web/assets/{index-DOMrqhcz.js → index-BK8GmZmB.js} +2 -2
  70. package/dist/web/assets/index-C0H85uUI.css +1 -0
  71. package/dist/web/assets/{info-BGTcmow7.js → info-C8mwoaIJ.js} +1 -1
  72. package/dist/web/assets/{jsonMode-D3m8N4Gi.js → jsonMode-BT35NJi4.js} +1 -1
  73. package/dist/web/assets/{lspLanguageFeatures-DoyipLsB.js → lspLanguageFeatures-BKAwIewO.js} +1 -1
  74. package/dist/web/assets/{minimize-2-B01qSko4.js → minimize-2-34MApatV.js} +1 -1
  75. package/dist/web/assets/{monaco.contribution-BJyfaGX2.js → monaco.contribution-9diduNNi.js} +2 -2
  76. package/dist/web/assets/{monaco.contribution-Bc22foTx.js → monaco.contribution-CxtX0z-m.js} +2 -2
  77. package/dist/web/assets/{monaco.contribution-DuRhJ6zU.js → monaco.contribution-DVnPUDsR.js} +2 -2
  78. package/dist/web/assets/{monaco.contribution--U8v3jpa.js → monaco.contribution-Dj4R5U8Z.js} +2 -2
  79. package/dist/web/assets/{monitor-eZP8ZTHe.js → monitor-4JxqJ7wz.js} +1 -1
  80. package/dist/web/assets/{play-CGsWFR_B.js → play-C4PtpamL.js} +1 -1
  81. package/dist/web/assets/{python-BNrLZWud.js → python-0GVncePC.js} +1 -1
  82. package/dist/web/assets/{save-BLgjrccP.js → save-DjB16eou.js} +1 -1
  83. package/dist/web/assets/{square-CI1qNtvE.js → square-Coz7UQqd.js} +1 -1
  84. package/dist/web/assets/{toggleHighContrast-B_GcTCnw.js → toggleHighContrast-D-3108_3.js} +1 -1
  85. package/dist/web/assets/{tsMode-CmruH_ys.js → tsMode-CV4ktqqR.js} +1 -1
  86. package/dist/web/assets/{upload-DnlgGS2x.js → upload-D007T9Hm.js} +1 -1
  87. package/dist/web/assets/{useLocalAgentSchedules-BBhGUfK-.js → useLocalAgentSchedules-BXjFbAVS.js} +1 -1
  88. package/dist/web/assets/{useProviderSettings-DfhdkKdC.js → useProviderSettings-SY7mp-5B.js} +1 -1
  89. package/dist/web/assets/{useSessionTurnCache-BwscKl5i.js → useSessionTurnCache-Bee6zbC_.js} +1 -1
  90. package/dist/web/assets/{wifi-off-Dz-4EDCc.js → wifi-off-BbNZc0za.js} +1 -1
  91. package/dist/web/assets/{workers-Bi9u46cp.js → workers-DNQ5ne3z.js} +1 -1
  92. package/dist/web/assets/{yaml-DVTkiRnh.js → yaml-BfAho-gB.js} +1 -1
  93. package/dist/web/index.html +2 -2
  94. package/package.json +1 -1
  95. package/dist/chunks/chunk-7K72KS5C.js +0 -9
  96. package/dist/web/assets/App-BI-uOpnP.js +0 -234
  97. package/dist/web/assets/MainPane-LaEtxydD.js +0 -19
  98. package/dist/web/assets/WorkspaceDiffPanel-D9hAV8l7.js +0 -14
  99. package/dist/web/assets/index-DJcUXSsN.css +0 -1
@@ -1 +1 @@
1
- import{r as x,j as t}from"./index-DOMrqhcz.js";import{P as k}from"./play-CGsWFR_B.js";import{aq as ae,h as se,X as ne,bv as I,cp as ie,cq as re,cr as oe,cs as de,H as D,ct as le,cu as ce,cv as ue}from"./App-BI-uOpnP.js";import{A as pe}from"./AppDialog-1iGodoot.js";import{a as fe}from"./MarkdownText-DJI5LwT0.js";function ge({badge:e,onPlay:a,titleElement:i="h3",video:s}){const[d,n]=x.useState(!1),r=x.useRef(null),u=i,l=`${s.id}-title`;function p(){if(a){a();return}ae.flushSync(()=>n(!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 ${s.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:s.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:s.title}),t.jsxs("div",{className:"get-started-course-meta","aria-label":`${s.title} details`,children:[t.jsx("span",{children:s.eyebrow}),t.jsx("span",{"aria-hidden":"true",children:"·"}),t.jsx("span",{children:s.duration})]}),s.description?t.jsx("p",{children:s.description}):null]})]}),d&&!a?t.jsx(L,{onClose:()=>n(!1),video:s,videoRef:r}):null]})}function L({autoAdvance:e=!1,contained:a=!1,inertExclusionSelector:i,navigation:s,onEnded:d,onClose:n,onPause:r,onTimeUpdate:u,video:l,videoRef:p}){return t.jsxs(pe,{ariaLabel:`${l.title} player`,backdropClassName:"get-started-course-player-backdrop",className:"get-started-course-player",contained:a,inertExclusionSelector:i,onClose:n,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:[s?`Lesson ${s.currentIndex+1} of ${s.total}`:l.eyebrow," · ",l.duration]})]}),t.jsxs("div",{className:"get-started-course-player-actions",children:[s?t.jsxs(t.Fragment,{children:[t.jsx("button",{"aria-label":"Previous lesson",disabled:!s.onPrevious,onClick:s.onPrevious,title:"Previous lesson",type:"button",children:t.jsx(se,{size:17})}),t.jsx("button",{"aria-label":"Next lesson",disabled:!s.onNext,onClick:s.onNext,title:"Next lesson",type:"button",children:t.jsx(fe,{size:17})})]}):null,t.jsx("button",{"aria-label":"Close video player","data-autofocus":!0,onClick:n,title:"Close",type:"button",children:t.jsx(ne,{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 me=[{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"]}],he=[{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}],be={playlists:me,videos:he},ye="https://media.openpond.ai",K=be,Te=new Map(K.playlists.map(e=>[e.id,e])),xe=new Map(K.videos.map(e=>[e.id,e]));function $(e){const a=Te.get(e);if(!a)throw new Error(`Public video manifest is missing playlist ${e}`);return a}function ve(e,a){return a?`${ye}/${e.objectKey}`:I(e.localPath)}function E(e){const a=xe.get(e);if(!a)throw new Error(`Public video manifest is missing ${e}`);return ve(a,!0)}const Ae=E("make-agent-tutorial"),Pe=E("openpond-agent-overview");function je(e){return E(`make-agent-tutorial-${e}`)}const Ne={title:"How to make an agent"},Ie=[{id:"create",label:"Create",title:"Create an Agent",subtitle:"Turn a plain-language purpose into a working Account Health Agent.",outroTitle:"Account Health Agent created",outroSubtitle:"The agent is ready to use. · AI-generated narration",cardDuration:1.5},{id:"use",label:"Use",title:"Use the Agent",subtitle:"Chat with the Account Health Agent and run its actions with approval.",outroTitle:"First agent run complete",outroSubtitle:"The result and supporting evidence are ready to review. · AI-generated narration",cardDuration:1.5},{id:"improve",label:"Improve",title:"Improve the Agent",subtitle:"Use real run evidence and Evals to make the Account Health Agent better.",outroTitle:"Account Health Agent improved",outroSubtitle:"The updated agent passed its Evals. · AI-generated narration",cardDuration:1.5}],z={tutorial:Ne,chapters:Ie},Ee=$("how-to-make-an-agent"),B=z.chapters,Se={create:"1:24",use:"1:05",improve:"1:10"},w=Ee.title,we=z.tutorial.title,F="4:33",H={captionsUrl:re,chapterIds:B.map(e=>e.id),description:"Create, use, and improve an Account Health Agent in one continuous walkthrough.",duration:F,eyebrow:"Play all",id:"make-agent-tutorial",lessonNumber:null,posterUrl:ie,title:we,videoId:"play-all",videoUrl:Ae},T=B.map((e,a)=>({captionsUrl:de(e.id),chapterIds:[e.id],description:e.subtitle,duration:Se[e.id],eyebrow:`Lesson ${a+1}`,id:`make-agent-tutorial-${e.id}`,lessonNumber:a+1,posterUrl:oe(e.id),title:e.title,videoId:e.id,videoUrl:je(e.id)})),Re=[H,...T];function q(e){return Re.find(a=>a.videoId===e)??H}function _e(e){const a=T.findIndex(i=>i.videoId===e);return a<0?null:T[a+1]?.videoId??null}const Oe=[2,1,0];function ke({activeVideoId:e="play-all",autoplay:a=!0,onClose:i,onOpen:s,onSelectVideo:d,open:n=!1,playRequestId:r=0}={}){const u=x.useRef(null),l=q(e);x.useEffect(()=>{if(!n)return;const c=u.current;c&&(c.load(),r>0&&c.play().catch(()=>{}))},[l.id,n,r]);function p(){if(!a||!d)return;const c=_e(e);c&&d(c)}return t.jsxs("section",{className:"get-started-series","aria-label":w,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 ${w} playlist`,className:"get-started-playlist-open",onClick:s,type:"button"}),t.jsxs("div",{className:"get-started-playlist-stack","aria-hidden":"true",children:[Oe.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:w}),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."})]})]}),n&&i&&d?t.jsx(Le,{activeVideoId:e,autoplay:a,contained:!0,inertExclusionSelector:".get-started-learning-panel",onClose:i,onEnded:p,onSelectVideo:d,videoRef:u}):null]})}function Le({activeVideoId:e="play-all",autoplay:a=!0,contained:i=!1,inertExclusionSelector:s,onClose:d,onEnded:n,onSelectVideo:r=()=>{},videoRef:u}){const l=q(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:s,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:n?()=>n():void 0,video:l,videoRef:u})}const U=$("post-training-from-first-principles"),W=U.title,Ue=U.status;function b(e,a,i,s,d,n){const r=`courses/post-training/${a}`,u=`post-training-${a}`;return{captionsUrl:I(`${r}.vtt`),description:n,duration:d,eyebrow:s,id:u,lessonNumber:e,posterUrl:I(`${r}-poster.webp`),slug:a,title:i,videoUrl:E(u)}}const v=[b(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."),b(2,"02-definitions","Definitions","Reference","6:14","Policy notation, softmax, rollouts, advantages, gradients, GRPO, and the acronyms used throughout the series."),b(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."),b(4,"04-rewards-credit-assignment","Rewards and credit assignment","RL foundation","3:00","Follow a code-repair trajectory from actions and observations to advantage."),b(5,"05-verifiable-rewards-rlvr","Verifiable rewards","RLVR","2:53","See how tests create scalable rewards—and how a model can exploit the checker."),b(6,"06-ppo-grpo","PPO and GRPO","Policy updates","2:54","Compare PPO's learned critic with GRPO's sibling-response baseline."),b(7,"07-distillation","Distillation","Teacher targets","2:42","Transfer a teacher's token distribution instead of copying one final answer."),b(8,"08-opsd-sdft-sdpo","OPSD, SDFT, and SDPO","Teacher evidence","2:43","Compare trusted solutions, demonstrations, and failure feedback at one prefix."),b(9,"09-credible-experiments","Credible experiments","Research design","3:32","Build versioned datasets, fair baselines, and claims that survive scrutiny."),b(10,"10-technical-appendix","Technical appendix","Advanced details","3:12","Inspect GRPO normalization, compressed teacher logits, reported method results, and sample routing.")],Ce="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:W,videoUrl:E(O)};function J(e){const a=e+1;return a<v.length?a:null}const M="Subject to change, lesson work in progress";function Me(){const e=Ue==="draft"?"Draft":"Published";return t.jsx("span",{"aria-label":`${e}: ${M}`,className:"get-started-playlist-status app-tooltip","data-tooltip":M,tabIndex:0,children:e})}const X="openpond.post-training-progress.v1",j=Object.freeze({}),Ve=1e3,Q=new Set;let P=null,N=null,V=!1;function R(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Ge(e){if(!e||typeof e!="object"||Array.isArray(e))return j;const a={};for(const[i,s]of Object.entries(e)){if(!i||!s||typeof s!="object"||Array.isArray(s))continue;const d=s,n=R(d.duration),r=R(d.currentTime),u=R(d.updatedAt);if(n===null||n<=0||r===null)continue;const l=d.completed===!0;a[i]={completed:l,currentTime:l?n:Math.min(n,Math.max(0,r)),duration:n,updatedAt:u===null?0:Math.max(0,u)}}return Object.keys(a).length>0?a:j}function De(e){if(!e)return j;try{return Ge(JSON.parse(e))}catch{return j}}function Z(){if(typeof window>"u")return j;try{return De(D.getItem(X))}catch{return j}}function ee(){if(typeof window<"u"&&N!==null&&window.clearTimeout(N),N=null,!(typeof window>"u"||P===null))try{D.setItem(X,JSON.stringify(P))}catch{}}function Ke(){typeof window>"u"||N!==null||(N=window.setTimeout(ee,Ve))}function $e(){typeof window>"u"||V||(V=!0,window.addEventListener("pagehide",ee),le(()=>{P=Z(),Q.forEach(e=>e())}))}function te(){return P===null&&(P=Z()),$e(),P}function G({completed:e=!1,currentTime:a,duration:i,lessonId:s}){if(!s||!Number.isFinite(i)||i<=0||!Number.isFinite(a))return;const d=te(),n=d[s],r=!!(n?.completed||e),u=r?i:Math.min(i,Math.max(0,a));n&&n.completed===r&&Math.abs(n.currentTime-u)<.25&&Math.abs(n.duration-i)<.25||(P={...d,[s]:{completed:r,currentTime:u,duration:i,updatedAt:Date.now()}},Ke(),Q.forEach(l=>l()))}function ze(e){return!e||e.completed||e.currentTime<1?0:e.currentTime<e.duration-2?e.currentTime:0}const _=W,Be=[2,1,0];function Fe({activeLessonIndex:e,fullCourseSelected:a=!1,autoplay:i=!0,open:s,onClose:d,onOpen:n,onSelectLesson:r,playRequestId:u=0}){const l=x.useRef(null),p=x.useRef(null),c=v[e]??v[0],f=a?Y:c;x.useEffect(()=>{if(!s)return;const o=l.current;if(!o)return;let h=!1;p.current=null,o.load();const y=()=>{if(h)return;const C=ze(te()[f.id]);C>0&&(o.currentTime=C),u>0&&o.play().catch(()=>{})};return o.readyState>=HTMLMediaElement.HAVE_METADATA?y():o.addEventListener("loadedmetadata",y,{once:!0}),()=>{h=!0,o.removeEventListener("loadedmetadata",y),Number.isFinite(o.duration)&&o.duration>0&&o.currentTime>0&&G({completed:o.ended,currentTime:o.currentTime,duration:o.duration,lessonId:f.id})}},[f.id,s,u]);function m(o,h=!1){!Number.isFinite(o.duration)||o.duration<=0||G({completed:h,currentTime:h?o.duration:o.currentTime,duration:o.duration,lessonId:f.id})}function S(o){if(!Number.isFinite(o.duration)||o.duration<=0)return;const h=Math.min(99,Math.floor(o.currentTime/o.duration*100)),y=p.current;y?.lessonId===f.id&&y.percent===h||(p.current={lessonId:f.id,percent:h},m(o))}function A(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:n,type:"button"}),t.jsxs("div",{className:"get-started-playlist-stack","aria-hidden":"true",children:[Be.map((o,h)=>{const y=v[o];return t.jsx("div",{className:`get-started-playlist-poster layer-${h+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:[v.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(Me,{})]}),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:Ce})]}),t.jsx("p",{children:"Rewards, GRPO, RLVR, distillation, experiments, and a technical appendix."})]})]}),s?t.jsx(He,{activeLessonIndex:e,autoplay:i,fullCourseSelected:a,onClose:d,onEnded:A,onPause:m,onSelectLesson:r,onTimeUpdate:S,videoRef:l}):null]})}function He({activeLessonIndex:e,autoplay:a,fullCourseSelected:i,onClose:s,onEnded:d,onPause:n,onSelectLesson:r,onTimeUpdate:u,videoRef:l}){const p=v[e]??v[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:v.length},onClose:s,onEnded:d,onPause:n,onTimeUpdate:u,video:f,videoRef:l})}const qe={captionsUrl:ue,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:ce,title:"What is an OpenPond Agent?",videoUrl:Pe};function Ze(e={}){const[a,i]=x.useState(null),[s,d]=x.useState(null),n=e.makeAgentTutorial===void 0?a:e.makeAgentTutorial,r=e.postTrainingCourse===void 0?s:e.postTrainingCourse,u=!!(r||n);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(A){if(e.onSelectMakeAgentTutorialVideo){e.onSelectMakeAgentTutorialVideo(A);return}i(g=>g&&{...g,playRequestId:g.playRequestId+1,videoId:A})}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 S(A){if(e.onSelectPostTrainingLesson){e.onSelectPostTrainingLesson(A);return}d(g=>g&&{...g,fullCourseSelected:!1,lessonIndex:A,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(ge,{titleElement:"h1",video:qe})})]}),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(ke,{activeVideoId:n?.videoId??"create",autoplay:n?.autoplay??!0,onClose:p,onOpen:l,onSelectVideo:c,open:!!n,playRequestId:n?.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(Fe,{activeLessonIndex:r?.lessonIndex??0,autoplay:r?.autoplay??!0,fullCourseSelected:r?.fullCourseSelected??!1,open:!!r,onClose:m,onOpen:f,onSelectLesson:S,playRequestId:r?.playRequestId??0})})]})]})})}export{Ze as GetStartedView};
1
+ import{r as x,j as t}from"./index-BK8GmZmB.js";import{P as k}from"./play-C4PtpamL.js";import{aq as ae,h as se,X as ne,bv as I,cp as ie,cq as re,cr as oe,cs as de,H as D,ct as le,cu as ce,cv as ue}from"./App-Dg6mZIQk.js";import{A as pe}from"./AppDialog-gcj3rrTZ.js";import{a as fe}from"./MarkdownText-CLnvdLVg.js";function ge({badge:e,onPlay:a,titleElement:i="h3",video:s}){const[d,n]=x.useState(!1),r=x.useRef(null),u=i,l=`${s.id}-title`;function p(){if(a){a();return}ae.flushSync(()=>n(!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 ${s.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:s.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:s.title}),t.jsxs("div",{className:"get-started-course-meta","aria-label":`${s.title} details`,children:[t.jsx("span",{children:s.eyebrow}),t.jsx("span",{"aria-hidden":"true",children:"·"}),t.jsx("span",{children:s.duration})]}),s.description?t.jsx("p",{children:s.description}):null]})]}),d&&!a?t.jsx(L,{onClose:()=>n(!1),video:s,videoRef:r}):null]})}function L({autoAdvance:e=!1,contained:a=!1,inertExclusionSelector:i,navigation:s,onEnded:d,onClose:n,onPause:r,onTimeUpdate:u,video:l,videoRef:p}){return t.jsxs(pe,{ariaLabel:`${l.title} player`,backdropClassName:"get-started-course-player-backdrop",className:"get-started-course-player",contained:a,inertExclusionSelector:i,onClose:n,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:[s?`Lesson ${s.currentIndex+1} of ${s.total}`:l.eyebrow," · ",l.duration]})]}),t.jsxs("div",{className:"get-started-course-player-actions",children:[s?t.jsxs(t.Fragment,{children:[t.jsx("button",{"aria-label":"Previous lesson",disabled:!s.onPrevious,onClick:s.onPrevious,title:"Previous lesson",type:"button",children:t.jsx(se,{size:17})}),t.jsx("button",{"aria-label":"Next lesson",disabled:!s.onNext,onClick:s.onNext,title:"Next lesson",type:"button",children:t.jsx(fe,{size:17})})]}):null,t.jsx("button",{"aria-label":"Close video player","data-autofocus":!0,onClick:n,title:"Close",type:"button",children:t.jsx(ne,{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 me=[{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"]}],he=[{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}],be={playlists:me,videos:he},ye="https://media.openpond.ai",K=be,Te=new Map(K.playlists.map(e=>[e.id,e])),xe=new Map(K.videos.map(e=>[e.id,e]));function $(e){const a=Te.get(e);if(!a)throw new Error(`Public video manifest is missing playlist ${e}`);return a}function ve(e,a){return a?`${ye}/${e.objectKey}`:I(e.localPath)}function E(e){const a=xe.get(e);if(!a)throw new Error(`Public video manifest is missing ${e}`);return ve(a,!0)}const Ae=E("make-agent-tutorial"),Pe=E("openpond-agent-overview");function je(e){return E(`make-agent-tutorial-${e}`)}const Ne={title:"How to make an agent"},Ie=[{id:"create",label:"Create",title:"Create an Agent",subtitle:"Turn a plain-language purpose into a working Account Health Agent.",outroTitle:"Account Health Agent created",outroSubtitle:"The agent is ready to use. · AI-generated narration",cardDuration:1.5},{id:"use",label:"Use",title:"Use the Agent",subtitle:"Chat with the Account Health Agent and run its actions with approval.",outroTitle:"First agent run complete",outroSubtitle:"The result and supporting evidence are ready to review. · AI-generated narration",cardDuration:1.5},{id:"improve",label:"Improve",title:"Improve the Agent",subtitle:"Use real run evidence and Evals to make the Account Health Agent better.",outroTitle:"Account Health Agent improved",outroSubtitle:"The updated agent passed its Evals. · AI-generated narration",cardDuration:1.5}],z={tutorial:Ne,chapters:Ie},Ee=$("how-to-make-an-agent"),B=z.chapters,Se={create:"1:24",use:"1:05",improve:"1:10"},w=Ee.title,we=z.tutorial.title,F="4:33",H={captionsUrl:re,chapterIds:B.map(e=>e.id),description:"Create, use, and improve an Account Health Agent in one continuous walkthrough.",duration:F,eyebrow:"Play all",id:"make-agent-tutorial",lessonNumber:null,posterUrl:ie,title:we,videoId:"play-all",videoUrl:Ae},T=B.map((e,a)=>({captionsUrl:de(e.id),chapterIds:[e.id],description:e.subtitle,duration:Se[e.id],eyebrow:`Lesson ${a+1}`,id:`make-agent-tutorial-${e.id}`,lessonNumber:a+1,posterUrl:oe(e.id),title:e.title,videoId:e.id,videoUrl:je(e.id)})),Re=[H,...T];function q(e){return Re.find(a=>a.videoId===e)??H}function _e(e){const a=T.findIndex(i=>i.videoId===e);return a<0?null:T[a+1]?.videoId??null}const Oe=[2,1,0];function ke({activeVideoId:e="play-all",autoplay:a=!0,onClose:i,onOpen:s,onSelectVideo:d,open:n=!1,playRequestId:r=0}={}){const u=x.useRef(null),l=q(e);x.useEffect(()=>{if(!n)return;const c=u.current;c&&(c.load(),r>0&&c.play().catch(()=>{}))},[l.id,n,r]);function p(){if(!a||!d)return;const c=_e(e);c&&d(c)}return t.jsxs("section",{className:"get-started-series","aria-label":w,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 ${w} playlist`,className:"get-started-playlist-open",onClick:s,type:"button"}),t.jsxs("div",{className:"get-started-playlist-stack","aria-hidden":"true",children:[Oe.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:w}),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."})]})]}),n&&i&&d?t.jsx(Le,{activeVideoId:e,autoplay:a,contained:!0,inertExclusionSelector:".get-started-learning-panel",onClose:i,onEnded:p,onSelectVideo:d,videoRef:u}):null]})}function Le({activeVideoId:e="play-all",autoplay:a=!0,contained:i=!1,inertExclusionSelector:s,onClose:d,onEnded:n,onSelectVideo:r=()=>{},videoRef:u}){const l=q(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:s,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:n?()=>n():void 0,video:l,videoRef:u})}const U=$("post-training-from-first-principles"),W=U.title,Ue=U.status;function b(e,a,i,s,d,n){const r=`courses/post-training/${a}`,u=`post-training-${a}`;return{captionsUrl:I(`${r}.vtt`),description:n,duration:d,eyebrow:s,id:u,lessonNumber:e,posterUrl:I(`${r}-poster.webp`),slug:a,title:i,videoUrl:E(u)}}const v=[b(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."),b(2,"02-definitions","Definitions","Reference","6:14","Policy notation, softmax, rollouts, advantages, gradients, GRPO, and the acronyms used throughout the series."),b(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."),b(4,"04-rewards-credit-assignment","Rewards and credit assignment","RL foundation","3:00","Follow a code-repair trajectory from actions and observations to advantage."),b(5,"05-verifiable-rewards-rlvr","Verifiable rewards","RLVR","2:53","See how tests create scalable rewards—and how a model can exploit the checker."),b(6,"06-ppo-grpo","PPO and GRPO","Policy updates","2:54","Compare PPO's learned critic with GRPO's sibling-response baseline."),b(7,"07-distillation","Distillation","Teacher targets","2:42","Transfer a teacher's token distribution instead of copying one final answer."),b(8,"08-opsd-sdft-sdpo","OPSD, SDFT, and SDPO","Teacher evidence","2:43","Compare trusted solutions, demonstrations, and failure feedback at one prefix."),b(9,"09-credible-experiments","Credible experiments","Research design","3:32","Build versioned datasets, fair baselines, and claims that survive scrutiny."),b(10,"10-technical-appendix","Technical appendix","Advanced details","3:12","Inspect GRPO normalization, compressed teacher logits, reported method results, and sample routing.")],Ce="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:W,videoUrl:E(O)};function J(e){const a=e+1;return a<v.length?a:null}const M="Subject to change, lesson work in progress";function Me(){const e=Ue==="draft"?"Draft":"Published";return t.jsx("span",{"aria-label":`${e}: ${M}`,className:"get-started-playlist-status app-tooltip","data-tooltip":M,tabIndex:0,children:e})}const X="openpond.post-training-progress.v1",j=Object.freeze({}),Ve=1e3,Q=new Set;let P=null,N=null,V=!1;function R(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Ge(e){if(!e||typeof e!="object"||Array.isArray(e))return j;const a={};for(const[i,s]of Object.entries(e)){if(!i||!s||typeof s!="object"||Array.isArray(s))continue;const d=s,n=R(d.duration),r=R(d.currentTime),u=R(d.updatedAt);if(n===null||n<=0||r===null)continue;const l=d.completed===!0;a[i]={completed:l,currentTime:l?n:Math.min(n,Math.max(0,r)),duration:n,updatedAt:u===null?0:Math.max(0,u)}}return Object.keys(a).length>0?a:j}function De(e){if(!e)return j;try{return Ge(JSON.parse(e))}catch{return j}}function Z(){if(typeof window>"u")return j;try{return De(D.getItem(X))}catch{return j}}function ee(){if(typeof window<"u"&&N!==null&&window.clearTimeout(N),N=null,!(typeof window>"u"||P===null))try{D.setItem(X,JSON.stringify(P))}catch{}}function Ke(){typeof window>"u"||N!==null||(N=window.setTimeout(ee,Ve))}function $e(){typeof window>"u"||V||(V=!0,window.addEventListener("pagehide",ee),le(()=>{P=Z(),Q.forEach(e=>e())}))}function te(){return P===null&&(P=Z()),$e(),P}function G({completed:e=!1,currentTime:a,duration:i,lessonId:s}){if(!s||!Number.isFinite(i)||i<=0||!Number.isFinite(a))return;const d=te(),n=d[s],r=!!(n?.completed||e),u=r?i:Math.min(i,Math.max(0,a));n&&n.completed===r&&Math.abs(n.currentTime-u)<.25&&Math.abs(n.duration-i)<.25||(P={...d,[s]:{completed:r,currentTime:u,duration:i,updatedAt:Date.now()}},Ke(),Q.forEach(l=>l()))}function ze(e){return!e||e.completed||e.currentTime<1?0:e.currentTime<e.duration-2?e.currentTime:0}const _=W,Be=[2,1,0];function Fe({activeLessonIndex:e,fullCourseSelected:a=!1,autoplay:i=!0,open:s,onClose:d,onOpen:n,onSelectLesson:r,playRequestId:u=0}){const l=x.useRef(null),p=x.useRef(null),c=v[e]??v[0],f=a?Y:c;x.useEffect(()=>{if(!s)return;const o=l.current;if(!o)return;let h=!1;p.current=null,o.load();const y=()=>{if(h)return;const C=ze(te()[f.id]);C>0&&(o.currentTime=C),u>0&&o.play().catch(()=>{})};return o.readyState>=HTMLMediaElement.HAVE_METADATA?y():o.addEventListener("loadedmetadata",y,{once:!0}),()=>{h=!0,o.removeEventListener("loadedmetadata",y),Number.isFinite(o.duration)&&o.duration>0&&o.currentTime>0&&G({completed:o.ended,currentTime:o.currentTime,duration:o.duration,lessonId:f.id})}},[f.id,s,u]);function m(o,h=!1){!Number.isFinite(o.duration)||o.duration<=0||G({completed:h,currentTime:h?o.duration:o.currentTime,duration:o.duration,lessonId:f.id})}function S(o){if(!Number.isFinite(o.duration)||o.duration<=0)return;const h=Math.min(99,Math.floor(o.currentTime/o.duration*100)),y=p.current;y?.lessonId===f.id&&y.percent===h||(p.current={lessonId:f.id,percent:h},m(o))}function A(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:n,type:"button"}),t.jsxs("div",{className:"get-started-playlist-stack","aria-hidden":"true",children:[Be.map((o,h)=>{const y=v[o];return t.jsx("div",{className:`get-started-playlist-poster layer-${h+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:[v.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(Me,{})]}),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:Ce})]}),t.jsx("p",{children:"Rewards, GRPO, RLVR, distillation, experiments, and a technical appendix."})]})]}),s?t.jsx(He,{activeLessonIndex:e,autoplay:i,fullCourseSelected:a,onClose:d,onEnded:A,onPause:m,onSelectLesson:r,onTimeUpdate:S,videoRef:l}):null]})}function He({activeLessonIndex:e,autoplay:a,fullCourseSelected:i,onClose:s,onEnded:d,onPause:n,onSelectLesson:r,onTimeUpdate:u,videoRef:l}){const p=v[e]??v[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:v.length},onClose:s,onEnded:d,onPause:n,onTimeUpdate:u,video:f,videoRef:l})}const qe={captionsUrl:ue,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:ce,title:"What is an OpenPond Agent?",videoUrl:Pe};function Ze(e={}){const[a,i]=x.useState(null),[s,d]=x.useState(null),n=e.makeAgentTutorial===void 0?a:e.makeAgentTutorial,r=e.postTrainingCourse===void 0?s:e.postTrainingCourse,u=!!(r||n);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(A){if(e.onSelectMakeAgentTutorialVideo){e.onSelectMakeAgentTutorialVideo(A);return}i(g=>g&&{...g,playRequestId:g.playRequestId+1,videoId:A})}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 S(A){if(e.onSelectPostTrainingLesson){e.onSelectPostTrainingLesson(A);return}d(g=>g&&{...g,fullCourseSelected:!1,lessonIndex:A,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(ge,{titleElement:"h1",video:qe})})]}),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(ke,{activeVideoId:n?.videoId??"create",autoplay:n?.autoplay??!0,onClose:p,onOpen:l,onSelectVideo:c,open:!!n,playRequestId:n?.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(Fe,{activeLessonIndex:r?.lessonIndex??0,autoplay:r?.autoplay??!0,fullCourseSelected:r?.fullCourseSelected??!1,open:!!r,onClose:m,onOpen:f,onSelectLesson:S,playRequestId:r?.playRequestId??0})})]})]})})}export{Ze as GetStartedView};
@@ -1 +1 @@
1
- import{r as i,j as e}from"./index-DOMrqhcz.js";import{s as u}from"./LabsRoute-BujTZhqC.js";import{dA as n}from"./App-BI-uOpnP.js";import"./chunk-UHVJOMWN-BAlur2vw.js";import"./AppDialog-1iGodoot.js";import"./cloud-upload-BaQFNCTp.js";import"./MainPane-LaEtxydD.js";import"./arrow-up-right-CFGI2YSt.js";import"./MarkdownText-DJI5LwT0.js";import"./square-CI1qNtvE.js";import"./folder-open-DZSxfPtr.js";import"./play-CGsWFR_B.js";import"./training-model-data-CKOkpBBL.js";import"./info-BGTcmow7.js";/* empty css */import"./ComposerCreateImproveStrip-BixNsg2a.js";function L({api:o,policyId:r,sourceId:t,onBack:s}){const a=i.useMemo(()=>o.reviewClient(r,t),[o,r,t]),[m,p]=i.useState(null),[l,c]=i.useState(null);return e.jsxs("section",{"aria-label":"Hosted example review",children:[e.jsx("button",{type:"button",className:"training-button secondary",onClick:()=>{n(s)},children:"Back to continual learning"}),e.jsx("p",{children:"Reviewing hosted examples. Approved tasks become eligible for this policy's next training check."}),e.jsx(u,{client:a,selectedId:m,after:l,sourceId:t,onSelect:d=>{n(()=>p(d))},onPage:c})]})}export{L as HostedModelLearningReview};
1
+ import{r as i,j as e}from"./index-BK8GmZmB.js";import{s as u}from"./LabsRoute-8cKFNq19.js";import{dA as n}from"./App-Dg6mZIQk.js";import"./chunk-UHVJOMWN-BxgPi0yP.js";import"./AppDialog-gcj3rrTZ.js";import"./cloud-upload-B9L-_gy0.js";import"./MainPane-SMqq5YAM.js";import"./MarkdownText-CLnvdLVg.js";import"./arrow-up-right-C60QSULo.js";import"./square-Coz7UQqd.js";import"./folder-open-BFy7KXWm.js";import"./play-C4PtpamL.js";import"./training-model-data-CKOkpBBL.js";import"./info-C8mwoaIJ.js";/* empty css */import"./ComposerCreateImproveStrip-f1tdD0QS.js";function L({api:o,policyId:r,sourceId:t,onBack:s}){const a=i.useMemo(()=>o.reviewClient(r,t),[o,r,t]),[m,p]=i.useState(null),[l,c]=i.useState(null);return e.jsxs("section",{"aria-label":"Hosted example review",children:[e.jsx("button",{type:"button",className:"training-button secondary",onClick:()=>{n(s)},children:"Back to continual learning"}),e.jsx("p",{children:"Reviewing hosted examples. Approved tasks become eligible for this policy's next training check."}),e.jsx(u,{client:a,selectedId:m,after:l,sourceId:t,onSelect:d=>{n(()=>p(d))},onPage:c})]})}export{L as HostedModelLearningReview};
@@ -1 +1 @@
1
- import{r as t,j as n}from"./index-DOMrqhcz.js";import{n as V,u as W,o as X,p as Y,q as Z}from"./LabsRoute-BujTZhqC.js";import{cO as D,dp as I,A as _}from"./App-BI-uOpnP.js";import{A as ee}from"./AppDialog-1iGodoot.js";import"./chunk-UHVJOMWN-BAlur2vw.js";import"./cloud-upload-BaQFNCTp.js";import"./MainPane-LaEtxydD.js";import"./arrow-up-right-CFGI2YSt.js";import"./MarkdownText-DJI5LwT0.js";import"./square-CI1qNtvE.js";import"./folder-open-DZSxfPtr.js";import"./play-CGsWFR_B.js";import"./training-model-data-CKOkpBBL.js";import"./info-BGTcmow7.js";/* empty css */import"./ComposerCreateImproveStrip-BixNsg2a.js";function xe({client:b,project:g,policy:r,onClose:v}){const[H]=t.useState(()=>r?.id??`policy-${crypto.randomUUID()}`),[a]=t.useState(()=>V(g,r)),[N,P]=t.useState(a.enabled),[S,$]=t.useState(a.scheduled),[j,F]=t.useState(!r),[k,O]=t.useState(a.humanReviewRequired),[o,R]=t.useState(r?.sources??[]),[u,B]=t.useState(r?.taskDefinition??null),[i,T]=t.useState({interval:String(a.intervalSeconds/60),minimum:String(a.minimumApprovedExamples),batch:String(a.maxBatchExamples),spend:String(a.maxIterationSpendUsd),daily:String(a.maxDailySpendUsd),cooldown:String(a.cooldownSeconds/60),retries:String(a.maxRetries),backlog:String(a.maxBacklogExamples)}),[Q,h]=t.useState(!1),[c,M]=t.useState(!1),[z,U]=t.useState(null),[m,G]=t.useState(),[y,J]=t.useState(null),[A,L]=t.useState(null),d=t.useRef(null),w=t.useRef(!1);t.useEffect(()=>{let e=!1;return b.sources(m).then(s=>{e||(J({after:m,data:s}),L(null))},s=>{e||L(s instanceof Error?s.message:String(s))}),()=>{e=!0}},[b,m]);const f=y&&y.after===m?y.data:null,C=j?g.trainingSetup.rewardBindingRef:r?.rewardBinding;function K(e){const s=o.some(l=>l.id===e.id);R(s?o.filter(l=>l.id!==e.id):[...o,I(e)]),B(s&&o.length===1?null:u??e.taskDefinition),h(!0)}async function q(){if(w.current)return!1;w.current=!0,M(!0),U(null);try{if(!d.current){if(!u||!o.length||!C)throw new Error("Select task sources and a Model Reward before saving.");const e=Z({project:g,previous:r,policyId:H,applyModelConfiguration:j,sources:o,taskDefinition:u,settings:{enabled:N,scheduled:S,humanReviewRequired:k,intervalSeconds:Number(i.interval)*60,minimumApprovedExamples:Number(i.minimum),maxBatchExamples:Number(i.batch),maxIterationSpendUsd:Number(i.spend),maxDailySpendUsd:Number(i.daily),cooldownSeconds:Number(i.cooldown)*60,maxRetries:Number(i.retries),maxBacklogExamples:Number(i.backlog)}});d.current={action:"publish",kind:"policy",operationId:crypto.randomUUID(),expectedRevision:r?.revision??0,content:e}}return await b.command(d.current),d.current=null,h(!1),!0}catch(e){return e instanceof _&&e.status>=400&&e.status<500&&![408,429].includes(e.status)&&(d.current=null),U(e instanceof Error?e.message:"Unable to save learning settings."),!1}finally{w.current=!1,M(!1)}}const x=W({name:"learning settings",dirty:Q,busy:c,save:q});return n.jsxs(n.Fragment,{children:[n.jsxs(ee,{ariaLabel:"Continual learning settings",className:"labs-rename-dialog learning-workspace hosted-learning-settings",backdropClassName:"labs-rename-backdrop",dismissDisabled:c,onClose:()=>{x.requestLeave(v)},children:[n.jsx("h2",{children:"Continual learning settings"}),n.jsxs("p",{children:["Train ",g.name," from approved tasks. Acceptance and serving remain separate decisions."]}),n.jsx(X,{error:z??A}),n.jsxs("form",{onSubmit:async e=>{e.preventDefault(),await q()&&(x.allowNextNavigation(),v())},children:[n.jsxs("fieldset",{disabled:c||!!d.current,onChange:()=>h(!0),children:[n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:N,onChange:e=>P(e.target.checked)})," Enable learning"]}),n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:k,disabled:k,onChange:()=>O(!0)})," Human review required"]}),n.jsx("p",{children:"New policies require human review. Qualified automatic admission cannot be configured here yet."}),r?n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:j,onChange:e=>F(e.target.checked)})," Use the Model’s current training configuration"]}):null,n.jsxs("fieldset",{children:[n.jsx("legend",{children:"Task sources"}),!f&&!A?n.jsx("p",{children:"Loading sources…"}):null,f?.sources.items.map(e=>{const s=f.definitions.find(E=>D(I(E),e.taskDefinition)),l=!!(C&&s&&D(C,s.rewardBinding)&&(!u||D(u,e.taskDefinition))),p=o.find(E=>E.id===e.id);return n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:!!p,disabled:!p&&(!e.enabled||!l),onChange:()=>K(e)})," ",e.name,p&&p.revision!==e.revision?n.jsxs("small",{children:["Using saved revision ",p.revision,"; clear and reselect to update."]}):l?null:n.jsx("small",{children:"Different task format or Reward."})]},e.id)}),n.jsxs("p",{children:[o.length," sources selected. ",n.jsx("button",{type:"button",onClick:()=>{R([]),B(null),h(!0)},children:"Clear selection"})]}),n.jsx(Y,{after:m,next:f?.sources.nextCursor,onPage:e=>G(e??void 0)})]}),n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:S,onChange:e=>$(e.target.checked)})," Schedule training"]}),Object.keys(i).filter(e=>e!=="interval"||S).map(e=>n.jsxs("label",{children:[{interval:"Check interval (minutes)",minimum:"Minimum approved examples",batch:"Maximum examples per batch",spend:"Maximum spend per iteration ($)",daily:"Maximum daily spend ($)",cooldown:"Cooldown (minutes)",retries:"Automatic retries",backlog:"Maximum backlog"}[e],n.jsx("input",{type:"number",value:i[e],min:"0",step:e==="spend"||e==="daily"?"0.01":"1",onChange:s=>T(l=>({...l,[e]:s.target.value}))})]},e))]}),n.jsxs("div",{className:"model-build-actions",children:[n.jsx("button",{type:"submit",className:"training-button",disabled:c,children:c?"Saving…":d.current?"Retry save":"Save settings"}),n.jsx("button",{type:"button",className:"training-button secondary",disabled:c,onClick:()=>{x.requestLeave(v)},children:"Cancel"})]})]})]}),x.dialog]})}export{xe as HostedModelLearningSettings};
1
+ import{r as t,j as n}from"./index-BK8GmZmB.js";import{n as V,u as W,o as X,p as Y,q as Z}from"./LabsRoute-8cKFNq19.js";import{cO as D,dp as I,A as _}from"./App-Dg6mZIQk.js";import{A as ee}from"./AppDialog-gcj3rrTZ.js";import"./chunk-UHVJOMWN-BxgPi0yP.js";import"./cloud-upload-B9L-_gy0.js";import"./MainPane-SMqq5YAM.js";import"./MarkdownText-CLnvdLVg.js";import"./arrow-up-right-C60QSULo.js";import"./square-Coz7UQqd.js";import"./folder-open-BFy7KXWm.js";import"./play-C4PtpamL.js";import"./training-model-data-CKOkpBBL.js";import"./info-C8mwoaIJ.js";/* empty css */import"./ComposerCreateImproveStrip-f1tdD0QS.js";function xe({client:b,project:g,policy:r,onClose:v}){const[H]=t.useState(()=>r?.id??`policy-${crypto.randomUUID()}`),[a]=t.useState(()=>V(g,r)),[N,P]=t.useState(a.enabled),[S,$]=t.useState(a.scheduled),[j,F]=t.useState(!r),[k,O]=t.useState(a.humanReviewRequired),[o,R]=t.useState(r?.sources??[]),[u,B]=t.useState(r?.taskDefinition??null),[i,T]=t.useState({interval:String(a.intervalSeconds/60),minimum:String(a.minimumApprovedExamples),batch:String(a.maxBatchExamples),spend:String(a.maxIterationSpendUsd),daily:String(a.maxDailySpendUsd),cooldown:String(a.cooldownSeconds/60),retries:String(a.maxRetries),backlog:String(a.maxBacklogExamples)}),[Q,h]=t.useState(!1),[c,M]=t.useState(!1),[z,U]=t.useState(null),[m,G]=t.useState(),[y,J]=t.useState(null),[A,L]=t.useState(null),d=t.useRef(null),w=t.useRef(!1);t.useEffect(()=>{let e=!1;return b.sources(m).then(s=>{e||(J({after:m,data:s}),L(null))},s=>{e||L(s instanceof Error?s.message:String(s))}),()=>{e=!0}},[b,m]);const f=y&&y.after===m?y.data:null,C=j?g.trainingSetup.rewardBindingRef:r?.rewardBinding;function K(e){const s=o.some(l=>l.id===e.id);R(s?o.filter(l=>l.id!==e.id):[...o,I(e)]),B(s&&o.length===1?null:u??e.taskDefinition),h(!0)}async function q(){if(w.current)return!1;w.current=!0,M(!0),U(null);try{if(!d.current){if(!u||!o.length||!C)throw new Error("Select task sources and a Model Reward before saving.");const e=Z({project:g,previous:r,policyId:H,applyModelConfiguration:j,sources:o,taskDefinition:u,settings:{enabled:N,scheduled:S,humanReviewRequired:k,intervalSeconds:Number(i.interval)*60,minimumApprovedExamples:Number(i.minimum),maxBatchExamples:Number(i.batch),maxIterationSpendUsd:Number(i.spend),maxDailySpendUsd:Number(i.daily),cooldownSeconds:Number(i.cooldown)*60,maxRetries:Number(i.retries),maxBacklogExamples:Number(i.backlog)}});d.current={action:"publish",kind:"policy",operationId:crypto.randomUUID(),expectedRevision:r?.revision??0,content:e}}return await b.command(d.current),d.current=null,h(!1),!0}catch(e){return e instanceof _&&e.status>=400&&e.status<500&&![408,429].includes(e.status)&&(d.current=null),U(e instanceof Error?e.message:"Unable to save learning settings."),!1}finally{w.current=!1,M(!1)}}const x=W({name:"learning settings",dirty:Q,busy:c,save:q});return n.jsxs(n.Fragment,{children:[n.jsxs(ee,{ariaLabel:"Continual learning settings",className:"labs-rename-dialog learning-workspace hosted-learning-settings",backdropClassName:"labs-rename-backdrop",dismissDisabled:c,onClose:()=>{x.requestLeave(v)},children:[n.jsx("h2",{children:"Continual learning settings"}),n.jsxs("p",{children:["Train ",g.name," from approved tasks. Acceptance and serving remain separate decisions."]}),n.jsx(X,{error:z??A}),n.jsxs("form",{onSubmit:async e=>{e.preventDefault(),await q()&&(x.allowNextNavigation(),v())},children:[n.jsxs("fieldset",{disabled:c||!!d.current,onChange:()=>h(!0),children:[n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:N,onChange:e=>P(e.target.checked)})," Enable learning"]}),n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:k,disabled:k,onChange:()=>O(!0)})," Human review required"]}),n.jsx("p",{children:"New policies require human review. Qualified automatic admission cannot be configured here yet."}),r?n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:j,onChange:e=>F(e.target.checked)})," Use the Model’s current training configuration"]}):null,n.jsxs("fieldset",{children:[n.jsx("legend",{children:"Task sources"}),!f&&!A?n.jsx("p",{children:"Loading sources…"}):null,f?.sources.items.map(e=>{const s=f.definitions.find(E=>D(I(E),e.taskDefinition)),l=!!(C&&s&&D(C,s.rewardBinding)&&(!u||D(u,e.taskDefinition))),p=o.find(E=>E.id===e.id);return n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:!!p,disabled:!p&&(!e.enabled||!l),onChange:()=>K(e)})," ",e.name,p&&p.revision!==e.revision?n.jsxs("small",{children:["Using saved revision ",p.revision,"; clear and reselect to update."]}):l?null:n.jsx("small",{children:"Different task format or Reward."})]},e.id)}),n.jsxs("p",{children:[o.length," sources selected. ",n.jsx("button",{type:"button",onClick:()=>{R([]),B(null),h(!0)},children:"Clear selection"})]}),n.jsx(Y,{after:m,next:f?.sources.nextCursor,onPage:e=>G(e??void 0)})]}),n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:S,onChange:e=>$(e.target.checked)})," Schedule training"]}),Object.keys(i).filter(e=>e!=="interval"||S).map(e=>n.jsxs("label",{children:[{interval:"Check interval (minutes)",minimum:"Minimum approved examples",batch:"Maximum examples per batch",spend:"Maximum spend per iteration ($)",daily:"Maximum daily spend ($)",cooldown:"Cooldown (minutes)",retries:"Automatic retries",backlog:"Maximum backlog"}[e],n.jsx("input",{type:"number",value:i[e],min:"0",step:e==="spend"||e==="daily"?"0.01":"1",onChange:s=>T(l=>({...l,[e]:s.target.value}))})]},e))]}),n.jsxs("div",{className:"model-build-actions",children:[n.jsx("button",{type:"submit",className:"training-button",disabled:c,children:c?"Saving…":d.current?"Retry save":"Save settings"}),n.jsx("button",{type:"button",className:"training-button secondary",disabled:c,onClick:()=>{x.requestLeave(v)},children:"Cancel"})]})]})]}),x.dialog]})}export{xe as HostedModelLearningSettings};