openpond 0.2.53 → 0.2.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-server.d.ts +1514 -100
- package/dist/app-server.js +1 -1
- package/dist/chunks/actions-command-WTFZA7LF.js +2 -0
- package/dist/chunks/{app-layer-I7MZYVLL.js → app-layer-Y2UERCPY.js} +1 -1
- package/dist/chunks/app-server-runtime-2RM3N4I6.js +2 -0
- package/dist/chunks/apps-KDNWYO3G.js +2 -0
- package/dist/chunks/chunk-2DFR7PJ4.js +2460 -0
- package/dist/chunks/chunk-4CRM2ADK.js +2 -0
- package/dist/chunks/{chunk-7ZG3IT7C.js → chunk-4WEUCGJ3.js} +6 -6
- package/dist/chunks/chunk-55G6B54U.js +6 -0
- package/dist/chunks/chunk-73G5UYBB.js +12 -0
- package/dist/chunks/{chunk-DALJMSJG.js → chunk-ARQEJOEK.js} +24 -24
- package/dist/chunks/chunk-B7QDZPNX.js +2 -0
- package/dist/chunks/chunk-BFKYRQMA.js +2 -0
- package/dist/chunks/{chunk-AH22RHPS.js → chunk-BQAF5P7K.js} +2 -2
- package/dist/chunks/{chunk-YJ4PNAST.js → chunk-BTI4N7YO.js} +1 -1
- package/dist/chunks/chunk-C6D4WAYN.js +6 -0
- package/dist/chunks/chunk-CGBI2VYJ.js +2 -0
- package/dist/chunks/chunk-DLVPSCTB.js +2 -0
- package/dist/chunks/{chunk-UJ5EFSEC.js → chunk-G6JMQGX7.js} +1 -1
- package/dist/chunks/chunk-GGIG3XU7.js +3 -0
- package/dist/chunks/chunk-IODUCRBA.js +58 -0
- package/dist/chunks/chunk-JIMU3KDA.js +24 -0
- package/dist/chunks/chunk-JUJSA7KI.js +22 -0
- package/dist/chunks/chunk-K5SBVO3B.js +195 -0
- package/dist/chunks/chunk-KD3QVRIJ.js +21 -0
- package/dist/chunks/chunk-KGNCKIFP.js +3 -0
- package/dist/chunks/chunk-L4235TRQ.js +140 -0
- package/dist/chunks/{chunk-N5QNXMIS.js → chunk-MH3LHSGX.js} +1 -1
- package/dist/chunks/chunk-MVF3F5QS.js +2 -0
- package/dist/chunks/{chunk-N3DEA6PG.js → chunk-NNIRIUSY.js} +1 -1
- package/dist/chunks/{chunk-WITSXYEW.js → chunk-NOTXPD2T.js} +1 -1
- package/dist/chunks/{chunk-T5LE6R5S.js → chunk-OSIO7PLX.js} +1 -1
- package/dist/chunks/chunk-OULAKUIN.js +2 -0
- package/dist/chunks/chunk-OWNLDB2O.js +2 -0
- package/dist/chunks/{chunk-NAZ26IZL.js → chunk-Q7AXHFZV.js} +1 -1
- package/dist/chunks/chunk-QDHMP5FS.js +2 -0
- package/dist/chunks/chunk-QKD5OMDI.js +2 -0
- package/dist/chunks/{chunk-YD55Z5H3.js → chunk-QRAKXZOC.js} +10 -10
- package/dist/chunks/{chunk-JDLAHVAJ.js → chunk-R27YGT77.js} +1 -1
- package/dist/chunks/chunk-R2BSIRYL.js +3 -0
- package/dist/chunks/chunk-SHQOIROR.js +42 -0
- package/dist/chunks/chunk-STDMBJOQ.js +9 -0
- package/dist/chunks/chunk-T4QGDQHP.js +4 -0
- package/dist/chunks/{chunk-R3XFY7VL.js → chunk-TERVLCRG.js} +1 -1
- package/dist/chunks/{chunk-PA7XP42P.js → chunk-U2YMBCX7.js} +1 -1
- package/dist/chunks/{chunk-GXSTZBM6.js → chunk-UA5DA5I2.js} +1 -1
- package/dist/chunks/chunk-VJEZPDBS.js +5 -0
- package/dist/chunks/chunk-WDFLCNRC.js +8 -0
- package/dist/chunks/chunk-WZYRAR7X.js +16 -0
- package/dist/chunks/chunk-YDT7L3VZ.js +24 -0
- package/dist/chunks/chunk-YR5ID2SS.js +2 -0
- package/dist/chunks/chunk-YUPBAWBJ.js +554 -0
- package/dist/chunks/cli-465VC2WP.js +2 -0
- package/dist/chunks/{configuration-command-MATM4XR5.js → configuration-command-LAAP2EXT.js} +1 -1
- package/dist/chunks/connected-evidence-XM626247.js +2 -0
- package/dist/chunks/{continual-PKK2BOTB.js → continual-TTGJ6YTR.js} +1 -1
- package/dist/chunks/core-commands-W7EK552V.js +2 -0
- package/dist/chunks/datasets-QJWYTTQL.js +2 -0
- package/dist/chunks/desktop-test-3B2D34NF.js +3 -0
- package/dist/chunks/dist-FAJX2UBW.js +2 -0
- package/dist/chunks/{dist-4HV2W6V4.js → dist-HUAE2KFZ.js} +1 -1
- package/dist/chunks/{chunk-6VF3Q6QJ.js → dist-SKYG5LZO.js} +2 -4
- package/dist/chunks/evaluation-coordination-2MONR4AX.js +2 -0
- package/dist/chunks/experiment-improvements-WVQ5FK46.js +2 -0
- package/dist/chunks/experiments-S5UQ32QB.js +2 -0
- package/dist/chunks/extension-DWMY6D2R.js +4 -0
- package/dist/chunks/{help-WLKSACLZ.js → help-A72QDRNG.js} +1 -1
- package/dist/chunks/hosted-experiment-improvement-2OWOQLHC.js +3 -0
- package/dist/chunks/hosted-harness-runtime-TGFMAV7W.js +2 -0
- package/dist/chunks/hosted-profile-candidate-WQSI6HZO.js +3 -0
- package/dist/chunks/hosted-profile-compiler-Z2A4TEA6.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-control-FKGARUEE.js +2 -0
- package/dist/chunks/hosted-profile-evaluation-inspection-QOY2JKV4.js +3 -0
- package/dist/chunks/hosted-profile-evaluation-preparation-WVP6CALP.js +3 -0
- package/dist/chunks/human-review-TGHQKXFZ.js +2 -0
- package/dist/chunks/{import-V3HUGRHR.js → import-4UE5XNSG.js} +1 -1
- package/dist/chunks/javascript-isolate-process-source-ZPQKKLR4.js +2 -0
- package/dist/chunks/javascript-verifier-worker-source-F3LSGPOY.js +2 -0
- package/dist/chunks/learning-R2XBMMEM.js +2 -0
- package/dist/chunks/opchat-WULL6CUP.js +3 -0
- package/dist/chunks/organizations-I37HISVX.js +2 -0
- package/dist/chunks/profile-NOZ6TVXL.js +3 -0
- package/dist/chunks/project-agent-T6XKC54C.js +2 -0
- package/dist/chunks/sandbox-command-STB47FRY.js +2 -0
- package/dist/chunks/{sandbox-template-BBGGPJMI.js → sandbox-template-LKGBDVJ4.js} +1 -1
- package/dist/chunks/sql-execution-process-source-B4HQM6ZV.js +2 -0
- package/dist/chunks/src-T3KWWCAH.js +322 -0
- package/dist/chunks/{src-CR6UZYTX.js → src-ZWJ5IO7A.js} +1 -1
- package/dist/chunks/{taskset-LUG3ZU6J.js → taskset-RNYDR4GS.js} +1 -1
- package/dist/chunks/{teams-bot-7I4BAUVO.js → teams-bot-H7XT23XB.js} +1 -1
- package/dist/chunks/{training-XHE6FVII.js → training-M6FAPRSJ.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/web/assets/App-CLFfy_Av.js +154 -0
- package/dist/web/assets/App-CTlAPuCY.css +1 -0
- package/dist/web/assets/{AppDialog-BdusXgU0.js → AppDialog-CPHTPqrx.js} +1 -1
- package/dist/web/assets/{AppTerminalPanel-C4uRpnBz.js → AppTerminalPanel-BVj5Tj93.js} +2 -2
- package/dist/web/assets/AppsView-O69zEBY3.js +1 -0
- package/dist/web/assets/{BrowserSidebar-Bl7V6YO2.js → BrowserSidebar-Pr_Kpe8p.js} +1 -1
- package/dist/web/assets/{CartesianChart-BstFbsdn.js → CartesianChart-JPqo6YOf.js} +1 -1
- package/dist/web/assets/{CollaborationTabs-B8YAf0c1.js → CollaborationTabs-CAJcQFn2.js} +1 -1
- package/dist/web/assets/{CommandMenu-DZct7zUJ.js → CommandMenu-B-w53n9A.js} +1 -1
- package/dist/web/assets/{CommunityView-CR0-W-uG.js → CommunityView-DbZKK8_P.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-DR-Qo7b4.js → ComposerCreateImproveStrip-3_083PF4.js} +1 -1
- package/dist/web/assets/{GetStartedView-xqQoMMei.js → GetStartedView-D7JGm_6c.js} +1 -1
- package/dist/web/assets/HostedModelLearningReview-DwgMfZ7_.js +1 -0
- package/dist/web/assets/{HostedModelLearningSettings-De3i9wF4.js → HostedModelLearningSettings-JRfQadRl.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-DAY1MmqP.js → LabModelVersionDetailPage-BUYflJY_.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-DLnIgnry.js → LabSkillSidebar-BBiqk7Rf.js} +1 -1
- package/dist/web/assets/LabsRoute-Ci6vUnSd.js +99 -0
- package/dist/web/assets/MainChatThread-BQK3oI2N.js +2 -0
- package/dist/web/assets/MainPane-D3ojiN-p.js +18 -0
- package/dist/web/assets/{MarkdownText-gJMuefaJ.js → MarkdownText-DOdOVFXL.js} +25 -25
- package/dist/web/assets/{NativeSkillSidebar-Dlxb8iOC.js → NativeSkillSidebar-CRI_ri8z.js} +1 -1
- package/dist/web/assets/{NewExperienceSwitcher-DM-cqJ-K.js → NewExperienceSwitcher-DhYtfE68.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-Cu1q75gq.js → NewProjectDialog-D8sy1gOz.js} +1 -1
- package/dist/web/assets/{OutputsPage-DiXMkasl.js → OutputsPage-CbWgrhXA.js} +1 -1
- package/dist/web/assets/{ProjectsPage-DqiBHiCB.js → ProjectsPage-DLB67lyA.js} +1 -1
- package/dist/web/assets/RightChatPanelStack-ozSKnDyX.js +1 -0
- package/dist/web/assets/{RightSidebarHomePanel-CeSFJM5s.js → RightSidebarHomePanel-CKs3OwhD.js} +1 -1
- package/dist/web/assets/ScheduledWorkPage-Cafv_QnR.js +1 -0
- package/dist/web/assets/SettingsView-T1vYDPjh.js +5 -0
- package/dist/web/assets/{TeamChatView-DM0adMtj.js → TeamChatView-vIrmXOY_.js} +2 -2
- package/dist/web/assets/{TerminalOverlay-CFlH51DD.js → TerminalOverlay-CAmF__Dq.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-CgIBVGha.js → TrainingCreationPanel-D75K0yk5.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-Bbo3RRie.js → TrainingDraftPanel-D7XZePAk.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-CSRjJUSa.js → UsageSettingsSection-CYTmp7PG.js} +1 -1
- package/dist/web/assets/WorkSidebarPanel-CODMjVHY.js +1 -0
- package/dist/web/assets/WorkspaceDiffPanel-DQGoIjH9.js +14 -0
- package/dist/web/assets/WorkspaceEnvironmentMenu-c1pHDskn.js +63 -0
- package/dist/web/assets/{WorkspaceGitDialogs-Dgmg-6XG.js → WorkspaceGitDialogs-DrVtapQQ.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-BR4qxMgU.js → WorkspaceMonacoEditor-BCKzvSj2.js} +3 -3
- package/dist/web/assets/arrow-up-right-CP4hZdrJ.js +1 -0
- package/dist/web/assets/chunk-NOJECMB7-Bhcms-w5.js +1 -0
- package/dist/web/assets/{clipboard-BZzZ82Bk.js → clipboard-BgrXorn-.js} +1 -1
- package/dist/web/assets/{cloud-upload-CJPYPVl8.js → cloud-upload-B_zYztb6.js} +1 -1
- package/dist/web/assets/{cssMode-WC4Rg1l-.js → cssMode-DanjGgA8.js} +1 -1
- package/dist/web/assets/{folder-open-sLZJxLQy.js → folder-open-CdVKbtGq.js} +1 -1
- package/dist/web/assets/folder-plus-Cc5KElB6.js +1 -0
- package/dist/web/assets/{git-commit-horizontal-Cotm7KEC.js → git-commit-horizontal-CjGIIgRi.js} +1 -1
- package/dist/web/assets/{htmlMode-C6oZGeaB.js → htmlMode-DRGDF_UL.js} +1 -1
- package/dist/web/assets/index-B5re-RJy.css +1 -0
- package/dist/web/assets/{index-BxWTVKtn.js → index-BE-wXZ5R.js} +2 -2
- package/dist/web/assets/info-BLj0RvhA.js +1 -0
- package/dist/web/assets/{jsonMode-BET4LQIn.js → jsonMode-CCu0j2GD.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-BPxA_-Kg.js → lspLanguageFeatures-s_Lhm7P6.js} +1 -1
- package/dist/web/assets/minimize-2-Cyg_zD9z.js +1 -0
- package/dist/web/assets/{monaco.contribution-DXzyQfVi.js → monaco.contribution-CAzXvYkn.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DFzEyaHi.js → monaco.contribution-CY7mRgOB.js} +2 -2
- package/dist/web/assets/{monaco.contribution-7AUuf2NS.js → monaco.contribution-aUeLcBEg.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BH6kkO4b.js → monaco.contribution-mUPNK9ra.js} +2 -2
- package/dist/web/assets/monitor-DZvOs_wC.js +1 -0
- package/dist/web/assets/play-BJPzemuY.js +1 -0
- package/dist/web/assets/{python-PzBkTjWx.js → python-B_qnnVaG.js} +1 -1
- package/dist/web/assets/{save-DpezrtH2.js → save-BDy9tA3E.js} +1 -1
- package/dist/web/assets/square-Cb2c5td4.js +1 -0
- package/dist/web/assets/{toggleHighContrast-Cto-fOXm.js → toggleHighContrast-MhO1JLyR.js} +1 -1
- package/dist/web/assets/{tsMode-BYA4LNc6.js → tsMode-DfBXJb9V.js} +1 -1
- package/dist/web/assets/{upload-C5YFNgtS.js → upload-D56kThRh.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-CnyTsqlf.js → useLocalAgentSchedules-DMnGfswi.js} +1 -1
- package/dist/web/assets/useProviderSettings-Bv5B9eNk.js +5 -0
- package/dist/web/assets/{useSessionTurnCache-DICuJSJW.js → useSessionTurnCache-ClAY8gze.js} +1 -1
- package/dist/web/assets/{wifi-off-nzHj7JXp.js → wifi-off-C9lWJmVm.js} +1 -1
- package/dist/web/assets/{workers-Dboaw6f_.js → workers-BYzrH8by.js} +1 -1
- package/dist/web/assets/{yaml-uuY5JmO8.js → yaml-D3T8UkT3.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +3 -3
- package/dist/chunks/actions-command-DSO6YOEE.js +0 -2
- package/dist/chunks/app-server-runtime-KZP2LB5X.js +0 -2
- package/dist/chunks/apps-TM74FFQB.js +0 -2
- package/dist/chunks/chunk-2JO2KWT3.js +0 -5
- package/dist/chunks/chunk-2SPZYBDN.js +0 -16
- package/dist/chunks/chunk-3LX6RU3C.js +0 -3
- package/dist/chunks/chunk-4SHKI3BH.js +0 -2
- package/dist/chunks/chunk-4TZHH5FC.js +0 -2409
- package/dist/chunks/chunk-5TNDPNS3.js +0 -2
- package/dist/chunks/chunk-6JAN4RMN.js +0 -42
- package/dist/chunks/chunk-7QEE4PBI.js +0 -8
- package/dist/chunks/chunk-AFUDIT36.js +0 -2
- package/dist/chunks/chunk-BX4J2VDU.js +0 -2
- package/dist/chunks/chunk-EMKZVP7Z.js +0 -2
- package/dist/chunks/chunk-FPUUZQUP.js +0 -6
- package/dist/chunks/chunk-GCOUYYHG.js +0 -5
- package/dist/chunks/chunk-GS2NKNKG.js +0 -4
- package/dist/chunks/chunk-H2VT22JK.js +0 -2
- package/dist/chunks/chunk-HA7EFTPF.js +0 -23
- package/dist/chunks/chunk-IKWDL3RB.js +0 -17
- package/dist/chunks/chunk-L3KS6MOV.js +0 -2
- package/dist/chunks/chunk-NHFGEVVH.js +0 -518
- package/dist/chunks/chunk-NNF6KCHD.js +0 -3
- package/dist/chunks/chunk-PJM2G7SG.js +0 -21
- package/dist/chunks/chunk-PQHTZ5CP.js +0 -2
- package/dist/chunks/chunk-PYABBF53.js +0 -53
- package/dist/chunks/chunk-QRWPEW3Z.js +0 -24
- package/dist/chunks/chunk-QXVIIM4T.js +0 -2
- package/dist/chunks/chunk-SDEDAHV6.js +0 -160
- package/dist/chunks/chunk-TGIB24K4.js +0 -22
- package/dist/chunks/chunk-USKE34VR.js +0 -9
- package/dist/chunks/chunk-WV2APYWG.js +0 -2
- package/dist/chunks/chunk-XGE2XI6M.js +0 -191
- package/dist/chunks/chunk-XM26DGML.js +0 -3
- package/dist/chunks/chunk-YIB3J4RC.js +0 -2
- package/dist/chunks/chunk-YL6VFJ4P.js +0 -2
- package/dist/chunks/chunk-Z3D4C7BG.js +0 -12
- package/dist/chunks/cli-JVB345H2.js +0 -2
- package/dist/chunks/connected-evidence-YDPGNHLP.js +0 -2
- package/dist/chunks/core-commands-MTV4EKXY.js +0 -2
- package/dist/chunks/datasets-CP3IT47T.js +0 -2
- package/dist/chunks/desktop-test-IAZC5MAH.js +0 -3
- package/dist/chunks/dist-SAABJU5F.js +0 -2
- package/dist/chunks/evaluation-coordination-EPHLZXYM.js +0 -2
- package/dist/chunks/experiment-improvements-6JTOPA74.js +0 -2
- package/dist/chunks/experiments-XHPFGECH.js +0 -2
- package/dist/chunks/extension-GX7DLW2X.js +0 -4
- package/dist/chunks/hosted-experiment-improvement-HAB3UE6A.js +0 -3
- package/dist/chunks/hosted-harness-runtime-YM23QNDK.js +0 -2
- package/dist/chunks/hosted-profile-candidate-EOBGKQAS.js +0 -3
- package/dist/chunks/hosted-profile-compiler-OZAOZ2ES.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-control-RJ6XJZCS.js +0 -2
- package/dist/chunks/hosted-profile-evaluation-inspection-SJIDXPHI.js +0 -3
- package/dist/chunks/hosted-profile-evaluation-preparation-26EI5LJR.js +0 -3
- package/dist/chunks/human-review-AAVMISBF.js +0 -2
- package/dist/chunks/learning-FNBEIAY6.js +0 -2
- package/dist/chunks/opchat-QK43DXTY.js +0 -3
- package/dist/chunks/organizations-SRPAWKC7.js +0 -2
- package/dist/chunks/profile-C6CQNVYE.js +0 -3
- package/dist/chunks/project-agent-GZV5HNYI.js +0 -2
- package/dist/chunks/sandbox-command-4TJXQTKT.js +0 -2
- package/dist/chunks/src-P3VYLFLI.js +0 -329
- package/dist/web/assets/App-CO2F717V.css +0 -1
- package/dist/web/assets/App-CuhaCsfb.js +0 -235
- package/dist/web/assets/AppsView-BS1czXUP.js +0 -1
- package/dist/web/assets/HostedModelLearningReview-CHxxf_Lu.js +0 -1
- package/dist/web/assets/LabsRoute-CXJRJMhr.js +0 -99
- package/dist/web/assets/MainChatThread-BwAla81W.js +0 -2
- package/dist/web/assets/MainPane-CakOBCHw.js +0 -19
- package/dist/web/assets/RightChatPanelStack-VaOOmxwd.js +0 -1
- package/dist/web/assets/ScheduledWorkPage-D1jRQxFs.js +0 -1
- package/dist/web/assets/SettingsView-RA9OXgcu.js +0 -5
- package/dist/web/assets/WorkSidebarPanel-DwlEMEoG.js +0 -1
- package/dist/web/assets/WorkspaceDiffPanel-pGVezNMw.js +0 -14
- package/dist/web/assets/WorkspaceEnvironmentMenu-Byjngd9V.js +0 -32
- package/dist/web/assets/arrow-up-right-H0pvnH2s.js +0 -1
- package/dist/web/assets/chunk-UHVJOMWN-BqXRe639.js +0 -1
- package/dist/web/assets/folder-plus-C84wrpt_.js +0 -1
- package/dist/web/assets/index-dSmk3FLJ.css +0 -1
- package/dist/web/assets/info-Dc81lEfw.js +0 -1
- package/dist/web/assets/minimize-2-Bs7MVN3C.js +0 -1
- package/dist/web/assets/monitor-DXL019Wf.js +0 -1
- package/dist/web/assets/play-CXkxUZeU.js +0 -1
- package/dist/web/assets/square-oy7f5Ce6.js +0 -1
- package/dist/web/assets/useProviderSettings-B_KeQjE5.js +0 -5
- /package/dist/chunks/{chunk-OGPHXXCD.js → chunk-BT5YNE5U.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as f,j as e}from"./index-BxWTVKtn.js";import{bK as X,q as y,al as Y,bB as B,G as w,c8 as Z}from"./App-CuhaCsfb.js";import{M as ee,r as _,s as te,T as ie}from"./MarkdownText-gJMuefaJ.js";import{F as W}from"./folder-open-sLZJxLQy.js";import{M as ne}from"./minimize-2-Bs7MVN3C.js";import{P as E}from"./MainPane-CakOBCHw.js";import"./cloud-upload-CJPYPVl8.js";import"./arrow-up-right-H0pvnH2s.js";import"./square-oy7f5Ce6.js";import"./play-CXkxUZeU.js";function Ce({chatMessages:i,connection:r,contextWindowStatus:l,expanded:s,runtimeEvents:c,sessionId:d,showToast:u,onResizeStart:S,onToggleExpanded:L,onUseOutput:P,onHandoffOutput:T,onReviseOutput:D,onAgentPackageInstalled:I}){const[k,K]=f.useState("outputs"),[j,x]=f.useState(null),[o,m]=f.useState(null),[v,N]=f.useState(""),[V,q]=f.useState({}),A=f.useMemo(()=>oe(c),[c]),U=f.useMemo(()=>ae(A),[A]),R=f.useMemo(()=>se(i),[i]),$=f.useMemo(()=>re(i),[i]),O=f.useMemo(()=>le(i),[i]);f.useEffect(()=>()=>{o?.objectUrl&&URL.revokeObjectURL(o.objectUrl)},[o?.objectUrl]);async function b(t){if(!r||!d||t.kind!=="file")return null;x(p(t));try{const n=await w.workspaceTool(r,d,{action:"work_output_read",source:"ui_button",args:{outputId:t.id,revision:t.revision}});if(!n.ok)throw new Error(n.output);const a=pe(n.data),h=typeof a.contentsBase64=="string"?a.contentsBase64:"";if(!h)throw new Error("The output did not include file data.");return new File([de(h)],t.title,{type:t.contentType})}catch(n){return u(n instanceof Error?n.message:"Could not load the output.","error"),null}finally{x(null)}}async function G(t){const n=await b(t);if(!n)return;o?.objectUrl&&URL.revokeObjectURL(o.objectUrl);const a=t.kind==="file"&&(t.contentType.startsWith("text/")||t.contentType==="application/json");N(""),m({output:t,file:n,text:a?await n.text():null,objectUrl:a?null:URL.createObjectURL(n)})}async function H(t){const n=await b(t);n&&(P(n),u("Added the output to the task as input.","success"))}async function z(t,n){const a=n.kind==="file"?await b(n):null;n.kind==="file"&&!a||await T(t,n,a)}async function J(t){if(!(!r||!d)&&window.confirm(`Delete ${t.title} revision ${t.revision} from this device?`)){x(p(t));try{const n=await w.workspaceTool(r,d,{action:"work_output_delete",source:"ui_button",args:{outputId:t.id,revision:t.revision}});if(!n.ok)throw new Error(n.output);o?.output.id===t.id&&m(null),u("Work output deleted.","success")}catch(n){u(n instanceof Error?n.message:"Could not delete the output.","error")}finally{x(null)}}}async function Q(t){if(!r||!d||!window.confirm(`Add ${t.title} version ${t.versionId} to your active Agents profile?`))return;const n=async a=>w.workspaceTool(r,d,{action:"work_agent_package_install",source:"ui_button",args:{outputId:t.id,revision:t.revision,overwrite:a}});x(p(t));try{let a;try{a=await n(!1)}catch(h){if(!(h instanceof Error?h.message:"Agent installation failed.").includes("already exists")||!window.confirm(`${t.agentId} already exists. Replace its active checkout with this immutable version?`))throw h;a=await n(!0)}if(!a.ok)throw new Error(a.output);await I?.(),u(`${t.title} was added to Agents. Its package remains available in this Work task.`,"success")}catch(a){u(a instanceof Error?a.message:"Could not add the Agent package.","error")}finally{x(null)}}return e.jsxs("aside",{className:`workspace-diff-panel work-sidebar-panel ${s?"expanded":""}`,"aria-label":"Work details",children:[s?null:e.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize Work details",onPointerDown:S}),e.jsxs("div",{className:"workspace-diff-topbar",children:[e.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Work details",children:[["outputs","Outputs"],["activity","Activity"],["context","Context"]].map(([t,n])=>e.jsx("button",{type:"button",className:`workspace-diff-tab ${k===t?"active":""}`,role:"tab","aria-selected":k===t,onClick:()=>K(t),children:n},t))}),e.jsx("div",{className:"workspace-diff-toolbar-actions",children:e.jsx("button",{type:"button",className:"diff-icon-button",title:s?"Dock sidebar":"Expand sidebar","aria-label":s?"Dock sidebar":"Expand sidebar",onClick:L,children:s?e.jsx(ne,{size:14}):e.jsx(X,{size:14})})})]}),e.jsxs("div",{className:"work-sidebar-body",children:[k==="outputs"?o?e.jsxs("div",{className:"work-output-preview",children:[e.jsxs("header",{children:[e.jsx("button",{type:"button",onClick:()=>{o.objectUrl&&URL.revokeObjectURL(o.objectUrl),m(null)},children:"Outputs"}),e.jsxs("strong",{children:[o.output.title," · revision ",o.output.revision]})]}),o.text!==null?e.jsx(ee,{content:o.text}):o.output.kind==="file"&&o.output.contentType.startsWith("image/")&&o.objectUrl?e.jsx("img",{src:o.objectUrl,alt:o.output.title}):o.output.kind==="file"&&o.output.contentType==="application/pdf"&&o.objectUrl?e.jsx("iframe",{src:o.objectUrl,title:o.output.title}):o.output.kind==="file"&&o.output.contentType.startsWith("audio/")&&o.objectUrl?e.jsx("audio",{controls:!0,src:o.objectUrl}):o.output.kind==="file"&&o.output.contentType.startsWith("video/")&&o.objectUrl?e.jsx("video",{controls:!0,src:o.objectUrl}):e.jsx("p",{children:"This file type uses its native application for detailed review."}),e.jsxs("section",{className:"work-output-annotation",children:[e.jsx("label",{htmlFor:"work-output-revision-note",children:"Revision note"}),e.jsx("textarea",{id:"work-output-revision-note",value:v,onChange:t=>N(t.target.value),placeholder:"Describe the exact change to make in the next revision."}),e.jsx("button",{type:"button",disabled:!v.trim(),onClick:()=>{D(o.output,o.file,v.trim()),u(`Prepared revision ${o.output.revision+1}.`,"success")},children:"Revise this version"})]})]}):U.length>0?e.jsx("div",{className:"work-output-list",children:U.map(t=>{const n=t.revisions.find(a=>a.revision===V[t.id])??t.revisions[0];return e.jsxs("article",{className:"work-output-card",children:[e.jsxs("header",{children:[e.jsx(y,{size:16}),e.jsxs("span",{children:[e.jsx("strong",{children:n.title}),t.revisions.length>1?e.jsxs("label",{className:"work-output-version",children:[e.jsx("span",{children:"Version"}),e.jsx("select",{value:n.revision,onChange:a=>q(h=>({...h,[t.id]:Number(a.target.value)})),children:t.revisions.map(a=>e.jsxs("option",{value:a.revision,children:["Revision ",a.revision]},p(a)))})]}):e.jsxs("small",{children:["Revision ",n.revision]}),e.jsx("small",{children:ce(n)})]})]}),n.validation.length>0?e.jsxs("div",{className:"work-output-validation",children:[e.jsx(Y,{size:13}),e.jsxs("span",{children:[n.validation.filter(a=>a.status==="passed").length," ","checks passed"]})]}):null,e.jsxs("div",{className:"work-output-actions",children:[n.kind==="file"&&n.location.kind==="local"?e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",onClick:()=>{_(M(n))},children:[e.jsx(W,{size:13}),"Reveal"]}),e.jsx("button",{type:"button",onClick:async()=>{const a=await te(M(n),n.title);a.ok?u("Saved a copy of the Work output.","success"):a.canceled||u("Could not save a copy of the Work output.","error")},children:"Save as"})]}):null,n.kind==="file"?e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",disabled:j===p(n),onClick:()=>{G(n)},children:"Preview"}),e.jsxs("button",{type:"button",disabled:j===p(n),onClick:()=>{H(n)},children:[e.jsx(E,{size:13}),"Use as input"]})]}):n.kind==="agent_package"?e.jsx("button",{type:"button",disabled:j===p(n),onClick:()=>{Q(n)},children:"Add to Agents"}):"url"in n&&n.url?e.jsx("button",{type:"button",onClick:()=>window.open(n.url,"_blank","noopener,noreferrer"),children:"Open"}):null,n.kind==="file"&&n.location.kind==="local"?e.jsxs("button",{type:"button",className:"danger",disabled:j===p(n),onClick:()=>{J(n)},children:[e.jsx(ie,{size:13}),"Delete"]}):null,e.jsx("button",{type:"button",disabled:j===p(n),onClick:()=>{z("chat",n)},children:"Continue in Chat"}),e.jsx("button",{type:"button",disabled:j===p(n),onClick:()=>{z("work",n)},children:"Continue in repository Work"})]})]},t.id)})}):$.length>0?e.jsx("div",{className:"work-output-list",children:$.map(t=>e.jsxs("article",{className:"work-output-card",children:[e.jsxs("header",{children:[e.jsx(y,{size:16}),e.jsxs("span",{children:[e.jsx("strong",{children:t.title}),e.jsx("small",{children:C(t.sizeBytes)})]})]}),e.jsx("div",{className:"work-output-actions",children:e.jsxs("button",{type:"button",onClick:()=>{_(t.path)},children:[e.jsx(W,{size:13}),"Reveal"]})})]},t.path))}):e.jsx(F,{icon:y,title:"No saved outputs yet",detail:"Finished files and connected results will appear here."}):null,k==="activity"?R.length>0?e.jsx("div",{className:"work-activity-list",children:R.map(t=>e.jsxs("details",{className:`work-activity-row ${t.state??""}`,children:[e.jsxs("summary",{children:[e.jsx(B,{size:14}),e.jsx("span",{children:t.label}),e.jsx("small",{children:t.state??"completed"})]}),e.jsx("p",{children:t.content}),t.detail?e.jsx("pre",{children:t.detail}):null]},t.id))}):e.jsx(F,{icon:B,title:"No activity yet",detail:"Commands, tool receipts, and checks appear while Work runs."}):null,k==="context"?e.jsxs("div",{className:"work-context",children:[e.jsxs("section",{children:[e.jsx("h3",{children:"Model context"}),e.jsx("p",{children:l.summary}),e.jsx("small",{children:l.tokensLabel})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Task inputs and sources"}),O.length>0?e.jsx("ul",{children:O.map(t=>e.jsxs("li",{children:[e.jsx(E,{size:13}),e.jsxs("span",{children:[e.jsx("strong",{children:t.title}),e.jsx("small",{children:t.detail})]})]},t.key))}):e.jsx("p",{children:"No attached files or cited sources yet."})]})]}):null]})]})}function se(i){return i.flatMap(r=>r.activities??[]).filter(r=>r.kind!=="reasoning").reverse()}function re(i){const r=new Map;for(const l of i)for(const s of l.activities??[])for(const c of s.artifacts??[])!c.path||c.sizeBytes===null||r.set(c.path,{path:c.path,title:c.title,sizeBytes:c.sizeBytes});return[...r.values()].sort((l,s)=>s.path.localeCompare(l.path))}function oe(i){const r=new Map,l=new Set;for(const s of i){const c=g(s.data);if(s.action==="work_output_delete"&&s.status==="completed"){for(const d of c){const u=p(d);l.add(u),r.delete(u)}continue}if(s.action!=="work_output_read")for(const d of c){const u=p(d);l.has(u)||r.set(u,d)}}return[...r.values()].sort((s,c)=>c.createdAt.localeCompare(s.createdAt)||c.revision-s.revision)}function p(i){return`${i.id}:${i.revision}`}function ae(i){const r=new Map;for(const l of i){const s=r.get(l.id)??[];s.push(l),r.set(l.id,s)}return[...r.entries()].map(([l,s])=>({id:l,revisions:s.sort((c,d)=>d.revision-c.revision||d.createdAt.localeCompare(c.createdAt))})).sort((l,s)=>s.revisions[0].createdAt.localeCompare(l.revisions[0].createdAt))}function g(i,r=[],l=new Set,s=0){if(s>8||i==null)return r;const c=Z.safeParse(i);if(c.success){const d=`${c.data.id}:${c.data.revision}`;return l.has(d)||(l.add(d),r.push(c.data)),r}if(Array.isArray(i)){for(const d of i)g(d,r,l,s+1);return r}if(typeof i=="object")for(const d of Object.values(i))g(d,r,l,s+1);return r}function le(i){const r=new Map;for(const l of i){for(const s of l.attachments??[])r.set(`attachment:${s.id}`,{key:`attachment:${s.id}`,title:s.name,detail:`${s.mediaType} · ${C(s.sizeBytes)}`});for(const s of l.sources??[])r.set(`source:${s.id}`,{key:`source:${s.id}`,title:s.title,detail:s.sourceName??ue(s.url)})}return[...r.values()]}function F({icon:i,title:r,detail:l}){return e.jsxs("div",{className:"work-sidebar-empty",children:[e.jsx(i,{size:22}),e.jsx("strong",{children:r}),e.jsx("p",{children:l})]})}function ce(i){return i.kind==="deployment"?"Deployment":i.kind==="source_change"?"Source change":i.kind==="external_resource"?i.provider:i.kind==="agent_package"?`${i.actions.length} action${i.actions.length===1?"":"s"}`:i.location.kind==="local"?C(i.sizeBytes):i.location.kind==="managed"?"Managed file":i.location.provider}function C(i){return i<1024?`${i} B`:i<1024*1024?`${Math.round(i/1024)} KB`:`${(i/(1024*1024)).toFixed(1)} MB`}function de(i){const r=window.atob(i),l=new ArrayBuffer(r.length),s=new Uint8Array(l);for(let c=0;c<r.length;c+=1)s[c]=r.charCodeAt(c);return l}function M(i){return i.kind==="file"&&i.location.kind==="local"?i.location.path:""}function ue(i){try{return new URL(i).hostname||i}catch{return i}}function pe(i){return i&&typeof i=="object"&&!Array.isArray(i)?i:{}}export{Ce as WorkSidebarPanel,re as visibleChatFileArtifacts,se as visibleWorkActivities,oe as workOutputsFromEvents};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/WorkspaceMonacoEditor-BR4qxMgU.js","assets/index-BxWTVKtn.js","assets/index-dSmk3FLJ.css","assets/WorkspaceMonacoEditor-BwKcXIZw.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{j as e,r,_ as xa}from"./index-BxWTVKtn.js";import{T as ba,F as ga,a as ja,M as va,f as ka,i as Os,h as wa,j as ya,e as Us,I as Sa}from"./MarkdownText-gJMuefaJ.js";import{c as be,q as rt,ax as Hs,as as on,a$ as Ee,G as z,bR as Ft,bn as Et,bl as Oe,an as ns,bS as Na,aU as Ca,bT as $a,aV as Ra,F as Fa,p as cn,i as Ea,X as Vs,P as Pa,aW as Aa,av as La,aw as Da,bK as Ta,bU as _a,al as Gs,bV as Ma,bb as za,bW as as,bX as Wa,bY as is,bZ as Ia,g as Ba,H as dn,E as Oa,b_ as Jt,b$ as Ua,c0 as ls,bu as Ce,c1 as Ha,c2 as Ks,c3 as Va,c4 as Ga,c5 as qs,c6 as Ka,c7 as qa}from"./App-CuhaCsfb.js";import{t as Xa,a as Za,b as Qa,m as Ya,s as Ja,d as ei,f as ti,c as si}from"./training-model-data-CKOkpBBL.js";import{F as St}from"./folder-open-sLZJxLQy.js";import{I as Xs}from"./info-Dc81lEfw.js";import{M as ni}from"./minimize-2-Bs7MVN3C.js";import{S as ai}from"./save-DpezrtH2.js";import{C as ii}from"./clipboard-BZzZ82Bk.js";const li=[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 19H3",key:"z6ezky"}]],ri=be("text-align-start",li);const oi=[["path",{d:"m17 11-5-5-5 5",key:"e8nh98"}],["path",{d:"m17 18-5-5-5 5",key:"2avn1x"}]],ci=be("chevrons-up",oi);const di=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]],ui=be("columns-2",di);const fi=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],pi=be("eye-off",fi);const hi=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}]],mi=be("panel-top",hi);const xi=[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]],bi=be("plug",xi);const gi=[["path",{d:"m15 14 5-5-5-5",key:"12vg1m"}],["path",{d:"M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",key:"6uklza"}]],ji=be("redo-2",gi);const vi=[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]],ki=be("undo-2",vi);function wi({createRuntime:t,goalRuntime:s,subagentRuntime:n=null,onRunSubagentLifecycleAction:a}){const i=t?"Create/Improve Details":"Goal Details",u=t?Z(t.run.state):n?.activeCount?n.label:s?.actionLabel??"No active goal";return e.jsxs("div",{className:"goal-details-view","aria-label":i,children:[e.jsxs("div",{className:"goal-details-header",children:[e.jsxs("div",{className:"goal-details-title",children:[e.jsx(rt,{size:15,"aria-hidden":"true"}),e.jsx("span",{children:i})]}),e.jsx("span",{className:`goal-details-state ${Bi(t?.run.state??null)}`,children:u})]}),e.jsx("div",{className:"goal-details-body",children:t?e.jsx(yi,{runtime:t}):s||n?e.jsx(Ni,{goalRuntime:s,subagentRuntime:n,onRunSubagentLifecycleAction:a}):e.jsx(Ii,{})})]})}function yi({runtime:t}){const s=t.run,n=s.plan,a=Hs(n?.metadata)??Hs(s.metadata),i=s.questions,u=i.filter(o=>o.status==="pending"),c=s.sourceRefs,d=s.checkRefs,p=s.state,x=s.target.kind==="agent"?s.target.defaultActionKey:null;return e.jsxs(e.Fragment,{children:[e.jsx(V,{title:"Current Work",children:e.jsx(it,{rows:[["State",Z(p)],["Operation",s.operation],["Target",Z(s.target.kind)],["Name",s.target.displayName??s.target.id??"Pending"],["Target ID",s.target.id??"Pending"],["Default action",x??n?.defaultChatAction.key??"Pending"],["Adapter",Z(s.adapter.kind)],["Run",s.id],["Revision",String(s.revision)]]})}),e.jsx(V,{title:"Plan",children:n?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"goal-details-summary",children:n.summary}),e.jsx(it,{rows:[["Objective",n.objective],["Context",n.capturedContextSummary],["Status",Z(n.status)],["Plan ID",n.id],["Run ID",n.runId],["Approval",n.approvalId??"Pending"],["Approved",n.approvedAt??"Not approved"]]})]}):u.length?e.jsx("p",{className:"goal-details-summary",children:"Waiting for answers before the model finalizes the Create plan."}):e.jsx("p",{className:"goal-details-summary",children:"The model is preparing the Create plan."})}),a?e.jsxs(V,{title:"Action Shape",children:[e.jsx(it,{rows:[["Mode",a.label],["Default action",a.defaultActionKey??"None"],["Direct action",a.directActionHint??"None planned"],["Artifacts",a.artifactPolicy]]}),e.jsx("p",{className:"goal-details-note",children:a.detail})]}):null,i.length?e.jsx(V,{title:"Questions",children:e.jsx("div",{className:"goal-details-list",children:i.map(o=>e.jsxs("article",{className:"goal-details-list-item",children:[e.jsxs("div",{children:[e.jsx("strong",{children:o.title}),e.jsx("span",{className:`goal-details-inline-state ${o.status}`,children:Z(o.status)})]}),e.jsx("p",{children:o.prompt}),o.answer?e.jsxs("small",{children:["Answer: ",o.answer.label??o.answer.value]}):o.options.length?e.jsxs("small",{children:["Options: ",o.options.map(b=>b.label).join(", ")]}):null]},o.id))})}):null,n?.requirements.length?e.jsx(V,{title:"Setup Requirements",children:e.jsx("div",{className:"goal-details-list",children:n.requirements.map(o=>e.jsxs("article",{className:"goal-details-list-item",children:[e.jsxs("div",{children:[e.jsx("strong",{children:o.name}),e.jsx("span",{className:`goal-details-inline-state ${o.status}`,children:Z(o.status)})]}),e.jsxs("small",{children:[Z(o.kind),o.detail?`: ${o.detail}`:""]})]},`${o.kind}:${o.name}`))})}):null,n?.sourcePlan.length?e.jsx(V,{title:"Source Plan",children:e.jsx(yt,{refs:n.sourcePlan.map(o=>({id:`${o.operation}:${o.path}`,primary:o.path,secondary:`${Z(o.operation)}: ${o.reason}`}))})}):null,n?.checks.length?e.jsx(V,{title:"Checks",children:e.jsx(yt,{refs:n.checks.map(o=>({id:o.name,primary:o.name,secondary:`${o.required?"Required":"Optional"}: ${o.command}`}))})}):null,c.length||d.length?e.jsx(V,{title:"Run Refs",children:e.jsx(yt,{refs:[...c.map(o=>({id:`source:${o}`,primary:o,secondary:"Source ref"})),...d.map(o=>({id:`check:${o}`,primary:o,secondary:"Check ref"}))]})}):null,e.jsx(Si,{run:s}),s.blockedReason?e.jsx(V,{title:"Blocked",children:e.jsxs("div",{className:"goal-details-alert",children:[e.jsx(on,{size:15}),e.jsx("span",{children:s.blockedReason})]})}):null,e.jsx(V,{title:"Raw State",children:e.jsxs("details",{className:"goal-details-raw",children:[e.jsx("summary",{children:"Show structured payload"}),e.jsx("pre",{children:JSON.stringify(s,null,2)})]})})]})}function Si({run:t}){const s=[...t.context.attachments.map(i=>({id:`attachment:${i.id??i.name}`,primary:i.name,secondary:i.ref??i.mediaType??"Attachment"})),...t.context.apps.map(i=>({id:`app:${i.id}`,primary:i.name,secondary:i.required?"Required app context":"Optional app context"})),...t.context.tools.map(i=>({id:`tool:${i.name}`,primary:i.name,secondary:i.outputSummary??i.inputSummary??"Tool context"})),...t.context.targetRepoAssumptions.map(i=>({id:`target:${i}`,primary:i,secondary:"Target assumption"}))],n=t.workflowCapture,a=n?[...n.files.map(i=>({id:`workflow-file:${i}`,primary:i,secondary:"Captured file"})),...n.outputArtifacts.map(i=>({id:`workflow-artifact:${i}`,primary:i,secondary:"Output artifact"})),...n.traceRefs.map(i=>({id:`workflow-trace:${i}`,primary:i,secondary:"Trace"}))]:[];return!s.length&&!a.length?null:e.jsx(V,{title:"Context",children:e.jsx(yt,{refs:[...s,...a]})})}function Ni({goalRuntime:t,subagentRuntime:s,onRunSubagentLifecycleAction:n}){return e.jsxs(e.Fragment,{children:[t?e.jsxs(V,{title:"Goal",children:[e.jsx("p",{className:"goal-details-summary",children:t.objective}),e.jsx(it,{rows:[["Status",t.actionLabel],["Runtime",t.timeLabel],["Detail",t.detail]]})]}):null,s?e.jsx(Ci,{runtime:s,onRunSubagentLifecycleAction:n}):null,e.jsx(V,{title:"Raw State",children:e.jsxs("details",{className:"goal-details-raw",children:[e.jsx("summary",{children:"Show structured payload"}),e.jsx("pre",{children:JSON.stringify({goalRuntime:t,subagentRuntime:s},null,2)})]})})]})}function Ci({runtime:t,onRunSubagentLifecycleAction:s}){const[n,a]=r.useState(null),[i,u]=r.useState(null);Ee(i);const c=async(d,p)=>{if(!s)return;const x=`${d}:${p}`;a(x),u(null);try{await s({runId:d,action:p})}catch(o){u(o instanceof Error?o.message:String(o))}finally{a(o=>o===x?null:o)}};return e.jsxs(e.Fragment,{children:[e.jsxs(V,{title:"Subagents",children:[e.jsx(it,{rows:[["Latest update",Li(t)],["Active",String(t.activeCount)],["Completed",String(t.completedCount)],["Failed",String(t.failedCount)],["Cancelled",String(t.cancelledCount)],["Paused",String(t.needsResumeCount)],["Terminal",String(t.terminalCount)],["Usage",Di(t.usage.totalTokens,t.usage.requestCount)],["Evidence",String(t.evidenceRefs.length)],["Checks",String(t.testsRunCount)]]}),t.blockers.length>0?e.jsx("ul",{className:"goal-details-list compact",children:t.blockers.slice(0,4).map(d=>e.jsxs("li",{className:"goal-details-list-item",children:[e.jsx("span",{className:`goal-details-inline-state ${d.status}`,children:d.status}),e.jsxs("div",{children:[e.jsx("strong",{children:Nt(d.roleId)}),e.jsx("p",{children:d.message})]})]},`${d.runId}:${d.message}`))}):null,e.jsx("ul",{className:"goal-details-list",children:t.runs.slice(0,8).map(d=>e.jsxs("li",{className:"goal-details-list-item",children:[e.jsx("span",{className:`goal-details-inline-state ${d.status}`,children:d.status}),e.jsxs("div",{children:[e.jsx("strong",{children:Nt(d.roleId)}),e.jsx("p",{children:d.objective}),d.report?.summary?e.jsx("small",{children:d.report.summary}):null,s?e.jsx(Ri,{pendingAction:n,run:d,onRun:c}):null]})]},d.id))})]}),t.finalResults.length>0?e.jsx($i,{results:t.finalResults}):null]})}function $i({results:t}){return e.jsx(V,{title:"Child Results",children:e.jsx("ol",{className:"goal-details-task-graph",children:t.slice(0,6).map(s=>e.jsxs("li",{className:"goal-details-task-node",children:[e.jsxs("div",{className:"goal-details-task-node-header",children:[e.jsx("span",{className:`goal-details-inline-state ${s.status}`,children:s.status}),e.jsxs("div",{children:[e.jsx("strong",{children:Nt(s.roleId)}),e.jsx("small",{children:s.objective})]})]}),e.jsx("p",{children:s.summary}),e.jsxs("div",{className:"goal-details-task-node-meta",children:[e.jsxs("span",{children:[s.refs.length," refs"]}),e.jsxs("span",{children:[s.testsRun.length+s.validationAttempts.length," checks"]}),e.jsxs("span",{children:[s.blockers.length," blockers"]}),e.jsx("span",{children:s.confidence?`${Z(s.confidence)} confidence`:"Confidence unknown"})]}),s.findings.length>0?e.jsxs("small",{children:["Findings: ",$e(s.findings,3)]}):null,s.changedFiles.length>0?e.jsxs("small",{children:["Files: ",$e(s.changedFiles,4)]}):null,s.testsRun.length>0?e.jsxs("small",{children:["Tests: ",$e(s.testsRun,3)]}):null,s.validationAttempts.length>0?e.jsxs("small",{children:["Validation: ",$e(s.validationAttempts,2)]}):null,s.refs.length>0?e.jsxs("small",{children:["Refs: ",$e(s.refs.map(Ti),4)]}):null,s.blockers.length>0?e.jsxs("small",{children:["Blockers: ",$e(s.blockers,3)]}):null,s.workspaceRetention?e.jsxs("small",{children:["Workspace: ",Mi(s.workspaceRetention)]}):null,s.importantMessages.length>0?e.jsxs("small",{children:["Messages: ",$e(s.importantMessages.map(_i),2)]}):null]},s.runId))})})}function Ri({pendingAction:t,run:s,onRun:n}){const a=Fi(s);return a.length===0?null:e.jsx("div",{className:"goal-details-actions",children:a.map(i=>{const u=`${s.id}:${i}`,c=t===u;return e.jsx("button",{type:"button",disabled:!!t,onClick:()=>{n(s.id,i)},children:c?"Working...":Ei(i)},i)})})}function Fi(t){const s=[],n=Pi(t),a=Ai(t);return n&&s.push("cleanup"),a&&s.push("archive"),s}function Ei(t){return t==="cleanup"?"Clean":t==="archive"?"Archive":"Clean + archive"}function Pi(t){if(!un(t))return!1;const s=lt(t.metadata);if(!s?.subagentWorkspace&&!s?.workspaceHandoff)return!1;const n=lt(s.lifecycleCleanup),a=lt(n?.workspaceCleanup),i=fn(a?.status);return i!=="removed"&&i!=="deleted"&&i!=="retained"&&i!=="skipped"}function Ai(t){if(!t.childSessionId||!un(t))return!1;const s=lt(lt(t.metadata)?.childSessionArchive),n=fn(s?.status);return n!=="archived"&&n!=="already_archived"}function un(t){return t.status==="completed"||t.status==="failed"||t.status==="cancelled"}function Li(t){const s=t.latestMeaningfulUpdate;return s?`${Nt(s.roleId)} ${s.status}: ${s.message}`:"No structured update"}function Di(t,s){if(t<=0&&s<=0)return"0 tokens";const n=`${s} ${s===1?"request":"requests"}`;return`${zi(t)} tokens · ${n}`}function Nt(t){return t.slice(0,1).toUpperCase()+t.slice(1).replace(/[-_]+/g," ")}function Ti(t){return`${t.kind}: ${t.label}`}function _i(t){return`${Z(t.kind)}: ${t.body}`}function Mi(t){const s=t.expiresAt?`until ${Wi(t.expiresAt)}`:"for inspection",n=t.trigger?` · ${Z(t.trigger)}`:"";return`retained ${s}${n}`}function $e(t,s){const n=t.slice(0,s),a=t.length-n.length;return a>0?`${n.join(", ")} +${a}`:n.join(", ")}function zi(t){if(t<1e3)return String(t);if(t>=1e6){const n=t/1e6;return`${Zs(n,n<10?2:1)}M`}const s=t/1e3;return`${Zs(s,s<10?1:0)}k`}function Wi(t){const s=new Date(t);return Number.isNaN(s.getTime())?t:s.toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function Zs(t,s){return t.toFixed(s).replace(/\.0+$/,"").replace(/(\.\d*?)0+$/,"$1")}function Ii(){return e.jsxs("div",{className:"goal-details-empty",children:[e.jsx(rt,{size:18}),e.jsx("span",{children:"No active Goal or Create workflow."})]})}function V({children:t,title:s}){return e.jsxs("section",{className:"goal-details-section",children:[e.jsx("h2",{children:s}),t]})}function it({rows:t}){return e.jsx("dl",{className:"goal-details-grid",children:t.map(([s,n])=>e.jsxs("div",{children:[e.jsx("dt",{children:s}),e.jsx("dd",{children:n})]},s))})}function yt({refs:t}){return e.jsx("ul",{className:"goal-details-ref-list",children:t.map(s=>e.jsxs("li",{children:[e.jsx("code",{title:s.primary,children:s.primary}),e.jsx("span",{children:s.secondary})]},s.id))})}function lt(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:null}function fn(t){return typeof t=="string"&&t.trim()?t.trim():null}function Z(t){return t.split(/[_-]/g).filter(Boolean).map(s=>s.charAt(0).toUpperCase()+s.slice(1)).join(" ")}function Bi(t){return t==="ready_local"||t==="published_hosted"?"success":t==="blocked"||t==="failed"||t==="cancelled"?"danger":t==="awaiting_questions"||t==="awaiting_plan_approval"?"warning":"active"}function Oi({sandboxId:t,connection:s}){const[n,a]=r.useState(null),[i,u]=r.useState([]),[c,d]=r.useState(null),[p,x]=r.useState(null),[o,b]=r.useState(null),[S,k]=r.useState(null);Ee(o,{prefix:"Sandbox"}),Ee(S,{prefix:"Sandbox integrations"});const N=n?.integrationLeases??[],F=r.useMemo(()=>i.filter(v=>v.status==="active"),[i]),_=r.useMemo(()=>Hi(n),[n]),W=r.useCallback(async()=>{if(!s){b("OpenPond App server is not connected.");return}if(!t){a(null),u([]),b(null);return}d("summary"),b(null);try{const v=await z.sandbox(s,t),R=await z.integrationConnections(s,Qs(v.sandbox));a(v.sandbox),u(R.connections),k(null)}catch(v){b(v instanceof Error?v.message:String(v))}finally{d(null)}},[s,t]),G=r.useCallback(async()=>{if(!(!s||!n)){x("load"),k(null);try{const[v,R]=await Promise.all([z.integrationConnections(s,Qs(n)),z.sandboxIntegrationLeases(s,n.id)]);u(v.connections),a(R.sandbox)}catch(v){k(v instanceof Error?v.message:String(v))}finally{x(null)}}},[s,n]),H=r.useCallback(async v=>{if(!s||!n)return;const R=Ft(v.provider),D=R?Et(R):null,M=D?.leasePolicy.allowedCapabilityIds??[];if(!R||!D?.leasePolicy.leaseable||M.length===0){k(`${ie(v.provider)} cannot be attached to this sandbox.`);return}x(`attach:${v.id}`),k(null);try{const E=await z.attachSandboxIntegrationConnection(s,n.id,{connectionId:v.id,provider:v.provider,capabilities:M,...v.scopes.length>0?{scopes:v.scopes}:{},...D.leasePolicy.defaultTtlSeconds?{ttlSeconds:D.leasePolicy.defaultTtlSeconds}:{},required:!1});a(E.sandbox)}catch(E){k(E instanceof Error?E.message:String(E))}finally{x(null)}},[s,n]),I=r.useCallback(async v=>{if(!(!s||!n)){x(`remove:${v}`),k(null);try{const R=await z.removeSandboxIntegrationLease(s,n.id,v);a(R.sandbox)}catch(R){k(R instanceof Error?R.message:String(R))}finally{x(null)}}},[s,n]);return r.useEffect(()=>{W()},[W]),t?e.jsxs("div",{className:"sandbox-summary-tab",children:[e.jsxs("section",{className:"sandbox-workspace-section",children:[e.jsxs("div",{className:"sandbox-workspace-heading",children:[e.jsx("h3",{children:"Sandbox"}),e.jsxs("div",{className:"sandbox-workspace-heading-actions",children:[n?e.jsx("span",{children:n.state}):null,e.jsx("button",{type:"button",className:"diff-icon-button",title:"Refresh summary","aria-label":"Refresh summary",disabled:c!==null,onClick:()=>{W()},children:c==="summary"?e.jsx(Oe,{className:"spinning",size:14}):e.jsx(ns,{size:14})})]})]}),n?e.jsxs("dl",{className:"sandbox-workspace-kv",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Sandbox"}),e.jsx("dd",{children:Ys(n.id)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Spend"}),e.jsxs("dd",{children:[es(n.reservation.capturedUsd)," / ",es(n.budget.maxUsd)]})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Reservation"}),e.jsx("dd",{children:n.reservation.status})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Idle cleanup"}),e.jsx("dd",{children:n.quotas?.idleTimeoutSeconds?`${Math.round(n.quotas.idleTimeoutSeconds/60)} min`:"-"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Updated"}),e.jsx("dd",{children:pn(n.updatedAt)})]}),_?e.jsxs("div",{children:[e.jsx("dt",{children:"Receipt"}),e.jsxs("dd",{children:[Ys(_.id)," / ",es(_.totalUsd)]})]}):null]}):e.jsxs("div",{className:"sandbox-workspace-loading",children:[c==="summary"?e.jsx(Oe,{className:"spinning",size:16}):null,e.jsx("span",{children:c==="summary"?"Loading sandbox":"Sandbox unavailable"})]})]}),e.jsxs("section",{className:"sandbox-workspace-section",children:[e.jsxs("div",{className:"sandbox-workspace-heading",children:[e.jsx("h3",{children:"Integrations"}),e.jsxs("div",{className:"sandbox-workspace-heading-actions",children:[e.jsx("span",{children:N.length}),e.jsx("button",{type:"button",className:"diff-icon-button",title:"Refresh integrations","aria-label":"Refresh integrations",disabled:p!==null||!n,onClick:()=>{G()},children:p==="load"?e.jsx(Oe,{className:"spinning",size:14}):e.jsx(ns,{size:14})})]})]}),N.length>0?e.jsx("div",{className:"sandbox-workspace-integration-list",children:N.map(v=>e.jsxs("div",{className:"sandbox-workspace-integration-row",children:[e.jsxs("div",{className:"sandbox-workspace-integration-main",children:[e.jsx("span",{children:ie(v.provider)}),e.jsxs("small",{children:[v.required?"required":"optional"," / ",Ki(v)," / ",Ui(v)]})]}),e.jsx("button",{type:"button",className:"diff-icon-button",title:`Revoke ${ie(v.provider)} lease`,"aria-label":`Revoke ${ie(v.provider)} lease`,disabled:p!==null,onClick:()=>{I(v.leaseId)},children:p===`remove:${v.leaseId}`?e.jsx(Oe,{className:"spinning",size:14}):e.jsx(ba,{size:14})}),e.jsxs("div",{className:"sandbox-workspace-chip-row",children:[v.capabilities.slice(0,5).map(R=>e.jsx("span",{children:Gi(v.provider,R)},R)),v.capabilities.length>5?e.jsxs("span",{children:["+",v.capabilities.length-5]}):null]})]},v.leaseId))}):e.jsx("p",{className:"sandbox-workspace-empty",children:"No active integration leases."}),F.length>0?e.jsx("div",{className:"sandbox-workspace-integration-list",children:F.map(v=>{const R=N.some(E=>E.provider===v.provider),M=Vi(v)?.leasePolicy.allowedCapabilityIds.length??0;return e.jsxs("div",{className:"sandbox-workspace-integration-row compact",children:[e.jsxs("div",{className:"sandbox-workspace-integration-main",children:[e.jsx("span",{children:qi(v)}),e.jsx("small",{children:Xi(v,M)})]}),e.jsx("button",{type:"button",className:"diff-icon-button",title:R?`${ie(v.provider)} already attached`:`Attach ${ie(v.provider)}`,"aria-label":R?`${ie(v.provider)} already attached`:`Attach ${ie(v.provider)}`,disabled:R||p!==null||M===0,onClick:()=>{H(v)},children:p===`attach:${v.id}`?e.jsx(Oe,{className:"spinning",size:14}):e.jsx(bi,{size:14})})]},v.id)})}):e.jsx("p",{className:"sandbox-workspace-empty",children:"No connected accounts available."})]})]}):e.jsx("div",{className:"sandbox-summary-tab",children:e.jsx("p",{className:"sandbox-workspace-empty",children:"No sandbox is attached yet."})})}function Qs(t){return{status:"active"}}function Ui(t){return t.proxyUrl?"runtime proxy available":"metadata only, no runtime proxy"}function Hi(t){return t?.receipts?.at(-1)??null}function Vi(t){const s=Ft(t.provider);return s?Et(s):null}function ie(t){const s=Ft(t),n=s?Et(s):null;return n?n.label:t==="microsoft_teams"?"Microsoft Teams":t?t.replace(/_/g," "):"Integration"}function Gi(t,s){const n=Ft(t);return(n?Et(n):null)?.capabilities.find(i=>i.id===s)?.label??s}function Ki(t){return t.expiresAt?`expires ${pn(t.expiresAt)}`:"active"}function qi(t){const s=t.providerAccountName?.trim();return s?`${ie(t.provider)} / ${s}`:ie(t.provider)}function Xi(t,s){const n=[];return t.providerWorkspaceName&&n.push(t.providerWorkspaceName),n.push(`${s} lease ${s===1?"capability":"capabilities"}`),t.scopes.length>0&&n.push(`${t.scopes.length} ${t.scopes.length===1?"scope":"scopes"}`),n.join(" / ")}function Ys(t){return t.length>10?`${t.slice(0,8)}...`:t}function pn(t){if(!t)return"-";const s=new Date(t);return Number.isNaN(s.valueOf())?"-":new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(s)}function es(t){const s=Number(t??0);return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:s>=10?2:4}).format(Number.isFinite(s)?s:0)}function Zi({summary:t}){const s=Xa(t.taskset),n=t.taskset.learningSignals.demonstrations.filter(d=>d.approved).length,a=t.taskset.tasks.filter(d=>d.split==="frozen_eval").length,i=t.plan?.recipe.method==="sft"||t.plan?.recipe.method==="grpo"?t.plan.recipe:null,u=Za(t.taskset,t.plan),c=t.job?Qa(t.job.status,t.job.completedAt,t.job.updatedAt):null;return e.jsxs("div",{className:"training-sidebar-summary",children:[e.jsxs("header",{children:[e.jsx("h2",{children:Ya(t.taskset.name)}),e.jsx("span",{children:t.job?Ja(t.job.status):t.taskset.readiness?.ready?"Ready to train":"Needs review"})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Run"}),e.jsxs("dl",{children:[e.jsx(U,{label:"Primary recommendation",value:s.toUpperCase()}),e.jsx(U,{label:"Training stage",value:u}),e.jsx(U,{label:"Base model",value:i?.baseModel.id??"Not selected"}),e.jsx(U,{label:"Compute",value:t.plan?ei(t.plan.destinationId):"Not selected"}),e.jsx(U,{label:"Started",value:ti(t.job?.startedAt??null)}),e.jsx(U,{label:"Duration",value:si(t.job?.startedAt??null,c)})]})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Data"}),e.jsxs("dl",{children:[e.jsx(U,{label:"Training examples",value:String(n)}),e.jsx(U,{label:"Test examples",value:String(a)}),e.jsx(U,{label:"Dataset sources",value:String(t.taskset.sourceRefs.length)})]})]}),i?e.jsxs("section",{children:[e.jsx("h3",{children:"Recipe"}),e.jsxs("dl",{children:[i.method==="grpo"?e.jsx(U,{label:"RL loss",value:i.loss.method==="gspo-token"?"GSPO-token":i.loss.method.toUpperCase()}):null,e.jsx(U,{label:"LoRA rank",value:String(i.lora.rank)}),e.jsx(U,{label:"Learning rate",value:String(i.optimizer.learningRate)}),e.jsx(U,{label:"Optimizer steps",value:String(i.optimizer.maxSteps)}),e.jsx(U,{label:i.method==="grpo"?"Prompt length":"Sequence length",value:String(i.method==="grpo"?i.dataset.maxPromptTokens:i.dataset.maxSequenceLength)})]})]}):null,e.jsxs("section",{children:[e.jsx("h3",{children:"Result"}),e.jsxs("dl",{children:[e.jsx(U,{label:"Adapter",value:t.lineage?`${u} ready`:"Not created"}),e.jsx(U,{label:"Evaluation",value:t.lineage?.frozenEvaluationArtifactId?"Completed":"Not completed"}),e.jsx(U,{label:"Artifacts",value:String(t.artifacts.length)})]})]})]})}function U({label:t,value:s}){return e.jsxs("div",{children:[e.jsx("dt",{children:t}),e.jsx("dd",{children:s})]})}function Qi(t){const s=Js("","","folder");for(const n of t){const a=n.endsWith("/"),i=n.split("/").filter(Boolean);if(i.length===0)continue;let u=s,c="";for(let d=0;d<i.length;d+=1){const p=i[d];c=c?`${c}/${p}`:p;const x=!a&&d===i.length-1?"file":"folder",o=`${x}:${p}`;let b=u.childMap.get(o);b||(b=Js(p,c,x),u.childMap.set(o,b),u.children.push(b)),u=b}}return hn(s.children)}function Js(t,s,n){return{name:t,path:s,type:n,children:[],childMap:new Map}}function hn(t){return t.sort((s,n)=>s.type!==n.type?s.type==="folder"?-1:1:s.name.localeCompare(n.name)).map(s=>({name:s.name,path:s.path,type:s.type,children:hn(s.children)}))}function rs({className:t,currentStatus:s,onSetStatus:n}){const a=s==="pinned",i=s==="saved_for_later";return e.jsxs("span",{className:`workspace-file-bookmark-actions ${t??"workspace-file-heading-actions"}`,children:[e.jsx("button",{type:"button",className:a?"active":void 0,"data-tooltip":a?"Unpin file":"Pin file","aria-label":a?"Unpin file":"Pin file","aria-pressed":a,onClick:()=>n(a?"none":"pinned"),children:a?e.jsx(Na,{size:14}):e.jsx(Ca,{size:14})}),e.jsx("button",{type:"button",className:i?"active":void 0,"data-tooltip":i?"Remove from Save for later":"Save file for later","aria-label":i?"Remove from Save for later":"Save file for later","aria-pressed":i,onClick:()=>n(i?"none":"saved_for_later"),children:i?e.jsx($a,{size:14}):e.jsx(Ra,{size:14})})]})}function Yi({changedByPath:t,expandedFolderPaths:s,rootPath:n,repoFiles:a,selectedPath:i,getFileBookmarkStatus:u,onOpenFile:c,onSetFileBookmarkStatus:d,onToggleFolder:p}){const x=r.useMemo(()=>Qi(a),[a]);return e.jsxs("div",{className:"workspace-file-tree-view",children:[e.jsxs("div",{className:"workspace-file-tree-header",children:[e.jsx(St,{size:14}),e.jsx("strong",{title:n??void 0,children:n?n.split("/").at(-1):"Files"}),e.jsx("span",{children:a.length})]}),e.jsx("div",{className:"workspace-file-tree",children:x.map(o=>e.jsx(mn,{changedByPath:t,expandedFolderPaths:s,node:o,rootPath:n,selectedPath:i,getFileBookmarkStatus:u,onOpenFile:c,onSetFileBookmarkStatus:d,onToggleFolder:p},`${o.type}:${o.path}`))})]})}function mn({changedByPath:t,depth:s=0,expandedFolderPaths:n,node:a,rootPath:i,selectedPath:u,getFileBookmarkStatus:c,onOpenFile:d,onSetFileBookmarkStatus:p,onToggleFolder:x}){const o=i?`${i}/${a.path}`:a.path,b=a.type==="folder"&&n.has(o),S=t.get(o),k=2+s*11;return a.type==="folder"?e.jsxs("div",{className:"workspace-file-tree-node",children:[e.jsxs("button",{type:"button",className:"workspace-file-tree-row folder","aria-expanded":b,style:{paddingLeft:k},onClick:()=>x(o),children:[b?e.jsx(St,{size:14}):e.jsx(Fa,{size:14}),e.jsx("span",{children:a.name})]}),b&&a.children.map(N=>e.jsx(mn,{changedByPath:t,depth:s+1,expandedFolderPaths:n,node:N,rootPath:i,selectedPath:u,getFileBookmarkStatus:c,onOpenFile:d,onSetFileBookmarkStatus:p,onToggleFolder:x},`${N.type}:${N.path}`))]}):e.jsxs("div",{className:`workspace-file-tree-row file ${S?"changed":""} ${u===o?"selected":""}`,style:{paddingLeft:k},children:[e.jsxs("button",{type:"button",className:"workspace-file-tree-row-main",title:o,onClick:()=>d(o),children:[e.jsx(ga,{size:13}),e.jsx("span",{children:a.name}),S&&e.jsxs("small",{children:[e.jsxs("span",{className:"diff-addition",children:["+",S.additions]}),e.jsxs("span",{className:"diff-deletion",children:["-",S.deletions]})]})]}),/\.html?$/i.test(o)&&e.jsx("button",{type:"button",className:"workspace-file-tree-bookmark-actions",title:"View source","aria-label":`View source for ${a.name}`,onClick:()=>d(o,{source:!0}),children:"</>"}),p?e.jsx(rs,{className:"workspace-file-tree-bookmark-actions",currentStatus:c?.(o)??null,onSetStatus:N=>p(o,N)}):null]})}function en({diff:t,expandedFolderPaths:s,rootPath:n,repoFiles:a,selectedPath:i,getFileBookmarkStatus:u,onOpenFile:c,onSetFileBookmarkStatus:d,onToggleFolder:p}){const x=t?.files??[],o=r.useMemo(()=>new Map(x.map(k=>[k.path,k])),[x]),b=n?.replace(/^\/+|\/+$/g,"")||null,S=r.useMemo(()=>{if(!b)return a;const k=`${b}/`;return a.filter(N=>N.startsWith(k)).map(N=>N.slice(k.length)).filter(Boolean)},[b,a]);return e.jsx("div",{className:"workspace-diff-files-view",children:e.jsx(Yi,{changedByPath:o,expandedFolderPaths:s,rootPath:b,repoFiles:S,selectedPath:i,getFileBookmarkStatus:u,onOpenFile:c,onSetFileBookmarkStatus:d,onToggleFolder:p})})}function Ji({collapsed:t,editorControlsVisible:s,hideWhiteSpace:n,loadFullFiles:a,renderMarkdown:i,wordDiffs:u,wordWrap:c,onClose:d,onCopyGitApply:p,onRefresh:x,onToggleCollapsed:o,onToggleEditorControlsVisible:b,onToggleHideWhiteSpace:S,onToggleLoadFullFiles:k,onToggleRenderMarkdown:N,onToggleWordDiffs:F,onToggleWordWrap:_}){return e.jsxs("div",{className:"workspace-diff-options-menu",role:"menu",children:[e.jsx(de,{icon:e.jsx(ns,{size:14}),label:"Refresh",onClick:x,onClose:d}),e.jsx(de,{checked:c,icon:e.jsx(ja,{size:14}),label:"Enable word wrap",onClick:_,onClose:d}),e.jsx(de,{checked:t,icon:e.jsx(ci,{size:14}),label:"Collapse all diffs",onClick:o,onClose:d}),e.jsx("div",{className:"workspace-diff-menu-divider"}),e.jsx(de,{checked:s,icon:e.jsx(mi,{size:14}),label:"Show editor controls",onClick:b,onClose:d}),e.jsx(de,{checked:i,icon:e.jsx(cn,{size:14}),label:"Render Markdown",onClick:N,onClose:d}),e.jsx(de,{checked:!a,icon:e.jsx(rt,{size:14}),label:"Show diffs first",onClick:k,onClose:d}),e.jsx(de,{checked:u,icon:e.jsx(ri,{size:14}),label:"Enable word diffs",onClick:F,onClose:d}),e.jsx(de,{checked:n,icon:e.jsx(pi,{size:14}),label:"Hide white space",onClick:S,onClose:d}),e.jsx(de,{icon:e.jsx(ii,{size:14}),label:"Copy git apply command",onClick:p,onClose:d})]})}function de({checked:t,icon:s,label:n,onClick:a,onClose:i}){return e.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{a?.(),i()},children:[s,e.jsx("span",{children:n}),t&&e.jsx(Ea,{size:14})]})}function el({addMenuOpen:t,expanded:s,filteredFiles:n,dirtyFilePaths:a,openFiles:i,goalDetailsAvailable:u,searchOpen:c,searchQuery:d,selectedPath:p,sideChatTabs:x=[],summaryAvailable:o,sourceStatus:b,sourceSwitcher:S,visibleTab:k,getFileBookmarkStatus:N,onCloseFileTab:F,onCloseSideChat:_,onCloseSearch:W,onOpenFile:G,onOpenBrowser:H,onOpenSearch:I,onOpenSideChat:v,onSearchQueryChange:R,onSetFileBookmarkStatus:D,onSelectFile:M,onSelectFiles:E,onSelectGoal:te,onSelectSummary:q,onSelectSideChat:X,onToggleAddMenu:B,onToggleExpanded:Q}){const se=r.useRef(null);r.useEffect(()=>{if(!t&&!c)return;function w(){t&&B(),c&&W()}function O(T){se.current?.contains(T.target)||w()}function A(T){T.key==="Escape"&&w()}return document.addEventListener("pointerdown",O),document.addEventListener("keydown",A),()=>{document.removeEventListener("pointerdown",O),document.removeEventListener("keydown",A)}},[t,W,B,c]);function Y(w){if(w.key==="Escape"){W();return}w.key==="Enter"&&n[0]&&G(n[0])}function re(w){if(!["ArrowRight","ArrowLeft","Home","End"].includes(w.key))return;const O=w.target;if(!(O instanceof HTMLButtonElement)||O.getAttribute("role")!=="tab")return;const A=Array.from(w.currentTarget.querySelectorAll('button[role="tab"]')),T=A.indexOf(O);if(T<0||A.length===0)return;w.preventDefault();const Pt=Ma(T,A.length,w.key),Pe=A[Pt];if(!Pe)return;Pe.focus(),Pe.click();const ot=Pe.id;ot&&window.requestAnimationFrame(()=>document.getElementById(ot)?.focus())}return e.jsxs("div",{className:"workspace-diff-topbar",children:[e.jsxs("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",onKeyDown:re,children:[u?e.jsxs("button",{type:"button",className:`workspace-diff-tab ${k==="goal"?"active":""}`,role:"tab","aria-selected":k==="goal",onClick:te,children:[e.jsx(rt,{size:14}),e.jsx("span",{children:"Goal"})]}):null,o&&q?e.jsxs("button",{type:"button",className:`workspace-diff-tab ${k==="summary"?"active":""}`,role:"tab","aria-selected":k==="summary",onClick:q,children:[e.jsx(Xs,{size:14}),e.jsx("span",{children:"Summary"})]}):null,e.jsxs("button",{type:"button",className:`workspace-diff-tab ${k==="files"?"active":""}`,role:"tab",id:"right-sidebar-files-tab","aria-controls":"right-sidebar-files-panel","aria-selected":k==="files",tabIndex:k==="files"?0:-1,onClick:E,children:[e.jsx(St,{size:14}),e.jsx("span",{children:"Files"})]}),i.map(w=>e.jsxs("div",{className:`workspace-diff-tab file ${k==="file"&&p===w.path?"active":""}`,children:[e.jsxs("button",{type:"button",className:"workspace-diff-tab-main",role:"tab","aria-selected":k==="file"&&p===w.path,title:w.path,onClick:()=>M(w.path),children:[e.jsx(rt,{className:"workspace-diff-tab-icon",size:13}),a.has(w.path)&&e.jsx("span",{className:"workspace-diff-tab-dirty","aria-hidden":"true"}),e.jsx("span",{children:w.path.split("/").pop()})]}),D?e.jsx(rs,{className:"workspace-diff-tab-bookmark-actions",currentStatus:N?.(w.path)??null,onSetStatus:O=>D(w.path,O)}):null,e.jsx("button",{type:"button",className:"workspace-diff-tab-close",title:`Close ${w.path}`,onClick:O=>F(w.path,O),children:e.jsx(Vs,{size:12})})]},w.path)),x.map(w=>e.jsxs("div",{className:"workspace-diff-tab right-chat-tab",children:[e.jsxs("button",{type:"button",className:"workspace-diff-tab-main",role:"tab",id:`right-chat-tab-${w.id}`,"aria-controls":`right-chat-panel-${w.id}`,"aria-selected":!1,tabIndex:-1,title:w.title,onClick:()=>X?.(w.id),children:[w.running?e.jsx("span",{className:"right-chat-status-dot","aria-label":"Running"}):null,e.jsx("span",{children:w.title})]}),_?e.jsx("button",{type:"button",className:"workspace-diff-tab-close",title:`Close ${w.title}`,"aria-label":`Close ${w.title}`,onClick:O=>{O.stopPropagation(),_(w.id)},children:e.jsx(Vs,{size:12})}):null]},w.id)),e.jsxs("div",{className:"workspace-diff-add-anchor",ref:se,children:[e.jsx("button",{type:"button",className:`workspace-diff-add-tab ${t||c?"active":""}`,title:"Add","aria-label":"Add to right sidebar",onClick:B,children:e.jsx(Pa,{size:15})}),t&&e.jsxs("div",{className:"workspace-diff-add-menu",role:"menu",children:[v?e.jsxs("button",{type:"button",role:"menuitem",onClick:v,children:[e.jsx(Aa,{size:14}),e.jsx("span",{children:"New task"}),e.jsx("kbd",{})]}):null,e.jsxs("button",{type:"button",role:"menuitem",onClick:E,children:[e.jsx(St,{size:14}),e.jsx("span",{children:"Files"}),e.jsx("kbd",{})]}),o&&q?e.jsxs("button",{type:"button",role:"menuitem",onClick:q,children:[e.jsx(Xs,{size:14}),e.jsx("span",{children:"Summary"}),e.jsx("kbd",{})]}):null,e.jsxs("button",{type:"button",role:"menuitem",onClick:I,children:[e.jsx(La,{size:14}),e.jsx("span",{children:"Open file"}),e.jsx("kbd",{children:"Ctrl+P"})]}),H?e.jsxs("button",{type:"button",role:"menuitem",onClick:H,children:[e.jsx(Da,{size:14}),e.jsx("span",{children:"Browser"}),e.jsx("kbd",{children:"Ctrl+I"})]}):null]}),c&&e.jsxs("div",{className:"workspace-file-search-popover",children:[e.jsx("input",{autoFocus:!0,placeholder:"Search files",value:d,onChange:w=>R(w.target.value),onKeyDown:Y}),e.jsx("span",{children:"Files"}),e.jsx("div",{className:"workspace-file-search-results",children:n.length===0?e.jsx("small",{children:"Type to search for files"}):n.map(w=>e.jsx("button",{type:"button",onClick:()=>G(w),children:w},w))})]})]})]}),S||b?e.jsxs("div",{className:"workspace-diff-source-bar","aria-label":"Workspace source",children:[S?e.jsx("div",{className:"workspace-diff-source-toggle",role:"group","aria-label":"File source",children:S.options.map(w=>e.jsx("button",{type:"button",className:S.value===w.value?"active":"","aria-pressed":S.value===w.value,onClick:()=>S.onChange(w.value),children:w.label},w.value))}):null,b?e.jsx("span",{className:`workspace-diff-source-status ${b.tone}`,children:b.label}):null]}):null,e.jsx("button",{type:"button",className:"diff-icon-button",title:s?"Restore files panel":"Expand files panel","aria-label":s?"Restore files panel":"Expand files panel",onClick:Q,children:s?e.jsx(ni,{size:14}):e.jsx(Ta,{size:14})})]})}function tl({canCheckActiveFile:t,canSaveActiveFile:s,collapsed:n,editorControlsVisible:a,editorDiagnosticStatus:i,editorDiagnosticsChecking:u,hideWhiteSpace:c,loadFullFiles:d,menuOpen:p,renderMarkdown:x,showEditorCommandBar:o,showRenderMarkdownToggle:b,splitView:S,wordDiffs:k,wordWrap:N,onCopyGitApply:F,onEditorCheck:_,onEditorRedo:W,onEditorSave:G,onEditorUndo:H,onRefresh:I,onToggleCollapsed:v,onToggleEditorControlsVisible:R,onToggleHideWhiteSpace:D,onToggleLoadFullFiles:M,onToggleMenu:E,onToggleRenderMarkdown:te,onToggleSplitView:q,onToggleWordDiffs:X,onToggleWordWrap:B}){return e.jsx("div",{className:"workspace-diff-toolbar",children:e.jsxs("div",{className:"workspace-diff-toolbar-actions",children:[e.jsxs("div",{className:"workspace-diff-menu-anchor",children:[e.jsx("button",{type:"button",className:"diff-icon-button",title:"Diff options","aria-haspopup":"menu","aria-expanded":p,onClick:()=>E(),children:e.jsx(_a,{size:15})}),p&&e.jsx(Ji,{collapsed:n,editorControlsVisible:a,hideWhiteSpace:c,loadFullFiles:d,renderMarkdown:x,wordDiffs:k,wordWrap:N,onClose:()=>E(!1),onCopyGitApply:F,onRefresh:I,onToggleCollapsed:v,onToggleEditorControlsVisible:R,onToggleHideWhiteSpace:D,onToggleLoadFullFiles:M,onToggleRenderMarkdown:te,onToggleWordDiffs:X,onToggleWordWrap:B})]}),o&&e.jsxs("div",{className:"workspace-editor-command-bar","aria-label":"Editor controls",children:[e.jsx("button",{type:"button",className:"diff-icon-button",title:"Save file","aria-label":"Save file",disabled:!s,onClick:G,children:e.jsx(ai,{size:14})}),e.jsx("button",{type:"button",className:"diff-icon-button",title:"Undo","aria-label":"Undo",onClick:H,children:e.jsx(ki,{size:14})}),e.jsx("button",{type:"button",className:"diff-icon-button",title:"Redo","aria-label":"Redo",onClick:W,children:e.jsx(ji,{size:14})}),e.jsx("button",{type:"button",className:"diff-icon-button",title:"Check file","aria-label":"Check file",disabled:!t,onClick:_,children:u?e.jsx(Oe,{className:"spinning",size:14}):e.jsx(Gs,{size:14})}),i&&e.jsxs("span",{className:`workspace-editor-diagnostic-chip ${i.severity}`,children:[i.severity==="error"||i.severity==="warning"||i.severity==="unavailable"?e.jsx(on,{size:13}):e.jsx(Gs,{size:13}),e.jsx("span",{children:i.label})]})]}),b&&e.jsx("button",{type:"button",className:`diff-icon-button ${x?"active":""}`,title:x?"Show Markdown source":"Render Markdown","aria-label":x?"Show Markdown source":"Render Markdown","aria-pressed":x,onClick:te,children:e.jsx(cn,{size:14})}),e.jsx("button",{type:"button",className:`diff-icon-button ${S?"active":""}`,title:S?"Show unified diff":"Show split diff","aria-label":S?"Show unified diff":"Show split diff","aria-pressed":S,onClick:q,children:e.jsx(ui,{size:14})})]})})}const sl={cjs:"typescript",css:"css",html:"html",js:"typescript",json:"json",jsx:"typescript",md:"markdown",mjs:"typescript",py:"python",sh:"shell",ts:"typescript",tsx:"typescript",yaml:"yaml",yml:"yaml"};function os(t){const s=t.split("/").pop()?.toLowerCase()??"";if(s==="dockerfile")return"shell";if(s==="readme"||s==="readme.md")return"markdown";const n=s.includes(".")?s.split(".").pop()??"":"";return sl[n]??"text"}function nl(t,s){return t?s==="markdown"?al(t):s==="json"?Fe(t,/("(?:\\.|[^"\\])*"(?=\s*:)|"(?:\\.|[^"\\])*"|[-]?\b\d+(?:\.\d+)?\b|\btrue\b|\bfalse\b|\bnull\b|[{}[\]:,])/g):s==="css"?Fe(t,/(\/\*.*?\*\/|#[\da-fA-F]{3,8}\b|--[\w-]+|[.#]?[\w-]+(?=\s*:)|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\b\d+(?:\.\d+)?(?:px|rem|em|%|vh|vw)?\b|[{}():;,])/g):s==="html"?Fe(t,/(<!--.*?-->|<\/?[\w-]+|[\w:-]+(?==)|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[<>/=])/g):s==="shell"?Fe(t,/(#.*$|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\b(?:cd|cp|export|git|npm|pnpm|bun|yarn|rm|mkdir|test|if|then|fi|for|do|done|echo)\b|\$[\w_]+|&&|\|\||[|&;=])/g):s==="python"?Fe(t,/(#.*$|"""[\s\S]*?"""|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\b(?:class|def|return|if|elif|else|for|while|try|except|finally|with|as|import|from|None|True|False|async|await|lambda|yield)\b|\b[A-Z][\w]*\b|\b\d+(?:\.\d+)?\b|[+\-*/%=<>!&|.:,()[\]{}]+)/g):Fe(t,/(\/\/.*$|\/\*.*?\*\/|`(?:\\.|[^`\\])*`|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\b(?:abstract|as|async|await|boolean|break|case|catch|class|const|continue|default|else|enum|export|extends|false|finally|for|from|function|if|import|in|interface|let|new|null|number|of|return|string|switch|throw|true|try|type|undefined|void|while)\b|\b[A-Z][\w]*\b|\b\d+(?:\.\d+)?\b|[+\-*/%=<>!&|?:.,()[\]{}]+)/g):[{text:" ",kind:"plain"}]}function al(t){return/^\s{0,3}#{1,6}\s/.test(t)?[{text:t,kind:"keyword"}]:/^\s*[-*+]\s/.test(t)?[{text:t,kind:"property"}]:Fe(t,/(`[^`]+`|\*\*[^*]+\*\*|\[[^\]]+\]\([^)]+\)|https?:\/\/\S+)/g)}function il(t){return/^(\/\/|#|\/\*|<!--)/.test(t)?"comment":/^["'`]/.test(t)?"string":/^[-]?\d/.test(t)||/^#[\da-fA-F]{3,8}\b/.test(t)?"number":/^\b[A-Z]/.test(t)?"type":/^[.#]?[\w-]+$/.test(t)&&t.includes("-")?"property":/^(?:[{}()[\],.:;<>/=+\-*&|!?%]+)$/.test(t)?"operator":/^(?:--|\$)/.test(t)?"property":"keyword"}function Fe(t,s){const n=[];let a=0;for(const i of t.matchAll(s)){const u=i.index??0;u>a&&n.push({text:t.slice(a,u),kind:"plain"});const c=i[0];if(n.push({text:c,kind:il(c)}),a=u+c.length,/^(\/\/|#|<!--)/.test(c))break}return a<t.length&&n.push({text:t.slice(a),kind:"plain"}),n.length>0?n:[{text:t,kind:"plain"}]}function Ct({language:t,text:s}){return e.jsx(e.Fragment,{children:nl(s,t).map((n,a)=>e.jsx("span",{className:`syntax-token ${n.kind}`,children:n.text},`${a}-${n.text}`))})}function ll({path:t,contentBase64:s}){const n=t.replace(/\\/g,"/").split("/").pop()||"document",a=r.useMemo(()=>{try{const d=atob(s.replace(/\s/g,"")),p=Uint8Array.from(d,x=>x.charCodeAt(0));return new Blob([p],{type:rl(t)})}catch{return null}},[s,t]),[i,u]=r.useState(null);r.useEffect(()=>{if(!a)return;const d=URL.createObjectURL(a);return u({blob:a,url:d}),()=>URL.revokeObjectURL(d)},[a]);const c=i?.blob===a?i.url:null;return a?c?e.jsxs("div",{className:"workspace-document-preview",children:[e.jsxs("div",{className:"workspace-document-preview-card",children:[e.jsx("strong",{children:n}),e.jsx("span",{children:/\.pdf$/i.test(t)?"PDF document":"Word document"}),e.jsx("a",{href:c,download:n,"aria-label":"Download document",title:"Download document",children:e.jsx(za,{size:16,"aria-hidden":"true"})})]}),e.jsx("iframe",{src:c,title:`${t} preview`})]}):e.jsx("div",{className:"workspace-diff-code-empty",role:"status",children:"Loading document…"}):e.jsx("div",{className:"workspace-diff-code-empty",children:"Document preview unavailable."})}function rl(t){return/\.pdf$/i.test(t)?"application/pdf":/\.docx$/i.test(t)?"application/vnd.openxmlformats-officedocument.wordprocessingml.document":"application/msword"}const ol=`
|
|
3
|
-
|
|
4
|
-
[file truncated]`,cl=r.lazy(()=>xa(()=>import("./WorkspaceMonacoEditor-BR4qxMgU.js").then(t=>t.jc),__vite__mapDeps([0,1,2,3]))),ts=6,dl=18,Re=22,tn=44,ul=160,sn=12;function $t({path:t,workspaceName:s,workspaceRootPath:n,onSelectPath:a}){const i=is(t,n),u=Ia(i),c=u?fl(i):s?.trim()||"Workspace",p=(u&&c!=="/"&&i.startsWith(`${c}/`)?i.slice(c.length+1):i).split("/").filter(Boolean),x=!!(a&&!u);return e.jsxs("span",{className:"workspace-file-breadcrumbs",title:u?i:`${c} > ${i}`,children:[a&&!u?e.jsx("button",{type:"button",onClick:()=>a(null),children:c}):e.jsx("span",{children:c}),p.map((o,b)=>{const S=b===p.length-1,k=p.slice(0,b+1).join("/");return e.jsxs("span",{className:"workspace-file-breadcrumb-segment",children:[e.jsx(Ba,{size:13}),a&&x&&!S?e.jsx("button",{type:"button",onClick:()=>a(k),children:o}):e.jsx("span",{children:o})]},`${b}-${o}`)})]})}function fl(t){const s=/^[A-Za-z]:\//.exec(t);return s?s[0].slice(0,-1):"/"}function pl({collapsed:t=!1,diagnostics:s=[],draftContent:n,editable:a=!1,editorRef:i,error:u,file:c,hideWhiteSpace:d=!1,headerActions:p,imageSrc:x,loading:o,loadFullFiles:b,onOpenImage:S,onSelectBreadcrumbPath:k,onDraftContentChange:N,onLspAction:F,onSave:_,renderMarkdown:W,saveError:G,saving:H=!1,splitView:I=!1,wordDiffs:v=!1,wordWrap:R,workspaceName:D,workspaceRootPath:M}){Ee(u,{prefix:"File preview"}),Ee(G,{prefix:"Save failed"});const E=n??c.content??"",te=r.useMemo(()=>E.split(`
|
|
5
|
-
`).slice(0,800),[E]),q=os(c.path),X=n!=null||c.content!=null,B=E.endsWith(ol),Q=W&&X&&as(c.path),se=X&&Wa(c.path)&&xl(E);return x?e.jsxs("div",{className:"workspace-file-preview",children:[e.jsxs("div",{className:"workspace-diff-file-heading",children:[e.jsxs("div",{children:[e.jsx($t,{path:c.path,workspaceName:D,workspaceRootPath:M,onSelectPath:k}),e.jsxs("span",{className:"diff-addition",children:["+",c.additions]}),e.jsxs("span",{className:"diff-deletion",children:["-",c.deletions]})]}),p]}),e.jsx("div",{className:"workspace-file-image-stage",children:e.jsx("button",{type:"button",className:"workspace-file-image-button","aria-label":`Open image preview for ${c.path}`,onClick:S,children:e.jsx("img",{alt:c.path,decoding:"async",src:x})})})]}):!b&&c.patch||!X&&c.patch?I?e.jsx(ml,{collapsed:t,file:c,hideWhiteSpace:d,onSelectBreadcrumbPath:k,wordDiffs:v,wordWrap:R,headerActions:p,workspaceName:D,workspaceRootPath:M}):e.jsx(hl,{collapsed:t,file:c,hideWhiteSpace:d,wordWrap:R,workspaceName:D,workspaceRootPath:M,onSelectBreadcrumbPath:k,headerActions:p}):e.jsxs("div",{className:`workspace-file-preview ${R?"wrap":""}`,children:[e.jsxs("div",{className:"workspace-diff-file-heading",children:[e.jsxs("div",{children:[e.jsx($t,{path:c.path,workspaceName:D,workspaceRootPath:M,onSelectPath:k}),e.jsxs("span",{className:"diff-addition",children:["+",c.additions]}),e.jsxs("span",{className:"diff-deletion",children:["-",c.deletions]})]}),e.jsxs("span",{className:"workspace-file-heading-end",children:[H?e.jsx("span",{className:"workspace-file-save-state",children:"Saving"}):null,p]})]}),X?Q?e.jsx("div",{className:"workspace-markdown-preview",children:e.jsx(va,{content:E})}):se?e.jsx(ll,{path:c.path,contentBase64:E}):a&&!B?e.jsx(r.Suspense,{fallback:e.jsx("div",{className:"workspace-diff-code-empty",children:"Loading editor"}),children:e.jsx(cl,{diagnostics:s,filePath:c.path,onChange:Y=>N?.(Y),onLspAction:F,onSave:()=>_?.(),ref:i,value:E,wordWrap:R})}):e.jsx("div",{className:"workspace-file-code",children:te.map((Y,re)=>e.jsxs("div",{className:"workspace-file-code-row",children:[e.jsx("span",{children:re+1}),e.jsx("code",{children:e.jsx(Ct,{language:q,text:Y||" "})})]},`${re}-${Y}`))}):e.jsx("div",{className:"workspace-diff-code-empty",children:o?"Loading file content":"No file content available."})]})}function hl({collapsed:t=!1,file:s,hideWhiteSpace:n=!1,wordWrap:a,workspaceName:i,workspaceRootPath:u,onSelectBreadcrumbPath:c,headerActions:d}){const p=r.useMemo(()=>bn(s.patch,n),[s.patch,n]),x=os(s.path);return e.jsxs("div",{className:`workspace-diff-preview ${a?"wrap":""}`,children:[e.jsxs("div",{className:"workspace-diff-file-heading",children:[e.jsxs("div",{children:[e.jsx($t,{path:s.path,workspaceName:i??null,workspaceRootPath:u,onSelectPath:c}),e.jsxs("span",{className:"diff-addition",children:["+",s.additions]}),e.jsxs("span",{className:"diff-deletion",children:["-",s.deletions]})]}),d]}),t?e.jsx("div",{className:"workspace-diff-code-empty",children:"Diff collapsed"}):e.jsx(xn,{ariaLabel:`${s.path} diff`,className:"workspace-diff-code",emptyMessage:"No patch available.",rows:p,renderRow:(o,b)=>o.kind==="spacer"?e.jsx("div",{className:"workspace-diff-spacer",role:"row",children:o.label},`${o.label}-${b}`):e.jsxs("div",{className:`workspace-diff-code-row ${o.kind}`,role:"row",children:[e.jsx("span",{className:"workspace-diff-line-number",role:"cell",children:o.newLine||o.oldLine}),e.jsx("code",{role:"cell",children:e.jsx(Ct,{language:x,text:o.newContent||o.oldContent||" "})})]},`${o.oldLine}-${o.newLine}-${b}`),wordWrap:a})]})}function ml({collapsed:t,file:s,hideWhiteSpace:n,wordDiffs:a,wordWrap:i,workspaceName:u,workspaceRootPath:c,onSelectBreadcrumbPath:d,headerActions:p}){const x=r.useMemo(()=>bn(s.patch,n),[s.patch,n]),o=os(s.path);return e.jsxs("div",{className:`workspace-diff-preview split ${i?"wrap":""} ${a?"word-diffs":""}`,children:[e.jsxs("div",{className:"workspace-diff-file-heading",children:[e.jsxs("div",{children:[e.jsx($t,{path:s.path,workspaceName:u,workspaceRootPath:c,onSelectPath:d}),e.jsxs("span",{className:"diff-addition",children:["+",s.additions]}),e.jsxs("span",{className:"diff-deletion",children:["-",s.deletions]})]}),e.jsxs("span",{className:"workspace-file-heading-end",children:[p,e.jsx(ka,{size:14})]})]}),t?e.jsx("div",{className:"workspace-diff-code-empty",children:"Diff collapsed"}):e.jsx(xn,{ariaLabel:`${s.path} split diff`,className:"workspace-split-code",emptyMessage:"No patch available.",rows:x,renderRow:(b,S)=>b.kind==="spacer"?e.jsx("div",{className:"workspace-diff-spacer split",role:"row",children:b.label},`${b.label}-${S}`):e.jsxs("div",{className:`workspace-split-row ${b.kind}`,role:"row",children:[e.jsx("span",{className:"workspace-diff-line-number old",role:"cell",children:b.oldLine}),e.jsx("code",{className:"old",role:"cell",children:e.jsx(Ct,{language:o,text:b.oldContent||" "})}),e.jsx("span",{className:"workspace-diff-line-number new",role:"cell",children:b.newLine}),e.jsx("code",{className:"new",role:"cell",children:e.jsx(Ct,{language:o,text:b.newContent||" "})})]},`${b.oldLine}-${b.newLine}-${S}`),wordWrap:i})]})}function xl(t){return t.length>0&&/^[A-Za-z0-9+/=\s]+$/.test(t)}function xn({ariaLabel:t,className:s,emptyMessage:n,rows:a,renderRow:i,wordWrap:u}){const c=!u&&a.length>ul,{endIndex:d,offsetTop:p,scrollRef:x,startIndex:o,totalHeight:b}=bl(a.length,c);return a.length===0?e.jsx("div",{className:s,role:"table","aria-label":t,children:e.jsx("div",{className:"workspace-diff-code-empty",children:n})}):c?e.jsx("div",{className:`${s} virtualized`,ref:x,role:"table","aria-label":t,"aria-rowcount":a.length,children:e.jsx("div",{className:"workspace-diff-virtual-spacer",style:{height:b},children:e.jsx("div",{className:"workspace-diff-virtual-window",style:{transform:`translateY(${p}px)`},children:a.slice(o,d).map((S,k)=>i(S,o+k))})})}):e.jsx("div",{className:s,role:"table","aria-label":t,children:a.map(i)})}function bl(t,s){const n=r.useRef(null),[a,i]=r.useState({height:Re*tn,scrollTop:0}),u=r.useCallback(()=>{const x=n.current;x&&i({height:x.clientHeight||Re*tn,scrollTop:x.scrollTop})},[]);if(r.useEffect(()=>{if(!s)return;const x=n.current;if(!x)return;u();let o=0;const b=()=>{if(typeof window>"u"){u();return}window.cancelAnimationFrame(o),o=window.requestAnimationFrame(u)};x.addEventListener("scroll",b,{passive:!0});const S=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>b());return S?.observe(x),()=>{x.removeEventListener("scroll",b),S?.disconnect(),typeof window<"u"&&window.cancelAnimationFrame(o)}},[s,u]),!s)return{endIndex:t,offsetTop:0,scrollRef:n,startIndex:0,totalHeight:t*Re};const c=Math.ceil(a.height/Re),d=Math.max(0,Math.floor(a.scrollTop/Re)-sn);return{endIndex:Math.min(t,d+c+sn*2),offsetTop:d*Re,scrollRef:n,startIndex:d,totalHeight:t*Re}}function bn(t,s){if(!t.trim())return[];const n=[];let a=0,i=0,u=null,c=null,d=!1,p=[];function x(){n.push(...gl(p)),p=[]}function o(){d&&(x(),u=a,c=i,d=!1)}for(const b of t.split(`
|
|
6
|
-
`)){const S=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/.exec(b);if(S){o();const F=Number(S[1]),_=Number(S[2]);if(u!==null&&c!==null){const W=Math.max(F-u,_-c,0);W>0&&n.push({kind:"spacer",label:gn(W)})}a=F,i=_,d=!0;continue}if(b.startsWith("diff --git")||b.startsWith("index ")||b.startsWith("--- ")||b.startsWith("+++ ")||!d||b.startsWith("\\ No newline"))continue;const k=b.slice(1)||" ";if(s&&!k.trim())continue;if(b.startsWith("+")){x(),n.push({kind:"addition",oldLine:"",newLine:String(i||""),oldContent:"",newContent:k}),i+=1;continue}if(b.startsWith("-")){x(),n.push({kind:"deletion",oldLine:String(a||""),newLine:"",oldContent:k,newContent:""}),a+=1;continue}const N=b.startsWith(" ")?b.slice(1)||" ":b||" ";s&&!N.trim()||(p.push({kind:"context",oldLine:String(a||""),newLine:String(i||""),oldContent:N,newContent:N}),a+=1,i+=1)}return o(),n}function gl(t){if(t.length<dl)return t;const s=t.length-ts*2;return s<=0?t:[...t.slice(0,ts),{kind:"spacer",label:gn(s)},...t.slice(-ts)]}function gn(t){return`${t} unmodified ${t===1?"line":"lines"}`}const Rt=`
|
|
7
|
-
|
|
8
|
-
[file truncated]`,jl="openpond.sandboxSourceReadback.v1";async function vl(t,s,n,a=[]){let i;try{i=await z.sandboxDownloadFile(t,s,n,{maxBytes:256*1024})}catch(c){const d=c instanceof Error?c.message:String(c);if(!kl(d))throw c;const p=Sl(a,s,n);if(p)return p;const x=!!cs(a,s)?.artifact,o=await z.sandbox(t,s).catch(()=>null);throw new Error(wl(n,o?.sandbox??null,d,{hasReadbackArtifact:x}))}const u=i.file.isBinary?i.file.contentsBase64||null:`${i.contents}${i.file.truncated?Rt:""}`;return{path:i.file.path,status:"",additions:0,deletions:0,patch:"",content:u}}function kl(t){return t.includes("sandbox_not_ready")&&t.includes("placement_stale")||t.includes("sandbox_not_running")}function wl(t,s,n="sandbox_not_ready:placement_stale",a={}){const i=s?Nl(s):null,u=t||"this file";if(a.hasReadbackArtifact)return`Sandbox file content is unavailable because the stopped runtime placement is stale. The latest source checkpoint has a saved readback artifact, but ${u} was not captured as text. Resume the sandbox to inspect it. ${n}`;if(!i)return`Sandbox file content is unavailable because the stopped runtime placement is stale. Resume the sandbox to inspect ${u}. ${n}`;const c=i.preservedSha?i.preservedSha.slice(0,12):null,d=i.sourceRef?` (${i.sourceRef})`:"";return`Sandbox file content is unavailable because the stopped runtime placement is stale. The latest source checkpoint is saved${c?` at ${c}`:""}${d}, but this Desktop app cannot read file bodies from preserved source refs yet. Resume the sandbox to inspect ${u}.`}function yl(t,s){if(!s)return null;const n=cs(t,s);if(!n)return null;const a=vn(n.artifact),i=new Map;for(const d of ds(a))i.set(d.path,d);for(const d of kn(n.artifact)){const p=jn(n.artifact,d.path);p&&i.set(d.path,p)}const u=[...i.values()].sort((d,p)=>d.path.localeCompare(p.path)),c=[...new Set(u.map(d=>d.path))].sort((d,p)=>d.localeCompare(p));return{appId:s,repoPath:"",initialized:!0,dirty:!1,filesChanged:u.length,additions:u.reduce((d,p)=>d+p.additions,0),deletions:u.reduce((d,p)=>d+p.deletions,0),repoFiles:c,files:u,error:null,updatedAt:Ue(le(n.artifact)?.createdAt)??n.event.timestamp}}function Sl(t,s,n){if(!s)return null;const a=cs(t,s);return a?jn(a.artifact,n):null}function cs(t,s){for(let n=t.length-1;n>=0;n-=1){const a=t[n];if(a?.name!=="workspace_action_result")continue;const i=le(a.data),u=le(i?.sourcePreservation),c=le(u?.sourceReadbackArtifact);if(c&&c.schemaVersion===jl&&c.sandboxId===s)return{artifact:c,event:a}}return null}function jn(t,s){const n=ds(vn(t)).find(u=>u.path===s),a=kn(t).find(u=>u.path===s);if(!n&&!a)return null;const i=typeof a?.content=="string"?`${a.content}${a.truncated?Rt:""}`:null;return{path:a?.path??n?.path??s,status:n?.status??"M",additions:n?.additions??0,deletions:n?.deletions??0,patch:n?.patch??"",content:i}}function vn(t){const s=le(t.patch);return typeof s?.text=="string"?s.text:""}function kn(t){return(Array.isArray(t.files)?t.files:[]).map(n=>{const a=le(n),i=Ue(a?.path);return i?{path:i,...typeof a?.content=="string"?{content:a.content}:{},...a?.truncated===!0?{truncated:!0}:{}}:null}).filter(n=>!!n)}function Nl(t){const s=le(t.metadata)??{},n=le(s.sourcePreservation)??le(s.sourcePreserve),a=le(s.sourceChangeDetection),i=Ue(n?.preservedSha)??Ue(a?.preservedSha)??null,u=Ue(n?.sourceRef)??Ue(a?.sourceRef)??(typeof t.repoRef=="string"?t.repoRef:null);return!i&&!u?null:{preservedSha:i,sourceRef:u}}function le(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:null}function Ue(t){return typeof t=="string"&&t.trim()?t.trim():null}async function Cl(t,s,n,a){const i=await z.sandboxUploadFile(t,s,{path:n,contents:a});return await z.preserveSandboxSource(t,s,{message:"Auto-preserve source after right sidebar save"}),{path:i.file.path,status:"M",additions:0,deletions:0,patch:"",content:a}}function $l(t){return t.filter(s=>s.type==="file").map(s=>s.path).sort((s,n)=>s.localeCompare(n))}function Rl(t,s){const n=new Map;for(const a of ds(t?.diff??""))n.set(a.path,a);for(const a of Fl(s?.porcelain??""))n.has(a.path)||n.set(a.path,a);return[...n.values()].sort((a,i)=>a.path.localeCompare(i.path))}function ds(t){const s=[];let n=null;const a=()=>{n&&(s.push({path:n.path,status:n.status,additions:n.additions,deletions:n.deletions,patch:n.patchLines.join(`
|
|
9
|
-
`),content:null}),n=null)};for(const i of t.split(`
|
|
10
|
-
`)){if(i.startsWith("diff --git ")){a(),n={path:Pl(i)??"changed-file",status:"M",additions:0,deletions:0,patchLines:[i]};continue}if(n){if(n.patchLines.push(i),i.startsWith("+++ ")){const u=nn(i.slice(4));u&&(n.path=u);continue}if(i.startsWith("--- ")){const u=nn(i.slice(4));u&&n.path==="changed-file"&&(n.path=u);continue}i.startsWith("new file mode ")&&(n.status="A"),i.startsWith("deleted file mode ")&&(n.status="D"),i.startsWith("rename to ")&&(n.status="R",n.path=i.slice(10).trim()||n.path),i.startsWith("+")&&!i.startsWith("+++")&&(n.additions+=1),i.startsWith("-")&&!i.startsWith("---")&&(n.deletions+=1)}}return a(),s}function Fl(t){const s=[];for(const n of t.split(`
|
|
11
|
-
`)){if(!n.trim())continue;const a=El(n);a&&s.push({path:a,status:n.slice(0,2).trim()||"M",additions:0,deletions:0,patch:"",content:null})}return s}function El(t){const s=t.slice(3).trim();return s?s.split(" -> ").pop()?.trim()||s:null}function Pl(t){const s=/^diff --git a\/(.+) b\/(.+)$/.exec(t.trim());return s?.[2]??s?.[1]??null}function nn(t){const s=t.trim();return!s||s==="/dev/null"?null:s.startsWith("a/")||s.startsWith("b/")?s.slice(2):s}const wn="openpond.workspace.editorControlsVisible";function an(){try{return dn.getItem(wn)==="true"}catch{return!1}}function Al(t){try{dn.setItem(wn,String(t))}catch{}}function Ll({activeDiagnostics:t,activeServers:s,editorDiagnosticsChecking:n,editorLspEnabled:a,showEditorCommandBar:i}){if(!i)return null;if(!a)return{label:"LSP off",severity:"unavailable"};if(n)return{label:"Checking",severity:"info"};const u=t.filter(x=>x.severity==="error").length;if(u>0)return{label:`${u} error${u===1?"":"s"}`,severity:"error"};const c=t.filter(x=>x.severity==="warning").length;if(c>0)return{label:`${c} warning${c===1?"":"s"}`,severity:"warning"};const d=t.length;if(d>0)return{label:`${d} note${d===1?"":"s"}`,severity:"info"};if(!s)return null;const p=s.find(x=>x.status!=="connected");return p?{label:p.id==="none"?"No LSP":`${p.id} unavailable`,severity:"unavailable"}:{label:"No issues",severity:"none"}}const ln=3e3,Dl=2e3,rn=[],Tl=[];function _l({appId:t,workspaceId:s,workspaceKind:n,connection:a,runtimeEvents:i,diff:u,editorPreferences:c,loading:d,workspaceName:p,workspaceInitialized:x,workspaceError:o,expanded:b,fileRootPath:S,filesWithPreview:k=!1,openFileRequest:N,readOnly:F=!1,sideChatTabs:_,sourceSwitcher:W,tabRequest:G,viewState:H,onRefresh:I,onResizeStart:v,onToggleExpanded:R,onOpenBrowser:D,onOpenBrowserUrl:M,onViewStateChange:E,onCloseSideChat:te,onOpenSideChat:q,onSelectSideChat:X,goalDetails:B,sandboxFileSource:Q,trainingSummary:se,sidebarFileBookmarks:Y=[],sidebarFileSourceSessionId:re=null,onSetSidebarFileStatus:w}){return e.jsx(Bl,{appId:t,workspaceId:s,workspaceKind:n,connection:a,runtimeEvents:i??[],diff:u,editorPreferences:c??null,loading:d,workspaceName:p,workspaceInitialized:x,workspaceError:o,expanded:b,fileRootPath:S??null,filesWithPreview:k,openFileRequest:N,readOnly:F,sideChatTabs:_??[],sourceSwitcher:W??null,tabRequest:G??null,viewState:H??null,onRefresh:I,onResizeStart:v,onToggleExpanded:R,onOpenBrowser:D,onOpenBrowserUrl:M,onViewStateChange:E,onCloseSideChat:te,onOpenSideChat:q,onSelectSideChat:X,goalDetails:B??null,sandboxFileSource:Q??null,trainingSummary:se??null,sidebarFileBookmarks:Y,sidebarFileSourceSessionId:re,onSetSidebarFileStatus:w})}function Ml(t,s,n,a){return t&&s?.content!=null?{...t,content:s.content}:s&&!t&&ss(s)?s:t&&ss(t)?t:s&&ss(s)?s:t??s??n??ls(a)}function ss(t){return!!(t.patch||t.content!=null)}function zl({changedFiles:t,checkpointStatus:s,dirty:n,error:a,loading:i,preservedReadback:u,sandboxMode:c,sourcePending:d}){if(d)return{label:"sandbox pending",tone:"loading"};if(i)return{label:"refreshing",tone:"loading"};if(c&&u&&s)return s;if(a)return{label:"status unavailable",tone:"error"};if(c&&s?.tone==="error"||c&&s&&!n&&t===0)return s;if(n||t>0){const p=Math.max(1,t),x=p===1?"change":"changes";return{label:c?`${p} unpreserved ${x}`:`${p} local ${x}`,tone:"dirty"}}return{label:c?"sandbox clean":"local clean",tone:"clean"}}function Wl(t,s){if(!s)return null;for(let n=t.length-1;n>=0;n-=1){const a=t[n];if(a?.name!=="workspace_action_result")continue;const i=a.data&&typeof a.data=="object"&&!Array.isArray(a.data)?a.data:null,u=i?.sourcePreservation&&typeof i.sourcePreservation=="object"&&!Array.isArray(i.sourcePreservation)?i.sourcePreservation:null;if(u?.attempted===!0&&u.sandboxId===s)return u.ok!==!0?{label:"checkpoint failed",tone:"error"}:u.preserved===!0?{label:"checkpoint saved",tone:"clean"}:{label:"checkpoint clean",tone:"clean"}}return null}function Il(t){const s=t.split("/").filter(Boolean);return s.map((n,a)=>s.slice(0,a+1).join("/"))}function Bl({appId:t,workspaceId:s,workspaceKind:n,connection:a,runtimeEvents:i,diff:u,editorPreferences:c,loading:d,workspaceName:p,workspaceInitialized:x,workspaceError:o,expanded:b,fileRootPath:S,filesWithPreview:k,openFileRequest:N,readOnly:F,sideChatTabs:_,sourceSwitcher:W,tabRequest:G,viewState:H,onRefresh:I,onResizeStart:v,onToggleExpanded:R,onOpenBrowser:D,onOpenBrowserUrl:M,onViewStateChange:E,onCloseSideChat:te,onOpenSideChat:q,onSelectSideChat:X,goalDetails:B,sandboxFileSource:Q,trainingSummary:se,sidebarFileBookmarks:Y,sidebarFileSourceSessionId:re,onSetSidebarFileStatus:w}){const O=H??qa(),[A,T]=r.useState(O.activeTab),[Pt,Pe]=r.useState(!1),[ot,oe]=r.useState(!1),[yn,ne]=r.useState(!1),[At,Lt]=r.useState(""),[J,He]=r.useState(()=>[...O.openFilePaths]),[j,ge]=r.useState(O.selectedPath),[us,Sn]=r.useState(!1),[fs,Nn]=r.useState(!1),[Ae,Cn]=r.useState(!1),[Dt,$n]=r.useState(!0),[ps,hs]=r.useState(an);Oa(()=>hs(an()));const[ms,Rn]=r.useState(!1),[xs,Fn]=r.useState(!1),[bs,En]=r.useState(!1),[ae,Le]=r.useState({}),[ct,dt]=r.useState(()=>new Set),[gs,ut]=r.useState({}),[ue,Ve]=r.useState({}),[js,Tt]=r.useState(()=>new Set),[Ge,Ke]=r.useState(null),[Pn,_t]=r.useState(!1),[vs,qe]=r.useState(null),[ks,Mt]=r.useState({}),[An,zt]=r.useState({}),[Ln,Wt]=r.useState(null),[Dn,je]=r.useState(null),[ws,It]=r.useState(null),[Tn,ve]=r.useState(null);Ee(o,{prefix:"Workspace"}),Ee(vs,{prefix:"Sandbox files"});const[Bt,ft]=r.useState(null),[_n,Xe]=r.useState({}),[pt,Ot]=r.useState(null),[De,ht]=r.useState(null),[mt,xt]=r.useState(null),ee=c??Ga.editor,ys=r.useRef(ae),Ut=r.useRef(Jt(O)),Ht=r.useRef(Jt(O)),Ss=r.useRef(null),Vt=r.useRef(I),ce=r.useRef(!1),Ze=r.useRef(null),Qe=r.useRef(0),fe=r.useRef(null),Ye=r.useRef(null),P=Q?.sandboxId?.trim()||null,C=!!Q,Te=!!se||C&&!!P,bt=C?`sandbox:${P??"pending"}`:`workspace:${t??"none"}`,Ns=C?!!P:!!t,Cs=r.useRef(bt),pe=!!(B?.createRuntime||B?.goalRuntime||B?.subagentRuntime),_e=r.useCallback(async(l={})=>{if(C){if(!a){Ke(null),qe("OpenPond App server is not connected.");return}if(!P){Ke(null),qe(null);return}l.silent||_t(!0);try{const[m,f,g]=await Promise.allSettled([z.sandboxFiles(a,P,{recursive:!0,maxEntries:Dl}),z.sandboxGitStatus(a,P),z.sandboxGitDiff(a,P,{})]);if(m.status==="rejected")throw m.reason;const y=$l(m.value.files),h=f.status==="fulfilled"?f.value.status:null,$=g.status==="fulfilled"?g.value.diff:null,L=Rl($,h),at=L.reduce((Qt,Yt)=>Qt+Yt.additions,0),ma=L.reduce((Qt,Yt)=>Qt+Yt.deletions,0);Ke({appId:P,repoPath:"",initialized:!0,dirty:h?!h.clean:L.length>0,filesChanged:L.length,additions:at,deletions:ma,repoFiles:y,files:L,error:null,updatedAt:new Date().toISOString()}),qe(null)}catch(m){Ke(null),qe(m instanceof Error?m.message:String(m))}finally{l.silent||_t(!1)}}},[a,P,C]),$s=r.useMemo(()=>yl(i,P),[i,P]),Rs=!!(Ge&&((Ge.files?.length??0)>0||(Ge.repoFiles?.length??0)>0)),Mn=C&&!Rs&&!!$s,he=C?Rs?Ge:$s??Ge:u,Je=he?.repoPath??null,zn=r.useMemo(()=>Wl(i,P),[i,P]),Me=he?.files??rn,Fs=he?.files??rn,ke=r.useMemo(()=>new Map(Fs.map(l=>[l.path,l])),[Fs]),we=r.useMemo(()=>new Map(Me.map(l=>[l.path,l])),[Me]),ze=he?.repoFiles??(Me.length>0?Me.map(l=>l.path):Tl),We=r.useMemo(()=>Me.filter(l=>!Ua(l,ze)),[ze,Me]),ye=r.useMemo(()=>mt&&!ze.includes(mt)?[mt,...ze]:ze,[ze,mt]),Es=r.useMemo(()=>J.map(l=>ke.get(l)??ae[l]??we.get(l)??ls(l)),[ke,we,ae,J]),gt=r.useMemo(()=>{const l={};for(const m of J){if(Ce(m))continue;const f=ke.get(m)??ae[m]??we.get(m)??ls(m);f.content!=null&&(l[m]=f.content)}return l},[ke,we,ae,J]),Ie=r.useMemo(()=>{const l=new Set;for(const[m,f]of Object.entries(ue))f.content!==f.savedContent&&l.add(m);return l},[ue]),Wn=r.useMemo(()=>{const l=At.trim().toLowerCase(),m=ye;return l?m.filter(f=>f.toLowerCase().includes(l)):m},[ye,At]),Gt=r.useMemo(()=>({activeTab:A,openFilePaths:J,selectedPath:j}),[A,J,j]);r.useEffect(()=>{ys.current=ae},[ae]),r.useEffect(()=>{Ze.current=pt},[pt]),r.useEffect(()=>{Ve(l=>{let m=!1;const f={...l},g=new Set(J),y=u?.updatedAt?Date.parse(u.updatedAt):null;for(const[h,$]of Object.entries(f))g.has(h)||$.content!==$.savedContent||(delete f[h],m=!0);for(const[h,$]of Object.entries(gt)){const L=f[h];if(!L){f[h]={content:$,savedContent:$},m=!0;continue}if(L.content===L.savedContent&&L.savedContent!==$){if(L.savedAt&&(y===null||y<L.savedAt))continue;f[h]={content:$,savedContent:$},m=!0}}return m?f:l})},[u?.updatedAt,gt,J]),r.useEffect(()=>{Vt.current=I},[I]),r.useEffect(()=>{if(!H)return;const l=Ha(H,Je);Ks(Ut.current,l)||(Ut.current=l,Ht.current=l,T(l.activeTab),He(l.openFilePaths),ge(l.selectedPath))},[H,Je]),r.useEffect(()=>{if(ct.size>0||Ks(Ht.current,Gt))return;const l=Jt(Gt);Ht.current=l,Ut.current=l,E?.(l)},[Gt,E,ct]),r.useEffect(()=>{F||C||!a||!t||!x||u||o||ce.current||(ce.current=!0,Promise.resolve(Vt.current({silent:!0})).catch(()=>{}).finally(()=>{ce.current=!1}))},[t,a,u,F,C,o,x]),r.useEffect(()=>(Cs.current!==bt&&(Cs.current=bt,fe.current?.abort(new Error("lsp_diagnostics_source_changed")),fe.current=null,He([]),ge(null),Le({}),dt(new Set),ut({}),Ve({}),Tt(new Set),Ke(null),qe(null),_t(!1),Mt({}),zt({}),Wt(null),je(null),ve(null),ft(null),Xe({}),Ot(null),ht(null),xt(null)),()=>{fe.current?.abort(new Error("lsp_diagnostics_unmounted")),fe.current=null}),[bt]),r.useEffect(()=>{if(!(!N||Ss.current===N.id)&&!(!N.file&&!Ns)){if(Ss.current=N.id,N.file){In(N.file,N.imageUrl,N.source);return}jt(N.path,{source:N.source})}},[Ns,N]),r.useEffect(()=>{if(!C||(_e(),!a||!P))return;let l=!1;async function m(){if(!(l||ce.current)&&!(typeof document<"u"&&document.visibilityState==="hidden")){ce.current=!0;try{await _e({silent:!0})}finally{ce.current=!1}}}const f=window.setInterval(()=>{m()},ln),g=()=>{m()};return window.addEventListener("focus",g),()=>{l=!0,window.clearInterval(f),window.removeEventListener("focus",g)}},[a,_e,P,C]),r.useEffect(()=>{if(F||C||!a||!t||!x)return;let l=!1;async function m(){if(!(l||ce.current)&&!(typeof document<"u"&&document.visibilityState==="hidden")){ce.current=!0;try{await Vt.current({silent:!0})}catch{}finally{ce.current=!1}}}const f=window.setInterval(()=>{m()},ln),g=()=>{m()};return window.addEventListener("focus",g),()=>{l=!0,window.clearInterval(f),window.removeEventListener("focus",g)}},[t,a,F,C,x]),r.useEffect(()=>{if(C||!a||!t||n==="local_project"){xt(null);return}let l=!1;return z.workspaceTemplateConfig(a,t).then(m=>{l||xt(m.exists?m.configPath??Va:null)}).catch(()=>{l||xt(null)}),()=>{l=!0}},[t,a,C,n]),r.useEffect(()=>{!j||ye.includes(j)||J.includes(j)||ge(We[0]?.path??null)},[We,J,ye,j]),r.useEffect(()=>{B?.active&&pe&&T("goal")},[B?.active,pe]),r.useEffect(()=>{G&&T(G.tab)},[G]),r.useEffect(()=>{!pe&&A==="goal"&&T("files")},[A,pe]),r.useEffect(()=>{!Te&&A==="summary"&&T("files")},[A,Te]);const K=A==="file"||k&&A==="files"?j:null;r.useEffect(()=>{if(!a||!K)return;if(Ce(K)){ve(null),je(h=>h===K?null:h);return}const l=Bt?.path===K,m=et(K);if(F&&(m?.content!=null||m?.patch)){ve(null),je(h=>h===K?null:h);return}if(!l&&(m?.content!=null||m?.patch&&!Ae)){ve(null),je(h=>h===K?null:h);return}let f=!1;const g=ys.current[K];return g?.content==null&&(Ae||!g?.patch)&&je(K),ve(null),(C?P?vl(a,P,K,i):Promise.reject(new Error(Q?.emptyMessage??"No sandbox filesystem is available.")):t?z.workspaceFile(a,t,K):Promise.reject(new Error("Workspace files are unavailable."))).then(h=>{f||Le($=>{const L=$[h.path];return L?.content===h.content&&L.patch===h.patch&&L.status===h.status?$:{...$,[h.path]:h}})}).catch(h=>{f||ve(h instanceof Error?h.message:String(h))}).finally(()=>{f||(je(h=>h===K?null:h),ft(h=>h&&h.id===Bt?.id&&h.path===K?null:h))}),()=>{f=!0}},[A,t,a,Bt,Ae,F,i,Q?.emptyMessage,P,C,K]);function jt(l,m){It(null);const f=C?P:t;if(Os(l)&&!m?.source&&a&&f){wa(a,f,l,C?"sandbox":"local").then(M).catch(y=>It(y instanceof Error?y.message:"Could not open HTML preview."));return}const g=is(l,Je);g&&(dt(y=>{if(!y.has(g))return y;const h=new Set(y);return h.delete(g),h}),Le(y=>{if(!(g in y))return y;const h={...y};return delete h[g],h}),ut(y=>{if(!(g in y))return y;const h={...y};return delete h[g],h}),ft({id:Date.now(),path:g}),k||He(y=>y.includes(g)?y:[...y,g]),ge(g),T(k?"files":"file"),!C&&a&&t&&Ce(g)&&ht(g),oe(!1),ne(!1),Lt(""))}function In(l,m,f=!1){if(Os(l.path)&&l.content!=null&&!f&&a){ya(a,l.path,l.content).then(M).catch(h=>It(h instanceof Error?h.message:"Could not open HTML preview."));return}const g=is(l.path,Je);if(!g)return;const y={...l,path:g};Le(h=>({...h,[g]:y})),dt(h=>{const $=new Set(h);return $.add(g),$}),ut(h=>{if(!m){if(!(g in h))return h;const $={...h};return delete $[g],$}return h[g]===m?h:{...h,[g]:m}}),ft(null),ve(null),je(null),k||He(h=>h.includes(g)?h:[...h,g]),ge(g),T(k?"files":"file"),oe(!1),ne(!1),Lt("")}const Bn=r.useCallback(()=>{hs(l=>{const m=!l;return Al(m),m})},[]),et=l=>Ml(ke.get(l),ae[l],we.get(l),l),On=r.useCallback((l,m)=>{Ve(f=>{const g=f[l],y=g?.savedContent??gt[l]??et(l).content??"";return{...f,[l]:{content:m,savedContent:y,savedAt:g?.savedAt}}}),Xe(f=>{if(!(l in f))return f;const g={...f};return delete g[l],g})},[ke,we,ae,gt]),Be=r.useCallback(async(l,m={})=>{if(C||!a||!t||Ce(l))return;const f=et(l),g=m.content??ue[l]?.content??f.content??void 0;if(g?.endsWith(Rt))return;const y=Qe.current+1;Qe.current=y,fe.current?.abort(new Error("lsp_diagnostics_superseded"));const h=new AbortController;fe.current=h,Wt(l);try{const $=await z.workspaceLspTouch(a,t,{path:l,content:g,waitForDiagnostics:m.waitForDiagnostics??!0},{signal:h.signal});if(y!==Qe.current)return;Mt(L=>({...L,[$.path]:$.diagnostics})),zt(L=>({...L,[$.path]:$.servers}))}catch($){if(h.signal.aborted||y!==Qe.current)return;const L=$ instanceof Error?$.message:String($);Mt(at=>({...at,[l]:[]})),zt(at=>({...at,[l]:[{id:"lsp",root:"",status:"error",message:L}]}))}finally{if(fe.current===h&&(fe.current=null),h.signal.aborted)return;y===Qe.current&&Wt($=>$===l?null:$)}},[t,a,ke,we,ue,ae,C]),Un=r.useCallback(async l=>{if(C||!a||!t)throw new Error("Workspace LSP is unavailable.");return z.workspaceLspAction(a,t,l)},[t,a,C]),tt=r.useCallback(async l=>{if(!a||!t&&!P||Ze.current===l)return;const m=ue[l];if(!m||m.content===m.savedContent)return;const f=m.content,g=Date.now();Ze.current=l,Ot(l),Xe(y=>{if(!(l in y))return y;const h={...y};return delete h[l],h});try{const y=C?await Cl(a,P,l,f):await z.saveWorkspaceFile(a,t,{path:l,content:f});Le(h=>({...h,[y.path]:y})),Ve(h=>{const $=h[l];return $?{...h,[l]:{content:$.content,savedContent:f,savedAt:g}}:h}),ee.languageServers!=="off"&&ee.checkOnSave&&await Be(l,{content:f,waitForDiagnostics:!0}),C?await _e({silent:!0}):await I({silent:!0})}catch(y){Xe(h=>({...h,[l]:y instanceof Error?y.message:String(y)}))}finally{Ze.current===l&&(Ze.current=null),Ot(y=>y===l?null:y)}},[ee.checkOnSave,ee.languageServers,t,a,ue,I,Be,_e,P,C]),Ps=j?et(j):null,st=!!(j&&ct.has(j)),Se=j?ue[j]?.content??Ps?.content??null:null,Hn=!!(Ps?.patch&&!Ae),Kt=!!(!F&&!st&&A==="file"&&!Hn&&j&&Se!=null&&!Ce(j)&&!(Dt&&as(j))&&!Se.endsWith(Rt));r.useEffect(()=>{if(ee.languageServers==="off"||!ee.diagnosticsWhileEditing||!j||!Kt||Se==null)return;const l=window.setTimeout(()=>{Be(j,{content:Se,waitForDiagnostics:!0})},700);return()=>window.clearTimeout(l)},[ee.diagnosticsWhileEditing,ee.languageServers,Be,Se,Kt,j]),r.useEffect(()=>{function l(m){!(m.ctrlKey||m.metaKey)||m.key.toLowerCase()!=="s"||A!=="file"||!j||(m.preventDefault(),Ie.has(j)&&tt(j))}return window.addEventListener("keydown",l),()=>window.removeEventListener("keydown",l)},[A,Ie,tt,j]);const Vn=r.useCallback(()=>{j&&(Ye.current?Ye.current.save():tt(j))},[tt,j]),Gn=r.useCallback(()=>{Ye.current?.undo()},[]),Kn=r.useCallback(()=>{Ye.current?.redo()},[]),qn=r.useCallback(()=>{j&&ee.languageServers!=="off"&&Be(j,{content:Se??void 0,waitForDiagnostics:!0})},[ee.languageServers,Be,Se,j]);function Xn(l,m){if(m.stopPropagation(),!(Ie.has(l)&&!window.confirm(`Discard unsaved changes to ${l}?`))&&(Ie.has(l)&&(Ve(f=>{if(!(l in f))return f;const g={...f};return delete g[l],g}),Xe(f=>{if(!(l in f))return f;const g={...f};return delete g[l],g})),He(f=>f.filter(g=>g!==l)),ct.has(l)&&Le(f=>{if(!(l in f))return f;const g={...f};return delete g[l],g}),ut(f=>{if(!(l in f))return f;const g={...f};return delete g[l],g}),dt(f=>{if(!f.has(l))return f;const g=new Set(f);return g.delete(l),g}),j===l)){const f=Es.find(g=>g.path!==l)??null;ge(f?.path??We[0]?.path??null),f||T("files")}}function Zn(){T("files"),oe(!1),ne(!1)}function As(l){Tt(m=>{const f=new Set(m);return f.has(l)?f.delete(l):f.add(l),f})}function Qn(l){l&&Tt(m=>{const f=new Set(m);for(const g of Il(l))f.add(g);return f}),T("files"),oe(!1),ne(!1)}function Yn(){const m=`git apply <<'PATCH'
|
|
12
|
-
${We.map(f=>f.patch).filter(Boolean).join(`
|
|
13
|
-
`)}
|
|
14
|
-
PATCH`;navigator.clipboard?.writeText(m)}const Jn=We.length>0,ea=ye.length>0,ta=J.length>0,sa=pe||Te||Jn||ea||ta,me=A==="goal"&&pe?"goal":A==="summary"&&Te?"summary":A==="file"&&j?"file":"files",na=me==="files"?"No files to show":"No local changes",aa=n==="local_project"&&!x&&!o,Ls=C?Pn:d,Ds=C?vs:o,ia=zl({changedFiles:he?.filesChanged??We.length,checkpointStatus:zn,dirty:!!he?.dirty,error:Ds,loading:Ls,preservedReadback:Mn,sandboxMode:C,sourcePending:C&&!P}),la=Ls?"Loading workspace files":Ds?"Workspace files are unavailable":C&&!P?Q?.emptyMessage??"No sandbox filesystem is available.":aa?"Loading workspace files":x?na:"No local files to show",Ts=j?gs[j]??null:null,ra=!Ts&&!C&&j&&Ce(j)?j:null,_s=De?gs[De]??null:null,oa=!_s&&!C&&De&&Ce(De)?De:null,ca=Us(a,t,ra),da=Us(a,t,oa),qt=Ts??ca,Ms=_s??da,zs=me==="file"||k&&me==="files"?j:null,ua=!!(zs&&as(zs)),Ws=j?ks[j]??[]:[],Is=j?An[j]??null:null,Xt=!!(j&&Ln===j),Zt=ps&&Kt,nt=!F&&!st&&!C&&ee.languageServers!=="off",fa=r.useMemo(()=>Ll({activeDiagnostics:Ws,activeServers:Is,editorDiagnosticsChecking:Xt,editorLspEnabled:nt,showEditorCommandBar:Zt}),[Ws,Is,Xt,nt,Zt]),pa=r.useCallback(async l=>{if(!a)throw new Error("OpenPond server connection is unavailable.");await z.runSubagentLifecycleAction(a,l.runId,{action:l.action,reason:"User requested from Goal details."}),await I({silent:!0})},[a,I]),xe=C?"sandbox":n==="local_project"?"local":null,vt=r.useMemo(()=>{const l=new Map;if(!xe||!s)return l;for(const m of Y)m.workspaceKind!==xe||m.workspaceId!==s||l.set(m.path,m);return l},[Y,xe,s]),kt=r.useCallback(l=>{try{return vt.get(qs(l))?.status??null}catch{return null}},[vt]),wt=r.useCallback((l,m)=>{if(!xe||!s||!p||!w)return;let f;try{f=qs(l)}catch{return}const g=vt.get(f),y=new Date().toISOString(),h=g??{id:Ka({workspaceKind:xe,workspaceId:s,path:f}),workspaceKind:xe,workspaceId:s,workspaceName:p,path:f,status:"pinned",order:null,sourceSessionId:re,available:!0,createdAt:y,updatedAt:y};w(h,m)},[w,vt,re,xe,s,p]),Ne=!!(xe&&s&&p&&w),ha=j&&Ne&&!st?e.jsx(rs,{currentStatus:kt(j),onSetStatus:l=>wt(j,l)}):null,Bs=j?e.jsx(pl,{diagnostics:nt?ks[j]??[]:[],draftContent:ue[j]?.content,editorRef:Ye,editable:!F&&!st&&!qt,error:Tn,file:et(j),collapsed:fs,hideWhiteSpace:xs,headerActions:ha,imageSrc:qt,loading:Dn===j,loadFullFiles:Ae,saveError:_n[j]??null,saving:pt===j,onOpenImage:()=>{qt&&ht(j)},onDraftContentChange:l=>On(j,l),onLspAction:nt?Un:void 0,onSave:()=>{tt(j)},onSelectBreadcrumbPath:Qn,renderMarkdown:Dt,splitView:bs,wordDiffs:ms,wordWrap:us,workspaceName:p,workspaceRootPath:Je}):null;return e.jsxs(e.Fragment,{children:[e.jsxs("aside",{className:`workspace-diff-panel ${b?"expanded":""}`,id:"right-sidebar-files-panel",role:"tabpanel","aria-label":"Workspace diffs",children:[!b&&e.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize diff panel",onPointerDown:v}),e.jsx(el,{addMenuOpen:ot,expanded:b,filteredFiles:Wn,openFiles:Es,dirtyFilePaths:Ie,goalDetailsAvailable:pe,searchOpen:yn,searchQuery:At,selectedPath:j,sideChatTabs:_,summaryAvailable:Te,sourceStatus:ia,sourceSwitcher:W,visibleTab:me,getFileBookmarkStatus:Ne?kt:void 0,onCloseFileTab:Xn,onCloseSideChat:te,onCloseSearch:()=>ne(!1),onOpenFile:jt,onOpenBrowser:D?()=>{oe(!1),ne(!1),D()}:void 0,onOpenSearch:()=>{oe(!1),ne(!0)},onOpenSideChat:q?()=>{oe(!1),ne(!1),q()}:void 0,onSearchQueryChange:Lt,onSetFileBookmarkStatus:Ne?wt:void 0,onSelectFile:l=>{ge(l),T("file")},onSelectFiles:Zn,onSelectGoal:()=>T("goal"),onSelectSummary:()=>{T("summary"),oe(!1),ne(!1)},onSelectSideChat:X,onToggleAddMenu:()=>{oe(l=>!l),ne(!1)},onToggleExpanded:R}),ws&&e.jsx("div",{className:"workspace-diff-empty",role:"alert",children:ws}),me==="goal"&&pe?e.jsx(wi,{createRuntime:B?.createRuntime??null,goalRuntime:B?.goalRuntime??null,subagentRuntime:B?.subagentRuntime??null,onRunSubagentLifecycleAction:a?pa:void 0}):me==="summary"&&Te?se?e.jsx(Zi,{summary:se}):e.jsx(Oi,{sandboxId:P,connection:a}):sa?e.jsxs(e.Fragment,{children:[e.jsx(tl,{canSaveActiveFile:!!(!F&&!st&&j&&Ie.has(j)&&pt!==j),canCheckActiveFile:nt,collapsed:fs,editorControlsVisible:ps,editorDiagnosticStatus:fa,editorDiagnosticsChecking:Xt,hideWhiteSpace:xs,loadFullFiles:Ae,menuOpen:Pt,renderMarkdown:Dt,showEditorCommandBar:Zt,showRenderMarkdownToggle:ua,splitView:bs,wordDiffs:ms,wordWrap:us,onCopyGitApply:Yn,onEditorCheck:qn,onEditorRedo:Kn,onEditorSave:Vn,onEditorUndo:Gn,onRefresh:()=>{C?_e():I()},onToggleCollapsed:()=>Nn(l=>!l),onToggleEditorControlsVisible:Bn,onToggleHideWhiteSpace:()=>Fn(l=>!l),onToggleLoadFullFiles:()=>Cn(l=>!l),onToggleMenu:l=>Pe(m=>l??!m),onToggleRenderMarkdown:()=>$n(l=>!l),onToggleSplitView:()=>En(l=>!l),onToggleWordDiffs:()=>Rn(l=>!l),onToggleWordWrap:()=>Sn(l=>!l)}),me==="files"&&(k?e.jsxs("div",{className:"workspace-diff-files-preview-layout",children:[e.jsx(en,{diff:he,expandedFolderPaths:js,rootPath:S,repoFiles:ye,selectedPath:j,getFileBookmarkStatus:Ne?kt:void 0,onOpenFile:jt,onSetFileBookmarkStatus:Ne?wt:void 0,onToggleFolder:As}),Bs??e.jsx("div",{className:"workspace-diff-files-preview-empty",children:"Select a file to review its changes."})]}):e.jsx(en,{diff:he,expandedFolderPaths:js,rootPath:S,repoFiles:ye,selectedPath:j,getFileBookmarkStatus:Ne?kt:void 0,onOpenFile:jt,onSetFileBookmarkStatus:Ne?wt:void 0,onToggleFolder:As})),me==="file"&&j&&Bs]}):e.jsx("div",{className:"workspace-diff-empty",children:e.jsx("span",{children:la})})]}),e.jsx(Sa,{open:!!Ms,src:Ms,title:De??"",onClose:()=>ht(null)})]})}const Ql=Object.freeze(Object.defineProperty({__proto__:null,WorkspaceDiffPanel:_l},Symbol.toStringTag,{value:"Module"}));export{ui as C,_l as W,Ql as a};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import{r as m,j as t}from"./index-BxWTVKtn.js";import{c as Mt,bw as Ye,bx as qt,by as Ut,X as ut,bz as we,aB as Lt,bA as Ne,bi as Ot,an as Je,N as Ft,al as at,L as Bt,bB as Dt,bb as Gt,a$ as Tt,bC as kt,bD as st,G as O,b7 as Ht,ap as Vt,S as Xt,am as Ke,C as Jt,av as Kt,i as Qt}from"./App-CuhaCsfb.js";import{I as Zt}from"./info-Dc81lEfw.js";import{M as Yt}from"./monitor-DXL019Wf.js";import{P as $e}from"./play-CXkxUZeU.js";import{G as Wt}from"./git-commit-horizontal-Cotm7KEC.js";import{S as en}from"./square-oy7f5Ce6.js";import{U as rt}from"./upload-C5YFNgtS.js";const tn=[["path",{d:"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9",key:"1hayfq"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"15ts47"}]],nn=Mt("hammer",tn);function an(e){const n=te(e?.data),a=te(n.preview);return(typeof a.url=="string"?a.url.trim():"")||null}function sn(){const e=window.open("","_blank");return e?(e.document.write('<!doctype html><title>Opening sandbox preview</title><body style="margin:0;background:#05070a;color:#f5f5f4;font:14px system-ui,sans-serif;display:grid;place-items:center;height:100vh;">Opening sandbox preview...</body>'),e.document.close(),e):null}function ye(e,n){if(!n){e?.close();return}if(e){e.opener=null,e.location.href=n;return}window.open(n,"_blank","noopener,noreferrer")}function mt(e){const n=rn(e),a=ln(te(e?.resources)),i=te(te(e?.inputs).schema),g=te(i.properties),u=new Set(bt(i.required)),l=[],x=[];for(const[p,N]of Object.entries(g)){const c=te(N),U=te(c["x-openpond-upload"]??c.xOpenPondUpload),I=typeof c.type=="string"?c.type:"string",H=te(c.items),z=pn(c,U),v=c.format==="file"||U.enabled===!0||I==="array"&&H.format==="file",M=typeof c.title=="string"&&c.title.trim()?c.title.trim():xn(p);if(v){x.push({name:p,label:M,required:u.has(p),multiple:I==="array"||U.multiple===!0,accept:gn(U,c),targetPath:bn(U,p),targetNames:z});continue}(I==="string"||I==="number"||I==="integer"||I==="boolean")&&l.push({name:p,label:M,required:u.has(p),type:I,defaultValue:typeof c.default=="string"||typeof c.default=="number"||typeof c.default=="boolean"?String(c.default):"",targetNames:z})}return{entrypoints:n,scalarInputs:l,fileInputs:x,envInputs:cn(e),resources:a,volumes:on(e,x),schedules:dn(e)}}function Fe(e,n){const a=n.trim();return e.filter(i=>!i.targetNames||i.targetNames.length===0?!0:i.targetNames.includes(a))}function rn(e){return e?Ye(e).flatMap(n=>{if(n.kind==="action")return[];const a=n.name.trim(),i=n.command.trim(),g=Be(n.timeoutSeconds),u=n.ports.flatMap(l=>{const x=Be(l.port);return x?[{port:x,label:typeof l.label=="string"&&l.label.trim()?l.label.trim():"web",access:l.access==="public"?"public":"private",path:typeof l.path=="string"&&l.path.trim()?l.path.trim():"/"}]:[]});return a&&i?[{name:a,command:i,timeoutSeconds:g,ports:u}]:[]}):[]}function ln(e){return{cpu:Qe(e.cpu)??1,memoryGb:Qe(e.memoryGb)??1,diskGb:Qe(e.diskGb)??8}}function on(e,n){const a=Array.isArray(e?.volumes)?e.volumes:[];if(a.length>0)return a.map((u,l)=>{const x=l===0?"volume":`volume-${l+1}`,p=typeof u.name=="string"&&u.name.trim()?u.name.trim():x;return{name:p,mountPath:typeof u.mountPath=="string"&&u.mountPath.trim()?u.mountPath.trim():`/workspace/volumes/${p}`,...Be(u.storageGb)?{storageGb:Be(u.storageGb)??void 0}:{},deleteOnSandboxDelete:u.deleteOnSandboxDelete===!0}});const i=n.find(u=>u.targetPath.startsWith("volumes/"));if(!i)return[];const[,g="volume"]=i.targetPath.split("/");return[{name:g,mountPath:`/workspace/volumes/${g}`,storageGb:8,deleteOnSandboxDelete:!1}]}function cn(e){return(Array.isArray(e?.inputs.env)?e.inputs.env:[]).flatMap(a=>{const i=typeof a.name=="string"?a.name.trim():"";return i?[{name:i,required:a.required===!0,secret:a.secret!==!1,description:typeof a.description=="string"?a.description.trim():""}]:[]})}function dn(e){return e?.schedules?.length?e.schedules.flatMap(n=>{const a=typeof n.name=="string"?n.name.trim():"",i=un(n);if(!a||!i.scheduleExpression)return[];try{return[{name:a,...typeof n.description=="string"&&n.description.trim()?{description:n.description.trim()}:{},enabled:!1,...i,...typeof n.timezone=="string"&&n.timezone.trim()?{timezone:n.timezone.trim()}:{},...typeof n.startAt=="string"&&n.startAt.trim()?{startAt:n.startAt.trim()}:{},...typeof n.endAt=="string"&&n.endAt.trim()?{endAt:n.endAt.trim()}:{},...typeof n.maxRuns=="number"&&Number.isInteger(n.maxRuns)&&n.maxRuns>0?{maxRuns:n.maxRuns}:{},runtimePolicy:n.runtimePolicy,target:mn(e,n),...n.budget?{budget:n.budget}:{},...n.resources?{resources:n.resources}:{},...n.quotas?{quotas:n.quotas}:{},...n.lifecycle?{lifecycle:n.lifecycle}:{},...n.retentionPolicy?{retentionPolicy:n.retentionPolicy}:{},...n.env?{env:n.env}:{},...n.integrationLeases?{integrationLeases:n.integrationLeases}:{},metadata:{...te(n.metadata),manifestScheduleName:a,source:"openpond-app-sandbox-template-start"}}]}catch{return[]}}):[]}function un(e){return e.scheduleExpression?{scheduleType:e.scheduleType??"cron",scheduleExpression:e.scheduleExpression}:e.rate?{scheduleType:"rate",scheduleExpression:/^rate\(/i.test(e.rate)?e.rate:`rate(${e.rate})`}:e.once?{scheduleType:"once",scheduleExpression:/^at\(/i.test(e.once)?e.once:`at(${e.once})`}:{scheduleType:"cron",scheduleExpression:e.cron??""}}function mn(e,n){const a=n.command??n.target?.command??null;if(a)return{kind:"command",command:a,requiresStart:n.requiresStart??n.target?.requiresStart??!1};const i=n.target?.kind??"action";if(i==="start")return{kind:"command",command:e.start.command,requiresStart:n.requiresStart??n.target?.requiresStart??e.start.requiresStart??!1};if(i==="service"){const l=n.target?.name??"",x=e.services.find(p=>p.name===l);if(!x)throw new Error("schedule_service_target_missing");return{kind:"command",command:x.command,requiresStart:n.requiresStart??n.target?.requiresStart??x.requiresStart??!1}}const g=n.actionName??n.action??n.target?.actionName??(n.target?.kind==="action"?n.target?.name:void 0),u=e.actions.find(l=>l.name===g);if(!u)throw new Error("schedule_action_target_missing");return{kind:"command",command:u.command,requiresStart:n.requiresStart??n.target?.requiresStart??u.requiresStart??!1}}function pt(e,n){return e.flatMap(a=>{const i=(n[a.name]??"").trim();return i?[{name:a.name,secretRef:i}]:[]})}function gt(e,n){const a={};for(const i of e){const g=n[i.name]??"";if(!(!g.trim()&&!i.required))if(i.type==="boolean")a[i.name]=g==="true";else if(i.type==="number"||i.type==="integer"){const u=Number(g);Number.isFinite(u)&&(a[i.name]=i.type==="integer"?Math.trunc(u):u)}else a[i.name]=g}return a}function pn(e,n){const a=e["x-openpond-targets"]??e.xOpenPondTargets??n.targets??n.actions,i=bt(a).map(g=>g.trim()).filter(Boolean);return i.length>0?[...new Set(i)]:null}function gn(e,n){return typeof e.accept=="string"?e.accept.trim():Array.isArray(e.accept)?e.accept.filter(a=>typeof a=="string").join(","):typeof n.accept=="string"?n.accept.trim():""}function bn(e,n){return(typeof e.targetPath=="string"&&e.targetPath.trim()?e.targetPath.trim():typeof e.path=="string"&&e.path.trim()?e.path.trim():`uploads/${n}`).replace(/^\/+/,"").replace(/^workspace\//,"").replace(/\/+$/,"")}function Qe(e){const n=Number(e);return Number.isFinite(n)&&n>0?n:null}function Be(e){const n=Number(e);return Number.isInteger(n)&&n>0?n:null}function fn(e,n){return[n,...e.slice(1)]}function bt(e){return Array.isArray(e)?e.filter(n=>typeof n=="string"):[]}function xn(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[-_]+/g," ").replace(/\b\w/g,n=>n.toUpperCase())}function te(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function hn({busy:e,defaultRepoUrl:n,projectName:a,commitBeforeCreate:i,templateManifest:g,uploadBeforeCreate:u,onClose:l,onSubmit:x}){const p=m.useMemo(()=>mt(g),[g]),N=p.entrypoints[0]??null,[c,U]=m.useState(n),[I,H]=m.useState(N?.name??""),[z,v]=m.useState(N?.command??""),[M,V]=m.useState(N?.timeoutSeconds?String(N.timeoutSeconds):""),[X,b]=m.useState(`Update ${a}`),[j,w]=m.useState("0.05"),[_,F]=m.useState(()=>Object.fromEntries(p.scalarInputs.map(r=>[r.name,r.defaultValue]))),[B,ae]=m.useState(()=>Object.fromEntries(p.envInputs.map(r=>[r.name,""]))),[Z,fe]=m.useState({}),K=p.volumes[0]??null,[Y,o]=m.useState(p.volumes.length>0||p.fileInputs.length>0),[P,A]=m.useState(K?.name??"volume"),[R,$]=m.useState(K?.mountPath??"/workspace/volumes/volume"),[J,ce]=m.useState(String(K?.storageGb??8)),[Pe,de]=m.useState(!(K?.deleteOnSandboxDelete??!1)),[q,ze]=m.useState(p.schedules),Me=p.entrypoints.find(r=>r.name===I)??N,se=Me?.ports??[],re=se[0]??null,[ue,xe]=m.useState(!!re),[Ce,me]=m.useState(re?String(re.port):""),D=Number(Ce),he=Number(j),ie=Number(J),le=Number(M),ke=!M.trim()||Number.isInteger(le)&&le>0&&le<=86400,oe=!ue||Number.isInteger(D)&&D>=qt&&D<=Ut&&se.some(r=>r.port===D),Ie=Number.isFinite(he)&&he>0,ne=!Y||Number.isInteger(ie)&&ie>0,G=q.every(r=>!r.enabled||!!r.scheduleExpression.trim()),W=Fe(p.scalarInputs,I),je=Fe(p.fileInputs,I),qe=p.envInputs.every(r=>!r.required||!!(B[r.name]??"").trim()),ve=p.envInputs.filter(r=>r.required&&!(B[r.name]??"").trim()),Re=(u||!!c.trim())&&!!z.trim()&&Ie&&ke&&ne&&W.every(r=>!r.required||!!(_[r.name]??"").trim())&&je.every(r=>!r.required||(Z[r.name]?.length??0)>0)&&qe&&G&&oe;function He(r){H(r);const f=p.entrypoints.find(E=>E.name===r);if(!f)return;v(f.command),V(f.timeoutSeconds?String(f.timeoutSeconds):"");const y=f.ports[0]??null;me(y?String(y.port):""),xe(!!y)}function _e(r,f){F(y=>({...y,[r]:f}))}function pe(r,f){ae(y=>({...y,[r]:f}))}function Ve(r,f){const y=Array.from(f.target.files??[]);fe(E=>({...E,[r.name]:r.multiple?y:y.slice(0,1)}))}function ee(r,f){ze(y=>y.map((E,ge)=>ge===r?{...E,...f}:E))}function Ee(r){r.preventDefault(),!(!Re||e)&&x({repoUrl:c.trim(),command:z.trim(),entrypointName:I,commitMessage:X.trim(),budgetUsd:j.trim(),params:gt(W,_),env:pt(p.envInputs,B),timeoutSeconds:M.trim()&&Number.isInteger(le)?le:Me?.timeoutSeconds??null,uploads:je.flatMap(f=>{const y=Z[f.name]??[];return y.length>0?[{inputName:f.name,label:f.label,targetPath:f.targetPath,multiple:f.multiple,files:y}]:[]}),resources:p.resources,volumes:Y?fn(p.volumes,{...P.trim()?{name:P.trim()}:{},...R.trim()?{mountPath:R.trim()}:{},...Number.isInteger(ie)&&ie>0?{storageGb:ie}:{},deleteOnSandboxDelete:!Pe}):[],schedules:q.filter(f=>f.enabled),openPreview:ue,previewPort:ue?D:null,previewLabel:se.find(f=>f.port===D)?.label??"web",previewAccess:se.find(f=>f.port===D)?.access??"private"})}return t.jsx("div",{className:"git-dialog-backdrop",role:"presentation",children:t.jsxs("form",{className:"git-dialog run-once-dialog sandbox-start-dialog",role:"dialog","aria-modal":"true","aria-label":"Start sandbox",onSubmit:Ee,children:[t.jsx("button",{className:"git-dialog-close",disabled:e,type:"button",title:"Close","aria-label":"Close",onClick:l,children:t.jsx(ut,{size:15})}),t.jsxs("div",{className:"sandbox-start-dialog-heading",children:[t.jsx("div",{className:"git-dialog-icon",children:t.jsx(we,{size:18})}),t.jsx("h2",{children:"Start sandbox"}),t.jsxs("div",{className:"git-dialog-row",children:[t.jsx("span",{children:"Project"}),t.jsx("strong",{children:a})]})]}),t.jsxs("div",{className:"sandbox-start-dialog-body",children:[u?null:t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Repository"}),t.jsx("input",{disabled:e,value:c,onChange:r=>U(r.target.value)})]}),i?t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Commit message"}),t.jsx("input",{disabled:e,value:X,onChange:r=>b(r.target.value)})]}):null,p.entrypoints.length>0?t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Run target"}),t.jsx("select",{disabled:e,value:I,onChange:r=>He(r.target.value),children:p.entrypoints.map(r=>t.jsx("option",{value:r.name,children:r.name},r.name))})]}):null,t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Shell command"}),t.jsx("input",{disabled:e,value:z,onChange:r=>v(r.target.value)})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Timeout seconds"}),t.jsx("input",{disabled:e,inputMode:"numeric",value:M,onChange:r=>V(r.target.value)})]}),W.map(r=>r.type==="boolean"?t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:(_[r.name]??"")==="true",disabled:e,type:"checkbox",onChange:f=>_e(r.name,f.target.checked?"true":"false")}),t.jsx("span",{}),r.label]},r.name):t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:r.label}),t.jsx("input",{disabled:e,inputMode:r.type==="number"||r.type==="integer"?"decimal":void 0,value:_[r.name]??"",onChange:f=>_e(r.name,f.target.value)})]},r.name)),je.map(r=>t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:r.label}),t.jsx("input",{accept:r.accept||void 0,disabled:e,multiple:r.multiple,type:"file",onChange:f=>Ve(r,f)})]},r.name)),p.envInputs.length>0?t.jsxs("div",{className:"sandbox-start-env-section",children:[t.jsx("div",{className:"sandbox-start-section-title",children:"Environment"}),ve.length>0?t.jsxs("p",{className:"sandbox-start-env-warning",role:"status",children:["Required sandbox secret ref missing: ",ve.map(r=>r.name).join(", ")]}):null,p.envInputs.map(r=>{const f=B[r.name]??"",y=r.required&&!f.trim(),E=`sandbox-env-${r.name}-description`;return t.jsxs("label",{className:"git-dialog-field",children:[t.jsxs("span",{children:[r.name,r.required?" *":""]}),t.jsx("input",{"aria-describedby":E,"aria-invalid":y,disabled:e,placeholder:"openpond://secret/...",value:f,onChange:ge=>pe(r.name,ge.target.value)}),t.jsx("small",{id:E,children:y?"Add a sandbox secret ref before starting.":r.description||"Sandbox secret ref only."})]},r.name)})]}):null,je.length>0||p.volumes.length>0?t.jsxs(t.Fragment,{children:[t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:Y,disabled:e,type:"checkbox",onChange:r=>o(r.target.checked)}),t.jsx("span",{}),"Mount volume"]}),Y?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"run-once-dialog-grid",children:[t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Volume"}),t.jsx("input",{disabled:e,value:P,onChange:r=>A(r.target.value)})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Storage GiB"}),t.jsx("input",{disabled:e,inputMode:"numeric",value:J,onChange:r=>ce(r.target.value)})]})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Mount path"}),t.jsx("input",{disabled:e,value:R,onChange:r=>$(r.target.value)})]}),t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:Pe,disabled:e,type:"checkbox",onChange:r=>de(r.target.checked)}),t.jsx("span",{}),"Keep volume"]})]}):null]}):null,q.length>0?t.jsxs("div",{className:"sandbox-start-schedules",children:[t.jsx("div",{className:"sandbox-start-section-title",children:"Schedules"}),q.map((r,f)=>t.jsxs("div",{className:"sandbox-start-schedule-row",children:[t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:r.enabled,disabled:e,type:"checkbox",onChange:y=>ee(f,{enabled:y.target.checked})}),t.jsx("span",{}),r.name]}),t.jsxs("div",{className:"run-once-dialog-grid",children:[t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Type"}),t.jsxs("select",{disabled:e||!r.enabled,value:r.scheduleType,onChange:y=>ee(f,{scheduleType:y.target.value}),children:[t.jsx("option",{value:"rate",children:"Rate"}),t.jsx("option",{value:"cron",children:"Cron"}),t.jsx("option",{value:"once",children:"Once"})]})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Max runs"}),t.jsx("input",{disabled:e||!r.enabled,inputMode:"numeric",value:r.maxRuns??"",onChange:y=>{const E=Number(y.target.value);ee(f,{maxRuns:Number.isInteger(E)&&E>0?E:null})}})]})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Expression"}),t.jsx("input",{disabled:e||!r.enabled,value:r.scheduleExpression,onChange:y=>ee(f,{scheduleExpression:y.target.value})})]})]},r.name))]}):null,t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Budget"}),t.jsx("input",{disabled:e,inputMode:"decimal",value:j,onChange:r=>w(r.target.value)})]}),se.length>0?t.jsxs(t.Fragment,{children:[t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:ue,disabled:e,type:"checkbox",onChange:r=>xe(r.target.checked)}),t.jsx("span",{}),"Open preview"]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Preview port"}),t.jsx("select",{disabled:e||!ue,value:Ce,onChange:r=>me(r.target.value),children:se.map(r=>t.jsx("option",{value:r.port,children:r.label?`${r.label} (${r.port})`:r.port},r.port))})]})]}):null]}),t.jsxs("div",{className:"git-dialog-footer sandbox-start-dialog-footer",children:[t.jsx("button",{className:"git-dialog-secondary",disabled:e,type:"button",onClick:l,children:"Cancel"}),t.jsxs("button",{className:"git-dialog-primary",disabled:e||!Re,title:qe?void 0:"Required sandbox secret refs are missing.",type:"submit",children:[t.jsx(Lt,{size:14}),"Start"]})]})]})})}function jn({busy:e,projectName:n,templateManifest:a,onClose:i,onSubmit:g}){const u=m.useMemo(()=>mt(a),[a]),l=m.useMemo(()=>a?Ye(a).filter(o=>o.kind==="action"):[],[a]),x=l[0]??null,[p,N]=m.useState("sandbox"),[c,U]=m.useState(x?.name??""),[I,H]=m.useState(()=>Object.fromEntries(u.scalarInputs.map(o=>[o.name,o.defaultValue]))),[z,v]=m.useState(()=>Object.fromEntries(u.envInputs.map(o=>[o.name,""]))),[M,V]=m.useState({}),X=Fe(u.scalarInputs,c),b=Fe(u.fileInputs,c),j=p==="sandbox"?u.envInputs:[],w=X.every(o=>!o.required||!!(I[o.name]??"").trim()),_=b.every(o=>!o.required||(M[o.name]?.length??0)>0),F=j.every(o=>!o.required||!!(z[o.name]??"").trim()),B=j.filter(o=>o.required&&!(z[o.name]??"").trim()),ae=!!c&&w&&_&&F;function Z(o,P){H(A=>({...A,[o]:P}))}function fe(o,P){v(A=>({...A,[o]:P}))}function K(o,P,A){const R=Array.from(A.target.files??[]);V($=>({...$,[o]:P?R:R.slice(0,1)}))}function Y(o){o.preventDefault(),!(!ae||e)&&g({mode:p,target:c,params:gt(X,I),env:p==="sandbox"?pt(j,z):[],uploads:b.flatMap(P=>{const A=M[P.name]??[];return A.length>0?[{inputName:P.name,label:P.label,targetPath:P.targetPath,multiple:P.multiple,files:A}]:[]})})}return t.jsx("div",{className:"git-dialog-backdrop",role:"presentation",children:t.jsxs("form",{className:"git-dialog run-once-dialog sandbox-start-dialog",role:"dialog","aria-modal":"true","aria-label":"Run sandbox action",onSubmit:Y,children:[t.jsx("button",{className:"git-dialog-close",disabled:e,type:"button",title:"Close","aria-label":"Close",onClick:i,children:t.jsx(ut,{size:15})}),t.jsxs("div",{className:"sandbox-start-dialog-heading",children:[t.jsx("div",{className:"git-dialog-icon",children:t.jsx($e,{size:18})}),t.jsx("h2",{children:"Run action"}),t.jsxs("div",{className:"git-dialog-row",children:[t.jsx("span",{children:"Project"}),t.jsx("strong",{children:n})]})]}),t.jsxs("div",{className:"sandbox-start-dialog-body",children:[t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Action"}),t.jsx("select",{disabled:e||l.length===0,value:c,onChange:o=>U(o.target.value),children:l.map(o=>t.jsx("option",{value:o.name,children:o.name},o.name))})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Run on"}),t.jsxs("select",{disabled:e,value:p,onChange:o=>N(o.target.value==="local"?"local":"sandbox"),children:[t.jsx("option",{value:"sandbox",children:"Hosted sandbox (start/update)"}),t.jsx("option",{value:"local",children:"Local machine"})]})]}),X.map(o=>o.type==="boolean"?t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:(I[o.name]??"")==="true",disabled:e,type:"checkbox",onChange:P=>Z(o.name,P.target.checked?"true":"false")}),t.jsx("span",{}),o.label]},o.name):t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:o.label}),t.jsx("input",{disabled:e,inputMode:o.type==="number"||o.type==="integer"?"decimal":void 0,value:I[o.name]??"",onChange:P=>Z(o.name,P.target.value)})]},o.name)),b.map(o=>t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:o.label}),t.jsx("input",{accept:o.accept||void 0,disabled:e,multiple:o.multiple,type:"file",onChange:P=>K(o.name,o.multiple,P)})]},o.name)),j.length>0?t.jsxs("div",{className:"sandbox-start-env-section",children:[t.jsx("div",{className:"sandbox-start-section-title",children:"Environment"}),B.length>0?t.jsxs("p",{className:"sandbox-start-env-warning",role:"status",children:["Required sandbox secret ref missing: ",B.map(o=>o.name).join(", ")]}):null,j.map(o=>{const P=z[o.name]??"",A=o.required&&!P.trim(),R=`sandbox-action-env-${o.name}-description`;return t.jsxs("label",{className:"git-dialog-field",children:[t.jsxs("span",{children:[o.name,o.required?" *":""]}),t.jsx("input",{"aria-describedby":R,"aria-invalid":A,disabled:e,placeholder:"openpond://secret/...",value:P,onChange:$=>fe(o.name,$.target.value)}),t.jsx("small",{id:R,children:A?"Add a sandbox secret ref before running.":o.description||"Sandbox secret ref only."})]},o.name)})]}):null]}),t.jsxs("div",{className:"git-dialog-footer sandbox-start-dialog-footer",children:[t.jsx("button",{className:"git-dialog-secondary",disabled:e,type:"button",onClick:i,children:"Cancel"}),t.jsxs("button",{className:"git-dialog-primary",disabled:e||!ae,title:F?void 0:"Required sandbox secret refs are missing.",type:"submit",children:[t.jsx($e,{size:14}),"Run"]})]})]})})}function ft(e,n){const a=e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"agent";return n==="cron"?`name: ${a}
|
|
2
|
-
version: 0.1.0
|
|
3
|
-
useCase: scheduled_report
|
|
4
|
-
start:
|
|
5
|
-
command: pnpm report
|
|
6
|
-
schedules:
|
|
7
|
-
- name: daily-report
|
|
8
|
-
command: pnpm report
|
|
9
|
-
cron: "0 9 * * *"`:n==="background"?`name: ${a}
|
|
10
|
-
version: 0.1.0
|
|
11
|
-
useCase: background_worker
|
|
12
|
-
start:
|
|
13
|
-
command: pnpm worker
|
|
14
|
-
services:
|
|
15
|
-
- name: worker
|
|
16
|
-
command: pnpm worker`:n==="resources"?`name: ${a}
|
|
17
|
-
version: 0.1.0
|
|
18
|
-
useCase: resource_profile
|
|
19
|
-
resources:
|
|
20
|
-
cpu: 1
|
|
21
|
-
memoryGb: 2
|
|
22
|
-
diskGb: 16
|
|
23
|
-
start:
|
|
24
|
-
command: pnpm start`:`name: ${a}
|
|
25
|
-
version: 0.1.0
|
|
26
|
-
useCase: action
|
|
27
|
-
start:
|
|
28
|
-
command: pnpm start
|
|
29
|
-
actions:
|
|
30
|
-
- name: hello
|
|
31
|
-
command: pnpm hello`}function vn(e,n){return n||(e==="missing_config"?`${Ne} missing`:e==="needs_project"?"Local config is ready":e==="needs_sync"?"Project needs manifest sync":e==="needs_agent"?"Project is synced":e==="ready"?"Agent is ready":"Setup unavailable")}function Sn(e){return e?.source==="openpond"?"OpenPond Git":e?.source==="github"?"GitHub":e?.source==="local_git"?"Local Git":e?.source==="local_folder"?"Local folder":"Workspace"}function yn(e){const n=De(e.data),a=De(n.remote);return(typeof a.remoteUrl=="string"?a.remoteUrl.trim():"")||null}function Nn(e){const n=De(e.data),a=De(n.sandbox);return(typeof a.id=="string"?a.id.trim():"")||null}function it(e){return e?typeof e.metadata?.name=="string"&&e.metadata.name.trim()?e.metadata.name.trim():e.projectId?`Project sandbox ${Ze(e.id)}`:e.agentId?`Agent sandbox ${Ze(e.id)}`:`Sandbox ${Ze(e.id)}`:null}function Pn(e,n){return{sourceSandboxId:n,name:e.name,...e.description?{description:e.description}:{},scheduleType:e.scheduleType,scheduleExpression:e.scheduleExpression,enabled:!0,...e.timezone?{timezone:e.timezone}:{},...e.startAt?{startAt:e.startAt}:{},...e.endAt?{endAt:e.endAt}:{},...e.maxRuns!==void 0?{maxRuns:e.maxRuns}:{},...e.runtimePolicy?{runtimePolicy:e.runtimePolicy}:{},target:e.target,...e.budget?{budget:e.budget}:{},...e.resources?{resources:e.resources}:{},...e.quotas?{quotas:e.quotas}:{},...e.lifecycle?{lifecycle:e.lifecycle}:{},...e.retentionPolicy?{retentionPolicy:e.retentionPolicy}:{},...e.env?{env:e.env}:{},...e.integrationLeases?{integrationLeases:e.integrationLeases}:{},metadata:e.metadata??{},managementSource:"openpond.yaml",manifestPath:Ne}}function Cn(e){const n=e?.gitOwner?.trim()??"",a=e?.gitRepo?.trim()??"",i=e?.gitHost?.trim()??"";if(!n||!a||!i)return null;const g=a.endsWith(".git")?a:`${a}.git`;return/^https?:\/\//i.test(i)?`${i.replace(/\/+$/,"")}/${n}/${g}`:`https://${i.replace(/\/+$/,"")}/${n}/${g}`}function In(e,n){const a=n.trim();if(e==="github_repo"){const i=a.replace(/^https:\/\/github\.com\//i,"").replace(/^git@github\.com:/i,"").replace(/\.git$/i,""),[g,u]=i.split("/").filter(Boolean);return{gitHost:"github.com",gitOwner:g??null,gitRepo:u??null,internalRepoPath:null,templateRepoUrl:null}}return e==="internal_repo"?{gitHost:"openpond.ai",gitOwner:null,gitRepo:a.split("/").filter(Boolean).at(-1)??null,internalRepoPath:a||null,templateRepoUrl:null}:e==="template"?{gitHost:null,gitOwner:null,gitRepo:null,internalRepoPath:null,templateRepoUrl:a||null}:{gitHost:null,gitOwner:null,gitRepo:null,internalRepoPath:null,templateRepoUrl:null}}function lt(e,n){const a=e.trim().replace(/^\/+/,"").replace(/^workspace\//,"").replace(/\/+$/,""),i=n.trim().replace(/[/\\]+/g,"-").replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"upload";return`${a||"uploads"}/${i}`}function Rn(e,n){return`OPENPOND_REPLAY_PARAMS_BASE64='${En({input:n})}' ${e}`}function _n(e,n,a){return["cd",ot(e),"&&","openpond","sandbox-template",n,"--file",Ne,"--target",ot(a)].join(" ")}function ot(e){return`'${e.replace(/'/g,"'\\''")}'`}function ct(e){return new Promise((n,a)=>{const i=new FileReader;i.onload=()=>{const g=typeof i.result=="string"?i.result:"",[,u=""]=g.split(",",2);n(u)},i.onerror=()=>a(i.error??new Error("Failed to read file")),i.readAsDataURL(e)})}function En(e){const n=JSON.stringify(e),a=new TextEncoder().encode(n);let i="";for(const g of a)i+=String.fromCharCode(g);return window.btoa(i)}function De(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function be(e){return e instanceof Error?e.message:String(e)}function Ze(e){return e.length<=10?e:`${e.slice(0,6)}...${e.slice(-4)}`}async function An(e){e&&(await e("sandbox_preserve_source"),await e("sandbox_stop"))}function wn(e){return{...e.teamId?{teamId:e.teamId}:{},...e.projectId?{projectId:e.projectId}:{},runtime:{runtimeId:e.runtimeId},visibility:"team",budget:{maxUsd:"0.05"},quotas:{idleTimeoutSeconds:900,maxSpendUsd:"0.05"},metadata:{source:"openpond-app-environment-menu-sandbox-resume",resumeSandboxId:e.id,previousState:e.state}}}function $n({canCreateSandboxProject:e,canInitGit:n,defaultSandboxRepoUrl:a,gitWorkspace:i,hasRemote:g,isProjectWorkspace:u,isSandboxWorkspace:l,managed:x,onOpenCommitDialog:p,onRunTerminalCommand:N,onWorkspaceToolAction:c,projectSandboxTemplate:U,projectSandboxTemplateValid:I,sandboxTemplateActionTargetCount:H,sandboxTemplateServiceTargets:z,sandboxResumeTarget:v,selectedApp:M,selectedProject:V,setSandboxCreateDialogOpen:X,setSandboxRunActionDialogOpen:b,workspaceBusyValue:j,workspaceReady:w,workspaceState:_}){const F=[{icon:t.jsx(Ot,{size:14}),label:"Initialize Git",disabled:x||!n||j||!w||!c,onSelect:()=>c?.("git_init")},{icon:t.jsx(Wt,{size:14}),label:"Commit changes",disabled:x||!i||j||!w||!_?.dirty||!p,onSelect:()=>p?.("commit")},{icon:t.jsx(rt,{size:14}),label:"Push branch",disabled:x||!i||j||!w||!g||!c,onSelect:()=>c?.("git_push")},{icon:t.jsx(Je,{size:14}),label:"Fetch remote",disabled:x||!i||j||!w||!g||!c,onSelect:()=>c?.("git_fetch")},{icon:t.jsx(Ft,{size:14}),label:"Create PR",disabled:!0,onSelect:()=>{}}],B=[...U?[]:[{icon:t.jsx(we,{size:14}),label:"Create sandbox template",disabled:x||j||!w||!c,onSelect:()=>c?.("create_sandbox_template_scaffold")}],{icon:t.jsx(at,{size:14}),label:`Validate ${Ne}`,disabled:x||j||!w||!c,onSelect:()=>c?.("validate_sandbox_template")},{icon:t.jsx(nn,{size:14}),label:"Build template",disabled:x||j||!w||!c,onSelect:()=>c?.("build_sandbox_template")},{icon:t.jsx($e,{size:14}),label:"Run start locally",disabled:x||j||!w||!c,onSelect:()=>c?.("run_sandbox_template",{mode:"local",target:"start"})},{icon:t.jsx($e,{size:14}),label:"Run action",disabled:x||j||!w||!I||H===0,onSelect:()=>b(!0)},...z.map(K=>({icon:t.jsx(Bt,{size:14}),label:`Dev ${K.name} locally`,disabled:x||j||!w||!I||!V?.sandboxTemplate?.rootPath||!N,onSelect:()=>N?.(_n(V?.sandboxTemplate?.rootPath??"","dev",K.name))})),{icon:t.jsx(we,{size:14}),label:"Start sandbox",disabled:x||j||!w||!e,onSelect:()=>X(!0)}],ae=[{icon:t.jsx(Je,{size:14}),label:"Sandbox status",disabled:j||!c,onSelect:()=>c?.("sandbox_status")},{icon:t.jsx($e,{size:14}),label:"Resume sandbox",disabled:j||!c||!v?.runtimeId||v.state==="running"||v.state==="creating",onSelect:()=>v?.runtimeId?c?.("sandbox_create",wn(v)):void 0},{icon:t.jsx(Dt,{size:14}),label:"Sandbox logs",disabled:j||!c,onSelect:()=>c?.("sandbox_logs")},{icon:t.jsx(at,{size:14}),label:"Receipts",disabled:j||!c,onSelect:()=>c?.("sandbox_receipts")},{icon:t.jsx(Gt,{size:14}),label:"Export patch",disabled:j||!c,onSelect:()=>c?.("sandbox_git_export_patch")},{icon:t.jsx(rt,{size:14}),label:"Apply locally",disabled:j||!c,onSelect:()=>c?.("sandbox_git_apply_patch_local")},{icon:t.jsx(en,{size:14}),label:"Checkpoint and stop",disabled:j||!c,onSelect:()=>An(c)}];return{gitActionItems:F,sandboxActionItems:l?ae:u?B:[{icon:t.jsx(we,{size:14}),label:a?"Create sandbox from repo":"Create sandbox",disabled:j||!c,onSelect:()=>c?.("sandbox_create",{...a?{repo:a}:{},visibility:"team",budget:{maxUsd:"0.05"},quotas:{maxSpendUsd:"0.05"},metadata:{source:"openpond-app-environment-menu-sandbox",...M?.name?{appName:M.name}:{}}})},{icon:t.jsx(Je,{size:14}),label:"List templates",disabled:j||!c,onSelect:()=>c?.("sandbox_templates")}]}}function zn({busy:e,error:n,projectName:a,onClose:i,onSubmit:g}){const[u,l]=m.useState("action"),[x,p]=m.useState(Ne),N=a.trim()||"local-agent";return t.jsxs(Ge,{title:"Add Agent config",busy:e,error:n,onClose:i,children:[t.jsxs("label",{children:[t.jsx("span",{children:"Template preset"}),t.jsxs("select",{value:u,onChange:c=>l(c.target.value),disabled:e,children:[t.jsx("option",{value:"action",children:"Action"}),t.jsx("option",{value:"cron",children:"Cron"}),t.jsx("option",{value:"background",children:"Background worker"}),t.jsx("option",{value:"resources",children:"Resource profile"})]})]}),t.jsxs("label",{children:[t.jsx("span",{children:"Manifest path"}),t.jsx("input",{value:x,onChange:c=>p(c.target.value),disabled:e})]}),t.jsx("pre",{children:ft(N,u)}),t.jsx(Te,{busy:e,actionLabel:"Write config",canSubmit:!!x.trim(),onClose:i,onSubmit:()=>g({name:N,preset:u,manifestPath:x.trim()})})]})}function Mn({busy:e,defaultBranch:n,defaultTeamId:a,error:i,projectName:g,sourceIdentity:u,onClose:l,onSubmit:x}){const p=a,[N,c]=m.useState(g),[U,I]=m.useState(/github\.com[:/]/i.test(u)?"github_repo":"manual"),[H,z]=m.useState(u),[v,M]=m.useState(n||"main"),[V,X]=m.useState(!0);return t.jsxs(Ge,{title:"Connect Project",busy:e,error:i,onClose:l,children:[t.jsxs("label",{children:[t.jsx("span",{children:"Project name"}),t.jsx("input",{value:N,onChange:b=>c(b.target.value),disabled:e})]}),t.jsxs("div",{className:"agent-setup-two-col",children:[t.jsxs("label",{children:[t.jsx("span",{children:"Source type"}),t.jsxs("select",{value:U,onChange:b=>I(b.target.value),disabled:e,children:[t.jsx("option",{value:"manual",children:"Manual"}),t.jsx("option",{value:"github_repo",children:"GitHub repo"}),t.jsx("option",{value:"internal_repo",children:"Internal repo"}),t.jsx("option",{value:"template",children:"Template"})]})]}),t.jsxs("label",{children:[t.jsx("span",{children:"Default branch"}),t.jsx("input",{value:v,onChange:b=>M(b.target.value),disabled:e})]})]}),t.jsxs("label",{children:[t.jsx("span",{children:"Source identity"}),t.jsx("input",{value:H,onChange:b=>z(b.target.value),disabled:e})]}),t.jsxs("label",{className:"agent-setup-check",children:[t.jsx("input",{type:"checkbox",checked:V,onChange:b=>X(b.target.checked),disabled:e}),t.jsx("span",{children:"Sync now"})]}),t.jsx(Te,{busy:e,actionLabel:V?"Connect and sync":"Connect Project",canSubmit:!!(N.trim()&&p),onClose:l,onSubmit:()=>x({teamId:p,projectName:N.trim(),sourceType:U,sourceIdentity:H.trim(),defaultBranch:v.trim(),syncNow:V})})]})}function qn({busy:e,defaultName:n,error:a,onClose:i,onSubmit:g}){const[u,l]=m.useState(n),[x,p]=m.useState(!0);return t.jsxs(Ge,{title:"Create Agent",busy:e,error:a,onClose:i,children:[t.jsxs("label",{children:[t.jsx("span",{children:"Agent name"}),t.jsx("input",{value:u,onChange:N=>l(N.target.value),disabled:e})]}),t.jsx("div",{className:"agent-setup-summary",children:"Entire manifest · Manual trigger · Package defaults"}),t.jsxs("label",{className:"agent-setup-check",children:[t.jsx("input",{type:"checkbox",checked:x,onChange:N=>p(N.target.checked),disabled:e}),t.jsx("span",{children:"Create and test run"})]}),t.jsx(Te,{busy:e,actionLabel:"Create Agent",canSubmit:!!u.trim(),onClose:i,onSubmit:()=>g({agentName:u.trim(),createTestRun:x})})]})}function dt({actionLabel:e,busy:n,error:a,summary:i,title:g,onClose:u,onSubmit:l}){return t.jsxs(Ge,{title:g,busy:n,error:a,onClose:u,children:[t.jsx("div",{className:"agent-setup-summary",children:i}),t.jsx(Te,{busy:n,actionLabel:e,canSubmit:!0,onClose:u,onSubmit:l})]})}function Ge({busy:e,children:n,error:a,title:i,onClose:g}){return Tt(a),t.jsx("div",{className:"agent-setup-dialog-backdrop",role:"presentation",onMouseDown:g,children:t.jsxs("section",{className:"agent-setup-dialog",role:"dialog","aria-modal":"true","aria-label":i,onMouseDown:u=>u.stopPropagation(),children:[t.jsxs("header",{children:[t.jsx("h3",{children:i}),t.jsx("button",{type:"button",disabled:e,onClick:g,children:"Close"})]}),t.jsx("div",{className:"agent-setup-fields",children:n})]})})}function Te({actionLabel:e,busy:n,canSubmit:a,onClose:i,onSubmit:g}){return t.jsxs("div",{className:"agent-setup-dialog-actions",children:[t.jsx("button",{type:"button",disabled:n,onClick:i,children:"Cancel"}),t.jsx("button",{type:"button",disabled:n||!a,onClick:g,children:n?"Working":e})]})}function Un(e){return e.split(`
|
|
32
|
-
`).filter(n=>n.trim()).length}function Ln(e){return e.status==="loading"?"Checking sandbox changes":e.status==="error"?"Sandbox status unavailable":e.status!=="ready"?"Sandbox changes unknown":e.changedFiles===0?"Sandbox clean":`${e.changedFiles} sandbox changed ${e.changedFiles===1?"file":"files"}`}function On(e){return e>0&&e%3600===0?`${e/3600} hr`:e>0&&e%60===0?`${e/60} min`:`${e} sec`}function Oe(e){const n=e?.trim();if(!n)return null;if(n.startsWith("$"))return n;const a=Number(n);if(!Number.isFinite(a))return`$${n}`;if(a===0)return"$0";const i=a>=1?2:4;return`$${a.toFixed(i).replace(/0+$/,"").replace(/\.$/,"")}`}function Fn(e){return e.receipts.slice().sort((n,a)=>Date.parse(a.createdAt)-Date.parse(n.createdAt))[0]??null}function Bn(e){const n=Fn(e);if(n){const a=Oe(n.totalUsd);if(n.reason==="idle_timeout")return a?`stopped by idle timeout · charged ${a}`:"stopped by idle timeout";if(n.reason==="budget_exhausted")return a?`budget exhausted · charged ${a}`:"budget exhausted";if(e.state!=="running")return a?`receipt ${n.status} · charged ${a}`:`receipt ${n.status}`}if(e.reservation.status==="reserved"){const a=Oe(e.reservation.reservedUsd);return a?`reservation active ${a}`:"reservation active"}if(e.reservation.status==="captured"){const a=Oe(e.reservation.capturedUsd);return a?`captured ${a}`:"captured"}return e.reservation.status==="released"?"reservation released":null}function Dn(e){if(!e)return"Loading sandbox policy";const n=typeof e.quotas?.idleTimeoutSeconds=="number"&&e.quotas.idleTimeoutSeconds>0?e.quotas.idleTimeoutSeconds:null,a=Oe(e.quotas?.maxSpendUsd??e.budget.maxUsd),i=[n?`Auto-stop after ${On(n)} idle`:"Auto-stop policy unavailable"];a&&i.push(`cap ${a}`);const g=Bn(e);return g&&i.push(g),i.join(" · ")}function Yn({mode:e,busy:n,workspaceState:a,workspaceId:i,workspaceKind:g,selectedApp:u,selectedProject:l,workspaceBusy:x,defaultTeamId:p,workspaceDiff:N,managedWorkspace:c,showDiffControls:U,diffPanelOpen:I,onToggleDiffPanel:H,onRunTerminalCommand:z,onWorkspaceToolAction:v,onOpenCommitDialog:M,onWorkspaceBranchChange:V,onWorkspaceBranchCreate:X,connection:b,onBootstrap:j,onOpenSandboxWorkspace:w}){const[_,F]=m.useState(!1),[B,ae]=m.useState(!1),[Z,fe]=m.useState(""),[K,Y]=m.useState(!1),[o,P]=m.useState(!1),[A,R]=m.useState(null),[$,J]=m.useState(!1),[ce,Pe]=m.useState(!1),[de,q]=m.useState(null),[ze,Me]=m.useState([]),[se,re]=m.useState([]),[ue,xe]=m.useState([]),[Ce,me]=m.useState({status:"idle",changedFiles:0,error:null}),[D,he]=m.useState(null),ie=m.useRef(null),le=m.useRef(null),ke=!!a?.initialized,oe=!!x,Ie=!!c,ne=g==="local_project"||!!l,G=g==="sandbox"||g==="sandbox_template",W=G&&i?.trim()||null,je=G?0:N?.additions??0,qe=G?0:N?.deletions??0,ve=G?Ce.changedFiles:N?.filesChanged??a?.changedFilesCount??0,Re=ve>0,He=G?Ln(Ce):Re?`${ve} changed ${ve===1?"file":"files"}`:"No changes",_e=G?Dn(D):"",pe=a?.source!=="local_folder",Ve=ne&&a?.source==="local_folder",ee=!!a?.remoteUrl,Ee=a?.remoteUrl?.trim()??"",r=Cn(u??null),f=!!l?.sandboxTemplate?.detected,y=!!(l?.sandboxTemplate?.valid&&l.sandboxTemplate.normalizedManifest),E=l?.sandboxTemplate?.normalizedManifest??null,ge=E?Ye(E):[],xt=ge.filter(s=>s.kind==="action"),ht=ge.filter(s=>s.kind==="service"),jt=!!l?.linkedOpenPondApp?.appId,C=kt({localProject:l,organizations:ze,projects:se,agents:ue,defaultTeamId:p}),Xe=st(ze,p),Ue=ne&&f&&!jt,vt=ne&&f&&y&&(Ue||!!Ee),Le=a?Array.from(new Set([a.currentBranch,...a.branches].filter(s=>!!s))):[],St=a?.initialized?a.currentBranch??Le[0]??"No branch":"Not synced",yt=Sn(a),We=m.useMemo(()=>{const s=Z.trim().toLowerCase();return s?Le.filter(d=>d.toLowerCase().includes(s)):Le},[Le,Z]);m.useEffect(()=>{if(!_)return;function s(h){ie.current?.contains(h.target)||F(!1)}function d(h){h.key==="Escape"&&F(!1)}return document.addEventListener("pointerdown",s),document.addEventListener("keydown",d),()=>{document.removeEventListener("pointerdown",s),document.removeEventListener("keydown",d)}},[_]),m.useEffect(()=>{_&&B&&le.current?.focus()},[B,_]),m.useEffect(()=>{if(!b||!_||!ne)return;let s=!1;return Pe(!0),q(null),O.organizations(b).then(async d=>{if(s)return;const h=d.organizations.map(Ht).filter(L=>!!L).filter(L=>L.status==="active");Me(h);const S=st(h,p);if(!S)return;const[T,Q]=await Promise.all([O.listSandboxProjects(b,{teamId:S.teamId}),O.listSandboxAgents(b,{teamId:S.teamId})]);s||(re(T.projects),xe(Q.agents))}).catch(d=>{s||q(be(d))}).finally(()=>{s||Pe(!1)}),()=>{s=!0}},[b,p,ne,_]),m.useEffect(()=>{if(!_||!G||!b||!W){me({status:"idle",changedFiles:0,error:null});return}let s=!1;return me(d=>({status:"loading",changedFiles:d.changedFiles,error:null})),O.sandboxGitStatus(b,W).then(d=>{s||me({status:"ready",changedFiles:Un(d.status?.porcelain??""),error:null})}).catch(d=>{s||me({status:"error",changedFiles:0,error:be(d)})}),()=>{s=!0}},[b,G,_,W]),m.useEffect(()=>{if(!_||!G||!b||!W){he(null);return}let s=!1;return O.sandbox(b,W).then(d=>{s||he(d.sandbox)}).catch(()=>{s||he(null)}),()=>{s=!0}},[b,G,_,W]);async function Nt(s){if(!v)return;const d=s.openPreview?sn():null;let h=s.repoUrl||Ee;if(Ue){if(ee&&!window.confirm("Replace the current origin remote with a new OpenPond repo before starting the sandbox?")){ye(d,null);return}const k=await v("publish_openpond_repo",{replaceOrigin:ee,...a?.dirty?{commitDirty:!0,commitMessage:s.commitMessage}:{}});if(!k?.ok){ye(d,null);return}h=yn(k)??h}else if(pe&&ee){if(a?.dirty&&!(await v("git_commit",{message:s.commitMessage,includeUnstaged:!0,runChecks:!1}))?.ok){ye(d,null);return}if(!(await v("git_push",{runChecks:!1}))?.ok){ye(d,null);return}}if(!h){ye(d,null);return}const S=await v("sandbox_create",{repo:h,visibility:"team",resources:s.resources,budget:{maxUsd:s.budgetUsd},quotas:{idleTimeoutSeconds:900,maxSpendUsd:s.budgetUsd},...s.env.length>0?{env:s.env}:{},...s.volumes.length>0?{volumes:s.volumes}:{},metadata:{source:"openpond-app-local-sandbox-template-start",...s.entrypointName?{entrypointName:s.entrypointName}:{},...l?.id?{localProjectId:l.id}:{},...l?.name?{projectName:l.name}:{},...E?{templateName:E.name,templateVersion:E.version,templateUseCase:E.useCase,templateTargets:ge.map(k=>({name:k.name,kind:k.kind}))}:{}},...s.openPreview&&s.previewPort?{previewPort:s.previewPort,previewLabel:s.previewLabel,previewAccess:s.previewAccess,previewAutoStart:!0}:{}}),T=an(S);if(s.openPreview&&ye(d,T),!S?.ok)return;const Q=Nn(S);for(const k of E?.setup.commands??[])if(!(await v("sandbox_exec",{command:k,timeoutSeconds:900}))?.ok)return;const L={};for(const k of s.uploads){const Se=[];for(const tt of k.files){const nt=lt(k.targetPath,tt.name),zt=await ct(tt);if(!(await v("sandbox_upload_file",{path:nt,contentsBase64:zt}))?.ok)return;Se.push(nt)}L[k.inputName]=k.multiple?Se:Se[0]??""}const Ae=Rn(s.command,{...s.params,...L});if((await v("sandbox_exec",{command:Ae,timeoutSeconds:s.timeoutSeconds??900}))?.ok){if(Q){for(const k of s.schedules)if(!(await v("sandbox_schedule_create",Pn(k,Q)))?.ok)return}Y(!1)}}async function Pt(s){if(!v)return;const d={},h=[];for(const S of s.uploads){const T=[];for(const Q of S.files){const L=lt(S.targetPath,Q.name),Ae=await ct(Q);h.push({path:L,contentsBase64:Ae}),T.push(L)}d[S.inputName]=S.multiple?T:T[0]??""}P(!1),await v("run_sandbox_template",{mode:s.mode,target:s.target,params:{...s.params,...d},...s.env.length>0?{env:s.env}:{},...h.length>0?{uploads:h}:{}})}async function Ct(s=Xe?.teamId){if(!b||!s)return;const[d,h]=await Promise.all([O.listSandboxProjects(b,{teamId:s}),O.listSandboxAgents(b,{teamId:s})]);re(d.projects),xe(h.agents)}async function It(s){if(!(!v||!l)){J(!0),q(null);try{if(!(await v("create_sandbox_template_scaffold",{manifestOnly:!0,manifestContent:ft(s.name,s.preset),name:s.name,preset:s.preset,manifestPath:s.manifestPath}))?.ok)return;R(null)}catch(d){q(be(d))}finally{J(!1)}}}async function Rt(s){if(!b||!l||!j)return;const d=s.teamId;J(!0),q(null);try{const h=In(s.sourceType,s.sourceIdentity);let S=(await O.upsertSandboxProject(b,{teamId:d,name:s.projectName,sourceType:s.sourceType,normalizedSourceIdentity:s.sourceIdentity||s.projectName,defaultBranch:s.defaultBranch||null,gitProvider:s.sourceType==="github_repo"?"github":null,gitHost:h.gitHost,gitOwner:h.gitOwner,gitRepo:h.gitRepo,internalRepoPath:h.internalRepoPath,templateRepoUrl:h.templateRepoUrl,sourceConfig:{sourceType:s.sourceType,sourceValue:s.sourceIdentity||s.projectName},metadata:{source:"openpond-app-local-project-agent-setup"}})).project;s.syncNow&&(S=(await O.syncSandboxProject(b,S.id,{teamId:d})).project);const T=await O.updateLocalProjectAgentSetup(b,l.id,{linkedSandboxProject:{teamId:d,projectId:S.id,projectSlug:S.slug,projectName:S.name,sourceRepoUrl:s.sourceIdentity||null,defaultBranch:S.defaultBranch,lastUploadedCommit:null,lastUploadTransport:null,manifestPath:S.sandboxManifestPath,manifestHash:S.sandboxManifestHash,syncedAt:S.sandboxManifestSyncedAt,linkedAt:new Date().toISOString()}});j(T.bootstrap),re(Q=>[S,...Q.filter(L=>L.id!==S.id)]),R(null)}catch(h){q(be(h))}finally{J(!1)}}async function _t(){if(!b||!l||!C.project||!j)return;const s=C.project;J(!0),q(null);try{const d=(await O.syncSandboxProject(b,s.id,{teamId:s.teamId})).project,h=await O.updateLocalProjectAgentSetup(b,l.id,{linkedSandboxProject:{teamId:d.teamId,projectId:d.id,projectSlug:d.slug,projectName:d.name,sourceRepoUrl:a?.remoteUrl??l.linkedSandboxProject?.sourceRepoUrl??null,defaultBranch:d.defaultBranch,lastUploadedCommit:l.linkedSandboxProject?.lastUploadedCommit??null,lastUploadTransport:l.linkedSandboxProject?.lastUploadTransport??null,manifestPath:d.sandboxManifestPath,manifestHash:d.sandboxManifestHash,syncedAt:d.sandboxManifestSyncedAt,linkedAt:l.linkedSandboxProject?.linkedAt??new Date().toISOString()}});j(h.bootstrap),re(S=>[d,...S.filter(T=>T.id!==d.id)]),R(null)}catch(d){q(be(d))}finally{J(!1)}}async function Et(s){if(!b||!l||!C.project||!j)return;const d=C.project;J(!0),q(null);try{const h=(await O.upsertSandboxAgent(b,{teamId:d.teamId,projectId:d.id,name:s.agentName,selectedEntrypoint:{scope:"entire_manifest",name:null},triggerType:"manual",backgroundTaskPolicy:{},defaultWorkflowMode:"attempt",defaultResourcePolicy:{},metadata:{source:"openpond-app-local-project-agent-setup"}})).agent;let S=null,T=null;if(s.createTestRun){const L=await O.runSandboxAgent(b,h.id,{teamId:d.teamId,triggerType:"manual",metadata:{source:"openpond-app-local-project-agent-setup"}});S=L.sandbox??null,T=S?.id??L.run.sandboxId??null}const Q=await O.updateLocalProjectAgentSetup(b,l.id,{preferredSandboxAgentId:h.id});j(Q.bootstrap),xe(L=>[h,...L.filter(Ae=>Ae.id!==h.id)]),R(null),T&&await w?.({sandboxId:T,name:it(S)??`${h.name} sandbox`})}catch(h){q(be(h))}finally{J(!1)}}async function At(){if(!(!b||!C.agent)){J(!0),q(null);try{const s=await O.runSandboxAgent(b,C.agent.id,{teamId:C.agent.teamId,triggerType:"manual",metadata:{source:"openpond-app-local-project-agent-setup"}});await Ct(C.agent.teamId),R(null);const d=s.sandbox?.id??s.run.sandboxId;d&&await w?.({sandboxId:d,name:it(s.sandbox??null)??`${C.agent.name} sandbox`})}catch(s){q(be(s))}finally{J(!1)}}}const{gitActionItems:wt,sandboxActionItems:$t}=$n({canCreateSandboxProject:vt,canInitGit:Ve,defaultSandboxRepoUrl:r??"",gitWorkspace:pe,hasRemote:ee,isProjectWorkspace:ne,isSandboxWorkspace:G,managed:Ie,onOpenCommitDialog:M,onRunTerminalCommand:z,onWorkspaceToolAction:v,projectSandboxTemplate:f,projectSandboxTemplateValid:y,sandboxTemplateActionTargetCount:xt.length,sandboxTemplateServiceTargets:ht,sandboxResumeTarget:D?{id:D.id,runtimeId:D.runtimeId??null,teamId:D.teamId??null,projectId:D.projectId??null,state:D.state??null}:null,selectedApp:u,selectedProject:l,setSandboxCreateDialogOpen:Y,setSandboxRunActionDialogOpen:P,workspaceBusyValue:oe,workspaceReady:ke,workspaceState:a});if(!a)return null;function et(s){F(!1),s.onSelect()}return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:`workspace-environment-menu ${e==="dock"?"open-up":""} ${e==="topbar"?"topbar":""}`,ref:ie,children:[t.jsx("button",{type:"button",className:`environment-info-button ${e==="topbar"?"titlebar-icon":"composer-icon"} ${_?"active":""}`,title:"Environment","data-tooltip":"Environment","aria-label":"Environment","aria-haspopup":"menu","aria-expanded":_,onClick:()=>F(s=>!s),children:t.jsx(Zt,{size:16})}),_&&t.jsxs("div",{className:"environment-popover",role:"menu","aria-label":"Environment",children:[t.jsx("div",{className:"environment-popover-header",children:t.jsx("span",{children:"Environment"})}),ne&&l?t.jsxs("button",{type:"button",className:"environment-row",disabled:ce||!C.canAct||$,title:ce?"Loading Agent setup state":C.reason??"Set up this project as an Agent",onClick:()=>{ce||!C.canAct||(C.state==="missing_config"&&R("config"),C.state==="needs_project"&&R("connect"),C.state==="needs_sync"&&R("sync"),C.state==="needs_agent"&&R("agent"),C.state==="ready"&&R("run"),F(!1))},children:[t.jsx(we,{size:15}),t.jsxs("span",{children:[t.jsx("strong",{children:"Agent setup"}),t.jsx("small",{children:ce?"Loading setup state":vn(C.state,C.reason)})]}),t.jsx("span",{className:"environment-row-action",children:$?"Working":ce?"Loading":C.actionLabel})]}):null,t.jsxs("button",{type:"button",className:`environment-row ${I?"active":""}`,disabled:!U||!H,onClick:()=>{F(!1),H?.()},children:[t.jsx(Vt,{size:15}),t.jsxs("span",{children:[t.jsx("strong",{children:"Changes"}),t.jsx("small",{children:He})]}),!G&&(Re||N)&&t.jsxs("span",{className:"environment-change-counts",children:[t.jsxs("span",{className:"diff-addition",children:["+",je]}),t.jsxs("span",{className:"diff-deletion",children:["-",qe]})]})]}),t.jsxs("div",{className:"environment-row static",children:[t.jsx(Yt,{size:15}),t.jsxs("span",{children:[t.jsx("strong",{children:yt}),t.jsx("small",{children:a.repoPath||a.workspacePath})]})]}),G?t.jsxs("div",{className:"environment-row static",title:_e,children:[t.jsx(Xt,{size:15}),t.jsxs("span",{children:[t.jsx("strong",{children:"Idle cleanup"}),t.jsx("small",{children:_e})]})]}):null,t.jsxs("button",{type:"button",className:`environment-row ${B?"active":""}`,disabled:Ie||!pe||n||oe||!a.initialized,"aria-expanded":B,onClick:()=>ae(s=>!s),children:[t.jsx(Ke,{size:15}),t.jsxs("span",{children:[t.jsx("strong",{children:St}),t.jsx("small",{children:Ie?"Managed workspace":pe?"Branch":"Git not initialized"})]}),t.jsx(Jt,{size:13})]}),B&&t.jsxs("div",{className:"environment-branch-panel",children:[t.jsxs("label",{className:"environment-branch-search",children:[t.jsx(Kt,{size:13}),t.jsx("input",{ref:le,value:Z,placeholder:"Search branches",onChange:s=>fe(s.target.value)})]}),t.jsxs("div",{className:"environment-branch-list",children:[We.map(s=>{const d=s===a.currentBranch,h=n||a.dirty&&!d;return t.jsxs("button",{type:"button",className:d?"selected":"",disabled:h,role:"menuitemradio","aria-checked":d,title:h&&!d?"Commit or discard local changes before switching branches.":s,onClick:()=>{F(!1),d||V?.(s)},children:[t.jsx(Ke,{size:13}),t.jsxs("span",{children:[t.jsx("strong",{children:s}),d&&a.dirty&&t.jsxs("small",{children:["Uncommitted: ",a.changedFilesCount," ",a.changedFilesCount===1?"file":"files"]})]}),d&&t.jsx(Qt,{size:14})]},s)}),We.length===0&&t.jsx("div",{className:"environment-branch-empty",children:"No branches found"})]}),t.jsxs("button",{type:"button",className:"environment-branch-create",disabled:n||!a.initialized||!X,onClick:()=>{F(!1),X?.()},children:[t.jsx(Ke,{size:14}),t.jsx("span",{children:"Create branch"})]})]}),t.jsx("div",{className:"environment-section-title",children:"Git"}),wt.map(s=>t.jsxs("button",{type:"button",className:"environment-action",disabled:s.disabled,onClick:()=>et(s),children:[s.icon,t.jsx("span",{children:s.label})]},s.label)),t.jsx("div",{className:"environment-section-title",children:"Sandbox"}),$t.map(s=>t.jsxs("button",{type:"button",className:"environment-action",disabled:s.disabled,onClick:()=>et(s),children:[s.icon,t.jsx("span",{children:s.label})]},s.label))]})]}),K&&t.jsx(hn,{busy:oe,commitBeforeCreate:(Ue||pe&&ee)&&!!a?.dirty,defaultRepoUrl:Ee,projectName:l?.name??"sandbox template",templateManifest:l?.sandboxTemplate?.normalizedManifest??null,uploadBeforeCreate:Ue,onClose:()=>{oe||Y(!1)},onSubmit:s=>{Nt(s)}}),o&&t.jsx(jn,{busy:oe,projectName:l?.name??"sandbox template",templateManifest:l?.sandboxTemplate?.normalizedManifest??null,onClose:()=>{oe||P(!1)},onSubmit:s=>{Pt(s)}}),A==="config"&&l?t.jsx(zn,{busy:$,error:de,projectName:l.name,onClose:()=>!$&&R(null),onSubmit:s=>{It(s)}}):null,A==="connect"&&l&&Xe?t.jsx(Mn,{busy:$,error:de,defaultTeamId:Xe.teamId,projectName:l.name,sourceIdentity:a?.remoteUrl??"",defaultBranch:a?.currentBranch??"main",onClose:()=>!$&&R(null),onSubmit:s=>{Rt(s)}}):null,A==="sync"&&C.project?t.jsx(dt,{busy:$,error:de,title:"Sync Project",actionLabel:"Sync Project",summary:`${C.project.name} · ${C.project.sandboxManifestPath??Ne}`,onClose:()=>!$&&R(null),onSubmit:()=>{_t()}}):null,A==="agent"&&C.project?t.jsx(qn,{busy:$,error:de,defaultName:`${l?.name??C.project.name} Agent`,onClose:()=>!$&&R(null),onSubmit:s=>{Et(s)}}):null,A==="run"&&C.agent?t.jsx(dt,{busy:$,error:de,title:"Run Agent",actionLabel:"Run Agent",summary:C.agent.name,onClose:()=>!$&&R(null),onSubmit:()=>{At()}}):null]})}export{Yn as WorkspaceEnvironmentMenu,On as formatIdleTimeout,Ln as sandboxChangeLabel,Un as sandboxChangedFileCount,Dn as sandboxRuntimePolicyLabel};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as o}from"./App-CuhaCsfb.js";const t=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],a=o("arrow-up-right",t);export{a as A};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bN as t,bP as s,bO as e,ca as a,fl as T,ew as q,cb as r,ce as y,dK as N,ch as f,eD as H,ci as S,fm as V,cd as z,cc as B,fn as W,fo as E,ex as K,fp as Q,fq as F,fr as j}from"./App-CuhaCsfb.js";const R=a().int().nonnegative().nullable();t({requestId:e().min(1),startedAt:e().datetime(),provider:e(),model:e(),mode:e(),status:e(),source:e(),projectId:e().nullable(),inputTokens:R,cachedInputTokens:R,outputTokens:R,totalTokens:R}).strict();const l=a().int().nonnegative(),w=t({invocations:l,inputTokens:l,cachedInputTokens:l,outputTokens:l,totalTokens:l,missingInput:l,missingCachedInput:l,missingOutput:l,missingTotal:l,failures:l,unattributed:l}).strict(),G=t({total:w,days:s(w.extend({key:e().regex(/^\d{4}-\d{2}-\d{2}$/)})),modes:s(w.extend({key:e()})),models:s(w.extend({key:e()}))}).strict();var m=e().trim().min(1).max(240),k=e().regex(/^[a-f0-9]{64}$/);t({cursor:e().trim().min(1).max(2e3).optional(),projectId:m.optional(),search:e().trim().max(100).optional(),sort:r(["id","name","updated"]).default("id"),limit:a().int().min(1).max(100).default(100)}).strict();t({operationId:m,expectedRevision:a().int().nonnegative(),originProjectId:m.optional(),workspace:T,ownerScope:r(["workspace","personal"]).optional()}).strict().superRefine((i,n)=>{i.workspace.draft.modelScope!==null&&n.addIssue({code:"custom",message:"Independent datasets cannot carry Model-owned draft preparation."}),i.workspace.draft.status!=="draft"&&n.addIssue({code:"custom",message:"Only draft workspaces can be saved."})});var D=t({schemaVersion:y("openpond.datasetWorkspaceReceipt.v1"),teamId:m,datasetId:m,revision:a().int().positive(),originProjectId:m.optional(),workspace:T,ownerScope:r(["workspace","personal"]).optional(),publication:t({tasksetId:m,release:q,packageHash:k}).strict().nullable()}).strict().superRefine((i,n)=>{(i.workspace.draft.id!==i.datasetId||i.workspace.draft.profileId!==i.teamId||i.workspace.draft.revision!==i.revision||i.workspace.draft.modelScope!==null)&&n.addIssue({code:"custom",message:"Dataset workspace scope/revision mismatch."})});t({operationId:m,expectedRevision:a().int().positive(),workspaceHash:k,packageHash:k}).strict();t({operationId:m,expectedRevision:a().int().positive()}).strict();t({teamId:m,datasetId:m,items:s(t({workspaceRevision:a().int().positive(),publication:D.shape.publication.unwrap(),publishedAt:N()}).strict()).max(25),nextBeforeRevision:a().int().positive().nullable()}).strict();t({teamId:m,datasets:s(t({id:m,revision:a().int().positive(),originProjectId:m.optional(),name:e(),status:r(["draft","published"]),ownerScope:r(["workspace","personal"]).optional(),taskCount:a().int().nonnegative().optional(),publication:D.shape.publication,updatedAt:e().datetime()}).strict()).max(100),nextCursor:e().trim().min(1).max(2e3).nullable()}).strict();t({teamId:m,datasetId:m,revision:a().int().positive(),workspaceHash:k,packageHash:k,release:q}).strict();var d=e().trim().min(1).max(500),g=e().regex(/^[a-f0-9]{64}$/);t({teamId:d,ownerUserId:d}).strict();var U=t({id:d,snapshotHash:g,boundaryId:d,boundaryRevisionHash:g}).strict(),_=t({sourceId:d,source:W,sessionId:d,snapshotHash:g,title:e().max(500),projectId:d.nullable(),capturedAt:e().datetime(),boundaries:s(E.omit({start:!0,end:!0})).max(H.boundaries)}).strict();t({operationId:d,conversationId:d.optional(),cursor:d.optional(),limit:a().int().min(1).max(50).default(20)}).strict();var O=t({hash:g,parts:a().int().min(1).max(1500)}).strict();O.extend({index:a().int().nonnegative().max(1499),base64:e().max(35e4)}).strict();t({path:e().min(1).max(500),encoding:r(["utf8","zstd"]),base64:e()}).strict();var x=t({upload:O,source:r(["codex","claude_code","hermes","openclaw","opencode","grok_build","pi","oh_my_pi"]),branchLeafId:d.optional(),acquisition:t({machineId:d,sourceInstanceId:d}).strict().optional(),destination:z("kind",[t({kind:y("existing"),projectId:d}).strict(),t({kind:y("new"),name:e().trim().min(1).max(200)}).strict()])}).strict(),J=x.extend({operationId:d,previewHash:g,selection:s(t({sessionHash:g,boundaryIds:s(d).min(1).max(H.boundaries)}).strict()).min(1).max(H.sessions)}).strict(),X=t({from:e().datetime(),to:e().datetime(),projectId:d.optional()}).strict(),ae=t({teamId:d,range:X,activity:t({conversations:a().int().nonnegative(),turns:a().int().nonnegative(),chatTurns:a().int().nonnegative(),workTurns:a().int().nonnegative()}).strict(),accounting:t({contextSnapshots:a().int().nonnegative()}).strict(),usage:G}).strict(),p=e().min(1).max(200),h=e().regex(/^[a-f0-9]{64}$/),$=t({operationId:p,name:e().trim().min(1).max(500),projectId:p,dataset:B.extend({revision:a().int().positive()}).strict(),caseIds:s(p).min(1).max(1e4)}).strict().superRefine((i,n)=>{new Set(i.caseIds).size!==i.caseIds.length&&n.addIssue({code:"custom",message:"Select each case once."})}),Y=U.extend({inputHash:h,outputHash:h.nullable(),task:K,taskHash:h}).strict(),Z=t({schemaVersion:y("openpond.connectedRecordedExecution.v1"),id:p,teamId:p,ownerUserId:p,request:$,manifest:V,sources:s(Y).min(1).max(1e4),contentHash:h}).strict();function ne(i){const n=Z.parse(i),{contentHash:C,...P}=n,{contentHash:L,...M}=n.manifest;if(f(P)!==C||f(M)!==L||n.manifest.teamId!==n.teamId||n.manifest.id!==n.id||n.manifest.operationId!==n.request.operationId||f(n.manifest.dataset)!==f(n.request.dataset)||n.sources.length!==n.request.caseIds.length||n.sources.length!==n.manifest.population.length||n.sources.some((I,A)=>I.taskHash!==f(I.task)||I.task.id!==n.request.caseIds[A]||I.boundaryId!==I.task.id||n.manifest.population[A]?.caseId!==I.boundaryId))throw new Error("Recorded execution identity or population integrity failed.");return n}t({projectId:p.optional(),cursor:p.optional(),limit:a().int().min(1).max(50).default(20)}).strict();var ee=t({id:p,teamId:p,ownerUserId:p,projectId:p,name:e().min(1).max(500),dataset:$.shape.dataset,manifestHash:h,contentHash:h,caseCount:a().int().min(1).max(1e4),createdAt:e().datetime()}).strict();t({teamId:p,items:s(ee).max(50),nextCursor:p.nullable()}).strict();t({datasetId:e().trim().min(1).max(240),expectedRevision:a().int().positive(),operationId:e().trim().min(1).max(240),graders:s(Q).min(1).max(100).optional()}).strict().superRefine((i,n)=>{i.graders&&new Set(i.graders.map(C=>C.id)).size!==i.graders.length&&n.addIssue({code:"custom",path:["graders"],message:"Choose one exact revision of each grader."})});var b=e().min(1).max(500),u=a().int().nonnegative();t({teamId:b,ownerUserId:b,projectId:b.nullable(),status:r(["active","paused","archived"]),revision:u,state:r(["collecting","pending","attention","paused","archived"]),lastReconciledAt:e().datetime().nullable(),lastCapturedAt:e().datetime().nullable(),historyDays:a().int().positive(),sources:u,tasks:u,datasets:s(t({datasetId:b,projection:r(["turn","conversation"]),revision:u}).strict()).max(2),latestBatch:t({operationId:b,updatedAt:e().datetime(),scanned:u,captured:u,unchanged:u,pending:u,failed:u,excluded:u,paused:u,hasMore:S()}).strict().nullable()}).strict();var o=e().min(1).max(500),v=e().regex(/^[a-f0-9]{64}$/),se=t({teamId:o,projectId:o.nullable(),status:r(["active","paused","archived"]),revision:a().int().nonnegative()}).strict(),ie=t({teamId:o,operationId:o,projectId:o.nullable(),outcomes:s(t({conversationId:o,state:r(["captured","unchanged","pending","paused","excluded","failed"]),sourceId:o.optional(),snapshotHash:v.optional(),reason:e().optional()}).strict()).max(50),nextCursor:o.nullable()}).strict(),oe=t({teamId:o,ref:U,origin:_.shape.source,sessionId:o,projectId:o,capturedAt:e().datetime(),unmappedEvidence:t({count:a().int().nonnegative().max(1e5),contentHash:v}).strict(),evidence:t({input:s(j),observed:s(j),answer:F(),boundary:E}).strict()}).strict(),re=t({teamId:o,sourceId:o,snapshotHash:v,contentHash:v,count:a().int().nonnegative(),offset:a().int().nonnegative(),events:s(j).max(50),nextOffset:a().int().nonnegative().nullable()}).strict(),de=t({teamId:o,source:x.shape.source,sourceHash:v,previewHash:v,destination:x.shape.destination,issues:s(t({file:e(),message:e()}).strict()).max(100),sessions:s(t({sessionHash:v,sessionId:o,origin:_.shape.source,exporterVersion:e().nullable(),eventCount:a().int().nonnegative(),boundaries:s(t({id:o,projection:r(["turn","conversation"]),answer:S(),process:r(["retained","partial","absent"]),terminal:r(["completed","failed","cancelled","unknown"])}).strict()).max(5001),warnings:s(e()).max(100),sample:s(t({role:r(["user","assistant","system","tool"]).nullable(),text:e().max(4e3)}).strict()).max(3)}).strict()).max(1e3)}).strict(),ce=t({teamId:o,operationId:o,requestHash:v,previewHash:v,projectId:o.optional(),state:r(["admitting","publishing","completed","failed"]),outcomes:s(t({sessionHash:v,sourceId:o,status:r(["imported","already_present"]),datasets:s(t({datasetId:o,revision:a().int().positive(),changed:S()}).strict()).max(2)}).strict()).max(1e3),error:e().optional()}).strict(),c=e().trim().min(1).max(240);t({id:c,source:x.shape.source,machineId:c,sourceInstanceId:c,sourceLabel:e().trim().min(1).max(200),sourceRoot:e().min(1).max(2e3),destination:x.shape.destination,since:e().datetime().nullable(),keepSyncing:S(),expectedRevision:a().int().nonnegative()}).strict();t({id:c,expectedRevision:a().int().positive(),action:r(["pause","resume","disconnect"])}).strict();t({id:c,operationId:c,expectedRevision:a().int().positive()}).strict();t({id:c,expectedRevision:a().int().positive(),pendingOperations:a().int().min(0).max(1e4),error:e().max(500).nullable(),completedSyncRevision:a().int().nonnegative().default(0)}).strict();t({teamId:c,id:c,revision:a().int().positive(),source:x.shape.source,sourceLabel:e(),sourceRoot:e(),taskDatasetId:c.nullable(),conversationDatasetId:c.nullable(),machineId:c,sourceInstanceId:c,projectId:c,datasetIds:s(c).max(2),since:e().datetime().nullable(),keepSyncing:S(),state:r(["active","paused","disconnected"]),health:r(["online","offline"]),lastHeartbeatAt:e().datetime().nullable(),lastAdmissionAt:e().datetime().nullable(),pendingOperations:a().int().nonnegative(),admittedTasks:a().int().nonnegative(),error:e().nullable(),requestedSyncRevision:a().int().nonnegative().default(0),completedSyncRevision:a().int().nonnegative().default(0),syncRequestedAt:e().datetime().nullable().default(null),syncCompletedAt:e().datetime().nullable().default(null)}).strict().refine(i=>i.completedSyncRevision<=i.requestedSyncRevision&&i.requestedSyncRevision<=i.revision,"Invalid sync acknowledgement generation.");t({connectionId:c,expectedRevision:a().int().positive(),request:J}).strict();export{J as A,_ as C,D,oe as a,ae as b,re as c,ce as d,de as e,ie as f,se as g,ne as v};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./App-CuhaCsfb.js";const a=[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],t=e("folder-plus",a);export{t as F};
|