openpond 0.2.0 → 0.2.2

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 (220) hide show
  1. package/dist/chunks/actions-command-F55CBR2K.js +2 -0
  2. package/dist/chunks/app-layer-GNYLOBCX.js +3 -0
  3. package/dist/chunks/app-server-runtime-VAGY4LQS.js +2 -0
  4. package/dist/chunks/apps-HZ5JGBDR.js +2 -0
  5. package/dist/chunks/chunk-22UARBPW.js +3 -0
  6. package/dist/chunks/chunk-3A7HZJNE.js +1 -0
  7. package/dist/chunks/chunk-3M53YXEI.js +2 -0
  8. package/dist/chunks/chunk-3NDRIQTI.js +2 -0
  9. package/dist/chunks/chunk-6FA3GG5B.js +33 -0
  10. package/dist/chunks/chunk-6MI4KKWF.js +2 -0
  11. package/dist/chunks/chunk-7D2LMRP7.js +2 -0
  12. package/dist/chunks/chunk-A42DFLOR.js +16 -0
  13. package/dist/chunks/chunk-AF57BF75.js +24 -0
  14. package/dist/chunks/chunk-BX4J2VDU.js +2 -0
  15. package/dist/chunks/chunk-BZMVB3GS.js +2 -0
  16. package/dist/chunks/chunk-CCJG7GLE.js +5 -0
  17. package/dist/chunks/chunk-CWQWV2T3.js +2 -0
  18. package/dist/chunks/chunk-DUA3QP6Y.js +19 -0
  19. package/dist/chunks/chunk-EAPFMACH.js +10 -0
  20. package/dist/chunks/chunk-EG3XB6M6.js +5 -0
  21. package/dist/chunks/chunk-ES2ISFJC.js +66 -0
  22. package/dist/chunks/chunk-FTQLQJQV.js +2 -0
  23. package/dist/chunks/chunk-FYCJSUFV.js +53 -0
  24. package/dist/chunks/chunk-GEANXBLX.js +2 -0
  25. package/dist/chunks/chunk-GLUWATL5.js +2 -0
  26. package/dist/chunks/chunk-GPZYIVFV.js +2199 -0
  27. package/dist/chunks/chunk-H7IWJN7L.js +17 -0
  28. package/dist/chunks/chunk-HZP5U2AA.js +3 -0
  29. package/dist/chunks/chunk-I5K74TOH.js +3 -0
  30. package/dist/chunks/chunk-I7G35U7K.js +2 -0
  31. package/dist/chunks/chunk-IR3YJWPW.js +7 -0
  32. package/dist/chunks/chunk-J7WZSLHS.js +18 -0
  33. package/dist/chunks/chunk-K35OOAW2.js +6 -0
  34. package/dist/chunks/chunk-KDXLNQNF.js +12 -0
  35. package/dist/chunks/chunk-KJYNLFWD.js +2872 -0
  36. package/dist/chunks/chunk-KV2IXO2T.js +6 -0
  37. package/dist/chunks/chunk-NVGMZ2IN.js +2 -0
  38. package/dist/chunks/chunk-OGPHXXCD.js +1 -0
  39. package/dist/chunks/chunk-RAKJWIYO.js +36 -0
  40. package/dist/chunks/chunk-RWSAGQTP.js +2 -0
  41. package/dist/chunks/chunk-SDO4FC4Q.js +2 -0
  42. package/dist/chunks/chunk-T5XCPX4P.js +3 -0
  43. package/dist/chunks/chunk-VYUMTRB3.js +5 -0
  44. package/dist/chunks/chunk-X37KMV27.js +1 -0
  45. package/dist/chunks/chunk-XAYIETBO.js +28 -0
  46. package/dist/chunks/chunk-XEOEKFG6.js +71 -0
  47. package/dist/chunks/chunk-ZVOO7FKM.js +2 -0
  48. package/dist/chunks/cli-UYTSZB4Y.js +2 -0
  49. package/dist/chunks/configuration-command-HAPIYG25.js +2 -0
  50. package/dist/chunks/continual-D75WA7E7.js +7 -0
  51. package/dist/chunks/core-commands-N37UZEVE.js +2 -0
  52. package/dist/chunks/database-X2CUV732.js +2 -0
  53. package/dist/chunks/desktop-test-V7FBEG7U.js +3 -0
  54. package/dist/chunks/dist-NKLXFA37.js +2 -0
  55. package/dist/chunks/extension-NEPOQ44P.js +5 -0
  56. package/dist/chunks/help-HC4N5ZQC.js +8 -0
  57. package/dist/chunks/module-ES6BEMUI-ZVL3F6NW.js +2 -0
  58. package/dist/chunks/module-asyncify-2EFITU5U-R7TVXNAE.js +2 -0
  59. package/dist/chunks/opchat-C7XRN4ZW.js +3 -0
  60. package/dist/chunks/organizations-LQGRZJ2V.js +2 -0
  61. package/dist/chunks/profile-UWM24A7R.js +3 -0
  62. package/dist/chunks/project-agent-2ME52ZJW.js +2 -0
  63. package/dist/chunks/sandbox-command-53L3ZICT.js +2 -0
  64. package/dist/chunks/sandbox-template-55HUM5H7.js +10 -0
  65. package/dist/chunks/src-EYJF2LWV.js +319 -0
  66. package/dist/chunks/src-VGW2UEMV.js +82 -0
  67. package/dist/chunks/taskset-PISBOILQ.js +2 -0
  68. package/dist/chunks/teams-bot-FHD2HCHN.js +3 -0
  69. package/dist/chunks/training-2NDOWH5S.js +2 -0
  70. package/dist/chunks/workspaces-CQFVCR7T.js +2 -0
  71. package/dist/cli.js +3 -109
  72. package/dist/index.js +1 -31230
  73. package/dist/sandbox-template/manifest.js +1 -18380
  74. package/dist/web/assets/App-BoJQRfeu.js +176 -0
  75. package/dist/web/assets/AppDialog-rdfmJsGF.js +1 -0
  76. package/dist/web/assets/AppTerminalPanel-CLW0kxtg.js +2 -0
  77. package/dist/web/assets/{AppsView-B1NUuAIf.js → AppsView-DxMXadnp.js} +1 -1
  78. package/dist/web/assets/{BrowserSidebar-DOvYxXeP.js → BrowserSidebar-BH_jl0JS.js} +1 -1
  79. package/dist/web/assets/{CartesianChart-pOrYpzBr.js → CartesianChart-oT_rMYpf.js} +1 -1
  80. package/dist/web/assets/{CollaborationTabs-CgbR-MBJ.js → CollaborationTabs-CukgFGE0.js} +1 -1
  81. package/dist/web/assets/{CommandMenu-CrIr4qUX.js → CommandMenu-2btBTgOF.js} +1 -1
  82. package/dist/web/assets/{CommunityView-CvAVQ_HZ.js → CommunityView-DMTREmN5.js} +1 -1
  83. package/dist/web/assets/{ComposerCreateImproveStrip-DybcKwwd.js → ComposerCreateImproveStrip-3tN55cg9.js} +1 -1
  84. package/dist/web/assets/GetStartedView-CMHL24_w.js +1 -0
  85. package/dist/web/assets/HostedModelLearningReview-CqkSelkC.js +1 -0
  86. package/dist/web/assets/HostedModelLearningSettings-xqd2lSW3.js +1 -0
  87. package/dist/web/assets/LabModelVersionDetailPage-Bpnya5DM.js +1 -0
  88. package/dist/web/assets/{LabSkillSidebar-CuaYrtiu.js → LabSkillSidebar-BKZjScr8.js} +1 -1
  89. package/dist/web/assets/LabsRoute-BhPFmA_Z.js +32 -0
  90. package/dist/web/assets/LabsRoute-C1FWCoYb.css +1 -0
  91. package/dist/web/assets/MainChatThread-Bosxokt-.js +2 -0
  92. package/dist/web/assets/MainPane-Di-Rwe7x.js +8 -0
  93. package/dist/web/assets/{MarkdownText-DOlVQR8a.js → MarkdownText-dK4SBPp_.js} +1 -1
  94. package/dist/web/assets/{Messages-DMubppta.js → Messages-ftYRMKYa.js} +6 -6
  95. package/dist/web/assets/{NativeSkillSidebar-DSFwZ-od.js → NativeSkillSidebar-Cwo7JdB2.js} +1 -1
  96. package/dist/web/assets/{NewExperienceSwitcher-Dj0ePIJ-.js → NewExperienceSwitcher-C1_JzTq2.js} +1 -1
  97. package/dist/web/assets/{NewProjectDialog-B8NQV-Ji.js → NewProjectDialog-CxP6v6YW.js} +1 -1
  98. package/dist/web/assets/{OutputsPage-D_LDYTgV.js → OutputsPage-DL21_Alp.js} +1 -1
  99. package/dist/web/assets/{ProjectsPage-xjDYPc_W.js → ProjectsPage-BO9VyvMA.js} +1 -1
  100. package/dist/web/assets/RightChatPanelStack-DaqAnzdR.js +1 -0
  101. package/dist/web/assets/{RightSidebarHomePanel-j0VckZUu.js → RightSidebarHomePanel-PbUG12AO.js} +1 -1
  102. package/dist/web/assets/{ScheduledWorkPage-1aT4bBY-.js → ScheduledWorkPage-BhL-cXML.js} +1 -1
  103. package/dist/web/assets/{SettingsView-BSpuMDpv.js → SettingsView-D6-s7G88.js} +7 -7
  104. package/dist/web/assets/TeamChatView-DbS1N-fo.js +3 -0
  105. package/dist/web/assets/{TerminalOverlay-CrSwUk2d.js → TerminalOverlay-CphyBXJR.js} +3 -3
  106. package/dist/web/assets/{TrainingCreationPanel-B4HMRwUg.js → TrainingCreationPanel-Czsdraix.js} +1 -1
  107. package/dist/web/assets/{TrainingDraftPanel-D4r1tN3I.js → TrainingDraftPanel-Bq3B5pUk.js} +1 -1
  108. package/dist/web/assets/{UsageSettingsSection-2aymqwIM.js → UsageSettingsSection-B74FNwaP.js} +5 -5
  109. package/dist/web/assets/{WorkSidebarPanel-B0X0OiR6.js → WorkSidebarPanel-BgaK4XSg.js} +1 -1
  110. package/dist/web/assets/WorkspaceDiffPanel-C3seHnVY.js +14 -0
  111. package/dist/web/assets/{WorkspaceEnvironmentMenu-OAfMEt7L.js → WorkspaceEnvironmentMenu-DPghQUdv.js} +3 -3
  112. package/dist/web/assets/{WorkspaceGitDialogs-YxcPH2Rq.js → WorkspaceGitDialogs-D8c6Okb_.js} +1 -1
  113. package/dist/web/assets/{WorkspaceMonacoEditor-COKTiQZl.js → WorkspaceMonacoEditor-2kjRFf4l.js} +36 -36
  114. package/dist/web/assets/{arrow-up-right-_TX-awvK.js → arrow-up-right-C5X-29oa.js} +1 -1
  115. package/dist/web/assets/chat-file-links-Bmz9kVct.js +1 -0
  116. package/dist/web/assets/chevron-up-NbP9vY4E.js +1 -0
  117. package/dist/web/assets/{clipboard-CyRSS8Sy.js → clipboard-fvHMXPWa.js} +1 -1
  118. package/dist/web/assets/{cloud-upload-uBJBUYTy.js → cloud-upload-BAycsdHL.js} +1 -1
  119. package/dist/web/assets/{cssMode-BrXSsZYs.js → cssMode-Yis679a5.js} +1 -1
  120. package/dist/web/assets/{folder-open-DktdZNW7.js → folder-open-bii4KUCv.js} +1 -1
  121. package/dist/web/assets/{folder-plus-DO06i9Vo.js → folder-plus-B0B7mUCx.js} +1 -1
  122. package/dist/web/assets/{git-commit-horizontal-zFSIkPs7.js → git-commit-horizontal-B6yTdtnB.js} +1 -1
  123. package/dist/web/assets/{htmlMode-X9UMFkjt.js → htmlMode-DHeBSKVF.js} +1 -1
  124. package/dist/web/assets/{index-UOGdfLzi.js → index-667pXXsu.js} +1 -1
  125. package/dist/web/assets/{index-ByQIHpc9.css → index-BGMzUaup.css} +1 -1
  126. package/dist/web/assets/{info-BEJXUqCD.js → info-NCOESX3I.js} +1 -1
  127. package/dist/web/assets/{jsonMode-DIsB-j2E.js → jsonMode-C4oxy1cU.js} +1 -1
  128. package/dist/web/assets/{lspLanguageFeatures-CmZ17KpA.js → lspLanguageFeatures-CLj3WGZW.js} +1 -1
  129. package/dist/web/assets/{minimize-2-DumTpFtE.js → minimize-2-DtI1vgd7.js} +1 -1
  130. package/dist/web/assets/{monaco.contribution-D6w5PJji.js → monaco.contribution-DZPgekIQ.js} +2 -2
  131. package/dist/web/assets/{monaco.contribution-DJ_NmcHu.js → monaco.contribution-Ddw-TznO.js} +2 -2
  132. package/dist/web/assets/{monaco.contribution-YVDfJcG4.js → monaco.contribution-DhVPJ-oY.js} +2 -2
  133. package/dist/web/assets/{monaco.contribution-LZEujgny.js → monaco.contribution-DrW6DjWP.js} +2 -2
  134. package/dist/web/assets/{play-CLFeH7CU.js → play-DB3XFAnG.js} +1 -1
  135. package/dist/web/assets/{python-Djbda_qZ.js → python-DLyUeEeL.js} +1 -1
  136. package/dist/web/assets/{refresh-cw-B4IpQ_7Q.js → refresh-cw-0zSLZtfp.js} +1 -1
  137. package/dist/web/assets/{save-BbTHztnA.js → save-BCZlshOA.js} +1 -1
  138. package/dist/web/assets/{square-BJrVbmz6.js → square-CRytZWR_.js} +1 -1
  139. package/dist/web/assets/{toggleHighContrast-BopU5W9S.js → toggleHighContrast-TXg0rI_R.js} +1 -1
  140. package/dist/web/assets/{tsMode-CH_0_YDX.js → tsMode-Bj1019AY.js} +1 -1
  141. package/dist/web/assets/{upload-UumVeufu.js → upload-CnE9u7GB.js} +1 -1
  142. package/dist/web/assets/{useLocalAgentSchedules-BRa23U7O.js → useLocalAgentSchedules-qI87RHVI.js} +1 -1
  143. package/dist/web/assets/{wifi-off-BWJWivn6.js → wifi-off-CfuwRBx7.js} +1 -1
  144. package/dist/web/assets/{workers-pTe8RvSI.js → workers-CXdUI7wU.js} +1 -1
  145. package/dist/web/assets/{yaml-DNLASORn.js → yaml-AP8aiwLm.js} +1 -1
  146. package/dist/web/index.html +2 -2
  147. package/package.json +4 -3
  148. package/dist/chunks/actions-command-6N5XWMR6.js +0 -185
  149. package/dist/chunks/app-layer-F3CGXB33.js +0 -216
  150. package/dist/chunks/app-server-runtime-RHO5TFUC.js +0 -23
  151. package/dist/chunks/apps-L5XCL7QY.js +0 -429
  152. package/dist/chunks/chunk-26AMV5ZI.js +0 -634
  153. package/dist/chunks/chunk-3EB7I67T.js +0 -630
  154. package/dist/chunks/chunk-3ELF4FXY.js +0 -96
  155. package/dist/chunks/chunk-3VEYNDHN.js +0 -669
  156. package/dist/chunks/chunk-4KA25HUP.js +0 -5648
  157. package/dist/chunks/chunk-4L3ZJS2T.js +0 -1207
  158. package/dist/chunks/chunk-6SMNG6YA.js +0 -1303
  159. package/dist/chunks/chunk-7RIGZB7N.js +0 -1148
  160. package/dist/chunks/chunk-A6G3PFA5.js +0 -2164
  161. package/dist/chunks/chunk-BVY5JYM6.js +0 -512
  162. package/dist/chunks/chunk-DLQQIWN2.js +0 -648
  163. package/dist/chunks/chunk-FJ2JGB2N.js +0 -1373
  164. package/dist/chunks/chunk-FQS2QL5F.js +0 -14522
  165. package/dist/chunks/chunk-G65WAOJV.js +0 -1643
  166. package/dist/chunks/chunk-JTHL5XJ2.js +0 -1838
  167. package/dist/chunks/chunk-K4TZEHAW.js +0 -602
  168. package/dist/chunks/chunk-KCRCIQPD.js +0 -66
  169. package/dist/chunks/chunk-KSRWKXRB.js +0 -12
  170. package/dist/chunks/chunk-MUMPWI4O.js +0 -92
  171. package/dist/chunks/chunk-NTK22KJD.js +0 -10707
  172. package/dist/chunks/chunk-OCBRPU2K.js +0 -629
  173. package/dist/chunks/chunk-PS37DB5F.js +0 -183
  174. package/dist/chunks/chunk-R3C3MNSI.js +0 -140
  175. package/dist/chunks/chunk-SMNFI2FU.js +0 -113
  176. package/dist/chunks/chunk-UACZUFIA.js +0 -47
  177. package/dist/chunks/chunk-UZMVNKXM.js +0 -1275
  178. package/dist/chunks/chunk-VT6BLHMB.js +0 -67198
  179. package/dist/chunks/chunk-W5GKHH77.js +0 -168
  180. package/dist/chunks/chunk-X6F4LBTQ.js +0 -832
  181. package/dist/chunks/chunk-X7ZG4TSW.js +0 -3063
  182. package/dist/chunks/chunk-XA4KBDMY.js +0 -13723
  183. package/dist/chunks/chunk-YVCYVDNP.js +0 -746
  184. package/dist/chunks/chunk-ZNQEROWP.js +0 -254
  185. package/dist/chunks/cli-D2MUUBEX.js +0 -23
  186. package/dist/chunks/configuration-command-NR6JYIUD.js +0 -187
  187. package/dist/chunks/continual-37CE4LLJ.js +0 -803
  188. package/dist/chunks/core-commands-SWGIOZLW.js +0 -50
  189. package/dist/chunks/database-DEYUZDIM.js +0 -20
  190. package/dist/chunks/desktop-test-QOS7G5NE.js +0 -148
  191. package/dist/chunks/dist-AKYCQNNF.js +0 -187
  192. package/dist/chunks/extension-HJUJBQAD.js +0 -9378
  193. package/dist/chunks/help-J6PZ23IC.js +0 -67
  194. package/dist/chunks/opchat-ABX5YBAT.js +0 -169
  195. package/dist/chunks/organizations-CPNC47DO.js +0 -806
  196. package/dist/chunks/profile-Q3HB5MIO.js +0 -1136
  197. package/dist/chunks/project-agent-YHUBX4OR.js +0 -516
  198. package/dist/chunks/sandbox-command-YFL5QTWX.js +0 -1661
  199. package/dist/chunks/sandbox-template-Z6P7NTNF.js +0 -1655
  200. package/dist/chunks/src-7XEENEBI.js +0 -3628
  201. package/dist/chunks/src-KBBIV4NT.js +0 -56125
  202. package/dist/chunks/taskset-2TRZBRRT.js +0 -66
  203. package/dist/chunks/teams-bot-WD33NLH5.js +0 -146
  204. package/dist/chunks/training-4XH37UZB.js +0 -17
  205. package/dist/chunks/workspaces-WG2MH2WE.js +0 -99
  206. package/dist/web/assets/App-C9aGkxVg.js +0 -173
  207. package/dist/web/assets/AppDialog-CK6_lg8c.js +0 -1
  208. package/dist/web/assets/AppTerminalPanel-BKqgX4sd.js +0 -2
  209. package/dist/web/assets/GetStartedView-DVInkexN.js +0 -1
  210. package/dist/web/assets/LabModelVersionDetailPage-NaaPElmM.js +0 -1
  211. package/dist/web/assets/LabsRoute-BRR6x3SX.js +0 -2
  212. package/dist/web/assets/LabsRoute-CGFgymTX.css +0 -1
  213. package/dist/web/assets/MainChatThread-BfkjCZB9.js +0 -2
  214. package/dist/web/assets/MainPane-Gw-YK38n.js +0 -8
  215. package/dist/web/assets/RightChatPanelStack-BktRQ9wg.js +0 -1
  216. package/dist/web/assets/TeamChatView-BPWJbDf1.js +0 -3
  217. package/dist/web/assets/WorkspaceDiffPanel-Pg7GL0br.js +0 -14
  218. package/dist/web/assets/chat-file-links-CWLsRYvW.js +0 -1
  219. package/dist/web/assets/chevron-up--mNnEqha.js +0 -1
  220. package/dist/web/assets/index-BEPmTPIA.js +0 -1
@@ -0,0 +1 @@
1
+ import{r as a,j as i}from"./index-667pXXsu.js";import{F as ve}from"./folder-open-bii4KUCv.js";import{du as we,dv as Re,dw as ye,dx as Ie,a2 as je,a6 as Ce,aj as Pe,dy as Te,a7 as Ae,a8 as Se,ac as Me,a9 as Ne,X as Fe,P as Ee,aq as Be}from"./App-BoJQRfeu.js";import{u as $e,a as De,T as Le,M as Oe}from"./Messages-ftYRMKYa.js";import{d as qe,u as Ue,s as ze,e as He,l as Ke,f as Ve,i as We,A as Qe,g as Ge}from"./MainPane-Di-Rwe7x.js";import"./chevron-up-NbP9vY4E.js";import"./MarkdownText-dK4SBPp_.js";import"./chat-file-links-Bmz9kVct.js";import"./desktop-files-BQj1J-ob.js";import"./arrow-up-right-C5X-29oa.js";import"./play-DB3XFAnG.js";import"./refresh-cw-0zSLZtfp.js";import"./cloud-upload-BAycsdHL.js";import"./square-CRytZWR_.js";function Xe({panel:t,runtimeEventStore:L,actionCatalog:I,createImproveActions:j,contextCompaction:C,steerActiveResponses:O,initialScrollState:g,codexPermissionMode:q,codexReasoningEffort:U,openPondCommandAccessMode:P,connection:b,connectedAppMentions:z,mentionApps:H,codexPersonalSkills:K,profileSkills:V,profileTarget:T,projectTarget:W,providerSettings:Q,accountBaseUrl:G,billingOrganizationSlug:X,billingTeamId:_,showToast:J,workspaceTarget:Y,onCodexPermissionModeChange:Z,onCodexReasoningEffortChange:ee,onOpenPondCommandAccessModeChange:A,onModelChange:te,onOpenAttachmentInSidebar:se,onOpenFileInSidebar:ie,onOpenProfileSettings:oe,onOpenSession:ne,onProviderChange:ae,onProviderSetupOpen:re,onPromptChange:ce,onProfileTargetChange:de,onScrollStateChange:le,onProjectTargetChange:ue,onResolveApproval:me,onShowBrowserPanel:S,onStop:he,onSubmit:x,onWorkspaceTargetChange:fe}){const w=a.useRef(null),[v]=a.useState(()=>new qe),R=a.useRef(g?.stickyToBottom??!0),M=a.useRef(!1),N=Ue(L,t.runtimeSource==="live"?t.sessionId:null),s=a.useMemo(()=>{if(t.runtimeSource==="history"||!t.sessionId)return t;const o=N.events,l=we(o,[]);return{...t,messages:Ce(v.project(o),t.pendingUserMessage),createImproveRun:je({events:o}),contextWindowStatus:ye({provider:t.provider,snapshot:Ie(l,t.sessionId),preferences:C}),goalRuntime:Re(l,t.sessionId)}},[v,C,N,t]),u=s.running&&!s.pendingApproval&&ze(s.messages),f=a.useMemo(()=>s.createImproveRun?{...j,run:s.createImproveRun}:null,[s.createImproveRun,j]),F=a.useMemo(()=>He(s.messages,{showThinkingIndicator:u}),[s.messages,u]),E=$e(s.messages,s.sessionId??`draft:${s.id}`),p=s.messages.at(-1),y=a.useMemo(()=>Ke(s.messages),[s.messages]),B=De({connection:b,latestTurnId:p?.turnId??null,sessionId:s.sessionId,turnRunning:s.running}),$=[s.id,s.sessionId??"draft",F.length,p?.id??"",p?.content?.length??0,p?.timestamp??"",u?"thinking":""].join(":");a.useLayoutEffect(()=>{const o=w.current;!o||M.current||(M.current=!0,o.scrollTop=g?.stickyToBottom?o.scrollHeight:g?.scrollTop??0)},[g]),Ve({contentKey:$,onContentChange:o=>{R.current&&(o.scrollTop=o.scrollHeight)},threadRef:w});const c=a.useCallback((o,l)=>{const k=s.sessionId??`side-chat:${s.id}`;Pe({conversationId:k,href:o,explicitFile:l?.explicitFile,newTab:l?.newTab}).then(m=>{m&&S()})},[s.id,s.sessionId,S]),pe=a.useCallback(async(o,l)=>{const k=l.action==="answer"?l.text:"Dismiss this question";if(!await x([],null,null,{displayPrompt:k,promptOverride:k,turnMetadata:{userQuestionResolution:l}}))throw new Error("The question response could not be sent.")},[x]);return i.jsxs("section",{className:`right-chat-pane ${s.pendingApproval?"has-approval":""}`,id:`right-chat-panel-${s.id}`,role:"tabpanel","aria-labelledby":`right-chat-tab-${s.id}`,children:[i.jsx("div",{className:"chat-thread right-chat-thread",ref:w,onScroll:o=>{const l=o.currentTarget;R.current=l.scrollHeight-l.scrollTop-l.clientHeight<=72,le({scrollTop:l.scrollTop,stickyToBottom:R.current})},children:F.map(o=>o.type==="thinking"?i.jsx(Le,{},o.id):i.jsx(Oe,{activeWorkspaceAppId:s.activeWorkspaceAppId,accountBaseUrl:G,billingOrganizationSlug:X,billingTeamId:_,connection:b,animateInitialContent:o.message.role==="assistant"&&E.has(o.message.id),kvCacheSummary:We(o.message,y)&&o.message.turnId?B.get(o.message.turnId)??null:null,message:o.message,onOpenBrowserLink:c,onOpenAttachmentInSidebar:se,onOpenFileInSidebar:ie,onOpenProfileSettings:oe,onResolveUserQuestion:pe,onOpenSession:ne,userAttachmentDisplay:t.provider==="codex"?"compact":"full",workspaceRootPath:s.workspaceRootPath,showFooter:o.showFooter},o.id))}),i.jsxs("div",{className:`composer-stack dock right-chat-composer ${s.pendingApproval?"has-approval":""}`,children:[i.jsx(Qe,{approval:s.pendingApproval,onResolve:me}),i.jsx(Ge,{mode:"dock",prompt:t.prompt,mentionApps:H,connectedAppMentions:z,profileSkills:t.provider==="codex"?K:V,profileTarget:t.provider==="codex"?null:T,selectedMentionAppId:null,contextWindowStatus:s.contextWindowStatus,goalRuntime:s.goalRuntime,createImproveRuntime:f,busy:s.running,running:s.running,steerActiveResponses:O,submissionScopeKey:s.sessionId??s.id,showProjectFooter:!1,connection:b,providerSettings:Q,provider:t.provider,model:t.model,projectTarget:W,actionCatalog:I,workspaceTarget:Y,codexPermissionMode:q,codexReasoningEffort:U,openPondCommandAccessMode:t.provider==="codex"?P:s.session?.openPondCommandAccessMode??P,onProviderChange:ae,onProviderSetupOpen:re,onProjectTargetChange:ue,onWorkspaceTargetChange:fe,onModelChange:te,onCodexPermissionModeChange:Z,onCodexReasoningEffortChange:ee,onOpenPondCommandAccessModeChange:A,onPromptChange:ce,onProfileTargetChange:de,onMentionAppSelect:void 0,showToast:J,onSubmit:x,onStop:he})]})]})}function lt({panels:t,runtimeEventStore:L,actionCatalog:I=[],createImproveActions:j,contextCompaction:C,steerActiveResponses:O,busy:g,codexPermissionMode:q,codexReasoningEffort:U,openPondCommandAccessMode:P,connection:b,connectedAppMentions:z,mentionApps:H,codexPersonalSkills:K,profileSkills:V=[],profileLibrary:T={lastUsed:null,profiles:[]},extensionCatalog:W,projectTarget:Q,providerSettings:G,accountBaseUrl:X,billingOrganizationSlug:_,billingTeamId:J,showToast:Y,workspaceTarget:Z,onAddChat:ee,onActivatePanel:A,onClosePanel:te,onCodexPermissionModeChange:se,onCodexReasoningEffortChange:ie,onOpenPondCommandAccessModeChange:oe,onModelChange:ne,onOpenAttachmentInSidebar:ae,onOpenFileInSidebar:re,onOpenProfileSettings:ce,onOpenSession:de,onProviderChange:le,onProviderSetupOpen:ue,onPromptChange:me,onProfileTargetChange:S,onScrollStateChange:he,onProjectTargetChange:x,onResolveApproval:fe,onResizeStart:w,onSelectFiles:v,onShowBrowserPanel:R,onStop:M,onSubmit:N,onWorkspaceTargetChange:s}){const[u,f]=a.useState(!1),[F,E]=a.useState(()=>Te(t)?.id??null),p=a.useRef(null),y=a.useRef(new Map),B=a.useRef(new Set(t.map(e=>e.id))),$=a.useRef(new Map(t.map(e=>[e.id,e.activationVersion]))),c=t.find(e=>e.id===F)??t.at(-1)??null,pe=c?.session?.currentProfile??T.lastUsed,o=Ae(T,pe),l=o?Se(o,W):V,k=o?[...I.filter(e=>!Me(e)),...Ne(o)]:I;a.useEffect(()=>{const e=B.current,d=$.current;let r=null,h=null;for(const n of t)e.has(n.id)||(r=n),e.has(n.id)&&n.activationVersion>(d.get(n.id)??0)&&(h=n);B.current=new Set(t.map(n=>n.id)),$.current=new Map(t.map(n=>[n.id,n.activationVersion])),E(n=>h?h.id:r?r.id:n&&t.some(D=>D.id===n)?n:t.at(-1)?.id??null)},[t]),a.useEffect(()=>{if(!u)return;function e(r){p.current?.contains(r.target)||f(!1)}function d(r){r.key==="Escape"&&f(!1)}return document.addEventListener("pointerdown",e),document.addEventListener("keydown",d),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",d)}},[u]);const m=a.useCallback((e,d=!1)=>{E(e),A(e),d&&window.requestAnimationFrame(()=>y.current.get(e)?.focus())},[A]),ge=a.useCallback((e=!1)=>{v(),e&&window.requestAnimationFrame(()=>{document.getElementById("right-sidebar-files-tab")?.focus()})},[v]),ke=a.useCallback((e,d)=>{const r=t.findIndex(xe=>xe.id===d);if(r<0)return;const h=r+1;let n=null;if(e.key==="ArrowRight"&&(n=(h+1)%(t.length+1)),e.key==="ArrowLeft"&&(n=(h-1+t.length+1)%(t.length+1)),e.key==="Home"&&(n=0),e.key==="End"&&(n=t.length),n===null)return;if(e.preventDefault(),n===0){ge(!0);return}const D=t[n-1];D&&m(D.id,!0)},[t,ge,m]),be=a.useCallback(e=>{if(!["ArrowRight","ArrowLeft","Home","End"].includes(e.key)||(e.preventDefault(),e.key==="Home"))return;const d=e.key==="ArrowLeft"||e.key==="End"?t.at(-1):t[0];d&&m(d.id,!0)},[t,m]);return i.jsxs("aside",{className:"workspace-diff-panel right-chat-panel-stack","aria-label":"Side chats",children:[i.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize side chat panel",onPointerDown:w}),i.jsx("div",{className:"workspace-diff-topbar right-chat-topbar",children:i.jsxs("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",children:[i.jsxs("button",{type:"button",className:"workspace-diff-tab",role:"tab",id:"right-sidebar-files-tab","aria-controls":"right-sidebar-files-panel","aria-selected":!1,tabIndex:-1,onClick:()=>ge(!1),onKeyDown:be,children:[i.jsx(ve,{size:14}),i.jsx("span",{children:"Files"})]}),t.map(e=>{const d=e.id===c?.id;return i.jsxs("div",{className:`workspace-diff-tab right-chat-tab ${d?"active":""}`,children:[i.jsxs("button",{type:"button",className:"workspace-diff-tab-main",role:"tab",id:`right-chat-tab-${e.id}`,"aria-controls":`right-chat-panel-${e.id}`,"aria-selected":d,tabIndex:d?0:-1,title:e.title,ref:r=>{r?y.current.set(e.id,r):y.current.delete(e.id)},onClick:()=>m(e.id),onKeyDown:r=>ke(r,e.id),children:[e.running?i.jsx("span",{className:"right-chat-status-dot","aria-label":"Running"}):null,i.jsx("span",{children:e.title})]}),i.jsx("button",{type:"button",className:"workspace-diff-tab-close",title:`Close ${e.title}`,"aria-label":`Close ${e.title}`,onClick:r=>{r.stopPropagation(),te(e.id)},children:i.jsx(Fe,{size:12})})]},e.id)}),i.jsxs("div",{className:"workspace-diff-add-anchor",ref:p,children:[i.jsx("button",{type:"button",className:`workspace-diff-add-tab ${u?"active":""}`,title:"Add to right sidebar","aria-label":"Add to right sidebar","aria-haspopup":"menu","aria-expanded":u,onClick:()=>f(e=>!e),children:i.jsx(Ee,{size:15})}),u?i.jsxs("div",{className:"workspace-diff-add-menu right-chat-add-popover",role:"menu",children:[i.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{f(!1),ee()},children:[i.jsx(Be,{size:13}),i.jsx("span",{children:"New task"})]}),i.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{f(!1),v()},children:[i.jsx(ve,{size:13}),i.jsx("span",{children:"Files"})]})]}):null]})]})}),i.jsx("div",{className:"right-chat-stack-body panes-1",children:c?i.jsx(Xe,{busy:g,createImproveActions:j,contextCompaction:C,steerActiveResponses:O,codexPermissionMode:q,codexReasoningEffort:U,openPondCommandAccessMode:P,connection:b,connectedAppMentions:z,actionCatalog:k,mentionApps:H,codexPersonalSkills:K,profileSkills:l,profileTarget:null,panel:c,runtimeEventStore:L,initialScrollState:{scrollTop:c.scrollTop,stickyToBottom:c.stickyToBottom},projectTarget:Q,providerSettings:G,accountBaseUrl:X,billingOrganizationSlug:_,billingTeamId:J,showToast:Y,workspaceTarget:Z,onCodexPermissionModeChange:se,onCodexReasoningEffortChange:ie,onOpenPondCommandAccessModeChange:e=>oe(e,c.session),onModelChange:e=>ne(c.id,e),onOpenAttachmentInSidebar:ae,onOpenFileInSidebar:re,onOpenProfileSettings:ce,onOpenSession:de,onProviderChange:e=>le(c.id,e),onProviderSetupOpen:ue,onPromptChange:e=>me(c.id,e),onProfileTargetChange:e=>S(c.sessionId,e),onScrollStateChange:e=>he(c.id,e),onProjectTargetChange:x,onResolveApproval:fe,onShowBrowserPanel:R,onStop:()=>M(c.sessionId),onSubmit:(e,d,r,h)=>N(c.id,e,d,r,h),onWorkspaceTargetChange:s},c.id):null})]})}export{lt as RightChatPanelStack};
@@ -1 +1 @@
1
- import{j as e}from"./index-UOGdfLzi.js";import{b2 as f,bd as x,aP as j,ao as u,aW as k,t as g}from"./App-C9aGkxVg.js";import{C as w}from"./clipboard-CyRSS8Sy.js";import{F as S}from"./folder-open-DktdZNW7.js";import{M as v}from"./minimize-2-DumTpFtE.js";function y({expanded:i,terminalOpen:s,sideChatAvailable:r,onOpenBrowser:l,onOpenFiles:t,onOpenReview:o,onOpenSideChat:n,onOpenTrainingDraft:d,trainingDraftAvailable:c,onResizeStart:b,onToggleExpanded:m,onToggleTerminal:h}){const p=[{id:"review",label:"Review",meta:"Diffs",icon:w,onSelect:o},{id:"files",label:"Files",meta:"Workspace",icon:S,onSelect:t},{id:"browser",label:"Browser",meta:"Preview",icon:j,onSelect:l},{id:"side-chat",label:"Side chat",meta:"Context",icon:u,onSelect:n,disabled:!r},{id:"training-draft",label:"Task draft",meta:"Training",icon:k,onSelect:d,disabled:!c},{id:"terminal",label:s?"Hide terminal":"Terminal",meta:"Shell",icon:g,onSelect:h}];return e.jsxs("aside",{className:`workspace-diff-panel right-sidebar-home-panel ${i?"expanded":""}`,"aria-label":"Right sidebar",children:[i?null:e.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize right sidebar",onPointerDown:b}),e.jsxs("div",{className:"workspace-diff-topbar right-sidebar-home-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",children:e.jsxs("button",{type:"button",className:"workspace-diff-tab active",role:"tab","aria-selected":!0,children:[e.jsx(f,{size:14}),e.jsx("span",{children:"Workspace"})]})}),e.jsx("div",{className:"workspace-diff-toolbar-actions",children:e.jsx("button",{type:"button",className:"diff-icon-button",title:i?"Dock sidebar":"Expand sidebar","aria-label":i?"Dock sidebar":"Expand sidebar",onClick:m,children:i?e.jsx(v,{size:14}):e.jsx(x,{size:14})})})]}),e.jsx("div",{className:"right-sidebar-home-body",children:e.jsx("div",{className:"right-sidebar-home-actions",role:"menu","aria-label":"Workspace actions",children:p.map(a=>e.jsxs("button",{type:"button",className:"right-sidebar-home-row",role:"menuitem",disabled:a.disabled,onClick:a.onSelect,children:[e.jsx(a.icon,{size:15}),e.jsx("span",{children:a.label}),a.meta?e.jsx("span",{className:"right-sidebar-home-chip",children:a.meta}):null]},a.id))})})]})}export{y as RightSidebarHomePanel};
1
+ import{j as e}from"./index-667pXXsu.js";import{b5 as f,bg as x,aR as j,aq as u,aY as g,t as k}from"./App-BoJQRfeu.js";import{C as w}from"./clipboard-fvHMXPWa.js";import{F as S}from"./folder-open-bii4KUCv.js";import{M as v}from"./minimize-2-DtI1vgd7.js";function D({expanded:i,terminalOpen:s,sideChatAvailable:r,onOpenBrowser:l,onOpenFiles:t,onOpenReview:o,onOpenSideChat:n,onOpenTrainingDraft:d,trainingDraftAvailable:c,onResizeStart:b,onToggleExpanded:m,onToggleTerminal:h}){const p=[{id:"review",label:"Review",meta:"Diffs",icon:w,onSelect:o},{id:"files",label:"Files",meta:"Workspace",icon:S,onSelect:t},{id:"browser",label:"Browser",meta:"Preview",icon:j,onSelect:l},{id:"side-chat",label:"Side chat",meta:"Context",icon:u,onSelect:n,disabled:!r},{id:"training-draft",label:"Task draft",meta:"Training",icon:g,onSelect:d,disabled:!c},{id:"terminal",label:s?"Hide terminal":"Terminal",meta:"Shell",icon:k,onSelect:h}];return e.jsxs("aside",{className:`workspace-diff-panel right-sidebar-home-panel ${i?"expanded":""}`,"aria-label":"Right sidebar",children:[i?null:e.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize right sidebar",onPointerDown:b}),e.jsxs("div",{className:"workspace-diff-topbar right-sidebar-home-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",children:e.jsxs("button",{type:"button",className:"workspace-diff-tab active",role:"tab","aria-selected":!0,children:[e.jsx(f,{size:14}),e.jsx("span",{children:"Workspace"})]})}),e.jsx("div",{className:"workspace-diff-toolbar-actions",children:e.jsx("button",{type:"button",className:"diff-icon-button",title:i?"Dock sidebar":"Expand sidebar","aria-label":i?"Dock sidebar":"Expand sidebar",onClick:m,children:i?e.jsx(v,{size:14}):e.jsx(x,{size:14})})})]}),e.jsx("div",{className:"right-sidebar-home-body",children:e.jsx("div",{className:"right-sidebar-home-actions",role:"menu","aria-label":"Workspace actions",children:p.map(a=>e.jsxs("button",{type:"button",className:"right-sidebar-home-row",role:"menuitem",disabled:a.disabled,onClick:a.onSelect,children:[e.jsx(a.icon,{size:15}),e.jsx("span",{children:a.label}),a.meta?e.jsx("span",{className:"right-sidebar-home-chip",children:a.meta}):null]},a.id))})})]})}export{D as RightSidebarHomePanel};
@@ -1 +1 @@
1
- import{r as d,j as e}from"./index-UOGdfLzi.js";import{o as C,p as je,aQ as pe,c6 as be,bd as ve,X as ye,aD as re,A as we,u as Ne,au as U,c7 as ge}from"./App-C9aGkxVg.js";import{R as q,u as ke}from"./useLocalAgentSchedules-BRa23U7O.js";import{b as Se,a as B,T as ie}from"./chat-file-links-CWLsRYvW.js";import{P as G}from"./play-CLFeH7CU.js";import{R as Re}from"./refresh-cw-B4IpQ_7Q.js";import{S as Ce}from"./save-BbTHztnA.js";import{M as Ae}from"./minimize-2-DumTpFtE.js";const De=3e4;function $e(s){const[t,n]=d.useState([]),[l,c]=d.useState([]),[f,u]=d.useState(null),[h,a]=d.useState(!1),[r,j]=d.useState(null),[N,w]=d.useState(()=>new Set);async function m(i,p){p&&a(!0);try{const x=await C.hostedSavedWork(i);n(x.definitions),c(x.runs),u(x.webBaseUrl??null),j(null)}catch(x){j(K(x))}finally{p&&a(!1)}}d.useEffect(()=>{if(!s){n([]),c([]),u(null),j(null),a(!1);return}let i=!1;const p=async $=>{if(!i){$&&a(!0);try{const k=await C.hostedSavedWork(s);if(i)return;n(k.definitions),c(k.runs),u(k.webBaseUrl??null),j(null)}catch(k){i||j(K(k))}finally{!i&&$&&a(!1)}}};p(!0);const x=window.setInterval(()=>{p(!1)},De);return()=>{i=!0,window.clearInterval(x)}},[s]);async function y(){s&&await m(s,!0)}async function b(i){s&&(await C.createHostedSavedWork(s,i),await m(s,!1))}async function R(i,p){await D(i,async x=>{await C.updateHostedSavedWork(x,i,p)})}async function g(i){await D(i,async p=>{await C.deleteHostedSavedWork(p,i)})}async function W(i){await D(i,async p=>{await C.runHostedSavedWork(p,i,crypto.randomUUID())})}async function D(i,p){if(!(!s||N.has(i))){M(i,!0);try{await p(s),await m(s,!1)}catch(x){throw j(K(x)),x}finally{M(i,!1)}}}function M(i,p){w(x=>{const $=new Set(x);return p?$.add(i):$.delete(i),$})}return{create:b,definitions:t,error:r,loading:h,pendingScheduleIds:N,refresh:y,remove:g,run:W,runs:l,update:R,webBaseUrl:f}}function K(s){return s instanceof Error?s.message:String(s)}const Ee=3e4;function Te(s){const[t,n]=d.useState([]),[l,c]=d.useState([]),[f,u]=d.useState(!1),[h,a]=d.useState(null),[r,j]=d.useState(()=>new Set),N=d.useCallback(async m=>{if(s){m&&u(!0);try{const y=await C.chatWorkflows(s);n(y.workflows),c(y.runs),a(null)}catch(y){a(y instanceof Error?y.message:String(y))}finally{m&&u(!1)}}},[s]);d.useEffect(()=>{if(!s){n([]),c([]),a(null),u(!1);return}N(!0);const m=window.setInterval(()=>{N(!1)},Ee);return()=>window.clearInterval(m)},[s,N]);async function w(m,y){if(!r.has(m)){j(b=>new Set(b).add(m));try{await y(),await N(!1)}catch(b){throw a(b instanceof Error?b.message:String(b)),b}finally{j(b=>{const R=new Set(b);return R.delete(m),R})}}}return{workflows:t,runs:l,loading:f,error:h,pendingIds:r,refresh:()=>N(!0),update:(m,y)=>w(m,()=>C.updateChatWorkflow(s,m,y)),remove:m=>w(m,()=>C.deleteChatWorkflow(s,m)),run:m=>w(m,()=>C.runChatWorkflow(s,m))}}const de="openpond.scheduled-work.view.v1";function Q(s=ce()){try{return s?.getItem(de)==="list"?"list":"calendar"}catch{return"calendar"}}function Me(s,t=ce()){try{t?.setItem(de,s)}catch{}}function ce(){if(typeof window>"u")return null;try{return je}catch{return null}}function A(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 oe(s){return O(s.replaceAll("_"," "))}function O(s){return s.replace(/^./,t=>t.toUpperCase())}function ue(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 Ie({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:oe(s.status)}),e.jsx("small",{children:A(s.createdAt,null)})]}),e.jsx("span",{className:"scheduled-run-trigger",children:s.trigger==="manual"?"Manual":"Scheduled"})]}),t?e.jsx("pre",{children:t}):null]})}function We({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:oe(t.status)}),e.jsx("small",{children:A(t.createdAt,null)})]}),e.jsxs("span",{className:"scheduled-run-trigger",children:[O(t.triggerKind)," ",e.jsx(re,{size:11})]}),t.deliveryError?e.jsx("p",{children:t.deliveryError}):null]})}function X({children:s,detailExpanded:t,label:n,onClose:l,onDetailResizeStart:c,onToggleDetailExpanded:f}){return e.jsxs("aside",{"aria-label":n,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:c,role:"separator"}),e.jsxs("div",{className:"workspace-diff-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Schedule details",children:e.jsxs("button",{"aria-selected":"true",className:"workspace-diff-tab active",role:"tab",type:"button",children:[e.jsx(be,{size:14}),e.jsx("span",{children:"Schedule"})]})}),e.jsxs("div",{className:"workspace-diff-toolbar-actions",children:[e.jsx("button",{"aria-label":t?"Dock schedule details":"Expand schedule details",className:"diff-icon-button",onClick:f,title:t?"Dock schedule details":"Expand schedule details",type:"button",children:t?e.jsx(Ae,{size:14}):e.jsx(ve,{size:14})}),e.jsx("button",{"aria-label":"Close schedule details",className:"diff-icon-button",onClick:l,title:"Close schedule details",type:"button",children:e.jsx(ye,{size:14})})]})]}),e.jsx("div",{className:"scheduled-detail-body",children:s})]})}function E({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 S({label:s,value:t}){return e.jsxs("div",{children:[e.jsx("dt",{children:s}),e.jsx("dd",{children:t})]})}function V({children:s}){return e.jsx("p",{className:"scheduled-empty",children:s})}function he({label:s}){return e.jsxs("div",{className:"scheduled-loading",role:"status",children:[e.jsx(pe,{className:"scheduled-spin",size:16}),e.jsx("span",{children:s})]})}const Le=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function ze({items:s,onSelect:t,selectedKey:n}){const[l,c]=d.useState(()=>ee(new Date)),f=d.useMemo(()=>Pe(l),[l]),u=d.useMemo(()=>Fe(s),[s]),h=new Intl.DateTimeFormat(void 0,{month:"long",year:"numeric"}).format(l),a=s.filter(r=>!xe(r.nextRunAt));return e.jsxs("div",{className:"scheduled-calendar",children:[e.jsxs("div",{className:"scheduled-calendar-toolbar",children:[e.jsx("strong",{children:h}),e.jsxs("div",{children:[e.jsx("button",{"aria-label":"Previous month",className:"scheduled-icon-button",onClick:()=>c(se(l,-1)),type:"button",children:e.jsx(we,{size:15})}),e.jsx("button",{className:"scheduled-calendar-today",onClick:()=>c(ee(new Date)),type:"button",children:"Today"}),e.jsx("button",{"aria-label":"Next month",className:"scheduled-icon-button",onClick:()=>c(se(l,1)),type:"button",children:e.jsx(Se,{size:15})})]})]}),e.jsxs("div",{className:"scheduled-calendar-grid",role:"grid","aria-label":h,children:[Le.map(r=>e.jsx("div",{className:"scheduled-calendar-weekday",role:"columnheader",children:r},r)),f.map(r=>{const j=Y(r),N=u.get(j)??[],w=r.getMonth()!==l.getMonth(),m=j===Y(new Date);return e.jsxs("div",{className:`scheduled-calendar-day${w?" outside":""}${m?" today":""}`,role:"gridcell",children:[e.jsx("span",{className:"scheduled-calendar-day-number",children:r.getDate()}),e.jsx("div",{className:"scheduled-calendar-events",children:N.map(y=>e.jsxs("button",{"aria-current":n===y.key?"true":void 0,className:`scheduled-calendar-event${y.enabled?"":" paused"}`,onClick:()=>t(y.key),title:y.title,type:"button",children:[e.jsx("span",{children:Ze(y.nextRunAt)}),e.jsx("strong",{children:y.title})]},y.key))})]},j)})]}),a.length?e.jsxs("div",{className:"scheduled-calendar-unscheduled",children:[e.jsx("span",{children:"No upcoming run"}),e.jsx("div",{children:a.map(r=>e.jsx("button",{onClick:()=>t(r.key),type:"button",children:r.title},r.key))})]}):null]})}function Pe(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,c)=>{const f=new Date(n);return f.setDate(n.getDate()+c),f})}function Fe(s){const t=new Map;for(const n of s){const l=xe(n.nextRunAt);if(!l)continue;const c=Y(l);t.set(c,[...t.get(c)??[],n])}for(const n of t.values())n.sort((l,c)=>l.nextRunAt.localeCompare(c.nextRunAt));return t}function xe(s){if(!s)return null;const t=new Date(s);return Number.isNaN(t.getTime())?null:t}function Y(s){return`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}-${String(s.getDate()).padStart(2,"0")}`}function ee(s){return new Date(s.getFullYear(),s.getMonth(),1)}function se(s,t){return new Date(s.getFullYear(),s.getMonth()+t,1)}function Ze(s){return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(new Date(s))}function _e({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 ${A(n.nextRunAt,n.timezone)}`:" · No next run"]})]})]})}function Oe({cadence:s,definition:t,onSelect:n,schedule:l,selected:c}){return e.jsxs("button",{"aria-current":c?"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 ${A(l.nextRunAt,l.timeZone)}`:" · No next run"]})]})]})}function Ue({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 ${A(l.nextRunAt,l.recurrence.timeZone)}`:" · No next run"]})]})]})}function He(s,t){return s.filter(n=>t==="active"?n.enabled:t==="paused"?!n.enabled:!0).sort((n,l)=>{const c=n.nextRunAt?new Date(n.nextRunAt).getTime():Number.POSITIVE_INFINITY,f=l.nextRunAt?new Date(l.nextRunAt).getTime():Number.POSITIVE_INFINITY;return c-f||n.name.localeCompare(l.name)})}function J(s){const t=ue(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(O).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 Ke({detailExpanded:s,onClose:t,onDelete:n,onDetailResizeStart:l,onRun:c,onToggle:f,onToggleDetailExpanded:u,pending:h,runs:a,workflow:r}){return e.jsxs(X,{detailExpanded:s,label:`${r.name} details`,onClose:t,onDetailResizeStart:l,onToggleDetailExpanded:u,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:r.enabled?"Active":"Paused"})]}),e.jsx("p",{children:r.name})]})}),e.jsx(E,{title:"Prompt",children:e.jsx("pre",{className:"scheduled-prompt",children:r.prompt})}),e.jsxs(E,{title:"Delivery",children:[e.jsxs("dl",{className:"scheduled-detail-fields",children:[e.jsx(S,{label:"Runs in",value:r.sessionTitle}),e.jsx(S,{label:"Cadence",value:J(r.recurrence)}),e.jsx(S,{label:"Next run",value:A(r.nextRunAt,r.recurrence.timeZone)}),e.jsx(S,{label:"Last run",value:A(r.lastRunAt,r.recurrence.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:h,onClick:()=>{c()},type:"button",children:[e.jsx(q,{size:15}),e.jsx("span",{children:"Run now"})]}),e.jsxs("button",{disabled:h,onClick:()=>{f()},type:"button",children:[r.enabled?e.jsx(B,{size:15}):e.jsx(G,{size:15}),e.jsx("span",{children:r.enabled?"Pause":"Resume"})]}),e.jsxs("button",{disabled:h,onClick:()=>{n()},type:"button",children:[e.jsx(ie,{size:15}),e.jsx("span",{children:"Delete"})]})]}),e.jsx(E,{title:"Runs",children:a.length===0?e.jsx("p",{className:"scheduled-no-runs",children:"No runs yet."}):e.jsx("div",{className:"scheduled-run-list",children:a.map(j=>e.jsxs("div",{className:"scheduled-run-row",children:[e.jsx("span",{children:O(j.status)}),e.jsx("small",{children:A(j.createdAt,r.recurrence.timeZone)}),j.error?e.jsx("p",{children:j.error}):null]},j.id))})})]})}const Ve=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function ms({connection:s,detailOpen:t,detailExpanded:n,onDetailOpenChange:l,onDetailResizeStart:c,onToggleDetailExpanded:f}){const u=$e(s),h=Te(s),a=ke(s),[r,j]=d.useState("all"),[N,w]=d.useState(Q);Ne(()=>w(Q()));const[m,y]=d.useState(!1),[b,R]=d.useState(null),g=d.useMemo(()=>Be(u.definitions),[u.definitions]),W=d.useMemo(()=>Ge(g,r),[r,g]),D=d.useMemo(()=>Xe(a.schedules,r),[r,a.schedules]),M=d.useMemo(()=>He(h.workflows,r),[h.workflows,r]),i=g.find(o=>_(o.schedule.id)===b)??null,p=a.schedules.find(o=>F(o.id)===b)??null,x=h.workflows.find(o=>Z(o.id)===b)??null,$=i?u.runs.filter(o=>o.scheduleId===i.schedule.id):[],k=d.useMemo(()=>Je(M,D,W),[M,D,W]),H=d.useMemo(()=>k.map(Qe),[k]);U(u.error,{prefix:"Workflows"}),U(a.error,{prefix:"Local schedules"}),U(h.error,{prefix:"Chat workflows"}),d.useEffect(()=>{b&&!i&&!p&&!x&&R(null)},[x,i,p,b]),d.useEffect(()=>{!t&&b&&R(null)},[t,b]),d.useEffect(()=>()=>l(!1),[l]);function T(o){R(o),l(!0)}function I(){R(null),l(!1)}function z(o){w(o),Me(o)}async function P(){y(!0);try{await Promise.all([u.refresh(),a.refresh(),h.refresh()])}finally{y(!1)}}return e.jsxs("section",{"aria-label":"Workflows",className:`scheduled-work-view${i||p||x?" detail-open":""}${n?" 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":N==="calendar",className:N==="calendar"?"active":void 0,onClick:()=>z("calendar"),role:"tab",type:"button",children:"Calendar"}),e.jsx("button",{"aria-selected":N==="list",className:N==="list"?"active":void 0,onClick:()=>z("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||u.loading||a.loading||h.loading,onClick:()=>{P()},title:"Refresh schedules",type:"button",children:e.jsx(Re,{className:m?"scheduled-spin":void 0,size:16})}),e.jsxs("label",{className:"scheduled-filter",children:[e.jsx(ge,{"aria-hidden":"true",size:16}),e.jsxs("select",{"aria-label":"Schedule filter",onChange:o=>j(o.target.value),value:r,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":u.loading||a.loading||h.loading,className:"scheduled-list",children:s?(u.loading||a.loading||h.loading)&&g.length===0&&a.schedules.length===0&&h.workflows.length===0?e.jsx(he,{label:"Loading schedules"}):u.error&&a.error&&g.length===0&&a.schedules.length===0?e.jsx(V,{children:"Schedules are unavailable. Refresh to try again."}):k.length===0?e.jsx(V,{children:"Create a scheduled task here or ask for one in Work."}):N==="calendar"?e.jsx(ze,{items:H,onSelect:T,selectedKey:b}):e.jsx("div",{className:"scheduled-list-rows",children:k.map(o=>o.kind==="chat"?e.jsx(Ue,{cadence:J(o.workflow.recurrence),onSelect:()=>T(Z(o.workflow.id)),selected:b===Z(o.workflow.id),workflow:o.workflow},Z(o.workflow.id)):o.kind==="local"?e.jsx(_e,{cadence:fe(o.schedule),onSelect:()=>T(F(o.schedule.id)),schedule:o.schedule,selected:b===F(o.schedule.id)},F(o.schedule.id)):e.jsx(Oe,{cadence:es(o.row.schedule),definition:o.row.definition,onSelect:()=>T(_(o.row.schedule.id)),schedule:o.row.schedule,selected:b===_(o.row.schedule.id)},_(o.row.schedule.id)))}):e.jsx(V,{children:"Connect to OpenPond to view scheduled Work."})})]})}),i?e.jsx(qe,{onClose:I,onDelete:async()=>{await u.remove(i.schedule.id),I()},onRun:()=>u.run(i.schedule.id),onSave:o=>u.update(i.schedule.id,o),onToggle:()=>u.update(i.schedule.id,{enabled:!i.schedule.enabled}),pending:u.pendingScheduleIds.has(i.schedule.id),row:i,runs:$,detailExpanded:n,onDetailResizeStart:c,onToggleDetailExpanded:f,webBaseUrl:u.webBaseUrl},`${i.schedule.id}:${i.definition.version}:${i.schedule.configurationVersion}`):x?e.jsx(Ke,{detailExpanded:n,onClose:I,onDelete:async()=>{await h.remove(x.id),I()},onDetailResizeStart:c,onRun:()=>h.run(x.id),onToggle:()=>h.update(x.id,{enabled:!x.enabled}),onToggleDetailExpanded:f,pending:h.pendingIds.has(x.id),runs:h.runs.filter(o=>o.workflowId===x.id),workflow:x},x.id):p?e.jsx(Ye,{connection:s,onClose:I,onRun:()=>a.run(p),onToggle:()=>a.toggle(p),pending:a.pendingScheduleIds.has(p.id),schedule:p,detailExpanded:n,onDetailResizeStart:c,onToggleDetailExpanded:f},p.id):null]})}function Ye({connection:s,detailExpanded:t,onClose:n,onDetailResizeStart:l,onRun:c,onToggleDetailExpanded:f,onToggle:u,pending:h,schedule:a}){const r=ns(s,a.id);return U(r.error,{prefix:"Local schedule runs"}),e.jsxs(X,{detailExpanded:t,label:`${a.scheduleName} details`,onClose:n,onDetailResizeStart:l,onToggleDetailExpanded:f,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:a.enabled?"Active":"Paused"})]}),e.jsx("p",{children:a.scheduleName})]})}),e.jsxs(E,{title:"Task",children:[e.jsxs("dl",{className:"scheduled-detail-fields",children:[e.jsx(S,{label:"Environment",value:"Local"}),e.jsx(S,{label:"Project",value:a.localProjectName}),e.jsx(S,{label:"Agent",value:a.agentName}),e.jsx(S,{label:"Action",value:a.targetAction})]}),e.jsx("pre",{className:"scheduled-prompt",children:ts(a)})]}),e.jsxs(E,{title:"Schedule",children:[e.jsxs("dl",{className:"scheduled-detail-fields",children:[e.jsx(S,{label:"Cadence",value:fe(a)}),e.jsx(S,{label:"Expression",value:a.scheduleExpression}),e.jsx(S,{label:"Timezone",value:a.timezone??"Local time"}),e.jsx(S,{label:"Next run",value:A(a.nextRunAt,a.timezone)}),e.jsx(S,{label:"Last run",value:A(a.lastRunAt,a.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:h,onClick:()=>{c()},type:"button",children:[e.jsx(q,{size:15}),e.jsx("span",{children:"Run now"})]}),e.jsxs("button",{disabled:h,onClick:()=>{u()},type:"button",children:[a.enabled?e.jsx(B,{size:15}):e.jsx(G,{size:15}),e.jsx("span",{children:a.enabled?"Pause":"Resume"})]})]}),e.jsx(E,{title:"Runs",children:r.loading&&r.runs.length===0?e.jsx(he,{label:"Loading runs"}):r.runs.length===0?e.jsx("p",{className:"scheduled-no-runs",children:"No runs yet."}):e.jsx("div",{className:"scheduled-run-list",children:r.runs.map(j=>e.jsx(Ie,{run:j},j.id))})})]})}function qe({detailExpanded:s,onClose:t,onDelete:n,onDetailResizeStart:l,onRun:c,onSave:f,onToggleDetailExpanded:u,onToggle:h,pending:a,row:r,runs:j,webBaseUrl:N}){const w=ss(r.schedule),[m,y]=d.useState(r.definition.name),[b,R]=d.useState(r.definition.prompt),[g,W]=d.useState(w.kind),[D,M]=d.useState(w.timeZone),[i,p]=d.useState(w.startDate),[x,$]=d.useState(w.localTime),[k,H]=d.useState(w.weekdays?.[0]??"monday"),[T,I]=d.useState(w.dayOfMonth??1),z=j[0]?.conversationId??null,P=N?le(N,z):null,o=m!==r.definition.name||b!==r.definition.prompt||g!==w.kind||D!==w.timeZone||i!==w.startDate||x!==w.localTime||k!==(w.weekdays?.[0]??"monday")||T!==(w.dayOfMonth??1);async function me(v){v.preventDefault(),await f({name:m,prompt:b,recurrence:{version:1,kind:g,timeZone:D,startDate:i,localTime:x,end:{kind:"never"},...g==="weekly"?{weekdays:[k]}:{},...g==="monthly"?{dayOfMonth:T}:{}}})}return e.jsx(X,{detailExpanded:s,label:`${r.definition.name} details`,onClose:t,onDetailResizeStart:l,onToggleDetailExpanded:u,children:e.jsxs("form",{onSubmit:me,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:r.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:a,onClick:()=>{n()},title:"Delete schedule",type:"button",children:e.jsx(ie,{size:16})})})]}),e.jsxs(E,{title:"Task",children:[e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{maxLength:180,onChange:v=>y(v.target.value),required:!0,value:m})]}),e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Prompt"}),e.jsx("textarea",{onChange:v=>R(v.target.value),required:!0,value:b})]})]}),e.jsxs(E,{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=>W(v.target.value),value:g,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"})]})]}),g==="weekly"?e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Day"}),e.jsx("select",{onChange:v=>H(v.target.value),value:k,children:Ve.map(v=>e.jsx("option",{value:v,children:O(v)},v))})]}):g==="monthly"?e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Day of month"}),e.jsx("input",{max:31,min:1,onChange:v=>I(Number(v.target.value)),type:"number",value:T})]}):null,e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Start date"}),e.jsx("input",{onChange:v=>p(v.target.value),required:!0,type:"date",value:i})]}),e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Time"}),e.jsx("input",{onChange:v=>$(v.target.value),required:!0,type:"time",value:x})]}),e.jsxs("label",{className:"scheduled-field scheduled-field-wide",children:[e.jsx("span",{children:"Timezone"}),e.jsx("input",{onChange:v=>M(v.target.value),required:!0,value:D})]})]}),e.jsxs("p",{className:"scheduled-next-run",children:["Next run: ",A(r.schedule.nextRunAt,w.timeZone)]})]}),e.jsxs("div",{className:"scheduled-detail-actions",children:[o?e.jsxs("button",{disabled:a,type:"submit",children:[e.jsx(Ce,{size:15}),e.jsx("span",{children:"Save"})]}):null,e.jsxs("button",{disabled:a,onClick:()=>{c()},type:"button",children:[e.jsx(q,{size:15}),e.jsx("span",{children:"Run now"})]}),e.jsxs("button",{disabled:a,onClick:()=>{h()},type:"button",children:[r.schedule.enabled?e.jsx(B,{size:15}):e.jsx(G,{size:15}),e.jsx("span",{children:r.schedule.enabled?"Pause":"Resume"})]})]}),e.jsxs("button",{className:"scheduled-open-chat",disabled:a||!P,onClick:()=>{P&&ae(P,z)},type:"button",children:[e.jsx("span",{children:"Open hosted chat"}),e.jsx(re,{size:14})]}),e.jsx(E,{title:"Runs",children:j.length===0?e.jsx("p",{className:"scheduled-no-runs",children:"No runs yet."}):e.jsx("div",{className:"scheduled-run-list",children:j.map(v=>e.jsx(We,{onOpen:()=>{N&&ae(le(N,v.conversationId),v.conversationId)},run:v},v.id))})})]})})}function Be(s){return s.flatMap(t=>t.schedules.map(n=>({definition:t,schedule:n})))}function Ge(s,t){return s.filter(n=>t==="active"?n.schedule.enabled:t==="paused"?!n.schedule.enabled:!0).sort((n,l)=>L(n.schedule.nextRunAt)-L(l.schedule.nextRunAt)||n.definition.name.localeCompare(l.definition.name))}function Xe(s,t){return s.filter(n=>t==="active"?n.enabled:t==="paused"?!n.enabled:!0).sort((n,l)=>L(n.nextRunAt)-L(l.nextRunAt)||n.scheduleName.localeCompare(l.scheduleName))}function Je(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,c)=>{const f=L(te(l)),u=L(te(c));if(f!==u)return f-u;const h=ne(l),a=ne(c);return h.localeCompare(a)})}function Qe(s){return s.kind==="chat"?{enabled:s.workflow.enabled,key:Z(s.workflow.id),nextRunAt:s.workflow.nextRunAt,title:s.workflow.name}:s.kind==="local"?{enabled:s.schedule.enabled,key:F(s.schedule.id),nextRunAt:s.schedule.nextRunAt,title:s.schedule.scheduleName}:{enabled:s.row.schedule.enabled,key:_(s.row.schedule.id),nextRunAt:s.row.schedule.nextRunAt,title:s.row.definition.name}}function es(s){const t=s.recurrence;return t?J(t):s.expression??"Manual"}function te(s){return s.kind==="chat"?s.workflow.nextRunAt:s.kind==="local"?s.schedule.nextRunAt:s.row.schedule.nextRunAt}function ne(s){return s.kind==="chat"?s.workflow.name:s.kind==="local"?s.schedule.scheduleName:s.row.definition.name}function fe(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=ue(`${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 ss(s){return s.recurrence??{version:1,kind:"daily",timeZone:s.timeZone||as(),startDate:ls(),localTime:"08:00",end:{kind:"never"}}}function ts(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 ns(s,t){const[n,l]=d.useState([]),[c,f]=d.useState(!1),[u,h]=d.useState(null);return d.useEffect(()=>{if(!s){l([]),f(!1),h(null);return}let a=!1;return f(!0),C.localAgentScheduleRuns(s,t,{limit:20}).then(r=>{a||(l(r.runs),h(null))}).catch(r=>{a||h(rs(r))}).finally(()=>{a||f(!1)}),()=>{a=!0}},[s,t]),{error:u,loading:c,runs:n}}function F(s){return`local:${s}`}function Z(s){return`chat:${s}`}function _(s){return`hosted:${s}`}function le(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 ae(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 L(s){if(!s)return Number.MAX_SAFE_INTEGER;const t=new Date(s).getTime();return Number.isFinite(t)?t:Number.MAX_SAFE_INTEGER}function ls(){return new Date().toISOString().slice(0,10)}function as(){return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}function rs(s){return s instanceof Error?s.message:String(s)}export{ms as ScheduledWorkPage,Je as combineScheduleRows,Xe as filterAndSortLocalSchedules,Ge as filterAndSortSchedules,A as formatScheduledRunAt,le as hostedConversationUrl,fe as localScheduleCadence,es as scheduleCadence,Be as scheduledRows};
1
+ import{r as d,j as e}from"./index-667pXXsu.js";import{o as C,p as je,aS as pe,dq as be,bg as ve,X as ye,aF as re,A as we,u as Ne,aw as U,dr as ge}from"./App-BoJQRfeu.js";import{R as q,u as ke}from"./useLocalAgentSchedules-qI87RHVI.js";import{a as Se,P as B,T as ie}from"./chat-file-links-Bmz9kVct.js";import{P as G}from"./play-DB3XFAnG.js";import{R as Re}from"./refresh-cw-0zSLZtfp.js";import{S as Ce}from"./save-BCZlshOA.js";import{M as Ae}from"./minimize-2-DtI1vgd7.js";const De=3e4;function $e(s){const[t,n]=d.useState([]),[l,c]=d.useState([]),[f,u]=d.useState(null),[h,a]=d.useState(!1),[r,j]=d.useState(null),[N,w]=d.useState(()=>new Set);async function m(i,p){p&&a(!0);try{const x=await C.hostedSavedWork(i);n(x.definitions),c(x.runs),u(x.webBaseUrl??null),j(null)}catch(x){j(K(x))}finally{p&&a(!1)}}d.useEffect(()=>{if(!s){n([]),c([]),u(null),j(null),a(!1);return}let i=!1;const p=async $=>{if(!i){$&&a(!0);try{const k=await C.hostedSavedWork(s);if(i)return;n(k.definitions),c(k.runs),u(k.webBaseUrl??null),j(null)}catch(k){i||j(K(k))}finally{!i&&$&&a(!1)}}};p(!0);const x=window.setInterval(()=>{p(!1)},De);return()=>{i=!0,window.clearInterval(x)}},[s]);async function y(){s&&await m(s,!0)}async function b(i){s&&(await C.createHostedSavedWork(s,i),await m(s,!1))}async function R(i,p){await D(i,async x=>{await C.updateHostedSavedWork(x,i,p)})}async function g(i){await D(i,async p=>{await C.deleteHostedSavedWork(p,i)})}async function W(i){await D(i,async p=>{await C.runHostedSavedWork(p,i,crypto.randomUUID())})}async function D(i,p){if(!(!s||N.has(i))){M(i,!0);try{await p(s),await m(s,!1)}catch(x){throw j(K(x)),x}finally{M(i,!1)}}}function M(i,p){w(x=>{const $=new Set(x);return p?$.add(i):$.delete(i),$})}return{create:b,definitions:t,error:r,loading:h,pendingScheduleIds:N,refresh:y,remove:g,run:W,runs:l,update:R,webBaseUrl:f}}function K(s){return s instanceof Error?s.message:String(s)}const Ee=3e4;function Te(s){const[t,n]=d.useState([]),[l,c]=d.useState([]),[f,u]=d.useState(!1),[h,a]=d.useState(null),[r,j]=d.useState(()=>new Set),N=d.useCallback(async m=>{if(s){m&&u(!0);try{const y=await C.chatWorkflows(s);n(y.workflows),c(y.runs),a(null)}catch(y){a(y instanceof Error?y.message:String(y))}finally{m&&u(!1)}}},[s]);d.useEffect(()=>{if(!s){n([]),c([]),a(null),u(!1);return}N(!0);const m=window.setInterval(()=>{N(!1)},Ee);return()=>window.clearInterval(m)},[s,N]);async function w(m,y){if(!r.has(m)){j(b=>new Set(b).add(m));try{await y(),await N(!1)}catch(b){throw a(b instanceof Error?b.message:String(b)),b}finally{j(b=>{const R=new Set(b);return R.delete(m),R})}}}return{workflows:t,runs:l,loading:f,error:h,pendingIds:r,refresh:()=>N(!0),update:(m,y)=>w(m,()=>C.updateChatWorkflow(s,m,y)),remove:m=>w(m,()=>C.deleteChatWorkflow(s,m)),run:m=>w(m,()=>C.runChatWorkflow(s,m))}}const de="openpond.scheduled-work.view.v1";function Q(s=ce()){try{return s?.getItem(de)==="list"?"list":"calendar"}catch{return"calendar"}}function Me(s,t=ce()){try{t?.setItem(de,s)}catch{}}function ce(){if(typeof window>"u")return null;try{return je}catch{return null}}function A(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 oe(s){return O(s.replaceAll("_"," "))}function O(s){return s.replace(/^./,t=>t.toUpperCase())}function ue(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 Ie({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:oe(s.status)}),e.jsx("small",{children:A(s.createdAt,null)})]}),e.jsx("span",{className:"scheduled-run-trigger",children:s.trigger==="manual"?"Manual":"Scheduled"})]}),t?e.jsx("pre",{children:t}):null]})}function We({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:oe(t.status)}),e.jsx("small",{children:A(t.createdAt,null)})]}),e.jsxs("span",{className:"scheduled-run-trigger",children:[O(t.triggerKind)," ",e.jsx(re,{size:11})]}),t.deliveryError?e.jsx("p",{children:t.deliveryError}):null]})}function X({children:s,detailExpanded:t,label:n,onClose:l,onDetailResizeStart:c,onToggleDetailExpanded:f}){return e.jsxs("aside",{"aria-label":n,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:c,role:"separator"}),e.jsxs("div",{className:"workspace-diff-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Schedule details",children:e.jsxs("button",{"aria-selected":"true",className:"workspace-diff-tab active",role:"tab",type:"button",children:[e.jsx(be,{size:14}),e.jsx("span",{children:"Schedule"})]})}),e.jsxs("div",{className:"workspace-diff-toolbar-actions",children:[e.jsx("button",{"aria-label":t?"Dock schedule details":"Expand schedule details",className:"diff-icon-button",onClick:f,title:t?"Dock schedule details":"Expand schedule details",type:"button",children:t?e.jsx(Ae,{size:14}):e.jsx(ve,{size:14})}),e.jsx("button",{"aria-label":"Close schedule details",className:"diff-icon-button",onClick:l,title:"Close schedule details",type:"button",children:e.jsx(ye,{size:14})})]})]}),e.jsx("div",{className:"scheduled-detail-body",children:s})]})}function E({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 S({label:s,value:t}){return e.jsxs("div",{children:[e.jsx("dt",{children:s}),e.jsx("dd",{children:t})]})}function V({children:s}){return e.jsx("p",{className:"scheduled-empty",children:s})}function he({label:s}){return e.jsxs("div",{className:"scheduled-loading",role:"status",children:[e.jsx(pe,{className:"scheduled-spin",size:16}),e.jsx("span",{children:s})]})}const Le=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function ze({items:s,onSelect:t,selectedKey:n}){const[l,c]=d.useState(()=>ee(new Date)),f=d.useMemo(()=>Pe(l),[l]),u=d.useMemo(()=>Fe(s),[s]),h=new Intl.DateTimeFormat(void 0,{month:"long",year:"numeric"}).format(l),a=s.filter(r=>!xe(r.nextRunAt));return e.jsxs("div",{className:"scheduled-calendar",children:[e.jsxs("div",{className:"scheduled-calendar-toolbar",children:[e.jsx("strong",{children:h}),e.jsxs("div",{children:[e.jsx("button",{"aria-label":"Previous month",className:"scheduled-icon-button",onClick:()=>c(se(l,-1)),type:"button",children:e.jsx(we,{size:15})}),e.jsx("button",{className:"scheduled-calendar-today",onClick:()=>c(ee(new Date)),type:"button",children:"Today"}),e.jsx("button",{"aria-label":"Next month",className:"scheduled-icon-button",onClick:()=>c(se(l,1)),type:"button",children:e.jsx(Se,{size:15})})]})]}),e.jsxs("div",{className:"scheduled-calendar-grid",role:"grid","aria-label":h,children:[Le.map(r=>e.jsx("div",{className:"scheduled-calendar-weekday",role:"columnheader",children:r},r)),f.map(r=>{const j=Y(r),N=u.get(j)??[],w=r.getMonth()!==l.getMonth(),m=j===Y(new Date);return e.jsxs("div",{className:`scheduled-calendar-day${w?" outside":""}${m?" today":""}`,role:"gridcell",children:[e.jsx("span",{className:"scheduled-calendar-day-number",children:r.getDate()}),e.jsx("div",{className:"scheduled-calendar-events",children:N.map(y=>e.jsxs("button",{"aria-current":n===y.key?"true":void 0,className:`scheduled-calendar-event${y.enabled?"":" paused"}`,onClick:()=>t(y.key),title:y.title,type:"button",children:[e.jsx("span",{children:Ze(y.nextRunAt)}),e.jsx("strong",{children:y.title})]},y.key))})]},j)})]}),a.length?e.jsxs("div",{className:"scheduled-calendar-unscheduled",children:[e.jsx("span",{children:"No upcoming run"}),e.jsx("div",{children:a.map(r=>e.jsx("button",{onClick:()=>t(r.key),type:"button",children:r.title},r.key))})]}):null]})}function Pe(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,c)=>{const f=new Date(n);return f.setDate(n.getDate()+c),f})}function Fe(s){const t=new Map;for(const n of s){const l=xe(n.nextRunAt);if(!l)continue;const c=Y(l);t.set(c,[...t.get(c)??[],n])}for(const n of t.values())n.sort((l,c)=>l.nextRunAt.localeCompare(c.nextRunAt));return t}function xe(s){if(!s)return null;const t=new Date(s);return Number.isNaN(t.getTime())?null:t}function Y(s){return`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}-${String(s.getDate()).padStart(2,"0")}`}function ee(s){return new Date(s.getFullYear(),s.getMonth(),1)}function se(s,t){return new Date(s.getFullYear(),s.getMonth()+t,1)}function Ze(s){return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(new Date(s))}function _e({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 ${A(n.nextRunAt,n.timezone)}`:" · No next run"]})]})]})}function Oe({cadence:s,definition:t,onSelect:n,schedule:l,selected:c}){return e.jsxs("button",{"aria-current":c?"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 ${A(l.nextRunAt,l.timeZone)}`:" · No next run"]})]})]})}function Ue({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 ${A(l.nextRunAt,l.recurrence.timeZone)}`:" · No next run"]})]})]})}function He(s,t){return s.filter(n=>t==="active"?n.enabled:t==="paused"?!n.enabled:!0).sort((n,l)=>{const c=n.nextRunAt?new Date(n.nextRunAt).getTime():Number.POSITIVE_INFINITY,f=l.nextRunAt?new Date(l.nextRunAt).getTime():Number.POSITIVE_INFINITY;return c-f||n.name.localeCompare(l.name)})}function J(s){const t=ue(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(O).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 Ke({detailExpanded:s,onClose:t,onDelete:n,onDetailResizeStart:l,onRun:c,onToggle:f,onToggleDetailExpanded:u,pending:h,runs:a,workflow:r}){return e.jsxs(X,{detailExpanded:s,label:`${r.name} details`,onClose:t,onDetailResizeStart:l,onToggleDetailExpanded:u,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:r.enabled?"Active":"Paused"})]}),e.jsx("p",{children:r.name})]})}),e.jsx(E,{title:"Prompt",children:e.jsx("pre",{className:"scheduled-prompt",children:r.prompt})}),e.jsxs(E,{title:"Delivery",children:[e.jsxs("dl",{className:"scheduled-detail-fields",children:[e.jsx(S,{label:"Runs in",value:r.sessionTitle}),e.jsx(S,{label:"Cadence",value:J(r.recurrence)}),e.jsx(S,{label:"Next run",value:A(r.nextRunAt,r.recurrence.timeZone)}),e.jsx(S,{label:"Last run",value:A(r.lastRunAt,r.recurrence.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:h,onClick:()=>{c()},type:"button",children:[e.jsx(q,{size:15}),e.jsx("span",{children:"Run now"})]}),e.jsxs("button",{disabled:h,onClick:()=>{f()},type:"button",children:[r.enabled?e.jsx(B,{size:15}):e.jsx(G,{size:15}),e.jsx("span",{children:r.enabled?"Pause":"Resume"})]}),e.jsxs("button",{disabled:h,onClick:()=>{n()},type:"button",children:[e.jsx(ie,{size:15}),e.jsx("span",{children:"Delete"})]})]}),e.jsx(E,{title:"Runs",children:a.length===0?e.jsx("p",{className:"scheduled-no-runs",children:"No runs yet."}):e.jsx("div",{className:"scheduled-run-list",children:a.map(j=>e.jsxs("div",{className:"scheduled-run-row",children:[e.jsx("span",{children:O(j.status)}),e.jsx("small",{children:A(j.createdAt,r.recurrence.timeZone)}),j.error?e.jsx("p",{children:j.error}):null]},j.id))})})]})}const Ve=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function ms({connection:s,detailOpen:t,detailExpanded:n,onDetailOpenChange:l,onDetailResizeStart:c,onToggleDetailExpanded:f}){const u=$e(s),h=Te(s),a=ke(s),[r,j]=d.useState("all"),[N,w]=d.useState(Q);Ne(()=>w(Q()));const[m,y]=d.useState(!1),[b,R]=d.useState(null),g=d.useMemo(()=>Be(u.definitions),[u.definitions]),W=d.useMemo(()=>Ge(g,r),[r,g]),D=d.useMemo(()=>Xe(a.schedules,r),[r,a.schedules]),M=d.useMemo(()=>He(h.workflows,r),[h.workflows,r]),i=g.find(o=>_(o.schedule.id)===b)??null,p=a.schedules.find(o=>F(o.id)===b)??null,x=h.workflows.find(o=>Z(o.id)===b)??null,$=i?u.runs.filter(o=>o.scheduleId===i.schedule.id):[],k=d.useMemo(()=>Je(M,D,W),[M,D,W]),H=d.useMemo(()=>k.map(Qe),[k]);U(u.error,{prefix:"Workflows"}),U(a.error,{prefix:"Local schedules"}),U(h.error,{prefix:"Chat workflows"}),d.useEffect(()=>{b&&!i&&!p&&!x&&R(null)},[x,i,p,b]),d.useEffect(()=>{!t&&b&&R(null)},[t,b]),d.useEffect(()=>()=>l(!1),[l]);function T(o){R(o),l(!0)}function I(){R(null),l(!1)}function z(o){w(o),Me(o)}async function P(){y(!0);try{await Promise.all([u.refresh(),a.refresh(),h.refresh()])}finally{y(!1)}}return e.jsxs("section",{"aria-label":"Workflows",className:`scheduled-work-view${i||p||x?" detail-open":""}${n?" 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":N==="calendar",className:N==="calendar"?"active":void 0,onClick:()=>z("calendar"),role:"tab",type:"button",children:"Calendar"}),e.jsx("button",{"aria-selected":N==="list",className:N==="list"?"active":void 0,onClick:()=>z("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||u.loading||a.loading||h.loading,onClick:()=>{P()},title:"Refresh schedules",type:"button",children:e.jsx(Re,{className:m?"scheduled-spin":void 0,size:16})}),e.jsxs("label",{className:"scheduled-filter",children:[e.jsx(ge,{"aria-hidden":"true",size:16}),e.jsxs("select",{"aria-label":"Schedule filter",onChange:o=>j(o.target.value),value:r,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":u.loading||a.loading||h.loading,className:"scheduled-list",children:s?(u.loading||a.loading||h.loading)&&g.length===0&&a.schedules.length===0&&h.workflows.length===0?e.jsx(he,{label:"Loading schedules"}):u.error&&a.error&&g.length===0&&a.schedules.length===0?e.jsx(V,{children:"Schedules are unavailable. Refresh to try again."}):k.length===0?e.jsx(V,{children:"Create a scheduled task here or ask for one in Work."}):N==="calendar"?e.jsx(ze,{items:H,onSelect:T,selectedKey:b}):e.jsx("div",{className:"scheduled-list-rows",children:k.map(o=>o.kind==="chat"?e.jsx(Ue,{cadence:J(o.workflow.recurrence),onSelect:()=>T(Z(o.workflow.id)),selected:b===Z(o.workflow.id),workflow:o.workflow},Z(o.workflow.id)):o.kind==="local"?e.jsx(_e,{cadence:fe(o.schedule),onSelect:()=>T(F(o.schedule.id)),schedule:o.schedule,selected:b===F(o.schedule.id)},F(o.schedule.id)):e.jsx(Oe,{cadence:es(o.row.schedule),definition:o.row.definition,onSelect:()=>T(_(o.row.schedule.id)),schedule:o.row.schedule,selected:b===_(o.row.schedule.id)},_(o.row.schedule.id)))}):e.jsx(V,{children:"Connect to OpenPond to view scheduled Work."})})]})}),i?e.jsx(qe,{onClose:I,onDelete:async()=>{await u.remove(i.schedule.id),I()},onRun:()=>u.run(i.schedule.id),onSave:o=>u.update(i.schedule.id,o),onToggle:()=>u.update(i.schedule.id,{enabled:!i.schedule.enabled}),pending:u.pendingScheduleIds.has(i.schedule.id),row:i,runs:$,detailExpanded:n,onDetailResizeStart:c,onToggleDetailExpanded:f,webBaseUrl:u.webBaseUrl},`${i.schedule.id}:${i.definition.version}:${i.schedule.configurationVersion}`):x?e.jsx(Ke,{detailExpanded:n,onClose:I,onDelete:async()=>{await h.remove(x.id),I()},onDetailResizeStart:c,onRun:()=>h.run(x.id),onToggle:()=>h.update(x.id,{enabled:!x.enabled}),onToggleDetailExpanded:f,pending:h.pendingIds.has(x.id),runs:h.runs.filter(o=>o.workflowId===x.id),workflow:x},x.id):p?e.jsx(Ye,{connection:s,onClose:I,onRun:()=>a.run(p),onToggle:()=>a.toggle(p),pending:a.pendingScheduleIds.has(p.id),schedule:p,detailExpanded:n,onDetailResizeStart:c,onToggleDetailExpanded:f},p.id):null]})}function Ye({connection:s,detailExpanded:t,onClose:n,onDetailResizeStart:l,onRun:c,onToggleDetailExpanded:f,onToggle:u,pending:h,schedule:a}){const r=ns(s,a.id);return U(r.error,{prefix:"Local schedule runs"}),e.jsxs(X,{detailExpanded:t,label:`${a.scheduleName} details`,onClose:n,onDetailResizeStart:l,onToggleDetailExpanded:f,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:a.enabled?"Active":"Paused"})]}),e.jsx("p",{children:a.scheduleName})]})}),e.jsxs(E,{title:"Task",children:[e.jsxs("dl",{className:"scheduled-detail-fields",children:[e.jsx(S,{label:"Environment",value:"Local"}),e.jsx(S,{label:"Project",value:a.localProjectName}),e.jsx(S,{label:"Agent",value:a.agentName}),e.jsx(S,{label:"Action",value:a.targetAction})]}),e.jsx("pre",{className:"scheduled-prompt",children:ts(a)})]}),e.jsxs(E,{title:"Schedule",children:[e.jsxs("dl",{className:"scheduled-detail-fields",children:[e.jsx(S,{label:"Cadence",value:fe(a)}),e.jsx(S,{label:"Expression",value:a.scheduleExpression}),e.jsx(S,{label:"Timezone",value:a.timezone??"Local time"}),e.jsx(S,{label:"Next run",value:A(a.nextRunAt,a.timezone)}),e.jsx(S,{label:"Last run",value:A(a.lastRunAt,a.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:h,onClick:()=>{c()},type:"button",children:[e.jsx(q,{size:15}),e.jsx("span",{children:"Run now"})]}),e.jsxs("button",{disabled:h,onClick:()=>{u()},type:"button",children:[a.enabled?e.jsx(B,{size:15}):e.jsx(G,{size:15}),e.jsx("span",{children:a.enabled?"Pause":"Resume"})]})]}),e.jsx(E,{title:"Runs",children:r.loading&&r.runs.length===0?e.jsx(he,{label:"Loading runs"}):r.runs.length===0?e.jsx("p",{className:"scheduled-no-runs",children:"No runs yet."}):e.jsx("div",{className:"scheduled-run-list",children:r.runs.map(j=>e.jsx(Ie,{run:j},j.id))})})]})}function qe({detailExpanded:s,onClose:t,onDelete:n,onDetailResizeStart:l,onRun:c,onSave:f,onToggleDetailExpanded:u,onToggle:h,pending:a,row:r,runs:j,webBaseUrl:N}){const w=ss(r.schedule),[m,y]=d.useState(r.definition.name),[b,R]=d.useState(r.definition.prompt),[g,W]=d.useState(w.kind),[D,M]=d.useState(w.timeZone),[i,p]=d.useState(w.startDate),[x,$]=d.useState(w.localTime),[k,H]=d.useState(w.weekdays?.[0]??"monday"),[T,I]=d.useState(w.dayOfMonth??1),z=j[0]?.conversationId??null,P=N?le(N,z):null,o=m!==r.definition.name||b!==r.definition.prompt||g!==w.kind||D!==w.timeZone||i!==w.startDate||x!==w.localTime||k!==(w.weekdays?.[0]??"monday")||T!==(w.dayOfMonth??1);async function me(v){v.preventDefault(),await f({name:m,prompt:b,recurrence:{version:1,kind:g,timeZone:D,startDate:i,localTime:x,end:{kind:"never"},...g==="weekly"?{weekdays:[k]}:{},...g==="monthly"?{dayOfMonth:T}:{}}})}return e.jsx(X,{detailExpanded:s,label:`${r.definition.name} details`,onClose:t,onDetailResizeStart:l,onToggleDetailExpanded:u,children:e.jsxs("form",{onSubmit:me,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:r.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:a,onClick:()=>{n()},title:"Delete schedule",type:"button",children:e.jsx(ie,{size:16})})})]}),e.jsxs(E,{title:"Task",children:[e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{maxLength:180,onChange:v=>y(v.target.value),required:!0,value:m})]}),e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Prompt"}),e.jsx("textarea",{onChange:v=>R(v.target.value),required:!0,value:b})]})]}),e.jsxs(E,{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=>W(v.target.value),value:g,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"})]})]}),g==="weekly"?e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Day"}),e.jsx("select",{onChange:v=>H(v.target.value),value:k,children:Ve.map(v=>e.jsx("option",{value:v,children:O(v)},v))})]}):g==="monthly"?e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Day of month"}),e.jsx("input",{max:31,min:1,onChange:v=>I(Number(v.target.value)),type:"number",value:T})]}):null,e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Start date"}),e.jsx("input",{onChange:v=>p(v.target.value),required:!0,type:"date",value:i})]}),e.jsxs("label",{className:"scheduled-field",children:[e.jsx("span",{children:"Time"}),e.jsx("input",{onChange:v=>$(v.target.value),required:!0,type:"time",value:x})]}),e.jsxs("label",{className:"scheduled-field scheduled-field-wide",children:[e.jsx("span",{children:"Timezone"}),e.jsx("input",{onChange:v=>M(v.target.value),required:!0,value:D})]})]}),e.jsxs("p",{className:"scheduled-next-run",children:["Next run: ",A(r.schedule.nextRunAt,w.timeZone)]})]}),e.jsxs("div",{className:"scheduled-detail-actions",children:[o?e.jsxs("button",{disabled:a,type:"submit",children:[e.jsx(Ce,{size:15}),e.jsx("span",{children:"Save"})]}):null,e.jsxs("button",{disabled:a,onClick:()=>{c()},type:"button",children:[e.jsx(q,{size:15}),e.jsx("span",{children:"Run now"})]}),e.jsxs("button",{disabled:a,onClick:()=>{h()},type:"button",children:[r.schedule.enabled?e.jsx(B,{size:15}):e.jsx(G,{size:15}),e.jsx("span",{children:r.schedule.enabled?"Pause":"Resume"})]})]}),e.jsxs("button",{className:"scheduled-open-chat",disabled:a||!P,onClick:()=>{P&&ae(P,z)},type:"button",children:[e.jsx("span",{children:"Open hosted chat"}),e.jsx(re,{size:14})]}),e.jsx(E,{title:"Runs",children:j.length===0?e.jsx("p",{className:"scheduled-no-runs",children:"No runs yet."}):e.jsx("div",{className:"scheduled-run-list",children:j.map(v=>e.jsx(We,{onOpen:()=>{N&&ae(le(N,v.conversationId),v.conversationId)},run:v},v.id))})})]})})}function Be(s){return s.flatMap(t=>t.schedules.map(n=>({definition:t,schedule:n})))}function Ge(s,t){return s.filter(n=>t==="active"?n.schedule.enabled:t==="paused"?!n.schedule.enabled:!0).sort((n,l)=>L(n.schedule.nextRunAt)-L(l.schedule.nextRunAt)||n.definition.name.localeCompare(l.definition.name))}function Xe(s,t){return s.filter(n=>t==="active"?n.enabled:t==="paused"?!n.enabled:!0).sort((n,l)=>L(n.nextRunAt)-L(l.nextRunAt)||n.scheduleName.localeCompare(l.scheduleName))}function Je(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,c)=>{const f=L(te(l)),u=L(te(c));if(f!==u)return f-u;const h=ne(l),a=ne(c);return h.localeCompare(a)})}function Qe(s){return s.kind==="chat"?{enabled:s.workflow.enabled,key:Z(s.workflow.id),nextRunAt:s.workflow.nextRunAt,title:s.workflow.name}:s.kind==="local"?{enabled:s.schedule.enabled,key:F(s.schedule.id),nextRunAt:s.schedule.nextRunAt,title:s.schedule.scheduleName}:{enabled:s.row.schedule.enabled,key:_(s.row.schedule.id),nextRunAt:s.row.schedule.nextRunAt,title:s.row.definition.name}}function es(s){const t=s.recurrence;return t?J(t):s.expression??"Manual"}function te(s){return s.kind==="chat"?s.workflow.nextRunAt:s.kind==="local"?s.schedule.nextRunAt:s.row.schedule.nextRunAt}function ne(s){return s.kind==="chat"?s.workflow.name:s.kind==="local"?s.schedule.scheduleName:s.row.definition.name}function fe(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=ue(`${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 ss(s){return s.recurrence??{version:1,kind:"daily",timeZone:s.timeZone||as(),startDate:ls(),localTime:"08:00",end:{kind:"never"}}}function ts(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 ns(s,t){const[n,l]=d.useState([]),[c,f]=d.useState(!1),[u,h]=d.useState(null);return d.useEffect(()=>{if(!s){l([]),f(!1),h(null);return}let a=!1;return f(!0),C.localAgentScheduleRuns(s,t,{limit:20}).then(r=>{a||(l(r.runs),h(null))}).catch(r=>{a||h(rs(r))}).finally(()=>{a||f(!1)}),()=>{a=!0}},[s,t]),{error:u,loading:c,runs:n}}function F(s){return`local:${s}`}function Z(s){return`chat:${s}`}function _(s){return`hosted:${s}`}function le(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 ae(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 L(s){if(!s)return Number.MAX_SAFE_INTEGER;const t=new Date(s).getTime();return Number.isFinite(t)?t:Number.MAX_SAFE_INTEGER}function ls(){return new Date().toISOString().slice(0,10)}function as(){return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}function rs(s){return s instanceof Error?s.message:String(s)}export{ms as ScheduledWorkPage,Je as combineScheduleRows,Xe as filterAndSortLocalSchedules,Ge as filterAndSortSchedules,A as formatScheduledRunAt,le as hostedConversationUrl,fe as localScheduleCadence,es as scheduleCadence,Be as scheduledRows};