openpond 0.2.25 → 0.2.27

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 (124) hide show
  1. package/dist/app-server.js +1 -1
  2. package/dist/chunks/{actions-command-S27YU6NW.js → actions-command-NOCBOF5S.js} +1 -1
  3. package/dist/chunks/{app-layer-57323XKJ.js → app-layer-GLXYIT4B.js} +1 -1
  4. package/dist/chunks/app-server-runtime-7BJV3LRA.js +2 -0
  5. package/dist/chunks/{apps-U3TXSPU6.js → apps-YSWZT656.js} +1 -1
  6. package/dist/chunks/chunk-2LSP2AAN.js +166 -0
  7. package/dist/chunks/{chunk-RBQZVQQM.js → chunk-3RHPYXUN.js} +1 -1
  8. package/dist/chunks/{chunk-YNH6AUGE.js → chunk-6ZK5EZGN.js} +2 -2
  9. package/dist/chunks/{chunk-TR37PJIQ.js → chunk-ETH4SZO6.js} +11 -28
  10. package/dist/chunks/{chunk-UBHTZJEV.js → chunk-H5WLJNQB.js} +1 -1
  11. package/dist/chunks/{chunk-KLSLHUTO.js → chunk-I7XD5OBR.js} +1 -1
  12. package/dist/chunks/{chunk-F3VURV3Q.js → chunk-JKMPJFMN.js} +2 -2
  13. package/dist/chunks/{chunk-4KDHMGKI.js → chunk-JPCPNW6T.js} +1 -1
  14. package/dist/chunks/chunk-L3KS6MOV.js +2 -0
  15. package/dist/chunks/chunk-MAMUNDBZ.js +26 -0
  16. package/dist/chunks/{chunk-WK5HTGXV.js → chunk-P57W2CB2.js} +1 -1
  17. package/dist/chunks/{chunk-JTX6QZEP.js → chunk-Q6HXXKSB.js} +1 -1
  18. package/dist/chunks/{chunk-5WFXFKLA.js → chunk-SZDIGKZT.js} +333 -333
  19. package/dist/chunks/chunk-TOIG2PMH.js +19 -0
  20. package/dist/chunks/{chunk-AC2M2HO3.js → chunk-WVUPFGU7.js} +1 -1
  21. package/dist/chunks/chunk-XLF7VRKY.js +2 -0
  22. package/dist/chunks/{chunk-M4VGRNP6.js → chunk-Y2KDWP74.js} +1 -1
  23. package/dist/chunks/cli-A7DVODK2.js +2 -0
  24. package/dist/chunks/{configuration-command-BASDSNVK.js → configuration-command-VGYAJAKN.js} +1 -1
  25. package/dist/chunks/{core-commands-YQTVPPLJ.js → core-commands-QQNCA4WQ.js} +1 -1
  26. package/dist/chunks/{desktop-test-JITAYXCK.js → desktop-test-BMDAEN6Z.js} +1 -1
  27. package/dist/chunks/{extension-ZKWQ3ZPJ.js → extension-IQW2KDT6.js} +5 -5
  28. package/dist/chunks/{help-SDEZHWZL.js → help-DZBHIKVE.js} +1 -1
  29. package/dist/chunks/{opchat-IOP37GN3.js → opchat-BSTDLB7O.js} +1 -1
  30. package/dist/chunks/organizations-LAUKUPDF.js +2 -0
  31. package/dist/chunks/profile-ESJFHPYC.js +3 -0
  32. package/dist/chunks/{project-agent-DALYNEZ4.js → project-agent-CPQP4ZY6.js} +1 -1
  33. package/dist/chunks/{sandbox-command-VHCKLKN5.js → sandbox-command-W6NWHFAR.js} +1 -1
  34. package/dist/chunks/{sandbox-template-WY7XIMDK.js → sandbox-template-SM62NUMJ.js} +1 -1
  35. package/dist/chunks/{src-22KEI2VU.js → src-4L62URN6.js} +1 -1
  36. package/dist/chunks/{src-R3FALV6F.js → src-7AFR2KXE.js} +113 -109
  37. package/dist/chunks/{teams-bot-47H7LRFD.js → teams-bot-6LEMA4OH.js} +1 -1
  38. package/dist/chunks/{workspaces-RAHQXYWB.js → workspaces-2ROP4VXW.js} +1 -1
  39. package/dist/cli.js +1 -1
  40. package/dist/index.js +1 -1
  41. package/dist/web/assets/App-eRfSvxdE.js +226 -0
  42. package/dist/web/assets/{AppDialog-C3H3HARP.js → AppDialog-FvWvdWfk.js} +1 -1
  43. package/dist/web/assets/{AppTerminalPanel-DIXARKfe.js → AppTerminalPanel-Dfo_tXAE.js} +2 -2
  44. package/dist/web/assets/{AppsView-D0xPDTPJ.js → AppsView-CKg2_SXF.js} +1 -1
  45. package/dist/web/assets/{BrowserSidebar-D5eE9O30.js → BrowserSidebar-CBRz9dVj.js} +1 -1
  46. package/dist/web/assets/{CartesianChart-KMVbiMJX.js → CartesianChart-iXtVfIXm.js} +1 -1
  47. package/dist/web/assets/{CollaborationTabs-C1LTvUbK.js → CollaborationTabs-BFuRwsEy.js} +1 -1
  48. package/dist/web/assets/{CommandMenu-C9elnZaI.js → CommandMenu-Coahy7-K.js} +1 -1
  49. package/dist/web/assets/{CommunityView-BvXxVHmL.js → CommunityView-C0B6EVIp.js} +1 -1
  50. package/dist/web/assets/{ComposerCreateImproveStrip-Cwu8EaCb.js → ComposerCreateImproveStrip-C0MkRhov.js} +1 -1
  51. package/dist/web/assets/{GetStartedView-BI1j30-I.js → GetStartedView-f90pfPRp.js} +1 -1
  52. package/dist/web/assets/HostedModelLearningReview-DdZnSPKb.js +1 -0
  53. package/dist/web/assets/{HostedModelLearningSettings-DhaT1bxX.js → HostedModelLearningSettings-p9RdBxGd.js} +1 -1
  54. package/dist/web/assets/{LabModelVersionDetailPage-CeSm-sAq.js → LabModelVersionDetailPage-DLqT1fMT.js} +1 -1
  55. package/dist/web/assets/{LabSkillSidebar-BzGs7EC8.js → LabSkillSidebar-C7BuAuNK.js} +1 -1
  56. package/dist/web/assets/{LabsRoute-BQi8W0-2.js → LabsRoute-CUVbklNy.js} +4 -4
  57. package/dist/web/assets/{MainChatThread-D3KXQ4Te.js → MainChatThread-Crjs_iFv.js} +2 -2
  58. package/dist/web/assets/{MainPane-J15DRf-n.js → MainPane-Bl91XbhC.js} +7 -7
  59. package/dist/web/assets/{MarkdownText-BWIVACAt.js → MarkdownText-DV3sDJG3.js} +1 -1
  60. package/dist/web/assets/{Messages-BPbo8ih9.js → Messages-Bxo_ATcK.js} +1 -1
  61. package/dist/web/assets/{NativeSkillSidebar-BeqI4dXF.js → NativeSkillSidebar-B3wc0iGh.js} +1 -1
  62. package/dist/web/assets/{NewExperienceSwitcher-BggrQVIi.js → NewExperienceSwitcher-DBdsaysM.js} +1 -1
  63. package/dist/web/assets/{NewProjectDialog-B4PTFf78.js → NewProjectDialog-CtJJ6u5l.js} +1 -1
  64. package/dist/web/assets/{OutputsPage-DChjcyaP.js → OutputsPage-CV9rYjbQ.js} +1 -1
  65. package/dist/web/assets/{ProjectsPage-BdUkyg6I.js → ProjectsPage-O162K_Yb.js} +1 -1
  66. package/dist/web/assets/{RightChatPanelStack-CLCOzLVJ.js → RightChatPanelStack-CXzHpD5V.js} +1 -1
  67. package/dist/web/assets/{RightSidebarHomePanel-qs2Fa4JQ.js → RightSidebarHomePanel-DweT04nf.js} +1 -1
  68. package/dist/web/assets/ScheduledWorkPage-DFvjzhvz.js +1 -0
  69. package/dist/web/assets/SettingsView-B-O30p4h.js +9 -0
  70. package/dist/web/assets/{TeamChatView-uGwanVsA.js → TeamChatView-BoQYnywK.js} +1 -1
  71. package/dist/web/assets/{TerminalOverlay-DJNdErEp.js → TerminalOverlay-oLOOTbdP.js} +1 -1
  72. package/dist/web/assets/{TrainingCreationPanel-CwyKMNwt.js → TrainingCreationPanel-aCFYDuYZ.js} +1 -1
  73. package/dist/web/assets/{TrainingDraftPanel-Rdusv4s_.js → TrainingDraftPanel-CFa1YRTU.js} +1 -1
  74. package/dist/web/assets/{UsageSettingsSection-BkRalGcP.js → UsageSettingsSection-CakaMl6_.js} +1 -1
  75. package/dist/web/assets/{WorkSidebarPanel-d8PB-XNy.js → WorkSidebarPanel-XFwuIBFa.js} +1 -1
  76. package/dist/web/assets/{WorkspaceDiffPanel-DfpyLroX.js → WorkspaceDiffPanel-CL-lAcvW.js} +3 -3
  77. package/dist/web/assets/{WorkspaceEnvironmentMenu-DhUUB-lq.js → WorkspaceEnvironmentMenu-DcFKeae1.js} +1 -1
  78. package/dist/web/assets/{WorkspaceGitDialogs-0juVLtVy.js → WorkspaceGitDialogs-CE6uwWBo.js} +1 -1
  79. package/dist/web/assets/{WorkspaceMonacoEditor-Blo5esSN.js → WorkspaceMonacoEditor-Dd1yWxIF.js} +3 -3
  80. package/dist/web/assets/{arrow-up-right-BXeo-8KJ.js → arrow-up-right-DrBHDOjJ.js} +1 -1
  81. package/dist/web/assets/{chat-file-links-BEbA_E33.js → chat-file-links-DKYaOINv.js} +1 -1
  82. package/dist/web/assets/chevron-up-CT-jxFh0.js +1 -0
  83. package/dist/web/assets/{clipboard-17OIp5F-.js → clipboard-BwxTBPCP.js} +1 -1
  84. package/dist/web/assets/{cloud-upload-D28o8URw.js → cloud-upload-Ce9uYXcQ.js} +1 -1
  85. package/dist/web/assets/{cssMode-DDPYV_bh.js → cssMode-DDD1HmKz.js} +1 -1
  86. package/dist/web/assets/{folder-open-CqBlANkk.js → folder-open-BmWqQp0P.js} +1 -1
  87. package/dist/web/assets/{folder-plus-DkUnvZhx.js → folder-plus-B402AJf4.js} +1 -1
  88. package/dist/web/assets/{git-commit-horizontal-BEIomQj0.js → git-commit-horizontal-C1uAivqm.js} +1 -1
  89. package/dist/web/assets/{htmlMode-gF-t3JxJ.js → htmlMode-1MNILRvh.js} +1 -1
  90. package/dist/web/assets/{index-C5EoPZr0.css → index-BZ4iTv8E.css} +1 -1
  91. package/dist/web/assets/{index-Dg_FWrRZ.js → index-CPTsOhRN.js} +2 -2
  92. package/dist/web/assets/{info-n9PKmODI.js → info-BNROwjpD.js} +1 -1
  93. package/dist/web/assets/{jsonMode-B5DVQ7wE.js → jsonMode-mGxJ8u70.js} +1 -1
  94. package/dist/web/assets/{lspLanguageFeatures-FK4QlUnB.js → lspLanguageFeatures-DnwAgCyz.js} +1 -1
  95. package/dist/web/assets/{minimize-2--J7-Zqg1.js → minimize-2-DFgldo5D.js} +1 -1
  96. package/dist/web/assets/{monaco.contribution-DCmsluF_.js → monaco.contribution-BlgPPKyd.js} +2 -2
  97. package/dist/web/assets/{monaco.contribution-DEkLSjvo.js → monaco.contribution-CBuz55_x.js} +2 -2
  98. package/dist/web/assets/{monaco.contribution-CV2W_Ydj.js → monaco.contribution-CGYtN1vj.js} +2 -2
  99. package/dist/web/assets/{monaco.contribution-CM_Srh4F.js → monaco.contribution-qZ9QzQ68.js} +2 -2
  100. package/dist/web/assets/{play-CT6lFZDI.js → play-BQFyTfNz.js} +1 -1
  101. package/dist/web/assets/{python-DQHHAEpa.js → python-CpsWHcA8.js} +1 -1
  102. package/dist/web/assets/{refresh-cw-Cm-4hHSn.js → refresh-cw-DfFBmfXv.js} +1 -1
  103. package/dist/web/assets/{save-CwgR_oyc.js → save-8XYI0E0Y.js} +1 -1
  104. package/dist/web/assets/{square-DPrPBeHW.js → square-FQ0GLxuE.js} +1 -1
  105. package/dist/web/assets/{toggleHighContrast-C1QZjrPj.js → toggleHighContrast-CX2hgvvU.js} +1 -1
  106. package/dist/web/assets/{tsMode-DY4Ji1ac.js → tsMode-D9XBNmxG.js} +1 -1
  107. package/dist/web/assets/{upload-DABGNAIq.js → upload-BNXILcvp.js} +1 -1
  108. package/dist/web/assets/{useLocalAgentSchedules-D5P28Jej.js → useLocalAgentSchedules-Ccst1Wnz.js} +1 -1
  109. package/dist/web/assets/{wifi-off-CJOdJJRb.js → wifi-off-BoQdtnnN.js} +1 -1
  110. package/dist/web/assets/{workers-BLjr7D_D.js → workers-DpMJzLwE.js} +1 -1
  111. package/dist/web/assets/{yaml-eXk00scV.js → yaml-BqS3gPsN.js} +1 -1
  112. package/dist/web/index.html +2 -2
  113. package/package.json +1 -1
  114. package/dist/chunks/app-server-runtime-QIIJ3KQJ.js +0 -2
  115. package/dist/chunks/chunk-D6BBQHZM.js +0 -28
  116. package/dist/chunks/chunk-M4CJXPMH.js +0 -26
  117. package/dist/chunks/cli-GGYPZNZC.js +0 -2
  118. package/dist/chunks/organizations-4LQEILYG.js +0 -2
  119. package/dist/chunks/profile-MVLYUDLU.js +0 -3
  120. package/dist/web/assets/App-BzNZ7ycx.js +0 -176
  121. package/dist/web/assets/HostedModelLearningReview-Bwkg3lyV.js +0 -1
  122. package/dist/web/assets/ScheduledWorkPage-DzehKDhk.js +0 -1
  123. package/dist/web/assets/SettingsView-DJiJKYWW.js +0 -9
  124. package/dist/web/assets/chevron-up-Dx5rir4H.js +0 -1
@@ -0,0 +1 @@
1
+ import{r as o,j as e}from"./index-CPTsOhRN.js";import{v as E,w as Re,aX as Ce,dr as Ae,bl as Te,X as $e,aK as xe,g as De,K as ee,t as Ee,aB as K,ds as Ie}from"./App-eRfSvxdE.js";import{R as J,u as Me}from"./useLocalAgentSchedules-Ccst1Wnz.js";import{a as We,P as le,T as pe}from"./chat-file-links-DKYaOINv.js";import{P as ae}from"./play-BQFyTfNz.js";import{R as Pe}from"./refresh-cw-DfFBmfXv.js";import{S as ze}from"./save-8XYI0E0Y.js";import{M as Le}from"./minimize-2-DFgldo5D.js";import{r as Fe,c as Oe,a as Ze}from"./MainPane-Bl91XbhC.js";import"./cloud-upload-Ce9uYXcQ.js";import"./arrow-up-right-DrBHDOjJ.js";import"./square-FQ0GLxuE.js";const _e=3e4;function He(s){const[t,n]=o.useState([]),[l,d]=o.useState([]),[x,p]=o.useState(null),[j,r]=o.useState(!1),[a,c]=o.useState(null),[k,w]=o.useState(()=>new Set);async function h(m,f){f&&r(!0);try{const u=await E.hostedSavedWork(m);n(u.definitions),d(u.runs),p(u.webBaseUrl??null),c(null)}catch(u){c(se(u))}finally{f&&r(!1)}}o.useEffect(()=>{if(!s){n([]),d([]),p(null),c(null),r(!1);return}let m=!1;const f=async A=>{if(!m){A&&r(!0);try{const g=await E.hostedSavedWork(s);if(m)return;n(g.definitions),d(g.runs),p(g.webBaseUrl??null),c(null)}catch(g){m||c(se(g))}finally{!m&&A&&r(!1)}}};f(!0);const u=window.setInterval(()=>{f(!1)},_e);return()=>{m=!0,window.clearInterval(u)}},[s]);async function b(){s&&await h(s,!0)}async function R(m){s&&(await E.createHostedSavedWork(s,m),await h(s,!1))}async function $(m,f){await C(m,async u=>{await E.updateHostedSavedWork(u,m,f)})}async function y(m){await C(m,async f=>{await E.deleteHostedSavedWork(f,m)})}async function P(m){await C(m,async f=>{await E.runHostedSavedWork(f,m,crypto.randomUUID())})}async function C(m,f){if(!(!s||k.has(m))){N(m,!0);try{await f(s),await h(s,!1)}catch(u){throw c(se(u)),u}finally{N(m,!1)}}}function N(m,f){w(u=>{const A=new Set(u);return f?A.add(m):A.delete(m),A})}return{create:R,definitions:t,error:a,loading:j,pendingScheduleIds:k,refresh:b,remove:y,run:P,runs:l,update:$,webBaseUrl:x}}function se(s){return s instanceof Error?s.message:String(s)}const Ke=3e4;function Ue(s){const[t,n]=o.useState([]),[l,d]=o.useState([]),[x,p]=o.useState(!1),[j,r]=o.useState(null),[a,c]=o.useState(()=>new Set),k=o.useCallback(async h=>{if(s){h&&p(!0);try{const b=await E.chatWorkflows(s);n(b.workflows),d(b.runs),r(null)}catch(b){r(b instanceof Error?b.message:String(b))}finally{h&&p(!1)}}},[s]);o.useEffect(()=>{if(!s){n([]),d([]),r(null),p(!1);return}k(!0);const h=window.setInterval(()=>{k(!1)},Ke);return()=>window.clearInterval(h)},[s,k]);async function w(h,b){if(!a.has(h)){c(R=>new Set(R).add(h));try{await b(),await k(!1)}catch(R){throw r(R instanceof Error?R.message:String(R)),R}finally{c(R=>{const $=new Set(R);return $.delete(h),$})}}}return{workflows:t,runs:l,loading:x,error:j,pendingIds:a,refresh:()=>k(!0),update:(h,b)=>w(h,()=>E.updateChatWorkflow(s,h,b)),remove:h=>w(h,()=>E.deleteChatWorkflow(s,h)),run:h=>w(h,()=>E.runChatWorkflow(s,h))}}const je="openpond.scheduled-work.view.v1";function oe(s=we()){try{return s?.getItem(je)==="list"?"list":"calendar"}catch{return"calendar"}}function Be(s,t=we()){try{t?.setItem(je,s)}catch{}}function we(){if(typeof window>"u")return null;try{return Re}catch{return null}}function W(s,t){if(!s)return"None";const n=new Date(s);if(!Number.isFinite(n.getTime()))return"None";try{return n.toLocaleString(void 0,{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",...t?{timeZone:t,timeZoneName:"short"}:{}})}catch{return n.toLocaleString()}}function be(s){return Y(s.replaceAll("_"," "))}function Y(s){return s.replace(/^./,t=>t.toUpperCase())}function ve(s){const[t="0",n="00"]=s.split(":");return new Date(2020,0,1,Number(t),Number(n)).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})}function Ve({run:s}){const t=s.error||s.stderr||s.stdout;return e.jsxs("details",{className:"scheduled-run-row",children:[e.jsxs("summary",{children:[e.jsxs("span",{children:[e.jsx("strong",{children:be(s.status)}),e.jsx("small",{children:W(s.createdAt,null)})]}),e.jsx("span",{className:"scheduled-run-trigger",children:s.trigger==="manual"?"Manual":"Scheduled"})]}),t?e.jsx("pre",{children:t}):null]})}function Ye({onOpen:s,run:t}){return e.jsxs("button",{className:"scheduled-run-row hosted",onClick:s,type:"button",children:[e.jsxs("span",{children:[e.jsx("strong",{children:be(t.status)}),e.jsx("small",{children:W(t.createdAt,null)})]}),e.jsxs("span",{className:"scheduled-run-trigger",children:[Y(t.triggerKind)," ",e.jsx(xe,{size:11})]}),t.deliveryError?e.jsx("p",{children:t.deliveryError}):null]})}function Q({children:s,detailExpanded:t,kind:n="schedule",label:l,onClose:d,onDetailResizeStart:x,onToggleDetailExpanded:p}){return e.jsxs("aside",{"aria-label":l,className:`workspace-diff-panel scheduled-detail${t?" expanded":""}`,children:[t?null:e.jsx("div",{"aria-label":"Resize schedule details","aria-orientation":"vertical",className:"workspace-diff-resize-handle",onPointerDown:x,role:"separator"}),e.jsxs("div",{className:"workspace-diff-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":`${n==="workflow"?"Workflow":"Schedule"} details`,children:e.jsxs("button",{"aria-selected":"true",className:"workspace-diff-tab active",role:"tab",type:"button",children:[e.jsx(Ae,{size:14}),e.jsx("span",{children:n==="workflow"?"Workflow":"Schedule"})]})}),e.jsxs("div",{className:"workspace-diff-toolbar-actions",children:[e.jsx("button",{"aria-label":t?`Dock ${n} details`:`Expand ${n} details`,className:"diff-icon-button",onClick:p,title:t?`Dock ${n} details`:`Expand ${n} details`,type:"button",children:t?e.jsx(Le,{size:14}):e.jsx(Te,{size:14})}),e.jsx("button",{"aria-label":`Close ${n} details`,className:"diff-icon-button",onClick:d,title:`Close ${n} details`,type:"button",children:e.jsx($e,{size:14})})]})]}),e.jsx("div",{className:"scheduled-detail-body",children:s})]})}function T({children:s,title:t}){return e.jsxs("section",{className:"scheduled-detail-section",children:[e.jsx("div",{className:"scheduled-detail-section-heading",children:e.jsx("h3",{children:t})}),s]})}function M({label:s,value:t}){return e.jsxs("div",{children:[e.jsx("dt",{children:s}),e.jsx("dd",{children:t})]})}function te({children:s}){return e.jsx("p",{className:"scheduled-empty",children:s})}function ke({label:s}){return e.jsxs("div",{className:"scheduled-loading",role:"status",children:[e.jsx(Ce,{className:"scheduled-spin",size:16}),e.jsx("span",{children:s})]})}const qe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function Xe({items:s,onSelect:t,selectedKey:n}){const[l,d]=o.useState(()=>de(new Date)),x=o.useMemo(()=>Ge(l),[l]),p=o.useMemo(()=>Je(s),[s]),j=new Intl.DateTimeFormat(void 0,{month:"long",year:"numeric"}).format(l),r=s.filter(a=>!ge(a.nextRunAt));return e.jsxs("div",{className:"scheduled-calendar",children:[e.jsxs("div",{className:"scheduled-calendar-toolbar",children:[e.jsx("strong",{children:j}),e.jsxs("div",{children:[e.jsx("button",{"aria-label":"Previous month",className:"scheduled-icon-button",onClick:()=>d(ce(l,-1)),type:"button",children:e.jsx(De,{size:15})}),e.jsx("button",{className:"scheduled-calendar-today",onClick:()=>d(de(new Date)),type:"button",children:"Today"}),e.jsx("button",{"aria-label":"Next month",className:"scheduled-icon-button",onClick:()=>d(ce(l,1)),type:"button",children:e.jsx(We,{size:15})})]})]}),e.jsxs("div",{className:"scheduled-calendar-grid",role:"grid","aria-label":j,children:[qe.map(a=>e.jsx("div",{className:"scheduled-calendar-weekday",role:"columnheader",children:a},a)),x.map(a=>{const c=ne(a),k=p.get(c)??[],w=a.getMonth()!==l.getMonth(),h=c===ne(new Date);return e.jsxs("div",{className:`scheduled-calendar-day${w?" outside":""}${h?" today":""}`,role:"gridcell",children:[e.jsx("span",{className:"scheduled-calendar-day-number",children:a.getDate()}),e.jsx("div",{className:"scheduled-calendar-events",children:k.map(b=>e.jsxs("button",{"aria-current":n===b.key?"true":void 0,className:`scheduled-calendar-event${b.enabled?"":" paused"}`,onClick:()=>t(b.key),title:b.title,type:"button",children:[e.jsx("span",{children:Qe(b.nextRunAt)}),e.jsx("strong",{children:b.title})]},b.key))})]},c)})]}),r.length?e.jsxs("div",{className:"scheduled-calendar-unscheduled",children:[e.jsx("span",{children:"No upcoming run"}),e.jsx("div",{children:r.map(a=>e.jsx("button",{onClick:()=>t(a.key),type:"button",children:a.title},a.key))})]}):null]})}function Ge(s){const t=new Date(s.getFullYear(),s.getMonth(),1),n=new Date(t);return n.setDate(t.getDate()-t.getDay()),Array.from({length:42},(l,d)=>{const x=new Date(n);return x.setDate(n.getDate()+d),x})}function Je(s){const t=new Map;for(const n of s){const l=ge(n.nextRunAt);if(!l)continue;const d=ne(l);t.set(d,[...t.get(d)??[],n])}for(const n of t.values())n.sort((l,d)=>l.nextRunAt.localeCompare(d.nextRunAt));return t}function ge(s){if(!s)return null;const t=new Date(s);return Number.isNaN(t.getTime())?null:t}function ne(s){return`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}-${String(s.getDate()).padStart(2,"0")}`}function de(s){return new Date(s.getFullYear(),s.getMonth(),1)}function ce(s,t){return new Date(s.getFullYear(),s.getMonth()+t,1)}function Qe(s){return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(new Date(s))}function es({entry:s,onSelect:t,selected:n}){return e.jsxs("button",{"aria-current":n?"true":void 0,className:"scheduled-list-row",onClick:t,type:"button",children:[e.jsx("span",{className:"scheduled-status-dot"}),e.jsxs("span",{className:"scheduled-list-copy",children:[e.jsx("span",{className:"scheduled-list-title",children:e.jsx("strong",{children:s.workflow.label})}),e.jsx("span",{children:s.workflow.description}),e.jsxs("small",{children:["On demand · Source ",s.binding.sourceRevision.slice(0,10)]})]})]})}function ss({cadence:s,onSelect:t,schedule:n,selected:l}){return e.jsxs("button",{"aria-current":l?"true":void 0,className:"scheduled-list-row",onClick:t,type:"button",children:[e.jsx("span",{className:`scheduled-status-dot ${n.enabled?"active":"paused"}`}),e.jsxs("span",{className:"scheduled-list-copy",children:[e.jsx("span",{className:"scheduled-list-title",children:e.jsx("strong",{children:n.scheduleName})}),e.jsx("span",{children:n.localProjectName}),e.jsxs("small",{children:[s,n.nextRunAt?` · Next ${W(n.nextRunAt,n.timezone)}`:" · No next run"]})]})]})}function ts({cadence:s,definition:t,onSelect:n,schedule:l,selected:d}){return e.jsxs("button",{"aria-current":d?"true":void 0,className:"scheduled-list-row",onClick:n,type:"button",children:[e.jsx("span",{className:`scheduled-status-dot ${l.enabled?"active":"paused"}`}),e.jsxs("span",{className:"scheduled-list-copy",children:[e.jsxs("span",{className:"scheduled-list-title",children:[e.jsx("strong",{children:t.name}),e.jsx("small",{className:"scheduled-environment-badge hosted",children:"Hosted"})]}),e.jsx("span",{children:t.prompt}),e.jsxs("small",{children:[s,l.nextRunAt?` · Next ${W(l.nextRunAt,l.timeZone)}`:" · No next run"]})]})]})}function ns({cadence:s,onSelect:t,selected:n,workflow:l}){return e.jsxs("button",{"aria-current":n?"true":void 0,className:"scheduled-list-row",onClick:t,type:"button",children:[e.jsx("span",{className:`scheduled-status-dot ${l.enabled?"active":"paused"}`}),e.jsxs("span",{className:"scheduled-list-copy",children:[e.jsxs("span",{className:"scheduled-list-title",children:[e.jsx("strong",{children:l.name}),e.jsx("small",{className:"scheduled-environment-badge",children:"Chat"})]}),e.jsx("span",{children:l.prompt}),e.jsxs("small",{children:["Runs in ",l.sessionTitle," · ",s,l.nextRunAt?` · Next ${W(l.nextRunAt,l.recurrence.timeZone)}`:" · No next run"]})]})]})}function ls(s,t){return s.filter(n=>t==="active"?n.enabled:t==="paused"?!n.enabled:!0).sort((n,l)=>{const d=n.nextRunAt?new Date(n.nextRunAt).getTime():Number.POSITIVE_INFINITY,x=l.nextRunAt?new Date(l.nextRunAt).getTime():Number.POSITIVE_INFINITY;return d-x||n.name.localeCompare(l.name)})}function re(s){const t=ve(s.localTime);return s.kind==="once"?`Once on ${s.startDate} at ${t} · ${s.timeZone}`:s.kind==="weekdays"?`Weekdays at ${t} · ${s.timeZone}`:s.kind==="weekly"?`${s.weekdays?.map(Y).join(", ")??"Weekly"} at ${t} · ${s.timeZone}`:s.kind==="monthly"?`Monthly on day ${s.dayOfMonth??1} at ${t} · ${s.timeZone}`:`Daily at ${t} · ${s.timeZone}`}function as({detailExpanded:s,onClose:t,onDelete:n,onDetailResizeStart:l,onRun:d,onToggle:x,onToggleDetailExpanded:p,pending:j,runs:r,workflow:a}){return e.jsxs(Q,{detailExpanded:s,label:`${a.name} details`,onClose:t,onDetailResizeStart:l,onToggleDetailExpanded:p,children:[e.jsx("div",{className:"scheduled-detail-header",children:e.jsxs("div",{children:[e.jsxs("div",{className:"scheduled-detail-title-row",children:[e.jsx("h2",{children:"Workflow details"}),e.jsx("span",{children:a.enabled?"Active":"Paused"})]}),e.jsx("p",{children:a.name})]})}),e.jsx(T,{title:"Prompt",children:e.jsx("pre",{className:"scheduled-prompt",children:a.prompt})}),e.jsx(T,{title:"Profile source",children:a.profileRef&&a.profileWorkflowId?e.jsxs("p",{children:[a.profileRef.profileId," · workflows/",a.profileWorkflowId,"/PROMPT.md"]}):e.jsx("p",{className:"scheduled-detail-error",children:a.profileMigrationError??"Profile package is unresolved."})}),e.jsxs(T,{title:"Delivery",children:[e.jsxs("dl",{className:"scheduled-detail-fields",children:[e.jsx(M,{label:"Runs in",value:a.sessionTitle}),e.jsx(M,{label:"Cadence",value:re(a.recurrence)}),e.jsx(M,{label:"Next run",value:W(a.nextRunAt,a.recurrence.timeZone)}),e.jsx(M,{label:"Last run",value:W(a.lastRunAt,a.recurrence.timeZone)})]}),a.lastError?e.jsx("p",{className:"scheduled-detail-error",children:a.lastError}):null]}),e.jsxs("div",{className:"scheduled-detail-actions",children:[e.jsxs("button",{disabled:j,onClick:()=>{d()},type:"button",children:[e.jsx(J,{size:15}),e.jsx("span",{children:"Run now"})]}),e.jsxs("button",{disabled:j,onClick:()=>{x()},type:"button",children:[a.enabled?e.jsx(le,{size:15}):e.jsx(ae,{size:15}),e.jsx("span",{children:a.enabled?"Pause":"Resume"})]}),e.jsxs("button",{disabled:j,onClick:()=>{n()},type:"button",children:[e.jsx(pe,{size:15}),e.jsx("span",{children:"Delete"})]})]}),e.jsx(T,{title:"Runs",children:r.length===0?e.jsx("p",{className:"scheduled-no-runs",children:"No runs yet."}):e.jsx("div",{className:"scheduled-run-list",children:r.map(c=>e.jsxs("div",{className:"scheduled-run-row",children:[e.jsx("span",{children:Y(c.status)}),e.jsx("small",{children:W(c.createdAt,a.recurrence.timeZone)}),c.error?e.jsx("p",{children:c.error}):null]},c.id))})})]})}async function rs(s){const t=s.catalog.workflows.find(d=>d.workflow.id===s.workflowId);if(!t)throw new Error("Selected Profile workflow is unavailable.");const n=s.client??E,l=await n.createSession(s.connection,{experience:"work",provider:"openpond",...s.workspaceTarget==="local"?{metadata:{workspaceTarget:"local"}}:{},currentProfile:s.catalog.profileRef,profileWorkflowBinding:t.binding,title:t.workflow.label});return s.onSessionCreated?.(l.id),await n.sendTurn(s.connection,l.id,{prompt:s.prompt?.trim()||t.workflow.label,workflowInput:s.value,...s.attachments?.length?{attachments:s.attachments}:{},approvalPolicy:"on-request",sandbox:"workspace-write",codexPermissionMode:"default"}),l.id}function is({catalog:s,connection:t,detailExpanded:n,entry:l,onClose:d,onDetailResizeStart:x,onOpenSession:p,onToggleDetailExpanded:j}){const[r,a]=o.useState(""),[c,k]=o.useState([]),[w,h]=o.useState("{}"),[b,R]=o.useState(s.profileRef.source==="local"?"local":"hosted"),[$,y]=o.useState(!1),[P,C]=o.useState(null),N=l.workflow;async function m(f){if(f.preventDefault(),!$){y(!0),C(null);try{const u=JSON.parse(w);if(c.length>ee.maxAttachments)throw new Error(`Choose at most ${ee.maxAttachments} files.`);const A=await Promise.all(c.map(async g=>{if(g.size>ee.maxAttachmentBytes)throw new Error(`${g.name} exceeds the attachment size limit.`);return Fe({id:Ze(),file:g,name:g.name,mediaType:g.type||"application/octet-stream",sizeBytes:g.size,kind:Oe(g)})}));await rs({connection:t,catalog:s,workflowId:N.id,value:u,prompt:r,attachments:A,workspaceTarget:b,onSessionCreated:p})}catch(u){C(u instanceof Error?u.message:String(u))}finally{y(!1)}}}return e.jsxs(Q,{detailExpanded:n,kind:"workflow",label:`${N.label} details`,onClose:d,onDetailResizeStart:x,onToggleDetailExpanded:j,children:[e.jsx("div",{className:"scheduled-detail-header",children:e.jsxs("div",{children:[e.jsx("div",{className:"scheduled-detail-title-row",children:e.jsx("h2",{children:"Workflow details"})}),e.jsx("p",{children:N.label})]})}),e.jsx(T,{title:"Description",children:e.jsx("p",{children:N.description})}),e.jsxs(T,{title:"Source",children:[e.jsxs("p",{children:["workflows/",N.id,"/",N.invocation.kind==="instructions"?"PROMPT.md":"ACTION.json"]}),e.jsxs("p",{children:["Revision ",l.binding.sourceRevision.slice(0,12)," · Release ",l.binding.harnessRelease.contentHash.slice(0,12)]})]}),N.skillPaths.length>0?e.jsx(T,{title:"Skills",children:e.jsx("p",{children:N.skillPaths.join(", ")})}):null,N.invocation.kind==="instructions"?e.jsx(T,{title:"Instructions",children:e.jsx("pre",{className:"scheduled-prompt",children:N.invocation.instructions})}):null,e.jsx(T,{title:"Start a run",children:e.jsxs("form",{className:"scheduled-profile-workflow-form",onSubmit:f=>{m(f)},children:[e.jsx("label",{htmlFor:"scheduled-profile-workflow-prompt",children:"Instructions for this run"}),e.jsx("textarea",{id:"scheduled-profile-workflow-prompt",onChange:f=>a(f.target.value),value:r}),e.jsx("label",{htmlFor:"scheduled-profile-workflow-files",children:"Files for this run"}),e.jsx("input",{id:"scheduled-profile-workflow-files",type:"file",multiple:!0,onChange:f=>k(Array.from(f.target.files??[]))}),c.length>0?e.jsx("small",{children:c.map(f=>f.name).join(", ")}):null,e.jsx("label",{htmlFor:"scheduled-profile-workflow-target",children:"Run in"}),e.jsxs("select",{id:"scheduled-profile-workflow-target",value:b,onChange:f=>R(f.target.value),children:[e.jsx("option",{value:"local",children:"Desktop local workspace"}),e.jsx("option",{value:"hosted",children:"Hosted Work"})]}),N.invocation.kind==="agent_action"?e.jsxs(e.Fragment,{children:[e.jsx("label",{htmlFor:"scheduled-profile-workflow-input",children:"Input JSON"}),e.jsx("textarea",{id:"scheduled-profile-workflow-input",onChange:f=>h(f.target.value),value:w})]}):null,P?e.jsx("p",{className:"scheduled-detail-error",role:"alert",children:P}):null,e.jsx("div",{className:"scheduled-detail-actions",children:e.jsxs("button",{disabled:$,type:"submit",children:[e.jsx(J,{size:15}),e.jsx("span",{children:$?"Starting…":"Run now"})]})})]})})]})}function os(s){return s.flatMap(t=>t.schedules.map(n=>({definition:t,schedule:n})))}function ds(s,t){return s.filter(n=>t==="active"?n.schedule.enabled:t==="paused"?!n.schedule.enabled:!0).sort((n,l)=>O(n.schedule.nextRunAt)-O(l.schedule.nextRunAt)||n.definition.name.localeCompare(l.definition.name))}function cs(s,t){return s.filter(n=>t==="active"?n.enabled:t==="paused"?!n.enabled:!0).sort((n,l)=>O(n.nextRunAt)-O(l.nextRunAt)||n.scheduleName.localeCompare(l.scheduleName))}function us(s,t,n){return[...s.map(l=>({kind:"chat",workflow:l})),...t.map(l=>({kind:"local",schedule:l})),...n.map(l=>({kind:"hosted",row:l}))].sort((l,d)=>{const x=O(ue(l)),p=O(ue(d));if(x!==p)return x-p;const j=he(l),r=he(d);return j.localeCompare(r)})}function hs(s){return s.kind==="chat"?{enabled:s.workflow.enabled,key:B(s.workflow.id),nextRunAt:s.workflow.nextRunAt,title:s.workflow.name}:s.kind==="local"?{enabled:s.schedule.enabled,key:U(s.schedule.id),nextRunAt:s.schedule.nextRunAt,title:s.schedule.scheduleName}:{enabled:s.row.schedule.enabled,key:V(s.row.schedule.id),nextRunAt:s.row.schedule.nextRunAt,title:s.row.definition.name}}function fs(s){const t=s.recurrence;return t?re(t):s.expression??"Manual"}function ue(s){return s.kind==="chat"?s.workflow.nextRunAt:s.kind==="local"?s.schedule.nextRunAt:s.row.schedule.nextRunAt}function he(s){return s.kind==="chat"?s.workflow.name:s.kind==="local"?s.schedule.scheduleName:s.row.definition.name}function ye(s){const t=s.timezone?` · ${s.timezone}`:"";if(s.scheduleType==="rate")return`Every ${s.scheduleExpression}${t}`;const n=s.scheduleExpression.trim().split(/\s+/);if(n.length===5&&/^\d+$/.test(n[0])&&/^\d+$/.test(n[1])){const l=ve(`${n[1].padStart(2,"0")}:${n[0].padStart(2,"0")}`);if(n[2]==="*"&&n[3]==="*"&&n[4]==="*")return`Daily at ${l}${t}`;if(n[2]==="*"&&n[3]==="*"&&n[4]==="MON-FRI")return`Weekdays at ${l}${t}`}return`Cron ${s.scheduleExpression}${t}`}function U(s){return`local:${s}`}function B(s){return`chat:${s}`}function H(s){return`profile:${s}`}function V(s){return`hosted:${s}`}function O(s){if(!s)return Number.MAX_SAFE_INTEGER;const t=new Date(s).getTime();return Number.isFinite(t)?t:Number.MAX_SAFE_INTEGER}const ms=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function Ws({connection:s,selectedProfileKey:t,onOpenSession:n,detailOpen:l,detailExpanded:d,onDetailOpenChange:x,onDetailResizeStart:p,onToggleDetailExpanded:j}){const r=He(s),a=Ue(s),c=Me(s),[k,w]=o.useState(null),[h,b]=o.useState(!1),[R,$]=o.useState(null),[y,P]=o.useState("all"),[C,N]=o.useState(oe);Ee(()=>N(oe()));const[m,f]=o.useState(!1),[u,A]=o.useState(null),g=o.useMemo(()=>os(r.definitions),[r.definitions]),q=o.useMemo(()=>ds(g,y),[y,g]),L=o.useMemo(()=>cs(c.schedules,y),[y,c.schedules]),X=o.useMemo(()=>ls(a.workflows,y),[a.workflows,y]),S=g.find(i=>V(i.schedule.id)===u)??null,I=c.schedules.find(i=>U(i.id)===u)??null,D=a.workflows.find(i=>B(i.id)===u)??null,z=k?.workflows.find(i=>H(i.workflow.id)===u)??null,v=S?r.runs.filter(i=>i.scheduleId===S.schedule.id):[],G=o.useMemo(()=>us(X,L,q),[X,L,q]),Ne=o.useMemo(()=>[...G.map(hs),...k?.workflows.map(i=>({enabled:!0,key:H(i.workflow.id),nextRunAt:null,title:i.workflow.label}))??[]],[G,k]);K(r.error,{prefix:"Workflows"}),K(c.error,{prefix:"Local schedules"}),K(a.error,{prefix:"Chat workflows"}),K(R,{prefix:"Profile workflows"}),o.useEffect(()=>{if(!s||!t){w(null),$(null);return}let i=!0;return b(!0),E.profileWorkflows(s).then(_=>{i&&(w(_),$(null))}).catch(_=>{i&&$(_ instanceof Error?_.message:String(_))}).finally(()=>{i&&b(!1)}),()=>{i=!1}},[s,t]),o.useEffect(()=>{u&&!S&&!I&&!D&&!z&&!h&&A(null)},[h,D,S,I,z,u]),o.useEffect(()=>{!l&&u&&A(null)},[l,u]),o.useEffect(()=>()=>x(!1),[x]);function Z(i){A(i),x(!0)}function F(){A(null),x(!1)}function ie(i){N(i),Be(i)}async function Se(){f(!0);try{await Promise.all([r.refresh(),c.refresh(),a.refresh(),s&&t?E.profileWorkflows(s).then(w):Promise.resolve()])}finally{f(!1)}}return e.jsxs("section",{"aria-label":"Workflows",className:`scheduled-work-view${S||I||D||z?" detail-open":""}${d?" detail-expanded":""}`,children:[e.jsx("div",{className:"scheduled-work-scroll",children:e.jsxs("div",{className:"scheduled-work-content",children:[e.jsxs("header",{className:"scheduled-work-header",children:[e.jsxs("div",{"aria-label":"Workflow view",className:"scheduled-view-tabs",role:"tablist",children:[e.jsx("button",{"aria-selected":C==="calendar",className:C==="calendar"?"active":void 0,onClick:()=>ie("calendar"),role:"tab",type:"button",children:"Calendar"}),e.jsx("button",{"aria-selected":C==="list",className:C==="list"?"active":void 0,onClick:()=>ie("list"),role:"tab",type:"button",children:"List"})]}),e.jsxs("div",{className:"scheduled-work-header-actions",children:[e.jsx("button",{"aria-label":"Refresh schedules",className:"scheduled-icon-button",disabled:!s||r.loading||c.loading||a.loading||h,onClick:()=>{Se()},title:"Refresh schedules",type:"button",children:e.jsx(Pe,{className:m?"scheduled-spin":void 0,size:16})}),e.jsxs("label",{className:"scheduled-filter",children:[e.jsx(Ie,{"aria-hidden":"true",size:16}),e.jsxs("select",{"aria-label":"Schedule filter",onChange:i=>P(i.target.value),value:y,children:[e.jsx("option",{value:"active",children:"Active"}),e.jsx("option",{value:"paused",children:"Paused"}),e.jsx("option",{value:"all",children:"All"})]})]})]})]}),e.jsx("section",{"aria-busy":r.loading||c.loading||a.loading||h,className:"scheduled-list",children:s?(r.loading||c.loading||a.loading||h)&&g.length===0&&c.schedules.length===0&&a.workflows.length===0&&!k?.workflows.length?e.jsx(ke,{label:"Loading schedules"}):r.error&&c.error&&g.length===0&&c.schedules.length===0?e.jsx(te,{children:"Schedules are unavailable. Refresh to try again."}):G.length===0&&!k?.workflows.length?e.jsx(te,{children:"Create a scheduled task here or ask for one in Work."}):C==="calendar"?e.jsx(Xe,{items:Ne,onSelect:Z,selectedKey:u}):e.jsxs("div",{className:"scheduled-list-rows",children:[k?.workflows.map(i=>e.jsx(es,{entry:i,onSelect:()=>Z(H(i.workflow.id)),selected:u===H(i.workflow.id)},H(i.workflow.id))),G.map(i=>i.kind==="chat"?e.jsx(ns,{cadence:re(i.workflow.recurrence),onSelect:()=>Z(B(i.workflow.id)),selected:u===B(i.workflow.id),workflow:i.workflow},B(i.workflow.id)):i.kind==="local"?e.jsx(ss,{cadence:ye(i.schedule),onSelect:()=>Z(U(i.schedule.id)),schedule:i.schedule,selected:u===U(i.schedule.id)},U(i.schedule.id)):e.jsx(ts,{cadence:fs(i.row.schedule),definition:i.row.definition,onSelect:()=>Z(V(i.row.schedule.id)),schedule:i.row.schedule,selected:u===V(i.row.schedule.id)},V(i.row.schedule.id)))]}):e.jsx(te,{children:"Connect to OpenPond to view scheduled Work."})})]})}),z&&k&&s?e.jsx(is,{catalog:k,connection:s,detailExpanded:d,entry:z,onClose:F,onDetailResizeStart:p,onOpenSession:n,onToggleDetailExpanded:j},z.workflow.id):S?e.jsx(ps,{onClose:F,onDelete:async()=>{await r.remove(S.schedule.id),F()},onRun:()=>r.run(S.schedule.id),onSave:i=>r.update(S.schedule.id,i),onToggle:()=>r.update(S.schedule.id,{enabled:!S.schedule.enabled}),pending:r.pendingScheduleIds.has(S.schedule.id),row:S,runs:v,detailExpanded:d,onDetailResizeStart:p,onToggleDetailExpanded:j,webBaseUrl:r.webBaseUrl},`${S.schedule.id}:${S.definition.version}:${S.schedule.configurationVersion}`):D?e.jsx(as,{detailExpanded:d,onClose:F,onDelete:async()=>{await a.remove(D.id),F()},onDetailResizeStart:p,onRun:()=>a.run(D.id),onToggle:()=>a.update(D.id,{enabled:!D.enabled}),onToggleDetailExpanded:j,pending:a.pendingIds.has(D.id),runs:a.runs.filter(i=>i.workflowId===D.id),workflow:D},D.id):I?e.jsx(xs,{connection:s,onClose:F,onRun:()=>c.run(I),onToggle:()=>c.toggle(I),pending:c.pendingScheduleIds.has(I.id),schedule:I,detailExpanded:d,onDetailResizeStart:p,onToggleDetailExpanded:j},I.id):null]})}function xs({connection:s,detailExpanded:t,onClose:n,onDetailResizeStart:l,onRun:d,onToggleDetailExpanded:x,onToggle:p,pending:j,schedule:r}){const a=bs(s,r.id);return K(a.error,{prefix:"Local schedule runs"}),e.jsxs(Q,{detailExpanded:t,label:`${r.scheduleName} details`,onClose:n,onDetailResizeStart:l,onToggleDetailExpanded:x,children:[e.jsx("div",{className:"scheduled-detail-header",children:e.jsxs("div",{children:[e.jsxs("div",{className:"scheduled-detail-title-row",children:[e.jsx("h2",{children:"Schedule details"}),e.jsx("span",{children:r.enabled?"Active":"Paused"})]}),e.jsx("p",{children:r.scheduleName})]})}),e.jsxs(T,{title:"Task",children:[e.jsxs("dl",{className:"scheduled-detail-fields",children:[e.jsx(M,{label:"Environment",value:"Local"}),e.jsx(M,{label:"Project",value:r.localProjectName}),e.jsx(M,{label:"Agent",value:r.agentName}),e.jsx(M,{label:"Action",value:r.targetAction})]}),e.jsx("pre",{className:"scheduled-prompt",children:ws(r)})]}),e.jsxs(T,{title:"Schedule",children:[e.jsxs("dl",{className:"scheduled-detail-fields",children:[e.jsx(M,{label:"Cadence",value:ye(r)}),e.jsx(M,{label:"Expression",value:r.scheduleExpression}),e.jsx(M,{label:"Timezone",value:r.timezone??"Local time"}),e.jsx(M,{label:"Next run",value:W(r.nextRunAt,r.timezone)}),e.jsx(M,{label:"Last run",value:W(r.lastRunAt,r.timezone)})]}),r.lastError?e.jsx("p",{className:"scheduled-detail-error",children:r.lastError}):null]}),e.jsxs("div",{className:"scheduled-detail-actions",children:[e.jsxs("button",{disabled:j,onClick:()=>{d()},type:"button",children:[e.jsx(J,{size:15}),e.jsx("span",{children:"Run now"})]}),e.jsxs("button",{disabled:j,onClick:()=>{p()},type:"button",children:[r.enabled?e.jsx(le,{size:15}):e.jsx(ae,{size:15}),e.jsx("span",{children:r.enabled?"Pause":"Resume"})]})]}),e.jsx(T,{title:"Runs",children:a.loading&&a.runs.length===0?e.jsx(ke,{label:"Loading runs"}):a.runs.length===0?e.jsx("p",{className:"scheduled-no-runs",children:"No runs yet."}):e.jsx("div",{className:"scheduled-run-list",children:a.runs.map(c=>e.jsx(Ve,{run:c},c.id))})})]})}function ps({detailExpanded:s,onClose:t,onDelete:n,onDetailResizeStart:l,onRun:d,onSave:x,onToggleDetailExpanded:p,onToggle:j,pending:r,row:a,runs:c,webBaseUrl:k}){const w=js(a.schedule),[h,b]=o.useState(a.definition.name),[R,$]=o.useState(a.definition.prompt),[y,P]=o.useState(w.kind),[C,N]=o.useState(w.timeZone),[m,f]=o.useState(w.startDate),[u,A]=o.useState(w.localTime),[g,q]=o.useState(w.weekdays?.[0]??"monday"),[L,X]=o.useState(w.dayOfMonth??1),S=c[0]?.conversationId??null,I=k?fe(k,S):null,D=h!==a.definition.name||R!==a.definition.prompt||y!==w.kind||C!==w.timeZone||m!==w.startDate||u!==w.localTime||g!==(w.weekdays?.[0]??"monday")||L!==(w.dayOfMonth??1);async function z(v){v.preventDefault(),await x({name:h,prompt:R,recurrence:{version:1,kind:y,timeZone:C,startDate:m,localTime:u,end:{kind:"never"},...y==="weekly"?{weekdays:[g]}:{},...y==="monthly"?{dayOfMonth:L}:{}}})}return e.jsx(Q,{detailExpanded:s,label:`${a.definition.name} details`,onClose:t,onDetailResizeStart:l,onToggleDetailExpanded:p,children:e.jsxs("form",{onSubmit:z,children:[e.jsxs("div",{className:"scheduled-detail-header",children:[e.jsx("div",{children:e.jsxs("div",{className:"scheduled-detail-title-row",children:[e.jsx("h2",{children:"Schedule details"}),e.jsx("span",{children:a.schedule.enabled?"Active":"Paused"})]})}),e.jsx("div",{className:"scheduled-detail-header-controls",children:e.jsx("button",{"aria-label":"Delete schedule",className:"scheduled-icon-button",disabled:r,onClick:()=>{n()},title:"Delete schedule",type:"button",children:e.jsx(pe,{size:16})})})]}),e.jsxs(T,{title:"Task",children:[e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{maxLength:180,onChange:v=>b(v.target.value),required:!0,value:h})]}),e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Prompt"}),e.jsx("textarea",{onChange:v=>$(v.target.value),required:!0,value:R})]})]}),e.jsxs(T,{title:"Schedule",children:[e.jsxs("div",{className:"scheduled-field-grid",children:[e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Repeat"}),e.jsxs("select",{onChange:v=>P(v.target.value),value:y,children:[e.jsx("option",{value:"once",children:"Once"}),e.jsx("option",{value:"daily",children:"Daily"}),e.jsx("option",{value:"weekdays",children:"Weekdays"}),e.jsx("option",{value:"weekly",children:"Weekly"}),e.jsx("option",{value:"monthly",children:"Monthly"})]})]}),y==="weekly"?e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Day"}),e.jsx("select",{onChange:v=>q(v.target.value),value:g,children:ms.map(v=>e.jsx("option",{value:v,children:Y(v)},v))})]}):y==="monthly"?e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Day of month"}),e.jsx("input",{max:31,min:1,onChange:v=>X(Number(v.target.value)),type:"number",value:L})]}):null,e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Start date"}),e.jsx("input",{onChange:v=>f(v.target.value),required:!0,type:"date",value:m})]}),e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Time"}),e.jsx("input",{onChange:v=>A(v.target.value),required:!0,type:"time",value:u})]}),e.jsxs("label",{className:"scheduled-field scheduled-field-wide",children:[e.jsx("span",{children:"Timezone"}),e.jsx("input",{onChange:v=>N(v.target.value),required:!0,value:C})]})]}),e.jsxs("p",{className:"scheduled-next-run",children:["Next run: ",W(a.schedule.nextRunAt,w.timeZone)]})]}),e.jsxs("div",{className:"scheduled-detail-actions",children:[D?e.jsxs("button",{disabled:r,type:"submit",children:[e.jsx(ze,{size:15}),e.jsx("span",{children:"Save"})]}):null,e.jsxs("button",{disabled:r,onClick:()=>{d()},type:"button",children:[e.jsx(J,{size:15}),e.jsx("span",{children:"Run now"})]}),e.jsxs("button",{disabled:r,onClick:()=>{j()},type:"button",children:[a.schedule.enabled?e.jsx(le,{size:15}):e.jsx(ae,{size:15}),e.jsx("span",{children:a.schedule.enabled?"Pause":"Resume"})]})]}),e.jsxs("button",{className:"scheduled-open-chat",disabled:r||!I,onClick:()=>{I&&me(I,S)},type:"button",children:[e.jsx("span",{children:"Open hosted chat"}),e.jsx(xe,{size:14})]}),e.jsx(T,{title:"Runs",children:c.length===0?e.jsx("p",{className:"scheduled-no-runs",children:"No runs yet."}):e.jsx("div",{className:"scheduled-run-list",children:c.map(v=>e.jsx(Ye,{onOpen:()=>{k&&me(fe(k,v.conversationId),v.conversationId)},run:v},v.id))})})]})})}function js(s){return s.recurrence??{version:1,kind:"daily",timeZone:s.timeZone||ks(),startDate:vs(),localTime:"08:00",end:{kind:"never"}}}function ws(s){const t=s.input.prompt;return typeof t=="string"&&t.trim()?t.trim():Object.keys(s.input).length>0?JSON.stringify(s.input,null,2):"No task input configured."}function bs(s,t){const[n,l]=o.useState([]),[d,x]=o.useState(!1),[p,j]=o.useState(null);return o.useEffect(()=>{if(!s){l([]),x(!1),j(null);return}let r=!1;return x(!0),E.localAgentScheduleRuns(s,t,{limit:20}).then(a=>{r||(l(a.runs),j(null))}).catch(a=>{r||j(gs(a))}).finally(()=>{r||x(!1)}),()=>{r=!0}},[s,t]),{error:p,loading:d,runs:n}}function fe(s,t){const n=new URL(s);return n.pathname=t?`/sandboxes/work/${encodeURIComponent(t)}`:"/sandboxes/work",n.search="",n.hash="",n.toString()}async function me(s,t){const n=window.openpond?.browser;n?.openExternal&&(await n.openExternal({conversationId:t??"hosted-scheduled-work",url:s})).ok||window.open(s,"_blank","noopener,noreferrer")}function vs(){return new Date().toISOString().slice(0,10)}function ks(){return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}function gs(s){return s instanceof Error?s.message:String(s)}export{Ws as ScheduledWorkPage,W as formatScheduledRunAt,fe as hostedConversationUrl};